$(document).ready(function(){
	menuFuncties();

	$(".fancybox").fancybox({
			'transitionIn'	:	'elastic',
			'transitionOut'	:	'elastic',
			'speedIn'		:	200, 
			'speedOut'		:	200, 
			'overlayShow'	:	true
		});
});

var backgroundVisible;
var backgroundTimer;
var activeSubmenu;

function menuFuncties()
{
	/* Background */
	$(".logoonder").hover(clearBackgroundTimer, startBackgroundTimer);
	
	/* Submenus */
	$("#navigatie > li").hover(function(){
		var submenu = $(this).children("ul");
		
		if(submenu.length > 0)
		{
			clearBackgroundTimer();
			if(submenu.get(0) != $(activeSubmenu).get(0)) {
				hideSubmenu(function(){
					showSubmenu(submenu);
				});
			}
		} else {
			hideSubmenu(function(){});
			startBackgroundTimer();
		}
	},function(){});
}


/* Background Functions */
function showBackground(functie) {
	if(!backgroundVisible) {
		$("#submenuBackground").log("Showing Background").animate({
			height:"36px"
		},100, function(){
			backgroundVisible = true;
			functie();
		});
	} else {
		functie();
	}
}

function startBackgroundTimer() {
	if(!backgroundTimer && backgroundVisible) {
		backgroundTimer = setTimeout(function(){
			hideBackground();
		}, 2000);
	}
}

function clearBackgroundTimer() {
	if(backgroundTimer) {
		clearTimeout(backgroundTimer);
		backgroundTimer = false;
	}
}

function hideBackground()
{
	hideSubmenu(function() {
		backgroundVisible = false;
		$("#submenuBackground").delay(100).log("Hiding Background").animate({
			height:"0px"
		},200,function(){
			backgroundTimer = false;
		});
	});
}

/* Submenu Functions */
function showSubmenu(submenu) {
	showBackground(function(){
		activeSubmenu = submenu;
		submenu.log("Showing Submenu").fadeIn(50);
	});
}

function hideSubmenu(functie)
{
	if(activeSubmenu) {
		activeSubmenu.log("Hiding Submenu").fadeOut(100,function(){
			activeSubmenu = false;
			functie();
		});
	} else {
		functie();
	}
}

jQuery.fn.log = function (msg) {
      //console.log("%s: %o", msg, this);
      return this;
  };
