jQuery(document).ready(function(){
    jQuery(".phidden").hide();

	jQuery(".button_review").hover(
	  function () {
		jQuery(this).addClass("hover");
	  },
	  function () {
		jQuery(this).removeClass("hover");
	  }
	);

	jQuery("#bedrooms").change (function() {
		var id;
		var nobeds			=	parseInt(jQuery("#bedrooms").val());	
		for (var i=1; i<7; i++)
		{
			id = "#bedrooms"+i;
			if (i <= nobeds)
				jQuery(id).css({ 'display': 'table-row'});
			else
				jQuery(id).css({ 'display': 'none'});
		}
    });

	jQuery("a.detailsbox").live("click", (function(e) {
        e.preventDefault();
		var uid					=	jQuery(this).attr("rel");
		var ajaxlink			=	lightbox+"&task=viewproperty&property_uid="+uid;
		jQuery.nyroModalManual({
			url: ajaxlink,
			width: 960,
			height: 700
		});

		return false;
    }));

	jQuery("a.gobooking").click (function() {
		var YYYYmmdd			=	document.formGetPrice.arrivalDate.value;
		var split				=	YYYYmmdd.split('/');
		var arrival				=	split[2]+'/'+split[1]+'/'+split[0];
		YYYYmmdd				=	document.formGetPrice.departureDate.value;
		split					=	YYYYmmdd.split('/');
		var departure			=	split[2]+'/'+split[1]+'/'+split[0];
		var adults				=	document.formGetPrice.adults.value;
		var uid					=	jQuery(this).attr("id");
		var link				=	jomresurl+"&task=dobooking&selectedProperty="+uid+"&arrivalDate="+arrival+"&departureDate="+departure+"&adults="+adults;
		setTimeout( "parent.jQuery.nyroModalRemove();", 5000);
		parent.window.location = link;

		return false;
    });

	jQuery("#tabbed_details").tabs();

	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 exists			=	document.ajaxform.country1;
				if (exists != null)
					var country 	=	document.ajaxform.country1[document.ajaxform.country1.selectedIndex].value;
				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;

						var lc;
						switch (country)
						{
							case "NL":
								lc			=	"NL";
							break;
							case "DE":
							case "AT":
								lc			=	"DE";
							break;
							case "IT":
								lc			=	"IT";
							break;
							case "FR":
							case "CH":
							case "LU":
							case "BE":
								lc			=	"FR";
							break;
							case "PL":
								lc			=	"PL";
								break;
							case "ES":
							case "PT":
							case "MX":
								lc			=	"ES";
							break;
							case "GB":
								lc			=	"GB";
							break;
							case "US":
								lc			=	"US";
							break;
							default:
								lc			=	"GB";
							break;
						}

						jQuery("#ajaxform input[name='first_name']").val(firstname);
						jQuery("#ajaxform input[name='last_name']").val(surname);
						jQuery("#ajaxform input[name='address1']").val(house);
						jQuery("#ajaxform input[name='address2']").val(street);
						jQuery("#ajaxform input[name='city']").val(town);
						jQuery("#ajaxform input[name='state']").val(region);
						jQuery("#ajaxform input[name='zip']").val(postcode);
						jQuery("#ajaxform input[name='country']").val(country);
						jQuery("#ajaxform input[name='email']").val(eemail);
						jQuery("#ajaxform input[name='lc']").val(lc);

						jQuery("#ajaxform").submit();
					}
				);
			}

			return false;
		}
		else
			return true;
	});

    jQuery("a.getResponseSearch").live('click', function(e) {
        e.preventDefault();
		var searchparams			=	jQuery(this).parent().attr("id");
		if (searchparams)
			var split				= 	searchparams.split(':');
		var field					=	split[0];
		var value					=	split[1];

		block();

		jQuery.get(ajaxurl+'&task=narrowhandlereq',{field: field, value: value}, function(data) {
			if (data)
				split	= 	data.split('~');
			else
				split	=	[];

			if (split.length > 1) {
				jQuery("ul.dummytabs").html(split[0]);
				jQuery("span.property_count_largenum").html(split[1]);
				jQuery("div.pagenav").html(split[2]);
				jQuery("div.pagenav_bot").html(split[2]);
				jQuery("#current_data").html(split[3]);
				jQuery("#filters").html(split[4]);
				jQuery('#sortlist').val(split[5]);
				//jQuery("div.button_book").css({ 'visibility': 'visible'});
			}

			jQuery.unblockUI();

			return false;
		});
	});
});

var date1;
var date2;
var today;
var formname;

jQuery (function() {
	jQuery('#rangeInlinePicker').datepick({
		rangeSelect: true,
		monthsToShow: [1, 2],
		dateFormat: 'yyyy/mm/dd',
		firstDay: 1,
		minDate: 0,
		maxDate: '+12M',
		onDate: isItAvailable,
		onSelect: function(dates) {
			var minDate = jQuery.datepick.formatDate('yyyy/mm/dd', dates[0]);
			var maxDate = jQuery.datepick.formatDate('yyyy/mm/dd', dates[1]);
			if (minDate != maxDate) {
				if (isItBooked(dates[0], dates[1])){
					document.formGetPrice.arrivalDate.value = minDate;
					document.formGetPrice.departureDate.value = maxDate;
					date1 = document.formGetPrice.arrivalDate.value = minDate;
					date2 =		document.formGetPrice.departureDate.value = maxDate;
					getPrice();
				}
				else
				{
					jQuery('#rangeInlinePicker').datepick('setDate', date1, date2);
				}
			}
		}
	})
	.datepick('setDate', date1, date2);
});

//Set cookie
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() : "" );
	}	

var grandTotal;
function populateGrandTotal(div_id,content,value)
	{
	if ( jQuery("#"+div_id).length > 0 ) 
		{ 
		document.getElementById(div_id).innerHTML = content;
		
		jQuery(div_id).fadeIn(100);
		grandTotal		=	value;	

		if (value == 0)
			{
			if ( jQuery("#currencyrates").length > 0 ) 
				document.getElementById("currencyrates").style.display = "none";	
			}	
		else
			{
			if ( jQuery("#currencyrates").length > 0 ) 
				document.getElementById("currencyrates").style.display = "inline";	
			}	
		}
	}
	
function getResponseCalendar(value,property,room) 
	{
	blockCalendar ("div.block_ui_calendar",200);
	
	jQuery.get(ajaxurl+'?option=com_jomres&task=dynamichandlereq&no_html=1',
		{ search: "calendar", value: value, property:property, room:room},
		function(data)
			{
			jQuery('div.block_ui_calendar').unblock();
			document.getElementById("widget_calendar").innerHTML = data; 
			}
		);
	}

function blockCalendar(mydiv,fadetime)
	{
	jQuery.blockUI.defaults.overlayCSS.backgroundColor = '#fff';
	jQuery.blockUI.defaults.overlayCSS.opacity = '0.5';
	jQuery.blockUI.defaults.pageMessage = "Please be patient...";
	jQuery.blockUI.defaults.fadeTime = fadetime;
	
	jQuery(mydiv).block({message: ''}); 
	}
	
function addmylist(property)
	{
	var props;
	props = jQuery.cookie('mylist');	
		
	//Split string into array
	var ind	= [];
	if (props)
		ind	= props.split('-');
	
	//Property already added
	if (jQuery.inArray(property, ind) >= 0)
		return;

	//Max already stored
	if (ind.length == "9")
		alert (maxmessage);
	else
		{
		//Tag onto end of cookie
		if (props)
			props += '-'+property;
		else
			props = property;
		
		jQuery.cookie('mylist', props, {path: '/', expires: 28});
		
		var myid = '#mylistaction'+property;  
		jQuery(myid).html('<a href="javascript:void(0);" onclick="remmylist('+property+');" title="'+mylistremove+'"><img border="0" src="'+rel_path+'/jomres/remote_plugins/custom_code/images/mylistadded.png" /></a>');

		jQuery("#mylist_number").text(ind.length + 1);
		}	
	}

function remmylist(property)
	{
	var props;
	var tmp = jQuery.cookie('mylist');	
	var ind = [];

	if (tmp)
		ind	= tmp.split('-');
	
	for (i = 0; i < ind.length; i++)
		{
		if (ind[i] != property)
			{
			if (props)
				props += '-'+ind[i];
			else
				props = ind[i];
			}
		}	
	
	if (props != "")
		jQuery.cookie('mylist', props, {path: '/', expires: 28});	
	else
		jQuery.cookie('mylist', null);	

	var myid = '#mylistaction'+property;  
	if ( jQuery(myid).length > 0 )
		jQuery(myid).html('<a href="javascript:void(0);" onclick="addmylist('+property+');" title="'+mylistadd+'"><img border="0" src="'+rel_path+'/jomres/remote_plugins/custom_code/images/mylistadd.png" /></a>');
	
	jQuery("#mylist_number").text(ind.length - 1);

	var mydiv;
	mydiv	= 'rempropertytop'+property;
	if ( jQuery("#"+mydiv).length > 0 )
		{
		document.getElementById(mydiv).style.display = "none";	
		mydiv	= 'rempropertymid'+property;
		document.getElementById(mydiv).style.display = "none";	
		mydiv	= 'rempropertybot'+property;
		document.getElementById(mydiv).style.display = "none";
		}	
	}

function changeOrder (field)
	{	
	var sortorder;
	var process;
	var rept = "";
	var repm = "";
	var repb = "";
	
	//Get cookie value and split into props in array
	var tmp = jQuery.cookie('mylist');	
	var currentprops = tmp.split('-');

	//Get sort order depending on param
	if (field == 'price')
		sortorder		=	priceorder;
	else if (field == 'town')
		sortorder		=	townorder;
	else if (field == 'beds')
		sortorder		=	bedsorder;
	else if (field == 'baths')
		sortorder		=	bathsorder;
	else if (field == 'guests')
		sortorder		=	guestsorder;

	var order 			= 	sortorder.split(',');
	for (i = 0; i < order.length; i++)
		{
		thisprop	=	order[i];
		if (jQuery.inArray(thisprop, currentprops) >= 0)
			{
			div 	=	'rempropertytop'+thisprop; 
			divj 	=	'#rempropertytop'+thisprop; 
			rept 	+= 	'<div id='+div+'>'+jQuery(divj).html()+'</div>';

			div 	=	'rempropertymid'+thisprop; 
			divj 	=	'#rempropertymid'+thisprop; 
			repm 	+= 	'<div id='+div+'>'+jQuery(divj).html()+'</div>';
			
			div 	=	'rempropertybot'+thisprop; 
			divj 	=	'#rempropertybot'+thisprop; 
			repb 	+= 	'<div id='+div+'>'+jQuery(divj).html()+'</div>';
			}
		}	
		
	jQuery("#mylist_ptop").html(rept);
	jQuery("#mylist_pmid").html(repm);
	jQuery("#mylist_pbot").html(repb);
	}
	
function show_log1() {
	jQuery.get(ajaxurl+'&task=handlereq',{ field: 'show_log1'},
		function(data){
			eval(data);
			jQuery('div.block_ui_bookingform').unblock();
		}
	);
}

function getResponseDates()
	{
	var arrival					= 	document.filterdate.arrivalDate.value;
	var departure				=   document.filterdate.departureDate.value;
	var adults 					= 	document.filterdate.adults.value;
	var field					=	"date";

	block();

	jQuery.get(ajaxurl+'&task=narrowhandlereq',{field: field, arrival: arrival, departure:departure, adults:adults}, function(data) {
		var split	=	[];
		if (data)
			split	= 	data.split('~');

		if (split.length > 1) {
			jQuery("ul.dummytabs").html(split[0]);
			jQuery("span.property_count_largenum").html(split[1]);
			jQuery("div.pagenav").html(split[2]);
			jQuery("div.pagenav_bot").html(split[2]);
			jQuery("#current_data").html(split[3]);
			jQuery("#filters").html(split[4]);
			jQuery("#viewempty").html(split[6]);

			if (jQuery('#sortlist option').size() < 4) {
				var myOptions = {
					4 : priceasctext,
					5 : pricedsctext
				};
				jQuery.each(myOptions, function(val, text) {
					jQuery('#sortlist').append(
						jQuery('<option></option>').val(val).html(text)
					);
				});

				jQuery('#sortlist').val(split[5]);
			}
		}

		jQuery.unblockUI();
	});

	return false;
	}

function getPrice() {
	var arrivalDate 	= 	document.formGetPrice.arrivalDate.value;
	var departureDate 	=   document.formGetPrice.departureDate.value;
	var adults 			= 	document.formGetPrice.adults.value;
	var property_uid 	= 	document.formGetPrice.property_uid.value;

	blockPricing();

	jQuery.get(ajaxurl+'&task=dynamicgetprice',{arrivalDate:arrivalDate,departureDate:departureDate,adults:adults,property_uid:property_uid}, function(data) {
		var split	=	[];
		if (data) {
			split	= 	data.split('~');

			if (split.length > 0) {
				jQuery("#ajaxprice").html(split[0]);
				jQuery("#ajaxdeposit").html(split[1]);
				jQuery("#showcurrent").html(split[2]);
				jQuery("#viewbooking").css({ 'visibility': 'visible'});
			}
		}

		jQuery('#viewbooking').unblock();
		//jQuery.unblockUI();
	});

	return false;
}

function block() {
	jQuery.blockUI ( {
		message: '<img src="'+rel_path+'/busy.gif" /><h3>'+ajaxmessage+'</h3>',
		css:	{
				padding: '15px',
				background: '#440a7e',
				color: '#fff',
				'-webkit-border-radius': '10px',
				'-moz-border-radius': '10px'
				}
	});
}

function submitUnblock(){
	jQuery('div.block_ui_bookingform').unblock();
	}

function isItAvailable(date){
	var fdate	=	jQuery.datepick.formatDate('yyyy-mm-dd', date);
	var index	=	jQuery.inArray( fdate, bookedDays );

	if (index == -1)
		return {dateClass: "", selectable: true};
	else {
		var value		=	bookedType[index];
		if (value == 0 || value == 3)
			return {dateClass: "datepick-booked", selectable: false};
		else if (value == 1)
			return {dateClass: "datepick-arrive", selectable: true};
		else
			return {dateClass: "datepick-depart", selectable: true};
		}
	}

function isItBooked(date1, date2){
	while (date1 <= date2)
	{
		var fdate	=	jQuery.datepick.formatDate('yyyy-mm-dd', date1);
		var index	=	jQuery.inArray( fdate, bookedDays );

		if (index != -1 && bookedType[index] != 1 && bookedType[index] != 2 )
			{
			jQuery( "#dialog-selectavailable" ).dialog();
			return false;
			}

		var d1 = new Date(date1.getTime());
		date1 =	jQuery.datepick.add(d1, 1, "d");
	}

	return true;
}

function setDepartureDate(date){
	var thisdate	= jQuery.datepicker.formatDate( 'yy/mm/dd', date );
	var YYYYmmdd	= document[formname].arrivalDate.value;
	var split		= YYYYmmdd.split('/');
	var arrival		= split[2]+'/'+split[1]+'/'+split[0];

	var result = new Array();
	result[0] = true;
	result[1] = "";

	if (thisdate == arrival)
	{
		result[0] = false;
		result[1] = "ui-datepicker-arrival";
	}
	else if (thisdate < arrival)
	{
		result[0] = false;
		result[1] = "";
	}

	return result;
}

function blockPricing(){
	jQuery.blockUI.defaults.overlayCSS.backgroundColor = '#000';
	jQuery.blockUI.defaults.overlayCSS.opacity = '0.5';

	jQuery.blockUI.defaults.pageMessage = "Please be patient...";
	jQuery.blockUI.defaults.fadeTime = 200;
	jQuery.unblockUI({ fadeOut:true });

	jQuery('#viewbooking').block({
		message: '<img src="'+rel_path+'/busy.gif" /><h5>'+ajaxmessage+'</h5>',
		css:	{
				padding: '10px',
				background: '#440a7e',
				width: '220px',
				color: '#fff',
				'-webkit-border-radius': '5px',
				'-moz-border-radius': '5px'
				}
	});
}

function populateDep(content){
	if ( jQuery("#ajaxform input[name='amount']").length > 0 ){
		jQuery("#ajaxform input[name='amount']").val(content);
	}
}
