//>>built define("dojox/socket",["dojo","dojo/on","dojo/Evented","dojo/cookie","dojo/_base/url"],function(_1,on,_2){ var _3=window.WebSocket; function _4(_5){ if(typeof _5=="string"){ _5={url:_5}; } return _3?dojox.socket.WebSocket(_5,true):dojox.socket.LongPoll(_5); }; dojox.socket=_4; _4.WebSocket=function(_6,_7){ var ws=new _3(new _1._Url(document.baseURI.replace(/^http/i,"ws"),_6.url)); ws.on=function(_8,_9){ ws.addEventListener(_8,_9,true); }; var _a; _1.connect(ws,"onopen",function(_b){ _a=true; }); _1.connect(ws,"onclose",function(_c){ if(_a){ return; } if(_7){ _4.replace(ws,dojox.socket.LongPoll(_6),true); } }); return ws; }; _4.replace=function(_d,_e,_f){ _d.send=_1.hitch(_e,"send"); _d.close=_1.hitch(_e,"close"); if(_f){ _10("open"); } _1.forEach(["message","close","error"],_10); function _10(_11){ (_e.addEventListener||_e.on).call(_e,_11,function(_12){ on.emit(_d,_12.type,_12); },true); }; }; _4.LongPoll=function(_13){ var _14=false,_15=true,_16,_17=[]; var _18={send:function(_19){ var _1a=_1.delegate(_13); _1a.rawBody=_19; clearTimeout(_16); var _1b=_15?(_15=false)||_18.firstRequest(_1a):_18.transport(_1a); _17.push(_1b); _1b.then(function(_1c){ _18.readyState=1; _17.splice(_1.indexOf(_17,_1b),1); if(!_17.length){ _16=setTimeout(_21,_13.interval); } if(_1c){ _1e("message",{data:_1c},_1b); } },function(_1d){ _17.splice(_1.indexOf(_17,_1b),1); if(!_14){ _1e("error",{error:_1d},_1b); if(!_17.length){ _18.readyState=3; _1e("close",{wasClean:false},_1b); } } }); return _1b; },close:function(){ _18.readyState=2; _14=true; for(var i=0;i<_17.length;i++){ _17[i].cancel(); } _18.readyState=3; _1e("close",{wasClean:true}); },transport:_13.transport||_1.xhrPost,args:_13,url:_13.url,readyState:0,CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3,on:_2.prototype.on,firstRequest:function(_1f){ var _20=(_1f.headers||(_1f.headers={})); _20.Pragma="start-long-poll"; try{ return this.transport(_1f); } finally{ delete _20.Pragma; } }}; function _21(){ if(_18.readyState==0){ _1e("open",{}); } if(!_17.length){ _18.send(); } }; function _1e(_22,_23,_24){ if(_18["on"+_22]){ _23.ioArgs=_24&&_24.ioArgs; _23.type=_22; on.emit(_18,_22,_23); } }; _18.connect=_18.on; setTimeout(_21); return _18; }; return _4; });