var WHITE = new Color(255, 255, 255);
var GREY = new Color(239,243,247);

var refreshParams = "";
function init()
{	
	if(!inited)
	{
		inited = true;	
		debug("homepage Init");
		refreshParams = "&numActive=16&depth=1";
		refreshPrice(7000);
	}
}

function display(contractsArray)
{
	addContractsToTable("marketDataTable",contractsArray);	
	setTotalOrders(totalOrders);
}

function setTotalOrders(totalOrders)
{
	var maxOrderID = document.getElementById("maxOrderID");
	var text = document.createTextNode(addCommas(totalOrders));
	
	if(maxOrderID.childNodes.length > 0)
	{
		maxOrderID.removeChild(maxOrderID.childNodes[0]);
	}
	maxOrderID.appendChild(text);
}

function addCommas(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}
//This variable controls access to modify the table
var semaphore = true;
function addContractsToTable(id, contracts)
{
	//Access control is required because there is
	//some conditions where internet explorer can crash 
	//I suspect this occours because of simultaneous
	//access to the table. 
	if(semaphore)
	{
		semaphore = false;
		var table = document.getElementById(id);
		var tableBody = table.getElementsByTagName("tbody")[0];

		
		
		for(var i = 0; i < contracts.length; i++)
		{
debug("hex");
			var row = document.getElementById("conID" + contracts[i].id);
			if(row == null)
			{
				if(table.rows.length <= 10)
				{
				row = document.createElement("tr");

				row.id = "conID" + contracts[i].id;
				if(i % 2 == 0)
				{
					row.className = "evenRow";
				}
			
				var contractSymbol = createElementWithText("a", contracts[i].symbol);
				contractSymbol.href= "/jsp/intrade/trading/t_index.jsp?selConID=" + contracts[i].id;
        contractSymbol.target = "_top"; 
				var title = contracts[i].eventClassName + "\n" + contracts[i].eventGroupName + "\n" + contracts[i].eventName + "\n" + contracts[i].name;

				contractSymbol.setAttribute("title", title);
				contractSymbol.setAttribute("contractName", contracts[i].name);

				
//				addEventLstnr(contractSymbol, "click", contractInfo);
				contractSymbol.className = "contractSymbol";
				
				var symbol = document.createElement("td");
				symbol.appendChild(contractSymbol);
				
				symbol.className = "symbol";
				row.appendChild(symbol);

			
				var bid = createElementWithText("td", contracts[i].bid);
				bid.align = "right";
				bid.id = "bid" + contracts[i].id;
				bid.className = "bidCell";
//				addEventLstnr(bid, "click", setOrderPrice);
//				addEventLstnr(bid, "click",setTradingContract);
				row.appendChild(bid);
				var ask = createElementWithText("td",contracts[i].ask);
				ask.id = "ask"  + contracts[i].id;
				ask.className = "askCell";
//				addEventLstnr(ask, "click", setOrderPrice);
//				addEventLstnr(ask, "click", setTradingContract);
				row.appendChild(ask);
				

				tableBody.appendChild(row);
				}
			}
			else
			{

				var cells = row.getElementsByTagName("td");
				var symbolCell = cells[0];
				var bidCell = cells[1];
				var askCell = cells[2];


				var targetColor = WHITE;
				debug("kio");

				var rowIndex = getRowNumber(row);
				
				if(rowIndex % 2 == 1)
				{
					targetColor = GREY;
				}
				if(contracts[i].id == selConID)
				{
					targetColor = YELLOW;
				}

				
				if(Number(bidCell.innerHTML) && bidCell.innerHTML < contracts[i].bid)
				{
					var element = document.getElementById("bid"+contracts[i].id);
					fader.addFadee(element, GREEN, targetColor, 2000);
				}
				else if(Number(bidCell.innerHTML) && bidCell.innerHTML > contracts[i].bid)
				{
					var element = document.getElementById("bid"+contracts[i].id);
					fader.addFadee(element, RED, targetColor, 2000);
				}

				bidCell.innerHTML = contracts[i].bid;
				
				if(Number(askCell.innerHTML) && askCell.innerHTML < contracts[i].ask)
				{
					var element = document.getElementById("ask"+contracts[i].id);
					fader.addFadee(element, GREEN, targetColor, 2000);
				}
				else if(Number(askCell.innerHTML) && askCell.innerHTML > contracts[i].ask)
				{
					var element = document.getElementById("ask"+contracts[i].id);
					fader.addFadee(element,RED,targetColor, 2000);
				}
				askCell.innerHTML = contracts[i].ask;
			}
		}

		table.appendChild(tableBody);
		semaphore = true;
	}
}
function getRowNumber(row)
{
debug("hullo");
	var table = row.parentNode.parentNode;
	for(var i = 0; i < table.rows.length; i++)
	{
		if(row == table.rows[i])
		{
			return i;
		}
	}
	return -1;
}
function contractInfo()
{
	debug("contract");
}
