// JavaScript Document

function initMenu()
{
	// Call initiate on the screenshots menu
	initScreenShotsMenu();
	
	// Now handle the header menu
	var leftValues=new Array();
	var counter = 0;
	// initialize the left values of each overlay/submenu list
	$('div.overlay').each(
		function(){
			var leftval = $(this).css('left');
			var strlength = leftval.length - 2;
			leftval = leftval.substr(0,strlength);
			leftValues[counter] = leftval;
			counter++;
		}
	);
	
	$('li.menuitem').hoverIntent(show, hide);
					
	//$('li.menuitem').mouseover(
	
		function show(){
			counter = 0;
			var divclass = $(this).attr('id');
			// calculate the index from the class of the current mouseover item ( the class has pattern itemN ) 
			var currentindex = divclass.substr(4,divclass.length - 4);
			// subtract 1 to get the 0-based index
			currentindex = parseInt(currentindex) - 1;
			
			if($(this).hasClass('expanded')){
				leftval = leftValues[currentindex];
				$('.'+divclass).animate({left:leftval+"px",width:"0px"},0);
				$(this).removeClass('expanded');
			}
			$('div.overlay').each(
				function(){
					var leftval = $(this).css('left');
					var strlength = leftval.length - 2;
					leftval = leftval.substr(0,strlength);
					if(parseInt(leftval)!=leftValues[counter]){
						leftval = leftValues[counter];
						$(this).animate({left:leftval+"px",width:"0px"},0);
					}
					counter++;
				}
			);
			$('li.menuitem').removeClass('expanded');
			$(this).addClass('expanded');
			leftval = parseInt(leftValues[currentindex]) - 350;
			$('.'+divclass).animate({left:leftval+"px",width:"350px"},800);
		}
	//);
	
	function hide(){}
	
	$('#sharp-menu').mouseleave(
		function(){
			counter = 0;
			$('div.overlay').each(
				function(){
					var leftval = leftValues[counter];
					$(this).animate({left:leftval+"px",width:"0px"},0);
					counter++;
				}
				
			);
		}
	);
}
/**
* 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);
