/*
* Fonctions Javascript communes
*
*  ImmoPrimo.com tous droits réservés
*/

//fonction de changement de la langue en cours
function p_set_lang(lang)
{
    if (lang == '')
        return;

    var cur_url = new String(window.location);

    regex = /(.*)([&?]l=)[a-z]{2}(.*)$/;
    regex2 = /\?/;

    if ((regex.test(cur_url))) {
        cur_url = cur_url.replace(regex, "$1$2" + lang + "$3");
    } else {
        if (regex2.test(cur_url))
            cur_url += "&l=" + lang;
        else
            cur_url += "?l=" + lang;
    }
    window.location = cur_url;
}

// fonction d'ajout / modification de paramètre dans un URL
// @ p_param : nom du paramètres
// @p_valeur : valeur du paramètre

function f_set_param(p_param, p_valeur)
{
    var cur_url = new String(window.location);
    if (p_valeur == '') {
        window.location = cur_url;
        return;
    }
    r_tmp = "(.*)([&?]"+p_param+"=)[a-z]{2}(.*)$";
    r_regex = new RegExp (r_tmp, "gi");
    r_regex2 = /\?/;

    if ((r_regex.test(cur_url))) {
        cur_url = cur_url.replace(r_regex, "$1$2" + p_valeur + "$3");
    } else {
        if (r_regex2.test(cur_url))
            cur_url += "&"+p_param+"=" + p_valeur;
        else
            cur_url += "?"+p_param+"=" + p_valeur;
    }
    window.location = cur_url;
} // Fin donction p_set_param (...)

//******************************************************************************
//**   Confirmation de suppression
//******************************************************************************
function f_ConfirmerSuppression(URL)
{
    if (confirm("Etes-vous sûr de vouloir supprimer cet enregistrement (cette opération est irréversible) ?"))
    {
        window.location = URL ;
    }
} // fin f_ConfirmerSuppression

//******************************************************************************
//**   Confirmation de copie récursive
//******************************************************************************
function f_ConfirmerCopieRecursive(URL)
{
    if (confirm("Etes-vous sûr de vouloir faire une copie récursive de cet enregistrement ?"))
    {
        window.location = URL ;
    }
} // fin f_ConfirmerCopieRecursive

//******************************************************************************
/*! \brief Tester si le mot de passe ne contient que les caractères a-z et 0-9
*
* \author Chokairi Imane
*/
//******************************************************************************
function f_TestPwd(p_pwd)
{
    var reg = /^[a-zA-Z0-9]+$/ ;
    if (!reg.test(p_pwd))
    {
        return false ;
    }
    return true ;
} // f_TestPwd

//******************************************************************************
/*! \brief Tester si le numéro de téléphone ne contient que les caractères 0-9, +, ., (, ) et l'espace
*
* \author Chokairi Imane
*/
//******************************************************************************
function f_TestTelephone(p_telephone)
{
    var reg = /^[0-9-+. ()]+$/ ;
    if (!reg.test(p_telephone))
    {
        return false ;
    }
    return true ;
} // f_TestTelephone


//******************************************************************************
//**   Test si une valeur ne contient que les caractères a-z et 0-9
//******************************************************************************
function f_TestCode(p_code)
{
    var reg = /^[a-zA-Z0-9_]+$/ ;
    if (!reg.test(p_code))
    {
        return false ;
    }
    return true ;
} // f_TestCode

//******************************************************************************
//**   Test si une valeur est numérique uniquement
//******************************************************************************
function f_TestChiffres(entree)
{
      var seulement_ca ="0123456789.,-" ;
      for (a = 0; a < entree.length; a++)
       {
           if (seulement_ca.indexOf(entree.charAt(a))<0 ) return false;
    }
      return true ;
} // fin f_TestChiffres

/*
* Teste si une chaîne est une adresse e-mail valide
*
* Pas d'espaces, d'apostrophes, de guillemets, de caractères spéciaux, présence d'une @ et d'un point suivi d'une extension
*
* p_AdresseEmail L'adresse e-mail
*
* return True si l'adresse est valide ; False sinon
*
*/
function f_TestEmail(p_AdresseEmail)
{
    var reg = new RegExp('^[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*@[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*[\.]{1}[a-z]{2,6}$', 'i');

    if(reg.test(p_AdresseEmail))
    {
        return(true);
    }
    else
    {
        return(false);
    }


} // fin f_TestEmail

//******************************************************************************
//**   Test si une valeur est une date valide
//******************************************************************************
function f_TestDate(entree)
{
    expression_regulaire=/^[0123]{1}\d{1}\/[01]{1}\d{1}\/\d{4}$/ ;

    if (expression_regulaire.test(entree))
    {
        return true ;
    }
    else
    {
        return false ;
    }
} // fin f_TestDate

//******************************************************************************
//**   Test la validité de noms d'images
//******************************************************************************
function f_TestImage(entree)
{
    tableau=entree.split(".")
    if ((tableau[tableau.length-1] != "jpg") && (tableau[tableau.length-1] != "gif") && (tableau[tableau.length-1] != "png") && (tableau[tableau.length-1] != "JPG") && (tableau[tableau.length-1] != "GIF") && (tableau[tableau.length-1] != "PNG")&&(tableau[tableau.length-1] != "jpeg")&&(tableau[tableau.length-1] != "JPEG"))
    {
        return false ;
    }
    else
    {
        return true ;
    }
} // fin f_TestImage

//******************************************************************************
//**   Test la longueur d'une chaîne
//******************************************************************************
function f_TestTaille(entree,longueur)
{
    expression_regulaire=new RegExp("^[a-zA-Z0-9]{0,"+longueur+"}$") ;
    if (expression_regulaire.test(entree))
    {
        return true ;
    }
    else
    {
        return false ;
    }

} // fin f_TestTaille

//******************************************************************************
//**   Fonction de l'administration rapide permettant l'affichage de l'arbre
//******************************************************************************
function f_arbre_deplier(p_entree,p_action)
{
    if (p_action=="deplier")
    {
        if ((document.form_arbre.elements[p_entree].value=="deplier") || (document.form_arbre.elements[p_entree].value=="depliertout"))
        {
            document.form_arbre.elements[p_entree].value="repliertout" ;
        }
        else
        {
            document.form_arbre.elements[p_entree].value="deplier" ;
        }
    }
    else
    {
        if ((document.form_arbre.elements[p_entree].value=="deplier") || (document.form_arbre.elements[p_entree].value=="depliertout"))
        {
            document.form_arbre.elements[p_entree].value="repliertout" ;
        }
        else
        {
            document.form_arbre.elements[p_entree].value="depliertout" ;
        }
    }

    document.form_arbre.action="#" + p_entree ;

    document.form_arbre.submit() ;

} // f_arbre_deplier

//******************************************************************************
//**   Fonction qui permet d'appliquer une valeur a plusieurs variables de type form1.v_val1, form1.v_val2, form1.v_val3...
//******************************************************************************
function f_appliquer_a_tout(form_in, form_val)
{
    var i=1;
    while(1)
    {
        if(eval(form_in+i))
        {
            eval(form_in+i+".value="+form_val+".value") ;
            i++ ;
        }
        else
            break ;
    }
} // f_appliquer_a_tout

//******************************************************************************
//**   Permet dans recherche rapide de faire des search replace dans une colonne entiere
//******************************************************************************
function f_rech_rempl_a_tout(form_in, form_rech, form_rempl)
{
    var i=1;

    if (eval("val_rech = "+form_rech+".value") != "")
    {
        while(1)
        {
            if(eval(form_in+i))
            {
                eval("val_res = "+form_in+i+".value") ;
                eval("val_rech = "+form_rech+".value") ;
                eval("val_rempl = "+form_rempl+".value") ;
                eval("var n = val_res.replace(/"+val_rech+"/,\""+val_rempl+"\")") ;
                eval(form_in+i+".value = n" ) ;
                i++ ;
            }
            else
                break ;
        }
    }
    else
        alert("Vous devez d'abord indiquer une valeur à rechercher") ;

} // f_rech_rempl_a_tout

//******************************************************************************
//**
//******************************************************************************
function f_popup_aide(p_texte,p_chemin_serveur)
{
    tableau_aide='<table width="200" border="0" cellspacing="0" cellpadding="0">' ;
    tableau_aide+='  <tr height="11">' ;
    tableau_aide+='    <td width="21" colspan="2"><img src="aide/coin_hg.gif" width="21" height="11"></td>' ;
    tableau_aide+='    <td valign="top"><img src="aide/pixel_orange.gif" width="100%" height="1"></td>' ;
    tableau_aide+='    <td width="21" colspan="2"><img src="aide/coin_hd.gif" width="21" height="11"></td>' ;
    tableau_aide+='  </tr>' ;
    tableau_aide+='  <tr>' ;
    tableau_aide+='    <td width="1" bgcolor="#FF3300"><img src="aide/pixel_orange.gif" width="1" height="1"></td>' ;
    tableau_aide+='    <td width="20">&nbsp;</td>' ;
    tableau_aide+='    <td width="100%">' + p_texte + '</td>' ;
    tableau_aide+='    <td width="20">&nbsp;</td>' ;
    tableau_aide+='    <td align="right" width="1" bgcolor="#FF3300"><img src="aide/pixel_orange.gif" width="1" height="1"></td>' ;
    tableau_aide+='  </tr>' ;
    tableau_aide+='  <tr height="22">' ;
    tableau_aide+='    <td colspan="2"><img src="aide/coin_bg.gif" width="21" height="22"></td>' ;
    tableau_aide+='    <td valign="bottom"><img src="aide/pixel_orange.gif" width="100%" height="1"></td>' ;
    tableau_aide+='    <td colspan="2"><img src="aide/coin_bd.gif" width="21" height="22"></td>' ;
    tableau_aide+='  </tr>' ;
    tableau_aide+='</table>' ;

    document.write(tableau_aide) ;
} // f_popup_aide

//******************************************************************************
//**   Fonction de cochage et décochage des cases à cocher
//******************************************************************************
function f_checkboxes(p_form, p_valeur)
{
    var elts      = document.forms[p_form].elements['selected_tbl[]'] ;
    var elts_cnt  = (typeof(elts.length) != 'undefined')
                  ? elts.length
                  : 0 ;

    if (elts_cnt)
    {
        for (var i = 0; i < elts_cnt; i++)
        {
            if (p_valeur == "inverser")
            {
                if (elts[i].checked == true)
                    elts[i].checked = false ;
                else
                    elts[i].checked = true ;
            }
            else
                elts[i].checked = p_valeur;
        } // end for
    }
    else
    {
        elts.checked        = p_valeur ;
    } // end if... else

    return true ;
} // f_checkboxes

//******************************************************************************
//**   Fonction d'ouverture d'un popup
//******************************************************************************
function f_popup(p_url, p_nom, p_width, p_height, p_left, p_top, p_menu, p_scroll, p_tool, p_status, p_resizable, p_location)
{
    var strProperties ;
    var wbg_popup ;

    if (p_top == "center")
        p_top = (screen.height - p_height) / 2 ;

    if (p_left == "center")
        p_left = (screen.width - p_width) / 2 ;

    strProperties = 'width=' + p_width + ',height=' + p_height ;
    strProperties = strProperties + ',left='+ p_left +',top='+ p_top +',directories=0,hotkeys=1' ;
    strProperties = strProperties + ',menubar='+p_menu +',scrollbars='+p_scroll+',toolbar='+p_tool+',status='+p_status ;
    strProperties = strProperties + ',resizable='+p_resizable+',location='+p_location ;
    wbg_popup = window.open(p_url, p_nom, strProperties) ;
    wbg_popup.focus();
    return ;
}
//******************************************************************************
//**   Popup diaporama
//******************************************************************************
function f_popup_diaporama(p_chemin,code_diaporama)
{
    // Définition de la largeur et de la hauteur de la fenêtre, à modifier selon les cas
    LargeurFenetre = 400;
    HauteurFenetre = 350;
    // Calcul des coordonnées du point supérieur gauche de la fenêtre
    PixelsDepuisHaut = (screen.height - HauteurFenetre) / 2 ;
    PixelsDepuisGauche = (screen.width - LargeurFenetre) / 2 ;
    // Construction des paramètres du window.open
    ParametresOuverture = "width=" + LargeurFenetre + " ,height=" + HauteurFenetre + " ,top=" + PixelsDepuisHaut + " ,left =" + PixelsDepuisGauche ;
    // Ouverture de la fenêtre, à gérer ensuite comme n'importe quelle fenêtre (en utilisant son nom ;-))
    url_diaporama = p_chemin+"pages/diaporama.php?s_code="+code_diaporama+"&action=1";
    windowscreencenter = window.open(url_diaporama,"Diaporama",ParametresOuverture).focus() ;
} // f_popup_diaporama

//******************************************************************************
//**   f_affecte_valeur_champ
//******************************************************************************
function f_affecte_valeur_champ(p_form,p_champ_source,p_champ_cible,p_id)
{
    var form = document.forms[p_form];
    var cible = form.elements[p_champ_cible];
    if(p_id == 'id')
     {
         var source = document.getElementById(p_champ_source);
     }
     else
     {
        var source = form.elements[p_champ_source];
     }
    cible.value = source.value;
} // f_affecte_valeur_champ

//******************************************************************************
//**   f_affecte_valeur_champ_deux
//******************************************************************************
function f_affecte_valeur_champ_deux(p_form,p_champ_source,p_champ_cible_1,p_champ_cible_2,p_id)
{

    var form = document.forms[p_form];
    var cible_1 = form.elements[p_champ_cible_1];
    var cible_2 = form.elements[p_champ_cible_2];
    if(p_id == 'id')
     {
         var source = document.getElementById(p_champ_source);
     }
     else
     {
        var source = form.elements[p_champ_source];
     }
     var valeur=source.value;
     var valeur_tableau;
     valeur_tableau=valeur.split('-');
    cible_1.value = valeur_tableau[0];
    cible_2.value = valeur_tableau[1];
} // f_affecte_valeur_champ

//******************************************************************************
//**   Fonction de lecteur d'un cookie
//******************************************************************************
function getCookie(name)
{
    var cname = name + "=";
    var dc = document.cookie;

    if (dc.length > 0)
    {
        begin = dc.indexOf(cname);
        if (begin != -1)
        {
            begin += cname.length;
            end = dc.indexOf(";", begin);
            if (end == -1) end = dc.length;
            return unescape(dc.substring(begin, end));
         }
    }
} // getCookie

//******************************************************************************
//**   Fonction d'écriture d'un cookie : on passe en paramètre son nom, sa valeur, et
//**   une date d'expiration en milisecondes (1 jour = 1000 * 60 * 60 * 24)
//**
//**   Exemple :     var expdate = new Date ();
//**                   expdate.setTime (expdate.getTime() + (12 * 60 * 60 * 1000));
//**                   setCookie("memento",TexteCookie,expdate) ;
//**
//******************************************************************************
function setCookie(name, value, expires)
{
    document.cookie = name + "=" + escape(value) +
    ((expires != null) ? "; expires=" + expires.toGMTString() : "")
    + "; path=/";
} // setCookie

//******************************************************************************
//**   Fonction de recherche remplace (p_recherche est un regexp)
//******************************************************************************
function f_recherche_remplace(p_recherche,p_remplace,p_var)
{
    resultat=p_var.search(eval(p_recherche))
    if(resultat != -1)
    {
        p_var = p_var.replace(eval(p_recherche),p_remplace) ;
        p_var = f_recherche_remplace(p_recherche,p_remplace,p_var) ;
    }

    return p_var ;
} // f_recherche_remplace

//******************************************************************************
//**   RollOver Macromedia
//******************************************************************************
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}//RollOver Macromedia

//******************************************************************************
//**   Converti une date au format jjmmaa au format jj/mm/aaaa
//******************************************************************************
function f_date_formatage(p_date)
{
    resultat = p_date.search("/") ;

    if(resultat == -1)
    {
        jour = p_date.substr(0,2) ;
        mois = p_date.substr(2,2) ;
        annee = p_date.substr(4,2) ;

        if (annee < 10)
            annee = "20" + annee ;
        else
            annee = "19" + annee ;

        v_date = jour + "/" + mois + "/" + annee ;
    }
    else
        v_date = p_date ;

    return v_date ;
}

// f_listedyn
function f_listedyn(p_param,p_liste_1,p_champ_1,p_champ_2)
{
    //***************************** NE PAS EFFACER *****************************//
    /*menu=new Array() ;
    menu[1]=new Array() ;
    menu[1][0]=new Option("","") ;
    <select name="choix_table" onChange="f_listedyn(this.form,this.name,'tri_table','tri_champs')"
    <option value="Javascript:f_listedyn_change('form_commande','choix_table','tri_champs','menu',1)">*/
    //***************************** NE PAS EFFACER *****************************//

    if (eval("p_param."+p_liste_1+".selectedIndex") == 0)
    {
        eval("p_param."+p_champ_1+".value = \"\"") ;
        eval("p_param."+p_champ_2+".value = \"\"") ;
    }
    else
    {
        window.top.location.href = eval("p_param."+p_liste_1+".options["+eval("p_param."+p_liste_1+".selectedIndex")+"].value") ;
        eval("p_param."+p_champ_1+".value = p_param."+p_liste_1+".options["+eval("p_param."+p_liste_1+".selectedIndex")+"].text") ;
        eval("p_param."+p_champ_2+".value = \"\"") ;
    }
}// f_listedyn

// f_listedyn_change
function f_listedyn_change(p_form,p_champ_1,p_champ_2,p_var_tableau,z)
{
    for (a = eval("document." + p_form + "." + p_champ_2 + ".options.length-1") ; a>0 ; a--)
    {
        eval("document." + p_form + "." + p_champ_2 + ".options[a]=null") ;
    }

    for (a=0;a<eval(p_var_tableau+"["+z+"].length");a++)
    {
        eval("document." + p_form + "." + p_champ_2 + ".options["+a+"] = new Option('"+eval(p_var_tableau+"["+z+"]["+a+"].text")+"','"+eval(p_var_tableau+"["+z+"]["+a+"].value")+"')") ;
    }
    eval("document." + p_form + "." + p_champ_2 + ".selectedIndex = 0") ;
}// f_listedyn_change

//******************************************************************************
//** Teste si une valeur est un entier positif
//******************************************************************************
function f_TestEntierPositif(entree)
{
var seulement_ca ="0123456789";
for (a = 0; a < entree.length; a++)
{
if (seulement_ca.indexOf(entree.charAt(a))<0 ) return false;
}
return true;
} // fin f_TestEntierPositif

//******************************************************************************
//** Teste si une valeur contient au moins un chiffre
//******************************************************************************
function f_TestContientChiffre(entree)
{
var seulement_ca ="0123456789";
for (a = 0; a < entree.length; a++)
{
if (seulement_ca.indexOf(entree.charAt(a))>0 ) return true;
}
return false;
} // fin f_TestContientChiffre

//******************************************************************************
//** Test la validité d'une date, y compris l'adéquation mois / jour / année
//******************************************************************************
function f_TestDateEtendu(d) {

if (d == "") // si la variable est vide on retourne faux
return false;

e = new RegExp("^[0-9]{1,2}\/[0-9]{1,2}\/([0-9]{2}|[0-9]{4})$");

if (!e.test(d)) // On teste l'expression régulière pour valider la forme de la date
return false; // Si pas bon, retourne faux

// On sépare la date en 3 variables pour vérification, parseInt() converti du texte en entier
j = parseInt(d.split("/")[0], 10); // jour
m = parseInt(d.split("/")[1], 10); // mois
a = parseInt(d.split("/")[2], 10); // année

// Si l'année n'est composée que de 2 chiffres on complète automatiquement
if (a < 1000) {
if (a < 89) a+=2000; // Si a < 89 alors on ajoute 2000 sinon on ajoute 1900
else a+=1900;
}

// Définition du dernier jour de février
// Année bissextile si annnée divisible par 4 et que ce n'est pas un siècle, ou bien si divisible par 400
if (a%4 == 0 && a%100 !=0 || a%400 == 0) fev = 29;
else fev = 28;

// Nombre de jours pour chaque mois
nbJours = new Array(31,fev,31,30,31,30,31,31,30,31,30,31);

// Enfin, retourne vrai si le jour est bien entre 1 et le bon nombre de jours, idem pour les mois, sinon retourn faux
return ( m >= 1 && m <=12 && j >= 1 && j <= nbJours[m-1] );
}

//******************************************************************************
//*** permet de tester si une date est bien dans le futur par rapport à la date du jour
//******************************************************************************
function f_TestDateFutur(d)
{
    aujourdhui = new Date() ;
    d = document.form_creation.s_date_maj.value ;
    j = parseInt(d.split("/")[0], 10); // jour
    m = parseInt(d.split("/")[1], 10); // mois
    a = parseInt(d.split("/")[2], 10); // année
    datemaj = new Date(a,m-1,j,23,59,59) ;

    if (datemaj.getTime() < aujourdhui.getTime())
        return false;

    return true;
}   //f_TestDateFutur

//*****************************************************
//** Affiche ou masque un élément et change une image
//** en correspondance (facultatif)
//****************************************************
function f_Affiche(p_Element,p_Image,p_Image2,p_chemin)
{

    var elem = document.getElementById(p_Element);

    if( elem.style.display == '')
    {
        elem.style.display='none';
        if (p_Image != '') {
            document.images[p_Image].src = p_chemin + "img/display/" + p_Image2 + ".gif";
        }
    }
    else
    {
        elem.style.display='';
        if (p_Image != '') {
            document.images[p_Image].src = p_chemin + "img/display/" + p_Image2 + "2.gif";
        }
    }
}
//*****************************************************
//** Affiche ou masque un groupe d'éléments et change une image
//** en correspondance (facultatif)
//****************************************************
function f_Affiche2(p_Element,p_Image,p_Image2,p_chemin)
{
    for (i = 1 ; i < p_Element.length ; i++)
    {

        var elem = document.getElementById(p_Element[i]);

        if (elem == null)
            continue;

        if( elem.style.display == '')
        {
            elem.style.display='none';
            if (p_Image != '') {
            document.images[p_Image].src = p_chemin + "img/display/" + p_Image2 + ".gif";
            }
        }
        else
        {
            elem.style.display='';
            if (p_Image != '') {
            document.images[p_Image].src = p_chemin + "img/display/" + p_Image2 + "2.gif";
            }
        }
    }
}

// Cette fonction est utilisé pour les boutons "suite" qui affichent leur contenu sur une ligne inférieure.

function ChangeText(text, p_chemin, tableau_valeur, ligne, colonne)
{

var elemTR1 = document.getElementById("L" + ligne);
var elemTD1 = document.getElementById("ligne_aveugle" + ligne);
var elemImg1 = document.getElementById("img_" + colonne + "_" + ligne);
if (elemTD1.innerHTML.indexOf(text) == -1)
    {
for (i = 0 ; i < tableau_valeur.length ; i++) //RAZ
{
        var elemTR = document.getElementById("L" + ligne);
        var elemTD = document.getElementById("ligne_aveugle" + ligne);
        var elemImg = document.getElementById("img_" + tableau_valeur[i] + "_" + ligne);
        elemTD.innerHTML = '';
        elemImg.src = p_chemin+"suite.gif";
        elemTR.style.display='none';
    }

    elemTD1.innerHTML = "<img src='"+p_chemin+"suite2.gif' border='0' align='bottom'>"+elemImg1.alt;
    elemTR1.style.display='';
    elemImg1.src = p_chemin+"suite2.gif";
    }

else
{
    for (i = 0 ; i < tableau_valeur.length ; i++) //RAZ
{
        var elemTR = document.getElementById("L" + ligne);
        var elemTD = document.getElementById("ligne_aveugle" + ligne);
        var elemImg = document.getElementById("img_" + tableau_valeur[i] + "_" + ligne);
        elemTD.innerHTML = '';
        elemImg.src = p_chemin+"suite.gif";
        elemTR.style.display='none';
    }
  }
}

// Fonction pour preloader des images. Utilisée pour les regroupements / degroupements et les icones de texte "suite"...

function preload_em() {
img_1 = new Image
img_2 = new Image
img_3 = new Image
img_4 = new Image

img_1.src = "../img/defaut/suite2.gif"
img_2.src = "../img/defaut/suite.gif"
img_3.src = "../../themes/defaut/img/display/plus2.gif"
img_4.src = "../../themes/defaut/img/display/plus.gif"

}

//************************************************************************//
//*************** Fonctions de protection des emails**********************//
//************************************************************************//

// echange un caractere
function replaceChar(theString, oldChar, newChar) {
    var i = 0;
    var j = theString.length;

    for(i=0; i < theString.length; i++) {
        if(theString.charAt(i) == oldChar) {
            theString = theString.substring(0,i) + newChar +
            theString.substring(i+1,theString.length);
            if(i > j) { // loop-killer, just in case we mess with the code
                break;
            }
        }
    }
return theString;
}

// lien mailto avec ("mail|domaine.com")
function protected_mail_display(mail){
    if(mail.length !=0){

        var i=0;
        for (i=0;i<=mail.length;i++){
            if (mail.charAt(i) == "|"){
                mail = replaceChar(mail,"|","@");
            }
        }
            document.write("<a href=\"mailto:"+mail+"\">"+mail+"</a>");
    }

}
// lien mailto avec ("mail|domaine.com")
function protected_mail_display_text(mail,text,classss){


    if(mail.length !=0){

        if (text == mail) { text = "" ;}
        var i=0;
        for (i=0;i<=mail.length;i++){
            if (mail.charAt(i) == "|"){
                mail = replaceChar(mail,"|","@");
            }
        }
        if (text == "") { text = mail ;}
            document.write("<a class=\""+classss+"\" href=\"mailto:"+mail+"\">"+text+"</a>");
    }
}

// lien mailto avec ("mail|domaine.com",subject)
// sans le texte correspondant
// util pour placer des images
// !!!  fermer la balise </a>!!!

function protected_mail_display2(mail,subject){

    if(mail.length !=0){

        var i=0;
        for (i=0;i<=mail.length;i++){
            if (mail.charAt(i) == "|"){
                mail = replaceChar(mail,"|","@");
            }
        }
        document.write("<a href=\"mailto:"+mail+"?subject="+subject+"\">");
    }

}

// lien mailto avec ("mail|domaine.com",subject)
// avec le texte correspondant
function protected_mail_display3(mail,subject){

    if(mail.length !=0){

        var i=0;
        for (i=0;i<=mail.length;i++){
            if (mail.charAt(i) == "|"){
                mail = replaceChar(mail,"|","@");
            }
        }
        document.write("<a href=\"mailto:"+mail+"?subject="+subject+"\">"+mail+"</a>");
    }

}
// -------------------------------------------------------------------------------------------------------------------
// Fonctions de lecture et d'écriture d'un cookie
// -------------------------------------------------------------------------------------------------------------------

// Fonction de lecteur d'un cookie
function f_getCookie(name)
{

var cname = name + "=";
var dc = document.cookie;
//alert(dc.length);
if (dc.length > 0)
{
begin = dc.indexOf(cname);
if (begin != -1)
{
begin += cname.length;
end = dc.indexOf(";", begin);
    if (end == -1) {
        end = dc.length;
        return unescape(dc.substring(begin, end));
    }
}
return null;
}
}
// Fonction d'écriture d'un cookie : on passe en paramètre son nom, sa valeur, et
// une durée de validité en minutes
function f_setCookie(name, value, duree)
{
    var expires=new Date() ;
    expires.setTime(expires.getTime() + (1000 * 60 * duree)) ;
    document.cookie = name + "=" + escape(value) +
    ((expires != null) ? "; expires=" + expires.toGMTString() : "")
    + "; path=/";
}

function opencarte(url){
        if(screen.width >= 1024){
            var w = 1020;
            var h = 642;
        }
        else{
            var w = 796;
            var h = 474;
        }
        window.open(url,'','width='+w+', height='+h+', scrollbars=0, resizable=yes, menubar=yes');
}

function infoslegales(url){
        window.open(url,'','width=520, height=650, scrollbars=yes, resizable=yes, menubar=no');
}
function openmeteo(){
    if(document.getElementById('Layer1').style.display == 'block') {
        document.getElementById('Layer1').style.display = 'none';
    }else{
        document.getElementById('Layer1').style.display = 'block';
    }
}

function popup() {
    alert('(^_^)');
}

// changement de la racine sur le select en haut de page dans l'entete.inc.php.
// chemin (parametre pour avoir l'url du site)
function change_index (chemin){
    var page_cible = chemin + "index.php?r="+document.getElementById('choix_index').value;
    document.getElementById('hidden_r').value=document.getElementById('choix_index').value;

    document.getElementById('form_choix_index').action=page_cible;
    //alert ("action="+document.getElementById('form_choix_index').action);
    document.getElementById('form_choix_index').submit();
}

// ouvre le lien choisi dans une nouvelle fenetre.
function ouvre_lien (){
    //alert(document.getElementById('choix_lien').value);
    if ("" != document.getElementById('choix_lien').value){
        var tab_lien = document.getElementById('choix_lien').value.split("##");
        if (tab_lien[1] == "_Blank") {
            window.open(tab_lien[0]);
        }
        if (tab_lien[1] == "_Self") {
            window.location = tab_lien[0];
        }
    }
}

 /*! \brief Enlève les espaces avant / après une chaîne
* description détaillée
* \author ablavot (en fait Olivier Brouckaert, soyons honnête)
* \param $p_Chaine La chaîne...
* \return La chaîne sans espaces avant et après
*/
function f_Trim(p_Chaine)
{
  if (p_Chaine != null) {
    return p_Chaine.replace(/(^\s*)|(\s*$)/g,'');
  } else {
    return "" ;
  }
} // f_Trim

/*
* -------------------------------------------------------------------------------------------------------------------------------------------------------------
* -------------------------------------------------------------------------------------------------------------------------------------------------------------
*								Début des fonctions captcha-Ajax
* -------------------------------------------------------------------------------------------------------------------------------------------------------------
* -------------------------------------------------------------------------------------------------------------------------------------------------------------
*/

/*! \brief f_verifier_captcha: fonction qui sert à faire une requête HTTP asynchrone en utilisant les fonctionalités Ajax de
* la librairie prototype.js
*
* \author akahlaoui <céation de la fonction>
*/

function f_verifier_captcha(serveur) {
    var url = serveur + 'lib/captcha/verifier_captcha.php';


    //var pars = 'code_captcha=' + $F($('s_code_captcha'));

    var  pars = 'code_captcha=' + document.getElementById('s_code_captcha').value;

    //alert(pars);

    var myRequest = new Ajax.Request(url, {
            method: 'get',
            parameters: pars,
            onSuccess: function (transport) {
            xmlResponse = transport.responseXML;
            // obtenir la racine du document XML
            xmlDocumentElement = xmlResponse.documentElement;
            // récupérer le texte du message, qui est stocké dans le premier enfant
            reponse_serveur = xmlDocumentElement.firstChild.data;
            // vérifier la réponse du serveur et mettre à jour un flag qui sera utilisé
            // par la fonction f_captcha_est_correct



            if (reponse_serveur == "OK")
                document.getElementById("h_drapeau_captcha").value = 'true';
            else
                document.getElementById("h_drapeau_captcha").value = 'false';
        }


    });
}

/*! \brief bon_captcha: fonction qui sert à tester l'exactitude de la saisie du code captcha
*
* fonction qui sert à tester l'exactitude de la saisie du code captcha
* \author akahlaoui <céation de la fonction>
* \return retourne un boulean
*/
function f_captcha_est_correct() {
    if (document.getElementById("h_drapeau_captcha").value == 'true')
        return true;
    else
        return false;
}

function f_init_flag_captcha() {
    document.getElementById("h_drapeau_captcha").value = 'false';
}

/*
* -----------------------------------------------------------------------------------------
* -----------------------------------------------------------------------------------------
*								Fin des fonctions captcha-Ajax
* -----------------------------------------------------------------------------------------
* -----------------------------------------------------------------------------------------
*/

/*-----------------------------------------------------------------------------------------
*------------------------------------------------------------------------------------------
*								Début f_submit_recherche_ultra_rapide(...)
*------------------------------------------------------------------------------------------
*------------------------------------------------------------------------------------------
/*! \brief f_submit_recherche_ultra_rapide: fonction qui sert à appeler le script de recherche
*
* \author akahlaoui <céation de la fonction>
* \param chemin_script_action :		chemin de l'administration
* \param table nom de la table:		dans laquelle on effectuera la recherche
*/
function f_submit_recherche_ultra_rapide(chemin_script_action, table) {
    var erreurpresente = false ;
    var msgerreur = "Les erreurs suivantes ont été rencontrées dans le formulaire :\n\n" ;
    var obligatoire = false ;

    if (document.recherche_tres_rapide_tables.s_ToutChercher.value == "")
    {
        erreurpresente = true ;
        msgerreur = msgerreur + "- Vous devez remplir le champ de recherche\n" ;
    }
    if (document.recherche_tres_rapide_tables.liste_recherche_ultra_rapide_tables.value == "none")
    {
        erreurpresente = true ;
        msgerreur = msgerreur + "- Vous devez choisir une table\n" ;
    }
    // soumission du formulaire
    if (erreurpresente == false)
    {
        chemin_script_action += table+"/liste.php";
        document.recherche_tres_rapide_tables.action = chemin_script_action;
        document.recherche_tres_rapide_tables.submit();
    }
    else
    {
        msgerreur = msgerreur + "\nMerci de corriger votre saisie et de soumettre à nouveau le formulaire." ;
        alert(msgerreur) ;
    }
}
/*-----------------------------------------------------------------------------------------
*								Fin f_submit_recherche_ultra_rapide(...)
*------------------------------------------------------------------------------------------*/

/*-----------------------------------------------------------------------------------------
*------------------------------------------------------------------------------------------
*								Début f_submit_creation_ultra_rapide(...)
*------------------------------------------------------------------------------------------
*------------------------------------------------------------------------------------------*/

/*! \brief f_submit_creation_ultra_rapide: fonction qui sert à appeler le script de création
* d'un nouvel enregistrement pour n'importe quelle table à partir de la page d'accueil
*
* \author akahlaoui <céation de la fonction>
* \param chemin_script_action :		chemin de l'administration
* \param table nom de la table:		dans laquelle on effectuera la recherche
*/
function f_submit_creation_ultra_rapide(chemin_script_action, table) {
    var erreurpresente = false ;
    var msgerreur = "Les erreurs suivantes ont été rencontrées dans le formulaire :\n\n" ;
    var obligatoire = false ;

    if (document.recherche_tres_rapide_tables.liste_recherche_ultra_rapide_tables.value == "none")
    {
        erreurpresente = true ;
        msgerreur = msgerreur + "- Vous devez choisir une table\n" ;
    }
    // soumission du formulaire
    if (erreurpresente == false)
    {
        chemin_script_action += table+"/modification.php?s_Creation_Nouvel_Enregistrement=1";
        window.location.href = chemin_script_action;
    }
    else
    {
        msgerreur = msgerreur + "\nMerci de corriger votre saisie et de soumettre à nouveau le formulaire." ;
        alert(msgerreur) ;
    }
}

/*-----------------------------------------------------------------------------------------
*								Fin f_submit_creation_ultra_rapide(...)
*------------------------------------------------------------------------------------------*/

/*-----------------------------------------------------------------------------------------
*------------------------------------------------------------------------------------------
*								Début f_mettre_par_defaut(...)
*------------------------------------------------------------------------------------------
*------------------------------------------------------------------------------------------

/*! \brief Mettre un élément d'une liste déroulante comme élément par défaut
*
* la fonction cherche, dans une liste déroulante, un élément et le met par séléctionné par défaut
*
* \author akahlaoui
* \param liste 		: l'élément liste
* \param element	: valeur de l'option
*
*/
function f_mettre_par_defaut(liste, element) {
    for (var i = 0; i < liste.length; i++) {
        if (liste.options[i].value == element) {
            liste.selectedIndex = i;
            break;
        }
    }
}
/*-----------------------------------------------------------------------------------------
*								Fin f_mettre_par_defaut(...)
*------------------------------------------------------------------------------------------*/

/*-----------------------------------------------------------------------------------------
*------------------------------------------------------------------------------------------
*				Début fonctions Bulle de Log
*------------------------------------------------------------------------------------------
*------------------------------------------------------------------------------------------

/*! \brief Affiche la bulle
*
*
* \author agayraud
* \param msge 		: message à afficher
* \param evt : event, l'évenement qui a déclenché l'ouverture de la bulle
*/
function f_log_valeur_bulle(p_msg,p_evt){


 var xfenetre,yfenetre,xpage,ypage,element=null;
 element=document.getElementById('tip_log')
 xfenetre = p_evt.clientX ;yfenetre = p_evt.clientY ;
 xpage=xfenetre ; ypage=yfenetre	;
 if(p_evt.pageX) xpage = p_evt.pageX ;
 if(p_evt.pageY) ypage  = p_evt.pageY ;

 if(element)
    {
        element.innerHTML=p_msg;
        bulleStyle = element.style;
        xpage=xpage+8;
        ypage=ypage+5;

        bulleStyle.left=xpage+'px'; bulleStyle.top=ypage+'px';
        bulleStyle.display="";
    }
}

/* ! \brief Fermer la bulle
*
*
* \author agayraud
*/

function f_log_valeur_bulle_ferme(){
  document.getElementById('tip_log').style.display="none";
}
/*-----------------------------------------------------------------------------------------
*------------------------------------------------------------------------------------------
*				Fin  fonctions Bulle de Log
*------------------------------------------------------------------------------------------
*------------------------------------------------------------------------------------------
*/

/*--------------------------------------------------------------------------------
*---------------------------------------------------------------------------------
*   Fonctions qui retournent les dimensions de l'écran et du document en cours
*---------------------------------------------------------------------------------
*---------------------------------------------------------------------------------
*/
function pageWidth()
{
    return window.innerWidth != null? window.innerWidth : document.documentElement && document.documentElement.clientWidth ?       document.documentElement.clientWidth : document.body != null ? document.body.clientWidth : null;
}
function pageHeight()
{
    return  window.innerHeight != null? window.innerHeight : document.documentElement && document.documentElement.clientHeight ?  document.documentElement.clientHeight : document.body != null? document.body.clientHeight : null;
}

function posLeft()
{
    return typeof window.pageXOffset != 'undefined' ? window.pageXOffset :document.documentElement && document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ? document.body.scrollLeft : 0;
}

function posTop()
{
    return typeof window.pageYOffset != 'undefined' ?  window.pageYOffset : document.documentElement && document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ? document.body.scrollTop : 0;}

function posRight()
{
    return posLeft()+pageWidth();
}

function posBottom()
{
    return posTop()+pageHeight();
}

/*--------------------------------------------------------------------------------
*---------------------------------------------------------------------------------
*                          Fonctions fenêtre popup liste
*---------------------------------------------------------------------------------
*---------------------------------------------------------------------------------
*/
/*! \brief Création d'une fenêtre AJAX à la position de la souris et remplissage à partir d'un programme
*
* La fonction va créer la fenêtre et la remplir à partir du résultat du programme passé en paramètre.
* Il va tester l'existence de cette fenêtre et la détruire au besoin (seulement si au moins un des paramètres
* passés est différent, sinon il ne fait rien.
* \author jboussaa
* \param p_programme_contenu le programme (PHP ou non) qui va renvoyer le contenu - texte - de la fenêtre (en absolu - http://.. - ou relatif)
* \param p_parametres_programme paramètres à ajouter au programme ci-dessus pour constituer l'URL (fait par la fonction AJAX de prototype)
* \return true si tout s'est bien passé, false en cas d'erreur
*/
var largeur = 0;
var hauteur = 0;
var popupListe = new Array();
var popupLock = new Array();
var sourisX = 0;
var sourisY = 0;

function f_enregistreSouris(p_evenement)
{
    sourisX = Event.pointerX(p_evenement);
    sourisY = Event.pointerY(p_evenement);
}

// modification de Rajaa Mah remonté au modèles pour pouvoir regénérer sans problème
function f_ajax_creer_fenetre_1(p_programme_contenu, p_parametres_programme,fenetre_ajax, p_largeur, p_hauteur, p_evenement, p_element, titre)
{
if (popupLock[p_element]) return;
    largeur = p_largeur;
    hauteur = p_hauteur;


    if (popupListe[p_element])
    {
        f_positionner_fenetre_1(p_evenement, p_element, fenetre_ajax);
        return;
    }

    id = p_element;
    element_title = "popupid"+id;
    element_fenetre = "fenetre"+id;
    popupLock[id] = true;
    //Si la fenêtre est créée et les parametres passés sont différent.

    //Instancier une popup
    if (fenetre_ajax == 0)
        popupListe[id] = new Window({id: "popupid"+id, className: "alphacube", title: titre, width:largeur, top:0, left: 1, parent:document.body,minimizable: false,maximizable: false,closable : false, draggable:false});
    //Instancier une fenêtre fiche
    else
    {
        popupListe[id] = new Window({id: "fenetre"+id, className: "alphacube", title: titre, width:largeur, top:0, left: 1, parent:document.body,minimizable: false,maximizable: false,closable : true, draggable:true});
        popupListe[id].setDestroyOnClose();
    }
    //Caracteristiques de la popup

    popupLock[id] = false;
    f_positionner_fenetre_1(p_evenement, p_element, fenetre_ajax);

    //Requete ajax pour remplir la popup
    var url = p_programme_contenu;
    var pars = p_parametres_programme;
    var myAjax = new Ajax.Request( url, { method: 'post', parameters: pars, encoding:'ISO-8859-1',
        onSuccess: function(transport)
    {
        popupListe[id].getContent().innerHTML = transport.responseText;
    }
    });
    onFailure: return false;
    //Fin requete ajax
} //Fin f_ajax_creer_fenetre_1

// Création,remplissage et affichage du popup
function f_ajax_creer_fenetre(p_programme_contenu, p_parametres_programme,fenetre_ajax, p_largeur, p_hauteur, p_evenement, p_element , p_chemin_img)
{
if (popupLock[p_element]) return;
    largeur = p_largeur;
    hauteur = p_hauteur;

    //Fermer toutes les autres fenêtres
    /*for(cpt_element=0;cpt_element<popupLock.length;cpt_element++)
    {
        if(cpt_element != p_element) popupListe[cpt_element].hide();
    }*/

    if (popupListe[p_element])
    {
        f_positionner_fenetre(p_evenement, p_element, fenetre_ajax);
        return;
    }

    var id = p_element;
    element_title = "popupid"+id;
    element_fenetre = "fenetre"+id;
    popupLock[id] = true;

    //Si la fenêtre est créée et les parametres passés sont différent.

    //Instancier une popup
    if (fenetre_ajax == 0)
        popupListe[id] = new Window({id: "popupid"+id, className: "alphacube", title: "", width:largeur, height:hauteur, top:0, left: 1, parent:document.body,minimizable: false,maximizable: false,closable : false, draggable:false});
    //Instancier une fenêtre fiche
    else
    {
        popupListe[id] = new Window({id: "fenetre"+id, className: "alphacube", title: "", width:largeur, height:hauteur, top:0, left: 1, parent:document.body,minimizable: false,maximizable: false,closable : true, draggable:true});
        popupListe[id].setDestroyOnClose();
    }

    //Caracteristiques de la popup
    popupLock[id] = false;
    //f_positionner_fenetre(p_evenement, p_element, fenetre_ajax);

    //Requete ajax pour remplir la popup
    var url = p_programme_contenu;
    var pars = p_parametres_programme;
    var myAjax = new Ajax.Request( url, { method: 'post', parameters: pars, encoding:'ISO-8859-1',
        onSuccess: function(transport)
    {
        document.getElementById(popupListe[id].getId()).style.filter="alpha(opacity=100)";
        document.getElementById(popupListe[id].getId()).style.opacity="1";
        popupListe[id].getContent().innerHTML = transport.responseText;
    },
        onCreate : function()
    {

        document.getElementById(popupListe[id].getId()).style.filter="alpha(opacity=80)";
        document.getElementById(popupListe[id].getId()).style.opacity="0.8";
        popupListe[id].getContent().innerHTML = "<table height='100%' width='100%'><tr><td style='border: 0px; vertical-align: middle;text-align:center;'><img src='"+p_chemin_img+"ajax_loader_div_map.gif'/></a></td></tr></table>";
    }

    });
    onFailure: return false;
    //Fin requete ajax

} //Fin f_ajax_creer_fenetre

/* Destruction de la fenêtre créée.
*
* La fonction va détruire la fenêtre si elle existe, sinon elle fait rien
*
*/
function f_detruire_fenetre(p_element)
{
    // Détruire popup s'il existe
    if (popupListe[p_element])
    {
        popupLock[p_element] = true;
        popupListe[p_element].toBack();
        popupListe[p_element].hide();
        popupLock[p_element] = false;
    }
} // f_detruire_fenetre

/*
*	Positionnement d'une fenêtre existante sous (ou sur) la souris
*/
function f_positionner_fenetre_1(p_evenement, p_element, p_fenetre)
{
         var leftII = 0;
         var topII = 0;
         if (popupLock[p_element])
             return;
         if (!popupListe[p_element])
             return;
         popupLock[p_element] = true;
         var abscisseII = sourisX;
         var ordonneeII = sourisY;

         var largeur_popup = popupListe[p_element].getSize().width;
         var hauteur_popup = popupListe[p_element].getSize().height;
        if (p_fenetre == 0)
        {
            //Position du popup sur la bordure de l'eran (a droite)
            if(largeur_popup > (pageWidth()- abscisseII + posLeft() ))
                leftII =abscisseII - largeur_popup;
            else
                leftII =abscisseII;

            //Position du popup sur la bordure de l'ecran (en bas)
            if(hauteur_popup  > (pageHeight() - ordonneeII + posTop() - 20))
                topII = ordonneeII - hauteur_popup-40;
            else
                topII = ordonneeII + 10;
        }
        else
        {
            //Position du popup sur la bordure de l'eran (a droite)
            if(largeur_popup > (pageWidth()- abscisseII + posLeft() ))
                leftII =abscisseII - largeur_popup;
            else
                leftII =abscisseII;

            //Position du popup sur la bordure de l'ecran (en bas)
            if(hauteur_popup  > (pageHeight() - ordonneeII + posTop() - 20))
                topII = ordonneeII - hauteur_popup-10;
            else
                topII = ordonneeII + 25;
        }

        //Afficher la popup au bon endroit
        popupListe[p_element].setLocation(topII,leftII);
        popupListe[p_element].showCenter();
        popupListe[p_element].toFront();
        popupLock[p_element] = false;

} // f_positionner_fenetre_1

/* Positionnement de la fenêtre.
*
* La fonction positionne la fenêtre selon les coordonnées de la souris, adapter l'affichage par rapport aux
* bordures (à droite et en bas), et afficher la popup au bon endroit.
*
*/
function f_positionner_fenetre(p_evenement, p_element, p_fenetre)
{
         var leftII = 0;
         var topII = 0;
         if (popupLock[p_element])
             return;
         if (!popupListe[p_element])
             return;
         popupLock[p_element] = true;
         var abscisseII = sourisX;
         var ordonneeII = sourisY;

         var largeur_popup = popupListe[p_element].getSize().width;
         var hauteur_popup = popupListe[p_element].getSize().height;
        if (p_fenetre == 0)
        {
            //Position du popup sur la bordure de l'eran (a droite)
            if(largeur_popup > (pageWidth()- abscisseII + posLeft() ))
                leftII =abscisseII - largeur_popup;
            else
                leftII =abscisseII;

            //Position du popup sur la bordure de l'ecran (en bas)
            if(hauteur_popup  > (pageHeight() - ordonneeII + posTop() - 20))
                topII = ordonneeII - hauteur_popup-40;
            else
                topII = ordonneeII + 10;
        }
        else
        {
            //Position du popup sur la bordure de l'eran (a droite)
            if(largeur_popup > (pageWidth()- abscisseII + posLeft() ))
                leftII =abscisseII - largeur_popup;
            else
                leftII =abscisseII;

            //Position du popup sur la bordure de l'ecran (en bas)
            if(hauteur_popup  > (pageHeight() - ordonneeII + posTop() - 20))
                topII = ordonneeII - hauteur_popup-10;
            else
                topII = ordonneeII + 25;
        }

        //Afficher la popup au bon endroit
        popupListe[p_element].setLocation(topII,leftII);
        popupListe[p_element].show();
        popupListe[p_element].toFront();
        popupLock[p_element] = false;

} // f_positionner_fenetre

function reset_field(field)
{
    switch (field.wbg_type) {
        case "CommentaireHTML" :
            if (document.getElementById(field.id+"_iframe").nodeName=="DIV")
                FCKeditorAPI.GetInstance(field.id).SetHTML("");
            else
                reset_htmlarea(field);
            break;
        case "CommHTMLPopUp" :
            reset_htmlpopup(field);
            break;
        default :
            field.value = "";
            break;
    }
}

/*! \brief Retourn la nom de la table à partir d'une URL
*
*
* \author 			akahlaoui
* \param 			url			: Url de la page en cours
* \param 			admin_site	: specifie si l'URl correspond a l'administration (valeur 'admin') ou front (valeur 'site')
* \return 			nom de la table
*
*/
function f_extraire_nomTable_Url(url, admin_site){
    var reg = new RegExp("[\/]+", "g");
    var a_dossiers = url.split(reg);
    if (admin_site = "site")
        v_comparaison = "pages";
    else
        v_comparaison = "administration";
    for (i=0; i<a_dossiers.length; i++){
        if (a_dossiers[i] == v_comparaison)
            var index_table = i+1;
    }
    return a_dossiers[index_table];
}

/*! \brief fonction à appeler onkeypress, pour annuler tout autre caractère sauf les chiffres et le retour
*
*
* \author 			shajji,obasaita
* \param 			evt			: l'evenement
* \return 			true si chiffre ou retour, false sinon
*
*/
function verifIsNum(evt){
var charCode = (evt.which) ? evt.which : event.keyCode;

    if((charCode >= 48 && charCode <=57) || charCode==8)
    {
         return true;
    }else
    {
        return false;
    }

}

//! \brief Enlève les accents d'une chaine de caractère
function no_accent (my_string) {
var new_string = "";
var pattern_accent = new Array("é", "è", "ê", "ë", "ç", "à", "â", "ä", "î", "ï", "ù", "ô", "ó", "ö");
var pattern_replace_accent = new Array("e", "e", "e", "e", "c", "a", "a", "a", "i", "i", "u", "o", "o", "o");
if (my_string && my_string!= "")
{
    new_string = preg_replace (pattern_accent,pattern_replace_accent, my_string);
}
return new_string;
}

function preg_replace (array_pattern, array_pattern_replace, my_string) {
        var new_string = String (my_string);
        for (i=0; i<array_pattern.length; i++)
        {
                var reg_exp= RegExp(array_pattern[i], "gi");
                var val_to_replace = array_pattern_replace[i];
                  new_string = new_string.replace (reg_exp, val_to_replace);
        }
        return new_string;
}
// modification remonté au modèles pour pouvoir regénérer sans problème

 /*! \brief Fonction pour changer la couleur de fond d'un élément de page
*
* Faite à l'origine pour un tr
* \author Alexis (passage en fonctions.js, renommée de "changecouleur" en "f_ChangeCouleur")
* \param id Id de l'élément à modifier
* \param couleur de l'élément
*/
function f_ChangeCouleur(id,couleur){

        var mon_id= document.getElementById(id);
        mon_id.style.backgroundColor = couleur;

} // Fin f_ChangeCouleur

/*! \regle de calcule de prix total
*
* prix , prix pour m2
* surface, surface disponible
* \author sdiraa,
*/

function f_regle_calcule(prix,surface)
{
    if( surface > degressivite_m2)
    {
        surface_sup = surface-degressivite_m2
        var prix_ht = (prix*degressivite_m2)+ (degressivite_taux*surface_sup*prix);
    }
    else
    {
        var prix_ht = prix*surface;
    }

    if( prix_ht < prix_min )
    {
        prix_ht = prix_min;
    }

    if( prix_ht > prix_max )
    {
        prix_ht = prix_max;
    }

    prix_ht = f_nb_format(prix_ht, 2, ' ', '.', '', '', '-', '') ;

    return 	prix_ht;
}

/*! \brief Formatage d'un nombre pour l'affichage
*   copyright Stephen Chapman 24th March 2006, 22nd August 2008
*   permission to use this function is granted provided
*   that this copyright notice is retained intact
* \author http://www.toutjavascript.com, Alexis
* \param num : nombre à formater
* \param dec : nombre de décimales
* \param thou : séparateur des milliers
* \param pnt : séparateur décimal (. ou ,)
* \param curr1 : monnaie à gauche du nombre
* \param curr2 : monnaie à droite du nombre
* \param n1 : symbole négatif à gauche
* \param n2 : symbole négatif à droite
*/
function f_nb_format(num,dec,thou,pnt,curr1,curr2,n1,n2)
{
    var x = Math.round(num * Math.pow(10,dec));
    if (x >= 0) n1=n2='';
    var y = (''+Math.abs(x)).split('');
    var z = y.length - dec;
    if (z<0) z--;
    for(var i = z; i < 0; i++) y.unshift('0');
    if (z<0) z = 1; y.splice(z, 0, pnt);
    if(y[0] == pnt) y.unshift('0');
    while (z > 3)
    {
        z-=3;
        y.splice(z,0,thou);
    }
    var r = curr1+n1+y.join('')+n2+curr2;
    return r;
} // f_nb_format

/*! \brief Fonction qui fait appel à la fonction urchinTracker pour les statistiques
*
* \author Imane CHOKAIRI
* \param p_lelien : URL de la page
* \param p_lien_interne1_externe2 : Variable pour savoir si c'est un lien externe ou interne
*/
function f_stats_sur_lien(p_lelien,p_lien_externe1_interne2)
{
    // Remplacement de "http://www.immoprimo.com" par le vide dans l'URL
    var reg = new RegExp(C_CHEMIN, "gi");
    p_lelien = p_lelien.replace(reg,"");

    // Si lien externe
    if(p_lien_externe1_interne2 == 1)
    {
        // Remplacement de "http://" par le vide dans l'URL
        var reg = new RegExp("http://", "gi");
        p_lelien = p_lelien.replace(reg,"");
        // Appel de la fonction Google
        urchinTracker('/pages/lien.php?s_lien=' + p_lelien);
    }
    else //Si lien interne
    {
        urchinTracker(p_lelien);
    }
}

/*! \brief Nombre de jours entre deux dates (au format jj/mm/aaaa)
*
* \author 			alexis
* \param 			p_date1	: date 1
* \param 			p_date2	: date 2
* \return 			le nombre de jours (positif, nul ou négatif)
*
*/
function f_nombre_jours(p_date1, p_date2)
{
    jour = p_date1.substr(0,2) ;
    mois = p_date1.substr(3,2) ;
    annee = p_date1.substr(6,4) ;
    date1 = new Date(annee, mois-1 , jour) ;

    jour = p_date2.substr(0,2) ;
    mois = p_date2.substr(3,2) ;
    annee = p_date2.substr(6,4) ;
    date2 = new Date(annee, mois-1 , jour) ;

    return (date1.getTime() - date2.getTime()) / (1000 * 60 * 60 * 24) ;

} // f_nombre_jours

/*
* Teste si on est dans le navigateur Internet Explorer 6
*
* return True si c'est le cas ; False sinon
*
*/
function f_detecte_ie6()
{
    var strChUserAgent = navigator.userAgent;
    var intSplitStart = strChUserAgent.indexOf("(",0);
    var intSplitEnd = strChUserAgent.indexOf(")",0);
    var strChStart = strChUserAgent.substring(0,intSplitStart);
    var strChMid = strChUserAgent.substring(intSplitStart, intSplitEnd);

    if(strChMid.indexOf("MSIE 6")!=-1)
    {
        return true;
    }
    else
    {
        return false;
    }
} // f_detecte_ie6

/*
* Teste si une variable est définie
*
* p_Variable La variable à tester
* return True si la variable est définie, False sinon
*/
function f_IsDefined(p_Variable)
{
    return (typeof(window[p_Variable]) == "undefined")?  false: true;
} //f_IsDefined

/* Equaero */
function DoUrl(){
    document.location = C_CHEMIN + 'pages/wbg_utilisateur/creation.php?s_wbg_menu=8&s_Creation_Nouvel_Enregistrement=1&l=fr&r=1&t=defaut';
}