//=======================
function getCookieContenu(p_offset) {
        var v_endstr=document.cookie.indexOf (";", p_offset);
        if (v_endstr==-1) v_endstr=document.cookie.length;
        return unescape(document.cookie.substring(p_offset, v_endstr));
}
//=======================
function lireCookie(p_nomCookie) {
        var v_arg=p_nomCookie+"=";
        var v_alen=v_arg.length;
        var v_clen=document.cookie.length;
        var i=0;
        while (i<v_clen) {
                var j=i+v_alen;
                if (document.cookie.substring(i, j)==v_arg) {
                        return getCookieContenu(j);
                }
                i=document.cookie.indexOf(" ",i)+1;
                if (i==0) break;
        }
        return "";
}
//==============================================================================
// VED Home.
//==============================================================================
var CODE_ERREUR_INTERNE_PAS_DE_LOCALITE_TROUVE = -5;
function initVedHome(){
	if(document.getElementById("vedHome")){
		var oUlVed = document.getElementById("vedLinks");
		if( oUlVed ){
			var oA = oUlVed.getElementsByTagName("A");
			for(var i=0; i<oA.length; i++){
				addEvent(	oA[i], 'click',
									function(){
										var sDivId = String( this.id ).replace("a","div");
										if(	document.getElementById(sDivId+"_Local") &&  vgLocalite != "" ){
											sDivId = sDivId+"_Local";
										}
										_vedHomeDisplay( sDivId );
										selectVEDLink( this );
										_setFormFocus();
									}
									,true);
			}
			//------------------------------
			var aIdModif = new Array( "aModifLocalite", "aModifier");
			for (var i=0; i<aIdModif.length; i++ ){
				var oModifLocalLink = document.getElementById( aIdModif[i] );
				if( oModifLocalLink ){
					oModifLocalLink.setAttribute("onclick", "_vedHomeDisplay('divMaVille');");
				}
			}
		}
		// Scroller.
		var oScrollEdito = new editoScroller();
		oScrollEdito.init();
		//------------------------------
		vgLocalite = lireCookie("vedLibelleLoc");
  	var idLocalite = lireCookie("vedCodeLoc");
  	if (idLocalite != "") {
  	  	_formIdLocaliteSubmit( idLocalite );
  	} else {
  	  	showVedDisplay();
  	}
	}
}
//=======================
function selectVEDLink( oLink ){
	var oUlVed = document.getElementById("vedLinks");
	if( oUlVed ){
		var aLinks = oUlVed.getElementsByTagName("A");
		for(var i=0; i<aLinks.length; i++){
			var oA = aLinks[i];
			if( /header/.test(oA.className) != false ){
			  var oSpanId = String( oA.id ).replace("a","span");
			  var oSpan = document.getElementById(oSpanId);
				if( oA == oLink ){
					oA.className += " sel";
					oSpan.className += " sel";
					oA.blur();
				}else{
					oA.className = String( oA.className ).replace("sel","");
					oSpan.className = String( oSpan.className ).replace("sel","");
				}
			}
		}
	}
}
//=======================
function _setFormFocus() {
	var oForm = getNodeInDisplayOrPage("localiteEnDirect", "form");
	if (oForm && oForm.ville) {
		var timer = setTimeout(function(){
			oForm.ville.focus();
			clearTimeout(timer);
		},0);
	}
}
//=======================
function showVedDisplay() {
  var oVedDisplay = document.getElementById("vedDisplay");
	if( oVedDisplay ){
    oVedDisplay.style.visibility = "visible";
	}
}
//=======================
function getNodeInDisplayOrPage(sNodeId, sNodeType) {
	if (sNodeId != "" && sNodeType != "") {
		var oVedDisplay = document.getElementById("vedDisplay");
		if (oVedDisplay) {
			var oNodes = oVedDisplay.getElementsByTagName(sNodeType);
			for (var i=0;i<oNodes.length;i++) {
				if(oNodes[i].id == sNodeId) {
					return oNodes[i];
				}
			}
		} else {
			return document.getElementById(sNodeId);
		}
	}
	return null;
}
//=======================
function cacheMessagesErreurs(){
	var oSpanLocaliteError = getNodeInDisplayOrPage("spanError", "span");
	if( oSpanLocaliteError ){			
		oSpanLocaliteError.innerHTML = "<br /><br />";
	}
}
//=======================
function afficheMessageErreur(sErrorMessageId, sErrorMessageSup) {
	var sMessageSup = (sErrorMessageSup) ? sErrorMessageSup : "";
	var oSpanLocaliteError = getNodeInDisplayOrPage("spanError", "span");
	var oSpanError = document.getElementById(sErrorMessageId);
	if( oSpanLocaliteError && oSpanError ){
		oSpanLocaliteError.innerHTML = oSpanError.innerHTML + sMessageSup + "<br /><br />";
	} else {
		alert( oSpanError.innerHTML + sMessageSup );
	}
}
//=======================
function _formLocaliteSubmit( oForm ){
	cacheMessagesErreurs();
	if( oForm ){
		var sLocalite = trim( oForm.ville.value );
		// Saisie vide ---------------------
		if( sLocalite == ""){
			afficheMessageErreur("spanErrorPasDeSaisie");
		} else {
			if (oForm.memoVille.checked == true) {
				var oSpanMemoVille = getNodeInDisplayOrPage("spanMemoVille", "span");
				var oSpanMemoVilleConfirm = getNodeInDisplayOrPage("spanMemoVilleConfirm", "span");
				var oValiderBouton = getNodeInDisplayOrPage("valider", "input");
				var oNouvelleLocalite = getNodeInDisplayOrPage("nouvelleLocalite", "span");
				var oMsgPasDeLocaliteSauvegardee = getNodeInDisplayOrPage("msgPasDeLocaliteSauvegardee", "span");
				var oMsgLocaliteDejaSauvegardee = getNodeInDisplayOrPage("msgLocaliteDejaSauvegardee", "span");
				var oLocaliteActuelle = getNodeInDisplayOrPage("localiteActuelle", "span");
				if (oSpanMemoVille && oSpanMemoVilleConfirm && oValiderBouton && oNouvelleLocalite && 
					oMsgPasDeLocaliteSauvegardee && oMsgLocaliteDejaSauvegardee && oLocaliteActuelle) {
					oSpanMemoVille.style.display = "none";
					oSpanMemoVilleConfirm.style.display = "block";
					oForm.ville.disabled = "true";
					oValiderBouton.style.display = "none";
					afficheMessageConfirmation(oNouvelleLocalite, oMsgPasDeLocaliteSauvegardee, 
										oMsgLocaliteDejaSauvegardee, oLocaliteActuelle, sLocalite);
				}
			} else {
				vgSauvLoc = oForm.memoVille.checked;
				_formLibelleSubmit( oForm );
			}
		}
	}
	return false;
}
//=======================
function afficheMessageConfirmation(oNouvelleLocalite, oMsgPasDeLocaliteSauvegardee, 
				oMsgLocaliteDejaSauvegardee, oLocaliteActuelle, sLocalite) {
	if ( oNouvelleLocalite && oMsgPasDeLocaliteSauvegardee 
		&& oMsgLocaliteDejaSauvegardee && oLocaliteActuelle && sLocalite) {
		oNouvelleLocalite.innerHTML = sLocalite;
		var sLocaliteCookie =  lireCookie("vedLibelleLoc");
		if(sLocaliteCookie != "") {
			oMsgPasDeLocaliteSauvegardee.style.display = "none";
			oMsgLocaliteDejaSauvegardee.style.display = "inline";
			oLocaliteActuelle.style.display = "inline";
			oLocaliteActuelle.innerHTML = sLocaliteCookie;
		} else {
			oMsgPasDeLocaliteSauvegardee.style.display = "inline";
			oMsgLocaliteDejaSauvegardee.style.display = "none";
			oLocaliteActuelle.style.display = "none";
		}
	}
}
//=======================
function setSauveLoc(iSauve) {
	var oForm = getNodeInDisplayOrPage("localiteEnDirect", "form");
	var oSpanMemoVille = getNodeInDisplayOrPage("spanMemoVille", "span");
	var oSpanMemoVilleConfirm = getNodeInDisplayOrPage("spanMemoVilleConfirm", "span");
	var oValiderBouton = getNodeInDisplayOrPage("valider", "input");
	if (oSpanMemoVille && oSpanMemoVilleConfirm && oValiderBouton && oForm) {
		oSpanMemoVilleConfirm.style.display = "none";
		oSpanMemoVille.style.display = "block";
		oForm.ville.disabled = "";
		oValiderBouton.style.display = "block";
		
		if (iSauve == 1){
			vgSauvLoc = oForm.memoVille.checked;
			_formLibelleSubmit( oForm );
		} else {
			oForm.memoVille.checked = false;
		}
	}
}
//=======================
function _formLibelleSubmit( oForm ){
	if( oForm ){
		var sLocalite = trim( oForm.ville.value );
		
		var sUrl = oForm.action;
		var indexParam = sUrl.indexOf("?");
		if(indexParam != -1){
			sUrl = sUrl.substring(0,indexParam);
		}
		sUrl += "?libelle=" + sLocalite + "&sauveLoc=" + vgSauvLoc;
		sUrl += "&origineAcces=" + oForm.origineAcces.value + "&portail=" + oForm.portail.value;
		TRAITEMENT_RETOUR = afficheInfosVille;
		showLoader(true);
		var timer = setTimeout(function(){
			appelAjax(sUrl, "", false); // appel asynchrone
			clearTimeout(timer);
			},0);
	}
}
//=======================
function _formIdLocaliteSubmit( sIdLocalite ){
	var oForm = document.getElementById("localiteEnDirect");
	if( oForm ){
		var sUrl = oForm.action;
		var indexParam = sUrl.indexOf("?");
		if(indexParam != -1){
			sUrl = sUrl.substring(0,indexParam);
		}		
		sUrl += "?idloc=" + sIdLocalite + "&sauveLoc=" + vgSauvLoc;
		sUrl += "&origineAcces=" + oForm.origineAcces.value + "&portail=" + oForm.portail.value;
		TRAITEMENT_RETOUR = afficheInfosVille;
		showLoader(true);
		var timer = setTimeout(function(){
			appelAjax(sUrl, "", false); // appel asynchrone
			clearTimeout(timer);
			},0);
	}
}
//=======================
function afficheInfosVille() {
	// Le traitement n'est effectué que lorsque : 
	//  - La reponse a ete recue (readyState == 4)
	//  - Le statut de la reponse est 200 (status == 200)
	//  - Le format est celui attendu (Flux TEXT -> ajax.responseText est non null)
	if (ajax.readyState == '4' && ajax.status == "200" && ajax.responseText) {
		// récupération de la réponse
		var oCache = document.createElement("div");
		
		oCache.innerHTML = ajax.responseText;
		for (var i=0;i<oCache.childNodes.length;i++) {
			var oCurrentNode = oCache.childNodes[i];
			
			if (oCurrentNode.id == "divMaVille_Local") {
				// pas d'ambiguité HP
				var oDivMaVilleLocal = document.getElementById("divMaVille_Local");
				if (oDivMaVilleLocal) {
					oDivMaVilleLocal.innerHTML = oCurrentNode.innerHTML;
					if (document.getElementById("vedHome")) {
						var oALocalite = document.getElementById("aLocalite");
						if( oALocalite ){
							vgLocalite = oALocalite.innerHTML;
						}
						var oModifLocalLink = document.getElementById("aModifLocalite");
						if( oModifLocalLink ){
							oModifLocalLink.setAttribute("onclick", "_vedHomeDisplay('divMaVille');");
						}
						_vedHomeDisplay( "divMaVille_Local" );
					}
					setHrefVedLink();
				}
				break;
			} else if (oCurrentNode.id == "vedDisplayVilleDeterminee") {
				// pas d'ambiguité LR
				var oDivMaVilleDeterminee = document.getElementById("vedDisplayVilleDeterminee");
				if (oDivMaVilleDeterminee) {
					oDivMaVilleDeterminee.innerHTML = oCurrentNode.innerHTML;
					if (document.getElementById("vedLR")) {
						var oSpanNomLocaliteEntier = document.getElementById("spanNomLocaliteEntier");
						var oMaVilleLink = document.getElementById("aMaVille");
						if (oSpanNomLocaliteEntier && oMaVilleLink) {
							oMaVilleLink.innerHTML = oSpanNomLocaliteEntier.innerHTML;
							oMaVilleLink.title = oSpanNomLocaliteEntier.innerHTML;
						}
						_vedLRDisplay( "vedDisplayVilleDeterminee" );
						initMemoLocalite();
					}
					setHrefVedLink();
				}
				break;
			} else if (oCurrentNode.id == "ulLocalites") {
				// ambiguité HP
				var oUlLocalites = document.getElementById("ulLocalites");
				if (oUlLocalites) {
					oUlLocalites.innerHTML = oCurrentNode.innerHTML;
					_vedHomeDisplay( "divMaVilleAmbiguite" );
				}
				break;
			} else if (oCurrentNode.id == "divMaVilleAmbiguite") {
				// ambiguité LR
				var oUlLocalites = document.getElementById("divMaVilleAmbiguite");
				if (oUlLocalites) {
					oUlLocalites.innerHTML = oCurrentNode.innerHTML;
					_vedLRDisplay( "divMaVilleAmbiguite" );
					var oModifLocalLink = document.getElementById("aModifier");
					if( oModifLocalLink ){
						oModifLocalLink.onclick = function(){ showForm(); };
					}
				}
				break;
			} else if (oCurrentNode.id == "divMaVilleErreur") {
				// erreur
				if (oCurrentNode.innerHTML == CODE_ERREUR_INTERNE_PAS_DE_LOCALITE_TROUVE) {
					var oForm = getNodeInDisplayOrPage("localiteEnDirect", "form");
					if(oForm) {
						afficheMessageErreur("spanErrorLocaliteNonTrouvee", trim( oForm.ville.value ));
					}
				} else {
					// tous les autres cas d'erreurs
					var oVedDisplay = document.getElementById("vedDisplay");
					var oVedMasque = document.getElementById("divMasque");
					var oVedIndispoMsg = document.getElementById("divIndispoMsg");
					if( oVedDisplay ){
						oVedDisplay.innerHTML = "";
					}
					if( oVedMasque && oVedIndispoMsg ){
						oVedMasque.style.display = "block";
						oVedIndispoMsg.style.display = "block";
						_vedLRHideMaVilleContent();
					}
				}
				break;
			}
		}
		showLoader(false);
	}
}
//=======================
function showLoader(bDisplay) {
	var oLoader = document.getElementById("loaderImg");
	if (oLoader) {
		oLoader.style.display = (bDisplay) ? "block" : "none";
	}
}
//=======================
function _vedHomeDisplay( sDivId ){
	var oVedInfos = document.getElementById( sDivId );
	var oVedDisplay = document.getElementById("vedDisplay");
	if( oVedInfos && oVedDisplay ){
		oVedDisplay.innerHTML = oVedInfos.innerHTML;
		oVedDisplay.style.visibility = "visible";
		_setFormFocus();
	}
}
//=======================
function setHrefVedLink() {
	var aInfosLocales = document.getElementById("aInfosLocales");
	var aMaVille = document.getElementById("aMaVille");
	var oAVilleEnDirect = document.getElementById("aVilleEnDirect");
	if( aInfosLocales && oAVilleEnDirect ){
		oAVilleEnDirect.href = aInfosLocales.href;
	}else if( aMaVille && oAVilleEnDirect ){
		oAVilleEnDirect.href = aMaVille.href;
	}
	iePngTransparency();
}
//=======================
var vgLocalite = "";
var vgSauvLoc = "false"; // mémoire de l'info pour la levée d'ambiguité
//=======================
//==============================================================================
function editoScroller(){
	var oContainer = document.getElementById("spanEdito");
	var oScroller = oContainer.getElementsByTagName("SPAN")[0];
	var iWidth = 277;//parseInt(oContainer.style.width);
	var iScrollerWidth = oScroller.offsetWidth;
	window.oEditoScroller = this;
	window.oScrollTimer;
	//---------------------------
	this.init = function(){
		if( oContainer && oScroller ){
				oScroller.style.left = "0px";
				//window.oEditoScroller.scroll();
		} 
	}
	//---------------------------
	this.scroll = function(){
			if( parseInt(oScroller.style.left) + iScrollerWidth + iWidth >= 0 ){
				oScroller.style.left = (parseInt(oScroller.style.left )-1)+"px";
			}else{
				oScroller.style.left = iWidth+"px";
			}
			window.clearTimeout( window.oScrollTimer );
			window.oScrollTimer = window.setTimeout( function(){ window.oEditoScroller.scroll()} ,20);
	}
}
//==============================================================================
// VED L.R.
//==============================================================================
function initVedLR(){
	if(document.getElementById("vedLR")){
		vgLocalite =  lireCookie("vedLibelleLoc");
		var oUlVed = document.getElementById("vedDisplayVilleDeterminee");
		if( oUlVed ){
			//---------------------------
			var oModifLocalLink = document.getElementById("aModifier");
			if( oModifLocalLink ){
				oModifLocalLink.onclick = function(){ showForm(); };
			}
		}
		//---------------------------
		initMemoLocalite();
		// Mantis #12676 : suppression du focus (function _setFormFocus()) sur le formulaire à l'init en LR 
	}
}
//=======================
function toggleShowHideVEDZone( oLink ){
	window.VedLR_liSelId = ( typeof(window.VedLR_liSelId) != "undefined") ? window.VedLR_liSelId : "liMaVille";
	var oUlVed = document.getElementById("vedLinks");
	if( oUlVed ){
		var sLiId = String(oLink.id).replace("a","li");
		if (sLiId != window.VedLR_liSelId) {
			var oPrevLi = document.getElementById( window.VedLR_liSelId );
			if(	oPrevLi	){
				oPrevLi.className = String(oPrevLi.className).replace("sel","");
			}
			var oLi = document.getElementById( sLiId );
			if( oLi ){
				window.VedLR_liSelId = oLi.id;
				oLi.className += " sel";
			}
			oLink.blur();
			resetForm();
		} else {
			if (oLink.id == "aMaVille") {
				var aInfosLocales = document.getElementById("aInfosLocales");
				if (aInfosLocales) {
					// Mantis #13156 : accès à VED en local si l'onglet MaVille est déjà ouvert
					oLink.href = aInfosLocales.href;
				}
			}
			oLink.blur();
		}
	}
	return true;
}
//=======================
function initMemoLocalite(){
	var oMemoLink = document.getElementById("aMemoLocalite");
	var oLocaliteLink = document.getElementById("aMaVille");
	var oDivMasque = document.getElementById("divMasqueMemoLocalite");
	var oDivMemoLocal = document.getElementById("divMemoLocalite");
	if( oMemoLink && oDivMemoLocal && oDivMasque && oLocaliteLink ){
		var sLocaliteCookie =  getStringWithoutQuotes(lireCookie("vedLibelleLoc"));
		if (oLocaliteLink.title.toLowerCase() == sLocaliteCookie.toLowerCase()){
			oMemoLink.style.display = "none";
		} else {
			oMemoLink.style.display = "block";
			// Fonctions d'affichage du div de mémorisation.
			addEvent(	oMemoLink, 'click',
				function(){
					this.blur();
					var oSpanNomLocaliteEntier = document.getElementById("spanNomLocaliteEntier");
					var oNouvelleLocalite = getNodeInDisplayOrPage("nouvelleLocaliteFavorite", "span");
					var oMsgPasDeLocaliteSauvegardee = getNodeInDisplayOrPage("msgPasDeLocaliteFavorite", "span");
					var oMsgLocaliteDejaSauvegardee = getNodeInDisplayOrPage("msgLocaliteFavoriteExistante", "span");
					var oLocaliteActuelle = getNodeInDisplayOrPage("localiteFavoriteActuelle", "span");
					afficheMessageConfirmation(oNouvelleLocalite, oMsgPasDeLocaliteSauvegardee, 
						oMsgLocaliteDejaSauvegardee, oLocaliteActuelle, oSpanNomLocaliteEntier.innerHTML);
					oDivMasque.style.display = "block";
					oDivMemoLocal.style.display = "block";
				}
				,true);								
			
			// Fonctions de masquage du div de mémorisation. 
			var aInputs = oDivMemoLocal.getElementsByTagName("INPUT");
			for(var i=0; i<aInputs.length; i++){
				var oInput = aInputs[i];
				if( oInput.type == "image" ){
					addEvent(	oInput, 'click',
								function(){
									if(this.id == "memoLocalOui"){
										// traitement de sauvegarde de la localité
										_setCookieIdLocalite();
									}
									oDivMasque.style.display = "none";
									oDivMemoLocal.style.display = "none";
								}
								,true);	
				}
			}
		}
	}
}
//=======================
function _setCookieIdLocalite(){
	var oSpanActionFormUrl = document.getElementById("spanActionFormUrl");
	var oSpanIdLocalite = document.getElementById("spanIdLocalite");
	if( oSpanActionFormUrl && oSpanIdLocalite ){
		var oSpanOrigineAccesLocal = document.getElementById("spanOrigineAccesLocal");
		var sUrl = oSpanActionFormUrl.innerHTML;
		sUrl += "?idloc=" + oSpanIdLocalite.innerHTML;
		if(oSpanOrigineAccesLocal){
			sUrl += "&origineAcces=" + oSpanOrigineAccesLocal.innerHTML;
		}
		sUrl += "&sauveLoc=true";
		TRAITEMENT_RETOUR = cacheLienVilleFavorite;
		showLoader(true);
		var timer = setTimeout(function(){
			appelAjax(sUrl, "", false); // appel asynchrone
			clearTimeout(timer);
			},0);
	}
}
//=======================
function cacheLienVilleFavorite() {
	// Le traitement n'est effectué que lorsque : 
	//  - La reponse a ete recue (readyState == 4)
	//  - Le statut de la reponse est 200 (status == 200)
	//  - Le format est celui attendu (Flux TEXT -> ajax.responseText est non null)
	if (ajax.readyState == '4' && ajax.status == "200" && ajax.responseText) {
		var oMemoLink = document.getElementById("aMemoLocalite");
		if( oMemoLink ) {
			oMemoLink.style.display = "none";
			showLoader(false);
		}
	}
}
//=======================
function _vedLRDisplay( sDivId ){
	var oVedInfos = document.getElementById( sDivId );
	var oLiMaVille = document.getElementById("vedDisplayVilleDeterminee");
	if( oVedInfos && oLiMaVille ){
		var oNodes = oLiMaVille.getElementsByTagName("div");
		for (var i=0;i<oNodes.length;i++) {
			if (oNodes[i].id.indexOf("divMaVille") != -1) {
				oNodes[i].className = "none";
			}
		}
		oVedInfos.className = "vedInfos";
	}
}
//=======================
function _vedLRHideMaVilleContent() {
	if (document.getElementById("vedLR")) {
		var oLiMaVille = document.getElementById("liMaVille");
		if( oLiMaVille ){
			var oNodes = oLiMaVille.getElementsByTagName("div");
			for (var i=0;i<oNodes.length;i++) {
				if (oNodes[i].id.indexOf("divMaVille") != -1 && oNodes[i].className=="vedInfos") {
					oNodes[i].style.visibility = "hidden";
					break;
				}
			}
		}
	}
}
//=======================
function resetForm() {
	var oForm = getNodeInDisplayOrPage("localiteEnDirect", "form");
	if (oForm && oForm.ville) {
		cacheMessagesErreurs();
		setSauveLoc(0);
		oForm.ville.value = "";
		_setFormFocus();
	}
}
//=======================
function showForm() {
	resetForm();
	_vedLRDisplay('divMaVille');
}
//=======================
function getStringWithoutQuotes(sNom) {
	if (sNom && sNom.substring(0,1) == '"' && sNom.substring(sNom.length - 1,sNom.length) == '"') {
		return(sNom.substring(1, sNom.length -1));
	} else {
		return sNom;
	}
}
//=======================
function iePngTransparency(){
	if ( ie && !ie7 ) {
		var imgMeteo = document.getElementById("imgMeteo");
		if (imgMeteo != null) {
			iePngFix(imgMeteo);
		}
	}
}