	/**
	 * Les fonctions suivantes utilisent les méthodes définie dans la librairie "prototype"
	 * Ce sont juste des outils pour répondre aux besoins spécifiques a vente en ligne
	 *
	 * @author	François Som	<francois.som@businessdecision.com>
	 * @since	18/09/2006
	 */



/************************************************** D : Fonctions AJAX **************************************************/

	var originalResponseText = '';
	var lockActionWhileAjaxing = 0;


	/**
	 * Cette fonction mets e jour le panier en fonction des arguments passés en paramètres
	 * @param	string		contentId			Id du contenur a mettre jour
	 * @param	string		params				Paramètres a passerdans la requette
	 */
	
	function ajaxUpdateCart(params) {
		var contentId = "div_panier";
		var url = "index_ajax.php";
		params = "pageId=1&" + params;
		if (params != '') {
			var myAjax = new Ajax.Updater(
				{success: contentId},
				url, 
				{
					method: 'get', 
					parameters: params, 
					onFailure: ajaxReportError,
					onComplete: getCartFunctionsOfResponse
				});
			return true;
		}
		return false;
		
	}



	/**
	 * Cette fonction fait tout simplement appel a la methode Updater
	 * @param	string		contentId			Id du contenur a mettre jour
	 * @param	string		params				Paramètres a passerdans la requette
	 */
	
	function ajaxUpdateContent(contentId, params) {
		lockActionWhileAjaxing = 1;
		var url = "index_ajax.php";
		if (contentId != '') {
			var myAjax = new Ajax.Updater(
				{success: contentId}, 
				url,
				{
					method: 'get', 
					parameters: params, 
					onFailure: ajaxReportError,
					onComplete: getContentFunctionsOfResponse
				});
			return true;
		}
		return false;
	}



	/**
	 * Cette fonction qui récupère le panier actuel et le met en session
	 */
	
	function ajaxGetPanierSession() {
		var url = "index_ajax.php";
		var contentId = "panierSession"; // div vide sur le récap, utilisée pour le debugage, le contenu est mis a jour en fonction de ce qui est affiché dans le fichier appelé en ajax
		var params = "pageId=5";
		var cartImage = document.getElementById('voir_panier').innerHTML;
		while (cartImage.search("€") != -1) {
			cartImage = cartImage.replace("€", "EUROSEUROS");
		}
		while (cartImage.search("•") != -1) {
			cartImage = cartImage.replace("•", "BULLBULL");
		}
		while (cartImage.search("é") != -1) {
			cartImage = cartImage.replace("é", "ETACCENTAIGU");
		}
		while (cartImage.search("è") != -1) {
			cartImage = cartImage.replace("è", "ETACCENTGRAVE");
		}
		while (cartImage.search("à") != -1) {
			cartImage = cartImage.replace("à", "AACCENTGRAVE");
		}
		while (cartImage.search("ô") != -1) {
			cartImage = cartImage.replace("ô", "OACCENTCIRCONF");
		}
		while (cartImage.search("ù") != -1) {
			cartImage = cartImage.replace("ù", "UACCENTGRAVE");
		}
		params+= "&cartContent="+encodeURIComponent(cartImage);
		if (contentId != '') {
			var myAjax = new Ajax.Updater(
				{success: contentId}, 
				url,
				{
					method: "post", 
					parameters: params, 
					onFailure: ajaxReportError,
					onComplete: getFunctionsOfResponse
				});
			return true;
		}
		return false;
	}



	/**
	 * Message d'alerte simple si erreur ajax
	 */

	function ajaxReportError(){
		alert("Erreur de transfert de données.");
		lockActionWhileAjaxing = 0;
	}



	/**
	 * Cette fonction récupère les opération javascript simples de la réponse pour les exécuter
	 */

	function getCartFunctionsOfResponse(originalRequest){
		getFunctionsOfResponse(originalRequest);
	}



	/**
	 * Cette fonction récupère les opération javascript simples de la réponse pour les exécuter
	 */

	function getContentFunctionsOfResponse(originalRequest){
		getFunctionsOfResponse(originalRequest);
		lockActionWhileAjaxing = 0;
	}



	/**
	 * Cette fonction récupère les opération javascript simples de la réponse pour les exécuter
	 * Le code javascript est flagué <debutScript    traitement;    finScript>
	 */

	function getFunctionsOfResponse(originalRequest){
		originalResponseText = originalRequest.responseText;
		var functionContent = '';
		fluxSplite = originalResponseText.split('<debutScript');
		for (var i = 1; i < fluxSplite.length; i++) {
			contentTemp = fluxSplite[i];
			contentSplit = contentTemp.split("finScript>");
			functionContent+= contentSplit[0] + "\n";
		}
		myFunction = new Function(functionContent);
		myFunction();
	}

/************************************************** F : Fonctions AJAX **************************************************/

	
/************************************************** D : Fonctions VEL **************************************************/


	/**
	 * Retourne la position X de la souris, en tenant compte du scroll
	 */

	function getMouseXOnScreen(evt){
		var e = (window.event) ? window.event : evt;
		return (e.clientX + document.body.scrollLeft);
	}



	/**
	 * Retourne la position Y de la souris, en tenant compte du scroll
	 */

	function getMouseYOnScreen(evt){
		var e = (window.event) ? window.event : evt;
		return (e.clientY + document.body.scrollTop);
	}




	/**
	 * Affiche une div au centre de l'écran tenant compte du scroll et supposant que la div mesure 500px sur 300px
	 */

	function showResizedPopupCenter(divId, iWidth, iHeight) {

		if (document.all) { // IE
			var winWidth = document.body.offsetWidth;
			var winHeight = document.body.offsetHeight;
		}
		else {
			var winWidth = window.innerWidth;
			var winHeight = window.innerHeight;
		}
		
		var popupStyle = document.getElementById(divId).style;
		var popupShadowStyle = document.getElementById("iframeBehindPopup").style;
		
		if (iWidth > 0 && iHeight > 0) {
			popupStyle.width = iWidth + "px";
			popupStyle.height = iHeight + "px";
		}
		else { // pour conserver le comportement du showPopupCenter initial
			iWidth = 500;
			iHeight = 300;
		}

		popupShadowStyle.width = (iWidth - 10) + "px";
		popupShadowStyle.height = (iHeight - 10) + "px";

		if (popupStyle.display == 'none') {
			popupShadowStyle.left =  ((winWidth - iWidth - 20) / 2) + document.body.scrollLeft + "px";
			popupShadowStyle.top = ((winHeight - iHeight- 20) / 2 ) + document.body.scrollTop + "px";
			popupShadowStyle.display = 'block';

			popupStyle.left =  ((winWidth - iWidth - 30) / 2) + document.body.scrollLeft + "px";
			popupStyle.top = ((winHeight - iHeight- 30) / 2 ) + document.body.scrollTop + "px";
			popupStyle.display = 'block';
		}
	}



	/**
	 * comme showResizedPopupCenter mais sans l'iframe de derrière
	 */

	function showPopupNoIframe(divId, iWidth, iHeight) {
		if (document.all) { // IE
			var winWidth = document.body.offsetWidth;
			var winHeight = document.body.offsetHeight;
		}
		else {
			var winWidth = window.innerWidth;
			var winHeight = window.innerHeight;
		}
		
		var popupStyle = document.getElementById(divId).style;

		popupStyle.width = iWidth + "px";
		//popupStyle.height = iHeight + "px"; // pour qu'il s'adapte au contenu

		if (popupStyle.display == 'none') {
			popupStyle.left =  ((winWidth - iWidth - 30) / 2) + document.body.scrollLeft + "px";
			popupStyle.top = ((winHeight - iHeight- 30) / 2 ) + document.body.scrollTop + "px";
			popupStyle.display = 'block';
		}
	}



	/**
	 * Affiche une div au centre de l'écran tenant compte du scroll et supposant que la div mesure 500px sur 300px
	 */

	function showPopupCenter(divId) {
		showResizedPopupCenter(divId, 0, 0);
	}



	/**
	 * Ferme un layer popup en le cachant a nouveau
	 */

	function hidePopup(divId) {
		var popupStyle = document.getElementById(divId).style;
		var popupShadowStyle = document.getElementById("iframeBehindPopup").style;
		popupShadowStyle.display = 'none';
		popupStyle.display = 'none';
	}



	/**
	 * Affiche si caché, cache si affiché...
	 */

	function showhide(itemId) {
		if (document.getElementById(itemId).style.display == 'none'){
			document.getElementById(itemId).style.display = '';
		}
		else {
			document.getElementById(itemId).style.display = 'none';
		}
	}


	
	/**********
	 * Ouvre une popup affichant un contenu riche
	 * l'id du contenu est passée en paramètre
	 **********/

	function popupContenuRiche(contentId, iWidth, iHeight){
		if(contentId > 0){
			if (document.all) {
				var winWidth = document.body.offsetWidth;
				var winHeight = document.body.offsetHeight;
			}
			else {
				var winWidth = window.innerWidth;
				var winHeight = window.innerHeight;
			}
			window.open("index_ajax.php?pageId=50&contentId="+contentId, "Popup", "width="+iWidth+",height="+iHeight+",scrollbars=1,top="+((winHeight-iHeight-40)/2)+",left="+((winWidth-iWidth-40)/2));
		}
	}


	
	/**********
	 * Ouvre une popup affichant la valeur d'une variable en session
	 **********/

	function popupContenuSession(contentPath, iWidth, iHeight){
		if(contentPath != ""){
			if (document.all) {
				var winWidth = document.body.offsetWidth;
				var winHeight = document.body.offsetHeight;
			}
			else {
				var winWidth = window.innerWidth;
				var winHeight = window.innerHeight;
			}
			window.open("index_ajax.php?pageId=60&contentPath="+contentPath, "Popup", "width="+iWidth+",height="+iHeight+",scrollbars=1,top="+((winHeight-iHeight-40)/2)+",left="+((winWidth-iWidth-40)/2));
		}
	}



	function popupLivraison(ancre){
		if (document.all) {
			var winWidth = document.body.offsetWidth;
			var winHeight = document.body.offsetHeight;
		}
		else {
			var winWidth = window.innerWidth;
			var winHeight = window.innerHeight;
		}
		window.open("index_ajax.php?pageId=70#"+ancre, "Popup", "width=500,height=300,scrollbars=1,top="+((winHeight-200)/2)+",left="+((winWidth-400)/2));
	}
	
	function popupADSL(id){
		if (document.all) {
			var winWidth = document.body.offsetWidth;
			var winHeight = document.body.offsetHeight;
		}
		else {
			var winWidth = window.innerWidth;
			var winHeight = window.innerHeight;
		}
		window.open("index_ajax.php?pageId=90&id="+id, "Popup", "width=500,height=300,scrollbars=1,top="+((winHeight-200)/2)+",left="+((winWidth-400)/2));
	}
	
	function popupPaiement(id){
		if(id!=""){
			if (document.all) {
				var winWidth = document.body.offsetWidth;
				var winHeight = document.body.offsetHeight;
			}
			else {
				var winWidth = window.innerWidth;
				var winHeight = window.innerHeight;
			}
			window.open("index_ajax.php?pageId=80&id="+id, "Popup", "width=500,height=300,scrollbars=1,top="+((winHeight-200)/2)+",left="+((winWidth-400)/2));
			}
	}
	
	function saveCodeOperation() {
		if (document.getElementById('CodeOperation').value != "") {
			if (document.all) {
				var winWidth = document.body.offsetWidth;
				var winHeight = document.body.offsetHeight;
			}
			else {
				var winWidth = window.innerWidth;
				var winHeight = window.innerHeight;
			}
			window.open("index_ajax.php?pageId=69&opid=" + document.getElementById('CodeOperation').value, "codeOp", "width=530,height=245,top="+((winHeight-300)/2)+",left="+((winWidth-500)/2));
		}
		//params = params + "&action=addCodeOp&codeOp=" + document.getElementById('CodeOperation').value;
		//ajaxUpdateCart(params);
	}

	function openStoreLocator(url) {
		if (document.getElementById('listeDistributeurs').value != '') {
			if (document.all) {
				var winWidth = document.body.offsetWidth;
				var winHeight = document.body.offsetHeight;
			}
			else {
				var winWidth = window.innerWidth;
				var winHeight = window.innerHeight;
			}
			url = url.replace('[POSTAL_CODE]', document.getElementById('listeDistributeurs').value);
			window.open( url, "storeLocator", "width=550,height=500,scrollbars=yes,top="+((winHeight-500)/2)+",left="+((winWidth-550)/2));
		}
	}
	
	function showLayerDescription(evt) {
		var e = (window.event) ? window.event : evt;
		document.getElementById('panierElmDesc').style.display = 'inline';
		document.getElementById('panierElmDesc').style.left = e.clientX + document.body.scrollLeft - 145 + "px";
		document.getElementById('panierElmDesc').style.top = e.clientY + document.body.scrollTop + 5 + "px";
	}




/************************************************** F : Fonctions VEL **************************************************/


	/**
	 * Vérification de la saisie du numéro de portable
	 */

	function isTelPortable(strSaisie) {
		var re = new RegExp("^(06)([0-9\\.\\-\\ ]*)$");
		if (strSaisie.length > 8 && re.test(strSaisie)) {
			return true;
		}
		return false;
	}



	/**
	 * Envoi des informations a cellcast par ajax
	 */

	function sendCellcast(fieldNumber, fieldText, fieldTag){
		var valNumber = document.getElementById(fieldNumber).value;
		if (isTelPortable(valNumber)) {
			// layer pour avertir du traitement
			document.getElementById('pLayerPopup').innerHTML = "Merci de votre intérêt pour CANAL+ mobile / CANALSAT mobile. Vous recevrez dans un instant le SMS d’accès direct à notre service. ";
			document.getElementById('divLayerPopup').className = "divAlert";
			showResizedPopupCenter('divLayerPopup', 500, 100);

			var valText = document.getElementById(fieldText).innerHTML;
			var valTag = document.getElementById(fieldTag).innerHTML;
			var params = "pageId=87&valNumber="+encodeURIComponent(valNumber)+"&valText="+encodeURIComponent(valText)+"&valTag="+encodeURIComponent(valTag);

			var result = ajaxUpdateContent("hiddenCellcast", params);
		}
		else {
			// layer pour avertir de l'erreur
			document.getElementById('pLayerPopup').innerHTML = "Désolé, nous ne pouvons donner suite à votre demande. Merci de vérifier que le numéro de téléphone saisi est un numéro de mobile. ";
			document.getElementById('divLayerPopup').className = "divAlert";
			showResizedPopupCenter('divLayerPopup', 500, 100);
		}
	}
	
	/**
	 * Envoi des informations a cellcast par ajax
	 * Mise à jour de la fonction SendCellcast
	 * Formate les messages d'erreurs en fonction du zoneTemplateId et des valeurs des éléments du formulaire
	 */	
	
	function sendCellcast2(formName, fieldText, fieldTag){
		
		// Positionne les variables selon le formulaire passé en paramètres
		
		var formCellcast = document.getElementById(formName);
		var valNumber = formCellcast.phoneCellcast.value;
		var valOperator = formCellcast.operatorCellcast.value;
		var troisg = formCellcast.troisgCellcast;
		var troisgplus = formCellcast.troisgplusCellcast;
		var edge = formCellcast.edgeCellcast;
		var optin = formCellcast.acceptOfferPartnerCellcast;
		
		var valoptin;
		var valedge;
		var valtroisg;
		var valtroisgplus;
		
		if(optin.checked == true) valoptin=1; else valoptin=0;
		if(edge.checked == true) valedge=1; else valedge=0;
		if(troisg.checked == true) valtroisg=1; else valtroisg=0;
		if(troisgplus.checked == true) valtroisgplus=1; else valtroisgplus=0;		

							
		if (isTelPortable(valNumber)) {		// Si le numero de telephone semble valide

			if(valOperator.length > 0) {	// Si un opérateur est sélectionné

				var message;
				
				if(troisg.checked == true || troisgplus.checked == true || edge.checked == true) {
				
					// Si au moins un type de réseau coché
					// layer pour avertir du traitement
										
					if(ConstZoneTemplateId == 2765 || ConstZoneTemplateId == 2767) { // cas Canal + Mobile
						message = "Merci de votre intérêt pour CANAL+ mobile. Vous recevrez dans un instant le SMS d’accès direct à notre service. ";
					}
					if(ConstZoneTemplateId == 2818 || ConstZoneTemplateId == 2821) { // cas Canal Sat Mobile
						message = "Merci de votre intérêt pour CANALSAT mobile. Vous recevrez dans un instant le SMS d’accès direct à notre service. ";
					}		
				} 
				else {	// Si pas de type de réseau coché					
					
					if(ConstZoneTemplateId == 2765 || ConstZoneTemplateId == 2767) { // cas Canal + Mobile
						message = "Merci de votre intérêt pour CANAL+ mobile. Vous n'êtes pas éligible 3G/EDGE. Merci de cocher la case 3G/Edge si vous avez oublié ou de vous renseigner auprès de votre opérateur.";
					}
					if(ConstZoneTemplateId == 2818 || ConstZoneTemplateId == 2821) { // cas Canal Sat Mobile
						message = "Merci de votre intérêt pour CANALSAT mobile. Vous n'êtes pas éligible 3G/EDGE. Merci de cocher la case 3G/Edge si vous avez oublié ou de vous renseigner auprès de votre opérateur.";
					}				
				}
				
				message = message + "<br /><br /><div style=\"text-align: center; font-weight: normal; font-size: 9px; color: black; text-transform: none; text-decoration: underline; padding: 0px; margin: 0px;\">Pour recevoir des offres privilégiées de la part du Groupe CANAL+, saisissez votre email<br /><br />";
				message = message + "<form name=\"CellCastEmail\" onSubmit=\"sendCellcastEmail(phoneCellcast,emailCellcast); return false;\"><input type=\"hidden\" id=\"phoneCellcast\" name=\"phoneCellcast\" value=\"" + valNumber + "\"><input type=\"text\" id=\"emailCellcast\" class=\"inputCellcast\" name=\"emailCellcast\" maxlength=\"80\" style=\"text-align: center; width: 250px;\"/><input type=\"image\" src=\"" + ConstImageFrontHttp + "/bt_ok16.gif\" border=\"0\" style=\"position: relative; margin-left: 10px; top: 3.5px;\" /></form></div>";
				
				
				// Met à jour et affiche le layer
				
				document.getElementById('pLayerPopup').innerHTML = message;
				document.getElementById('divLayerPopup').className = "divAlert";
				showResizedPopupCenter('divLayerPopup', 550, 100);
				
				// Cache les layers de Promotion		
						
				for(var i=1; i < 4; i++) {
					var layer;
					if(document.getElementById('divLayerCellcastP'+i)) {
						layer = document.getElementById('divLayerCellcastP'+i);
						hidePopup(layer.id);
					}
				}
				
				
				// Envoie en Ajax des infos à Cellcast
	
				var valText = document.getElementById(fieldText).innerHTML;
				var valTag = document.getElementById(fieldTag).innerHTML;
				var params = "pageId=87&valNumber="+encodeURIComponent(valNumber)+"&valText="+encodeURIComponent(valText)+"&valTag="+encodeURIComponent(valTag);
	
				var result = ajaxUpdateContent("hiddenCellcast", params);
				
				// Enregistre en base les infos
				
				var params2 = "pageId=88&step=1&phone="+encodeURIComponent(valNumber)+"&operator="+encodeURIComponent(valOperator)+"&optin="+valoptin+"&troisg="+valtroisg+"&troisgplus="+valtroisgplus+"&edge="+valedge+"&tag="+encodeURIComponent(valTag);
				var result2 = ajaxUpdateContent("InsertStatMobile", params2);	
			}
			else {	// Si l'operateur n'a pas été sélectionné
				
				document.getElementById('pLayerPopup').innerHTML = "Désolé, nous ne pouvons donner suite à votre demande. Merci de sélectionner votre opérateur dans la liste proposée. ";
				document.getElementById('divLayerPopup').className = "divAlert";
				showResizedPopupCenter('divLayerPopup', 500, 60);				
			}
			
		}
		else {	//  si le numéro renseigné semble invalide
			
			// layer pour avertir de l'erreur
			document.getElementById('pLayerPopup').innerHTML = "Désolé, nous ne pouvons donner suite à votre demande. Merci de vérifier que le numéro de téléphone saisi est un numéro de mobile. ";
			document.getElementById('divLayerPopup').className = "divAlert";
			showResizedPopupCenter('divLayerPopup', 500, 60);
		}
	}
	
	/**
	 * Enregistrement email pour offres privilegiees par ajax
	 */

	function sendCellcastEmail(phoneNumber, email){
		
		if (isMail(email.value)) { // si la syntaxe de l'email est valide
			
			// fermeture du layer ouvert		
			hidePopup('divLayerPopup');

			// Enregistre en base les infos	via ajax		
			var params = "pageId=88&step=2&phone="+encodeURIComponent(phoneNumber.value)+"&email="+encodeURIComponent(email.value);
			var result = ajaxUpdateContent("UpdateStatMobile", params);
		}
		else {	// si la syntaxe de l'email est invalide
					
			// Mise à jour du layer pour avertir de l'erreur sur l'email
			
			var message_email_error = "Désolé, nous ne pouvons donner suite à votre demande. Merci de vérifier que l'adresse email saisie est valide. ";
			message_email_error = message_email_error + "<br /><br /><div style=\"text-align: center; font-weight: normal; font-size: 9px; color: black; text-transform: none; text-decoration: underline; padding: 0px;\">";
			message_email_error = message_email_error + "<form name=\"CellCastEmail\" onSubmit=\"sendCellcastEmail(phoneCellcast,emailCellcast); return false;\"><input type=\"hidden\" id=\"phoneCellcast\" name=\"phoneCellcast\" value=\"" + phoneNumber.value + "\"><input type=\"text\" id=\"emailCellcast\" class=\"inputCellcast\" name=\"emailCellcast\" value=\"" + email.value + "\" maxlength=\"80\" style=\"text-align: center; width: 250px;\"/><input type=\"image\" src=\"" + ConstImageFrontHttp + "/bt_ok16.gif\" border=\"0\" style=\"position: relative; margin-left: 10px; top: 3.5px;\" /></form></div>";			

			document.getElementById('pLayerPopup').innerHTML = message_email_error;					

		}
	}



