
		var minHeight = 470;
		var api; 
		
		var h = 0;
		var lastResize = 0;
		var scrollTarget = false;
		var animating = false;
		
		var bg_imgs = [
				{ target: 'panel1', src: 'images/bg_home.jpg' },
				{ target: 'panel2', src: 'images/bg_about-us.jpg' }, 
				{ target: 'panel3', src: 'images/bg_accomodations.jpg' },
				{ target: 'panel4', src: 'images/bg_guest-services.jpg' }, 
				{ target: 'panel5', src: 'images/bg_dining.jpg' },
				{ target: 'panel6', src: 'images/bg_events.jpg' },
				{ target: 'panel7', src: 'images/bg_promotions.jpg' }, 
				{ target: 'panel8', src: 'images/bg_gallery.jpg' }, 
				{ target: 'panel9', src: 'images/bg_directions.jpg' }, 
				{ target: 'panel10', src: 'images/bg_contact.jpg' }
        	];
				
		$(function(){			
			$('select').selectmenu();
		});		
		
		function resize( event )
		{
			//$(".pageWrapDiv").css( 'width', $(window).width() );
			var ratio = $(".bgImg").width() / $(".bgImg").height();
			var wHeight = ( $(window).height() >= minHeight ) ? $(window).height() : minHeight;
			
			lastResize = new Date().getTime();
			
			//prevent processing for width changes
			if( $(window).height() == h )
			{
				$(".pageWrapDiv").jScrollPane();

				api = $(".pageWrapDiv").data('jsp');
				
				$('.jScrollPaneScrollable').css('width', $(window).width() );
				$('.jScrollPaneScrollable, .jScrollPaneTrack').css('height', wHeight );
				if( scrollTarget )
				{
					scrollToPanel( scrollTarget );
				}
				return;
			} else {
				h = $(window).height();
			}
			
			
			
			$(".pageWrapDiv").css( 'height', wHeight );
			
			api.reinitialise()
			
			$('.jScrollPaneScrollable').css('width', $(window).width() );
			$('.jScrollPaneScrollable, .jScrollPaneTrack').css('height', wHeight );
			
			/*
			$(".bgImg").height( wHeight );
			$(".bgImg").width( wHeight * ratio );
			*/

			//reset nav bar expanders
			$("#bottom").css( "height", "0px" );
			$(".contactInfo").css( "padding-top:0px" );
			$("#navExpander").css( "height", "0px" );

			// reset promos for calculation
			$("#promos").css( 'display', 'block' );
			$("#promos").css( 'height', '232px' );
			$("#promosAlt").css( 'display', 'none' );

			var maxBottomExpander = 232;
			var minBottomExpander = 100;
			
			//$("#debug").html( $("#navBar").height() + " : " + wHeight );
			
			//if( (wHeight - $("#navBar").height() + minBottomExpander) >= 116 && (wHeight - $("#navBar").height() + minBottomExpander) <= 232 )
			if( ($("#navBar").height() + minBottomExpander) > wHeight && $("#navBar").height() + minBottomExpander <= wHeight + 116 )
			//116px is the height of single promo; 232px is the height of 2 promos
			{
				$("#promos").css( 'height', '116px' );
			} else if( ($("#navBar").height() + minBottomExpander) > wHeight ) 
			{
				$("#promos").css( {'display':'none', 'height' : 'auto'} );
				$("#promosAlt").css( 'display', 'block' );
			} else {
				$("#promos").css( {'display':'block', 'height' : 'auto'} );
				$("#promosAlt").css( 'display', 'none' );
			}
			
			var nHeight = $("#navBar").height();
			
			var bHeight = wHeight - nHeight;
			var tHeight = bHeight - maxBottomExpander;
			
			bHeight = Math.max( minBottomExpander, Math.min( bHeight, maxBottomExpander ) );
			
			$("#bottom").css( "height", bHeight );
			$(".contactInfo").css( "padding-top", bHeight - $(".contactInfo").height() - $("#bookerTrigger").height() - 8 );
			$("#navExpander").css( "height", tHeight ); 
			
			if( scrollTarget )
			{
				jumpToPanel( scrollTarget );
			}
		}
		
		/*
		//validate event form
		function validateEvents( formData, jqForm, options )
		{
			alert( "VALIDATE" );
		}
		
		function showResponse( responseText, statusText, xhr, $form )
		{
			alert( "SHOWRESPONSE" );
		}
		*/
		
		//special love for chrome
		$(window).load(function(){
			resize();
		});
		
		function validPhone( num )
		{
			return true;
			num = num.replace( /\W|[a-zA-Z]/g, '' );
			return num.length >= 10;
		}
		
		$(document).ready(function() {
			
			//DEBUG STUFF
			//$(".pageWrapDiv").prepend( '<span id="debug"></span>');
			
			$("#eventForm").submit( function(){
				
				var submit = true;
				
				if( $( "#first_name" ).val().length == 0 )
				{
					alert( "Please enter a valid first name. The first name cannot contain any numbers or special characters." );
					submit = false;
				} else if ( $( "#last_name" ).val().length == 0 ) {
					alert( "Please enter a valid last name. The last name cannot contain any numbers or special characters." );
					submit = false;
				} else if ( $( "#phone" ).val().length < 10 || !validPhone( $( "#phone" ).val() ) ) {
					alert( "Please enter a valid phone number." );
					submit = false;
				} else if ( $( "#date" ).val().length == 0 ) {
					alert( "Please select a date." );
					submit = false;
				} else {
					var date = $("#date").val();
					var time = $("#time").val();
					$( "#dateTimeField" ).val( date + " " + time );					
				}
				return submit;
			});
			
			$(window).resize(function( event ){
				resize( event );
			});

			$(".pageWrapDiv").css({ 'width': $(window).width(), 'height': $(window).height() });
			$(".pageWrapDiv").jScrollPane();
			api = $(".pageWrapDiv").data('jsp');
			
			var contentHeight = $('.contentWrapDiv').height();
			$("#bookerTrigger .closeBtn").hide();
			$("#bookerTrigger").click( function() {
				$("#bookerTrigger .closeBtn").toggle();
				var target = ( $("#bookerForm").height() > 0 ) ? 0 : 170;
				$("#bookerForm").animate({
					height: target
				}, 500 );
				
			});
			
			$(".pageWrapDiv").live( 'jsp-scroll-y', function( event, scrollPositionY, isAtBottom, isAtTop ) {	

				var d = new Date();
				var resizeDelta = d.getTime() - lastResize;
				//alert( resizeDelta );
				if( resizeDelta > 125 )
				{
					$('#nav .scrollLnk').each(function() {				
						var p = $( "#" + $(this).attr( 'rel' ) ).position();
						var tt = scrollPositionY + 100;
						if( p.top < tt && p.top + $("#" + $(this).attr( 'rel' ) ).height() >= tt )
						{
							$(this).attr( 'class', 'activeNav scrollLnk' );
							scrollTarget = $(this).attr( 'rel' );
							if( !animating )
							{
								loadBgImg( scrollTarget );
							}
						} else {
							$(this).attr( 'class', 'scrollLnk' );
						}					
					});
				}
			});
			
			resize();
			
			$( ".panelDiv" ).each( function() {
				var bgh = $( this ).children( ".bgImg" ).height();
				$(this).css( "min-height", bgh + 20 );
			});
			
			$(".scrollLnk").each(function(){
				$(this).bind( 'click', function() {
					var target = $(this).attr( 'rel' );
					scrollToPanel( target );					
					return false;
				});
			});
			
			$(".dateFieldDiv .iconLink").click( function() {
				$(this).siblings( "input" ).focus();
			});
			
			//Set up colapsable sub sections
			$( ".sectionToggle" ).hide();
			$( ".btnCloseSec" ).css('width', '0');
			
			// some should be open by defult
			$( ".defaultOpen" ).show().children( ".btnCloseSec").css('width', '36px');			
			
			$( ".btnCloseSec" ).click( function() {				
				$( this ).parents(".sectionTrigger").next( ".sectionToggle" ).hide();
				$( this ).css('width', '0');
				
				//Wait a milisecond before reinit the scroller
				//makes page more responsive by revealing the text
				//without the delay of processing the scroller
				var to = setTimeout(function(){
					api.reinitialise();
					clearTimeout( to );
				}, 5);
				
			});
						
			﻿$(".sectionTrigger a").not( ".btnCloseSec" ).click( function() {
				//close them all then open this one
				$(".sectionToggle").hide();
				$(".btnCloseSec").css('width', '0');
				
				$( this ).parents(".sectionTrigger").next( ".sectionToggle" ).toggle();
				//close button behavior 
				var closeBtn = $( this ).parent().next( ".btnCloseSec" );
				var btnW = closeBtn.width();
				if (btnW == 36) {
					closeBtn.css('width', '0');	
				} else {
					closeBtn.css('width', '36px');	
				}
				
				var to = setTimeout(function(){
					api.reinitialise();
					clearTimeout( to );
				}, 5);
				
			});
			
			Galleria.loadTheme( 'includes/js/galleria.fullscreen.js' );
			
			$(".gallery-data").css( 'display', 'none' );
			
			$(".launchGalleryHdr a").click(function(){
				
				if( $( "#gallery-data-loby").length < 1 )
				{
					loadGalleryData( 'lobby' );
				}
				$("#gallery-holder").hide();
				$("#gallery-holder").galleria({ data_source: '#gallery-data-lobby', transition:'pulse' });
				$("#gallery-holder").fadeIn();
				$("#navBar").fadeOut( 'fast', function(){ $("#panel8").css('z-index', '1100' ); } );
			});
			
			//single image in lightbox
			$('.lightboxImg').lightBox();
			
			//galleries lightbox
			$('#vineGallery a').lightBox();
			$('#redburyGallery a').lightBox();
			$('#hollywoodGallery a').lightBox();
			$('#panel7 a').lightBox();
			
			$('#vineRoomInfo a').click(function(){
				$("#vineGallery a:first").click();
			});
			
			$('#redburyRoomInfo a').click(function(){
				$("#redburyGallery a:first").click();
			});
			
			$('#hollywoodRoomInfo a').click(function(){
				$("#hollywoodGallery a:first").click();
			});
			
			//override some jqui settings for a select box
			var selector = $(".adultsSelect").next( 'a' ).attr( 'id' );
			selector = "#" + selector.replace( "-button", "-menu");
			$( selector ).removeClass( 'ui-corner-bottom' ).addClass( "ui-corner-top" );
			
			jQuery.fx.off = false;
			$('.bgImg').hide();
			loadBgImg( 'panel1' );
			
			$("#eventFormConfirm").lightBox();
			$("#eventFormConfirmError").lightBox();
			
			$("#eventForm").ajaxForm({
				success:function(response){
					if(response == 'false') {
						$("#eventFormConfirmError").click();
					} else {
						$("#eventFormConfirm").click();
					}
				},
				beforeSubmit:function(arr, $form, options)
				{
					return true;
				}, 
				resetForm:true
			});
			
		});
				
		function loadBgImg( target )
		{
			var img;
			
			for( var i = 0; i < bg_imgs.length; i++ )
			{
				if( bg_imgs[ i ].target == target )
				{
					img = bg_imgs[ i ];
				}
			}
			
			if( $("#" + img.target + " .bgImg").attr( 'src' ) != img.src )
			{
				$("#" + img.target + " .bgImg").bind("load", function () { $(this).fadeIn( 'slow' ); });
				$("#" + img.target + " .bgImg").attr( 'src', img.src );
			}
		}
		
		function loadGalleryData( gallery )
		{
			var gi;
			var dir;
			switch( gallery )
			{
			case "lobby":
				gi = 27;
				dir = "Lobby";
				break;
			case "restaurant":
				gi = 3;
				dir = "Restaurant";
				break;
			case "rooms":
				gi = 8;
				dir = "Rooms";
				break;				
			}
			
			var id = "gallery-data-" + gallery;
			$("#panel8 .panelContent").append( '<div id="' + id + '" class="gallery-data">&nbsp;</div>' );
			
			$("#" + id).css( 'display', 'none');
			
			for( var i = 1; i <= gi; i++ )
			{
				$( "#" + id ).append( '<a href="images/Galleries/Photo_Gallery/Fullsize/' + dir + '/' + i + '.jpg"><img src="images/Galleries/Photo_Gallery/PhotoGallery_Thumbs/' + dir + '/' + i + '.jpg" /></a>' );
			}
			
		}

		function killGallery(){
			$("#gallery-holder").fadeOut( 'slow', function(){
				$("#gallery-holder").html( '' );
				$(".gallery-data").remove();
				$("#panel8").css( 'z-index', 900 );
			});
			
			$("#navBar").fadeIn( "fast" );
		}
		
		//datepicker function
		$(function() {
			$( ".dateFieldDiv input, input.dateField" ).datepicker();
		});
		
		//form fields value remove
		function onFocus( element, defaultValue ) {
			if (element.value == defaultValue) {
				element.value = '';
			}
		}
		
		function onBlur( element, defaultValue ) {
			if (element.value.trim() == '') {
				element.value = defaultValue;
			}
		}
		
		function submitBooking( element ) {
			if ($("#bookPromo").val() == 'promo code') {
				$("#bookPromo").val('');
			}
			
			return checkIBE(element);
		}
		
		function jumpToPanel( target )
		{
			var scrollPos = $("#" + scrollTarget ).position().top;			
			api.scrollToY( scrollPos );
			$( '.scrollLnk[rel="' + scrollTarget + '"]').attr( 'class', 'scrollLnk activeNav' );
			loadBgImg( target );
		}
		
		var scrollAnimTarget;
		
		function scrollToPanel( target )
		{	
			scrollAnimTarget = target;
			
			// there can be only one
			if( animating )
			{
				return;
			}
			
			var fps = 24;
			var fStep = 1000 / fps;
			
			var to;
			
			function step()
			{
				var scrollToPos = $("#" + scrollAnimTarget ).position().top;
				var scrollPos = api.getContentPositionY();
				var delta = scrollToPos - scrollPos;
				var div = 8;
				var mod;
				if( delta / div < 0 )
				{
					mod = Math.floor( delta / div );
				} else if( delta / div > 0 )
				{
					mod = Math.ceil( delta / div );
				} else {
					mod = 0;
				}
				
				var stepTo = scrollPos + mod;
				
				clearTimeout( to );
				
				if( Math.floor( delta ) < 8 && Math.floor( delta ) > -8 ){
					animating = false;
					if( scrollAnimTarget == "panel1" )
					{
						loadBgImg( scrollAnimTarget );
						return;
					} else {
						jumpToPanel( scrollAnimTarget );
					}
				} else {
					api.scrollToY( stepTo );
					to = setTimeout( step, fStep );
				}
			}
			
			if( $( "#" + scrollAnimTarget ).position().top == api.getContentPositionY() )
			{
				animating = false;
				return;
			}
			
			animating = true;
			to = setTimeout( step, fStep );
			
		}

