//TarrantIT 2005
function SetCalc()
{	
	CalculateArc();
}
function HeightOrRadius_Click()
{        
    if (document.getElementById("rbArcRadius").checked)
       document.getElementById("spnHeightOrRadius").innerHTML = "Radius";
    else
         document.getElementById("spnHeightOrRadius").innerHTML = "Height";
}
function CalculateArc()
{
    var RAD = 180 / Math.PI;
    var width = parseFloat(document.getElementById("ddArcWidthFeet").value) * 384 + parseFloat(document.getElementById("ddArcWidthInches").value) * 32 + parseFloat(document.getElementById("ddArcWidthFrac").value);
    var hor = parseFloat(document.getElementById("ddArcRadFeet").value) * 384 + parseFloat(document.getElementById("ddArcRadInches").value) * 32 + parseFloat(document.getElementById("ddArcRadFrac").value);
    var hw = width / 2;
    if (document.getElementById("rbArcRadius").checked)
    {
        if (hor < hw)
        {
            alert("Radius must not be less than 1/2 arc width\n\r\n\rFor current width of "+ ConEng(width, true) +" radius must be greater than "+ ConEng(hw, true));
            return;
        }
    }
    else
    { 
        if (hor > hw)
        {
            alert("Height must not be greater than 1/2 arc width\n\r\n\rFor current width of "+ ConEng(width, true) +" height must be less than "+ ConEng(hw, true));
            return;
        }
    }
    var inc = parseFloat(document.getElementById("ddArcIncFeet").value) * 384 + parseFloat(document.getElementById("ddArcIncInches").value) * 32 + parseFloat(document.getElementById("ddArcIncFrac").value);
    if (inc < 16 || inc > hw)
    {
        alert("Increments must be greater than 1/2\" and less than 1/2 width\n\r\n\rWith current width of "+ ConEng(width, true) +" increments must be less than "+ ConEng(hw, true));
        return;
    }
    var radius = 0;
    var arcHeight = 0;
    if (document.getElementById("rbArcRadius").checked)
    {
        radius = hor;
        arcHeight = radius - Math.sqrt((hor * hor) - (hw * hw));
        document.getElementById("spnHeigthOrRadius").innerHTML = "Height ";
        document.getElementById("spnHeigthOrRadius2").innerHTML = ConEng(arcHeight, true);
    }
    else
    {
        arcHeight = hor;
        var d = Math.sqrt((hor * hor) + (hw * hw)); 
        var a = Math.atan(hw / hor);
        radius = (d / 2) / Math.cos(a);
        document.getElementById("spnHeigthOrRadius").innerHTML = "Radius ";
        document.getElementById("spnHeigthOrRadius2").innerHTML = ConEng(radius, true);
    }
    var rl = radius - arcHeight;
    var rs = radius * radius;
    var temp = 0;
    var sb = "x 0 ...... "+ ConEng(arcHeight, true);
    for (var i=inc; i< hw; i += inc)
    {            
        temp = Math.sqrt(rs - (i * i)) - rl;
        sb += "<br />x "+ ConEng(i, true) +" ...... "+ ConEng(temp, true);
    }
    document.getElementById("spnArcResults").innerHTML = sb;
    var sweepAngle = (Math.atan(hw / rl) * RAD)* 2;
    document.getElementById("spnSweep").innerHTML = RoundTo(sweepAngle, 2);
    var circleTotalArea = (Math.PI * rs);
    var tsTosqFeet = 147456;
    var sliceArea = circleTotalArea / (360 / sweepAngle);
    var area = (sliceArea - (rs * Math.sin(sweepAngle / RAD) / 2)) / tsTosqFeet;
    document.getElementById("spnArcArea").innerHTML = RoundTo(area, 2);
    var circleCirc = Math.PI * (radius * 2);
    document.getElementById("spnCircleCirc").innerHTML = ConEng(circleCirc, true);
    var aroundArc = circleCirc / (360 / sweepAngle);
    document.getElementById("spnAroundArc").innerHTML = ConEng(aroundArc, true);
    var circleArea = (Math.PI * rs) / tsTosqFeet;
    document.getElementById("spnCircleArea").innerHTML = RoundTo(circleArea, 2); 
}
function RoundTo(val, places)
{
    places = Math.pow(10, places);
    d = Math.round(val * places) / places;
    return d;
}