function flipCar(form) {
 form.quadPassWeight.value = 180;
 form.quadMassWeight.value = 0;
 form.quadMassHeight.value = 0;
 form.quadSpeed.value = 0;

 if (form.quadCar.value == "bravada") {
  form.quadPassNum.value = 5;
  form.quadPassHeight.value = 31;
  form.quadEngWeight.value = 900;
  form.quadEngHeight.value = 25;
  form.quadBodyWeight.value = 3728;
  form.quadBodyHeight.value = 39;
  form.quadBase.value = 63;
 }
 if (form.quadCar.value == "police") {
  form.quadPassNum.value = 6;
  form.quadPassHeight.value = 27;
  form.quadEngWeight.value = 800;
  form.quadEngHeight.value = 24;
  form.quadBodyWeight.value = 3157;
  form.quadBodyHeight.value = 27;
  form.quadBase.value = 61;
 }
 if (form.quadCar.value == "camry") {
  form.quadPassNum.value = 5;
  form.quadPassHeight.value = 29;
  form.quadEngWeight.value = 800;
  form.quadEngHeight.value = 24;
  form.quadBodyWeight.value = 3086-800;
  form.quadBodyHeight.value = 26;
  form.quadBase.value = 61;
 }
 if (form.quadCar.value == "ferrari") {
  form.quadPassNum.value = 4;
  form.quadPassHeight.value = 14;
  form.quadEngWeight.value = 900;
  form.quadEngHeight.value = 22;
  form.quadBodyWeight.value = 3197-900;
  form.quadBodyHeight.value = 26;
  form.quadBase.value = 66;
 }
 if (form.quadCar.value == "yukon") {
  form.quadPassNum.value = 9;
  form.quadPassHeight.value = 34;
  form.quadEngWeight.value = 900;
  form.quadEngHeight.value = 28;
  form.quadBodyWeight.value = 5037-900;
  form.quadBodyHeight.value = 43;
  form.quadBase.value = 74;
 }
 if (form.quadCar.value == "clear") {
  form.quadPassNum.value = 0;
  form.quadPassHeight.value = 0;
  form.quadEngWeight.value = 0;
  form.quadEngHeight.value = 0;
  form.quadBodyWeight.value = 0;
  form.quadBodyHeight.value = 0;
  form.quadBase.value = 0;
 }
}


function flip(form) {

 for (i = 1; i <=2; i++) {
  turnRad = eval(form.turnRad.value);
  if (i == 1) {
   w1 = eval(form.triPassNum.value)*eval(form.triPassWeight.value);
   h1 = eval(form.triPassHeight.value);
   w2 = eval(form.triEngWeight.value);
   h2 = eval(form.triEngHeight.value);
   w3 = eval(form.triBodyWeight.value);
   h3 = eval(form.triBodyHeight.value);
   base = eval(form.triBase.value)/2;
  }

  else if (i == 2) {
   w1 = eval(form.quadPassNum.value)*eval(form.quadPassWeight.value);
   h1 = eval(form.quadPassHeight.value);
   w2 = eval(form.quadEngWeight.value);
   h2 = eval(form.quadEngHeight.value);
   w3 = eval(form.quadBodyWeight.value);
   h3 = eval(form.quadBodyHeight.value);
   base = eval(form.quadBase.value)/2;
  }


  wT = w1+w2+w3;
  mass = wT/32;
  hT = (w1*h1+w2*h2+w3*h3)/wT;
  F = wT/hT*base;
  hT = Math.round(hT*10)/10;
  wT = Math.round(wT);
  speed = F*turnRad/mass;
  speed = Math.sqrt(speed);
  speed = speed*3600/5280;
  speed = Math.round(speed*10)/10;

  

  if (i == 1) {
   form.triMassWeight.value = wT;
   form.triMassHeight.value = hT;
   form.triSpeed.value = speed;
  }
  else {
   form.quadMassWeight.value = wT;
   form.quadMassHeight.value = hT;
   form.quadSpeed.value = speed;
  }
 }

}




function flip(form) {

 for (i = 1; i <=2; i++) {
  turnRad = eval(form.turnRad.value);
  if (i == 1) {
   w1 = eval(form.triPassNum.value)*eval(form.triPassWeight.value);
   h1 = eval(form.triPassHeight.value);
   w2 = eval(form.triEngWeight.value);
   h2 = eval(form.triEngHeight.value);
   w3 = eval(form.triBodyWeight.value);
   h3 = eval(form.triBodyHeight.value);
   base = eval(form.triBase.value)/2;
  }

  else if (i == 2) {
   w1 = eval(form.quadPassNum.value)*eval(form.quadPassWeight.value);
   h1 = eval(form.quadPassHeight.value);
   w2 = eval(form.quadEngWeight.value);
   h2 = eval(form.quadEngHeight.value);
   w3 = eval(form.quadBodyWeight.value);
   h3 = eval(form.quadBodyHeight.value);
   base = eval(form.quadBase.value)/2;
  }


  wT = w1+w2+w3;
  mass = wT/32;
  hT = (w1*h1+w2*h2+w3*h3)/wT;
  F = wT/hT*base;
  speed = F*turnRad/mass;
  speed = Math.sqrt(speed);
  speed = speed*3600/5280;
  speed = Math.round(speed*10)/10;

  

  if (i == 1) {
   form.triMassWeight.value = wT//Math.round(wT);
   form.triMassHeight.value = hT//Math.round(hT*10)/10;
   form.triSpeed.value = speed;
  }
  else {
   form.quadMassWeight.value = Math.round(wT);
   form.quadMassHeight.value = Math.round(hT*10)/10;
   form.quadSpeed.value = speed;
  }
 }
}



function whichCar(form) {
 form.interest.value = 5;
 form.loan.value = 4;
 form.insurance.value = 1000;
 form.cost.value = 0;

 if (form.carType[0].checked == true) {
  form.buy.value = 10000;
  form.sell.value = 4000;
  form.miles.value = 75000;
  form.years.value = 5;
  form.costElec.value = 0.10;
  form.costGas.value = "n/a";
  form.mileage.value = 3;
  form.maintenance.value = 500;
  form.toll.value = 0.05;
 }
 else {
  form.buy.value = 26000;
  form.sell.value = 5000;
  form.miles.value = 75000;
  form.years.value = 5;
  form.costElec.value = "n/a";
  form.costGas.value = 2.00;
  form.mileage.value = 20;
  form.maintenance.value = 1000;
  form.toll.value = 0.12;
 }
}


function costToDrive(form) {

 buy = eval(form.buy.value);
 sell = eval(form.sell.value);
 interest = eval(form.interest.value);
 loan = eval(form.loan.value);
 miles = eval(form.miles.value);
 years = eval(form.years.value);

 firstbuy = buy;
 buy = buy*4/5;
 interest = interest/100;
 rate = interest/12;
 payments = 12*loan;

 payamt = rate*buy/(1-Math.pow(1+rate,-payments));


 if (years >= loan) {
  interest = payments*payamt-buy;
 }
 else {
  months = years*12;
  for (i = 1; i <= months; i++) {
   interest = interest + buy*rate;
   buy = buy*rate-payamt;
   }
 }

 costCar = (firstbuy-sell+interest)/miles;

 if (form.carType[0].checked == true) {
  costFuel = eval(form.costElec.value);
 }
 else {
  costFuel = eval(form.costGas.value);
 }


 mileage = eval(form.mileage.value);
 costFuel = costFuel/mileage;

 maint = eval(form.maintenance.value);
 costMaint = maint*years/miles;

 insurance = eval(form.insurance.value);
 costIns = insurance*years/miles;

 toll = eval(form.toll.value);

 costMile = costCar + costMaint + costIns + costFuel + toll;
 cost = Math.round(costMile*1000)/1000;

 form.cost.value = cost;
}




function nox(form,pic) {

 miles = eval(form.dist.value);
 people = eval(form.people.value);
 speed = eval(form.speed.value);
 noxEmissions = eval(form.noxEmissions.value);

 if (form.NOXcat[0].checked == true) {
  totalNOx = miles*noxEmissions;
 }
 else {
  power = eval(form.power.value);
  if (form.hpkw[1].checked == true) {
   power = power*1.341;
  }
  runHours = miles/speed;
  if (form.idleOn[0].checked == true) {
   onHours = eval(form.onHours.value);
   if (onHours > runHours) {
    runHours = onHours;
   }
  }
  totmiles = runHours*speed;
  people = totmiles/miles*people;

  totalNOx = runHours*noxEmissions*power;
 }

 noxday = Math.round(totalNOx/people*100)/100;
 noxYear = Math.round(totalNOx/people*365/907200*2000*100)/100;
 time = Math.round(miles/speed*60);

 form.noxday.value = noxday;
 form.noxyear.value = noxYear;
 form.time.value = time;

 noxday = Math.log(noxday/.08)/Math.log(10);
 newstink = Math.round(noxday/3.75*15);

 if (newstink > 14) {
  stinkmeter = 15;
 }
 else if (newstink <1) {
  stinkmeter = 1;
 }
 else {
  stinkmeter = newstink;
 }
 stinkpic = 'http://www.tritrack.net/stinkOmeter' + stinkmeter + '.gif';
 document[pic].src = stinkpic;

}



function noxCat(form) {

 form.noxday.value = 0;
 form.noxyear.value = 0;
 form.time.value = 0;

 if (form.noxClass.value == "tritrack"){
  form.noxEmissions.value = 0.008;
  form.NOXcat[0].checked = true;
  form.power.value = "n/a";
  form.dist.value = 40;
  form.people.value = 2;
  form.idleOn[1].checked = true;
  form.onHours.value = "n/a";
  form.speed.value = 88;
 }
 else if (form.noxClass.value == "monorail"){
  form.noxEmissions.value = 0.019;
  form.NOXcat[1].checked = true;
  form.power.value = 400;
  form.dist.value = 40;
  form.people.value = 192;
  form.idleOn[0].checked = true;
  form.onHours.value = 4;
  form.speed.value = 17;
  form.hpkw[0].checked = true;
 }
 else if (form.noxClass.value == "sulev"){
  form.noxEmissions.value = 0.018;
  form.NOXcat[0].checked = true;
  form.power.value = "n/a";
  form.dist.value = 40;
  form.people.value = 2;
  form.idleOn[1].checked = true;
  form.onHours.value = "n/a";
  form.speed.value = 26;
 }
 else if (form.noxClass.value == "car1"){
  form.noxEmissions.value = 0.4;
  form.NOXcat[0].checked = true;
  form.power.value = "n/a";
  form.dist.value = 40;
  form.people.value = 2;
  form.idleOn[1].checked = true;
  form.onHours.value = "n/a";
  form.speed.value = 26;
 }
 else if (form.noxClass.value == "car2"){
  form.noxEmissions.value = 0.08;
  form.NOXcat[0].checked = true;
  form.power.value = "n/a";
  form.dist.value = 40;
  form.people.value = 2;
  form.idleOn[1].checked = true;
  form.onHours.value = "n/a";
  form.speed.value = 26;
 }
 else if (form.noxClass.value == "dieseltruck"){
  form.noxEmissions.value = 1.0;
  form.NOXcat[0].checked = true;
  form.power.value = "n/a";
  form.dist.value = 40;
  form.people.value = 2;
  form.idleOn[1].checked = true;
  form.onHours.value = "n/a";
  form.speed.value = 26;
 }
 else if (form.noxClass.value == "suv1"){
  form.noxEmissions.value = 0.7;
  form.NOXcat[0].checked = true;
  form.power.value = "n/a";
  form.dist.value = 40;
  form.people.value = 2;
  form.idleOn[1].checked = true;
  form.onHours.value = "n/a";
  form.speed.value = 26;
 }
 else if (form.noxClass.value == "suv2"){
  form.noxEmissions.value = 0.14;
  form.NOXcat[0].checked = true;
  form.power.value = "n/a";
  form.dist.value = 40;
  form.people.value = 2;
  form.idleOn[1].checked = true;
  form.onHours.value = "n/a";
  form.speed.value = 26;
 }
 else if (form.noxClass.value == "bus1"){
  form.noxEmissions.value = 4.0;
  form.NOXcat[1].checked = true;
  form.power.value = 215;
  form.dist.value = 40;
  form.people.value = 8;
  form.idleOn[0].checked = true;
  form.onHours.value = 16;
  form.speed.value = 12;
  form.hpkw[0].checked = true;
 }
 else if (form.noxClass.value == "bus2"){
  form.noxEmissions.value = 2.4;
  form.NOXcat[1].checked = true;
  form.power.value = 215;
  form.dist.value = 40;
  form.people.value = 8;
  form.idleOn[0].checked = true;
  form.onHours.value = 16;
  form.speed.value = 12;
  form.hpkw[0].checked = true;
 }
 else if (form.noxClass.value == "train0"){
  form.noxEmissions.value = 14.0;
  form.NOXcat[1].checked = true;
  form.power.value = 600;
  form.dist.value = 40;
  form.people.value = 50;
  form.idleOn[0].checked = true;
  form.onHours.value = 24;
  form.speed.value = 17;
  form.hpkw[0].checked = true;
 }
 if (form.noxClass.value == "train2"){
  form.noxEmissions.value = 8.1;
  form.NOXcat[1].checked = true;
  form.power.value = 400;
  form.dist.value = 40;
  form.people.value = 50;
  form.idleOn[0].checked = true;
  form.onHours.value = 24;
  form.speed.value = 17;
  form.hpkw[0].checked = true;
 }
 else if (form.noxClass.value == "clear"){
  form.noxEmissions.value = 0.0;
  form.dist.value = 0;
  form.people.value = 0;
  form.onHours.value = 0;
  form.speed.value = 0;
  form.power.value = "0";
 }
}



function commuteTime(form) {
 miles = eval(form.miles.value);
 groundspeed = 17/60;
 
 groundmiles = miles;
 trackmiles = 0;
 if (miles>1) {
  groundmiles = 1;
  trackmiles = miles-1;
 }

 groundtime = groundmiles/groundspeed;
 tracktime = trackmiles/180*60;

 time = groundtime+tracktime;
 form.time.value = Math.round(time);
 form.newtime.value = Math.round(time);

 cartime = miles/groundspeed;

 if (miles>10) {
  cartime = 5/groundspeed + (miles-5)/45*60;
 }

 form.oldtime.value = Math.round(cartime);

}



function moneySaved(form) {
 oldtime = eval(form.oldtime.value);
 newtime = eval(form.newtime.value);
 wage = eval(form.wage.value);

 timesaved = oldtime-newtime;  //minutes
 timesaved = timesaved/60;     //hours
 timesaved = timesaved*2*5*50; //hours per year

 form.timeSaved.value = Math.round(timesaved);

 wagesaved = timesaved*wage;
 form.dollarsSaved.value = Math.round(wagesaved);
 
}


function rollover(imgName, imgSrc) {
 document[imgName].src = imgSrc;
}

function yearsToPay(form) {

// peoplePerCar = 2;
 milesPerYear = 15000;
 toll = eval(form.toll.value);
 miles = eval(form.miles.value);
 tracks = eval(form.tracks.value);
 trackMiles = miles*tracks;
 costMile = eval(form.cost.value);
 cost = costMile*trackMiles;
 pop = eval(form.pop.value);
 market = eval(form.market.value)/100;
 vehMiles = pop*market*milesPerYear;
 time = (cost/toll)/vehMiles;
 years = Math.floor(time);
 time = time-years;
 months = Math.round(time*12);
 form.years.value = years;
 form.months.value = months;

}


function turnGs(form) {
 speed = eval(form.speed.value);
 speed = speed*5280/3600;
 radius = eval(form.rad.value);
 radius = radius*5280;
 acc = speed*speed/radius;
 acc = acc/32;

 form.acc.value = Math.round(acc*1000)/1000;
}

function MAXradius(form) {
 acc = eval(form.acc.value);
 acc = acc*32;
 speed = eval(form.speed.value);
 speed = speed*5280/3600;
 radius = speed*speed/acc;

 form.radmi.value = Math.round(radius/5280);
 form.radft.value = Math.round(radius);
}

function MAXspeed(form) {
 acc = eval(form.acc.value);
 acc = acc*32;
 radius = eval(form.rad.value);
 radius = radius*5280;
 speed = Math.sqrt(radius*acc);
 speed = speed*3600/5280;

 form.maxspeed.value = Math.round(speed);
}


function preset(form) {
  form.accPower.value = 0;
  form.v2Power.value = 0;
  form.mpg.value = 0;

 if (form.carType.value == "tritrack"){
  form.carWeight.value = 300;
  form.numPass.value = 4;
  form.v1.value = 40;
  form.acc.value = 1;
  form.v2.value = 180;
  form.drag.value = .09;
  form.area.value = 13.6;
  form.friction.value = .004;
 }
 if (form.carType.value == "sulev"){
  form.carWeight.value = 2800;
  form.numPass.value = 5;
  form.v1.value = 0;
  form.acc.value = .22;
  form.v2.value = 60;
  form.drag.value = .28;
  form.area.value = 24;
  form.friction.value = 0.015;
 }
 if (form.carType.value == "sedan"){
  form.carWeight.value = 3250;
  form.numPass.value = 5;
  form.v1.value = 0;
  form.acc.value = .5;
  form.v2.value = 60;
  form.drag.value = .32;
  form.area.value = 26;
  form.friction.value = 0.015;
 }
 if (form.carType.value == "truck"){
  form.carWeight.value = 5000;
  form.numPass.value = 2;
  form.v1.value = 0;
  form.acc.value = .35;
  form.v2.value = 60;
  form.drag.value = .45;
  form.area.value = 40;
  form.friction.value = 0.015;
 }
 if (form.carType.value == "suv"){
  form.carWeight.value = 6500;
  form.numPass.value = 6;
  form.v1.value = 0;
  form.acc.value = .25;
  form.v2.value = 60;
  form.drag.value = .53;
  form.area.value = 41;
  form.friction.value = 0.015;
 }
 if (form.carType.value == "clear"){
  form.carWeight.value = 0;
  form.numPass.value = 0;
  form.v1.value = 0;
  form.acc.value = 0;
  form.v2.value = 0;
  form.drag.value = 0.00;
  form.area.value = 0;
  form.friction.value = 0.0;
 }

}


function horsePower(form){
 gravity = 32.17405;
 carWeight = eval(form.carWeight.value);
 passWeight = eval(form.passWeight.value);
 numPass = eval(form.numPass.value);
 weight = carWeight + numPass*passWeight;
 mass = weight/gravity;
 v1 = eval(form.v1.value);
 v1 = v1*5280/3600;
 v2 = eval(form.v2.value);
 v2 = v2*5280/3600;
 acc = eval(form.acc.value);
 acc = acc*gravity;
 drag = eval(form.drag.value);
 area = eval(form.area.value);
 air = .0023769
 friction = eval(form.friction.value);

 v2AirDrag = (v2*v2)*drag*area*air/2;
 v2Drag = v2AirDrag + weight*friction;
 v2Power = (v2Drag * v2)/550;
 form.v2Power.value = Math.round(v2Power*10)/10;

 time = (v2-v1)/acc;
 dist = ((v2*v2)-(v1*v1))/(2*acc);

 accAirDrag = ((dist/time)*(dist/time))*drag*area*air/2;
 accDrag = weight*friction + accAirDrag;
 
 accPower = (accDrag*dist + mass*acc*dist + weight*20)/time;
 form.accPower.value = Math.round(accPower/550);

 mpg = (v2*3600/5280)/(v2Power*.0169652);
 if (form.carType.value != "tritrack"){mpg = mpg*.13;}
 if (form.carType.value == "sulev"){mpg = mpg*2;}
 form.mpg.value = Math.round(mpg);

}

function accelerate(form) {

v1 = eval(form.v1.value)*5280/3600;
v2 = eval(form.v2.value)*5280/3600;
acc = eval(form.acc.value)*32;
dist = ((v2*v2)-(v1*v1))/(2*acc);
dist = Math.round(dist);
form.dist.value = dist;
time = (v2-v1)/acc;
time = Math.round(time*10)/10;
form.time.value = time;
}


function cityGrid(form) {

 dim1 = eval(form.dim1.value);
 dim2 = eval(form.dim2.value);
 spacing = eval(form.spacing.value);
 miles = (dim1/spacing)*dim2 + (dim2/spacing*dim1);
 miles = Math.round(miles);
 form.miles.value = miles;
}


function CostPerMile(form) {
 length = 60;
 load = 1020;
 trackCost = 110000;
 pierCost = 500;
 newPass = eval(form.numPass.value) * eval(form.peopleLoad.value);
 newLoad = eval(form.carLoad.value) + newPass;
 ratio = newLoad/load;
 newLength = Math.pow(ratio,.33);
 numPiers = 5280/newLength;
 cost = trackCost + numPiers*pierCost;
 form.cost.value = Math.round(cost/100)*100;
 form.length.value = newLength;
}

function openWindow(address,name) {

 newWindow = window.open(address,name);
 newWindow.focus();
}


