var timeObj = new Object();
var rateObj = new Object();

//Load XML
//loadXML("/xml_rates/dir_tc.xml");

/*function genObj(x)
{
	setObj(x);
	
	genRateTime();
	genRateTable("rateTable", nameObj);
}*/

//Set XML Object
function setObj(x)
{
	//Set Date
	var date = x.responseXML.getElementsByTagName("date")[0].childNodes;
	timeObj = new Object();
	
	for (var i=0; i<date.length; i++)
	{
		if (!isIE && date[i] == "[object Text]")	continue;
		timeObj[date[i].nodeName] = date[i].firstChild.data;
	}
	
	//Set Currency Row
	var rows = x.responseXML.getElementsByTagName("row");
	var count = 0;
	var oldId;
	rateObj = new Object();
	
	for (var i=0; i<rows.length; i++)
	{
		var row = rows.item(i).childNodes;
		var id = rows.item(i).getElementsByTagName("currency").item(0).firstChild.data;
		
		if (oldId != id || !oldId)
		{
			count = 0;
			oldId = id;
		}
		else
		{
			count ++;
		}
		
		if (!rateObj[id])	rateObj[id] = new Object();
		rateObj[id]["length"] = count + 1;
		rateObj[id][count] = new Object();
		
		for (var j=0; j<row.length; j++)
		{
			if (!isIE && row[j] == "[object Text]")	continue;
			rateObj[id][count][row[j].nodeName] = row[j].firstChild.data;
		}
	}
}

//Set Time
function genRateTime()
{
	var rateDate = d.getElementById('rateDate');
	var rateTime = d.getElementById('rateTime');
	
	rateDate.innerHTML = addZero(timeObj["day"]) + '-' + addZero(timeObj["month"]) + '-' + timeObj["year"];
	rateTime.innerHTML = timeObj["time"].substring(0, 5) + ' HKT';
}

function addZero(num)
{
	if (num < 10)	num = "0" + num;
	return	num;
}

//Set Table
function genRateTable(id, nameObj, titleName, unitArray)
{
	var table = d.getElementById(id);
	var th = table.rows[0].cells;
	var colNum =  th.length;
	var count = 0;
	
	//Remove Rows
	while (table.rows.length > 1)
	{
		table.deleteRow((table.rows.length-1));
	}
	
	
	for (var i in rateObj)
	{
			if (i == 'SWP' || i == 'SFA' || i == 'LCH') continue;
			genSingleTable(i);
	}
	
	
	function genSingleTable(i)
	{
		for (var j in rateObj[i])
		{
			if (j == 'length')
			{
				var spanNum = rateObj[i][j];
				continue;
			}
			
			var row = table.insertRow(-1);
			if (count%2 == 0)	row.className = 'bgColor';
			count ++;
			if (count >= 2)	count = 0;
			if (j == (spanNum - 1))	row.className += ' bgLine';
			var highlightTR;
			
			for (var k=0; k<th.length; k++)
			{
				var str = "-";
				var str2 = "-";
				
				if (j == 0)
				{
					var cell = row.insertCell(-1);
					if (k == 0)	cell.setAttribute('rowSpan', spanNum);
					highlightTR = row;
				}
				else
				{
					if (k == 0)	continue;
					row.highlightTR = highlightTR;
					var cell = row.insertCell(-1);
				}
				
				for (var m in rateObj[i][j])
				{
					if (m != th[k].id)	continue;
					
					var title;
					
					if (m == 'currency')
					{
						str = nameObj[rateObj[i][j][m]];
						str2 = rateObj[i][j][m];
						title = str2;
					}
					else if (m == 'unit')
					{
						str = (unitArray)	?	setUnit(rateObj[i][j][m], unitArray, j, rateObj[i], rateObj[i]['length'])	:	addComma(rateObj[i][j][m]);
					}
					else if (m == 'buy' || m == 'sell')
					{
						str = addComma(rateObj[i][j][m]);
					}
					else
					{
						str = rateObj[i][j][m];
					}
					
					if (m == titleName)		cell.className = 'title';
					if (m == 'unit')		cell.className = 'rateDepositTD2';
					if (m == 'currency')	cell.className = 'rateDepositTD';
					
					if (!row.title)	{
						row.title = title;
						if (title == 'ZAU') {
							row.title = 'AUD';
						}
						if (title == 'ZCA') {
							row.title = 'CAD';
						}
						if (title == 'ZCH') {
							row.title = 'CHF';
						}
						if (title == 'ZEU') {
							row.title = 'EUR';
						}
						if (title == 'ZGB') {
							row.title = 'GBP';
						}
						if (title == 'ZJP') {
							row.title = 'JPY';
						}
						if (title == 'ZNZ') {
							row.title = 'NZD';
						}
						if (title == 'ZDK') {
							row.title = 'DKK';
						}
						if (title == 'ZSE') {
							row.title = 'SEK';
						}
						if (title == 'ZSG') {
							row.title = 'SGD';
						}
						if (title == 'ZTH') {
							row.title = 'THB';
						}
						if (title == 'ZRM') {
							row.title = 'RMB';
						}
						if (title == 'ZUS') {
							row.title = 'USD';
						}
						if (title == 'YM1' || title == 'YM2' || title == 'YM4' || title == 'YMT') {
							row.title = '';
						}
						
					}
					
					
					
					break;
				}
				
				cell.innerHTML = str;
			}
		}
	}
}



function setUnit(unit, unitArray, i, obj, total)
{
	var str = '';
	var j = Number(i);
	
	//alert (str + '  :  ' + unitArray + '  :  ' + j + '  :  ' + obj[1]["unit"]);
	
	if (unit.indexOf('>= 0') >= 0 && j == 0)
	{
		str = unitArray[0] + ' ' + addComma(getUnit(obj[j+1]["unit"]));
	}
	else if (j == total-1)
	{
		str = addComma(getUnit(unit)) + ' ' + unitArray[2];
	}
	else
	{
		var array = getUnit(obj[j+1]["unit"]).split(',');
		var num = Number(array.join('')) - 1;
		
		str = getUnit(unit) + ' ' + unitArray[1] + ' ' + addComma(num);
	}
	
	function getUnit(str)
	{
		return str.replace('>= ', '');
	}
	
	return str;
}

function addComma(str)
{
	if (str.toString().indexOf(' ') >= 0)	return str;
	
	var ext = '';
	var array = new Array();
	str = str.toString();
	str = str.replace(/,/, '');
	
	//if (str.length > 5)	alert(str);
	
	if (str.indexOf('.') >= 0)
	{
		array = str.split('.');
		str = array[0];
		ext = '.' + array[1];
	}
	
	array = new Array();
	temp = str.length;
	
	while (temp > 0)
	{	
		array.push(str.substring((temp-3), temp));
		temp -= 3;
		
	}
	array.reverse();
	
	return array.join(',') + ext;
	
}

//change table TR TD Background
function changeTableTrBg(id)
{
	var table = d.getElementById(id);
	var tr = table.getElementsByTagName('tr');
	var btn = d.getElementById('currency');
	
	for (var j=0; j<tr.length; j++)
	{
		tr[j].onmouseover = function ()
		{
			var td = this.getElementsByTagName('td');
			
			for (var i=0; i<td.length; i++)
			{
				td[i].style.backgroundColor = "#FFD553";				
			}
			
			if (this.highlightTR)	this.highlightTR.getElementsByTagName('td')[0].style.backgroundColor = "#FFD553";
		}
		tr[j].onmouseout = function ()
		{
			var td = this.getElementsByTagName('td');
			for (var i=0; i<td.length; i++)
			{
				td[i].style.backgroundColor = "";
			}
			
			if (this.highlightTR)	this.highlightTR.getElementsByTagName('td')[0].style.backgroundColor = "";
		}
	}
}


