$(document).ready(function(){
	// Dropdown menu
	$('ul.sf-menu')
		.supersubs({ 
			minWidth:    5,   
			extraWidth:  1
		})
		.superfish({ 
			delay:       500,
			animation:   {opacity:'show',height:'show'},
			speed:       300,
			autoArrows:  false,
			dropShadows: false
		});
	$('#headerSlideshow').cycle({
		fx: 'fade',
		height: 365,
		delay: -2000,
		speed: 2000,
		timeout: 9000
	});
	$('.inputText, .inputTextarea').bind({
		blur: function() {
			$(this).removeClass('inputMissing');
		}
	 });
	if ($('#contactForm').length != 0) {
		// preload ajax image
		loaderImg = new Image();
		loaderImg.src = '../css/images/ajax-loader.gif';
		// preload done
		$('<div id="contactMsg">&nbsp;</div>').insertBefore('#contactSubmitButton');
		$('#contactMsg').hide();
		$('#contactResetButton').click(function() {
			$('#contactMsg').slideUp();
			$('.inputText, .inputTextarea').removeClass('inputMissing');
			$(this).blur();
		});
		$('#contactSubmitButton').click(function() {
			if (checkContactForm()) {
				sendContactForm();
			}
			$(this).blur();
			return false;
		});
	}
});

function checkContactForm() {
	$('#contactMsg').hide();
	var that = document.contactForm;
	var errmsg = '';
	if (that.name.value.length < 1) {
		errmsg += '&middot; Your Name cannot be blank<br />\n';
		$('#name').addClass('inputMissing');
	}
	if (that.email.value.length < 1) {
		errmsg += '&middot; Your E-mail cannot be blank<br />\n';
		$('#email').addClass('inputMissing');
	} else {
		if (!validateEmail(that.email.value)) {
			errmsg += '&middot; E-mail address is invalid<br />\n';
			$('#email').addClass('inputMissing');
		}
	}
	if (that.comments) {
		if (that.comments.value.length < 1) {
			errmsg += '&middot; Comments cannot be blank<br />\n';
			$('#comments').addClass('inputMissing');
		}
	}
	if (errmsg.length > 1) {
		errmsg = '<b>Please fix the following errors:</b><br />\n'+errmsg;
		showContactFormError(errmsg);
		return false;
	} else {
		return true
	}
}

function showContactFormError(errmsg) {
	$('#contactMsg').hide();
	$('#contactMsg').removeClass('contactTextMsg').addClass('contactErrorMsg');
	$('#contactMsg').html(errmsg);
	$('#contactMsg').slideDown();
}

function showContactFormMsg(txt) {
	$('#contactMsg').hide();
	$('#contactMsg').removeClass('contactErrorMsg').addClass('contactTextMsg');
	$('#contactMsg').html(txt);
	$('#contactMsg').slideDown();
	$('#contactSubmitButton').attr('disabled',false);
	$('#contactResetButton').attr('disabled',false);
}

function showAjaxLoader() {
	$('#contactSubmitButton').attr('disabled',true);
	$('#contactResetButton').attr('disabled',true);
	$('#contactMsg').hide();
	$('#contactMsg').removeClass('contactErrorMsg contactTextMsg');
	$('#contactMsg').html('<div align="center"><img src="../css/images/ajax-loader.gif" width="16" height="11" /></div>');
	$('#contactMsg').slideDown();
}

function validateEmail(e) {  
	var pattern = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
	return pattern.test(e); 
}

function sendContactForm() {
	var dataString = $('#contactForm').serialize();
	var sendURL = $('#contactForm').attr('action');
	dataString += '&ajax=1';
	$.ajax({
		type: "POST",
		url: sendURL,
		data: dataString,
		beforeSend: function() {
			showAjaxLoader();
		},
		success: function(msg){
			showContactFormMsg(msg);
		}
	});
	document.contactForm.reset();
}

