//Script corrected to work in all modern browsers on 05_08_06 by Bradley Flynn.

function doSubmit(){
	if (!Validate()){
		// Not validated
		doReset();
	}
		else
	{
		// Calculate
		Calculate();
	}
}

function doReset(){
    var eMilesPerYear = document.getElementById("MilesPerYear");
	var eTireCost = document.getElementById("TireCost");
	var eGasPrice = document.getElementById("GasPrice");
	var eMPG = document.getElementById("MPG");
	
	eMilesPerYear.value = "13500";
	eTireCost.value = "145";
	eGasPrice.value = "3.60";
	eMPG.value = "";
	var eCalc = document.getElementById("nitronizeCalc");
    var eRes = document.getElementById("nitronizeCalcResult");
    
    eCalc.style.display = "block";
    eRes.style.display = "none";
}

function Calculate(){
    var mpy = document.getElementById("MilesPerYear").value;
    var agp = document.getElementById("GasPrice").value;
    var mpg = document.getElementById("MPG").value;
    var tir = document.getElementById("TireCost").value;  
    var amt = ((agp / mpg) * mpy) * .04; //.035;
    var sav = tir * .44444;
    var tot = sav + amt;

    var RFC = document.getElementById("resultRFC");
	var SAV = document.getElementById("resultSAV");
	var TOT = document.getElementById("resultTOT");
	
	var eCalc = document.getElementById("nitronizeCalc");
	var eRes = document.getElementById("nitronizeCalcResult");
	
	RFC.innerHTML = toCash(amt*100, "$", ",");
	SAV.innerHTML = "+ " + toCash(sav*100, "$",",",".")
	TOT.innerHTML = "= " + toCash(tot*100, "$",",",".")
	
	eCalc.style.display = "none";
	eRes.style.display = "block";
}

function Validate(){
	var eMilesPerYear = document.getElementById("MilesPerYear");
	var eTireCost = document.getElementById("TireCost");
	var eGasPrice = document.getElementById("GasPrice");
	var eMPG = document.getElementById("MPG");
	
    if (eMilesPerYear.value == "" || (!isNumeric(eMilesPerYear.value))){
        alert("Please enter a number for Miles Driven Per Year")
        return false;
    }
    if (eTireCost.value == "" || (!isNumeric(eTireCost.value))){
        alert("Please enter a number for Cost to Replace Tires")
        return false;
    }
    if (eGasPrice.value == "" || (!isNumeric(eGasPrice.value))){
		 alert("Please enter a number for Average Gas Price")
        return false;
    }
    if (eMPG.value == "" || (!isNumeric(eMPG.value))){
        alert("Please enter a number for MPG")
        return false;
    }
    if (eMPG.value < 1){
        alert("Please enter a number greater than 1 for MPG!")
        return false;
    }
    return true;  
}

// Validation Routines //
function isNumeric(str) {
	return str.match(/^[ ]*[+-]?\d*\.?\d+[ ]*$/);
}

// Formatting Routines //
function toCash(p, c, t, d) {
  /* Slightly modified from Michael Winter,
    <opsf4o6zuox13kvk@atlantis>, news:c.l.j, 2004-10-19

  * p - Number to format (in pence, below 1E21)
  * c - Currency symbol to use (defaults to none)
  * t - Thousands separator (defaults to none)
  * d - Decimal separator (defaults to dot)

 

  Outputs a number of the form  -cntnnntnnndnn
  For example, toCash(142635.7, '$', ',') produces $1,426.36
  */

  var s = (0 > p) ? '-' : ''
  var m = String(Math.round(Math.abs(p)))
  var j, k = '', f
  c = c || '' ; t = t || '' ; d = d || '.'

  while (m.length < 3) m = '0' + m
  f = m.substring((j = m.length - 2))

  while (j > 3) { k = t + m.substring(j - 3, j) + k ; j -= 3 }
  k = m.substring(0, j) + k
  return s + c + k + d + f }
