//
// @author Hazel Wilson <hazel@highlandvision.com>
// @copyright 2010 Hazel Wilson <hazel@highlandvision.com>
//
jQuery(document).ready(function() {
	jQuery('tr.rawhide').hide();
	jQuery("#tabbed_details, #inner_tabbed_details").tabs();
	jQuery("div.bookingform_drop").hide();
	jQuery("div.promoform_drop").hide();
	jQuery("#toggleDates").show();
	jQuery('td.togglerates').hide();
	
	jQuery('#tabbed_details').bind('tabsshow', function(event, ui) {
		if (ui.panel.id == "location") {
			getLatLong();
		}
	});

	adjustHeight();

	jQuery('#changeDates, #newDates').live('submit', function(e) {
        e.preventDefault();

		jQuery("#inner_tabbed_details").empty().html('<img src="http://www.needtogetaway.co.uk/loading.gif" />');

		var property_uid 	=	jQuery("input[name=property_uid]", this).val()
		var arrivalDate 	=	jQuery("input[name=arrivalDate]", this).val()
		var nights			=	jQuery("select[name=nights]", this).val()

		url					=	ajaxurl+'&task=getPropertyAvailability';
		jQuery.get (url,
			{ property_uid:property_uid,arrivalDate:arrivalDate,nights:nights},
			function(data) {
				jQuery("#pricesResponse").html(data);
				jQuery("#inner_tabbed_details").tabs();
				jQuery("#toggleDates").show();
				jQuery("div.bookingform_drop").hide();
				jQuery("div.promoform_drop").hide();
				adjustHeight();
				jQuery('#jrlhssearch input[name=arrivalDate]').val(arrivalDate);
				jQuery('#jrlhssearch select[name=nights]').val(nights);
		});
    });

	jQuery(function() {
		var message;
		jQuery("#ajaxform").validate({rules: {cardnum: {creditcard2: function(){
				return jQuery('#cardType').val();
			}}}
		});

		// helper function to fire validation on field2 when cardType changes//
		jQuery('#cardType').change(function(){
			message = jQuery("#ajaxform").validate().element('#cardnum');
		});
	});

	jQuery("#toggleDates").live('click', (function() {
		jQuery("#changeDates").toggle();
    }));

	jQuery("#thisProperty").change (function() {
		var uid			=	this.value;
		var link		=	jomresurl+"&thisProperty="+uid;
		window.location = link;
    });

	jQuery("#ratemonth li").click (function() {
		var param		=	jQuery(this).attr("class");
		var task		=	document.adminForm.thistask.value;
		var roomclass	=	document.adminForm.roomclass.value;
		var link		=	jomresurl+"&task="+task+"&roomclass="+roomclass+"&requestedmonth="+param;
		window.location = link;
    });

	jQuery('td.togglerates').hide();

	jQuery("#clickrates").click(function () {
		jQuery("td.togglerates").toggle(jQuery('td.togglerates').css('display') == 'none');
	});

	jQuery("a.bookingform_roomlink").live('click',function () {
		var id			=	jQuery(this).attr("id");
		var split		=	id.split(':');
		var myclass		=	"#roomclassid"+split[1];
		jQuery(myclass).toggle();
	});

	jQuery("a.promoform_roomlink").live('click',function () {
		var id			=	jQuery(this).attr("id");
		var split		=	id.split(':');
		var myclass		=	"#promoclassid"+split[1];
		jQuery(myclass).toggle();
	});

	if (jQuery(".sticky-box").length > 0) {
		var stickyBox			=	jQuery(".sticky-box");
		var stickyBoxPosition	=	stickyBox.offset().top;
		stickyBox.css('position', 'relative');

		jQuery(window).scroll(function(){
			if ( stickyBoxPosition < jQuery(window).scrollTop()) {
				stickyBox.stop().animate ({
					"top": (jQuery(window).scrollTop() - stickyBoxPosition + 50) + "px"
					}, "fast" );
			} else {
				stickyBox.css('top', 0);
			}
		});
	}

	var selected			=	0;
	jQuery('#postRooms').live('submit', (function(e) {
		jQuery("select[name='remus[]']").each(function() {
			if (jQuery(this).val() != "0^0")
				selected++;
		});

		if (selected == 0) {
            e.preventDefault();
			jQuery( "#dialog-message" ).dialog({
				modal: true,
				buttons: {
					OK: function() {
						jQuery( this ).dialog( "close" );
					}
				}
			});
		}
    }));

	jQuery('#postPromos').live('submit', (function(e) {
		selected	=	0;
		jQuery("select[name='premus[]']").each(function() {
			if (jQuery(this).val() != "0^0^0") {
				selected++;
			}
		});

		if (selected == 0) {
            e.preventDefault();
			jQuery( "#dialog-message" ).dialog({
				modal: true,
				buttons: {
					OK: function() {
						jQuery( this ).dialog( "close" );
					}
				}
			});
		}
    }));

	jQuery('a.websitelink').click (function() {
		var propertyuid		=	jQuery(this).attr("rev");
		jQuery.get(ajaxurl+'&task=propertyclicked',{ property_uid: propertyuid },
			function(data) {
		});
    });

	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();
				exists = document.ajaxform.country;
				if (exists != null)
					var country 	=	document.ajaxform.country[document.ajaxform.country.selectedIndex].value;
				var tel_landline 	=	jQuery('#tel_landline').val();
				var tel_mobile 		=	jQuery('#tel_mobile').val();
				var eemail 			=	jQuery('#eemail').val();
				var cemail 			=	jQuery('#cemail').val();
				var adults			=	jQuery('#adults').val();
				var children		=	jQuery('#children').val();

				url					=	ajaxurl+'&task=handlereq';
				var addressInfo		=	firstname+"~"+surname+"~"+house+"~"+street+"~"+town+"~"+region+"~"+postcode+"~"+country+"~"+tel_landline+"~"+tel_mobile+"~"+eemail+"~"+adults+"~"+children;
				blockInterface("guestdetails",200);
				jQuery.get (url,
					{ field: 'addressstring','value': addressInfo },
					function(data) {
						jQuery.formLoading = false;
						jQuery("#ajaxform").submit();
						return true;
				});
			} 

			return false;
		}
		else
			return true;
	});
});


function adjustHeight() {
    primHeight = jQuery('#jrleftcolumn').height();
    contentHeight = jQuery('#jrmaincolumn').height();
 	if ( contentHeight > primHeight ) {
        jQuery('#jrleftcolumn').height(contentHeight);
	}
    if ( contentHeight < primHeight ) {
        jQuery('#jrmaincolumn').height (primHeight);
    }
}

function displayMoreRooms() {
	max = start + 1;
	if (max > end) {
		jQuery('a.getmorerates').hide();
		max = end;
	}
	
	for (i=start;i < max;i++) {
		myid	=	'tr.roomrow'+i;
		jQuery(myid).show();
	}
	start	=	i;
}

function jomres_submitbutton(pressbutton) {
	document.adminForm.task.value=pressbutton;
	var validator	=	new Array();
	validator = jQuery("#validate input:blank").css("background-color", "#bbbbff");
	if (validator.length > 0)
		alert ("Please enter data into the boxes highlighted in grey.");
	else {
		try {
			document.adminForm.onsubmit();
		}
		catch(e){}
		document.adminForm.submit();
	}
}

function blocktariffinput() {
	obj = document.getElementById("block_tariff_input");
	setOpacity (obj, 5);
}
function populateDiv(div_id,content){
	if ( jQuery("#"+div_id).length > 0 ) {
		document.getElementById(div_id).innerHTML = content;
		//jQuery("#"+div_id).html(content);
		jQuery(div_id).fadeIn(100);
	}
}
function hideDiv(div_id){
	if ( jQuery("#"+div_id).length > 0 ) {
		jQuery("#"+div_id).css("display","none");
	}
}
function showDiv(div_id){
	if ( jQuery("#"+div_id).length > 0 ) {
		jQuery("#"+div_id).css("display","block");
	}
}

//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() : "" );
	}

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 exists = document.ajaxform.country;
	if (exists != null)
		var country 	=	document.ajaxform.country[document.ajaxform.country.selectedIndex].value;
	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());
	var cemail 			=	jQuery.trim(jQuery('#cemail').val());
	var adults 			=	jQuery.trim(jQuery('#adults').val());
	var children 		=	jQuery.trim(jQuery('#children').val());

	setInputFillToOkColour('#firstname');
	setInputFillToOkColour('#surname');
	setInputFillToOkColour('#house');
	setInputFillToOkColour('#street');
	setInputFillToOkColour('#town');
	setInputFillToOkColour('#region');
	setInputFillToOkColour('#postcode');
	setInputFillToOkColour('#tel_landline');
	setInputFillToOkColour('#tel_mobile');
	setInputFillToOkColour('#eemail');
	setInputFillToOkColour('#adults');
	setInputFillToOkColour('#children');

	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_country && country.length == 0 ){
		setInputFillToErrorColour("#country");
		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_adults && adults.length == 0 ){
		setInputFillToErrorColour("#adults");
		pass = false;
	}
	if (validation_children && children.length == 0 ){
		setInputFillToErrorColour("#children");
		pass = false;
	}
	if (validation_email && eemail.length == 0 ){
		setInputFillToErrorColour("#eemail");
		pass = false;
	}
	if (validation_email && !echeck(eemail)){
		setInputFillToErrorColour("#eemail");
		pass = false;
	}
	if (eemail != cemail) {
		setInputFillToErrorColour("#eemail");
		setInputFillToErrorColour("#cemail");
		pass = false;
	}

	if (!pass){
		jQuery('#firstname').focus();
		jQuery("#dialog-message" ).dialog({
			modal: true,
			buttons: {
				OK: function() {
					jQuery( this ).dialog( "close" );
				}
			}
		});

		jQuery('div.recheckaddress').show();
		blockInterface("addresserror",10000);
		setTimeout(submitUnblock, 1000);
		
		return false;
	}
	
	pass					=	checkCustomFields();

	if (pass) {
		exists				=	document.ajaxform.cardnum;
		if (exists != null)
			pass			=	checkCardFields();
	}
	
	if (!pass){
		jQuery('#cardnum').focus();
		jQuery("#dialog-message" ).dialog({
			modal: true,
			buttons: {
				OK: function() {
					jQuery( this ).dialog( "close" );
				}
			}
		});

		jQuery('div.recheckaddress').show();
		blockInterface("addresserror",10000);
		setTimeout(submitUnblock, 1000);

		//jQuery('div.block_ui_bookingform').unblock().delay(2000);
		//disableSubmitButton(document.ajaxform.confirmbooking);
		return false;
	} else {
		if (!document.ajaxform.agreecheck.checked) {
			alert ( noterms );
			return false;
		} else {
			enableSubmitButton(document.ajaxform.confirmbooking);
			return true;
		}	
	}
}

function checkCardFields() {
	setInputFillToOkColour('#cardname');
	setInputFillToOkColour('#ccv');
	setInputFillToOkColour('#cardnum');

	var cardname 		=	jQuery.trim(jQuery('#cardname').val());
	var ccv				=	jQuery.trim(jQuery('#ccv').val());
	var pass1			=	true;

	if (cardname.length == 0 ){
		setInputFillToErrorColour("#cardname");
		pass1			=	false;
	}

	if (ccv.length < 3 || ccv.length > 4){
		setInputFillToErrorColour("#ccv");
		pass1			=	false;
	}

	var cardnum			=	jQuery('#cardnum').val();
	if (cardnum.length == 0) {
		setInputFillToErrorColour("#cardnum");
		return false;
	}

	if (!jQuery("#ajaxform").validate().element('#cardnum')) {
		setInputFillToErrorColour("#cardnum");
		return false;
	}

//	var intccv	=	 parseInt(ccv);
//	alert (intccv);
//	if (intccv < 100 || intccv > 9999){
//		setInputFillToErrorColour("#ccv");
//		pass1			=	false;
//	}

	if (pass1)
		return true;
	else
		return false;
}

function submitUnblock(){
	jQuery('div.block_ui_bookingform').unblock();
}

function show_log1() {
	jQuery.get(ajaxurl+'&task=handlereq',{ field: 'show_log1','lastfield': 'firstrun' },
		function(data){
			eval(data);
	});
}

function checkAvailable(date){
	var dateAsString	=	date.getFullYear().toString() + "-" + (date.getMonth()+1).toString() + "-" + date.getDate();
	var result			=	jQuery.inArray( dateAsString, freeDays ) == -1 ? [false] : [true];

	return result
}
