(function(H){H.ensure=function(I,J){G(D(I.js),D(I.css),J)};function D(I){if(!I){return[]}else{return(I.constructor==Array)?I:[I]}}function G(I,J,O){var M=0;H.each(I,function(){var P=this;if(A(P)||C("script","src",P)){E("Already loaded: "+P)}else{E("Requesting script: "+P);++M;H.ajax({type:"GET",url:P,success:function(){B(P)},error:function(){E("getScript() failed: "+P)},complete:function(){E("getScript() complete: "+P);M--},dataType:"script",cache:true,timeout:4000})}});H.each(J,function(){E("Ensuring css: href="+this);if(!A(this)&&!C("link","href",this)){var Q=document.createElement("link");Q.setAttribute("href",""+this);Q.setAttribute("rel","stylesheet");Q.setAttribute("type","text/css");var P=document.getElementsByTagName("head")[0]||document.documentElement;P.appendChild(Q);B(this)}});var L=25;var K=0;var N=function(){if(M<=0){O&&O()}else{E("waitForScripts: scriptsToLoad="+M+"; i="+(++K)+"; timeout="+L);L=Math.min(1000,L+50);window.setTimeout(N,L)}};N()}function C(I,L,K){var J=I+"["+L+"="+K+"]";count=H(J).length;E("isTagLoaded: result="+(count>0)+"; selector="+J);return count>0}var F=[];function A(I){return F[I]===true}function B(I){F[I]=true}function E(I){if(window.console&&console.log){console.log("jEnsure -- "+I)}else{if(window.opera&&opera.postError){opera.postError("jEnsure -- "+I)}}}})(jQuery)