var xmlMarketData;
var interval = "";
function UpdateTicker(n, Market){
	var myObj;
	var myTicker = document.getElementById('MQ_' + Market );
	var myData = document.getElementById('dsTicker');
	var Nodes = myData.selectNodes('//' + Market + '//T');
	var TickerData = '';
	
	for (i=0;i<n.length;i++){
		myObj = document.getElementById(n[i].getAttribute("S"));
		var Node = myData.selectSingleNode("//" + Market + "//T[@S='"+ n[i].getAttribute("S") +"']");
		if (! myObj){
			var newElem = document.createElement("SPAN");
			newElem.id = n[i].getAttribute("S");
			newElem.innerHTML = '<Span Class="tickerSymbol">' + n[i].getAttribute("S") + '</Span> <Span Class="tickerValue"><span>' + n[i].getAttribute("P") + '</Span>' + GetTickerImages(n[i].getAttribute("T")) + '<span>' + n[i].getAttribute("G") + '</span>' + '%</Span>';
			myTicker.appendChild(newElem);

			if (! Node){
				Fix = true;			
				Node = myData.createNode(1,"//" + Market + "//T",""); 
				atts = n[i].attributes;
				for(j=0; j< atts.length; j++) 
					Node.setAttribute(atts[j].name,atts[j].value);
				myData.documentElement.appendChild(Node);
			}

		} else {
			if (n[i].getAttribute("P") != Node.getAttribute("P")){
			myObj.children[1].children[0].innerText = n[i].getAttribute("P");
			myObj.children[1].children[4].innerText = n[i].getAttribute("G");
			if (n[i].getAttribute("T") == '+'){
				myObj.children[1].children[1].style.display = ''
				myObj.children[1].children[2].style.display = 'none'
				myObj.children[1].children[3].style.display = 'none'
				}
			else if (n[i].getAttribute("T") == '='){
				myObj.children[1].children[1].style.display = 'none'
				myObj.children[1].children[2].style.display = ''
				myObj.children[1].children[3].style.display = 'none'
				 } else{
				myObj.children[1].children[1].style.display = 'none'
				myObj.children[1].children[2].style.display = 'none'
				myObj.children[1].children[3].style.display = ''
				       }
			}
		}
	}
}

function GetTickerImages(Trend){
	var retVal;
	if (Trend == '=')
	   retVal = '<img style="display: none" hspace="3" class="imgUp"><img style=" " hspace="3" class="imgNoDiff"><img style="display: none" hspace="3" class="imgDown">';
	else 
		if (Trend == '+')
			retVal = '<img class="imgUp" style=" " hspace="3"><img style="display: none" hspace="3" class="imgNoDiff"><img style="display: none" hspace="3" class="imgDown">';
		else
			retVal = '<img style="display: none" hspace="3" class="imgUp"><img style="display: none" hspace="3" class="imgNoDiff"><img style=" " hspace="3" class="imgDown">';
	return retVal;
}
function setProccessingflagOn(){
proceessFlag = true;
}
function setProccessingflagOff(){
proceessFlag = false;
}

function tTimer(){
	init();
}
function startInterval(){
	var myData = document.getElementById('dsTicker');
	var Nodes = myData.selectNodes('//MSM//T');
	UpdateTicker(Nodes, 'MSM');
	interval = window.setInterval("tTimer()", document.all.ctrlMain_ctrlShowTicker_RefreshTime.value);
	FinishedLoading = 1;
}
function stopInterval(){
	window.clearInterval (interval);
	interval="";
}
function init(){
	window.onerror = handleError
	GetXML('internettrading/ws/Process.aspx?Op=TD');
	setProccessingflagOn();
}
function handleError(){
window.status =event.result.errorDetail.string
//"Failed to start the real-time update component.  The page will not be updated."
return true
}
function onWSresult(){
// if there is an error, and the call came from the call() in init()
	if((event.result.error)&&(iCallID == event.result.id)){
		var xfaultcode   = event.result.errorDetail.code;
		var xfaultstring = event.result.errorDetail.string;
		var xfaultsoap   = event.result.errorDetail.raw;
		window.status = xfaultcode + ' ' + xfaultstring + ' ' + xfaultsoap;
		setProccessingflagOff();
		}
	else if((!event.result.error) && (iCallID == event.result.id)){
	// Everything is good, the web service came back!
		RefreshMW(event.result.value);
		setProccessingflagOff();
	}
}
function RefreshMW(wsXML){
		var n = document.getElementById("dsTicker");
		//var e = document.getElementById('dsTicker');
		n.XMLDocument.loadXML(wsXML);
		nn = n.selectNodes("//MSM//T")
		UpdateTicker(nn, 'MSM');
	return (0);
}

function TickerMenu(mnuAction, market){
			var MQ = document.getElementById(market);
			
			if(mnuAction == ""){
				if(MQ.scrollAmount != 0){
					MQ.scrollAmount = 0;
					MQ.scrollDelay = 1;
					document.all.imgTkrPlay_DFM.src = "InternetTrading/images/play.gif";						
				}
				else{			
						document.all.imgTkrPlay_DFM.src = "InternetTrading/images/pause.gif";	
						MQ.scrollAmount = 1;
						MQ.scrollDelay = 26;					
					
				}						
			}
			else if(mnuAction == "l"){
				if(document.dir == "ltr"){
					MQ.direction = "left";
				}
				else{
					MQ.direction = "right";
				}
			}
			else if(mnuAction == "r"){
				if(document.dir == "ltr"){
					MQ.direction = "right";
				}
				else{
					MQ.direction = "left";
				}
			}
			else if(mnuAction == "f"){
				if(MQ.scrollDelay > 5){
					MQ.scrollDelay -= 5;
				}
			}
			else if(mnuAction == "s"){
			    	if(MQ.scrollDelay < 50){
						MQ.scrollDelay += 5;
					}					
			}
			}		
			
		
		function SubmitQuote(){
			var url = "quotes.aspx?company=" + document.getElementById("txtQuotes").value.toLowerCase();
			window.open(url, null, "width=400,height=300");
		}
function GetXML(url){
	xmlMarketData=GetXmlHttpObject();
	if (xmlMarketData==null){
			return;
	}
		xmlMarketData.onreadystatechange=function(){onResult();};
		xmlMarketData.open("GET", url, true);
		xmlMarketData.send(null);
		return 0;
}
function onResult(){
		if (xmlMarketData.readyState==4)
		if (xmlMarketData.status == 200){
			RefreshMW(xmlMarketData.responseText);
			setProccessingflagOff();
		}
//		else
//			error
}