
var arrivalDate, deptDate; //, stayDays = 0;

/**
 * Function to fill values of fields necessary for Dingus Bookinweb 
 * @param (str) w -- E = entrada, S = salida 
 * @param (str) v -- a JS date string (ie: Fri Jul 22 2011 00:00:00 GMT+0200)  
 */ 
function update_fields(w) { // , v
    var d, my;
    var dateObj = w == "S" ? deptDate : arrivalDate;
    //alert("function update_fields("+w+"): dateObj.toString: "+dateObj.toString());
    
    if(dateObj !== "") {
        //var dateObj = new Date($.datepicker.formatDate("yy", v), $.datepicker.formatDate("m", v), $.datepicker.formatDate("d", v));
        
        if(d = dateObj.getDate()) {
            my = dateObj.getMonth() + "-" + dateObj.getFullYear();
        }
        /*
        d = dateObj.getDate();
        my = dateObj.getMonth() + "-" + dateObj.getFullYear();
        */
        
    } else {
        d = "";
        my = "";
    }
    
    $("#e_DIA_"+w).val(d);
    $("#e_MES_"+w).val(my);
    //alert("Updated dingus fields ("+w+"): "+d+" | "+my);
}

function empty_dept_date() {
    deptDate = false;
    $("#cx_date_departure").val("");
    update_fields("E");
}

$(function(){
    
    // Datepicker Arrival
    $('#cx_date_arrival').datepicker({
        inline: true,
        firstDay: 1,
        dateFormat: "DD, d MM, yy",
        minDate: "+1d",
        onSelect: function(selectedDate) {
            var i = $(this).data("datepicker");
            var dateStr = $.datepicker.parseDate(i.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, i.settings);
            
            //alert("dateStr: "+dateStr);
            
            arrivalDate = new Date($.datepicker.formatDate("yy", dateStr), $.datepicker.formatDate("m", dateStr) - 1, $.datepicker.formatDate("d", dateStr)); 
            
            update_fields("E");
            
            /**
             * Update of the departure date:
             * - If empty: nothing
             * - If before selectedDate: add stayDays days to selectedDate
             * - If after selectedDate: no change 
             */
            if(deptDate !== "") {
                if(deptDate <= arrivalDate) {
                    empty_dept_date();
                }
            }
            
            /**
             * The new minimum departure date 
             */
            $('#cx_date_departure').datepicker( "option", "minDate", new Date(arrivalDate.getFullYear(), arrivalDate.getMonth(), arrivalDate.getDate()+1));
        }
    });
    
    // Datepicker Departure
    $('#cx_date_departure').datepicker({
        inline: true,
        firstDay: 1,
        dateFormat: 'DD, d MM, yy',
        minDate: "+2d",
        onSelect: function(selectedDate) {
            var i = $(this).data("datepicker");
            var dateStr = $.datepicker.parseDate(i.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, i.settings);
            
            //alert("dateStr: "+dateStr);
            
            deptDate = new Date($.datepicker.formatDate("yy", dateStr), $.datepicker.formatDate("m", dateStr) - 1, $.datepicker.formatDate("d", dateStr)); 
            
            update_fields("S");
            
        }
    });
    
});
