
if(!window.ActiveXObject)
{Object.prototype.selectSingleNode=function(sXPath)
{var oEval=new XPathEvaluator();var oRslt=oEval.evaluate(sXPath,this,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null);if(oRslt!=null){return oRslt.singleNodeValue;}
else{return null;}}
Object.prototype.selectNodes=function(sXPath)
{var oEval=new XPathEvaluator();var iter=oEval.evaluate(sXPath,this,null,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null);var nodes=[];var el=null;if(iter!=null)
{el=iter.iterateNext();while(el)
{nodes.push(el);el=iter.iterateNext();}}
return nodes;}}
function StreamingQuotes()
{var me=this;var elms2Upd=new Object(),clrElms,adTmr=null,bkTmr=null;elms2Upd.empty=true;var
svcUrl="/inc/services/streamingquotes.ashx?symbol=",fOn,tmFetchQts=null,tmKillStrmg=null,iPollFreq=null,iTout=null,refRate=null,mOpn=false,ajxReq=null,qXml=null;me.tckrs="";me.cmpyNm;me.Start=function(tickers,compyName)
{var key;me.tckrs=tickers;me.cmpyNm=compyName;var spn=document.getElementById("strmTgl");fOn=!(_usrChGetCrnt("StreamingTickers"));if(!!spn)
{if(fOn)
{setImg("on");}
else
{setImg("off");}
spn.style.display="";}
if(fOn)
{start();}}
me.ToggleStreaming=function(el)
{if(fOn)
{fOn=false;setImg("off");_usrChSetCrnt("StreamingTickers",1);stop();}
else
{fOn=true;setImg("on");_usrChSetCrnt("StreamingTickers",0);start();}}
function setImg(sw)
{var img=document.getElementById("_img_TgglStrmg");if(sw=="off")
{img.src="/inc/images/stre_off.gif";img.alt=img.title="Click to turn dynamic quote updates On";}
if(sw=="on")
{img.src="/inc/images/stre_on.gif";img.alt=img.title="Click to turn dynamic quote updates Off";}}
function start()
{var allSpans=document.getElementsByTagName("span");for(var spn in allSpans)
{if(allSpans[spn].getAttribute)
{if(!!allSpans[spn].getAttribute("piprop"))
{elms2Upd["_"+allSpans[spn].getAttribute("piprop")]=allSpans[spn];elms2Upd.empty=false;}}}
if(!elms2Upd.empty&&null==tmFetchQts)
{doConfig();}}
function sendAjaxReq(ajaxCB)
{if(window.XMLHttpRequest)
{ajxReq=new XMLHttpRequest();ajxReq.onreadystatechange=ajaxCB;var fullUrl=svcUrl;fullUrl=fullUrl.concat(me.tckrs);ajxReq.open("POST",fullUrl,true);ajxReq.setRequestHeader("X-Mny-SQT","1");ajxReq.setRequestHeader("Content-type","application/x-www-form-urlencoded");ajxReq.setRequestHeader("Content-length","n=0".length);ajxReq.send("n=0");}}
function doConfig()
{sendAjaxReq(doConfigCB);}
function doConfigCB()
{if(isAjxDone())
{var rsltNd=null;if(ajxReq.responseXML)
{qXml=ajxReq.responseXML;rsltNd=qXml.selectSingleNode("/Results");}
if(!!rsltNd)
{var OK=false;if("200"==rsltNd.getAttribute("status"))
{OK=true;}
if(OK)
{if(rsltNd.getAttribute("mstat"))
{var tmp=rsltNd.getAttribute("mstat");if(tmp==1)
{mOpn=true;}}
if(rsltNd.getAttribute("adref"))
{refRate=rsltNd.getAttribute("adref");if(!isNaN(refRate))
{refRate=refRate*1000;}
else
{OK=false;}}
else
{OK=false;}
if(OK&&rsltNd.getAttribute("tout"))
{var tOut=rsltNd.getAttribute("tout");if(!isNaN(tOut))
{iTout=tOut*1000;}
else
{OK=false;}}
else
{OK=false;}
if(OK&&rsltNd.getAttribute("poll"))
{var poll=rsltNd.getAttribute("poll");if(!isNaN(poll))
{iPollFreq=poll*1000;}
else
{OK=false;}}
else
{OK=false;}
if(OK)
{if(null==tmFetchQts)
{tmFetchQts=window.setInterval(pollMidTier,iPollFreq);}
if(null==tmKillStrmg)
{tmKillStrmg=window.setTimeout(stop,iTout);}}}}}}
function stop()
{window.clearInterval(tmFetchQts);window.clearInterval(adTmr);window.clearTimeout(tmKillStrmg);window.clearTimeout(bkTmr);tmFetchQts=null;tmKillStrmg=null;bkTmr=null;adTmr=null;ClrBkg();}
function prevEl(el)
{var prevSib=el.previousSibling;while(prevSib.nodeType!=1)
{prevSib=prevSib.previousSibling;}
return prevSib;}
function nextEl(el)
{var nextSib=el.nextSibling;while(nextSib.nodeType!=1)
{nextSib=nextSib.nextSibling;}
return nextSib;}
function isAjxDone()
{if(4==ajxReq.readyState)
{if(200==ajxReq.status)
{return true;}}
return false;}
function pollCB()
{if(isAjxDone())
{if(ajxReq.responseXML)
{qXml=ajxReq.responseXML;var rsltNd=qXml.selectSingleNode("/Results");if("200"!=rsltNd.getAttribute("status"))
{stop();}
var pi=null;pi=qXml.selectSingleNode("/Results/pi");clrElms=new Array();updElms(pi);if(adTmr==null)
{adTmr=window.setInterval("dapMgr.trackEvent(eventType.click)",refRate);}
bkTmr=window.setTimeout(ClrBkg,1000);}}}
function ClrBkg()
{if(clrElms!=null)
{var elemCt=clrElms.length;for(var i=0;i<elemCt;i++)
{elms2Upd[clrElms[i]].style.background="";}}
if(bkTmr)
{clearTimeout(bkTmr);clrElms=null;}}
function pollMidTier()
{sendAjaxReq(pollCB);}
function updElms(pi)
{function updTitle(pi)
{if(!!pi)
{var last,chng,chngPer;last=pi.getAttribute("_3");chng=signVal("_13");chngPer=signVal("_14");if(mOpn)
{var rtlast=pi.getAttribute("_797");if(rtlast!=0)
{var mm=document.getElementById("MarketMessage");if(!!mm&&mm.hasChildNodes())
{last=rtlast;chng=signVal("_806");chngPer=signVal("_807");}}}
title=pi.getAttribute("_0").concat(": ").concat(last).concat(" ").concat(chng);if(chngPer!="unch")
{title=title.concat(" (").concat(chngPer).concat(") ");}
title=title.concat(" - ").concat(me.cmpyNm).concat(" - ").concat("MSN Money");document.title=title;}}
function signVal(pip)
{var signStr="";var pipVal=pi.getAttribute(pip);if(pip=="_13"&&pipVal==0)
{if(getSign("_14",true)==-1)
{signStr="-";}}
else if(1==getSign(pip,true))
{signStr="+";}
return signStr.concat(pipVal);}
function updElm(pip,plus)
{if(pi.getAttribute(pip))
{var elemVal="";if(!!plus)
{elemVal=signVal(pip);}
else
{elemVal=pi.getAttribute(pip);}
if(bkgChg(pip))
{var old=parseFloat(elms2Upd[pip].innerHTML);var cur=parseFloat(elemVal);if(!isNaN(old)&&!isNaN(cur))
{var idx=0;if(clrElms!=null)
{idx=clrElms.length;}
if(old>cur)
{clrElms[idx]=pip;elms2Upd[pip].style.background="#FFEBEB";}
else if(old<cur)
{clrElms[idx]=pip;elms2Upd[pip].style.background="#DEF6D3";}}}
elms2Upd[pip].innerHTML=elemVal;}}
function bkgChg(pip)
{var ret;switch(pip)
{case"_3":case"_13":case"_14":case"_797":case"_806":case"_807":case"_348":case"_350":case"_100":ret=true;break;default:ret=false;break;}
return ret;}
function updCls(pip,el)
{var dir=getSign(signVal(pip),false);switch(dir)
{case-1:el.className="s5";break;case 0:el.className="";break;case 1:el.className="s4";break;}}
function doTxtClrArrw(pip)
{if(!!elms2Upd[pip])
{try
{doTxtClr(pip);var img=prevEl(elms2Upd[pip]);var dir=getSign(signVal(pip),false);switch(dir)
{case-1:img.src="/inc/images/down.gif";img.alt="down";break;case 0:img.src="/inc/images/1x1trans.gif";img.alt="";break;case 1:img.src="/inc/images/up.gif";img.alt="up";break;}}
catch(e)
{}}}
function getSign(pip,isKey)
{var val="";if(isKey)
{val=pi.getAttribute(pip);}
else
{val=pip;}
if(!!val)
{if(-1!=val.indexOf("-"))
{return-1;}
else if(val=="unch")
{return 0;}
else
{return 1;}}
else
{return 0;}}
function doTxtClr(pip)
{updElm(pip,true);updCls(pip,elms2Upd[pip]);}
for(var prop in elms2Upd)
{if(+prop.substring(1)>0&&(!!pi))
{if("_13"==prop)
{doTxtClrArrw(prop);}
else if("_14"==prop||"_-101"==prop||"_807"==prop)
{doTxtClr(prop);}
else if("_350"==prop||"_806"==prop)
{doTxtClr(prop);var sh=nextEl(elms2Upd[prop]);updCls(prop,sh);}
else
{updElm(prop);}}}
updTitle(pi);}}
var g_strQuotes=new StreamingQuotes();