//TarrantIT 2005
function SetCalc()
{
	SetNumeric();	
	ConvertToM3();
	ConvertToLineal();
	ConvertLogToM3();
	SetUpDecFrac();
	ConvertCM();
	ConvertSM();
	ConvertCY();
	ConvertCF();
	ConvertSY();
	ConvertSF();
	ConvertLinealCost();
}
function ConvertCM()
{
    var cubicM = document.getElementById("_txtCubicMtoE").value;
    if (isNaN(cubicM))
        cubicM = 0;
    document.getElementById("spnCMtoCY").innerHTML = RoundTo((cubicM * 1.30795062), 3) +" Cubic Yards";
    document.getElementById("spnCMtoCF").innerHTML = RoundTo((cubicM * 35.3146667), 3) +" Cubic Feet";
}   
function ConvertSM()
{
    var squareM = document.getElementById("_txtSquareMtoE").value;
    if (isNaN(squareM))
        squareM = 0;
    document.getElementById("spnSMtoSY").innerHTML = RoundTo((squareM * 1.19599005), 3) +" Square Yards";
    document.getElementById("spnSMtoSF").innerHTML = RoundTo((squareM * 10.7639104), 3) +" Square Feet";
}  
function ConvertCY()
{
    var cubicY = document.getElementById("_txtCubicYtoM").value;
    if (isNaN(cubicY))
        cubicY = 0;
    document.getElementById("spnCYtoCM").innerHTML = RoundTo((cubicY * 0.764554858), 3) +" Cubic Meters";
}
function ConvertCF()
{
    var cubicF = document.getElementById("_txtCubicFtoM").value;
    if (isNaN(cubicF))
        cubicF = 0;
    document.getElementById("spnCFtoCM").innerHTML = RoundTo((cubicF * 0.0283168466), 3) +" Cubic Meters";
}
function ConvertSY()
{
    var squareY = document.getElementById("_txtSquareYtoM").value;
    if (isNaN(squareY))
        squareY = 0;
    document.getElementById("spnSYtoSM").innerHTML = RoundTo((squareY * 0.83612736), 3) +" Square Meters";
} 
function ConvertSF()
{
    var squareF = document.getElementById("_txtSquareFtoM").value;
    if (isNaN(squareF))
        squareF = 0;
    document.getElementById("spnSFtoSM").innerHTML = RoundTo((squareF * 0.09290304), 3) +" Square Meters";
} 
function ConvertToM3()
{
	var cl = document.getElementById("_txtCostLineal").value;
	var l = document.getElementById("txtLength").value * 12 * 32;
	var w = parseInt(document.getElementById("ddDepthInches").value) * 32 + parseInt(document.getElementById("ddDepthFrac").value);
	var t = parseInt(document.getElementById("ddThickInches").value) * 32 + parseInt(document.getElementById("ddThickFrac").value);
	var linealFeetInFt3 = 147456 / (w * t);
	var f3 = Ts3ToFeet3(l*w*t);
	var cf3 = cl * linealFeetInFt3;
	var totalCost = cl * document.getElementById("txtLength").value;
	document.getElementById("spnLinealToM3Exp").innerHTML = RoundTo(linealFeetInFt3, 2) +" lineal feet of "+ ConEng(w, false) +" &times; "+ ConEng(t, false) +" = 1 cubic foot";
	document.getElementById("spnLinealToM3").innerHTML = RoundTo(f3, 3) +" ft&sup3; @ $"+ cf3.toFixed(2) +" / ft&sup3; = $"+ totalCost.toFixed(2);
}
function ConvertLinealCost()
{
	var cf3 = parseInt(document.getElementById("_txtCostLC").value);
	var lf = document.getElementById("txtLengthLC").value;
	var l = document.getElementById("txtLengthLC").value * 12 * 32;
	var w = parseInt(document.getElementById("ddDepthInchesLC").value) * 32 + parseInt(document.getElementById("ddDepthFracLC").value);
	var t = parseInt(document.getElementById("ddThickInchesLC").value) * 32 + parseInt(document.getElementById("ddThickFracLC").value);
	var f3 = Ts3ToFeet3(l*w*t);
	var totalCost = f3 * cf3;
	document.getElementById("spnLinealCost").innerHTML = lf +" lineal feet of "+ ConEng(w, false) +" &times; "+ ConEng(t, false) +" = "+ RoundTo(f3, 3) +" ft&sup3;";
	document.getElementById("spnLinealCost2").innerHTML = RoundTo(f3, 3) +" ft&sup3; @ $"+ cf3.toFixed(2) +" / ft&sup3; = $"+ totalCost.toFixed(2);
}
function ConvertToLineal()
{
	var cft3 = document.getElementById("_txtCostM3").value;
	var m3 = document.getElementById("_txtM3").value * 147456; // in ts3
	var w = parseInt(document.getElementById("ddDepth2Inches").value) * 32 + parseInt(document.getElementById("ddDepth2Frac").value);
	var t = parseInt(document.getElementById("ddThick2Inches").value) * 32 + parseInt(document.getElementById("ddThick2Frac").value);
	var linealFeetInFt3 = 147456 / (w * t);
	var lft = (m3) / (w*t);
	var clft = cft3 / linealFeetInFt3;
	var totalCost = cft3 * document.getElementById("_txtM3").value;
	document.getElementById("spnM3ToLinealExp").innerHTML = "1 cubic foot of "+ ConEng(w, false) +" &times; "+ ConEng(t, false) +" = "+ RoundTo(linealFeetInFt3, 2) +" lineal feet";
	document.getElementById("spnM3ToLineal").innerHTML = RoundTo(lft, 2) +" ft @ $"+ clft.toFixed(2) +" / ft = $"+ totalCost.toFixed(2);
}
function ConvertLogToM3()
{
	var l = document.getElementById("txtLogLength").value * 384;
	var d = parseInt(document.getElementById("ddLogDiameterInches").value) * 32 + parseInt(document.getElementById("ddLogDiameterFrac").value);
	if (document.getElementById("ddLogVolType").value == "Diameter")
	{
	    document.getElementById("spnLogVolAlt").innerHTML = "Girth";
	    var circ = Math.PI * d;
        document.getElementById("spnLogGirthOrDiameter").innerHTML = ConEng(circ, false);
	}
	else 
	{
	    d = d / Math.PI;
	    document.getElementById("spnLogVolAlt").innerHTML = "Diameter";
        document.getElementById("spnLogGirthOrDiameter").innerHTML = ConEng(d, false);
	}
	var area = Math.PI * Math.pow((d/2), 2);
	document.getElementById("spnLogToM3").innerHTML = RoundTo(Ts3ToFeet3(l*area), 3) +" ft&sup3;";
}
function Ts3ToFeet3(ts)
{
	return ts/56623104;
}
function ConvertToFrac()
{
    var inches = parseFloat(document.getElementById("_txtFDec").value);
    var ts = Math.round(inches * 32);
    document.getElementById("spnFrac").innerHTML = ConEng(ts, document.getElementById("rbUseFeetF").checked);
    var res = " &nbsp;&nbsp; "+ RoundTo((inches * .0254), 3) +" m &nbsp;&nbsp; "+ RoundTo((inches * 2.54), 2) +" cm &nbsp;&nbsp; "+ RoundTo((inches * 25.4), 1) +" mm";
    document.getElementById("spnFrac2").innerHTML = res;
}
function ConvertToDec()
{
    var t = parseInt(document.getElementById("ddFLengthFeet").value) * 384;
    t += parseInt(document.getElementById("ddFLengthInches").value) * 32;
    t += parseInt(document.getElementById("ddFLengthFrac").value);
    var inches = t/32;
    document.getElementById("spnDec").innerHTML = RoundTo(inches, 2) +"\"";
    var res = " &nbsp;&nbsp; "+ RoundTo((inches * .0254), 3) +" m &nbsp;&nbsp; "+ RoundTo((inches * 2.54), 2) +" cm &nbsp;&nbsp; "+ RoundTo((inches * 25.4), 1) +" mm";
    document.getElementById("spnDec2").innerHTML = res;
}
function SetUpDecFrac()
{
    document.getElementById("ddFLengthFeet").selectedIndex = 1 + Math.floor(Math.random() * 3);
    document.getElementById("ddFLengthInches").selectedIndex = Math.floor(Math.random() * 12);
    document.getElementById("ddFLengthFrac").selectedIndex = Math.floor(Math.random() * 32);
    document.getElementById("_txtFDec").value = RoundTo((6 + Math.random() * 30), 2);
    ConvertToDec();
    ConvertToFrac();
}
function RoundTo(val, places)
{
    places = Math.pow(10, places);
    d = Math.round(val * places) / places;
    return d;
}