Le prix du code le plus laid

Comme beaucoup il m’arrive de jeter un coup d’oeil au code source d’un site. En particulier le javascript.

Twitter utilise relativement peu de js. Yahoo et microsoft le présentent joliement dans le code. Concernant les leaders du web:

Google

<!doctype html><html onmousemove="google&&google.fade&&google.fade(event)"><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"><title>Google</title><script>window.google={kEI:"JQ6FTKzMLpLT4wazwrSFCw",kEXPI:"17259,24813,25900",kCSI:{e:"17259,24813,25900",ei:"JQ6FTKzMLpLT4wazwrSFCw",expi:"17259,24813,25900"},ml:function(){},pageState:"#",kHL:"fr",time:function(){return(new Date).getTime()},log:function(b,d,c){var a=new Image,e=google,g=e.lc,f=e.li;a.onerror=(a.onload=(a.onabort=function(){delete g[f]}));g[f]=a;c=c||"/gen_204?atyp=i&ct="+b+"&cad="+d+"&zx="+google.time();a.src=c;e.li=f+1},lc:[],li:0,j:{en:1,l:function(){google.fl=true},e:function(){google.fl=true},b:location.hash&&location.hash!="#",bv:3,pl:[],mc:0,sc:0.5},Toolbelt:{}};(function(){for(var d=0,c;c=["ad","bc","p","pa","zd","ac","pc","pah","ph","sa","spf","xx","zc","zz"][d++];)(function(a){google.j[a]=function(){google.j.pl.push([a,arguments])}})(c)})();
window.google.sn="webhp";window.google.timers={load:{t:{start:(new Date).getTime()}}};try{window.google.pt=window.gtbExternal&&window.gtbExternal.pageT();}catch(u){}window.google.jsrt_kill=1;
</script><style id=gstyle>body{margin:0}#gog{padding:3px 8px 0}td{line-height:.8em}.gac_m td{line-height:17px}form{margin-bottom:20px}body,td,a,p,.h{font-family:arial,sans-serif}.h{color:#36c}.q{color:#00c}.ts td{padding:0}.ts{border-collapse:collapse}em{font-weight:bold;font-style:normal}.lst{width:496px}.tiah{width:458px}input{font-family:inherit}#fctr,#ghead,#pmocntr,#sbl,#tba,#tbe,.fade{opacity:0;}#fctr,#ghead,#pmocntr,#sbl,#tba,#tbe,.fade{background:#fff;}a.gb1,a.gb2,a.gb3,a.gb4{color:#11c !important}#gog{background:#fff}#gbar,#guser{font-size:13px;padding-top:1px !important}#gbar{float:left;height:22px}#guser{padding-bottom:7px !important;text-align:right}.gbh,.gbd{border-top:1px solid #c9d7f1;font-size:1px}.gbh{height:0;position:absolute;top:24px;width:100%}#gbs,.gbm{background:#fff;left:0;position:absolute;text-align:left;visibility:hidden;z-index:1000}.gbm{border:1px solid;border-color:#c9d7f1 #36c #36c #a2bae7;z-index:1001}.gb1{margin-right:.5em}.gb1,.gb3{zoom:1}.gb2{display:block;padding:.2em .5em}.gb2,.gb3{text-decoration:none;border-bottom:none}a.gb1,a.gb2,a.gb3,a.gb4{color:#00c !important}a.gb2:hover{background:#36c;color:#fff !important}body{background:#fff;color:black}input{-moz-box-sizing:content-box}a{color:#11c;text-decoration:none}a:hover,a:active{text-decoration:underline}.fl a{color:#4272db}a:visited{color:#551a8b}a.gb1,a.gb4{text-decoration:underline}a.gb3:hover{text-decoration:none}#ghead a.gb2:hover{color:#fff!important}.ds{display:-moz-inline-box}.ds{border-bottom:solid 1px #e7e7e7;border-right:solid 1px #e7e7e7;display:inline-block;margin:3px 0 4px;margin-left:4px}.sblc{padding-top:5px}.sblc a{display:block;margin:2px 0;margin-left:13px;font-size:11px;}.lsbb{background:#eee;border:solid 1px;border-color:#ccc #999 #999 #ccc;height:30px;display:block}.lsb{background:url(/images/srpr/nav_logo14.png) bottom;font:15px arial,sans-serif;border:none;color:#000;cursor:pointer;height:30px;margin:0;outline:0;vertical-align:top}.lsb:active{background:#ccc}.lst:focus{outline:none}.ftl,#fll a{margin:0 12px}#addlang a{padding:0 3px}.gac_v div{display:none}.gac_v .gac_v2,.gac_bt{display:block!important}</style><noscript><style>#fctr,#ghead,#pmocntr,#sbl,#tba,#tbe,.fade{opacity:1;}</style></noscript><script>var _gjwl=location;function _gjuc(){var b=_gjwl.href.indexOf("#");if(b>=0){var a=_gjwl.href.substring(b+1);if(/(^|&)q=/.test(a)&&a.indexOf("#")==-1&&!/(^|&)cad=h($|&)/.test(a)){_gjwl.replace("/search?"+a.replace(/(^|&)fp=[^&]*/g,"")+"&cad=h");return 1}}return 0}function _gjp(){!(window._gjwl.hash&&window._gjuc())&&setTimeout(_gjp,500)};
google.y={};google.x=function(e,g){google.y[e.id]=[e,g];return false};if(!window.google)window.google={};window.google.crm={};window.google.cri=0;window.clk=function(e,f,g,k,l,b,m){if(document.images){var a=encodeURIComponent||escape,c=new Image,h=window.google.cri++;window.google.crm[h]=c;c.onerror=(c.onload=(c.onabort=function(){delete window.google.crm[h]}));if(b&&b.substring(0,6)!="&sig2=")b="&sig2="+b;c.src=["/url?sa=T","","&cd=",a(l),google.j&&google.j.pf?"&sqi=2":"","&ved=",a(m),e?"&url="+
a(e.replace(/#.*/,"")).replace(/\+/g,"%2B"):"","&ei=","JQ6FTKzMLpLT4wazwrSFCw",b].join("")}return true};
window.gbar={qs:function(){},tg:function(e){var o={id:'gbar'};for(i in e)o[i]=e[i];google.x(o,function(){gbar.tg(o)})}};</script></head><body bgcolor=#ffffff text=#000000 link=#0000cc vlink=#551a8b alink=#ff0000 onload="try{!google.j.b&&document.f.q.focus()}catch(e){};if(document.images)new Image().src='/images/srpr/nav_logo14.png'" ><textarea id=csi style=display:none></textarea><script>if(google.j.b)document.body.style.visibility='hidden';</script><iframe name=wgjf style=display:none src="" onload="google.j.l()" onerror="google.j.e()"></iframe><textarea id=wgjc style=display:none></textarea><textarea id=wwcache style=display:none></textarea><textarea id=csi style=display:none></textarea><textarea id=hcache style=display:none></textarea><span id=main><div id=ghead><div id=gog><div id=gbar><nobr><b class=gb1>Web</b> <a href="http://www.google.fr/imghp?rls=ig&hl=fr&tab=wi" onclick=gbar.qs(this) class=gb1>Images</a> <a href="http://video.google.fr/?rls=ig&hl=fr&tab=wv" onclick=gbar.qs(this) class=gb1>Vidéos</a> <a href="http://maps.google.fr/maps?rls=ig&hl=fr&tab=wl" onclick=gbar.qs(this) class=gb1>Maps</a> <a href="http://news.google.fr/nwshp?rls=ig&hl=fr&tab=wn" onclick=gbar.qs(this) class=gb1>Actualités</a> <a href="http://books.google.fr/bkshp?rls=ig&hl=fr&tab=wp" onclick=gbar.qs(this) class=gb1>Livres</a> <a href="http://mail.google.com/mail/?hl=fr&tab=wm" class=gb1>Gmail</a> <a href="http://www.google.fr/intl/fr/options/" onclick="this.blur();gbar.tg(event);return !1" aria-haspopup=true class=gb3><u>plus</u> <small>&#9660;</small></a><div class=gbm id=gbi><a href="http://translate.google.fr/?rls=ig&hl=fr&tab=wT" onclick=gbar.qs(this) class=gb2>Traduction</a> <a href="http://blogsearch.google.fr/?rls=ig&hl=fr&tab=wb" onclick=gbar.qs(this) class=gb2>Blogs</a> <div class=gb2><div class=gbd></div></div><a href="http://www.youtube.com/?rls=ig&hl=fr&tab=w1&gl=FR" onclick=gbar.qs(this) class=gb2>YouTube</a> <a href="http://www.google.com/calendar/render?hl=fr&tab=wc" class=gb2>Agenda</a> <a href="http://picasaweb.google.fr/home?rls=ig&hl=fr&tab=wq" onclick=gbar.qs(this) class=gb2>Photos</a> <a href="http://docs.google.com/?hl=fr&tab=wo" class=gb2>Documents</a> <a href="http://www.google.fr/reader/?hl=fr&tab=wy" class=gb2>Reader</a> <a href="http://sites.google.com/?hl=fr&tab=w3" class=gb2>Sites</a> <a href="http://groups.google.fr/grphp?rls=ig&hl=fr&tab=wg" onclick=gbar.qs(this) class=gb2>Groupes</a> <div class=gb2><div class=gbd></div></div><a href="http://www.google.fr/intl/fr/options/" class=gb2>et encore plus &raquo;</a> </div></nobr></div><div id=guser width=100%><nobr><span id=gbn class=gbi></span><span id=gbf class=gbf></span><span id=gbe><a href="/url?sa=p&pref=ig&pval=3&q=http://www.google.fr/ig%3Frls%3Dig%26hl%3Dfr%26source%3Diglk&usg=AFQjCNEVFCaKRttyazJYAQEuqL9u39u49w" class=gb4>iGoogle</a> | </span><a href="/preferences?hl=fr" class=gb4>Paramètres de recherche</a> | <a href="https://www.google.com/accounts/Login?hl=fr&continue=http://www.google.fr/webhp%3Frls%3Dig" class=gb4>Connexion</a></nobr></div><div class=gbh style=left:0></div><div class=gbh style=right:0></div></div></div> <center><span id=body><center><br clear=all id=lgpd><div id=lga><div style="padding:28px 0 3px"><div align=left style="background:url(/intl/en_com/images/srpr/logo1w.png) no-repeat;height:110px;width:276px" title="Google" id=logo onload="window.lol&&lol()"><div nowrap style="color:#777;font-size:16px;font-weight:bold;left:214px;position:relative;top:70px">France</div></div></div><br></div><form action="/search" name=f onsubmit="google.fade=null"><table cellpadding=0 cellspacing=0><tr valign=top><td width=25%>&nbsp;</td><td align=center nowrap><input type=hidden name=rls value="ig"><input name=hl type=hidden value=fr><input name=source type=hidden value=hp><div class=ds style="height:32px;margin:4px 0"><input autocomplete="off" onblur="google&&google.fade&&google.fade()" maxlength=2048 name=q class="lst" title="Recherche Google" value="" size=57 style="background:#fff;border:1px solid #ccc;border-bottom-color:#999;border-right-color:#999;color:#000;font:18px arial,sans-serif bold;height:25px;margin:0;padding:5px 8px 0 6px;vertical-align:top"></div><br style="line-height:0"><span class=ds ><span class=lsbb><input name=btnG type=submit value="Recherche Google" class=lsb onclick="this.checked=1"></span></span><span class=ds><span class=lsbb><input name=btnI type=submit value="J&#39;ai de la chance" class=lsb onclick="this.checked=1"></span></span></td><td nowrap width=25% align=left class=sblc id=sbl><a href="/advanced_search?hl=fr">Recherche avancée</a><a href="/language_tools?hl=fr">Outils linguistiques</a></td></tr></table></form><div style="font-size:83%;min-height:3.5em"><br></div><div id=res></div></center></span> <span id=footer><center id=fctr><div style="font-size:10pt"><div id=fll style="margin:19px auto 19px auto;text-align:center"><a href="/intl/fr/ads/">Programmes de publicité</a><a href="/services/">Solutions d'entreprise</a><a href="/intl/fr/about.html">À propos de Google</a><a href="http://www.google.com/ncr">Google.com in English</a></div></div><p style="color:#767676;font-size:8pt">&copy; 2010 - <a href="/intl/fr/privacy.html">Confidentialité</a></p></center></span> </span> <script>function _gjp() {!(location.hash && _gjuc()) && setTimeout(_gjp, 500);}google.j[1]={cc:[],co:['ghead','body','footer','xjsi'],pc:[],nb:0,css:document.getElementById('gstyle').innerHTML,main:'<div id=ghead></div>' +'<span id=body></span>' +'<span id=footer></span>' +'<span id=xjsi></span>'};</script><script>function wgjp(){var xjs=document.createElement('script');xjs.src='/extern_chrome/81d7446b02dff01d.js';(document.getElementById('xjsd') || document.body).appendChild(xjs)};</script></center><div id=cpf style="display: none; margin: 0 8px; position: relative;"class=fade><a href="javascript:void(0)" style="bottom: 0;display:inline;font-family:arial, san-serif;font-size:small;left:0;position:absolute;">Modifier l&#39;image de fond</a></div><div id=xjsd></div><div id=xjsi><script>if(google.y)google.y.first=[];if(google.y)google.y.first=[];if(!google.xjs){google.dstr=[];google.rein=[];window.setTimeout(function(){var a=document.createElement("script");a.src="/extern_js/f/CgJmchICZnIrMEU4ASwrMFo4ACwrMA44ASwrMBc4BywrMCc4BCwrMDw4ACwrMFE4ACwrMAo4c0AdLCswFjgdLCswGTggLCswJTjPiAEsKzAqOAssKzArOBEsKzA1OAQsKzBAOBMsKzBBOAUsKzBOOAYsKzBUOAEsKzAdOFQsKzAYOAUsKzAmOA4sgAIXkAIa/_0rTzKv-vvM.js";(document.getElementById("xjsd")||document.body).appendChild(a);if(google.timers&&google.timers.load.t)google.timers.load.t.xjsls=(new Date).getTime();},0);
google.xjs=1}(function(){
function e(){if(typeof window.innerHeight=="number")return window.innerHeight;else if(document.documentElement&&document.documentElement.clientHeight)return document.documentElement.clientHeight;else if(document.body&&document.body.clientHeight)return document.body.clientHeight;return 0}function f(a,b,c){var d=a.offsetHeight?c-a.offsetHeight:c+10,i=b-d-10,g=Math.max(i,0);a.style.height=g+"px";return g}function h(){if(google.sn!="webhp")return;var a=document.getElementById("cpf");if(!a)return;f(a,
e(),document.body.offsetHeight);var b=window.onresize;window.onresize=function(){f(a,e(),document.body.offsetHeight);if(b)b()};a.style.display="block";var c=a.getElementsByTagName("a")[0];if(!c.onclick)c.onclick=function(){var d="https://www.google.com/accounts/ServiceLogin?continue\x3dhttp://www.google.fr/webhp%3Frls%3Dig%26cplp%3D\x26hl\x3dfr";document.location=d.replace("cplp%3D","cplp%3D"+(new Date).getTime())}}function j(a){window.onresize=a;var b=document.getElementById("cpf");if(!b)return;b.style.display="none"}if(!window.google.cpld){if(google.rein)google.rein.push(h);
if(google.dstr){var k=window.onresize;google.dstr.push(function(){j(k)})}h();window.google.cpld=true};
})();
;google.neegg=1;google.y.first.push(function(){var form=document.f||document.f||document.gs;google.ac.i(form,form.q,'','','',{o:1,sw:1,f:1});(function(){
var h,i,j=1,k=google.time(),l=[];google.rein.push(function(){j=1;k=google.time()});google.dstr.push(function(){google.fade=null});function m(a,f){var b=[];for(var c=0,e;e=a[c++];){var d=document.getElementById(e);d&&b.push(d)}for(var c=0,g;g=f[c++];)b=b.concat(n(g[0],g[1]));for(var c=0;b[c];c++)b[c]=[b[c],"opacity",0,1,0,""];return b}function n(a,f){var b=[],c=new RegExp("(^|\\s)"+f+"($|\\s)");for(var e=0,d,g=document.getElementsByTagName(a);d=
g[e++];)c.test(d.className)&&b.push(d);return b}google.fade=function(a){if(google.fx&&j){a=a||window.event;var f=1,b=google.time()-k;if(a&&a.type=="mousemove"){var c=a.clientX,e=a.clientY;f=(h||i)&&(h!=c||i!=e)&&b>600;h=c;i=e}if(f){j=0;google.fx.animate(600,m(["fctr","ghead","pmocntr","sbl","tba","tbe"],[["span","fade"],["div","fade"],["div","gbh"]]));for(var d=0;d<
l.length;++d)if(typeof l[d]=="function")l[d]()}}};google.addFadeNotifier=function(a){l.push(a);if(!j)a()};
})();
;google.mc = [[14,{}]];google.med('init');google.History&&google.History.initialize('/webhp?rls\x3dig')});if(google.j&&google.j.en&&google.j.xi){window.setTimeout(google.j.xi,0);google.fade=null;}</script></div><script>(function(){
var b,d,e,f;function g(a,c){if(a.removeEventListener){a.removeEventListener("load",c,false);a.removeEventListener("error",c,false)}else{a.detachEvent("onload",c);a.detachEvent("onerror",c)}}function h(a){f=(new Date).getTime();++d;a=a||window.event;var c=a.target||a.srcElement;g(c,h)}var i=document.getElementsByTagName("img");b=i.length;d=0;for(var j=0,k;j<b;++j){k=i[j];if(k.complete||typeof k.src!="string"||!k.src)++d;else if(k.addEventListener){k.addEventListener("load",h,false);k.addEventListener("error",
h,false)}else{k.attachEvent("onload",h);k.attachEvent("onerror",h)}}e=b-d;function l(){if(!google.timers.load.t)return;google.timers.load.t.ol=(new Date).getTime();google.timers.load.t.iml=f;google.kCSI.imc=d;google.kCSI.imn=b;google.kCSI.imp=e;google.timers.load.t.xjs&&google.report&&google.report(google.timers.load,google.kCSI)}if(window.addEventListener)window.addEventListener("load",l,false);else if(window.attachEvent)window.attachEvent("onload",l);google.timers.load.t.prt=(f=(new Date).getTime());
})();

</script>

facebook

/*
HTTP Host: static.ak.fbcdn.net
Generated: August 22nd 2010 9:18:29 PM PDT
Machine: 10.138.64.182
Locale: nu_ll
Path: js/4zfba0rzy84ksk04.pkg.js
*/

if (window.CavalryLogger) { CavalryLogger.start_js(["js\/4zfba0rzy84ksk04.pkg.js"]); }

if(!window.skipDomainLower&&navigator&&navigator.userAgent&&document.domain.toLowerCase().match(/(^|\.)facebook\..*/)&&!(parseInt((/Gecko\/([0-9]+)/.exec(navigator.userAgent)||[]).pop(),10)<=20060508))document.domain=window.location.hostname.replace(/^.*(facebook\..*)$/i,'$1');var onloadRegister=window.onloadRegister||function(a){onloadhooks.push(a);};var onloadhooks=window.onloadhooks||[];var onafterloadRegister=window.onafterloadRegister||function(a){onafterloadhooks.push(a);};var onafterloadhooks=window.onafterloadhooks||[];function run_if_loaded(a,b){if(window.loaded)return b.call(a);}function run_with(b,a,c){Bootloader.loadComponents(a,bind(b,c));return false;}function wait_for_load(c,b,e){e=bind(c,e,b);if(window.loaded)return e();switch((b||event).type){case 'load':case 'focus':onafterloadRegister(e);return;case 'click':var d=c.style,a=document.body.style;d.cursor=a.cursor='progress';onafterloadRegister(function(){d.cursor=a.cursor='';if(c.tagName.toLowerCase()=='a'){if(false!==e()&&c.href)window.location.href=c.href;}else if(c.click)c.click();});break;}return false;}function bind(d,c){var a=Array.prototype.slice.call(arguments,2);var b=function(){var f=d||(this==window?false:this),e=a.concat(Array.prototype.slice.call(arguments));if(typeof(c)=="string"){if(f[c])return f[c].apply(f,e);}else return c.apply(f,e);};if(typeof c=='string'){b.name=c;}else if(c&&c.name)b.name=c.name;b.toString=function(){return bind._toString(d,a,c);};return b;}var curry=bind(null,bind,null);bind._toString=bind._toString||function(c,a,b){return (typeof b=='string')?('late bind<'+b+'>'):('bound<'+b.toString()+'>');};window.loadFirebugConsole&&loadFirebugConsole();function env_get(a){return typeof(window['Env'])!='undefined'&&Env[a];}
function hasArrayNature(a){return (!!a&&(typeof a=='object'||typeof a=='function')&&('length' in a)&&!('setInterval' in a)&&(Object.prototype.toString.call(a)==="[object Array]"||('callee' in a)||('item' in a)));}function $A(b){if(!hasArrayNature(b))return [b];if(b.item){var a=b.length,c=new Array(a);while(a--)c[a]=b[a];return c;}return Array.prototype.slice.call(b);}
function eval_global(c){if('string'!=typeof(c)){throw new Error('JS sent to eval_global is not a string.  Only strings '+'are permitted.');}else if(''==c)return;var d=document.createElement('script');d.type='text/javascript';try{d.appendChild(document.createTextNode(c));}catch(a){d.text=c;}var b=(document.getElementsByTagName("head")[0]||document.documentElement);b.appendChild(d);b.removeChild(d);}
function copy_properties(b,c){b=b||{};c=c||{};for(var a in c)b[a]=c[a];if(c.hasOwnProperty&&c.hasOwnProperty('toString')&&(typeof c.toString!='undefined')&&(b.toString!==c.toString))b.toString=c.toString;return b;}function add_properties(a,b){return copy_properties(window[a]||(window[a]={}),b);}function is_empty(b){if(b instanceof Array){return b.length==0;}else if(b instanceof Object){for(var a in b)return false;return true;}else return !b;}
if(!window.async_callback)window.async_callback=function(a){return a;};function Arbiter(){copy_properties(this,{_listeners:[],_events:{},_callbacks:{},_last_id:1,_listen:{},_index:{}});copy_properties(this,Arbiter);}copy_properties(Arbiter,{SUBSCRIBE_NEW:'new',SUBSCRIBE_ALL:'all',BEHAVIOR_EVENT:'event',BEHAVIOR_PERSISTENT:'persistent',BEHAVIOR_STATE:'state',LIVEMESSAGE:'livemessage',BOOTLOAD:'bootload',FUNCTION_EXTENSION:'function_ext',CONTEXT_CHANGE:'ui/context-change',PAGECACHE_INVALIDATE:'pagecache/invalidate',NEW_NOTIFICATIONS:'chat/new_notifications',LIST_EDITOR_LISTS_CHANGED:'listeditor/friend_lists_changed',subscribe:function(k,b,i){if(!k||k.length==0)return null;k=$A(k);var a=Arbiter._getInstance(this);a._listeners.push({callback:b,types:k});var h=a._listeners.length-1;for(var d=0;d<k.length;d++)if(a._index[k[d]]){a._index[k[d]].push(h);}else a._index[k[d]]=[h];i=i||Arbiter.SUBSCRIBE_ALL;if(i==Arbiter.SUBSCRIBE_ALL){var c,j,g;for(var e=0;e<k.length;e++){j=k[e];if(typeof j!="string")throw new TypeError("Event types must be strings.");if(j in a._events)for(var f=0;f<a._events[j].length;f++){c=a._events[j][f];g=b.apply(null,[j,c]);if(g===false){a._events[j].splice(f,1);f--;}}}}else if(i!=Arbiter.SUBSCRIBE_NEW)throw new TypeError("Bad subscription policy.");return {subscriberID:h};},unsubscribe:function(e){if(!('subscriberID' in e))throw new TypeError("Not an arbiter token.");var a=Arbiter._getInstance(this);var c=a._listeners[e.subscriberID];for(var d=0;d<c.types.length;d++){var f=c.types[d];if(a._index[f])for(var b=0;b<a._index[f].length;b++)if(a._index[f][b]==e.subscriberID){a._index[f].splice(b,1);if(a._index[f].length==0)delete a._index[f];break;}}delete a._listeners[e.subscriberID];},inform:function(h,c,b){var j=$A(h);var a=Arbiter._getInstance(this);b=b||Arbiter.BEHAVIOR_EVENT;for(var e=0;e<j.length;e++){var h=j[e],d=null;if(b==Arbiter.BEHAVIOR_PERSISTENT){d=a._events.length;if(!(h in a._events))a._events[h]=[];a._events[h].push(c);a._events[h]._stateful=false;}else if(b==Arbiter.BEHAVIOR_STATE){d=0;a._events[h]=[c];a._events[h]._stateful=true;}else if(h in a._events)a._events[h]._stateful=false;window.ArbiterMonitor&&ArbiterMonitor.getInstance(a).log('event',h,c);var g;if(a._index[h]){var i=a._index[h];for(var f=0;f<i.length;f++){g=a._listeners[i[f]].callback.apply(null,[h,c]);if(g===false){if(d!==null)a._events[h].splice(d,1);break;}}}a._updateCallbacks(h,c);window.ArbiterMonitor&&ArbiterMonitor.getInstance(a).log('done',h,c);}},query:function(b){var a=Arbiter._getInstance(this);if(!(b in a._events))return null;if(!a._events[b]._stateful)throw new Error("Querying state of an unstateful event.");if(a._events[b].length)return a._events[b][0];return null;},_instance:null,_getInstance:function(a){if(a instanceof Arbiter)return a;if(!Arbiter._instance)Arbiter._instance=new Arbiter();return Arbiter._instance;},registerCallback:function(b,d){var h,c=0,a=Arbiter._getInstance(this),g=false;if(typeof b=='function'){h=a._last_id;a._last_id++;g=true;}else{if(!a._callbacks[b])return null;h=b;}if(hasArrayNature(d)){var i={};for(var f=0;f<d.length;f++)i[d[f]]=1;d=i;}for(var j in d){try{if(a.query(j))continue;}catch(e){}c+=d[j];if(a._listen[j]===undefined)a._listen[j]={};a._listen[j][h]=(a._listen[j][h]||0)+d[j];}if(c==0&&g){b();return null;}if(!g){a._callbacks[h].depnum+=c;}else a._callbacks[h]={callback:async_callback(b,'arbiter'),depnum:c};return h;},_updateCallbacks:function(d,c){if(c===null||!this._listen[d])return;for(var b in this._listen[d]){this._listen[d][b]--;if(this._listen[d][b]<=0)delete this._listen[d][b];this._callbacks[b].depnum--;if(this._callbacks[b].depnum<=0){var a=this._callbacks[b].callback;delete this._callbacks[b];a();}}}});
Function.prototype.deferUntil=function(a,g,b,h){if(typeof this!='function'||g&&typeof g!='number')throw new TypeError();if(a()){this();return;}var e=this,d=null,f=(new Date()).getTime();var c=function(){if(!a())if(g&&(new Date().getTime()-f)>=g){h&&h();}else return;d&&clearInterval(d);e();};d=setInterval(c,20,b);return d;};var Bootloader=window.Bootloader=(window.Bootloader&&window.Bootloader.realBootloader)?window.Bootloader:(function(a){return {realBootloader:true,configurePage:function(b){var h={};var g=this.resolveResources(b);for(var c=0;c<g.length;c++){h[g[c].src]=g[c];this.requested(g[c].name);this._startCSSPoll(g[c].name);}var e=document.getElementsByTagName('link');for(var c=0;c<e.length;++c){if(e[c].rel!='stylesheet')continue;for(var d in h)if(e[c].href.indexOf(d)!==-1){var f=h[d].name;this._cssLinkMap[f]=e[c];if(h[d].permanent)this._permanent[f]=true;delete h[d];break;}this._cssLinks.push(e[c]);}},loadComponents:function(d,b){d=$A(d);var g=[];for(var e=0;e<d.length;++e){if(!d[e])continue;var c=this._componentMap[d[e]];if(!!c)for(var f=0;f<c.length;++f)g.push(c[f]);}return this.loadResources(g,b);},loadResources:function(j,b,i,m){j=Bootloader.resolveResources($A(j));if(i){var g={};var e=j.length&&j[0].hash;if(!window.ResourceBundler||!e){for(var d=0;d<j.length;++d)g[j[d].name]=true;}else ResourceBundler.dropLocalResources(this._earlyResources);for(var f in this._requested)if(!(f in this._permanent)&&!(f in g)&&!(f in this._earlyResources))this._unloadResource(f);this._earlyResources={};}var n=[];var c=[];var h=[];for(var d=0;d<j.length;++d){var k=j[d];if(k.permanent)this._permanent[k.name]=true;var l=Arbiter.BOOTLOAD+'/'+k.name;if(Arbiter.query(l)!==null)continue;if(!k.nonblocking)h.push(l);if(!this._requested[k.name]){this.requested(k.name);if(k.hash){c.push(k);}else{n.push(k);window.CavalryLogger&&CavalryLogger.getInstance().measureResources(k,m);}}}if(b)b=Arbiter.registerCallback(b,h);if(c.length)if(!window.ResourceBundler){window.Util&&false;}else ResourceBundler.fetchComboRsrcs(c);for(var d=0;d<n.length;++d)this.requestResource(n[d].type,n[d].src,n[d].name);return b;},_fetchWithIframe:function(d){var c=null,b=null;var e=Arbiter.BOOTLOAD+':iframe';if(!this._iframe){c=this._iframe=document.createElement('iframe');copy_properties(c.style,{width:'0',height:'0',frameborder:'0',left:'0',top:'0',position:'absolute'});c.onload=bind(null,Arbiter.inform,e,true,Arbiter.BEHAVIOR_STATE);c.src="about:blank";c.id='bootloader_iframe';this.getHardpoint().appendChild(c);}Arbiter.registerCallback(bind(this,this._addResourceToIframe,d),[e]);},_addResourceToIframe:function(e){var c=document.getElementById('bootloader_iframe');var b=(c.contentDocument?c.contentDocument:(c.contentWindow?c.contentWindow.document:window.frames.bootloader_iframe.document));var d=b.createElement("script");if(e.charAt(0)=='/')e=location.protocol+'/'+'/'+location.host+e;d.src=e;d.type='text/javascript';d.async=true;b.getElementsByTagName('head')[0].appendChild(d);},requestResource:function(h,g,e){var b=this.getHardpoint();switch(h){case 'js':if(/\/rsrc.php\/(v[^\/]+\/)?(z[^\/]+\/)?p\//.test(g)){this._fetchWithIframe(g);}else{var f=document.createElement('script');f.src=g;f.type='text/javascript';f.async=true;b.appendChild(f);}break;case 'css':var d=null;for(var c=0;c<this._cssLinks.length;++c)if(this._cssLinks[c]._unused){d=this._cssLinks[c];if(e)this._cssLinkMap[e]=d;break;}if(!d){var d=document.createElement('link');d.rel="stylesheet";d.type="text/css";d.media="all";d.href=g;this._cssLinkMap[e]=d;this._cssLinks.push(d);b.appendChild(d);}else d.href=g;d._unused=false;this._startCSSPoll(e);break;default:throw new TypeError("Bad resource type `"+h+"'.");}},_startCSSPoll:function(d){var c='bootloader_'+d.replace(/[^a-z0-9]/ig,'_');function b(e,h,f,g){g.deferUntil(e,h,false,function(){window.Util;});}b(function(){return document.body;},5000,"Still no DOM",function(){var e=document.createElement('div');e.id=c;document.body.appendChild(e);b(function(){var g='42';var f;return e.offsetHeight==g||e.currentStyle&&e.currentStyle.height==g+'px'||window.getComputedStyle&&(f=document.defaultView.getComputedStyle(e,null))&&f.getPropertyValue('height')==g+'px';},Bootloader._CSS_POLL_EXPIRATION,"CSS timeout",function(){Bootloader.done([d],true);e.parentNode.removeChild(e);});});},done:function(f,c){f=Bootloader.resolveResources(f,'name');var g=(a&&a._preloaded)||[];(a||{})._preloaded=[];f=f.concat(g);this.requested(f);if(!c){var e={sender:this};Arbiter.inform(Arbiter.BOOTLOAD,e,Arbiter.BEHAVIOR_EVENT);}for(var b=0;b<f.length;++b){var d=f[b];Arbiter.inform(Arbiter.BOOTLOAD+'/'+d,true,Arbiter.BEHAVIOR_STATE);}},requested:function(c){c=$A(c);for(var b=0;b<c.length;++b)this._requested[c[b]]=true;},enableBootload:function(b){for(var c in b)if(!this._componentMap[c])this._componentMap[c]=b[c];},_unloadResource:function(c){if(this._cssLinks&&(c in this._cssLinkMap)){var b=this._cssLinkMap[c];if(b){b.href=Bootloader._UNUSED_CSS_URL;b._unused=true;}delete this._cssLinkMap[c];delete this._requested[c];Arbiter.inform(Arbiter.BOOTLOAD+'/'+c,null,Arbiter.BEHAVIOR_STATE);}},getHardpoint:function(){if(!this._hardpoint){var c,b=document.getElementsByTagName('head');if(b.length){c=b[0];}else c=document.body;this._hardpoint=c;}return this._hardpoint;},setResourceMap:function(c){if(!c)return;for(var b in c)this._resources[b]=c[b];},resolveResources:function(e,b){if(!e)return;var d=new Array(e.length);for(var c=0;c<e.length;++c)if(!e[c].type&&e[c] in this._resources){d[c]=this._resources[e[c]];if(b&&(b in d[c]))d[c]=d[c][b];}else d[c]=e[c];return d;},loadEarlyResources:function(c){this.loadResources(c);for(var b=0;b<c.length;++b)if(!c[b].permanent)this._earlyResources[c[b].name]=c[b];},_requested:{},_permanent:{},_componentMap:{},_cssLinkMap:{},_cssLinks:[],_hardpoint:null,_resources:{},_earlyResources:{},_CSS_POLL_EXPIRATION:5000,_UNUSED_CSS_URL:'javascript:void(0)'};})(window.Bootloader);
function get_intern_ref(c){if(!!c){var b={profile_minifeed:1,info_tab:1,gb_content_and_toolbar:1,gb_muffin_area:1,ego:1,bookmarks_menu:1,jewelBoxNotif:1,jewelNotif:1,BeeperBox:1,navSearch:1};for(var a=c;a&&a!=document.body;a=a.parentNode){if(!a.id||typeof a.id!=='string')continue;if(a.id.substr(0,8)=='pagelet_')return a.id.substr(8);if(b[a.id])return a.id;}}return '-';}function set_ue_cookie(a){document.cookie="act="+encodeURIComponent(a)+"; path=/; domain="+window.location.hostname.replace(/^.*(\.facebook\..*)$/i,'$1');}var user_action=(function(){var c=0,a=0,b=(!window.ArbiterMonitor)?'r':'a';return function(j,e,f){var k=null,g=null,h=null;if(a)return;a=1;setTimeout(function(){a=0;},0);if(!!f){k=f.type;var i=0;f.ctrlKey&&(i+=1);f.shiftKey&&(i+=2);f.altKey&&(i+=4);f.metaKey&&(i+=8);if(i)k+=i;}if(!j&&f)j=f.getTarget();if(!!j){g=j.href;if((!g||j.rel)&&j.getAttribute){var d=j.getAttribute('ajaxify');if(d&&d!='1')g=d;}if(!g&&j.name)g=j.name;}c++;var m=(+new Date());var l=m+'/'+c;set_ue_cookie(l);if(b=='a'){ArbiterMonitor.initUE(l);h=ArbiterMonitor.get_intern_ref(j);}Arbiter.inform('user/action',{context:e,event:f,node:j});window.Log&&Log('act',[m,c,g||'-',e,k||'-',h||get_intern_ref(j),b,window.URI?URI.getRequestURI().toString():location.pathname+location.search+location.hash]);};})();
ge=$=function(a){return typeof a=='string'?document.getElementById(a):a;};
CSS=window.CSS||{hasClass:function(b,a){b=$(b);return (' '+b.className+' ').indexOf(' '+a+' ')>-1;},addClass:function(b,a){b=$(b);if(a&&!CSS.hasClass(b,a))b.className=b.className+' '+a;return b;},removeClass:function(b,a){b=$(b);b.className=b.className.replace(new RegExp('(^|\\s)'+a+'(?:\\s|$)','g'),'$1');return b;},toggleClass:function(b,a){return CSS.conditionClass(b,a,!CSS.hasClass(b,a));},conditionClass:function(c,b,a){return (a?CSS.addClass:CSS.removeClass)(c,b);},show:function(a){CSS.removeClass(a,'hidden_elem');},hide:function(a){CSS.addClass(a,'hidden_elem');},toggle:function(a){CSS.toggleClass(a,'hidden_elem');}};
var Parent={byTag:function(a,b){b=b.toUpperCase();while(a&&a.nodeName!=b)a=a.parentNode;return a;},byClass:function(b,a){while(b&&!CSS.hasClass(b,a))b=b.parentNode;return b;}};
!function(){var a=document;var b=a.documentElement;var c=null;b.onclick=function(d){d=d||window.event;c=d.target||d.srcElement;var e=Parent.byTag(c,'A')||b;var f=e.getAttribute('ajaxify')||e.href;f&&user_action(e,'a',d);switch(e.rel){case 'dialog':case 'dialog-post':Bootloader.loadComponents('dialog',function(){Dialog.bootstrap(f,null,e.rel=='dialog');});break;case 'async':case 'async-post':Bootloader.loadComponents('async',function(){AsyncRequest.bootstrap(f,e);});break;default:return;}return false;};b.onsubmit=function(d){d=d||window.event;var e=d.target||d.srcElement;if(!e||e.nodeName!='FORM'||!e.getAttribute('ajaxify'))return;user_action(e,'f',d);Bootloader.loadComponents('dom-form',function(){Form.bootstrap(e,c);});return false;};b.className=b.className.replace('no_js','');}();
Function.prototype.extend=function(a){if(typeof a!='string')throw new TypeError('You must extend() with the name of a class, not the function object. '+'This generally means you need to replace "Dog.extend(Animal);" with '+'"Dog.extend(\'Animal\');".');if(!Metaprototype._arbiterHandle)Metaprototype._arbiterHandle=Arbiter.subscribe(Arbiter.BOOTLOAD,Metaprototype._onbootload.bind(Metaprototype));Metaprototype._queue(this,a);};function Metaprototype(){}copy_properties(Metaprototype,{_pending:{},_queue:function(b,c){b.__class_extending=true;var a=Arbiter.registerCallback(bind(Metaprototype,Metaprototype._apply,b,c),[Arbiter.FUNCTION_EXTENSION+'/'+c,Arbiter.BOOTLOAD]);if(a!==null)this._pending[c]=true;},_onbootload:function(b,a){this._update();},_update:function(){for(var a in this._pending)if(!!window[a]){delete this._pending[a];if(!window[a].__class_extending){Arbiter.inform(Arbiter.FUNCTION_EXTENSION+'/'+a,true,Arbiter.BEHAVIOR_STATE);}else window[a].__class_name=a;}},_apply:function(a,c){delete a.__class_extending;var d=__metaprototype(window[c],0);var b=__metaprototype(a,d.prototype.__level+1);b.parent=d;if(!!a.__class_name)Arbiter.inform(Arbiter.FUNCTION_EXTENSION+'/'+a.__class_name,true,Arbiter.BEHAVIOR_STATE);}});function __metaprototype(c,a){if(c.__metaprototype)return c.__metaprototype;var b=new Function();b.construct=__metaprototype_construct;b.prototype.construct=__metaprototype_wrap(c,a,true);b.prototype.__level=a;b.base=c;c.prototype.parent=b;c.__metaprototype=b;return b;}function __metaprototype_construct(a){__metaprototype_init(a.parent);var c=[];var b=a;while(b.parent){c.push(new_obj=new b.parent());new_obj.__instance=a;b=b.parent;}a.parent=c[1];c.reverse();c.pop();a.__parents=c;a.__instance=a;return a.parent.construct.apply(a.parent,arguments);}function __metaprototype_init(d){if(d.initialized)return;var a=d.base.prototype;if(d.parent){__metaprototype_init(d.parent);var e=d.parent.prototype;for(var b in e)if(b!='__level'&&b!='construct'&&a[b]===undefined)a[b]=d.prototype[b]=e[b];}d.initialized=true;var c=d.prototype.__level;for(var b in a)if(b!='parent')a[b]=d.prototype[b]=__metaprototype_wrap(a[b],c);}function __metaprototype_wrap(c,b,d){if(typeof c!='function'||c.__prototyped)return c;var a=function(){var g=this.__instance;if(g){var h=g.parent;g.parent=b?g.__parents[b-1]:null;if(d){var e=[];for(var f=1;f<arguments.length;f++)e.push(arguments[f]);var i=c.apply(g,e);}else var i=c.apply(g,arguments);g.parent=h;return i;}else return c.apply(this,arguments);};a.__prototyped=true;return a;}Function.prototype.mixin=function(){var a=[this.prototype].concat(Array.prototype.slice.call(arguments));Function.mixin.apply(null,a);};Function.mixin=function(){for(var b=1,a=arguments.length;b<a;++b)copy_properties(arguments[0],Mixins[arguments[b]]||arguments[b]);};Function.prototype.bind=function(b){var a=[b,this].concat(Array.prototype.slice.call(arguments,1));return bind.apply(null,a);};Function.prototype.curry=Function.prototype.bind.bind(null,null);Function.prototype.shield=function(b){if(typeof this!='function')throw new TypeException();var a=this.bind.apply(this,$A(arguments));return function(){return a();};};Function.prototype.defer=function(b,a){if(typeof this!='function')throw new TypeError();b=b||0;return setTimeout(this,b,a);};Function.prototype.recur=function(b,a){if(typeof this!='function')throw new TypeError();return setInterval(this,b,a);};function bagofholding(){}function bagof(a){return function(){return a;};}function abstractMethod(){throw new Error('You must implement this function in your base class.');}function identity(a){return a;}
var Mixins={Arbiter:{_getArbiterInstance:function(){return this._arbiter||(this._arbiter=new Arbiter());},inform:function(c,b,a){this._getArbiterInstance().inform(c,b,a);},subscribe:function(c,a,b){return this._getArbiterInstance().subscribe(c,a,b);},unsubscribe:function(a){this._getArbiterInstance().unsubscribe(a);}}};
var ua={ie:function(){return ua._populate()||this._ie;},firefox:function(){return ua._populate()||this._firefox;},opera:function(){return ua._populate()||this._opera;},safari:function(){return ua._populate()||this._safari;},safariPreWebkit:function(){return ua._populate()||this._safari<500;},chrome:function(){return ua._populate()||this._chrome;},windows:function(){return ua._populate()||this._windows;},osx:function(){return ua._populate()||this._osx;},linux:function(){return ua._populate()||this._linux;},iphone:function(){return ua._populate()||this._iphone;},_populated:false,_populate:function(){if(ua._populated)return;ua._populated=true;var a=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))/.exec(navigator.userAgent);var c=/(Mac OS X)|(Windows)|(Linux)/.exec(navigator.userAgent);var b=/\b(iPhone|iP[ao]d)/.exec(navigator.userAgent);if(a){ua._ie=a[1]?parseFloat(a[1]):NaN;if(ua._ie>=8&&!window.HTMLCollection)ua._ie=7;ua._firefox=a[2]?parseFloat(a[2]):NaN;ua._opera=a[3]?parseFloat(a[3]):NaN;ua._safari=a[4]?parseFloat(a[4]):NaN;if(ua._safari){a=/(?:Chrome\/(\d+\.\d+))/.exec(navigator.userAgent);ua._chrome=a&&a[1]?parseFloat(a[1]):NaN;}else ua._chrome=NaN;}else ua._ie=ua._firefox=ua._opera=ua._chrome=ua._safari=NaN;if(c){ua._osx=!!c[1];ua._windows=!!c[2];ua._linux=!!c[3];}else ua._osx=ua._windows=ua._linux=false;ua._iphone=b;}};
OnloadEvent={ONLOAD:'onload/onload',ONLOAD_CALLBACK:'onload/onload_callback',ONLOAD_DOMCONTENT:'onload/dom_content_ready',ONLOAD_DOMCONTENT_CALLBACK:'onload/domcontent_callback',ONBEFOREUNLOAD:'onload/beforeunload',ONUNLOAD:'onload/unload'};function _include_quickling_events_default(){return !window.loading_page_chrome;}function onbeforeunloadRegister(a,b){if(b===undefined)b=_include_quickling_events_default();b?_addHook('onbeforeleavehooks',a):_addHook('onbeforeunloadhooks',a);}function onunloadRegister(a){if(!window.onunload)window.onunload=function(){Arbiter.inform(OnloadEvent.ONUNLOAD,true,Arbiter.BEHAVIOR_STATE);};_addHook('onunloadhooks',a);}function onleaveRegister(a){_addHook('onleavehooks',a);}function _addHook(b,a){window[b]=(window[b]||[]).concat(a);}function removeHook(a){window[a]=[];}function _domcontentready(){Arbiter.inform(OnloadEvent.ONLOAD_DOMCONTENT,true,Arbiter.BEHAVIOR_STATE);}function _bootstrapEventHandlers(){var a=document,d=window;if(a.addEventListener){if(ua.safari()<525){var c=setInterval(function(){if(/loaded|complete/.test(a.readyState)){_domcontentready();clearInterval(c);}},10);}else a.addEventListener("DOMContentLoaded",_domcontentready,true);}else{var b='javascript:void(0)';if(d.location.protocol=='https:')b='//:';a.write('<script onreadystatechange="if (this.readyState==\'complete\') {'+'this.parentNode.removeChild(this);_domcontentready();}" '+'defer="defer" src="'+b+'"><\/script\>');}d.onload=function(){d.CavalryLogger&&CavalryLogger.getInstance().setTimeStamp('t_layout');var e=a&&a.body&&a.body.offsetWidth;Arbiter.inform(OnloadEvent.ONLOAD,true,Arbiter.BEHAVIOR_STATE);};d.onbeforeunload=function(){var e={};Arbiter.inform(OnloadEvent.ONBEFOREUNLOAD,e,Arbiter.BEHAVIOR_STATE);if(!e.warn)Arbiter.inform('onload/exit',true);return e.warn;};}onload_callback=Arbiter.registerCallback(function(){window.CavalryLogger&&CavalryLogger.getInstance().setTimeStamp('t_onload');Arbiter.inform(OnloadEvent.ONLOAD_CALLBACK,true,Arbiter.BEHAVIOR_STATE);},[OnloadEvent.ONLOAD]);domcontent_callback=Arbiter.registerCallback(function(){window.CavalryLogger&&CavalryLogger.getInstance().setTimeStamp('t_domcontent');Arbiter.inform(OnloadEvent.ONLOAD_DOMCONTENT_CALLBACK,true,Arbiter.BEHAVIOR_STATE);},[OnloadEvent.ONLOAD_DOMCONTENT]);if(!window._eventHandlersBootstrapped){_eventHandlersBootstrapped=true;_bootstrapEventHandlers();}
function tx(b,a){if(typeof _string_table=='undefined')return;b=_string_table[b];return _tx(b,a);}function intl_ends_in_punct(a){if(typeof a!='string')return false;return a.match(new RegExp(intl_ends_in_punct.punct_char_class+'['+')"'+"'"+'\u00BB'+'\u0F3B'+'\u0F3D'+'\u2019'+'\u201D'+'\u203A'+'\u3009'+'\u300B'+'\u300D'+'\u300F'+'\u3011'+'\u3015'+'\u3017'+'\u3019'+'\u301B'+'\u301E'+'\u301F'+'\uFD3F'+'\uFF07'+'\uFF09'+'\uFF3D'+'\s'+']*$'));}intl_ends_in_punct.punct_char_class='['+'.!?'+'\u3002'+'\uFF01'+'\uFF1F'+'\u0964'+'\u2026'+'\u0EAF'+'\u1801'+'\u0E2F'+'\uFF0E'+']';function intl_render_list_separator(){return _tx("{previous-items}, {next-items}",{'previous-items':'','next-items':''});}function intl_phonological_rules(e){var c,b=e,d=window.intl_locale_rewrites;try{if(d){var pats=[],reps=[];for(var p in d.patterns){var pat=p,rep=d.patterns[p];for(var m in d.meta){c=new RegExp(m.slice(1,-1),'g');pat=pat.replace(c,d.meta[m]);rep=rep.replace(c,d.meta[m]);}pats[pats.length]=pat;reps[reps.length]=rep;}for(var ii=0;ii<pats.length;ii++){c=new RegExp(pats[ii].slice(1,-1),'g');if(reps[ii]=='javascript'){if(m=new String(e.match(c)))e=e.replace(c,m.slice(1).toLowerCase());}else e=e.replace(c,reps[ii]);}}}catch(a){e=b;}c=new RegExp('\x01','g');e=e.replace(c,'');return e;}function _tx(e,a){if(a)if(!(typeof a!='object')){var d;for(var c in a){if(intl_ends_in_punct(a[c])){d=new RegExp('\{'+c+'\}'+intl_ends_in_punct.punct_char_class+'*','g');}else d=new RegExp('\{'+c+'\}','g');var b='';if(a[c][0]!='~')b='\x01';e=e.replace(d,b+a[c]+b);}e=intl_phonological_rules(e);}return e;}
InitialJSLoader={INITIAL_JS_READY:'BOOTLOAD/JSREADY',load:function(a){InitialJSLoader.callback=Bootloader.loadResources(a,InitialJSLoader.callback);},callback:Arbiter.registerCallback(function(){Arbiter.inform(InitialJSLoader.INITIAL_JS_READY,true,Arbiter.BEHAVIOR_STATE);},[OnloadEvent.ONLOAD_DOMCONTENT_CALLBACK])};
function goURI(b,a){b=b.toString();if(!a&&window.PageTransitions&&PageTransitions.isInitialized()){PageTransitions.go(b);}else if(window.location.href==b){window.location.reload();}else window.location.href=b;}function loadExternalJavascript(f,b,a){if(f instanceof Array){var e=f.shift(0);if(e){loadExternalJavascript(e,function(){if(f.length){loadExternalJavascript(f,b,a);}else b&&b();},a);}else if(b)b();}else{var c=a?document.body:document.getElementsByTagName('head')[0];var d=document.createElement('script');d.type='text/javascript';d.src=f;if(b){d.onerror=d.onload=b;d.onreadystatechange=function(){if(this.readyState=="complete"||this.readyState=="loaded")b();};}c.appendChild(d);return d;}}var rsrcProvideAndRequire=function(){var c={},d={};function b(i,f,e){if(i in d){e=e||{};for(var g in d[i].requires)if(!(g in e)){for(var h in d[i].provides)e[h]=1;if((g in f)||b(g,f,e))return true;}}return false;}function a(){do{var e=false;for(var f in d){var h=d[f];for(var g in h.requires)if(!c[g]&&!b(g,h.provides)){h=null;break;}if(h){for(g in h.provides){delete d[g];c[g]=1;}h.fn.call();e=true;}}}while(e);}return function(h,i,f){var e={provides:h,requires:i,fn:f};for(var g in h)d[g]=e;a();};}();function invoke_callbacks(b,d){if(b)for(var c=0;c<b.length;c++)try{(new Function(b[c])).apply(d);}catch(a){}}
var KEYS={BACKSPACE:8,TAB:9,RETURN:13,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46};
function BigPipe(a,f,b,j,i,e,c,g,d,h){copy_properties(this,{_arbiter:a||Arbiter,_phaseDoneCallbacks:[],_numPhases:f,_currentPhase:0,_timeout:20,_cavalry:b||(window.CavalryLogger?CavalryLogger.getInstance():null),_tti_phase:j||1,_roadrunner_enabled:i,_is_quickling:e,_domcontent_callback:c||domcontent_callback,_onload_callback:g||onload_callback,_domcontent_evt:d||OnloadEvent.ONLOAD_DOMCONTENT_CALLBACK,_onload_evt:h||OnloadEvent.ONLOAD_CALLBACK});this._inst=this._cavalry&&window._pagelet_profile;this._init();BigPipe._current_instance=this;}copy_properties(BigPipe.prototype,{_ct:function(a){return ('length' in a&&a.length===0)?{}:a;},_displayPagelet:function(d){for(var c in d.content){var b=document.getElementById(c);var a=d.content[c];if(b){if(a)if(d.append||ua.ie()<8){if(!d.append)while(b.firstChild)b.removeChild(b.firstChild);this._appendNodes(b,a);}else b.innerHTML=a;if(this._inst)this._cavalry.setTimeStamp('t_pagelet_display_'+d.id,true);}else window.Util&&false;}this._arbiter.inform(d.id+'_displayed',true,Arbiter.BEHAVIOR_STATE);},_appendNodes:function(a,d){var e=document.createElement('div');var c=ua.ie()<7;if(c)a.appendChild(e);e.innerHTML=d;var b=document.createDocumentFragment();while(e.firstChild)b.appendChild(e.firstChild);a.appendChild(b);if(c)a.removeChild(e);},_downloadJsForPagelet:function(a){Bootloader.loadResources(a.css.concat(a.js),bind(this,function(){if(this._inst)this._cavalry.setTimeStamp('t_pagelet_jsdone_'+a.id);(!this._is_quickling)&&a.requires.push(InitialJSLoader.INITIAL_JS_READY);if(a.phase>=1)a.requires.push('uipage_onload');var c=bind(this,function(){if(this!=BigPipe._current_instance)return;invoke_callbacks(a.onload);if(this._inst)this._cavalry.setTimeStamp('t_pagelet_done_'+a.id);this._arbiter.inform('pagelet_onload',true,Arbiter.BEHAVIOR_EVENT);if(a.page_cache){if(!a.id)a.html=$("content").innerHTML;Quickling.cacheAndExecResponse(a,true);}a.provides&&this._arbiter.inform(a.provides,true,Arbiter.BEHAVIOR_STATE);});var b=bind(this,function(){(this==BigPipe._current_instance)&&invoke_callbacks(a.onafterload);});this._arbiter.registerCallback(c,a.requires);this._arbiter.registerCallback(b,[this._onload_evt]);}),false,a.id);},_downloadCssAndDisplayPagelet:function(a){this._inst&&this._cavalry.setTimeStamp('t_pagelet_start_'+a.id);var b=this;Bootloader.loadResources(a.css,function(){var c=a.display_dependency||[];var e=[];for(var d=0;d<c.length;d++)e.push(c[d]+'_displayed');b._arbiter.registerCallback(function(){b._displayPagelet(a);},e);},false,a.id);},onPageletArrive:function(a){if(this._inst)this._cavalry.setTimeStamp('t_pagelet_arrive_'+a.id);Bootloader.setResourceMap(a.resource_map);Bootloader.enableBootload(this._ct(a.bootloadable));a.id&&this._arbiter.registerCallback(this._downloadCssAndDisplayPagelet.bind(this,a),['phase_begin_'+a.phase]);this._arbiter.registerCallback(this._downloadJsForPagelet.bind(this,a),[this._domcontent_evt]);this._onload_callback=this._arbiter.registerCallback(this._onload_callback,['pagelet_onload']);a.id&&this._arbiter.registerCallback(this._phaseDoneCallbacks[a.phase],[a.id+'_displayed']);a.is_last&&this._arbiter.inform('phase_complete_'+a.phase,true,Arbiter.BEHAVIOR_STATE);a.invalidate_cache&&a.invalidate_cache.length&&Arbiter.inform(Arbiter.PAGECACHE_INVALIDATE,a.invalidate_cache);},_onPhaseDone:function(){if(this._currentPhase===this._tti_phase&&this._roadrunner_enabled){this._arbiter.inform('tti_bigpipe',true,Arbiter.BEHAVIOR_EVENT);this._cavalry&&this._cavalry.measurePageLoad(true);}var a=this._currentPhase+1;setTimeout(this._arbiter.inform.bind(this._arbiter,'phase_begin_'+a,true,Arbiter.BEHAVIOR_STATE),this._timeout);if(a==this._numPhases)this._arbiter.inform('pagelet_displayed_all',true,Arbiter.BEHAVIOR_STATE);this._currentPhase++;},_init:function(){for(var a=0;a<this._numPhases;a++){this._phaseDoneCallbacks[a]=this._arbiter.registerCallback(this._onPhaseDone.bind(this),['phase_complete_'+a]);if(this._inst)this._arbiter.registerCallback(bind(this,function(b){this._cavalry.setTimeStamp('t_phase_begin_'+b);},a+1),['phase_begin_'+(a+1)]);}this._arbiter.registerCallback(this._domcontent_callback,['pagelet_displayed_all']);if(this._inst)this._cavalry.setTimeStamp('t_phase_begin_0');this._arbiter.inform('phase_begin_0',true,Arbiter.BEHAVIOR_STATE);}});
function incorporate_fragment(a,b){if(b&&a.pathname=='/')return;var d=/^(?:(?:[^:\/?#]+):)?(?:\/\/(?:[^\/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?/;var c='';a.href.replace(d,function(e,l,n,h){var g,p;g=p=l+(n?'?'+n:'');if(h){h=h.replace(/^(!|%21)/,'');if(h.charAt(0)=='/'){g=h.replace(/^\/+/,'/');}else if(/&|=/.test(h)){var m={};var k=h.match(/([^#]*)(#.*)?/);var f=(n||'').split('&').concat((k[1]||'').split('&'));for(var i=0,j=f.length;i<j;i++){var q=f[i].split('=');if(q.length&&q[0]!='')m[q[0]]=q[1];}var o=[];for(var i in m)o.push(i+(m[i]?'='+m[i]:''));g=l+'?'+o.join('&')+(k[2]||'');}}g=b+g;if(g!=p)window.location.replace(c+g);});}if(window._is_quickling_index!==undefined)incorporate_fragment(window.location,window._is_quickling_index);
!function(){var c=document.documentElement;var b='child_focused';var d='DOMControl_placeholder';var a=function(e){e=e||window.event;var f=e.target||e.srcElement,h=f.getAttribute('placeholder');if(h){var g=Parent.byClass(f,'focus_target');if('focus'==e.type||'focusin'==e.type){if(f.value==h){f.value='';CSS.removeClass(f,d);g&&CSS.addClass(g,b);}}else if(f.value==''){CSS.addClass(f,d);f.value=h;g&&CSS.removeClass(g,b);}}};c.onfocusin=c.onfocusout=a;if(c.addEventListener){c.addEventListener('focus',a,true);c.addEventListener('blur',a,true);}}();
function fc_click(a,b){user_action(a,'ufi');fc_expand(a,b);}function fc_expand(a,b){var c=a.form;CSS.removeClass(c,'collapsed_comments');CSS.removeClass(c,'hidden_add_comment');if(b!==false)c.add_comment_text.focus();return false;}

if (window.Bootloader) { Bootloader.done(["js\/4zfba0rzy84ksk04.pkg.js"]); }

Conclusion

Je vais écrire une fonction qui retire les retours à la ligne et les tabluations, parceque c’est classe de faire comme google et facebook.

Commentaires

1. Le lundi, septembre 20 2010, 23:30 par lux

... srx ? lol
Donc pk les codes sont "moches" car en web pour que la page soit charge le plus rapidement il faut reduire sa taille pour ca ils suppriment tout les caracteres inutiles comme les espaces les retour charriot, etc
Et donc tu te retrouve avec un beau pave de code mais derrier tu est bien content que google te sorte ta page avec 500 000 000 reponses en 0.000017sec
De meme pour la rapidite de FB mais eux ils cheatent il ont cree un compilo ("hiphop php" pour la culture)
Voila donc pour ces codes sont "moches" (mais un jour ils on ete beau tu sais mais le version .min est passe par la

2. Le mardi, septembre 21 2010, 00:17 par gnieark

Oui sérieux :S
Je ne développe pas d'applis web pour des millions d'utilisateurs quotidiens, mes plus gros développements sont en intranet, alors l'optimisation du code... Bien sur j'essaie de limiter les requetes sql, de bien les imbriquer sur les index, j'évite les boucles dans les boucles. Je ne fais du récursif que quand je sais que ça fera moins d'opérations que dans le sens "normal" etc...
Mais dans l'ensemble ma philosophie est de rendre le code le plus lisible possible, et les applis le plus paramétrables possible sans avoir besoin de revenir dans le code: pour moi pour m'y retrouver plus facilement, mais aussi pour pouvoir expliquer à mon employeur que je ne les rend pas "gnieark dépendant". Ils ont la frousse de ça.

Je me doutais quand même que ça avait entre autre pour but de réduire le temps de chargement de la page, probablement négligeable dans mon idée. Tous les noms variables, et même les noms de fonctions dans le cas de google sont réduits au minimum. J'y voyais aussi une façon d'opacifier volontairement ce dernier.

Par contre j'étais loin de me douter des gains annoncés.

Je te remercie pour cet éclaircissement.

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant une syntaxe wiki simplifiée.

La discussion continue ailleurs

URL de rétrolien : https://blog-du-grouik.tinad.fr/trackback/415

Fil des commentaires de ce billet

Page top