
//*********************************************************
//*******------------------ JavaScript LNI ---------------*************
//*********************************************************


/* ---- formulaire de recherche - coche toutes les checkbox quand "plus de critères" est ouvert ---- */
function cocheTout(conteneur){

    // met tous les input du conteneur dans un tableaux
    monTab = document.getElementById(conteneur).getElementsByTagName('input');

    // calcul la longueur du tableau
    longueur = monTab.length;

    // si la checkbox de référence (monTab[0])  est cochée, on coche tout
    if(monTab[0].checked == true){
        for(i=0; i< longueur; i++){
            monTab[i].checked = true;
        }
    }

    // si la checkbox de référence (monTab[0])  est décochée, on décoche tout
    if(monTab[0].checked == false){
        for(i=0; i< longueur; i++){
            monTab[i].checked = false;
        }
    }

}

/*  ---- formulaire de recherche - affichage de liste déroulante ---- */
function selectactive(obj,liste){

    aaa = document.getElementById(liste); // ID de la liste à afficher
    if(aaa.style.display == 'block') // on cache la liste si celle ci est déjà ouverte
    {
        Effect.SlideUp(aaa.id,{duration:0.4, afterFinish: function() { aaa.style.display = 'none'; } });
        Effect.Appear(aaa.id, {duration:0.4, from:1, to:0});
    }
    else // on ouvre la liste
    {
        Effect.SlideDown(aaa.id,{duration:0.4, afterFinish: function() { aaa.style.display = 'block';} });
        Effect.Appear(aaa.id, {duration:0.4, from:0, to:1});
    }
}

/*  ---- formulaire de recherche - recupère les valeurs et cache la liste ----- */
function selectli(obj, valeur, inputname, valselectname) {
    var form = $(obj).up('form');
    valink = obj.innerHTML; // valeur du lien
    form.down('[name='+valselectname+']').innerHTML = valink; // affichage de la valeur selected en haut de la liste
    form.down('[name='+inputname+']').value = valeur; // écriture de la valeur dans l'input
    truffe = obj.parentNode.parentNode.parentNode.parentNode; // conteneur de la liste
    Effect.SlideUp(truffe.id,{duration:0.4, afterFinish: function() { truffe.style.display = 'none'; } }); // on cache la liste
}


/* ---- formulaire de recherche - verifie qu'une seule distance est checkée ----- */
function checkDistance(obj){
    if(obj.checked == true){
        for(i=1;i<=3;i++){
            document.getElementById('distance'+i).checked = false;
        }
        obj.checked = true;
    } else {obj.checked = false;}
}


/* ---- menu - affiche block mon compte ----- */
function showMyc() {
    // apparition de la box
    $('moncompte').appear({ duration: 1.0 });
    $('moncompte').next().hide();
    // disparition de l'onglet
    $('tabmoncompte').innerHTML = '<div class="lni_onglet_myconnect">&nbsp;</div>';
}


/* ---- formulaire - messages d'erreurs ----- */

function verif_formulaire(nomform){

    messerr = "";
    // condition car certain formulaire sont moins complets
    if(nomform !=="invest"){
        if((nomform !=="immoneuf")&&(nomform!=="detail")) {

    /**********************************/

    // Erreur - Verification que surface min soit un numerique
    if (IsNumeric(document.getElementById('sur0').value)== false){
        $('sur0').style.background = "#FFF";
        $('sur0').style.border = "1px solid #ff4800";
        $('sur0').style.color = "#FF4800";
        messerr += '<li>Le champ suface mini ne doit contenir que des chiffres</li>';
    } else {
        $('sur0').style.color = "#303030";
        $('sur0').style.background = "url('/LNI/imgs/fd_input.gif') repeat-x";
        $('sur0').style.border = "1px solid #C8D1D8";
    }

    /***********************************/

    // Erreur - Verification que surface max soit un numerique
    if (IsNumeric(document.getElementById('sur1').value)== false){
        $('sur1').style.background = "#FFF";
        $('sur1').style.border = "1px solid #ff4800";
        $('sur1').style.color = "#FF4800";
        messerr += '<li>Le champ suface maxi ne doit contenir que des chiffres</li>';
    } else {
        $('sur1').style.color = "#303030";
        $('sur1').style.background = "url('/LNI/imgs/fd_input.gif') repeat-x";
        $('sur1').style.border = "1px solid #C8D1D8";
    }


    /***********************************/

    // Erreur - Verification que prix mini soit un numerique
    if (IsNumeric(document.getElementById('px0').value)== false){
        $('px0').style.background = "#FFF";
        $('px0').style.border = "1px solid #ff4800";
        $('px0').style.color = "#FF4800";
        if((nomform!=="location")&&(nomform!=="colocation")&&(nomform!=="modifLoca")) { // le libellé change dans un formulaire location
            messerr += '<li>Le champ prix mini ne doit contenir que des chiffres</li>';
        } else {
            messerr += '<li>Le champ loyer mini ne doit contenir que des chiffres</li>';
        }
    } else {
        $('px0').style.color = "#303030";
        $('px0').style.background = "url('/LNI/imgs/fd_input.gif') repeat-x";
        $('px0').style.border = "1px solid #C8D1D8";
    }

    /***********************************/

    if(nomform!=="terrain"){ // Ne s'applique pas sur le formulaire vente terrain

        // Erreur - Verification que nbr de piece maxi > nbr de piece mini
        if(document.getElementById('nbpMaxi_val').value!='' && document.getElementById('nbpMini_val').value!=''
           && document.getElementById('nbpMaxi_val').value < document.getElementById('nbpMini_val').value){
            $('errnbp').style.background = "#FFF";
            $('errnbp').style.border = "1px solid #ff4800";
            $('errnbp').style.color = "#FF4800";
            messerr += '<li>Le nombre de pièce maxi doit être supérieur au nombre de pièce mini</li>';
        } else {
            $('errnbp').style.color = "#296195";
            $('errnbp').style.background = "#E5F9FF url('/LNI/imgs/deg_formu.gif') bottom repeat-x";
            $('errnbp').style.borderTop = "2px solid #D9F2F9";
            $('errnbp').style.borderLeft = "0px";
            $('errnbp').style.borderRight = "0px";
            $('errnbp').style.borderBottom = "0px";
        }
    }

    /***********************************/

    // Erreur - Verification que surface maxi > surface mini
    if(document.getElementById('sur1').value != "" && Number(document.getElementById('sur1').value) < Number(document.getElementById('sur0').value)){
        $('errsur').style.background = "#FFF";
        $('errsur').style.border = "1px solid #ff4800";
        $('errsur').style.color = "#FF4800";
        messerr += '<li>La surface maxi ne doit pas etre inférieure à la surface mini</li>';
    } else {
        $('errsur').style.color = "#296195";
        $('errsur').style.background = "#E5F9FF url('/LNI/imgs/deg_formu.gif') bottom repeat-x";
        $('errsur').style.borderTop = "2px solid #D9F2F9";
        $('errsur').style.borderLeft = "0px";
        $('errsur').style.borderRight = "0px";
        $('errsur').style.borderBottom = "0px";
    }

    /***********************************/

    // Erreur - Verification que prix maxi > prix mini
    if(document.getElementById('px1').value != "" && Number(document.getElementById('px1').value) < Number(document.getElementById('px0').value)){
        $('errprix').style.background = "#FFF";
        $('errprix').style.border = "1px solid #ff4800";
        $('errprix').style.color = "#FF4800";
        if((nomform!=="location")&&(nomform!=="colocation")&&(nomform!=="modifLoca")) { // le libellé change dans un formulaire location
            messerr += '<li>Le prix maxi ne doit pas etre inférieur au prix mini</li>';
        } else {
            messerr += '<li>Le loyer maxi ne doit pas etre inférieur au loyer mini</li>';
        }
    } else {
        $('errprix').style.color = "#296195";
        $('errprix').style.background = "#E5F9FF url('/LNI/imgs/deg_formu.gif') bottom repeat-x";
        $('errprix').style.borderTop = "2px solid #D9F2F9";
        $('errprix').style.borderLeft = "0px";
        $('errprix').style.borderRight = "0px";
        $('errprix').style.borderBottom = "0px";
    }

    /***********************************/

        } // fin condition de certain formulaire qui sont moins complets - Immo9


    // Erreur - Verification que prix maxi soit un numerique
    if (IsNumeric(document.getElementById('px1').value)== false){
        $('px1').style.background = "#FFF";
        $('px1').style.border = "1px solid #ff4800";
        $('px1').style.color = "#FF4800";
        if((nomform!=="location")&&(nomform!=="colocation")&&(nomform!=="modifLoca")) { // le libellé change dans un formulaire location
            messerr += '<li>Le champ prix maxi ne doit contenir que des chiffres</li>';
        } else {
            messerr += '<li>Le champ loyer maxi ne doit contenir que des chiffres</li>';
        }
    } else {
        $('px1').style.color = "#303030";
        $('px1').style.background = "url('/LNI/imgs/fd_input.gif') repeat-x";
        $('px1').style.border = "1px solid #C8D1D8";
    }


    /*********************************/

    // cette verification ne s'applique pas aux formulaires de modification de recherche vente & location, détail & terrain
    if((nomform!=="modifVente")&&(nomform!=="modifLoca")&&(nomform!=="detail")&&(nomform!=="terrain")){

        // Erreur - Type de bien non sélectionné
        if (checkBox() == false) {
            messerr += '<li>Vous devez obligatoirement choisir un type de bien</li>';
            $('errtype').style.background = "#FFF";
            $('errtype').style.border = "1px solid #ff4800";
            $('errtype').style.padding = "7px 5px 12px 5px";
        } else {
            $('errtype').style.background = "#E6F9FF url('/LNI/imgs/deg_formu.gif') bottom repeat-x";
            $('errtype').style.border = "0px";
            $('errtype').style.padding = "7px 7px 12px 7px";
        }
    }

    /***********************************/

    } // fin condition de certain formulaire qui sont moins complets - Invest

    /***********************************/

    // Erreur - Verfication que localisation ne soit pas vide
    if(document.getElementById('pays_val').value == "1"){

        if (document.getElementById('lo').value.replace(/^\s+|\s+$/, '') == "")    {
            messerr += '<li>Vous devez obligatoirement préciser la localisation</li>';
            $('lo').style.background = "#FFF";
            $('lo').style.border = "1px solid #ff4800";
        } else {
            $('lo').style.background = "url('/LNI/imgs/fd_input.gif') repeat-x";
            $('lo').style.border = "1px solid #C8D1D8";
        }

    } else {
        $('lo').style.background = "url('/LNI/imgs/fd_input.gif') repeat-x";
        $('lo').style.border = "1px solid #C8D1D8";
    }

    /***********************************/

    // Erreur - Verification des valeurs entrees dans localisation
    if (document.getElementById('lo').value !== "") {
        var chn = document.getElementById('lo').value;
        var longu = chn.length;
        var nbrvirg =0;
        for(i=0; i< longu; i++){ // on compte le nombre de virgule
            var elmt = chn.charAt(longu-i);
            if(elmt == ','){
                nbrvirg = nbrvirg + 1;
            }
        }

        if(nbrvirg  > 7){ // si c'est > 7 : ERREUR
            messerr += '<li>Vous ne devez pas entrer plus de 8 localisations. Ces localisation doivent être séparées par des virgules.</li>';
            alert("bordel");
            $('lo').style.background = "#FFF";
            $('lo').style.border = "1px solid #ff4800";
        } else {
            $('lo').style.background = "url('/LNI/imgs/fd_input.gif') repeat-x";
            $('lo').style.border = "1px solid #C8D1D8";
        }
    }

    /***********************************/

    // Si tout est OK on valide le formulaire sinon on affiche les messages d'erreurs
    if(messerr!=="") {
        $('formsearch_erreur').style.display = "block";
        $('allmesserr').innerHTML = messerr;
    } else {
        $('formsearch_erreur').style.display = "none";
        $(nomform).submit();
    }

}

/* ---- formulaire - messages d'erreurs - Vérifie si c'est un chiffre ---- */
function IsNumeric(sText,virgule) {
    var ValidChars;
    if(virgule)    { ValidChars = "0123456789." } else { ValidChars = "0123456789" }
    var IsNumber=true;
    var Char;
    for (i = 0; i < sText.length && IsNumber == true; i++){
        Char = sText.charAt(i);
        if (ValidChars.indexOf(Char) == -1){
            IsNumber = false;
        }
    }
   return IsNumber;
}

/* ---- formulaire - messages d'erreurs - Vérifie les checkbox ---- */
function checkBox() {

    var thecheck = false;
    tbtype = document.getElementById("errtype").getElementsByTagName('input');
    for(i=0;i<tbtype.length;i++){
        if(tbtype[i].checked == true){
            thecheck = true; // Si une des checkbox est séléctionnée : OK
        }
    }
   return thecheck;
}

/* ---- immo9 - recherche par carte ---- */

var tbcrt = new Array()

function loadCarte(){
    tbcrt[0] = $('bretagne');
    tbcrt[1] = $('aquitaine');
    tbcrt[2] = $('poitou');
    tbcrt[3] = $('pays_de_la_loire');
    tbcrt[4] = $('basse_normandie');
    tbcrt[5] = $('hte_normandie');
    tbcrt[6] = $('nord_pas_de_calais');
    tbcrt[7] = $('picardie');
    tbcrt[8] = $('idf');
    tbcrt[9] = $('centre');
    tbcrt[10] = $('limousin');
    tbcrt[11] = $('midi_pyrennees');
    tbcrt[12] = $('champ_ardennes');
    tbcrt[13] = $('lorraine');
    tbcrt[14] = $('alsace');
    tbcrt[15] = $('bourgogne');
    tbcrt[16] = $('franche_comte');
    tbcrt[17] = $('auvergne');
    tbcrt[18] = $('rhones_alpes');
    tbcrt[19] = $('languedoc_roussillon');
    tbcrt[20] = $('paca');
    tbcrt[21] = $('corse');
}

/* ---- immo9 -  recherche par carte - rollover région ---- */
function CarteimmoN_ON(id){
    if(tbcrt.length == 0) { loadCarte(); }
    for(i=0;i<tbcrt.length;i++){
        tbcrt[i].style.display = 'none';
    }
    document.getElementById(id).style.display = 'block';
}

/* ---- immo9 - recherche par carte - rollout région  ---- */
function CarteimmoN_OFF(id){
    for(i=0;i<tbcrt.length;i++){
        tbcrt[i].style.display = 'none';
    }
}

/* ---- immo9 - recherche par carte - rollover DOM  ---- */
function CarteimmoNDom_ON(id){
    document.getElementById(id).className = 'immoNBGdomOn';
}

/* ---- immo9 - recherche par carte - rollout DOM  ---- */
function CarteimmoNDom_OFF(id){
    document.getElementById(id).className = 'immoNBGdomOff';
}

/* ---- immo9 - recherche - Onglet carte/détail  ---- */
function homeNonglet(typeform) {
    if ($('tab_immoneuf_carte').src.substr(-6, 2) != '-s' && typeform == 'carte') {
        $('tab_immoneuf_carte').src = $('tab_immoneuf_carte').src.substr(0, $('tab_immoneuf_carte').src.length-4) + '-s' + $('tab_immoneuf_carte').src.substr(-4);
        $('form_carte').show();
    } else if ($('tab_immoneuf_carte').src.substr(-6, 2) == '-s' && typeform != 'carte') {
        $('tab_immoneuf_carte').src = $('tab_immoneuf_carte').src.substr(0, $('tab_immoneuf_carte').src.length-6) + $('tab_immoneuf_carte').src.substr(-4);
        $('form_carte').hide();
    }

    if ($('tab_immoneuf_detaillee').src.substr(-6, 2) != '-s' && typeform == 'detaillee') {
        $('tab_immoneuf_detaillee').src = $('tab_immoneuf_detaillee').src.substr(0, $('tab_immoneuf_detaillee').src.length-4) + '-s' + $('tab_immoneuf_detaillee').src.substr(-4);
        $('form_detaillee').show();
    } else if ($('tab_immoneuf_detaillee').src.substr(-6, 2) == '-s' && typeform != 'detaillee') {
        $('tab_immoneuf_detaillee').src = $('tab_immoneuf_detaillee').src.substr(0, $('tab_immoneuf_detaillee').src.length-6) + $('tab_immoneuf_detaillee').src.substr(-4);
        $('form_detaillee').hide();
    }
}


// Fonction de demande de suppression des annonces sélectionnées  les annonces de la
// sélection d'un utilisateur
function supprimerSelection(message, form, all) {
    // Verification qu'au moins un element est coche
    var isOk = all;
    if (!all) {
        var index = 0;
        while ($(form).down('input[type=checkbox]', index)) {
            if ($(form).down('input[type=checkbox]', index).checked) {
                isOk = true;
                break;
            }
            index++;
        }
    }
    if (!isOk) {
        alert('Vous devez sélectionner au moins un élément');
    }
    else if (confirm(message)) {
        if (all) {
            var index = 0;
            while ($(form).down('input[type=checkbox]', index)) {
                $(form).down('input[type=checkbox]', index).checked = true;
                index++;
            }
        }
        $(form).submit();
        return true;
    }
    return false;
}


function affichePhoto(photobig, photosmall)
{
    $(photobig).src = $(photosmall).src;
    var listePhotosSmall = $(photosmall).up(1);
    listePhotosSmall.descendants().invoke('removeClassName', 'selected')
    $(photosmall).up(0).addClassName('selected');
}


function AjoutDpt(dpt){
    var listdpt = $('LNI_dept').value;
    var dptExist = listdpt.indexOf(dpt);

    if (dptExist ==-1) {
        if($('LNI_dept').value=='')
        {
            $('LNI_dept').value += dpt;
        }
        else
        {
            // contrôle saisie de 8 départements maximum    
            tb = $('LNI_dept').value.split(',');
            if(tb.length < 8)
            {
                $('LNI_dept').value += ', ' + dpt;
            }
            else
            {
                alert('Vous ne pouvez pas choisir plus de 8 localisations');
            }
        }
    }
}

function validerDepartement(){
    
    if ($('lo') === null){
        return false;
    }
    
    if($('LNI_dept').value!=''){
        if($('lo').value!=''){
            $('lo').value+= ', ' + $('LNI_dept').value;
        }else{
            $('lo').value = $('LNI_dept').value;
        }
    }
}


