    
var obj1, obj2, obj3;
var free = true;
var pageSize = 1;
var waitTime = 2000;

/**/

//self.setInterval('loadData()', 500)
// Thu tu mau "Trang,Tran,San,TC,Giam,Tang"
var color = "#FFFFFF,#ff00ff,CYAN,#f7ff3b,#ff0000,#35ec00".split(',')
function loadStockInfo() 
{
    var url = "AjaxTable.aspx";
    var xRequest=null;

    if (window.XMLHttpRequest)
        xRequest = new XMLHttpRequest();
    else if (typeof ActiveXObject != "undefined")
        xRequest = new ActiveXObject("Microsoft.XMLHTTP");

    obj1 = xRequest;
    if (obj1 != null) 
    {
        obj1.onreadystatechange = refreshStockInfo;        
		obj1.open("GET",url,true);
		obj1.send(null);
    }
}

function refreshStockInfo()
{
	if (obj1.readyState == 4)
	{
		if (obj1.status == 200) 
		{
			var retval=obj1.responseText;
			if (document.getElementById("resultsData") != null)
			{
				document.getElementById("resultsData").innerHTML = retval;
			}
		}		
		//setTimeout('loadStockInfo()', 1000);
		setTimeout('loadChanges()', 15000);
	}
}

function loadChanges() 
{
    var url = "GetChanges.aspx";
    var xRequest=null;

    if (window.XMLHttpRequest)
        xRequest = new XMLHttpRequest();
    else if (typeof ActiveXObject != "undefined")
        xRequest = new ActiveXObject("Microsoft.XMLHTTP");

    obj1 = xRequest;
    if (obj1 != null) 
    {
        obj1.onreadystatechange = refreshChanges;        
		obj1.open("GET",url,true);
		obj1.send(null);
    }
}

function refreshChanges()
{
	if (obj1.readyState == 4)
	{
		if (obj1.status == 200) 
		{
			var retval=obj1.responseText;
			var changes = new Array();
			changes = retval.split('/');
			var i=0;
			//var errorNo = "";
			var d = new Date(); 
			var time = d.getTime();
			for (i=0; i<changes.length-1; i++)
			{
				try
				{
					var values = new Array();
					values = changes[i].split('|');
					var currentCell = document.getElementById(values[0]);
					if(values[1]=='9999')
					{
						currentCell.innerHTML = ' ';
					}
					else
					{
						currentCell.innerHTML = values[1];
					}
					if (values[0] != "MKTIM")
					{
						currentCell.style.backgroundColor = "#525152";
						setTimeout("resetColor('" + values[0] + "')", 1000);
					}
					currentCell.style.color = color[values[2]];					
				}
				catch (err)
				{
					//errorNo += "\n" + changes[i];
				}
			}
			//if (changes.length>5)
			//var d2 = new Date();
				//	alert(d2.getTime() - time);
			//if (errorNo != "")
				//alert(errorNo);
		}		
		setTimeout('loadChanges()', 15000);
	}
}

function resetColor(cellID)
{
	if ((cellID.substring(3) == 'KG') || (cellID.substring(3) == 'KK') || (cellID.substring(3) == "KC") || (cellID.substring(3) == "CN") || (cellID.substring(3) == "TN") || (cellID.substring(3) == "TM") || (cellID.substring(3) == "TB") || (cellID.substring(3) == "FM") || (cellID.substring(3) == "FB"))
		document.getElementById(cellID).style.backgroundColor = "#2d2d2d";
	else
		document.getElementById(cellID).style.backgroundColor = "#000000";
}
function loadMarketInfo() 
{
    var url = "AjaxMarketInfo.aspx";
    var xRequest=null;

    if (window.XMLHttpRequest)
        xRequest = new XMLHttpRequest();
    else if (typeof ActiveXObject != "undefined")
        xRequest = new ActiveXObject("Microsoft.XMLHTTP");

    obj2 = xRequest;
    if (obj2 != null) 
    {
        obj2.onreadystatechange = refreshMarketInfo;        
		obj2.open("GET",url,true);
		obj2.send(null);
    }
}

function refreshMarketInfo()
{
	if (obj2.readyState == 4)
	{
		if (obj2.status == 200) 
		{
			var retval=obj2.responseText;
			if (document.getElementById("marketInfo") != null)
			{
				document.getElementById("marketInfo").innerHTML = retval;
			}			
		}
		setTimeout('loadMarketInfo()', 15000);
	}
}

function loadChart() 
{
    var url = "IndexChart.aspx";
    var xRequest=null;

    if (window.XMLHttpRequest)
        xRequest = new XMLHttpRequest();
    else if (typeof ActiveXObject != "undefined")
        xRequest = new ActiveXObject("Microsoft.XMLHTTP");

    obj3 = xRequest;
    if (obj3 != null) 
    {
        obj3.onreadystatechange = refreshChart;
		obj3.open("GET",url,true);
		obj3.send(null);
    }
}

function refreshChart()
{
	if (obj3.readyState == 4)
		if (obj3.status == 200) 
		{
			var retval=obj3.responseText;
			if (document.getElementById("chart") != null)
			{
				document.getElementById("chart").innerHTML = retval;
				setTimeout('loadChart()', 15000);					
			}
			else
				alert("Error retrieving datalll!");
		}
}

function updateChart()
{
	var d = new Date();
	var curr_time = d.getDate() + d.getHours()*3600 + d.getMinutes()*60 + d.getSeconds();
	
	document.getElementById("chart").src = "IndexChartVer2.asp?" + curr_time;
	setTimeout('updateChart()',30000);
}

function move(i, j)
{
	var table = document.getElementById('tblStock')
	var trs = table.getElementsByTagName("tr");
	table.tBodies[0].insertBefore(trs[i], trs[j]);		
}
			
function addCookie(value,obj)
{
    var c = new CookieHandler();
    var current = getCookie("HASTC_BOARD_NY"); 
    if (!current) 
	{
		c.setCookie("HASTC_BOARD_NY", "|" + value)
		move(obj.parentNode.parentNode.rowIndex, getPos(value,true)+1);
	}
	
    else 
    {
		if (obj.checked)
		{
			c.setCookie("HASTC_BOARD_NY", current + "|" + value, 60*60*24*7);
			move(obj.parentNode.parentNode.rowIndex, getPos(value,true)+1);
		}
		else 
		{
			var newCookie = current.replace("|" + value, "");
			while (newCookie != current)
			{
				current = newCookie; 
				newCookie = current.replace("|" + value, "");
			}
			c.setCookie("HASTC_BOARD_NY", newCookie, 60*60*24*7);
			move(obj.parentNode.parentNode.rowIndex, getPos(value,false)+2);
		}
    }
}

function getPos(code,checked)
{
	var chks = document.getElementsByTagName("input")
	var i
	var pos = 0
	if (checked==true)
		for (i=0; i<chks.length; i++)
		{
			if (chks[i].id != code && (chks[i].checked==true && chks[i].id < code))
				pos++;
		}
	else
		for (i=0; i<chks.length; i++)
		{
			if (chks[i].id != code && (chks[i].checked==true || chks[i].id < code))
				pos++;
		}
	return parseInt(pos);
}

function CookieHandler() {
 
	this.setCookie = function (name, value, seconds) {
 
		if (typeof(seconds) != 'undefined') {
			var date = new Date();
			date.setTime(date.getTime() + (seconds*1000));
			var expires = "; expires=" + date.toGMTString();
		}
		else {
			var expires = "";
		}
 
		document.cookie = name+"="+value+expires+"; path=/";
	}
    
    this.GetCookieVal = function (name) {
        var nameEQ = name + "=";
        var ca = document.cookie.split(';');
        for(var i=0;i < ca.length;i++) {
	        var c = ca[i];
	        while (c.charAt(0)==' ') c = c.substring(1,c.length);
	        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
        }
        return null;
    }
 
	this.deleteCookie = function (name) {
		this.setCookie(name, "", -1);
	}
}

function getCookie(name) { 

var ckTemp = document.cookie;
 var index = ckTemp.indexOf(name + "=");
 if(index == -1) return null;
  index = ckTemp.indexOf("=", index) + 1;
 var endstr = ckTemp.indexOf(";", index);
 if (endstr == -1) endstr = ckTemp.length;
 return unescape(ckTemp.substring(index, endstr));
 }


function scroll()
{
	var c = new CookieHandler();
    var current = getCookie("HASTC_BOARD_NY"); 
    var pos = 0;
    if (current)
    {
		var msgs = current.split('|');
		pos = msgs.length;
    }
 
	var table = document.getElementById('tblStock')   
    var trs = table.getElementsByTagName("tr");
    var i; 
    for (i=0; i<pageSize; i++)
		table.tBodies[0].insertBefore(trs[pos+i], trs[trs.length-1]);
    
    setTimeout('scroll()', waitTime);
}
