



function showResultat() {
        document.getElementById('Resultat').style.display = 'block';
        document.getElementById('boutonsResultat').style.display = 'block';
}

//Si des donnees du formulaire sont modifiees apres un 1er affichage des resultat alors on masque la partie resultat
function hideResultat() {
        if(document.getElementById('Resultat').style.display == 'block'){
                document.getElementById('Resultat').style.display = 'none';
                document.getElementById('boutonsResultat').style.display = 'none';
        }
}

var moz;
var ie;
//var pageDemandee = "";

//var chaineLien = "";

function init(){

                moz = (typeof document.implementation != 'undefined') && (typeof document.implementation.createDocument != 'undefined');
                ie = (typeof window.ActiveXObject != 'undefined');

                creationListe("origine", "layerorigine");
                creationListe("destination", "layerdestination");
                creationListe("via", "layervia");

                //En fction de la page demandee on procede diferemment

                //On commence par recuperer ce parametre
                //pageDemandee = window.location.search.slice(1,window.location.search.length);

                //On verifie qu'on recupere bien quelque chose et que ce quelque chose corresponde a une valeur possible
                if(pageDemandee != "passager" && pageDemandee != "fret")
                        pageDemandee = "passager";//Si ce n'est pas le cas par defaut on affiche le cas passager

                //On met le champ champDemandeur du form escaleArguments a la valeur passager
                //ce sera utilise par la popup escale pour determiner quelle css boutons charger
                document.forms["escaleArguments"].elements["champDemandeur"].value=pageDemandee;

                if(pageDemandee == "passager"){
                        //On charge la bonne feuille de style (couleur rose)
                        setActiveStyleSheet("boutons3");

                        //On s'occupe du champ qui varie
                        document.getElementById("champNbPassagers").style.display = "block";
                        document.getElementById("champPoidsFret").style.display = "none";

                        //On s'occupe du bloc aller retour qu'on doit afficher dans le cas passager
                        document.getElementById("allerRetour").style.display = "block";

                        //On s'occupe de l'unite a definir

                        //On doit determiner si on est en anglais ou francais
                        document.getElementById("unite1").innerHTML = "passenger";
                        document.getElementById("unite2").innerHTML = "passenger";
                }
                else{

                        //On charge la bonne feuille de style (couleur verte)
                        setActiveStyleSheet("boutons4");

                        //On s'occupe du champ qui varie
                        document.getElementById("champNbPassagers").style.display = "none";
                        document.getElementById("champPoidsFret").style.display = "block";

                        //On s'occupe du bloc aller retour qu'on ne doit pas afficher dans le cas du fret
                        document.getElementById("allerRetour").style.display = "none";

                        //On s'occupe de l'unite a definir
                        //On doit determiner si on est en anglais ou francais
                        document.getElementById("unite1").innerHTML = "ton";
                        document.getElementById("unite2").innerHTML = "ton";
                }

                //Test

}


	var variable1;
	var variable2;
	var variable3;

	function ajoutDsListe(liste, lettre, numAppel){

		variable1 = liste;
		variable2 = true;
		variable3 = null;

		//On teste le cas de l'affichage de la popup dans le cas d'un via
		//En effet, dans ce cas precis on ne doit proposer que Paris CDG et ORY comme escales
		if(liste.nom=="via"){
			variable1.Add("AMS", "Amsterdam, Schiphol (AMS) - Netherlands");
			variable1.Add("BOD", "Bordeaux (BOD) - France");
			variable1.Add("CFE", "Clermont Ferrand (CFE) - France");
			variable1.Add("CDG", "Paris, Charles de Gaulle (CDG) - France");
			variable1.Add("LYS", "Lyon, Lyon Saint Exupery (LYS) - France");
			variable1.Add("MIA", "Miami, Miami Intl (MIA) - Usa");
			variable1.Add("ORY", "Paris, Orly (ORY) - France");
			variable1.Add("PAR", "Paris, All stopovers (PAR) - France");
			variable1.Add("PTP", "Pointe à Pitre, Pole Caraibes (PTP) - Guadeloupe");
			variable1.Add("SXM", "Saint Marteen, Princess Juliana Intl (SXM) - Neth Antilles");

			affichage(variable1, variable2, lettre);
			return;
		}

                var file = "/FR/en/local/xml/"+lettre.toLowerCase()+"_en.xml";

		// Construit une nouvelle requete AJAX
		var instanceAjax = new Ajax.Requete();
		// Ecouteur du succes de la requete
		instanceAjax.registerOnSuccess(ajoutEscales);
		// Ecouteur de l'echec de la requete.
		instanceAjax.registerOnFailure(function(message) { return; });
		// Envoit de la requete en "GET" avec les parametres "param"
		instanceAjax.envoyerRequete("GET", file, null);


	}

	function ajoutEscales(xml){

		var zvNode = getNodeByTagName(xml, "ITEMS", 0);
		var listeItems = zvNode.getElementsByTagName("ITEM");


		for(i=0; i < listeItems.length; i++){
			variable1.Add(listeItems[i].getElementsByTagName("CODE")[0].firstChild.nodeValue, listeItems[i].getElementsByTagName("LABEL")[0].firstChild.nodeValue);
		}

		if(listeItems[0]){
			var lettre;
			if(!variable3)
				lettre = listeItems[0].getElementsByTagName("LABEL")[0].firstChild.nodeValue.substring(0,1);
			else
				lettre = variable3;

			affichage(variable1, variable2, lettre);
		}
	}



//Renvoit un libelle construit sous la forme suivante:
//libelle ville (code aeroport)
function traduireCodeAjax(code, champCible){

        //On ne garde que la 1ere lettre
        var lettre = code.substring(0,1).toLowerCase();

        var file = "/FR/en/local/xml/"+lettre+"_en.xml";

        // Construit une nouvelle requete AJAX
        var instanceAjax = new Ajax.Requete(code, champCible);
        // Ecouteur du succes de la requete
        instanceAjax.registerOnSuccess(traduireCode);
        // Ecouteur de l'echec de la requete.
        instanceAjax.registerOnFailure(function(message) { return; });
        // Envoit de la requete en "GET" avec les parametres "param"
        instanceAjax.envoyerRequete("GET", file, null);
}

function traduireCode(xml){

        var zvNode = getNodeByTagName(xml, "ITEMS", 0);
        var listeItems = zvNode.getElementsByTagName("ITEM");
        var code = this.variable1;
        var champCible = this.variable2;

        var libelle;
        for(i=0; i < listeItems.length; i++){
        //alert(listeItems[i].getElementsByTagName("CODE")[0].firstChild.nodeValue);
                if(code == listeItems[i].getElementsByTagName("CODE")[0].firstChild.nodeValue){

                        libelle = listeItems[i].getElementsByTagName("LABEL")[0].firstChild.nodeValue;
                        break; //On sort de la boucle
                }
        }
        //On teste le cas ou l'on ne trouve rien
        if(i == listeItems.length){
                return;
        }

        //On construit la chaine libelle ville (code aeroport)
        //sachant que le libelle recupere est construit de la facon suivante
        //Libelle ville, libelle aeroport (code aero) - libelle pays
        var libelleVille = libelle.substring(0, libelle.indexOf(','));
        //Il se peut qu'il n'y ait pas de virgule ex pour Barcelone (BCN) - Espagne
        //Il faut donc aller jusqu'a la '(' et enlever le dernier espace
        if(libelleVille == ""){

                libelleVille = libelle.substring(0, libelle.indexOf('(')-1);
        }


        var libelleCorrect = libelleVille + " (" + code + ")";

        document.getElementById(champCible).innerHTML = libelleCorrect;
}

//Serie de fction gerant les arrondis
function arrondir2chiffres(valeurInitiale){

	var valeurArrondie = Math.round (valeurInitiale*100)/100;
	return valeurArrondie;
}

function arrondir1chiffre(valeurInitiale){

	var valeurArrondie = Math.round (valeurInitiale*10)/10;
	return valeurArrondie;
}

//Arrondi puis renvoie un entier
function arrondirEntier(valeurInitiale){

	var valeurArrondie = Math.round (valeurInitiale);
	return valeurArrondie;
}

function calculer(){

//document.forms[0].submit();
        // On supprime tous les points d'exclamation devant le champ
        document.getElementById('champOrigineErreur').innerHTML='';
        document.getElementById('champViaErreur').innerHTML='';
        document.getElementById('champDestinationErreur').innerHTML='';
        document.getElementById('champNbPassagersErreur').innerHTML='';
        document.getElementById('champPoidsFretErreur').innerHTML='';

        var nbUnites;
        var form = document.calculCO2Form;

        //Calcul et Affichage du resultat en kg de CO2
        var origineCode = form.origineCode.value;
        var viaCode = "";
        if(form.viaCode)
                viaCode = form.viaCode.value;
        var destinationCode = form.destinationCode.value;

        var valeurKgCO2ParUnite;
        var distance;

        //Si on est dans le cas du passager ou du fret on attaque pas le meme champ pour recuperer le nombre d'unites
        if(pageDemandee == "passager"){
                nbUnites = form.nbPassagers.value;
        }
        else{
                nbUnites = form.poidsFret.value;
        }

        //*** 1ere verification : champs obligatoires non vides ***
                var bOk = true;
                if(form.origine.value == ""){
                        // On met un point d'exclamation devant le champ
                        document.getElementById('champOrigineErreur').innerHTML='!&nbsp;';
                        bOk = false;
                }

                if(form.destination.value == ""){
                        document.getElementById('champDestinationErreur').innerHTML='!&nbsp;';
                        bOk = false;
                }

                if(pageDemandee == "passager" && form.nbPassagers.value == ""){
                        // On met un point d'exclamation devant le champ
                        document.getElementById('champNbPassagersErreur').innerHTML='!&nbsp;';
                        bOk = false;
                }

                if(pageDemandee == "fret" && form.poidsFret.value == ""){
                        // On met un point d'exclamation devant le champ
                        document.getElementById('champPoidsFretErreur').innerHTML='!&nbsp;';
                        bOk = false;
                }

                if(bOk == false){
                        alert("Please fill in the mandatory field(s).");
                        return;
                }
        //*** Fin 1ere verification ***


        //*** 2eme verification : champ codeOrigine et destinationCode non vide i.e. champs origine et destination correct ***
        if(form.origineCode.value == "" || form.destinationCode.value == ""){

                if(form.origineCode.value == "" && form.destinationCode.value == ""){
                        <!-- On met un point d'exclamation devant le champ -->
                        document.getElementById('champOrigineErreur').innerHTML='!&nbsp;';
                        document.getElementById('champDestinationErreur').innerHTML='!&nbsp;';
                        alert("Please select your departure and arrival points from the list.");
                }
                else if(form.origineCode.value == ""){
                        document.getElementById('champOrigineErreur').innerHTML='!&nbsp;';
                        alert("Please select your departure point from the list.");
                }
                else if(form.destinationCode.value == ""){
                        document.getElementById('champDestinationErreur').innerHTML='!&nbsp;';
                        alert("Please select your arrival point from the list.");
                }
                return;
        }
        //*** Fin 2eme verification ***

        //*** 2eme Bis verification : champ codeOrigine et destinationCode identiques (pas de via renseigne) ***
        if(form.origineCode.value == form.destinationCode.value && form.destinationCode.value == ""){

                <!-- On met un point d'exclamation devant le champ -->
                document.getElementById('champOrigineErreur').innerHTML='!&nbsp;';
                document.getElementById('champDestinationErreur').innerHTML='!&nbsp;';
                alert("You must indicate different departure and arrival points. Please select another route.");
                return;
        }
        //*** Fin 2eme Bis verification ***

        //*** 3eme verification : Champs nb passagers ou poids fret correctement renseigne ***
                if(pageDemandee == "passager"){

                        var nbPassagers = form.nbPassagers.value;
                        //Le nb de passagers doit etre un nombre entier compris entre 1 et 99
                        var expression = /^[0-9]{1,2}$/;

                        //On verifie que l'on a bien un nombre
                        if(expression.exec(nbPassagers) == null){

                                document.getElementById('champNbPassagersErreur').innerHTML='!&nbsp;';
                                alert("Please specify the number of passengers. You must enter at least 1.");
                                return;

                        }
                        if(nbPassagers < 1 || nbPassagers >= 99){
                                document.getElementById('champNbPassagersErreur').innerHTML='!&nbsp;';
                                alert("Please enter a number between 1 and 10.");
                                return;
                        }
                }
                if(pageDemandee == "fret"){

                        //var poidsFret = form.poidsFret.value;
                        //Le poidsFret doit etre un nombre entier
                        var expression = /^[0-9]{1,}\,?[0-9]?$/;
                        var expression2 = /^[0-9]{1,}\.?[0-9]?$/;


                        //On verifie que l'on a bien un nombre
                        if(expression.exec(nbUnites) == null && expression2.exec(nbUnites) == null){

                                document.getElementById('champPoidsFretErreur').innerHTML='!&nbsp;';
                                alert("The input doesn't match the required format. Please specify a quantity of freight in tons in a  XXX.X format. The acceptable range is 0.1 - 115 tons.");
                                return;
                        }

                        //On regarde si on a un nombre a virgule
                        if(nbUnites.indexOf(",") != -1){

                                //On doit remplacer la virgule en .
                                nbUnites = nbUnites.replace(new RegExp(",", "g"), "\.");
                        }

                        if(nbUnites < 0.1){
                                document.getElementById('champPoidsFretErreur').innerHTML='!&nbsp;';
                                alert("The input doesn't match the required format. Please specify a quantity of freight in tons in a  XXX.X format. The acceptable range is 0.1 - 115 tons.");
                                return;
                        }
                        if(nbUnites > 115){
                                document.getElementById('champPoidsFretErreur').innerHTML='!&nbsp;';
                                alert("Please specify the weight of cargo. The input doesn't match the required format. Please specify a quantity of freight in tons in a  XXX.X format. The acceptable range is 0.1 - 115 tons.");
                                return;
                        }
                }
        //*** Fin 3eme verification ***

        //*** 4eme verification : codeVia present si via renseigne ***
                if(form.via.value != ""){

                        if(form.viaCode.value == ""){
                                document.getElementById('champViaErreur').innerHTML='!&nbsp;';
                                alert("Please select your transfer point from the list.");
                                return;
                        }
                }

        //*** Fin 4eme verification ***

	// *** Variables indiquant les codes escales (et non villes) reellement utilises
	var codeOrigineReel="";
	var codeDestinationReel="";
        if(viaCode != ""){
                //Dans le cas d'un via il faut calculer les 2 relations
                //On recupere une relation valide
                var relationValide;
                relationValide = determinerRelationValide(origineCode, viaCode);

                if(relationValide == false){
                        return;
                }

                valeurKgCO2ParUnite = calculerValeurKgCO2ParUnite(relationValide);
                var distance1 = calculerDistance(relationValide);
                var consoCarburant;
                consoCarburant = calculerConsoCarburant(relationValide, distance1);

		// On sette le code escale de l'origine reelle
		codeOrigineReel=relationValide.substring(0,3);
			
                //On met la valeur de la veritable origine dans le champ qui va bien
                traduireCodeAjax(relationValide.substring(0,3), "libelleOrigine");

                relationValide = determinerRelationValide(viaCode, destinationCode);
                if(relationValide == false){
                        return;
                }

                //On met la valeur du veritable via dans le champ qui va bien
                traduireCodeAjax(relationValide.substring(0,3), "libelleVia");

		// On sette le code escale de la destination reelle
		codeDestinationReel=relationValide.substring(3,6);

                valeurKgCO2ParUnite += calculerValeurKgCO2ParUnite(relationValide);
                var distance2 = calculerDistance(relationValide);
                var consoCarburant2 = calculerConsoCarburant(relationValide, distance2);

                distance = distance1 + distance2;
		distance = arrondirEntier(distance);
                consoCarburant = (consoCarburant * distance1 / 100 + consoCarburant2 * distance2 / 100) / distance * 100;
                consoCarburant = arrondir1chiffre(consoCarburant);

                //On met la valeur de la veritable destination dans le champ indique
                traduireCodeAjax(relationValide.substring(3,6), "libelleDestination");


		//Si c'est un aller retour alors il faut recalculer la distance ainsi que la conso en CO2 par pax
		//Et faire la somme
		if(form.allerRetour[0].checked && pageDemandee == "passager"){ //ca n'est possible que pour le cas passager
			relationValide = determinerRelationValide(destinationCode, viaCode);
			if(relationValide == false){
				return;
			}

			var valeurKgCO2ParUnite3 = calculerValeurKgCO2ParUnite(relationValide);
			valeurKgCO2ParUnite += valeurKgCO2ParUnite3;

			var distance3 = calculerDistance(relationValide);
			var consoCarburant3 = calculerConsoCarburant(relationValide, distance2);


			relationValide = determinerRelationValide(viaCode, origineCode);
			if(relationValide == false){
				return;
			}

			var valeurKgCO2ParUnite4 = calculerValeurKgCO2ParUnite(relationValide);
			valeurKgCO2ParUnite += valeurKgCO2ParUnite4;

			distance4 = calculerDistance(relationValide);
			var consoCarburant4 = calculerConsoCarburant(relationValide, distance4);

			consoCarburant = consoCarburant * distance + consoCarburant3 * distance3 + consoCarburant4 * distance4;
			distance += distance3 + distance4;
			consoCarburant /= distance;
		}
		distance = arrondirEntier(distance);
		valeurKgCO2ParUnite = arrondirEntier(valeurKgCO2ParUnite);
		consoCarburant = arrondir1chiffre(consoCarburant);
        }
        else{
                //On recupere une relation valide
                var relationValide = determinerRelationValide(origineCode, destinationCode);
                if(relationValide == false){
                        return;
                }

                valeurKgCO2ParUnite = calculerValeurKgCO2ParUnite(relationValide);
                distance = calculerDistance(relationValide);
		distance = arrondirEntier(distance);
                var consoCarburant = calculerConsoCarburant(relationValide, distance);

		// On sette le code escale de l'origine reelle
		codeOrigineReel=relationValide.substring(0,3);

		// On sette le code escale de la destination reelle
		codeDestinationReel=relationValide.substring(3,6);

                //On met les valeurs des veritables origine et destination dans leq champs qui vont bien
                traduireCodeAjax(codeOrigineReel, "libelleOrigine");
                traduireCodeAjax(codeDestinationReel, "libelleDestination");


		//Si c'est un aller retour alors il faut recalculer la distance ainsi que la conso en CO2 par pax
		//Et faire la somme
		if(form.allerRetour[0].checked && pageDemandee == "passager"){ //ca n'est possible que pour le cas passager
			relationValide = determinerRelationValide(destinationCode, origineCode);
			if(relationValide == false){
				return;
			}

			var valeurKgCO2ParUnite2 = calculerValeurKgCO2ParUnite(relationValide);
			valeurKgCO2ParUnite = valeurKgCO2ParUnite + valeurKgCO2ParUnite2;

			distance2 = calculerDistance(relationValide);
			var consoCarburant2 = calculerConsoCarburant(relationValide, distance2);

			consoCarburant = consoCarburant * distance + consoCarburant2 * distance2;
			distance += distance2;
			consoCarburant /= distance;
		}
		distance = arrondirEntier(distance);
		valeurKgCO2ParUnite = arrondirEntier(valeurKgCO2ParUnite);
		consoCarburant = arrondir1chiffre(consoCarburant);

        }

        //Si c'est un aller retour alors il faut multiplier la distance par 2 ainsi que la conso en CO2 par pax
        //if(form.allerRetour[0].checked && pageDemandee == "passager"){ //ca n'est possible que pour le cas passager
          //      valeurKgCO2ParUnite *= 2;
            //    distance *= 2;
//        }

        //Calcul de la valeur de CO2 par unite (pax ou tonne de fret) par km
        var valeurGCO2ParUniteParKm = valeurKgCO2ParUnite * 1000 / distance;
        valeurGCO2ParUniteParKm = arrondir1chiffre(valeurGCO2ParUniteParKm);

        //Valeur totale de CO2 sur le voyage pour la ou les personnes ou pour le poids de fret
        var valeurKgCO2 = valeurKgCO2ParUnite * nbUnites;
        valeurKgCO2 = arrondirEntier(valeurKgCO2);

        //On renseigne les champs
        //On affiche la distance
        document.getElementById("distance").innerHTML = distance;
        document.getElementById("resultatLParUniteAu100Km").innerHTML = consoCarburant;
        document.getElementById("resultatKgCO2").innerHTML=valeurKgCO2;
        document.getElementById("resultatGCO2ParUniteParKm").innerHTML=valeurGCO2ParUniteParKm;
        if(form.allerRetour[0].checked)
                document.getElementById("typeTrajet").innerHTML="round trip";
        else
                document.getElementById("typeTrajet").innerHTML="one-way trip";


        if(pageDemandee == "passager"){
                document.getElementById("partieResultatPaxOnly1").style.display = "inline";
                document.getElementById("partieResultatPaxOnly2").style.display = "block";
        }
        else if(pageDemandee == "fret"){
                document.getElementById("partieResultatPaxOnly1").style.display = "none";
                document.getElementById("partieResultatPaxOnly2").style.display = "none";
        }

        //On affiche les resultats
        showResultat();

        //On cree une trace http
	if(viaCode != "")
		traceHttp("calcul;"+codeOrigineReel+"-"+viaCode+"-"+codeDestinationReel+";"+valeurKgCO2+";"+nbUnites+";");
	else
		traceHttp("calcul;"+codeOrigineReel+"-"+codeDestinationReel+";"+valeurKgCO2+";"+nbUnites+";");

}



//Cette fonction permet de determiner une relation valide
//elle renvoit cette relation sous cette forme codeOriginecodeDestination
//ex PAR NYC va renvoyer CDGEWR
function determinerRelationValide(codeOrigine, codeDestination){
        var nbUnites;
        var form = document.calculCO2Form;

        //Calcul et Affichage du resultat en kg de CO2
        var origineCode = codeOrigine;
        var destinationCode = codeDestination;

        var origineCode1;
        var origineCode2;
        var destinationCode1;
        var destinationCode2;

        //On cherche a savoir si le code ville ne correspond pas a un code aeroport ex PAR au lieu de CDG ou ORY
        //Si tel est le cas alors on le convertit en code aeroport
        try{
                origineCode = eval(origineCode);
                //Dans certains cas on peut avoir plusieurs codes aeroport associes a une meme ville separes par le caractere '-'
                //Ex PAR="CDG-ORY"
                origineCode1 = origineCode.split('-')[0];
                origineCode2 = origineCode.split('-')[1];//Au pire la variable contiendra 'undefined'
        }
        catch(identifier){
                //le code ville n'est pas present dans le fichier
                //c donc soit un code aeroport soit une escale non geree
                origineCode1 = origineCode;
                origineCode2 = "";
        }
        try{
                destinationCode = eval(destinationCode);
                destinationCode1 = destinationCode.split('-')[0];
                destinationCode2 = destinationCode.split('-')[1];

        }
        catch(identifier){
                //le code ville n'est pas present dans le fichier
                //c donc soit un code aeroport soit une escale non geree
                destinationCode1 = destinationCode;
                destinationCode2 = "";
        }

        //Creation de la liste des couples origine destination
        //Par ex la traduction du code PAR nous donne ORY en 1 et CDG en 2
        //Donc un PAR PPT nous donnera en 1ere combinaison ORY PPT or cette relation n'existe pas
        //En revanche la relation CDG PPT existe bien d'ou la necessite de creer un tab de couple
        var couplesOD = new Array(4);
        couplesOD[0] = origineCode1 + destinationCode1;
        couplesOD[1] = origineCode1 + destinationCode2;
        couplesOD[2] = origineCode2 + destinationCode1;
        couplesOD[3] = origineCode2 + destinationCode2;



        //On construit la base de la clef
        //Si on est dans le cas du passager
        var baseClef = "";
        if(pageDemandee == "passager"){
                nbUnites = form.nbPassagers.value;
                baseClef = "CO2Conso";
        }
        else{
                nbUnites = form.poidsFret.value;
                baseClef = "CO2ConsoFret";
        }



        //On tente de recuper une valeur pour la relation consideree
        var valeurKgCO2ParUnite;
        var clef;
        var relationExistente;

        for(var i=0; i<4; i++){

                clef = baseClef;
                clef += couplesOD[i];

                try{
                        valeurKgCO2ParUnite = eval(clef);

                        //Si aucune exception n'a ete generee alors la relation existe
                        //On conserve donc l'indice de cette relation
                        relationExistente = couplesOD[i];
                        //On quitte la boucle
                        break;
                }
                catch(identifier){
                        //la relation n'existe pas dans le js

                        //Si i egal 3 alrs toute le combinaisons ont ete testees
                        //on affiche une popup d'erreur
                        if(i==3){
                                alert("The system has not been able to identify your route. Assure you that your flight is made by the fleet of Air France, KLM and their regional partners.");
                                return null;///On sort
                        }
                }
        }
        return relationExistente;
}

//Permet de calculer et renvoyer la distance de la relation
function calculerDistance(relationValide){

        var form = document.calculCO2Form;

        //On recupere la distance
        clef = "distance" + relationValide;
        var distance;
        try{
                distance = eval(clef);
        }
        catch(identifier){
                //la relation n'existe pas dans le js concerne ce qui est anormal si on est arrive jusque ici
                //on affiche une popup d'erreur
                //alert("Cette relation n'est pas prise en charge --> bug");
                return;///On sort
        }

        return distance;
}

//Permet de calculer et renvoyer la consommation de carburant par pax au 100km
function calculerConsoCarburant(relationValide, distance){

        //On recupere la consommation en litre de carburant sur le vol
        clef = "consoCarburant" + relationValide;
        var consoCarburant;
        try{
                consoCarburant = eval(clef);
                //On la ramene au 100km
                consoCarburant = consoCarburant * 100 / distance;
        }
        catch(identifier){
                //la relation n'existe pas dans le js concerne ce qui est anormal si on est arrive jusque ici
                //on affiche une popup d'erreur
                //alert("Cette relation n'est pas prise en charge --> bug2");
                return;///On sort
        }

        return arrondir1chiffre(consoCarburant);
}

//Retourne valeurKgCO2ParUnite
function calculerValeurKgCO2ParUnite(relationValide){

        var nbUnites;
        var form = document.calculCO2Form;

        //Calcul du resultat en kg de CO2

        //On construit la base de la clef
        //Si on est dans le cas du passager
        var baseClef = "";
        if(pageDemandee == "passager"){
                nbUnites = form.nbPassagers.value;
                baseClef = "CO2Conso";
        }
        else{
                nbUnites = form.poidsFret.value;
                baseClef = "CO2ConsoFret";
        }



        //On tente de recuper une valeur pour la relation consideree
        var valeurKgCO2ParUnite;
        var clef;


        clef = baseClef;
        clef += relationValide;

        try{
                valeurKgCO2ParUnite = eval(clef);
        }
        catch(identifier){
                //la relation n'existe pas dans le js
                //alert("Cette relation n'est pas prise en charge.");
                return;///On sort
        }

        return arrondir1chiffre(valeurKgCO2ParUnite);
}


//Fction permettant de creer une trace http en chargeant une img de facon dynamique
function traceHttp(msg){

        //var url = "./img/traces.gif?"+msg;
        //var url = "http://developpement-durable.airfrance.com/FR/common/common/img/pictos/traces.gif?"+msg;
	var url = "http://developpement-durable.airfrance.com"+"/FR/common/common/img/pictos/traces.gif?"+msg;
        var img = new Image();
        img.src = url;
}

//Fction permettant d'acceder au site partenaire
function accesSitePartenaire(){

	//On reconstitue l'url
	var url = "http://actioncarbone.org/airfrance/index.php?";

	var origine = document.getElementById("libelleOrigine").innerHTML;
	var origineLibelle = origine.substring(0, origine.indexOf('(')-1);
	var origineCode = origine.substring(origine.indexOf('(')+1, origine.indexOf('(')+4);
	var destination = document.getElementById("libelleDestination").innerHTML;
	var destinationLibelle = destination.substring(0, destination.indexOf('(')-1);
	var destinationCode = destination.substring(destination.indexOf('(')+1, destination.indexOf('(')+4);
	var via = document.getElementById("libelleVia").innerHTML;
	var viaLibelle = "";
	var viaCode = "";
	if(via != ""){
		viaLibelle = via.substring(0, via.indexOf('(')-1);
		if(viaLibelle != "")
			viaCode = via.substring(via.indexOf('(')+1, via.indexOf('(')+4);
	}
	var typeTrajet = document.getElementById("typeTrajet").innerHTML;
	var distance = document.getElementById("distance").innerHTML;
	var emissionsCo2EnKg = document.getElementById("resultatKgCO2").innerHTML;
	var nbPassagers = document.calculCO2Form.nbPassagers.value;
	var langue = "en";
//on ajoute les codes escales
//	var origineCode = document.calculCO2Form.origineCode.value;
//	var destinationCode = document.calculCO2Form.destinationCode.value;
//	var viaCode = document.calculCO2Form.viaCode.value;

	//formulaire cible
	var form = document.forms["compensation"];
	form.villea.value = origineLibelle;
	form.villeb.value = destinationLibelle;
	form.via.value = viaLibelle;
	form.type.value = typeTrajet;
	form.kg.value = emissionsCo2EnKg;
	form.km.value = distance;
	form.nb.value = nbPassagers;
	form.lang.value = langue;
	form.action = url;
//on ajoute les codes escales
	form.codevillea.value = origineCode;
	form.codevilleb.value = destinationCode;
	form.codevillevia.value = viaCode;

	form.submit();

	
        //On trace l'acces
        traceHttp("AccesSitePartenaire");

	//On charge la page
//	location.href = url;
}

