(function(){window.pagespeed=window.pagespeed||{};var d=window.pagespeed;function g(a){this.a=a}function h(a,b){b=b||window.event;if("keypress"!=b.type||13==b.keyCode)for(var c=b.target;null!=c;c=c.parentNode)if("A"==c.tagName){for(var f=a,c=c.href,k=b,e=0;e<f.a.length;e++)if(0==c.indexOf(f.a[e])){window.location=window.location.protocol+"//"+window.location.hostname+"/"+c.substr(f.a[e].length);k.preventDefault();break}break}}
function l(a){document.body.onclick=function(b){h(a,b)};document.body.onkeypress=function(b){h(a,b)}}d.b=function(a){a=new g(a);d.clientDomainRewriter=a;l(a)};d.clientDomainRewriterInit=d.b;})();
