﻿function updateDepartDate ()
{
    var arrivalControl = $("#" + arrivalControlId);
    var durationControl = $("#" + durationControlId);
    var departControl = $("#" + departControlId);

    var departDate = dateFromString (arrivalControl.attr("value"));
    departDate.setDate(departDate.getDate() + parseInt(durationControl.attr("value")));
    
    departControl.attr("value", dateToString(departDate));    
    departControl.trigger("change");
}

function updateNights()
{
    var arrivalControl = $("#" + arrivalControlId);
    var durationControl = $("#" + durationControlId);
    var departControl = $("#" + departControlId);
    
    var arrivalDate = dateFromString (arrivalControl.attr("value"));
    var departDate = dateFromString (departControl.attr("value"));
      
    durationControl.attr("value", Math.round(dateDifferenceInDays(arrivalDate, departDate)));
}

/* dateToString */
function dateToString(date)
{
    var day = date.getDate();
    if (day.toString().length == 1) {day = '0' + day;}

    var month = date.getMonth() + 1;
    if (month.toString().length == 1) {month = '0' + month;}    
    
    var year = date.getFullYear();

    return day + "/" + month + "/" +  year;
}

/* dateFromString */
function dateFromString(dateString)
{
    var dateParts = dateString.split("/")
    var date = new Date();
   
    date.setFullYear(dateParts[2]);   
    date.setMonth(dateParts[1]-1);
    date.setDate(dateParts[0]);
    date.setHours(0);
    date.setMinutes(0);
    date.setSeconds(0);
    date.setMilliseconds(0);
           
    return date;
}

/* dateDifferenceInDays */
function dateDifferenceInDays(date1, date2)
{
    var durationInMilliSeconds = date2 - date1;
    var durationInDays = (durationInMilliSeconds / 1000 / 60 / 60 / 24);
    durationInDays = Math.round (durationInDays ); //Just in case theres a clock change
    
    return durationInDays;
}