var WHITE = new Color(255, 255, 255);
var GREY = new Color(246, 242, 238);

function display(contractsArray)
{
	addContractsToTable("marketDataTable",contractsArray);	
}

//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++)
		{
			var row = document.getElementById("conID" + contracts[i].id);
			if(row == null)
			{
				if(table.rows.length <= 6)
				{
				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= "/aav2/trading/tradingHTML.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");
}
