$(function(){
	
	// center
	$('#page').center();
	
	// scroller
	$('.scroll').width(495).height(240).jScrollPane({
		scrollbarWidth: 15,
		scrollbarMargin: 0,
		dragMinHeight: 120,
		dragMaxHeight: 120
	});
	
	// tabs
	$('#page').tabs();
	$('.ui-tabs-panel').each(function(i){
		var totalSize = $('.ui-tabs-panel').size() - 1;
		if (i != totalSize){
			next = i + 2;
			$(this).append('<a href="#" class="ui-tabs-next" rel="' + next + '"></a>');
		}
		if (i != 0){
			prev = i;
			$(this).append('<a href="#" class="ui-tabs-prev" rel="' + prev + '"></a>');
		}
	});
	$('.ui-tabs-next, .ui-tabs-prev').click(function(){
		$('#page').tabs('select', $(this).attr('rel'));
		return false;
	});		
	$('#page-3').tabs();
	
	// dialog
	$('.dialog').each(function(){
		var contentWidth = $(this).find('div').width();
		var contentHeight = $(this).find('div').height();
		$(this).dialog({
			width: contentWidth,
			autoOpen: false,
			draggable: true,
			resizable: false,
			modal: false, 
			closeText: 'Close'
		});
	});
	$('*[dialog]').click(function(event){  
		var dialogAttr = $(this).attr('dialog');
		$(dialogAttr).dialog('open');
		event.preventDefault();
	});
	
	// gallery
	$('#gallery').width(720).height(240).crossSlide({ fade: 5 }, [
		{ src: 'img/intro-3.jpg', from: 'top left', to: 'bottom left', time: 5 },			
		{ src: 'img/intro-4.jpg', from: 'bottom left', to: 'top left', time: 5 },
		{ src: 'img/intro-1.jpg', from: 'top left', to: 'bottom left', time: 5 },
		{ src: 'img/intro-2.jpg', from: 'bottom left', to: 'top left', time: 5 },
		{ src: 'img/intro-5.jpg', from: 'top left', to: 'bottom left', time: 5 },
		{ src: 'img/intro-6.jpg', from: 'bottom left', to: 'top left', time: 5 }
	]);

	// forms
	var loader = $('<img src="img/loader.gif" width="30" height="30" />').appendTo('#newsletter').hide();
	$().ajaxStart(function() {
		loader.show();
	}).ajaxStop(function() {
		loader.hide();
	});
	$("#newsletter").validate({
		rules: {
			email: { required: true, email: true }
		},
		messages: {
			email: { required: 'This field is required.', email: 'Please enter a valid email address.' }
		},
		submitHandler: function(submitForm) {
			jQuery(submitForm).ajaxSubmit({
				url: 'newsletter.php',
				type: 'POST',
				success: function(resetForm) {
					$('#newsletter').resetForm().hide().after('<div id="alert" style="margin-top: 50px;"><p><big>Thank you.<br />Your request has been sent.</big></p><input id="confirm" class="button" type="button" value="OK" /></div>');
					$('#confirm').click(function(){
						$('#alert').hide();
						$('#newsletter').show();
					});
				}
			});
		}
	});
	$('#location').validate({
		rules: {
			from: 'required',
			to: 'required'
		},
		messages: {
			from: 'Please enter <strong>START</strong> address.',
			to: 'Please enter <strong>END</strong> address.'
		}
	});
	
	// print	
	$('input[print="#map"]').click(function(){
		if ($('#directions').html().length) { 
			var printAttr = $(this).attr('print');
			$(printAttr).printElement({
				printMode: 'iframe',
				overrideElementCSS: ['css/print.css']
			});
		} else {
			$('#location').append('<div class="alert"></div>');
			$('#location .alert').html('<p>Before you can print:<br />enter <strong>START (A)</strong> and <strong>END (B)</strong> address and click on <strong>DIRECTIONS</strong> button.</p>').animate({opacity:1}, 10000).fadeOut('1000');
		}
	});
	
	// email masking	
	$('.email').each(function(){
		var at = / at /;
		var dot = / dot /;
		var addrHref = $(this).attr('href').replace(at,'@').replace(dot,'.');
		var addrText = $(this).text().replace(at,'@').replace(dot,'.');
		$(this).attr('href',addrHref).text(addrText);
	});
	
});