var currentMenu = null;
var currentMenuItem = null;
var timerOut = null;
var timerWishlistOut = null;

$(document).ready(
	function() {
		$('#mnu-collection').hover(function(){ showCollectionMenu(); }, function(){ startTimerHide(); });
		$('#mnu-whats-hot').hover(function(){ showWhatsHotMenu(); }, function(){ startTimerHide(); });
		$('#mnu-wishlist').hover(function(){ showWishlist(); }, function(){ startWishlistTimerHide(); });
		
		$('#menu .not-expandable').hover(function(){ hideCurrentMenu(); });	
	}
);

function showCollectionMenu(){
	clearTimerHide();
	hideCurrentMenu();
	$('#mnu-collection').addClass('selected');
	currentMenu = $('#menu-expand-1');
	currentMenuItem = $('#mnu-collection');
	
	currentMenu.show();
	currentMenu.hover(function(){ clearTimerHide(); }, function(){ startTimerHide(); });
	
}

function showWhatsHotMenu(){
	clearTimerHide();
	hideCurrentMenu();
	$('#mnu-whats-hot').addClass('selected');
	currentMenu = $('#menu-expand-2');
	currentMenuItem = $('#mnu-whats-hot');
	
	currentMenu.show();
	currentMenu.hover(function(){ clearTimerHide(); }, function(){ startTimerHide(); });
	
}

function startTimerHide(){
	timerOut = setTimeout("hideCurrentMenu()", 350);
}

function startWishlistTimerHide(){
	timerWishlistOut = setTimeout("hideWishlist()", 700);
}

function clearTimerHide(){
	if(timerOut){
		clearTimeout(timerOut);
	}
}

function clearWishlistTimerHide(){
	if(timerWishlistOut){
		clearTimeout(timerWishlistOut);
	}
}

function showWishlist(){
	clearWishlistTimerHide();
	hideCurrentMenu();
	
	if(!$('#wishlist').is(":visible")){
		$('#wishlist .content').html("<p>Loading...</p>");
		$.ajax({
			url: '/wishlist/get/',
			dataType: "html",
			success: function(html) {
				createWishlist(html);
			}
		});
	
		$('#wishlist').show();
		$('#wishlist').hover(function(){ clearWishlistTimerHide(); }, function(){ startWishlistTimerHide(); });
	}
}

function createWishlist(html){
	$('#wishlist .content').html(html);
}

function hideWishlist(){
	$('#wishlist').unbind('mouseenter mouseleave');
	$('#wishlist').hide();
}

function hideCurrentMenu(){
	if(currentMenu){
		currentMenu.unbind('mouseenter mouseleave');
		currentMenuItem.removeClass('selected');
		currentMenu.hide();
	}
}
