// constants
var besparingGroenfondsen	=	2.25;
var besparingGroenSparen	=	2.25;
var besparingInternationalTreeFund	=	0.5;
var besparingMilieufondsen	=	2.25;
var besparingTreesForTravel	=	0.5;
var besparingWindcooperatie	=	2.25;
var besparingWindfonds	=	2.25;
var besparingZonneEnergie	=	5.2;
var busSnelheid	=	40;
var ferrySnelheid	=	30;
var interBusSnelheid	=	90;
var interTreinSnelheid	=	100;
var metroSnelheid	=	40;
var ratioGroeneStroom	=	1;
var ratioGroenfonds	=	0.5;
var ratioGroenSparen	=	0.5;
var ratioInternationalTreeFund	=	1;
var ratioMilieufondsen	=	0.4;
var ratioSynergy	=	1;
var ratioTreesForTravel	=	1;
var ratioVliegTax	=	1;
var ratioWindcooperatie	=	1;
var ratioWindfonds	=	1;
var ratioZonneEnergie	=	1;
var treinSnelheid	=	75;
var uitstootAardgas	=	1.8;
var uitstootAutoBenzine	=	2.3325;
var uitstootAutoDiesel	=	2.6292;
var uitstootAutoLPG	=	1.66347;
var uitstootBrommer	=	2.3325;
var uitstootBus	=	0.05;
var uitstootElectriciteit	=	0.6;
var uitstootFerry	=	0.06;
var uitstootInterBus	=	0.02;
var uitstootInterTrein	=	0.05;
var uitstootMetro	=	0.08;
var uitstootMotor	=	2.3325;
var uitstootStookolie	=	2.6;
var uitstootTrein	=	0.05;
var uitstootVliegenAmerika	=	1200;
var uitstootVliegenAustralie	=	3200;
var uitstootVliegenAzie	=	2000;
var uitstootVliegenEuropa	=	312;
var wekenPerJaar	=	48;

var maxCo2 = 1000;

//  -- calculations --

var secties = new Array();

// debet calcs

function berekenElectriciteit()
{
	var electriciteitJaar, kgElectriciteit;

	electriciteitJaar = document.co2test.electriciteitJaar.value;
	kgElectriciteit = uitstootElectriciteit * electriciteitJaar;

	return kgElectriciteit;
}

function berekenWonen()
{
	var kgAardgas;
	var kgStookolie;
	var kgElectriciteit;

	var uitstoot;

	// waarden uit formulier halen
	aardgasJaar = document.co2test.aardgasJaar.value;
	stookolieJaar = document.co2test.stookolieJaar.value;

	// uitstoot per categorie berekenen
	kgAardgas = uitstootAardgas * aardgasJaar;
	kgStookolie = uitstootStookolie * stookolieJaar;
	kgElectriciteit = berekenElectriciteit();

	// totale uitstoot berekenen
	uitstoot = kgAardgas + kgStookolie + kgElectriciteit;

	return uitstoot;
}

function Auto(km, brandstof, verbruik)
{
	this.km = km;
	this.verbruik = verbruik;
	if (this.verbruik == 0 || isNaN(this.verbruik))
		this.verbruik = 1;
	this.brandstof = brandstof;
	switch (brandstof)
	{
		case "benzine":
			this.uitstoot = uitstootAutoBenzine * this.km / this.verbruik;
			break;
		case "diesel":
			this.uitstoot = uitstootAutoDiesel * this.km / this.verbruik;
			break;
		case "lpg":
			this.uitstoot = uitstootAutoLPG * this.km / this.verbruik;
			break
		default:
			this.uitstoot = uitstootAutoBenzine * this.km / this.verbruik;
			break;
	}
}

function Motor(km, verbruik)
{
	this.km = km;
	this.verbruik = verbruik;
	if (this.verbruik == 0 || isNaN(this.verbruik))
		this.verbruik = 1;
	this.uitstoot = uitstootMotor * this.km / this.verbruik;
}

function Brommer(km, verbruik)
{
	this.km = km;
	this.verbruik = verbruik;
	if (this.verbruik == 0 || isNaN(this.verbruik))
		this.verbruik = 1;
	this.uitstoot = uitstootBrommer * this.km / this.verbruik;
}

function berekenAutoEnMotor()
{
	var voertuigen = new Array();
	var uitstoot = 0.0;
	var n = 0;
	
	var nAutos = parseInt( document.co2test.aantalAutos.value); 
	var nMotoren = parseInt( document.co2test.aantalMotoren.value); 
	var nBrommers = parseInt( document.co2test.aantalBrommers.value); 

	for (i = 0; i < nAutos; i++)
	{
		km = parseInt(eval("document.co2test.auto" + parseInt(i + 1) + "KmJaar.value"));
		brandstof = eval("document.co2test.auto" + parseInt(i + 1) + "Brandstof.value");
		verbruik = parseFloat(eval("document.co2test.auto" + parseInt(i + 1) + "Verbruik.value"));
		voertuigen[ n++ ] = new Auto(km, brandstof, verbruik);
	}

	for (i = 0; i < nMotoren; i++)
	{
		km = eval("document.co2test.motor" + parseInt(i + 1) + "KmJaar.value");
		verbruik = eval("document.co2test.motor" + parseInt(i + 1) + "Verbruik.value");
		voertuigen[ n++ ] = new Motor(km, verbruik);
	}

	for (i = 0; i < nBrommers; i++)
	{
		km = eval("document.co2test.brommer" + parseInt(i + 1) + "KmJaar.value");
		verbruik = eval("document.co2test.brommer" + parseInt(i + 1) + "Verbruik.value");
		voertuigen[ n++ ] = new Brommer(km, verbruik);
	}

	for (i = 0; i < n; i++)
		uitstoot += voertuigen[ i ].uitstoot;
		
	return uitstoot;
}

function berekenOpenbaarVervoer()
{
	var treinWeek, kgTrein;
	var busWeek, kgBus;
	var metroWeek, kgMetro;

	var uitstoot;

	// waarden uit formulier halen
	treinWeek = document.co2test.treinWeek.value;
	busWeek = document.co2test.busWeek.value;
	metroWeek = document.co2test.metroWeek.value;

	// uitstoot per categorie berekenen
	kgTrein = treinSnelheid * treinWeek * wekenPerJaar * uitstootTrein;
	kgBus = busSnelheid * busWeek * wekenPerJaar * uitstootBus;
	kgMetro = metroSnelheid * metroWeek * wekenPerJaar * uitstootMetro;

	// totale uitstoot berekenen
	uitstoot = kgTrein + kgBus + kgMetro;

	return uitstoot;
}

function berekenVliegen()
{
	var vluchtenEuropa, kgEuropa;
	var vluchtenAmerika, kgAmerika;
	var vluchtenAzie, kgAzie;
	var vluchtenAustralie, kgAustralie;

	var uitstoot;

	// waarden uit formulier halen
	vluchtenEuropa = document.co2test.vluchtenEuropa.value;
	vluchtenAmerika = document.co2test.vluchtenAmerika.value;
	vluchtenAzie = document.co2test.vluchtenAzie.value;
	vluchtenAustralie = document.co2test.vluchtenAustralie.value;

	// uitstoot per categorie berekenen
	kgEuropa = uitstootVliegenEuropa * vluchtenEuropa;
	kgAmerika = uitstootVliegenAmerika * vluchtenAmerika;
	kgAzie = uitstootVliegenAzie * vluchtenAzie;
	kgAustralie = uitstootVliegenAustralie * vluchtenAustralie;

	// totale uitstoot berekenen
	uitstoot = kgEuropa + kgAmerika + kgAzie + kgAustralie;

	return uitstoot;
}

function berekenVakantie()
{
	var kgTrein, kmTrein;
	var kgBus, kmBus;
	var kgBoot, kmBoot;

	var uitstoot;

	// waarden uit formulier halen
	kmTrein = document.co2test.vakantieTreinJaar.value;
	kmBus = document.co2test.vakantieBusJaar.value;
	kmBoot = document.co2test.vakantieBootJaar.value;

	// uitstoot per categorie berekenen
	kgTrein = interTreinSnelheid * kmTrein * uitstootInterTrein;
	kgBus = interBusSnelheid * kmBus * uitstootInterBus;
	kgBoot = ferrySnelheid * kmBoot * uitstootFerry;

	// totale uitstoot berekenen
	uitstoot = kgTrein + kgBus + kgBoot ;

	return uitstoot;
}

// credit calcs

function berekenSchoneEnergie()
{
	var kgWind, windcooperaties;
	var kgZon, zonneEnergie;
	var kgGroen, groenfondsen;
	var kgWindfonds, windfonds;
	var groeneStroom;

	var besparing;

	// waarden uit formulier halen
	windcooperaties = document.co2test.windcooperaties.value;
	zonneEnergie = document.co2test.zonneEnergie.value;
	groenfondsen = document.co2test.groenfondsen.value;
	windfonds = document.co2test.windfonds.value;
	groeneStroom = document.co2test.groeneStroom.checked;

	// besparing per categorie berekenen
	kgWind = windcooperaties / besparingWindcooperatie * ratioWindcooperatie;
	kgZon = zonneEnergie / besparingZonneEnergie * ratioZonneEnergie;
	kgGroen = groenfondsen / besparingGroenfondsen * ratioGroenfonds;
	kgWindfonds = windfonds / besparingWindfonds * ratioWindfonds

	// totale besparing berekenen
	besparing = kgWind + kgZon + kgGroen + kgWindfonds ;
	if (groeneStroom)
		besparing += berekenElectriciteit();
	return besparing;
}

function berekenSchoneEnergietechnologie()
{
	var kgGroenSparen, groenSparen;
	var kgMilieufondsen, miliefondsen;
	var vliegtax;

	var besparing;

	// waarden uit formulier halen
	groenSparen = document.co2test.groenSparen.value;
	milieufondsen = document.co2test.milieufondsen.value;
	vliegtax = document.co2test.vliegtax.checked;

	// besparing per categorie berekenen
	kgGroenSparen = groenSparen / besparingGroenSparen * ratioGroenSparen;
	kgMilieufondsen = milieufondsen / besparingMilieufondsen * ratioMilieufondsen;

	// totale besparing berekenen
	besparing = kgGroenSparen + kgMilieufondsen;

	if (vliegtax)
		besparing += berekenVliegen();

	return besparing;
}

function berekenBossenPlanten()
{
	var kgTreefund, treefund;
	var kgSynergy, synergy;
	var treesForTravel;

	var besparing;

	// waarden uit formulier halen
	treefund = document.co2test.treefund.value;
	synergy = document.co2test.synergy.value;
	treesForTravel = document.co2test.trees4travel.checked;

	// besparing per categorie berekenen
	kgTreefund = treefund / besparingInternationalTreeFund * ratioInternationalTreeFund;
	kgSynergy = synergy / besparingTreesForTravel * ratioSynergy;

	// totale besparing berekenen
	besparing = kgTreefund + kgSynergy;

	if (treesForTravel)
		besparing += berekenVliegen();

	return besparing;
}

function berekenDebet()
{
	secties["Wonen"] = berekenWonen();
	secties["Auto"] = berekenAutoEnMotor();
	secties["Ov"] = berekenOpenbaarVervoer();
	secties["Vliegen"] = berekenVliegen();
	secties["Vakantie"] = berekenVakantie();
}

function berekenCredit()
{
	secties["Energie"] = berekenSchoneEnergie();
	secties["Technologie"] = berekenSchoneEnergietechnologie();
	secties["Bossen"] = berekenBossenPlanten();
}

function berekenTotaalDebet()
{
	var result = secties["Wonen"] +
					secties["Auto"] +
					secties["Ov"] +
					secties["Vliegen"] +
					secties["Vakantie"];
	setCookie ("totaalDebet", result, 365);
	return result;
	
}

function berekenTotaalCredit()
{
	var result = secties["Energie"] +
					secties["Technologie"] +
					secties["Bossen"];
	setCookie ("totaalCredit", result, 365);
	return result;	
}
