
// list of gearboxes and their ratios
var gearboxes=Array(
  // AE86 gearboxes
  {id: '0', name:'AE86 std T50',             g1:'3.587',g2:'2.022',g3:'1.384',g4:'1.000',g5:'0.861',fg:'4.300'}, // final 4.300
  {id: '1', name:'AE86 TRD N2 T50',          g1:'2.341',g2:'1.607',g3:'1.195',g4:'1.000',g5:'0.886'},
  {id: '2', name:'AE86 TRD Gr.A T50',        g1:'2.630',g2:'1.891',g3:'1.384',g4:'1.000',g5:'0.881'},
  {id: '3', name:'AE86 TRD dogbox T50',      g1:'2.347',g2:'1.733',g3:'1.379',g4:'1.144',g5:'1.000'},
 
  // Honda Civic/CRX gearboxes
  {id: '4', name:'Honda CRX 1.6i-16 (ED9)',  g1:'3.250',g2:'1.944',g3:'1.346',g4:'1.033',g5:'0.878',fg:'3.888'},
  {id: '5', name:'Honda CRX VTEC (EE8)',     g1:'3.250',g2:'2.052',g3:'1.416',g4:'1.103',g5:'0.870',fg:'4.133'},
  {id: '6', name:'Honda CRX SiR (EF8)',      g1:'3.166',g2:'2.052',g3:'1.416',g4:'1.103',g5:'0.870',fg:'4.266'},
  {id: '7', name:'Honda Civic 1.6i (ED7)',   g1:'3.250',g2:'1.894',g3:'1.259',g4:'0.937',g5:'0.771',fg:'4.250'}
);

function resetall()
{
  resetdrive();
  resetgearbox();
  resetgearing();
  updategraph();
}

function resetdrive()
{
  $("input[name='final']").val("4.300");
  $("input[name='revlimit']").val("7800");
  $("input[name='tyre_width']").val("195");
  $("input[name='tyre_profile']").val("50");
  $("input[name='tyre_rim']").val("15");
}

function resetgearbox()
{
  for(var i=0;i<gearboxes.length;i++) {
    var box=gearboxes[i];
    $("select[name='gearbox']").append("<option value=\""+box.id+"\">"+box.name+"</option>");
  }
  $("select[name='gearbox']").val(0);
}

function resetgearing()
{
  for(var i=0;i<gearboxes.length;i++) {
    var box=gearboxes[i];
    var sel=$('select[name="gearbox"]').val();
    if (box.id==sel)
    {
      $('input[name="gear1"]').val(box.g1);
      $('input[name="gear2"]').val(box.g2);
      $('input[name="gear3"]').val(box.g3);
      $('input[name="gear4"]').val(box.g4);
      $('input[name="gear5"]').val(box.g5);
      if (box.fg) $('input[name="final"]').val(box.fg);
    }
  }
  updategraph();
}

function updategraph()
{
  sidewall=($('input[name="tyre_profile"]').val()/100)*$('input[name="tyre_width"]').val();
  circumference=2*3.14159*(($('input[name="tyre_rim"]').val()*25.4)/2 + sidewall);
  revlimit=$('input[name="revlimit"]').val();
  final=$('input[name="final"]').val();

  s=(((revlimit/document.dummyform.gear1.value)/final)*60*circumference)/1000000;
  document.dummyform.spd1.value=s.toFixed(2);

  s=(((revlimit/document.dummyform.gear2.value)/final)*60*circumference)/1000000;
  document.dummyform.spd2.value=s.toFixed(2);

  s=(((revlimit/document.dummyform.gear3.value)/final)*60*circumference)/1000000;
  document.dummyform.spd3.value=s.toFixed(2);

  s=(((revlimit/document.dummyform.gear4.value)/final)*60*circumference)/1000000;
  document.dummyform.spd4.value=s.toFixed(2);

  s=(((revlimit/document.dummyform.gear5.value)/final)*60*circumference)/1000000;
  document.dummyform.spd5.value=s.toFixed(2);

  document.dummyform.start1.value='n/a';
  s=revlimit/(document.dummyform.spd2.value/document.dummyform.spd1.value)

  document.dummyform.start2.value=s.toFixed(0);
  s=revlimit/(document.dummyform.spd3.value/document.dummyform.spd2.value)

  document.dummyform.start3.value=s.toFixed(0);
  s=revlimit/(document.dummyform.spd4.value/document.dummyform.spd3.value)

  document.dummyform.start4.value=s.toFixed(0);
  s=revlimit/(document.dummyform.spd5.value/document.dummyform.spd4.value)

  document.dummyform.start5.value=s.toFixed(0);

  $('#gears').attr("src",
    "/code/geargraph.php?"+
    "revlimit="+revlimit+"\46"+
    "spd1="+document.dummyform.spd1.value+"\46"+
    "spd2="+document.dummyform.spd2.value+"\46"+
    "spd3="+document.dummyform.spd3.value+"\46"+
    "spd4="+document.dummyform.spd4.value+"\46"+
    "spd5="+document.dummyform.spd5.value
  );
}
