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

This script provides all functions for natural gas calculator.
**********************************************************************/

// Natty Gas

function chooseGasFuel(type) {
	switch(type) {
		case "NG":
			document.getElementById('ng_time_month').checked = true;
			if (country == 'uk') {
				showDiv('calcNGTimeframeRow');
				showDiv('UKNGUnitSelectorDiv');
				showDiv('calcNGKWHMonthlyRow');
			} else {
				showDiv('calcNGTimeframeRow');
				showDiv('calcNGThermsMonthlyRow');			
			}
			hideDiv('calcNGThermsYearlyRow');
			hideDiv('calcNGTotalThermsRow');
			hideDiv('calcLPGTotalGallonsRow');
			document.getElementById('lpg_total').value = '';
			break;
		case "LPG":
			document.getElementById('ng_time_month').checked = true;
			hideDiv('calcNGTimeframeRow');
			hideDiv('calcNGThermsMonthlyRow');
			hideDiv('calcNGThermsYearlyRow');
			hideDiv('calcNGTotalThermsRow');
			showDiv('calcLPGTotalGallonsRow');
			document.getElementById('lpg_total').value = '';
			break;
	}
}

function chooseNGCalcMethod(meth) {
	hideDiv('calcNGKWHMonthlyRow');
	hideDiv('calcNGKWHYearlyRow');
	hideDiv('calcNGTotalKWHRow');
	hideDiv('calcNGm3MonthlyRow');
	hideDiv('calcNGm3YearlyRow');
	hideDiv('calcNGTotalm3Row');

	switch(meth) {
		case "monthly":
			if (country == 'us') {
				hideDiv('calcNGThermsYearlyRow');
				hideDiv('calcNGTotalThermsRow');
				showDiv('calcNGThermsMonthlyRow');
			} else if (country == 'uk') {
				showDiv('UKNGUnitSelectorDiv');
				if (document.getElementById('ng_ukunits_kwh').checked) {
					showDiv('calcNGKWHMonthlyRow');
				} else if (document.getElementById('ng_ukunits_m3').checked) {
					showDiv('calcNGm3MonthlyRow');
				}
			}
			break;
		case "yearly":
			if (country == 'us') {
				hideDiv('calcNGThermsMonthlyRow');
				hideDiv('calcNGTotalThermsRow');
				showDiv('calcNGThermsYearlyRow');
			} else if (country == 'uk') {
				showDiv('UKNGUnitSelectorDiv');
				if (document.getElementById('ng_ukunits_kwh').checked) {
					showDiv('calcNGKWHYearlyRow');
				} else if (document.getElementById('ng_ukunits_m3').checked) {
					showDiv('calcNGm3YearlyRow');
				}
			}
			break;
		case "custom":
			if (country == 'us') {
				hideDiv('calcNGThermsMonthlyRow');
				hideDiv('calcNGThermsYearlyRow');
				showDiv('calcNGTotalThermsRow');
			} else if (country == 'uk') {
				showDiv('UKNGUnitSelectorDiv');
				if (document.getElementById('ng_ukunits_kwh').checked) {
					showDiv('calcNGTotalKWHRow');
				} else if (document.getElementById('ng_ukunits_m3').checked) {
					showDiv('calcNGTotalm3Row');
				}
			}
			break;
		default:
			break;
	}
}

function chooseUKUnits(u) {
	hideDiv('calcNGKWHMonthlyRow');
	hideDiv('calcNGm3MonthlyRow');
	hideDiv('calcNGKWHYearlyRow');
	hideDiv('calcNGm3YearlyRow');
	hideDiv('calcNGTotalKWHRow');
	hideDiv('calcNGTotalm3Row');
	
	var unit = (u == "kwh") ? "KWH" : "m3";
	if (document.getElementById('ng_time_month').checked) {
		showDiv('calcNG' + unit + 'MonthlyRow');
	} else if (document.getElementById('ng_time_year').checked) {
		showDiv('calcNG' + unit + 'YearlyRow');
	} else if (document.getElementById('ng_time_custom').checked) {
		showDiv('calcNGTotal' + unit + 'Row');
	}
	hideDiv('calcGasSubmitRow');
	showDiv('calcGasSubmitRow');
}

var gas_usage;
var gas_type;
var gas_unit;

function calcGasEmissions() {
	var tpt = 0.00525;
	var tpkwh = 0.0001791825;
	var tpm3 = 0.0019109601;
	var tpg = 0.005747;
	var calc_id = document.getElementById('calculationid').value;
	if ((document.getElementById('ng_therms_permonth').value=='') && (document.getElementById('gas_typeNG').checked==true) && (document.getElementById('ng_time_month').checked==true)) { alert('Please enter a usage amount to offset.'); return false; }
	if ((document.getElementById('ng_therms_peryear').value=='') && (document.getElementById('gas_typeNG').checked==true) && (document.getElementById('ng_time_year').checked==true)) { alert('Please enter a usage amount to offset.'); return false; }
	if ((document.getElementById('ng_therms_total').value=='') && (document.getElementById('gas_typeNG').checked==true) && (document.getElementById('ng_time_custom').checked==true)) { alert('Please enter a usage amount to offset.'); return false; }	
	if ((document.getElementById('ng_therms_months').value=='') && (document.getElementById('gas_typeNG').checked==true)) { alert('Please enter a time period to offset.'); return false; }
	if ((document.getElementById('lpg_total').value=='') && (document.getElementById('gas_typeLPG').checked==true)) { alert('Please enter a usage amount to offset.'); return false; }	
	if (country=='uk') {
		//Month Validation
		if ((document.getElementById('ng_time_month').checked==true) && (document.getElementById('ng_m3_permonth').value=='') && (document.getElementById('ng_ukunits_m3').checked==true)) { alert('Please enter a usage amount to offset.'); return false; }
		if ((document.getElementById('ng_time_month').checked==true) && (document.getElementById('ng_kwh_permonth').value=='') && (document.getElementById('ng_ukunits_kwh').checked==true)) { alert('Please enter a usage amount to offset.'); return false; }
		
		//Year Validation
		if ((document.getElementById('ng_time_year').checked==true) && (document.getElementById('ng_m3_peryear').value=='') && (document.getElementById('ng_ukunits_m3').checked==true)) { alert('Please enter a usage amount to offset.'); return false; }
		if ((document.getElementById('ng_time_year').checked==true) && (document.getElementById('ng_kwh_peryear').value=='') && (document.getElementById('ng_ukunits_kwh').checked==true)) { alert('Please enter a usage amount to offset.'); return false; }
		
		//Custom Validation
		if ((document.getElementById('ng_time_custom').checked==true) && (document.getElementById('ng_m3_total').value=='') && (document.getElementById('ng_ukunits_m3').checked==true)) { alert('Please enter a usage amount to offset.'); return false; }
		if ((document.getElementById('ng_time_custom').checked==true) && (document.getElementById('ng_kwh_total').value=='') && (document.getElementById('ng_ukunits_kwh').checked==true)) { alert('Please enter a usage amount to offset.'); return false; }
	}
	
	if (country == "uk" || (document.getElementById('gas_typeNG').checked || document.getElementById('gas_typeLPG').checked)) {
		// Let's calculate natural gas offset.
		if (country == "uk" || document.getElementById('gas_typeNG').checked) {
			if (document.getElementById('ng_time_month').checked || document.getElementById('ng_time_year').checked || document.getElementById('ng_time_custom').checked) {
				gas_type = "Natural Gas";
				if (document.getElementById('ng_time_month').checked) {
					if (country != "uk") {
						var therms = parseInt(document.getElementById('ng_therms_permonth').value);
						var cycles = parseInt(document.getElementById('ng_therms_months').value);
						gas_usage = therms * cycles;
						gas_unit = "therms";
						var total = gas_usage * tpt;
					} else {
						if (document.getElementById('ng_ukunits_kwh').checked) {
							var kwh = parseInt(document.getElementById('ng_kwh_permonth').value);
							var cycles = parseInt(document.getElementById('ng_kwh_months').value);
							gas_usage = kwh * cycles;
							gas_unit = "KWH";
							var total = gas_usage * tpkwh;
						} else if (document.getElementById('ng_ukunits_m3').checked) {
							var m3 = parseInt(document.getElementById('ng_m3_permonth').value);
							var cycles = parseInt(document.getElementById('ng_m3_months').value);
							gas_usage = m3 * cycles;
							gas_unit = "m3";
							var total = gas_usage * tpm3;
						}
					}
				} else if (document.getElementById('ng_time_year').checked) {
					if (country != "uk") {
						var therms = parseInt(document.getElementById('ng_therms_peryear').value);
						var cycles = parseInt(document.getElementById('ng_therms_years').value);
						gas_usage = therms * cycles;
						gas_unit = "therms";
						var total = gas_usage * tpt;
					} else {
						if (document.getElementById('ng_ukunits_kwh').checked) {
							var kwh = parseInt(document.getElementById('ng_kwh_peryear').value);
							var cycles = parseInt(document.getElementById('ng_kwh_years').value);
							gas_usage = kwh * cycles;
							gas_unit = "KWH";
							var total = gas_usage * tpkwh;
						} else if (document.getElementById('ng_ukunits_m3').checked) {
							var m3 = parseInt(document.getElementById('ng_m3_peryear').value);
							var cycles = parseInt(document.getElementById('ng_m3_years').value);
							gas_usage = m3 * cycles;
							gas_unit = "m3";
							var total = gas_usage * tpm3;
						}
					}
				} else {
					if (country != "uk") {
						gas_usage = parseInt(document.getElementById('ng_therms_total').value);
						gas_unit = "therms";
						var total = gas_usage * tpt;
					} else {
						if (document.getElementById('ng_ukunits_kwh').checked) {
							gas_usage = parseInt(document.getElementById('ng_kwh_total').value);
							gas_unit = "KWH";
							var total = gas_usage * tpkwh;
						} else if (document.getElementById('ng_ukunits_m3').checked) {
							gas_usage = parseInt(document.getElementById('ng_m3_total').value);
							gas_unit = "m3";
							var total = gas_usage * tpm3;
						}
					}			
				}
			
				total = total.toFixed(3);
				document.getElementById('calcGasCO2Value').value = total;
				var req = "action=addGasCalc&gas_type=" + gas_type + "&gas_usage=" + gas_usage + "&gas_unit=" + gas_unit + "&total=" + total + "&calc_id=" + calc_id;
				enqueueRequest(ajax_root + 'carbon_calc.php',req,"calcGasEmissionsRes");
			} else {
				alert("Please choose a timeframe for which you would like to calculate.");
			}
		// Let's calculate propane gas offset.
		} else if (document.getElementById('gas_typeLPG').checked) {
			gas_type = "Propane";
			gas_unit = "gal";
			var gallons = document.getElementById('lpg_total').value;
			gas_usage = gallons;
			var total = gallons * tpg;
			total = total.toFixed(3);
			//alert(total);
			document.getElementById('calcGasCO2Value').value = total;
			var req = "action=addGasCalc&gas_type=" + gas_type + "&gas_usage=" + gas_usage + "&gas_unit=" + gas_unit + "&total=" + total + "&calc_id=" + calc_id;
			enqueueRequest(ajax_root + 'carbon_calc.php',req,"calcGasEmissionsRes");
		} else {
			alert("Please choose a type of fuel to offset.");
		}
	} else {
		alert("Please choose a type of fuel to offset.");
	}
}

function calcGasEmissionsRes() {
	if (http.responseText) {
		//alert(http.responseText);
		var resp = processResult();
		if (resp.status == "success") {
			clearNaturalGasCalc();
			var co2 = document.getElementById('calcGasCO2Value').value;
			addGasResult(resp.newcalcid, gas_type, gas_usage, gas_unit, co2);
		}
	}
}

function addGasResult(gid, mg, yg, unit, co2) {
	var curr_total_co2 = document.getElementById('totalGasCO2Value').value;
	var nr = document.createElement("DIV");
	thetotals[curr_totals_row] = co2;
	nr.id = "totalsRow-" + curr_totals_row;
	nr.className = 'totalsRow';
	var newrow = "<div class='gasTotalCol_type'>" + mg + "</div>";
	newrow += "<div class='gasTotalCol_usage'>" + yg + " " + unit + "</div>";
	newrow += "<div class='gasTotalCol_CO2'>" + co2 + "</div>";
	newrow += "<div class='gasTotalCol_Remove'><img src='images/button_delete.gif' height='17' width='17' border='0' onClick=\"removeEmission(this,'gas')\"/></div>";
	newrow += "<div class='clearer'></div><input type='hidden' id='remotedata-" + curr_totals_row + "' value='" + gid + "'/>";
	nr.innerHTML = newrow;
	document.getElementById('gasTotalsRows').appendChild(nr);
	var new_total_co2 = (curr_total_co2 * 1) + (co2 * 1);
	new_total_co2 = new_total_co2.toFixed(3);
	document.getElementById('totalGasCO2Value').value = new_total_co2;
	addUpTotalCO2();
	setTotalText('gas',new_total_co2);
	curr_totals_row++;
}

function clearNaturalGasCalc() {
	document.getElementById('gas_typeNG').checked = false;
	document.getElementById('gas_typeLPG').checked = false;
	document.getElementById('ng_time_month').checked = true;
	document.getElementById('ng_time_year').checked = false;
	document.getElementById('ng_time_custom').checked = false;
	
	document.getElementById('ng_ukunits_kwh').checked = true;
	document.getElementById('ng_therms_permonth').value = "";
	document.getElementById('ng_therms_months').value = "12";
	document.getElementById('ng_kwh_permonth').value = "";
	document.getElementById('ng_kwh_months').value = "12";
	document.getElementById('ng_m3_permonth').value = "";
	document.getElementById('ng_m3_months').value = "12";
	document.getElementById('ng_therms_peryear').value = "";
	document.getElementById('ng_therms_years').value = "1";
	document.getElementById('ng_kwh_peryear').value = "";
	document.getElementById('ng_kwh_years').value = "1";
	document.getElementById('ng_m3_peryear').value = "";
	document.getElementById('ng_m3_years').value = "1";
	document.getElementById('ng_therms_total').value = "";
	document.getElementById('ng_kwh_total').value = "";
	document.getElementById('ng_m3_total').value = "";
	document.getElementById('lpg_total').value = "";
	
	if (country != "uk") {
		hideDiv('calcNGTimeframeRow');
		hideDiv('UKNGUnitSelectorDiv');
		hideDiv('calcNGKWHMonthlyRow');
	} else {
		showDiv('calcNGTimeframeRow');
		showDiv('UKNGUnitSelectorDiv');
		showDiv('calcNGKWHMonthlyRow');
	}
	
	hideDiv('calcNGThermsMonthlyRow');
	hideDiv('calcNGm3MonthlyRow');
	hideDiv('calcNGThermsYearlyRow');
	hideDiv('calcNGKWHYearlyRow');
	hideDiv('calcNGm3YearlyRow');
	hideDiv('calcNGTotalThermsRow');
	hideDiv('calcNGTotalKWHRow');
	hideDiv('calcNGTotalm3Row');
	hideDiv('calcLPGTotalGallonsRow');
	hideDiv('calcNGTotalThermsRow');
}

