function UpdateAseStockSummary(ASymbol, ALastId, ANetId, APercId, ATradesId)
{
	var callInProgress = false;
	var firstRun = true;
	var lastValue = 0;
	var lastTrades = 0;
	
	var xmlhttp=false;
	
	if (callInProgress == true) { return; }
	
	function execute()
	{
		try
		{
			/*@cc_on @*/
			/*@if (@_jscript_version >= 5)
			// JScript gives us Conditional compilation, we can cope with old IE versions.
			// and security blocked creation of the objects.
			 try {
				xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
			 } catch (e) {
				try {
				 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (E) {
				 xmlhttp = false;
				}
			 }
			@end @*/
			if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
				try {
					xmlhttp = new XMLHttpRequest();
				} catch (e) {
					xmlhttp=false;
				}
			}
			if (!xmlhttp && window.createRequest) {
				try {
					xmlhttp = window.createRequest();
				} catch (e) {
					xmlhttp=false;
				}
			}	
			callInProgress = true;
			var url = "/services/StockValues.ashx?mode=en&symbol=" + escape(ASymbol) + "&a=" + Math.round(Math.random() * 999999999999)
			xmlhttp.open("GET", url,true);
			xmlhttp.onreadystatechange = onReadyStateHandler;
			xmlhttp.send(null);
		}
		catch (e)
		{
			//Error initializing xmlhttp object.
			callInProgress = false;
		}
	}
	this.Execute = execute;
	
	function onReadyStateHandler()
	{
		switch (xmlhttp.readyState)
		{
			case 4:
				try
				{
					var result = eval("(" + xmlhttp.responseText + ")");
					var elmLast = document.getElementById(ALastId);
					var elmNet = document.getElementById(ANetId);
					var elmPerc = document.getElementById(APercId);
					var elmTrades = document.getElementById(ATradesId);
					if (elmLast && elmNet && elmPerc && elmTrades)
					{
						elmLast.innerHTML = formatFloat(result.L, 2);
						elmNet.innerHTML = formatFloat(result.C, 2);
						elmPerc.innerHTML = formatFloat(result.P, 2) + ' %';
						elmTrades.innerHTML = CommaFormatted(result.V, 0);
						if (result.P > 0)
						{
							elmLast.style.color = "#245c05";
							elmNet.style.color = "#245c05";
							elmPerc.style.color = "#245c05";
						}
						else
						{
							if (result.P < 0)
							{
								elmLast.style.color = "#cc0000";
								elmNet.style.color = "#cc0000";
								elmPerc.style.color = "#cc0000";
							}
							else
							{
								elmLast.style.color = "";
								elmNet.style.color = "";
								elmPerc.style.color = "";								
							}
						}
						
						if (!firstRun)
						{
							if (parseFloat(lastValue) > result.L)
							{
								FlashOn(ALastId, "#FDCBCB");
								FlashOn(ANetId, "#FDCBCB");
								FlashOn(APercId, "#FDCBCB");
							}
							else
							{
								if (parseFloat(lastValue) < result.L)
								{
									FlashOn(ALastId, "#b9e1a9");
									FlashOn(ANetId, "#b9e1a9");
									FlashOn(APercId, "#b9e1a9");
								}
								else
								{
									FlashOn(ALastId, "#F9E2A8");
									FlashOn(ANetId, "#F9E2A8");
									FlashOn(APercId, "#F9E2A8");
								}
							}
						}
						lastValue = result.L; 
						lastTrades = result.Tr;
					}
					callInProgress = false;
					firstRun = false;
				}
				catch(e)
				{
					//Error
				}
				callInProgress = false;
				firstRun = false;
			break;
			case 2:
				try
				{
					if (xmlhttp.status != 200 )
					{
						xmlhttp.abort();
						callInProgress = false;
						firstRun = false;
					}
				}
				catch (e)
				{
					//Error
				}
			break;
		}
	}
	
	flashOffss = function(elmId)
	{
		var elm = document.getElementById(elmId);
		elm.style.backgroundColor = "";
	}
	this.flashOffss = flashOffss;
	FlashOn = function (elmId, color)
	{
		var elm = document.getElementById(elmId);
		elm.style.backgroundColor = color;
		var _self = this;
		setTimeout(function(){_self.flashOffss(elmId);}, 2000)
	}
	this.FlashOn = FlashOn;
}
