// Table.js 

cLastRow = true;
cDoubleInput = true;
cCenter = true;
cInput = 0;
cCheckbox = 1;
cPercent = 2;
cButton = 3;
cLabel = 4;
cSelect = 5;

function createTable(document, width, headerColor, inputColor)
{
	this.mTable = document.createElement("TABLE");

	this.mWidth = width;
	this.mInputWidth = width-95;
	this.mFormWidth = width-65;
	this.mHeaderColor = headerColor;
	this.mInputColor = inputColor;
	this.mSelections = new Array();
	this.mSelections2 = new Array();
	
	//methods
	this.mAddImage = addImage;
	this.mAddHeader = addHeader;
	this.mAddRow = addRow;
	this.mEndTable = endTable;
	this.mAddLine = addLine;
	this.mMakeInput = makeInput;
	this.mAddResultRows = addResultRows;
	this.mAddSelect = addSelect;
	this.mAddSelect2 = addSelect2;
	this.mAddText = addText;
	
	this.mTable.border = 0;
	this.mTable.width = this.mWidth;
	this.mTable.cellpadding = 0;
	this.mTable.cellspacing = 0;
	this.mTableClassName = "CalculatorResultsTable";
	
	return true;
}

function addText(text)
{
	var tr = document.createElement("tr");
	this.mTable.appendChild(tr);
	
	var td = document.createElement("td");
	td.width = '100%';
	td.align = 'LEFT';
	td.innerText = text;
	tr.appendChild(td);
}

function addImage(name, height)
{
	var tr = document.createElement("tr");
	this.mTable.appendChild(tr);
	
	var td = document.createElement("td");
	td.width = '100%';
	td.align = 'LEFT';
	td.align = 'TOP';
	tr.appendChild(td);
	
	var img = document.createElement("img");
	img.width = this.mFormWidth;
	img.height = height;
	img.src = name;
	td.appendChild(img);

	return true;
}

function addHeader(text, Col1, Col2)
{
	var tr = document.createElement("tr");
	tr.className = "CalculatorSubBanner";
	this.mTable.appendChild(tr);
	
	var td = document.createElement("td");
	td.width = "100%";
	td.align = "CENTER";
	td.style.borderStyle = "none";
	
	tr.appendChild(td);
	
	var t = document.createElement("TABLE");
	t.border = 0;
	t.width = "100%";
	t.cellpadding = 0;
	t.cellspacing = 0;
	td.appendChild(t);
	
	var trHeader = document.createElement("tr");
	trHeader.className = 'CalculatorReportHeader';
	t.appendChild(trHeader);
	
	if (Col1 == "" && Col2 == "")
	{
		var td1 = document.createElement("td");
		td1.width = '100%';
		td1.align = 'CENTER';
		td1.innerText = text;
		trHeader.appendChild(td1);
	}
	else
	{	
		var td1 = document.createElement("td");
		td1.width = '50%';
		td1.align = 'CENTER';
		td1.innerText = text;
		trHeader.appendChild(td1);
		
		if (Col1 != "")
		{
			var td3 = document.createElement("td");
			td3.width = '50%';
			td3.align = 'CENTER';
			td3.innerText = Col1;
			trHeader.appendChild(td3);
		}
		
		if (Col2 != "")
		{
			var td4 = document.createElement("td");
			td4.width = '50%';
			td4.align = 'CENTER';
			td4.innerText = Col2;
			trHeader.appendChild(td4);
		}
	}	
	return true;		
}

function addLine(doubleInput)
{
	var tr = document.createElement("tr");
	this.mTable.appendChild(tr);
	
	var td = document.createElement("td");
	td.width = '100%';
	td.align = 'CENTER';
	td.innerHTML = "<hr>";
	tr.appendChild(td);
	
	return true;
}	

function addRow(type, text, name, doubleInput, lastRow)
{ 
	var center = true;
	if (addRow.arguments.length > 5) 
	{
		center = addRow.arguments[5];
	}
	
	var textAlign = "LEFT";
	
	if (addRow.arguments.length > 6) 
	{
		textAlign = "" + addRow.arguments[6] + "";
	}
	
	var tr = document.createElement("tr");
	this.mTable.appendChild(tr);
	
	var td = document.createElement("td");
	td.width = '100%';
	td.align = 'CENTER';
	td.style.borderStyle = "none";
	tr.appendChild(td);
	
	var t = document.createElement("TABLE");
	t.border = 0;
	t.width = "100%";
	t.cellpadding = 0;
	t.cellspacing = 0;
	td.appendChild(t);
	
	var trRow = document.createElement("tr");
	trRow.className = "CalculatorReportRow";
	t.appendChild(trRow);
	
	if (type != cButton)
	{
		var td1 = document.createElement("td");
		td1.width = '50%';
		td1.align = textAlign;
		td1.vAlign = "top";
		td1.innerHTML = text;
		td1.style.padding = "5px";
		trRow.appendChild(td1);
	}
	
	if (doubleInput)
	{
		var td1 = document.createElement("td");
		td1.width = "25%";
		td1.align = "center";
		td1.vAlign = "top";
		td1.style.padding = "5px";
		td1.innerHTML = this.mMakeInput(type, name, 1);
		trRow.appendChild(td1);
		
		var td2 = document.createElement("td");
		td2.width = "25%";
		td2.align = "center";
		td1.vAlign = "top";
		td1.style.padding = "5px";
		td2.innerHTML = this.mMakeInput(type, name, 2);
		trRow.appendChild(td2);
	}
	else
	{
		if (center)
		{
			var td1 = document.createElement("td");
			td1.width = "50%";
			td1.align = "center";
			td1.vAlign = "top";
			td1.style.padding = "5px";
			td1.innerHTML = this.mMakeInput(type, name, 0);
			trRow.appendChild(td1);
		} 
		else
		{
			var td1 = document.createElement("td");
			td1.width = "50%";
			td1.align = "center";
			td1.vAlign = "top";
			td1.style.padding = "5px";
			td1.innerHTML = this.mMakeInput(type,name,0);
			trRow.appendChild(td1);
			
			var td2 = document.createElement("td");
			td2.width = "50%";
			td2.align = "center";
			td1.vAlign = "top";
			td1.style.padding = "5px";
			td2.innerHTML = "";
			trRow.appendChild(td2);
		}	 	
	}
	return true;
}

function strip_(name)
{
	var s = new String("");
	for (var j = 0; j < name.length; j++)
	{
		if (name.charAt(j) == "_")
		{
			s = s + " ";
		}
		else
		{
			s = s + name.charAt(j);
		}
	}
	return s;
}

function makeInput(type, name, col)
{
	var html = "";
	if (col != 0 && type != cLabel) 
	{
		name = name + col;
	}

	if (type == cSelect)
	{
	   var select = (col == 2) ? this.mSelections2 : this.mSelections;
	   html = html + "<SELECT NAME='" + name + "'>";
	   	for (var j=0; j<select.length; j++)
		{
	   	 	html = html + "<OPTION VALUE='" + j + "'>" + select[j] + "</OPTION>";	   	 	
	   	}
	   	html = html + "</SELECT>";
	}
	
	if (type == cInput)
	{
	   	html = "<INPUT NAME='" + name + "' SIZE='12' TYPE='TEXT'>";
	}
	
	if (type == cCheckbox)
	{
		html = "<INPUT NAME='" + name + "' TYPE='CHECKBOX' onclick='" + name + "_onclick()'>";
	}
	   
	if (type == cPercent)
	{
		html = "<INPUT class='pct' NAME='"+name+"' SIZE='6' TYPE='TEXT'>%</TD>";
	}
	
	if (type == cButton)
	{
		html = "<INPUT CLASS='calcbutton' NAME='" + name + "' VALUE='" + strip_(name) + "' TYPE='BUTTON' onclick='" + name + "_onclick()'></TD>";
	}
	
	if (type == cLabel && col == 0)
	{
	   	html = name;
	}
	
	if (type == cLabel && col!=0)
	{
	   	var s = "";
		var pos = name.indexOf("|");
		if (pos >= 0)
		{
			if (col==1)
			{
				s = name.substr(0,pos);
			}
			else
			{
				s = name.substr(pos + 1, 999);
			}
			html = s;
		}
	}
	return html;
}


function addResultRows(headerRows, rows, cols, values)
{
	var tr = document.createElement("tr");
	this.mTable.appendChild(tr);
	
	var td = document.createElement("td");
	td.width = '100%';
	td.align = 'CENTER';
	td.style.borderStyle = "none";
	tr.appendChild(td);
	
	var t = document.createElement("TABLE");
	t.border = 0;
	t.width = "100%";
	t.cellpadding = 0;
	t.cellspacing = 0;
	td.appendChild(t);

	var index = 0;
	for (var j = 0; j<rows; j++)
	{
		tr = document.createElement("tr");
		for (var k = 0; k<cols; k++)
		{
			td = document.createElement("td");
			
			if (j > headerRows-1) {
				td.align="CENTER";
				td.innerHTML = values[index++];
			} else {				 
				td.align="CENTER";
				td.innerHTML = "<b>" + values[index++] + "</b>";
			}
			tr.appendChild(td);
		}		
		t.appendChild(tr);	
	}
		
	return true;		
}

function endTable(footnote)
{
	var tr = document.createElement("tr");
	this.mTable.appendChild(tr);
	
	var td = document.createElement("td");
	td.width = '100%';
	td.align = 'CENTER';
	td.innerHTML = footnote + "<br>";
	tr.appendChild(td);
	return true;
}

function addSelect()
{
	this.mSelections.length = addSelect.arguments.length;
	for (var j=0; j < this.mSelections.length; j++)
	{
		this.mSelections[j] = addSelect.arguments[j];
	}
	return true;
}

function addSelect2()
{
	this.mSelections2.length = addSelect2.arguments.length;
	for (var j=0; j < this.mSelections2.length; j++)
	{
		this.mSelections2[j] = addSelect2.arguments[j];
	}
	return true;
}

