jQuery.fn.validEmail = function() {
	var regex = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[A-Z]{2}|com|org|net|gov|biz|info|name|aero|biz|info|jobs|museum|au|ca|uk|us)\b/;
	var value = $(this).val();
	
	if(regex.test(value)) {
		return true;
	} else {
		return false;
	}
}

$(document).ready(function(){
	/* Accordian */
	
	// Clear the space after every accordian item.
	$("ol.accordian li").after("<div class='clear'>&nbsp;</div>");
	
	// Make the first item active.
	$("ol.accordian li").first().addClass("active");
	
	// Toggle list items.
	$("ol.accordian li").click(function(event){
		if($(this).hasClass("active") == true && event.target.nodeName != "P") {
			$(this).removeClass("active");
		} else {
			$(this).addClass("active");
		}
	});
	
	/* Contrasting unordered lists */
	$(".content ul li").wrapInner("<span />");
	
	/* Contact Form */
	var name_focus = false;
	var email_focus = false;
	var phone_focus = false;
	var message_focus = false;
	var submitting_form = false;
	
	// Clear default text upon focus.
	$("#contact_name").focus(function(){
		if(!name_focus) {
			$(this).val("");
			
			name_focus = true;
		}
	});
	
	$("#contact_email").focus(function(){
		if(!email_focus) {
			$(this).val("");
			
			email_focus = true;
		}
	});
	
	$("#contact_phone").focus(function(){
		if(!phone_focus) {
			$(this).val("");
			
			phone_focus = true;
		}
	});
	
	$("#contact_message").focus(function(){
		if(!message_focus) {
			$(this).val("");
			
			message_focus = true;
		}
	});
	
	// Add required flag to all text fields that are left blank.
	$("#contact_name").blur(function(){
		if($(this).val() == "") {
			$(this).addClass("required");
		} else {
			if($(this).hasClass("required"))
				$(this).removeClass("required");
		}
	});
	
	$("#contact_email").blur(function(){
		if($(this).val() == "") {
			$(this).addClass("required");
		} else {
			if($(this).hasClass("required"))
				$(this).removeClass("required");
		}
	});
	
	$("#contact_phone").blur(function(){
		if($(this).val() == "") {
			$(this).addClass("required");
		} else {
			if($(this).hasClass("required"))
				$(this).removeClass("required");
		}
	});
	
	$("#contact_message").blur(function(){
		if($(this).val() == "") {
			$(this).addClass("required");
		} else {
			if($(this).hasClass("required"))
				$(this).removeClass("required");
		}
	});
	
	// Remove required class if input
	$("#contact_name").keypress(function(){
		if($(this).hasClass("required"))
			$(this).removeClass("required");
	});
	
	$("#contact_email").keypress(function(){
		if($(this).hasClass("required"))
			$(this).removeClass("required");
	});
	
	$("#contact_phone").keypress(function(){
		if($(this).hasClass("required"))
			$(this).removeClass("required");
	});
	
	$("#contact_message").keypress(function(){
		if($(this).hasClass("required"))
			$(this).removeClass("required");
	});
	
	// Handle form submission.
	$("#contact_submit").click(function(){
		var name, email, phone, message;
		
		name = $("#contact_name").val();
		email = $("#contact_email").val();
		phone = $("#contact_phone").val();
		message = $("#contact_message").val();
		
		// Submit form.
		if(name_focus && email_focus && phone_focus && message_focus) {
			if(submitting_form == true) {
				$(window).humanMsg("Your message has already been submitted...");
				
				return false;
			} else {
				submitting_form = true;
			}
		
			// Check for blank fields.
			if(name == "" || email == "" || phone == "" || message == "") {
				submitting_form = false;
				
				return false;
			}
				
			if(!$("#contact_email").validEmail()) {
				$(window).humanMsg('Please provide a valid email address...');
				submitting_form = false;
				
				return false;
			}
			
			
			
			$.post("/mailer", {contact_name: name, contact_email: email, contact_phone: phone, contact_message: message}, function(response) {
				switch(response) {
					case "0":
						$(window).humanMsg("Your message could not be sent. Please try again later.");
						submitting_form = false;
						
						return false;
					case "1":
						$(window).humanMsg("Your message has been sent successfully!");
						submitting_form = true;
						
						return true;
					default:
						$(window).humanMsg("System error. Please try again later.");
						submitting_form = false;
						
						return false;
				}
			});
		} else {
			if(!name_focus || name == "")
				$("#contact_name").addClass("required");
				
			if(!email_focus || email == "")
				$("#contact_email").addClass("required");
				
			if(!phone_focus || phone == "")
				$("#contact_phone").addClass("required");
				
			if(!message_focus || mesage == "")
				$("#contact_message").addClass("required");
				
			// Cancel the submission.
			submitting_form = false;
			
			return false;
		}

		return false;
	});
	
	/* LightBox */
	$(".gallery a").lightBox({
		imageLoading: "http://" + window.location.host + '/wp-content/themes/fenrirlabs/images/lightbox-ico-loading.gif',
		imageBtnClose: "http://" + window.location.host + '/wp-content/themes/fenrirlabs/images/lightbox-btn-close.gif',
		imageBtnPrev: "http://" + window.location.host + '/wp-content/themes/fenrirlabs/images/lightbox-btn-prev.gif',
		imageBtnNext: "http://" + window.location.host + '/wp-content/themes/fenrirlabs/images/lightbox-btn-next.gif',
		imageBlank: "http://" + window.location.host + '/wp-content/themes/fenrirlabs/images/lightbox-blank.gif',
		overlayBgColor: '#000',
		overlayOpacity: '.75'
	});
});

