function checkEmail(email) { 
	var pattern = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	var emailVal = $("#" + email).val();
	return pattern.test(emailVal);
}

function scrollbarWidth() {
	var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div>');
	// Append our div, do our calculation and then remove it
	$('body').append(div);
	var w1 = $('div', div).innerWidth();
	div.css('overflow-y', 'scroll');
	var w2 = $('div', div).innerWidth();
	$(div).remove();
	return (w1 - w2);
}

function setSticky(){
	var minWidth = 1080-scrollbarWidth();
	var windowHeight = $(window).height();
	var windowWidth = $(window).width();
	var pageHeight = $("body").height();
	var footerHeight = $("#footer").outerHeight();
	var navTop = 180;
	var navOffset = 20;
	var scrollTop = $(window).scrollTop();
	if($("#stickyFooter").length > 0){
		// Check width
		if(windowWidth >= minWidth){
			// Set position
			if((scrollTop + windowHeight) >= (pageHeight - footerHeight)){
				$("#stickyFooter").removeClass("free");
				$("#stickyFooter a").attr("href","#header")
				$("#stickyFooter a img").attr("title","Scroll to top")
			}else{
				$("#stickyFooter").addClass("free");
				$("#stickyFooter a").attr("href","#footer")
				$("#stickyFooter a img").attr("title","Scroll to footer")
			}
		}
	}
	if($("#mainNav").length > 0){
		// Check width
		if(windowWidth > minWidth && $("#mainNav").css("top") != "0px"){
			if(scrollTop >= navTop-navOffset){
				$("#mainNav").addClass("free");
			}else{
				$("#mainNav").removeClass("free");
			}
		}
	}
}

function preloadImages(arrImages){
	var arrImagesLength = arrImages.length;
	if($("#preload").length < 1){
		$("body").append("<div id=\"preload\"></div>");
	}
	for(var i=0;i<arrImagesLength;i++){
		$("#preload").append("<img class=\"logo\" src=\"/images/"+arrImages[i]+".gif\" alt=\"Bite CP\" />");
	}
}

function rotateLogo(){
	var fadeSpeed = 1500;
	var activeLogo = $("p#logo img").eq(0);
	var nextLogo = $("#preload img.logo[src='"+activeLogo.attr("src")+"']").next();
	if(nextLogo.length < 1){
		nextLogo = $("#preload img.logo").eq(0);
	}
	nextLogo.clone().appendTo("p#logo a").addClass("hidden").removeClass("logo");
	activeLogo.fadeOut(fadeSpeed);
	activeLogo.next().fadeIn(fadeSpeed,function(){
		activeLogo.remove();															
	});
}

function scrollToEntry(){
	if($(window).scrollTop() == 0 && $(window).height() < 700){
		$.scrollTo(".mainEntry",1000);
	}
}

$(document).ready(function(){

	//// Add body class if JS is enabled ////
	$("body").addClass("hasJS");
	
	//// Bind lightbox ////
	$("a.lightbox").fancybox();

	// IE6 doesn't play nice with these functions, so ignore
	if(!($.browser.msie && $.browser.version.substr(0,1)<7)){
		//// Sticky footer ////
		$(window).scroll(function(){
			setSticky();
		});
		
		$(window).resize(function(){
			setSticky();
		});
		
		// Initialize sticky
		setSticky();
		
		// Handle smooth scrolling ////
		$('#stickyFooter').localScroll({
			 hash: false
		});
		
		$('.anchor').localScroll({
			 hash: false
		});
		
	}
	
	//// Prepare quicksand ////	
	if($("#clientList ul.sortOptions").length > 0){
		
		var filter = $("#clientList ul.sortOptions li a");
		var data = $("#clientList ul.sortList").clone();
		
		filter.click(function(){
			filterRange = $(this).attr("data-type");

			if(filterRange == "all"){
				var filteredData = data.find('li');
			}else{
				var filteredData = data.find('li[class~='+filterRange+']');
			}

			$("#clientList ul.sortList").quicksand(filteredData, {
				duration: 800,
				easing: 'easeInOutQuad',
				adjustHeight: 'false',
				useScaling: false
			},function(){
				//Set sticky. Should slide if we're keeping it.
				setSticky();
			});
			return false;
		});
		
	}
	
	//// Prepare slider ////	
	if($("#headerSlider").length > 0){
	
		var auto = false;
		
		if($("#headerSlider").hasClass("auto")){
			auto = 5000;
		}
	
		slider({
			sliderElement: $("#headerSlider"),
			fadeEdge:      false,
			autoSlide:     auto
		});
		
		/**
		$(document).keydown(function(e){
			if (e.keyCode == 39) { 
				$('ul.sliderNavagation li a.next').trigger('click');
				return false;
			}
			if (e.keyCode == 37) { 
				$('ul.sliderNavagation li a.prev').trigger('click');
				return false;
			}
		});
		**/
	}	
	
	//// Handle rotating logo ////
	if($("p#logo.rotate").length > 0){
		var arrLogos = new Array("logo-warmgray", "logo-stone", "logo-rasberry", "logo-plum", "logo-night", "logo-ocean");
		preloadImages(arrLogos);
		var logoRotate = setInterval("rotateLogo()", 5000);
	}
	
	//// Handle jump lists ////
	$("select.jumpList").bind("change",function(){
		if($(this).val() != ""){
			location.href = $(this).val();
		}
	});
	
	//// Handle newsletter sign-up ////
	$("#subForm input:submit").click(function() { 
		$('form#subForm').submit(function() { return false; });
		// Grab form action
		var formAction = $("form#subForm").attr("action");
		var id = "tljkud";
		var emailId = id + "-" + id;
		// Validate email address with regex
		if (!checkEmail(emailId)) {
			alert("Please enter a valid email address");
			return;
		}
		// Serialize form values to be submitted with POST
		var str = $("form#subForm").serialize();
		
		// Add form action to end of serialized data
		// CDATA is used to avoid validation errors
		//<![CDATA[
		var serialized = str + "&action=" + formAction;
		// ]]>
		
		// Submit the form via ajax
		$.ajax({
			url: "/includes/proxy.php",
			type: "POST",
			data: serialized,
			success: function(data){
				// Server-side validation
				if (data.search(/invalid/i) != -1) {
					alert('The email address you supplied is invalid and needs to be fixed before you can subscribe to this list.');
				}
				else
				{
					$("#subscribeForm").slideUp(function(){ // If successfully submitted hides the form
						$("#subscribeThanks").slideDown();  // Shows "Thanks for subscribing" div
						$("#subscribeThanks").tabIndex = -1;
						$("#subscribeThanks").focus(); // For screen reader accessibility
					});
					// Fire off Google Analytics fake pageview
					//var pageTracker = _gat._getTracker("UA-XXXXX-X");
					//pageTracker._trackPageview("/newsletter_signup");
				}
			}
		});
	});
	
});
