var CJS=CJS||{};
CJS.scriptLoadCallbacks=CJS.scriptLoadCallbacks||{};
CJS.onScriptLoaded=function(b,c){if(CJS.loadedScripts&&CJS.loadedScripts[b]){c();
return
}if(CJS.scriptLoadCallbacks[b]&&CJS.scriptLoadCallbacks[b] instanceof Array){for(var a=0;
a<CJS.scriptLoadCallbacks[b].length;
a++){if(CJS.scriptLoadCallbacks[b][a]===c){return
}}}else{CJS.scriptLoadCallbacks[b]=[]
}CJS.scriptLoadCallbacks[b][CJS.scriptLoadCallbacks[b].length]=c
};
CJS.scriptLoaded=function(b){if(CJS.scriptLoadCallbacks[b]&&CJS.scriptLoadCallbacks[b] instanceof Array){for(var a=0;
a<CJS.scriptLoadCallbacks[b].length;
a++){CJS.scriptLoadCallbacks[b][a]()
}}CJS.loadedScripts=CJS.loadedScript||{};
CJS.loadedScripts[b]=true
};
CJS.start=function(){CJS.init();
CJS.findScripts();
CJS.downloadScripts();
if(CJS.defer){if("undefined"!=typeof(document.readyState)&&"complete"===document.readyState){CJS.processScripts()
}else{CJS.addHandler(window,"load",CJS.processScripts)
}}else{alert("Immediate processing is not currently supported.");
CJS.processScripts()
}};
CJS.findScripts=function(){var d=document.getElementsByTagName("script");
var a=d.length;
for(var c=0;
c<a;
c++){var b=d[c];
if("text/cjs"===CJS.getAttribute(b,"type")&&"undefined"===typeof(b.cjsfound)){CJS.aScripts[CJS.aScripts.length]=b;
b.cjsfound=true
}}};
CJS.downloadScripts=function(){var a=CJS.aScripts.length;
for(var c=0;
c<a;
c++){var b=CJS.aScripts[c];
var d=CJS.getAttribute(b,"data-cjssrc")||CJS.getAttribute(b,"cjssrc");
if(d){CJS.downloadScript(d)
}}};
CJS.downloadScript=function(a){CJS.dprint("downloading "+a);
if(CJS.bIE||CJS.bOpera){CJS.downloadScriptImage(a)
}else{CJS.downloadScriptObject(a)
}};
CJS.downloadScriptImage=function(b){var a=new Image();
a.onload=function(){CJS.onloadCallback(b)
};
a.onerror=function(){CJS.onloadCallback(b)
};
a.src=b
};
CJS.downloadScriptObject=function(a){if("undefined"===typeof(document.body)||!document.body){setTimeout("CJS.downloadScriptObject('"+a+"')",50);
return
}var b=document.createElement("object");
b.data=a;
b.width=0;
b.height=0;
b.onload=function(){CJS.onloadCallback(a)
};
b.onerror=function(){CJS.onloadCallback(a)
};
document.body.appendChild(b)
};
CJS.onloadCallback=function(a){CJS.hLoaded[a]=true
};
CJS.execCallback=function(a){CJS.dprint("execCallback: "+a);
if(0===CJS.aExecs.length){CJS.dprint("ERROR: We finished executing a script but the exec queue is empty: "+a);
return
}if(a==CJS.aExecs[0][0]){CJS.aExecs.splice(0,1)
}else{CJS.dprint("ERROR: We finished executing a script that wasn't on the queue: "+a)
}if(CJS.aExecs.length){CJS.execScript(CJS.aExecs[0][0],CJS.aExecs[0][1])
}};
CJS.processScripts=function(){CJS.processNextScript()
};
CJS.processNextScript=function(){if(CJS.aScripts.length){var a=CJS.aScripts[0];
CJS.curScript=a;
var c=CJS.getAttribute(a,"data-cjssrc")||CJS.getAttribute(a,"cjssrc");
var b=CJS.getAttribute(a,"data-cjsexec")||CJS.getAttribute(a,"cjsexec");
if(c){if("false"===b){CJS.aScripts.splice(0,1);
setTimeout(CJS.processNextScript,0)
}else{if(CJS.hLoaded[c]){CJS.processExternalScript(a,CJS.processNextScript);
CJS.aScripts.splice(0,1)
}else{CJS.dprint("processNextScript: waiting for script "+c);
if("undefined"===typeof(a.startwait)){a.startwait=Number(new Date())
}var d=Number(new Date())-a.startwait;
if(d<CJS.maxWait){setTimeout(CJS.processNextScript,CJS.waitival)
}else{CJS.aScripts.splice(0,1);
setTimeout(CJS.processNextScript,0);
CJS.dprint_error("There was an error loading script: "+c)
}}}}else{CJS.processInlineScript(a);
CJS.aScripts.splice(0,1);
setTimeout(CJS.processNextScript,0)
}return
}CJS.findScripts();
if(CJS.aScripts.length){CJS.downloadScripts();
setTimeout(CJS.processNextScript,0);
return
}CJS.dprint("DONE processing scripts");
CJS.done=true
};
CJS.processInlineScript=function(script){CJS.curScript=script;
var code=script.text;
CJS.dprint("processInlineScript: processing script code: "+code.substring(0,64));
try{CJS.eval(code)
}catch(exception){CJS.dprint_error(exception)
}};
CJS.processExternalScript=function(a,c){var b=CJS.getAttribute(a,"data-cjssrc")||CJS.getAttribute(a,"cjssrc");
CJS.dprint("processExternalScript: processing script "+b);
CJS.execScript(b,c)
};
CJS.execScript=function(e,d){CJS.dprint("execScript: "+e);
if(0===CJS.aExecs.length){CJS.aExecs[CJS.aExecs.length]=[e,d]
}else{if(e!=CJS.aExecs[0][0]){CJS.dprint("execScript: queueing for later: "+e);
CJS.aExecs[CJS.aExecs.length]=[e,d];
return
}}var f=(function(g){switch(typeof(g)){case"string":g=new Function(g);
break;
case"function":break;
default:g=new Function()
}return g
})(d);
var b=function(){if(this.readyState&&this.readyState!="complete"&&this.readyState!="loaded"){return
}CJS.execCallback(e);
this.onload=this.onreadystatechange=null;
f()
};
var c=document.createElement("script");
c.onload=c.onreadystatechange=b;
c.src=e;
var a=document.getElementsByTagName("script")[0];
a.parentNode.insertBefore(c,a)
};
CJS.eval=function(code){if(window.execScript){window.execScript(code)
}else{var fn=function(){window.eval.call(window,code)
};
fn()
}};
CJS.init=function(){CJS.bInited=true;
CJS.defer=("undefined"===typeof(CJS.defer)?true:CJS.defer);
CJS.aScripts=[];
CJS.hLoaded={};
CJS.aExecs=[];
CJS.bIE=(-1!=navigator.userAgent.indexOf("MSIE"));
CJS.bChrome=(-1!=navigator.userAgent.indexOf("Chrome/"));
CJS.bOpera=(-1!=navigator.userAgent.indexOf("Opera"));
CJS.curScript=null;
CJS.maxWait=5000;
CJS.waitival=200;
CJS.done=false
};
CJS.getAttribute=function(f,d){var c=f.attributes;
var b=c.length;
for(var e=0;
e<b;
e++){var a=c[e];
if(d===a.nodeName){return a.nodeValue
}}return undefined
};
CJS.addHandler=function(c,d,b,a){a=(a)?true:false;
if(c.addEventListener){c.addEventListener(d,b,a)
}else{if(c.attachEvent){c.attachEvent("on"+d,b)
}else{if(c["on"+d]){}else{c["on"+d]=b
}}}};
if("undefined"!=typeof(console)&&"undefined"!=typeof(console.log)){CJS.dprint=function(a){console.log("CJS "+Number(new Date())+": "+a)
};
CJS.dprint_error=function(a){console.error("CJS Error "+Number(new Date())+": "+a)
}
}else{CJS.dprint=function(a){};
CJS.dprint_error=function(a){}
}CJS.docwrite=function(f){if(!f){return
}if(CJS.curScript){if(!CJS.curScript.docwriteTarget){CJS.curScript.docwriteTarget=document.createElement("span");
CJS.curScript.parentNode.insertBefore(CJS.curScript.docwriteTarget,CJS.curScript)
}var e=f.indexOf("<script");
if(-1===e){CJS.dprint("docwrite: "+f.substring(0,64));
CJS.curScript.docwriteTarget.innerHTML+=f
}else{var d=f.indexOf("<\/script>",e)+9;
if(-1!=d){var c=f.substring(0,e);
var a=f.substring(e,d);
var b=f.substring(d+1);
if(c){CJS.dprint("docwrite: "+c.substring(0,64));
CJS.curScript.docwriteTarget.innerHTML+=c+b
}CJS.docwriteScript(a)
}}}else{CJS.dprint("ERROR: There's a problem with the async override of document.write.")
}};
CJS.docwriteScript=function(b){var a=b.match(/src='([^']*)/i)||b.match(/src="([^"]*)/i)||b.match(/src=([^ >]*)/i);
if(a){var c=a[1];
CJS.dprint("docwriteScript url = "+c);
var d=document.createElement("script");
d.src=c;
document.body.appendChild(d)
}else{}};
CJS.start();
