// Author : Edwin Hendriks 
// Last Update : 16-02-2009


// Functie het uitklappen van het menu // 
(function($) {
	$.fn.hoverIntent = function(f,g) {
		// default configuration options
		var cfg = {
			sensitivity: 7,
			interval: 100,
			timeout: 0
		};
		// override configuration options with user supplied object
		cfg = $.extend(cfg, g ? { over: f, out: g } : f );

		// instantiate variables
		// cX, cY = current X and Y position of mouse, updated by mousemove event
		// pX, pY = previous X and Y position of mouse, set by mouseover and polling interval
		var cX, cY, pX, pY;

		// A private function for getting mouse position
		var track = function(ev) {
			cX = ev.pageX;
			cY = ev.pageY;
		};

		// A private function for comparing current and previous mouse position
		var compare = function(ev,ob) {
			ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
			// compare mouse positions to see if they've crossed the threshold
			if ( ( Math.abs(pX-cX) + Math.abs(pY-cY) ) < cfg.sensitivity ) {
				$(ob).unbind("mousemove",track);
				// set hoverIntent state to true (so mouseOut can be called)
				ob.hoverIntent_s = 1;
				return cfg.over.apply(ob,[ev]);
			} else {
				// set previous coordinates for next time
				pX = cX; pY = cY;
				// use self-calling timeout, guarantees intervals are spaced out properly (avoids JavaScript timer bugs)
				ob.hoverIntent_t = setTimeout( function(){compare(ev, ob);} , cfg.interval );
			}
		};

		// A private function for delaying the mouseOut function
		var delay = function(ev,ob) {
			ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
			ob.hoverIntent_s = 0;
			return cfg.out.apply(ob,[ev]);
		};

		// A private function for handling mouse 'hovering'
		var handleHover = function(e) {
			// next three lines copied from jQuery.hover, ignore children onMouseOver/onMouseOut
			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; }

			// copy objects to be passed into t (required for event object to be passed in IE)
			var ev = jQuery.extend({},e);
			var ob = this;

			// cancel hoverIntent timer if it exists
			if (ob.hoverIntent_t) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); }

			// else e.type == "onmouseover"
			if (e.type == "mouseover") {
				// set "previous" X and Y position based on initial entry point
				pX = ev.pageX; pY = ev.pageY;
				// update "current" X and Y position based on mousemove
				$(ob).bind("mousemove",track);
				// start polling interval (self-calling timeout) to compare mouse coordinates over time
				if (ob.hoverIntent_s != 1) { ob.hoverIntent_t = setTimeout( function(){compare(ev,ob);} , cfg.interval );}

			// else e.type == "onmouseout"
			} else {
				// unbind expensive mousemove event
				$(ob).unbind("mousemove",track);
				// if hoverIntent state is true, then call the mouseOut function after the specified delay
				if (ob.hoverIntent_s == 1) { ob.hoverIntent_t = setTimeout( function(){delay(ev,ob);} , cfg.timeout );}
			}
		};

		// bind the function to the two event listeners
		return this.mouseover(handleHover).mouseout(handleHover);
	};
})(jQuery);



var ActiveTab;
var ShowGroup;
var Count;


jQuery(document).ready(function() {

// Functie makeTall wordt uitgevoerd op het moment dat via HoverIntent het menu moet worden uitgeklapt. 
	function makeTall () 
	{		
			setTimeout(function() {
			jQuery("#slider").animate({ 
			'height' : '250px'
			}, 400 );
											 
	        }, 200); 
    }

// Functie makeShort wordt uitgevoerd op het moment dat via HoverIntent het menu moet worden ingeklapt. 
    function makeShort () 
	{
		jQuery("#slider").animate(
			{ 
				'height' : '0px'
			}, 1000 );
	}
// Deze lege functie wordt alleen gebruikt omdat hover intent iets moet hebben om uit te voeren. 
    function bla ()  
	{
	}

// Hieronder kan de gevoeligheid worden ingesteld voor het uitklappen van het menu. 
jQuery(".topMenuAction").hoverIntent(								 
			{
				sensitivity: 3, 
				interval: 200, 
				over: makeTall, 
				timeout: 500, 
				out: bla
			});

// Hieronder kan de gevoeligheid worden ingesteld voor het inklappen van het menu. 
jQuery("#navigationwrapper").hoverIntent(
			{
				sensitivity: 3, 
				interval: 200, 
				over: bla, 
				timeout: 500, 
				out: makeShort
			});



//Hieronder de code voor het showen of niet showen van de juiste content in het menu. (is nu overal gelijk).
//		jQuery("div[@id^='sc']").css({
	//			'display' : 'inline'
//			});


// Hieronder de code voor het showen of hiden van de juiste tab groep in de beide menu's).

//-------------------
// jQuery(".mainnav div ul li a").mouseover( function() {
jQuery("div#navigation ul li").mouseover( function() {										   
		Count= this.id;
		Count2 = Count.replace("showContent","");
		ShowGroup = "#group"+[Count2];
		//alert(ShowGroup);
		ActiveTab = "#showContent"+[Count2]+" a";
		ShowImage = "url(/images/kring2009vs2/navigation/"+[Count2]+".gif)";
// ------------------------------------------------------------------------------

	    jQuery("#group1").css({
					'display' : 'none'
					});

	    jQuery("#group2").css({
					'display' : 'none'
					});

	    jQuery("#group3").css({
					'display' : 'none'
					});

	    jQuery("#group4").css({
					'display' : 'none'
					});

	    jQuery("#group5").css({
					'display' : 'none'
					});
		
	    jQuery("#group6").css({
					'display' : 'none'
					});

	    jQuery("#group7").css({
					'display' : 'none'
					});
		
	    jQuery("#group8").css({
					'display' : 'none'
					});
//-------------------------------------------------------------------------------

		jQuery("div"+ShowGroup).css({
					'display' : 'block'
					});
		
		
//		jQuery("li[@id^='showContent'] a" ).css({
//					'background-Image' : 'none'
//					});

//"#content *:not(a[href^=elem]:not(h1))"

		jQuery("#navigation *:(@id=^showContent ) a" ).css({
					'background-Image' : 'none'
					});

//		jQuery("#slider *: ul[.^='linklist'] a" ).css({
//					'background-Image' : 'none'
//					});

		jQuery("#showContent1").css({				
					'background-Image' : 'url(/images/kring2009vs2/navigation/mijn_kring_apotheek.gif)'
					});
		jQuery("#showContent2").css({				
					'background-Image' : 'url(/images/kring2009vs2/navigation/geneesmiddelen.gif)'
					});
		jQuery("#showContent3").css({				
					'background-Image' : 'url(/images/kring2009vs2/navigation/gezondheid.gif)'
					});
		jQuery("#showContent4").css({				
					'background-Image' : 'url(/images/kring2009vs2/navigation/bestellen.gif)'
					});
		jQuery("#showContent5").css({				
					'background-Image' : 'url(/images/kring2009vs2/navigation/medicatie_dossier2.gif)'
					});
		jQuery(ActiveTab).css({				
					'background-Image' : ShowImage
					});
		}); 

//-------------------
		
// Functie  voor de het onthouden van de background-color als een tabs uit de groep aangeklikt is. 		
var i=0
for (i=0;i<=7;i++)
{
		var classset = "#slider #subnav_first .innerwrapper .col1_4 #group"+[i]+".grouptab_selected";
		var showclass ="#showContent"+[i];
		if( jQuery(classset).css("display") == "block" ) {
				jQuery(showclass).css({
				'backgroundColor' : '#A91E2C'
				});
		};		
}
//----
});

