
$(document).ready(function(){
	// Home page header image rotation
	$('#header-home').append('<img src="http://www.columbusapartments.co.uk/images/header-images/home-2.jpg" width="950" height="300" />');
	$('#header-home').append('<img src="http://www.columbusapartments.co.uk/images/header-images/home-3.jpg" width="950" height="300" />');
	$('#header-home').append('<img src="http://www.columbusapartments.co.uk/images/header-images/home-4.jpg" width="950" height="300" />');
	$('#header-home').append('<img src="http://www.columbusapartments.co.uk/images/header-images/home-5.jpg" width="950" height="300" />');
	$('#header-home').cycle();
	// Post it
	$('div#postit').css('display', 'block');
	$('div#postit').addClass('postit-active');
	// Form Styling
	$('.uibutton').button();
	$('input.sForm, form#editBooking input, form#editBooking textarea, .gForm').hover(function() {
		$(this).removeClass('ui-state-default');
		$(this).addClass('ui-state-hover');
	},
	function() {
		if(!$(this).hasClass('hasFocus')) {
			$(this).removeClass('ui-state-hover');
			$(this).addClass('ui-state-default');
		}
	});
	$('input.sForm, form#editBooking input, form#editBooking textarea, .gForm').focus(function() {
		$(this).removeClass('ui-state-default');
		$(this).addClass('ui-state-hover');
		$(this).addClass('hasFocus');
	});
	$('input.sForm, form#editBooking input, form#editBooking textarea, .gForm').blur(function() {
		$(this).removeClass('ui-state-hover');
		$(this).removeClass('hasFocus');
		$(this).addClass('ui-state-default');
	});
	$('input.datePicker').datepicker({ dateFormat: 'dd/mm/yy' });
	// Lightbox
	$("a[rel=photo_group]").lightBox({
		overlayBgColor: '#000',
			overlayOpacity: 0.5,
			imageLoading: 'http://www.columbusapartments.co.uk/images/lightbox-ico-loading.gif',
			imageBtnClose: 'http://www.columbusapartments.co.uk/images/lightbox-btn-close.gif',
			imageBtnPrev: 'http://www.columbusapartments.co.uk/images/lightbox-btn-prev.gif',
			imageBtnNext: 'http://www.columbusapartments.co.uk/images/lightbox-btn-next.gif',
			imageBlank: 'http://www.columbusapartments.co.uk/images/lightbox-blank.gif',
			containerResizeSpeed: 350
	});
	// Sidebar Search Form Validation
	$('form#searchForm').submit(function() {
		var errors = '';
		var reDate = new RegExp(/^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/);
		var dateFrom = $('input#dateFrom').val();
		var dateTo = $('input#dateTo').val();
		var reInt = new RegExp(/^[1-6]{1}$/);
		var numGuests = $('input#numGuests').val();
		if(!reDate.test(dateFrom) || !reDate.test(dateTo)) errors += 'Dates must be in the format DD/MM/YYYY.<br />';
		else {
			var todayString = 20120223;
			var fromString = parseInt( dateFrom.substr(6,4)+dateFrom.substr(3,2)+dateFrom.substr(0,2));
			var toString = parseInt(dateTo.substr(6,4)+dateTo.substr(3,2)+dateTo.substr(0,2));
			if(fromString <= todayString) errors += 'Arrival date must be later than today\'s date.<br />';
			else if(fromString >= toString) errors += 'Departure date must be later than arrival date.<br />';
		}
		if(!reInt.test(numGuests)) errors += 'Number of Guests must be a number between 1 and 6.<br />';
		
		if(errors.length > 0) {
			$('div#dialog').html('<br />'+errors+'<br />');
			$('div#dialog').dialog({ title: 'Errors:', width:450, modal:true, buttons: { "Ok": function() { $(this).dialog("close"); } }});
			return false;
		}
	});
	
	// MBP Search Form Validation
	$('form#mbpForm').submit(function() {
		var errors = '';
		var reDate = new RegExp(/^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/);
		var dateFrom = $('input#mbpDateFrom').val();
		var dateTo = $('input#mbpDateTo').val();
		var reInt = new RegExp(/^[1-6]{1}$/);
		var numGuests = $('input#mbpNumGuests').val();
		if(!reDate.test(dateFrom) || !reDate.test(dateTo)) errors += 'Dates must be in the format DD/MM/YYYY.<br />';
		else {
			var todayString = 20120223;
			var fromString = parseInt( dateFrom.substr(6,4)+dateFrom.substr(3,2)+dateFrom.substr(0,2));
			var toString = parseInt(dateTo.substr(6,4)+dateTo.substr(3,2)+dateTo.substr(0,2));
			if(fromString <= todayString) errors += 'Arrival date must be later than today\'s date.<br />';
			else if(fromString >= toString) errors += 'Departure date must be later than arrival date.<br />';
		}
		if(!reInt.test(numGuests)) errors += 'Number of Guests must be a number between 1 and 6.<br />';
		
		if(errors.length > 0) {
			$('div#dialog').html('<br />'+errors+'<br />');
			$('div#dialog').dialog({ title: 'Errors:', width:450, modal:true, buttons: { "Ok": function() { $(this).dialog("close"); } }});
			return false;
		}
	});
	
	// Guestbook Form Validation
	$('form#guestbookForm').submit(function() {
		var errors = '';
		var name = $('input#gbName').val();
		var msg = $('textarea#gbMessage').val();
		if((name.length < 2) || (name.length > 64)) errors += 'Please enter a name (between 2 and 64 characters long).<br />';
		if(msg.length < 10) errors += 'Please enter a message (minimum of 10 characters long).<br />';
		if(errors.length > 0) {
			$('div#dialog').html('<br />'+errors+'<br />');
			$('div#dialog').dialog({ title: 'Errors:', width:450, modal:true, buttons: { "Ok": function() { $(this).dialog("close"); } }});
			return false;
		}
	});
	
	// Contact Form Validation
	$('form#contactForm').submit(function() {
		var errors = '';
		if(($('input#cName').val().length < 2) || ($('input#cName').val().length > 64)) errors += 'Please enter a name (between 2 and 64 characters long).<br />';
		var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
		if(reg.test($('input#cEmail').val()) != true) errors+= 'Please enter a valid email address.<br />';
		if($('textarea#cMessage').val().length < 10) errors += 'Please enter a message (minimum of 10 characters long).<br />';
		if(errors.length > 0) {
			$('div#dialog').html('<br />'+errors+'<br />');
			$('div#dialog').dialog({ title: 'Errors:', width:450, modal:true, buttons: { "Ok": function() { $(this).dialog("close"); } }});
			return false;
		}
	});
	
	
	// Booking details Form Validation
	$('form#detailsForm').submit(function() {
		var errors = '';
		var i = 1;
		for(i=1;i<=6;i++)
		{
			if($('input#bName'+i).length != 0)
			{
				if(($('input#bName'+i).val().length < 1) || ($('input#bName'+i).val().length > 64))
				{
					if(i == 1) errors += 'Please enter your name (max 64 characters long).<br />';
					else errors += 'Please enter the name of guest '+i+' (max 64 characters long).<br />';
				}
			}
		}
		if($('input#bEmail1').val() != $('input#bEmail2').val()) errors += 'Please ensure that the email address you supplied matches the confirmation email address.<br />';
		else 
		{
			var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
			if(reg.test($('input#bEmail1').val()) != true) errors+= 'Please enter a valid email address.<br />';
		}
		var reg = /^([0-9 \-\.\+\(\))]{8,22})$/;
		if(reg.test($('input#bPhone').val()) != true) errors+= 'Please enter a valid telephone number.<br />';
		if(($('input#bAddress1').val().length < 1) || ($('input#bAddress1').val().length > 64)) errors += 'Please enter the first line of your address (max 64 characters long).<br />';
		if($('input#bAddress2').val().length > 64) errors += 'The second line of your address is too long (max 64 characters).<br />';
		if(($('input#bCity').val().length < 1) || ($('input#bCity').val().length > 32)) errors += 'Please enter your town/city (max 32 characters long).<br />';
		if(($('input#bCounty').val().length < 1) || ($('input#bCounty').val().length > 32)) errors += 'Please enter your county/state (max 32 characters long).<br />';
		if(($('input#bPostcode').val().length < 1) || ($('input#bPostcode').val().length > 16)) errors += 'Please enter your postcode/zip (max 16 characters long).<br />';
		if(($('input#bCountry').val().length < 1) || ($('input#bCountry').val().length > 32)) errors += 'Please enter your country (max 32 characters long).<br />';
		if(errors.length > 0) {
			$('div#dialog').html('<br />'+errors+'<br />');
			$('div#dialog').dialog({ title: 'Errors:', width:450, modal:true, buttons: { "Ok": function() { $(this).dialog("close"); } }});
			return false;
		}
	});
	
	// Booking details Form Validation
	$('form#confirmForm input#confirmButton').click(function() {
			if(!$('input#bookingconds').attr('checked')) {
				$('div#dialog').html('<br />Please tick the box to confirm that you have read and understood our booking conditions.<br />');
				$('div#dialog').dialog({ title: 'Error:', width:450, modal:true, buttons: { "Ok": function() { $(this).dialog("close"); } }});
				return false;
			}
			$('div#dialog').html('<br /><strong>Are you sure you want to confirm this booking?</strong><br /><br />Your accommodation will be reserved instantly and held for 7 days.  If you do not pay within this period your booking will be cancelled.  You will receive an email confirming all the booking details and payment information.');
			$('div#dialog').dialog({ title: 'Confirm Booking:', width:450, modal:true, buttons: { "Cancel": function() { $(this).dialog("close"); }, "Confirm Booking": function() { $('form#confirmForm').submit(); } }});
			return false;
	});
	
	// Guestbook moderation buttons
	$('a.delMsg').button();
	$('a.delMsg').click(function() {
			var targetUrl = $(this).attr("href");	
			$('div#dialog').html('<br /><strong>Are you sure you want to delete this guestbook message?</strong><br /><br />There is no way to undo this action.');
			$('div#dialog').dialog({ title: 'Confirm Deletion:', width:450, modal:true, buttons: { "Cancel": function() { $(this).dialog("close"); return false; }, "Yes - Delete it!": function() { window.location.href = targetUrl; } }});
			return false;
	});
	
});

// Calendar switch
function aCalChange(apt, month, year)
{
	var url = 'http://www.columbusapartments.co.uk/inc/ajax/aCalendar.php?apt='+apt+'&month='+month+'&year='+year;
	$('div.aCalendar').load(url, function() {
		$('.uibutton').button();
	});
}

