/*
| ---------------------------------------------------------------------
|  Availability Overlay using jQuery
| ---------------------------------------------------------------------
|  Works on top of CodeIgniter Calendar class
|  
*/

/* initialise the loading message */
var loadingImg;
var loadingImgHandler = function() {
	loadingImg = new Image(16,16);
	loadingImg.src = styleDir + 'images/loading_clock.gif';
}
loadingImgHandler();
var loadingMsg = "<img src=\"" + loadingImg.src + "\"> loading";

/* make calls when document is ready */
jQuery(document).ready(function() {
	dayHandler();
	prevNextHandler(); 
	availSubmitHandler();	
// 	bookingSubmitHandler();
});
/* load clicked calendar date into travel date field */
var dayHandler = function() {
	jQuery('td.day a').click(function(){
		jQuery('#travel_date').attr('value',jQuery(this).attr('title'));
		return false;
	});
}
/* make ajax call to load prev or next month from server */
var prevNextHandler = function(){
	jQuery('th.prev_next a').click(function(){
		$('div.calendar_box').html(loadingMsg);
		var dateArr = this.rel.split('-');
		jQuery.post(siteUrl + 'availability/calendar/y/' + dateArr[0] + '/m/' + dateArr[1],
		{page_name:jQuery('#page_name').attr('value')},
			function(data) {
				$('div.calendar_box').html('');
				$('div.calendar_box').html(data);
				prevNextHandler(); 
				dayHandler();
			});
		return false;
	});
}
/* handle availability check form submission - make ajax call instead of server call */
var availSubmitHandler = function() {
	jQuery('#avail_form').submit(function(){
		$('#avail_result').html(loadingMsg);
		var postHash = jQuery('#avail_form').formHash();
		jQuery('#avail_result').ajaxSuccess(function(){
			bookingSubmitHandler();
		});
		jQuery.post(siteUrl + 'availability/avail_check/',
			postHash,
			function(data) {
				$('#avail_result').html('');
				$('#avail_result').html(data);
			});			
		return false;
	});
}
/* handle booking form submission */
var bookingSubmitHandler = function() {
	jQuery('#booking_form').submit(function(){
		$('#avail_result').html(loadingMsg);
		var postHash = jQuery(this).formHash();
		jQuery.post(siteUrl + 'availability/add_to_cart/',
			postHash,
			function(data) {
				$('#avail_result').html('');
				$('#avail_result').html(data);
			});			
		return false;
	});
}


