// Fonctions pour le formulaire Rachat de Crédits 

function affiche_question_proprio() {

    f = document.formulaire;

    if (f.logement[1].checked == true || f.logement[2].checked == true) {
        document.getElementById("question_proprio").style.display = "";

    }
    else
        document.getElementById("question_proprio").style.display = "none";

}

function ajoutcredit() {
    var dateencours = new Date();
    var monnaieencours;
    var tabcredits = document.getElementById("tabcredits");
    var lignecredit = tabcredits.getElementsByTagName("tr").length - 1;

    if (lignecredit < 30) {
        monnaieencours = "&euro;";

        in1 = (lignecredit + 1) + ")";
        in2 = "<select name='type_credit[" + lignecredit + "]' class=\"input\" onChange='Compte_Credits();' style='width:135px;'><option></option><option value=1 >Crédit immobilier</option><option value=2 >Crédit consommation</option><option value=3 >Prêt à taux zéro</option><option value=4 >Réserve d'argent</option><option value=5 >Autres</option></select>";
        in2bis = "&nbsp; ";
        in3 = "<center><input type='text' value='0' class=\"input\" size=8 name='remb[" + lignecredit + "]'> " + monnaieencours + "/mois &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</center>";
        //in3bis = "&nbsp; ";
        in4 = "<center><input type='text' value='0' class=\"input\" size=8 name='capital[" + lignecredit + "]'> " + monnaieencours + "&nbsp;&nbsp;</center>";
        in4bis = "&nbsp; ";
        in5 = "<input type=radio name='rachat[" + lignecredit + "]' value=0 class=\"radiost\" checked>Oui &nbsp;<input type=radio name='rachat[" + lignecredit + "]' value=1 class=\"radiost\">Non";
        //in5bis = "&nbsp; ";
        var l = tabcredits.insertRow(tabcredits.rows.length);
        var c = l.insertCell(l.cells.length);

        c.innerHTML = in1;
        c = l.insertCell(l.cells.length);
        c.innerHTML = in2;
        c = l.insertCell(l.cells.length);
        c.innerHTML = in2bis;
        c = l.insertCell(l.cells.length);
        c.innerHTML = in3;
        c = l.insertCell(l.cells.length);
        //c.innerHTML = in3bis;
        //c = l.insertCell(l.cells.length);
        c.innerHTML = in4;
        c = l.insertCell(l.cells.length);
        c.innerHTML = in4bis;
        c = l.insertCell(l.cells.length);
        c.innerHTML = in5;
        //c = l.insertCell(l.cells.length);
        //c.innerHTML = in5bis;
        //c = l.insertCell(l.cells.length);
        lignecredit++;
    }
}

function Compte_Credits() {
    f = document.formulaire;
    num_elts = f.elements.length;
    var nbcredits = 0; //-- Nb de crédits affichés
    var nbcredits_saisis = 0; //-- Nb de crédits saisis par l'utilisateur

    for (var i = 0; i < num_elts; i++) {
        var myfield = f.elements[i];
        if (myfield.name.indexOf("type_credit[") >= 0) {
            if (myfield.value != "") nbcredits_saisis++;
            nbcredits++;
        }
    }

    if (nbcredits == nbcredits_saisis) { //-- Si tous les crédits sont remplis, on rajoute automatiquement un crédit
        ajoutcredit();
    }
}

function addLigne() {
    var newLigne = document.getElementById("pat_immo").insertRow(-1);
    var tabBiens = document.getElementById("pat_immo");
    var numBien = tabBiens.getElementsByTagName("tr").length - 2;
    numBien++;
    monnaieencours = "&euro;";
    newCell = newLigne.insertCell(0);
    newCell.innerHTML = "Bien immobilier n°" + numBien;
    newCell = newLigne.insertCell(1);
    newCell.innerHTML = "<input type=hidden name='oblige[" + numBien + "]' value=0><select name='bien_immo[" + numBien + "]' class=\"input\" style='width:177px;'><option value=''></option><option value=1 >Résidence principale</option><option value=2 >Résidence secondaire</option><option value=3 >Investissement locatif - Défiscalisation</option><option value=4 >Investissement locatif - Autre</option></select>";
    newCell = newLigne.insertCell(2);
    newCell.innerHTML = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type=text name=valeur_actuelle_bien[" + numBien + "] size=7 value='0' class=\"input\"> " + monnaieencours;
}

//-- Calcul des allocations familiales
function calcul_nbenfants() {
    f = document.formulaire;

    nbenfants = parseInt(f.nbenfants.value);
    var allocs_2 = parseFloat("120.32"); 	// 2 enfants
    var allocs_3 = parseFloat("274.47"); 	// 3 enfants
    var allocs_sup = parseFloat("154.15"); // Enfants supplémentaires

    calculalloc = Math.max(0, ((allocs_sup * nbenfants) - ((allocs_sup - allocs_2) + allocs_sup)));
    calculalloc = Math.round(calculalloc);

    f.ttalalloc.value = calculalloc;

    // Formatage du montant
    calculalloc = formater_nombre(calculalloc, 0, " ");

    if (document.all) idmens.innerHTML = calculalloc;
    else document.getElementById("idmens").innerHTML = calculalloc;
}

function formater_nombre(valeur, decimal, separateur) {
    var deci = Math.round(Math.pow(10, decimal) * (Math.abs(valeur) - Math.floor(Math.abs(valeur))));
    var val = Math.floor(Math.abs(valeur));
    if ((decimal == 0) || (deci == Math.pow(10, decimal))) { val = Math.floor(Math.abs(valeur)); deci = 0; }
    var val_format = val + "";
    var nb = val_format.length;
    for (var i = 1; i < 4; i++) {
        if (val >= Math.pow(10, (3 * i))) {
            val_format = val_format.substring(0, nb - (3 * i)) + separateur + val_format.substring(nb - (3 * i));
        }
    }
    if (decimal > 0) {
        var decim = "";
        for (var j = 0; j < (decimal - deci.toString().length); j++) { decim += "0"; }
        deci = decim + deci.toString();
        val_format = val_format + "." + deci;
    }
    if (parseFloat(valeur) < 0) { val_format = "-" + val_format; }
    return val_format;
}

function affiche_coemp() {

    f = document.formulaire;
    tab_champs = new Array("revcoemp", "statut_conj", "type_contrat_conj", "ancien_conj_an", "ancien_conj_mois", "mois_salaire_conj", "dnjour_conj", "dnmois_conj", "dnan_conj", "prenom_conj", "nom_conj", "civilite_conj");
    taille_tab = tab_champs.length;

    if (f.coemprunteur[1].checked == false) {
        for (i = 0; i < taille_tab; i++) {
            f.elements[tab_champs[i]].disabled = true;
            f.elements[tab_champs[i]].style.backgroundColor = "#dddddd";
        }
    }
    else {
        for (i = 0; i < taille_tab; i++) {
            f.elements[tab_champs[i]].disabled = false;
            f.elements[tab_champs[i]].style.backgroundColor = "#ffffff";
        }
    }

}

function affiche_pat_immo() {

    f = document.formulaire;

    if (f.logement[0].checked == true || f.proprio[0].checked == true) {
        document.getElementById("patrimoine_immo").style.display = "";
        f.te_patri_immo.value = 1;
    }
    else {
        document.getElementById("patrimoine_immo").style.display = "none";
        f.te_patri_immo.value = 0;
    }

}

function ValideNumeriqueMontant(chaine) {
   
	var reg=new RegExp("^[0-9]+([.,][0-9]+)?$","gi");
	return reg.test(chaine);		
}

function ValideNumerique(chaine) {
    if ((chaine.search(/[^0-9]/) != -1) || (chaine == ''))
        return false;
    else
        return true;
}

function testeDate(jour, mois, annee, obligatoire, message) {
    if (obligatoire == 1) {
        if ((jour == "") || (mois == "") || (annee == "")) {
            alert("Veuillez saisir" + message);
            return false;
        }
    }
    var annee_max = 2008 - 18;
    if ((jour <= 0) || (jour > 31) || (mois <= 0) || (mois > 12) || (annee < 1900)) {
        alert("Il y a une erreur sur" + message);
        return false;
    }
    if (annee > annee_max) {
        alert("Vous devez impérativement être majeur.");
        return false;
    }
    if ((jour > 30) && ((mois == 4) || (mois == 6) || (mois == 9) || (mois == 11))) {
        alert("Il y a une erreur sur" + message);
        return false;
    }
    if ((jour > 29) && (mois == 2)) {
        alert("Il y a une erreur sur" + message);
        return false;
    }
    if ((isNaN(parseInt(jour, 10))) || (isNaN(parseInt(mois, 10))) || (isNaN(parseInt(annee, 10)))) {
        alert("Il y a une erreur sur" + message);
        return false;
    }
    return true;
}

function toggleDiv(divId)
{
  var elem, vis;
  if( document.getElementById )
    elem = document.getElementById(divId);
  else if( document.all )
      elem = document.all[divId];
  else if(document.layers)
    elem = document.layers[divId];
  vis = elem.style;
  if(vis.display==''&&elem.offsetWidth!=undefined&&elem.offsetHeight!=undefined)
    vis.display = (elem.offsetWidth!=0&&elem.offsetHeight!=0)?'block':'none';
  vis.display = (vis.display==''||vis.display=='block')?'none':'block';
}

function toPart2on2() {
    if (valider_infos()) {
        toggleDiv("divPart1on2");
        toggleDiv("divPart2on2");
        scroll(0, 0);
    }
}

function toPart1on2() {
    toggleDiv("divPart1on2");
    toggleDiv("divPart2on2");
    scroll(0, 0);
}

function nextToPart2on3() {
    toggleDiv("divPart1on3");
    toggleDiv("divPart2on3");
    scroll(0, 0);
}

function nextToPart3on3() {
    if (valider_infos()) {
        toggleDiv("divPart2on3");
        toggleDiv("divPart3on3");
        scroll(0, 0);
    }
}

function prevToPart2on3() {
    toggleDiv("divPart3on3");
    toggleDiv("divPart2on3");
    scroll(0, 0);
}

function prevToPart1on3() {
    toggleDiv("divPart2on3");
    toggleDiv("divPart1on3");
    scroll(0, 0);
}


function valider() {

    if (!valider_infos())
        return false;
    else
        return valider_coordonnees();
}

function valider_infos() {
    f = document.formulaire;
    num_elts = f.elements.length;

    nbcredits_saisis = 0;
    nbCreditImmo = 0;
    for (var i = 0; i < num_elts; i++) {
        var myfield = f.elements[i];
        if (myfield.name.indexOf("type_credit[") >= 0) {
            if (myfield.value != "") {
                nbcredits_saisis++;
                index = myfield.name.substring(11);
                if (f.elements["type_credit" + index].value == 1 && f.logement[0].checked == false && f.proprio[1].checked == true) {
                    alert("Vous avez déclaré ne pas posséder de biens, veuillez vérifier votre saisie.");
                    f.elements["type_credit" + index].focus();
                    return false;
                }
                if (!ValideNumeriqueMontant(f.elements["remb" + index].value)) {
                    alert("Veuillez vérifier la mensualité.");
                    f.elements["remb" + index].focus();
                    return false;
                }
                if (!ValideNumeriqueMontant(f.elements["capital" + index].value)) {
                    alert("Veuillez vérifier le montant restant à rembourser.");
                    f.elements["capital" + index].focus();
                    return false;
                }
                if (parseInt(f.elements["remb" + index].value) < 1 || parseInt(f.elements["remb" + index].value) > 99000) {
                    alert("Veuillez vérifier votre saisie, le montant de la mensualité doit être compris entre 1 et 99000 €.");
                    f.elements["remb" + index].focus();
                    return false;
                }
                if (parseInt(f.elements["capital" + index].value) < 100 || parseInt(f.elements["capital" + index].value) > 999999) {
                    alert("Veuillez vérifier votre saisie, le montant restant à rembourser doit être compris entre 100 et 999999 €.");
                    f.elements["capital" + index].focus();
                    return false;
                }
                if (parseInt(f.elements["remb" + index].value) > parseInt(f.elements["capital" + index].value)) {
                    alert("Veuillez vérifier votre saisie, le montant de la mensualité ne peut être supérieur au montant restant à rembourser.");
                    f.elements["remb" + index].focus();
                    return false;
                }
            }
        }
    }
    if (nbcredits_saisis == 0) {
        alert("Veuillez saisir au moins un crédit");
        f.elements["type_credit[0]"].focus();
        return false;
    }

    if (f.te_patri_immo.value == "1") {

        a_renseigner = 0;
        for (i = 0; i < num_elts; i++)
            if (f.elements[i].name.indexOf("bien_immo[") >= 0 && f.elements[i].selectedIndex != 0)
            a_renseigner = 1;
        if (a_renseigner == 0) {
            alert("Vous êtes propriétaire et vous n'avez pas déclaré de bien immobilier, veuillez indiquer le type de bien dont vous êtes propriétaire.");
            f.elements["bien_immo[1]"].focus();
            return false;
        }

        if (f.logement[0].checked == false) {
            for (i = 0; i < num_elts; i++) {
                if (f.elements[i].name.indexOf("bien_immo[") >= 0 && f.elements[i].value == "1") {
                    alert("Vous avez déclaré être locataire ou hébergé à titre gratuit, ce bien ne peut être votre résidence principale.");
                    f.elements[i].focus();
                    return false;
                }
            }
        }
        for (i = 0; i < num_elts; i++) {
            if (f.elements[i].name.indexOf("valeur_actuelle_bien[") >= 0 && f.elements[i].value != "0") {
                index = f.elements[i].name.substring(20);
                if (f.elements["bien_immo" + index].selectedIndex == 0) {
                    alert("Veuillez indiquer le type de bien");
                    f.elements["bien_immo" + index].focus();
                    return false;
                }
            }
            if (f.elements[i].name.indexOf("bien_immo[") >= 0 && f.elements[i].selectedIndex != 0) {
                index = f.elements[i].name.substring(9);
                if (f.elements["valeur_actuelle_bien" + index].value == "0") {
                    alert("Vous êtes propriétaire et vous n'avez pas déclaré de valeur pour un bien immobilier, veuillez indiquer une valeur estimative.");
                    f.elements["valeur_actuelle_bien" + index].focus();
                    return false;
                }
                if (parseInt(f.elements["valeur_actuelle_bien" + index].value) < 50000) {
                    alert("Vous n'avez pas renseigné de valeur pour votre bien immobilier. Merci d'indiquer une valeur supérieure à 50 000 €");
                    f.elements["valeur_actuelle_bien" + index].focus();
                    return false;
                }
            }
            if (f.elements[i].name.indexOf("valeur_actuelle_bien[") >= 0 && f.elements[i].value != "0") {
                if (!ValideNumeriqueMontant(f.elements[i].value)) {
                    alert("Veuillez vérifier la valeur actuelle du bien.");
                    f.elements[i].focus();
                    return false;
                }
            }
        }

    }

    if (f.revemp.value == '0') {
        alert("Veuillez saisir le revenu net professionnel");
        f.revemp.focus();
        return false;
    }
    if (isNaN(parseInt(f.revemp.value, 10))) {
        alert("Il y a une erreur sur le revenu net professionnel.");
        f.revemp.focus();
        return false;
    }
    if (f.revcoemp.disabled == false) {
        if (f.revcoemp.value == '0') {
            alert("Veuillez saisir le revenu net professionnel du co emprunteur.");
            f.revcoemp.focus();
            return false;
        }
        if (isNaN(parseInt(f.revcoemp.value, 10))) {
            alert("Il y a une erreur sur le revenu net professionnel du co emprunteur.");
            f.revcoemp.focus();
            return false;
        }
        if (parseInt(f.revcoemp.value, 10) >= 100000) {
            if (confirm("Etes-vous sûr d'avoir saisi le salaire mensuel de votre co emprunteur ?")) return true;
            else { f.revcoemp.focus(); return false; }
        }
    }
    if (f.statut.selectedIndex == 0) {
        alert("Veuillez saisir votre profession.");
        f.statut.focus();
        return false;
    }
    if (f.revcoemp.disabled == false) {
        if (f.statut_conj.selectedIndex == 0) {
            alert("Veuillez saisir la profession du co emprunteur.");
            f.statut_conj.focus();
            return false;
        }
    }
    if (f.anciennete_an.value == "") {
        alert("Veuillez saisir votre ancienneté.");
        f.anciennete_an.focus();
        return false;
    }
    if (f.anciennete_mois.value == "") {
        f.anciennete_mois.value = "0";
    }
    if (f.revcoemp.disabled == false) {
        if (f.ancien_conj_an.value == "") {
            alert("Veuillez saisir l'ancienneté du coemprunteur.");
            f.ancien_conj_an.focus();
            return false;
        }
        if (f.ancien_conj_mois.value == "") {
            f.ancien_conj_mois.value = "0";
        }
    }
    /*if(f.loyers_percus.value == '') {
    f.loyers_percus.value = '0';
    }*/
    if (isNaN(parseInt(f.loyers_percus.value, 10))) {
        alert("Il y a une erreur sur le total des revenus locatifs.");
        f.loyers_percus.focus();
        return false;
    }
    if (parseInt(f.loyers_percus.value) != '0' && f.logement[0].checked == false && f.proprio[0].checked == false) {
        if (confirm("Vous déclarez des revenus locatifs sans être propriétaire. Etes-vous sûr ?")) return true;
        else { f.loyers_percus.focus(); return false; }
    }
    /*if(f.autrerev.value == '') {
    f.autrerev.value = '0';
    }*/
    if (isNaN(parseInt(f.autrerev.value, 10))) {
        alert("Il y a une erreur sur les autres revenus.");
        f.autrerev.focus();
        return false;
    }
    if (f.logement[1].checked == true) {
        if (f.loyer_principal.value == '' || f.loyer_principal.value == '0') {
            alert("Veuillez saisir le loyer actuel de votre résidence principale.");
            f.loyer_principal.focus();
            return false;
        }
        if (isNaN(parseInt(f.loyer_principal.value, 10))) {
            alert("Il y a une erreur sur le loyer actuel de votre résidence principale.");
            f.loyer_principal.focus();
            return false;
        }
    }
    /*if(f.autres_loyers.value == '') {
    f.autres_loyers.value = '0';
    }*/
    if (isNaN(parseInt(f.autres_loyers.value, 10))) {
        alert("Il y a une erreur sur les autres charges.");
        f.autres_loyers.focus();
        return false;
    }

    return true;
}

function valider_coordonnees() {

    f = document.formulaire;
    
    if (f.nom.value == "") {
        alert("Veuillez saisir votre nom.");
        f.nom.focus();
        return false;
    }
    reg = new RegExp("[0-9]", "g");
    if (reg.test(f.nom.value)) {
        alert("Votre nom contient des caractères numériques.");
        f.nom.focus();
        return false;
    }
    if (f.prenom.value == "") {
        alert("Veuillez saisir votre prénom.");
        f.prenom.focus();
        return false;
    }
    if (reg.test(f.prenom.value)) {
        alert("Votre prénom contient des caractères numériques.");
        f.prenom.focus();
        return false;
    }
    if (f.revcoemp.disabled == false) {

        if (f.nom_conj.value == "") {
            alert("Veuillez saisir le nom du co emprunteur.");
            f.nom_conj.focus();
            return false;
        }
        if (reg.test(f.nom_conj.value)) {
            alert("Le nom du co emprunteur contient des caractères numériques.");
            f.nom_conj.focus();
            return false;
        }
        if (f.prenom_conj.value == "") {
            alert("Veuillez saisir le prénom du co emprunteur.");
            f.prenom_conj.focus();
            return false;
        }
        if (reg.test(f.prenom_conj.value)) {
            alert("Le prénom du co emprunteur contient des caractères numériques.");
            f.prenom_conj.focus();
            return false;
        }
    }

    // Validité date de naissance
    dnjour = f.dnjour.selectedIndex;
    dnmois = f.dnmois.selectedIndex;
    dnjour_conj = f.dnjour_conj.selectedIndex;
    dnmois_conj = f.dnmois_conj.selectedIndex;

    if (!testeDate(dnjour, dnmois, f.dnan.value, 1, " la date de naissance")) {
        f.dnjour.focus();
        return false;
    }
    if (f.revcoemp.disabled == false) {
        if (!testeDate(dnjour_conj, dnmois_conj, f.dnan_conj.value, 1, " la date de naissance du co emprunteur")) {
            f.dnjour.focus();
            return false;
        }
    }
    if (f.adresse.value == "") {
        alert("Veuillez saisir votre adresse.");
        f.adresse.focus();
        return false;
    }
    if (!ValideNumerique(f.cp.value, 5)) {
        alert("Il y a une erreur sur le code postal.");
        f.cp.focus();
        return false;
    }
    if (f.ville.value == "") {
        alert("Veuillez saisir le nom de la ville.");
        f.ville.focus();
        return false;
    }
    if (f.tel.value.length != 0 && !ValideNumerique(f.tel.value, 10)) {
        alert("Le numéro de téléphone doit comporter 10 chiffres sans espaces.");
        f.tel.focus();
        return false;
    }
    if (f.tel_mob.value.length != 0 && !ValideNumerique(f.tel_mob.value, 10)) {
        alert("Le numéro de téléphone mobile doit comporter 10 chiffres sans espaces.");
        f.tel_mob.focus();
        return false;
    }
    if (f.tel_pro.value.length != 0 && !ValideNumerique(f.tel_pro.value, 10)) {
        alert("Le numéro de téléphone professionnel doit comporter 10 chiffres sans espaces.");
        f.tel_pro.focus();
        return false;
    }
    if ((f.tel.value.length + f.tel_mob.value.length + f.tel_pro.value.length) == 0) {
        alert("Au moins un numéro de téléphone doit être indiqué.");
        f.tel.focus();
        return false;
    }

    if (f.email_pre.value == "") {
        alert("Merci de nous indiquer votre e-mail.");
        f.email_pre.focus();
        return false;
    }
    if (f.email_suf.value == "") {
        alert("Merci de nous indiquer votre e-mail.");
        f.email_suf.focus();
        return false;
    }
    var email = f.email_pre.value + "@" + f.email_suf.value;
    if ((email.indexOf("@") == -1) || (email.indexOf(".") == -1) || (email.indexOf(";") != -1) || (email.indexOf(" ") != -1)) {
        alert("Le format de l'e-mail est incorrect.");
        f.email_pre.focus();
        return false;
    }
    var reg = new RegExp('^([-0-9A-Za-z._]{2,})+@([-0-9A-Za-z.]{2,})+([.]{1})+([A-Za-z]{2,4})$', 'i'); if (reg.test(email) == false || email.indexOf('..') >= 0) { alert("Le format de l'e-mail est incorrect."); return false; }
   /* 
   Existe plus
   if (!f.acceptecond.checked) {
        alert("Veuillez accepter les conditions générales d'utilisation.");
        f.acceptecond.focus();
        return false;
    }*/

    return true;
}

