function digitsOnly(pstrSource) 
{ 
	var m_strOut = new String(pstrSource); 
	m_strOut = m_strOut.replace(/[^0-9]/g, ''); 

	return m_strOut; 
}

function checkNum(num) { 
	var i = parseFloat(num);
	if (isNaN(i)) { i = 0; }
	return i;
}

// Calculate total trees
function calcTotaltrees() { 
	var air = checkNum((jQuery("#final_airtravel").html()));
	var motor = checkNum((jQuery("#final_motortravel").html()));
	var elect = checkNum((jQuery("#final_electricity").html()));
	var totaltrees =  air + motor + elect;
	jQuery("#final_total").html(totaltrees);
	jQuery("#plant_input").attr("value", totaltrees / 1000);
}

jQuery.noConflict();

jQuery(document).ready(function(){	
	// Generic Loading Page
	jQuery(".contentpage").click(function() { 
		if (jQuery("#pageloaded").attr("value") == jQuery(this).attr("href")) {
			jQuery("#pageloaded").attr({value: ""});
			jQuery("#managercontent").html("");
		} else { 
			jQuery("#pageloaded").attr({value: jQuery(this).attr("href")});
			jQuery("#managercontent").html("Loading...");
			var url = "manager/" + jQuery(this).attr("href").substring(1);
			$.post(url, function(data) { 
				jQuery("#managercontent").html(data);
				jQuery(function(){ jQuery('textarea.fck').fck({path: 'include/fckeditor/', height:300, toolbar:'MyToolBar'}); 	});
			});
		}
	});

	jQuery("#addflight").click(function () { 
		var flightno = parseInt(jQuery("#flightno").attr("value")) + 1;
		jQuery("#flightcount").attr("value", parseInt(jQuery("#flightcount").attr("value")) + 1);
		jQuery("#flightno").attr("value", flightno);
		jQuery("#flights").css("height", "30px");
		jQuery("#flights").css("line-height", "30px");
		var str = "<div id='col1_" + flightno + "' class='travel1'>" + jQuery("#duration").attr("value") + "</div><div id='col2_" + flightno + "' class='travel2'>" + jQuery("#noflights").attr("value") + "</div><div id='col3_" + flightno + "' class='travel3'><a class='removeflight' id='f_" + flightno + "' href='#'>X</a></div>";
		jQuery("#flights").append(str);

		var str = "#f_" + flightno;
		jQuery(str).click(function() { 
			//alert(str.substring(2));
			jQuery("#flightcount").attr("value", parseInt(jQuery("#flightcount").attr("value")) - 1);
			if (jQuery("#flightcount").attr("value") == 0) { 
				jQuery("#flights").css("height", "0px");
				jQuery("#flights").css("line-height", "0px");
			}
			var col1 = "#col1_" + flightno;
			var col2 = "#col2_" + flightno;
			var col3 = "#col3_" + flightno;
			jQuery(col1).remove();
			jQuery(col2).remove();
			jQuery(col3).remove();
		});
	});

	jQuery("#tabnav li").click(function () { 
		var block = jQuery(this).attr("id").substring(5);		
		jQuery(".content").addClass("hide");
		jQuery("#" + block).removeClass("hide");
		jQuery("#tabnav li").removeClass("whitetab");
		jQuery("#menu_" + block).addClass("whitetab");
	});
	jQuery(".menuselect").click(function () { 		
		var block = jQuery(this).attr("rel");		
		jQuery(".content").addClass("hide");
		jQuery("#" + block).removeClass("hide");
		jQuery("#tabnav li").removeClass("whitetab");
		jQuery("#menu_" + block).addClass("whitetab");
	});

	// Calculate Motor Travel
	jQuery("#calculatemotor").click(function () { 
		var CAR_CO2_PER_KM = 0.22;
		var loss_factor = 1/0.6;
		var distance = jQuery("#distance").attr("value");
		var vehicletype = jQuery('#vehicletype :selected').text();
		distance = digitsOnly(distance);
		var vehiclefactor = jQuery('#vehicletype').val();
		jQuery("#motortravel_distance").html(distance);
		var distance_co = Math.round(distance * vehiclefactor);
        	var distance_carbon = Math.round((distance_co / 44) * 12); 
		var trees = Math.ceil((distance_co / 1000) * 2.67 * 10) / 10;
		jQuery("#motortravel_vehicletype").html(vehicletype);
		jQuery("#motortravel_co2").html(distance_co);
		jQuery("#motortravel_c").html(distance_carbon);
		jQuery("#motortravel_trees").html(trees);

		jQuery("#final_motortravel").html(distance_co);
		calcTotaltrees();

		jQuery("#results_motortravel").slideDown("slow");
		jQuery("#inputs_motortravel").slideUp("slow");		
	});

	jQuery("#resetmotor").click(function () { 
		jQuery("#results_motortravel").slideUp("slow");
		jQuery("#inputs_motortravel").slideDown("slow");
	});

	jQuery("#resetelectricity").click(function () { 
		jQuery("#results_electricity").slideUp("slow");
		jQuery("#input_electricity").slideDown("slow");
	});

	jQuery("#resetpaper").click(function () { 
		jQuery("#results_paper").slideUp("slow");
		jQuery("#inputs_paper").slideDown("slow");
	});

	// Calculate Electricity
	jQuery("#calculateelectricity").click(function () { 
		var loss_factor = 1/0.6;
		var electricity_consumption = jQuery("#electricity_consumption").attr("value");
		electricity_consumption = digitsOnly(electricity_consumption);
		var electricity_consumption2 = Math.round(electricity_consumption * 0.978);

		var electricity_c = Math.round((electricity_consumption2 / 44) * 12);
		var electricity_trees =  Math.ceil((electricity_consumption2 / 1000) * 2.67 * 10) / 10;

		jQuery("#electricity_monthly").html(Math.round(electricity_consumption / 12));
		jQuery("#electricity_annual").html(electricity_consumption);
		jQuery("#electricity_co2").html(electricity_consumption2);
		jQuery("#electricity_c").html(electricity_c);
		jQuery("#electricity_trees").html(electricity_trees);

		jQuery("#final_electricity").html(electricity_consumption2);
		calcTotaltrees();

		jQuery("#results_electricity").slideDown("slow");
		jQuery("#input_electricity").slideUp("slow");
	});

	// Calculate Paper
	jQuery("#calculatepaper").click(function () { 
		var loss_factor = 1/0.6;
		var REAMS_PER_TREE = 14;
		var REAMS_PER_TON = 400;

		var reams = Math.round(jQuery("#paper_consumption").attr("value"));
		var annual_reams = reams * 12;
		var weight = Math.round(annual_reams / REAMS_PER_TON * 1000) / 1000;
		var trees = Math.ceil(annual_reams / REAMS_PER_TREE * loss_factor * 10) / 10;

		jQuery("#paper_ream_monthly").html(reams);
		jQuery("#paper_ream_annually").html(annual_reams);
		jQuery("#paper_weight").html(weight);
		jQuery("#paper_trees").html(trees);

		jQuery("#final_paper").html(trees);
		calcTotaltrees();

		jQuery("#results_paper").slideDown("slow");		
		jQuery("#inputs_paper").slideUp("slow");
	});

	// Calculate Air Travel
	jQuery("#calculateairtravel").click(function() {
		var flightcount = parseInt(jQuery("#flightcount").attr("value"));
		var str = "<span class='results_heading'>Results:</span><table width='705' cellspacing='0' cellpadding='0'><tr ><td><strong>Flight duration<br>Single way<br></strong>(hours)</td><td><strong>No of flights<br></strong>with this duration</td><td><b>Distance</b></td><td><b>Emission Factor</b></td><td><img src='images/co2.jpg' border='0'></td><td><b></b></td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>";		

		var flight = new Array(50), noflights = new Array(50), distance = new Array(50), emissionfactor = new Array(50), totalco2 = new Array(50), totalc = new Array(50), trees = new Array(50);
	
		jQuery(".travel1").each(
			function( intIndex ){
				flight[intIndex] = parseInt(jQuery(this).html());
			}
		);
		jQuery(".travel2").each(
			function( intIndex ){
				noflights[intIndex] = parseInt(jQuery(this).html());
			}
		);

		var loss_factor = 1/0.6;
		var totaltrees = 0;
		for (var i=0; i < flightcount; i++) { 		
			if (isInt(flight[i])) { 
				emissionfactor[i] = getEmissionfactor(flight[i]);
				distance[i] = noflights[i] * flight[i] * (flight[i] > 1 ? 850 : 452);
				totalco2[i] = Math.round(distance[i] * emissionfactor[i] * 100) / 100;
				totalc[i] = Math.round(totalco2[i] / 44 * 12 * 100) / 100;
				trees[i]  = Math.ceil(totalco2[i]);
				totaltrees += trees[i];
				str += "<tr><td>" + flight[i] + "</td><td>" + noflights[i] + "</td><td>" + distance[i] + "</td><td>" + emissionfactor[i] + "</td><td>" + totalco2[i] + "</td></tr>";
			}
		}
		var footer = "<tr><td colspan='7'>&nbsp;</td></tr><tr><td>&nbsp;</td><td >&nbsp; </td><td >&nbsp; </td><td>&nbsp; </td></table><hr style='color:#9db66b; height:1px; width:100%' /><div align='right'><a href='#' id='resetairtravel'><img src='http://www.trees.co.za/carboncalculator/images/reset.jpg' border='0'></a></div>";
		str += footer;

		jQuery("#final_airtravel").html(totaltrees);
		calcTotaltrees();

		jQuery("#results_airtravel").html(str);
		jQuery("#results_airtravel").slideDown("slow");
		jQuery("#inputs_airtravel").slideUp("slow");		

		jQuery("#resetairtravel").click(function () { 
			jQuery("#results_airtravel").slideUp("slow");
			jQuery("#inputs_airtravel").slideDown("slow");
		});

		function isInt(x) {
		   var y=parseInt(x);
		   if (isNaN(y)) return false;
		   return x==y && x.toString()==y.toString();
		} 
	});

	function getEmissionfactor(h) { 
		var emission_factor;
		switch (h) {
		case 1:
			emission_factor = 0.18;
			break;
		case 2:
			emission_factor = 0.13;
			break;
		default:
			emission_factor = 0.11;
			break;
		}
		return emission_factor;
	}

	jQuery(".addscript").click(function () { 
		jQuery(this).select();
	});
});

