window.onload = initForm;
window.onunload = function() {};

// create 15x4 two dimensional array
var stoneRates = new Array(15);
for ( var i=0; i < stoneRates.length; i++ ) {
  stoneRates[i] = new Array(6);
}
// fill the elements
stoneRates[0][0] ="COBBLEFIELD";
stoneRates[0][1] = 17.00;
stoneRates[0][2] = 16.50;
stoneRates[0][3] = 16.00;
stoneRates[0][4] = 15.50;
stoneRates[0][5] = 15.00;
stoneRates[0][6] = 14.50;
stoneRates[1][0] ="CORAL_STONE";
stoneRates[1][1] = 17.00;
stoneRates[1][2] = 16.50;
stoneRates[1][3] = 16.00;
stoneRates[1][4] = 15.50;
stoneRates[1][5] = 15.00;
stoneRates[1][6] = 14.50;
stoneRates[2][0] ="COUNTRY_LEDGESTONE";
stoneRates[2][1] = 18.00;
stoneRates[2][2] = 17.50;
stoneRates[2][3] = 17.00;
stoneRates[2][4] = 16.50;
stoneRates[2][5] = 16.00;
stoneRates[2][6] = 15.50;
stoneRates[3][0] ="DRESSED_FIELDSTONE";
stoneRates[3][1] = 16.00;
stoneRates[3][2] = 15.50;
stoneRates[3][3] = 15.00;
stoneRates[3][4] = 14.50;
stoneRates[3][5] = 14.00;
stoneRates[3][6] = 13.50;
stoneRates[4][0] ="DRYSTACK_LEDGESTONE";
stoneRates[4][1] = 18.00;
stoneRates[4][2] = 17.50;
stoneRates[4][3] = 17.00;
stoneRates[4][4] = 16.50;
stoneRates[4][5] = 16.00;
stoneRates[4][6] = 15.50;
stoneRates[5][0] ="EUROPEAN_CASTLE_STONE";
stoneRates[5][1] = 17.00;
stoneRates[5][2] = 16.50;
stoneRates[5][3] = 16.00;
stoneRates[5][4] = 15.50;
stoneRates[5][5] = 15.00;
stoneRates[5][6] = 14.50;
stoneRates[6][0] ="FIELDSTONE";
stoneRates[6][1] = 16.00;
stoneRates[6][2] = 15.50;
stoneRates[6][3] = 15.00;
stoneRates[6][4] = 14.50;
stoneRates[6][5] = 14.00;
stoneRates[6][6] = 13.50;
stoneRates[7][0] ="LIMESTONE";
stoneRates[7][1] = 17.00;
stoneRates[7][2] = 16.50;
stoneRates[7][3] = 16.00;
stoneRates[7][4] = 15.50;
stoneRates[7][5] = 15.00;
stoneRates[7][6] = 14.50;
stoneRates[8][0] ="OLD_COUNTRY_FIELDSTONE";
stoneRates[8][1] = 16.00;
stoneRates[8][2] = 15.50;
stoneRates[8][3] = 15.00;
stoneRates[8][4] = 14.50;
stoneRates[8][5] = 14.00;
stoneRates[8][6] = 13.50;
stoneRates[9][0] ="RIVER_ROCK";
stoneRates[9][1] = 16.00;
stoneRates[9][2] = 15.50;
stoneRates[9][3] = 15.00;
stoneRates[9][4] = 14.50;
stoneRates[9][5] = 14.00;
stoneRates[9][6] = 13.50;
stoneRates[10][0] ="ROCKFACE";
stoneRates[10][1] = 17.00;
stoneRates[10][2] = 16.50;
stoneRates[10][3] = 16.00;
stoneRates[10][4] = 15.50;
stoneRates[10][5] = 15.00;
stoneRates[10][6] = 14.50;
stoneRates[11][0] ="SOUTHERN_LEDGESTONE";
stoneRates[11][1] = 18.00;
stoneRates[11][2] = 17.50;
stoneRates[11][3] = 17.00;
stoneRates[11][4] = 16.50;
stoneRates[11][5] = 16.00;
stoneRates[11][6] = 15.50;
stoneRates[12][0] ="SPLIT_FACE";
stoneRates[12][1] = 16.00;
stoneRates[12][2] = 15.50;
stoneRates[12][3] = 15.00;
stoneRates[12][4] = 14.50;
stoneRates[12][5] = 14.00;
stoneRates[12][6] = 13.50;
stoneRates[13][0] ="STREAM_STONE";
stoneRates[13][1] = 16.00;
stoneRates[13][2] = 15.50;
stoneRates[13][3] = 15.00;
stoneRates[13][4] = 14.50;
stoneRates[13][5] = 14.00;
stoneRates[13][6] = 13.50;
stoneRates[14][0] ="WEATHER_EDGE_LEDGESTONE";
stoneRates[14][1] = 18.00;
stoneRates[14][2] = 17.50;
stoneRates[14][3] = 17.00;
stoneRates[14][4] = 16.50;
stoneRates[14][5] = 16.00;
stoneRates[14][6] = 15.50;
var c1Rate = 0.15;
var c2Rate = 0.20;
var c3Rate = 0.00;
var c4Rate = 15.00;
var c5Rate = 0.20;
var c6Rate = 0.035;
var c7Rate = 1.45;
var c8Rate = 1.00
var c9Rate = 2.25;
var c10Rate = 3.15;
//var length;
//var width;
var squareFootage;

function initForm() {
	document.getElementById("stoneType").selectedIndex = 0;
	document.getElementById("stoneType").onchange = changeStoneType;
	//document.getElementById("length").onchange = changeStoneType;
	//document.getElementById("width").onchange = changeStoneType;
	document.getElementById("squareFeet").onchange = changeStoneType;
	document.getElementById("c1").onclick = changeStoneType;
	document.getElementById("c2").onclick = changeStoneType;
	document.getElementById("c3").onclick = changeStoneType;
	document.getElementById("c4").onclick = changeStoneType;
	document.getElementById("c5").onclick = changeStoneType;
	document.getElementById("c6").onclick = changeStoneType;
	document.getElementById("c7").onclick = changeStoneType;
	document.getElementById("c8").onclick = changeCheckBoxC8;
	document.getElementById("c9").onclick = changeCheckBoxC9;
	document.getElementById("c10").onclick = changeCheckBoxC10;
	
	changeStoneType();
}

function changeStoneType() {
	var stonePrice;
	var subTotal;
	var grandTotal;
	var filename;
	var stoneTypeSelect = document.getElementById("stoneType");
	var stoneChoice = stoneTypeSelect.options[stoneTypeSelect.selectedIndex].value;
	document.getElementById("hidStoneType").value = stoneTypeSelect.options[stoneTypeSelect.selectedIndex].innerHTML;
	document.getElementById("stoneName").innerHTML = stoneTypeSelect.options[stoneTypeSelect.selectedIndex].innerHTML;
	filename = "images/design_elements/" + stoneChoice + ".JPG";
	//alert(filename);
	document.getElementById("stonePic").src = filename;
	//length = document.getElementById("length").value
	//width = document.getElementById("width").value
	//squareFootage = length * width;
	squareFootage = document.getElementById("squareFeet").value
	//alert(squareFootage);
	
	for ( var i=0; i < stoneRates.length; i++ ) {
		if (stoneChoice == stoneRates[i][0]) {
			if (squareFootage < 200) {
				stonePrice = 25;
			}
			else if (squareFootage >=200 && squareFootage <= 1200) {
				//alert("1");
				stonePrice = stoneRates[i][1];
			}
			else if (squareFootage >= 1201 && squareFootage <=1700) {
				//alert("2");
				stonePrice = stoneRates[i][2];
			}
			else if (squareFootage >= 1701 && squareFootage <= 2200) {
				//alert("3");
				stonePrice = stoneRates[i][3];
			}
			else if (squareFootage >= 2201  && squareFootage <= 2700) {
				//alert("4");
				stonePrice = stoneRates[i][4];
			}
			else if (squareFootage >= 2701 && squareFootage <=3200) {
				//alert("5");
				stonePrice = stoneRates[i][5];
			}
			else if (squareFootage >= 3201) {
				//alert("6");
				stonePrice = stoneRates[i][6];
			}
			else {	
				//alert("7");
				stonePrice = stoneRates[i][1];
			}	
  		}
  	}
	document.getElementById("stoneRate").innerHTML = "$" + stonePrice + "/Sq. Ft.";
	document.getElementById("squareFootage").innerHTML = squareFootage + " Sq. Ft.";
	subTotal = stonePrice * squareFootage;
	document.getElementById("subTotal").innerHTML = formatCurrency(subTotal);
	grandTotal = subTotal;
	
	//add the options
	if (document.getElementById("c1").checked) {
		document.getElementById("c1Cost").innerHTML = "Please contact us";
		//document.getElementById("c1Cost").innerHTML = "add " + c1Rate*100 + "%";
		//document.getElementById("c1Sub").innerHTML = formatCurrency(c1Rate * subTotal);
		//grandTotal = grandTotal + c1Rate * subTotal;	
	}
	else
	{
		document.getElementById("c1Cost").innerHTML = "";
		document.getElementById("c1Sub").innerHTML = "";
	}
	
	if (document.getElementById("c2").checked) {
		document.getElementById("c2Cost").innerHTML = "Please contact us";
		//document.getElementById("c2Cost").innerHTML = "add " + c2Rate*100 + "%";
		//document.getElementById("c2Sub").innerHTML = formatCurrency(c2Rate * subTotal);
		//grandTotal = grandTotal + c2Rate * subTotal;	
	}
	else
	{
		document.getElementById("c2Cost").innerHTML = "";
		document.getElementById("c2Sub").innerHTML = "";
	}

	if (document.getElementById("c3").checked) {
		document.getElementById("c3Cost").innerHTML = "Please contact us";
		//document.getElementById("c3Cost").innerHTML = "add " + c3Rate;
		//document.getElementById("c3Sub").innerHTML = formatCurrency(c3Rate * subTotal);
		//grandTotal = grandTotal + c3Rate * subTotal;	
	}
	else
	{
		document.getElementById("c3Cost").innerHTML = "";
		document.getElementById("c3Sub").innerHTML = "";
	}
	
	if (document.getElementById("c4").checked) {
		document.getElementById("c4Cost").innerHTML = "Please contact us";
		//document.getElementById("c4Cost").innerHTML = "add $" + c4Rate + "/linear foot";
		//document.getElementById("c4Sub").innerHTML = formatCurrency(c4Rate * length);
		//grandTotal = grandTotal + c4Rate * subTotal;	
	}
	else
	{
		document.getElementById("c4Cost").innerHTML = "";
		document.getElementById("c4Sub").innerHTML = "";
	}

	if (document.getElementById("c5").checked) {
		document.getElementById("c5Cost").innerHTML = "Please contact us";
		//document.getElementById("c5Cost").innerHTML = "add " + c5Rate*100 + "%";
		//document.getElementById("c5Sub").innerHTML = formatCurrency(c5Rate * subTotal);
		//grandTotal = grandTotal + c5Rate * subTotal;	
	}
	else
	{
		document.getElementById("c5Cost").innerHTML = "";
		document.getElementById("c5Sub").innerHTML = "";
	}

	if (document.getElementById("c6").checked) {
		document.getElementById("c6Cost").innerHTML = "Please contact us";
		//document.getElementById("c6Cost").innerHTML = "add " + c6Rate + "per lift";
		//document.getElementById("c6Sub").innerHTML = formatCurrency(c6Rate * subTotal);
		//grandTotal = grandTotal + c6Rate * subTotal;	
	}
	else
	{
		document.getElementById("c6Cost").innerHTML = "";
		document.getElementById("c6Sub").innerHTML = "";
	}

	if (document.getElementById("c7").checked) {
		document.getElementById("c7Cost").innerHTML = "add $" + c7Rate + "/Sq. Ft.";
		document.getElementById("c7Sub").innerHTML = formatCurrency(c7Rate * squareFootage);
		grandTotal = grandTotal + c7Rate * squareFootage;	
	}
	else
	{
		document.getElementById("c7Cost").innerHTML = "";
		document.getElementById("c7Sub").innerHTML = "";
	}

	if (document.getElementById("c8").checked) {
		//document.getElementById("c9").checked = false;
		//document.getElementById("c10").checked = false;
		document.getElementById("c8Cost").innerHTML = "add $" + c8Rate + "/Sq. Ft.";
		document.getElementById("c8Sub").innerHTML = formatCurrency(c8Rate * squareFootage);
		grandTotal = grandTotal + c8Rate * squareFootage;	
	}
	else
	{
		document.getElementById("c8Cost").innerHTML = "";
		document.getElementById("c8Sub").innerHTML = "";
	}

	if (document.getElementById("c9").checked) {
		//document.getElementById("c8").checked = false;
		//document.getElementById("c10").checked = false;
		document.getElementById("c9Cost").innerHTML = "add $" + c9Rate + "/Sq. Ft.";
		document.getElementById("c9Sub").innerHTML = formatCurrency(c9Rate * squareFootage);
		grandTotal = grandTotal + c9Rate * squareFootage;	
	}
	else
	{
		document.getElementById("c9Cost").innerHTML = "";
		document.getElementById("c9Sub").innerHTML = "";
	}

	if (document.getElementById("c10").checked) {
		//document.getElementById("c8").checked = false;
		//document.getElementById("c9").checked = false;
		document.getElementById("c10Cost").innerHTML = "add $" + c10Rate + "/Sq. Ft.";
		document.getElementById("c10Sub").innerHTML = formatCurrency(c10Rate * squareFootage);
		grandTotal = grandTotal + c10Rate * squareFootage;	
	}
	else
	{
		document.getElementById("c10Cost").innerHTML = "";
		document.getElementById("c10Sub").innerHTML = "";
	}


	//post the grand total
	document.getElementById("grandTotal").innerHTML = "<b>" + formatCurrency(grandTotal) + "</b>";
	document.getElementById("hidGrandTotal").value = formatCurrency(grandTotal);
}

function changeCheckBoxC8() {
	document.getElementById("c9").checked = false;
	document.getElementById("c10").checked = false;
	changeStoneType();
}

function changeCheckBoxC9() {
	document.getElementById("c8").checked = false;
	document.getElementById("c10").checked = false;
	changeStoneType();
}

function changeCheckBoxC10() {
	document.getElementById("c8").checked = false;
	document.getElementById("c9").checked = false;
	changeStoneType();
}

function formatCurrency(num) {
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
	num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
	cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3))+','+
	num.substring(num.length-(4*i+3));
	
	return (((sign)?'':'-') + '$' + num + '.' + cents);
}