
function padDigits(n, totalDigits) 
    { 
        n = n.toString(); 
        var pd = ''; 
        if (totalDigits > n.length) 
        { 
            for (i=0; i < (totalDigits-n.length); i++) 
            { 
                pd += '0'; 
            } 
        } 
        return pd + n.toString(); 
    }

var fitting_delay = 2;

function calcDateTimes(){
    if ($('BookingLandingDate').value != ''){
        var blt = $('BookingLandingTime')
        var time_selected = blt.value;
        var time_arr = time_selected.split(':');
        var hour = Number(time_arr[0]);
        var minute = time_arr[1];
        arrival_time = hour+fitting_delay;
        var l = $('BookingLandingDate').value.split('/');
        var landing_date = new Date(l[2],l[1],l[0]);
        var arrival_date = landing_date;
    
        //if ($('BookingFirstHireDate').value == ''){
            if (arrival_time > 22){
                // deliver next day at 8am:
                $('BookingArrivalTime').value = "08:00";
                arrival_date = new Date();
                arrival_date.setTime(landing_date.valueOf());
                arrival_date.setDate(landing_date.getDate() + 1);
                arrival_date_formatted = padDigits(arrival_date.getDate(), 2)+"/"+padDigits(arrival_date.getMonth(), 2)+"/"+arrival_date.getFullYear();

                $('BookingArrivalDate').value = arrival_date_formatted;

            }else if (arrival_time > 20){
                $('BookingArrivalTime').value = "22:00";
                $('BookingArrivalDate').value = $('BookingLandingDate').value;
            }else{
                $('BookingArrivalDate').value = $('BookingLandingDate').value;
                arrival_time = padDigits(arrival_time, 2);
                $('BookingArrivalTime').value = arrival_time +":"+ minute;
            }
        //}
    
    
        arrival_date_formatted = $('BookingArrivalDate').value
    
        // first skiing day - if not set, should be the same as the deliver day unless
        // the time is 12.00 or later
        //if ($('BookingFirstHireDate').value == ''){
            if (Number($('BookingArrivalTime').value.split(':')[0]) >= 12){
                var first_hire_date = new Date();
                first_hire_date.setTime(arrival_date.valueOf());
                first_hire_date.setDate(arrival_date.getDate() + 1);
                first_hire_date_formatted = padDigits(first_hire_date.getDate(), 2)+"/"+padDigits(first_hire_date.getMonth(), 2)+"/"+first_hire_date.getFullYear();
                $('BookingFirstHireDate').value = first_hire_date_formatted;
            }else{           
                var first_hire_date = arrival_date;
                $('BookingFirstHireDate').value = arrival_date_formatted;
            }
        //}
    
        // last skiing day - if not set, should be 6 days after the first hire date
        //if ($('BookingDepartureDate').value == ''){
            var last_hire_date = new Date();
            last_hire_date.setTime(first_hire_date.valueOf());
            last_hire_date.setDate(first_hire_date.getDate() + 6);
            last_hire_date_formatted = padDigits(last_hire_date.getDate(), 2)+"/"+padDigits(last_hire_date.getMonth(), 2)+"/"+last_hire_date.getFullYear();
            $('BookingDepartureDate').value = last_hire_date_formatted;
        //}
    
    }
}    

function sortTransportMethod(){
    var date_hint = $('BookingLandingDate').getNext('span[class=hint]');
    var time_hint = $('BookingLandingTime').getNext('span[class=hint]');
    
    if ($('BookingTransportMethod').value == 'Fly'){
        date_hint.set('html', 'What date do you land?');
        time_hint.set('html', 'What time do you land?');
        fitting_delay = 2;
    }else{
        date_hint.set('html', 'What date do you arrive in resort?')
        time_hint.set('html', 'What time do you arrive in resort?')
        fitting_delay = 0;
    }
}

window.addEvent('domready', function() {
	//myCal1 = new Calendar({ BookingArrivalDate: 'd/m/Y' }, { direction: 1, tweak: { x: 6, y: 0 }});
	var bookingCal = new Calendar({ BookingLandingDate: 'd/m/Y', BookingArrivalDate: 'd/m/Y',BookingFirstHireDate: 'd/m/Y', BookingDepartureDate: 'd/m/Y' }, 
				 { pad: 0}); 
				
	$('BookingTransportMethod').addEvent('change', function(e){
	    var ev = new Event(e).stop();
	    sortTransportMethod();
	});
	
	$('BookingLandingTime').addEvent('change', function(e){
	    var ev = new Event(e).stop();
	    calcDateTimes();
	});
	
	sortTransportMethod();
	
});

