/*********************************************************************
File:		autos.js
Type:		Utility javascript.
Author:		Chris McHugh
Version:	1.0

This script provides all functions for autos calculator.
**********************************************************************/

function chooseCarCalcMethod(meth) {
	switch(meth) {
		case "monthly":
			showDiv('calcCarMonthlyRow');
			hideDiv('calcCarYearlyRow');
			hideDiv('calcCarTotalRow');
			document.getElementById('car_miles_permonth').value = '';
			document.getElementById('car_miles_months').value = '12';
			break;

		case "yearly":
			hideDiv('calcCarMonthlyRow');
			showDiv('calcCarYearlyRow');
			hideDiv('calcCarTotalRow');
			document.getElementById('car_miles_peryear').value = '';
			document.getElementById('car_miles_years').value = '1';
			break;

		case "custom":
			hideDiv('calcCarMonthlyRow');
			hideDiv('calcCarYearlyRow');
			showDiv('calcCarTotalRow');
			document.getElementById('car_miles_total').value = '';
			break;
	}
	showDiv('calcCarFormMain');
	getCarYears();
}

function getCarYears() {
	document.getElementById('car_manufacturer').options.length = 0;
	document.getElementById('car_model').options.length = 0;
	document.getElementById('car_trans').options.length = 0;
	document.getElementById('car_fuel').options.length = 0;
	document.getElementById('car_manufacturer').disabled = true;
	document.getElementById('car_model').disabled = true;
	document.getElementById('car_trans').disabled = true;
	document.getElementById('car_fuel').disabled = true;
	var req = "action=getAvailYears&country=" + country;
	enqueueRequest(ajax_root + 'carbon_calc.php',req,"carYearsResult");
}

function carYearsResult() {
	if (http.responseText) {
		do_auto_fetch = false;
		var resp = processResult();
		if (resp.status == "success") {
			// Make a new select drop down.
			var cy = createNewSelect('getCarMakes');

			if (resp.result.length > 1) {
				var el = document.createElement("OPTION");
				el.value = "";
				el.innerHTML = "Select";
				cy.appendChild(el);
				for (var i=0; i < resp.result.length; i++) {
					var el = document.createElement("OPTION");
					if ((resp.result[i].year==0) && (country=='us')) { 
						el.innerHTML='All - SchoolBus';
						el.value = 'All';
						cy.appendChild(el);
					} else if ((resp.result[i].year==0) && (country=='uk')) {
						//Do nothing.
					} else {
						el.value = resp.result[i].year;
						el.innerHTML = resp.result[i].year; 
						cy.appendChild(el);
					}
				}
			} else {
				var el = document.createElement("OPTION");
				
				if ((resp.result[i].year==0) && (country=='us')) { 
					el.innerHTML='All - SchoolBus';
					el.value = 'All';
					cy.appendChild(el);
				} else if ((resp.result[i].year==0) && (country=='uk')) {
					//Do nothing.
				} else {		
					el.innerHTML = resp.result[0].year;
					el.value = resp.result[0].year;
					cy.appendChild(el);
				}
				cy.appendChild(el);
				do_auto_fetch = true;
			}
			
			document.getElementById('car_year_div').replaceChild(cy, document.getElementById('car_year'));
			document.getElementById('select_temp').id = 'car_year';
			if (do_auto_fetch) getCarMakes();
		}
	}
}

function getCarMakes() {
	document.getElementById('car_model').options.length = 0;
	document.getElementById('car_trans').options.length = 0;
	document.getElementById('car_fuel').options.length = 0;
	document.getElementById('car_model').disabled = true;
	document.getElementById('car_trans').disabled = true;
	document.getElementById('car_fuel').disabled = true;
	var car_year = document.getElementById('car_year').value;
	var req = "action=getAvailMakes&car_year=" + car_year + "&country=" + country;
	enqueueRequest(ajax_root + 'carbon_calc.php',req,"carMakesResult");
}

function carMakesResult() {
	if (http.responseText) {
		do_auto_fetch = false;
		var resp = processResult();
		if (resp.status == "success") {
			// Make a new select drop down.
			var sel = createNewSelect('getCarModels');
			
			if (resp.result.length > 1) {
				var el = document.createElement("OPTION");
				el.value = "";
				el.innerHTML = "Select";
				sel.appendChild(el);
				for (var i=0; i < resp.result.length; i++) {
					var el = document.createElement("OPTION");
					el.value = resp.result[i].make;
					el.innerHTML = resp.result[i].make;
					sel.appendChild(el);
				}
			} else {
				var el = document.createElement("OPTION");
				el.value = resp.result[0].make;
				el.innerHTML = resp.result[0].make;
				sel.appendChild(el);
				do_auto_fetch = true;
			}
			document.getElementById('car_make_div').replaceChild(sel, document.getElementById('car_manufacturer'));
			document.getElementById('select_temp').id = 'car_manufacturer';
			if (do_auto_fetch) getCarModels();
		}
	}
}

function getCarModels() {
	document.getElementById('car_trans').options.length = 0;
	document.getElementById('car_fuel').options.length = 0;
	document.getElementById('car_trans').disabled = true;
	document.getElementById('car_fuel').disabled = true;
	//document.getElementById('car_miles').disabled = true;
	var car_year = document.getElementById('car_year').value;
	var car_make = document.getElementById('car_manufacturer').value;
	var req = "action=getAvailModels&car_year=" + car_year + "&car_make=" + car_make + "&country=" + country;
	enqueueRequest(ajax_root + 'carbon_calc.php',req,"carModelsResult");
	
}

function carModelsResult() {
	if (http.responseText) {
		do_auto_fetch = false;
		var resp = processResult();
		if (resp.status == "success") {
			// Make a new select drop down.
			var sel = createNewSelect('getCarTrans');

			if (resp.result.length > 1) {
				var el = document.createElement("OPTION");
				el.value = "";
				el.innerHTML = "Select";
				sel.appendChild(el);
				for (var i=0; i < resp.result.length; i++) {
					var el = document.createElement("OPTION");
					el.value = resp.result[i].model;
					el.innerHTML = resp.result[i].model;
					sel.appendChild(el);
				}
			} else {
				var el = document.createElement("OPTION");
				el.value = resp.result[0].model;
				el.innerHTML = resp.result[0].model;
				sel.appendChild(el);
				do_auto_fetch = true;
			}
			sel.style.width="465px";
			document.getElementById('car_model_div').replaceChild(sel, document.getElementById('car_model'));
			document.getElementById('select_temp').id = 'car_model';
			if (do_auto_fetch) getCarTrans();
		}
	}
}

function getCarTrans() {
	document.getElementById('car_fuel').options.length = 0;
	document.getElementById('car_fuel').disabled = true;
	var car_year = document.getElementById('car_year').value;
	var car_make = document.getElementById('car_manufacturer').value;
	var car_model = document.getElementById('car_model').value;
	var req = "action=getAvailTrans&car_year=" + car_year + "&car_make=" + car_make + "&car_model=" + car_model + "&country=" + country;
	enqueueRequest(ajax_root + 'carbon_calc.php',req,"carTransResult");
	
}

function carTransResult() {
	if (http.responseText) {
		do_auto_fetch = false;
		var resp = processResult();
		if (resp.status == "success") {
			// Make a new select drop down.
			var sel = createNewSelect('getCarFuels');
			if (resp.result.length > 1) {
				var el = document.createElement("OPTION");
				el.value = "";
				el.innerHTML = "Select";
				sel.appendChild(el);
				for (var i=0; i < resp.result.length; i++) {
					var el = document.createElement("OPTION");
					el.value = resp.result[i].trans;
					el.innerHTML = resp.result[i].trans;
					sel.appendChild(el);
				}
			} else {
				var el = document.createElement("OPTION");
				el.value = resp.result[0].trans;
				el.innerHTML = resp.result[0].trans;
				sel.appendChild(el);
				do_auto_fetch = true;
			}
			document.getElementById('car_trans_div').replaceChild(sel, document.getElementById('car_trans'));
			document.getElementById('select_temp').id = 'car_trans';
			if (do_auto_fetch) getCarFuels();
		}
	}
}

function getCarFuels() {
	//document.getElementById('car_miles').disabled = true;
	var car_year = document.getElementById('car_year').value;
	var car_make = document.getElementById('car_manufacturer').value;
	var car_model = document.getElementById('car_model').value;
	var car_trans = document.getElementById('car_trans').value;
	var req = "action=getAvailFuels&car_year=" + car_year + "&car_make=" + car_make + "&car_model=" + car_model + "&car_trans=" + car_trans + "&country=" + country;
	enqueueRequest(ajax_root + 'carbon_calc.php',req,"carFuelsResult");
}

function carFuelsResult() {
	if (http.responseText) {
		//alert(http.responseText);
		do_auto_fetch = false;
		var resp = processResult();
		if (resp.status == "success") {
			// Make a new select drop down.
			var sel = createNewSelect('showMilesField');
			if (resp.result.length > 1) {
				var el = document.createElement("OPTION");
				el.value = "";
				el.innerHTML = "Select";
				sel.appendChild(el);
				for (var i=0; i < resp.result.length; i++) {
					var el = document.createElement("OPTION");
					el.value = resp.result[i].fuel;
					el.innerHTML = resp.result[i].fuel;
					sel.appendChild(el);
				}
			} else {
				var el = document.createElement("OPTION");
				el.value = resp.result[0].fuel;
				el.innerHTML = resp.result[0].fuel;
				sel.appendChild(el);
				do_auto_fetch = true;
			}
			document.getElementById('car_fuels_div').replaceChild(sel, document.getElementById('car_fuel'));
			document.getElementById('select_temp').id = 'car_fuel';
			if (do_auto_fetch) showMilesField();
		}
	}
}

function showMilesField() {
	if (document.getElementById('car_fuel').value != "") {
	}
}

var calc_car_miles;

function carCO2() {
	var formReady=0;
	if (document.getElementById('car_time_month').checked) {
		var miles = parseInt(document.getElementById('car_miles_permonth').value);
		var cycles = parseInt(document.getElementById('car_miles_months').value);
		if ((miles>0) && (cycles>0)) { formReady=1; }				
	} else if (document.getElementById('car_time_year').checked) {
		var miles = parseInt(document.getElementById('car_miles_peryear').value);
		var cycles = parseInt(document.getElementById('car_miles_years').value);
		if ((miles>0) && (cycles>0)) { formReady=1; }		
	} else if (document.getElementById('car_time_custom').checked) {
		var miles = parseInt(document.getElementById('car_miles_total').value);
		var cycles = 1;
		if (miles>0) { formReady=1; }
	}
	var car_year = document.getElementById('car_year').value;
	var car_make = document.getElementById('car_manufacturer').value;
	var car_model = document.getElementById('car_model').value;
	var car_trans = document.getElementById('car_trans').value;
	var car_fuel = document.getElementById('car_fuel').value;
	calc_car_miles = miles * cycles;
	var calc_id = document.getElementById('calculationid').value;
	if (formReady==1) {	
		var req = "action=getCarOutput&car_year=" + car_year + "&car_make=" + car_make + "&car_model=" + car_model + "&car_trans=" + car_trans + "&car_fuel=" + car_fuel + "&car_miles=" + calc_car_miles + "&calc_id=" + calc_id + "&country=" + country;
		//alert(ajax_root + 'carbon_calc.php?' + req);
		enqueueRequest(ajax_root + 'carbon_calc.php',req,"carCO2Result");
	} else {
		alert("Please complete all of the fields.");
	}
}

function carCO2Result() {
	if (http.responseText) {
		//alert(http.responseText);
		var resp = processResult();
		if (resp.status == "success") {
			document.getElementById('calcCarCO2Value').value = resp.result;
			var car_year = document.getElementById('car_year').value;
			var car_make = document.getElementById('car_manufacturer').value;
			var car_model = document.getElementById('car_model').value;
			//var car_miles = document.getElementById('car_miles').value;
			addCarResult(resp.newcalcid,car_year,car_make,car_model,calc_car_miles,resp.result);
			clearCarCalc();
			document.getElementById('carsNextStepButton').style.display = "inline";
		}
	}
}

function addCarResult(cid,year,make,model,miles,co2) {
	var curr_total_co2 = document.getElementById('totalCarCO2Value').value;
	var nr = document.createElement("DIV");
	thetotals[curr_totals_row] = co2;
	nr.id = "totalsRow-" + curr_totals_row;
	nr.className = 'totalsRow';
	var newrow = "<div class='carTotalCol_Year'>" + year + "</div>";
	newrow += "<div class='carTotalCol_Make'>" + make + "</div>";
	newrow += "<div class='carTotalCol_Model'>" + model + "</div>";
	newrow += "<div class='carTotalCol_Miles'>" + miles + "</div>";
	newrow += "<div class='carTotalCol_CO2'>"+ co2 +"</div>";
	newrow += "<div class='carTotalCol_Remove'><img src='images/button_delete.gif' height='17' width='17' border='0' onClick=\"removeEmission(this,'car')\"/></div>";
	newrow += "<div class='clearer'></div><input type='hidden' id='remotedata-" + curr_totals_row + "' value='" + cid + "'/>";
	nr.innerHTML = newrow;
	document.getElementById('carTotalsRows').appendChild(nr);
	var new_total_co2 = (curr_total_co2 * 1) + (co2 * 1);
	new_total_co2 = new_total_co2.toFixed(3);
	document.getElementById('totalCarCO2Value').value = new_total_co2;
	addUpTotalCO2();
	setTotalText('cars',new_total_co2);
	curr_totals_row++;
}


function clearCarCalc() {
	document.getElementById('car_year').options.length = 0;
	document.getElementById('car_manufacturer').options.length = 0;
	document.getElementById('car_model').options.length = 0;
	document.getElementById('car_trans').options.length = 0;
	document.getElementById('car_fuel').options.length = 0;
	document.getElementById('car_year').disabled = true;
	document.getElementById('car_manufacturer').disabled = true;
	document.getElementById('car_model').disabled = true;
	document.getElementById('car_trans').disabled = true;
	document.getElementById('car_fuel').disabled = true;
	
	document.getElementById('car_miles_permonth').value = "";
	document.getElementById('car_miles_months').value = "12";
	document.getElementById('car_miles_peryear').value = "";
	document.getElementById('car_miles_years').value = "1";
	document.getElementById('car_miles_total').value = "";

	
	//document.getElementById('car_miles').disabled = true;
	//document.getElementById('car_miles').value = "";
	getCarYears();
}



