var lfoL = null, lfoC=null, lfoR=null;
var lastClickedL=null, lastClickedC=null, lastClickedR=null;
var lastSelSM=null, lastSMME=null;
var lastShownSubmenu = null;
var lastCatCont = null;
var menuIndex = 0;
var submenuIndex = 0;
var lastL3ClickedItem = null;
var lastMenuId = null;
var currentMainMenuId = null;

var catSelected;

function catEnter(el){
	catSelected = false;
	if( el.css('background-color') == 'rgb(30, 129, 215)' ){
		catSelected = true;
	}
	else{
		el.css("color","white");
		el.css("background-color","rgb(30, 129, 215)");
	}
}


function catLeave( el ){
	if( ! catSelected ){
		el.css("color","#1e9cd5");
		el.css("background-color","white");
	}
}


function catClick( e ){
	
	var eid = e.attr('id');

	var lnks = $('.level3CatContainer2');
	
	lnks.each( function(){
		$(this).css("display", "none");
	
	});
	
	var tname = '#a'+ eid; 
	var t = $(tname);
	
	t.css("display", "block");
	
	if( lastL3ClickedItem != null ){
		lastL3ClickedItem.css("background-color", "white");
		lastL3ClickedItem.css("color", "#1e9cd5");
	}
	e.css( "background-color", "rgb(30, 129, 215)" );
	e.css( "color", "white" );
	lastL3ClickedItem = e;
	catSelected = true;

}

function initLevel3(){
	
	var lnks = $('.level3CatContainer2');
	
	lnks.each( function(){
		$(this).css("display", "none");
	
	});
	
	$('#al3c2_'+menuIndex+'_'+submenuIndex +'_0').css("display", "block");

	if( lastL3ClickedItem != null ){
		lastL3ClickedItem.css("background-color", "#CCC");
		lastL3ClickedItem.css("color", "#1e81d7");
	}
	lastL3ClickedItem = $('#l3c2_'+menuIndex+'_'+submenuIndex +'_0');
	lastL3ClickedItem.css( "background-color", "#1e81d7" );
	lastL3ClickedItem.css( "color", "white" );

}



function unmarkMenu( l, c, r ){
 	if( l != null && c != null && r != null ){
     	l.css( "background-color", "" );
     	c.css( "background-color", "" );
     	r.css( "background-color", "" );
    	
    	$( currentMainMenuId+'I1').css( "display", "block" );
    	$( currentMainMenuId+'I2').css( "display", "none" );
    }
 	lfoL = lfoC = lfoR = null;
}


function unmarkLastClickedMenu( l, c, r ){
 	if( l != null && c != null && r != null ){
     	l.css( "background-color", "" );
     	c.css( "background-color", "" );
     	r.css( "background-color", "" );
    	
    	$( lastMenuId+'I1').css( "display", "block" );
    	$( lastMenuId+'I2').css( "display", "none" );
    }
 	lastClickedL = lastClickedC = lastClickedR = null;
}

function onSMBlockMouseLeave( ev, e ){
	var subMenuPos = $('div.level23Container').position();
	var subMenuH = $('div.level23Container').height();
	if( ev.pageY > subMenuPos.top+subMenuH ){
		hideSubMenu();
	}
}


function hideSubMenu(){
	$('div.level23Container').css( 'display', 'none' );
	unmarkMenu( lfoL, lfoC, lfoR );
	unmarkLastClickedMenu( lastClickedL, lastClickedC, lastClickedR );
	lastMenuId = null;
	currentMainMenuId = null;
}


function showSubmenu( cls ){
	if( lastShownSubmenu != null ){
		lastShownSubmenu.css( 'display', 'none' );
	}
	lastShownSubmenu = $( 'div.sm_' + cls );
	lastShownSubmenu.css( 'display', 'block' );
}


function onMainMenuMouseEnter( cls, ev, e, iL, iR ){

	if( currentMainMenuId == ('#'+cls) ){
		return;
	}
	
	if( currentMainMenuId != ('#'+cls) && lfoL != lastClickedL ){
 		unmarkMenu( lfoL, lfoC, lfoR );
	}

	currentMainMenuId = '#'+cls;

	$( currentMainMenuId+'I2').css( "display", "block" );
	$( currentMainMenuId+'I1').css( "display", "none" );
 	
 	iL.css( "background-color", "white" );
 	e.css( "background-color", "white" );
 	iR.css( "background-color", "white" );
 	
	lfoL = iL;
	lfoC = e;
	lfoR = iR;
}


function onMainMenuMouseClick( ev, e, iL, iR, cls ){

	var eid = e.attr("id");
	var idstrs = eid.split("_", 2 );
	
	
	if( lastMenuId == ('#'+cls) ){
		hideSubMenu();
		lastMenuId = null;
		currentMainMenuId = null;
		lastClickedL = lastClickedC = lastClickedR = null;
		onMainMenuMouseEnter( cls, ev, e, iL, iR );
		return;
	}
	
	unmarkLastClickedMenu( lastClickedL, lastClickedC, lastClickedR );
	
	currentMainMenuId = '#'+cls;
	/*if( lastClickedL != null && lastClickedL != iL ){
 		unmarkMenu( lastClickedL, lastClickedC, lastClickedR );
 	}*/
	
	menuIndex = parseInt( idstrs[1] );

	var pos = $('div.mainMenuContainer').position();
	var sm = $('div.level23Container');
	sm.css( 'top', pos.top+49+'px' );
	sm.css( 'left', (pos.left)+'px' );
	sm.css( 'display', 'block' );

	var cache = $('#_mmcache');
	pos = e.position();
	cache.css( 'left', pos.left+1+'px');
	cache.css( 'top', pos.top+e.height()-2+'px');
	cache.css( 'width', e.width()+'px');
	cache.css( 'display', 'block');

	showSubmenu( cls );
	
	$('#smid_'+(menuIndex+1)+'_0').click();
	
	
	lastMenuId = '#'+cls;
	lastClickedL=iL;
	lastClickedC=e;
	lastClickedR=iR;
	lfoL = iL;
	lfoC = e;
	lfoR = iR;
}


function onMainMenuBlockMouseLeave( ev ){
	var mainMenuPos = $('div.mainMenuContainer').position();
	
	// If we go outside by the top
	if( lastMenuId == null || ev.pageY <= (mainMenuPos.top+12) ){ // +12 is the top margin defined in css.mainMenuContainer
		hideSubMenu();
	}
}

function onMainMenuMouseLeave(ev, e, iL, iR, cls ){

	var mainMenuPos = $('div.mainMenuContainer').position();

	if( lastMenuId != null ){
		// If we go outside by the top
		//if( ev.pageY < mainMenuPos.top-10 ){
			//hideSubMenu();
		//}
		return;
	}
	
	//if( ev.pageY > subMenuPos.top+subMenuH ){
		//hideSubMenu();
	//}
}


function onSMClick( ev, el, mname, index, childcount ){
 	if( lastSelSM != null && lastSelSM != el ){
 	 	lastSelSM.css( 'font-weight', 'normal' );
 	 	lastSelSM.css( 'color', '#666' );
 	}
 	el.css( 'font-weight', 'bold' );
 	el.css( 'color', '#4191ea' );
 	lastSelSM = el;
 	var catCont = $('#catid_'+mname+'_'+index);
 	if( lastCatCont != null ){
 		lastCatCont.css( 'display', 'none' );
 	}
 	catCont.css( 'display', 'block' );
 	lastCatCont = catCont;
 	
	var eid = el.attr("id");
	var idstrs = eid.split("_", 4 );
	
	submenuIndex = parseInt( idstrs[3] );
 	
 	initLevel3();
 	
}


function onSMMouseEnter( ev, el ){
 	if( lastSMME != null ){
 	 	lastSMME.css( 'text-decoration', 'none' );
 	}
 	el.css( 'text-decoration', 'underline' );
 	lastSMME = el;
}


function onSMMouseLeave( ev, el ){
 	if( lastSMME != null ){
 	 	lastSMME.css( 'text-decoration', 'none' );
 	}
 	lastSMME = null;
}


