// Greg Tarrant 2005
// TarrantIT
if( top != self )
{
	top.location=self.document.location;
}
function Form_onsubmit()
{
	if (! CheckLimit())
  	    return false;
	var wft = parseInt(document.getElementById("ddWidthFeet").value);
	var wi = parseInt(document.getElementById("ddWidthInches").value);
	var wfr = parseInt(document.getElementById("ddWidthFrac").value);
	var w = (wft*384) + (wi*32) + wfr;
	var lft = parseInt(document.getElementById("ddLengthFeet").value);
	var li = parseInt(document.getElementById("ddLengthInches").value);
	var lfr = parseInt(document.getElementById("ddLengthFrac").value);
	var l = (lft*384) + (li*32) + lfr;
	if (w > (l * 2))
	{
	    alert("Width cannot be greater than Length X 2\n\r\n\rWith Length or " + ConEng(l, true) + ", width cannot be grater than " + ConEng((l * 2), true));
	    return false;
	}
	var pwi = parseInt(document.getElementById("ddPlateWidthInches").value);
	var pwf = parseInt(document.getElementById("ddPlateWidthFrac").value);
	var plateWidth = (pwi * 32) + pwf;
	if (plateWidth > 0)
	{
	    var angle = parseInt(document.getElementById("_txtAngle").value);
	    var birdsMouthDepth = plateWidth * Math.sin(angle / (180 / Math.PI));
	    var rdi = parseInt(document.getElementById("ddRafterDepthInches").value);
	    var rdf = parseInt(document.getElementById("ddRafterDepthFrac").value);
	    var rafterDepth = (rdi * 32) + rdf;
	    if (rafterDepth / birdsMouthDepth < 3)
	    {
	        if (! confirm("Birds mouth depth will be greater than 1/3 rafter depth\n\rThis can significantly weaken rafter\n\r\n\rContinue?"))
	            return false;
	    }
	}
	return true;
}
function ChangePitch()
{
	var p1 = document.getElementById("ddPitchIn12").value;
	if (p1 == 0)
		return;
	var rad = 180/Math.PI;
	var ang = Math.atan(p1 / 12) * rad;
	if (ang >= 2 && ang <= 50)
		document.getElementById("_txtAngle").value = ang.toFixed(4);
}
function ConvertDecimal()
{
	var inch = document.getElementById("txtConverter").value;
	document.getElementById("spnConverter").innerHTML = ConEng((inch*32), true);
}
function ConEng(h, useFeet)
{	
	var ts = Math.round(h);
	// TO CHECK IN 32nds, UNCOMMENT BELOW
	var f=0, i=0, ft=0, fb=32;
	var eng = "";
	
	if (ts >= 384 && useFeet) // its longer than 1 foot
	{
		f = Math.floor(ts/384);
		ts-= (f*384); // take out the feet
		eng+=  f.toString() +"'";
	}
	var hasInch = false;
	
	if (ts >= 32) // we have inches left over
	{
		i = Math.floor(ts/32);
		ts-= (i*32);
		eng+=i.toString();
		hasInch = true;
	}
	if (Math.floor(ts) > 0) // it has a fraction
	{
		hasInch = true;
		if (i >0) // only if the fraction follows an inches measurement
			eng+= "~";
		
		ft = Math.floor(ts);
		fb = 32;
		
		while (ft%2 == 0 && ft > 1 && ft < 32) // it can be halved and its > 1
		{
			ft/=2; // loop  till smallest
			fb/=2;
		}
		eng+= ft.toString() +"/"+ fb.toString();
	}
	if (hasInch)
		eng+= "\"";
	
	return eng;
}
function CompareOverhang()
{
    var tsEave = document.getElementById("ddOverhangFeet").value * 384;
    tsEave += document.getElementById("ddOverhangInches").value * 32;
    tsEave += document.getElementById("ddOverhangFrac").value;
    
    var tsEaveGable = document.getElementById("ddOverhangGableFeet").value * 384;
    tsEaveGable += document.getElementById("ddOverhangGableInches").value * 32;
    tsEaveGable += document.getElementById("ddOverhangGableFrac").value;
    
    if (tsEave != tsEaveGable)
    {
        document.getElementById("ddOverhangGableFeet").style.backgroundColor = "yellow";
        document.getElementById("ddOverhangGableInches").style.backgroundColor = "yellow";
        document.getElementById("ddOverhangGableFrac").style.backgroundColor = "yellow";
    
    }
    else
    {
        document.getElementById("ddOverhangGableFeet").style.backgroundColor = "";
        document.getElementById("ddOverhangGableInches").style.backgroundColor = "";
        document.getElementById("ddOverhangGableFrac").style.backgroundColor = "";
    }
}
//
//
var logBirds = false;
function ShowBirdsCalc()
{
    document.getElementById("_txtBirdsmouthAngle").value = document.getElementById("_txtAngle").value;
    var rdi = parseInt(document.getElementById("ddRafterDepthInches").value);
    var rafterDepth = (rdi * 32) + parseInt(document.getElementById("ddRafterDepthFrac").value);
    document.getElementById("spnRafterDepth").innerHTML = ConEng(rafterDepth, false);
    document.getElementById("divBirdsmouth").style.left = "200px";
    SetHap();
    //if (! logBirds)
    //{
    //    var bug = new Image(); 
    //    bug.src = "http://www.blocklayer.com/Logger.ashx?p=Roof&a=Birdsmouth";
    //    logBirds = true;
    //}
}
function HideBirdsCalc()
{
    document.getElementById("divBirdsmouth").style.left = "-10000px";
}
function CalcFoot()
{   
    var heelInch = parseInt(document.getElementById("ddBirdsHeelInches").value);
	var heelFrac = parseInt(document.getElementById("ddBirdsHeelFrac").value);
    var heelCut32 = (heelInch * 32) + heelFrac;
    var rangle = GetRangle();
    if (rangle == null)
        return;
    var footCut32 = heelCut32 / Math.tan(rangle);
    document.getElementById("spnFootCut").innerHTML = ConEng(footCut32, false);
}
function CalcHeel()
{
    var footInch = parseInt(document.getElementById("ddBirdsFootInches").value);
	var footFrac = parseInt(document.getElementById("ddBirdsFootFrac").value);
    var footCut32 = (footInch * 32) + footFrac;
    var rangle = GetRangle();
    if (rangle == null)
        return;
    var heelCut32 = Math.tan(rangle) * footCut32;
    document.getElementById("spnHeelCut").innerHTML = ConEng(heelCut32, false);
}
function GetRangle()
{
    var angle = parseFloat(document.getElementById("_txtBirdsmouthAngle").value);
    if (isNaN(angle))
    {
        alert("Please enter a valid number for Angle");
        document.getElementById("_txtBirdsmouthAngle").select();
        return null;
    }
    else if(angle < 1 || angle > 45)
    {
        alert("Angle must be larger than 1 and smaller than or equal to 45");
        document.getElementById("_txtBirdsmouthAngle").select();
        return null;
    }
    else
        return angle / (180 / Math.PI);
}
function SetHap()
{
    var rangle = GetRangle();
    var rdi = parseInt(document.getElementById("ddRafterDepthInches").value);
    var rafterDepth = (rdi * 32) + parseInt(document.getElementById("ddRafterDepthFrac").value);
    var plumbCutLength = rafterDepth / Math.cos(rangle);
    var hap = plumbCutLength * .66666;
    var heelCutLength = plumbCutLength * 0.3333;
    var footCutLength = heelCutLength / Math.tan(rangle);
    var footWidthInches = Math.floor(footCutLength / 32);
    document.getElementById("spnFootCut2").innerHTML = ConEng(footCutLength, false) +" for a HAP of "+ ConEng(hap, false);
}
