// GET TIRE DIAMETER

function gettirediameter (tirewidth, tireprofile, wheelsize) {	

var tirediameter = ((((tirewidth * (tireprofile *.01)) *2)/25.4) + eval(wheelsize));
tirediameter = Math.round(tirediameter*100)/100;
	
return(tirediameter);

}

// END GET TIRE DIAMETER

// UPDATE MPH
function updatemph(formname,tirediameter,maxrpm,finaldrive,kmh) {

formname.gear1mph.value = maxmph(tirediameter,maxrpm,finaldrive,formname.gearratio1.value,kmh);
formname.gear2mph.value = maxmph(tirediameter,maxrpm,finaldrive,formname.gearratio2.value,kmh);
formname.gear3mph.value = maxmph(tirediameter,maxrpm,finaldrive,formname.gearratio3.value,kmh);
formname.gear4mph.value = maxmph(tirediameter,maxrpm,finaldrive,formname.gearratio4.value,kmh);
formname.gear5mph.value = maxmph(tirediameter,maxrpm,finaldrive,formname.gearratio5.value,kmh);
formname.gear6mph.value = maxmph(tirediameter,maxrpm,finaldrive,formname.gearratio6.value,kmh);

return(0);

}

function updatemph2(formname,tirediameter,maxrpm,finaldrive,kmh) {

formname.gearamph.value = maxmph(tirediameter,maxrpm,finaldrive,formname.gearratioa.value,kmh);
formname.gearbmph.value = maxmph(tirediameter,maxrpm,finaldrive,formname.gearratiob.value,kmh);
formname.gearcmph.value = maxmph(tirediameter,maxrpm,finaldrive,formname.gearratioc.value,kmh);
formname.geardmph.value = maxmph(tirediameter,maxrpm,finaldrive,formname.gearratiod.value,kmh);
formname.gearemph.value = maxmph(tirediameter,maxrpm,finaldrive,formname.gearratioe.value,kmh);
formname.gearfmph.value = maxmph(tirediameter,maxrpm,finaldrive,formname.gearratiof.value,kmh);

return(0);

}
// END UPDATE MPH

// UPDATE SHIFT RPM
function updaterpm(formname,tirediameter,finaldrive,kmh) {

formname.gear2shift.value = shiftrpm(tirediameter,formname.gear1mph.value,finaldrive,formname.gearratio2.value,kmh);
formname.gear3shift.value = shiftrpm(tirediameter,formname.gear2mph.value,finaldrive,formname.gearratio3.value,kmh);
formname.gear4shift.value = shiftrpm(tirediameter,formname.gear3mph.value,finaldrive,formname.gearratio4.value,kmh);
formname.gear5shift.value = shiftrpm(tirediameter,formname.gear4mph.value,finaldrive,formname.gearratio5.value,kmh);
formname.gear6shift.value = shiftrpm(tirediameter,formname.gear5mph.value,finaldrive,formname.gearratio6.value,kmh);

return(0);

}

function updaterpm2(formname,tirediameter,finaldrive,kmh) {

formname.gearbshift.value = shiftrpm(tirediameter,formname.gearamph.value,finaldrive,formname.gearratiob.value,kmh);
formname.gearcshift.value = shiftrpm(tirediameter,formname.gearbmph.value,finaldrive,formname.gearratioc.value,kmh);
formname.geardshift.value = shiftrpm(tirediameter,formname.gearcmph.value,finaldrive,formname.gearratiod.value,kmh);
formname.geareshift.value = shiftrpm(tirediameter,formname.geardmph.value,finaldrive,formname.gearratioe.value,kmh);
formname.gearfshift.value = shiftrpm(tirediameter,formname.gearemph.value,finaldrive,formname.gearratiof.value,kmh);

return(0);

}
// END UPDATE SHIFT RPM

// CALCULATE MAX MPH FOR EACH GEAR
function maxmph(tirediameter,maxrpm,finaldrive,gearratio,kmh) {

				 if (gearratio == 0) {
				 
				 mph = "~";
				 
				 } else {
				 
				 var mph = ((tirediameter * maxrpm) / (336 * finaldrive * gearratio));
				 
				 if (kmh == 1){
				 
				 mph = mph * 1.609344;
				 
				 }
				 
				 mph = Math.round(mph);
				 
				 }
	
return(mph);
	
}
// END CALCULATE MAX MPH FOR EACH GEAR

// CALCULATE RPM SHIFT POINT FOR EACH GEAR
function shiftrpm(tirediameter,maxmph,finaldrive,gearratio,kmh) {

				 if (gearratio == 0) {
				 
				 shiftrpm = "~";
				 
				 } else {
				 
				 var shiftrpm = (maxmph * 336 * finaldrive * gearratio) / tirediameter;
				 
				 if (kmh == 1){
				 
				 shiftrpm = shiftrpm / 1.609344;
				 
				 }
				 
				 shiftrpm = Math.round(shiftrpm);
				 
				 }
	
return(shiftrpm);
	
}
// END CALCULATE RPM SHIFT POINT FOR EACH GEAR

// POPULATE GEAR RATIOS
var gr = new Array();
gr[1] = new Array(4.9,3.250,1.900,1.250,0.909,0.750,0.000);
gr[2] = new Array(4.250,3.250,1.900,1.565,1.250,1.000,0.000);
gr[3] = new Array(4.928,3.230,2.105,1.458,1.107,0.848,0.000);
gr[4] = new Array(4.400,3.230,2.105,1.695,1.384,1.000,0.000);
gr[5] = new Array(4.928,3.230,1.900,1.360,1.034,0.787,0.000);
gr[6] = new Array(4.400,3.230,1.900,1.695,1.384,1.000,0.000);
gr[7] = new Array(5.46,3.266,2.130,1.517,1.147,0.921,0.738);
gr[8] = new Array(4.64,3.307,1.950,1.360,1.071,0.870,0.000);
gr[9] = new Array(4.687,3.462,1.870,1.321,0.970,0.757,0.000);
gr[10] = new Array(4.290,3.462,1.870,1.285,1.030,0.886,0.000);
gr[11] = new Array(3.90,3.270,2.286,1.667,1.238,0.958,0.000);
gr[12] = new Array(3.250,3.250,1.761,1.066,0.853,0.702,0.000);
gr[13] = new Array(4.058,3.250,1.762,1.172,0.909,0.702,0.000);
gr[14] = new Array(4.250,3.250,1.900,1.250,0.909,0.702,0.000);
gr[15] = new Array(4.250,3.250,1.900,1.250,0.909,0.750,0.000);
gr[16] = new Array(4.266,3.166,2.052,1.416,1.103,0.870,0.000);
gr[17] = new Array(4.400,3.230,2.105,1.458,1.107,0.848,0.000);
gr[18] = new Array(4.764,3.062,1.769,1.212,0.921,0.738,0.000);
gr[19] = new Array(4.764,3.266,2.130,1.517,1.212,0.972,0.738);
gr[20] = new Array(4.764,3.266,2.130,1.517,1.147,0.921,0.738);
gr[21] = new Array(4.764,3.266,2.130,1.517,1.147,0.921,0.659);
gr[22] = new Array(5.062,3.266,2.130,1.517,1.147,0.921,0.738);
gr[23] = new Array(4.400,3.230,2.105,1.458,1.107,0.848,0.000);
gr[24] = new Array(4.266,3.230,1.900,1.269,0.966,0.742,0.000);
gr[25] = new Array(4.400,3.307,2.105,1.459,1.107,0.875,0.000);
gr[26] = new Array(4.266,3.230,1.900,1.269,0.966,0.714,0.000);
gr[27] = new Array(4.400,3.230,1.900,1.360,1.034,0.787,0.000);
gr[28] = new Array(4.785,3.230,2.105,1.458,1.034,0.787,0.000);
gr[29] = new Array(4.389,3.266,1.880,1.212,0.921,0.738,0.000);
gr[30] = new Array(4.389,3.266,2.130,1.517,1.147,0.921,0.738);
gr[31] = new Array(4.764,3.266,2.130,1.517,1.147,0.921,0.738);
gr[32] = new Array(4.764,3.266,2.130,1.517,1.212,0.972,0.738);
gr[33] = new Array(4.266,3.285,2.090,1.481,1.071,0.812,0.000);
gr[34] = new Array(4.764,3.266,2.130,1.517,1.147,0.921,0.738);
gr[35] = new Array(4.764,3.266,1.880,1.355,1.028,0.825,0.659);
gr[36] = new Array(4.290,3.462,1.870,1.321,0.970,0.757,0.000);
gr[37] = new Array(4.266,3.307,1.950,1.360,1.071,0.870,0.000);
gr[38] = new Array(4.266,3.285,1.956,1.344,1.034,0.812,0.000);
gr[39] = new Array(4.100,3.120,2.045,1.481,1.161,0.971,0.811);
gr[40] = new Array(4.100,3.133,2.045,1.481,1.161,0.942,0.763);
gr[41] = new Array(3.90,3.454,1.947,1.366,0.972,0.738,0.000);
gr[42] = new Array(4.05,3.070,1.900,1.430,1.100,0.000,0.000);
gr[43] = new Array(4.43,3.120,2.045,1.481,1.161,0.971,0.811);
gr[44] = new Array(4.05,2.786,1.900,1.430,1.100,0.000,0.000);


function selecttransmission1 (transmissionid) {

				 if (transmissionid != "") {
				 
				 document.transmission1.finaldrive1.value = gr[transmissionid][0];
				 document.transmission1.gearratio1.value = gr[transmissionid][1];
				 document.transmission1.gearratio2.value = gr[transmissionid][2];
				 document.transmission1.gearratio3.value = gr[transmissionid][3];
				 document.transmission1.gearratio4.value = gr[transmissionid][4];
				 document.transmission1.gearratio5.value = gr[transmissionid][5];
				 document.transmission1.gearratio6.value = gr[transmissionid][6];
				 
				 }

return(1);

}

function selecttransmission2 (transmissionid) {

				 if (transmissionid != "") {
				 
				 document.transmission1.finaldrive2.value = gr[transmissionid][0];
				 document.transmission1.gearratioa.value = gr[transmissionid][1];
				 document.transmission1.gearratiob.value = gr[transmissionid][2];
				 document.transmission1.gearratioc.value = gr[transmissionid][3];
				 document.transmission1.gearratiod.value = gr[transmissionid][4];
				 document.transmission1.gearratioe.value = gr[transmissionid][5];
				 document.transmission1.gearratiof.value = gr[transmissionid][6];
				 
				 }

return(1);

}
// END POPULATE GEAR RATIOS

