// JavaScript Document

			// function reduceTotal(JQuery targetElement, float reductionAmount)
			function reduceTotal(targetElement, reductionAmount) {
				newTotal =  parseFloat(targetElement.html()) - parseFloat(reductionAmount);
				newTotal = Math.round(newTotal*100)/100;
				targetElement.html(newTotal);
			}


			function setDistanceUnits(economyUnits) {
				if (economyUnits == "L/100km") {
					$("#distance-units").html("km");
				} else {
					$("#distance-units").html("miles");
				}
			}	
			// this is all the stuff that runs once the DOM for the page is ready, like onLoad but without the wait for images.
			$(document).ready(function(){

				showHideTable($("#vehicle-summary"), $("#vehicle-emissions-total"));

				// add the code to delete an entry from the summary list on clicking the delete link.
				$(".delete_entry").click( function() {
					// check the user really wants to do that.
					var answer = confirm("Delete this entry?");
					if (answer) {
						// hide the record from the page.
						$(this).parent().parent().hide();

						reduceTotal($("#vehicle-emissions-total"), parseFloat($(this).parent().prev().html()));

						// setup the URL to the PHP page that will actually remove the record from the DB.
						deleteURL = "./includes/delete-db-record.php?action=deleterecord&table=emissions&id=" + $(this).attr('id');

						// do an AJAX call in the backvehicle to delete the DB record.
						$.get(deleteURL);
						updateTotalDisplay();
						showHideTable($("#vehicle-summary"), $("#vehicle-emissions-total"));
					}
					});

					$("input[@name='calculation-or-fuel']").click(function(){
						recalculate();
					});

					$("#vehicle-fuel").change( function() {
						recalculate();
						});

					$("input[@name='distance-period-multiplier']").click(function(){
						recalculate();
					});	

					$("input[@name='fuel-period-multiplier']").click(function(){
						recalculate();
					});	

					$("#fuel-economy-value").change( function() {
						recalculate();
						});		

					$("#economy-units").change( function() {
						recalculate();
						});	

					$("#driving-distance").change( function() {
						recalculate();
						});		


					$("#vehicle-fuel-usage").change( function() {
						recalculate();
						});

					$("#fuel-unit").change( function() {
						recalculate();
						});

					$("#fuel-period-multiplier").change( function() {
						recalculate();
						});


			}); // $(document).ready ENDS


			function calculateVehicleEmissions(vehicleFuelMultiplier, vehicleEconomyValue, vehicleEconomyUnit, distance, periodMultiplier) {
				var emissions;
				var kmPerYear;
				var lPerKM;
				var litresFuel;
				var gallonsFuel;

				emissions = 0;

				// multipliers to convert efficiency values to litres of fuel per km.
				if (vehicleEconomyUnit == "L/100km") {
					lPerKM = vehicleEconomyValue / 100;
					litresFuel = (distance * lPerKM) * periodMultiplier;
				} else if (vehicleEconomyUnit == "MPG") {
					lPerKM = 2.3521 / vehicleEconomyValue;
					litresFuel = ((distance * 1.6093) * lPerKM) * periodMultiplier;
				}

				// basic formula for vehicle emissions is:
				// fuel multiplier * fuel used

				emissions = vehicleFuelMultiplier * litresFuel;

				emissions = emissions / 1000; // convert from kg to tonnes.

				emissions = Math.round(emissions * 100)/100; // round off to two decimal places.

				return emissions;

			}

			function calculateVehicleEmissionsFuel(vehicleFuelMultiplier, vehicleFuelAmount, vehicleFuelUnit,  vehiclePeriodMultiplier) {
				var emissions;
				var litresFuel;

				emissions = 0;

				if (vehicleFuelUnit == "gallons") {
					litresFuel = vehicleFuelAmount * 3.785;
				} else {
					litresFuel = vehicleFuelAmount;
				}

				litresFuel = litresFuel * vehiclePeriodMultiplier;

				emissions = vehicleFuelMultiplier * litresFuel;

				emissions = emissions / 1000; // convert from kg to tonnes.

				emissions = Math.round(emissions * 100)/100; // round off to two decimal places.

				return emissions;
			}

			function displayVehicleEmissions(emissionValue) {
				$("span#totalVehicleEmissions").html(emissionValue);
				$("#totalVehicleEmissionsSection").css('display', 'block');
				$("#hidden-vehicle-emissions").val(emissionValue);
			}


			function updateDistance(distanceElement, newValue) {
				distanceElement.html(newValue);
			}

			function recalculate() {

				if ( $("input[@name='calculation-or-fuel']:checked").val() == 'calculation-option' ) {
					var emissions = calculateVehicleEmissions($("#vehicle-fuel").val(), $("#fuel-economy-value").val(), $("#economy-units").val(), $("#driving-distance").val(), $("input[@name='distance-period-multiplier']:checked").val());
					var selectedPeriod = $("input[@name='distance-period-multiplier']:checked").attr('id');
					$("#hidden-distance-period").val(selectedPeriod);
				} else if ( $("input[@name='calculation-or-fuel']:checked").val() == 'fuel-option' ) {
					var emissions = calculateVehicleEmissionsFuel($("#vehicle-fuel").val(), $("#vehicle-fuel-usage").val(), $("#fuel-unit").val(),  $("input[@name='fuel-period-multiplier']:checked").val());
					var selectedPeriod = $("input[@name='fuel-period-multiplier']:checked").attr('class');
					$("#hidden-fuel-period").val(selectedPeriod);
				}

				// if we have emissions then display emission figure enable the submit button.
				if (emissions > 0) {
					displayVehicleEmissions(emissions);
					$("#add_vehicle").disabled = false;
					$("#add_vehicle").attr('disabled', false);
				} else if ( emissions == 0 ) {
					displayVehicleEmissions( '0' );
				}

				// record some stuff in hidden form fields.
				var selectedFuel = $("#vehicle-fuel option:selected").text()
				$("#hidden-vehicle-fuel").val(selectedFuel);



				if (selectedPeriod == "one-off") {
					$("#period-descriptor").html("");
					$("#hidden-vehicle-emissions-period").val("one-off");
				} else {
					$("#period-descriptor").html("&nbsp;per year");
					$("#hidden-vehicle-emissions-period").val("year");				
				}

				setDistanceUnits($("#economy-units").val());

			}



