function UpdateUpDownEqualStocks(graphId, upId, upPercId, downId, downPercId, equalId, equalPercId, upContainerId, downContainerId, equalContainerId)
{
	var idUpContainer = upContainerId;
	var idDownContainer = downContainerId;
	var idEqualContainer = equalContainerId;
	var elmGraph = document.getElementById(graphId);
	var elmUpValue = document.getElementById(upId);
	var elmUpPerc = document.getElementById(upPercId);
	var elmDownValue = document.getElementById(downId);
	var elmDownPerc = document.getElementById(downPercId);
	var elmEqualValue = document.getElementById(equalId);
	var elmEqualPerc = document.getElementById(equalPercId);
	var callInProgress;
	
	var xmlhttp=undefined;
	
	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/UpDownEqualStocks.ashx?mode=3&a=" + Math.round(Math.random() * 999999999999)
			xmlhttp.open("GET", url,true);
			xmlhttp.onreadystatechange = onReadyStateHandler;
			xmlhttp.send(null);
		}
		catch (e)
		{
			//Error initializing xmlhttp object
		}
	}
	this.Execute = execute;
	
	function onReadyStateHandler()
	{
		switch (xmlhttp.readyState)
		{
			case 4:
				try
				{
					var result = eval("(" + xmlhttp.responseText + ")");
					var winners = result.Winners;
					var loosers = result.Loosers;
					var equal = result.Equal;
					var total = winners + loosers + equal;
					elmGraph.src = unescape(result.GraphPath);
					elmUpValue.innerHTML = winners;
					elmDownValue.innerHTML = loosers;
					elmEqualValue.innerHTML = equal;
					elmUpPerc.innerHTML =  Math.round((winners / total) * 100);
					elmDownPerc.innerHTML = Math.round((loosers / total) * 100);
					elmEqualPerc.innerHTML = Math.round((equal / total) * 100);
					FlashOn(upContainerId);
					FlashOn(downContainerId);
					FlashOn(equalContainerId);
				}
				catch(e)
				{
					//Error
				}
				callInProgress = false;
			break;
			case 2:
				try
				{
					if (xmlhttp.status != 200 )
					{
						xmlhttp.abort();
						callInProgress = false;
					}
				}
				catch (e)
				{
					//Error
				}
			break;
		}
	}

	flashOffUds = function(elmId)
	{
		var elm = document.getElementById(elmId);
		elm.style.backgroundColor = "";
	}
	this.flashOffUds = flashOffUds;
	function FlashOn(elmId)
	{
		var elm = document.getElementById(elmId);
		elm.style.backgroundColor = "#F9E2A8";
		var _self = this;
		setTimeout(function(){_self.flashOffUds(elmId);}, 2000)
	}
}
