/**
* @Name : objectif_bastille.js
* @Date : 06/01/2009
* @Author : Julien-Claude Fagot
* @Description : Ensemble de fonctions javascript utiles pour le site d'Objectif Bastille
**/


/**
* @Name : displayTopChrono
* @Author : Julien-Claude Fagot
* @CreatedOn : 06/01/2009
* Modifier : 
* @ModifiedOn :
* @Input : 
* 		zipcode : Code postal (5 digits) nécessaire pour établir la regle de gestion
* @Output : 
*		boolean
* @Description : Permet d'afficher en fonction du code postal un nouvel élément "topChrono" dans la liste déroulante des modes de livraison
**/
function displayTopChrono(zipcode){
// Département 75 (zone A): 14,50€
// Département 92-93-94 (zone B): 17,50€
// Département 77-78-91-95 suivant liste des communes jointes (zone C): 29,50€

//Prise en compte des deux premiers digits du CP
	var dept;
	var i;
	var result = 0;
	var tmp;
	var arrDepts = new Array("77700","77170","77177","77400","77600","77420","77600","77500","77700","77410","77400","77400","77770","77181","77200","77184","77164","77400","77410","77400","77400","77400","77181","77330","77185","77770","77410","77290","77144","77420","77400","77135","77340","77680","77400","77700","77170","77200","77360","77270","77410","78260","78240","78570","78870","78390","78380","78530","78300","78420","78240","78117","78400","78700","78290","78990","78330","78112","78280","78800","78350","78170","78150","78600","78230","78110","78340","78350","78620","78430","78114","78600","78750","78160","78780","78310","78360","78180","78590","78370","78300","78560","78450","78150","78210","78100","78860","78470","78500","78117","78190","78140","78000","78450","78220","78960","91200","91160","91570","91070","91800","91440","91160","91380","91080","91560","91210","91800","91360","91000","91700","91190","91350","91430","91260","91940","91000","91160","91310","91300","91230","91310","91420","91390","91400","91120","91550","91630","91400","91190","91240","91700","91160","91600","91450","91430","91370","91270","91120","91120","91360","91190","91700","91170","91320","91330","95580","95100","95400","95250","95550","95870","95500","95720","95000","95240","95650","95170","95330","95600","95440","95880","95610","95120","95130","95740","95140","95500","95190","95410","95220","95280","95530","95130","95500","95580","95190","95370","95680","95360","95160","95000","95520","95480","95350","95650","95700","95350","95210","95320","95310","95390","95110","95200","95230","95150","95500","95490","95400");
	
	dept = zipcode;
	dept = dept.toString();
	dept = dept.substr(0, 2);
	
	if((dept == "75") || (dept == "77") || (dept == "78") || (dept == "91") || (dept == "92") || (dept == "93") || (dept == "94") || (dept == "95")){
		
		//Traitement pour la zone A
		if(dept == "75"){
			result = "A";
		}
		
		//Traitement pour la zone B
		if((dept == "92") || (dept == "93") || (dept == "94")){
			result = "B";
		}
		
		//Traitement pour la zone C
		if((dept == "77") || (dept == "78") || (dept == "91") || (dept == "95")){
			
			for(i = 0; i < arrDepts.length; i++){
				tmp = arrDepts[i];
				
				if (tmp.toString() == zipcode.toString()){
					result = "C";
				}
			}
		}
	}
	return result;
}

/**
* @Name : createLayer
* @Author : Julien-Claude Fagot
* @CreatedOn : 09/02/2009
* Modifier : 
* @ModifiedOn :
* @Input : 
* 		zipcode   : Code postal (5 digits) nécessaire pour établir la regle de gestion
*		lien      : lien pour la redirection
*		className : nom de la classe CSS 
* @Output : 
*		boolean
* @Description : Permet d'afficher un layer si le mode de livraison n'est pas compatible avec le CP choisi
**/
function createLayer(zipcode, current_zip, currentZipElemt, lien, ShippingMethod, className, isTopChronoChecked) {

	var zone_new = displayTopChrono(zipcode);
	var zone_current = displayTopChrono(current_zip);
	var msgLayer1 = "";
	var msgLayer2 = "";
	var msgLayer3 = "";				
	var msgAlert = "";
	var selected;
	var selectedTopChrono;
	var bool = false;
	var ZipCodeIsOk = 0;
	
	currentZipElemt='id_'+currentZipElemt;

	/*Définition des messages en fonction du CP du client*/
	if(zone_new != zone_current){
		//La zone du nouveau CP est != de la zone du CP courant
		
		if(isTopChronoChecked=="1"){

			//Si on est dans le cas d'un mode de livraison TopChrono
			//if(zone_new != 0){
			//	//Si la zone de l'adresse est couverte
			//	ZipCodeIsOk = 1;
			//	selected = "selected = selected";
			//}else{
				//Si la zone de l'adresse n'est pas couverte
				ZipCodeIsOk = 0;
			//}
		}else{

			//Si on est dans le cas d'un mode de livraison autre que TopChrono
			if(zone_new != 0){
				//Si la zone de l'adresse n'est pas couverte
				ZipCodeIsOk = 1;
				selected = "checked = checked";
			}else{
				return;
			}
		}

		if(ZipCodeIsOk == 0){
			msgAlert = 'Attention, vous venez de choisir une zone g\351ographique qui ne r\351pond pas au mode de livraison choisi.\n\n Le mode de livraison de votre panier va \342tre recalcul\351 afin de prendre en compte votre nouvelle adresse de livraison. Nous vous invitons \340 revenir sur le panier afin de choisir un autre mode de livraison';
			msgLayer1 = "<img align='left' class='noLink'src='/WebRoot/OBJECTIFBASTILLE/Shops/objectifbastille/MediaGallery/attention.gif'/>Attention, vous venez de choisir une zone g&eacute;ographique qui ne r&eacute;pond pas au mode de livraison choisi.<br /><br />";
			msgLayer2 = "<br />Le mode de livraison de votre panier va &ecirc;tre recalcul&eacute; afin de prendre en compte votre nouvelle adresse<br/><br/>Nous vous invitons &agrave; revenir sur le panier afin de mettre &agrave; jour votre mode de livraison.";
			msgLayer3 = "<img align='right' class='noLink' onclick='checkDefault(\""+currentZipElemt+"\");hideLayer(\"layerInfo\", \"currentElement\");' src='/WebRoot/OBJECTIFBASTILLE/Shops/objectifbastille/MediaGallery/fermer.gif'/> <input type='image' class='noLink' align='right' src='/WebRoot/OBJECTIFBASTILLE/Shops/objectifbastille/MediaGallery/retourPanier.gif'/>";
		}else{
			msgAlert = 'Vous venez de choisir une zone g\351ographique qui permet de choisir le mode de livraison "Top Chrono".\n\n Une fois votre adresse de livraison valid\351e, vous vous invitons \340 revenir \340 l\'\351tape 1 du processus de commande afin de choisir ce mode de livraison si vous le souhaitez';
			msgLayer1 = "<img align='left' class='noLink'src='/WebRoot/OBJECTIFBASTILLE/Shops/objectifbastille/MediaGallery/attention.gif'/>Vous venez de choisir une zone g&eacute;ographique qui permet de profiter du mode de livraison &laquo; <span style='color:red'>Top Chrono</span> &raquo;.<br /><br />";
			msgLayer2 ="<br/><input type='radio' name='RShippingMethod' value='1' onclick='addHidden(\"layerInfo\",\"ShippingMethod\","+ShippingMethod+")' >Utiliser le mode de livraison &laquo; Top Chrono &raquo; <br/> <input type='radio' name='RShippingMethod' value='0' onclick='addHidden(\"layerInfo\",\"Chronopost\",\"\")' "+ selected +"> Utiliser le mode de livraison &laquo; Chronopost &raquo;";
			msgLayer3 = "<br/><img align='right' class='noLink' onclick='checkDefault(\""+currentZipElemt+"\");hideLayer(\"layerInfo\", \"currentElement\");' src='/WebRoot/OBJECTIFBASTILLE/Shops/objectifbastille/MediaGallery/fermer.gif'/><input type='image' class='noLink' align='right' src='/WebRoot/OBJECTIFBASTILLE/Shops/objectifbastille/MediaGallery/retourPanier.gif'/>";
		}
		
		/*Affichage du layer ou de l'alerte*/
		if (navigator.appName=="Microsoft Internet Explorer"){
			alert(msgAlert);
		}else{
			var table = document.createElement('table');
			table.setAttribute("CellPadding","0");
			table.setAttribute("CellSpacing","0");
			table.setAttribute("id","LayerDiv");
			table.setAttribute("class",className+'Table');
			
			var tbody = document.createElement('tbody');
			var tr1 = document.createElement('tr');
			var td11 = document.createElement('td');
			var td12 = document.createElement('td');
			var td13 = document.createElement('td');
	
			var tr2 = document.createElement('tr');
			var td21 = document.createElement('td');
			var td22 = document.createElement('td');
			var td23 = document.createElement('td');
	
			var tr3 = document.createElement('tr');
			var td31 = document.createElement('td');
			var td32 = document.createElement('td');
			var td33 = document.createElement('td');
	
			var tableIn = document.createElement('table');
			var trIn1 = document.createElement('tr');
			var trIn2 = document.createElement('tr');
			var trIn3 = document.createElement('tr');
	
			var tdIn11 = document.createElement('td');
			var tdIn21 = document.createElement('td');
			var tdIn31 = document.createElement('td');
	
			td13.className = className+'Bhd';
			td12.className = className+'Bhm';
			td11.className = className+'Bhg';
	
			td23.className = className+'Bmd';
			td22.className = className+'Cnt';
			td21.className = className+'Bmg';
	
			td33.className = className+'Bbd';
			td32.className = className+'Bbm';
			td31.className = className+'Bbg';
	
			tdIn11.innerHTML = msgLayer1;
			tdIn21.innerHTML = msgLayer2;
			tdIn31.innerHTML = msgLayer3;
			
			/*Tableau qui recoit le contenu de la TLE, le texte et le bouton*/
			tableIn.appendChild(tbody);
			tbody.appendChild(trIn1);
			tbody.appendChild(trIn2);
			tbody.appendChild(trIn3);
			tableIn.style.width = "100%";
			trIn1.appendChild(tdIn11);
			trIn2.appendChild(tdIn21);
			trIn3.appendChild(tdIn31);
			/*Fin du tableau interne*/
	
			td22.appendChild(tableIn);
	
			tr1.appendChild(td11);
			tr1.appendChild(td12);
			tr1.appendChild(td13);
	
			tr2.appendChild(td21);
			tr2.appendChild(td22);
			tr2.appendChild(td23);
	
			tr3.appendChild(td31);
			tr3.appendChild(td32);
			tr3.appendChild(td33);
	
	
			table.appendChild(tr1);
			table.appendChild(tr2);
			table.appendChild(tr3);
	
			//floatDiv.appendChild(table);
			var element = document.getElementById("layerInfo");true
			
			while (element.firstChild) {
			  element.removeChild(element.firstChild);
			}
			
			element.appendChild(table);
			element.style.display = "block";
			MM_showHideLayers("layerInfo","","show");
		}
	}//sinon, dans le cas où la zone du nouveau CP est = de la zone du CP courant : pas de message
}

function addHidden(parentElement, name, childElement){
	if (document.getElementById(parentElement)) {
		var div = document.getElementById(parentElement);
		var newEl = document.createElement('div');
		newEl.id="NewShippingMethod";
		if(document.getElementById("NewShippingMethod")){
			div.removeChild(document.getElementById("NewShippingMethod"));
		}
		newEl.innerHTML="<input type='hidden' name='"+name+"' id='"+name+"' value='"+childElement+"'/> ";
		
		div.appendChild(newEl);
	}
	return false;
}

/**
* @Name : hideLayer
* @Author : Julien-Claude Fagot
* @CreatedOn : 09/02/2009
* Modifier : 
* @ModifiedOn :
* @Input : 
* 		element   : Element à masquet
* @Output : 

* @Description : Permet de masquer le layer
**/
function hideLayer(element) {
	var obj = document.getElementById(element);
	obj.style.display="none";
}

function checkDefault(element){
	var obj = document.getElementById(element);
	obj.checked = true;
}


function MM_showHideLayers() { //v6.0
	var i,p,v,obj,args=MM_showHideLayers.arguments;
	for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
		if (obj.style) { obj=obj.style; v=(v=='show')?'block':(v=='hide')?'none':v; }
	obj.display=v; }
}

function MM_findObj(n, d) { //v4.01
	var p,i,x;
	
	if(!d) d=document;
	if((p=n.indexOf("?"))>0&&parent.frames.length){
		d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);
	}
	if(!(x=d[n])&&d.all) x=d.all[n];
	for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
	if(!x && d.getElementById) x=d.getElementById(n); return x;
}