/**
 * Affiche un element avec un effet de Fade et le masque sans effet
 **/
function afficherFade(idElement) {
	if ( $(idElement).getStyle('display') == "block" ) {
		$(idElement).hide();
	}
	else {
		new Effect.Appear($(idElement));
	}
} // END function afficherFade 

/**
 * Affiche / masque un element
 *
 * @param string idElement	L'id de l'élément
 **/
function afficherCacher(idElement) {
	if ( $(idElement).getStyle('display') == "block" ) {
		$(idElement).hide();
	}
	else {
		$(idElement).show();
	}
} // END function afficherFade

function confirmMasquerDiv (messageConfirm, leDiv) {
	if ( confirm(messageConfirm) == true ) {
		$(leDiv).hide();
	}
}

/**
 * Valider un formulaire et affiche un message d'attente
 *
 * @param string leFormulaire	L'id du formulaire
 * @param string boutonValider	L'id du bouton de soumission, il sera désactivé pour éviter les clics successifs
 * @param string divInfos		L'id du calques servant à afficher un message d'attente
 * @param string messageInfos	Le message
 **/
function validerFormulaire(leFormulaire, boutonValider, messageInfos) {
	if (boutonValider != "" && $(boutonValider) != undefined) {
		$(boutonValider).disabled = "disabled";
	}
	
	var modalBox = new Dialog({
		content:"<p>" + messageInfos + "</p>",
		width:250,
		className:'messageInfos',
		close:{
			link:false,
			overlay:true,
			esc:true
		}
	});
	modalBox.open();
	$(leFormulaire).submit();
	
} // END function validerFormulaire

/**
 * Execute une page via Ajax avec une alerte à la création et durant l'appel
 * Renseigner Formulaire s'il faut traiter un formulaire
 **/
function urlAjax (Url, champRetour, methodeEnvoie, Formulaire) {
	var contenuForm = (Formulaire != undefined && Formulaire != "") ? Form.serialize(Formulaire) : "";
	var requeteAjax	= new Ajax.Updater(	champRetour, Url, {	method: methodeEnvoie,
		 													parameters: contenuForm,
															evalScripts:true,
															onCreate: function () {
																// $(POPUP_ALERTE_AJAX).show();
															},
															
															onComplete:function () {
																//new Effect.Highlight(champRetour, {startcolor:COULEUR_FLASH_AJAX, duration:2});
																// $(POPUP_ALERTE_AJAX).hide();
															},
															on404:function () {
																// $(POPUP_ALERTE_AJAX).hide();
															},
															onFailure:function () {
																// $(POPUP_ALERTE_AJAX).hide();
															}});
} // END function urlAjax

/**
 * Execute une page via Ajax sans alerte à la création un a la fin de l'appel
 * Renseigner Formulaire s'il faut traiter un formulaire
 **/
function urlAjaxInvisible (Url, champRetour, methodeEnvoie, Formulaire) {
	var contenuForm = (Formulaire != undefined && Formulaire != "") ? Form.serialize(Formulaire) : "";	
	var requeteAjax	= new Ajax.Updater(	champRetour, Url, {	method: methodeEnvoie, parameters: contenuForm, evalScripts:true});
} // END function urlAjaxInvisible

/**
 * Execute une page via Ajax en affichant un indicateur dans le champ Cible
 * Renseigner Formulaire s'il faut traiter un formulaire
 **/
function AjaxSmallIndicCible (Url, champRetour, methodeEnvoie, Formulaire) {
	
	var contenuForm = (Formulaire != undefined && Formulaire != "") ? Form.serialize(Formulaire) : "";
	
	var requeteAjax	= new Ajax.Updater(	champRetour, Url, {	method: methodeEnvoie,
															parameters: contenuForm, 
															evalScripts:true,
															onCreate: function () {
																$(champRetour).update('<img src="' + SMALL_INDIC + '" alt="" />')
															},
															
															onComplete:function () {
																// new Effect.Highlight(champRetour, {startcolor:COULEUR_FLASH_AJAX, duration:2});
															}});
} // END function urlAjaxSmallIndicCible

/**
 * Execute une page via Ajax en affichant un indicateur après le lien ou le bouton cliqué
 * remplaceLien = true si le lien doit être remplacé par l'indicateur (Ne fonctionne pas sur les boutons)
 * Renseigner Formulaire s'il faut traiter un formulaire
 **/
function urlAjaxSmallIndicLien (Url, champRetour, methodeEnvoie, Lien, Formulaire, remplaceLien) {
	intituleLien = Lien.innerHTML;
	var contenuForm = (Formulaire != undefined && Formulaire != "") ? Form.serialize(Formulaire) : "";
	
	var requeteAjax	= new Ajax.Updater(	champRetour, Url, {	method: methodeEnvoie,
															parameters: contenuForm,  
															evalScripts:true,
															onCreate: function () {
																if (remplaceLien == true) {
																	$(Lien).update('<img src="' + SMALL_INDIC + '" alt="" id="' + champRetour + '_smallIndic"/>');
																}
																else {
																	$(Lien).insert({after: '<img src="' + SMALL_INDIC + '" alt="" id="' + champRetour + '_smallIndic"/>'});
																}
															},
															
															onComplete:function () {
																new Effect.Highlight(champRetour, {startcolor:COULEUR_FLASH_AJAX, duration:2});
																if (remplaceLien == true) {
																	$(Lien).update(intituleLien);
																}
																else {
																	$(champRetour + "_smallIndic").remove();
																}
															},
															on404:function () {
																if (remplaceLien == true) {
																	$(Lien).update(intituleLien);
																}
																else {
																	$(champRetour + "_smallIndic").remove();
																}
															},
															onFailure:function () {
																if (remplaceLien == true) {
																	$(Lien).update(intituleLien);
																}
																else {
																	$(champRetour + "_smallIndic").remove();
																}
															}});
} // END function urlAjaxSmallIndicCible

/**
 * Affiche un onglet et cache les autres
 **/
function afficherOnglet (leLien, ongletEnCours, listeOnglets) {
	$(leLien).ancestors()[1].childElements().each( function (liElement) {
		$(liElement).removeClassName("enCours");
	});
	
	$(leLien).ancestors()[0].addClassName("enCours");
	
	$(ongletEnCours).show();
	listeOnglets.each( function(Onglet) {
		if (Onglet != ongletEnCours) {
			$(Onglet).hide();
		}
	});
}

function replaceAll(str, search, repl) {  
  while (str.indexOf(search) != -1)  
    str = str.replace(search, repl);  
  return str;  
} 

function urlRewriting(Chaine) {
	Chaine = Chaine.replace(/[\s"']+/ig, "-");
	var Accents	= new Array("À","Á","Â","Ã","Ä","Å","à","á","â","ã","ä","å","Ò","Ó","Ô","Õ","Ö","Ø","ò","ó","ô","õ","ö","ø","È","É","Ê","Ë","è","é","ê","ë","Ç","ç","Ì","Í","Î","Ï","ì","í","î","ï","Ù","Ú","Û","Ü","ù","ú","û","ü","ÿ","Ñ","ñ"," ","!","?",",");  
	var Lettres	= new Array("A","A","A","A","A","A","a","a","a","a","a","a","O","O","O","O","O","O","o","o","o","o","o","o","E","E","E","E","e","e","e","e","C","c","I","I","I","I","i","i","i","i","U","U","U","U","u","u","u","u","y","N","n","-","-","-","-");  
	for (var i = 0; i < Lettres.length; i++) {
		Chaine = replaceAll(Chaine, Accents[i], Lettres[i]); 
	}
	Chaine = Chaine.replace(/[^-a-z0-9_.]/ig, "");
	Chaine = Chaine.replace(/(-{2,})/ig, "-");
	return Chaine.toLowerCase();
}

/*
function getWindowHeight() {
	var windowHeight = 0;
	if (typeof(window.innerHeight) == 'number') {
		windowHeight = window.innerHeight;
	}
	else {
		if (document.documentElement && document.documentElement.clientHeight) {
			windowHeight = document.documentElement.clientHeight;
		}
		else {
			if (document.body && document.body.clientHeight) {
				windowHeight = document.body.clientHeight;
			}
		}
	}
	return windowHeight;
}
*/

function setFooter() {
	var windowHeight = document.viewport.getDimensions().height;
	
	var hauteurCentre 	= $("contenuSite").getHeight();
	var hauteurGauche 	= $("colonneGauche").getHeight();
	var hauteurDroite 	= $("colonneDroite").getHeight();
	
	//--> JE RECHERCHE LE PLUS GRAND
	var hauteurContenu = Math.max(hauteurCentre, hauteurGauche);
	hauteurContenu = Math.max(hauteurDroite, hauteurContenu);
	
	//--> ON VERIFIE S'IL RESTE ASSEZ DE PLACE POUR LE PIED DE PAGE
	
	var topContenu = $('contenuSite').getStyle('top');
	
	if (topContenu == null) {
		topContenu = "0px";
	}
	
	var topContenu 		= Number(topContenu.sub('px', ''));
	var offsetContenu	= hauteurContenu + topContenu;
	
	if (windowHeight - offsetContenu < $('piedPage').getHeight()) {
		var positionPiedPage	= Number(topContenu) + Number(hauteurContenu) + 10;
	}
	else {
		var positionPiedPage	= windowHeight - $('piedPage').getHeight();
	}
	
	$('piedPage').setStyle({
		'position': 'absolute',
		'display' : 'block',
		'top': positionPiedPage + 'px'
	});
}

function afficherDebug(messageDebug) {
	
	var windowWidth		= document.viewport.getDimensions().width;
	var windowHeight	= document.viewport.getDimensions().height;
	var objBody 		= document.getElementsByTagName("body").item(0);

	//--> CREATION DU MASQUE OVERLAY
	var objOverlay 				= document.createElement("div");
	objOverlay.style.opacity 	= '0.7';
	objOverlay.style.width 		= windowWidth + 'px';
	objOverlay.style.height 	= windowHeight + 'px';
	objOverlay.onclick 			= function() { fermerInfosDebug(); }
	objOverlay.setAttribute('id','overlay');
	objBody.appendChild(objOverlay);
	
	//--> BOITE DE MESSAGE
	var objFenetreDebug					= document.createElement("div");
	objFenetreDebug.style.width 		= (windowWidth - 100) + 'px';
	objFenetreDebug.style.height 		= (windowHeight - 100) + 'px';
	objFenetreDebug.style.left 			= '25px';
	objFenetreDebug.style.top 			= '25px';
	objFenetreDebug.style.overflow 		= 'auto';
	objFenetreDebug.setAttribute('id','messageDebug');
	objFenetreDebug.update($("infosDebug").innerHTML);
	objBody.appendChild(objFenetreDebug);
}

function fermerInfosDebug () {
	if($("overlay")) {
		$("overlay").remove();
		$("messageDebug").remove();
	}
}

function Popup(UrlPage, LargeurPopup, HauteurPopup) {
	LargeurEcran = window.screen.availWidth;
	HauteurEcran = window.screen.availHeight;
	
	PositionX = parseInt(LargeurEcran / 2) - parseInt(LargeurPopup / 2);
	PositionY = parseInt(HauteurEcran / 2) - parseInt(HauteurPopup / 2);
	
	window.open(UrlPage, "lePopup", "scrollbars=yes,resizable=yes,width="+LargeurPopup+",height="+HauteurPopup+",top="+PositionY+",left="+PositionX);
}

function checkOrigineProspect(champOrigine) {
	if ( champOrigine.value != "" ) {
		
		//--> Toutes les autres liste sont vidées
		champsOrigines.split(",").each( function(Element) {
			if ( Element != $(champOrigine).id ) {
				$(Element).value = "";
			}
		});
		
		$("origine_autre").value = "";
		$("div_origine_autre").hide();
		
		champsTexteAutre.split(",").each( function (Element) {
			if ( Element == $(champOrigine).value ) {
				$("div_origine_autre").show();
				alert("Merci de préciser votre choix dans le champ ' Précisez '.");
				Form.Element.focus('origine_autre');
			}
		});
	}
}

function choisirSecteurCarte(secteur, agences_uid) {
	var Agences = new Array();
	Agences[1] = "MAS PROVENCE GARD";
	Agences[2] = "MAS PROVENCE PAYS D'AIX";
	Agences[3] = "MAS PROVENCE VAUCLUSE";
	Agences[4] = "MAS PROVENCE VAUCLUSE";
	Agences[5] = "MAS PROVENCE HAUTE PROVENCE";
	Agences[6] = "MAS PROVENCE VAR";
	Agences[7] = "MAS PROVENCE COTE-D'AZUR";
	Agences[10] = "MAS PROVENCE PAYS D'AIX";

	if ( secteur == "" ) {
		alert("Soucieux de conserver une qualité de service et de réalisation optimale, nous nous excusons de ne pas construire sur ce secteur.");
	} else {
		$("agences_uid").value 				= agences_uid;
		$("secteur_geographique").value 	= secteur;
		$("afficheSecteur").update("Le secteur géographique a été sélectionné avec succès. " + secteur + " => " + Agences[agences_uid]);
		$("carteSecteurs").hide();
	}
}
function ajaxListeForm(Url,listeCible,messageAttente){
	$(listeCible).options.length=0;
	$(listeCible).options[0]=new Option(messageAttente,"");
	
	new Ajax.Request(Url,{
		method:'get', onSuccess:function(transport){
			var response = transport.responseText || "error";  
			result = eval('(' + response + ')'); 
			chargerListe(listeCible,result);
			
		}
		
	});
	
}
function chargerListe(listeCible,optionsListe){
	var nbOptions=0;
	avecOptions=false;
	$(listeCible).options[0]=new Option("Indifférent","");
	for(var key in optionsListe){ 
		avecOptions=true;
		
		$(listeCible).options[nbOptions+1]=new Option(optionsListe[nbOptions].intitule,optionsListe[nbOptions].valeur);
		nbOptions=nbOptions+1;
	}
	/*
	for(i=0;($(optionsListe)[i].intitule)!=null;i++){
		
		nbOption++;
		alert(nbOption);
	}	
	$(listeCible).options[0]=new Option("Indifférent","");
	for(i=0;i<nbOptions;i++){
		
	}
	*/
	if($('imgAjax_'+listeCible)!=null){
		$('imgAjax_'+listeCible).remove();
	}
}
function razListe(listeCible,messageListe){
	$(listeCible).options.length=0;
	$(listeCible).options[0]=new Option(messageListe,"");
	$('btonValider').value="Rechercher";
}

