| /* |
| Copyright (c) 2004-2009, 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["dojox.io.windowName"]){ |
| dojo._hasResource["dojox.io.windowName"]=true; |
| dojo.provide("dojox.io.windowName"); |
| dojox.io.windowName={send:function(_1,_2){ |
| _2.url+=(_2.url.match(/\?/)?"&":"?")+"windowname="+(_2.authElement?"auth":true); |
| var _3=_2.authElement; |
| var _4=function(_5){ |
| try{ |
| var _6=_7.ioArgs.frame.contentWindow.document; |
| _6.write(" "); |
| _6.close(); |
| } |
| catch(e){ |
| } |
| (_3||dojo.body()).removeChild(_7.ioArgs.outerFrame); |
| return _5; |
| }; |
| var _7=dojo._ioSetArgs(_2,_4,_4,_4); |
| if(_2.timeout){ |
| setTimeout(function(){ |
| if(_7.fired==-1){ |
| _7.callback(new Error("Timeout")); |
| } |
| },_2.timeout); |
| } |
| var _8=dojox.io.windowName; |
| if(dojo.body()){ |
| _8._send(_7,_1,_3,_2.onAuthLoad); |
| }else{ |
| dojo.addOnLoad(function(){ |
| _8._send(_7,_1,_3,_2.onAuthLoad); |
| }); |
| } |
| return _7; |
| },_send:function(_9,_a,_b,_c){ |
| var _d=_9.ioArgs; |
| var _e=dojox.io.windowName._frameNum++; |
| var _f=(dojo.config.dojoBlankHtmlUrl||dojo.config.dojoCallbackUrl||dojo.moduleUrl("dojo","resources/blank.html"))+"#"+_e; |
| var _10=new dojo._Url(window.location,_f); |
| var doc=dojo.doc; |
| var _11=_b||dojo.body(); |
| function _12(_13){ |
| _13.style.width="100%"; |
| _13.style.height="100%"; |
| _13.style.border="0px"; |
| }; |
| if(dojo.isMoz&&![].reduce){ |
| var _14=doc.createElement("iframe"); |
| _12(_14); |
| if(!_b){ |
| _14.style.display="none"; |
| } |
| _11.appendChild(_14); |
| var _15=_14.contentWindow; |
| doc=_15.document; |
| doc.write("<html><body margin='0px'><iframe style='width:100%;height:100%;border:0px' name='protectedFrame'></iframe></body></html>"); |
| doc.close(); |
| var _16=_15[0]; |
| _15.__defineGetter__(0,function(){ |
| }); |
| _15.__defineGetter__("protectedFrame",function(){ |
| }); |
| doc=_16.document; |
| doc.write("<html><body margin='0px'></body></html>"); |
| doc.close(); |
| _11=doc.body; |
| } |
| var _17=_d.frame=_17=doc.createElement(dojo.isIE?"<iframe name=\""+_10+"\" onload=\"dojox.io.windowName["+_e+"]()\">":"iframe"); |
| _12(_17); |
| _d.outerFrame=_14=_14||_17; |
| if(!_b){ |
| _14.style.display="none"; |
| } |
| var _18=0; |
| function _19(){ |
| var _1a=_17.contentWindow.name; |
| if(typeof _1a=="string"){ |
| if(_1a!=_10){ |
| _18=2; |
| _9.ioArgs.hash=_17.contentWindow.location.hash; |
| _9.callback(_1a); |
| } |
| } |
| }; |
| dojox.io.windowName[_e]=_17.onload=function(){ |
| try{ |
| if(!dojo.isMoz&&_17.contentWindow.location=="about:blank"){ |
| return; |
| } |
| } |
| catch(e){ |
| } |
| if(!_18){ |
| _18=1; |
| if(_b){ |
| if(_c){ |
| _c(); |
| } |
| }else{ |
| _17.contentWindow.location=_f; |
| } |
| } |
| try{ |
| if(_18<2){ |
| _19(); |
| } |
| } |
| catch(e){ |
| } |
| }; |
| _17.name=_10; |
| if(_a.match(/GET/i)){ |
| dojo._ioAddQueryToUrl(_d); |
| _17.src=_d.url; |
| _11.appendChild(_17); |
| if(_17.contentWindow){ |
| _17.contentWindow.location.replace(_d.url); |
| } |
| }else{ |
| if(_a.match(/POST/i)){ |
| _11.appendChild(_17); |
| var _1b=dojo.doc.createElement("form"); |
| dojo.body().appendChild(_1b); |
| var _1c=dojo.queryToObject(_d.query); |
| for(var i in _1c){ |
| var _1d=_1c[i]; |
| _1d=_1d instanceof Array?_1d:[_1d]; |
| for(var j=0;j<_1d.length;j++){ |
| var _1e=doc.createElement("input"); |
| _1e.type="hidden"; |
| _1e.name=i; |
| _1e.value=_1d[j]; |
| _1b.appendChild(_1e); |
| } |
| } |
| _1b.method="POST"; |
| _1b.action=_d.url; |
| _1b.target=_10; |
| _1b.submit(); |
| _1b.parentNode.removeChild(_1b); |
| }else{ |
| throw new Error("Method "+_a+" not supported with the windowName transport"); |
| } |
| } |
| if(_17.contentWindow){ |
| _17.contentWindow.name=_10; |
| } |
| },_frameNum:0}; |
| } |