/* Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. Available via Academic Free License >= 2.1 OR the modified BSD license. see: http://dojotoolkit.org/license for details */ if(!dojo._hasResource["dojo._base.xhr"]){ dojo._hasResource["dojo._base.xhr"]=true; dojo.provide("dojo._base.xhr"); dojo.require("dojo._base.Deferred"); dojo.require("dojo._base.json"); dojo.require("dojo._base.lang"); dojo.require("dojo._base.query"); (function(){ var _1=dojo,_2=_1.config; function _3(_4,_5,_6){ if(_6===null){ return; } var _7=_4[_5]; if(typeof _7=="string"){ _4[_5]=[_7,_6]; }else{ if(_1.isArray(_7)){ _7.push(_6); }else{ _4[_5]=_6; } } }; dojo.fieldToObject=function(_8){ var _9=null; var _a=_1.byId(_8); if(_a){ var _b=_a.name; var _c=(_a.type||"").toLowerCase(); if(_b&&_c&&!_a.disabled){ if(_c=="radio"||_c=="checkbox"){ if(_a.checked){ _9=_a.value; } }else{ if(_a.multiple){ _9=[]; _1.query("option",_a).forEach(function(_d){ if(_d.selected){ _9.push(_d.value); } }); }else{ _9=_a.value; } } } } return _9; }; dojo.formToObject=function(_e){ var _f={}; var _10="file|submit|image|reset|button|"; _1.forEach(dojo.byId(_e).elements,function(_11){ var _12=_11.name; var _13=(_11.type||"").toLowerCase(); if(_12&&_13&&_10.indexOf(_13)==-1&&!_11.disabled){ _3(_f,_12,_1.fieldToObject(_11)); if(_13=="image"){ _f[_12+".x"]=_f[_12+".y"]=_f[_12].x=_f[_12].y=0; } } }); return _f; }; dojo.objectToQuery=function(map){ var enc=encodeURIComponent; var _14=[]; var _15={}; for(var _16 in map){ var _17=map[_16]; if(_17!=_15[_16]){ var _18=enc(_16)+"="; if(_1.isArray(_17)){ for(var i=0;i<_17.length;i++){ _14.push(_18+enc(_17[i])); } }else{ _14.push(_18+enc(_17)); } } } return _14.join("&"); }; dojo.formToQuery=function(_19){ return _1.objectToQuery(_1.formToObject(_19)); }; dojo.formToJson=function(_1a,_1b){ return _1.toJson(_1.formToObject(_1a),_1b); }; dojo.queryToObject=function(str){ var ret={}; var qp=str.split("&"); var dec=decodeURIComponent; _1.forEach(qp,function(_1c){ if(_1c.length){ var _1d=_1c.split("="); var _1e=dec(_1d.shift()); var val=dec(_1d.join("=")); if(typeof ret[_1e]=="string"){ ret[_1e]=[ret[_1e]]; } if(_1.isArray(ret[_1e])){ ret[_1e].push(val); }else{ ret[_1e]=val; } } }); return ret; }; dojo._blockAsync=false; var _1f=_1._contentHandlers=dojo.contentHandlers={text:function(xhr){ return xhr.responseText; },json:function(xhr){ return _1.fromJson(xhr.responseText||null); },"json-comment-filtered":function(xhr){ if(!dojo.config.useCommentedJson){ console.warn("Consider using the standard mimetype:application/json."+" json-commenting can introduce security issues. To"+" decrease the chances of hijacking, use the standard the 'json' handler and"+" prefix your json with: {}&&\n"+"Use djConfig.useCommentedJson=true to turn off this message."); } var _20=xhr.responseText; var _21=_20.indexOf("/*"); var _22=_20.lastIndexOf("*/"); if(_21==-1||_22==-1){ throw new Error("JSON was not comment filtered"); } return _1.fromJson(_20.substring(_21+2,_22)); },javascript:function(xhr){ return _1.eval(xhr.responseText); },xml:function(xhr){ var _23=xhr.responseXML; if(_1.isIE&&(!_23||!_23.documentElement)){ var ms=function(n){ return "MSXML"+n+".DOMDocument"; }; var dp=["Microsoft.XMLDOM",ms(6),ms(4),ms(3),ms(2)]; _1.some(dp,function(p){ try{ var dom=new ActiveXObject(p); dom.async=false; dom.loadXML(xhr.responseText); _23=dom; } catch(e){ return false; } return true; }); } return _23; },"json-comment-optional":function(xhr){ if(xhr.responseText&&/^[^{\[]*\/\*/.test(xhr.responseText)){ return _1f["json-comment-filtered"](xhr); }else{ return _1f["json"](xhr); } }}; dojo._ioSetArgs=function(_24,_25,_26,_27){ var _28={args:_24,url:_24.url}; var _29=null; if(_24.form){ var _2a=_1.byId(_24.form); var _2b=_2a.getAttributeNode("action"); _28.url=_28.url||(_2b?_2b.value:null); _29=_1.formToObject(_2a); } var _2c=[{}]; if(_29){ _2c.push(_29); } if(_24.content){ _2c.push(_24.content); } if(_24.preventCache){ _2c.push({"dojo.preventCache":new Date().valueOf()}); } _28.query=_1.objectToQuery(_1.mixin.apply(null,_2c)); _28.handleAs=_24.handleAs||"text"; var d=new _1.Deferred(_25); d.addCallbacks(_26,function(_2d){ return _27(_2d,d); }); var ld=_24.load; if(ld&&_1.isFunction(ld)){ d.addCallback(function(_2e){ return ld.call(_24,_2e,_28); }); } var err=_24.error; if(err&&_1.isFunction(err)){ d.addErrback(function(_2f){ return err.call(_24,_2f,_28); }); } var _30=_24.handle; if(_30&&_1.isFunction(_30)){ d.addBoth(function(_31){ return _30.call(_24,_31,_28); }); } if(_2.ioPublish&&_1.publish&&_28.args.ioPublish!==false){ d.addCallbacks(function(res){ _1.publish("/dojo/io/load",[d,res]); return res; },function(res){ _1.publish("/dojo/io/error",[d,res]); return res; }); d.addBoth(function(res){ _1.publish("/dojo/io/done",[d,res]); return res; }); } d.ioArgs=_28; return d; }; var _32=function(dfd){ dfd.canceled=true; var xhr=dfd.ioArgs.xhr; var _33=typeof xhr.abort; if(_33=="function"||_33=="object"||_33=="unknown"){ xhr.abort(); } var err=dfd.ioArgs.error; if(!err){ err=new Error("xhr cancelled"); err.dojoType="cancel"; } return err; }; var _34=function(dfd){ var ret=_1f[dfd.ioArgs.handleAs](dfd.ioArgs.xhr); return ret===undefined?null:ret; }; var _35=function(_36,dfd){ if(!dfd.ioArgs.args.failOk){ console.error(_36); } return _36; }; var _37=null; var _38=[]; var _39=0; var _3a=function(dfd){ if(_39<=0){ _39=0; if(_2.ioPublish&&_1.publish&&(!dfd||dfd&&dfd.ioArgs.args.ioPublish!==false)){ _1.publish("/dojo/io/stop"); } } }; var _3b=function(){ var now=(new Date()).getTime(); if(!_1._blockAsync){ for(var i=0,tif;i<_38.length&&(tif=_38[i]);i++){ var dfd=tif.dfd; var _3c=function(){ if(!dfd||dfd.canceled||!tif.validCheck(dfd)){ _38.splice(i--,1); _39-=1; }else{ if(tif.ioCheck(dfd)){ _38.splice(i--,1); tif.resHandle(dfd); _39-=1; }else{ if(dfd.startTime){ if(dfd.startTime+(dfd.ioArgs.args.timeout||0)2&&!_48)||"POST|PUT".indexOf(_46.toUpperCase())==-1){ _1._ioAddQueryToUrl(_49); } } } } xhr.open(_46,_49.url,_47.sync!==true,_47.user||undefined,_47.password||undefined); if(_47.headers){ for(var hdr in _47.headers){ if(hdr.toLowerCase()==="content-type"&&!_47.contentType){ _47.contentType=_47.headers[hdr]; }else{ if(_47.headers[hdr]){ xhr.setRequestHeader(hdr,_47.headers[hdr]); } } } } xhr.setRequestHeader("Content-Type",_47.contentType||_41); if(!_47.headers||!("X-Requested-With" in _47.headers)){ xhr.setRequestHeader("X-Requested-With","XMLHttpRequest"); } _1._ioNotifyStart(dfd); if(dojo.config.debugAtAllCosts){ xhr.send(_49.query); }else{ try{ xhr.send(_49.query); } catch(e){ _49.error=e; dfd.cancel(); } } _1._ioWatch(dfd,_42,_43,_44); xhr=null; return dfd; }; dojo.xhrGet=function(_4a){ return _1.xhr("GET",_4a); }; dojo.rawXhrPost=dojo.xhrPost=function(_4b){ return _1.xhr("POST",_4b,true); }; dojo.rawXhrPut=dojo.xhrPut=function(_4c){ return _1.xhr("PUT",_4c,true); }; dojo.xhrDelete=function(_4d){ return _1.xhr("DELETE",_4d); }; })(); }