$(document).bind("ready", function() {

    var $subMenuAtivo = null;
	


	function c() {
		//console.log.apply(console.log, arguments);
	}
	
	/*$(document).bind("mouseenter", function() {
		$subMenuAtivo.parents(".ulMenuFirstChild").andSelf().slideUp("fast");
		$subMenuAtivo = null;
	});*/
    
    $(".menuLinkChild").bind("mouseover", function () {
		
		
        $this = $(this); // Elemento A
        $submenu = $this.next().children(".sub_menu"); // Sub menu
		
        //c("====================");
		// Iniciou a página agora?
        if ($subMenuAtivo !== null) {
			
			// Checa se estamos clicando no elemento que já está aberto (subMenuAtivo)
			if ($subMenuAtivo.size() > 0 && $subMenuAtivo.get(0) !== $submenu.get(0)) {
				// Se entrou aqui, é porque estamos clicando num item diferente do ativo 
				//c("Item diferente");
				
				//$subMenuAtivo.find($submenu.get(0))); DEU PAU, vo ter que fazer na mão
				var occur = 0;
				$subMenuAtivo.find("*").each(function() {
					if (this === $submenu.get(0)) {
						occur++;
						return false;
					}
				});
				
				// Verifica se o item clicado está contido no item ativo.
				if (occur != 0) {
					// Está contido
					//c("Está contido");
					
					//c("Novo ativo");
					// Seta novo sub menu
					$subMenuAtivo = $submenu;
					
					//c("Ativo mostrado");
					// Mostra item clicado
					$subMenuAtivo.show();
					
				} else {
					// Não está contido
					//c("Não está contido");
					
					// Verificamos se estes itens pertencem ao mesmo menu principal
					if (
							(
								$subMenuAtivo.parents(".ulMenuFirstChild").get(0) !== undefined && 
								$submenu.parents(".ulMenuFirstChild").get(0) !== undefined && 
								$subMenuAtivo.parents(".ulMenuFirstChild").get(0) === $submenu.parents(".ulMenuFirstChild").get(0)
							) ||
							$subMenuAtivo.parents(".ulMenuFirstChild").get(0) === $submenu.get(0)
						) {
						// Estão no mesmo menu principal, então não escondemos ascendentes
						//c("Mesmo menu principal");
						
						// Esconde o item ativo e seu descendentes
						$subMenuAtivo.show(0, function(){
							//c("Ativo escondido");
							//c("Descendentes escondidos");
							// Esconde os sub-itens deste item aberto
							
							$subMenuAtivo.find(".sub_menu").hide(); 
							
							//c("Novo Ativo");
							// Seta novo sub menu
							$subMenuAtivo = $submenu;
							
							//c("Ativo mostrado");
							// Mostra item clicado
							$subMenuAtivo.show();
						});
					} else {
						// Itens principais diferentes então escondemos tudo
						//c("Diferente menu principal");
						
						// Esconde o item ativo e seu descendentes
						$subMenuAtivo.parents(".ulMenuFirstChild").andSelf().hide(0, function(){
							
							//c("Ativo escondido");
							//c("Ascendentes e descendentes escondidos");
							// Esconde os sub-itens deste menu principal
							
							$subMenuAtivo.parents(".ulMenuFirstChild").find(".sub_menu").hide();
							
							//c("Novo Ativo");
							// Seta novo sub menu
							$subMenuAtivo = $submenu;
							
							//c("Ativo mostrado");
							// Mostra item clicado
							$subMenuAtivo.show();
						});
					}
					
				}
			}/* else {
				
				// Se estivermos clicando item atual, então escondemos ele
				c("Segundo clique no ativo");
				$subMenuAtivo.slideUp("fast", function() {
					c("Ativo escondido");
					c("Descendentes escondidos");
					$subMenuAtivo.find(".sub_menu").hide();
					
					// Testa se é um item principal, anula ativo
					if ($subMenuAtivo.parent().is(".divMenuFirstChild")) {
						c("Ativo anulado");
						$subMenuAtivo = null;
					}
				});
			}*/
			
		} else {
			//c("Novo Ativo");
			// Iniciou página agora, mostramos qualquer item
			$subMenuAtivo = $submenu;
			
			//c("Ativo mostrado");
			$subMenuAtivo.show();
		}
        
    });
	/*$(".ulMenuMain").bind("mouseleave", function () {
		$subMenuAtivo.parents(".ulMenuFirstChild").andSelf().slideUp("fast");
		$subMenuAtivo = null;
	});*/
	$(".menuMainLi").bind("mouseleave", function () {
		$subMenuAtivo.parents(".ulMenuFirstChild").andSelf().hide();
		$subMenuAtivo = null;
	});
	
	

	
	$(".liMenuFirstChild").hover(function(){ //Corrige o bug (submenu que nao esconde no evento mouseout)
		//alert("1");
		
		$(".ulMenuChild").hide();
		$(this).children('.divMenuChild').children().show();
	});
	
	$(".menuMainLi").hover(function(){
		$(".ulMenuFirstChild").hide();
	});
	
	
	
    
});
