function set_js_active() {
    $('body').addClass("js_active");
}

/**
menu jquery
*/
$(document).ready(function() {
    
    Kaliop_Nav_Menu_Helper.init();
    
    /*//MENU ORIGINAL
    if($("#main_nav")){
        menu_ORIG($("#main_nav"));
        $("#main_nav li.current").addClass("open");
    }//*/
    
    if($(".select_list")){
        select_list($(".select_list"));
    }
    lien_blank();

});



Kaliop_Nav_Menu_Helper =
{
    selector: '#main_nav',
    isOut : true,
    Timer:
    {
	  Instance: null,
	  tickMs: 1000,
	  start: function()
	  {
		Kaliop_Nav_Menu_Helper.Timer.reset();
		Kaliop_Nav_Menu_Helper.Timer.Instance = setTimeout("Kaliop_Nav_Menu_Helper.Timer.tick()", Kaliop_Nav_Menu_Helper.Timer.tickMs);
	  },
	  reset: function()
	  {
		if(Kaliop_Nav_Menu_Helper.Timer.Instance!=null)
		{
		    clearTimeout(Kaliop_Nav_Menu_Helper.Timer.Instance);
		    Kaliop_Nav_Menu_Helper.Timer.Instance = null;
		}
	  },
	  tick: function()
	  {
		$('body').trigger('Kaliop_Nav_Menu_Helper.Timer:tick');
	  }
    },
    
    init: function()
    {
	  $(this.selector+' li.current').addClass("open");
	  
	  $(this.selector+' li.niveau_1')
		.bind('mouseover', Kaliop_Nav_Menu_Helper.onMouseOver_lvl1)
		.bind('mouseout', Kaliop_Nav_Menu_Helper.onMouseOut_lvl1)
		.bind('focus', Kaliop_Nav_Menu_Helper.onMouseOver_lvl1)
		.bind('blur', Kaliop_Nav_Menu_Helper.onMouseOut_lvl1)
	  ;
	  
	  
	  $(this.selector+' .niveau_1 > ul.niveau_2 > li.noclick')
		.bind('click', Kaliop_Nav_Menu_Helper.onClick_lvl2)
		.bind('focus', Kaliop_Nav_Menu_Helper.onClick_lvl2)
	  ;
	  

	  $(this.selector+' .niveau_1 > ul.niveau_2 > li.noclick > ul.niveau_3')
		.bind('click', Kaliop_Nav_Menu_Helper.onClick_lvl3)
		.bind('focus', Kaliop_Nav_Menu_Helper.onClick_lvl3)
	  ;

	  
	  /*$(this.selector+' ul.niveau_3 > li')
		.bind('mouseover', Kaliop_Nav_Menu_Helper.onMouseOver_lvl3)
		.bind('mouseout', Kaliop_Nav_Menu_Helper.onMouseOut_lvl3)
	  ;*/
	  
	  $('body')
		.live('Kaliop_Nav_Menu_Helper.Timer:tick', Kaliop_Nav_Menu_Helper.onTick)
		.trigger('Kaliop_Nav_Menu_Helper.Timer:tick')
	  ;
    },
    
    closeAllSameLevel: function(selector){
	  $(selector).siblings('.open').removeClass('open');
	  return this;
    },
    
    closeAllLevels: function(){
	  $('li.open',this.selector).removeClass('open');
	  return this;
    },
    
    open: function(selector){
	  if($(selector).length && $(selector).hasClass('niveau_1')){
		Kaliop_Nav_Menu_Helper.Timer.start();
	  }
	  $(selector)
		.addClass('open')
	  ;
	  return this;
    },
    
    reset: function(){
	  Kaliop_Nav_Menu_Helper.closeAllLevels();
	  Kaliop_Nav_Menu_Helper.open($(this.selector+' li.niveau_1.current')[0]);
	  Kaliop_Nav_Menu_Helper.open($($(this.selector+' li.niveau_1.current')[0]).find('ul.niveau_2 li.current')[0]);
	  Kaliop_Nav_Menu_Helper.Timer.reset();
	  return this;
    },
    
    onTick: function(e)
    {
	  if(Kaliop_Nav_Menu_Helper.isOut) Kaliop_Nav_Menu_Helper.reset();
    },
    
    onMouseOver_lvl1: function(e)
    {
	  Kaliop_Nav_Menu_Helper.isOut = false;
	  
	  Kaliop_Nav_Menu_Helper.closeAllSameLevel(this);
	  
	  Kaliop_Nav_Menu_Helper.Timer.reset();
	  Kaliop_Nav_Menu_Helper.open(this);
    },
    onMouseOut_lvl1: function(e)
    {
	  Kaliop_Nav_Menu_Helper.isOut = true;
	  Kaliop_Nav_Menu_Helper.Timer.start();
    },
    
    onClick_lvl2: function(e)
    {
	  console.warn($(this));
        Kaliop_Nav_Menu_Helper
            .closeAllSameLevel(this)
            .open(this)
        ;
	  Kaliop_Nav_Menu_Helper.isOutSub = false;
	  return false;//cancels default href event
    },
    
    onClick_lvl3: function(e)
    {
	if ( ( $(e.target).attr('href') != null ) && ( $(e.target).attr('href') != undefined ) )
	{
	  window.location.href = $(e.target).attr('href');
        }
    }
};

/** 
menu principal
*/
function menu_ORIG(div){

    var btn = $('li',div);
    
	btn.each(function( index , el) {
        el = $(el);
        var open = function (el){
            el.siblings('.open').each(function (i, element) {
                close($(element));
            });
            if(!el.hasClass('current')) $("#main_nav li.current").removeClass("open");
            el.addClass("open");
            //console.log(this);
        }
        var close = function (el){
            el.removeClass("open");
            //$("#main_nav li.current").addClass("open");
        }

        var openAction = function() {
            var self = $(this);
            clearTimeout(div.attr('close'));
            div.removeAttr('close');
            open(self);
//            var openTimer = setTimeout(function(){open(self)}, 150);
//            self.attr('open', openTimer);
        }

        var closeAction = function() {
            var self = $(this);
            clearTimeout(self.attr('open'));
            var closeTimer = setTimeout(function (){close(self)}, 150);
            self.attr('close', closeTimer);
        }

        el.mouseover( openAction );
        el.focus(openAction );
        //el.mouseout(closeAction );

        var last_a = $('a',el).last();
        last_a.blur( close );
	});
    
    div.mouseout(function() {
        var self = $(this);
        if (!self.attr('close')) {
            var closeTimer = setTimeout(function (){
                $('li.open', div).removeClass("open");
                $("li.current", div).addClass("open");
            }, 1000);
            $(this).attr('close', closeTimer);
        }
    });
}
/** 
Listes deroulantes 
*/
function select_list(div){
	div.each(function(index, el) {
       // el.attr("tabindex","0");
       el = $( el );
        var open = function (){el.addClass("open");}
        var close = function (){el.removeClass("open");}
        el.mouseover( open );
        el.focus( open );
        el.mouseout( close );
        var last_a = el.children('a').last();
        last_a.blur( close );
	});
}


/** 
Liens dans une nouvelle fenêtre
*/

function lien_blank() {

    // Rajoute la methode trim pour ie
    if(typeof String.prototype.trim !== 'function') {
        String.prototype.trim = $.trim;
    }

    var liens = $("a");
    liens.each(function(i, lien) {
        lien = $(lien);
        var href = lien.attr("href");

        var titre_lien = lien.attr('title');
        var intitule_lien = "";

        lien.children().each(function(i, child) {
            child = $(child);
            if(child.nodeName == 'IMG' ){
                if (child.attr('alt')) intitule_lien += child.attr('alt').trim() + " ";
            }else if (child.val()) intitule_lien += child.val().trim() + " ";
        });

        if(titre_lien) lien.attr("title", titre_lien);
        else lien.attr("title", intitule_lien);

        if (lien.attr('rel') == 'external') {
                lien.click(function() {
                    window.open(href);
                    return false;
                });
            }
        });

}




