Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

0.0.56

  • Loading branch information...
commit 12aded5b368ca623493824050575a3cfc79bcb9e 1 parent 8ca64b1
Owen Barnes authored
View
9 HISTORY.md
@@ -1,3 +1,12 @@
+0.0.56 / 2011-06-19
+===================
+
+* VIM backup files (ending with ~) are now ignored (thanks kryton)
+* Updated all NPM dependencies (apart from Jade) to latest versions and tested compatibility
+* Updated Socket.IO client to 0.6.3
+* Added favicon.ico :)
+
+
0.0.55 / 2011-06-14
===================
View
2  README.md
@@ -1,7 +1,7 @@
![SocketStream!](https://github.com/socketstream/socketstream/raw/master/new_project/public/images/logo.png)
-Latest release: 0.0.55 ([view changelog](https://github.com/socketstream/socketstream/blob/master/HISTORY.md))
+Latest release: 0.0.56 ([view changelog](https://github.com/socketstream/socketstream/blob/master/HISTORY.md))
Twitter: socketstream - Google Group: http://groups.google.com/group/socketstream
View
13 bin/socketstream
@@ -3,18 +3,9 @@
// This is the main entry point into SocketStream
// The other is socketstream.js which is called when you require('socketstream')
-try {
- var argParser = require('argsparser@0.0.4');
-} catch(err) {
- var argParser = require('argsparser');
-}
-
+var argParser = require('argsparser');
var args = argParser.parse().node;
-try {
- require('coffee-script@1.0.1');
-} catch(err) {
- require('coffee-script');
-}
+require('coffee-script');
require(__dirname + '/../lib/main.coffee').process(args);
View
2  lib/client/cached/lib.min.js
@@ -16,5 +16,5 @@ return{stringify:stringify,parse:function(text,filter){var j;function walk(k,v){
return filter(k,v);}
if(/^[\],:{}\s]*$/.test(text.replace(/\\./g,'@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']').replace(/(?:^|:|,)(?:\s*\[)+/g,''))){j=eval('('+text+')');return typeof filter==='function'?walk('',j):j;}
throw new SyntaxError('parseJSON');}};}();};
-this.io={version:"0.6.2",setPath:function(path){window.console&&console.error&&console.error("io.setPath will be removed. Please set the variable WEB_SOCKET_SWF_LOCATION pointing to WebSocketMain.swf"),this.path=/\/$/.test(path)?path:path+"/",WEB_SOCKET_SWF_LOCATION=path+"lib/vendor/web-socket-js/WebSocketMain.swf"}},"jQuery"in this&&(jQuery.io=this.io),typeof window!="undefined"&&typeof WEB_SOCKET_SWF_LOCATION=="undefined"&&(WEB_SOCKET_SWF_LOCATION="/socket.io/lib/vendor/web-socket-js/WebSocketMain.swf"),function(){var _pageLoaded=!1;io.util={ios:!1,load:function(fn){if(/loaded|complete/.test(document.readyState)||_pageLoaded)return fn();"attachEvent"in window?window.attachEvent("onload",fn):window.addEventListener("load",fn,!1)},inherit:function(ctor,superCtor){for(var i in superCtor.prototype)ctor.prototype[i]=superCtor.prototype[i]},indexOf:function(arr,item,from){for(var l=arr.length,i=from<0?Math.max(0,l+from):from||0;i<l;i++)if(arr[i]===item)return i;return-1},isArray:function(obj){return Object.prototype.toString.call(obj)==="[object Array]"},merge:function(target,additional){for(var i in additional)additional.hasOwnProperty(i)&&(target[i]=additional[i])}},io.util.ios=/iphone|ipad/i.test(navigator.userAgent),io.util.android=/android/i.test(navigator.userAgent),io.util.opera=/opera/i.test(navigator.userAgent),io.util.load(function(){_pageLoaded=!0})}(),function(){var frame="~m~",stringify=function(message){if(Object.prototype.toString.call(message)=="[object Object]"){if(!("JSON"in window)){"console"in window&&console.error&&console.error("Trying to encode as JSON, but JSON.stringify is missing.");return'{ "$error": "Invalid message" }'}return"~j~"+JSON.stringify(message)}return String(message)};Transport=io.Transport=function(base,options){this.base=base,this.options={timeout:15e3},io.util.merge(this.options,options)},Transport.prototype.send=function(){throw new Error("Missing send() implementation")},Transport.prototype.connect=function(){throw new Error("Missing connect() implementation")},Transport.prototype.disconnect=function(){throw new Error("Missing disconnect() implementation")},Transport.prototype._encode=function(messages){var ret="",message,messages=io.util.isArray(messages)?messages:[messages];for(var i=0,l=messages.length;i<l;i++)message=messages[i]===null||messages[i]===undefined?"":stringify(messages[i]),ret+=frame+message.length+frame+message;return ret},Transport.prototype._decode=function(data){var messages=[],number,n;do{if(data.substr(0,3)!==frame)return messages;data=data.substr(3),number="",n="";for(var i=0,l=data.length;i<l;i++){n=Number(data.substr(i,1));if(data.substr(i,1)==n)number+=n;else{data=data.substr(number.length+frame.length),number=Number(number);break}}messages.push(data.substr(0,number)),data=data.substr(number)}while(data!=="");return messages},Transport.prototype._onData=function(data){this._setTimeout();var msgs=this._decode(data);if(msgs&&msgs.length)for(var i=0,l=msgs.length;i<l;i++)this._onMessage(msgs[i])},Transport.prototype._setTimeout=function(){var self=this;this._timeout&&clearTimeout(this._timeout),this._timeout=setTimeout(function(){self._onTimeout()},this.options.timeout)},Transport.prototype._onTimeout=function(){this._onDisconnect()},Transport.prototype._onMessage=function(message){this.sessionid?message.substr(0,3)=="~h~"?this._onHeartbeat(message.substr(3)):message.substr(0,3)=="~j~"?this.base._onMessage(JSON.parse(message.substr(3))):this.base._onMessage(message):(this.sessionid=message,this._onConnect())},Transport.prototype._onHeartbeat=function(heartbeat){this.send("~h~"+heartbeat)},Transport.prototype._onConnect=function(){this.connected=!0,this.connecting=!1,this.base._onConnect(),this._setTimeout()},Transport.prototype._onDisconnect=function(){this.connecting=!1,this.connected=!1,this.sessionid=null,this.base._onDisconnect()},Transport.prototype._prepareUrl=function(){return(this.base.options.secure?"https":"http")+"://"+this.base.host+":"+this.base.options.port+"/"+this.base.options.resource+"/"+this.type+(this.sessionid?"/"+this.sessionid:"/")}}(),function(){var empty=new Function,XMLHttpRequestCORS=function(){if(!("XMLHttpRequest"in window))return!1;var a=new XMLHttpRequest;return a.withCredentials!=undefined}(),request=function(xdomain){if("XDomainRequest"in window&&xdomain)return new XDomainRequest;if("XMLHttpRequest"in window&&(!xdomain||XMLHttpRequestCORS))return new XMLHttpRequest;if(!xdomain){try{var a=new ActiveXObject("MSXML2.XMLHTTP");return a}catch(e){}try{var b=new ActiveXObject("Microsoft.XMLHTTP");return b}catch(e){}}return!1},XHR=io.Transport.XHR=function(){io.Transport.apply(this,arguments),this._sendBuffer=[]};io.util.inherit(XHR,io.Transport),XHR.prototype.connect=function(){this._get();return this},XHR.prototype._checkSend=function(){if(!this._posting&&this._sendBuffer.length){var encoded=this._encode(this._sendBuffer);this._sendBuffer=[],this._send(encoded)}},XHR.prototype.send=function(data){io.util.isArray(data)?this._sendBuffer.push.apply(this._sendBuffer,data):this._sendBuffer.push(data),this._checkSend();return this},XHR.prototype._send=function(data){var self=this;this._posting=!0,this._sendXhr=this._request("send","POST"),this._sendXhr.onreadystatechange=function(){var status;if(self._sendXhr.readyState==4){self._sendXhr.onreadystatechange=empty;try{status=self._sendXhr.status}catch(e){}self._posting=!1,status==200?self._checkSend():self._onDisconnect()}},this._sendXhr.send("data="+encodeURIComponent(data))},XHR.prototype.disconnect=function(){this._onDisconnect();return this},XHR.prototype._onDisconnect=function(){if(this._xhr){this._xhr.onreadystatechange=empty;try{this._xhr.abort()}catch(e){}this._xhr=null}if(this._sendXhr){this._sendXhr.onreadystatechange=empty;try{this._sendXhr.abort()}catch(e){}this._sendXhr=null}this._sendBuffer=[],io.Transport.prototype._onDisconnect.call(this)},XHR.prototype._request=function(url,method,multipart){var req=request(this.base._isXDomain());multipart&&(req.multipart=!0),req.open(method||"GET",this._prepareUrl()+(url?"/"+url:"")),method=="POST"&&"setRequestHeader"in req&&req.setRequestHeader("Content-type","application/x-www-form-urlencoded; charset=utf-8");return req},XHR.check=function(xdomain){try{if(request(xdomain))return!0}catch(e){}return!1},XHR.xdomainCheck=function(){return XHR.check(!0)},XHR.request=request}(),function(){var WS=io.Transport.websocket=function(){io.Transport.apply(this,arguments)};io.util.inherit(WS,io.Transport),WS.prototype.type="websocket",WS.prototype.connect=function(){var self=this;this.socket=new WebSocket(this._prepareUrl()),this.socket.onmessage=function(ev){self._onData(ev.data)},this.socket.onclose=function(ev){self._onClose()},this.socket.onerror=function(e){self._onError(e)};return this},WS.prototype.send=function(data){this.socket&&this.socket.send(this._encode(data));return this},WS.prototype.disconnect=function(){this.socket&&this.socket.close();return this},WS.prototype._onClose=function(){this._onDisconnect();return this},WS.prototype._onError=function(e){this.base.emit("error",[e])},WS.prototype._prepareUrl=function(){return(this.base.options.secure?"wss":"ws")+"://"+this.base.host+":"+this.base.options.port+"/"+this.base.options.resource+"/"+this.type+(this.sessionid?"/"+this.sessionid:"")},WS.check=function(){return"WebSocket"in window&&WebSocket.prototype&&WebSocket.prototype.send&&!!WebSocket.prototype.send.toString().match(/native/i)&&typeof WebSocket!="undefined"},WS.xdomainCheck=function(){return!0}}(),function(){var Flashsocket=io.Transport.flashsocket=function(){io.Transport.websocket.apply(this,arguments)};io.util.inherit(Flashsocket,io.Transport.websocket),Flashsocket.prototype.type="flashsocket",Flashsocket.prototype.connect=function(){var self=this,args=arguments;WebSocket.__addTask(function(){io.Transport.websocket.prototype.connect.apply(self,args)});return this},Flashsocket.prototype.send=function(){var self=this,args=arguments;WebSocket.__addTask(function(){io.Transport.websocket.prototype.send.apply(self,args)});return this},Flashsocket.check=function(){if(typeof WebSocket=="undefined"||!("__addTask"in WebSocket))return!1;if(io.util.opera)return!1;if("navigator"in window&&"plugins"in navigator&&navigator.plugins["Shockwave Flash"])return!!navigator.plugins["Shockwave Flash"].description;if("ActiveXObject"in window)try{return!!(new ActiveXObject("ShockwaveFlash.ShockwaveFlash")).GetVariable("$version")}catch(e){}return!1},Flashsocket.xdomainCheck=function(){return!0}}(),function(){var HTMLFile=io.Transport.htmlfile=function(){io.Transport.XHR.apply(this,arguments)};io.util.inherit(HTMLFile,io.Transport.XHR),HTMLFile.prototype.type="htmlfile",HTMLFile.prototype._get=function(){var self=this;this._open(),window.attachEvent("onunload",function(){self._destroy()})},HTMLFile.prototype._open=function(){this._doc=new ActiveXObject("htmlfile"),this._doc.open(),this._doc.write("<html></html>"),this._doc.parentWindow.s=this,this._doc.close();var _iframeC=this._doc.createElement("div");this._doc.body.appendChild(_iframeC),this._iframe=this._doc.createElement("iframe"),_iframeC.appendChild(this._iframe),this._iframe.src=this._prepareUrl()+"/"+ +(new Date)},HTMLFile.prototype._=function(data,doc){this._onData(data);var script=doc.getElementsByTagName("script")[0];script.parentNode.removeChild(script)},HTMLFile.prototype._destroy=function(){this._iframe&&(this._iframe.src="about:blank",this._doc=null,CollectGarbage())},HTMLFile.prototype.disconnect=function(){this._destroy();return io.Transport.XHR.prototype.disconnect.call(this)},HTMLFile.check=function(){if("ActiveXObject"in window)try{var a=new ActiveXObject("htmlfile");return a&&io.Transport.XHR.check()}catch(e){}return!1},HTMLFile.xdomainCheck=function(){return!1}}(),function(){var XHRMultipart=io.Transport["xhr-multipart"]=function(){io.Transport.XHR.apply(this,arguments)};io.util.inherit(XHRMultipart,io.Transport.XHR),XHRMultipart.prototype.type="xhr-multipart",XHRMultipart.prototype._get=function(){var self=this;this._xhr=this._request("","GET",!0),this._xhr.onreadystatechange=function(){self._xhr.readyState==4&&self._onData(self._xhr.responseText)},this._xhr.send(null)},XHRMultipart.check=function(){return"XMLHttpRequest"in window&&"prototype"in XMLHttpRequest&&"multipart"in XMLHttpRequest.prototype},XHRMultipart.xdomainCheck=function(){return!0}}(),function(){var empty=new Function,XHRPolling=io.Transport["xhr-polling"]=function(){io.Transport.XHR.apply(this,arguments)};io.util.inherit(XHRPolling,io.Transport.XHR),XHRPolling.prototype.type="xhr-polling",XHRPolling.prototype.connect=function(){if(io.util.ios||io.util.android){var self=this;io.util.load(function(){setTimeout(function(){io.Transport.XHR.prototype.connect.call(self)},10)})}else io.Transport.XHR.prototype.connect.call(this)},XHRPolling.prototype._get=function(){var self=this;this._xhr=this._request(+(new Date),"GET"),this._xhr.onreadystatechange=function(){var status;if(self._xhr.readyState==4){self._xhr.onreadystatechange=empty;try{status=self._xhr.status}catch(e){}status==200?(self._onData(self._xhr.responseText),self._get()):self._onDisconnect()}},this._xhr.send(null)},XHRPolling.check=function(){return io.Transport.XHR.check()},XHRPolling.xdomainCheck=function(){return io.Transport.XHR.xdomainCheck()}}(),io.JSONP=[],JSONPPolling=io.Transport["jsonp-polling"]=function(){io.Transport.XHR.apply(this,arguments),this._insertAt=document.getElementsByTagName("script")[0],this._index=io.JSONP.length,io.JSONP.push(this)},io.util.inherit(JSONPPolling,io.Transport["xhr-polling"]),JSONPPolling.prototype.type="jsonp-polling",JSONPPolling.prototype._send=function(data){var self=this;if(!("_form"in this)){var form=document.createElement("FORM"),area=document.createElement("TEXTAREA"),id=this._iframeId="socket_io_iframe_"+this._index,iframe;form.style.position="absolute",form.style.top="-1000px",form.style.left="-1000px",form.target=id,form.method="POST",form.action=this._prepareUrl()+"/"+ +(new Date)+"/"+this._index,area.name="data",form.appendChild(area),this._insertAt.parentNode.insertBefore(form,this._insertAt),document.body.appendChild(form),this._form=form,this._area=area}function complete(){initIframe(),self._posting=!1,self._checkSend()}function initIframe(){self._iframe&&self._form.removeChild(self._iframe);try{iframe=document.createElement('<iframe name="'+self._iframeId+'">')}catch(e){iframe=document.createElement("iframe"),iframe.name=self._iframeId}iframe.id=self._iframeId,self._form.appendChild(iframe),self._iframe=iframe}initIframe(),this._posting=!0,this._area.value=data;try{this._form.submit()}catch(e){}this._iframe.attachEvent?iframe.onreadystatechange=function(){self._iframe.readyState=="complete"&&complete()}:this._iframe.onload=complete},JSONPPolling.prototype._get=function(){var self=this,script=document.createElement("SCRIPT");this._script&&(this._script.parentNode.removeChild(this._script),this._script=null),script.async=!0,script.src=this._prepareUrl()+"/"+ +(new Date)+"/"+this._index,script.onerror=function(){self._onDisconnect()},this._insertAt.parentNode.insertBefore(script,this._insertAt),this._script=script},JSONPPolling.prototype._=function(){this._onData.apply(this,arguments),this._get();return this},JSONPPolling.check=function(){return!0},JSONPPolling.xdomainCheck=function(){return!0},function(){var Socket=io.Socket=function(host,options){this.host=host||document.domain,this.options={secure:!1,document:document,port:document.location.port||80,resource:"socket.io",transports:["websocket","flashsocket","htmlfile","xhr-multipart","xhr-polling","jsonp-polling"],transportOptions:{"xhr-polling":{timeout:25e3},"jsonp-polling":{timeout:25e3}},connectTimeout:5e3,tryTransportsOnConnectTimeout:!0,rememberTransport:!0},io.util.merge(this.options,options),this.connected=!1,this.connecting=!1,this._events={},this.transport=this.getTransport(),!this.transport&&"console"in window&&console.error("No transport available")};Socket.prototype.getTransport=function(override){var transports=override||this.options.transports,match;this.options.rememberTransport&&!override&&(match=this.options.document.cookie.match("(?:^|;)\\s*socketio=([^;]*)"),match&&(this._rememberedTransport=!0,transports=[decodeURIComponent(match[1])]));for(var i=0,transport;transport=transports[i];i++)if(io.Transport[transport]&&io.Transport[transport].check()&&(!this._isXDomain()||io.Transport[transport].xdomainCheck()))return new io.Transport[transport](this,this.options.transportOptions[transport]||{});return null},Socket.prototype.connect=function(){if(this.transport&&!this.connected){this.connecting&&this.disconnect(),this.connecting=!0,this.emit("connecting",[this.transport.type]),this.transport.connect();if(this.options.connectTimeout){var self=this;this.connectTimeoutTimer=setTimeout(function(){if(!self.connected){self.disconnect();if(self.options.tryTransportsOnConnectTimeout&&!self._rememberedTransport){self._remainingTransports||(self._remainingTransports=self.options.transports.slice(0));var transports=self._remainingTransports;while(transports.length>0&&transports.splice(0,1)[0]!=self.transport.type);transports.length&&(self.transport=self.getTransport(transports),self.connect())}(!self._remainingTransports||self._remainingTransports.length==0)&&self.emit("connect_failed")}self._remainingTransports&&self._remainingTransports.length==0&&delete self._remainingTransports},this.options.connectTimeout)}}return this},Socket.prototype.send=function(data){if(!this.transport||!this.transport.connected)return this._queue(data);this.transport.send(data);return this},Socket.prototype.disconnect=function(){this.connectTimeoutTimer&&clearTimeout(this.connectTimeoutTimer),this.transport.disconnect();return this},Socket.prototype.on=function(name,fn){name in this._events||(this._events[name]=[]),this._events[name].push(fn);return this},Socket.prototype.emit=function(name,args){if(name in this._events){var events=this._events[name].concat();for(var i=0,ii=events.length;i<ii;i++)events[i].apply(this,args===undefined?[]:args)}return this},Socket.prototype.removeEvent=function(name,fn){if(name in this._events)for(var a=0,l=this._events[name].length;a<l;a++)this._events[name][a]==fn&&this._events[name].splice(a,1);return this},Socket.prototype._queue=function(message){"_queueStack"in this||(this._queueStack=[]),this._queueStack.push(message);return this},Socket.prototype._doQueue=function(){if(!("_queueStack"in this)||!this._queueStack.length)return this;this.transport.send(this._queueStack),this._queueStack=[];return this},Socket.prototype._isXDomain=function(){return this.host!==document.domain},Socket.prototype._onConnect=function(){this.connected=!0,this.connecting=!1,this._doQueue(),this.options.rememberTransport&&(this.options.document.cookie="socketio="+encodeURIComponent(this.transport.type)),this.emit("connect")},Socket.prototype._onMessage=function(data){this.emit("message",[data])},Socket.prototype._onDisconnect=function(){var wasConnected=this.connected;this.connected=!1,this.connecting=!1,this._queueStack=[],wasConnected&&this.emit("disconnect")},Socket.prototype.fire=Socket.prototype.emit,Socket.prototype.addListener=Socket.prototype.addEvent=Socket.prototype.addEventListener=Socket.prototype.on}();var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=!1,U=[h],o=[],N=[],I=[],l,Q,E,B,J=!1,a=!1,n,G,m=!0,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):!1,X=!1,ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r)ab=t.plugins[S].description,ab&&(typeof t.mimeTypes==D||!t.mimeTypes[q]||!!t.mimeTypes[q].enabledPlugin)&&(T=!0,X=!1,ab=ab.replace(/^.*\s+(\S+\s+\S+$)/,"$1"),ag[0]=parseInt(ab.replace(/^(.*)\..*$/,"$1"),10),ag[1]=parseInt(ab.replace(/^.*\.(.*)\s.*$/,"$1"),10),ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0);else if(typeof O.ActiveXObject!=D)try{var ad=new ActiveXObject(W);ad&&(ab=ad.GetVariable("$version"),ab&&(X=!0,ab=ab.split(" ")[1].split(","),ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]))}catch(Z){}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){!M.w3||((typeof j.readyState!=D&&j.readyState=="complete"||typeof j.readyState==D&&(j.getElementsByTagName("body")[0]||j.body))&&f(),J||(typeof j.addEventListener!=D&&j.addEventListener("DOMContentLoaded",f,!1),M.ie&&M.win&&(j.attachEvent(x,function(){j.readyState=="complete"&&(j.detachEvent(x,arguments.callee),f())}),O==top&&function(){if(!J){try{j.documentElement.doScroll("left")}catch(X){setTimeout(arguments.callee,0);return}f()}}()),M.wk&&function(){if(!J){if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()}}(),s(f)))}();function f(){if(!J){try{var Z=j.getElementsByTagName("body")[0].appendChild(C("span"));Z.parentNode.removeChild(Z)}catch(aa){return}J=!0;var X=U.length;for(var Y=0;Y<X;Y++)U[Y]()}}function K(X){J?X():U[U.length]=X}function s(Y){if(typeof O.addEventListener!=D)O.addEventListener("load",Y,!1);else if(typeof j.addEventListener!=D)j.addEventListener("load",Y,!1);else if(typeof O.attachEvent!=D)i(O,"onload",Y);else if(typeof O.onload=="function"){var X=O.onload;O.onload=function(){X(),Y()}}else O.onload=Y}function h(){T?V():H()}function V(){var X=j.getElementsByTagName("body")[0],aa=C(r);aa.setAttribute("type",q);var Z=X.appendChild(aa);if(Z){var Y=0;(function(){if(typeof Z.GetVariable!=D){var ab=Z.GetVariable("$version");ab&&(ab=ab.split(" ")[1].split(","),M.pv=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)])}else if(Y<10){Y++,setTimeout(arguments.callee,10);return}X.removeChild(aa),Z=null,H()})()}else H()}function H(){var ag=o.length;if(ag>0)for(var af=0;af<ag;af++){var Y=o[af].id,ab=o[af].callbackFn,aa={success:!1,id:Y};if(M.pv[0]>0){var ae=c(Y);if(ae)if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312))w(Y,!0),ab&&(aa.success=!0,aa.ref=z(Y),ab(aa));else if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall,ai.width=ae.getAttribute("width")||"0",ai.height=ae.getAttribute("height")||"0",ae.getAttribute("class")&&(ai.styleclass=ae.getAttribute("class")),ae.getAttribute("align")&&(ai.align=ae.getAttribute("align"));var ah={},X=ae.getElementsByTagName("param"),ac=X.length;for(var ad=0;ad<ac;ad++)X[ad].getAttribute("name").toLowerCase()!="movie"&&(ah[X[ad].getAttribute("name")]=X[ad].getAttribute("value"));P(ai,ah,Y,ab)}else p(ae),ab&&ab(aa)}else{w(Y,!0);if(ab){var Z=z(Y);Z&&typeof Z.SetVariable!=D&&(aa.success=!0,aa.ref=Z),ab(aa)}}}}function z(aa){var X=null,Y=c(aa);if(Y&&Y.nodeName=="OBJECT")if(typeof Y.SetVariable!=D)X=Y;else{var Z=Y.getElementsByTagName(r)[0];Z&&(X=Z)}return X}function A(){return!a&&F("6.0.65")&&(M.win||M.mac)&&!(M.wk&&M.wk<312)}function P(aa,ab,X,Z){a=!0,E=Z||null,B={success:!1,id:X};var ae=c(X);if(ae){ae.nodeName=="OBJECT"?(l=g(ae),Q=null):(l=ae,Q=X),aa.id=R;if(typeof aa.width==D||!/%$/.test(aa.width)&&parseInt(aa.width,10)<310)aa.width="310";if(typeof aa.height==D||!/%$/.test(aa.height)&&parseInt(aa.height,10)<137)aa.height="137";j.title=j.title.slice(0,47)+" - Flash Player Installation";var ad=M.ie&&M.win?"ActiveX":"PlugIn",ac="MMredirectURL="+O.location.toString().replace(/&/g,"%26")+"&MMplayerType="+ad+"&MMdoctitle="+j.title;typeof ab.flashvars!=D?ab.flashvars+="&"+ac:ab.flashvars=ac;if(M.ie&&M.win&&ae.readyState!=4){var Y=C("div");X+="SWFObjectNew",Y.setAttribute("id",X),ae.parentNode.insertBefore(Y,ae),ae.style.display="none",function(){ae.readyState==4?ae.parentNode.removeChild(ae):setTimeout(arguments.callee,10)}()}u(aa,ab,X)}}function p(Y){if(M.ie&&M.win&&Y.readyState!=4){var X=C("div");Y.parentNode.insertBefore(X,Y),X.parentNode.replaceChild(g(Y),X),Y.style.display="none",function(){Y.readyState==4?Y.parentNode.removeChild(Y):setTimeout(arguments.callee,10)}()}else Y.parentNode.replaceChild(g(Y),Y)}function g(ab){var aa=C("div");if(M.win&&M.ie)aa.innerHTML=ab.innerHTML;else{var Y=ab.getElementsByTagName(r)[0];if(Y){var ad=Y.childNodes;if(ad){var X=ad.length;for(var Z=0;Z<X;Z++)(ad[Z].nodeType!=1||ad[Z].nodeName!="PARAM")&&ad[Z].nodeType!=8&&aa.appendChild(ad[Z].cloneNode(!0))}}}return aa}function u(ai,ag,Y){var X,aa=c(Y);if(M.wk&&M.wk<312)return X;if(aa){typeof ai.id==D&&(ai.id=Y);if(M.ie&&M.win){var ah="";for(var ae in ai)ai[ae]!=Object.prototype[ae]&&(ae.toLowerCase()=="data"?ag.movie=ai[ae]:ae.toLowerCase()=="styleclass"?ah+=' class="'+ai[ae]+'"':ae.toLowerCase()!="classid"&&(ah+=" "+ae+'="'+ai[ae]+'"'));var af="";for(var ad in ag)ag[ad]!=Object.prototype[ad]&&(af+='<param name="'+ad+'" value="'+ag[ad]+'" />');aa.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+ah+">"+af+"</object>",N[N.length]=ai.id,X=c(ai.id)}else{var Z=C(r);Z.setAttribute("type",q);for(var ac in ai)ai[ac]!=Object.prototype[ac]&&(ac.toLowerCase()=="styleclass"?Z.setAttribute("class",ai[ac]):ac.toLowerCase()!="classid"&&Z.setAttribute(ac,ai[ac]));for(var ab in ag)ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!="movie"&&e(Z,ab,ag[ab]);aa.parentNode.replaceChild(Z,aa),X=Z}}return X}function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X),aa.setAttribute("value",Y),Z.appendChild(aa)}function y(Y){var X=c(Y);X&&X.nodeName=="OBJECT"&&(M.ie&&M.win?(X.style.display="none",function(){X.readyState==4?b(Y):setTimeout(arguments.callee,10)}()):X.parentNode.removeChild(X))}function b(Z){var Y=c(Z);if(Y){for(var X in Y)typeof Y[X]=="function"&&(Y[X]=null);Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y),I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10),X[1]=parseInt(X[1],10)||0,X[2]=parseInt(X[2],10)||0;return Y[0]>X[0]||Y[0]==X[0]&&Y[1]>X[1]||Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]?!0:!1}function v(ac,Y,ad,ab){if(!M.ie||!M.mac){var aa=j.getElementsByTagName("head")[0];if(!aa)return;var X=ad&&typeof ad=="string"?ad:"screen";ab&&(n=null,G=null);if(!n||G!=X){var Z=C("style");Z.setAttribute("type","text/css"),Z.setAttribute("media",X),n=aa.appendChild(Z),M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0&&(n=j.styleSheets[j.styleSheets.length-1]),G=X}M.ie&&M.win?n&&typeof n.addRule==r&&n.addRule(ac,Y):n&&typeof j.createTextNode!=D&&n.appendChild(j.createTextNode(ac+" {"+Y+"}"))}}function w(Z,X){if(!!m){var Y=X?"visible":"hidden";J&&c(Z)?c(Z).style.visibility=Y:v("#"+Z,"visibility:"+Y)}}function L(Y){var Z=/[\\\"<>\.;]/,X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){M.ie&&M.win&&window.attachEvent("onunload",function(){var ac=I.length;for(var ab=0;ab<ac;ab++)I[ab][0].detachEvent(I[ab][1],I[ab][2]);var Z=N.length;for(var aa=0;aa<Z;aa++)y(N[aa]);for(var Y in M)M[Y]=null;M=null;for(var X in swfobject)swfobject[X]=null;swfobject=null})}();return{registerObject:function(ab,X,aa,Z){if(M.w3&&ab&&X){var Y={};Y.id=ab,Y.swfVersion=X,Y.expressInstall=aa,Y.callbackFn=Z,o[o.length]=Y,w(ab,!1)}else Z&&Z({success:!1,id:ab})},getObjectById:function(X){if(M.w3)return z(X)},embedSWF:function(ab,ah,ae,ag,Y,aa,Z,ad,af,ac){var X={success:!1,id:ah};M.w3&&!(M.wk&&M.wk<312)&&ab&&ah&&ae&&ag&&Y?(w(ah,!1),K(function(){ae+="",ag+="";var aj={};if(af&&typeof af===r)for(var al in af)aj[al]=af[al];aj.data=ab,aj.width=ae,aj.height=ag;var am={};if(ad&&typeof ad===r)for(var ak in ad)am[ak]=ad[ak];if(Z&&typeof Z===r)for(var ai in Z)typeof am.flashvars!=D?am.flashvars+="&"+ai+"="+Z[ai]:am.flashvars=ai+"="+Z[ai];if(F(Y)){var an=u(aj,am,ah);aj.id==ah&&w(ah,!0),X.success=!0,X.ref=an}else{if(aa&&A()){aj.data=aa,P(aj,am,ah,ac);return}w(ah,!0)}ac&&ac(X)})):ac&&ac(X)},switchOffAutoHideShow:function(){m=!1},ua:M,getFlashPlayerVersion:function(){return{major:M.pv[0],minor:M.pv[1],release:M.pv[2]}},hasFlashPlayerVersion:F,createSWF:function(Z,Y,X){return M.w3?u(Z,Y,X):undefined},showExpressInstall:function(Z,aa,X,Y){M.w3&&A()&&P(Z,aa,X,Y)},removeSWF:function(X){M.w3&&y(X)},createCSS:function(aa,Z,Y,X){M.w3&&v(aa,Z,Y,X)},addDomLoadEvent:K,addLoadEvent:s,getQueryParamValue:function(aa){var Z=j.location.search||j.location.hash;if(Z){/\?/.test(Z)&&(Z=Z.split("?")[1]);if(aa==null)return L(Z);var Y=Z.split("&");for(var X=0;X<Y.length;X++)if(Y[X].substring(0,Y[X].indexOf("="))==aa)return L(Y[X].substring(Y[X].indexOf("=")+1))}return""},expressInstallCallback:function(){if(a){var X=c(R);X&&l&&(X.parentNode.replaceChild(l,X),Q&&(w(Q,!0),M.ie&&M.win&&(l.style.display="block")),E&&E(B)),a=!1}}}}();function FABridge(target,bridgeName){this.target=target,this.remoteTypeCache={},this.remoteInstanceCache={},this.remoteFunctionCache={},this.localFunctionCache={},this.bridgeID=FABridge.nextBridgeID++,this.name=bridgeName,this.nextLocalFuncID=0,FABridge.instances[this.name]=this,FABridge.idMap[this.bridgeID]=this;return this}FABridge.TYPE_ASINSTANCE=1,FABridge.TYPE_ASFUNCTION=2,FABridge.TYPE_JSFUNCTION=3,FABridge.TYPE_ANONYMOUS=4,FABridge.initCallbacks={},FABridge.userTypes={},FABridge.addToUserTypes=function(){for(var i=0;i<arguments.length;i++)FABridge.userTypes[arguments[i]]={typeName:arguments[i],enriched:!1}},FABridge.argsToArray=function(args){var result=[];for(var i=0;i<args.length;i++)result[i]=args[i];return result};function instanceFactory(objID){this.fb_instance_id=objID;return this}function FABridge__invokeJSFunction(args){var funcID=args[0],throughArgs=args.concat();throughArgs.shift();var bridge=FABridge.extractBridgeFromID(funcID);return bridge.invokeLocalFunction(funcID,throughArgs)}FABridge.addInitializationCallback=function(bridgeName,callback){var inst=FABridge.instances[bridgeName];if(inst!=undefined)callback.call(inst);else{var callbackList=FABridge.initCallbacks[bridgeName];callbackList==null&&(FABridge.initCallbacks[bridgeName]=callbackList=[]),callbackList.push(callback)}};function FABridge__bridgeInitialized(bridgeName){var objects=document.getElementsByTagName("object"),ol=objects.length,activeObjects=[];if(ol>0)for(var i=0;i<ol;i++)typeof objects[i].SetVariable!="undefined"&&(activeObjects[activeObjects.length]=objects[i]);var embeds=document.getElementsByTagName("embed"),el=embeds.length,activeEmbeds=[];if(el>0)for(var j=0;j<el;j++)typeof embeds[j].SetVariable!="undefined"&&(activeEmbeds[activeEmbeds.length]=embeds[j]);var aol=activeObjects.length,ael=activeEmbeds.length,searchStr="bridgeName="+bridgeName;if(aol==1&&!ael||aol==1&&ael==1)FABridge.attachBridge(activeObjects[0],bridgeName);else if(ael==1&&!aol)FABridge.attachBridge(activeEmbeds[0],bridgeName);else{var flash_found=!1;if(aol>1)for(var k=0;k<aol;k++){var params=activeObjects[k].childNodes;for(var l=0;l<params.length;l++){var param=params[l];if(param.nodeType==1&&param.tagName.toLowerCase()=="param"&&param.name.toLowerCase()=="flashvars"&&param.value.indexOf(searchStr)>=0){FABridge.attachBridge(activeObjects[k],bridgeName),flash_found=!0;break}}if(flash_found)break}if(!flash_found&&ael>1)for(var m=0;m<ael;m++){var flashVars=activeEmbeds[m].attributes.getNamedItem("flashVars").nodeValue;if(flashVars.indexOf(searchStr)>=0){FABridge.attachBridge(activeEmbeds[m],bridgeName);break}}}return!0}FABridge.nextBridgeID=0,FABridge.instances={},FABridge.idMap={},FABridge.refCount=0,FABridge.extractBridgeFromID=function(id){var bridgeID=id>>16;return FABridge.idMap[bridgeID]},FABridge.attachBridge=function(instance,bridgeName){var newBridgeInstance=new FABridge(instance,bridgeName);FABridge[bridgeName]=newBridgeInstance;var callbacks=FABridge.initCallbacks[bridgeName];if(callbacks!=null){for(var i=0;i<callbacks.length;i++)callbacks[i].call(newBridgeInstance);delete FABridge.initCallbacks[bridgeName]}},FABridge.blockedMethods={toString:!0,get:!0,set:!0,call:!0},FABridge.prototype={root:function(){return this.deserialize(this.target.getRoot())},releaseASObjects:function(){return this.target.releaseASObjects()},releaseNamedASObject:function(value){if(typeof value!="object")return!1;var ret=this.target.releaseNamedASObject(value.fb_instance_id);return ret},create:function(className){return this.deserialize(this.target.create(className))},makeID:function(token){return(this.bridgeID<<16)+token},getPropertyFromAS:function(objRef,propName){if(FABridge.refCount>0)throw new Error("You are trying to call recursively into the Flash Player which is not allowed. In most cases the JavaScript setTimeout function, can be used as a workaround.");FABridge.refCount++,retVal=this.target.getPropFromAS(objRef,propName),retVal=this.handleError(retVal),FABridge.refCount--;return retVal},setPropertyInAS:function(objRef,propName,value){if(FABridge.refCount>0)throw new Error("You are trying to call recursively into the Flash Player which is not allowed. In most cases the JavaScript setTimeout function, can be used as a workaround.");FABridge.refCount++,retVal=this.target.setPropInAS(objRef,propName,this.serialize(value)),retVal=this.handleError(retVal),FABridge.refCount--;return retVal},callASFunction:function(funcID,args){if(FABridge.refCount>0)throw new Error("You are trying to call recursively into the Flash Player which is not allowed. In most cases the JavaScript setTimeout function, can be used as a workaround.");FABridge.refCount++,retVal=this.target.invokeASFunction(funcID,this.serialize(args)),retVal=this.handleError(retVal),FABridge.refCount--;return retVal},callASMethod:function(objID,funcName,args){if(FABridge.refCount>0)throw new Error("You are trying to call recursively into the Flash Player which is not allowed. In most cases the JavaScript setTimeout function, can be used as a workaround.");FABridge.refCount++,args=this.serialize(args),retVal=this.target.invokeASMethod(objID,funcName,args),retVal=this.handleError(retVal),FABridge.refCount--;return retVal},invokeLocalFunction:function(funcID,args){var result,func=this.localFunctionCache[funcID];func!=undefined&&(result=this.serialize(func.apply(null,this.deserialize(args))));return result},getTypeFromName:function(objTypeName){return this.remoteTypeCache[objTypeName]},createProxy:function(objID,typeName){var objType=this.getTypeFromName(typeName);instanceFactory.prototype=objType;var instance=new instanceFactory(objID);this.remoteInstanceCache[objID]=instance;return instance},getProxy:function(objID){return this.remoteInstanceCache[objID]},addTypeDataToCache:function(typeData){var newType=new ASProxy(this,typeData.name),accessors=typeData.accessors;for(var i=0;i<accessors.length;i++)this.addPropertyToType(newType,accessors[i]);var methods=typeData.methods;for(var i=0;i<methods.length;i++)FABridge.blockedMethods[methods[i]]==undefined&&this.addMethodToType(newType,methods[i]);this.remoteTypeCache[newType.typeName]=newType;return newType},addPropertyToType:function(ty,propName){var c=propName.charAt(0),setterName,getterName;c>="a"&&c<="z"?(getterName="get"+c.toUpperCase()+propName.substr(1),setterName="set"+c.toUpperCase()+propName.substr(1)):(getterName="get"+propName,setterName="set"+propName),ty[setterName]=function(val){this.bridge.setPropertyInAS(this.fb_instance_id,propName,val)},ty[getterName]=function(){return this.bridge.deserialize(this.bridge.getPropertyFromAS(this.fb_instance_id,propName))}},addMethodToType:function(ty,methodName){ty[methodName]=function(){return this.bridge.deserialize(this.bridge.callASMethod(this.fb_instance_id,methodName,FABridge.argsToArray(arguments)))}},getFunctionProxy:function(funcID){var bridge=this;this.remoteFunctionCache[funcID]==null&&(this.remoteFunctionCache[funcID]=function(){bridge.callASFunction(funcID,FABridge.argsToArray(arguments))});return this.remoteFunctionCache[funcID]},getFunctionID:function(func){func.__bridge_id__==undefined&&(func.__bridge_id__=this.makeID(this.nextLocalFuncID++),this.localFunctionCache[func.__bridge_id__]=func);return func.__bridge_id__},serialize:function(value){var result={},t=typeof value;if(t=="number"||t=="string"||t=="boolean"||t==null||t==undefined)result=value;else if(value instanceof Array){result=[];for(var i=0;i<value.length;i++)result[i]=this.serialize(value[i])}else t=="function"?(result.type=FABridge.TYPE_JSFUNCTION,result.value=this.getFunctionID(value)):value instanceof ASProxy?(result.type=FABridge.TYPE_ASINSTANCE,result.value=value.fb_instance_id):(result.type=FABridge.TYPE_ANONYMOUS,result.value=value);return result},deserialize:function(packedValue){var result,t=typeof packedValue;if(t=="number"||t=="string"||t=="boolean"||packedValue==null||packedValue==undefined)result=this.handleError(packedValue);else if(packedValue instanceof Array){result=[];for(var i=0;i<packedValue.length;i++)result[i]=this.deserialize(packedValue[i])}else if(t=="object"){for(var i=0;i<packedValue.newTypes.length;i++)this.addTypeDataToCache(packedValue.newTypes[i]);for(var aRefID in packedValue.newRefs)this.createProxy(aRefID,packedValue.newRefs[aRefID]);packedValue.type==FABridge.TYPE_PRIMITIVE?result=packedValue.value:packedValue.type==FABridge.TYPE_ASFUNCTION?result=this.getFunctionProxy(packedValue.value):packedValue.type==FABridge.TYPE_ASINSTANCE?result=this.getProxy(packedValue.value):packedValue.type==FABridge.TYPE_ANONYMOUS&&(result=packedValue.value)}return result},addRef:function(obj){this.target.incRef(obj.fb_instance_id)},release:function(obj){this.target.releaseRef(obj.fb_instance_id)},handleError:function(value){if(typeof value=="string"&&value.indexOf("__FLASHERROR")==0){var myErrorMessage=value.split("||");FABridge.refCount>0&&FABridge.refCount--;throw new Error(myErrorMessage[1])}return value}},ASProxy=function(bridge,typeName){this.bridge=bridge,this.typeName=typeName;return this},ASProxy.prototype={get:function(propName){return this.bridge.deserialize(this.bridge.getPropertyFromAS(this.fb_instance_id,propName))},set:function(propName,value){this.bridge.setPropertyInAS(this.fb_instance_id,propName,value)},call:function(funcName,args){this.bridge.callASMethod(this.fb_instance_id,funcName,args)},addRef:function(){this.bridge.addRef(this)},release:function(){this.bridge.release(this)}},function(){if(!window.WebSocket){var console=window.console;if(!console||!console.log||!console.error)console={log:function(){},error:function(){}};if(!swfobject.hasFlashPlayerVersion("9.0.0")){console.error("Flash Player is not installed.");return}location.protocol=="file:"&&console.error("WARNING: web-socket-js doesn't work in file:///... URL unless you set Flash Security Settings properly. Open the page via Web server i.e. http://..."),WebSocket=function(url,protocol,proxyHost,proxyPort,headers){var self=this;self.readyState=WebSocket.CONNECTING,self.bufferedAmount=0,setTimeout(function(){WebSocket.__addTask(function(){self.__createFlash(url,protocol,proxyHost,proxyPort,headers)})},0)},WebSocket.prototype.__createFlash=function(url,protocol,proxyHost,proxyPort,headers){var self=this;self.__flash=WebSocket.__flash.create(url,protocol,proxyHost||null,proxyPort||0,headers||null),self.__flash.addEventListener("event",function(fe){setTimeout(function(){self.__handleEvents()},0)})},WebSocket.prototype.send=function(data){if(!this.__flash||this.readyState==WebSocket.CONNECTING)throw"INVALID_STATE_ERR: Web Socket connection has not been established";var result=this.__flash.send(encodeURIComponent(data));if(result<0)return!0;this.bufferedAmount+=result;return!1},WebSocket.prototype.close=function(){var self=this;if(!!self.__flash){if(self.readyState==WebSocket.CLOSED||self.readyState==WebSocket.CLOSING)return;self.__flash.close(),self.readyState=WebSocket.CLOSED,self.__timer&&clearInterval(self.__timer),self.onclose&&setTimeout(self.onclose,0)}},WebSocket.prototype.addEventListener=function(type,listener,useCapture){"__events"in this||(this.__events={}),type in this.__events||(this.__events[type]=[],"function"==typeof this["on"+type]&&(this.__events[type].defaultHandler=this["on"+type],this["on"+type]=this.__createEventHandler(this,type))),this.__events[type].push(listener)},WebSocket.prototype.removeEventListener=function(type,listener,useCapture){"__events"in this||(this.__events={});if(type in this.__events)for(var i=this.__events.length;i>-1;--i)if(listener===this.__events[type][i]){this.__events[type].splice(i,1);break}},WebSocket.prototype.dispatchEvent=function(event){if(!("__events"in this))throw"UNSPECIFIED_EVENT_TYPE_ERR";if(!(event.type in this.__events))throw"UNSPECIFIED_EVENT_TYPE_ERR";for(var i=0,l=this.__events[event.type].length;i<l;++i){this.__events[event.type][i](event);if(event.cancelBubble)break}!1!==event.returnValue&&"function"==typeof this.__events[event.type].defaultHandler&&this.__events[event.type].defaultHandler(event)},WebSocket.prototype.__handleEvents=function(){var events=this.__flash.receiveEvents();for(var i=0;i<events.length;i++)try{var event=events[i];"readyState"in event&&(this.readyState=event.readyState);if(event.type=="open")this.__timer&&clearInterval(this.__timer),window.opera&&(this.__timer=setInterval(function(){this.__handleEvents()},500)),this.onopen&&this.onopen();else if(event.type=="close")this.__timer&&clearInterval(this.__timer),this.onclose&&this.onclose();else if(event.type=="message"){if(this.onmessage){var data=decodeURIComponent(event.data),e;window.MessageEvent&&!window.opera?(e=document.createEvent("MessageEvent"),e.initMessageEvent("message",!1,!1,data,null,null,window,null)):e={data:data},this.onmessage(e)}}else if(event.type=="error")this.__timer&&clearInterval(this.__timer),this.onerror&&this.onerror();else throw"unknown event type: "+event.type}catch(e){console.error(e.toString())}},WebSocket.prototype.__createEventHandler=function(object,type){return function(data){var event=new WebSocketEvent;event.initEvent(type,!0,!0),event.target=event.currentTarget=object;for(var key in data)event[key]=data[key];object.dispatchEvent(event,arguments)}};function WebSocketEvent(){}WebSocketEvent.prototype.cancelable=!0,WebSocketEvent.prototype.cancelBubble=!1,WebSocketEvent.prototype.preventDefault=function(){this.cancelable&&(this.returnValue=!1)},WebSocketEvent.prototype.stopPropagation=function(){this.cancelBubble=!0},WebSocketEvent.prototype.initEvent=function(eventTypeArg,canBubbleArg,cancelableArg){this.type=eventTypeArg,this.cancelable=cancelableArg,this.timeStamp=new Date},WebSocket.CONNECTING=0,WebSocket.OPEN=1,WebSocket.CLOSING=2,WebSocket.CLOSED=3,WebSocket.__tasks=[],WebSocket.loadFlashPolicyFile=function(url){WebSocket.__addTask(function(){WebSocket.__flash.loadManualPolicyFile(url)})},WebSocket.__initialize=function(){WebSocket.__swfLocation&&(window.WEB_SOCKET_SWF_LOCATION=WebSocket.__swfLocation);if(!window.WEB_SOCKET_SWF_LOCATION)console.error("[WebSocket] set WEB_SOCKET_SWF_LOCATION to location of WebSocketMain.swf");else{var container=document.createElement("div");container.id="webSocketContainer",container.style.position="absolute",WebSocket.__isFlashLite()?(container.style.left="0px",container.style.top="0px"):(container.style.left="-100px",container.style.top="-100px");var holder=document.createElement("div");holder.id="webSocketFlash",container.appendChild(holder),document.body.appendChild(container),swfobject.embedSWF(WEB_SOCKET_SWF_LOCATION,"webSocketFlash","1","1","9.0.0",null,{bridgeName:"webSocket"},{hasPriority:!0,allowScriptAccess:"always"},null,function(e){e.success||console.error("[WebSocket] swfobject.embedSWF failed")}),FABridge.addInitializationCallback("webSocket",function(){try{WebSocket.__flash=FABridge.webSocket.root(),WebSocket.__flash.setCallerUrl(location.href),WebSocket.__flash.setDebug(!!window.WEB_SOCKET_DEBUG);for(var i=0;i<WebSocket.__tasks.length;++i)WebSocket.__tasks[i]();WebSocket.__tasks=[]}catch(e){console.error("[WebSocket] "+e.toString())}})}},WebSocket.__addTask=function(task){WebSocket.__flash?task():WebSocket.__tasks.push(task)},WebSocket.__isFlashLite=function(){if(!window.navigator||!window.navigator.mimeTypes)return!1;var mimeType=window.navigator.mimeTypes["application/x-shockwave-flash"];if(!mimeType||!mimeType.enabledPlugin||!mimeType.enabledPlugin.filename)return!1;return mimeType.enabledPlugin.filename.match(/flashlite/i)?!0:!1},window.webSocketLog=function(message){console.log(decodeURIComponent(message))},window.webSocketError=function(message){console.error(decodeURIComponent(message))},window.WEB_SOCKET_DISABLE_AUTO_INITIALIZATION||(window.addEventListener?window.addEventListener("load",WebSocket.__initialize,!1):window.attachEvent("onload",WebSocket.__initialize))}}();
+var io=this.io={version:"0.6.3",setPath:function(path){window.console&&console.error&&console.error("io.setPath will be removed. Please set the variable WEB_SOCKET_SWF_LOCATION pointing to WebSocketMain.swf"),this.path=/\/$/.test(path)?path:path+"/",WEB_SOCKET_SWF_LOCATION=path+"lib/vendor/web-socket-js/WebSocketMain.swf"}};"jQuery"in this&&(jQuery.io=this.io),typeof window!="undefined"&&typeof WEB_SOCKET_SWF_LOCATION=="undefined"&&(WEB_SOCKET_SWF_LOCATION="/socket.io/lib/vendor/web-socket-js/WebSocketMain.swf"),function(){var io=this.io,pageLoaded=!1;io.util={load:function(fn){if(/loaded|complete/.test(document.readyState)||pageLoaded)return fn();"attachEvent"in window?window.attachEvent("onload",fn):window.addEventListener("load",fn,!1)},defer:function(fn){if(!io.util.webkit)return fn();io.util.load(function(){setTimeout(fn,100)})},inherit:function(ctor,superCtor){for(var i in superCtor.prototype)ctor.prototype[i]=superCtor.prototype[i]},indexOf:function(arr,item,from){for(var l=arr.length,i=from<0?Math.max(0,l+from):from||0;i<l;i++)if(arr[i]===item)return i;return-1},isArray:function(obj){return Object.prototype.toString.call(obj)==="[object Array]"},merge:function(target,additional){for(var i in additional)additional.hasOwnProperty(i)&&(target[i]=additional[i])}},io.util.webkit=/webkit/i.test(navigator.userAgent),io.util.load(function(){pageLoaded=!0})}(),function(){var io=this.io,frame="~m~",stringify=function(message){if(Object.prototype.toString.call(message)=="[object Object]"){if(!("JSON"in window)){var error="Socket.IO Error: Trying to encode as JSON, but JSON.stringify is missing.";if("console"in window&&console.error)console.error(error);else throw new Error(error);return'{ "$error": "'+error+'" }'}return"~j~"+JSON.stringify(message)}return String(message)},Transport=io.Transport=function(base,options){this.base=base,this.options={timeout:15e3},io.util.merge(this.options,options)};Transport.prototype.send=function(){throw new Error("Missing send() implementation")},Transport.prototype.connect=function(){throw new Error("Missing connect() implementation")},Transport.prototype.disconnect=function(){throw new Error("Missing disconnect() implementation")},Transport.prototype.encode=function(messages){var ret="",message;messages=io.util.isArray(messages)?messages:[messages];for(var i=0,l=messages.length;i<l;i++)message=messages[i]===null||messages[i]===undefined?"":stringify(messages[i]),ret+=frame+message.length+frame+message;return ret},Transport.prototype.decode=function(data){var messages=[],number,n;do{if(data.substr(0,3)!==frame)return messages;data=data.substr(3),number="",n="";for(var i=0,l=data.length;i<l;i++){n=Number(data.substr(i,1));if(data.substr(i,1)==n)number+=n;else{data=data.substr(number.length+frame.length),number=Number(number);break}}messages.push(data.substr(0,number)),data=data.substr(number)}while(data!=="");return messages},Transport.prototype.onData=function(data){this.setTimeout();var msgs=this.decode(data);if(msgs&&msgs.length)for(var i=0,l=msgs.length;i<l;i++)this.onMessage(msgs[i])},Transport.prototype.setTimeout=function(){var self=this;this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout(function(){self.onTimeout()},this.options.timeout)},Transport.prototype.onTimeout=function(){this.onDisconnect()},Transport.prototype.onMessage=function(message){this.sessionid?message.substr(0,3)=="~h~"?this.onHeartbeat(message.substr(3)):message.substr(0,3)=="~j~"?this.base.onMessage(JSON.parse(message.substr(3))):this.base.onMessage(message):(this.sessionid=message,this.onConnect())},Transport.prototype.onHeartbeat=function(heartbeat){this.send("~h~"+heartbeat)},Transport.prototype.onConnect=function(){this.connected=!0,this.connecting=!1,this.base.onConnect(),this.setTimeout()},Transport.prototype.onDisconnect=function(){this.connecting=!1,this.connected=!1,this.sessionid=null,this.base.onDisconnect()},Transport.prototype.prepareUrl=function(){return(this.base.options.secure?"https":"http")+"://"+this.base.host+":"+this.base.options.port+"/"+this.base.options.resource+"/"+this.type+(this.sessionid?"/"+this.sessionid:"/")}}(),function(){var io=this.io,empty=new Function,XMLHttpRequestCORS=function(){if(!("XMLHttpRequest"in window))return!1;var a=new XMLHttpRequest;return a.withCredentials!=undefined}(),request=function(xdomain){if("XDomainRequest"in window&&xdomain)return new XDomainRequest;if("XMLHttpRequest"in window&&(!xdomain||XMLHttpRequestCORS))return new XMLHttpRequest;if(!xdomain){try{var a=new ActiveXObject("MSXML2.XMLHTTP");return a}catch(e){}try{var b=new ActiveXObject("Microsoft.XMLHTTP");return b}catch(e){}}return!1},XHR=io.Transport.XHR=function(){io.Transport.apply(this,arguments),this.sendBuffer=[]};io.util.inherit(XHR,io.Transport),XHR.prototype.connect=function(){this.get();return this},XHR.prototype.checkSend=function(){if(!this.posting&&this.sendBuffer.length){var encoded=this.encode(this.sendBuffer);this.sendBuffer=[],this.sendIORequest(encoded)}},XHR.prototype.send=function(data){io.util.isArray(data)?this.sendBuffer.push.apply(this.sendBuffer,data):this.sendBuffer.push(data),this.checkSend();return this},XHR.prototype.sendIORequest=function(data){var self=this;this.posting=!0,this.sendXHR=this.request("send","POST"),this.sendXHR.onreadystatechange=function(){var status;if(self.sendXHR.readyState==4){self.sendXHR.onreadystatechange=empty;try{status=self.sendXHR.status}catch(e){}self.posting=!1,status==200?self.checkSend():self.onDisconnect()}},this.sendXHR.send("data="+encodeURIComponent(data))},XHR.prototype.disconnect=function(){this.onDisconnect();return this},XHR.prototype.onDisconnect=function(){if(this.xhr){this.xhr.onreadystatechange=empty;try{this.xhr.abort()}catch(e){}this.xhr=null}if(this.sendXHR){this.sendXHR.onreadystatechange=empty;try{this.sendXHR.abort()}catch(e){}this.sendXHR=null}this.sendBuffer=[],io.Transport.prototype.onDisconnect.call(this)},XHR.prototype.request=function(url,method,multipart){var req=request(this.base.isXDomain());multipart&&(req.multipart=!0),req.open(method||"GET",this.prepareUrl()+(url?"/"+url:"")),method=="POST"&&"setRequestHeader"in req&&req.setRequestHeader("Content-type","application/x-www-form-urlencoded; charset=utf-8");return req},XHR.check=function(xdomain){try{if(request(xdomain))return!0}catch(e){}return!1},XHR.xdomainCheck=function(){return XHR.check(!0)},XHR.request=request}(),function(){var io=this.io,WS=io.Transport.websocket=function(){io.Transport.apply(this,arguments)};io.util.inherit(WS,io.Transport),WS.prototype.type="websocket",WS.prototype.connect=function(){var self=this;this.socket=new WebSocket(this.prepareUrl()),this.socket.onmessage=function(ev){self.onData(ev.data)},this.socket.onclose=function(ev){self.onDisconnect()},this.socket.onerror=function(e){self.onError(e)};return this},WS.prototype.send=function(data){this.socket&&this.socket.send(this.encode(data));return this},WS.prototype.disconnect=function(){this.socket&&this.socket.close();return this},WS.prototype.onError=function(e){this.base.emit("error",[e])},WS.prototype.prepareUrl=function(){return(this.base.options.secure?"wss":"ws")+"://"+this.base.host+":"+this.base.options.port+"/"+this.base.options.resource+"/"+this.type+(this.sessionid?"/"+this.sessionid:"")},WS.check=function(){return"WebSocket"in window&&WebSocket.prototype&&WebSocket.prototype.send&&!!WebSocket.prototype.send.toString().match(/native/i)&&typeof WebSocket!="undefined"},WS.xdomainCheck=function(){return!0}}(),function(){var io=this.io,Flashsocket=io.Transport.flashsocket=function(){io.Transport.websocket.apply(this,arguments)};io.util.inherit(Flashsocket,io.Transport.websocket),Flashsocket.prototype.type="flashsocket",Flashsocket.prototype.connect=function(){var self=this,args=arguments;WebSocket.__addTask(function(){io.Transport.websocket.prototype.connect.apply(self,args)});return this},Flashsocket.prototype.send=function(){var self=this,args=arguments;WebSocket.__addTask(function(){io.Transport.websocket.prototype.send.apply(self,args)});return this},Flashsocket.check=function(){if(typeof WebSocket=="undefined"||!("__addTask"in WebSocket)||!swfobject)return!1;return swfobject.hasFlashPlayerVersion("10.0.0")},Flashsocket.xdomainCheck=function(){return!0}}(),function(){var io=this.io,HTMLFile=io.Transport.htmlfile=function(){io.Transport.XHR.apply(this,arguments)};io.util.inherit(HTMLFile,io.Transport.XHR),HTMLFile.prototype.type="htmlfile",HTMLFile.prototype.get=function(){var self=this;this.open(),window.attachEvent("onunload",function(){self.destroy()})},HTMLFile.prototype.open=function(){this.doc=new ActiveXObject("htmlfile"),this.doc.open(),this.doc.write("<html></html>"),this.doc.parentWindow.s=this,this.doc.close();var iframeC=this.doc.createElement("div");this.doc.body.appendChild(iframeC),this.iframe=this.doc.createElement("iframe"),iframeC.appendChild(this.iframe),this.iframe.src=this.prepareUrl()+"/"+ +(new Date)},HTMLFile.prototype._=function(data,doc){this.onData(data);var script=doc.getElementsByTagName("script")[0];script.parentNode.removeChild(script)},HTMLFile.prototype.destroy=function(){if(this.iframe){try{this.iframe.src="about:blank"}catch(e){}this.doc=null,CollectGarbage()}},HTMLFile.prototype.disconnect=function(){this.destroy();return io.Transport.XHR.prototype.disconnect.call(this)},HTMLFile.check=function(){if("ActiveXObject"in window)try{var a=new ActiveXObject("htmlfile");return a&&io.Transport.XHR.check()}catch(e){}return!1},HTMLFile.xdomainCheck=function(){return!1}}(),function(){var io=this.io,XHRMultipart=io.Transport["xhr-multipart"]=function(){io.Transport.XHR.apply(this,arguments)};io.util.inherit(XHRMultipart,io.Transport.XHR),XHRMultipart.prototype.type="xhr-multipart",XHRMultipart.prototype.get=function(){var self=this;this.xhr=this.request("","GET",!0),this.xhr.onreadystatechange=function(){self.xhr.readyState==4&&self.onData(self.xhr.responseText)},this.xhr.send(null)},XHRMultipart.check=function(){return"XMLHttpRequest"in window&&"prototype"in XMLHttpRequest&&"multipart"in XMLHttpRequest.prototype},XHRMultipart.xdomainCheck=function(){return!0}}(),function(){var io=this.io,empty=new Function,XHRPolling=io.Transport["xhr-polling"]=function(){io.Transport.XHR.apply(this,arguments)};io.util.inherit(XHRPolling,io.Transport.XHR),XHRPolling.prototype.type="xhr-polling",XHRPolling.prototype.connect=function(){var self=this;io.util.defer(function(){io.Transport.XHR.prototype.connect.call(self)});return!1},XHRPolling.prototype.get=function(){var self=this;this.xhr=this.request(+(new Date),"GET"),this.xhr.onreadystatechange=function(){var status;if(self.xhr.readyState==4){self.xhr.onreadystatechange=empty;try{status=self.xhr.status}catch(e){}status==200?(self.onData(self.xhr.responseText),self.get()):self.onDisconnect()}},this.xhr.send(null)},XHRPolling.check=function(){return io.Transport.XHR.check()},XHRPolling.xdomainCheck=function(){return io.Transport.XHR.xdomainCheck()}}(),function(){var io=this.io,JSONPPolling=io.Transport["jsonp-polling"]=function(){io.Transport.XHR.apply(this,arguments),this.insertAt=document.getElementsByTagName("head")[0],this.index=io.JSONP.length,io.JSONP.push(this)};io.util.inherit(JSONPPolling,io.Transport["xhr-polling"]),io.JSONP=[],JSONPPolling.prototype.type="jsonp-polling",JSONPPolling.prototype.sendIORequest=function(data){var self=this;if(!("form"in this)){var form=document.createElement("FORM"),area=document.createElement("TEXTAREA"),id=this.iframeId="socket_io_iframe_"+this.index,iframe;form.style.position="absolute",form.style.top="-1000px",form.style.left="-1000px",form.target=id,form.method="POST",form.action=this.prepareUrl()+"/"+ +(new Date)+"/"+this.index,area.name="data",form.appendChild(area),this.insertAt.insertBefore(form,null),document.body.appendChild(form),this.form=form,this.area=area}function complete(){initIframe(),self.posting=!1,self.checkSend()}function initIframe(){self.iframe&&self.form.removeChild(self.iframe);try{iframe=document.createElement('<iframe name="'+self.iframeId+'">')}catch(e){iframe=document.createElement("iframe"),iframe.name=self.iframeId}iframe.id=self.iframeId,self.form.appendChild(iframe),self.iframe=iframe}initIframe(),this.posting=!0,this.area.value=data;try{this.form.submit()}catch(e){}this.iframe.attachEvent?iframe.onreadystatechange=function(){self.iframe.readyState=="complete"&&complete()}:this.iframe.onload=complete},JSONPPolling.prototype.get=function(){var self=this,script=document.createElement("SCRIPT");this.script&&(this.script.parentNode.removeChild(this.script),this.script=null),script.async=!0,script.src=this.prepareUrl()+"/"+ +(new Date)+"/"+this.index,script.onerror=function(){self.onDisconnect()},this.insertAt.insertBefore(script,null),this.script=script},JSONPPolling.prototype._=function(){this.onData.apply(this,arguments),this.get();return this},JSONPPolling.check=function(){return!0},JSONPPolling.xdomainCheck=function(){return!0}}(),function(){var io=this.io,Socket=io.Socket=function(host,options){this.host=host||document.domain,this.options={secure:!1,document:document,port:document.location.port||80,resource:"socket.io",transports:["websocket","flashsocket","htmlfile","xhr-multipart","xhr-polling","jsonp-polling"],transportOptions:{"xhr-polling":{timeout:25e3},"jsonp-polling":{timeout:25e3}},connectTimeout:5e3,tryTransportsOnConnectTimeout:!0,reconnect:!0,reconnectionDelay:500,maxReconnectionAttempts:10,rememberTransport:!0},io.util.merge(this.options,options),this.connected=!1,this.connecting=!1,this.reconnecting=!1,this.events={},this.transport=this.getTransport(),!this.transport&&"console"in window&&console.error("No transport available")};Socket.prototype.getTransport=function(override){var transports=override||this.options.transports,match;this.options.rememberTransport&&!override&&(match=this.options.document.cookie.match("(?:^|;)\\s*socketio=([^;]*)"),match&&(this.rememberedTransport=!0,transports=[decodeURIComponent(match[1])]));for(var i=0,transport;transport=transports[i];i++)if(io.Transport[transport]&&io.Transport[transport].check()&&(!this.isXDomain()||io.Transport[transport].xdomainCheck()))return new io.Transport[transport](this,this.options.transportOptions[transport]||{});return null},Socket.prototype.connect=function(fn){if(this.transport&&!this.connected){this.connecting&&this.disconnect(!0),this.connecting=!0,this.emit("connecting",[this.transport.type]),this.transport.connect();if(this.options.connectTimeout){var self=this;this.connectTimeoutTimer=setTimeout(function(){if(!self.connected){self.disconnect(!0);if(self.options.tryTransportsOnConnectTimeout&&!self.rememberedTransport){self.remainingTransports||(self.remainingTransports=self.options.transports.slice(0));var transports=self.remainingTransports;while(transports.length>0&&transports.splice(0,1)[0]!=self.transport.type);transports.length&&(self.transport=self.getTransport(transports),self.connect())}(!self.remainingTransports||self.remainingTransports.length==0)&&self.emit("connect_failed")}self.remainingTransports&&self.remainingTransports.length==0&&delete self.remainingTransports},this.options.connectTimeout)}}fn&&typeof fn=="function"&&this.once("connect",fn);return this},Socket.prototype.send=function(data){if(!this.transport||!this.transport.connected)return this.queue(data);this.transport.send(data);return this},Socket.prototype.disconnect=function(soft){this.connectTimeoutTimer&&clearTimeout(this.connectTimeoutTimer),soft||(this.options.reconnect=!1),this.transport.disconnect();return this},Socket.prototype.on=function(name,fn){name in this.events||(this.events[name]=[]),this.events[name].push(fn);return this},Socket.prototype.once=function(name,fn){var self=this,once=function(){self.removeEvent(name,once),fn.apply(self,arguments)};once.ref=fn,self.on(name,once);return this},Socket.prototype.emit=function(name,args){if(name in this.events){var events=this.events[name].concat();for(var i=0,ii=events.length;i<ii;i++)events[i].apply(this,args===undefined?[]:args)}return this},Socket.prototype.removeEvent=function(name,fn){if(name in this.events)for(var a=0,l=this.events[name].length;a<l;a++)(this.events[name][a]==fn||this.events[name][a].ref&&this.events[name][a].ref==fn)&&this.events[name].splice(a,1);return this},Socket.prototype.queue=function(message){"queueStack"in this||(this.queueStack=[]),this.queueStack.push(message);return this},Socket.prototype.doQueue=function(){if(!("queueStack"in this)||!this.queueStack.length)return this;this.transport.send(this.queueStack),this.queueStack=[];return this},Socket.prototype.isXDomain=function(){var locPort=window.location.port||80;return this.host!==document.domain||this.options.port!=locPort},Socket.prototype.onConnect=function(){this.connected=!0,this.connecting=!1,this.doQueue(),this.options.rememberTransport&&(this.options.document.cookie="socketio="+encodeURIComponent(this.transport.type)),this.emit("connect")},Socket.prototype.onMessage=function(data){this.emit("message",[data])},Socket.prototype.onDisconnect=function(){var wasConnected=this.connected;this.connected=!1,this.connecting=!1,this.queueStack=[],wasConnected&&(this.emit("disconnect"),this.options.reconnect&&!this.reconnecting&&this.onReconnect())},Socket.prototype.onReconnect=function(){this.reconnecting=!0,this.reconnectionAttempts=0,this.reconnectionDelay=this.options.reconnectionDelay;var self=this,tryTransportsOnConnectTimeout=this.options.tryTransportsOnConnectTimeout,rememberTransport=this.options.rememberTransport;function reset(){self.connected&&self.emit("reconnect",[self.transport.type,self.reconnectionAttempts]),self.removeEvent("connect_failed",maybeReconnect).removeEvent("connect",maybeReconnect),self.reconnecting=!1,delete self.reconnectionAttempts,delete self.reconnectionDelay,delete self.reconnectionTimer,delete self.redoTransports,self.options.tryTransportsOnConnectTimeout=tryTransportsOnConnectTimeout,self.options.rememberTransport=rememberTransport;return}function maybeReconnect(){if(!!self.reconnecting)if(!self.connected){if(self.connecting&&self.reconnecting)return self.reconnectionTimer=setTimeout(maybeReconnect,1e3);self.reconnectionAttempts++>=self.options.maxReconnectionAttempts?self.redoTransports?(self.emit("reconnect_failed"),reset()):(self.on("connect_failed",maybeReconnect),self.options.tryTransportsOnConnectTimeout=!0,self.transport=self.getTransport(self.options.transports),self.redoTransports=!0,self.connect()):(self.reconnectionDelay*=2,self.connect(),self.emit("reconnecting",[self.reconnectionDelay,self.reconnectionAttempts]),self.reconnectionTimer=setTimeout(maybeReconnect,self.reconnectionDelay))}else reset()}this.options.tryTransportsOnConnectTimeout=!1,this.reconnectionTimer=setTimeout(maybeReconnect,this.reconnectionDelay),this.on("connect",maybeReconnect)},Socket.prototype.fire=Socket.prototype.emit,Socket.prototype.addListener=Socket.prototype.addEvent=Socket.prototype.addEventListener=Socket.prototype.on,Socket.prototype.removeListener=Socket.prototype.removeEventListener=Socket.prototype.removeEvent}();var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=!1,U=[h],o=[],N=[],I=[],l,Q,E,B,J=!1,a=!1,n,G,m=!0,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):!1,X=!1,ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r)ab=t.plugins[S].description,ab&&(typeof t.mimeTypes==D||!t.mimeTypes[q]||!!t.mimeTypes[q].enabledPlugin)&&(T=!0,X=!1,ab=ab.replace(/^.*\s+(\S+\s+\S+$)/,"$1"),ag[0]=parseInt(ab.replace(/^(.*)\..*$/,"$1"),10),ag[1]=parseInt(ab.replace(/^.*\.(.*)\s.*$/,"$1"),10),ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0);else if(typeof O.ActiveXObject!=D)try{var ad=new ActiveXObject(W);ad&&(ab=ad.GetVariable("$version"),ab&&(X=!0,ab=ab.split(" ")[1].split(","),ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]))}catch(Z){}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){!M.w3||((typeof j.readyState!=D&&j.readyState=="complete"||typeof j.readyState==D&&(j.getElementsByTagName("body")[0]||j.body))&&f(),J||(typeof j.addEventListener!=D&&j.addEventListener("DOMContentLoaded",f,!1),M.ie&&M.win&&(j.attachEvent(x,function(){j.readyState=="complete"&&(j.detachEvent(x,arguments.callee),f())}),O==top&&function(){if(!J){try{j.documentElement.doScroll("left")}catch(X){setTimeout(arguments.callee,0);return}f()}}()),M.wk&&function(){if(!J){if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()}}(),s(f)))}();function f(){if(!J){try{var Z=j.getElementsByTagName("body")[0].appendChild(C("span"));Z.parentNode.removeChild(Z)}catch(aa){return}J=!0;var X=U.length;for(var Y=0;Y<X;Y++)U[Y]()}}function K(X){J?X():U[U.length]=X}function s(Y){if(typeof O.addEventListener!=D)O.addEventListener("load",Y,!1);else if(typeof j.addEventListener!=D)j.addEventListener("load",Y,!1);else if(typeof O.attachEvent!=D)i(O,"onload",Y);else if(typeof O.onload=="function"){var X=O.onload;O.onload=function(){X(),Y()}}else O.onload=Y}function h(){T?V():H()}function V(){var X=j.getElementsByTagName("body")[0],aa=C(r);aa.setAttribute("type",q);var Z=X.appendChild(aa);if(Z){var Y=0;(function(){if(typeof Z.GetVariable!=D){var ab=Z.GetVariable("$version");ab&&(ab=ab.split(" ")[1].split(","),M.pv=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)])}else if(Y<10){Y++,setTimeout(arguments.callee,10);return}X.removeChild(aa),Z=null,H()})()}else H()}function H(){var ag=o.length;if(ag>0)for(var af=0;af<ag;af++){var Y=o[af].id,ab=o[af].callbackFn,aa={success:!1,id:Y};if(M.pv[0]>0){var ae=c(Y);if(ae)if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312))w(Y,!0),ab&&(aa.success=!0,aa.ref=z(Y),ab(aa));else if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall,ai.width=ae.getAttribute("width")||"0",ai.height=ae.getAttribute("height")||"0",ae.getAttribute("class")&&(ai.styleclass=ae.getAttribute("class")),ae.getAttribute("align")&&(ai.align=ae.getAttribute("align"));var ah={},X=ae.getElementsByTagName("param"),ac=X.length;for(var ad=0;ad<ac;ad++)X[ad].getAttribute("name").toLowerCase()!="movie"&&(ah[X[ad].getAttribute("name")]=X[ad].getAttribute("value"));P(ai,ah,Y,ab)}else p(ae),ab&&ab(aa)}else{w(Y,!0);if(ab){var Z=z(Y);Z&&typeof Z.SetVariable!=D&&(aa.success=!0,aa.ref=Z),ab(aa)}}}}function z(aa){var X=null,Y=c(aa);if(Y&&Y.nodeName=="OBJECT")if(typeof Y.SetVariable!=D)X=Y;else{var Z=Y.getElementsByTagName(r)[0];Z&&(X=Z)}return X}function A(){return!a&&F("6.0.65")&&(M.win||M.mac)&&!(M.wk&&M.wk<312)}function P(aa,ab,X,Z){a=!0,E=Z||null,B={success:!1,id:X};var ae=c(X);if(ae){ae.nodeName=="OBJECT"?(l=g(ae),Q=null):(l=ae,Q=X),aa.id=R;if(typeof aa.width==D||!/%$/.test(aa.width)&&parseInt(aa.width,10)<310)aa.width="310";if(typeof aa.height==D||!/%$/.test(aa.height)&&parseInt(aa.height,10)<137)aa.height="137";j.title=j.title.slice(0,47)+" - Flash Player Installation";var ad=M.ie&&M.win?"ActiveX":"PlugIn",ac="MMredirectURL="+O.location.toString().replace(/&/g,"%26")+"&MMplayerType="+ad+"&MMdoctitle="+j.title;typeof ab.flashvars!=D?ab.flashvars+="&"+ac:ab.flashvars=ac;if(M.ie&&M.win&&ae.readyState!=4){var Y=C("div");X+="SWFObjectNew",Y.setAttribute("id",X),ae.parentNode.insertBefore(Y,ae),ae.style.display="none",function(){ae.readyState==4?ae.parentNode.removeChild(ae):setTimeout(arguments.callee,10)}()}u(aa,ab,X)}}function p(Y){if(M.ie&&M.win&&Y.readyState!=4){var X=C("div");Y.parentNode.insertBefore(X,Y),X.parentNode.replaceChild(g(Y),X),Y.style.display="none",function(){Y.readyState==4?Y.parentNode.removeChild(Y):setTimeout(arguments.callee,10)}()}else Y.parentNode.replaceChild(g(Y),Y)}function g(ab){var aa=C("div");if(M.win&&M.ie)aa.innerHTML=ab.innerHTML;else{var Y=ab.getElementsByTagName(r)[0];if(Y){var ad=Y.childNodes;if(ad){var X=ad.length;for(var Z=0;Z<X;Z++)(ad[Z].nodeType!=1||ad[Z].nodeName!="PARAM")&&ad[Z].nodeType!=8&&aa.appendChild(ad[Z].cloneNode(!0))}}}return aa}function u(ai,ag,Y){var X,aa=c(Y);if(M.wk&&M.wk<312)return X;if(aa){typeof ai.id==D&&(ai.id=Y);if(M.ie&&M.win){var ah="";for(var ae in ai)ai[ae]!=Object.prototype[ae]&&(ae.toLowerCase()=="data"?ag.movie=ai[ae]:ae.toLowerCase()=="styleclass"?ah+=' class="'+ai[ae]+'"':ae.toLowerCase()!="classid"&&(ah+=" "+ae+'="'+ai[ae]+'"'));var af="";for(var ad in ag)ag[ad]!=Object.prototype[ad]&&(af+='<param name="'+ad+'" value="'+ag[ad]+'" />');aa.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+ah+">"+af+"</object>",N[N.length]=ai.id,X=c(ai.id)}else{var Z=C(r);Z.setAttribute("type",q);for(var ac in ai)ai[ac]!=Object.prototype[ac]&&(ac.toLowerCase()=="styleclass"?Z.setAttribute("class",ai[ac]):ac.toLowerCase()!="classid"&&Z.setAttribute(ac,ai[ac]));for(var ab in ag)ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!="movie"&&e(Z,ab,ag[ab]);aa.parentNode.replaceChild(Z,aa),X=Z}}return X}function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X),aa.setAttribute("value",Y),Z.appendChild(aa)}function y(Y){var X=c(Y);X&&X.nodeName=="OBJECT"&&(M.ie&&M.win?(X.style.display="none",function(){X.readyState==4?b(Y):setTimeout(arguments.callee,10)}()):X.parentNode.removeChild(X))}function b(Z){var Y=c(Z);if(Y){for(var X in Y)typeof Y[X]=="function"&&(Y[X]=null);Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y),I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10),X[1]=parseInt(X[1],10)||0,X[2]=parseInt(X[2],10)||0;return Y[0]>X[0]||Y[0]==X[0]&&Y[1]>X[1]||Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]?!0:!1}function v(ac,Y,ad,ab){if(!M.ie||!M.mac){var aa=j.getElementsByTagName("head")[0];if(!aa)return;var X=ad&&typeof ad=="string"?ad:"screen";ab&&(n=null,G=null);if(!n||G!=X){var Z=C("style");Z.setAttribute("type","text/css"),Z.setAttribute("media",X),n=aa.appendChild(Z),M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0&&(n=j.styleSheets[j.styleSheets.length-1]),G=X}M.ie&&M.win?n&&typeof n.addRule==r&&n.addRule(ac,Y):n&&typeof j.createTextNode!=D&&n.appendChild(j.createTextNode(ac+" {"+Y+"}"))}}function w(Z,X){if(!!m){var Y=X?"visible":"hidden";J&&c(Z)?c(Z).style.visibility=Y:v("#"+Z,"visibility:"+Y)}}function L(Y){var Z=/[\\\"<>\.;]/,X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){M.ie&&M.win&&window.attachEvent("onunload",function(){var ac=I.length;for(var ab=0;ab<ac;ab++)I[ab][0].detachEvent(I[ab][1],I[ab][2]);var Z=N.length;for(var aa=0;aa<Z;aa++)y(N[aa]);for(var Y in M)M[Y]=null;M=null;for(var X in swfobject)swfobject[X]=null;swfobject=null})}();return{registerObject:function(ab,X,aa,Z){if(M.w3&&ab&&X){var Y={};Y.id=ab,Y.swfVersion=X,Y.expressInstall=aa,Y.callbackFn=Z,o[o.length]=Y,w(ab,!1)}else Z&&Z({success:!1,id:ab})},getObjectById:function(X){if(M.w3)return z(X)},embedSWF:function(ab,ah,ae,ag,Y,aa,Z,ad,af,ac){var X={success:!1,id:ah};M.w3&&!(M.wk&&M.wk<312)&&ab&&ah&&ae&&ag&&Y?(w(ah,!1),K(function(){ae+="",ag+="";var aj={};if(af&&typeof af===r)for(var al in af)aj[al]=af[al];aj.data=ab,aj.width=ae,aj.height=ag;var am={};if(ad&&typeof ad===r)for(var ak in ad)am[ak]=ad[ak];if(Z&&typeof Z===r)for(var ai in Z)typeof am.flashvars!=D?am.flashvars+="&"+ai+"="+Z[ai]:am.flashvars=ai+"="+Z[ai];if(F(Y)){var an=u(aj,am,ah);aj.id==ah&&w(ah,!0),X.success=!0,X.ref=an}else{if(aa&&A()){aj.data=aa,P(aj,am,ah,ac);return}w(ah,!0)}ac&&ac(X)})):ac&&ac(X)},switchOffAutoHideShow:function(){m=!1},ua:M,getFlashPlayerVersion:function(){return{major:M.pv[0],minor:M.pv[1],release:M.pv[2]}},hasFlashPlayerVersion:F,createSWF:function(Z,Y,X){return M.w3?u(Z,Y,X):undefined},showExpressInstall:function(Z,aa,X,Y){M.w3&&A()&&P(Z,aa,X,Y)},removeSWF:function(X){M.w3&&y(X)},createCSS:function(aa,Z,Y,X){M.w3&&v(aa,Z,Y,X)},addDomLoadEvent:K,addLoadEvent:s,getQueryParamValue:function(aa){var Z=j.location.search||j.location.hash;if(Z){/\?/.test(Z)&&(Z=Z.split("?")[1]);if(aa==null)return L(Z);var Y=Z.split("&");for(var X=0;X<Y.length;X++)if(Y[X].substring(0,Y[X].indexOf("="))==aa)return L(Y[X].substring(Y[X].indexOf("=")+1))}return""},expressInstallCallback:function(){if(a){var X=c(R);X&&l&&(X.parentNode.replaceChild(l,X),Q&&(w(Q,!0),M.ie&&M.win&&(l.style.display="block")),E&&E(B)),a=!1}}}}();(function(){if(!window.WebSocket){var console=window.console;if(!console||!console.log||!console.error)console={log:function(){},error:function(){}};if(!swfobject.hasFlashPlayerVersion("10.0.0")){console.error("Flash Player >= 10.0.0 is required.");return}location.protocol=="file:"&&console.error("WARNING: web-socket-js doesn't work in file:///... URL unless you set Flash Security Settings properly. Open the page via Web server i.e. http://..."),WebSocket=function(url,protocols,proxyHost,proxyPort,headers){var self=this;self.__id=WebSocket.__nextId++,WebSocket.__instances[self.__id]=self,self.readyState=WebSocket.CONNECTING,self.bufferedAmount=0,self.__events={},protocols?typeof protocols=="string"&&(protocols=[protocols]):protocols=[],setTimeout(function(){WebSocket.__addTask(function(){WebSocket.__flash.create(self.__id,url,protocols,proxyHost||null,proxyPort||0,headers||null)})},0)},WebSocket.prototype.send=function(data){if(this.readyState==WebSocket.CONNECTING)throw"INVALID_STATE_ERR: Web Socket connection has not been established";var result=WebSocket.__flash.send(this.__id,encodeURIComponent(data));if(result<0)return!0;this.bufferedAmount+=result;return!1},WebSocket.prototype.close=function(){this.readyState!=WebSocket.CLOSED&&this.readyState!=WebSocket.CLOSING&&(this.readyState=WebSocket.CLOSING,WebSocket.__flash.close(this.__id))},WebSocket.prototype.addEventListener=function(type,listener,useCapture){type in this.__events||(this.__events[type]=[]),this.__events[type].push(listener)},WebSocket.prototype.removeEventListener=function(type,listener,useCapture){if(type in this.__events){var events=this.__events[type];for(var i=events.length-1;i>=0;--i)if(events[i]===listener){events.splice(i,1);break}}},WebSocket.prototype.dispatchEvent=function(event){var events=this.__events[event.type]||[];for(var i=0;i<events.length;++i)events[i](event);var handler=this["on"+event.type];handler&&handler(event)},WebSocket.prototype.__handleEvent=function(flashEvent){"readyState"in flashEvent&&(this.readyState=flashEvent.readyState),"protocol"in flashEvent&&(this.protocol=flashEvent.protocol);var jsEvent;if(flashEvent.type=="open"||flashEvent.type=="error")jsEvent=this.__createSimpleEvent(flashEvent.type);else if(flashEvent.type=="close")jsEvent=this.__createSimpleEvent("close");else{if(flashEvent.type!="message")throw"unknown event type: "+flashEvent.type;var data=decodeURIComponent(flashEvent.message);jsEvent=this.__createMessageEvent("message",data)}this.dispatchEvent(jsEvent)},WebSocket.prototype.__createSimpleEvent=function(type){if(document.createEvent&&window.Event){var event=document.createEvent("Event");event.initEvent(type,!1,!1);return event}return{type:type,bubbles:!1,cancelable:!1}},WebSocket.prototype.__createMessageEvent=function(type,data){if(document.createEvent&&window.MessageEvent&&!window.opera){var event=document.createEvent("MessageEvent");event.initMessageEvent("message",!1,!1,data,null,null,window,null);return event}return{type:type,data:data,bubbles:!1,cancelable:!1}},WebSocket.CONNECTING=0,WebSocket.OPEN=1,WebSocket.CLOSING=2,WebSocket.CLOSED=3,WebSocket.__flash=null,WebSocket.__instances={},WebSocket.__tasks=[],WebSocket.__nextId=0,WebSocket.loadFlashPolicyFile=function(url){WebSocket.__addTask(function(){WebSocket.__flash.loadManualPolicyFile(url)})},WebSocket.__initialize=function(){if(!WebSocket.__flash){WebSocket.__swfLocation&&(window.WEB_SOCKET_SWF_LOCATION=WebSocket.__swfLocation);if(!window.WEB_SOCKET_SWF_LOCATION){console.error("[WebSocket] set WEB_SOCKET_SWF_LOCATION to location of WebSocketMain.swf");return}var container=document.createElement("div");container.id="webSocketContainer",container.style.position="absolute",WebSocket.__isFlashLite()?(container.style.left="0px",container.style.top="0px"):(container.style.left="-100px",container.style.top="-100px");var holder=document.createElement("div");holder.id="webSocketFlash",container.appendChild(holder),document.body.appendChild(container),swfobject.embedSWF(WEB_SOCKET_SWF_LOCATION,"webSocketFlash","1","1","10.0.0",null,null,{hasPriority:!0,swliveconnect:!0,allowScriptAccess:"always"},null,function(e){e.success||console.error("[WebSocket] swfobject.embedSWF failed")})}},WebSocket.__onFlashInitialized=function(){setTimeout(function(){WebSocket.__flash=document.getElementById("webSocketFlash"),WebSocket.__flash.setCallerUrl(location.href),WebSocket.__flash.setDebug(!!window.WEB_SOCKET_DEBUG);for(var i=0;i<WebSocket.__tasks.length;++i)WebSocket.__tasks[i]();WebSocket.__tasks=[]},0)},WebSocket.__onFlashEvent=function(){setTimeout(function(){try{var events=WebSocket.__flash.receiveEvents();for(var i=0;i<events.length;++i)WebSocket.__instances[events[i].webSocketId].__handleEvent(events[i])}catch(e){console.error(e)}},0);return!0},WebSocket.__log=function(message){console.log(decodeURIComponent(message))},WebSocket.__error=function(message){console.error(decodeURIComponent(message))},WebSocket.__addTask=function(task){WebSocket.__flash?task():WebSocket.__tasks.push(task)},WebSocket.__isFlashLite=function(){if(!window.navigator||!window.navigator.mimeTypes)return!1;var mimeType=window.navigator.mimeTypes["application/x-shockwave-flash"];if(!mimeType||!mimeType.enabledPlugin||!mimeType.enabledPlugin.filename)return!1;return mimeType.enabledPlugin.filename.match(/flashlite/i)?!0:!1},window.WEB_SOCKET_DISABLE_AUTO_INITIALIZATION||(window.addEventListener?window.addEventListener("load",function(){WebSocket.__initialize()},!1):window.attachEvent("onload",function(){WebSocket.__initialize()}))}})();
Array.prototype.include=function(value){return this.indexOf(value)!=-1},Array.prototype.any=function(){return this.length>0},window.getCookie=function(c_name){if(document.cookie.length>0){c_start=document.cookie.indexOf(c_name+"=");if(c_start!=-1){c_start=c_start+c_name.length+1,c_end=document.cookie.indexOf(";",c_start),c_end==-1&&(c_end=document.cookie.length);return unescape(document.cookie.substring(c_start,c_end))}}return""},window.setCookie=function(c_name,value,expiredays){var exdate=new Date;exdate.setDate(exdate.getDate()+expiredays),document.cookie=c_name+"="+escape(value)+(expiredays==null?"":";expires="+exdate.toUTCString())};(function(){var RTM,Request,System,default_cb,error,log,send,sendHeartbeat,setupAPI,start,validLevel;window.SS={started:null,env:null,client:{},server:{},shared:{},models:{},internal:{cb_stack:{}},config:{log:{level:0}}},window.$SS=window.SS,SS.events={_events:{},on:function(name,funct){this._events[name]==null&&(this._events[name]=[]);return this._events[name].push(funct)},emit:function(name,params){var event,_i,_len,_ref,_results;if(this._events[name]){_ref=this._events[name],_results=[];for(_i=0,_len=_ref.length;_i<_len;_i++)event=_ref[_i],_results.push(event(params));return _results}return console.error("Error: Received incoming '"+name+"' event but no event handlers registered")}},SS.socket=new io.Socket(document.location.hostname,{rememberTransport:!1,port:document.location.port,secure:document.location.protocol==="https:",transports:["websocket","flashsocket"],tryTransportsOnConnectTimeout:!1}),SS.socket.on("message",function(raw){var data;data=JSON.parse(raw);return data.type?Request[data.type]!=null?Request[data.type](data):console.error("Error: Unable to find a message handler for '"+data.type+"' requests! Dropping message"):console.error("Error: No message type specified. Dropping message")}),SS.socket.on("disconnect",function(){var attemptReconnection;attemptReconnection=function(){SS.socket.connecting||SS.socket.connect();return setTimeout(arguments.callee,500)};return attemptReconnection()}),SS.socket.connect(),default_cb=function(server_response){return console.log(server_response)},SS.internal.remote=function(){var args,cb,last_arg,msg;args=arguments,msg={type:"server"},msg.method=args[0],SS.config.remote_prefix&&(msg.method=""+SS.config.remote_prefix+"."+msg.method),msg.params=args[1],msg.options=args.length>=4?args[2]:null,last_arg=args[args.length-1],cb=typeof last_arg=="function"?last_arg:default_cb,cb.options=msg.options,validLevel(4)&&(!msg.options||!msg.options.silent)&&console.log("<- "+msg.method);return send(msg,cb)},RTM=function(){function RTM(){}RTM.prototype.findById=function(id,cb){return this._send("findById",id,cb)},RTM.prototype.find=function(){var arg,args,cb,_i,_len;args=[];for(_i=0,_len=arguments.length;_i<_len;_i++)arg=arguments[_i],args.push(arg);cb=args.pop();return this._send("find",args,cb)},RTM.prototype._send=function(action,params,cb){log(2,"<~ "+this.name+"."+action);return send({type:"rtm",rtm:this.name,action:action,params:params},cb)};return RTM}(),System={init:function(data){var name,_i,_len,_ref;SS.env=data.env,SS.config=data.config||{},setCookie("session_id",data.session_id),_ref=data.api.models;for(_i=0,_len=_ref.length;_i<_len;_i++)name=_ref[_i],SS.models[name]=new RTM,SS.models[name].name=name;eval("SS.server = "+data.api.server),setupAPI(SS.server,[]),SS.socket.ready=!0,data.heartbeat&&sendHeartbeat();return start()},error:function(details){return error("SocketStream Server - "+details)}},Request={system:function(data){return System[data.method](data.params)},server:function(data){var cb,silent;cb=SS.internal.cb_stack[data.cb_id],silent=cb.msg.options&&cb.msg.options.silent,silent||log(2,"-> "+cb.msg.method,data.params),cb.funkt(data.params);return delete SS.internal.cb_stack[data.cb_id]},event:function(data){log(2,"=> "+data.event);return SS.events.emit(data.event,data.params)},rtm:function(data){var cb;cb=SS.internal.cb_stack[data.cb_id],log(2,"~> "+cb.msg.rtm+"."+cb.msg.action),cb.funkt(data.data);return delete SS.internal.cb_stack[data.cb_id]}},start=function(){if(!SS.started){jQuery?jQuery(document).ready(function(){try{return SS.client.app.init()}catch(e){return app.init()}}):app.init();return SS.started=new Date}},send=function(msg,cb){var args,cb_id,recursive,retry_ms;cb==null&&(cb=null),args=arguments;try{if(SS.socket.connected===!1&&SS.socket.connecting===!1){SS.socket.ready=!1,SS.socket.connect();throw"NOT_READY"}if(SS.socket.ready===!0)cb&&(cb_id=Math.random().toString().split(".")[1],SS.internal.cb_stack[cb_id]={funkt:cb,msg:msg},msg.cb_id=cb_id),msg=JSON.stringify(msg),SS.socket.send(msg);else throw"NOT_READY"}catch(e){if(e==="NOT_READY")retry_ms=50,recursive=function(){return send.apply(this,args)},setTimeout(recursive,retry_ms);else throw e}return},log=function(level,msg,params){var o;if(validLevel(level)){o=[msg],params&&validLevel(3)&&o.push(params);return console.log.apply(console,o)}},error=function(e){if(validLevel(1))return console.error(e)},validLevel=function(level){return SS.config.log.level>=level},setupAPI=function(root,ary){var key,ns,value,_results;_results=[];for(key in root)value=root[key],ns=ary.slice(0),ns.push(key),_results.push(typeof value=="object"?setupAPI(root[key],ns):root[key]=new Function('SS.internal.remote.apply(window, ["'+ns.join(".")+'"].concat(Array.prototype.slice.call(arguments, 0)))'));return _results},sendHeartbeat=function(){SS.socket.connected&&send({type:"heartbeat"});return setTimeout(arguments.callee,SS.config.heartbeat_interval*1e3)}}).call(this)
View
3,650 lib/client/js/2.socket_io.js
1,979 additions, 1,671 deletions not shown
View
2  lib/main.coffee
@@ -34,7 +34,7 @@ exports.init = (load_project = false) ->
SS.version = SS.internal.package_json.version
# Set client file version. Bumping this automatically triggers re-compliation of lib assets when a user upgrades
- SS.client.version = '0.0.16'
+ SS.client.version = '0.0.17'
# Set environment
env = process.env.SS_ENV || 'development'
View
11 lib/testing.js
@@ -1,11 +0,0 @@
-// TODO: Huge changes to testing to come
-
-require('./socketstream');
-
-// Import testing framework
-global.vows = require('vows');
-global.assert = require('assert');
-global.should = require('should');
-
-// Select TEST DB
-R.select(9);
View
2  lib/utils/file.js
@@ -18,7 +18,7 @@ exports.readDirSync = function(start) {
if(++processed == total) return found;
} else {
var file_name = abspath.split('/').last();
- if (!file_name.match(/(^_|^\.)/)) found.files.push(abspath);
+ if (!file_name.match(/(^_|^\.|~$)/)) found.files.push(abspath);
if(++processed == total) return found;
}
}
View
BIN  new_project/public/favicon.ico
Binary file not shown
View
16 package.json
@@ -1,23 +1,23 @@
{
"name": "socketstream",
"description": "Build phenomenally fast real-time apps on Node.js",
- "version": "0.0.55",
+ "version": "0.0.56",
"homepage": "http://www.socketstream.org",
"author": "Owen Barnes <info@socketstream.org>",
"contributors": [
"Paul Jensen <paulbjensen@gmail.com>"
],
"dependencies": {
- "coffee-script": "= 1.1.0",
- "socket.io": "= 0.6.17",
+ "coffee-script": "= 1.1.1",
+ "socket.io": "= 0.6.18",
"redis": "= 0.6.0",
- "hiredis": "= 0.1.10",
+ "hiredis": "= 0.1.12",
"node-static": "= 0.5.6",
"jade": "= 0.10.7",
- "argsparser": "= 0.0.5",
- "stylus": "= 0.12.3",
- "semver": "= 1.0.5",
- "uglify-js": "= 1.0.1"
+ "stylus": "= 0.13.3",
+ "argsparser": "= 0.0.6",
+ "semver": "= 1.0.7",
+ "uglify-js": "= 1.0.2"
},
"directories": { "lib": "./lib" },
"main": "./lib/socketstream.js",
Please sign in to comment.
Something went wrong with that request. Please try again.