/*******************************************************************************/
//       GENERAL
/*******************************************************************************/

//--- Création de l'objet 'Ajax''
function funcGetXmlHR(){
	var objXmlHR = null;
	// Firefox et autres
	if(window.XMLHttpRequest) {
		objXmlHR = new XMLHttpRequest();
	// Internet Explorer
	} else if(window.ActiveXObject) {
		try {
			objXmlHR = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			objXmlHR = new ActiveXObject("Microsoft.XMLHTTP");
		}
	// XMLHttpRequest non supporté par le navigateur
	} else {
		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
		objXmlHR = false;
	}
	return objXmlHR;
}

//****************************************************************
// Affichage des sous-menus 
//****************************************************************

sfHover = function() {
	if (document.getElementById('menu'))
		{
			var sfEls = document.getElementById('menu').getElementsByTagName("LI");
			for (var i=0; i<sfEls.length; i++) {
				sfEls[i].onmouseover=function() {
				this.className+=" sfhover";
			}
			sfEls[i].onmouseout=function() {
				this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
			}
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);

//function addLoadEvent(func) {
//	var oldonload = window.onload;
//	if (typeof window.onload != 'function') {
//		window.onload = func;
//	} else {
//		window.onload = function() {
//			oldonload();
//			func();
//		}
//	}
//}
//
//sfHover = function() {
//	var timeout = 600;
//	var cssClass = "sfhover";
//
//	var queue = [];
//	var reCSS = new RegExp("\\b" + cssClass + "\\b");
//	var sfEls = document.getElementById("menu").getElementsByTagName("li");
//	for (var i=0; i<sfEls.length; i++) {
//
//		// mouseover and mouseout handlers for regular mouse based interface.
//		sfEls[i].onmouseover = function() {
//			queueFlush();
//			this.className += " " + cssClass;
//		}
//		sfEls[i].onmouseout = function() {
//			queue.push([setTimeout(queueTimeout, timeout), this]);
//		}
//
//		// focus and blur handlers for keyboard based navigation.
//		sfEls[i].onfocus = function() {
//			queueFlush();
//			this.className += " " + cssClass;
//		}
//		sfEls[i].onblur = function() {
//			queue.push([setTimeout(queueTimeout, timeout), this]);
//		}
//
//		// click event handler needed for tablet type interfaces (e.g. Apple iPhone).
//		sfEls[i].onclick = function(e) {
//			if (this.className.search(reCSS) == -1) {
//				// CSS not set, so clear all sibling (and decendants) menus, and then set CSS on this menu...
//				var elems = this.parentNode.getElementsByTagName("li");
//				for (var i=0; i<elems.length; i++) {
//					elems[i].className = elems[i].className.replace(reCSS, "");
//				}
//				this.className += " " + cssClass;
//			} else {
//				// CSS already set, so clear all decendant menus and then this menu...
//				var elems = this.getElementsByTagName("li");
//				for (var i=0; i<elems.length; i++) {
//					elems[i].className = elems[i].className.replace(reCSS, "");
//				}
//				this.className = this.className.replace(reCSS, "");
//			}
//			if (e && e.stopPropagation)
//				e.stopPropagation();
//			else
//				window.event.cancelBubble = true;
//		}
//	}
//
//	queueFlush = function () {
//		while (queue.length) {
//			clearTimeout(queue[0][0]);
//			queueTimeout();
//		}
//	}
//
//	queueTimeout = function() {
//		if (queue.length) {
//			var el = queue.shift()[1];
//			el.className = el.className.replace(reCSS, "");
//		}
//	}
//}
//addLoadEvent(sfHover);

//****************************************************************
// Fonction d'import des animations Flash 
//****************************************************************

function RunFlash(swf, hauteur, largeur, nom) {
	document.write("<object width=\""+largeur+"\" height=\""+hauteur+"\" id=\""+nom+"\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0\">\n");
	document.write("<param name=\"quality\" value=\"high\">\n");
	document.write("<param name=\"wmode\" value=\"transparent\">\n");
	document.write("<param name=\"movie\" value=\""+swf+"\">\n");
	document.write("<embed src=\""+swf+"\" quality=\"high\" wmode=\"transparent\" width=\""+largeur+"\" height=\""+hauteur+"\" name=\""+nom+"\" align=\"middle\" type=\"application/x-shockwave-flash\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\">\n");
	document.write("</object>\n");
}


//****************************************************************
// Affichage des POPUP 
//****************************************************************

function funcPopup(varUrl, varWidth, varHeight, varResize) {
	var ScreenW = screen.availWidth;
	var ScreenH = screen.availHeight;
	var WinPopUp = window.open(varUrl, 'popup', "toolbar=no, menubar=no, scrollbars=yes, resizable=" + varResize + ", location=no, directories=no, status=no, width=" + varWidth + ", height=" + varHeight);
	WinPopUp.moveTo(Math.round((ScreenW-varWidth)/2), Math.round((ScreenH-varHeight)/2));	
}


//****************************************************************
// Ajouter aux favoris 
//****************************************************************

function addToFavorites(anchor) {
	var urlAddress = "http://www.zoomdici.fr/";
	var pageName = "www.zoomdici.fr";
	if (window.external)
	{
		window.external.AddFavorite(anchor.getAttribute('href'), anchor.getAttribute('title'));
	}
}


//****************************************************************
// Fonction de zoom dans le texte 
//****************************************************************

var zoomIs = 0;
var maxZoom = 11;
var minZoom = 0;
function initTextZoom()
{
	var contents = document.getElementsByTagName('DIV');
	var articleContent;
	
	for(var i=0; i<contents.length; i++){
		var content = contents[i];
		if(content.className.search("articleDetail") > -1)
		{
			articleContent = content;
		}
	}
	
	var zoomers = document.getElementsByTagName('a');
	
	for(var i=0; i<zoomers.length; i++){
		var zoomer = zoomers[i];
		if(zoomer.className.search("textZoomIn") > -1)
		{
			zoomer.onclick = function(){
				if(zoomIs<=maxZoom-1){	
					zoomIs++;	
					if(zoomIs>0)
					{
						articleContent.className = 'articleDetail zoomIs_'+(zoomIs-1);
					}
					articleContent.className = 'articleDetail zoomIs_'+(zoomIs);
				}
				return false;
			}
		}
	}
	
	for(var i=0; i<zoomers.length; i++){
		var zoomer = zoomers[i];
		if(zoomer.className.search("textZoomOut") > -1)
		{
			zoomer.onclick = function(){
				if(zoomIs>minZoom){	
					zoomIs--;	
					if(zoomIs>0)
					{
						articleContent.className = 'articleDetail zoomIs_'+(zoomIs+1);
					}
					articleContent.className = 'articleDetail zoomIs_'+(zoomIs);
				}
				return false;
			}
		}
	}
}
window.onload = function() {
	initTextZoom();
}

/* --------------------------------------------------------------------------------*/
/* Popup envoi de message  */
function funcPopupMail(varUrl, varWidth, varHeight){
        WinPopUpMail = window.open (varUrl, 'PopUpMail','height=' + varHeight + ',width=' + varWidth + ',toolbar=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,modal=1');
}

/*
 * Popup d'envoi d'identifiants par email
 */

function funcPopupMdp(varUrl, varWidth, varHeight){
        WinPopUpMail = window.open (varUrl, 'PopUpMail','height=' + varHeight + ',width=' + varWidth + ',screenX=300,screenY=300,toolbar=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,location=no,modal=1');
}

/*
 * Fonction de suppression d'une image
 */
function funcImgDelete(varImg, varImgFile){
    alert(varImgFile);
    //varImg.innerHTML = '<img id="' + varImg.id + '" title="Photo" src="' + varImgNoFile + '" onLoad="funcRedimImg(this,200,200);">';
    varImg.outerHTML = '<img id="' + varImg.id + '" title="Photo" src="' + varImgFile + '" />';
}

/*
 * Fonction de remplacement d'une image
 */
function funcImgChange(varImg, varSrc){
    alert('varScr : ' + varSrc);
    alert('varImg : ' + varImg.id);
    varImg.outerHTML = '<img alt="' + varImg.alt + '" id="' + varImg.id + '" title="Photo" src="' + varSrc + '" >';

}

/*
 *  Téléchargement AJAX des fichiers
 *
 */
function ajaxFileUpload( file, alias ){

    var fileId = file.id

    // Le bouton valider est desactive pendant le chargement du fichier
    document.getElementById('envoyer').disabled     = "disabled";
    
    // Lorsqu'une image est telechargee on desactive le telechargement des autres images
    // max 4 images à telecharger
    var cptImg;
    var maxImg = 4;
    var idImg;

    for (cptImg=1 ; cptImg<=maxImg ; cptImg++) {
        idImg = 'ZoArtImg' + cptImg;
        if (fileId != idImg && document.getElementById(idImg)) {
           document.getElementById(idImg).disabled   = "disabled";
        }
    }    

    document.getElementById('semaphore').value      = parseInt(document.getElementById('semaphore').value) + 1;

    //alert(fileId);
    //alert(alias);

    $('#loading'+fileId)
        .ajaxStart(function(){
                $(this).show();
        })
        .ajaxComplete(function(){
                $(this).hide();
        });

            //alert("pass 1");
    $.ajaxFileUpload
    (
        {
            url:'../_inc/CPN_Ajax_Download_File.php?fileId=' + fileId + '&alias=' + alias ,
            secureuri:false,
            fileElementId:fileId,
            dataType: 'json',
            success: function (data, status)
            {
                //alert("pass 2");
                if(typeof(data.error) != 'undefined')
                {
                    if(data.error != '')
                    {
                            //alert(data.error);
                    }else
                    {
                        //alert(data.msg);
                        var tab = data.msg.split('_|_');
                        //alert(tab[3]);
                        if(document.getElementById('Preview'+fileId)){
                            document.getElementById('Preview'+fileId).src = tab[3];
                        }
                        if(document.getElementById('dwd'+fileId)){
                            document.getElementById('dwd'+fileId).value = tab[2];
                        }
                        if(document.getElementById('dwdPreview'+fileId)){
                            document.getElementById('dwdPreview'+fileId).value =tab[3];
                        }
                        if(document.getElementById('dwdMd5'+fileId)){
                            document.getElementById('dwdMd5'+fileId).value = tab[4];
                        }
                    }
                    
                }
                document.getElementById('semaphore').value = parseInt(document.getElementById('semaphore').value) - 1;
                if(document.getElementById('semaphore').value == 0){
                    document.getElementById('envoyer').disabled = "";
                }

                // on rend à nouveau disponible les bouton telecharger des images
                for (cptImg=1 ; cptImg<=maxImg ; cptImg++) {
                    idImg = 'ZoArtImg' + cptImg;
                    if (fileId != idImg && document.getElementById(idImg)) {
                       document.getElementById(idImg).disabled   = "";
                    }
                }
                
            },
            error: function (data, status, e)
            {
                    alert(e);
            }
        }
    )
    return false;
}

/*
 * Suppression des valeurs et images de pré-téléchargement
 */
function funcDeleteImg( element , imgPath ){

    document.getElementById('envoyer').disabled = "disabled";

    if(document.getElementById(element)){

        document.getElementById(element).value = '';
        if(document.getElementById('Preview'+element)){
            document.getElementById('Preview'+element).src = imgPath;
        }
        if(document.getElementById('dwd'+element)){
            document.getElementById('dwd'+element).value = '';
        }
        if(document.getElementById('Preview'+element)){
            document.getElementById('Preview'+element).src = imgPath;
        }
        if(document.getElementById('dwdPreview'+element)){
            document.getElementById('dwdPreview'+element).value = imgPath;
        }
    }
    document.getElementById('envoyer').disabled = "";
    return false;
}

/*
 * Change une valeur dans Tag
 *  en fonction du FORMULAIRE, de l'ID du Tag
 */
function funcChangeVal( varFromName , varElementId , varVal ){

    if(document.forms[varFromName].elements[varElementId]){
        document.forms[varFromName].elements[varElementId].value = varVal;
        //alert(varElementId + ' = ' + document.forms[varFromName].elements[varElementId].value);
        return true;
    }
    return false;
}

/*
 * Affiche le contenu de l'objet/tableau dans une nouvelles page
 */
function print_r(obj) {
  win_print_r = window.open('about:blank', 'win_print_r');
  win_print_r.document.write('<html><body>');
  r_print_r(obj, win_print_r);
  win_print_r.document.write('</body></html>');
  return true;
 }

 function r_print_r(theObj, win_print_r) {
  if(theObj.constructor == Array ||
   theObj.constructor == Object){
   if (win_print_r == null)
    win_print_r = window.open('about:blank', 'win_print_r');
   }
   for(var p in theObj){
    if(theObj[p].constructor == Array||
     theObj[p].constructor == Object){
     win_print_r.document.write("<li>["+p+"] =>"+typeof(theObj)+"</li>");
     win_print_r.document.write("<ul>")
     r_print_r(theObj[p], win_print_r);
     win_print_r.document.write("</ul>")
    } else {
     win_print_r.document.write("<li>["+p+"] =>"+theObj[p]+"</li>");
    }
   }
  win_print_r.document.write("</ul>")
 }


function funcBlockSubmitButton()
{
    document.getElementById('submit').display = "";
}


/*******************************************************************************/
//       ACTU
/*******************************************************************************/

/**
 * Maj du calendrier lors du clic sur le bouton "mois précédent"
 * @param   int         varSysWeb       site de publication
 * @param   string      varMonth        mois en cours
 * @param   string      varYear         année en cours
 */
function funcGetPreviousMonth(varSysWeb, varMonth, varYear, varType) {

    //alert('pass 1 previous');

    var objXmlHR    = funcGetXmlHR();
    var strUrl      = "../_inc/CPN_Ajax_Actu.php";
    var strResult   = "";
    var strParam    = "";

    strParam    += "traitement=previousMonth&month=" + varMonth + "&ville=" + varSysWeb + "&year=" + varYear + "&type=" + varType;

    // Action déclenchée à la réception des données de la requête
    objXmlHR.onreadystatechange = function() {
        if(objXmlHR.readyState == 4) {
            strResult       = objXmlHR.responseText;
            if (strResult != "") {
                $('#actu_cal').html(strResult);
            }
        }
    }

    // Connexion au serveur
    objXmlHR.open("POST", strUrl, true);
    objXmlHR.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    objXmlHR.send(strParam);
}


/**
 * Maj du calendrier lors du clic sur le bouton "mois suivant"
 * @param   int         varSysWeb       site de publication
 * @param   string      varMonth        mois en cours
 * @param   string      varYear         année en cours
 */
function funcGetNextMonth(varSysWeb, varMonth, varYear, varType) {

    //alert('pass 1 next');

    var objXmlHR    = funcGetXmlHR();
    var strUrl      = "../_inc/CPN_Ajax_Actu.php";
    var strResult   = "";
    var strParam    = "";

    strParam    += "traitement=nextMonth&month=" + varMonth + "&ville=" + varSysWeb + "&year=" + varYear + "&type=" + varType;

    // Action déclenchée à la réception des données de la requête
    objXmlHR.onreadystatechange = function() {
        if(objXmlHR.readyState == 4) {
            strResult       = objXmlHR.responseText;
            if (strResult != "") {
                $('#actu_cal').html(strResult);
            }
        }
    }

    // Connexion au serveur
    objXmlHR.open("POST", strUrl, true);
    objXmlHR.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    objXmlHR.send(strParam);
}


/*******************************************************************************/
//       ANNUAIRE
/*******************************************************************************/

/**
 * Maj liste des rubriques en fonction de la catégorie
 * @param   int         varSysWeb       site de publication
 * @param   string      varCat          id de la categorie
 */
function funcMajAnnuRubByCategorie(varSysWeb, varCat) {

    var objXmlHR    = funcGetXmlHR();
    var strUrl      = "../_inc/CPN_Ajax_Annu.php";
    var strResult   = "";
    var strParam    = "";

    strParam    += "traitement=rubParCategorie&cat=" + varCat + "&ville=" + varSysWeb;

    // Action déclenchée à la réception des données de la requête
    objXmlHR.onreadystatechange = function() {
        if(objXmlHR.readyState == 4) {
            strResult       = objXmlHR.responseText;
            if (strResult != "") {
                $('#rubrique').html(strResult);
            }
        }
    }

    // Connexion au serveur
    objXmlHR.open("POST", strUrl, true);
    objXmlHR.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    objXmlHR.send(strParam);
}

/**
 * Enregistrement de l'"Avis des internautes"
 * @param   int         varAnnuId       id de l'annuaire
 * @param   string      varCat          id de la categorie
 */
function funcAnnuNotationEnreg( varAnnuId , varAnnuType ) {

    var objXmlHR    = funcGetXmlHR();
    var strUrl      = "../_inc/CPN_Ajax_" + varAnnuType + "_Notation_Enreg.php";
    var strResult   = "";
    var strParam    = "";
    var varNotation = "";
    var arrNotation = new Array();
    var compteur = 0;

    if( document.getElementsByName('impression-acc') ){

        var acc = document.getElementsByName('impression-acc');

        for( i = 0 ; i < acc.length ; i++){
            if( acc[i].checked){
                //alert('impression-acc => '+ acc[i].value + ' checked = ' + acc[i].checked );
                arrNotation[compteur] = 'acc-' + acc[i].value;
                compteur++;
            }
        }
    }
    if( document.getElementsByName('impression-qua') ){
        var qua = document.getElementsByName('impression-qua');
        for( i = 0 ; i < qua.length ; i++){
            if(qua[i].checked){
                //alert('impression-qua => '+ qua[i].value + ' checked = ' + qua[i].checked );
                arrNotation[compteur] = 'qua-' + qua[i].value;
                compteur++;
            }
        }
     }
    if( document.getElementsByName('impression-cad') ){
        var cad = document.getElementsByName('impression-cad');
        for( i = 0 ; i < cad.length ; i++){
            if(cad[i].checked){
                //alert('impression-cad => '+ cad[i].value + ' checked = ' + cad[i].checked );
                arrNotation[compteur] = 'cad-' + cad[i].value;
                compteur++;
            }
        }
     }

    varNotation = arrNotation.join("|");

    strParam    += "annuId=" + varAnnuId + "&notes=" + varNotation  ;

    //alert(strParam + " \n ->" + strUrl );

    // Action déclenchée à la réception des données de la requête
    objXmlHR.onreadystatechange = function() {
        if(objXmlHR.readyState == 4) {
            strResult       = objXmlHR.responseText;
            if (strResult != "") {
                $('#annuComment').html(strResult);
            }
        }
    }

    // Connexion au serveur
    objXmlHR.open("POST", strUrl, true);
    objXmlHR.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    objXmlHR.send(strParam);
}

/**
 * Maj liste des communes
 * @param   string      varTyp          type annuaire
 * @param   int         varSysWeb       site de publication
 * @param   string      varDept         id du departement
 * @param   boolean     varPaNbNo       true = pas mise à jour des résultats
 *                                      sinon rien par défaut
 */
function funcAnnuCommuneByDept(varTyp, varSysWeb, varDept, varPaNbNo ) {

    var objXmlHR    = funcGetXmlHR();
    var strUrl      = "../_inc/CPN_Ajax_Geolocal.php";
    var strResult   = "";
    var strParam    = "";

    strParam    += "traitement=communeParDept&dept=" + varDept;

    // Action déclenchée à la réception des données de la requête
    objXmlHR.onreadystatechange = function() {
        if(objXmlHR.readyState == 4) {
            strResult       = objXmlHR.responseText;
            if (strResult != "") {
                $('#commune').html(strResult);
            }
            if(!varPaNbNo){
               // TODO pour ANNU funcMajAnnuNbRes(varTyp, varSysWeb);
            }
        }
    }

    // Connexion au serveur
    objXmlHR.open("POST", strUrl, true);
    objXmlHR.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    objXmlHR.send(strParam);
}


/*******************************************************************************/
//       COMMENTAIRE
/*******************************************************************************/

function funcUpdateComm(idCommentaire){

    if($('#gestion_comm_contenu_'+idCommentaire).val() != "")
    {
        //alert($('#gestion_comm_contenu_'+idCommentaire).val());

        $('#loading_gestion_comm_'+idCommentaire).show();

        var commentaire = $('#gestion_comm_contenu_'+idCommentaire).val();

            $.ajax({
                type : 'post',
                url : '../_inc/CPN_Ajax_UpdateCommentaire.php',
                data : 'idCommentaire='+idCommentaire+'&commentaire='+commentaire,
                cache: false,
                success: function(data)
                {
                  $('#loading_gestion_comm_'+idCommentaire).hide();

                  //alert(navigator.userAgent);
                  //alert(jQuery.browser);

                   if ($.browser.msie == true) {
                       $('#retour_gestion_comm_'+idCommentaire).empty();
                       $('#retour_gestion_comm_'+idCommentaire).html(data);
                   }
                   else{
                       $('#retour_gestion_comm_'+idCommentaire).html(data);
                       $('#retour_gestion_comm_'+idCommentaire).fadeIn(3000,funcHideRetour(idCommentaire));
                   }

                }
            });
    }
    else
    {
	    alert('Le commentaire doit posséder un contenu !');
    }

}

function funcHideRetour(idCommentaire){
    //window.alert('commenctirererzer :'+idCommentaire);
    $('#retour_gestion_comm_'+idCommentaire).fadeOut(2000,function(){ $('#retour_gestion_comm_'+idCommentaire).empty();});

}


/*******************************************************************************/
//       CONTACT
/*******************************************************************************/

//================================================================================
//--- Chargement des données dans un SELECT
// varFileType  = 'Email' pour accès à CPN_Ajax_Email.php
// varForm      = objet Formulaire ou les variables à transmettre par ajax => exemple : "document.getElementById('formRedirect')"

function funcEmailCompteConfirm( varFileType, varForm  ) {
    var objXmlHR = funcGetXmlHR();
    var strUrl = "../_inc/CPN_Ajax_" + varFileType + ".php";
    var varParam = "ajaxCase=" + varFileType;
    var varResult = "";

    var varParamTmp = '';
    if(varForm != ''){
        var liaison = "";
		if (varForm.id == 'frmCompteValid') {
			varParamTmp = '&contactid=' + varForm.contactid.value + '&mail=' + varForm.loginMail.value + '&isactivation=1';
		} else { 
			varParamTmp +=  liaison + '&isactivation=';
			for (i = 0; i < varForm.length; i++){
				if(varForm.elements[i].value != "" && varForm.elements[i].getAttribute("name") != "password_ctl" && varForm.elements[i].getAttribute("name") != "mailVerif"){
					varParamTmp +=  liaison + varForm.elements[i].getAttribute("name") + "=" + varForm.elements[i].value;
					liaison     =   "&";
				}
			}
		}
    }
    varParam += liaison + varParamTmp;

//alert('varParam : ' + varParam);
    // Action déclenchée à la réception des données de la requête
    objXmlHR.onreadystatechange = function() {
        // Déclenchement au chargement complet
        if(objXmlHR.readyState == 4) { // test d'état de retour et d'erreur d'execution SERVEUR
            varResult = objXmlHR.responseText;

            if( varResult != '' ) {
                var arrResult = varResult.split('|');
                if(arrResult.length > 1){
                    alert(arrResult[1]);
                }else{
                    alert(varResult);
                }
            }
            else{
                alert("L'email n'a pas pu être envoyé");
            }
        }
    }
    // Connexion au serveur
        objXmlHR.open("POST", strUrl, true);
        objXmlHR.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
        // Envoi des paramètres
        objXmlHR.send(varParam);
}


/*******************************************************************************/
//       COOKIE
/*******************************************************************************/

/**
 * Mise en cookie de la ville (utilisee par loadCity.php)
 * @param   varVille    id ville selecionnee
 */
function funcJSSetCookieVille(varVille) {

    var objXmlHR    = funcGetXmlHR();
    var strUrl      = "../_inc/CPN_Ajax_Cookie.php";
    var strResult   = "";
    var strParam    = "";

    strParam    += "traitement=setCookieVille&ville=" + varVille;

    // Action déclenchée à la réception des données de la requête
    objXmlHR.onreadystatechange = function() {
        if(objXmlHR.readyState == 4) {

            strResult       = objXmlHR.responseText;

            // si ok on enleve la fenetre de selection des villes et on recharge la page parente (validation formulaire)
            if (strResult == "ok") {
                self.parent.tb_remove();
                self.parent.document.getElementById('loadCityChooseFrm').submit();
            }
        }
    }

    // Connexion au serveur
    objXmlHR.open("POST", strUrl, true);
    objXmlHR.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    objXmlHR.send(strParam);
}


/*******************************************************************************/
//       PUB
/*******************************************************************************/

/**
 * Maj Stat
 * @param   int           varId           id de la campagne
 * @param   string        varDat          date du dernier affichage
 * @param   string        varIPOld        derniere IP à consulter la pub
 * @param   string        varIPNew        nouvelle IP à consulter la pub
 */
function funcMajPubStat(varId, varDat, varIPOld, varIPNew) {

    var objXmlHR    = funcGetXmlHR();
    var strUrl      = "../_inc/CPN_Ajax_Pub.php";
    var strParam    = "";

    strParam    += "traitement=majPubCampStatView&id=" + varId + "&dat=" + varDat + "&ipOld=" + varIPOld + "&ipNew=" + varIPNew;

    // Action déclenchée à la réception des données de la requête
    objXmlHR.onreadystatechange = function() {
        if(objXmlHR.readyState == 4) {
            // alert (objXmlHR.responseText);
        }
    }

    // Connexion au serveur
    objXmlHR.open("POST", strUrl, true);
    objXmlHR.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    objXmlHR.send(strParam);
}

/**
 * Maj Stat nb clic
 * @param   int         varId             id de la campagne
 * @param   string      varUrl            url redirection (optionnel)
 */
function funcMajPubStatClick(varId, varUrl) {

    var objXmlHR    = funcGetXmlHR();
    var strUrl      = "../_inc/CPN_Ajax_Pub.php";
    var strParam    = "";

    strParam    += "traitement=majPubCampStatClick&id=" + varId;

    // Action déclenchée à la réception des données de la requête
    objXmlHR.onreadystatechange = function() {
        if(objXmlHR.readyState == 4) {
           // Si url => redirection
           if (varUrl) {
               window.location.href = varUrl;
           }
        }
    }

    // Connexion au serveur
    objXmlHR.open("POST", strUrl, true);
    objXmlHR.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    objXmlHR.send(strParam);
}

/**
 * Maj Stat nb clic sur bloc partenaire
 * @param   int         varId             id de l'annu
 * @param   string      varUrl            url redirection (optionnel)
 */
function funcMajPartenaireStatClick(varId, varUrl, sysWebId) {

    var objXmlHR    = funcGetXmlHR();
    var strUrl      = "../_inc/CPN_Ajax_Annu.php";
    var strParam    = "";

    strParam    += "traitement=majPartenaireStatClick&id=" + varId + "&sysWebId=" + sysWebId;

    // Action déclenchée à la réception des données de la requête
    objXmlHR.onreadystatechange = function() {
        if(objXmlHR.readyState == 4) {
           // Si url => redirection
           if (varUrl) {
               window.location.href = varUrl;
               //window.open(varUrl);
               //funcPopup(varUrl, 1024, 900, '');
           }
        }
    }

    // Connexion au serveur
    objXmlHR.open("POST", strUrl, true);
    objXmlHR.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    objXmlHR.send(strParam);
}
/*******************************************************************************/
//       SONDAGE
/*******************************************************************************/

/**
 * Enregistrement des résultat du sondage
 * @param   obj         objform         formulaire de saisie
 * @param   string      sondId          Id du sondage
 */
function funcEnregSondage( objform, sondId ) {

    var objXmlHR    = funcGetXmlHR();

    var strUrl      = "../_inc/CPN_Ajax_sondages.php";
    var strResult   = "";
    var arrParam    = new Array();
    var strParam    = "";
//    var strNextCheck = "";
    var strCheckList = "";

    var divNameSond     = 'div-sond-' + sondId;
    var divNameResult   = 'div-result-sond-' + sondId;
    var divNameLoading  = 'div-loading-sond-' + sondId;

    var resultTyp       = "";
    var resulat         = "";
    var arrResult       = new Array();
    var arrR            = new Array();

    var arrCheckList = new Array();

    var j = 0;
    arrParam[j] = "sondId=" + sondId;
    j++;

    // affichage de l'image de chargement
    document.getElementById( divNameLoading ).style.display = 'block';

    for (var i = 0; i < objform.length; i++){
        if(objform.elements[i]){
            // traitement des données en fonction du type de champs
            switch (objform.elements[i].type){
                case 'radio':
                    //alert(objform.elements[i].value);
                    if (objform.elements[i].checked){
                        arrParam[j]    = objform.elements[i].name + "=" + objform.elements[i].value;
                        j++;
                    }
                    break;

                case 'checkbox':
                    // Dans ce cas, on crée un tableau avec chaque liste de checkbox qu'on traite plus tard
                    if (objform.elements[i].checked && arrCheckList[objform.elements[i].name]){
                        arrCheckList[objform.elements[i].name] =  arrCheckList[objform.elements[i].name] + "|" + objform.elements[i].id;
                    }
                    else if(objform.elements[i].checked){
                        arrCheckList[objform.elements[i].name] =   objform.elements[i].id;
                    }

                    break;

                case 'select-one':
                    //alert(objform.elements[i].options[objform.elements[i].selectedIndex].value);
                    arrParam[j]    = objform.elements[i].name + "=" + objform.elements[i].options[objform.elements[i].selectedIndex].value;
                    j++;
                    break;

                case 'select-multiple':
                    //alert(objform.elements[i].name);
                    var arrMultiple = new Array();
                    var varMultiple = objform.elements[i];
                    var s = 0;
                    for (var k in varMultiple.options) {
                        if( varMultiple.options[k] && varMultiple.options[k].selected){
                            arrMultiple [s] = varMultiple.options[k].value;
                            s++;
                        }
                    }
                    arrParam[j]    = objform.elements[i].name + "=" + arrMultiple.join('|');
                    j++;
                    break;

                case 'text':
                    //alert(objform.elements[i].name);
                    arrParam[j]    = objform.elements[i].name + "=" + objform.elements[i].id + "|" +  objform.elements[i].value;
                    j++;
                    break;

                case 'textarea':
                    //alert(objform.elements[i].name);
					
                    //arrParam[j]    = objform.elements[i].name + "=" + objform.elements[i].id + "|" +  objform.elements[i].value;
					//Mantis 1065 : modif car textarea peut maintenant etre obligatoire, et passe par l'id qui  etait necessaire pour la transmission des donnees
					//              Modification en parallele de ctrlform.js::funcExtract
					arrParam[j]    = objform.elements[i].name + "=" + funcExtract(objform.elements[i],'id') + "|" +  objform.elements[i].value;
                    j++;
                    break;

            }
        }
   }

   // création du la chaine de caractères pour le passage des données en AJAX
    strParam = arrParam.join('&');

    if(arrCheckList){
        var strCheckLisaison = "";
        for(var p in arrCheckList){
            //alert( arrCheckList[p] );
            strCheckList += strCheckLisaison + p + "=" + arrCheckList[p];
            strCheckLisaison = "&";
        }
        if( strParam != "" ){
            strParam += "&" + strCheckList;
        }
        else{
            strParam = strCheckList
        }
    }

    // Action déclenchée à la réception des données de la requête
    objXmlHR.onreadystatechange = function() {
        if(objXmlHR.readyState == 4) {
            strResult       = objXmlHR.responseText;
            // Traitement des résultats de retours
            arrResult = strResult.split('|');
            for (var r = 0; r < arrResult.length; r++){
                arrR = arrResult[r].split('=');
                resultTyp   = arrR[0];
                resulat     = arrR[1];
                if( arrR[0] == 'sond-result' && arrR[1] == 'ok' ){
                    document.getElementById( divNameSond ).innerHTML = '';
                    document.getElementById( divNameSond ).style.display = 'none';
                    document.getElementById( divNameResult ).innerHTML = 'Votre participation au sondage a été prise en compte.';
                    document.getElementById( divNameResult ).style.display = 'block';
					//Affichage du bouton de retour HP quand mode pleine page
					if (document.getElementById( 'backHomePage' ))
						document.getElementById( 'backHomePage' ).style.display = 'block';

                }
            }

            document.getElementById( divNameLoading ).style.display = 'none';

        }
    }

    // Connexion au serveur
    objXmlHR.open("POST", strUrl, true);
    objXmlHR.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    objXmlHR.send(strParam);
    return false;
}

/**
 * Enregistrement des résultat du jeu
 * @param   obj         objform         formulaire de saisie
 * @param   string      jeuId           Id du jeu
 */
function funcEnregJeu( objform, jeuId ) {

    var objXmlHR    = funcGetXmlHR();

    var strUrl      = "../_inc/CPN_Ajax_sondages.php";
    var strResult   = "";
    var arrParam    = new Array();
    var strParam    = "";
//    var strNextCheck = "";
    var strCheckList = "";

    var divNameJeu     = 'div-jeu-' + jeuId;
    var divNameResult   = 'div-result-jeu-' + jeuId;
    var divNameLoading  = 'div-loading-jeu-' + jeuId;

    var resultTyp       = "";
    var resulat         = "";
    var arrResult       = new Array();
    var arrR            = new Array();

    var arrCheckList = new Array();

    var j = 0;
    arrParam[j] = "jeuId=" + jeuId;
    j++;

    // affichage de l'image de chargement
    document.getElementById( divNameLoading ).style.display = 'block';

    for (var i = 0; i < objform.length; i++){
        if(objform.elements[i]){
            // traitement des données en fonction du type de champs
            switch (objform.elements[i].type){
                case 'radio':
                    //alert(objform.elements[i].value);
                    if (objform.elements[i].checked){
                        arrParam[j]    = objform.elements[i].name + "=" + objform.elements[i].value;
                        j++;
                    }
                    break;

                case 'checkbox':
                    // Dans ce cas, on crée un tableau avec chaque liste de checkbox qu'on traite plus tard
                    if (objform.elements[i].checked && arrCheckList[objform.elements[i].name]){
                        arrCheckList[objform.elements[i].name] =  arrCheckList[objform.elements[i].name] + "|" + objform.elements[i].id;
                    }
                    else if(objform.elements[i].checked){
                        arrCheckList[objform.elements[i].name] =   objform.elements[i].id;
                    }

                    break;

                case 'select-one':
                    //alert(objform.elements[i].options[objform.elements[i].selectedIndex].value);
                    arrParam[j]    = objform.elements[i].name + "=" + objform.elements[i].options[objform.elements[i].selectedIndex].value;
                    j++;
                    break;

                case 'select-multiple':
                    //alert(objform.elements[i].name);
                    var arrMultiple = new Array();
                    var varMultiple = objform.elements[i];
                    var s = 0;
                    for (var k in varMultiple.options) {
                        if( varMultiple.options[k] && varMultiple.options[k].selected){
                            arrMultiple [s] = varMultiple.options[k].value;
                            s++;
                        }
                    }
                    arrParam[j]    = objform.elements[i].name + "=" + arrMultiple.join('|');
                    j++;
                    break;

                case 'text':
                    //alert(objform.elements[i].name);
                    arrParam[j]    = objform.elements[i].name + "=" + objform.elements[i].id + "|" +  objform.elements[i].value;
                    j++;
                    break;

                case 'textarea':
                    //alert(objform.elements[i].name);
/*                    arrParam[j]    = objform.elements[i].name + "=" + objform.elements[i].id + "|" +  objform.elements[i].value;
                    j++;
                    break;*/
					arrParam[j]    = objform.elements[i].name + "=" + funcExtract(objform.elements[i],'id') + "|" +  objform.elements[i].value;
                    j++;
                    break;
            }
        }
   }

   // création du la chaine de caractères pour le passage des données en AJAX
    strParam = arrParam.join('&');

    if(arrCheckList){
        var strCheckLisaison = "";
        for(var p in arrCheckList){
            //alert( arrCheckList[p] );
            strCheckList += strCheckLisaison + p + "=" + arrCheckList[p];
            strCheckLisaison = "&";
        }
        if( strParam != "" ){
            strParam += "&" + strCheckList;
        }
        else{
            strParam = strCheckList
        }
    }

    // Action déclenchée à la réception des données de la requête
    objXmlHR.onreadystatechange = function() {
        if(objXmlHR.readyState == 4) {
            strResult       = objXmlHR.responseText;
            // Traitement des résultats de retours
            arrResult = strResult.split('|');
            for (var r = 0; r < arrResult.length; r++){
                arrR = arrResult[r].split('=');
                resultTyp   = arrR[0];
                resulat     = arrR[1];
                if( arrR[0] == 'jeu-result' && arrR[1] == 'ok' ){
                    document.getElementById( divNameJeu ).innerHTML = '';
                    document.getElementById( divNameJeu ).style.display = 'none';
                    document.getElementById( divNameResult ).innerHTML = 'Votre participation au jeu a été prise en compte.';
                    document.getElementById( divNameResult ).style.display = 'block';
					//Affichage du bouton de retour HP quand mode pleine page
					if (document.getElementById( 'backHomePage' ))
						document.getElementById( 'backHomePage' ).style.display = 'block';

                }
            }

            document.getElementById( divNameLoading ).style.display = 'none';

        }
    }

    // Connexion au serveur
    objXmlHR.open("POST", strUrl, true);
    objXmlHR.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    objXmlHR.send(strParam);
    return false;
}

function verifValid () {
		if(document.getElementById('loginMail')) 
		{ 
			alert('Pour valider votre annonce : \n\n => Veuillez vous identifier en colonne de droite dans le formulaire orange.\n\n Remarque : \n\tSi vous n\'avez pas encore de compte, \n\tveuillez remplir le formulaire "Pas encore inscrit ?".'); 
			document.forms['frmAuthAnnonceValid'].loginMail.focus();
		} 
		else 
			document.getElementById('btValide').click();
}
/*******************************************************************************/
//      
/*******************************************************************************/




//----------------------------------------------------------------------------------
// Limitation du nombre de caractère d'un textarea (fonctions de zoom V2)
// MANTIS 885 - Commentaires
//----------------------------------------------------------------------------------

// args : string varIdTextarea, int varNbCar, string varIdControleCompte
// return : aucun
// Affecte à certains évènements d'un textarea, le contrôle de la longueur de son contenu
function funcTextareaLimiter (varIdTextarea, varNbCar, varIdControleCompte) {

	var objTextarea 	= document.getElementById(varIdTextarea);
	var objControleCompte 	= document.getElementById(varIdControleCompte);

	if (objTextarea && objControleCompte) {

		objTextarea.onclick 	= function(){funcTextareaEstRempli(objTextarea, varNbCar, objControleCompte)};
		objTextarea.onblur 	= function(){funcTextareaEstRempli(objTextarea, varNbCar, objControleCompte)};
		objTextarea.onkeyup 	= function(){funcTextareaEstRempli(objTextarea, varNbCar, objControleCompte)};
		objTextarea.onkeypress 	= function(){funcTextareaEstRempli(objTextarea, varNbCar, objControleCompte)};

		// Affichage nb caractères restant
		if (objControleCompte.type)
			objControleCompte.value = funcTextareaNbCarRestant(objTextarea, varNbCar); // Pour un input de formulaire
		else
			objControleCompte.innerHTML = funcTextareaNbCarRestant(objTextarea, varNbCar); // Pour un élément HTML
	}
}

// args : textarea objTextarea, int varNbCar, element_HTML objControleCompte
// return : bool
// Renvoie vrai si le nombre de caractères maximum du textarea n'est pas atteint
function funcTextareaEstRempli (objTextarea, varNbCar, objControleCompte) {

	if (objTextarea) {

                var tabSautLigne    = objTextarea.value.split('\n');
                var nbSautLigne     = tabSautLigne.length;
                var nbCarEnPlus     = nbSautLigne * 6; // (pour transformation en <br /> ensuite)
                var newLength       = objTextarea.value.length + nbCarEnPlus;
                
		if (newLength <= varNbCar) {

			// Affichage nb caractères restant
			if (objControleCompte.type)
				objControleCompte.value = funcTextareaNbCarRestant(objTextarea, varNbCar);
			else
				objControleCompte.innerHTML = funcTextareaNbCarRestant(objTextarea, varNbCar);

			return true;

		} else {

			// Affichage du nombre de caractères restant
			objTextarea.value = objTextarea.value.substr(0, varNbCar - nbCarEnPlus);

			// Affichage nb caractères restant
			if (objControleCompte.type)
				objControleCompte.value = funcTextareaNbCarRestant(objTextarea, varNbCar);
			else
				objControleCompte.innerHTML = funcTextareaNbCarRestant(objTextarea, varNbCar);

			return false;
		}
	}
        return false;
}

// args : textarea objTextarea, int varNbCar
// return : int
// Renvoie le nombre de caractère à saisir
function funcTextareaNbCarRestant (objTextarea, varNbCar) {
    
	if (objTextarea.value.length) {
            
                var tabSautLigne    = objTextarea.value.split('\n');
                var nbSautLigne     = tabSautLigne.length;
                var nbCarEnPlus     = nbSautLigne * 6; // (pour transformation en <br /> ensuite)
                var newLength       = objTextarea.value.length + nbCarEnPlus;
                                
                return new Number(varNbCar - newLength);
                
        } else {
		return new Number(varNbCar);
        }
}
