$(document).ready(function(){
	// flags behavior
	//HandleFlags();
	//set active menu item
	SetActiveMenuItem();
	// bind top menu events
	BindMenuEvents();
	
	//animate
	if( !$('.animate').hasClass('active') )
		$('.animate').find('.mi_bg').stop().animate({opacity:0.7}, 1000, AnimCallback);
});

function BindMenuEvents() {
	
	$('.mitem').bind('mouseenter', TopmenuEnterHandler);
	$('.mitem').bind('mouseleave', TopmenuLeaveHandler);
	$('.mitem_subs li').bind('mouseenter', TopmenuSubitemEnterHandler);
	$('.mitem_subs li').bind('mouseleave', TopmenuSubitemLeaveHandler)
}
function HandleSubMenu(el) {
	if( $(el).hasClass('has_sub') ) {
		var name = $(el).attr('id');
		name = name.substr('mitem_'.length);
		$('#subs_' + name).toggle();
		el.addClass('opened');
	} else if( $('.opened').size() > 0 ) {
		$('.opened').removeClass('opened');
		$('.mitem_subs').hide();
	}
}
function ShowSubMenu(el) {
	$('.mitem_subs').hide();
	var name = $(el).attr('id');
	name = name.substr('mitem_'.length);
	//alert(name);
	$('#subs_' + name).show();
	$('.opened').each(function() {
		$(this).removeClass('opened');
		$(this).find('.mi_bg').stop().animate({opacity:0}, {duration:500});
	});
	
}
function HideSubMenu() {
	var name = $(this).attr('id');
	name = name.substr('mitem_'.length);
	$('#subs_' + name).hide();
}
function TopmenuEnterHandler() {
	var t = this;
	if( CheckBeforeHover(t) ) {
		ShowSubMenu(t);
		$(t).addClass('opened');
		$(t).find('.mi_bg').stop().animate({opacity:1}, 500);
	}
}
function TopmenuLeaveHandler() {
	if( CheckBeforeHover(this) )
		$(this).find('.mi_bg').stop().animate({opacity:0}, {duration:500});
}

function CheckBeforeHover(el) {
	if( !$(el).hasClass('opened') && !$(el).hasClass('animate') )
		return 1;
	else
		return 0;
}

function AnimCallback() {
	var alpha, el = $('.animate').find('.mi_bg');
	if(el.css('opacity') == 0) alpha = 0.7;
	else alpha = 0;
	el.animate({opacity:alpha}, 1000, AnimCallback);
}

function TopmenuSubitemEnterHandler() {
	$(this).find('.sub_mi_bg').stop().animate({opacity:1}, {duration:500});
}
function TopmenuSubitemLeaveHandler() {
	$(this).find('.sub_mi_bg').stop().animate({opacity:0}, {duration:500});
}

function SetActiveMenuItem() {
	//alert(activeMenu);
	$('#'+activeMenu).addClass('active');
	if(activeMenu == 'offer-spa-and-wellness' || activeMenu == 'offer-hotel' || activeMenu == 'offer-conferences') {
		$('#mitem_offer').addClass('active');
		$('#subs_offer').show();
	} else if (activeMenu == 'spa-morena' || activeMenu == 'restaurant-morena' || activeMenu == 'hotel-spa') {
		$('#mitem_spa-morena').addClass('active');
		$('#subs_spa-morena').show();
	} else if (activeMenu == 'castle' || activeMenu == 'restaurant-castle' || activeMenu == 'hotel-castle') {
		$('#mitem_castle').addClass('active');
		$('#subs_castle').show();
	} else if (activeMenu == 'pod-baszta' || activeMenu == 'restaurant-pod-baszta') {
		$('#mitem_pod-baszta').addClass('active');
		$('#subs_pod-baszta').show();
	} else if (activeMenu == 'index' || activeMenu == 'reservation') {
		$('#mitem_index').addClass('active');
		$('#subs_index').show();
	} else {
		$('#mitem_'+activeMenu).addClass('active');
	}
}

function HandleFlags() {
	$('.flag').fadeTo(1, 0.5);
	$('.flag').hover(
		function() { $(this).fadeTo(300, 1);},
		function() { $(this).fadeTo(300, 0.5);}
	);
}

/*
function ShowSubMenu(e) {
	var t = $(e.target).parent(),
	name = t.attr('id');

if( !t.hasClass('opened') ) {
	name = name.substr('mitem_'.length);
	
	if( !t.hasClass('active') )
		t.addClass('opened');
}

$('#subs_' + name).toggle();
}

function HideSubMenu(e) {
	var t = $(e.target).parent(),
		name = t.attr('id');

	if( !t.hasClass('opened') ) {
		name = name.substr('mitem_'.length);
		
		if( $('.opened').size() > 0 ) {
			$('.opened').removeClass('opened').find('.mi_bg').stop().animate({opacity:0}, {duration:500});
			$('.mitem_subs').hide();
		}
		if( !t.hasClass('active') )
			t.addClass('opened');
		$('#subs_' + name).show('slide','',500);
	}	
}
*/
/* temp 

function ShowSubMenu2(e) {
	var t = $('#'+e.data.id);
		
	$('.mitem_subs').hide();
	$('.opened').removeClass('opened');
	if( ! t.hasClass('opened') ) {
		$('.mitem').removeClass('opened');
		t.addClass('opened');
		t.find('.mitem_subs').show('slide','',500);
	} else {
		t.removeClass('opened');
		t.find('.mitem_subs').hide('slide', '', 500);
	}
}
function HideSubMenu(e) {
	$('.has_sub').removeClass('opened');
	$('.mitem_subs').hide();
}
function OuterHideSubMenu(e) {
	$('.has_sub').removeClass('opened');
	$('.mitem_subs').hide();
}

function dump(arr,level) {
	var dumped_text = "";
	if(!level) level = 0;
	
	//The padding given at the beginning of the line.
	var level_padding = "";
	for(var j=0;j<level+1;j++) level_padding += "    ";
	
	if(typeof(arr) == 'object') { //Array/Hashes/Objects 
		for(var item in arr) {
			var value = arr[item];
			
			if(typeof(value) == 'object') { //If it is an array,
				dumped_text += level_padding + "'" + item + "' ...\n";
				dumped_text += dump(value,level+1);
			} else {
				dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
			}
		}
	} else { //Stings/Chars/Numbers etc.
		dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
	}
	return dumped_text;
}
*/