$(function() { 

	// initialise octopus hotel form default date (6 days aheaad) and stay (1 night)
	defaultDelay = 6;
	var stayLength = 1;

	var a = new Date();
	var b = new Date();
	a.setDate(a.getDate()+defaultDelay);

	adjustCheckout(a);

	$('#checkin').val(formatDate(a));	
	$('#nights').val(stayLength);
	
	$('#checkin').blur(function() {

		if (this.value != formatDate(a)) {
		
			temp = this.value.split('/');
			
			a.setDate(temp[0]);
			a.setMonth(temp[1]-1);
			a.setFullYear('20'+temp[2]);

			adjustCheckout(a);
						
		}
		
	});
	
	$('#nights').blur(function() {
	
		if (this.value != stayLength) {
		
			stayLength = parseInt(this.value);			

			adjustCheckout(a);
			
		}
	
	});

	// trigger date picker on hotel checkin calendar icon
	$('.calIcon').click(function() {				
		initElementIds('checkin');		
		displayCalendarOnClick(document.getElementById('checkin'),'dd/mm/yy','checkin');				
	});
	
	// trigger date picker on hotel checkin date
	$('#checkin').click(function() {
		initElementIds('checkin');
		displayCalendarOnClick(this,'dd/mm/yy','checkin');
	}).select(function() {
		initElementIds('checkin');
		displayCalendar(this,'dd/mm/yy','checkin');
	});					

	// helper functions for octopus hotel dates
	
	// format date to dd/mm/yy
	function formatDate(date) {	
		return pad(date.getDate()) + date.getDate() + '/' + pad((date.getMonth()+1)) + (date.getMonth()+1) + '/' + date.getFullYear().toString().substr(2);				
	}

	// pad a leading zero onto day or month if < 10
	function pad(val) {
		p = (val.toString().length == 1) ? '0' : '';			
		return p;
	}
	
	// calculate and display checkout date when checkin date or length of stay changes
	function adjustCheckout(date) {
		b.setTime(date.valueOf());			
		b.setDate(b.getDate()+stayLength);
	
		$('#checkout').html(formatDate(b));
	
	}		

});

