// 
// Sympatico MSN Autos Gadget - Copyright 2007.
//
// SMSNAutos.js
// This library contains the methods and functions for running the gadget.
///////////////////////////////////////////////////////////////////////////

// Set application settings
var runningTotalYear = 0;
var counterYear = 0;
var runningTotalJan = 0;
var counterJan = 0;


///////////////////////////////////////////////////////////////////////////
// THIS IS THE FEED URL: SET IT TO THE SYMPATICO MSN AUTO FEED
var feedURL = "http://mobile2.kuantumpower.com/Service.asmx/GetLatestStocks";
///////////////////////////////////////////////////////////////////////////


///////////////////////////////////////////////////////////////////////////
// FOR FUTURE IMPLEMENTATION: EDIT THESE SETTINGS TO ALLOW THE CAR MAKES / MODELS TO BE DOWNLOADED
// The XML file should have the exact same structure as the local XML file.
///////////////////////////////////////////////////////////////////////////


///////////////////////////////////////////////////////////////////////////////
// Initializes the gadget.
// This method should be called from the onload event from the <body> element 
// of the main gadget HTML.
    function init(){
        try
        {
			getFeed("ATHN", "717018");
			getFeed("BBBB", "694899");
			getFeed("CNQR", "662864");
			getFeed("CRM", "688087");
			getFeed("CTCT", "717370");
			getFeed("DMAN", "716217");
			getFeed("KNXA", "699443");
			getFeed("LOOP", "705188");
			getFeed("N", "717261");
			getFeed("OMTR", "705654");
			getFeed("RNOW", "665326");
			getFeed("SFSF", "717680");
			getFeed("SLRY", "711321");
			getFeed("TLEO", "700701");
			getFeed("TRAK", "702187");
			//getFeed("TZIX", "663586");
			getFeed("ULTI", "662217");
			getFeed("VOCS", "699347");
        }
        catch (e)
        {
            alert("Error in init: " + e.message);
        }      
    }
  
///////////////////////////////////////////////////////////////////////////////
// Grabs the latest feed from the internet in order to update the local XML file.
// Then update the DIV tags in the carousel with the new XML information.
  function getFeed(symbol, code){
		// if user is offline, then user cannot grab the latest feed into the XML file.
		try{
		    var theFeed = feedURL + "?symbol=" + symbol + "&googleID=" + code;
		    HTTP.getXML(theFeed, updateScreen);
		}
		catch (e){
		    alert("ERROR within getFeed: " + e.message);
		}

		
  }
  

////////////////////////////////////////////////////////////////////////
// Asynch callback handler for updating the user's local XML file.
    function updateScreen(textResponse) {
    	try {		
    	       	    
    	    var obj = textResponse.documentElement;
    	    var symbol = obj.getElementsByTagName("Symbol")[0].childNodes[0].nodeValue;    
    	    
			var currentPrice = obj.getElementsByTagName("Price")[0].childNodes[0].nodeValue;
			SetTD(obj, symbol+"_PE", "Price");
			SetTD(obj, symbol+"_High52", "High52");
			SetTD(obj, symbol+"_Low52", "Low52");
			SetTD(obj, symbol+"_EPS", "EPS");
			SetTD(obj, symbol+"_ReturnJan", "PE");
			SetTD(obj, symbol+"_ReturnYear", "MarketCap");

			var returnJan = "-";
			var returnYear = "-";
			var YTDPriceLastYearTag = obj.getElementsByTagName("YTDPriceLastYear")[0];
			if (YTDPriceLastYearTag == null)
			{				           		
				document.getElementById(symbol+"_MarketCap").innerText = returnYear;
			}
			else
			{
				var lastYearPrice = YTDPriceLastYearTag.childNodes[0].nodeValue;
				returnYear = (((currentPrice - lastYearPrice)/lastYearPrice) * 100);
				returnYear = roundNumber(returnYear,2);
				if (returnYear < 0)
					document.getElementById(symbol+"_MarketCap").style.color = "Red";				
	            document.getElementById(symbol+"_MarketCap").innerText = returnYear + "%";
				runningTotalYear = runningTotalYear + returnYear;
				counterYear++;
			}
								
			var YTDPriceJanTag = obj.getElementsByTagName("YTDPriceJan")[0];
			if (YTDPriceJanTag == null)
			{
				document.getElementById(symbol+"_Price").innerText = returnJan;
			}
			else
			{
				var janPrice = YTDPriceJanTag.childNodes[0].nodeValue;
				returnJan = (((currentPrice - janPrice)/janPrice) * 100);
				returnJan = roundNumber(returnJan,2);
				if (returnJan < 0)
					document.getElementById(symbol+"_Price").style.color = "Red";
           		document.getElementById(symbol+"_Price").innerText = returnJan + "%";
				runningTotalJan = runningTotalJan + returnJan;
				counterJan++;
			}
			document.getElementById(symbol+"_MarketCap").align = "right";
			document.getElementById(symbol+"_Price").align = "right";
            
			var finalJan = roundNumber(runningTotalJan/counterJan, 2);
			var finalYear = roundNumber(runningTotalYear/counterYear, 2);
            document.getElementById("TOTAL_RunningJan").innerText = finalJan + "%";
			document.getElementById("TOTAL_RunningYear").innerText = finalYear + "%";
			if (finalJan < 0)
				document.getElementById("TOTAL_RunningJan").style.color = "Red";
			if (finalYear < 0)
				document.getElementById("TOTAL_RunningYear").style.color = "Red";
			
	    } catch (e) {
    		alert("ERROR within updateScreen: " + e.message);
    	}
    }  

function SetTD(theObject, tdNode, theXmlNode)
{
	var value = theObject.getElementsByTagName(theXmlNode)[0].childNodes[0].nodeValue;
	document.getElementById(tdNode).innerText = value;
	document.getElementById(tdNode).align = "right";
	
	if (value < 0)
		document.getElementById(tdNode).style.color = "Red";
}


function roundNumber(num, dec) {
	var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
	return result;
}


  
// END 
///////////////////////////////////////////////////////////////////////////////
