/* DOM READY
--------------------------------------------------------------------------------------------------------------------------------------*/
$(document).ready(function() {
    var mainFunc = function(){
            // Menu
            var hover = $('#menu-hover');
            var active = $('#ddsmoothmenu .active a');    

        if($('#wpadminbar').height() != null){
            //on cherche si #menu-menu-standard li.current-page-ancestor existe, nous sommes dans une sous-cat
            if( $('#menu-menu-standard li.current-page-ancestor').height() != null ){
                hover.css({
                    'display':'block',
                    'opacity':0,                    
                    'top': $('#wpadminbar').height() + $('#menu-menu-standard li.current-page-ancestor').height()/2 - 7 + $('#menu-menu-standard li.current-page-ancestor').position().top,
                    'left':$('#menu-menu-standard li.current-page-ancestor').position().left + $('#menu-menu-standard li').width()/2 - 14
                });
            }
            //nous ne sommes pas dans une sous-cat, sommes-nous dans une categorie principale? #menu-menu-standard li.current-menu-item doit être alors différent de null et de 0
            else if( $('#menu-menu-standard li.current-menu-item').height() != null && $('#menu-menu-standard li.current-menu-item').height() != 0 ){           
                hover.css({
                    'display':'block',
                    'opacity':0,                    
                    'top': $('#wpadminbar').height() + $('#menu-menu-standard li.current-menu-item').height()/2 - 7 + $('#menu-menu-standard li.current-menu-item').position().top,
                    'left':$('#menu-menu-standard li.current-menu-item').position().left + $('#menu-menu-standard li').width()/2 - 14
                });
            }
            //nous sommes dans les actualités #menu-menu-standard li.current_page_parent existe
            else if( $('#menu-menu-standard li.current_page_parent').height() != null){
                hover.css({
                    'display':'block',
                    'opacity':0,                    
                    'top': $('#wpadminbar').height() + $('#menu-menu-standard li.current-page-ancestor').height()/2 - 7 + $('#menu-menu-standard li.current_page_parent').position().top,
                    'left':$('#menu-menu-standard li.current_page_parent').position().left + $('#menu-menu-standard li').width()/2 - 14
                });
            }
        }
        // il n'y a pas d'admin bar
        else{
            if( $('#menu-menu-standard li.current-page-ancestor').height() != null ){
                hover.css({
                    'display':'block',
                    'opacity':0,                    
                    'top': $('#menu-menu-standard li.current-page-ancestor').height() - 14 + $('#menu-menu-standard li.current-page-ancestor').position().top,
                    'left':$('#menu-menu-standard li.current-page-ancestor').position().left + $('#menu-menu-standard li').width()/2 - 14
                });
            }
            // nous ne sommes pas dans une sous-cat, sommes-nous dans une categorie principale? #menu-menu-standard li.current-menu-item doit etre alors different de null et de 0
            else if( $('#menu-menu-standard li.current-menu-item').height() != null && $('#menu-menu-standard li.current-menu-item').height() != 0 ){
                hover.css({
                    'display':'block',
                    'opacity':0,                    
                    'top': $('#menu-menu-standard li.current-menu-item').height() - 14 + $('#menu-menu-standard li.current-menu-item').position().top,
                    'left':$('#menu-menu-standard li.current-menu-item').position().left + $('#menu-menu-standard li').width()/2 - 14
                });
            }
            //nous sommes dans les actualités #menu-menu-standard li.current_page_parent existe
            else if( $('#menu-menu-standard li.current_page_parent').height() != null){
                hover.css({
                    'display':'block',
                    'opacity':0,                    
                    'top': $('#menu-menu-standard li.current-page-ancestor').height()/2 - 7 + $('#menu-menu-standard li.current_page_parent').position().top,
                    'left':$('#menu-menu-standard li.current_page_parent').position().left + $('#menu-menu-standard li').width()/2 - 14
                });
            }
        }


        if(active[0]){
            //alert('d');
            hover.animate({'left':active.position().left, 'width':active.innerWidth(), 'opacity':1}, 300);
        }

        //fonctions appelées lors des evenements souscrient aux ecouteurs plus bas
        var mouseoverft = function(){     
            if( $('#menu-menu-standard li.current-page-ancestor').height() != null ){ 
                hover.stop().css('display', 'block').animate({'left': $(this).position().left + $(this).width()/2 - 14, 'opacity':1}, 300 );
                hover.css( {'z-index' : parseInt($('#menu-menu-standard li.current-page-ancestor').css("zIndex" ))} );
            }
            else if( $('#menu-menu-standard li.current-menu-item').height() != null && $('#menu-menu-standard li.current-menu-item').height() != 0 ){
                hover.stop().css('display', 'block').animate({'left': $(this).position().left + $(this).width()/2 - 14, 'opacity':1}, 300 );
                hover.css( {'z-index' : parseInt($('#menu-menu-standard li.current-menu-item').css("zIndex" ))} );
            }
            //cas :
            else{     
                hover.css({ top: $('#menu-menu-standard').position().top + $('.menu-item').height() - 14});
                hover.stop().css('display', 'block').animate({
                    'left': $(this).position().left + $(this).width()/2 - 14,            
                    'opacity':1
                }, 300 );
            }
        };
        var mouseleaveft = function(){
            if(!active[0]){
                //on cherche si #menu-menu-standard li.current-page-ancestor existe, nous sommes dans une sous-cat
                if( $('#menu-menu-standard li.current-page-ancestor').height() != null ){
                    hover.stop().animate({'left':$('#menu-menu-standard li.current-page-ancestor').position().left +  $('#menu-menu-standard li.current-page-ancestor').width()/2 - 14 , 'opacity': 1}, 100);
                }            
                 // nous ne sommes pas dans une sous-cat, sommes-nous dans une categorie principale? #menu-menu-standard li.current-menu-item doit etre alors different de null et de 0
                else if( $('#menu-menu-standard li.current-menu-item').height() != null && $('#menu-menu-standard li.current-menu-item').height() != 0 ){
                    hover.stop().animate({'left':$('#menu-menu-standard li.current-menu-item').position().left +  $('#menu-menu-standard li.current-menu-item').width()/2 - 14 , 'opacity': 1}, 100);
                }
                // nous sommes dans les actualités #menu-menu-standard li.current_page_parent existe
                else if( $('#menu-menu-standard li.current_page_parent').height() != null){
                hover.stop().animate({'left':$('#menu-menu-standard li.current_page_parent').position().left +  $('#menu-menu-standard li.current_page_parent').width()/2 - 14 , 'opacity': 1}, 100);
            }
                //cas particulier ou nous ne sommes ni dans une categorie, ni une sous categorie comme pour la page "mon profil" par exemple
                else{
                    hover.stop().animate({
                        'left': 0,
                        'opacity': 0
                    })
                }
            }      
        };    
        var mouseclickft = function(){
                $('#menu-menu-standard li').unbind('mouseover', mouseoverft);
                $('#ddsmoothmenu li').unbind('mouseleave', mouseleaveft);                              
                hover.stop().css({
                    'left':$(this).position().left + $(this).width()/2 - 14
                });
                //$('#wrapper').animate({ 'opacity': 0.3 }, 500);
        }

        //souscription aux ecouteurs
        $('#menu-menu-standard li').bind('mouseover', mouseoverft); //on ecoute l'evenement mouseover et on envois la fonction mouseoverft'
            $('#ddsmoothmenu li').bind('mouseleave', mouseleaveft);
        $('#menu-menu-standard li').bind('click', mouseclickft);
        //$(document).ready( function(){
        //    $('#wrapper').animate({'opacity':0.3},0);
        //    $('#wrapper').animate({ 'opacity': 1 }, 1000);
        //});

        $(window).resize(function() {        
            hover.stop().css({
                    'left':$('#menu-menu-standard li.current-menu-item ').position().left + $('#menu-menu-standard li.current-menu-item ').width()/2 - 14
                });
            //$('#log').append('<div>Handler for .resize() called.</div>');
        });
    };
    
    //lancement de la fonction principale
    mainFunc();
    
    //Pour egler le probleme de decalage de la fleche rollover($hover) je met un écouteur sur le resize de la fenetre, et je relance la fonction principale.
    $(window).resize(function() {
        mainFunc();
    });    
});


