// TarrantIT 2005
function SetCalc()
{
	SetNumeric();
	CalcStuds();
}
function CheckRange(ctrl, min,max)
{
    if (ctrl.value == "")
    {
        alert('Value Required');
        ctrl.select();
        return false;
    }
    var val = parseFloat(ctrl.value);
    if (isNaN(val))
    {
        ctrl.focus();
        alert('Numbers Only');
        ctrl.select();
        return false;
    }
    else if (val < min)
    {
        ctrl.focus();
        alert('Must be larger than or = ' + min);
        ctrl.select();
        return false;
    }
    else if (val > max)
    {
        ctrl.focus();
        alert('Must be smaller than or = ' + max);
        ctrl.select();
        return false;
    }
    return true;
}
function CalcStuds()
{
    var rad = 180 / Math.PI;
    var rangle;
    var dangle;
    var ctrl;
    if (document.getElementById("trAngle").style.display == "block")
    {
        ctrl = document.getElementById("_txtAngle");
        if (!CheckRange(ctrl, 1, 89))
            return;
        dangle = ctrl.value;
        rangle = ctrl.value / rad;
    }
    else
    {
        ctrl = document.getElementById("_txtRise");
        if (!CheckRange(ctrl, 1, 10000))
            return;
        var rise = ctrl.value;
        ctrl = document.getElementById("_txtRun");
        if (!CheckRange(ctrl, 1, 100000))
            return;
        var run = ctrl.value;
        rangle = Math.atan(rise / run);
        dangle = rangle * rad;
    }
    var centersLevel = parseInt(document.getElementById("ddCentersFeet").value) * 384 + parseInt(document.getElementById("ddCentersInches").value) * 32 + parseInt(document.getElementById("ddCentersFrac").value);	
    var lengthLevel = parseInt(document.getElementById("ddLengthFeet").value) * 384 + parseInt(document.getElementById("ddLengthInches").value) * 32 + parseInt(document.getElementById("ddLengthFrac").value);
    var firstStudLength = parseInt(document.getElementById("ddFirstStudFeet").value) * 384 + parseInt(document.getElementById("ddFirstStudInches").value) * 32 + parseInt(document.getElementById("ddFirstStudFrac").value);
    var studWidth = parseInt(document.getElementById("ddStudWidthInches").value) * 32 + parseInt(document.getElementById("ddStudWidthFrac").value);
    var studSetback = Math.tan(rangle) * studWidth;
    var useFeet = document.getElementById("rbUseFeet").checked; 
    document.getElementById("spnStudSetback").innerHTML = ConEng(studSetback, useFeet);
    var centersAngle = centersLevel / (Math.cos(rangle));
    document.getElementById("spnCentersAngle").innerHTML = ConEng(centersAngle, useFeet);
    var lengthAngle = lengthLevel / Math.cos(rangle);
    document.getElementById("spnLengthAngle").innerHTML = "(<span style='color:Red;'>" + RoundTo(dangle, 2) + "&deg;</span>) " + ConEng(lengthAngle, useFeet);
    var studInc = Math.tan(rangle) * centersLevel;
    document.getElementById("spnStudInc").innerHTML = ConEng(studInc, useFeet);
    var thisStud = firstStudLength + studSetback;
    var studRun = "0 - " + ConEng(thisStud, useFeet) + "<br />";
    var run = 0;
    while (run < lengthLevel - centersLevel)
    {
        run += centersLevel;
        thisStud += studInc;
        studRun += ConEng(run, useFeet) + " - " + ConEng(thisStud, useFeet) + "<br />";
    }
    studRun = studRun.substring(0, studRun.length - 6);
    var lastStudLength = (Math.tan(rangle) * lengthLevel) + firstStudLength;
    if (thisStud != lastStudLength)
        studRun += "<br />"+ ConEng(lengthLevel, useFeet) +" - "+ ConEng(lastStudLength, useFeet);
    if (lengthLevel - run != centersLevel)
        studRun += " * Last Center =  "+ ConEng(lengthLevel - run, useFeet);
    document.getElementById("spnStudRun").innerHTML = "Stud Lengths (Long Side) @ Centers (Level)<br />"+ studRun;
}
function CalcPitchAngle()
{
	var winFeatures = "width=400,height=130,status=no,toolbar=no,resizable=yes,menubar=no,location=no";
	var w = window.open("PitchAngle.htm","PitchAngle",winFeatures);
	w.moveTo(100, 400);
	w.focus();
}
function AngleRiseRun(r)
{
    if (r == "r")
    {
        document.getElementById("trAngle").style.display = "none";
        document.getElementById("trRiseRun").style.display = "block";
        document.getElementById("btnAngle").style.color = "";
        document.getElementById("btnRiseRun").style.color = "Green";
    }
    else
    {
        document.getElementById("trRiseRun").style.display = "none";
        document.getElementById("trAngle").style.display = "block";
        document.getElementById("btnAngle").style.color = "Green";
        document.getElementById("btnRiseRun").style.color = "";
    }
}
function RoundTo(val, places)
{
    places = Math.pow(10, places);
    d = Math.round(val * places) / places;
    return d;
}