/* --------- DOMAIN REDIRECT JS ------------ */


/* --------- MENU JS ------------ */

sfHover = function() {
	var sfEls = document.getElementById("nav").getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" sfhover";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);

/* --------- PHOTO JS ------------ */

function ShowPopup(elemID){
hp = document.getElementById("hoverpopup" + elemID);
hposition = document.getElementById("hover-position" + elemID);

hp.style.display = "block";
hposition.style.position = "relative";
hposition.style.display = "block";
}

function HidePopup(elemID){

hp = document.getElementById("hoverpopup" + elemID);
hp.style.display = "none";
hposition.style.display = "none";
}


/* --------- SWITCHBLOCK JS ------------ */

	function switchBlock(obj)
	{
	var el = document.getElementById(obj);
		if(el.style.display != "block")
		{
		el.style.display = "block";
		}
		else
		{
		el.style.display = "none";
		}
	}

/* --------- FORM CHECK JS ------------ */

function ValidateAll()
{
	if(CheckName(document.dForm.Name.value) == false) return false;
	if(CheckEmail(document.dForm.Email.value) == false) return false;
	return true;
}

function StripSpacesFromEnds(s)
{
	// developed by willmaster.com
	while((s.indexOf(' ',0) == 0) && (s.length > 1))
	{
		s = s.substring(1,s.length);
	}
	while((s.lastIndexOf(' ') == (s.length - 1) && (s.length > 1)))
	{
		s = s.substring(0,(s.length - 1));
	}
	if((s.indexOf(' ',0) == 0) && (s.length == 1)) s = '';
	return s;
}

function IsItPresent(s,explanation)
{
	// developed by willmaster.com
	s = StripSpacesFromEnds(s);
	if(s.length) return s;
	alert('Please enter ' + explanation + '.');
	return '';
}

function CheckName(s_name)
{
	// developed by willmaster.com
	s_name = IsItPresent(s_name,'your name');
	if(! s_name) return false;
	var i = s_name.indexOf('  ',0);
	while(i > -1)
	{
		s_name = s_name.substring(0,(i + 1)) + 
			s_name.substring((i + 2),s_name.length);
		i = s_name.indexOf('  ',0);
	}
	s_name = s_name.toLowerCase();
	var s = new String(s_name.substring(0,1));
	s = s.toUpperCase();
	s_name = s + s_name.substring(1,s_name.length);
	i = s_name.indexOf(' ',0);
	if(i == (s_name.length - 1)) i = -1;
	var ts = new String("");
	var j = 0;
	while(i > -1)
	{
		i++;
		j = i + 1;
		s = s_name.substring(i,j);
		s = s.toUpperCase();
		ts = '';
		if(i > 0) ts = s_name.substring(0,i);
		s_name = ts + s + s_name.substring(j,s_name.length);
		i = s_name.indexOf(' ',j);
		if(i == (s_name.length - 1)) i = -1;
	}
	document.dForm.Name.value = s_name;
	return true;
}

function CheckEmail(s_email)
{
	// developed by willmaster.com
	s_email = IsItPresent(s_email,'your email address');
	if(! s_email) return false;
	var i = s_email.indexOf(' ',0);
	while(i > -1)
	{
		s_email = s_email.substring(0,i) + 
			s_email.substring((i + 1),s_email.length);
		i = s_email.indexOf(' ',0);
	}
	document.dForm.Email.value = s_email;
	if((s_email.length < 6) ||
	   (s_email.indexOf('@',0) < 1) ||
	   (s_email.lastIndexOf('@') != s_email.indexOf('@',0)) ||
	   (s_email.lastIndexOf('@') > (s_email.length - 5)) ||
	   (s_email.lastIndexOf('.') > (s_email.length - 3)) ||
	   (s_email.lastIndexOf('.') < (s_email.length - 4)) ||
	   (s_email.indexOf('..',0) > -1) ||
	   (s_email.indexOf('@.',0) > -1) ||
	   (s_email.indexOf('.@',0) > -1) ||
	   (s_email.indexOf(',',0) > -1))
	{
		alert('The email address "' + s_email + '" is not valid.');
		return false;
	}
	return true;
}

/* --------- CALC JS ------------ */

function perRound(num, precision) {
	var precision = 3;
	precision = parseInt(precision);
    var result1 = num * Math.pow(10, precision);
    var result2 = Math.round(result1);
    var result3 = result2 / Math.pow(10, precision);
    return zerosPad(result3, precision);
}



function zerosPad(rndVal, decPlaces) {
    var valStrg = rndVal.toString();
    var decLoc = valStrg.indexOf(".");
    if (decLoc == -1) {
        decPartLen = 0;
        valStrg += decPlaces > 0 ? "." : "";
    }
    else {
        decPartLen = valStrg.length - decLoc - 1;
    }
     var totalPad = decPlaces - decPartLen;
    if (totalPad > 0) {
        for (var cntrVal = 1; cntrVal <= totalPad; cntrVal++) 
            valStrg += "0";
        }
    return valStrg;
}

function clear_field(field) {
		if (field.value==field.defaultValue) {
			field.value=''
		}
	}
function roundNumber(rnum, rlength) { // Arguments: number to round, number of decimal places
  var newnumber = Math.round(rnum*Math.pow(10,rlength))/Math.pow(10,rlength);
  return newnumber; // Output the result to the form field (change for your purposes)
}
function doMathWallStone(form) {
var firstnumber = 0;
var secondnumber = 0;
var tempvalue = 0;
firstnumber = eval(form.Wall_Stone_Height.value);
secondnumber = eval(form.Wall_Stone_Width.value);
tempvalue = (firstnumber) * (secondnumber);

tempvalue = roundNumber(tempvalue,2);
form.Wall_Stone_Total_Square_Feet.value = tempvalue;
form.Wall_Stone_Total_Tons.value = roundNumber((tempvalue) / 15,2);
}

function doMathWallStone2(form) {
var firstnumber = 0;
var secondnumber = 0;
var tempvalue = 0;
firstnumber = eval(form.Wall_Stone2_Height.value);
secondnumber = eval(form.Wall_Stone2_Width.value);
tempvalue = (firstnumber) * (secondnumber);

tempvalue = roundNumber(tempvalue,2);
form.Wall_Stone2_Total_Square_Feet.value = tempvalue;
form.Wall_Stone2_Total_Tons.value = roundNumber((tempvalue) / 15,2);
}

function doMathFlagStone(form) {
var firstnumber = 0;
var secondnumber = 0;
var tempvalue = 0;
firstnumber = eval(form.Flag_Stone_Height.value);
secondnumber = eval(form.Flag_Stone_Width.value);
tempvalue = (firstnumber) * (secondnumber);
form.Flag_Stone_Total_Square_Feet.value = roundNumber((tempvalue),2);
}

function doMathLandscapingStone(form) {
var firstnumber = 0;
var secondnumber = 0;
var thirdnumber = 0;
var tempvalue = 0;
firstnumber = eval(form.Landscaping_Stone_Height.value);
secondnumber = eval(form.Landscaping_Stone_Width.value);
thirdnumber = eval((form.Landscaping_Stone_Depth.value) / 12);
tempvalue = (firstnumber) * (secondnumber) * (thirdnumber);
form.Landscaping_Stone_Total_Cubic_Feet.value = roundNumber((tempvalue),2);
form.Landscaping_Stone_Total_Tons.value = roundNumber((tempvalue * 100) / 2000,2);
}

function doMathStonewall_Grey(form) {
var firstnumber = 0;
var secondnumber = 0;
var tempvalue = 0;
firstnumber = eval(form.Stonewall_Grey_Height.value);
secondnumber = eval(form.Stonewall_Grey_Width.value);
tempvalue = (firstnumber) * (secondnumber);
form.Stonewall_Grey_Total_Square_Feet.value = roundNumber((tempvalue),2);
}

function doMathThinVeneer(form) {
var firstnumber = 0;
var secondnumber = 0;
var tempvalue = 0;
firstnumber = eval(form.Thin_Veneer_Height.value);
secondnumber = eval(form.Thin_Veneer_Width.value);
tempvalue = (firstnumber) * (secondnumber);
form.Thin_Veneer_Total_Square_Feet.value = roundNumber((tempvalue),2);
}

function doMathSplitStone(form) {
var firstnumber = 0;
var secondnumber = 0;
var tempvalue = 0;
firstnumber = eval(form.Split_Stone_Height.value);
secondnumber = eval(form.Split_Stone_Width.value);
tempvalue = (firstnumber) * (secondnumber);
form.Split_Stone_Total_Square_Feet.value = (tempvalue);
form.Split_Stone_Total_Tons.value = roundNumber((tempvalue) / 25,2);
}

function doMathBaseMaterial(form) {
var firstnumber = 0;
var secondnumber = 0;
var thirdnumber = 0;
var tempvalue = 0;
firstnumber = eval(form.Base_Material_Height.value);
secondnumber = eval(form.Base_Material_Width.value);
thirdnumber = eval((form.Base_Material_Depth.value) / 12);
tempvalue = (firstnumber) * (secondnumber) * (thirdnumber);
form.Base_Material_Total_Cubic_Feet.value = roundNumber((tempvalue),2);
form.Base_Material_Total_Tons.value = roundNumber((tempvalue * 140) / 2000,2);
}

function doMathGradedAggregate(form) {
var firstnumber = 0;
var secondnumber = 0;
var thirdnumber = 0;
var tempvalue = 0;
firstnumber = eval(form.Graded_Aggregate_Height.value);
secondnumber = eval(form.Graded_Aggregate_Width.value);
thirdnumber = eval((form.Graded_Aggregate_Depth.value) / 12);
tempvalue = (firstnumber) * (secondnumber) * (thirdnumber);
form.Graded_Aggregate_Total_Cubic_Feet.value = roundNumber((tempvalue),2);
form.Graded_Aggregate_Total_Tons.value = roundNumber((tempvalue * 100) / 2000,2);
}

function doMathRipRap(form) {
var firstnumber = 0;
var secondnumber = 0;
var thirdnumber = 0;
var tempvalue = 0;
firstnumber = eval(form.Rip_Rap_Height.value);
secondnumber = eval(form.Rip_Rap_Width.value);
thirdnumber = eval((form.Rip_Rap_Depth.value) / 12);
tempvalue = (firstnumber) * (secondnumber) * (thirdnumber);
form.Rip_Rap_Total_Cubic_Feet.value = roundNumber((tempvalue),2);
form.Rip_Rap_Total_Tons.value = roundNumber((tempvalue * 95) / 2000,2);
}

function doMathSand(form) {
var firstnumber = 0;
var secondnumber = 0;
var thirdnumber = 0;
var tempvalue = 0;
firstnumber = eval(form.Sand_Height.value);
secondnumber = eval(form.Sand_Width.value);
thirdnumber = eval((form.Sand_Depth.value) / 12);
tempvalue = (firstnumber) * (secondnumber) * (thirdnumber);
form.Sand_Total_Cubic_Feet.value = roundNumber((tempvalue),2);
form.Sand_Total_Tons.value = roundNumber((tempvalue * 100) / 2000,2);
}

function doMathSand2(form) {
var firstnumber = 0;
var secondnumber = 0;
var thirdnumber = 0;
var tempvalue = 0;
firstnumber = eval(form.Sand2_Height.value);
secondnumber = eval(form.Sand2_Width.value);
thirdnumber = eval((form.Sand2_Depth.value) / 12);
tempvalue = (firstnumber) * (secondnumber) * (thirdnumber);
form.Sand2_Total_Cubic_Feet.value = roundNumber((tempvalue),2);
form.Sand2_Total_Tons.value = roundNumber((tempvalue * 100) / 2000,2);
}
