/*
Format value
*/
function formatvalue(input, rsize) { 
  var invalid = "**************************"; 
  var nines = "999999999999999999999999"; 
  var strin = "" + input; 
  var fltin = parseFloat(strin); 
  if (strin.indexOf("e") != -1 || 
	  fltin > parseFloat(nines.substring(0,rsize)+".4")) 
	return invalid.substring(0, rsize); 
  if (strin.length <= rsize) return strin; 
  var rounded = "" + (fltin + 
	  (fltin - parseFloat(strin.substring(0, rsize)))); 
  return rounded.substring(0, rsize); 
}  

/* 
* Validate Field
*/
function validateField(fieldName, fieldValue) {
	var parsecheck = "" + parseFloat(fieldValue);
	if (parseFloat(fieldValue) < 0 || 
		parseFloat(fieldValue) == 0 || 
		parsecheck == "NaN") {
		window.alert("The input for " + fieldName + " is invalid."); 
	 	return false;
	}
	return true;
}

/**
* Block Required Calculator 
*/
function calcBlock(form) {
	var concAmt = 0;
	var validatedheight = validateField(form.height.name, form.height.value);
	var validatedlength = validateField(form.length.name, form.length.value);
	if (!validatedheight || !validatedlength)
		return false;
	
	concAmt = form.height.value * form.length.value * 1.125;
	form.result.value = formatvalue(concAmt,7);
	return true;
}
function clearBlock(form) { 
	form.height.value = "";
	form.length.value = "";
	form.result.value = "";
}

/**
* Cement bags Required Calculator 
*/
function calcCement(form) {
	var concAmt = 0;
	var validatedblock = validateField(form.block.name, form.block.value);
	if (!validatedblock)
	return false;
	
	concAmt = form.block.value / 1000 * 30;
	form.result.value = formatvalue(concAmt,7);
	return true;
}
function clearCement(form) { 
	form.block.value = "";
	form.result.value = "";
}

/**
* Sand (tons) Required Calculator 
*/
function calcSand(form) {
	var concAmt = 0;
	var validatedblock = validateField(form.block.name, form.block.value);
	if (!validatedblock)
	return false;
	
	concAmt = form.block.value / 1000 * 3.5;
	form.result.value = formatvalue(concAmt,7);
	return true;
}
function clearSand(form) { 
	form.block.value = "";
	form.result.value = "";
}

/**
* Wall Reinforcing Calculator 
*/
function calcReinforce(form) {
	var concAmt = 0;
	var validatedblock = validateField(form.block.name, form.block.value);
	if (!validatedblock)
		return false;
	for(var i = 0; i < form.lf.length; i++) {
		if(form.lf[i].checked)
			var checkedindex=i;
	}
	if (form.lf[checkedindex].value == "sixteen") {
		concAmt = form.block.value * 1.34 / 2;
	}
	else {
		concAmt = form.block.value * 1.34 / 3;
	}
	form.result.value = formatvalue(concAmt,7);
	return true; 
}
function clearReinforce(form) { 
	form.block.value = "";
	form.result.value = "";
}

/**
* Block fill Calculator 
*/
function calcFill(form) {
	var concAmt = 0;
	var validatedblock = validateField(form.block.name, form.block.value);
	if (!validatedblock)
		return false;
	for(var i = 0; i < form.blocksize.length; i++) {
		if(form.blocksize[i].checked)
			var checkedindex=i;
	}
	if (form.blocksize[checkedindex].value == "six") {
		concAmt = form.block.value * 0.26 / 27 * 1.05;
	}
	else if (form.blocksize[checkedindex].value == "eight") {
		concAmt = form.block.value * 0.28 / 27 * 1.05;
	}
	else {
	concAmt = form.block.value * .37 / 27 * 1.05;
	}
	form.result.value = formatvalue(concAmt,7);
	return true; 
}
function clearFill(form) { 
	form.wall.value = "";
	form.result.value = "";
}

/**
* Zonolite type fill Calculator 
*/
function calcZonolite(form) {
	var concAmt = 0;
	var validatedwall = validateField(form.wall.name, form.wall.value);
	if (!validatedwall)
		return false;
	for(var i = 0; i < form.blocksize.length; i++) {
		if(form.blocksize[i].checked)
			var checkedindex=i;
	}
	if (form.blocksize[checkedindex].value == "eight") {
		concAmt = form.wall.value * 7 / 100;
	}
	else {
		concAmt = form.wall.value * 13 / 100;
	}
	form.result.value = formatvalue(concAmt,7);
	return true; 
}
function clearZonolite(form) { 
	form.wall.value = "";
	form.result.value = "";
}

//materials calculator

function calcData(form) {
	
	form = document.locationFinder

	for(var i = 0; i < form.units.length; i++) {
		if(form.units[i].checked)
			var checkedindex=i;}

if (form.units[checkedindex].value == "Metric") { 
      var label = " cu. m.";
      multiplier = 100;
      divisor = 1;
      yards = 1000000;
} else {
     var label = " cu. yd.";
      multiplier = 12;
      divisor = 1728;
      yards = 27;
	 }

var concAmt = 0;




// Pull in values...

var length = form.length.value;
var width = form.width.value;
var thickness = form.thickness.value;

// Break values down into lowest unit...

if (form.InFt1.selectedIndex == 1) { length = (length*multiplier); }
if (form.InFt2.selectedIndex == 1) { width = (width*multiplier); }
if (form.InFt3.selectedIndex == 1) { thickness = (thickness*multiplier); }

var volume = (length * width * thickness);
var concAmt = (volume / divisor) / yards;
var theResult = formatvalue(concAmt,7);


form.result.value = theResult + label;


if (form.units[checkedindex].value == "English") { 
	//form.result.value += " OR ("+formatvalue(theResult*0.764554858,7)+" cu. m.)";
	form.result.value = " "+formatvalue(theResult*0.764554858,7)+" cu. m. ("+form.result.value+")";
} 


if (form.units[checkedindex].value == "English") { 
	if(theResult < 1.30795){
		alert("Orders must be at least 1 cu. m.");	
		form.volume.value = "false";
	}else{
		form.volume.value = "true";
	}
	
}else {
	if(theResult < 1){
		alert("Orders must be at least 1 cu. m.");	
		form.volume.value = "false";
	}else{
		form.volume.value = "true";
	}
}


return true;
}

function changeUnits(form,which) {

if (which == "Metric") {

                form.InFt1.options[0].text = "Centimetres";
                form.InFt1.options[1].text = "Metres";
				form.InFt2.options[0].text = "Centimetres";
                form.InFt2.options[1].text = "Metres";
				form.InFt3.options[0].text = "Centimetres";
                form.InFt3.options[1].text = "Metres";
				


} else { 

                form.InFt1.options[0].text = "Inches";
                form.InFt1.options[1].text = "Feet";
				form.InFt2.options[0].text = "Inches";
                form.InFt2.options[1].text = "Feet";
				form.InFt3.options[0].text = "Inches";
                form.InFt3.options[1].text = "Feet";

}
}



