/**
* hoverIntent r5 // 2007.03.27 // jQuery 1.1.2+
* <http://cherne.net/brian/resources/jquery.hoverIntent.html>
* 
* @param  f  onMouseOver function || An object with configuration options
* @param  g  onMouseOut function  || Nothing (use configuration options object)
* @author    Brian Cherne <brian@cherne.net>
*/
(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY;};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){$(ob).unbind("mousemove",track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev]);}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev]);};var handleHover=function(e){var p=(e.type=="mouseover"?e.fromElement:e.toElement)||e.relatedTarget;while(p&&p!=this){try{p=p.parentNode;}catch(e){p=this;}}if(p==this){return false;}var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);}if(e.type=="mouseover"){pX=ev.pageX;pY=ev.pageY;$(ob).bind("mousemove",track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}}else{$(ob).unbind("mousemove",track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob);},cfg.timeout);}}};return this.mouseover(handleHover).mouseout(handleHover);};})(jQuery);

$(document).ready(function(){

	$("#widget .menu li a").click(function() { 
		openTab($(this)); return false; 
	});
	
	$("#nav ol li").hoverIntent({interval: 50, sensitivity: 8, over: addMega, timeout: 60, out: removeMega});

	$('#social a.map').lightBox({
		imageLoading : 'layout/lightbox-ico-loading.gif',
		imageBtnClose: 'layout/lightbox-btn-close.gif',
		imageBtnPrev:  'layout/lightbox-btn-prev.gif',
		imageBtnNext:  'layout/lightbox-btn-next.gif'
	});

	$("#signup").keyup(function(){
		var email = $("#signup").val();
		if(email!=0){
			if(isValidEmailAddress(email)){
				$("#signup").removeClass("failure").addClass("success");
				$("#signup-submit").css({"background-position":"0px -26px"}).removeAttr("disabled");
	 		} else {
				$("#signup").removeClass("success").addClass("failure");
				$("#signup-submit").css({"background-position":"0px 0px"}).attr("disabled","disabled");
	 		}
		} else {
			$("#signup").removeClass("success").removeClass("failure");
			$("#signup-submit").css({"background-position":"0px 0px"}).attr("disabled","disabled");
	 	}
	});
	
	
	/*
	$("#header h1").hoverIntent({
		interval:50,
		sensitivity:8,
		timeout:60,
		over: function(){$("#feature").addClass("fiu");},
		out: function(){$("#feature").removeClass("fiu");}
	});
	*/
	
	$(".staff .r ul li").hoverIntent({
		interval:150,
		sensitivity:8,
		timeout:60,
		over: function(){$(this).children(".bio").fadeIn("fast");},
		out: function(){$(this).children(".bio").fadeOut("fast");}
	});
	
	
	$(function() {
		setInterval("featureSwitch()", 7000 );
	});
	
});

function featureSwitch() {
	var active = $('.home #feature div.active');
	if (active.length==0) active = $('.home #feature div:last');
	var next =  active.next().length ? active.next() : $('.home #feature div:first');
	active.addClass('last-active');
	next.css({opacity: 0.0}).addClass('active').animate({opacity: 1.0}, 1000, function(){active.removeClass('active last-active').css({opacity: 0.0});});
}

function isValidEmailAddress(emailAddress) {
	var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
	return pattern.test(emailAddress);
}

function addMega(){
	$(this).addClass("hovering");
}

function removeMega(){
	$(this).removeClass("hovering");
}

function openTab(clickedTab) {
	var thisTab = $("#widget .menu li a").index(clickedTab);
	$("#widget .menu li a").removeClass("active");
	$("#widget .menu li a:eq("+thisTab+")").addClass("active");
	$("#widget .content").hide();
	$("#widget .content:eq("+thisTab+")").show();
	currentTab = thisTab;
}
