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('//DFM//T');
	UpdateTicker(Nodes, 'DFM');
	Nodes = myData.selectNodes('//ADSM//T');
	UpdateTicker(Nodes, 'ADSM');
	interval = window.setInterval("tTimer()", RefreshRate);
	FinishedLoading = 1;
}
function stopInterval(){
	window.clearInterval (interval);
	interval="";
}
function init(){
	window.onerror = handleError
	service.useService(ServiceName, "MarketData");
	iCallID = service.MarketData.callService("GetTikerData", 'DFM', 'ADSM');
	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("dsNew");
		//var e = document.getElementById('dsTicker');
		var n = document.getElementById('dsTicker');
		n.XMLDocument.loadXML(wsXML);
		nn = n.selectNodes("//DFM//T")
		UpdateTicker(nn, 'DFM');
		nn = n.selectNodes("//ADSM//T")
		UpdateTicker(nn, 'ADSM');
	return (0);
}

function TickerMenu(mnuAction, market)
{
	var MQ = document.getElementById(market);
	
	if(mnuAction == "")
	{
		if(MQ.scrollAmount != 0)
		{
			MQ.scrollAmount = 0;
			MQ.scrollDelay = 1;
			
		}
		else
		{			
			if(market == "MQ_ADSM")
			{
				
				MQ.scrollAmount = 1;
				MQ.scrollDelay = 26;	
			}
			else
			{
				
				MQ.scrollAmount = 1;
				MQ.scrollDelay = 26;					
			}
		}						
	}
	else if(mnuAction == "l")
	{
		MQ.direction = "left";		
	}
	else if(mnuAction == "r")
	{
		MQ.direction = "right";
	}
	else if(mnuAction == "f")
	{
		if(MQ.scrollDelay > 5)
		{
			MQ.scrollDelay -= 5;
		}
	}
	else if(mnuAction == "s")
	{
		if(market == "MQ_ADSM")
		{
			if(MQ.scrollDelay < 31)
			{
				MQ.scrollDelay += 5;
			}	
		}
		else
		{
			if(MQ.scrollDelay < 50)
			{
				MQ.scrollDelay += 5;
			}					
		}		
	}
}

