
var numCars = 1;
var numGears = new Array();
var showCar = new Array();
var numDynamometerPoints = new Array();
var redrawCharts = new Array();
var description = new Array();
showCar[0] = true;
var lineColors = new Array();
lineColors[0] = "000099";
lineColors[1] = "009900";
lineColors[2] = "990000";
lineColors[3] = "009999";
var dragLineColors = new Array();
dragLineColors[0] = "3333CC";
dragLineColors[1] = "33CC33";
dragLineColors[2] = "CC3333";
dragLineColors[3] = "33CCCC";
var carNames = new Array();


function draw() {
  content = "";
  if (countCars() < 4) {
    content += "<INPUT type='button' name='moreCars' value='Add car to comparison >>' onClick='addCar()'>";
  } else {
    content += "<INPUT type='button' name='moreCars' value='Add car to comparison >>' onClick='addCar()' disabled=''yes'>";
  }
  content += "<BR><BR><TABLE cellspacing='10' align='center'>";
  var columns = countCars();
//  content += "<TR><TD colspan='" + columns + "'><HR>";
  content += "<TR><TD valign='middle' colspan='" + columns + "' class='indexKey'>Vehicle <IMG src='icons/help.gif' onmouseover=\"docTips.show('vehicle')\" onmouseout=\"docTips.hide()\"></IMG></TD></TR>";
//  content += "<TR><TH align='left' valign='top'>Vehicle";
  content += "<TR>";
  for (var car = 0; car < numCars; car++) {
    if (!showCar[car]) {
      continue;
    }

    if (typeof(selectedCarPreset[car]) == "undefined") {
      selectedCarPreset[car] = "Custom";
    }
    setVarValues(car, selectedCarPreset[car], false);
    redrawCharts[car] = true;
    var temp = car + 1;
    content += "<TD align='left'>";
    if (countCars() > 1) {
      content += "<INPUT type='button' name='removeCar' value='Remove car' onClick='removeCar(" + car + ")'>";
    } else {
      content += "<INPUT type='button' name='removeCar' value='Remove car' onClick='removeCar(" + car + ")' disabled='yes disabled='yes'>";
    }
  }
  content += "<TR>";
  for (var car = 0; car < numCars; car++) {
    if (!showCar[car]) {
      continue;
    }
    content += "<TD valign='top' id='preset_car" + car + "'></TD>";
  }
  content += "<TR>";
  for (var car = 0; car < numCars; car++) {
    if (!showCar[car]) {
      continue;
    }
    content += "<TD><FONT size='-1'>Car Name:</FONT> <INPUT type='text' value='" + carNames[car] + "' onChange='carNames[" + car + "]=this.value'>";
  }
  content += "<TR>";
  for (var car = 0; car < numCars; car++) {
    if (!showCar[car]) {
      continue;
    }
    content += "<TD><FONT size='-1' color='#555555'>" + description[car] + "</FONT>";
  }
 
//  content += "<HR>";
//  content += "<TR><TD colspan='" + columns + "'><HR>";
  content += "<TR>";
  content += "<TR>";
  content += "<TR><TD valign='middle' colspan='" + columns + "' class='indexKey'>Parasitics <IMG src='icons/help.gif' onmouseover=\"docTips.show('parasitics')\" onmouseout=\"docTips.hide()\"></IMG></TD></TR>";
//  content += "<TR><TH align='left' valign='top'>Parasitics";
//  content += "<BR><img src='icons/help.png' onmouseover=\"docTips.show('dragcoefficient')\" onmouseout=\"docTips.hide()\"></img>";
//  content += "<TR><TD valign='top'><TABLE width='100%'><TR><TD align='center'><B>Parasitics</B>";
//  content += "<TR><TD align='right'><img src='icons/help.png' onmouseover=\"docTips.show('dragcoefficient')\" onmouseout=\"docTips.hide()\"></img></TABLE>";
  content += "<TR>";
  for (var car = 0; car < numCars; car++) {
    if (!showCar[car]) {
      continue;
    }
    content += "<TD valign='top' id='weight_car" + car + "'></TD>";
  }

//  content += "<HR>";
//  content += "<TR><TD colspan='" + columns + "'><HR>";
  content += "<TR>";
  content += "<TR>";
  content += "<TR><TD valign='middle' colspan='" + columns + "' class='indexKey'>Torque <IMG src='icons/help.gif' onmouseover=\"docTips.show('torque')\" onmouseout=\"docTips.hide()\"></IMG></TD></TR>";
//  content += "<TR><TH align='left' valign='top'>Engine";
  content += "<TR>";
  for (var car = 0; car < numCars; car++) {
    if (!showCar[car]) {
      continue;
    }
    content += "<TD valign='top' id='dynamometer_car" + car + "'>Dynamometer Box</TD>";
  }

//  content += "<HR>";
//  content += "<TR><TD colspan='" + columns + "'><HR>";
  content += "<TR>";
  content += "<TR>";
  content += "<TR><TD valign='middle' colspan='" + columns + "' class='indexKey'>Drivetrain <IMG src='icons/help.gif' onmouseover=\"docTips.show('drivetrain')\" onmouseout=\"docTips.hide()\"></IMG></TD></TR>";
//  content += "<TR><TH align='left' valign='top'>Drivetrain";
  content += "<TR>";
  for (var car = 0; car < numCars; car++) {
    if (!showCar[car]) {
      continue;
    }
    content += "<TD valign='top' id='gear_car" + car + "'></TD>";
  }
  content += "<TR>";
  for (var car = 0; car < numCars; car++) {
    if (!showCar[car]) {
      continue;
    }
    content += "<TD valign='top' id='differential_car" + car + "'></TD>";
  }
  content += "<TR>";
  for (var car = 0; car < numCars; car++) {
    if (!showCar[car]) {
      continue;
    }
    content += "<TD valign='top' id='tire_car" + car + "'></TD>";
  }

//  content += "<HR>";
//  content += "<TR><TD colspan='" + columns + "'><HR>";
//  content += "<TR><TH align='left' valign='top'>Driver";
  content += "<TR>";
  content += "<TR>";
  content += "<TR><TD valign='middle' colspan='" + columns + "' class='indexKey'>Driver <IMG src='icons/help.gif' onmouseover=\"docTips.show('driver')\" onmouseout=\"docTips.hide()\"></IMG></TD></TR>";
  content += "<TR>";
  for (var car = 0; car < numCars; car++) {
    if (!showCar[car]) {
      continue;
    }
    content += "<TD valign='top' id='driver_weight" + car + "'></TD>";
  }
  content += "<TR>";
  for (var car = 0; car < numCars; car++) {
    if (!showCar[car]) {
      continue;
    }
    content += "<TD valign='top' id='shifting_time" + car + "'></TD>";
  }


  content += "<TR><TD colspan='" + columns + "'><HR>";
  content += "</TABLE>";

  content += "<DIV id='calculate_button'></DIV>";

  document.getElementById('top').innerHTML = content;
  
  var buttonHtml = "<INPUT type='button' name='calculate' value='Perform calculations >>' onClick='calculate()'>";
  document.getElementById('calculate_button').innerHTML = buttonHtml;
  
  for (var car = 0; car < numCars; car++) {
    if (!showCar[car]) {
      continue;
    }
    drawWeightBox("weight_car" + car, car);
    drawTireBox("tire_car" + car, car);
    drawGearRatioBox("gear_car" + car, car);
    drawDifferentialBox("differential_car" + car, car);
    drawDynamometerBox("dynamometer_car" + car, car);
    drawDriverBox("driver_weight" + car, car);
    setPresets("preset_car" + car, car);
  }
}

function addCar()
{
  for (var car = 0; car < numCars; car++) {
    if (!showCar[car]) {
      continue;
    }
    saveTorque(car);
  }
  showCar[numCars] = true;
  numCars++; 
  draw();
}

function removeCar(car)
{
  showCar[car] = false;
  for (var car = 0; car < numCars; car++) {
    if (!showCar[car]) {
      continue;
    }
    saveTorque(car);
  }
  draw();
}

function countCars()
{
  var count = 0;
  for (var car = 0; car < numCars; car++) {
    if (showCar[car]) {
      count++;
    }
  }
  return count;
}
