jQuery(document).ready(function() {

	jQuery("#tabbed_details").tabs();

	// choose text for the show/hide link - can contain HTML (e.g. an image)
	var showText	=	"Click to Show";
	var hideText	=	"Click to Hide";
    var showImage	=   livesite + '/jomres/remote_plugins/custom_code/images/expand.png';
    var hideImage	=   livesite + '/jomres/remote_plugins/custom_code/images/contract.png';

	// initialise the visibility check
	var is_visible = true;

	// append show/hide links to the element directly preceding the element with a class of "toggle"
	jQuery('.toggle').prev("h4").prepend(' <a href="#" class="toggleLink">'+'<img src="'+hideImage+'" title="'+hideText+'" /></a>');

	// show all of the elements with a class of 'toggle'
	jQuery('.toggle').show();

	// capture clicks on the toggle links
	jQuery('a.toggleLink img').click(function() {
		// switch visibility
		is_visible = !is_visible;

		// toggle the display - uncomment the next line for a basic "accordion" style
		if (jQuery(this).attr("src") == showImage) {
			jQuery(this).attr("src",hideImage);
			jQuery(this).attr("title",hideText);
			jQuery(this).parents("h4").next('.toggle').slideDown('fast');
		} else {
			jQuery(this).attr("src",showImage);
			jQuery(this).attr("title",showText);
			jQuery(this).parents("h4").next('.toggle').slideUp('fast');
		}

		// return false so any link destination is not followed
		return false;
	});

	jQuery("#country").change (function(event) {
		var country = jQuery(this).val();
		jQuery.get(ajaxurl+'&task=dynamichandlereq',{field: "region", country: country}, function(data) {
			if (data)
				jQuery("#regionDDL").html(data);

			return false;
		});
	});

	jQuery("#b_country").change (function(event) {
		var country = jQuery(this).val();
		jQuery.get(ajaxurl+'&task=dynamichandlereq',{field: "b_region", country: country}, function(data) {
			if (data)
				jQuery("#b_regionDDL").html(data);

			return false;
		});
	});

	jQuery("#ajaxform").submit(function (){
		if (jQuery.formLoading != false) {
			if (checkaddressfields()) {
				var firstname 		=	jQuery('#firstname').val();
				var surname 		=	jQuery('#surname').val();
				var house 			=	jQuery('#house').val();
				var street 			=	jQuery('#street').val();
				var town 			=	jQuery('#town').val();
				var region 			=	jQuery('#region').val();
				var postcode 		=	jQuery('#postcode').val();
				var country			=	jQuery('#country').val();
				var tel_landline 	=	jQuery('#tel_landline').val();
				var tel_mobile 		=	jQuery('#tel_mobile').val();
				var eemail 			=	jQuery('#eemail').val();

				url					=	ajaxurl+'&task=handlereq';
				var addressString	=	firstname+"~"+surname+"~"+house+"~"+street+"~"+town+"~"+region+"~"+postcode+"~"+country+"~"+tel_landline+"~"+tel_mobile+"~"+eemail;
				blockInterface("guestdetails",200);
				jQuery.get (url,
					{ field: 'addressstring','value': addressString },
					function(data) {
						jQuery.formLoading = false;
						jQuery("#ajaxform").submit();
					});
			}
			return false;
		}
		else
			return true;
	});
});

var livesite			=	"http://www.italyperfect.com";

function checkaddressfields(){
	var firstname 		=	jQuery.trim(jQuery('#firstname').val());
	var surname 		=	jQuery.trim(jQuery('#surname').val());
	var house 			=	jQuery.trim(jQuery('#house').val());
	var street 			=	jQuery.trim(jQuery('#street').val());
	var town 			=	jQuery.trim(jQuery('#town').val());
	var region 			=	jQuery.trim(jQuery('#region').val());
	var postcode 		=	jQuery.trim(jQuery('#postcode').val());
	var tel_landline 	=	jQuery.trim(jQuery('#tel_landline').val());
	var tel_mobile 		=	jQuery.trim(jQuery('#tel_mobile').val());
	var eemail 			=	jQuery.trim(jQuery('#eemail').val());

	setInputFillToOkColour('#firstname');
	setInputFillToOkColour('#surname');
	setInputFillToOkColour('#house');
	setInputFillToOkColour('#street');
	setInputFillToOkColour('#town');
	setInputFillToOkColour('#region');
	setInputFillToOkColour('#postcode');
	setInputFillToOkColour('#tel_landline');
	setInputFillToOkColour('#tel_mobile');
	setInputFillToOkColour('#eemail');

	var pass			= true;

	if (validation_firstname && firstname.length == 0 ){
		setInputFillToErrorColour("#firstname");
		pass = false;
	}
	if (validation_surname && surname.length == 0 ){
		setInputFillToErrorColour("#surname");
		pass = false;
	}
	if (validation_houseno && house.length == 0 ){
		setInputFillToErrorColour("#house");
		pass = false;
	}
	if (validation_street && street.length == 0 ){
		setInputFillToErrorColour("#street");
		pass = false;
	}
	if (validation_town && town.length == 0 ){
		setInputFillToErrorColour("#town");
		pass = false;
	}
	if (validation_region && region.length == 0 ){
		setInputFillToErrorColour("#region");
		pass = false;
	}
	if (validation_postcode && postcode.length == 0 ){
		setInputFillToErrorColour("#postcode");
		pass = false;
	}
	if (validation_landline && tel_landline.length == 0 ){
		setInputFillToErrorColour("#tel_landline");
		pass = false;
	}
	if (validation_cellmobile && tel_mobile.length == 0 ){
		setInputFillToErrorColour("#tel_mobile");
		pass = false;
	}
	if (validation_email && eemail.length == 0 ){
		setInputFillToErrorColour("#eemail");
		pass = false;
	}
	if (validation_email && !echeck(eemail)){
		setInputFillToErrorColour("#eemail");
		pass = false;
	}
	if (pass)
		pass = checkCustomFields();

	if (!pass){
		jQuery('div.recheckaddress').show();
		blockInterface("addresserror",2500);
		jQuery('div.block_ui_bookingform').unblock();
		//disableSubmitButton(document.ajaxform.confirmbooking);
		return false;
	} else {
		enableSubmitButton(document.ajaxform.confirmbooking);
		return true;
	}
}

function getResponse_options() {
	var expirydays = document.ajaxform.expirydays.value;
	var balancedays = document.ajaxform.balancedays.value;
	var overrideprice = document.ajaxform.overrideprice.value;
	var netprice = document.ajaxform.netprice.value;
	
	var string= expirydays+"~"+balancedays+"~"+overrideprice+"~"+netprice;
	HideRoomsList();
	blockInterface('arrivalDate',200);
	jQuery.get(ajaxurl+'&task=handlereq',{field: 'options',	'value': string  
		},
		function(data){
			eval(data); 
			show_log('arrivalDate');
		}
	);
}

function searchvalidate() {
	if (isValidDate()) {
		var selpartysize = document.getElementById('partysize').options[document.getElementById('partysize').selectedIndex].value;
		var selregion = document.getElementById('region').value;
		var selnights = document.getElementById('nights').value;
		var selday = document.getElementById('day').selectedIndex;
		var selyyyymm = document.getElementById('yyyymm').options[document.getElementById('yyyymm').selectedIndex].value;

		jQuery.cookie('dynamic_partysize',selpartysize, {path : '/'});
		jQuery.cookie('dynamic_region',selregion, {path : '/'});
		jQuery.cookie('dynamic_nights',selnights, {path : '/'});
		jQuery.cookie('dynamic_day',selday, {path : '/'});
		jQuery.cookie('dynamic_yyyymm',selyyyymm, {path : '/'});

		return true;
	} else
		return false;		
}

function isValidDate(){
	/*
	Purpose: return true if the date is valid, false otherwise
	Arguments: day integer representing day of month
	month integer representing month of year
	year integer representing year
	Variables: dteDate - date object
	*/
	var day 			= 	document.getElementById('day').selectedIndex;
	var yyyymm 			= 	document.getElementById('yyyymm').options[document.getElementById('yyyymm').selectedIndex].value;
	if (yyyymm == "Any" && day == 0)
		return true;

	var mySplitResult 	= 	yyyymm.split(",");
	var year			=	mySplitResult[0];
	var month			=	mySplitResult[1] - 1;
				
	//set up a Date object based on the day, month and year arguments
	//javascript months start at 0 (0-11 instead of 1-12)
	var dteDate;
	dteDate		= new Date(year,month,day);
	var dteToday;
	dteToday	= new Date();
	/*
	Javascript Dates are a little too forgiving and will change the date to a reasonable guess if it's invalid. 
	We'll use this to our advantage by creating the date object and then comparing it to the details we put it. 
	If the Date object is different, then it must have been an invalid date to start with...
	*/
	day1	=	dteDate.getDate();
	month1	=	dteDate.getMonth();
	year1	=	dteDate.getFullYear();
	dayt	=	dteToday.getDate();
	montht	=	dteToday.getMonth();
	yeart	=	dteToday.getFullYear();

	if (((day1 != day) || (month1 != month) || (year1 != year)) || ((day < dayt) && (montht == month) && (yeart == year)) )
		{
		alert ('Please Select a Valid Date');
		return false;
		}
	else
		return true;
}

function Set_Cookie(name, value, expires) {
	// set time, it's in milliseconds
	var today			=	new Date();
	today.setTime( today.getTime() );
	// if the expires variable is set, make the correct expires time, the
	// current script below will set it for x number of days, to make it
	// for hours, delete * 24, for minutes, delete * 60 * 24
	if ( expires )
		expires = expires * 1000 * 60;
	//alert( 'today ' + today.toGMTString() );// this is for testing purpose only
	var expires_date = new Date( today.getTime() + (expires) );
	//alert('expires ' + expires_date.toGMTString());// this is for testing purposes only

	document.cookie = name + "=" +escape( value ) + 
	( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) +
	( "path=/" );
}

function isItAvailableArrival(date){
	var fdate	=	jQuery.datepicker.formatDate('yy-mm-dd', date);
	var index	=	jQuery.inArray( fdate, bookedDays );

	if (index == -1)
		return [true];
	else {
		var value		=	bookedType[index];
		if (value == 2)
			return [true];
		else
			return [false];
	}
}

function setMaxDate(date){
	maxDate			=	 false;
}

function isItAvailableDeparture(date){
	var indate		=	jQuery(uniqueid).val();
	var split		=	indate.split('/');
	var arrival		=	split[2]+'-'+split[0]+'-'+split[1];
	var value;

	var fdate		=	jQuery.datepicker.formatDate('yy-mm-dd', date);
	var index		=	jQuery.inArray( fdate, bookedDays );

	if (index > 0 && fdate > arrival) {
		value	=	bookedType[index];
		if (value != 1)
			maxDate		=	true;
	}

	if (fdate > arrival && maxDate)
		return [false];

	if (index == -1)
		return [true];
	else {
		value		=	bookedType[index];
		if (value == 1)
			return [true];
		else
			return [false];
	}
}
