﻿var separateur = " ";
function addDaysmef(d, j) //additionner des jours à une date et la mettre au format s-99-mois-9999
{
    var madate = new Date(d.getTime() + (1000 * 60 * 60 * 24 * j));
    var jourc = madate.getDate();// alert("jourc=" + jourc + ">>madate=" + madate + ">>j=" + j + ">>d=" + d)
    var joursnum = madate.getDay();
    var jourslib = semainedays.split("]")[lang - 1].split(",")[joursnum];
    var moiscnum = madate.getMonth();
    var moisclib = moismonths.split("]")[lang - 1].split(",")[moiscnum];
    var anneec = madate.getFullYear();
    return jourslib + separateur + jourc + separateur + moisclib + separateur + anneec
}
function reversemef(x) { //transformer une date s-99-mois-9999 en date format javascript
    var str = x + separateur;
    var jourc = str.split(separateur)[1];
    var anneec = str.split(separateur)[3];
    var moisclib = str.split(separateur)[2];
    if (lang != 2) {
        var moiscnum = 0;
        var langmois = moismonths.split("]")[lang - 1]
        for (var i = 0; i < 12; i++) {
            if (moisclib == langmois.split(",")[i]) { moiscnum = i; }
        }
        moisclib = moismonths.split("]")[1].split(",")[moiscnum];
    }
    var temps = moisclib + "," + jourc + "," + anneec;
    return new Date(temps);
}
function diffdate(date1, date2) { //interval en jours entre 2 dates
    var d1 = date1.getTime(); var d2 = date2.getTime();
    var nbnuits = d2 - d1;
    return Math.round((Math.round(nbnuits) / 1000) / 60 / 60 / 24);
}
function seleczonedates() {
    if (mesnbnights == 0) { document.getElementsByTagName("*").nights.style.display = "none"; }
}
today = new getToday();
var element_id;
var delta = 0;
fermer = "Fermer,Hide,Ocultar,Nascondere,Verheimlichen,"
//<SPAN style="COLOR: black; FONT-SIZE: 10px"><B>Hide</B></SPAN></A>
function maketampon() {
    var madate1 = reversemef(document.getElementsByTagName("*")["MyDate"].value)
    var madate1jour = madate1.getDate(); if (madate1jour < 10) { madate1jour = "0" + madate1jour };
    var madate1mois = madate1.getMonth() + 1; if (madate1mois < 10) { madate1mois = "0" + madate1mois };
    retourtampon = madate1jour + "/" + madate1mois + "/" + madate1.getFullYear() + "|" + diffdate(orig, madate1) + "|"
    if (mydate2ok == 1) {
        var madate2 = reversemef(document.getElementsByTagName("*")["MyDate2"].value)
        var madate2jour = madate2.getDate(); if (madate2jour < 10) { madate2jour = "0" + madate2jour };
        var madate2mois = madate2.getMonth() + 1; if (madate2mois < 10) { madate2mois = "0" + madate2mois };
        retourtampon = retourtampon + madate2jour + "/" + madate2mois + "/" + madate2.getFullYear() + "|" + diffdate(orig, madate2) + "|"
    }
    //document.forms[0].hidretourdates.value = retourtampon;
    //document.forms[0].hidinittampon.value = racine + retourtampon.split("|")[0] + "|" + retourtampon.split("|")[2]+"|"
    //document.getElementsByTagName("*").initdeb.value = retourtampon.split("|")[0];
    //document.getElementsByTagName("*").initfin.value = retourtampon.split("|")[2];
    //alert("retourtampon="+retourtampon)
}
function getDays(month, year) {
    // Test for leap year when February is selected.
    if (month == 1) {
        if (year % 4 == 0) { return 29 }
        if (year % 4 != 0) { return 28 }
    }
    //return ((0 == year % 4) && (0 != (year % 100))) 
    //	(0 == year % 400) ? 29 : 28;
    else {
        return daysInMonth[month];
    }
}
function getToday() {
    // Generate today's date.
    this.now = new Date();
    this.year = this.now.getFullYear(); // Returned year XXXX
    this.month = this.now.getMonth();
    this.day = this.now.getDate();
}
function getArrday() //date issue de myDate
{
    this.now = reversemef(document.getElementsByTagName("*")["MyDate"].value)
    this.year = this.now.getFullYear(); // Returned year XXXX
    this.month = this.now.getMonth();
    this.day = this.now.getDate();
}
function newCalendar() {
    var parseYear = parseInt(document.getElementsByTagName("*").year[document.getElementsByTagName("*").year.selectedIndex].text);
    var newCal = new Date(parseYear, document.getElementsByTagName("*").month.selectedIndex, 1);
    var day = -1;
    var startDay = newCal.getDay();
    var daily = 0;
    delta = 0;
    today = new getToday(); // 1st call
    var redday;
    if (element_id == "MyDate") { redday = today; }
    if (element_id == "MyDate2") { redday = new getArrday(); }
    if ((redday.year == newCal.getFullYear()) && (redday.month == newCal.getMonth())) //if ((today.year == newCal.getFullYear() ) &&   (today.month == newCal.getMonth()))
        day = redday.day; //day = today.day;
    // Cache the calendar table's tBody section, dayList.
    var tableCal = document.getElementsByTagName("*").calendar.tBodies.dayList;
    var intDaysInMonth =
	   getDays(newCal.getMonth(), newCal.getFullYear());
    for (var intWeek = 0; intWeek < tableCal.rows.length; intWeek++)
        for (var intDay = 0;
			 intDay < tableCal.rows[intWeek].cells.length;
			 intDay++) {
        var cell = tableCal.rows[intWeek].cells[intDay];
        // Start counting days.
        if ((intDay == startDay) && (0 == daily)) { daily = 1; }
        if ((intDay != startDay) && (0 == daily)) { delta++; }
        // Highlight the current day.document.forms[0].hidbasicolor.value;
        cell.style.color = (day == daily) ? "red" : "";
        // Output the day number into the cell.
        if ((daily > 0) && (daily <= intDaysInMonth))
        { cell.innerHTML = daily++; }
        else
        { cell.innerHTML = ""; }
    }

}
function getTodayDay() {
    document.getElementsByTagName("*")[element_id].value = today.day + "/" + (today.month + 1) + "/" + today.year;
    document.getElementsByTagName("*").calendar.style.display = "none";
    document.getElementsByTagName("*").year.selectedIndex = 100;
    document.getElementsByTagName("*").month.selectedIndex = today.month;
}
//function getDate(e) {
// au niveau de chaque page
//}
function GetBodyOffsetX(el_name, shift) {
    var x;
    var y;
    x = 0;
    y = 0;
    var elem = document.getElementsByTagName("*")[el_name];
    //alert("je suis ici=" + elem.id)
    do {
        x += elem.offsetLeft;
        y += elem.offsetTop;
        if (elem.tagName == "BODY")
            break;
        elem = elem.offsetParent;
    } while (1 > 0);
    shift[0] = x;
    shift[1] = y;
    return x;
}
//function SetCalendarOnElement(el_name) {
//au niveau de chaque page
//}
function ShowCalendar(elem_name) {
    if (elem_name == "")
        elem_name = element_id;
    element_id = elem_name; // element_id is global variable
    //positionner les combo month et year par rapport au contenu de l' input
    var datecourante = reversemef(document.getElementsByTagName("*")[element_id].value)
    document.getElementsByTagName("*").month.selectedIndex = datecourante.getMonth()
    document.getElementsByTagName("*").year.selectedIndex = datecourante.getFullYear() - yeardeb
    //------------------------
    newCalendar();
    SetCalendarOnElement(element_id);
    document.getElementsByTagName("*").calendar.style.display = "inline";
}
function HideCalendar() {
    document.getElementsByTagName("*").calendar.style.display = "none";
}
function toggleCalendar(elem_name) {
    if (document.getElementsByTagName("*").calendar.style.display == "none")
        ShowCalendar(elem_name);
    else
        HideCalendar();
}
function newdatefin() {
    //document.getElementsByTagName("*")["MyDate2"].value = addDaysmef(reversemef(document.getElementsByTagName("*")["MyDate"].value), document.getElementsByTagName("*").nights.selectedIndex + 1)
    document.getElementsByTagName("*")["MyDate2"].value =addDaysToDate(document.getElementsByTagName("*")["MyDate"].value, document.getElementsByTagName("*").nights.selectedIndex + 1)
}
//function neutraliserkb(evt){evt.returnValue=false;}
function parseDate() {
    document.getElementsByTagName("*")["MyDate"].value = addDaysmef(initmydate, 0);
    if (mydate2ok == 1) { document.getElementsByTagName("*")["MyDate2"].value = addDaysmef(initmydate, 1); }
    if (mesnbnights == 1) { document.getElementsByTagName("*").nights.selectedIndex = 0; }
}
function recupdates() {
    if (document.getElementById("hidretourpromo").value != "") { retourtampon = document.getElementById("hidretourpromo").value;document.getElementById("hidretourpromo").value = ""; }
    document.getElementById("hidretourdates").value = retourtampon;
    setTimeout("recupdates()", 500);
}
function getPosition(element,x) {
    var left = 0; var top = 0;
    /*On récupère l'élément*/
    var e = document.getElementById(element);
    /*Tant que l'on a un élément parent*/
    while (e.offsetParent != undefined && e.offsetParent != null) {		/*On ajoute la position de l'élément parent*/
        left += e.offsetLeft + (e.clientLeft != null ? e.clientLeft : 0);
        top += e.offsetTop + (e.clientTop != null ? e.clientTop : 0);
        e = e.offsetParent;
    }
    //return new Array(left, top);
    if (x == "left") { return left }
    if (x == "top") { return top }
}
function addDaysToDate(anc_date, delta_days) {
    var madate = reversemef(anc_date)
       var jourinit = madate.getDay(); jourfin = (jourinit + delta_days) % 7
    var mois = madate.getMonth() + 1; var an = madate.getFullYear()
    var old_date =madate.getDate() + "/" + mois+"/"+an
        // Date plus plus quelques jours
    var split_date = old_date.split('/');
    // Les mois vont de 0 a 11 donc on enleve 1, cast avec *1
    var new_date = new Date(split_date[2], split_date[1] * 1 - 1, split_date[0] * 1 + delta_days);
    var new_day = new_date.getDate();
    //new_day = ((new_day < 10) ? '0' : '') + new_day; // ajoute un zéro devant pour la forme
    var new_month = new_date.getMonth() + 1;
    new_month = ((new_month < 10) ? '0' : '') + new_month; // ajoute un zéro devant pour la forme
    var new_year = new_date.getYear();
    new_year = ((new_year < 200) ? 1900 : 0) + new_year; // necessaire car IE et FF retourne pas la meme chose
    var new_date_text = new_day + '/' + new_month + '/' + new_year;
    return semainedays.split("]")[lang - 1].split(",")[jourfin] + separateur + new_day + separateur + moismonths.split("]")[lang - 1].split(",")[new_month - 1] + separateur + new_year
}
