function SetCalc(){CalcCenters();SetNumeric();if(document.getElementById("sldr").type=="range")document.getElementById("divSldr").style.display="block"}var useFeet=!0,studs=0,centers=0,actualCenters=0,actualCentersLevel=0,spaces=0,space=0,spaceLevel=0,run=0,runStart=0,runDesc="",length=0,studWidth=0,useSpaces=!0,angle=0,rangle=0,RAD=180/Math.PI;
function CalcCenters(){length=parseInt(document.getElementById("ddC_LengthFeet").value)*384+parseInt(document.getElementById("ddC_LengthInches").value)*32+parseInt(document.getElementById("ddC_LengthFrac").value);centers=parseInt(document.getElementById("ddC_CentersFeet").value)*384+parseInt(document.getElementById("ddC_CentersInches").value)*32+parseInt(document.getElementById("ddC_CentersFrac").value);studWidth=parseInt(document.getElementById("ddC_StudInches").value)*32+parseInt(document.getElementById("ddC_StudFrac").value);
useFeet=document.getElementById("rbUseFeet").checked;if(centers<studWidth||centers>38400)useSpaces?alert("Spaces too small or large\n\r\n\rMin = 1\"\n\rMax = 100'"):alert("Centers too small or large\n\r\n\rMin = Member width ("+ConEng(studWidth,!0)+")\n\rMax = 100'");else if(studWidth<16)alert('Member width must be at least 1/2"'),document.getElementById("ddC-StudFrac").focus();else if(length/centers>400)alert("Wall to long or centers to short");else{angle=parseFloat(document.getElementById("_txtAngle").value);
if(isNaN(angle)||angle>89||angle<0)angle=0,document.getElementById("_txtAngle").value="0",alert("Invalid angle\n\r\n\rReset to 0");rangle=angle/RAD;centers/=Math.cos(rangle);studWidth/=Math.cos(rangle);useSpaces&&(centers+=studWidth);var a="";document.getElementById("rbBothEnds").checked?(actualCenters=(length-studWidth)/Math.ceil((length-studWidth)/centers),space=actualCenters-studWidth,studs=Math.round((length-studWidth)/actualCenters)+1,spaces=studs-1,a="Members both ends<br />",runStart=studWidth,
runDesc=ConEng(studWidth,!1)):document.getElementById("rbOneEnd").checked?(actualCenters=length/Math.ceil(length/centers),space=actualCenters-studWidth,spaces=studs=Math.round((length-studWidth)/actualCenters),a="Members one end only. Work from stud end<br />",runStart=studWidth,runDesc=ConEng(studWidth,!1)):(a=length+studWidth,actualCenters=a/Math.ceil(a/centers),space=actualCenters-studWidth,studs=Math.round(a/actualCenters)-1,spaces=studs+1,a="No end members<br />",runStart=space+studWidth,runDesc=
ConEng(runStart,useFeet));actualCentersLevel=actualCenters*Math.cos(rangle);spaceLevel=space*Math.cos(rangle);a+=GetDesc();angle>0?(document.getElementById("spnAngle").innerHTML="Adjusted for angle "+angle+"&deg;<br />",document.getElementById("spnAngle").style.display="block"):document.getElementById("spnAngle").style.display="none";runDesc+=GetRunDesc();document.getElementById("spnCenters").innerHTML=a;document.getElementById("spnCentersRun").innerHTML=runDesc;document.getElementById("imgQR")!=
null&&document.body.removeChild(document.getElementById("imgQR"));Draw()}}function GetDesc(){var a=studs+" members at "+ConEng(actualCentersLevel,useFeet)+" centers";angle>0&&(a+=" (level)");a+="<br />"+spaces+" spaces @ "+ConEng(spaceLevel,useFeet);angle>0&&(a+=" (level)");a+="<br />";return a}function GetRunDesc(){var a="";run=runStart;for(var c=0;c<studs-1;c++)run+=actualCenters,a+=", "+ConEng(run,useFeet);return a}
function AddStud(a){studs<3&&a==-1?alert("Must have at least 3 Members"):space<20&&a==1?alert("Openings to small"):(studs+=a,a="",document.getElementById("rbBothEnds").checked?(space=(length-studs*studWidth)/(studs-1),spaces=studs-1,runStart=studWidth,a="Members both ends<br />",runDesc=ConEng(studWidth,!1)):document.getElementById("rbOneEnd").checked?(space=(length-studs*studWidth)/studs,spaces=studs,runStart=studWidth,a="Members one end only. Work from Member end<br />",runDesc="Working from Member end<br />"+
ConEng(studWidth,!1)):(space=(length-studs*studWidth)/(studs+1),spaces=studs+1,runStart=space+studWidth,a="No end Members<br />",runDesc=ConEng(runStart,useFeet)),actualCenters=space+studWidth,actualCentersLevel=actualCenters*Math.cos(rangle),spaceLevel=space*Math.cos(rangle),a+=GetDesc(),angle>0&&(runDesc="Adjusted for angle "+angle+"&deg;<br />"+runDesc),runDesc+=GetRunDesc(),document.getElementById("spnCenters").innerHTML=a,document.getElementById("spnCentersRun").innerHTML=runDesc,Draw())}
function TypeChange(a){useSpaces=a.value=="Spaces";CalcCenters()}
function Draw(){var a=document.getElementById("cnvsCenters");if(a.getContext){var c=a.width-10,d=length/c,g=space/d,d=studWidth/d,e=Math.tan(rangle)*c,f=100+e;a.setAttribute("height",f+100);var b=a.getContext("2d");b.clearRect(0,0,a.width,a.height);var a=Math.tan(rangle)*(d+g),h=document.getElementById("rbNoEnds").checked?g:0,i=document.getElementById("rbNoEnds").checked?f-a:f;b.fillStyle="#00f";b.beginPath();b.moveTo(0,f);b.lineTo(c,f-e);b.strokeStyle="#f00";b.stroke();run=runStart;c="";b.font="12px verdana";
for(e=0;e<studs;e++)b.fillRect(h,i-100,d,100),b.save(),b.fillStyle="#000",c=ConEng(run,useFeet),b.translate(h,i+2),b.rotate(90/RAD),b.fillText(c,0,0),b.restore(),run+=actualCenters,i-=a,h+=d+g}}function sldr_onchange(a){document.getElementById("_txtAngle").value=RoundTo(a.value,1);CalcCenters()}var autoTimer=null;function StartAuto(a){autoTimer=setInterval("Auto("+a+")",100)}
function Auto(a){a=parseInt(document.getElementById("_txtAngle").value)+a;if(a>-1&&a<60)document.getElementById("_txtAngle").value=a,document.getElementById("sldr").value=a,CalcCenters()}function StopAuto(){clearInterval(autoTimer)}var sizeTimer;function Resize(a){sizeTimer=setInterval("Sizer("+a+")",100)}function Sizer(a){var c=document.getElementById("cnvsCenters"),a=parseInt(c.width)+a;a>100&&a<1E3?(c.setAttribute("width",a),Draw()):StopSizer()}function StopSizer(){clearInterval(sizeTimer)}
function RunTalk(){RunTalkQR("RunTalk - Imperial",actualCenters,runStart)}function GetQR(a){BuildQR(a,"Centers "+ConEng(actualCenters,!0)+" Start at "+ConEng(runStart,!0))};
