/********************************************
* Filename: functions.js
* Version: 1.0.0 (02-09-2009)
* Website: http://www.dcoed.com
* Author: Dan @ DCOE:DESIGNS
* Description: Pop Offsets Carbon Calculator
*********************************************/
$(function() {
	$("#datepicker").datepicker({
			dateFormat: 'dd/mm/yy',
			changeMonth: true,
			changeYear: true
	});
	 $("#datepicker2").datepicker({
			//dateFormat: 'dd/mm/yy',minDate:+1
			dateFormat: 'dd/mm/yy',
			changeMonth: true,
			changeYear: true
	});
});
	
Number.prototype.toDecimals=function(n){
    n=(isNaN(n))?
        2:
        n;
    var
        nT=Math.pow(10,n);
    function pad(s){
            s=s||'.';
            return (s.length>n)?
                s:
                pad(s+'0');
    }
    return (isNaN(this))?
        this:
        (new String(
            Math.round(this*nT)/nT
        )).replace(/(\.\d*)?$/,pad);
}

function revealMore(what) {
	var id = what;
	$("#"+id).slideToggle();
	//alert(what);
}
function reveal1() {
	$("#calc_1").show('blind');
	$("#calc_2").hide();
	$(".existingNo").removeClass('selected');
	$(".existingYes").addClass('selected');
	$("#existing").val('Y');
}
function reveal2() {
	$("#calc_2").show('blind');
	$("#calc_1").hide();
	$(".existingYes").removeClass('selected');
	$(".existingNo").addClass('selected');
	$("#existing").val('N');
}


function convert2KM(what) {
	var miles 	= new Number(document.getElementById(what).value);
	var conv	= 1.609344;
	var km		= new Number(miles * conv);
	km 			= km.toDecimals(2);
	document.getElementById(what).value = km;

	$("#"+what+'_convert').attr('innerHTML', '<a href="#"  onclick="convert2Miles(\''+what+'\');return false;">Return to miles</a>');	
}
function convert2Miles(what) {
	var km 	= new Number(document.getElementById(what).value);
	var conv	= 1.609344;
	var miles	= new Number(km / conv);
	miles 		= miles.toDecimals(2);
	document.getElementById(what).value = miles;
	$("#"+what+'_convert').attr('innerHTML', '<a href="#"  onclick="convert2KM(\''+what+'\');return false;">Entered Miles? Click to convert to KM</a>');	
}




function calculate_carbon(tonnes){
	/****************************************
	 *	VALUES TO CHANGE
	 ****************************************/
	 var cost_per_tonne = 7.00; //- cost of carbon per tonne
	
	/************************************************************************************************************************/
	
	//- Calculate carbon cost
	var carbon = new Number(cost_per_tonne * tonnes);
	//- Format number nicely
	tonnes 	= new Number(tonnes);
	carbon 	= carbon.toDecimals(2);
	tonnes 	= tonnes.toDecimals(4);
	
	//alert("You produce "+tonnes+" tonnes of carbon.\nTotal Carbon cost: &pound;"+carbon);
	$("#total_cost").val(carbon);
	$("#total_tonnes").val(tonnes);
	return false;
}

function calculate_CO2(){
	/********************************************************************************
	 *	VALUES TO CHANGE - CONVERSION FACTORS
	 ********************************************************************************/
	 //- POWER
	 var cost_electricity 	= 0.43; 	//- kg of CO2 per kWh
	 var cost_gas			= 0.21; 	//- kg of CO2 per kWh
	 var cost_biomass		= 0.131; 	//- kg of CO2 per kg
	 var cost_coal			= 2.5064; 	//- kg of CO2 per kg
	 var cost_oil			= 0.27927; 	//- kg of CO2 per kWh
	 
	 //- TRANSPORT PEOPLE
	 var cost_car			= 0.2042; 	//- kg of CO2 per km (assumes "average car" without specifying diesel of petrol or hybrid)
	 var cost_bike			= 0.1059; 	//- kg of CO2 per km
	 var cost_train_1		= 0.078; 	//- kg of CO2 per passenger per km (Light Rail)
	 var cost_train_2		= 0.0177; 	//- kg of CO2 per passenger per km (International)
	 var cost_train_3		= 0.0602; 	//- kg of CO2 per passenger per km (National)
	 var cost_train_4		= 0.065; 	//- kg of CO2 per passenger per km (Underground)
	  
	 var cost_plane_1		= 0.1753; 	//- kg of CO2 per km (Domestic)
	 var cost_plane_2		= 0.0983; 	//- kg of CO2 per km (Short Haul)
	 var cost_plane_3		= 0.1106; 	//- kg of CO2 per km (Long Haul)
	 var cost_ferry			= 0.1753; 	//- kg of CO2 per passenger per km (Domestic)
	 
	 var plane_km_1			= 200;		//- Distance in km assumed for 'Domestic' Flight
	 var plane_km_2			= 600;		//- Distance in km assumed for 'Short Haul' Flight
	 var plane_km_3			= 2000;		//- Distance in km assumed for 'Long Haul' Flight
	  
	 //- TRANSPORT FRIEGHT
	 var cost_fplane_1		= 1.9; 		//- kg of CO2 per tonne per km (Domestic)
	 var cost_fplane_2		= 1.32; 	//- kg of CO2 per tonne per km (Short Haul)
	 var cost_fplane_3		= 0.61; 	//- kg of CO2 per tonne per km (Long Haul) 
	 
	 var cost_hgv			= 0.132; 	//- kg of CO2 per tonne per km
	 var cost_van			= 0.2833; 	//- kg of CO2 per tonne per km
	 var cost_rail			= 0.021; 	//- kg of CO2 per tonne per km
	 var cost_fferry		= 0.3843; 	//- kg of CO2 per tonne per km
	 var cost_fother		= 0.020; 	//- kg of CO2 per tonne per km
	
	/************************************************************************************************************************/
	
	//- WORK STUFF OUT!
	var CO2 	= new Number(0);
	var temp	= new Number(0);
	
	//- Add up power
	temp	 = new Number((document.getElementById('power_electricity').value - document.getElementById('power_less').value) * cost_electricity); //- Total less renewable  = amount towards carbon footprint 
	temp	+= new Number(document.getElementById('power_gas').value * cost_gas);
	temp	+= new Number(document.getElementById('power_biomass').value * cost_biomass);
	temp	+= new Number(document.getElementById('power_coal').value * cost_coal);
	temp	+= new Number(document.getElementById('power_oil').value * cost_oil);
	
	CO2		+= temp;
	
	//- Add up transport for people
	temp	 = document.getElementById('travel_car').value * cost_car;
	temp	+= document.getElementById('travel_motorbike').value * cost_bike;
	//temp	+= document.getElementById('travel_train_light').value * cost_train_1;
	temp	+= document.getElementById('travel_train_international').value * cost_train_2;
	temp	+= document.getElementById('travel_train_national').value * cost_train_3;
	temp	+= document.getElementById('travel_train_underground').value * cost_train_4;
	
	temp	+= (document.getElementById('travel_plane_domestic').value * cost_plane_1) * plane_km_1; //- Number of each of Domestic, short haul, long haul flights x conversion x assumed distance
	temp	+= (document.getElementById('travel_plane_short').value * cost_plane_2) * plane_km_2;
	temp	+= (document.getElementById('travel_plane_long').value * cost_plane_3) * plane_km_3;
	temp	+= document.getElementById('travel_ship_ferry').value * cost_ferry;	
	CO2		+= temp;
	
	//- Add up transport for frieght
	temp	 = ((document.getElementById('freight_plane_domestic').value * document.getElementById('freight_plane_domestic_tonnes').value) * cost_fplane_1) * plane_km_1; //- Number of tonnes of freight x number of flights of each type x respective assumed distance
	temp	+= ((document.getElementById('freight_plane_short').value * document.getElementById('freight_plane_short_tonnes').value) * cost_fplane_2) * plane_km_2;
	temp	+= ((document.getElementById('freight_plane_long').value * document.getElementById('freight_plane_long_tonnes').value) * cost_fplane_3) * plane_km_3;
	temp	+= (document.getElementById('freight_lorries_hgv').value * document.getElementById('freight_lorries_hgv_tonnes').value) * cost_hgv;
	temp	+= (document.getElementById('freight_lorries_van').value * document.getElementById('freight_lorries_van_tonnes').value) * cost_van;
	
	temp	+= (document.getElementById('freight_rail').value * document.getElementById('freight_rail_tonnes').value) * cost_rail;
	temp	+= (document.getElementById('freight_ship_ferry').value * document.getElementById('freight_ship_ferry_tonnes').value) * cost_fferry;
	temp	+= (document.getElementById('freight_ship_other').value * document.getElementById('freight_ship_other_tonnes').value) * cost_fother;
	CO2		+= temp;
	/**/
	
	CO2		= new Number(CO2 * 0.001); //- convert C02 in KG -> Tonnes
	
	calculate_carbon(CO2);
	return false;
}
		
