$(document).ready(init_main_menu);

var caller = {};
var menu_hover_idx = undefined;
var current_menu_idx = undefined;
var current_what = undefined;
function init_main_menu(){
  
  // remove current-page-parent
  var current_parent;



  $('#main_menu>li>a').bind('mouseover', function(){
      menu_hover_idx = $('#main_menu>li>a').index(this);
      hide_sub_menus();
      $(this).parent().children('ul').fadeIn();
  });

  $('#main_menu>li>a').bind('mouseout', function(){
      if(current_menu_idx!=undefined){
        menu_hover_idx = current_menu_idx;
      }else{
        menu_hover_idx = undefined;
      } 
      setTimeout( function(){hide_sub_menus(true)},2500);
    }
  );
  
  $('#main_menu>li>ul a').bind('mouseover', function(){
      menu_hover_idx = $('#main_menu>li>ul').index($(this).parent().parent());
    }
  );
  
  $('#main_menu>li>ul').bind('mouseout', function(){
      if(current_menu_idx!=undefined){
        menu_hover_idx = current_menu_idx;
      }else{
        menu_hover_idx = undefined;
      } 
      setTimeout( function(){hide_sub_menus()},2500);  
  });
  
  
  current_parent = $('#main_menu>li.current-page-item');
  
  if(current_parent.html()){
    current_parent.removeClass('current-page-item');
    current_what = 'current-page-item';
  }else{
    current_parent = $('#main_menu>li.current-page-parent');
    if(current_parent.html()){
      current_parent.removeClass('current-page-parent');
      current_what = 'current-page-parent';
    }else{
      current_parent = $('#main_menu>li.current-page-ancestor');
      if(current_parent.html()){
        current_parent.removeClass('current-page-ancestor');
        current_what = 'current-page-ancestor';
      }
    }
  }
    
  if(current_parent.html()){
    current_menu_idx = $('#main_menu>li').index(current_parent);
    current_parent.children('a').trigger('mouseover'); 
    
  }  
  
  

}

function hide_sub_menus(double_check){
  var a = false;

  $('#main_menu>li>ul').filter(
      function(index){
        if(index == current_menu_idx && menu_hover_idx==undefined) {
          menu_hover_idx = index;
        }
        if(index == menu_hover_idx){
          if($(this).css('display')=='none'){
            $(this).fadeIn();  
          } 
          
          $(this).parent().addClass(current_what);
          return false;
        }
        $(this).parent().removeClass('current-page-item');
        $(this).parent().removeClass('current-page-parent');
        $(this).parent().removeClass('current-page-ancestor');        
        return  $(this).css('display')=='' || $(this).css('display')=='block'; 
      }
    ).fadeOut('fast');
  
  $('#main_menu>li').filter(
    function(index){
      if(index == menu_hover_idx){
        $(this).addClass(current_what);
      }else{
        $(this).removeClass('current-page-item');
        $(this).removeClass('current-page-parent');
        $(this).removeClass('current-page-ancestor');          
      }   
    }
  )
    
    
  if(double_check){
    setTimeout( function(){hide_sub_menus()},2500);
  }  
}

