$(document).ready(function(){
	$('h1, h2, h3, cite').each(function() {
	   var $this = $(this);
	   var t = $this.html();
	   $this.html(t.replace('&amp;','<abbr title="and">&amp;</abbr>'));
	});

	slideCount = $('.slide-list li').size();
	
	if(slideCount > 1) {
		$('#home .slide-list').after('<ol class="slide-paginate"></ol>').cycle({
			fx: 'fade',
			speed: 700,
			timeout: 6000,
			pager: '.slide-paginate',
			pagerAnchorBuilder: function(idx, img){
				return '<li><a href="#">' + (+idx+1) + '</a></li>';
			}
		});
		
		$('body:not(#home) .slide-list').after('<ol class="slide-paginate"></ol>').cycle({
			fx: 'fade',
			speed: 700,
			timeout: 0,
			pager: '.slide-paginate',
			pagerAnchorBuilder: function(idx, img){
				return '<li><a href="#">' + (+idx+1) + '</a></li>';
			}
		});
	}
	
	// OPEN MENUS IN A NEW WINDOW
	$('a.download').click(function(){
		window.open(this.href);
		return false;
	});
	
	// PHOTO GALLERY
	$('.photo-list a').fancybox({
		overlayColor: '#000',
		overlayOpacity: '0.4'
	});
	
	// EVENT REGISTRATION FORM
	var returnVal = $("#register-form input[name='return']").val();
	$("#register-form input[name='return']").val(returnVal + '/ajax');
	
	$("#register-form").validate({
		onkeyup: false,
		rules: {
			email: {email: true}
		},
		invalidHandler: function(e, validator) {
			var errors = validator.numberOfInvalids();
			$('strong.error-msg').remove();
			if (errors) {
				var message = errors == 1
					? 'You missed 1 field.'
					: 'You missed ' + errors + ' fields.';
				$(this).append('<strong class="error-msg">'+message+'</strong>');
				$("strong.error-msg").fadeIn('fast').css('display','block');
			} else {
				$("strong.error-msg").hide();
			}
			var checks = $('.checkbox-list input:checked').size();
			if(checks == 0) {
				$('.checkbox-list').prev('em').addClass('error');
			} else {
				$('em.error').removeClass();
			}
		}, submitHandler: function(form) {
			$('#register-form').append('<strong class="busy">Your message is sending...</strong>');
			$('#register-form').after('<div id="response"></div>');
			$('#response').hide();
		
		   	$(form).ajaxSubmit({
		   		clearForm: true,
				target: '#response',
				success: function() {
					$('.busy').fadeOut('normal', function(){
						$('.busy').remove();
					});
					$('#register-form, #register > h2, #register > p').fadeOut('normal', function(){
						$('#response').fadeIn();
					});
				}
			});
		}
	});

	
	// PRIVATE EVENTS FORM
	formHeight = $('#book-event').height();
	
	clicks = 0;
	
	$('#book-btn').click(function(e){
		e.preventDefault();
		$('#response').fadeOut('norma', function(){
			$('#response').remove();
		});
		
		if(clicks == '0'){
			$('#book-btn').addClass('expanded');
			$('#book-event').slideDown();
			clicks++;
		} else {
			$('#book-btn').removeClass('expanded');
			$('#book-event').slideUp();
			clicks--;
		}
	});
	
	$('#book-date').datepicker({
		dateFormat: 'MM d, yy'
	});

	var returnVal = $("#book-form input[name='return']").val();
	$("#book-form input[name='return']").val(returnVal + '/ajax');
	
	$("#book-form").validate({
		onkeyup: false,
		rules: {
			email: {email: true}
		},
		invalidHandler: function(e, validator) {
			var errors = validator.numberOfInvalids();
			$('strong.error-msg').remove();
			if (errors) {
				var message = errors == 1
					? 'You missed 1 field. It has been highlighted above.'
					: 'You missed ' + errors + ' fields.  They have been highlighted above.';
				$(this).append('<strong class="error-msg">'+message+'</strong>');
				$("strong.error-msg").fadeIn('fast').css('display','block');
			} else {
				$("strong.error-msg").hide();
			}
			var checks = $('.checkbox-list input:checked').size();
			if(checks == 0) {
				$('.checkbox-list').prev('em').addClass('error');
			} else {
				$('em.error').removeClass();
			}
		}, submitHandler: function(form) {
			$('#book-form').append('<strong class="busy">Your message is sending...</strong>');
			$('#book-event').after('<div id="response"></div>');
			$('#response').hide();
		
		   	$(form).ajaxSubmit({
		   		clearForm: true,
				target: '#response',
				success: function() {
					$('.busy').fadeOut('normal', function(){
						$('.busy').remove();
					});
					$('#book-event').slideUp();
					$('#book-btn').fadeOut();
					clicks--;
					$('#response').fadeIn();
				}
			});
		}
	});
	
	// EMAIL SIGNUP FORM
	$('#signup-form').submit(function (e) {
        e.preventDefault();
        $.getJSON(
        this.action + "?callback=?",
        $(this).serialize(),
        function (data) {
            if (data.Status === 400) {
            	$('#signup-email').addClass('error');
                $('#signup-form').append('<strong class="error-msg">Please enter a valid email address</strong>');
            } else { // 200
                $('#signup').append('<strong class="subscribed">Thanks! You have been added to our list.</strong>')
                $('.subscribed').hide();
                $('#signup-form').css('visibility','hidden');
            	$('.subscribed').fadeIn();
            }
        });
    });
    
    // EXTENDED EMAIL SIGNUP FORM
	$('#ext-signup-form').submit(function (e) {
        e.preventDefault();
        $.getJSON(
        this.action + "?callback=?",
        $(this).serialize(),
        function (data) {
            if (data.Status === 400) {
            	$('#ext-email').addClass('error');
                $('#ext-signup-form').append('<strong class="error-msg">Please enter a valid email address</strong>');
            } else { // 200
                $('#ext-signup-form').before('<strong class="subscribed">Thanks! You have been added to our list.</strong>')
                $('.subscribed').hide();
                $('#ext-signup-form').css('visibility','hidden');
            	$('.subscribed').fadeIn();
            }
        });
    });
	
	// PLACEHOLDER TEXT
	if (!Modernizr.input.placeholder) {
		$('input, textarea').each(function(){
			placeholder = $(this).attr('placeholder');
			$(this).attr('value',placeholder);
			
			defaultValue = $(this).attr('value');
			$(this).focus(function(){
				currentValue = $(this).val();
				if(defaultValue = currentValue){
					$(this).val('');
				}
			}).blur(function(){
				currentValue = $(this).val();
				if(!currentValue.length){
					$(this).val(defaultValue);
				}
			});
		});
	}
	
	// CONVERT OBFUSCATED LINKS
	$('.convert-me').each(function(){
		address = $(this).text();
		address = address.replace('#AT#', '@');
		address = address.replace('#DOT#', '.');
		$(this).text(address);
		$(this).attr('href', 'mailto:' + address);
	});
	
	// MISC IE FIXES
	if ($.browser.msie) {
		$('.hours-list dd, .hours-list dt').each(function(){
			str = $(this).text();
			$(this).html('<span>'+str+'</span>');
		});
	}
});
