﻿function ReserverHeure(IdPoste, IdHeure) {

    //effacer les demandes d'annulation des réservations
    var numResa = document.getElementById('numResa');

    if (numResa.value != '-1') {
        annulerCase(numResa.valeur, numResa.value, 'posteReserv');
        numResa.value = '-1';
        numResa.valeur = '-1';

    }

    // réserver
    var cellule = document.getElementById(IdPoste + '_' + IdHeure);
    var valeurCellule = (cellule.getAttribute('valeur')).split("_");

    /*
    var boutonReserver = document.getElementById('_ctl0__ctl6__ctl0_BoutonReserver');
    alert(boutonReserver.getAttribute('hDeb'));
    boutonReserver.setAttribute('hDeb','50');
    */

    var hDeb = document.getElementById('hDeb');
    var hFin = document.getElementById('hFin');
    var numPoste = document.getElementById('numPoste');

    var valHDeb = hDeb.getAttribute('valeur');
    var valHFin = hFin.getAttribute('valeur');
    var valNumPoste = numPoste.getAttribute('valeur');

    //if (numPoste.value == '-1'){
    if (valNumPoste == '-1') {

        valNumPoste = IdPoste;

    } else {
        if (parseInt(valNumPoste) != parseInt(IdPoste)) {
            effacerCase(valNumPoste);
            valNumPoste = IdPoste;
            valHDeb = '-1';
            valHFin = '-1';
        }
    }

    if (valHDeb == '-1') {

        valHDeb = IdHeure;
        cellule.className = 'posteDemande';

    } else {

        if (parseInt(IdHeure) == parseInt(valHDeb)) {
            effacerCase(valNumPoste);
            /* hDeb.value = '-1';
            hFin.value = '-1';
            numPoste.value = '-1'; */
            valHDeb = '-1';
            valHFin = '-1';
            valNumPoste = '-1';
            document.getElementById('BoutonAnnuler').style.visibility = "hidden";
            document.getElementById('BoutonReserver').style.visibility = "hidden";
            document.getElementById('LblCodeBarre').style.visibility = "hidden";
            document.getElementById('TxtCodeBarre').style.visibility = "hidden";
            document.getElementById('TxtCodeBarre').value = "";
            document.getElementById('LblNumResa').style.visibility = "hidden";
            document.getElementById('TxtNumResa').style.visibility = "hidden";
            document.getElementById('TxtNumResa').value = "";
        } else {
            if (parseInt(IdHeure) > parseInt(valHDeb)) {
                valHFin = determineH(valNumPoste, valHDeb, IdHeure);
            } else {
                valHFin = determineH(valNumPoste, IdHeure, valHDeb);
                valHDeb = IdHeure;

            }
            effacerCase(valNumPoste);
            reserverCase(valNumPoste, valHDeb, valHFin);
            document.getElementById('BoutonAnnuler').style.visibility = "hidden";
            document.getElementById('BoutonReserver').style.visibility = "visible";
            document.getElementById('LblCodeBarre').style.visibility = "visible";
            document.getElementById('TxtCodeBarre').style.visibility = "visible";
            document.getElementById('TxtCodeBarre').disabled = false;
            document.getElementById('TxtCodeBarre').value = "";
            document.getElementById('LblNumResa').style.visibility = "hidden";
            document.getElementById('TxtNumResa').style.visibility = "hidden";
            document.getElementById('TxtNumResa').disabled = true;
            document.getElementById('TxtNumResa').value = "";
        }
    } // end (hDeb.value == '-1')

    hDeb.setAttribute('valeur', valHDeb);
    hFin.setAttribute('valeur', valHFin);
    numPoste.setAttribute('valeur', valNumPoste);

    if (valHDeb != '-1') {
        var celluleDeb = document.getElementById(valNumPoste + '_' + valHDeb);
        var valeurCelluleDeb = (celluleDeb.getAttribute('valeur')).split("_");

        hDeb.value = valeurCelluleDeb[1] + 'h' + valeurCelluleDeb[2];
        numPoste.value = valeurCelluleDeb[0];
        document.getElementById('BoutonAnnuler').style.visibility = "hidden";
        document.getElementById('BoutonReserver').style.visibility = "visible";
        document.getElementById('LblCodeBarre').style.visibility = "visible";
        document.getElementById('TxtCodeBarre').style.visibility = "visible";
        document.getElementById('TxtCodeBarre').disabled = false;
        document.getElementById('TxtCodeBarre').value = "";
        document.getElementById('LblNumResa').style.visibility = "hidden";
        document.getElementById('TxtNumResa').style.visibility = "hidden";
        document.getElementById('TxtNumResa').disabled = true;
        document.getElementById('TxtNumResa').value = "";
    } else {
        hFin.value = '';
        hDeb.value = '';
        numPoste.value = '';
    }

    if (valHFin != '-1') {
        /*var celluleFin = document.getElementById(valNumPoste+'_'+parseInt(valHFin+1));
        var valeurCelluleFin = (celluleFin.getAttribute('valeur')).split("_");
        hFin.value = valeurCelluleFin[1]+'h'+valeurCelluleFin[2];*/
        var celluleFin = document.getElementById(valNumPoste + '_' + parseInt(valHFin));
        var valeurCelluleFin = (celluleFin.getAttribute('valeur')).split("_");
        valHFin = valeurCelluleFin[3] + 'h' + valeurCelluleFin[4];

    } else {
        // hFin.value ='';
        if (valHDeb != '-1') {
            var celluleFin = document.getElementById(valNumPoste + '_' + parseInt(valHDeb));
            var valeurCelluleFin = (celluleFin.getAttribute('valeur')).split("_");
            valHFin = valeurCelluleFin[3] + 'h' + valeurCelluleFin[4];
        } else {
            valHFin = -1;
        }
    }
    hFin.setAttribute('valeur', valHFin);
    hFin.value = valHFin;


} // end Function

function effacerCase(valNumPoste) {
    var i = 0;
    var encore = true;
    //effacer toutes les cases réservées
    while (encore) {

        var raz = document.getElementById(valNumPoste + '_' + i);
        if (raz.reserver == 'False') raz.className = 'posteDispo';
        i++;
        if (document.getElementById(valNumPoste + '_' + i) == null) {
            encore = false;
        } //end if
    } // end While (encore)

} //end function

function reserverCase(valNumPoste, valHDeb, valHFin) {
    //réserver les cases de hDeb à hFin
    var numH = 0;
    if (parseInt(valHDeb) >= 0) {
        for (numH = parseInt(valHDeb); numH <= parseInt(valHFin); numH++) {
            var reserv = document.getElementById(valNumPoste + '_' + numH);
            if (reserv.reserver == 'False') reserv.className = 'posteDemande';
        }

    } //end if (hDeb.value <> '-1'){

} //end function

function determineH(valNumPoste, valHDeb, valHFin) {
    //Retourne la dernière case avant une case réservée.
    var num = valHDeb;
    for (num = parseInt(valHDeb); num <= parseInt(valHFin); num++) {
        var reserv = document.getElementById(valNumPoste + '_' + num);
        if (reserv.reserver == 'True') { return parseInt(num - 1); }
    }
    return parseInt(num - 1);
} //end function

function annulerCase(IdPoste, numResaCellule, laClasse) {

    var i = 0;
    var encore = true;
    //effacer toutes les cases réservées
    while (encore) {
        var raz = document.getElementById(IdPoste + '_' + i);
        if (raz.numResa == numResaCellule) raz.className = laClasse;
        i++;
        if (document.getElementById(IdPoste + '_' + i) == null) {
            encore = false;
        } //end if
    } // end While (encore)

}

function AnnulerReserv(IdPoste, IdHeure) {

    //effacer les demandes des réservations
    var valHDeb = document.getElementById('hDeb');
    var valHFin = document.getElementById('hFin');
    var valNumPoste = document.getElementById('numPoste');

    if (valHDeb.valeur != '-1' && valHFin.valeur != '-1') {
        effacerCase(valNumPoste.valeur);
        valHDeb.valeur = '-1';
        valHDeb.value = '';
        valHFin.valeur = '-1';
        valHFin.value = '';
        valNumPoste.valeur = '-1';
        valNumPoste.value = '';
        document.getElementById('BoutonAnnuler').style.visibility = "hidden";
        document.getElementById('BoutonReserver').style.visibility = "hidden";
        document.getElementById('LblCodeBarre').style.visibility = "hidden";
        document.getElementById('TxtCodeBarre').style.visibility = "hidden";
        document.getElementById('TxtCodeBarre').value = "";
        document.getElementById('LblNumResa').style.visibility = "hidden";
        document.getElementById('TxtNumResa').style.visibility = "hidden";
        document.getElementById('TxtNumResa').value = "";
    }

    // annulerReserv
    var cellule = document.getElementById(IdPoste + '_' + IdHeure);
    var numResaCellule = cellule.getAttribute('numResa');
    var nomEmpr = cellule.getAttribute('nomEmpr');
    var codeEmpr = cellule.getAttribute('codeEmpr');
    var numResa = document.getElementById('numResa');
    // numResa.value => valeur passée au serveur pour annuler la réservation
    // numResa.valeur => IdPoste pour mémoire

    if (numResa.value == '-1') {
        numResa.value = numResaCellule;
        numResa.valeur = IdPoste;
        annulerCase(IdPoste, numResaCellule, 'posteAnnuler');
        document.getElementById('BoutonAnnuler').style.visibility = "visible";
        document.getElementById('BoutonReserver').style.visibility = "hidden";
        document.getElementById('LblCodeBarre').style.visibility = "visible";
        document.getElementById('TxtCodeBarre').style.visibility = "visible";
        document.getElementById('TxtCodeBarre').disabled = true;
        document.getElementById('TxtCodeBarre').value = codeEmpr;
        document.getElementById('LblNumResa').style.visibility = "visible";
        document.getElementById('TxtNumResa').style.visibility = "visible";
        document.getElementById('TxtNumResa').disabled = true;
        document.getElementById('TxtNumResa').value = numResa.value;
    } else if (numResa.value == numResaCellule) {
        numResa.value = '-1';
        numResa.valeur = '-1';
        annulerCase(IdPoste, numResaCellule, 'posteReserv');
        document.getElementById('BoutonAnnuler').style.visibility = "hidden";
        document.getElementById('BoutonReserver').style.visibility = "hidden";
        document.getElementById('LblCodeBarre').style.visibility = "hidden";
        document.getElementById('TxtCodeBarre').style.visibility = "hidden";
        document.getElementById('TxtCodeBarre').value = "";
        document.getElementById('LblNumResa').style.visibility = "hidden";
        document.getElementById('TxtNumResa').style.visibility = "hidden";
        document.getElementById('TxtNumResa').value = "";
    } else {
        annulerCase(numResa.valeur, numResa.value, 'posteReserv');
        annulerCase(IdPoste, numResaCellule, 'posteAnnuler');
        numResa.value = numResaCellule;
        numResa.valeur = IdPoste;
        document.getElementById('BoutonAnnuler').style.visibility = "visible";
        document.getElementById('BoutonReserver').style.visibility = "hidden";
        document.getElementById('LblCodeBarre').style.visibility = "visible";
        document.getElementById('TxtCodeBarre').style.visibility = "visible";
        document.getElementById('TxtCodeBarre').disabled = true;
        document.getElementById('TxtCodeBarre').value = codeEmpr;
        document.getElementById('LblNumResa').style.visibility = "visible";
        document.getElementById('TxtNumResa').style.visibility = "visible";
        document.getElementById('TxtNumResa').disabled = true;
        document.getElementById('TxtNumResa').value = numResa.value;
    }

} // end Function
