/*
 * Javascript functions for MPG Convertor
 * Last Updated: 2007-12-07
 */
 
function checkForm(what) {
	if (!(what.UserName.value.length > 0 && what.PassWord.value.length > 0))
		return false;

	what.sb.disabled = true;
	what.sb.value = "Please wait...";
	return true;
}


/*
 * MPG Calculator
 */
 
function calculateMpg(cost, milesCovered, price, decimalPlaces) {
	// UK Gallons per litre.
	var gallonsPerLitre = 0.219969157;

	// Convert pence to pounds.
	price /= 100.0;

	// Convert cost to gallons.
	var gallons = gallonsPerLitre*(cost/price);

	// Calculate MPG.
	var mpg = milesCovered/gallons;

	// Return with the specified number of decimal places.
	return round(mpg, decimalPlaces);
}


function  costPerMile(miles, cost, decimalPlaces) {
	return round((cost*100)/miles, decimalPlaces);
}


function getMpg(mpgform) {
	for (var i=0; i < mpgform.elements.length-3; i++)
		if (!(/^\d+(\.\d+)?$/).test(mpgform.elements[i].value) || !mpgform.elements[i].value) {
			mpgform.elements[i].value = "?";
			mpgform.elements[i].select();
			return;
		}

	mpgform.mpg.value = calculateMpg(mpgform.fuelUsed.value,
		mpgform.milesCovered.value, mpgform.fuelCost.value, 1);

	mpgform.costPerMile.value = costPerMile(mpgform.milesCovered.value, mpgform.fuelUsed.value, 2);
}


function round(num, decimalPlaces) {
	decimalPlaces = Math.pow(10.0, decimalPlaces);
	return Math.round(num*decimalPlaces)/decimalPlaces;
}
