/* Chronopost */


// Appeler  une feuille de styles dont l'application depend de la presence de JavaScript
(function(){
	creerFin("link",false,document.getElementsByTagName("head")[0],"rel~stylesheet","type~text/css","href~pages/_style/laser.css");
}());


//Gerer les evenements au chargement de la page
if (window.addEventListener) window.addEventListener("load",lester,false);
else if (window.attachEvent) window.attachEvent("onload",lester);
var etat = new Array("none","block","","pair");
var lesPopin = new Array();
var lesInsert = new Array();
var positions;
var catalogue;
var lesProduits = new Array();
var professionnel;
var carnets = new Array();
var destinables = new Array();
var estimable = new Array();
var laSelection;
var retour;
var dimensions;
var facturable;function lester(){
        var multicolis = false;
        if(document.location.href.lastIndexOf("ulticolis") > 0 
        	|| document.location.href.lastIndexOf("diffusionList") > 0) {
        	multicolis = true;
        }

	//Ajuster les styles
	if (safari) document.body.className += " safari";
	else if (opera) document.body.className += " opera";
	//else if (ff2) nommer("input",classer("entete",document)[0])[0].style.padding = "0 0 4px 36px";

	//Generer les variables contenant du code (cf code.js)
	generer();

	var tempo;
	var tempo2;

 // A ne pas faire en multicolis
 if(!multicolis) {

	//Adapter la visibilite d'une zone de formulaire (conditionnement, dimensions) pour le choix d'une destination hors de France (au chargement et a la selection)
	//et personnaliser la liste des produits par pays (au chargement et a la selection)
	//11 mars 2009 : modification regle gestion
	//19 fin personnalisation liste des produits
	tempo = idier("dest");
	tempo2 = classer("renseignements",document).length > 0 ? classer("renseignements",document)[0] : false;
	if (tempo && tempo2){
		//= au chargement
		if (idier("orig").value == tempo.value) nommer("fieldset",tempo2)[0].style.display = etat[0];
		else if (idier("orig").value != tempo.value) nommer("fieldset",tempo2)[0].style.display = etat[1];
		//= a la souris
		tempo.onchange = function(){
			if (idier("orig").value == this.value) nommer("fieldset",classer("renseignements",document)[0])[0].style.display = etat[0];
			else if (idier("orig").value != this.value) nommer("fieldset",classer("renseignements",document)[0])[0].style.display = etat[1];
		}
		//= au clavier
		tempo.onkeyup = function(){
			if (idier("orig").value == this.value) nommer("fieldset",classer("renseignements",document)[0])[0].style.display = etat[0];
			else if (idier("orig").value != this.value) nommer("fieldset",classer("renseignements",document)[0])[0].style.display = etat[1];
		}
		//= a la souris
		idier("orig").onchange = function(){
			if (idier("dest").value == this.value) nommer("fieldset",classer("renseignements",document)[0])[0].style.display = etat[0];
			else if (idier("dest").value != this.value) nommer("fieldset",classer("renseignements",document)[0])[0].style.display = etat[1];
		}
		//= au clavier
		idier("orig").onkeyup = function(){
			if (idier("dest").value == this.value) nommer("fieldset",classer("renseignements",document)[0])[0].style.display = etat[0];
			else if (idier("dest").value != this.value) nommer("fieldset",classer("renseignements",document)[0])[0].style.display = etat[1];
	}	}

	//Adapter la visibilite d'une zone de formulaire (conditionnement, dimensions) etc. sur la page d'accueil
	tempo = idier("dest");
//	tempo2 = classer("expedition",document).length > 0 ? classer("expedition",document)[0] : false;
//	if (tempo && tempo2){
//		//= au chargement
//		nommer("fieldset",tempo2)[0].style.display = etat[parseInt(tempo.value) == 0 ? 0 : 1];
//		//= a la souris
//		tempo.onchange = function(){
//			nommer("fieldset",classer("expedition",document)[0])[0].style.display = etat[parseInt(this.value) == 0 ? 0 : 1];
//		}
//		//= au clavier
//		tempo.onkeyup = function(){
//			nommer("fieldset",classer("expedition",document)[0])[0].style.display = etat[parseInt(this.value) == 0 ? 0 : 1];
//	}	}

} // Fin if(!multicolis) 

	//Adapter la visibilite d'une zone de formulaire (professionnel) dans la popin d'inscription
	tempo = idier("inscription");
	if (tempo){
		professionnel = classer("droite",tempo.parentNode)[0].cloneNode(true);
		soustraire(classer("droite",tempo.parentNode)[0]);
	}

	//Gerer le formulaire de destination (tronc commun a France et etranger : destiner-1.html, destiner-2.html, destiner-3.html)
				/* formulaire et interaction re-specifies le 11 mars */
	//méthode enlevée pour reprendre le controle de la construction des pages

	//Gerer le formulaire de destination en etape 2 (topship.html - et adaptation pour popin de multicolis.html)
	//méthode enlevée pour reprendre le controle de la construction des pages

	//Gerer la facture pro-format
	tempo = idier("proformat");
	tempoMulti = idier("proformat0");

	if (tempo || tempoMulti){
		if(tempoMulti) {
			tempo = tempoMulti;
		}

 		if(multicolis) {
 		
 			var idElement = 0;
	 		while(idier("proformat"+idElement)) {
//				tempo = classer("limite",idier("proformat"+idElement));
//				for (i=0;i<tempo.length;i++) soustraire(tempo[i]);
				tempo = idier("proformat"+idElement).parentNode;
				tempo2 = creer("p");
				tempo2.innerHTML = proformatArticles;
				var countrySelectBoxes = nommer("select",tempo);
				var inputs = nommer("input",tempo);
				var tempo3 = nommer("div",tempo)[0];
				poserDevant(tempo2,tempo3.parentNode,tempo3);
				tempo2 = nommer("tr",tempo);
				facturable = tempo2[1].cloneNode(true);
				
				var articleInfos;
				var index;
				var tempo4;
				var modifyProforma = false;
				//on commence par griser les lignes completes
				for (i=tempo2.length-1;i>0;i--)  {
					articleInfos = nommer("input",tempo2[i]);
					if(articleInfos[0].value != "" && articleInfos[1].value != "" && articleInfos[2].value != "") {
						modifyProforma = true;
						for (var j=0;j<3;j++)  {
							articleInfos[j].className += " desactive"; 
							articleInfos[j].disabled = true; 
						}
						//window.alert("checkbox " + articleInfos[3].id);
						articleInfos[3].style.display = "inline";
						
						tempo4 = nommer("td",tempo2[i]);
						tempo4[4].innerHTML = strongA + eval(articleInfos[1].value * articleInfos[2].value) + strongZ;
						
						selectCountry = nommer("select",tempo2[i]);
						selectCountry[0].className += " desactive";
						selectCountry[0].disabled = true;
					}
				}
				
				var count = tempo2.length-1;
				if (modifyProforma) count = tempo2.length-2;
				
				//puis on cache les lignes en trop
				for (i=count;i>1;i--)  {
					articleInfos = nommer("input",tempo2[i]);
					if(articleInfos[0].value == "" || articleInfos[1].value == "" || articleInfos[2].value == "") {
						soustraire(tempo2[i]);
					}
				}
				
				idElement++;
			}
 			
            tempo = classer("dema",idier("multicolisForm"));
			if(null != tempo) {
				for (i=0;i<tempo.length;i++){
					tempo[i].onchange = formaterMulticolis;
					tempo[i].onkeyup = formaterMulticolis;
				}
			}
		} //Fin if(multicolis)
		else {
			tempo = idier("dema");
			if (tempo){
				tempo.onchange = formater;
				tempo.onkeyup = formater;
			}
		}
	}

	//Les options d'adressage (multicolis) - fonctionnalites necessitant JavaScript
	tempo = idier("preAdressage");

	if (tempo){
		tempo2 = creer("div");
		tempo2.className = "options";
		tempo2.innerHTML = adressageOptions;
		poserDevant(tempo2,tempo.parentNode,tempo);
		lesPopin["listage"] = adressageIdentique;


	}

if(!multicolis) {
	//Gerer le carnet d'adresse en popin
//	tempo = classer("lenvoi",document).length > 0 ? classer("lenvoi",document)[0] : false;
//	if (tempo){
//		tempo2 = nommer("p",tempo);
//		insererSelectionCarnet(tempo2[1],tempo2[2],tempo2[3]);
//	}


	//Gerer la facture pro-format
	tempo = idier("proformat");
	if (tempo){
//		tempo = classer("limite",document);
//		for (i=0;i<tempo.length;i++) soustraire(tempo[i]);
		tempo = idier("proformat").parentNode;
		tempo2 = creer("p");
		tempo2.innerHTML = proformatArticles;
		var countrySelectBoxes = nommer("select",tempo);
		var inputs = nommer("input",tempo);
		var tempo3 = nommer("div",tempo)[0];
		poserDevant(tempo2,tempo3.parentNode,tempo3);
		tempo2 = nommer("tr",tempo);
		facturable = tempo2[1].cloneNode(true);
		
		var articleInfos;
		var index;
		var tempo4;
		var modifyProforma = false;
		//on commence par griser les lignes completes
		for (i=tempo2.length-1;i>0;i--)  {
			articleInfos = nommer("input",tempo2[i]);
			if(articleInfos[0].value != "" && articleInfos[1].value != "" && articleInfos[2].value != "") {
				modifyProforma = true;
				for (var j=0;j<3;j++)  {
					articleInfos[j].className += " desactive"; 
					articleInfos[j].disabled = true; 
				}
				//window.alert("checkbox " + articleInfos[3].id);
				articleInfos[3].style.display = "inline";
				
				tempo4 = nommer("td",tempo2[i]);
				tempo4[4].innerHTML = strongA + eval(articleInfos[1].value * articleInfos[2].value) + strongZ;
				
				selectCountry = nommer("select",tempo2[i]);
				selectCountry[0].className += " desactive";
				selectCountry[0].disabled = true;
			}
		}
		
		var count = tempo2.length-1;
		if (modifyProforma) count = tempo2.length-2;
		
		//puis on cache les lignes en trop
		for (i=count;i>1;i--)  {
			articleInfos = nommer("input",tempo2[i]);
			if(articleInfos[0].value == "" || articleInfos[1].value == "" || articleInfos[2].value == "") {
				soustraire(tempo2[i]);
			}
		}
		
		tempo = idier("dema");
		if (tempo){
			tempo.onchange = formater;
			tempo.onkeyup = formater;
		}
	}
	
} // Fin if(!multicolis) 




	//Gerer les popin : situation en fin de page ; ouverture au chargement

	tempo = classifier("popin",nommer("div",document));

	for (i=0;i<tempo.length;i++){


		tempo2 = nommer("a",tempo[i])[0];

		var tempo3 = tempo2.id;

		soustraire(tempo2);
		var largeur = tempo[i].className.indexOf("important") > -1 ? 1 : 0;
		largeur = tempo[i].className.indexOf("onfle") > -1 ? 2 : largeur;
		largeur = tempo[i].className.indexOf("proforma") > -1 ? 4 : largeur;




		lesPopin[tempo3] = largeur + tempo[i].innerHTML;

//		alert('lespopin id ' + tempo3);
//		alert('vient de prendre ' + tempo[i].innerHTML);




		//= attention par d'ouverture au chargement pour les aides
		var tempo4 = tempo[i].className.indexOf("explicatif") < 0 ? true : false;
		soustraire(tempo[i]);
		//= au chargement
		if (tempo4 && document.location.hash.substring(1) == tempo3){
			scrollTo(0,0);

			superposer(nommer("a",document)[0],document.location.hash);

	}	}


	
	//Gerer les popin : liens d'appel
	tempo = classifier("pop",nommer("a",document));
	for (i=0;i<tempo.length;i++){
		tempo[i].onclick = function(){

			return superposer(this,this.href);
	}	}
	tempo = classifier("pop",nommer("input",document));
	for (i=0;i<tempo.length;i++){
		tempo[i].onclick = function(){


			return superposer(this,this.title);
	}	}

	//Gerer les popin d'aide : liens d'appel
	tempo = classifier("aide",nommer("a",document));
	for (i=0;i<tempo.length;i++){
		tempo[i].onclick = supercaler;
	}

	//Gerer les formulaires en insert : situation en fin de page
	tempo = classifier("insert",nommer("div",document));
	for (i=0;i<tempo.length;i++){
		tempo2 = nommer("a",tempo[i])[0];
		var tempo3 = tempo2.id;
		soustraire(tempo2);
		lesInsert[tempo3] = tempo[i].innerHTML;
		soustraire(tempo[i]);
	}

	//Gerer les formulaires en insert : lien d'appel
	tempo = classifier("rappeler",nommer("a",document));
	for (i=0;i<tempo.length;i++){
		tempo[i].onclick = inserer;
	}

	//Soustraire les 'hr' separant les popin precharges en fin de page
	tempo = classifier("tropique",nommer("hr",document));
	for (i=0;i<tempo.length - 1;i++){
		soustraire(tempo[i]);
	}

}



/* FONCTIONS DIVERSES : D-HTML dans formulaires */

//Inserer le formulaire de rappel du mot de passe
function inserer(e){
	//Neutraliser un nouvel appel du formulaire
	this.onclick = function(){
		return false;
	}
	//Recuperer l'ancre identifiant le formulaire
	var tempo = this.href.substring(this.href.lastIndexOf("#") + 1);
	if (lesInsert[tempo]){
		//Inserer le formulaire (attention : en page et en popin)
		var lIdentification = ! lucarne ? "oubli" : "oubli2";
		creerDebut("div",false,document.body,"id~" + lIdentification,"class~insert");
		var tempo2 = idier(lIdentification);
		tempo2.innerHTML = lesInsert[tempo];
		soustraire(classer("fermeture",tempo2)[0]);
		//Positionner le formulaire
		this.parentNode.style.paddingBottom = tempo2.offsetHeight + 20 + "px";
		if(e) positions = new Array(e.pageX,e.pageY);
		else positions =  new Array(event.clientX + document.documentElement.scrollLeft,event.clientY + document.documentElement.scrollTop);
		tempo2.style.top = positions[1] + 22 + "px";
		if (! lucarne) tempo2.style.left = classifier("web",nommer("div",document))[0].offsetLeft + 30 + "px";
		else tempo2.className += " surinsert";
		//Transmettre le focus au premier champ du formulaire
		nommer("input",tempo2)[0].focus();
	}
	return false;
}

//Choisir un point relai
function relayer(a){
	var tempo = appeler("relais",document);
	var tempo2 = false;
	for (i=0;i<tempo.length;i++){
		if (tempo[i].checked){
			tempo2 = i;
			break;
	}	}
	if (tempo2){
		var tempo3 = nommer("label",tempo[tempo2].parentNode)[0].innerHTML;
		tempo = a.parentNode.parentNode;
		nommer("table",tempo)[0].style.display = "none";
		nommer("p",tempo)[0].innerHTML += relai1 + tempo3 + spanZ;
		nommer("a",nommer("p",tempo)[1])[0].innerHTML = relai2;
		nommer("a",nommer("p",tempo)[1])[0].onclick = function(){
			this.innerHTML = relai3;
			this.onclick = function(){
				return relayer(this);
			}
			var tempo = this.parentNode.parentNode;
			nommer("table",tempo)[0].style.display = firefox ? "inline-table" : "block";
			soustraire(nommer("span",nommer("p",tempo)[0])[0]);
	}	}
	return false;
}

//Agencer le formulaire selon le type de destinataire (destiner-1.html, destiner-2.html, destiner-3.html)
function typerDestinataire(){
	var tempo = idier("recip");
	var tempo2 = laSelection.value;
	var tempo3 = destinables.length;
	for (i=0;i<tempo3;i++) astiner(i);
	syntraire(retour);
	syntraire(dimensions);
	//= particulier ou entreprise
	if (tempo2 == 0 || tempo2 == 1){
		for (i=Math.abs(tempo2 - 1);i<tempo3 - 3;i++) poserFin(destinables[i],tempo);
		tempo5 = appeler("reto",document);
		var tempo6 = 0;
		for (i=0;i<tempo5.length;i++){
			if (tempo5[i].checked){
				tempo6 = tempo5[i].value;
				break;
		}	}
		retourner(tempo6);
	}
	//= points relais
	else if (tempo2 == 2){
		poserFin(destinables[tempo3 - 3],tempo);
		poserFin(destinables[tempo3 - 2],tempo);
		poserFin(destinables[tempo3 - 5],tempo);
		poserFin(destinables[tempo3 - 4],tempo);
		poserFin(destinables[tempo3 - 1],tempo);
		tempo = nommer("fieldset",laSelection.parentNode.parentNode);
		poserFin(destinables[1],tempo[0]);
		poserFin(destinables[2],tempo[0]);
		poserFin(destinables[8],tempo[0]);
		poserFin(destinables[9],tempo[0]);
		poserFin(destinables[3],tempo[1]);
		poserFin(destinables[4],tempo[1]);
		poserFin(destinables[6],tempo[1]);
		poserFin(destinables[7],tempo[1]);
		retourner(0);
		poserFin(dimensions,classer("droite",classer("envoi",document)[0])[0]);
}	}
function astiner(a){
	syntraire(destinables[a]);
}

//Agencer le formulaire selon le pays et corrolairement selon le type de destinataire (a la suite d'une longue analyse du specifiable from spec) (toship.html, + popin de multicolis.html)
/* valeurs territoire a mettre a jour dans donnees.js */
function destiner(){
	var tempo = stinabler(-1);
	var tempo2 = idier("dast").value;
	var tempo3 = false;
	for (i=0;i<territoires.length;i++) if (territoires[i] == tempo2) tempo3 = true;
	poserFin(destinables[0],tempo);
	//vers etranger
	if (! tempo3){
		if(idier("dest").selectedIndex == 1) {
			poserFin(destinables[1],tempo);
		}
		for (i=2;i<14;i++) poserFin(destinables[i],tempo);
	}
	//= vers territoires francais
	else if (tempo3){
		poserFin(destinables[0],tempo);
		franchir();
	}
	//Point Relais est proposé uniquement en France
	var destinationFrance = false;
	if (territoires[0] == idier("dast").value) destinationFrance = true;
	//test multicolis
	var popinMulticolis = false;
	if(document.location.href.lastIndexOf("ulticolis") > 0) popinMulticolis = true;
	//ajout ou suppression de l'option point relais
	if(destinationFrance) {
		idier("dest").options[2] = new Option("Point Relais","2");
	}else {
		idier("dest").options[2] = null;
	}
}
function stinabler(a){
	var tempo = idier("recip");
	var tempo2 = nommer("fieldset",tempo);
	//= mise a jour en fonction de donnees ville chargees par Ajax
	if (idier(urbi) && idier(urbi).tagName.toLowerCase() == "select" && idier(urbi).innerHTML.indexOf(urbiEtAjaxi) < 0){
		estimable[1] = idier(urbi).parentNode.cloneNode(true);
	}
	//= remise a zero
	for (i=tempo2.length-1;i>-1;i--) soustraire(tempo2[i]);
	tempo2 = nommer("p",tempo);
	for (i=tempo2.length-1;i>a;i--) soustraire(tempo2[i]);
	return idier("recip");
}
//Agencer le formulaire pour les territoires francais selon le type de destinataire (a la suite d'une longue analyse du specifiable from spec) (toship.html, + popin de multicolis.html)
function affranchir(){
	franchir();
	idier("dest").focus();
}
function franchir(){
	var versFranceDom = false;
	var codePays = idier("dast").value;
	for (i=0;i<territoires.length;i++) if (territoires[i] == codePays) versFranceDom = true;
	if(versFranceDom) {
		var tempo = stinabler(0);
		var tempo2 = idier("dest").value;
		var tempo3 = destinables.length;
		document.getElementById('boutonValider').style.display = "";
		//= vers une entreprise
		if (tempo2 == 1){
			poserFin(destinables[1],tempo);
		}
		//= vers un particulier ou vers une entreprise
		if (tempo2 < 2){
			for (i=2;i<estimable[0];i++) poserFin(destinables[i],tempo);
			poserFin(estimable[1],tempo);
			for (i=estimable[0]+ 1;i<9;i++) poserFin(destinables[i],tempo);
			for (i=10;i<12;i++) poserFin(destinables[i],tempo);
			poserFin(destinables[14],tempo);
			poserFin(destinables[12],tempo);
			poserFin(destinables[13],tempo);
		}
		//= vers un point relai
		else if (tempo2 == 2){
			poserFin(destinables[tempo3 - 3],tempo);
			poserFin(destinables[tempo3 - 2],tempo);
			poserFin(destinables[12],tempo);
			poserFin(destinables[13],tempo);
			poserFin(destinables[tempo3 - 1],tempo);
			tempo = nommer("fieldset",idier("dest").parentNode.parentNode);
			poserFin(destinables[2],tempo[0]);
			poserFin(destinables[3],tempo[0]);
			poserFin(destinables[10],tempo[0]);
			poserFin(destinables[11],tempo[0]);
			poserFin(destinables[4],tempo[1]);
			poserFin(destinables[5],tempo[1]);
			poserFin(destinables[7],tempo[1]);
			poserFin(estimable[1],tempo[1]);
			idier('boutonValider').style.display = "none";
		}
	}
	else {
		var tempo = stinabler(-1);
		poserFin(destinables[0],tempo);
		if(idier("dest").selectedIndex == 1) {
			poserFin(destinables[1],tempo);
		}
		for (i=2;i<14;i++) poserFin(destinables[i],tempo);
	}
}

//Inserer la boite de selection des carnets d'adresse et gerer la modification
function insererSelectionCarnet(a,b,c){
	if (carnets.length == 0){
		carnets[0] = a.cloneNode(true);
		carnets[0].className = "h";
		soustraire(nommer("input",carnets[0])[0]);
		carnets[1] = b.cloneNode(true);
		carnets[1].className = "h";
	}
	soustraire(b);
	soustraire(a);
	var tempo = creer("p");
	tempo.innerHTML = carnetAdresse;
	poserDevant(tempo,c.parentNode,c);
}

//Modifier le carnet d'adresse
function personnaliserCarnet(){
	if(idier('choixCarnet').selectedIndex == 0) {
		idier('pCarnetChrono').style.display = "none";
		idier('pCarnetOrange').style.display = "none";
	}
	else if(idier('choixCarnet').selectedIndex == 1) {
		idier('pCarnetChrono').style.display = "";
		idier('pCarnetOrange').style.display = "none";
	}
	else if(idier('choixCarnet').selectedIndex == 2) {
		idier('pCarnetChrono').style.display = "none";
		idier('pCarnetOrange').style.display = "";
	}
}

//Ajout d'une condition supplementaire a la definition de la visibilite d'une zone de formulaire (colis retour)
function tourner(){
	if (this.checked){
		var tempo = nommer("input",this.parentNode);
		if (tempo[1].checked || (! tempo[1].checked && ! tempo[2].checked)) retourner(0);
		else if (tempo[2].checked) retourner(2);
	} else if (! this.checked) retourner(0);
}

//Definir la visibilite de la zone colis retour
function retourner(a){
	var tempo = this.value ? this.value : a;
	var tempo2 = classer("droite",classer("envoi",document)[0])[0];
	var tempo3 = idier("rtr") ? idier("rtr").checked : false;
	if (! tempo3 || tempo != 2) syntraire(retour);
	else if (! idier("poid2") && tempo3 && tempo == 2) poserFin(retour,tempo2);
}

//Gerer les evenements pour la visibilite de la zone professionnel dans la popin d'inscription
function gererStatut(){
	idier("stat0").onclick = gererStatutSoustraction;
	idier("stat0").onkeyup = gererStatutSoustraction;
	idier("stat1").onclick = gererStatutInsertion;
	idier("stat1").onkeyup = gererStatutInsertion;
}
function gererStatutSoustraction(){
	if (classer("droite",lucarne)[0]){
		soustraire(classer("droite",lucarne)[0]);
		lucarne.className += " mprtable";
		caler();
}	}
function gererStatutInsertion(){
	if (! classer("droite",lucarne)[0]){
		poserFin(professionnel,classer("anse",lucarne)[0]);
		lucarne.className = lucarne.className.split("mprtable")[0];
		caler();
}	}

//Proposer une facture pro-format en popin : a la selection du produit
//méthode changée pour pouvoir l'appeler au chargement de la page
function formater(){

	var selectBox = idier("dema");
	if (selectBox.value.indexOf("M_") == 0){
		idier("labelValu").innerHTML = idier("labelValu").innerHTML.replace("<em></em>","<em>\*</em>").replace("<EM></EM>","<EM>\*</EM>");
		if(idier("lienProForma"))
			idier("lienProForma").style.display = "";
	} else if (selectBox.value.indexOf("M_") < 0) { 
		idier("labelValu").innerHTML = idier("labelValu").innerHTML.replace("<em>\*</em>","<em></em>").replace("<EM>\*</EM>","<EM></EM>");
		if(idier("lienProForma"))
			idier("lienProForma").style.display = "none";
	}
}

//Proposer une facture pro-format en popin : a la selection du produit pour multicolis
function formaterMulticolis(){
	var elementIndex = eval(parseInt(this.id.substring(4)));
	if (this.value.indexOf("M_") == 0){
		//idier("labelValu"+elementIndex).innerHTML = idier("labelValu"+elementIndex).innerHTML.replace("<em></em>","<em>\*</em>");
		if(idier("lienProForma"+elementIndex))
			idier("lienProForma"+elementIndex).style.display = "";
	} else if (this.value.indexOf("M_") < 0) {
		//idier("labelValu"+elementIndex).innerHTML = idier("labelValu"+elementIndex).innerHTML.replace("<em>\*</em>","<em></em>");
		if(idier("lienProForma"+elementIndex))
			idier("lienProForma"+elementIndex).style.display = "none";
	}
	updateMulticolisFormField(this, elementIndex)
}

//Proposer une facture pro-format en popin : a la selection du produit pour multicolis
function formaterMulticolisOnLoad(selectId){
	var elementIndex = eval(parseInt(selectId.substring(4)));
	if (idier(selectId) && idier(selectId).value.indexOf("M_") == 0){
		//idier("labelValu"+elementIndex).innerHTML = idier("labelValu"+elementIndex).innerHTML.replace("<em></em>","<em>\*</em>");
		if(idier("lienProForma"+elementIndex))
			idier("lienProForma"+elementIndex).style.display = "";
	} else {
		//idier("labelValu"+elementIndex).innerHTML = idier("labelValu"+elementIndex).innerHTML.replace("<em>\*</em>","<em></em>");
		if(idier("lienProForma"+elementIndex))
			idier("lienProForma"+elementIndex).style.display = "none";
	}
}

//Proposer une facture pro-format en popin : au choix du bouton
function informater(){
	superposer(idier("edpf"),"proformat");
}

//Unifier l'adressage des colis en mulitolis (necessite JS)
function adresser(a){
	var tempo = appeler("envo",document);
	var tempo2 = tempo[0].checked;
	var tempo3 = tempo[1].checked;
	if (tempo2 && tempo3) 
		return document.location.href = lurl; //cf. donnees.js
	else if (tempo2) {
		return superposer(a,"#listage");
	}
	else if (tempo3){
		return superposer(a,"#choix");
	}
	return false;
}

//Manipuler un ensemble de champs 'checkbox' a partir d'un seul
function verifier(a){
	var tempo = nommer("input",idier("liste"));
	var tempo2 = a.checked;
	for (i=0;i<tempo.length;i++) tempo[i].checked = tempo2;
}



/* FONCTIONS DIVERSES : D-HTML dans tableaux */

//Charger une liste de destinataires dans la popin "envoi identique" (#listage)
function lister(a){
	var tempo = idier("liste");
	var tempo2 = nommer("tr",tempo);
	for (i=tempo2.length - 1;i>-1;i--) soustraire(tempo2[i]);
	tempo2 = a.value;
	for (i=0;i<recipend[tempo2][1].length;i++){
		var tempo3 = creer("tr");
		var tempo4 = creer("td");
		//ajout de la checkbox (tempo4)
		tempo4.innerHTML = adressageChoix1 + i + adressageChoix2 + i + finalCut;
		poserFin(tempo4,tempo3);
		var tempo5 = recipend[tempo2][1][i].split(",");
		tempo4 = creer("td");
		tempo4.innerHTML = adressageChoix3 + i + miCut + tempo5[0] + labelZ;
		poserFin(tempo4,tempo3);
		for (j=1;j<5;j++) {
			var champ = " ";
			if('null' != tempo5[j]) {champ = tempo5[j];}
			enlister(champ,tempo3);
		}
		poserFin(tempo3,tempo);
	}
	verifier(idier("haustif"));
	caler();
}
function enlister(a,b){
	var tempo = creer("td");
	tempo.innerHTML = a;
	poserFin(tempo,b);
}

//Rajouter un produit a la facture pro-format
function incrementer(a){
	var tempo = a.parentNode.parentNode;
	var tempo2 = nommer("input",tempo);
	var countrySelectBoxes = nommer("select",tempo);
	if (tempo2.length > 1){
		var tempo3 = classer("aplay",tempo).length > 0 ? tempo2.length - nommer("input",classer("aplay",tempo)[0]).length : tempo2.length;
		var message = false;
		for (i=tempo3-5;i<tempo3-2;i++){
			if (tempo2[i].value.length == 0) message = message1;
			if (i != tempo3 - 5 && tempo2[i].value / 1 != tempo2[i].value) message = message2;
			if (message){
				alert(message);
				return tempo2[tempo3 - 5].focus();
		}	}
		
		for (i=tempo3-5;i<tempo3-2;i++){
			tempo2[i].className += " desactive"; 
			tempo2[i].disabled = true; 
		}

		//récupération de l'index de la ligne
		var indexLine = (tempo3-5)/4+1;
		countrySelectBoxes[indexLine].className += " desactive";
		countrySelectBoxes[indexLine].disabled = true;
		
		
		tempo2[tempo3 - 2].style.display = "inline";
		var tempo4 = nommer("td",tempo);
		tempo4[tempo4.length - 2].innerHTML = strongA + eval(tempo2[tempo3 - 4].value * tempo2[tempo3 - 3].value) + strongZ;
		tempo4 = new Date().getTime();
		var tempo5 = facturable.cloneNode(true);
		var tempo6 = nommer("input",tempo5);
		for (i=0;i<tempo6.length;i++) tempo6[i].id = tempo6[i].id.split("1")[0] + tempo4;
		poserFin(tempo5,nommer("tbody",tempo)[0]);
		caler();
		//tempo5[0].focus(); /* ie 6 */
		tempo2 = nommer("input",tempo);
		tempo3 = classer("aplay",tempo).length > 0 ? tempo2.length - nommer("input",classer("aplay",tempo)[0]).length : tempo2.length;
		return tempo2[tempo3 - 5].focus();
}	}

//Enlever des produits a la facture pro-format
function ecremer(a){
	var tempo = a.parentNode.parentNode;
	var tempo2 = nommer("input",tempo);
	if (tempo2.length > 1){
		for (i=tempo2.length - 6;i>2;i-=4){
			if (tempo2[i].checked){
				soustraire(tempo2[i].parentNode.parentNode);
				caler();
		}	}
		tempo2[tempo2.length - 5].focus();
	}
	return false;
}


/* POPIN */

//Ouvrir la popin
var parachute;
var lucarne;
function superposer(a,b,c){




	//Recuperer l'ancre identifiant la popin
	var tempo = b.substring(b.lastIndexOf("#") + 1);



	if (lesPopin[tempo]){

		//Fermer une eventuelle precedente popin
		deposer();
		//Prevoir le focus a la fermeture
		parachute = a == false ? peler("a",document)[0] : a;

		if (c != "aide" || (c == "aide" && positions[0] == 0)){ //pour le clic clavier
			//Bogue IE 6
			if (ie6) document.body.className += " gabegie";
			//Voiler
			creerDebut("div",false,document.body,"id~canopee");
		}

		//Inserer la popin
		creerDebut("div",false,document.body,"id~lucarne","class~inpop");
		lucarne = idier("lucarne");

		//Injecter le contenu du popin
		lucarne.innerHTML = lesPopin[tempo].substring(1) + hrAZ;





		//Elargir la popin pour un contenu large
		if (lesPopin[tempo].substring(0,1) == 1){
			lucarne.className += " important mprtable";
			//Adapter la visibilite d'une zone de formulaire (professionnel) dans la popin d'inscription
			if (appeler("stat",document).length > 0) gererStatut();
		} else if (lesPopin[tempo].substring(0,1) == 2) lucarne.className += " important onfle";
		else if (lesPopin[tempo].substring(0,1) == 3) lucarne.className += " important onfle ri";
		else if (lesPopin[tempo].substring(0,1) == 4) lucarne.className += " important proforma";
		
		//Determiner la popin pour une aide contextuelle
		if (c == "aide") lucarne.className += " explicatif";
		//Presenter le formulaire "Choisir un destinataire" (multicolis)

		if (tempo.substring(0,5) == "choix"){

			//= Tracage de l'option destinataire identique
//			var tempo2 = nommer("form",lucarne)[0].innerHTML;
//			nommer("form",lucarne)[0].innerHTML = tempo2 + adressageOptionsPopin;
			//= Equivalent de if (! popinastibilite) au chargement
//			tempo = idier("dast");
//			tempo.onchange = destiner;
//			tempo.onkeyup = destiner;
//			destiner(); //preferable pour preserver l'identite des champs
//			tempo = idier("dest"); //Equivalent de nommer("select",destinables[0])[0].onchange = affranchir au chargement ++
//			tempo.onchange = affranchir;
//			tempo.onkeyup = affranchir;

			updateElementsRecipientForm();
			selectCountryRecipientPopin();

			loadCityReceiver();
			switchCityField();
		}

		//Gerer les formulaires inserables
//		tempo = classer("rappeler",lucarne);
//		if (tempo.length > 0) tempo[0].onclick = inserer;
		//Inserer un lien de fermeture
		tempo = classer("fermeture",lucarne)[0];
		var tempo2 = tempo.cloneNode(true);


		soustraire(tempo);
		nommer("img",tempo2)[0].alt = "Fermer";
		tempo2.onclick = function(){
			return deposer();
		}

		//appel de l'ajax de renseignemeent des villes. Celui ci doit se faire apres l'apparition de la popin, pour marcher.
		loadCitySender();



		if (tempo == "modification"){
		}

		poserDebut(tempo2,lucarne);
		//transmission du produit choisi
		if (a != false && a.tagName.toLowerCase() == "a" && nommer("label",a).length > 0){
		// http://www.quirksmode.org/bugreports/archives/2007/03/getAttributefor_is_always_null_in_Internet_Explore.html
		//	IE est la syllabe favorite de gabegie, de sovietique, et de festival d'avoriez
			try{ idier(nommer("label",a)[0].attributes["for"].nodeValue).checked = true; }
			catch(e){ } //car "Valider mes options" : l'une des deux popin n'a pas le fieldset aplay
		}
		//Ajuster les positions de la popin, la faire apparaitre
		if (c != "aide" || (c == "aide" && positions[0] == 0)) caler(); //pour le clic clavier
		else{
			lucarne.style.left = positions[0] + 30 + "px";
			lucarne.style.top = positions[1] - 5 + "px";
		}
		//Transmettre le focus au premier lien de la popin
		nommer("a",lucarne)[0].focus();
		
		tempo = b.substring(b.lastIndexOf("#") + 1);
		if (tempo == "identification"){
			if(idier("urlSubscriptionPopinId")) {
				
				var productIndex = null;
				tempo = nommer("input", idier("produitsIndexes"));
				
				for (i=0;i<tempo.length;i++) {
					if(tempo[i].checked) {
						productIndex = tempo[i].value;
					}
				}
				
				//pour firefox
				idier("urlSubscriptionPopinId").href = idier("urlSubscriptionPopinId").href.replace("%3CproductIndex%3E", productIndex);
				//pour IE
				idier("urlSubscriptionPopinId").href = idier("urlSubscriptionPopinId").href.replace("<productIndex>", productIndex);
				
			}
			else {
				window.alert("lien non trouvé");	
			}
		}
	}


	return false;
}

//Ouvrir la popin d'aide
function supercaler(e){
	if(e) positions = new Array(e.pageX,e.pageY);
	else positions =  new Array(event.clientX + document.documentElement.scrollLeft,event.clientY + document.documentElement.scrollTop);





	return superposer(this,this.href,"aide");
}

//Caler la popin
function caler(){
	var glissement = document.body.scrollTop > document.documentElement.scrollTop ? document.body.scrollTop : document.documentElement.scrollTop;
	var situation = document.documentElement.clientHeight > lucarne.offsetHeight ? (document.documentElement.clientHeight - lucarne.offsetHeight) / 2 : 12;
	lucarne.style.top = glissement + situation + "px";
	lucarne.style.left = "50%";
}

//Fermer la popin
function deposer(){
	try{
		if (idier("canopee")) soustraire(idier("canopee"));
		soustraire(lucarne);
		lucarne = false;
		if (parachute){
			parachute.focus();
			parachute = false;
		}
		if (ie6) document.body.className = document.body.className.split(" gabegie")[0];
		if (idier("oubli2")) soustraire(idier("oubli2"));
	} catch(e){}
	return false;
}



/* ROUTINES (dont manipulations du DOM) */

//Identification du navigateur
var vaisseau = navigator.userAgent.toLowerCase();
var safari = vaisseau.indexOf("safari") > -1 ? true : false;
var ie6 = vaisseau.indexOf("msie 6") > -1 ? true : false;
var ff2 = vaisseau.indexOf("firefox/2") > -1 ? true : false;
var opera = vaisseau.indexOf("opera") > -1 ? true : false;
var firefox = vaisseau.indexOf("firefox") > -1 ? true : false;

//Creer un element du DOM /* qui : element a creer */
function creer(qui){
	return document.createElement(qui);
}

//Soustraire un element du DOM	/* qui : element a soustraire */
function soustraire(qui){
	if(null != qui && null != qui.parentNode)
		qui.parentNode.removeChild(qui);
}

//Soustraire un element du DOM	s'il est present/* qui : element a soustraire */
function syntraire(qui){
	try{
		qui.parentNode.removeChild(qui);
	} catch(e){};
}

//Obtenir un element du DOM par son identifiant /* qui : identifiant a recolter */
function idier(qui){
	return document.getElementById(qui);
}

//Obtenir des elements du DOM ou d'une partie du DOM par leur balise /* qui : balise a recolter - ceint : perimetre */
function nommer(qui,ceint){
	if(null != ceint)
		return ceint.getElementsByTagName(qui);
}

//Obtenir des elements du DOM ou d'une partie du DOM par leur attribut name /* qui : balise a recolter - ceint : perimetre */
function appeler(qui,ceint){
	if(null != ceint)
		return ceint.getElementsByName(qui);
}

//Obtenir des elements du DOM ou d'une partie du DOM par leur classe /* qui : nom du selecteur a recolter - ceint : perimetre */
function classer(qui,ceint){
	if(null != ceint) {
		var classe = new RegExp("(^|\\s)" + qui + "(\\s|$)");
	    var base = (ceint.all) ? ceint.all : ceint == document ? document.body.getElementsByTagName("*") : ceint.getElementsByTagName("*");
	    var tempo = new Array();
		for (ww=0;ww<base.length;ww++) if (classe.test(base[ww].className)) tempo.push(base[ww]);
		return (tempo);
	}
}

//Obtenir des elements parmi une collection d'elements correspondant a une balise par leur classe /* qui : nom du selecteur a recolter - suite : collection d'objets */
function classifier(qui,suite){

	var classe = new RegExp("(^|\\s)" + qui + "(\\s|$)");

    var tempo = new Array();

	for (ww=0;ww<suite.length;ww++) {



		if (classe.test(suite[ww].className)) {

			tempo.push(suite[ww]);
		} 

	}




	return (tempo);
}

//Creer un element et l'inserer comme premier element d'une partie du DOM /* qui : element a creer et a inserer - donnees : son contenu - cadre : parent + attributs... */
function creerDebut(qui,donnees,cadre){
	var tempo = document.createElement(qui);
	if (donnees) tempo.innerHTML = donnees;
	for (ww=3;ww<arguments.length;ww++){
		var tempo2 = document.createAttribute(arguments[ww].split("~")[0]);
		tempo2.nodeValue = arguments[ww].split("~")[1];
		tempo.setAttributeNode(tempo2);
	}
	cadre.insertBefore(tempo,cadre.firstChild);
}

//Creer un element et l'inserer comme dernier element d'une partie du DOM /* qui : element a creer et a inserer - donnees : son contenu - cadre : parent + attributs... */
function creerFin(qui,donnees,cadre){
	var tempo = document.createElement(qui);
	if (donnees) tempo.innerHTML = donnees;
	for (ww=3;ww<arguments.length;ww++){
		var tempo2 = document.createAttribute(arguments[ww].split("~")[0]);
		tempo2.nodeValue = arguments[ww].split("~")[1];
		tempo.setAttributeNode(tempo2);
	}
	cadre.appendChild(tempo);
}

//Inserer un element comme premier element d'une partie du DOM /* qui : element a creer et a inserer - cadre : parent */
function poserDebut(qui,cadre){
	cadre.insertBefore(qui,cadre.firstChild);
}

//Inserer un element devant un autre element d'une partie du DOM /* qui : element a inserer - cadre : parent - devant : element suivant l'element a inserer */
function poserDevant(qui,cadre,devant){
	cadre.insertBefore(qui,devant);
}

//Inserer un element comme dernier element d'une partie du DOM /* qui : element a creer et a inserer - cadre : parent */
function poserFin(qui,cadre){
	cadre.appendChild(qui);
}


//Afficher la liste de relais dans la page toship-1.html
// Ajout du 28 avril 2009
function afficherListeRelais(){
	if(document.getElementById('listeRelais')){
		document.getElementById('relaisConteneur').appendChild(document.getElementById('listeRelais'));
		document.getElementById('listeRelais').style.display = "block";
	}
}

// FIN Ajout du 28 avril 2009

function afficherFormProfessionnel(){
	document.getElementById('formProfessionnel').style.display = "block";
}
function cacherFormProfessionnel(){
	document.getElementById('formProfessionnel').style.display = "none";
}


/*
	Ajouts Telintrans
*/
function updateElementsRecipientForm() {

	//Point relais n'est pas proposé depuis les Dom
	var depuisDom = false;
	if(idier("senderCountryCode")) {

		for (k=1;k<territoires.length;k++) {
			if (territoires[k] == idier("senderCountryCode").innerHTML) depuisDom = true;
		}
	}
    // Point relais n'est pas proposé depuis 98xxx
    if(idier("senderZipCode").innerHTML.substring(0,2) == "98") {
       depuisDom = true;
    }

	//	Point Relais est proposé uniquement a destination de la France, en monocolis, en national
	// Client en compte : l'attribut canSendRelais est rempli en fonction du contrat
	var canSendRelais = $("#canSendRelais").attr("value");

	var destinationFrance = false;
	if (idier("dast") && territoires[0] == idier("dast").value) destinationFrance = true;
	var destinationFranceOuDom = false;
	for (k=0;k<territoires.length;k++) if (idier("dast") && (territoires[k] == idier("dast").value)) destinationFranceOuDom = true;

	var international = true;
	if(idier("dast") && idier("dast").value == idier("senderCountryCode").innerHTML) international = false;

	//Point Relais n'est pas proposé en quickshipping.
	var quickShipping = false;
	if(idier("quickShipping") && "true" == idier("quickShipping").innerHTML) quickShipping = true;

	//test multicolis
	var popinMulticolis = false;
	var showD = true;
	var url = document.location.href;
    if(idier("sameRecipient") && idier("sameRecipient").value=="1") {
       showD = false;
    }
	if(url.lastIndexOf("ulticolis") > 0) popinMulticolis = true;
	//ajout ou suppression de l'option point relais
	if(idier("dest")) {
		if(destinationFrance && !depuisDom && !quickShipping && showD && canSendRelais != "false") {
			if(idier("dest").options.length <3) {
				idier("dest").options[2] = new Option("Point Relais","2");
			}
		}else {
			idier("dest").options[2] = null;
		}
	}

	//Envoi retour non disponible pour un envoi international ou depart Dom
	if(idier("dest") && idier("dest").selectedIndex == 0) {
		idier('fieldsetPartEntr').style.display = "";
		if(idier('pRaisonSociale'))
			idier('pRaisonSociale').style.display = "none";
		if(idier('fieldsetPointRelais'))
			idier('fieldsetPointRelais').style.display = "none";
		if(idier('pEnvoiRetour') && destinationFranceOuDom && !international && !depuisDom) {
			idier('pEnvoiRetour').style.display = "";
		}
		else if(idier('pEnvoiRetour')){
			idier('pEnvoiRetour').style.display = "none";
		}
		if(idier('boutonValider'))
			idier('boutonValider').style.display = "";
		if(idier("fieldsetDimensions")) {
			idier("fieldsetDimensions").style.display = "none";
		}
		if(idier("fieldsetPointsRelais")) {
			idier("fieldsetPointsRelais").style.display = "none";
		}
		idier('prenLabel').innerHTML = idier('prenLabel').innerHTML.replace("<em></em>","<em>\*</em>").replace("<EM></EM>","<EM>\*</EM>");
	}
	else if(idier("dest") && idier("dest").selectedIndex == 1) {
		idier('fieldsetPartEntr').style.display = "";
		if(idier('pRaisonSociale'))
			idier('pRaisonSociale').style.display = "";
		if(idier('rais'))
			idier('rais').style.display = "";
		if(idier('fieldsetPointRelais'))
			idier('fieldsetPointRelais').style.display = "none";
		if(idier('pEnvoiRetour') && destinationFranceOuDom && !international && !depuisDom) {
			idier('pEnvoiRetour').style.display = "";
		}
		else if(idier('pEnvoiRetour')){
			idier('pEnvoiRetour').style.display = "none";
		}
		if(idier('boutonValider'))
			idier('boutonValider').style.display = "";
		if(idier("fieldsetDimensions")) {
			idier("fieldsetDimensions").style.display = "none";
		}
		if(idier("fieldsetPointsRelais")) {
			idier("fieldsetPointsRelais").style.display = "none";
		}
		idier('prenLabel').innerHTML = idier('prenLabel').innerHTML.replace("<em>\*</em>","<em></em>").replace("<EM>\*</EM>","<EM></EM>");
	}
	else if(idier("dest") && idier("dest").selectedIndex == 2) {
		idier('fieldsetPartEntr').style.display = "none";
		if(idier('pRaisonSociale'))
			idier('pRaisonSociale').style.display = "none";
		if(idier('fieldsetPointRelais'))
			idier('fieldsetPointRelais').style.display = "";
		if(idier("rtr"))
			idier("rtr").checked = false;
		if(idier("reto1"))
			idier("reto1").checked = false;
		if(idier("reto2"))
			idier("reto2").checked = false;
		if(idier('pEnvoiRetour'))
			idier('pEnvoiRetour').style.display = "none";
		if(idier('boutonValider')) {
			idier('boutonValider').style.display = "none";
		}
		if(idier("fieldsetDimensions")) {
			idier("fieldsetDimensions").style.display = "";
		}
		if(idier("fieldsetBackShipping")) {
			idier("fieldsetBackShipping").style.display = "none";
		}
		idier("codp2").value = idier("codp").value;
		if(idier("fieldsetPointsRelais")) {
			idier("fieldsetPointsRelais").style.display = "";
		}
	}

	//switch du champ Ville text ou select
	if(destinationFranceOuDom) {
		if(idier('idCityCombo2') && idier('idCityCombo2').style.display == "none") {
			idier('vill').style.display = "none";
			idier('idCityCombo2').style.display = "";
		}
	}
	else {
		if(idier('vill') && idier('vill').style.display == "none") {
			idier('vill').style.display = "";
			idier('idCityCombo2').style.display = "none";
		}
	}


	// MLE - 14/08/09
	// selection particulier ou entreprise => affichage ou non de la raison sociale


    if(idier("labelrais")!=null){
		if(idier("dest")!=null){

			if(idier("dest").value==0){

				document.getElementById('labelrais').style.display = "none";
				document.getElementById('rais').style.display = "none";

			} else {

				document.getElementById('labelrais').style.display = "block";
				document.getElementById('rais').style.display = "block";

			}

		}
	}



}

//fonction appelée a l'affichage des popin #choix
function switchCityField() {
	var destinationFranceOuDom = false;
	for (k=0;k<territoires.length;k++) if (territoires[k] == idier("dast").value) destinationFranceOuDom = true;
	if(!destinationFranceOuDom) {
		if(idier("idCityCombo2")) idier("idCityCombo2").style.display = "none";
		if(idier("vill")) idier("vill").style.display = "";
	}
	else {
		if(idier("idCityCombo2")) idier("idCityCombo2").style.display = "";
		if(idier("vill")) idier("vill").style.display = "none";
	}
}

function updateElementBackShipping() {
	if(idier("fieldsetBackShipping")) {
		if(idier("rtr") && idier("rtr").checked && idier("reto2") && idier("reto2").checked) {
			idier("fieldsetBackShipping").style.display = "";
		}
		else {
			idier("fieldsetBackShipping").style.display = "none";
		}
	}
}


function toggleAsterisqueValeurDeclaree(){
	alert("");
	/*if (idier("dema").value.startsWith("D")){
		alert(idier("labelValu").innerHTML);
		//= &nbsp;<em>*</em>
	}*/
}
