function vwdStreamer(){if(document.vwdStreamerInstance!=null){document.vwdStreamerInstance.log(vwdStreamerLogLevel.ERROR,"vwdStreamer instance initialized twice, please make sure only one instance is used on the page!!!");return document.vwdStreamerInstance;}else{document.vwdStreamerInstance=this;}var r="1.0.29";var u=5*1000;var b=5*60*1000;var q=10240;var i=this;this.lastConnectTime=null;var e=null;this.streamerImplementation=null;var v=null;var z=null;var d=null;var K=null;var N=false;var Y=new Array();var o=new Array();var W=new Array();var S=new Array();var L=new Array();var E=new Array();var s=new Array();var p=null;var U=null;var A=null;var D=null;var R={};var J=null;var m="vwdStreamer-internal-nolog";var C=(new Date).getTime();var V=/=\?(&|$)/;var P=/^\/Date\(([0-9]+)\)\/$/;var B=Object.prototype.toString;this.state=vwdStreamerState.NONE;this.controlQueue=new vwdStreamerQueue();this.initialize=function(af,ae,ad,ag){if(this.state!=vwdStreamerState.NONE){return;}this._setState(vwdStreamerState.INITIALIZING);z=af;d=ae;K=ad;N=ag?true:false;Q();var ac=this;this.streamerImplementation=new vwdStreamerPollingImplementation(this,af,ae,ad,ag);this.streamerImplementation.initialize();ac.registerStaticData({logName:m,handles:/vwdStreamer\.CurrentTime/,interval:1,dataType:"internal-function",update:function(){return{"vwdStreamer.CurrentTime":new Date()};}});ac.registerStaticData({logName:m,handles:/vwdStreamer\.State/,interval:1,dataType:"internal-function",update:function(){switch(ac.state){case vwdStreamerState.CONNECTED:case vwdStreamerState.RECONNECTED:return{"vwdStreamer.State":vwdStreamerState.CONNECTED};default:return{"vwdStreamer.State":vwdStreamerState.DISCONNECTED};}}});setInterval(function(){if(!ac.controlQueue.isEmpty()){if(ac.streamerImplementation.isControlSlotAvailable()){ac.streamerImplementation.sendDataToServer(ac.controlQueue.dequeue());}}},100);setInterval(function(){ac._checkHeartbeatAndReconnect();},u);if(this.state==vwdStreamerState.INITIALIZING){this._setState(vwdStreamerState.INITIALIZED);}};this.connect=function(){};this.getSubscription=function(ad){var ac=new vwdStreamerSubscription(this,ad);W[W.length]=ac;return ac;};this.removeSubscription=function(ad){var ae=null;for(var ac=0;ac<W.length;ac++){if(W[ac]===ad){ae=ac;break;}}ad.unsubscribeAllFields();if(ae!=null){W.splice(ae,1);}};this.addLogListener=function(ad,ae){var ac={listener:ad,logLevel:ae};S[S.length]=ac;};this.removeLogListener=function(ae){var ac=null;for(var ad=0;ad<S.length;ad++){if(S[ad]==ae){ac=ad;break;}}if(ac!=null){S.splice(ac,1);}};this.isConnected=function(){return(this.state==vwdStreamerState.CONNECTED||this.state==vwdStreamerState.RECONNECTED);};this.isInitialized=function(){return this.state>=vwdStreamerState.INITIALIZED;};this.getVersion=function(){return r;};this.getSessionId=function(){return v;};this.registerStaticData=function(aq){if(!J){J=[];}J.push(aq);var af=aq.registeredFields={};var ar=0;var av=false;var an=null;var ay=0;var az=aq.interval;var aj=null;var ag=aq.url;var ax=aq.dataType;var ae=aq.ignoreUnchangedValues;var at=aq.dataFormatterFunction||aw;var ad=aq.dataSeparator||";";var ac=aq.error;var au=false;var aB=ag||aq.logName||"(unknown)";aq.provides=function aA(aC){return aq.handles.test(aC);};aq.startIfNeeded=function(){if(au){au=false;if(!av){av=true;if(an!=null){window.clearTimeout(an);}if(aB!==m){h(vwdStreamerLogLevel.INFO,"Starting static data "+aB);}an=window.setTimeout(ap,100);}}};aq.subscribe=function al(aD){var aC=R[aD];if(aC){R[aD]=aC+1;}else{R[aD]=1;}aC=af[aD];if(aC>0){af[aD]=aC+1;}else{af[aD]=1;ar++;av=false;au=true;if(an!=null){if(aB!==m){h(vwdStreamerLogLevel.INFO,"Stopping static data "+aB);}window.clearTimeout(an);an=null;}}};aq.unsubscribe=function ah(aD){var aC=R[aD];if(aC>1){R[aD]=aC-1;}else{if(aC==1){delete R[aD];}}aC=af[aD];if((aC||0)<2){delete af[aD];ar--;if(ar==0){av=false;au=false;if(an!=null){if(aB!==m){h(vwdStreamerLogLevel.INFO,"Stopping static data "+aB);}window.clearTimeout(an);an=null;}}}else{af[aD]=aC-1;}};function ap(){an=null;if(!av){return;}try{ai();}catch(aC){if(ac){ac(aC);}else{h(vwdStreamerLogLevel.ERROR,"Calculated field error: "+aC);}}if(an==null&&(az>0||ay>0)){if(ay>0){an=window.setTimeout(ap,ay*1000);}else{an=window.setTimeout(ap,az*1000);}}}function ai(){if(ax=="jsonp"){x(ak(ag,ax),am);}else{if(ax=="script"){x(ak(ag,ax));}else{if(ax=="internal-function"||ax==null&&typeof aq.update==="function"){am(aq.update());}else{throw ("dataType "+ax+" is not supported.");}}}}function am(aC){try{if(aq.dataFilter){aC=aq.dataFilter(aC);}ao(aC);}catch(aD){if(ac){ac(aD);}else{h(vwdStreamerLogLevel.ERROR,"Calculated field error: "+aD);}}}function ao(aE,aH){if(!aH){aj=null;ay=0;}if(B.call(aE)==="[object Array]"){for(var aC in aE){var aD=aE[aC];if(aD.dataType&&(typeof aD.value!=="string"||aD.dataType===vwdStreamerDataType.STRING)){i._update(aD.field,aD.value,aD.dataType,null,ae);}else{var aG=w(aD.value);i._update(aD.field,aG.value,aG.dataType,null,ae);}}}else{if(B.call(aE)==="[object Object]"){if(!aH&&typeof aE.items!=="undefined"){aj=aE.continueToken;ay=aE.ttl;ao(aE.items,true);}else{for(var aF in aE){var aG=w(aE[aF]);i._update(aF,aG.value,aG.dataType,null,ae);}}}else{h(vwdStreamerLogLevel.WARNING,"JSON data could not e processed. Data: "+aE+"; "+B(aE));}}}function aw(aC){return encodeURIComponent(aC.join(ad));}function ak(aD,aC){return aD.replace(/\{(data|items|fields|continue)\}/g,function(aJ,aI){switch(aI){case"data":var aG=[];for(var aH in af){aG.push(aH);}return at(aG);case"items":var aE={};var aG=[];for(var aH in af){var aF=g(aH);if(!aE[aF]){aE[aF]=true;aG.push(aF);}}return at(aG);case"fields":var aE={};var aG=[];for(var aH in af){var aK=c(aH);if(!aE[aK]){aE[aK]=true;aG.push(aK);}}return at(aG);case"continue":return encodeURIComponent(aj||"");}});}};function k(ae){if(J){for(var ac=0;ac<J.length;ac++){var ad=J[ac];if(ad.provides(ae)){ad.subscribe(ae);return true;}}}return false;}function O(ae){if(R&&R[ae]){for(var ac=0;ac<J.length;ac++){var ad=J[ac];if(ad.registeredFields[ae]){ad.unsubscribe(ae);return true;}}}return false;}function M(){if(J&&R){for(var ac=0;ac<J.length;ac++){var ad=J[ac];ad.startIfNeeded();}}}this._subscribe=function(ac){try{var ag="";for(var ad=0;ad<ac.length;ad++){var af=ac[ad];ag+=I(af);if(ag.length>q){this.controlQueue.enqueue(ag);ag="";}}if(ag.length>0){this.controlQueue.enqueue(ag);}X();M();}catch(ae){h(vwdStreamerLogLevel.ERROR,ae);}};this._unsubscribe=function(ac){try{var ag="";for(var ad=0;ad<ac.length;ad++){var af=ac[ad];ag+=f(af);if(ag.length>q){this.controlQueue.enqueue(ag);ag="";}}if(ag.length>0){this.controlQueue.enqueue(ag);}}catch(ae){h(vwdStreamerLogLevel.ERROR,ae);}};this._checkHeartbeatAndReconnect=function(){var ac=new Date();if(this.state==vwdStreamerState.CONNECTED||this.state==vwdStreamerState.RECONNECTED){if(ac-this.lastConnectTime>b){h(vwdStreamerLogLevel.INFO,"Reconnect interval passed, performing auto reconnect...");y(vwdStreamerReconnectType.REFRESH);return;}}if(this.state==vwdStreamerState.CONNECTED||this.state==vwdStreamerState.RECONNECTED||this.state==vwdStreamerState.DISCONNECTED||this.state==vwdStreamerState.CONNECTING||this.state==vwdStreamerState.RECONNECTING){if(ac-e>u*2){this._setState(vwdStreamerState.DISCONNECTED);h(vwdStreamerLogLevel.INFO,"No data received for "+((ac-e)/1000)+" seconds, reconnecting...");y(vwdStreamerReconnectType.CONNECTION_LOST);return;}}};this._getCachedValue=function(ac){return L[ac];};this._update=function(ad,ak,aj,ac,ae){if(isNaN(ak)&&typeof ak==="number"){ak=null;}var am=this._getCachedValue(ad);am=am!=null?am.value:null;if(ae&&ak===am&&!ac){return;}j(ad,ak,aj);var ai=new vwdStreamerDataPacket(ad,ak,am);var af=H(c(ad));if(af==null){ai.type=aj;ai.value=ak;ai.oldValue=am;if(aj===vwdStreamerDataType.ARRAY){ai.values=ak;ai.oldValues=am;}else{ai.values=null;ai.oldValues=null;}}else{var ah=af.getParsedValues(ai.rawValue);ai.type=ah.type;ai.value=ah.value;ai.values=ah.values;var al=af.getParsedValues(ai.oldRawValue);ai.oldValue=al.value;ai.oldValues=al.values;}if(ac!=null){ac.update(ai);return;}else{for(var ag=0;ag<W.length;ag++){W[ag].update(ai);}}aa(ai);};this.setSessionId=function(ac){h(vwdStreamerLogLevel.TRACE,"SessionId received: "+ac);v=ac;};this.heartbeatReceived=function(){i.onDataRecieved();};this.ackSubscribe=function(ad,ac){i.onDataRecieved();Y[ad]=ac;o[ac]=ad;};this.ackUnsubscribe=function(ac){i.onDataRecieved();delete o[Y[ac]];delete Y[ac];t(ac);};this.update=function(ae,af,ad){i.onDataRecieved();var ac=T(ae);if(ac==null){return;}ad=vwdStreamerDataType.parseDataType(ad,af);if(ad==vwdStreamerDataType.TIME){af=Date.parseVwdStreamerTime(af);}else{if(ad==vwdStreamerDataType.DATE){af=Date.parseVwdStreamerDate(af);}else{if(ad==vwdStreamerDataType.DATETIME){af=Date.parseVwdStreamerDateTime(af);}}}this._update(ac,af,ad);};this.accessDenied=function(ac,ad){i.onDataRecieved();h(vwdStreamerLogLevel.WARNING,ac+" not subscribed. Reason: "+ad);};this.subscriptionRefreshReceived=function(){i.onDataRecieved();if(this.state==vwdStreamerState.RECONNECTED){h(vwdStreamerLogLevel.TRACE,"Refreshing subscription set...");var ad="";for(var ac in s){ad+=Z(ac);if(ad.length>q){this.controlQueue.enqueue(ad);ad="";}}this.controlQueue.enqueue(ad);}};this.onDataRecieved=function(){e=new Date();this._setState(vwdStreamerState.CONNECTED);};this.registerCalculatedField=function(ac){if(p==null){p=[];}p.push(new vwdStreamerCalculatedFieldDefinition(this,ac));};function F(af){if(p){var ac=A?A[af]:null;if(ac){return ac.fieldDef;}for(var ae=0;ae<p.length;ae++){var ad=p[ae];if(ad.provides(af)){return ad;}}}return null;}function ab(ad){var ae=null;var af=F(ad);if(af){ae="";if(A==null){A={};U={};}if(A[ad]==null){var ac=af.createInstance(ad);A[ad]=ac;for(var ai=0;ai<ac.dependencies.length;ai++){var ah=ac.dependencies[ai];var ag=U[ah];if(ag==null){U[ah]=ag={};}ag[ad]=ac;if(!D){D={};}D[ah]=true;ae+=I(ah);}}}return ae;}function l(ag){var ad=null;if(A){var ac=A[ag];if(ac){var ad="";delete A[ag];for(var ae=0;ae<ac.dependencies.length;ae++){var ah=ac.dependencies[ae];var af=U[ah];delete af[ag];ad+=f(ah);}}}return ad;}function aa(af){if(U){var ae=U[af.dataName];if(ae){for(var ad in ae){var ac=ae[ad];ac._doUpdate(af);}}}}function X(){if(D){for(var ac in D){var ad=i._getCachedValue(ac);if(ad){aa(ad);}}D=null;}}this._setState=function(ac){if(ac==vwdStreamerState.CONNECTED){if(this.state==vwdStreamerState.RECONNECTING||this.state==vwdStreamerState.RECONNECTED||this.state==vwdStreamerState.DISCONNECTED){this.state=vwdStreamerState.RECONNECTED;return;}}else{if(ac==vwdStreamerState.CONNECTING){if(this.state==vwdStreamerState.CONNECTED||this.state==vwdStreamerState.RECONNECTED||this.state==vwdStreamerState.DISCONNECTED){this.state=vwdStreamerState.RECONNECTING;return;}}}this.state=ac;};var Q=function(){var ac;if(typeof TExParser=="function"){ac=new TExParser();E[ac.getFieldName()]=ac;}if(typeof ZExParser=="function"){ac=new ZExParser();E[ac.getFieldName()]=ac;}if(typeof BlockExParser=="function"){ac=new BlockExParser();E[ac.getFieldName()]=ac;}};var h=function(af,ad){for(var ac=0;ac<S.length;ac++){var ae=S[ac];if(af>=ae.logLevel){ae.listener(af,ad);}}if(window.console){switch(af){case vwdStreamerLogLevel.ERROR:console.error(ad);break;case vwdStreamerLogLevel.WARNING:console.warn(ad);break;case vwdStreamerLogLevel.INFO:console.info(ad);break;case vwdStreamerLogLevel.TRACE:if(console.debug){console.debug(ad);}break;default:console.debug(ad);break;}}};this.log=function(ad,ac){h(ad,ac);};var T=function(ac){return o[ac];};var j=function(ac,af,ad){if(af==""){af=null;}if(L[ac]!=null){if(af==null){delete L[ac];}else{L[ac].value=af;L[ac].dataType=ad;}}else{if(af!=null){var ae=new Object();ae.dataName=ac;ae.value=af;ae.dataType=ad;L[ac]=ae;}}};var t=function(ac){delete L[ac];};var g=function(ac){if(ac!=null){var ad=ac.indexOf(".");if(ad>-1){return ac.substring(0,ad);}else{return ac;}}return null;};var c=function(ac){if(ac!=null){var ad=ac.indexOf(".");if(ad>-1){return ac.substring(ad+1);}else{return null;}}return null;};function a(ad){if(ad===null||typeof ad==="unknown"){return vwdStreamerDataType.UNKNOWN;}if(typeof ad==="string"){return vwdStreamerDataType.STRING;}if(typeof ad==="number"){return vwdStreamerDataType.NUMBER;}if(typeof ad==="boolean"){return vwdStreamerDataType.BOOLEAN;}if(typeof ad==="object"){var ac=B.call(ad);if(ac==="[object Date]"){return vwdStreamerDataType.DATETIME;}else{if(ac==="[object Array]"){return vwdStreamerDataType.ARRAY;}else{return vwdStreamerDataType.OBJECT;}}}return vwdStreamerDataType.UNKNOWN;}var I=function(ac){if(ac==="vwdStreamer.HeartBeat"){return"";}if(s[ac]!=null){s[ac]++;return"";}s[ac]=1;var ad=ab(ac);if(ad!=null){return ad;}if(k(ac)){return"";}return Z(ac);};var f=function(ac){if(s[ac]!=null){s[ac]--;if(s[ac]<1){delete s[ac];t(ac);var ad=l(ac);if(ad!=null){return ad;}if(O(ac)){return"";}return G(ac);}}return"";};var H=function(ac){return E[ac];};var y=function(ac){h(vwdStreamerLogLevel.INFO,"Performing reconnect...");document.vwdStreamerInstance.streamerImplementation.connect(v,ac);};var Z=function(ac){return"req("+ac+");";};var G=function(ac){return"rel("+ac+");";};function w(ad){if(typeof ad==="string"){var ac=ad.replace(P,"$1");if(ac===ad){return{value:ad,dataType:vwdStreamerDataType.STRING};}else{return{value:new Date(parseInt(ac,10)),dataType:vwdStreamerDataType.DATETIME};}}return{value:ad,dataType:a(ad)};}function x(ae,ai){var af=document.getElementsByTagName("head")[0]||document.documentElement;var ad=document.createElement("script");ad.async=true;var ah="vwdStreamer_jsonp_"+C++;if(ai){window[ah]=function(aj){try{ai(aj);}catch(ak){h(vwdStreamerLogLevel.ERROR,"Calculated field error: "+ak);}window[ah]=undefined;try{delete window[ah];}catch(ak){}if(af){af.removeChild(ad);}};}var ac=false;var ag=ae.replace(V,"="+ah+"$1");if(ag==ae&&ai){ag=ae+(ae.indexOf("?")==-1?"?":"&")+"callback="+ah;}ad.src=ag;ad.onload=ad.onreadystatechange=function(){if(!ac&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){ac=true;ad.onload=ad.onreadystatechange=null;if(af&&ad.parentNode){af.removeChild(ad);}}};af.insertBefore(ad,af.firstChild);}this.inspect={version:function(){return r;},valueOf:function(ac){var ad=L[ac];if(ad){return ad.value;}else{return NaN;}},isSubscribed:function(ac){return s[ac]!=null;},containsValue:function(ac){return L[ac]!=null;},numberOfSubscriptionsFor:function(ac){return s[ac]||0;},subscribedFieldCount:function(){var ac=0;for(n in s){ac++;}return ac;},printSubscribedFields:function(){for(n in s){window.console.info(n);}}};}function vwdStreamerCalculatedFieldDefinition(b,a){this.streamer=b;this.values={};if(a.ignoreUnchangedValues){this.ignoreUnchangedValues=true;}if(typeof a.handles==="function"){this.provides=a.handles;}else{this.handles=a.handles;}if(typeof a.getFieldDependencies==="function"){this.getFieldDependencies=a.getFieldDependencies;if(!a.singleItem){this.singleItem=false;}}else{if(a.dependentFields){this.dependentFields=a.dependentFields;}}if(typeof a.dataType!=="undefined"&&a.dataType!==vwdStreamerDataType.NUMBER){this.dataType=a.dataType;}if(a.treatNullAsNaN){this.treatNullAsNaN=true;}if(typeof a.update==="string"){if(typeof a.treatNullAsNaN==="undefined"){this.treatNullAsNaN=true;}this.update=new Function("dataName","value","with (this.values) { return (<?>); }".replace("<?>",a.update));}else{this.update=a.update;}}vwdStreamerCalculatedFieldDefinition.prototype.streamer=null;vwdStreamerCalculatedFieldDefinition.prototype.ignoreUnchangedValues=false;vwdStreamerCalculatedFieldDefinition.prototype.singleItem=true;vwdStreamerCalculatedFieldDefinition.prototype.treatNullAsNaN=false;vwdStreamerCalculatedFieldDefinition.prototype.handles=null;vwdStreamerCalculatedFieldDefinition.prototype.dependentFields=null;vwdStreamerCalculatedFieldDefinition.prototype.update=null;vwdStreamerCalculatedFieldDefinition.prototype.dataType=1;vwdStreamerCalculatedFieldDefinition.prototype.values=null;vwdStreamerCalculatedFieldDefinition.prototype.provides=function(a){return this.handles.test(a);};vwdStreamerCalculatedFieldDefinition.prototype.getFieldDependencies=function(b){var e=b.indexOf(".");if(e>-1){var d=b.substr(0,e+1);var a=new Array(this.dependentFields.length);for(var c=0;c<this.dependentFields.length;c++){a[c]=d+this.dependentFields[c];}return a;}return[];};vwdStreamerCalculatedFieldDefinition.prototype.createInstance=function(a){return new vwdStreamerCalculatedFieldInstance(this,a);};vwdStreamerCalculatedFieldDefinition.prototype._update=function(a,b){this.streamer._update(a,b,this.dataType,null,this.ignoreUnchangedValues);};function vwdStreamerCalculatedFieldInstance(b,a){this.fieldDef=b;this.dataName=a;var c=a.indexOf(".");if(c>-1){this.fieldIdentifier=a.substr(0,c);this.fieldName=a.substr(c+1);}else{this.fieldIdentifier=a;}this.dependencies=b.getFieldDependencies(a);}vwdStreamerCalculatedFieldInstance.prototype.fieldDef=null;vwdStreamerCalculatedFieldInstance.prototype.dataName=null;vwdStreamerCalculatedFieldInstance.prototype.fieldIdentifier=null;vwdStreamerCalculatedFieldInstance.prototype.fieldName=null;vwdStreamerCalculatedFieldInstance.prototype.values=false;vwdStreamerCalculatedFieldInstance.prototype.dataPacket=null;vwdStreamerCalculatedFieldInstance.prototype._ignore=false;vwdStreamerCalculatedFieldInstance.prototype._oldValue=null;vwdStreamerCalculatedFieldInstance.prototype._updateFired=false;vwdStreamerCalculatedFieldInstance.prototype._hasFiredBefore=false;vwdStreamerCalculatedFieldInstance.prototype.dependencies=null;vwdStreamerCalculatedFieldInstance.prototype.preventUpdate=function(){this._ignore=true;};vwdStreamerCalculatedFieldInstance.prototype._doUpdate=function(a){this._ignore=false;this._updateFired=false;var k=a.dataName;if(this.fieldDef.singleItem){var f=k.indexOf(".");if(f>-1){k=k.substr(f+1);}}this.values={};var b;for(var h=0;h<this.dependencies.length;h++){var j=this.dependencies[h];b=this.fieldDef.streamer._getCachedValue(j);if(this.fieldDef.singleItem){var f=j.indexOf(".");if(f>-1){j=j.substr(f+1);}}if(b){this.values[j]=b.value;}else{this.values[j]=null;}}b=this.fieldDef.streamer._getCachedValue[this.dataName];if(b){this._oldValue=b.value;this.values[this.dataName]=b.value;}else{this._oldValue=null;this.values[this.dataName]=null;}this.values[k]=a.value;if(this.fieldDef.treatNullAsNaN){for(var c in this.values){if(this.values[c]==null){this.values[c]=Number.NaN;}}}this.dataPacket=a;try{var l=this.fieldDef.update.apply(this,[a.dataName,a.value]);if(!this._updateFired&&!(typeof l==="undefined")){this.update(l);}}catch(g){this.fieldDef.streamer.log(vwdStreamerLogLevel.ERROR,"Calculated field error: "+g);}this.values=null;this.dataPacket=null;};vwdStreamerCalculatedFieldInstance.prototype.update=function(a){this._updateFired=true;if(!this._ignore){if(isNaN(a)||!isFinite(a)){a=null;}if(this._oldValue==null&&a==null&&this._hasFiredBefore){return;}this._hasFiredBefore=true;this.fieldDef._update(this.dataName,a);}};function vwdStreamerDataPacket(a,c,b){this.dataName=a;this.rawValue=c;this.oldRawValue=c;}vwdStreamerDataPacket.prototype.dataName=null;vwdStreamerDataPacket.prototype.type=null;vwdStreamerDataPacket.prototype.rawValue=null;vwdStreamerDataPacket.prototype.value=null;vwdStreamerDataPacket.prototype.values=null;vwdStreamerDataPacket.prototype.oldRawValue=null;vwdStreamerDataPacket.prototype.oldValue=null;vwdStreamerDataPacket.prototype.oldValues=null;vwdStreamer.prototype.registerExDividendValues=function(a){var c={};for(var b in a){c[b+".ExDividend"]=a[b];}document.vwdStreamerInstance.registerCalculatedField({ignoreUnchangedValues:false,handles:/\.AdjustedPreviousClosePrice$/,dataType:1,dependentFields:["PreviousClosePrice","ExDividend"],update:"PreviousClosePrice - (isNaN(ExDividend)?0.0:ExDividend)"});document.vwdStreamerInstance.registerCalculatedField({ignoreUnchangedValues:false,handles:/\.AdjustedAbsoluteDifference$/,dataType:1,dependentFields:["ClosePrice","LastPrice","AdjustedPreviousClosePrice"],update:"AdjustedPreviousClosePrice===0.0?null:((isNaN(ClosePrice)?LastPrice:ClosePrice) - AdjustedPreviousClosePrice)"});document.vwdStreamerInstance.registerCalculatedField({ignoreUnchangedValues:false,handles:/\.AdjustedRelativeDifference$/,dataType:1,dependentFields:["AdjustedAbsoluteDifference","AdjustedPreviousClosePrice"],update:"AdjustedPreviousClosePrice===0.0?null:(AdjustedAbsoluteDifference / AdjustedPreviousClosePrice)"});document.vwdStreamerInstance.registerStaticData({handles:/\.ExDividend$/,interval:3600,dataType:"internal-function",update:function(){return c;}});};var vwdStreamerTick=function(e,d,c,f,b,a){this.tickType=e;this.dateTime=d;this.price=c;this.indication=f;this.lastVolume=b;this.cummulativeVolume=a;};var TExParser=function(){var a="T!";this.getFieldName=function(){return a;};this.getParsedValues=function(d){var b=new Object();if(d!=null&&d.length>0){var c=d.split("|");b.values=new vwdStreamerTick(c[0]!=""?c[0].substr(0,1):null,c[0]!=""?c[0].substr(1):null,c[1]!=""?Number(c[1]):null,c[2]!=""?c[2]:null,c[3]!=""?Number(c[3]):null,c[4]!=""?Number(c[4]):null);b.value=b.values.price;b.type=vwdStreamerDataType.NUMBER;}return b;};};var ZExParser=function(){var a="Z!";this.getFieldName=function(){return a;};this.getParsedValues=function(d){var b=new Object();if(d!=null&&d.length>0){var c=d.split("|");b.values=new vwdStreamerTick(c[0]!=""?c[0].substr(0,1):null,c[0]!=""?c[0].substr(1):null,c[1]!=""?Number(c[1]):null,c[2]!=""?c[2]:null,c[3]!=""?Number(c[3]):null,c[4]!=""?Number(c[4]):null);b.value=b.values.price;b.type=vwdStreamerDataType.NUMBER;}return b;};};var BlockExParser=function(){var a="Block!";this.getFieldName=function(){return a;};this.getParsedValues=function(d){var b=new Object();if(d!=null&&d.length>0){var c=d.split("|");b.values=new vwdStreamerTick(c[0]!=""?c[0].substr(0,1):null,c[0]!=""?c[0].substr(1):null,c[1]!=""?Number(c[1]):null,null,c[3]!=""?Number(c[3]):null,c[4]!=""?Number(c[4]):null);b.value=b.values.price;b.type=vwdStreamerDataType.NUMBER;}return b;};};function vwdStreamerPollingImplementation(c,d,b,a,e){this.streamer=c;this.domain=d;this.host=b;this.port=a;this.secure=e;}vwdStreamerPollingImplementation.prototype.streamer=null;vwdStreamerPollingImplementation.prototype.domain=null;vwdStreamerPollingImplementation.prototype.host=null;vwdStreamerPollingImplementation.prototype.port=null;vwdStreamerPollingImplementation.prototype.secure=false;vwdStreamerPollingImplementation.prototype.initialized=false;vwdStreamerPollingImplementation.prototype.controlFormAvailable=true;vwdStreamerPollingImplementation.prototype.pollingConnectionAvailable=true;vwdStreamerPollingImplementation.prototype.controlFrame=null;vwdStreamerPollingImplementation.isSupported=function(){return true;};vwdStreamerPollingImplementation.prototype.initialize=function(){if(this.initialized){return;}var a=this;setInterval(function(){if(a.pollingConnectionAvailable){a.pollServerForData(a.streamer.getSessionId());}},100);this.initialized=true;};vwdStreamerPollingImplementation.prototype.isControlSlotAvailable=function(){return(this.streamer.getSessionId()!=null&&this.controlFormAvailable);};vwdStreamerPollingImplementation.prototype.sendDataToServer=function(c){this.controlFormAvailable=false;this.initializeControlFrame();var a=this.controlFrame.contentWindow.document.getElementById("controlForm");a.action=this._getControlURL(this.streamer.getSessionId());var b=a.controlData;b.value=c;a.submit();};vwdStreamerPollingImplementation.prototype.connect=function(b,a){switch(a){case vwdStreamerReconnectType.REFRESH:break;case vwdStreamerReconnectType.CONNECTION_LOST:this.pollingConnectionAvailable=true;break;default:this.streamer.log(vwdStreamerLogLevel.WARNING,"Unknown reconnect type: "+a);}};vwdStreamerPollingImplementation.prototype.pollServerForData=function(d){this.pollingConnectionAvailable=false;var c=document.getElementsByTagName("head")[0];var b=document.createElement("script");b.async=true;b.src=this._getDataURL(d);var a=false;b.onload=b.onreadystatechange=function(){if(!a&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){a=true;b.onload=b.onreadystatechange=null;if(c&&b.parentNode){c.removeChild(b);}}};this.streamer.lastConnectTime=new Date();c.insertBefore(b,c.firstChild);};vwdStreamerPollingImplementation.prototype.handleResponse=function(a){for(var b=0;b<a.length;b++){var d=a[b];try{switch(d.m){case"s":if(d.v.length==1){this.streamer.setSessionId(d.v[0]);}break;case"d":if(d.v.length==2){this.streamer.accessDenied(d.v[0],d.v[1]);}break;case"un":if(d.v.length==2){this.streamer.update(d.v[0],d.v[1],"NUMBER");}break;case"us":if(d.v.length==2){this.streamer.update(d.v[0],d.v[1],"STRING");}break;case"ue":if(d.v.length==1){this.streamer.update(d.v[0],null,"UNKNOWN");}break;case"a_req":if(d.v.length==2){this.streamer.ackSubscribe(d.v[0],d.v[1]);}break;case"a_rel":if(d.v.length==1){this.streamer.ackSubscribe(d.v[0]);}break;case"h":this.streamer.heartbeatReceived();break;case"sr":this.streamer.subscriptionRefreshReceived();break;default:this.streamer.log(vwdStreamerLogLevel.WARNING,"Unknown message type, skipping message: "+d.m);}}catch(c){this.streamer.log(vwdStreamerLogLevel.ERROR,"Error handling message "+d.m+", error: "+c);}}this.pollingConnectionAvailable=true;};vwdStreamerPollingImplementation.prototype._getDataURL=function(b){var a="";if(this.host!=null){a+=(this.secure?"https://":"http://")+this.host;}if(this.port!=null){a+=":"+this.port;}a+="/POLLING/";if(b!=null){a+=escape(b);}if(this.domain!=null){a+="?domain="+escape(this.domain);}return a;};vwdStreamerPollingImplementation.prototype._getControlURL=function(b){var a="";if(this.host!=null){a+=(this.secure?"https://":"http://")+this.host;}if(this.port!=null){a+=":"+this.port;}a+="/POLLING/";if(b!=null){a+=escape(b);}if(this.domain!=null){a+="?domain="+escape(this.domain);}return a;};vwdStreamerPollingImplementation.prototype.initializeControlFrame=function(){if(this.controlFrame!=null){this.controlFrame.onload=this.controlFrame.onreadystatechange=null;document.body.removeChild(this.controlFrame);this.controlFrame=null;}try{this.controlFrame=document.createElement('<iframe name="vwdStreamerControlFrame">');}catch(b){this.controlFrame=document.createElement("iframe");}this.controlFrame.id="vwdStreamerControlFrame";this.controlFrame.name="vwdStreamerControlFrame";this.controlFrame.height=0;this.controlFrame.width=0;this.controlFrame.style.visibility="hidden";this.controlFrame.style.position="absolute";this.controlFrame.streamerImplementation=this;document.body.appendChild(this.controlFrame);this._addControlFormContentToFrame(this.controlFrame);var a=false;this.controlFrame.onload=this.controlFrame.onreadystatechange=function(){if(!a&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){a=true;this.streamerImplementation.onload=this.streamerImplementation.onreadystatechange=null;this.streamerImplementation.controlFormAvailable=true;}};};vwdStreamerPollingImplementation.prototype._addControlFormContentToFrame=function(a){if(navigator.appName=="Microsoft Internet Explorer"){var b="javascript:void((function(){document.open();document.write(\"<form id='controlForm' name='controlForm' method='POST' target='_self'>\");document.write(\"<input id='controlData' name='controlData' type='hidden'>\");document.write(\"</form>\");document.close();})())";a.src=b;}else{var c=a.contentWindow.document;c.open();c.write("<html><head></head><body>");c.write('<form id="controlForm" name="controlForm" method="POST" target="_self">');c.write('<input id="controlData" name="controlData" type="hidden">');c.write("</form>");c.close();}};function vwdStreamerQueue(){var a=new Array();this.enqueue=function(b){a.push(b);};this.enqueueFirst=function(b){a.unshift(b);};this.dequeue=function(){return a.shift();};this.isEmpty=function(){return a.length==0;};}function vwdStreamerSubscription(d,c){var b=d;var a=c;var e={};this.subscribe=function(g){var f=[];for(var h=0;h<g.length;h++){var l=g[h];if(e[l]){f.push(h);}else{e[l]=true;}var k=b._getCachedValue(l);if(k!=null){b._update(k.dataName,k.value,k.dataType,this);}}if(f.length>0){g=g.slice(0);for(var j=f.length-1;j>=0;j--){g.splice(f[j],1);}}b._subscribe(g);};this.unsubscribe=function(f){var j=[];for(var g=0;g<f.length;g++){var k=f[g];if(e[k]){delete e[k];}else{j.push(g);}}if(j.length>0){f=f.slice(0);for(var h=j.length-1;h>=0;h--){f.splice(j[h],1);}}b._unsubscribe(f);};this.unsubscribeAllFields=function(){var f=[];for(var g in e){f.push(g);}b._unsubscribe(f);e=[];};this.update=function(f){if(e[f.dataName]){a(f);}};}var vwdStreamerLogLevel={TRACE:0,INFO:1,WARNING:2,ERROR:3};var vwdStreamerState={NONE:0,INITIALIZING:1,INITIALIZED:2,CONNECTING:3,CONNECTED:4,DISCONNECTED:5,RECONNECTING:6,RECONNECTED:7};var vwdStreamerDataType={UNKNOWN:0,NUMBER:1,STRING:2,DATE:3,TIME:4,DATETIME:5,BOOLEAN:10,OBJECT:11,ARRAY:12};var vwdStreamerReconnectType={CONNECTION_INITIALIZE:0,REFRESH:1,CONNECTION_LOST:2};var vwdStreamerBrowser={userAgent:navigator.userAgent,regexMozilla:/mozilla/i,regexWebkit:/webkit/i,regexOpera:/opera/i,regexIE:/msie/i,isMozilla:function(){return vwdStreamerBrowser.regexMozilla.test(vwdStreamerBrowser.userAgent)&&!/(compatible|webkit)/i.test(vwdStreamerBrowser.userAgent);},isWebkit:function(){return vwdStreamerBrowser.regexWebkit.test(vwdStreamerBrowser.userAgent);},isOpera:function(){return vwdStreamerBrowser.regexOpera.test(vwdStreamerBrowser.userAgent);},isIE:function(){return vwdStreamerBrowser.regexIE.test(vwdStreamerBrowser.userAgent);}};vwdStreamerDataType.regTimeString=/^([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$/;vwdStreamerDataType.regDateString=/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[01])$/;vwdStreamerDataType.regDateTimeString=/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[01]) ([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$/;vwdStreamerDataType.parseDataType=function(a,b){if(a=="NUMBER"){return vwdStreamerDataType.NUMBER;}if(a=="DATE"){if(vwdStreamerDataType.regDateString.test(b)){return vwdStreamerDataType.DATE;}else{return vwdStreamerDataType.STRING;}}if(a=="TIME"){if(vwdStreamerDataType.regTimeString.test(b)){return vwdStreamerDataType.TIME;}else{return vwdStreamerDataType.STRING;}}if(a=="DATETIME"){if(vwdStreamerDataType.regDateTimeString.test(b)){return vwdStreamerDataType.DATETIME;}else{return vwdStreamerDataType.STRING;}}if(a=="STRING"){if(vwdStreamerDataType.regTimeString.test(b)){return vwdStreamerDataType.TIME;}else{if(vwdStreamerDataType.regDateString.test(b)){return vwdStreamerDataType.DATE;}else{if(vwdStreamerDataType.regDateTimeString.test(b)){return vwdStreamerDataType.DATETIME;}else{return vwdStreamerDataType.STRING;}}}}return vwdStreamerDataType.UNKNOWN;};Date.parseVwdStreamerTime=function(b){var a=new Date();a.setHours(b.substring(0,2));a.setMinutes(b.substring(3,5));a.setSeconds(b.substring(6,8));return a;};Date.parseVwdStreamerDate=function(b){var a=new Date();a.setFullYear(b.substring(0,4));a.setMonth(Number(b.substring(5,7))-1);a.setDate(b.substring(8,10));return a;};Date.parseVwdStreamerDateTime=function(b){var a=new Date();a.setFullYear(b.substring(0,4));a.setMonth(Number(b.substring(5,7))-1);a.setDate(b.substring(8,10));a.setHours(b.substring(11,13));a.setMinutes(b.substring(14,16));a.setSeconds(b.substring(17,19));return a;};if(document.all&&!document.getElementById){document.getElementById=function(a){return document.all[a];};}
