﻿// Copyright © 2009 Powered By www.GLOBUS-WEB.com 

// Affichage de la durée
function duree() {
    if (document.forms[0]['date_departJS'].value == '') alert("Date de départ invalide !");
    else if (document.forms[0]['date_retourJS'].value == '') alert("Date de retour invalide !");
    else {
        calcul_duree(document.forms[0]['date_departJS'].value, document.forms[0]['date_retourJS'].value);
        document.forms[0]['ctl00_ContentPlaceHolder1_Wizard1_date_depart'].value = document.forms[0]['date_departJS'].value
        document.forms[0]['ctl00_ContentPlaceHolder1_Wizard1_date_retour'].value = document.forms[0]['date_retourJS'].value
        document.forms[0]['ctl00_ContentPlaceHolder1_Wizard1_duree_location'].value = document.forms[0]['TextBox_dureeJS'].value
    }
    return;
}


// Calcul de la durée
function calcul_duree(datedebut, datefin) {

    semaine_lettre = new Array("0", "Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi");
    mois_lettre = new Array("0", "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre");
    mois_chiffre = new Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
    annee_29 = new Array(0, 2000, 2004, 2008, 2012, 2016, 2020, 2024, 2028, 2032, 2036, 2040, 2046, 2050);
    jours_annee_28 = new Array(0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
    jours_annee_29 = new Array(0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
    
    listdebut = datedebut.split(" ");
    listfin = datefin.split(" ");
    
    
    // Verifier le contenu des champs depart et retour
    // correspendent à la forme suivante "Jeudi 25 Septembre 2008 [20:55]"
    
    // Verifier si l'année de départ ne dépasse pas de 2 année l'année actuelle
    today = new Date();
    year = today.getFullYear();
    if ((listdebut[3] < year) || (listdebut[3] > (year + 1))) {
        alert("Année de départ invalide !"); return;
    }
    // Verifier si l'année de retour ne dépasse pas de 2 année l'année de départ
    if ((listfin[3] < listdebut[3]) || (listfin[3] > (parseInt(listdebut[3], 10) + 1))) {
        alert("Année de retour invalide !"); return;
    }

    // Verifier si le mois en lettre existe et valide
    var ok = 0
    for (var m = 1; m <= 12; m++) {
        if (listdebut[2] == mois_lettre[m]) { ok = 1; y = 12; }
        else if (ok == 0 && y == 12) {
            alert("Mois de départ invalide !");
            return false;
        }
    }
    for (var m = 1; m <= 12; m++) {
        if (listfin[2] == mois_lettre[m]) { ok = 1; y = 12; }
        else if (ok == 0 && y == 12) {
            alert("Mois de retour invalide !");
            return false;
        }
    }
    
    // Verifier si le jour en chiffre est valide
    if ((listdebut[1] < 1) || (listdebut[1] > 31)) {
        alert("Jour du mois de départ invalide !"); return;
    }
    if ((listfin[1] < 1) || (listfin[1] > 31)) {
        alert("Jour du mois de retour invalide !"); return;
    }

    
    // Calcul de la duree de reservation
    // correspendant aux deux dates
    
    // Choix du nombre de jours pour le mois de Février 28 ou 29 correspondant à l'année choisie
    for (var y = 1; y <= 13; y++) {
        if (listdebut[3] == annee_29[y]) { annee_chiffre_debut = jours_annee_29; y = 13; }
        else annee_chiffre_debut = jours_annee_28;
    }
    for (var y = 1; y <= 13; y++) {
        if (listfin[3] == annee_29[y]) { annee_chiffre_fin = jours_annee_29; y = 13; }
        else annee_chiffre_fin = jours_annee_28;
    }

    // Transformer le mois en chiffres
    for (var i = 1; i <= 12; i++) {
        if (listdebut[2] == mois_lettre[i]) var mois_debut = mois_chiffre[i];
        if (listfin[2] == mois_lettre[i]) var mois_fin = mois_chiffre[i];
    }
    
    // Différence en jours entre les deux dates 
    var duree = 0;
    var diff_annee = parseInt(listfin[3], 10) - parseInt(listdebut[3], 10);
    if (diff_annee == 0) { // Cas pour la même année
        if (mois_debut == mois_fin) { // Diff jours dans le cas où le même mois
            duree = parseInt(listfin[1], 10) - parseInt(listdebut[1], 10);
        } else if (mois_debut != mois_fin) { // Diff jours dans le cas où les mois sont différents
            var jours_mois_debut = annee_chiffre_debut[mois_debut] - listdebut[1];
            var jours_mois_fin = listfin[1];
            var jours_mois_intermediaires = 0; // Nombre de jours intermediaires
            k = 0;
            for (var m = (mois_debut + 1); m < mois_fin; m++) {
                k = k + annee_chiffre_debut[m];
            }
            jours_mois_intermediaires = k;
            duree = parseInt(jours_mois_debut, 10) + parseInt(jours_mois_intermediaires, 10) + parseInt(jours_mois_fin, 10);
        }
    } else { // Cas pour deux années différentes
        var jours_mois_debut = annee_chiffre_debut[mois_debut] - listdebut[1];
        var jours_mois_fin = listfin[1];
        var jours_mois_intermediaires = 0; // Nombre de jours intermediaires
        k = 0;
        for (var m = (mois_debut + 1); m <= 12; m++) {
            k = k + annee_chiffre_debut[m];
        }

        for (var m = 1; m < mois_fin; m++) {
            k = k + annee_chiffre_fin[m];
        }
        jours_mois_intermediaires = k;
        duree = parseInt(jours_mois_debut, 10) + parseInt(jours_mois_intermediaires, 10) + parseInt(jours_mois_fin, 10);
    }
    if (duree > 30) {
        alert("Durée de reservation ne doit pas dépasser 30 j !\nPour une durée supérieure, une nouvelle reservation est necessaire."); return;
    } else document.forms[0]['TextBox_dureeJS'].value = duree + " jours";

    if (duree == 1) {
        document.forms[0]['TextBox_dureeJS'].value = duree + " jour";
    } else document.forms[0]['TextBox_dureeJS'].value = duree + " jours";


    // Remplissage de la ListBox Jours avec chauffeur
    document.forms[0]['os_chauffeur_joursJS'].options.length = 0;
    for (var i = 1; i <= duree; i++) {
        if (i != 1) nouvel_element = new Option((i + " " + "jours"), i);
        else nouvel_element = new Option((i + " " + "jour"), i);
        document.forms[0]['os_chauffeur_joursJS'].options[i - 1] = nouvel_element;  
    }
    document.forms[0]['os_chauffeur_joursJS'].selectedIndex = duree - 1;

    return true;
}



// CheckBox Avec chauffeur 
function checkboxOn() {
    var selec = document.forms[0]['os_chauffeur_joursJS'].disabled;
    if (selec == true) {
        document.forms[0]['os_chauffeur_joursJS'].disabled = false;
        document.forms[0]['ctl00_ContentPlaceHolder1_Wizard1_os_chauffeur_jours'].disabled = false;
        document.forms[0]['ctl00_ContentPlaceHolder1_Wizard1_os_chauffeur'].checked = true;    
    }
    else if (selec == false) {
        document.forms[0]['os_chauffeur_joursJS'].disabled = true;
        document.forms[0]['ctl00_ContentPlaceHolder1_Wizard1_os_chauffeur_jours'].disabled = true;
        document.forms[0]['ctl00_ContentPlaceHolder1_Wizard1_os_chauffeur'].checked = false;
    }
}



// ListBox Avec chauffeur
function listboxOn() {
    var valu = ""
        if (document.forms[0]['os_chauffeur_joursJS'].value != 1)
            valu = document.forms[0]['os_chauffeur_joursJS'].value + " " + "jours";
        else valu = document.forms[0]['os_chauffeur_joursJS'].value + " " + "jour";
        document.forms[0]['ctl00_ContentPlaceHolder1_Wizard1_os_chauffeur_jours'].value = valu;
    }



// Conservation des variables
function history_back() {

    // Données A
    document.forms[0]['date_departJS'].value = document.forms[0]['ctl00_ContentPlaceHolder1_Wizard1_date_depart'].value
    document.forms[0]['date_retourJS'].value = document.forms[0]['ctl00_ContentPlaceHolder1_Wizard1_date_retour'].value
    document.forms[0]['TextBox_dureeJS'].value = ""
    document.forms[0]['ctl00_ContentPlaceHolder1_Wizard1_os_chauffeur'].checked = false;
}


window.onload = function() { history_back(); }