//>>built
define("dojox/xmpp/bosh",["dijit","dojo","dojox","dojo/require!dojo/io/script,dojo/io/iframe,dojox/xml/parser"],function(_1,_2,_3){_2.provide("dojox.xmpp.bosh");_2.require("dojo.io.script");_2.require("dojo.io.iframe");_2.require("dojox.xml.parser");_3.xmpp.bosh={transportIframes:[],initialize:function(_4){this.transportIframes=[];var _5=_3._scopeName+".xmpp.bosh";var c=_2.connect(_2.getObject(_5),"_iframeOnload",this,function(_6){if(_6==0){_4.load();_2.disconnect(c);}});for(var i=0;i<_4.iframes;i++){var _7="xmpp-transport-"+i;var _8=_2.byId("xmpp-transport-"+i);if(_8){if(window[_7]){window[_7]=null;}if(window.frames[_7]){window.frames[_7]=null;}_2.destroy(_8);}_8=_2.io.iframe.create("xmpp-transport-"+i,_5+"._iframeOnload("+i+");");this.transportIframes.push(_8);}},_iframeOnload:function(_9){var _a=_2.io.iframe.doc(_2.byId("xmpp-transport-"+_9));_a.write("<script>var isLoaded=true; var rid=0; var transmiting=false; function _BOSH_(msg) { transmiting=false; parent.dojox.xmpp.bosh.handle(msg, rid); } </script>");},findOpenIframe:function(){for(var i=0;i<this.transportIframes.length;i++){var _b=this.transportIframes[i];var _c=_b.contentWindow;if(_c.isLoaded&&!_c.transmiting){return _b;}}return false;},handle:function(_d,_e){var _f=this["rid"+_e];var _10=_3.xml.parser.parse(_d,"text/xml");if(_10){_f.ioArgs.xmppMessage=_10;}else{_f.errback(new Error("Recieved bad document from server: "+_d));}},get:function(_11){var _12=this.findOpenIframe();var _13=_2.io.iframe.doc(_12);_11.frameDoc=_13;var dfd=this._makeScriptDeferred(_11);var _14=dfd.ioArgs;_12.contentWindow.rid=_14.rid;_12.contentWindow.transmiting=true;_2._ioAddQueryToUrl(_14);_2._ioNotifyStart(dfd);_2.io.script.attach(_14.id,_14.url,_13);_2._ioWatch(dfd,this._validCheck,this._ioCheck,this._resHandle);return dfd;},remove:function(id,_15){_2.destroy(_2.byId(id,_15));if(this[id]){delete this[id];}},_makeScriptDeferred:function(_16){var dfd=_2._ioSetArgs(_16,this._deferredCancel,this._deferredOk,this._deferredError);var _17=dfd.ioArgs;_17.id="rid"+_16.rid;_17.rid=_16.rid;_17.canDelete=true;_17.frameDoc=_16.frameDoc;this[_17.id]=dfd;return dfd;},_deferredCancel:function(dfd){dfd.canceled=true;if(dfd.ioArgs.canDelete){_3.xmpp.bosh._addDeadScript(dfd.ioArgs);}},_deferredOk:function(dfd){var _18=dfd.ioArgs;if(_18.canDelete){_3.xmpp.bosh._addDeadScript(_18);}return _18.xmppMessage||_18;},_deferredError:function(_19,dfd){if(dfd.ioArgs.canDelete){if(_19.dojoType=="timeout"){_3.xmpp.bosh.remove(dfd.ioArgs.id,dfd.ioArgs.frameDoc);}else{_3.xmpp.bosh._addDeadScript(dfd.ioArgs);}}return _19;},_deadScripts:[],_addDeadScript:function(_1a){_3.xmpp.bosh._deadScripts.push({id:_1a.id,frameDoc:_1a.frameDoc});_1a.frameDoc=null;},_validCheck:function(dfd){var _1b=_3.xmpp.bosh;var _1c=_1b._deadScripts;if(_1c&&_1c.length>0){for(var i=0;i<_1c.length;i++){_1b.remove(_1c[i].id,_1c[i].frameDoc);_1c[i].frameDoc=null;}_3.xmpp.bosh._deadScripts=[];}return true;},_ioCheck:function(dfd){var _1d=dfd.ioArgs;if(_1d.xmppMessage){return true;}return false;},_resHandle:function(dfd){if(_3.xmpp.bosh._ioCheck(dfd)){dfd.callback(dfd);}else{dfd.errback(new Error("inconceivable dojox.xmpp.bosh._resHandle error"));}}};});