// Dynamically compute the current year and add 2 more years
var now = new Date;
var thisYear = now.getUTCFullYear();
var nextYear = thisYear + 2;
var thisMonth = now.getMonth() + 1;
var thisDay = now.getUTCDate();

$(document).ready(function(){
	
	/*
	* Home Page Popup Announcement
	**/
	if($('#boxes').length > 0)
	{
		var id = '#dialog';
		
		//Get the screen height and width
		var maskHeight = $(document).height();
		var maskWidth = $(window).width();
	
		//Set heigth and width to mask to fill up the whole screen
		$('#mask').css({'width':maskWidth,'height':maskHeight});
		
		//transition effect		
		$('#mask').fadeIn(1000);	
		$('#mask').fadeTo("slow",0.8);	
	
		//Get the window height and width
		var winH = $(window).height();
		var winW = $(window).width();
			  
		//Set the popup window to center
		$(id).css('top',  winH/2-$(id).height()/2);
		$(id).css('left', winW/2-$(id).width()/2);
	
		//transition effect
		$(id).fadeIn(2000); 	
		
		//if close button is clicked
		$('.window .close').click(function (e) {
			//Cancel the link behavior
			e.preventDefault();
			
			$('#mask').hide();
			$('.window').hide();
		});		
		
		//if mask is clicked
		$('#mask').click(function () {
			$(this).hide();
			$('.window').hide();
		});
	}
	
	
	
	
	/*
	* Masthead Transitions
	**/
	
	if($('#slideshow').length > 0) {
		$('#slideshow').cycle()
	}
	
	/*
	* Specials Panel on the Home Page
	**/
	if ($('div#specialsPreview').length > 0) {
		$('div#specialsPreview').bxSlider({
			alignment: 'horizontal',        // 'horizontal', 'vertical' - direction in which slides will move
			controls: false,                 // determines if default 'next'/'prev' controls are displayed
			speed: 500,                     // amount of time slide transition lasts (in milliseconds)
			pager: true,                    // determines if a numeric pager is displayed (1 2 3 4...)
			pager_short: false,             // determines if a 'short' numeric pager is displayed (1/4)
			pager_short_separator: ' / ',   // text to be used to separate the short pager
			margin: 0,                      // if 'horizontal', applies a right margin to each slide, if 'vertical' a
											// bottom margin is applied. example: margin: 50
			next_text: 'next',              // text to be displayed for the 'next' control
			next_image: '',                 // image to be used for the 'next' control
			prev_text: 'prev',              // text to be displayed for the 'prev' control
			prev_image: '',                 // image to be used for the 'prev' control
			auto: true,                    // determines if slides will move automatically
			pause: 5000,                    // time between each slide transition (auto mode only) 
			auto_direction: 'next',         // order in which slides will transition (auto mode only)
			auto_hover: true,               // determines if slideshow will pause while mouse is hovering over slideshow
			auto_controls: false,           // determines if 'start'/'stop' controls are displayed (auto mode only)
			ticker: false,                  // determines if slideshow will behave as a constant ticker
			ticker_controls: false,         // determines if 'start'/'stop' ticker controls are displayed (ticker mode only)
			ticker_direction: 'next',       // order in which slides will transition (ticker mode only)
			ticker_hover: true,             // determines if slideshow will pause while mouse is hovering over slideshow
			stop_text: 'stop',              // text to be displayed for the 'stop' control
			start_text: 'start',            // text to be displayed for the 'start' control
			wrapper_class: 'bxslider_wrap'  // class name to be used for the outer wrapper of the slideshow
		});
	}
		
	
	
	/*
	* Reservation Widget Validatation
	**/
	
	// Custom Date Rule
	$.validator.addMethod("holidayInnDate", function(value, element) {
		// Feb-11-2011
		return value.match(/^([A-Za-z]+)-([0-9]{2})-([0-9]{4})$/);
	},
	"Please enter a date in the following format: Month(e.g. Feb)-dd-yyyy"
	);

	$("#resForm").validate({
		onsubmit: true,
		onkeyup: false,
		onfocusout: false,
		onclick: false,
		focusInvalid: false,
		focusCleanup: true,
		rules: {
			checkInDate: {
				required: true,
				holidayInnDate: true
			},
			checkOutDate: {
				required: true,
				holidayInnDate: true
			}
		},
		messages: {
			checkInDate: {
				required: "Check In Date Required",
				date: "Invalid Check In Date Format (01/01/2001)"
			},
			checkOutDate: {
				required: "Check Out Date Required",
				date: "Invalid Check Out Date Format (01/01/2001)"
			}
		},
		errorPlacement: function(error, element) {
            error.prependTo('#dialogMessage');
          },
		errorLabelContainer: "#dialogMessage ul", //puts errors in an unorderd list
		errorElement: "li", //wraps the error message in a list element
		submitHandler: function(form)
		{
			// triggers only if form is valid....
			$('#dialogMessage').dialog('close');
			form.submit();
		},
		showErrors: function() {
			$("#dialogMessage").dialog('open');
			this.defaultShowErrors();
		}

	});
	
	
	/*
	* Stay In Touch Validatation and Input Labels
	**/
	
	if($("#icpsignup3412").length > 0) {
		
		// Input Labels
		$('input[name="fields_fname"]').val('first name').css('color', '#999');
		$('input[name="fields_email"]').val('email').css('color', '#999');
		
		$('input[name="fields_fname"], input[name="fields_email"]').focus(function() {
			$(this).val('');
		});
		
		$('input[name="fields_fname"]').focusout(function() {
			if($(this).val() != '') {
				var value1 = $(this).val();
				$(this).val(value1).css('color', '#000');
			}
			else {
				$(this).val('first name').css('color', '#999');
			}
		});
		
		$('input[name="fields_email"]').focusout(function() {
			if($(this).val() != '') {
				var value2 = $(this).val();
				$(this).val(value2).css('color', '#000');
			}
			else {
				$(this).val('email').css('color', '#999');
			}
		});
	
		// validatation
		$("#icpsignup3412").validate({
			onsubmit: true,
			onkeyup: false,
			onfocusout: false,
			onclick: false,
			focusInvalid: false,
			focusCleanup: true,
			rules: {
				fields_email: {
					required: true,
					email: true
				}
			},
			messages: {
				fields_email: {
					required: "Email address is required",
					date: "Invalid Email Format"
				}
			},
			errorPlacement: function(error, element) {
				error.prependTo('#dialogMessage');
			  },
			errorLabelContainer: "#dialogMessage ul", //puts errors in an unorderd list
			errorElement: "li", //wraps the error message in a list element
			submitHandler: function(form)
			{
				// triggers only if form is valid....
				$('#dialogMessage').dialog('close');
				form.submit();
			},
			showErrors: function() {
					$("#dialogMessage").dialog('open');
					this.defaultShowErrors();
			}
	
		});
	}
	
	
	
	/*
	* Validatation Errors Modal Box
	**/

	$("#dialogMessage").dialog({
		modal: true,
		autoOpen: false,
		buttons: { Ok: function() {
			$(this).dialog('close');
			}
		}
	});
	
	
	
	/*
	* Reservation Widget Date Picker
	**/

	$("#startDate").datepicker({
		dateFormat: 'M-dd-yy',
		minDate: "+0d",
		maxDate: "+1y",
		changeMonth: true,
		changeYear: true,
		monthRange: "January:December",
		//yearRange: "2008:2018",
		yearRange: thisYear + ":" + nextYear //see date calculation variables above
	});
		
	$("#endDate").datepicker({
		dateFormat: 'M-dd-yy',
		minDate: "+1d",
		maxDate: "+1y",
		changeMonth: true,
		changeYear: true,
		monthRange: "January:December",
		//yearRange: "2008:2018",
		yearRange: thisYear + ":" + nextYear //see date calculation variables above
	});
	
	
	$("#dateOfEvent").datepicker({
		dateFormat: 'M-dd-yy',
		minDate: "+1d",
		maxDate: "+1y",
		changeMonth: true,
		changeYear: true,
		monthRange: "January:December",
		//yearRange: "2008:2018",
		yearRange: thisYear + ":" + nextYear //see date calculation variables above
	});
	
	
	$("#arrivalDate").datepicker({
		dateFormat: 'M-dd-yy',
		minDate: "+1d",
		maxDate: "+1y",
		changeMonth: true,
		changeYear: true,
		monthRange: "January:December",
		//yearRange: "2008:2018",
		yearRange: thisYear + ":" + nextYear //see date calculation variables above
	});
	
	$("#departureDate").datepicker({
		dateFormat: 'M-dd-yy',
		minDate: "+1d",
		maxDate: "+1y",
		changeMonth: true,
		changeYear: true,
		monthRange: "January:December",
		//yearRange: "2008:2018",
		yearRange: thisYear + ":" + nextYear //see date calculation variables above
	});
	
	
	$("#startDate, #endDate").datepicker({
		beforeShow: customRange
	});
	
	function customRange(input) {  
		return {minDate: (input.id == "endDate" ? 
		$("#startDate").datepicker("getDate") : null),  
		maxDate: (input.id == "startDate" ? 
		$("#endDate").datepicker("getDate") : null)};
	}
	
	/*
	* Gallery for Tours Page
	**/
	
	if($("#pikame").length > 0)
	{
		$("#pikame").PikaChoose({
			showCaption: true,
			autoPlay: true
		});
		
		$("#pikame").jcarousel({					
			initCallback: function(carousel) 
			{
				$(carousel.list).find('img').click(function()
				{
					var clicked = parseInt($(this).parents('.jcarousel-item').attr('jcarouselindex'));
					var last = ($(this).parents('ul').find('li:last').index() == clicked-1) ? true : false;
					if(!last)
					{
						clicked = (clicked-2<=0) ? 0 : clicked-2;
					}
					carousel.scroll(clicked);
				});
			}
		});
	}
	
	
	
	/*
	* jQueryUI Buttons
	**/
	
	$(".buttonLink").button();
	
	
	
	/*
	* Accordians
	**/
	
	if($('.accordGallContainer').length > 0) {
		
		// Accordian Widgets
		$(".details").hide();
		
		/*
		* Rooms & Suites
		**/	
		
		// Room 1	
		$("#room1 .button, #room1 .summary img").click(function(event) {
				event.preventDefault();
				$("#room1 .details").toggle("blind", function() {
					var txt = $("#room1 .details").is(':visible') ? 'close' : 'learn more';
					$("#room1 .button").text(txt);
				}, 500);
				return false;
		});
		
		$('#room1 .gallery').after('<div class="pager">').cycle({ 
			fx:     'cover', 
			speed:  'fast', 
			timeout: 0, 
			pager:  '#room1 .pager' 
		});
		
		// Room 2
		$("#room2 .button, #room2 .summary img").click(function(event) {
				event.preventDefault();
				$("#room2 .details").toggle("blind", function() {
					var txt = $("#room2 .details").is(':visible') ? 'close' : 'learn more';
					$("#room2 .button").text(txt);
				}, 500);
				return false;
		});
		
		$('#room2 .gallery').after('<div class="pager">').cycle({ 
			fx:     'cover', 
			speed:  'fast', 
			timeout: 0, 
			pager:  '#room2 .pager' 
		});
		
		// Room 3
		$("#room3 .button, #room3 .summary img").click(function(event) {
				event.preventDefault();
				$("#room3 .details").toggle("blind", function() {
					var txt = $("#room3 .details").is(':visible') ? 'close' : 'learn more';
					$("#room3 .button").text(txt);
				}, 500);
				return false;
		});
		
		$('#room3 .gallery').after('<div class="pager">').cycle({ 
			fx:     'cover', 
			speed:  'fast', 
			timeout: 0, 
			pager:  '#room3 .pager' 
		});
		
		// Room 4
		$("#room4 .button, #room4 .summary img").click(function(event) {
				event.preventDefault();
				$("#room4 .details").toggle("blind", function() {
					var txt = $("#room4 .details").is(':visible') ? 'close' : 'learn more';
					$("#room4 .button").text(txt);
				}, 500);
				return false;
		});
		
		$('#room4 .gallery').after('<div class="pager">').cycle({ 
			fx:     'cover', 
			speed:  'fast', 
			timeout: 0, 
			pager:  '#room4 .pager' 
		});
		
		// Room 5
		$("#room5 .button, #room5 .summary img").click(function(event) {
				event.preventDefault();
				$("#room5 .details").toggle("blind", function() {
					var txt = $("#room5 .details").is(':visible') ? 'close' : 'learn more';
					$("#room5 .button").text(txt);
				}, 500);
				return false;
		});
		
		$('#room5 .gallery').after('<div class="pager">').cycle({ 
			fx:     'cover', 
			speed:  'fast', 
			timeout: 0, 
			pager:  '#room5 .pager' 
		});
		
		// Room 6
		$("#room6 .button, #room6 .summary img").click(function(event) {
				event.preventDefault();
				$("#room6 .details").toggle("blind", function() {
					var txt = $("#room6 .details").is(':visible') ? 'close' : 'learn more';
					$("#room6 .button").text(txt);
				}, 500);
				return false;
		});
		
		$('#room6 .gallery').after('<div class="pager">').cycle({ 
			fx:     'cover', 
			speed:  'fast', 
			timeout: 0, 
			pager:  '#room6 .pager' 
		});
		
		/*
		* Ballrooms & Spaces
		**/	
		
		// Ballroom 1	
		$("#ballRoom1 .button").click(function(event) {
				event.preventDefault();
				$("#ballRoom1 .details").toggle("blind", function(){
					var txt = $("#ballRoom1 .details").is(':visible') ? 'close' : 'learn more';
					$("#ballRoom1 .button").text(txt);	
				}, 500);
				return false;
		});
		
		$('#ballRoom1 .gallery').after('<div class="pager">').cycle({ 
			fx:     'cover', 
			speed:  'fast', 
			timeout: 0, 
			pager:  '#ballRoom1 .pager' 
		});
		
		// Ballroom 2
		$("#ballRoom2 .button").click(function(event) {
				event.preventDefault();
				$("#ballRoom2 .details").toggle("blind", function(){
					var txt = $("#ballRoom2 .details").is(':visible') ? 'close' : 'learn more';
					$("#ballRoom2 .button").text(txt);	
				}, 500);
				return false;
		});
		
		$('#ballRoom2 .gallery').after('<div class="pager">').cycle({ 
			fx:     'cover', 
			speed:  'fast', 
			timeout: 0, 
			pager:  '#ballRoom2 .pager' 
		});
		
		// Ballroom 3
		$("#ballRoom3 .button").click(function(event) {
				event.preventDefault();
				$("#ballRoom3 .details").toggle("blind", function(){
					var txt = $("#ballRoom3 .details").is(':visible') ? 'close' : 'learn more';
					$("#ballRoom3 .button").text(txt);	
				}, 500);
				return false;
		});
		
		$('#ballRoom3 .gallery').after('<div class="pager">').cycle({ 
			fx:     'cover', 
			speed:  'fast', 
			timeout: 0, 
			pager:  '#ballRoom3 .pager' 
		});
		
		/*
		* Meeting Facilities
		**/	
		
		// Meeting Room 1	
		$("#meetingRoom1 .button").click(function(event) {
				event.preventDefault();
				$("#meetingRoom1 .details").toggle("blind", function(){
					var txt = $("#meetingRoom1 .details").is(':visible') ? 'close' : 'learn more';
					$("#meetingRoom1 .button").text(txt);
				}, 500);
				
				return false;
		});
		
		$('#meetingRoom1 .gallery').after('<div class="pager">').cycle({ 
			fx:     'cover', 
			speed:  'fast', 
			timeout: 0, 
			pager:  '#meetingRoom1 .pager' 
		});
		
		// Meeting Room 2
		$("#meetingRoom2 .button").click(function(event) {
				event.preventDefault();
				$("#meetingRoom2 .details").toggle("blind", function(){
					var txt = $("#meetingRoom2 .details").is(':visible') ? 'close' : 'learn more';
					$("#meetingRoom2 .button").text(txt);
				}, 500);
				return false;
		});
		
		$('#meetingRoom2 .gallery').after('<div class="pager">').cycle({ 
			fx:     'cover', 
			speed:  'fast', 
			timeout: 0, 
			pager:  '#meetingRoom2 .pager' 
		});
		
		// Meeting Room 3
		$("#meetingRoom3 .button").click(function(event) {
				event.preventDefault();
				$("#meetingRoom3 .details").toggle("blind", function(){
					var txt = $("#meetingRoom3 .details").is(':visible') ? 'close' : 'learn more';
					$("#meetingRoom3 .button").text(txt);
				}, 500);
				return false;
		});
		
		$('#meetingRoom3 .gallery').after('<div class="pager">').cycle({ 
			fx:     'cover', 
			speed:  'fast', 
			timeout: 0, 
			pager:  '#meetingRoom3 .pager' 
		});
		
		/*
		* Dining
		**/	
		
		// Dining 1	
		$("#dining1 .button").click(function(event) {
				event.preventDefault();
				$("#dining1 .details").toggle("blind", "", 500);
				return false;
		});
		
		$('#dining1 .gallery').after('<div class="pager">').cycle({ 
			fx:     'cover', 
			speed:  'fast', 
			timeout: 0, 
			pager:  '#dining1 .pager' 
		});
		
		// Dining 2
		$("#dining2 .button").click(function(event) {
				event.preventDefault();
				$("#dining2 .details").toggle("blind", "", 500);
				return false;
		});
		
		$('#dining2 .gallery').after('<div class="pager">').cycle({ 
			fx:     'cover', 
			speed:  'fast', 
			timeout: 0, 
			pager:  '#dining2 .pager' 
		});
		
	}
	
	/*
	* Ajax for Badges
	**/
	var pathname = window.location.pathname;
	
	switch (pathname)
	{
	case '/specials.php':
	  $('#dynamicBadges').load('/inc/ajax/badges/specials.html');
	  break;
	case '/weddings-and-events/specials.php':
	  $('#dynamicBadges').load('/inc/ajax/badges/wedding-specials.html');
	  break;
	case '/meetings/specials.php':
	  $('#dynamicBadges').load('/inc/ajax/badges/meeting-specials.html');
	  break;
	case '/weddings/index.php':
	  $('#dynamicBadges').load('/inc/ajax/badges/weddings.html');
	  break;
	case '/meetings/index.php':
	  $('#dynamicBadges').load('/inc/ajax/badges/meetings.html');
	  break;
	case '/rooms-and-suites.php':
	  $('#dynamicBadges').load('/inc/ajax/badges/rooms-suites.html');
	  break;
	case '/dining.php':
	  $('#dynamicBadges').load('/inc/ajax/badges/dining.html');
	  break;
	}
	
	
	
	/*
	* Tabs for Wedding Packages & Meeting Catering Menus
	**/
	$( ".tabs" ).tabs({
		ajaxOptions: {
			error: function( xhr, status, index, anchor ) {
				$( anchor.hash ).html("Couldn't load this tab. We'll try to fix this as soon as possible.");
			}
		}
	});
	
	
	
	/**
	* Resort Map
	*/
	
	if($('#grandBallroom, #garlandCenter').length > 0)
	{	
		$('#grandBallroom, #garlandCenter').hide();
		
		$('#grandBallroom, #garlandCenter').dialog({
			autoOpen: false,
			modal: true,
			width: 960,
			show: 'puff',
			hide: 'fade'
		});
		
		$('#grandBallroom').dialog({
			title: 'Grand Ballroom'
		});
		
		$('#garlandCenter').dialog({
			title: 'Garland Center'
		});
		
		$('#Map area').click(function(event){
			event.preventDefault();
		});
		
		$('area[alt="Grand Ballroom"]').click(function(){
			$('#grandBallroom').dialog('open');
			return false;
		});
		
		$('area[alt="Garland Center"]').click(function(){
			$('#garlandCenter').dialog('open');
			return false;
		});
	}
	
	
	/**
	* Flickr Gallery - Hotel Tours
	* 'FLICKR_SET_ID','YOUR_FLICKR_API_KEY'
	* Flickr Photo Gallery
	* Key: c132fe175843fa0d569c202da5987318
	* Secret: 1dc4c478e5b123fb 
	*/
	if($('#flickr_div').length > 0)
	{
		$('#flickr_div').flickrGallery('72157626535651482','c132fe175843fa0d569c202da5987318');
	}
	
});
