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