this.bind=function()

in tapestry-framework/src/js/dojo-0.4.3-custom-4.1.6/src/io/BrowserIO.js [321:479]


this.bind=function(_4e){
if(!_4e["url"]){
if(!_4e["formNode"]&&(_4e["backButton"]||_4e["back"]||_4e["changeUrl"]||_4e["watchForURL"])&&(!djConfig.preventBackButtonFix)){
dojo.deprecated("Using dojo.io.XMLHTTPTransport.bind() to add to browser history without doing an IO request","Use dojo.undo.browser.addToHistory() instead.","0.4");
dojo.undo.browser.addToHistory(_4e);
return true;
}
}
var url=_4e.url;
var _50="";
if(_4e["formNode"]){
var ta=_4e.formNode.getAttribute("action");
if((ta)&&(!_4e["url"])){
url=ta;
}
var tp=_4e.formNode.getAttribute("method");
if((tp)&&(!_4e["method"])){
_4e.method=tp;
}
_50+=dojo.io.encodeForm(_4e.formNode,_4e.encoding,_4e["formFilter"]);
}
if(url.indexOf("#")>-1){
dojo.debug("Warning: dojo.io.bind: stripping hash values from url:",url);
url=url.split("#")[0];
}
if(_4e["file"]){
_4e.method="post";
}
if(!_4e["method"]){
_4e.method="get";
}
if(_4e.method.toLowerCase()=="get"){
_4e.multipart=false;
}else{
if(_4e["file"]){
_4e.multipart=true;
}else{
if(!_4e["multipart"]){
_4e.multipart=false;
}
}
}
if(_4e["backButton"]||_4e["back"]||_4e["changeUrl"]){
dojo.undo.browser.addToHistory(_4e);
}
var _53=_4e["content"]||{};
if(_4e.sendTransport){
_53["dojo.transport"]="xmlhttp";
}
do{
if(_4e.postContent){
_50=_4e.postContent;
break;
}
if(_53){
_50+=dojo.io.argsFromMap(_53,_4e.encoding);
}
if(_4e.method.toLowerCase()=="get"||!_4e.multipart){
break;
}
var t=[];
if(_50.length){
var q=_50.split("&");
for(var i=0;i<q.length;++i){
if(q[i].length){
var p=q[i].split("=");
t.push("--"+this.multipartBoundary,"Content-Disposition: form-data; name=\""+p[0]+"\"","",p[1]);
}
}
}
if(_4e.file){
if(dojo.lang.isArray(_4e.file)){
for(var i=0;i<_4e.file.length;++i){
var o=_4e.file[i];
t.push("--"+this.multipartBoundary,"Content-Disposition: form-data; name=\""+o.name+"\"; filename=\""+("fileName" in o?o.fileName:o.name)+"\"","Content-Type: "+("contentType" in o?o.contentType:"application/octet-stream"),"",o.content);
}
}else{
var o=_4e.file;
t.push("--"+this.multipartBoundary,"Content-Disposition: form-data; name=\""+o.name+"\"; filename=\""+("fileName" in o?o.fileName:o.name)+"\"","Content-Type: "+("contentType" in o?o.contentType:"application/octet-stream"),"",o.content);
}
}
if(t.length){
t.push("--"+this.multipartBoundary+"--","");
_50=t.join("\r\n");
}
}while(false);
var _59=_4e["sync"]?false:true;
var _5a=_4e["preventCache"]||(this.preventCache==true&&_4e["preventCache"]!=false);
var _5b=_4e["useCache"]==true||(this.useCache==true&&_4e["useCache"]!=false);
if(!_5a&&_5b){
var _5c=getFromCache(url,_50,_4e.method);
if(_5c){
doLoad(_4e,_5c,url,_50,false);
return;
}
}
var _5d=dojo.hostenv.getXmlhttpObject(_4e);
var _5e=false;
if(_59){
var _5f=this.inFlight.push({"req":_4e,"http":_5d,"url":url,"query":_50,"useCache":_5b,"startTime":_4e.timeoutSeconds?(new Date()).getTime():0});
this.startWatchingInFlight();
}else{
_2d._blockAsync=true;
}
if(_4e.method.toLowerCase()=="post"){
if(!_4e.user){
_5d.open("POST",url,_59);
}else{
_5d.open("POST",url,_59,_4e.user,_4e.password);
}
setHeaders(_5d,_4e);
_5d.setRequestHeader("Content-Type",_4e.multipart?("multipart/form-data; boundary="+this.multipartBoundary):(_4e.contentType||"application/x-www-form-urlencoded"));
try{
_5d.send(_50);
}
catch(e){
if(typeof _5d.abort=="function"){
_5d.abort();
}
doLoad(_4e,{status:404},url,_50,_5b);
}
}else{
var _60=url;
if(_50!=""){
_60+=(_60.indexOf("?")>-1?"&":"?")+_50;
}
if(_5a){
_60+=(dojo.string.endsWithAny(_60,"?","&")?"":(_60.indexOf("?")>-1?"&":"?"))+"dojo.preventCache="+new Date().valueOf();
}
if(!_4e.user){
_5d.open(_4e.method.toUpperCase(),_60,_59);
}else{
_5d.open(_4e.method.toUpperCase(),_60,_59,_4e.user,_4e.password);
}
setHeaders(_5d,_4e);
try{
_5d.send(null);
}
catch(e){
if(typeof _5d.abort=="function"){
_5d.abort();
}
doLoad(_4e,{status:404},url,_50,_5b);
}
}
if(!_59){
doLoad(_4e,_5d,url,_50,_5b);
_2d._blockAsync=false;
}
_4e.abort=function(){
try{
_5d._aborted=true;
}
catch(e){
}
return _5d.abort();
};
return;
};