You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
406 lines
8.7 KiB
406 lines
8.7 KiB
/* |
|
Copyright (c) 2004-2006, The Dojo Foundation |
|
All Rights Reserved. |
|
|
|
Licensed under the Academic Free License version 2.1 or above OR the |
|
modified BSD license. For more information on Dojo licensing, see: |
|
|
|
http://dojotoolkit.org/community/licensing.shtml |
|
*/ |
|
|
|
|
|
dojo.hostenv.resetXd=function(){ |
|
this.isXDomain=djConfig.useXDomain||false; |
|
this.xdTimer=0; |
|
this.xdInFlight={}; |
|
this.xdOrderedReqs=[]; |
|
this.xdDepMap={}; |
|
this.xdContents=[]; |
|
this.xdDefList=[]; |
|
}; |
|
dojo.hostenv.resetXd(); |
|
dojo.hostenv.createXdPackage=function(_1,_2,_3){ |
|
var _4=[]; |
|
var _5=/dojo.(requireLocalization|require|requireIf|requireAll|provide|requireAfterIf|requireAfter|kwCompoundRequire|conditionalRequire|hostenv\.conditionalLoadModule|.hostenv\.loadModule|hostenv\.moduleLoaded)\(([\w\W]*?)\)/mg; |
|
var _6; |
|
while((_6=_5.exec(_1))!=null){ |
|
if(_6[1]=="requireLocalization"){ |
|
eval(_6[0]); |
|
}else{ |
|
_4.push("\""+_6[1]+"\", "+_6[2]); |
|
} |
|
} |
|
var _7=[]; |
|
_7.push("dojo.hostenv.packageLoaded({\n"); |
|
if(_4.length>0){ |
|
_7.push("depends: ["); |
|
for(var i=0;i<_4.length;i++){ |
|
if(i>0){ |
|
_7.push(",\n"); |
|
} |
|
_7.push("["+_4[i]+"]"); |
|
} |
|
_7.push("],"); |
|
} |
|
_7.push("\ndefinePackage: function(dojo){"); |
|
_7.push(_1); |
|
_7.push("\n}, resourceName: '"+_2+"', resourcePath: '"+_3+"'});"); |
|
return _7.join(""); |
|
}; |
|
dojo.hostenv.loadPath=function(_9,_a,cb){ |
|
var _c=_9.indexOf(":"); |
|
var _d=_9.indexOf("/"); |
|
var _e; |
|
var _f=false; |
|
if(_c>0&&_c<_d){ |
|
_e=_9; |
|
this.isXDomain=_f=true; |
|
}else{ |
|
_e=this.getBaseScriptUri()+_9; |
|
_c=_e.indexOf(":"); |
|
_d=_e.indexOf("/"); |
|
if(_c>0&&_c<_d&&(!location.host||_e.indexOf("http://"+location.host)!=0)){ |
|
this.isXDomain=_f=true; |
|
} |
|
} |
|
if(djConfig.cacheBust&&dojo.render.html.capable){ |
|
_e+="?"+String(djConfig.cacheBust).replace(/\W+/g,""); |
|
} |
|
try{ |
|
return ((!_a||this.isXDomain)?this.loadUri(_e,cb,_f,_a):this.loadUriAndCheck(_e,_a,cb)); |
|
} |
|
catch(e){ |
|
dojo.debug(e); |
|
return false; |
|
} |
|
}; |
|
dojo.hostenv.loadUri=function(uri,cb,_12,_13){ |
|
if(this.loadedUris[uri]){ |
|
return 1; |
|
} |
|
if(this.isXDomain&&_13){ |
|
if(uri.indexOf("__package__")!=-1){ |
|
_13+=".*"; |
|
} |
|
this.xdOrderedReqs.push(_13); |
|
if(_12||uri.indexOf("/nls/")==-1){ |
|
this.xdInFlight[_13]=true; |
|
this.inFlightCount++; |
|
} |
|
if(!this.xdTimer){ |
|
this.xdTimer=setInterval("dojo.hostenv.watchInFlightXDomain();",100); |
|
} |
|
this.xdStartTime=(new Date()).getTime(); |
|
} |
|
if(_12){ |
|
var _14=uri.lastIndexOf("."); |
|
if(_14<=0){ |
|
_14=uri.length-1; |
|
} |
|
var _15=uri.substring(0,_14)+".xd"; |
|
if(_14!=uri.length-1){ |
|
_15+=uri.substring(_14,uri.length); |
|
} |
|
var _16=document.createElement("script"); |
|
_16.type="text/javascript"; |
|
_16.src=_15; |
|
if(!this.headElement){ |
|
this.headElement=document.getElementsByTagName("head")[0]; |
|
if(!this.headElement){ |
|
this.headElement=document.getElementsByTagName("html")[0]; |
|
} |
|
} |
|
this.headElement.appendChild(_16); |
|
}else{ |
|
var _17=this.getText(uri,null,true); |
|
if(_17==null){ |
|
return 0; |
|
} |
|
if(this.isXDomain&&uri.indexOf("/nls/")==-1){ |
|
var pkg=this.createXdPackage(_17,_13,uri); |
|
dj_eval(pkg); |
|
}else{ |
|
if(cb){ |
|
_17="("+_17+")"; |
|
} |
|
var _19=dj_eval(_17); |
|
if(cb){ |
|
cb(_19); |
|
} |
|
} |
|
} |
|
this.loadedUris[uri]=true; |
|
return 1; |
|
}; |
|
dojo.hostenv.packageLoaded=function(pkg){ |
|
var _1b=pkg.depends; |
|
var _1c=null; |
|
var _1d=null; |
|
var _1e=[]; |
|
if(_1b&&_1b.length>0){ |
|
var dep=null; |
|
var _20=0; |
|
var _21=false; |
|
for(var i=0;i<_1b.length;i++){ |
|
dep=_1b[i]; |
|
if(dep[0]=="provide"||dep[0]=="hostenv.moduleLoaded"){ |
|
_1e.push(dep[1]); |
|
}else{ |
|
if(!_1c){ |
|
_1c=[]; |
|
} |
|
if(!_1d){ |
|
_1d=[]; |
|
} |
|
var _23=this.unpackXdDependency(dep); |
|
if(_23.requires){ |
|
_1c=_1c.concat(_23.requires); |
|
} |
|
if(_23.requiresAfter){ |
|
_1d=_1d.concat(_23.requiresAfter); |
|
} |
|
} |
|
var _24=dep[0]; |
|
var _25=_24.split("."); |
|
if(_25.length==2){ |
|
dojo[_25[0]][_25[1]].apply(dojo[_25[0]],dep.slice(1)); |
|
}else{ |
|
dojo[_24].apply(dojo,dep.slice(1)); |
|
} |
|
} |
|
var _26=this.xdContents.push({content:pkg.definePackage,resourceName:pkg["resourceName"],resourcePath:pkg["resourcePath"],isDefined:false})-1; |
|
for(var i=0;i<_1e.length;i++){ |
|
this.xdDepMap[_1e[i]]={requires:_1c,requiresAfter:_1d,contentIndex:_26}; |
|
} |
|
for(var i=0;i<_1e.length;i++){ |
|
this.xdInFlight[_1e[i]]=false; |
|
} |
|
} |
|
}; |
|
dojo.hostenv.xdLoadFlattenedBundle=function(_27,_28,_29,_2a){ |
|
_29=_29||"root"; |
|
var _2b=dojo.hostenv.normalizeLocale(_29).replace("-","_"); |
|
var _2c=[_27,"nls",_28].join("."); |
|
var _2d=dojo.hostenv.startPackage(_2c); |
|
_2d[_2b]=_2a; |
|
var _2e=[_27,_2b,_28].join("."); |
|
var _2f=dojo.hostenv.xdBundleMap[_2e]; |
|
if(_2f){ |
|
for(var _30 in _2f){ |
|
_2d[_30]=_2a; |
|
} |
|
} |
|
}; |
|
dojo.hostenv.xdBundleMap={}; |
|
dojo.xdRequireLocalization=function(_31,_32,_33,_34){ |
|
var _35=_34.split(","); |
|
var _36=dojo.hostenv.normalizeLocale(_33); |
|
var _37=""; |
|
for(var i=0;i<_35.length;i++){ |
|
if(_36.indexOf(_35[i])==0){ |
|
if(_35[i].length>_37.length){ |
|
_37=_35[i]; |
|
} |
|
} |
|
} |
|
var _39=_37.replace("-","_"); |
|
var _3a=dojo.evalObjPath([_31,"nls",_32].join(".")); |
|
if(_3a&&_3a[_39]){ |
|
bundle[_36.replace("-","_")]=_3a[_39]; |
|
}else{ |
|
var _3b=[_31,(_39||"root"),_32].join("."); |
|
var _3c=dojo.hostenv.xdBundleMap[_3b]; |
|
if(!_3c){ |
|
_3c=dojo.hostenv.xdBundleMap[_3b]={}; |
|
} |
|
_3c[_36.replace("-","_")]=true; |
|
dojo.require(_31+".nls"+(_37?"."+_37:"")+"."+_32); |
|
} |
|
}; |
|
(function(){ |
|
var _3d=djConfig.extraLocale; |
|
if(_3d){ |
|
if(!_3d instanceof Array){ |
|
_3d=[_3d]; |
|
} |
|
dojo._xdReqLoc=dojo.xdRequireLocalization; |
|
dojo.xdRequireLocalization=function(m,b,_40,_41){ |
|
dojo._xdReqLoc(m,b,_40,_41); |
|
if(_40){ |
|
return; |
|
} |
|
for(var i=0;i<_3d.length;i++){ |
|
dojo._xdReqLoc(m,b,_3d[i],_41); |
|
} |
|
}; |
|
} |
|
})(); |
|
dojo.hostenv.unpackXdDependency=function(dep){ |
|
var _44=null; |
|
var _45=null; |
|
switch(dep[0]){ |
|
case "requireIf": |
|
case "requireAfterIf": |
|
case "conditionalRequire": |
|
if((dep[1]===true)||(dep[1]=="common")||(dep[1]&&dojo.render[dep[1]].capable)){ |
|
_44=[{name:dep[2],content:null}]; |
|
} |
|
break; |
|
case "requireAll": |
|
dep.shift(); |
|
_44=dep; |
|
dojo.hostenv.flattenRequireArray(_44); |
|
break; |
|
case "kwCompoundRequire": |
|
case "hostenv.conditionalLoadModule": |
|
var _46=dep[1]; |
|
var _47=_46["common"]||[]; |
|
var _44=(_46[dojo.hostenv.name_])?_47.concat(_46[dojo.hostenv.name_]||[]):_47.concat(_46["default"]||[]); |
|
dojo.hostenv.flattenRequireArray(_44); |
|
break; |
|
case "require": |
|
case "requireAfter": |
|
case "hostenv.loadModule": |
|
_44=[{name:dep[1],content:null}]; |
|
break; |
|
} |
|
if(dep[0]=="requireAfterIf"||dep[0]=="requireIf"){ |
|
_45=_44; |
|
_44=null; |
|
} |
|
return {requires:_44,requiresAfter:_45}; |
|
}; |
|
dojo.hostenv.xdWalkReqs=function(){ |
|
var _48=null; |
|
var req; |
|
for(var i=0;i<this.xdOrderedReqs.length;i++){ |
|
req=this.xdOrderedReqs[i]; |
|
if(this.xdDepMap[req]){ |
|
_48=[req]; |
|
_48[req]=true; |
|
this.xdEvalReqs(_48); |
|
} |
|
} |
|
}; |
|
dojo.hostenv.xdEvalReqs=function(_4b){ |
|
while(_4b.length>0){ |
|
var req=_4b[_4b.length-1]; |
|
var pkg=this.xdDepMap[req]; |
|
if(pkg){ |
|
var _4e=pkg.requires; |
|
if(_4e&&_4e.length>0){ |
|
var _4f; |
|
for(var i=0;i<_4e.length;i++){ |
|
_4f=_4e[i].name; |
|
if(_4f&&!_4b[_4f]){ |
|
_4b.push(_4f); |
|
_4b[_4f]=true; |
|
this.xdEvalReqs(_4b); |
|
} |
|
} |
|
} |
|
var _51=this.xdContents[pkg.contentIndex]; |
|
if(!_51.isDefined){ |
|
var _52=_51.content; |
|
_52["resourceName"]=_51["resourceName"]; |
|
_52["resourcePath"]=_51["resourcePath"]; |
|
this.xdDefList.push(_52); |
|
_51.isDefined=true; |
|
} |
|
this.xdDepMap[req]=null; |
|
var _4e=pkg.requiresAfter; |
|
if(_4e&&_4e.length>0){ |
|
var _4f; |
|
for(var i=0;i<_4e.length;i++){ |
|
_4f=_4e[i].name; |
|
if(_4f&&!_4b[_4f]){ |
|
_4b.push(_4f); |
|
_4b[_4f]=true; |
|
this.xdEvalReqs(_4b); |
|
} |
|
} |
|
} |
|
} |
|
_4b.pop(); |
|
} |
|
}; |
|
dojo.hostenv.clearXdInterval=function(){ |
|
clearInterval(this.xdTimer); |
|
this.xdTimer=0; |
|
}; |
|
dojo.hostenv.watchInFlightXDomain=function(){ |
|
var _53=(djConfig.xdWaitSeconds||15)*1000; |
|
if(this.xdStartTime+_53<(new Date()).getTime()){ |
|
this.clearXdInterval(); |
|
var _54=""; |
|
for(var _55 in this.xdInFlight){ |
|
if(this.xdInFlight[_55]){ |
|
_54+=_55+" "; |
|
} |
|
} |
|
dojo.raise("Could not load cross-domain packages: "+_54); |
|
} |
|
for(var _55 in this.xdInFlight){ |
|
if(this.xdInFlight[_55]){ |
|
return; |
|
} |
|
} |
|
this.clearXdInterval(); |
|
this.xdWalkReqs(); |
|
var _56=this.xdDefList.length; |
|
for(var i=0;i<_56;i++){ |
|
var _58=dojo.hostenv.xdDefList[i]; |
|
if(djConfig["debugAtAllCosts"]&&_58["resourceName"]){ |
|
if(!this["xdDebugQueue"]){ |
|
this.xdDebugQueue=[]; |
|
} |
|
this.xdDebugQueue.push({resourceName:_58.resourceName,resourcePath:_58.resourcePath}); |
|
}else{ |
|
_58(dojo); |
|
} |
|
} |
|
for(var i=0;i<this.xdContents.length;i++){ |
|
var _59=this.xdContents[i]; |
|
if(_59.content&&!_59.isDefined){ |
|
_59.content(dojo); |
|
} |
|
} |
|
this.resetXd(); |
|
if(this["xdDebugQueue"]&&this.xdDebugQueue.length>0){ |
|
this.xdDebugFileLoaded(); |
|
}else{ |
|
this.xdNotifyLoaded(); |
|
} |
|
}; |
|
dojo.hostenv.xdNotifyLoaded=function(){ |
|
this.inFlightCount=0; |
|
if(this._djInitFired&&!this.loadNotifying){ |
|
this.callLoaded(); |
|
} |
|
}; |
|
dojo.hostenv.flattenRequireArray=function(_5a){ |
|
if(_5a){ |
|
for(var i=0;i<_5a.length;i++){ |
|
if(_5a[i] instanceof Array){ |
|
_5a[i]={name:_5a[i][0],content:null}; |
|
}else{ |
|
_5a[i]={name:_5a[i],content:null}; |
|
} |
|
} |
|
} |
|
}; |
|
dojo.hostenv.xdHasCalledPreload=false; |
|
dojo.hostenv.xdRealCallLoaded=dojo.hostenv.callLoaded; |
|
dojo.hostenv.callLoaded=function(){ |
|
if(this.xdHasCalledPreload||dojo.hostenv.getModulePrefix("dojo")=="src"||!this.localesGenerated){ |
|
this.xdRealCallLoaded(); |
|
}else{ |
|
if(this.localesGenerated){ |
|
this.registerNlsPrefix=function(){ |
|
dojo.registerModulePath("nls",dojo.hostenv.getModulePrefix("dojo")+"/../nls"); |
|
}; |
|
this.preloadLocalizations(); |
|
} |
|
} |
|
this.xdHasCalledPreload=true; |
|
};
|
|
|