var Maintenant = new Date;
var anneeDerniere = Maintenant.getFullYear()-1;

/*
    0 : facultatif (1) ou non (0)
    1 : libellé du champ
    2 : type du champ (texte|nombre|textenombre|codepostal|phone|email)
    3 : idChamp duquel il dépend (devient obligatoire si ce champ est rempli)
*/
var champs = new Array(
    // onglet 1
    "civilite",
        new Array(
        "0",                        // facultatif (1) ou non (0)
        "civilit&eacute; de l'emprunteur", // descriptif du champ
        "texte",                    // type du champ
        ""),                        // dépend de...
    "coCivilite",
        new Array(
        "1",
        "civilit&eacute; du co-emprunteur",
        "texte",
        ""),
    "nom",
        new Array(
        "0",
        "nom de l'emprunteur",
        "texte",
        ""),
    "coNom",
        new Array(
        "1",
        "nom du co-emprunteur",
        "texte",
        "coCivilite"),
    "prenom",
        new Array(
        "0",
        "pr&eacute;nom de l'emprunteur",
        "texte",
        ""),
    "coPrenom",
        new Array(
        "1",
        "pr&eacute;nom du co-emprunteur",
        "texte",
        "coCivilite"),
    "jourNaissance",
        new Array(
        "0",
        "jour de naissance de l'emprunteur",
        "nombre",
        ""),
    "moisNaissance",
        new Array(
        "0",
        "mois de naissance de l'emprunteur",
        "nombre",
        ""),
    "anneeNaissance",
        new Array(
        "0",
        "ann&eacute;e de naissance de l'emprunteur",
        "nombre",
        ""),
    "coJourNaissance",
        new Array(
        "1",
        "jour de naissance du co-emprunteur",
        "nombre",
        "coCivilite"),
    "coMoisNaissance",
        new Array(
        "1",
        "mois de naissance du co-emprunteur",
        "nombre",
        "coCivilite"),
    "coAnneeNaissance",
        new Array(
        "1",
        "ann&eacute;e de naissance du co-emprunteur",
        "nombre",
        "coCivilite"),
    "departementNaissance",
        new Array(
        "0",
        "d&eacute;partement de naissance de l'emprunteur",
        "departement",
        ""),
    "coDepartementNaissance",
        new Array(
        "1",
        "d&eacute;partement de naissance du co-emprunteur",
        "departement",
        "coCivilite"),
    "etatCivil",
        new Array(
        "0",
        "situation personnelle de l'emprunteur",
        "textenombre",
        ""),
    "coEtatCivil",
        new Array(
        "0",
        "situation personnelle du co-emprunteur",
        "textenombre",
        "coCivilite"),
    "typeDePoste",
        new Array(
        "0",
        "emploi actuel de l'emprunteur",
        "nombre",
        ""),
    "coTypeDePoste",
        new Array(
        "1",
        "emploi actuel du co-emprunteur",
        "nombre",
        "coCivilite"),
    "poste",
        new Array(
        "0",
        "poste occup&eacute; par l'emprunteur",
        "texte",
        ""),
    "coPoste",
        new Array(
        "1",
        "poste occup&eacute; par le co-emprunteur",
        "texte",
        "coCivilite"),
    "departementTravail",
        new Array(
        "0",
        "d&eacute;partement du lieu de travail de l'emprunteur",
        "departement",
        ""),
    "coDepartementTravail",
        new Array(
        "1",
        "d&eacute;partement du lieu de travail du co-emprunteur",
        "departement",
        "coCivilite"),
    "ancienneteEmploi",
        new Array(
        "0",
        "anciennet&eacute; d'emploi de l'emprunteur",
        "textenombre",
        ""),
    "coAncienneteEmploi",
        new Array(
        "1",
        "anciennet&eacute; d'emploi du co-emprunteur",
        "textenombre",
        "coCivilite"),
    "salaireMensuel",
        new Array(
        "0",
        "salaire mensuel net de l'emprunteur",
        "nombre",
        ""),
    "coSalaireMensuel",
        new Array(
        "1",
        "salaire mensuel net du co-emprunteur",
        "nombre",
        "coCivilite"),
    "autresRevenus",
        new Array(
        "1",
        "autres revenus de l'emprunteur",
        "nombre",
        ""),
    "coAutresRevenus",
        new Array(
        "1",
        "autres revenus du co-emprunteur",
        "nombre",
        ""),
    "revenusLocatifs",
        new Array(
        "1",
        "revenus locatifs de l'emprunteur",
        "nombre",
        ""),
    "coRevenusLocatifs",
        new Array(
        "1",
        "revenus locatifs du co-emprunteur",
        "nombre",
        ""),
    "montantImposableN1",
        new Array(
        "1",
        "revenus imposables "+anneeDerniere+" de l'emprunteur",
        "nombre",
        ""),
    "coMontantImposableN1",
        new Array(
        "1",
        "revenus imposables "+anneeDerniere+" du co-emprunteur",
        "nombre",
        ""),
    "banqueActuelle",
        new Array(
        "0",
        "banque actuelle de l'emprunteur",
        "texte",
        ""),
    "coBanqueActuelle",
        new Array(
        "0",
        "banque actuelle du co-emprunteur",
        "texte",
        "coCivilite"),
    "nbEnfantsACharge",
        new Array(
        "0",
        "nombre d'enfant(s) &agrave; charge",
        "nombre",
        ""),
    "age1",
        new Array(
        "1",
        "&acirc;ge de votre premier enfant &agrave; charge",
        "nombre",
        ""),
    "age2",
        new Array(
        "1",
        "&acirc;ge de votre second enfant &agrave; charge",
        "nombre",
        ""),
    "age3",
        new Array(
        "1",
        "&acirc;ge de votre troisi&egrave;me enfant &agrave; charge",
        "nombre",
        ""),
    "age4",
        new Array(
        "1",
        "&acirc;ge de votre quatri&egrave;me enfant &agrave; charge",
        "nombre",
        ""),
    "age5",
        new Array(
        "1",
        "&acirc;ge de votre cinqui&egrave;me enfant &agrave; charge",
        "nombre",
        ""),
    "age6",
        new Array(
        "1",
        "&acirc;ge de votre sixi&egrave;me enfant &agrave; charge",
        "nombre",
        ""),
    "logementActuel",
        new Array(
        "0",
        "logement actuel",
        "texte",
        ""),
    "logementActuelDepuis",
        new Array(
        "1",
        "dur&eacute;e d'occupation de votre logement actuel",
        "textenombre",
        ""),
    "loyerMensuel",
        new Array(
        "1",
        "loyer mensuel",
        "nombre",
        ""),
    "adresse",
        new Array(
        "0",
        "adresse",
        "textenombre",
        ""),
    "adresse2",
        new Array(
        "1",
        "deuxi&egrave;me ligne d'adresse",
        "textenombre",
        ""),
    "codePostal",
        new Array(
        "0",
        "code postal",
        "codepostal",
        ""),
    "ville",
        new Array(
        "0",
        "ville",
        "texte",
        ""),
    "email",
        new Array(
        "0",
        "e-mail",
        "email",
        ""),
    "email2",
        new Array(
        "0",
        "confirmation de votre e-mail",
        "verifemail",
        ""),
    "telDomicile",
        new Array(
        "0",
        "num&eacute;ro de t&eacute;l&eacute;phone (t&eacute;l. 1)",
        "phone",
        ""),
    "telBureau",
        new Array(
        "1",
        "deuxi&egrave;me num&eacute;ro de t&eacute;l&eacute;phone",
        "phone",
        ""),
    "telPortable",
        new Array(
        "1",
        "troisi&egrave;me num&eacute;ro de t&eacute;l&eacute;phone",
        "phone",
        ""),
    "fax",
        new Array(
        "1",
        "quatri&egrave;me num&eacute;ro de t&eacute;l&eacute;phone",
        "phone",
        ""),

     // onglet 2

    "pretObjet1",
        new Array(
        "1",
        "nature des charges et objet des pr&ecirc;ts (1&egrave;re ligne)",
        "texte",
        ""),
    "pretCrd1",
        new Array(
        "1",
        "capital restant d&ucirc; (1&egrave;re ligne)",
        "nombre",
        "pretObjet1"),
    "pretDuree1",
        new Array(
        "1",
        "dur&eacute;e restante (1&egrave;re ligne)",
        "textenombre",
        "pretObjet1"),
    "pretMensualite1",
        new Array(
        "1",
        "mensualit&eacute; (1&egrave;re ligne)",
        "nombre",
        "pretObjet1"),

    "pretObjet2",
        new Array(
        "1",
        "nature des charges et objet des pr&ecirc;ts (2&egrave;me ligne)",
        "texte",
        ""),
    "pretCrd2",
        new Array(
        "1",
        "capital restant d&ucirc; (2&egrave;me ligne)",
        "nombre",
        "pretObjet2"),
    "pretDuree2",
        new Array(
        "1",
        "dur&eacute;e restante (2&egrave;me ligne)",
        "textenombre",
        "pretObjet2"),
    "pretMensualite2",
        new Array(
        "1",
        "mensualit&eacute; (2&egrave;me ligne)",
        "nombre",
        "pretObjet2"),

    "pretObjet3",
        new Array(
        "1",
        "nature des charges et objet des pr&ecirc;ts (3&egrave;me ligne)",
        "texte",
        ""),
    "pretCrd3",
        new Array(
        "1",
        "capital restant d&ucirc; (3&egrave;me ligne)",
        "nombre",
        "pretObjet3"),
    "pretDuree3",
        new Array(
        "1",
        "dur&eacute;e restante (3&egrave;me ligne)",
        "textenombre",
        "pretObjet3"),
    "pretMensualite3",
        new Array(
        "1",
        "mensualit&eacute; (3&egrave;me ligne)",
        "nombre",
        "pretObjet3"),


    "pretObjet4",
        new Array(
        "1",
        "nature des charges et objet des pr&ecirc;ts (4&egrave;me ligne)",
        "texte",
        ""),
    "pretCrd4",
        new Array(
        "1",
        "capital restant d&ucirc; (4&egrave;me ligne)",
        "nombre",
        "pretObjet4"),
    "pretDuree4",
        new Array(
        "1",
        "dur&eacute;e restante (4&egrave;me ligne)",
        "textenombre",
        "pretObjet4"),
    "pretMensualite4",
        new Array(
        "1",
        "mensualit&eacute; (4&egrave;me ligne)",
        "nombre",
        "pretObjet4"),

    "natureBiensOuPlacements1",
        new Array(
        "1",
        "nature des biens ou placements (1&egrave;re ligne)",
        "texte",
        ""),
    "montantsBiensOuPlacements1",
        new Array(
        "1",
        "montants des biens ou placements (1&egrave;re ligne)",
        "nombre",
        "natureBiensOuPlacements1"),

    "natureBiensOuPlacements2",
        new Array(
        "1",
        "nature des biens ou placements (2&egrave;me ligne)",
        "texte",
        ""),
    "montantsBiensOuPlacements2",
        new Array(
        "1",
        "montants des biens ou placements (2&egrave;me ligne)",
        "nombre",
        "natureBiensOuPlacements2"),

    "natureBiensOuPlacements3",
        new Array(
        "1",
        "nature des biens ou placements (3&egrave;me ligne)",
        "texte",
        ""),
    "montantsBiensOuPlacements3",
        new Array(
        "1",
        "montants des biens ou placements (3&egrave;me ligne)",
        "nombre",
        "natureBiensOuPlacements3"),

    "natureBiensOuPlacements4",
        new Array(
        "1",
        "nature des biens ou placements (4&egrave;me ligne)",
        "texte",
        ""),
    "montantsBiensOuPlacements4",
        new Array(
        "1",
        "montants des biens ou placements (4&egrave;me ligne)",
        "nombre",
        "natureBiensOuPlacements4"),

    // Onglet 3
    "typeDeProjet",
        new Array(
        "0",
        "type de projet",
        "textenombre",
        ""),
    "destinationDuBien",
        new Array(
        "0",
        "destination du bien",
        "texte",
        ""),
        
       "contactPartenaire",
        new Array(
        "0",
        "Type de bien recherch&eacute;",
        "textenombre",
        "promesseDeVente"),

    "promesseDeVente",
        new Array(
        "0",
        "promesse de vente sign&eacute;e ?",
        "textenombre",
        ""),
    "adresseDuBien",
        new Array(
        "0",
        "adresse du bien",
        "textenombre",
        ""),
    "adresseDuBien2",
        new Array(
        "1",
        "deuxi&egrave;me ligne d'adresse du bien",
        "textenombre",
        ""),
    "codePostalDuBien",
        new Array(
        "0",
        "code postal du bien",
        "codepostal",
        ""),
    "villeDuBien",
        new Array(
        "0",
        "ville du bien",
        "texte",
        ""),

    "coutsDetails1",
        new Array(
        "0",
        "d&eacute;tail des co&ucirc;ts (1&egrave;re ligne)",
        "nombre",
        ""),
    "coutsMontants1",
        new Array(
        "0",
        "montants des co&ucirc;ts (1&egrave;re ligne)",
        "nombre",
        ""),

    "coutsDetails2",
        new Array(
        "1",
        "d&eacute;tail des co&ucirc;ts (2&egrave;me ligne)",
        "nombre",
        ""),
    "coutsMontants2",
        new Array(
        "1",
        "montants des co&ucirc;ts (2&egrave;me ligne)",
        "nombre",
        "coutsDetails2"),

    "coutsDetails3",
        new Array(
        "1",
        "d&eacute;tail des co&ucirc;ts (3&egrave;me ligne)",
        "nombre",
        ""),
    "coutsMontants3",
        new Array(
        "1",
        "montants des co&ucirc;ts (3&egrave;me ligne)",
        "nombre",
        "coutsDetails3"),

    "fraisAgence",
        new Array(
        "1",
        "montant des frais d'agence",
        "nombre",
        ""),
    "fraisNotaire",
        new Array(
        "1",
        "montant des frais de notaire",
        "nombre",
        ""),
	"partsScpi",
        new Array(
        "0",
        "montant des parts achet&eacute;es",
        "nombre",
        ""),
    "fraisScpi",
        new Array(
        "1",
        "montant des frais d'acquisition",
        "nombre",
        ""),
        
    "coutTravaux",
        new Array(
        "0",
        "montant de vos travaux",
        "nombre",
        ""),
        
    "renegoTauxActuel",
        new Array(
        "0",
        "taux du pr&ecirc;t actuel",
        "decimal",
        ""),
    "renegoTypeTauxActuel",
        new Array(
        "0",
        "type de taux actuel",
        "texte",
        ""),
    "renegoMontant",
        new Array(
        "0",
        "montant emprunt&eacute;",
        "nombre",
        ""),
    "renegoCrd",
        new Array(
        "0",
        "capital restant d&ucirc;",
        "nombre",
        ""),
    "renegoDureeTotale",
        new Array(
        "0",
        "dur&eacute;e totale du pr&ecirc;t",
        "textenombre",
        ""),
    "renegoDureeRestante",
        new Array(
        "0",
        "dur&eacute;e restante du pr&ecirc;t",
        "textenombre",
        ""),
    "renegoMensualite",
        new Array(
        "0",
        "mensualit&eacute; du pr&ecirc;t",
        "decimal",
        ""),
    "renegoMensualiteAssurance",
        new Array(
        "0",
        "mensualit&eacute; de l'assurance",
        "decimal",
        ""),
    "renegoTypeGarantie",
        new Array(
        "0",
        "type de garantie du pr&ecirc;t",
        "texte",
        ""),
    "renegoPriorite",
        new Array(
        "0",
        "priorit&eacute; ren&eacute;gociation",
        "texte",
        ""),
    "apport",
        new Array(
        "0",
        "montant de votre apport",
        "nombre",
        ""),

    "planNature1",
        new Array(
        "1",
        "nature pr&ecirc;t compl&eacute;mentaire (1&egrave;re ligne)",
        "textenombre",
        ""),
    "planMontant1",
        new Array(
        "1",
        "montant pr&ecirc;t compl&ecirc;mentaire (1&egrave;re ligne)",
        "nombre",
        "planNature1"),
    "planDuree1",
        new Array(
        "1",
        "dur&eacute;e pr&ecirc;t compl&eacute;mentaire (1&egrave;re ligne)",
        "textenombre",
        "planNature1"),
    "planMensualite1",
        new Array(
        "1",
        "mensualit&eacute; pr&ecirc;t compl&eacute;mentaire (1&egrave;re ligne)",
        "nombre",
        "planNature1"),

    "planNature2",
        new Array(
        "1",
        "nature pr&ecirc;t compl&eacute;mentaire (2&egrave;me ligne)",
        "textenombre",
        ""),
    "planMontant2",
        new Array(
        "1",
        "montant pr&ecirc;t compl&eacute;mentaire (2&egrave;me ligne)",
        "nombre",
        "planNature2"),
    "planDuree2",
        new Array(
        "1",
        "dur&eacute;e pr&ecirc;t compl&eacute;mentaire (2&egrave;me ligne)",
        "textenombre",
        "planNature2"),
    "planMensualite2",
        new Array(
        "1",
        "mensualit&eacute; pr&ecirc;t compl&eacute;mentaire (2&egrave;me ligne)",
        "nombre",
        "planNature2"),

    "planNature3",
        new Array(
        "1",
        "nature pr&ecirc;t compl&eacute;mentaire (3&egrave;me ligne)",
        "textenombre",
        ""),
    "planMontant3",
        new Array(
        "1",
        "montant pr&ecirc;t compl&eacute;mentaire (3&egrave;me ligne)",
        "nombre",
        "planNature3"),
    "planDuree3",
        new Array(
        "1",
        "dur&eacute;e pr&ecirc;t compl&eacute;mentaire (3&egrave;me ligne)",
        "textenombre",
        "planNature3"),
    "planMensualite3",
        new Array(
        "1",
        "mensualit&eacute; pr&ecirc;t compl&eacute;mentaire (3&egrave;me ligne)",
        "nombre",
        "planNature3"),

    "planNature4",
        new Array(
        "1",
        "nature pr&ecirc;t compl&eacute;mentaire (4&egrave;me ligne)",
        "textenombre",
        ""),
    "planMontant4",
        new Array(
        "1",
        "montant pr&ecirc;t compl&eacute;mentaire (4&egrave;me ligne)",
        "nombre",
        "planNature4"),
    "planDuree4",
        new Array(
        "1",
        "dur&eacute;e pr&ecirc;t compl&eacute;mentaire (4&egrave;me ligne)",
        "textenombre",
        "planNature4"),
    "planMensualite4",
        new Array(
        "1",
        "mensualit&eacute; pr&ecirc;t compl&eacute;mentaire (4&egrave;me ligne)",
        "nombre",
        "planNature4"),

    "pretDemandeMontant",
        new Array(
        "0",
        "montant du pr&ecirc;t principal demand&eacute;",
        "nombre",
        ""),
    "pretDemandeDuree",
        new Array(
        "0",
        "dur&eacute;e du pr&ecirc;t principal demand&eacute;",
        "textenombre",
        ""),
    "typeDeTaux",
        new Array(
        "0",
        "type de taux souhait&eacute;",
        "texte",
        ""),
    "typeDePret",
        new Array(
        "0",
        "type de pr&ecirc;t",
        "texte",
        ""),
    "pretRelaisSouhaite",
        new Array(
        "1",
        "pr&ecirc;t relais souhait&eacute; ?",
        "texte",
        ""),
    "valeurDuBien",
        new Array(
        "1",
        "valeur estim&eacute;e du bien &agrave; vendre",
        "nombre",
        ""),
    "capitalRestantSurLeBien",
        new Array(
        "1",
        "capital restant d&ucirc; sur le bien &agrave; vendre",
        "nombre",
        ""),
    "montantLoyerPercu",
        new Array(
        "1",
        "montant du loyer per&ccedil;u pour votre investissement locatif",
        "nombre",
        ""),
    "observations",
        new Array(
        "1",
        "observations",
        "",
        ""),
        "chk_newsletter",
        new Array(
        "1",
        "newsletter ?",
        "texte",
        "")
);



// extrait les données d'un champ
/* clés du tableau retourné :
    0 : facultatif (1) ou non (0)
    1 : libellé du champ
    2 : type du champ (cf type_ok)
    3 : idChamp duquel il dépend
*/
function extrait_donnees(idChamp)
{
    for (i = 0; i < champs.length; i++) {
        if (champs[i] == idChamp) {
            return (champs[i+1]);
        }
    }

    return false;
}





// fonction de vérification de champ en temps réel
// (affiche une image en conséquence)
function verifChamp(idChamp)
{
    var champ   = document.getElementById(idChamp);
    var donnees = extrait_donnees(idChamp);

    if (donnees != 0) {

        var image  = document.getElementById('picto_'+idChamp);
        var erreur = erreur_champ(champ, donnees);

        if (image) {
            switch (erreur) {
                case 1 : // champ ok
                    image.src = "../images/formulaire-picto-ok.gif";
                    image.style.visibility = "visible";
                    break;

                case 2 : // mauvais type
                    image.src = "../images/formulaire-picto-format.gif";
                    image.style.visibility = "visible";
                    break;

                case 3 : // champ obligatoire vide
                    image.src = "../images/formulaire-picto-vide.gif";
                    image.style.visibility = "visible";
                    break;

                default :
                    image.style.visibility = "hidden";
            }
        }

        return erreur;
    }
    return 0;

}



// fonction de vérification de date (idem que vérifChamp mais sur 3 champs date)
function verifDate(idJour, idMois, idAnnee, idImage)
{
    var erreurJour  = verifChamp(idJour);
    var erreurMois  = verifChamp(idMois);
    var erreurAnnee = verifChamp(idAnnee);
    var image       = document.getElementById('picto_'+idImage);

    if (image) {
        if (erreurJour == 3 || erreurMois == 3 || erreurAnnee == 3) {
            image.src = "../images/formulaire-picto-vide.gif";
            image.style.visibility = "visible";
            return 3;

        } else if (erreurJour == 2 || erreurMois == 2 || erreurAnnee == 2) {
            image.src = "../images/formulaire-picto-format.gif";
            image.style.visibility = "visible";
            return 2;

        } else if (erreurJour == 1 || erreurMois == 1 || erreurAnnee == 1) {
            image.src = "../images/formulaire-picto-ok.gif";
            image.style.visibility = "visible";
            return 1;
        }
    }

    return 0;
}



// fonction de recherche de type d'erreur sur un champ
/* entrée :
        champ   : objet de type HTMLObject
        donnees : tableau dont les clés sont les suivantes :
                    0 : facultatif (1) ou non (0)
                    1 : libellé du champ
                    2 : type du champ
                    3 : idChamp duquel il dépend

sortie :
        0 = champ facultatif vide
        1 = champ obligatoire ok
        2 = type non respecté
        3 = champ obligatoire vide
*/
function erreur_champ(champ, donnees)
{
    if (donnees[3] !== "") { // dépend d'un autre champ
        var champParent   = document.getElementById(donnees[3]);
        var donneesParent = extrait_donnees(donnees[3]);

        if (donneesParent !== false) {
            var erreur = erreur_champ(champParent, donneesParent);

            if (is_null(champ)) {
                if (erreur == 0)
                    return 0;
                else
                    return 3;
            }
        }

    } else if (is_null(champ)) {
        if (donnees[0] == 0) // champ obligatoire
            return 3;
        else
            return 0;
    }

    if (type_ok(champ, donnees[2]))
        return 1;
    else
        return 2;
}



// vérifie si un champ est nul ou non
// entrée : HTMLObject
function is_null(champ)
{
    var valeur = valeur_champ(champ);

    if (valeur == "" || valeur.length == 0 || valeur == " ")
        return 1;
    else
        return 0;
}



// extrait la valeur d'un champ
// entrée : HTMLObject
function valeur_champ(champ) {

    var valeur = "";

    if (champ.type == "text") {
        valeur = champ.value;
    } else if (champ.type == "select-one") {
        valeur = champ.options[champ.selectedIndex].value;
    } else {
        valeur = champ.text;
    }

    return valeur;
}



// vérifie que le champ est du bon type
// entrée : HTMLObject, string
function type_ok(champ, typeChamp) {

    var valeur = valeur_champ(champ);

    switch (typeChamp) {
        case "nombre" :
            Number(valeur);
            var expr = new RegExp("^[0-9]+$","gi");
            return expr.test(valeur);
            break;

	case "decimal" :
        	String(valeur);
        	var expr = new RegExp("^[0-9]+$|^[0-9]+[\.][0-9]{1,2}$");
        	return expr.test(valeur);
        	break;
        case "texte" :
            String(valeur);
            var expr = new RegExp("^[a-zA-Z\-\ 'àâäãçéèêëìîïòôöõùûüñ\%]+$","gi");
            return expr.test(valeur);
            break;

        case "nombretexte" :
        case "textenombre" :
            String(valeur);
            var expr = new RegExp("^[0-9a-zA-Z\-\ \+'àâäãçéèêëìîïòôöõùûüñ\.\+\%\,<>]+$","gi");
            return expr.test(valeur);
            break;
			
		case "departement" :
            String(valeur);
            var expr = new RegExp("^(2a|2b|2A|2B|[0-9]{2}|[0-9]{3})$","gi");
            return expr.test(valeur);
        break;
			
        case "codepostal" :
            String(valeur);
            var expr = new RegExp("^(2a|2b|2A|2B)?[0-9\ ]+$","gi");
            return expr.test(valeur);
            break;

        case "phone" :
            String(valeur);
            var expr = new RegExp("^[0-9\ \-\.]+$","gi");
            return expr.test(valeur);
            break;

        case "email" :
            String(valeur);
            var expr=/^[a-z\d]+((\.|-|_)[a-z\d]+)*@((?![-\d])[a-z\d-]{0,62}[a-z\d]\.){1,4}[a-z]{2,6}$/gi;
            return ((valeur.match(expr) == valeur) && (valeur.substr(valeur.lastIndexOf("@")).length<=256));
            break;

        case "verifemail":
            String(valeur);
            var expr=/^[a-z\d]+((\.|-|_)[a-z\d]+)*@((?![-\d])[a-z\d-]{0,62}[a-z\d]\.){1,4}[a-z]{2,6}$/gi;
            return ((valeur.match(expr) == valeur) && (valeur.substr(valeur.lastIndexOf("@")).length<=256) && valeur==document.getElementById("email").value);
            break;
    }

}


function verifRadioBouton(idBouton1,idBouton2,idImage)
{
 
    var image       = document.getElementById('picto_'+idImage);

    if (image) {
        if(document.getElementById(idBouton1).checked || document.getElementById(idBouton2).checked) {
            image.src = "../images/formulaire-picto-ok.gif";
            image.style.visibility = "visible";
            return 1;
        }else {
            image.src = "../images/formulaire-picto-vide.gif";
            image.style.visibility = "visible";
            return 3;
        }

    }
 

    return 0;
}


// fonction de vérification globale lors du changement d"onglet
function verifOnglet(noOnglet, ongletSuivant) {

    if(ongletSuivant<noOnglet&&ongletSuivant!=0)
    {
        imageOnglet(noOnglet,0);
        imageOnglet(ongletSuivant,1);
        changeOnglet(ongletSuivant);
        return;
    }
    switch (noOnglet) {
        case 1 :
            // champs onglet 1
            var champsOnglet = new Array("civilite", "coCivilite", "nom", "coNom", "prenom",
            "coPrenom", "jourNaissance", "moisNaissance", "anneeNaissance",
            "coJourNaissance", "coMoisNaissance", "coAnneeNaissance",
            "departementNaissance", "coDepartementNaissance",
            "etatCivil", "coEtatCivil", "typeDePoste", "coTypeDePoste", "poste", "coPoste",
            "departementTravail", "coDepartementTravail", "ancienneteEmploi", "coAncienneteEmploi",
            "salaireMensuel", "coSalaireMensuel", "autresRevenus", "coAutresRevenus",
            "revenusLocatifs", "coRevenusLocatifs", "montantImposableN1", "coMontantImposableN1",
            "banqueActuelle", "coBanqueActuelle", "nbEnfantsACharge",
            "age1", "age2", "age3", "age4", "age5", "age6",
            "logementActuel", "logementActuelDepuis", "loyerMensuel",
            "adresse", "adresse2", "codePostal", "ville", "email", "email2",
            "telDomicile", "telBureau", "telPortable", "fax");
            break;

        case 2 :
            // champs onglet 2
            var champsOnglet = new Array("pretObjet1", "pretCrd1", "pretDuree1",
            "pretMensualite1", "pretObjet2", "pretCrd2", "pretDuree2",
            "pretMensualite2", "pretObjet3", "pretCrd3", "pretDuree3",
            "pretMensualite3", "pretObjet4", "pretCrd4", "pretDuree4",
            "pretMensualite4", "natureBiensOuPlacements1", "montantsBiensOuPlacements1",
            "natureBiensOuPlacements2", "montantsBiensOuPlacements2", "natureBiensOuPlacements3",
            "montantsBiensOuPlacements3", "natureBiensOuPlacements4", "montantsBiensOuPlacements4");
            break;

        case 3 :
            // champs onglet 3
              var champsOnglet = new Array("typeDeProjet", "destinationDuBien", "promesseDeVente",
            "adresseDuBien", "adresseDuBien2", "codePostalDuBien", "villeDuBien",
            "coutsDetails1", "coutsMontants1", "coutsDetails2", "coutsMontants2",
            "coutsDetails3", "coutsMontants3", "fraisAgence", "fraisNotaire", "apport",
			"renegoTauxActuel", "renegoTypeTauxActuel", "renegoMontant", "renegoCrd", "renegoDureeTotale",
            "renegoDureeRestante", "renegoMensualite", "renegoMensualiteAssurance", "renegoTypeGarantie", "renegoPriorite",
            "apport",
            "planNature1", "planMontant1", "planDuree1", "planMensualite1",
            "planNature2", "planMontant2", "planDuree2", "planMensualite2",
            "planNature3", "planMontant3", "planDuree3", "planMensualite3",
            "planNature4", "planMontant4", "planDuree4", "planMensualite4",
            "pretDemandeMontant", "pretDemandeDuree",
            "typeDeTaux", "typeDePret", "pretRelaisSouhaite", "valeurDuBien",
            "capitalRestantSurLeBien", "montantLoyerPercu"/*,
            "assuranceEmprunteur", "coAssuranceEmprunteur", "observations"*/);
			
			
            champsOnglet = champsFacultatifsSelonProjet(champsOnglet);
            

            /*
            // afficher les champs à vérifier
            var str = "";
            for ( n=0; n < champsOnglet.length; n++) {
            	str += champsOnglet[n]+"\n";
            }
            alert(str);*/
			
            break;

        default :
            var champsOnglet = new Array();
    }


    if (champsOnglet.length > 0) {

        var erreur = new Array();
        var alerte = new Array();

        for ( n=0; n < champsOnglet.length; n++) {

            var noErreur = verifChamp(champsOnglet[n]);
            var valeurs  = extrait_donnees(champsOnglet[n]);

            switch (noErreur) {
                case 2 : // mauvais type
                    alerte.push(valeurs[1]);
                    break;

                case 3 : // champ obligatoire vide
                    erreur.push(valeurs[1]);
                    break;
            }

            if (noOnglet == 1) {
                switch(champsOnglet[n]) {
                    case 'email2' :
                        var mail1 = document.getElementById("email").value;
                        var mail2 = document.getElementById("email2").value;
                        if (mail1 != mail2)
                            alerte.push("les deux e-mails fournis ne sont pas identiques");
                        break;

                    case 'anneeNaissance' :
                        verifDate('jourNaissance','moisNaissance','anneeNaissance','dateNaissance');
                        break;

                    case 'coAnneeNaissance' :
                        verifDate('coJourNaissance','coMoisNaissance','coAnneeNaissance','coDateNaissance');
                        break;
                }
            }
        }


        if (noOnglet == 3) {
                
                var noErreur=verifRadioBouton('chk_newsletter1','chk_newsletter2','chk_newsletter');
                var valeurs  = extrait_donnees('chk_newsletter');
               
                switch (noErreur) {
                case 2 : // mauvais type
                    alerte.push(valeurs[1]);
                    break;

                case 3 : // champ obligatoire vide
                    erreur.push(valeurs[1]);
                    break;
            }
        }

        div = document.getElementById("message_erreur");

        if (erreur.length == 0 && alerte.length == 0) {

            div.style.visibility = "hidden";

            if (ongletSuivant == 0) {
                document.getElementById('formulaire').submit();
            } else {
                imageOnglet(noOnglet,0);
                imageOnglet(ongletSuivant,1);
                changeOnglet(ongletSuivant);
            }

        } else {

            var textErreur = new String;
            var textAlerte = new String;

            if (erreur.length >0 && alerte.length == 0) {
                textErreur  = "<img src=\"../images/formulaire-erreur-haut.gif\" width=\"285\" height=\"15\" alt=\"\" />\n";
                textErreur += "<p>Les champs suivants sont obligatoires :</p>\n";
                textErreur += "<ul>";
                for (i=0; i < erreur.length; i++)
                    textErreur += "<li>"+erreur[i]+"</li>";
                textErreur += "</ul>";
                textErreur += "<img src=\"../images/formulaire-erreur-bas.gif\" width=\"285\" alt=\"\" style=\"vertical-align:bottom\" />";
            }
			
            if (alerte.length >0 && erreur.length == 0) {
                textAlerte  = "<img src=\"../images/formulaire-erreur-haut.gif\" width=\"285\" height=\"15\" alt=\"\" />\n";
                textAlerte += "<p>Les champs suivants ne sont pas au format attendu :</p>\n";
                textAlerte += "<ul>";
                for (i=0; i < alerte.length; i++)
                    textAlerte += "<li>"+alerte[i]+"</li>";
                textAlerte += "</ul>";
                textAlerte += "<img src=\"../images/formulaire-erreur-bas.gif\" width=\"285\" alt=\"\" style=\"vertical-align:bottom\" />\n";
            }
			
			if (erreur.length >0 && alerte.length > 0) {
                textErreur  = "<img src=\"../images/formulaire-erreur-haut.gif\" width=\"285\" height=\"15\" alt=\"\" />\n";
                textErreur += "<p>Les champs suivants sont obligatoires :</p>\n";
                textErreur += "<ul>";
                for (i=0; i < erreur.length; i++)
                	textErreur += "<li>"+erreur[i]+"</li>";
                textErreur += "</ul>";
                textErreur += "<img src=\"../images/formulaire-erreur-bas-court.gif\" width=\"285\" height=\"15\" alt=\"\" style=\"vertical-align:bottom\" />\n";
			    textAlerte  = "<img src=\"../images/formulaire-erreur-haut.gif\" width=\"285\" height=\"15\" alt=\"\" />\n";
                textAlerte += "<p>Les champs suivants ne sont pas au format attendu :</p>\n";
                textAlerte += "<ul>";
                for (i=0; i < alerte.length; i++)
                    textAlerte += "<li>"+alerte[i]+"</li>";
                textAlerte += "</ul>";
                textAlerte += "<img src=\"../images/formulaire-erreur-bas.gif\" width=\"285\" alt=\"\" style=\"vertical-align:bottom\" />\n";
            }
			
            div.innerHTML = textErreur+textAlerte;
            div.style.visibility = "visible";
            window.location = "devis-credit-immobilier.php#haut_page";
        }
    }
}



// fonction de changement d'onglet
// masque tous les onglets et affiche l'onglet "id"
function changeOnglet(id) {
	
    for(var i=1; i<=3; i++) {
        // masque les onglet
        document.getElementById("formulaire_tableau_"+i).style.display = "none";
    }
    // affiche l'onglet choisi
    document.getElementById("formulaire_tableau_"+id).style.display = "block";
    window.location = "devis-credit-immobilier.php#haut_page";

    // on redimensionne la page :
    switch(id) {
        case 1 :
            var hauteur = 1530;
            var srcXitiTag = "";
            break;
        case 2 :
            var hauteur = 1140;
            var srcXitiTag = "http://logi151.xiti.com/hit.xiti?s=373236&s2=&p=formulaire_credit_minute::credit_immobilier_onglet2&di=&";
            break;
        case 3 :
        	var typeProjet = document.getElementById("typeDeProjet").value;
        	switch(typeProjet){
        		case '1' :	// achat d'ancien
        		case '2' :	// achat d'ancien + travaux
        		case '11' : // terrain + construction
        		case '10' :	// construction
        		case '12' :	// achat de neuf existant
        		case '13' :	// achat de neuf sur plan (VEFA)
        		case '9' : // autre
        			var hauteur = 1950;
        			break;
        		case '5' : // travaux
        			var hauteur = 1820;
        			break;
        		case '6' : // renégociation de taux
        			var hauteur = 1580;
        			break;
        		case '8' : // scpi
        			var hauteur = 1600;
        			break;
        		default :
        			var hauteur = 1950;
    				break;
        	}
            var srcXitiTag = "http://logi151.xiti.com/hit.xiti?s=373236&s2=&p=formulaire_credit_minute::credit_immobilier_onglet3&di=&";
            break;
    }

    document.getElementById("bandeau_bas").style.top = hauteur+"px";
    document.getElementById("xitiTag").src = srcXitiTag;
}

// change l'image d'un onglet (valide)
// id : identifiant de l'onglet
// on : image de l'onget (1=on, 0=off)
function imageOnglet(id, on) {
    if (id > 0 && id < 4) {
        if (on == 1)
            document.getElementById("onglet"+id).src = "../images/formulaire-onglet"+id+"-on.gif";
        else
            document.getElementById("onglet"+id).src = "../images/formulaire-onglet"+id+"-off.gif";
    }
}


// calcul le montant total à emprunter
function montantTotal() {

    champMontantTotal = document.getElementById('pretDemandeMontant');

    var coutMontant1 = new Number(document.getElementById('coutsMontants1').value);
    var coutMontant2 = new Number(document.getElementById('coutsMontants2').value);
    var coutMontant3 = new Number(document.getElementById('coutsMontants3').value);
	var partsScpi    = new Number(document.getElementById('partsScpi').value);
    var fraisScpi    = new Number(document.getElementById('fraisScpi').value);
    var fraisAgence  = new Number(document.getElementById('fraisAgence').value);
    var fraisNotaire = new Number(document.getElementById('fraisNotaire').value);
    var apport       = new Number(document.getElementById('apport').value);
	var coutTravaux  = new Number(document.getElementById('coutTravaux').value);
    var renegoCrd    = new Number(document.getElementById('renegoCrd').value);
    var planMontant1 = new Number(document.getElementById('planMontant1').value);
    var planMontant2 = new Number(document.getElementById('planMontant2').value);
    var planMontant3 = new Number(document.getElementById('planMontant3').value);
    var planMontant4 = new Number(document.getElementById('planMontant4').value);
    var montantTotal = 0;
    
    var typeProjet = document.getElementById("typeDeProjet").value;
	switch(typeProjet){
		case '1' :	// achat d'ancien
		case '2' :	// achat d'ancien + travaux
		case '11' : // terrain + construction
		case '10' :	// construction
		case '12' :	// achat de neuf existant
		case '13' :	// achat de neuf sur plan (VEFA)
		case '9' : // autre
			montantTotal = (coutMontant1 + coutMontant2 + coutMontant3 + fraisAgence + fraisNotaire - apport -planMontant1-planMontant2-planMontant3-planMontant4);
			break;
		case '5' : // travaux
			montantTotal = (coutTravaux - apport -planMontant1-planMontant2-planMontant3-planMontant4);
			break;
		case '6' : // renégociation de taux
			montantTotal = (renegoCrd);
			break;
		case '8' : // scpi
			montantTotal = (partsScpi + fraisScpi - apport -planMontant1-planMontant2-planMontant3-planMontant4);
			break;
	}
	
    champMontantTotal.value = montantTotal;
}










function typeProjetChange() {
	var typeProjet = document.getElementById("typeDeProjet").value;
	switch(typeProjet){
		case '1' :	// achat d'ancien
			var idShow = new Array("avancementProjetBlock", "detailCoutsSeparateur", "detailCoutsTitle", "detailCoutsHead",
					"detailCouts1", "detailCouts2", "detailCouts3", "detailCoutsAgence", "detailCoutsNotaire",
					"adresseBlock1", "adresseBlock2", "adresseBlock3",
					"pretRelaisSeparateur", "pretRelaisTitle", "pretRelais1", "pretRelais2", "pretRelais3",
					"planFinancementSeparateur", "planFinancementTitle", "apportBlock", "pretsTitleBlock", "pretsLigne1", "pretsLigne2",
					"pretsLigne3", "pretsLigne4", "pretPrincipalBlock", "typeDeTauxBlock", "typeDePretBlock");
			var idHide = new Array("travauxSeparateur", "travauxTitle", "coutTravauxBlock", "typeTravauxBlock", "detailCoutsPartsScpi", "detailCoutsFraisScpi",
					"renegoSeparateur", "renegoTitle", "renegoTauxActuelBlock", "renegoTypeTauxActuelBlock", "renegoMontantBlock",
					"renegoCrdBlock", "renegoDureeTotaleBlock", "renegoDureeRestanteBlock", "renegoMensualiteBlock",
					"renegoMensualiteAssuranceBlock", "renegoTypeGarantieBlock", "renegoPrioriteBlock");
			var hauteur = 1950;
			break;
		case '2' :	// achat d'ancien + travaux
			var idShow = new Array("avancementProjetBlock", "detailCoutsSeparateur", "detailCoutsTitle", "detailCoutsHead",
					"detailCouts1", "detailCouts2", "detailCouts3", "detailCoutsAgence", "detailCoutsNotaire",
					"adresseBlock1", "adresseBlock2", "adresseBlock3",
					"pretRelaisSeparateur", "pretRelaisTitle", "pretRelais1", "pretRelais2", "pretRelais3",
					"planFinancementSeparateur", "planFinancementTitle", "apportBlock", "pretsTitleBlock", "pretsLigne1", "pretsLigne2",
					"pretsLigne3", "pretsLigne4", "pretPrincipalBlock", "typeDeTauxBlock", "typeDePretBlock");
			var idHide = new Array("travauxSeparateur", "travauxTitle", "coutTravauxBlock", "typeTravauxBlock", "detailCoutsPartsScpi", "detailCoutsFraisScpi",
					"renegoSeparateur", "renegoTitle", "renegoTauxActuelBlock", "renegoTypeTauxActuelBlock", "renegoMontantBlock",
					"renegoCrdBlock", "renegoDureeTotaleBlock", "renegoDureeRestanteBlock", "renegoMensualiteBlock",
					"renegoMensualiteAssuranceBlock", "renegoTypeGarantieBlock", "renegoPrioriteBlock");
			var hauteur = 1950;
			break;
		case '11' : // terrain + construction
			var idShow = new Array("avancementProjetBlock", "detailCoutsSeparateur", "detailCoutsTitle", "detailCoutsHead",
					"detailCouts1", "detailCouts2", "detailCouts3", "detailCoutsAgence", "detailCoutsNotaire",
					"adresseBlock1", "adresseBlock2", "adresseBlock3",
					"pretRelaisSeparateur", "pretRelaisTitle", "pretRelais1", "pretRelais2", "pretRelais3",
					"planFinancementSeparateur", "planFinancementTitle", "apportBlock", "pretsTitleBlock", "pretsLigne1", "pretsLigne2",
					"pretsLigne3", "pretsLigne4", "pretPrincipalBlock", "typeDeTauxBlock", "typeDePretBlock");
			var idHide = new Array("travauxSeparateur", "travauxTitle", "coutTravauxBlock", "typeTravauxBlock", "detailCoutsPartsScpi", "detailCoutsFraisScpi",
					"renegoSeparateur", "renegoTitle", "renegoTauxActuelBlock", "renegoTypeTauxActuelBlock", "renegoMontantBlock",
					"renegoCrdBlock", "renegoDureeTotaleBlock", "renegoDureeRestanteBlock", "renegoMensualiteBlock",
					"renegoMensualiteAssuranceBlock", "renegoTypeGarantieBlock", "renegoPrioriteBlock");
			var hauteur = 1950;
			break;
		case '10' :	// construction
			var idShow = new Array("avancementProjetBlock", "detailCoutsSeparateur", "detailCoutsTitle", "detailCoutsHead",
					"detailCouts1", "detailCouts2", "detailCouts3", "detailCoutsAgence", "detailCoutsNotaire",
					"adresseBlock1", "adresseBlock2", "adresseBlock3",
					"pretRelaisSeparateur", "pretRelaisTitle", "pretRelais1", "pretRelais2", "pretRelais3",
					"planFinancementSeparateur", "planFinancementTitle", "apportBlock", "pretsTitleBlock", "pretsLigne1", "pretsLigne2",
					"pretsLigne3", "pretsLigne4", "pretPrincipalBlock", "typeDeTauxBlock", "typeDePretBlock");
			var idHide = new Array("travauxSeparateur", "travauxTitle", "coutTravauxBlock", "typeTravauxBlock", "detailCoutsPartsScpi", "detailCoutsFraisScpi",
					"renegoSeparateur", "renegoTitle", "renegoTauxActuelBlock", "renegoTypeTauxActuelBlock", "renegoMontantBlock",
					"renegoCrdBlock", "renegoDureeTotaleBlock", "renegoDureeRestanteBlock", "renegoMensualiteBlock",
					"renegoMensualiteAssuranceBlock", "renegoTypeGarantieBlock", "renegoPrioriteBlock");
			var hauteur = 1950;
			break;
		case '12' :	// achat de neuf existant
			var idShow = new Array("avancementProjetBlock", "detailCoutsSeparateur", "detailCoutsTitle", "detailCoutsHead",
					"detailCouts1", "detailCouts2", "detailCouts3", "detailCoutsAgence", "detailCoutsNotaire",
					"adresseBlock1", "adresseBlock2", "adresseBlock3",
					"pretRelaisSeparateur", "pretRelaisTitle", "pretRelais1", "pretRelais2", "pretRelais3",
					"planFinancementSeparateur", "planFinancementTitle", "apportBlock", "pretsTitleBlock", "pretsLigne1", "pretsLigne2",
					"pretsLigne3", "pretsLigne4", "pretPrincipalBlock", "typeDeTauxBlock", "typeDePretBlock");
			var idHide = new Array("travauxSeparateur", "travauxTitle", "coutTravauxBlock", "typeTravauxBlock", "detailCoutsPartsScpi", "detailCoutsFraisScpi",
					"renegoSeparateur", "renegoTitle", "renegoTauxActuelBlock", "renegoTypeTauxActuelBlock", "renegoMontantBlock",
					"renegoCrdBlock", "renegoDureeTotaleBlock", "renegoDureeRestanteBlock", "renegoMensualiteBlock",
					"renegoMensualiteAssuranceBlock", "renegoTypeGarantieBlock", "renegoPrioriteBlock");
			var hauteur = 1950;
			break;
		case '13' :	// achat de neuf sur plan (VEFA)
			var idShow = new Array("avancementProjetBlock", "detailCoutsSeparateur", "detailCoutsTitle", "detailCoutsHead",
					"detailCouts1", "detailCouts2", "detailCouts3", "detailCoutsAgence", "detailCoutsNotaire",
					"adresseBlock1", "adresseBlock2", "adresseBlock3",
					"pretRelaisSeparateur", "pretRelaisTitle", "pretRelais1", "pretRelais2", "pretRelais3",
					"planFinancementSeparateur", "planFinancementTitle", "apportBlock", "pretsTitleBlock", "pretsLigne1", "pretsLigne2",
					"pretsLigne3", "pretsLigne4", "pretPrincipalBlock", "typeDeTauxBlock", "typeDePretBlock");
			var idHide = new Array("travauxSeparateur", "travauxTitle", "coutTravauxBlock", "typeTravauxBlock", "detailCoutsPartsScpi", "detailCoutsFraisScpi",
					"renegoSeparateur", "renegoTitle", "renegoTauxActuelBlock", "renegoTypeTauxActuelBlock", "renegoMontantBlock",
					"renegoCrdBlock", "renegoDureeTotaleBlock", "renegoDureeRestanteBlock", "renegoMensualiteBlock",
					"renegoMensualiteAssuranceBlock", "renegoTypeGarantieBlock", "renegoPrioriteBlock");
			var hauteur = 1950;
			break;
		case '5' : // travaux
			var idShow = new Array("travauxSeparateur", "travauxTitle", "coutTravauxBlock", "typeTravauxBlock",
					"adresseBlock1", "adresseBlock2", "adresseBlock3",
					"planFinancementSeparateur", "planFinancementTitle", "apportBlock", "pretsTitleBlock", "pretsLigne1", "pretsLigne2",
					"pretsLigne3", "pretsLigne4", "pretPrincipalBlock", "typeDeTauxBlock", "typeDePretBlock");
			var idHide = new Array("avancementProjetBlock", "detailCoutsSeparateur", "detailCoutsTitle", "detailCoutsHead",
					"detailCouts1", "detailCouts2", "detailCouts3", "detailCoutsAgence", "detailCoutsNotaire",
					"pretRelaisSeparateur", "pretRelaisTitle", "pretRelais1", "pretRelais2", "pretRelais3", "detailCoutsPartsScpi", "detailCoutsFraisScpi",
					"renegoSeparateur", "renegoTitle", "renegoTauxActuelBlock", "renegoTypeTauxActuelBlock", "renegoMontantBlock",
					"renegoCrdBlock", "renegoDureeTotaleBlock", "renegoDureeRestanteBlock", "renegoMensualiteBlock",
					"renegoMensualiteAssuranceBlock", "renegoTypeGarantieBlock", "renegoPrioriteBlock");
			var hauteur = 1820;
			break;
		case '6' : // renégociation de taux
			var idShow = new Array("adresseBlock1", "adresseBlock2", "adresseBlock3",
					"renegoSeparateur", "renegoTitle", "renegoTauxActuelBlock", "renegoTypeTauxActuelBlock", "renegoMontantBlock",
					"renegoCrdBlock", "renegoDureeTotaleBlock", "renegoDureeRestanteBlock", "renegoMensualiteBlock",
					"renegoMensualiteAssuranceBlock", "renegoTypeGarantieBlock", "renegoPrioriteBlock");
			var idHide = new Array("detailCoutsSeparateur", "detailCoutsTitle", "detailCoutsHead",
					"detailCouts1", "detailCouts2", "detailCouts3", "detailCoutsAgence", "detailCoutsNotaire",
					"avancementProjetBlock","travauxSeparateur", "travauxTitle", "coutTravauxBlock", "typeTravauxBlock",
					"pretRelaisSeparateur", "pretRelaisTitle", "pretRelais1", "pretRelais2", "pretRelais3", "detailCoutsPartsScpi", "detailCoutsFraisScpi",
					"planFinancementSeparateur", "planFinancementTitle", "apportBlock", "pretsTitleBlock", "pretsLigne1", "pretsLigne2",
					"pretsLigne3", "pretsLigne4", "pretPrincipalBlock", "typeDeTauxBlock", "typeDePretBlock");
			var hauteur = 1580;
			break;
		case '8' : // scpi
			var idShow = new Array("detailCoutsSeparateur", "detailCoutsTitle", "detailCoutsPartsScpi", "detailCoutsFraisScpi",
					"planFinancementSeparateur", "planFinancementTitle", "apportBlock", "pretsTitleBlock", "pretsLigne1", "pretsLigne2",
					"pretsLigne3", "pretsLigne4", "pretPrincipalBlock", "typeDeTauxBlock", "typeDePretBlock");
			var idHide = new Array("avancementProjetBlock","travauxSeparateur", "travauxTitle", "coutTravauxBlock", "typeTravauxBlock",
					"detailCoutsHead", "detailCouts1", "detailCouts2", "detailCouts3", "detailCoutsAgence", "detailCoutsNotaire",
					"pretRelaisSeparateur", "pretRelaisTitle", "pretRelais1", "pretRelais2", "pretRelais3",
					"adresseBlock1", "adresseBlock2", "adresseBlock3",
					"renegoSeparateur", "renegoTitle", "renegoTauxActuelBlock", "renegoTypeTauxActuelBlock", "renegoMontantBlock",
					"renegoCrdBlock", "renegoDureeTotaleBlock", "renegoDureeRestanteBlock", "renegoMensualiteBlock",
					"renegoMensualiteAssuranceBlock", "renegoTypeGarantieBlock", "renegoPrioriteBlock");
			var hauteur = 1600;
			break;
		case '9' : // autre
			var idShow = new Array("avancementProjetBlock", "detailCoutsSeparateur", "detailCoutsTitle", "detailCoutsHead",
					"detailCouts1", "detailCouts2", "detailCouts3", "detailCoutsAgence", "detailCoutsNotaire",
					"adresseBlock1", "adresseBlock2", "adresseBlock3",
					"pretRelaisSeparateur", "pretRelaisTitle", "pretRelais1", "pretRelais2", "pretRelais3");
			var idHide = new Array("travauxSeparateur", "travauxTitle", "coutTravauxBlock", "typeTravauxBlock", "detailCoutsPartsScpi", "detailCoutsFraisScpi",
					"renegoSeparateur", "renegoTitle", "renegoTauxActuelBlock", "renegoTypeTauxActuelBlock", "renegoMontantBlock",
					"renegoCrdBlock", "renegoDureeTotaleBlock", "renegoDureeRestanteBlock", "renegoMensualiteBlock",
					"renegoMensualiteAssuranceBlock", "renegoTypeGarantieBlock", "renegoPrioriteBlock");
			var hauteur = 1950;
			break;
		default:
			var idShow = new Array();
			var idHide = new Array();
			var hauteur = 1950;
			break;
	}

	document.getElementById("bandeau_bas").style.top = hauteur+"px";
	
	showTr(idShow);
	hideTr(idHide);
}



function destinationBienChange() {
	var destinationDuBien = document.getElementById("destinationDuBien").value;

	switch(destinationDuBien){
		case 'résidence principale' :	// résidence principale
			var idShow = new Array();
			var idHide = new Array("locatifSeparateur", "locatifTitleBlock", "locatifBlock");
			break;
		case 'résidence secondaire' :	// résidence secondaire
			var idShow = new Array();
			var idHide = new Array("locatifSeparateur", "locatifTitleBlock", "locatifBlock");
			break;
		case 'investissement locatif' : // investissement locatif
			var idShow = new Array("locatifSeparateur", "locatifTitleBlock", "locatifBlock");
			var idHide = new Array();
			break;
		case 'autre' : // autre
			var idShow = new Array();
			var idHide = new Array("locatifSeparateur", "locatifTitleBlock", "locatifBlock");
			break;
		default:
			var idShow = new Array();
			var idHide = new Array("locatifSeparateur", "locatifTitleBlock", "locatifBlock");
			break;
	}
	
	showTr(idShow);
	hideTr(idHide);
}





function avancementProjetChange() {
	var promesseDeVente = document.getElementById("promesseDeVente").value;
	switch(promesseDeVente){
		case '1' :	// compromis signé
			var idShow = new Array("adresseBlock1", "adresseBlock2", "adresseBlock3");
			var idHide = new Array();
			break;
		case '2' :	// bien trouvé compromis non signé
			var idShow = new Array("adresseBlock1", "adresseBlock2", "adresseBlock3");
			var idHide = new Array();
			break;
		case '3' : // recherche active
			var idShow = new Array();
			var idHide = new Array("adresseBlock1", "adresseBlock2", "adresseBlock3");
			break;
		case '4' : // simulation
			var idShow = new Array();
			var idHide = new Array("adresseBlock1", "adresseBlock2", "adresseBlock3");
			break;
		default:
			var idShow = new Array();
			var idHide = new Array();
			break;
	}
	



	showTr(idShow);
	hideTr(idHide);
}

function champsFacultatifsSelonProjet(champsOnglet){
	var typeProjet = document.getElementById("typeDeProjet").value;
	switch(typeProjet){
		case '1' :	// achat d'ancien
			champsFacultatifs = new Array("coutTravaux", "partsScpi", "fraisScpi",
					"renegoTauxActuel", "renegoTypeTauxActuel", "renegoMontant", "renegoCrd", "renegoDureeTotale", "renegoDureeRestante",
					"renegoMensualite", "renegoMensualiteAssurance", "renegoTypeGarantie", "renegoPriorite");
			break;
		case '2' :	// achat d'ancien + travaux
			champsFacultatifs = new Array("coutTravaux", "partsScpi", "fraisScpi",
					"renegoTauxActuel", "renegoTypeTauxActuel", "renegoMontant", "renegoCrd", "renegoDureeTotale", "renegoDureeRestante",
					"renegoMensualite", "renegoMensualiteAssurance", "renegoTypeGarantie", "renegoPriorite");
			break;
		case '11' : // terrain + construction
			champsFacultatifs = new Array("coutTravaux", "partsScpi", "fraisScpi",
					"renegoTauxActuel", "renegoTypeTauxActuel", "renegoMontant", "renegoCrd", "renegoDureeTotale", "renegoDureeRestante",
					"renegoMensualite", "renegoMensualiteAssurance", "renegoTypeGarantie", "renegoPriorite");
			break;
		case '10' :	// construction
			champsFacultatifs = new Array("coutTravaux", "partsScpi", "fraisScpi",
					"renegoTauxActuel", "renegoTypeTauxActuel", "renegoMontant", "renegoCrd", "renegoDureeTotale", "renegoDureeRestante",
					"renegoMensualite", "renegoMensualiteAssurance", "renegoTypeGarantie", "renegoPriorite");
			break;
		case '12' :	// achat de neuf existant
			champsFacultatifs = new Array("coutTravaux", "partsScpi", "fraisScpi",
					"renegoTauxActuel", "renegoTypeTauxActuel", "renegoMontant", "renegoCrd", "renegoDureeTotale", "renegoDureeRestante",
					"renegoMensualite", "renegoMensualiteAssurance", "renegoTypeGarantie", "renegoPriorite");
			break;
		case '13' :	// achat de neuf sur plan (VEFA)
			champsFacultatifs = new Array("coutTravaux", "partsScpi", "fraisScpi",
					"renegoTauxActuel", "renegoTypeTauxActuel", "renegoMontant", "renegoCrd", "renegoDureeTotale", "renegoDureeRestante",
					"renegoMensualite", "renegoMensualiteAssurance", "renegoTypeGarantie", "renegoPriorite");
			break;
		case '5' : // travaux
			champsFacultatifs = new Array("coutsDetails1", "coutsMontants1", "coutsDetails2", "coutsMontants2",
		            "coutsDetails3", "coutsMontants3", "promesseDeVente", "partsScpi", "fraisScpi",
					"renegoTauxActuel", "renegoTypeTauxActuel", "renegoMontant", "renegoCrd", "renegoDureeTotale", "renegoDureeRestante",
					"renegoMensualite", "renegoMensualiteAssurance", "renegoTypeGarantie", "renegoPriorite");
			break;
		case '6' : // renégociation de taux
			champsFacultatifs = new Array("coutsDetails1", "coutsMontants1", "coutsDetails2", "coutsMontants2",
		            "coutsDetails3", "coutsMontants3", "coutTravaux", "promesseDeVente", "partsScpi", "fraisScpi", "apport"," planNature1", "planMontant1",
					"planDuree1", "planMensualite1", "planNature2", "planMontant2", "planDuree2", "planMensualite2",
		            "planNature3", "planMontant3", "planDuree3", "planMensualite3",
		            "planNature4", "planMontant4", "planDuree4", "planMensualite4",
		            "pretDemandeMontant", "pretDemandeDuree",
		            "typeDeTaux", "typeDePret");
			break;
		case '8' : // scpi
			champsFacultatifs = new Array("coutsDetails1", "coutsMontants1", "coutsDetails2", "coutsMontants2",
		            "coutsDetails3", "coutsMontants3", "coutTravaux", "promesseDeVente", "adresseDuBien", "codePostalDuBien", "villeDuBien",
					"renegoTauxActuel", "renegoTypeTauxActuel", "renegoMontant", "renegoCrd", "renegoDureeTotale", "renegoDureeRestante",
					"renegoMensualite", "renegoMensualiteAssurance", "renegoTypeGarantie", "renegoPriorite");
			break;
		case '9' : // autre
			break;
	}
	champsOnglet = spliceByValue(champsOnglet, champsFacultatifs);
	



	var promesseDeVente = document.getElementById("promesseDeVente").value;
	switch(promesseDeVente){
		case '1' :	// compromis sign�
			champsFacultatifs = new Array();
			break;
		case '2' :	// bien trouv� compromis non sign�
			champsFacultatifs = new Array();
			break;
		case '3' : // recherche active
			champsFacultatifs = new Array("adresseDuBien", "codePostalDuBien", "villeDuBien");
			break;
		case '4' : // simulation
			champsFacultatifs = new Array("adresseDuBien", "codePostalDuBien", "villeDuBien");
			break;
		default:
			champsFacultatifs = new Array();
			break;
	}
	



	champsOnglet = spliceByValue(champsOnglet, champsFacultatifs);
	return champsOnglet;
}

function showTr(arrayId){
	for(n=0; n < arrayId.length; n++) {
		if (document.all) { // IE
			document.getElementById(arrayId[n]).style.cssText = "display:table-row;";
		}
		else{	// FF


			document.getElementById(arrayId[n]).style.display = "table-row";
		}
    }
}






function hideTr(arrayId){
	for(n=0; n < arrayId.length; n++) {
		if (document.all) { // IE
			document.getElementById(arrayId[n]).style.cssText = "display:none;";
		}
		else{	// FF
			document.getElementById(arrayId[n]).style.display = "none";
		}
    }
}





function spliceByValue(array, arrayValue){
	//alert(arrayValue);
	for (i=0; i < arrayValue.length; i++) {
		for ( n=0; n < array.length; n++) {
			if(array[n] == arrayValue[i]){
				array.splice(n,1);
				break;
			}
		}
	}
	return array;
}

function unselect(id){
	document.getElementById(id).selectedIndex = 0;
}
