var lastMill=40870,lastMile="",lastYard=44,lastFeet=1,lastInch=1,lastFracTop=0,speed=100,metUnits="millimetres";function SetConverter(){SetNumeric();ResetValues();ConvertToEnglish();ConvertToMetric()}function ResetValues(){document.getElementById("txtMiles").value=lastMile;document.getElementById("txtYards").value=lastYard;document.getElementById("txtFeet").value=lastFeet;document.getElementById("txtInches").value=lastInch;document.getElementById("ddFrac").selectedIndex=lastFracTop}
function ConvertToEnglish(){var a=document.getElementById("ddImperialUnits").selectedIndex,c="",d=0,f=0,g=0,e=0,b=0,i=32;b=document.getElementById("txtMill").value/0.79375;if(b==0)document.getElementById("spnEnglish").innerHTML="?";else if(isNaN(b))document.getElementById("txtMill").value=lastMill;else{if(b>=2027520&&a<1){d=Math.floor(b/2027520);b-=d*2027520;c+=Commafy(d.toString())+" miles "}if(b>=1152&&a<2){f=Math.floor(b/1152);b-=f*1152;c+=Commafy(f.toString())+" yards "}if(b>=384&&a<3){g=Math.floor(b/
384);b-=g*384;c+=Commafy(g.toString())+"' "}i=false;if(b>=32&&a<4){e=Math.floor(b/32);b-=e*32;c+=Commafy(e.toString());i=true}if(b>0){i=true;if(e>0)c+="~";b=Math.round(b);if(b<32)document.getElementById("ddFrac").selectedIndex=b;b=document.getElementById("ddFrac").options[document.getElementById("ddFrac").selectedIndex].innerHTML;c+=b}else document.getElementById("ddFrac").selectedIndex=0;if(i)c+='"';document.getElementById("txtMiles").value=d==0?"":d;document.getElementById("txtYards").value=f==
0?"":f;document.getElementById("txtFeet").value=g==0?"":g;document.getElementById("txtInches").value=e==0?"":e;d=document.getElementById("txtMill").value;switch(document.getElementById("ddMetricUnits").value){case "millimetres":break;case "centimetres":d/=10;break;case "metres":d/=1E3;break}document.getElementById("spnMetric").innerHTML=Commafy(d.toString());lastMill=document.getElementById("txtMill").value;if(document.getElementById("rbFraction").checked)document.getElementById("spnEnglish").innerHTML=
c;else{var h;b=document.getElementById("txtMill").value;switch(a){case 0:h=(b/1609344).toFixed(6)+" miles ";break;case 1:h=(b/914.4).toFixed(4)+" yards ";break;case 2:h=(b/304.8).toFixed(3)+" ' ";break;case 3:h=(b/25.4).toFixed(2)+' "';break}document.getElementById("spnEnglish").innerHTML=h}}}
function ConvertToMetric(a){a=document.getElementById("txtMiles").value*1609344;a+=document.getElementById("txtYards").value*914.4;a+=document.getElementById("txtFeet").value*304.8;a+=document.getElementById("txtInches").value*25.4;var c=document.getElementById("ddFrac").value;a+=c*0.79375;a=Math.round(a);if(isNaN(a))ResetValues();else{lastMile=document.getElementById("txtMiles").value;lastYard=document.getElementById("txtYards").value;lastFeet=document.getElementById("txtFeet").value;lastInch=document.getElementById("txtInches").value;
lastFracTop=document.getElementById("ddFrac").selectedIndex;document.getElementById("txtMill").value=a;ConvertToEnglish()}}function Commafy(a){for(var c=/(-?\d+)(\d{3})/;c.test(a);)a=a.replace(c,"$1,$2");return a}var millTimer=null;function UpMill(){inc=1;millTimer=setInterval("IncMill()",speed)}function DownMill(){inc=-1;millTimer=setInterval("DecMill()",speed)}var conInc=10;function ChangeConverterInc(a){conInc=parseInt(a.value)}
function IncMill(){var a=parseInt(document.getElementById("txtMill").value);if(a<1E9){document.getElementById("txtMill").value=a+conInc;ConvertToEnglish()}}function DecMill(){var a=parseInt(document.getElementById("txtMill").value);if(a>1){document.getElementById("txtMill").value=a-conInc;ConvertToEnglish()}}function StopMill(){clearInterval(millTimer)}function SetMetUnits(a){metUnits=a;ConvertToEnglish()}
function ChangeMetricUnits(a){document.getElementById("spnMetricUnits").innerHTML=a.value;ConvertToEnglish()};