$(document).ready(function(){		
	// reservation datepickers
	$("#res_depart_date").datepicker({
		showOn: "button",
		buttonImage: "/_img/calendar.png",
		buttonImageOnly: true,
		buttonText: "Departure Date"
	});
	$("#res_return_date").datepicker({
		showOn: "button",
		buttonImage: "/_img/calendar.png",
		buttonImageOnly: true,
		buttonText: "Return Date"
	});
	
	// fancybox
	$("a.zoom").fancybox({
		'padding'        : 0,
		'width'          : 640,
		'height'         : 495,
		'autoScale'      : false,
		'overlayOpacity' : .5,
		'overlayColor'   : '#000',
		'transitionIn'   : 'fade',
		'transitionOut'  : 'fade'
	});
	$(".tip4").click(function(){
		$.fancybox({
			'padding'		: 0,
			'autoScale'		: false,
			'transitionIn'	: 'none',
			'transitionOut'	: 'none',
			'title'			: this.title,
			'width'			: 680,
			'height'		: 495,
			'href'			: this.href.replace(new RegExp("watch\\?v=", "i"), 'v/'),
			'type'			: 'swf',
			'swf'			: {
				'wmode'			 : 'transparent',
				'allowfullscreen': 'true'
			}
		});
		return false;
	});
	
	// form validation
	$(".validate").validationEngine();
	
	// slideshow
	theRotator();

	// login validation
	$.validator.addMethod("username", function(value, element) {
        return this.optional(element) || /^[a-z0-9\_]+$/i.test(value);
    }, "Username must contain only letters, numbers, or underscore.");

    $("#regForm").validate();
	$("#actForm").validate();
	$("#myform").validate();
	$("#pform").validate();
});

//// - Slideshow - ////
function theRotator() {
	//Set the opacity of all images to 0
	$('div#rotator ul li').css({opacity: 0.0});
	
	//Get the first image and display it (gets set to full opacity)
	$('div#rotator ul li:first').css({opacity: 1.0});
		
	//Call the rotator function to run the slideshow, 6000 = change to next image after 6 seconds
	setInterval('rotate()',6000);
}
function rotate() {	
	//Get the first image
	var current = ($('div#rotator ul li.show')?  $('div#rotator ul li.show') : $('div#rotator ul li:first'));

	//Get next image, when it reaches the end, rotate it back to the first image
	var next = ((current.next().length) ? ((current.next().hasClass('show')) ? $('div#rotator ul li:first') :current.next()) : $('div#rotator ul li:first'));	
	
	//Set the fade in effect for the next image, the show class has higher z-index
	next.css({opacity: 0.0})
	.addClass('show')
	.animate({opacity: 1.0}, 1000);

	//Hide the current image
	current.animate({opacity: 0.0}, 1000)
	.removeClass('show');
	
};
