var table;
var offset=4;
var totalUGXId = "ugxTotal";
var totalUGXIdHidden = "ugxTotalHidden";
var totalGBPId = "gbpTotal";
var is_ie=false;
var p_lastCount;

if (document.all) {
	is_ie=true;
} 

function insertSpreadsheetRows(number, tableId, lastRowId) {
	table = document.getElementById(tableId);
	var tableRowCount = table.rows.length;
	var lastCount = tableRowCount-offset;

	var lastRow = document.getElementById(lastRowId);
	var rowArray = new Array();
	
	for (var i=0; i<number; i++) {
		p_lastCount=lastCount;
		
		rowArray[i] = document.createElement('tr');
		rowArray[i].setAttribute("id", "row"+lastCount);
	
		var cell1 = document.createElement('td');
	
		var input1 = document.createElement('input');
		input1.setAttribute("id", "row"+lastCount+"input"+1);
		input1.setAttribute("name", "item_row"+lastCount);
		input1.setAttribute("type", "text");
		input1.className="medium-large table-cell";
	
		var cell2 = document.createElement('td');
	
		var input2 = document.createElement('input');
		input2.setAttribute("id", "row"+lastCount+"input"+2);
		input2.setAttribute("name", "unitCost_row"+lastCount);
		input2.setAttribute("type", "text");
		if (!is_ie) {
			input2.setAttribute("onkeyup", "totalRow('"+lastCount+"');");
		}else {
			input2.onkeyup=function(){totalAllRows()};
		}
		input2.className="small-medium table-cell";
	
		var cell3 = document.createElement('td');
	
		var input3 = document.createElement('input');
		input3.setAttribute("id", "row"+lastCount+"input"+3);
		input3.setAttribute("name", "quantity_row"+lastCount);
		input3.setAttribute("type", "text");
		input3.setAttribute("value", "1");
		if (!is_ie) {
			input3.setAttribute("onkeyup", "totalRow('"+lastCount+"');");
		}else {
			input3.onkeyup=function(){totalAllRows()};
		}
		input3.className="tsmall table-cell";
	
		var cell4 = document.createElement('td');
	
		var input4 = document.createElement('input');
		input4.setAttribute("id", "row"+lastCount+"input"+4);
		input4.setAttribute("type", "text");
		input4.className="small-medium table-cell";
		input4.setAttribute("disabled", "disabled");
		
		var input5 = document.createElement('input');
		input5.setAttribute('type', 'hidden');
		input5.setAttribute("id", "row"+lastCount+"input"+5);
		input5.setAttribute('name', "total_row"+lastCount);
		
		cell1.appendChild(input1);
		cell2.appendChild(input2);
		cell3.appendChild(input3);
		cell4.appendChild(input4);
		cell4.appendChild(input5);
	
		rowArray[i].appendChild(cell1);
		rowArray[i].appendChild(cell2);
		rowArray[i].appendChild(cell3);
		rowArray[i].appendChild(cell4);
		
		lastRow.parentNode.insertBefore(rowArray[i], lastRow);
		lastCount++;
	}
}


function updateSpreadsheetRows(tableDataArray) {
	var rows = table.rows;
	
	for (var i=0; i<tableDataArray.length; i++) {
		var itemId = "row"+(i+1)+"input1";
		var unitId = "row"+(i+1)+"input2";
		var quantityId = "row"+(i+1)+"input3";
		
		var itemVal = tableDataArray[i][0];
		var unitVal = tableDataArray[i][1];
		var quantityVal = tableDataArray[i][2];
		
		document.getElementById(itemId).value=itemVal;
		document.getElementById(unitId).value=unitVal;
		document.getElementById(quantityId).value=quantityVal;
		
		totalRow(i+1);
	}
}


function totalAllRows() {
	var rows = table.getElementsByTagName("tr");
	for (var i=0; i<rows.length; i++) {
		totalRow((i*1)+1);
	}
}


function totalRow(currentRow) {
	var totalInputId = "row"+currentRow+"input4";
	var actualTotalInputId = "row"+currentRow+"input5";
	var unitInputId = "row"+currentRow+"input2";
	var qtyInputId = "row"+currentRow+"input3";
	
	try {
		var totalInput = document.getElementById(totalInputId);
		var actualTotalInput = document.getElementById(actualTotalInputId);
		var unitInputValue = document.getElementById(unitInputId).value;
		var qtyInputValue = document.getElementById(qtyInputId).value;
	
		if (isNumeric(unitInputValue=unitInputValue.replace(/,/g, "")) && isNumeric(qtyInputValue=qtyInputValue.replace(/,/g, ""))) {
			var totalValue = unitInputValue*qtyInputValue;
		
			actualTotalInput.value = totalValue;
			totalInput.value=formatCurrency(totalValue, "UGX");
		}else {
			alert("The value you have entered is not a numeric value.");
		}
	}catch (err) {
		//Might do something sometime.
	}
	
	totalCol();
}


function totalCol() {
	var exchangeRate = document.getElementById('exchangeRateId').value;

	var totalUGX=0;
	var totalGBP=0;
	
	var tableRows = table.rows;
	
	for (var i=1; i<tableRows.length-offset; i++) {
		var elemId = "row"+(i)+"input5";
		totalUGX = (totalUGX*1) + (document.getElementById(elemId).value*1);
	}
	
	exchangeRate=exchangeRate.replace(/,/g, "");
	totalGBP=formatCurrency(totalUGX/exchangeRate, "GBP");
	
	document.getElementById(totalUGXId).value=formatCurrency(totalUGX, "UGX");
	document.getElementById(totalUGXIdHidden).value=totalUGX;
	document.getElementById(totalGBPId).value=totalGBP;
}

function isNumeric(sText) {
	var ValidChars = "0123456789.";
	var IsNumber=true;
	var Char;

	for (i = 0; i < sText.length && IsNumber == true; i++) { 
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) {
			IsNumber = false;
		}
	}
	return IsNumber;
	
}


function formatCurrency(strValue, currency) {
	strValue = strValue.toString().replace(/\$|\,/g,'');
	dblValue = parseFloat(strValue);

	blnSign = (dblValue == (dblValue = Math.abs(dblValue)));
	dblValue = Math.floor(dblValue*100+0.50000000001);
	intCents = dblValue%100;
	strCents = intCents.toString();
	dblValue = Math.floor(dblValue/100).toString();
	if(intCents<10)
		strCents = "0" + strCents;
	for (var i = 0; i < Math.floor((dblValue.length-(1+i))/3); i++)
		dblValue = dblValue.substring(0,dblValue.length-(4*i+3))+','+
		dblValue.substring(dblValue.length-(4*i+3));
	return (((blnSign)?'':'-') + dblValue + '.' + strCents + ' ' + currency);
}



function showHideInput(show, showID) {
	var showMe = document.getElementById(showID).style;
	
	if (show) {
		showMe.display="";
	}else {
		showMe.display="none";
	}

}

function toggleShowElement(objID) {
	var elemStyle=document.getElementById(objID).style;
	var disp=elemStyle.display;
	
	if (disp=="none") {
		elemStyle.display="";
	}else {
		elemStyle.display="none";
	}
}


function enableOtherBox(selectId, boxId) {
	var currentSelection = document.getElementById(selectId).value;
	if (currentSelection == "Other") {
		document.getElementById(boxId).style.display = "";
	}else {
		document.getElementById(boxId).style.display = "none";
	}
}

function currencyPopup(URL) {
	day = new Date();
	id = day.getTime();
	eval("page" + id + " = window.open(URL, '" + id + "', 				'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=600,height=200');");
}


