$(function() {
	if($('#booking')){
		$('#form_contact_one').show();
		$('#form_contact_two').hide();
		$('#booking_button').show();
		$('.form-error').show();
				
		// VALIDATION FUNCTIONS
		function isValidEmailAddress(emailAddress) {
			var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
			return pattern.test(emailAddress);
		}
		// END VALIDATION FUNCTIONS
		
		// DATE PICKERS FOR RESERVATIONS
		$('#form_contact_checkin').datepicker({
			numberOfMonths: 2,
			minDate: 0, maxDate: '+1Y',
			dateFormat: 'dd/mm/yy',
			onClose: function(dateText, inst){
				if($('#form_contact_checkin').val()){
					var myDate = dateText.split("/"); var newDate = myDate[1]+"/"+myDate[0]+"/"+myDate[2];
					$('#form_contact_checkout').removeAttr('disabled');
					$('#form_contact_checkout').datepicker('option', 'minDate', new Date(newDate));
				}else{
					$('#form_contact_checkout').val("").attr('disabled', true);
				}
			}
		});
		$('#form_contact_checkout').datepicker({
			dateFormat: 'dd/mm/yy',
			numberOfMonths: 2,
			minDate: 0, maxDate: '+1Y 2M'
		}).attr('disabled', true);
		// END DATE PICKERS
		// Reset Form
		$('#resetform').live('click', function() {
			$('#booking form').fadeIn();
			$('#booking form input').val(""); $("#booking form *").removeClass("ui-icon-alert").removeClass("ui-icon-check");
			$('#sending_enquiry').fadeOut(); $('#form_contact_two').fadeOut();
			$('#booking_button').fadeIn(); $('#booking_send').fadeOut();
		})
		// End Reset Form
		
		$('#booking_button').click(function(){
			var errors = "";
			// First check that all of the inputs have been filled in and are correct!
			$("#form_contact_one *").removeClass("ui-icon-alert").removeClass("ui-icon-check");
			// dates should be formatted correctly, all fields should be filled
			var dateone = $("#form_contact_checkin").val();
			var datetwo = $("#form_contact_checkout").val();
			re = new RegExp(/^\d{1,2}\/\d{1,2}\/\d{4}$/); 
			if (!dateone){
    	  		errors = "true";
    	  		$("#checkin-error").removeClass("ui-icon-star").addClass('ui-icon-alert').attr("title", "This field MUST be filled in!");
   			}else if(!dateone.match(re)){
   				errors = "true";
      			$("#checkin-error").removeClass("ui-icon-star").addClass('ui-icon-alert').attr("title", "Must be a valid date in the format dd/mm/yyyy");
    		}else{
    			$("#checkin-error").removeClass("ui-icon-star").addClass('ui-icon-check').attr("title", "Validated!");
    		}
    		if (!datetwo){
      			errors = "true";
      			$("#checkout-error").removeClass("ui-icon-star").addClass('ui-icon-alert').attr("title", "This field MUST be filled in!");
    		}else if(!datetwo.match(re)){
    			errors = "true";
    			$("#checkout-error").removeClass("ui-icon-star").addClass('ui-icon-alert').attr("title", "Must be a valid date in the format dd/mm/yyyy");
    		}else if(datetwo == dateone){
    			errors = "true";
    			$("#checkout-error").removeClass("ui-icon-star").addClass('ui-icon-alert').attr("title", "OOPS! Your check-in & check-out dates are the same!");
    		}else{
				$("#checkout-error").removeClass("ui-icon-star").addClass('ui-icon-check').attr("title", "Validated!");
    		}
    		var rooms = $("#form_contact_rooms").val();
    		var adults = $("#form_contact_adults").val();
    		if (rooms > adults){
      			errors = "true";
    			$("#room-error").removeClass("ui-icon-star").addClass('ui-icon-alert').attr("title", "You cannot select more adults than rooms.");
    			$("#adult-error").removeClass("ui-icon-star").addClass('ui-icon-alert').attr("title", "You cannot select more adults than rooms.");
    		}else{
    			$("#room-error").removeClass("ui-icon-star").addClass('ui-icon-check').attr("title", "Validated!");
    			$("#adult-error").removeClass("ui-icon-star").addClass('ui-icon-check').attr("title", "Validated!");
    		}

			// Then scroll to the next pane
			if(errors!="true"){
			$("#booking").animate({ "width":"632px"}, function(){$('#form_contact_two').fadeIn();$('#booking_back').show();});
			$('#booking_button').addClass('next_button');
			$('#booking_button').fadeOut(); $('#booking_send').fadeIn();
			}
		});
		$('#booking_back').click(function(){
			$('#booking_back').hide();
			$('#booking_button').fadeIn(); $('#booking_send').fadeOut();
			$('#form_contact_two').fadeOut(function(){$("#booking").animate({ "width":"250px"});});
		});
		$('#booking_send').click(function(){
			$("#form_contact *").removeClass("ui-icon-alert").removeClass("ui-icon-check");
			var errors = "";
			// First check that all of the inputs have been filled in and are correct!
			// dates should be formatted correctly, all fields should be filled
			var dateone = $("#form_contact_checkin").val();
			var datetwo = $("#form_contact_checkout").val();
			re = new RegExp(/^\d{1,2}\/\d{1,2}\/\d{4}$/); 
			if (!dateone){
    	  		errors = "true";
    	  		$("#checkin-error").removeClass("ui-icon-star").addClass('ui-icon-alert').attr("title", "This field MUST be filled in!");
   			}else if(!dateone.match(re)){
   				errors = "true";
      			$("#checkin-error").removeClass("ui-icon-star").addClass('ui-icon-alert').attr("title", "Must be a valid date in the format dd/mm/yyyy");
    		}else{
    			$("#checkin-error").removeClass("ui-icon-star").addClass('ui-icon-check').attr("title", "Validated!");
    		}
    		if (!datetwo){
      			errors = "true";
      			$("#checkout-error").removeClass("ui-icon-star").addClass('ui-icon-alert').attr("title", "This field MUST be filled in!");
    		}else if(!datetwo.match(re)){
    			errors = "true";
    			$("#checkout-error").removeClass("ui-icon-star").addClass('ui-icon-alert').attr("title", "Must be a valid date in the format dd/mm/yyyy");
    		}else if(datetwo == dateone){
    			errors = "true";
    			$("#checkout-error").removeClass("ui-icon-star").addClass('ui-icon-alert').attr("title", "OOPS! Your check-in & check-out dates are the same!");
    		}else{
				$("#checkout-error").removeClass("ui-icon-star").addClass('ui-icon-check').attr("title", "Validated!");
    		}
    		var rooms = $("#form_contact_rooms").val();
    		var adults = $("#form_contact_adults").val();
    		if (rooms > adults){
      			errors = "true";
    			$("#room-error").removeClass("ui-icon-star").addClass('ui-icon-alert').attr("title", "You cannot select more adults than rooms.");
    			$("#adult-error").removeClass("ui-icon-star").addClass('ui-icon-alert').attr("title", "You cannot select more adults than rooms.");
    		}else{
    			$("#room-error").removeClass("ui-icon-star").addClass('ui-icon-check').attr("title", "Validated!");
    			$("#adult-error").removeClass("ui-icon-star").addClass('ui-icon-check').attr("title", "Validated!");
    		}
    		if(errors=="true"){
    			$('#booking_back').hide();
				$('#booking_button').fadeIn(); $('#booking_send').fadeOut();
				$('#form_contact_two').fadeOut(function(){$("#booking").animate({ "width":"250px"});});
    		}
    		// check the second part of the form
    		if (!$("#form_contact_name").val()){
    	  		errors = "true";
    	  		$("#name-error").removeClass("ui-icon-star").addClass('ui-icon-alert').attr("title", "This field MUST be filled in!");
    		}else{
    			$("#name-error").removeClass("ui-icon-star").addClass('ui-icon-check').attr("title", "Validated!");
    		}
    		if (!$("#form_contact_phone").val()){
    	  		errors = "true";
    			$("#phone-error").removeClass("ui-icon-star").addClass('ui-icon-alert').attr("title", "This field MUST be filled in.");
    		}else{
    			$("#phone-error").removeClass("ui-icon-star").addClass('ui-icon-check').attr("title", "Validated!");
    		}
    		var email = $("#form_contact_email").val();
    		if (!$("#form_contact_email").val()){
    	  		errors = "true";
    	  		$("#email-error").removeClass("ui-icon-star").addClass('ui-icon-alert').attr("title", "Please enter a valid email!");
    		}else if(!isValidEmailAddress(email)){
    			errors = "true";
    			$("#email-error").removeClass("ui-icon-star").addClass('ui-icon-alert').attr("title", "Your email address is not valid!");
    		}else{
    			$("#email-error").removeClass("ui-icon-star").addClass('ui-icon-check').attr("title", "Validated!");
    		}
			if(errors!="true"){
				$('#booking button').hide();
				$('#booking form').hide();
				$("#booking").animate({ "width":"250px"});
				$('#sending_enquiry').fadeIn();
				//Send the enquiry
				// get the data from all of the fields
				// get the data from all of the fields
				var name = $('#form_contact_name'); 
				var email = $('#form_contact_email');
				var telephone = $('#form_contact_phone');
				var checkin = $('#form_contact_checkin'); 
				var checkout = $('#form_contact_checkout');
				var rooms = $('#form_contact_rooms');
				var adults = $('#form_contact_adults');
				var comment = $('#form_contact_message');
				var message = encodeURIComponent(comment.val());
				var comment = name.val() + " would like to know availability from [Check-In Date]: " + checkin.val() + " to [Check-Out Date]: " + checkout.val() + ", for " + adults.val() + " guests staying in " + rooms.val() + " rooms. Additional comments: " + message;
				//organize the data properly
				var data = "form_contact_name=" + name.val() + "&form_contact_email=" + email.val() + "&form_contact_phone=" + telephone.val() + "&form_contact_checkin=" + checkin.val() + "&form_contact_checkout=" + checkout.val() + "&form_contact_adults=" + adults.val() + "&form_contact_rooms=" + rooms.val() + "&form_contact_message="  + comment;
				//start the ajax
				$.ajax({
					//this is the php file that processes the data and send mail
					url: "thanks.php",	
			
					//GET method is used
					type: "GET",

					//pass the data			
					data: data,		
			
					//Do not cache the page
					cache: false,
			
					//success
					success: function (html) {				
						//if mailing.php returned 1/true (send mail success)
						if (html==1) {	
							$('#sending_enquiry').html("<h3 class='sent'>Enquiry Sent!</h3><p>Someone will get back to you as soon as possible.</p><button id='resetform'>Send another enquiry &raquo;</button>");
						//if mailing.php returned 0/false (send mail failed)
						} else{
							$('#sending_enquiry').html(html+"<button id='resetform'>Try again? &raquo;</button>");
						}
					}
				});
			}
		});
	}
	
	if($('.rollover_photos')){
		$('.rollover_photos').hover(function(){
			$(this).children(".overlay").stop(true, true).fadeIn("slow");
		}, function(){
			$(this).children(".overlay").stop(true, true).fadeOut("medium");
		});
	}
		
	if($("#photos")){
		var interval = 6000;
		$("#photos li").not(".visible").hide()
		//fade out the 'vis' images and fade in the next ones.
		function fadePictures(){
			if ($("#photos li:last").is(":visible")){
				$("#photos li:visible").delay(1500).fadeOut(1500);
				$("#photos li:first").delay(1500).fadeIn(1200);
			}else{
				$("#photos li:visible").delay(1500).fadeOut(1500);
				$("#photos li:visible").next("li").delay(1500).fadeIn(1200);
			}
		}
		setInterval(
			function(){
				fadePictures();
			}, interval
		);
	}
});

