var key_enabled = false;
var myTimerKey;

/*Jquery function*/
jQuery.fn.firstAfter = function(filter){
    return this.nextAll(filter).eq(0);
}
jQuery.fn.firstBefore = function(filter){
    return this.prevAll(filter).eq(0);
}
jQuery.fn.reverse = [].reverse;


jQuery.fn.fadeInSequence = function(fadeInTime, timeBetween)
{
    //Default Values
    timeBetween = typeof(timeBetween) == 'undefined' ? 0 : timeBetween;
     fadeInTime = typeof(fadeInTime) == 'undefined' ? 500 : fadeInTime;
 
    //The amount of remaining time until the animation is complete.
    //Initially set to the value of the entire animation duration.
    var remainingTime = jQuery(this).size() * (fadeInTime+timeBetween);
 
    var i=0; //Counter
    var te = jQuery(this).size();
    var teO = jQuery(this);
    /*if(teO.last().is('.projets'))
    {*/
        /*prevent unknow bugs*/
        teO.last().after('<div id=\'myTmp\' style=\'display: inline\'>&nbsp;</div>');
    /*}*/
    return jQuery(this).each(function()
    {
        //Wait until previous element has finished fading and timeBetween has elapsed
        jQuery(this).delay(i++*(fadeInTime+timeBetween));

        //Decrement remainingTime
        remainingTime -= (fadeInTime+timeBetween);
 
        if(jQuery(this).css('display') == 'none')
        {
            //alert('sequence fadeIn' + i + "avec " + fadeInTime);
            
            if(i == te)
            {
                
                var last = jQuery(this);
                var all = 
                jQuery(this).fadeIn(fadeInTime,function(){
                        /*if(last.is('.projets'))
                        {*/
                            $('div#myTmp').hide();
                        /*}*/
                });
            }
            else
            {
                jQuery(this).fadeIn(fadeInTime);
            }
        }
        else //If hidden by other means such as opacity: 0
        {
            jQuery(this).animate({'opacity' : 1}, fadeInTime);
        }
 
        //Delay until the animation is over to fill up the queue.
        jQuery(this).delay(remainingTime+timeBetween);
        
        
 
    }); 
 
};
jQuery.fn.fadeOutSequence = function(fadeOutTime, timeBetween, f)
{
    //Default Values
    timeBetween = typeof(timeBetween) == 'undefined' ? 0 : timeBetween;
     fadeOutTime = typeof(fadeOutTime) == 'undefined' ? 500 : fadeOutTime;

    //The amount of remaining time until the animation is complete.
    //Initially set to the value of the entire animation duration.
    var remainingTime = jQuery(this).size() * (fadeOutTime+timeBetween);

    var i=0; //Counter
    var te = jQuery(this).size();
    if(te > 0)
    {
        jQuery(this).each(function()
        {
            //Wait until previous element has finished fading and timeBetween has elapsed
            i++;

            var finished = i*(fadeOutTime+timeBetween);
            jQuery(this).delay(finished);
     
            //Decrement remainingTime
            remainingTime -= (fadeOutTime+timeBetween);
            var myCallback = function(){
                if(i == te)
                {
                    /*alert(te + 'vs' + i);
                    alert(finished);*/
                    if (typeof f == "function")
                     {
                         setTimeout(function() {
                            f();
                        }, finished)

                     }
                }
            };
            if(jQuery(this).css('display') == 'inline')
            {

                jQuery(this).fadeOut(fadeOutTime, myCallback());   
            }
            else //If hidden by other means such as opacity: 0
            {
                
                jQuery(this).animate({'opacity' : 1}, fadeOutTime);
            }
     
            //Delay until the animation is over to fill up the queue.
            jQuery(this).delay(remainingTime+timeBetween);


        });
    }
    else if(typeof f == "function")
    {
        f();
    }

     
 
};
 

/*mouse function*/
function getIdFromString(id,val)
{
    var mySplitResult = id.split(val);
    return mySplitResult[1];
}
function closeAll(callback, eventObject)
{
    
    //$('p.root a').attr('style','');          
    $('div#accueil').hide();
    $('div.atelier').hide();
    $('div#content_categorie').show();
    $('a#contact').removeClass('open');
    myChilds = $('p.child:visible');
    myAnnee = $('p.annee:visible');
    myPs = $('p.projets:visible');
    myActus = $('div.txt.annee.actualite:visible');
    var myCallback = function(){
        $('p.root a').removeClass('open');
        $('p.root').find('span.h').hide(); 
        //$('p.child,p.projets').hide();
        animateInlineElement(myChilds,'hide',function(){});
        animateInlineElement(myAnnee,'hide',function(){});
        $('p.v').show();
        $('br').hide();
        $('br.init').show();
        setCallbackColor(0);
        
        if(callback){
            callback();
        }
    };
    if(myPs.size() > 0)
    {
        closeAllChild(function(){myCallback();},'projet');
    }
    else if(myActus.size() > 0)
    {
        closeAllChild(function(){myCallback();},'txt');
    }
    else
    {
        closeAllTxtAnnee(function(){
             myCallback();
        });
        
    }
    
    
    
}
function getContentCategorie(myId){
    myId = parseInt(myId);
    $('div#content_categorie').hide();
    if(myId > 0){
           $('div#content_categorie').load(
                url_categorie + "/id/" + myId,
                function(){
                    if($('div#content_categorie img').size() > 0){
                        $('div#content_categorie img:last').load(function(){
                                $('div#content_categorie').show(); 
                        });
                    }else{
                        $('div#content_categorie').show(); 
                    }
                    
                }
            );
    }
    else{
        $('div#content_categorie').html('');
    }
    
}
function initSizeWrapper()
{
    $('span#imgT').hide();
    tw = parseInt($(window).width());
    r = tw / 25;
    r = Math.floor(r);
    r = r - 2;
    w = r * 25;
    
    if(w > 730){
        $('div.t6').width(w);
    }
    
    
}
function closeAllChild(callback,type)
{
   //closeAllVignetteFast();
   if(type == 'projet')
       {
           closeAllVignette(function(){
               $('p.child a').removeClass('open');
               $('p.child a').addClass('hover');
               $('p.child').find('span.description').hide();  
               $("p.projets").hide();
               $("p.vignette").hide();
               $('br.projets').hide();
               $('p.annee').hide();
               $('div#content_categorie').html('');
               $('span.s').removeClass('open')
               if(callback){
                   callback();
               }
           });
   
       }
  if(type == 'txt')
      {
            closeAllTxt(function(){
               $('p.annee a').removeClass('open');
               $('p.child a').removeClass('open');
                $('div.txt').hide();
                $('div.txt br.txt').hide();
                $('div.txt.annee').hide();
                $('div.txt.annee br.annee').hide();
               if(callback){
                   callback();
               }
           });
      }
   
    
   
   
   
}
function closeAllVignette(callback)
{
    
    $('#imgT').hide();
    //$('p.projets a.open').each(function(){
       //var myP = $(this).closest('p'); 
     var myP = $('p.projets a.open').closest('p'); 
     
     if(myP.size() > 0)
     {
        var id = myP.attr('id');
        mySlideUp(id, callback);
     }
     else if(callback)
     {
         callback();
     }
      // alert(myP.attr('id'));
       
       //var id = getIdFromString(myP.attr('id'),'id_');
       //mySlideUp(id);
    //});
        
    
    $('p.projets a').removeClass('open');
    /*$('table.vignette img').hide();
    $('table.vignette').hide();
    $('div.vignette').hide();
    $('div.vignette br.vignette').hide();
    $('div.vignette img').hide();*/
    
    
}
function closeAllVignetteFast()
{
    
    $('#imgT').hide();
    //$('p.projets a.open').each(function(){
       //var myP = $(this).closest('p'); 
    /* var myP = $('p.projets a.open').closest('p'); 
     if(myP.size() > 0)
     {
        var id = myP.attr('id');
        mySlideUp(id);
     }*/
      // alert(myP.attr('id'));
       
       //var id = getIdFromString(myP.attr('id'),'id_');
       //mySlideUp(id);
    //});
        
    
    $('p.projets a').removeClass('open');
    $('table.vignette img').hide();
    $('table.vignette').hide();
    $('div.vignette').hide();
    $('div.vignette br.vignette').hide();
    $('div.vignette img').hide();
    
}
function closeAllTxt(callback)
{
     var myDivs = $('div.txt.annee.actualite:visible');
     if(myDivs.size() > 0)
     {
         var cpt_i = myDivs.size() - 1;
         myDivs.each(function(i){
            var myId = getIdFromString($(this).attr('class'),'txt annee actualite id_');
            myId = myId.replace(" current_nav", "");
            
            var myA = $('p#child_' + myId).find('a');
            if(cpt_i == i)
            {
                mySlideUpTxt(myA, callback);
            }
            else
            {
                mySlideUpTxt(myA, function(){});
            }

         });
     }
     else if(callback)
     {
         callback();
     }
}
function closeAllTxtAnnee(callback)
{
    var myDivs = $('div.txt.annee:not(.actualite):visible');
    
    if(myDivs.size() > 0)
    {
        var cpt_i = myDivs.size() - 1;
        myDivs.each(function(i){
            var myAnnee = getIdFromString($(this).attr('class'),'txt annee ');
            myAnnee = myAnnee.replace(" current_nav", "");
            var myA = $('p.annee.' + myAnnee + ':visible').find('a');
            if(cpt_i == i)
            {
                mySlideUpTxtAnnee(myA, myAnnee, callback);
            }
            else
            {
                mySlideUpTxtAnnee(myA, myAnnee, function(){});
            }

         });
    }
    else if(callback)
    {
        callback();
    }
    
    
        
        
     
    /*
    $('p.annee a').removeClass('open');
    $('div.txt').hide();
    $('div.txt br.txt').hide();*/
}
function setColor(o,defaultColor)
{
    var cssclass = o.attr('class');
    var maVirgule = o.firstAfter('p.v');
    cssclass = getIdFromString(cssclass,"root ");
    setColorCss(cssclass, maVirgule);
    if(!defaultColor)
    {
        setTimeout(
            function(){
                setCallbackColor(o.attr('id'));
            },
            100
        );
        
    }
    
}
function setColorCss(cssclass, maVirgule)
{
    $('span.m.debut').removeClass().addClass("m debut " + cssclass);
    $('div.nav span.left').removeClass().addClass("left " + cssclass);
    $('div.nav span.right').removeClass().addClass("right " + cssclass);
    $('div.nav span.down').removeClass().addClass("down " + cssclass);
    $('div.nav span.up').removeClass().addClass("up " + cssclass);
    if($('div.pdf.pt.active').is('.f'))
    {
        f = "f";
    }
    else
    {
        f = "";
    }
    $('p.pdf.pt.active').removeClass().addClass("pdf pt active" + " " + f + " " + cssclass);
    if(maVirgule)
    {
       $('p.v').removeClass().addClass('v');
       maVirgule.removeClass().addClass("v " + cssclass); 
    }
    else
    {
        $('p.v').removeClass().addClass('v');
    }
    
}
function getDefaultColorCss()
{
    var cssclass = $('span.m.debut').attr('class');
    cssclass = getIdFromString(cssclass,"m debut ");
    return cssclass;
}

function mySlideDown(id)
{
    $('table.vignette.'+ id + " img").show();
    $('table.vignette.'+ id + " br.vignette").show();
    $('table.vignette.'+ id).show();
    //$('table.vignette.'+ id).closest('div').show();
    $('table.vignette.'+ id).closest('div').slideDown({
                    duration:600,
                    easing:"easeOutQuart",
                    complete:function(){
                        setPictureVideo($('table.vignette.'+ id).find('img[src*="_video-"]'));
                    }
                    
                });
   
   
}
function mySlideDownTxt(myA)
{
    myA.closest('p').firstAfter('div.txt.annee').find("br.annee").show();
    /*myA.closest('p').firstAfter('div.txt.annee').find("div.col").show();
    myA.closest('p').firstAfter('div.txt.annee').find("dl").show();
    myA.closest('p').firstAfter('div.txt.annee').find("dt").show();
    myA.closest('p').firstAfter('div.txt.annee').find("dd").show();*/
    /*alert(myA.closest('p').firstAfter('div.txt.annee').width());*/
   
    myA.closest('p').firstAfter('div.txt.annee').slideDown({
                    duration:600,
                    easing:"easeOutQuart",
                    complete:function(){
                        
                        
    
                    }
                    
                });
                  
   
}
function mySlideDownAnnee(myA , annee)
{
    
   myA.closest('p').firstAfter('div.txt.annee.'+ annee).find("br.annee").show();
   
   myA.closest('p').firstAfter('div.txt.annee.'+ annee).slideDown({
                    duration:600,
                    easing:"easeOutQuart",
                    complete:function(){
                        
                        
    
                    }
                    
                });
   
   
}
function mySlideUp(id, callback)
{
    unsetPictureVideo();
    $('table.vignette.'+ id).closest('div').slideUp({
        duration:600,
        //easing:"easeInQuart",
        easing: "easeOutQuart",
        complete:function(){
             if( callback )
             {
                 callback();
             }
        }
    });

}
function mySlideUpTxt(myA, callback)
{
    
    myA.closest('p').firstAfter('div.txt.annee').find("br.annee").hide();
    myA.closest('p').firstAfter('div.txt.annee').slideUp({
                    duration:600,
                    easing:"easeOutQuart",
                    complete:function(){
                        if( callback )
                        {
                            callback();
                        }
                    }
                    
                });
                  
   
}
function mySlideUpTxtAnnee(myA, annee, callback)
{
    
    myA.closest('p').firstAfter('div.txt.annee.'+ annee).find("br.annee").hide();
    
                
    myA.closest('p').firstAfter('div.txt.annee.'+ annee).slideUp({
                    duration:600,
                    easing:"easeOutQuart",
                    complete:function(){
                        
                        if( callback )
                        {
                            callback();
                        }
    
                    }
                    
                });
                
   
}
function animateInlineElement(elements,type,callback)
{
    var duration = 40;
    if(type == "show")
    {
        /*elements.each(function(i){
            alert($(this).text());
            $(this).delay( i * duration ).fadeIn( duration ); 
        });*/
        
        elements.fadeInSequence( 20, duration );
    }
    else if(type == "hide")
    {
        
        //elements = elements.reverse();
        /*elements.each(function(i){
            
            //$(this).delay( i * duration ).hide( duration ); 
            //$(this).delay( i * duration ).hide( duration ); 
            $( this ).delay(i * duration).fadeOut(duration);
        });*/
        elements.fadeOutSequence( 20, duration, callback );
       

        
    }
}
/*Key default function*/
function disableKeyNav()
{
    if(key_enabled)
    {
        current = new Current();
        if(current.level != 2)
        {
            $(".current_nav").removeClass('hover');
            
        }
        else
        {
            if(current.type == "annee")
            {
                $(".current_nav").removeClass('hover');
            }
            $(".current_nav").addClass('disabled');
        } 
        key_enabled = false;
    }
     

}
function getActiveElement()
{
    /*projet ouvert ?*/
    if($('p.projets a.open').size() > 0){
        //alert('projet ouvert');
        var myId = $('p.projets a.open').closest('p').attr('id');
        myId = getIdFromString(myId,'id_');
        if($('div#vignette_' + myId + ':visible').size() > 0)
        {
            //alert('projet OK');
            return $('div#vignette_' + myId + ' a:first');
        }
    }
    /*actu ouverte*/
    else if($('p.child.cv a.open').size() > 0){
        //alert('actu ouverte');
        var myId = $('p.child.cv a.open').closest('p').attr('id');
        myId = getIdFromString(myId,'child_');
        if($('div.txt.annee.actualite.id_' + myId + ':visible').size() > 0)
        {
            //alert('actu OK');
            return $('div.txt.annee.actualite.id_' + myId);
        }
        
    }
    /*LR*/
    else if($('p.child.cb a.open').size() > 0){
        //alert('LR ouvert');
        //a voir
    }
    /*annee ouverte*/
    else if($('p.annee a.open').size() > 0){
        //alert('annee ouverte');
        var Annee = $('p.annee a.open').closest('p').attr('class');
        Annee = getIdFromString(Annee,'annee ');
        if($('div.txt.annee.' + Annee + ':visible').size() > 0)
        {
            //alert('focus annee OK');
            return $('div.txt.annee.' + Annee + ':visible');
        }
    }
    /*child ouvert*/
    else if($('p.child:not(.cv) a.open').size() > 0){
        //alert('child ouvert');
        /*projet*/
        if($('p.projets:visible').size() > 0)
        {
           //alert('on renvoie les projets fils'); 
           return $('p.projets:first a');
        }
    }
    /*root ouvert*/
    else if($('p.root a.open').size() > 0){
        /*on renvoie l'élément enfant*/
        /*child*/
        var myId = $('p.root a.open').closest('p').attr('id');
        if($('p.child.id_' + myId).size() > 0)
        {
           //alert('on renvoie le child du root'); 
           
           return $('p.child.id_' + myId + ':first a');
        }
        /*annee*/
        if($('p.annee:visible').size() > 0)
        {
           //alert('on renvoie l année'); 
           return $('p.annee:first a');
        }
    }
    else
    {
        //alert('on renvoie sur p.root:first a');
        return $('p.root:first a');
    }
    return $('p.root:first a');
    
}
function enableKeyNav(level)
{
    if(key_enabled == false)
    {
        if(level != 2)
         {
             $(".current_nav").addClass('hover');
         }
         else
         {
             $(".current_nav.disabled").removeClass('disabled');
         }
         key_enabled = true;
    }
     

}
            function setPictureVideo(images){
                
                images.each(function(){
                    var img = $(this);
                    var myPosition = img.position();
                    var myWrapperVideo = $("span#imgT").clone(true); 
                    var myVignette = myWrapperVideo.find('img');
                    
                    $("span#imgT").after(myWrapperVideo);
                    
                    myWrapperVideo.attr('id','');
                    myWrapperVideo.addClass('imgV');
                    myWrapperVideo.css('position','absolute');
                    myWrapperVideo.css('cursor','pointer');
                    myWrapperVideo.css('left',myPosition.left);
                    myWrapperVideo.css('top',myPosition.top);
                    myWrapperVideo.css('display','block');
                    myWrapperVideo.css('width',img.width());
                    myWrapperVideo.css('height',img.height());
                    
                     
                    var t_wv = parseInt((img.width() - myVignette.width()) / 2);
                    var t_hv = parseInt((img.height() - myVignette.height()) / 2);
                    myVignette.css('margin-left', t_wv);
                    myVignette.css('margin-top', t_hv);
                    
                    myWrapperVideo.click(function(e){
                        location.href = img.closest('a').attr('href');
                    });
                    
                    
                    myWrapperVideo.show();
                    myVignette.show();
                    
                    
                });
            }
            function unsetPictureVideo(){
                $('span.imgV').remove();
            }



            function hoverizePicture(img)
            {
                
                $('#imgT').hide();
                var myPic = img;
                var myPosition = img.position();
                var myVignette = false;
                if(myPic.is('[src*="_video-"]')){
                    var myVignette = $('#imgT').find('img');
                }
                
                //var myImgVideo = $('img[src*="_video-"]');
                
               $('#imgT').find('img').hide();
                
                
                $('#imgT').css('left',myPosition.left);
                $('#imgT').css('top',myPosition.top);
                $('#imgT').css('display','block');
                $('#imgT').css('width',img.width());
                $('#imgT').css('height',img.height());
                $('#imgT').show();
                
                if(myVignette != false){
                    var t_wv = parseInt((img.width() - myVignette.width()) / 2);
                    var t_hv = parseInt((img.height() - myVignette.height()) / 2);
                    myVignette.css('margin-left', t_wv);
                    myVignette.css('margin-top', t_hv);
                    myVignette.show();
                }
                
                $('#imgT').click(function(e){
                    location.href = myPic.closest('a').attr('href');
                });
            }
            
            function checkItDown(element, level)
            {
                current = new Current();
                if(level == 1)
                {
                    var id = element.closest('p').attr('id');
                    var cpt = element.closest('div').find('p.child.id_' + id).length;
                    var cpt_a = element.closest('p').nextUntil('p.root','p.annee').length;
                    if(cpt > 0)
                    {
                        return true;
                    }
                    else if(cpt_a > 0)
                    {
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }
                if(level == 2)
                {
                    
                    var cpt_p = element.closest('p').nextUntil('p.child','p.projets').length;
                    var cpt_a = element.closest('p').nextUntil('p.child','p.annee').length;
                    var cpt_div = element.closest('p').nextUntil('p.child','div.annee').length;
                    if(cpt_p > 0)
                    {
                        return true;
                    }
                    else if(cpt_a > 0)
                    {
                        return true;
                    }
                    else if(cpt_div > 0)
                    {
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                   
                }
                if(level == 3)
                {
                    
                       /*les années*/
                       if(element.closest('p').is('.annee'))
                       {
                            return true;
                       }  
                       
                       var cpt_v = element.closest('p').nextUntil('p.projets','div.vignette').length;
                       if(cpt_v > 0)
                        {
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                }
                return false;
                
            }
            function Current()
            {
                var type = "";
                var current = new Array;
                var level;
                var myCaller;
                if(Current.caller.name == undefined){
                    /*IE*/
                    
                    var str = Current.caller.toString();
                    
                    if(str.indexOf("function commit(") == 0 )
                    {
                        myCaller = "commit";
                    }
                    else if(str.indexOf("function disableKeyNav(") == 0)
                    {
                        myCaller = "disableKeyNav";
                    }
                    else if(str.indexOf("function Current(") == 0)
                    {
                        myCaller = "Current";
                    }
                    else
                    {
                        
                        myCaller = "other";
                    }
                }
                else
                {
                    myCaller = Current.caller.name;
                }
                
                
                if($('a.current_nav').closest('div.vignette').length > 0)
                {
                    level = 4;
                    /*if($('a.current_nav').closest('div.vignette').firstBefore('p.projets').find('a:not(.open)').length > 0  && myCaller != "commit")
                    {
                        
                         //c'est pas normal, on réinit
                        myElement = $('a.current_nav');
                        myNewElement = $('p.projets a.open').closest('p.projets').firstAfter('div.vignette').find('a');
                        commit(myElement,myNewElement);
                    }*/
                }
                else if($('a.current_nav').closest('p.projets').length > 0)
                {
                    level = 3;
                    /*if($('a.current_nav').closest('p.projets').firstBefore('p.child').find('a:not(.open)').length > 0  && myCaller != "commit")
                    {
                        
                         //c'est pas normal, on réinit
                        myElement = $('a.current_nav');
                        myNewElement = $('p.child a.open').closest('p.child').firstAfter('p.projets').find('a');
                        commit(myElement,myNewElement);
                    }*/
                    /*check enfant*/
                    /*if($('p.projets a.open').length >0  && myCaller != "commit")
                    {
                        
                         //c'est pas normal, on réinit
                        myElement = $('a.current_nav');
                        myNewElement = $('p.projets a.open').closest('p.projets').firstAfter('div.vignette').find('a:first');
                        commit(myElement,myNewElement);
                    }*/
                    
                }
                else if($('.current_nav').is('.actualite'))
                {
                    level = 3;
                    //alert('clavier dans actu');
                    type = "div";
                    
                }
                else if($('.current_nav').is('.annee'))
                {
                    
                    level = 3;
                    type = "annee";
                }
                else if($('a.current_nav').closest('p.child').length > 0)
                {
                   
                    level = 2;
                    /*check parent*/
                    /*if($('a.current_nav').closest('p.child').firstBefore('p.root').find('a:not(.open)').length > 0  && myCaller != "commit")
                    {
                        
                         //c'est pas normal, on réinit
                        myElement = $('a.current_nav');
                        myNewElement = $('p.root a.open').closest('p.root').firstAfter('p.child').find('a');
                        commit(myElement,myNewElement);
                    }*/
                    /*check enfant*/
                    /*if($('p.child a.open').length > 0  && myCaller != "commit")
                    {
                        
                         //c'est pas normal, on réinit
                        myElement = $('a.current_nav');
                        myNewElement = $('p.child a.open').closest('p.child').nextUntil('p.child','p.projets').first().find('a');
                        if(myNewElement.size() == 0)
                        {*/
                              /*myNewElement = $('p.child a.open').closest('p.child').nextUntil('p.child','div.annee').first().find('a'); 
                              if(myNewElement.size() == 0)
                              {
                                  alert('rien');
                                  return false;
                              }*/
                              
                       /* }
                        else
                        {
                            commit(myElement,myNewElement);
                        }
                    }*/
                }
                else if($('a.current_nav').closest('p.annee').length > 0)
                {
                    type = "annee";
                    level = 2;
                }
                else
                {
                    level = 1;
                    /*if($('p.root a.open').length > 0 && myCaller != "commit")
                    {
                        //c'est pas normal, on réinit
                        myElement = $('a.current_nav');
                        myNewElement = $('p.root a.open').closest('p.root').firstAfter('p.child').find('a');
                        commit(myElement,myNewElement);
                    }*/
                }
                
                if($('.current_nav:visible').size() == 0 && myCaller != "commit" && myCaller != "Current")
                {
                    //alert('focus clavier invisible');
                    myElement = $('a.current_nav');
                    myNewElement = getActiveElement();
                    commit(myElement,myNewElement);
                    c = new Current();
                    return c;
                    
                }
                else if($('.current_nav:visible').closest('p').is('.root') && $('p.root a.open').size() > 0 && myCaller != "commit" && myCaller != "Current")
                {
                    //alert('rentré dans l exception');
                    myElement = $('a.current_nav');
                    myNewElement = getActiveElement();
                    commit(myElement,myNewElement);
                    c = new Current();
                    return c;
                }
                
                if(myCaller != "disableKeyNav")
                {
                    enableKeyNav(level);
                }
                
                this.level = level;
                this.element = $('.current_nav');
                this.type = type;
                //alert(this.level + " " + this.type);
                
            }
            function commit(myElement, myNewElement)
            {
                current = new Current();
                
                myElement.removeClass('current_nav');
                myNewElement.addClass('current_nav');
                
                if(current.level != 2 || current.type == "annee")
                {
                    
                    myElement.removeClass('hover');
                }
                if(myNewElement.not('.hover'))
                {
                    
                    myNewElement.addClass('hover');
                }
            }
            function goNext()
            {
                clearTimeout(myTimerKey);
                current = new Current();
                var myElement = current.element;
                if(current.level == 1)
                {
                    
                    myTarget = myElement.closest('p.root').firstAfter('p.root');
                    myNewElement = myTarget.find('a');
                    if(myNewElement.size() > 0)
                    {
                        myNewElement.trigger('keyEnter');
                        commit(myElement, myNewElement);
                    }
                    else
                    {
                        myNewElement = $('p.root').first().find('a');
                        myNewElement.trigger('keyEnter');
                        commit(myElement, myNewElement);
                    }
                    
                    
                }
                if(current.level == 2)
                {
                    
                    if(current.type == "annee")
                    {


                        myTarget = myElement.closest('p.annee').firstAfter('p.annee:visible');
                        myNewElement = myTarget.find('a');
                        if(myNewElement.size() > 0)
                        {
                            /*annee trigger*/
                            /*myTimerKey = setTimeout(function(){
                                myNewElement.trigger('click');
                            },1000);*/
                            commit(myElement, myNewElement);
                        }
                        else
                        {
                            //the first
                            myNewElement = myElement.closest('p.annee').prevUntil('p.root','p.annee').last().find('a');
                            /*annee trigger*/
                            /*myTimerKey = setTimeout(function(){
                                myNewElement.trigger('click');
                            },1000);*/
                            commit(myElement, myNewElement);
                        }


                    }
                    else
                    {
                        myTarget = myElement.closest('p.child').firstAfter('p.child:visible');
                        myNewElement = myTarget.find('a');
                        if(myNewElement.size() > 0)
                        {
                            /*actualite trigger*/
                            if(myElement.closest('p').is('.cv'))
                            {
                                /*myTimerKey = setTimeout(function(){
                                    myNewElement.trigger('click');
                                },1000);*/
                                
                            }
                            commit(myElement, myNewElement);
                        }
                        else
                        {
                            //the first
                             myNewElement = myElement.closest('p.child').prevUntil('p.root','p.child').last().find('a');
                             /*actualite trigger*/
                            if(myElement.closest('p').is('.cv'))
                            {
                                /*myTimerKey = setTimeout(function(){
                                    myNewElement.trigger('click');
                                },1000);*/
                                
                            }
                             commit(myElement, myNewElement);
                        }
                    }
                    
                    
                    
                    
                }
                
                if(current.level == 3)
                {
                   myTarget = myElement.closest('p.projets').firstAfter('p.projets:visible');
                   myNewElement = myTarget.find('a');
                   if(myNewElement.size() > 0)
                    {
                        commit(myElement, myNewElement);
                    }   
                }
                if(current.level == 4)
                {
                    
                    
                    myTarget = myElement.closest('td').firstAfter('td').find('a');
                    myNewElement = myTarget;
                    if(myNewElement.size() == 0)
                    {
                        //on tente le prochain tr
                        nexttr = myElement.closest('tr').firstAfter('tr:visible');
                        if(nexttr.size() > 0)
                        {
                            myNewElement = nexttr.find('td:first a');
                        }
                        else
                        {
                            //the first pour boucler
                            myNewElement = myElement.closest('table').find('tr:first td:first a');
                        }
                    }
                    if(myNewElement.size() > 0)
                        {
                            img = myNewElement.find('img');
                            img.trigger("keyEnter");
                            commit(myElement, myNewElement);
                        }
                    
                    
                }
                
                
            }
            function goPrev()
            {
                clearTimeout(myTimerKey);
                current = new Current();
                var myElement = current.element;
                if(current.level == 1)
                {
                    
                    myTarget = myElement.closest('p.root').firstBefore('p.root');
                    myNewElement = myTarget.find('a');
                    if(myNewElement.size() > 0)
                    {
                        myNewElement.trigger('keyEnter');
                        commit(myElement, myNewElement);
                    }
                    else
                    {
                        
                            myNewElement = $('p.root').last().find('a');
                            myNewElement.trigger('keyEnter');
                            commit(myElement, myNewElement);
                    }
                    
                    
                }
                if(current.level == 2)
                {
                    if(current.type == "annee")
                    {


                        myTarget = myElement.closest('p.annee').firstBefore('p.annee:visible');
                        myNewElement = myTarget.find('a');
                        if(myNewElement.size() > 0)
                        {
                            /*annee trigger*/
                            
                            /*myTimerKey = setTimeout(function(){
                                myNewElement.trigger('click');
                            },1000);*/
                                
                            
                            commit(myElement, myNewElement);
                        }
                        else
                        {
                             //the last
                              
                              myNewElement = myElement.closest('p.annee').nextUntil('p.root','p.annee').last().find('a');
                              /*annee trigger*/
                               /* myTimerKey = setTimeout(function(){
                                    myNewElement.trigger('click');
                                },1000);*/
                                
                              commit(myElement, myNewElement);
                        }


                    }
                    else
                    {
                    
                        myTarget = myElement.closest('p.child').firstBefore('p.child:visible');
                        myNewElement = myTarget.find('a');
                        if(myNewElement.size() > 0)
                        {
                            /*actualite trigger*/
                            if(myElement.closest('p').is('.cv'))
                            {
                                /*myTimerKey = setTimeout(function(){
                                    myNewElement.trigger('click');
                                },1000);*/
                                
                            }
                            commit(myElement, myNewElement);
                        }
                        else
                        {
                              //the last
                               myNewElement = myElement.closest('p.child').nextUntil('p.root','p.child').last().find('a');
                               /*actualite trigger*/
                                if(myElement.closest('p').is('.cv'))
                                {
                                    /*myTimerKey = setTimeout(function(){
                                        myNewElement.trigger('click');
                                    },1000);*/

                                }
                              commit(myElement, myNewElement);
                        }
                    }
                    
                    
                }
                if(current.level == 3)
                {
                     
                    
                        myTarget = myElement.closest('p.projets').firstBefore('p.projets:visible');
                        myNewElement = myTarget.find('a');
                        if(myNewElement.size() > 0)
                        {
                            commit(myElement, myNewElement);
                        }
                    
                    
                    
                }
                if(current.level == 4)
                {
                    
                    
                    myTarget = myElement.closest('td').firstBefore('td').find('a');
                    myNewElement = myTarget;
                    if(myNewElement.size() == 0)
                    {
                        //on tente le précédent tr
                        prectr = myElement.closest('tr').firstBefore('tr:visible');
                        if(prectr.size() > 0)
                        {
                            myNewElement = prectr.find('td:last a');
                        }
                        else
                        {
                            return false;
                        }
                    }
                    if(myNewElement.size() > 0)
                        {
                            img = myNewElement.find('img');
                            img.trigger("keyEnter");    
                            commit(myElement, myNewElement);
                        }
                    
                    
                }
                
            }
            function getDown()
            {
                current = new Current();
                myElement = current.element;
                if(current.level == 1)
                {
                    
                    if(checkItDown(myElement, current.level))
                    {
                        //on ouvre
                        myElement.trigger('click');
                        myNewElement = myElement.closest('p.root').firstAfter('p.child').find('a');
                        var cpt_a = myElement.closest('p').nextUntil('p.child','p.annee').length;
                        if(cpt_a > 0)
                        {
                            
                            myNewElement = myElement.closest('p.root').firstAfter('p.annee').find('a');
                            /*annee trigger*/
                            //myNewElement.trigger('click');
                        }
                        
                        commit(myElement, myNewElement);
                        /*actualite trigger*/
                        if(myNewElement.closest('p').is('.cv'))
                        {
                            //myNewElement.trigger('click');
                            
                            //disableKeyNav();
                        }
                    }
                    
                }
                if(current.level == 2)
                {
                    
                    if(checkItDown(myElement, current.level))
                    {
                        //on ouvre
                        myElement.trigger('click');                        
                        myNewElement = myElement.closest('p.child').firstAfter('p.projets').find('a');
                        var cpt_a = myElement.closest('p').nextUntil('p.child','p.annee').length;
                        var cpt_div = myElement.closest('p').nextUntil('p.child','div.annee').length;
                        if(cpt_a > 0)
                        {
                            var cssclass = getIdFromString(myElement.closest('p').attr('class'), "annee ");
                            myNewElement = myElement.closest('p').firstAfter('div.annee.' + cssclass);
                        }
                        else if(cpt_div > 0)
                        {
                            myNewElement = myElement.closest('p.child').firstAfter('div.annee');
                        }
                        commit(myElement, myNewElement);
                    }
                    
                }
                if(current.level == 3)
                {
                   
                    if(checkItDown(myElement, current.level))
                    {
                        //on ouvre
                        myElement.trigger('click');
                        if(myElement.closest('p.projets').length > 0)
                        {
                            myNewElement = myElement.closest('p.projets').firstAfter('div.vignette').find('a:first');
                            img = myNewElement.find('img');
                            img.trigger("keyEnter");
                        }
                        else
                        {
                            /*var annee_c = $(this).closest('p').attr('class');
                            annee_c = getIdFromString(annee_c, 'annee ');*/
                            myNewElement = myElement;
                        }
                        
                        
                        commit(myElement, myNewElement);
                    }
                    
                }
                if(current.level == 4)
                {
                        //on ouvre
                        location.href = myElement.attr('href');
                        
                }
            }
            function getUp()
            {
                current = new Current();
                myElement = current.element;
                if(current.level == 2)
                {
                    if(current.type == "annee")
                    {
                        myNewElement = myElement.closest('p.annee').firstBefore('p.root:visible').find('a');

                        if(myNewElement.is('.open'))
                        {
                            myNewElement.trigger('click');
                        }
                    }
                    else
                    {
                        myNewElement = myElement.closest('p.child').firstBefore('p.root:visible').find('a');

                        if(myNewElement.is('.open'))
                        {
                            myNewElement.trigger('click');
                        }

                    }
                    commit(myElement, myNewElement);
                    
                }
                if(current.level == 3)
                {
                    
                        if(current.type == "div")
                        {
                            
                            myNewElement = myElement.closest('div').firstBefore('p.child:visible').find('a');
                            if(myNewElement.is('.open'))
                            {
                                myNewElement.trigger('click');
                            }
                        }
                        else if(current.type == "annee")
                        {
                            /*hack pour choper la cssclass annee*/
                            myElement.removeClass('current_nav');
                            myElement.removeClass('hover');
                            var cssclass = getIdFromString(myElement.attr('class'), "txt annee ");
                            myElement.addClass('current_nav');
                            myElement.addClass('hover');
                            
                            myNewElement = myElement.firstBefore('p.annee.' + cssclass).find('a');
                            if(myNewElement.is('.open'))
                            {
                                myNewElement.trigger('click');
                            }
                        }
                        else
                        {
                            myNewElement = myElement.closest('p.projets').firstBefore('p.child:visible').find('a');
                            if(myNewElement.is('.open'))
                            {
                                myNewElement.trigger('click');
                            }
                        }
                        
                    
                    
                    
                    
                    commit(myElement, myNewElement);
                }
                if(current.level == 4)
                {
                    
                    myNewElement = myElement.closest('div.vignette').firstBefore('p.projets:visible').find('a');
                    
                    if(myNewElement.is('.open'))
                    {
                        $('#imgT').trigger('keyLeave');
                        myNewElement.trigger('click');
                    }
                    
                    
                    commit(myElement, myNewElement);
                }
            }
            
            
/*position*/
function showCategorie(id){
    if($('#' + id).size() > 0)
    {
            $('#' + id).find('a').trigger('click');
            myNewElement = $('#' + id).firstAfter('p.child').find('a:first');
            commit($('a.current_nav'),myNewElement);
            return true;
    }
    if($('#child_' + id).size() > 0)
    {
            $('#child_' + id).firstBefore('p.root').find('a').trigger('click');
            $('#child_' + id).find('a').trigger('click');
            myNewElement = $('#child_' + id).firstAfter('p.projets').find('a:first');
            commit($('a.current_nav'),myNewElement);
            return true;
    }
    return false;
    
}
function showProjet(id){
    if($('#id_' + id).size() > 0)
    {
            $('#id_' + id).find('a').trigger('click');
            myNewElement = $('#id_' + id).firstAfter('div.vignette').find('a:first');
            /*img = myNewElement.find('img');
            img.trigger("keyEnter");*/
            commit($('a.current_nav'),myNewElement);
            
            return true;
    }
    return false;
}
function showAnnee(categorie, annee)
{
    var id = categorie;
    if($('#id_' + id).size() > 0)
    {
            myNewElement = $('#id_' + id).firstAfter('p.annee.a_' + annee).find('a:first');
            if(myNewElement.size() > 0)
            {
                myNewElement.trigger('click');
                commit($('a.current_nav'),myNewElement);
                return true;
            }
            
    }
    return false;
}

/*key projet function*/
function reInitProjet(context_src)
{
    if(context_src == "menu")
    {
        //on check inspiration
        if($('a.menu.i.on').size() > 0 && $('a.menu.i:visible').size() > 0)
        {
            
             myElement = $('a.current_nav');
             myNewElement = $('a.menu.i.on');
             commitProjet(myElement,myNewElement);
        }
    }
    if(context_src == "i")
    {
       
        //on check menu
        if($('a.menu:not(.i).on').size() > 0 && $('p.projets a.open').size() > 0)
        {
             myElement = $('a.menu.i.on');
             myNewElement = $('a.menu.on:visible');
             commitProjet(myElement,myNewElement);
        }
    }
    return false;
}
function CurrentProjet()
{
    var currentprojet = new Array;
    var context;
    element = $('a.current_nav');
    if($('a.current_nav').is('.menu:not(.i)'))
    {
       
        context = "menu";
        if($('p.projets').find('a:not(.open)').size() > 0)
        {
            reInitProjet(context);
        }
    }
    if($('a.current_nav').is('.menu.i'))
    {
        
        context = "i";
        
        //si inspiration est masqué, y a un souci
        
        if($('a.menu.i:visible').size() == 0)
        {
            
            reInitProjet(context);
            return false;
        }
    }
    if($('p.pdf.current_nav').size() > 0)
    {
        context = 'pdf';
        element = $('p.pdf.current_nav');
    }
    if($('a.current_nav').closest('p.child').size() > 0)
    {
        context = "retour";
        

    }
    if($('a.current_nav').closest('p.root').size() > 0)
    {
        context = "root";
        
    }
    this.context = context;      
    this.element = element;
}
function closeProject()
{
    $('p.projets a.open').removeClass('open');   
}
function openProject()
{
    $('p.projets a').addClass('open');
}
function commitProjet(myElement, myNewElement)
{
    
    
    myElement.removeClass('current_nav');
    myElement.removeClass('hover');
    myNewElement.addClass('current_nav');

    
}
function goNextProjet()
{
    current = new CurrentProjet();
    myElement = current.element;
    if(current.context == "menu")
    {
        myNewElement = myElement.firstAfter('a.menu:not(.i)');
        if(myNewElement.size() > 0)
        {
               myNewElement.trigger('click');
               commitProjet(myElement,myNewElement);
        }
        else
        {
            /*if($('a#inspiration').size() > 0)
            {
                $('a#inspiration').trigger('click');
                myNewElement = myElement.firstAfter('a.menu.i:first');
                commitProjet(myElement,myNewElement);
            }*/
            myNewElement = $('a.menu:not(.i):first');
            myNewElement.trigger('click');
            commitProjet(myElement,myNewElement);
        }
        
    }
    if(current.context == "i")
    {
        myNewElement = myElement.firstAfter('a.menu.i');
        if(myNewElement.size() > 0)
        {
               myNewElement.trigger('click');
               commitProjet(myElement,myNewElement);
        } 
        else
        {
            myNewElement = $('a.menu:not.i:first');
            myNewElement.trigger('click');
            commitProjet(myElement,myNewElement);
        }
    }
    if(current.context == "retour")
    {
         myNewElement = $('a.menu:not(.i):first');
         commitProjet(myElement,myNewElement);
    }
    if(current.context == "pdf")
    {
         myNewElement = $('p.pdf');
         commitProjet(myElement,myNewElement);
    }
    if(current.context == "root")
    {
         myNewElement = $('p.child:first a');
         commitProjet(myElement,myNewElement);
    }
}
function goPrevProjet()
{
    current = new CurrentProjet();
    var myElement = current.element;
    if(current.context == "menu")
    {
        myNewElement = myElement.firstBefore('a.menu:not(.i)');
        if(myNewElement.size() > 0)
        {
               myNewElement.trigger('click');
               commitProjet(myElement,myNewElement);
        }
        else
        {
            /*if($('p.pdf').size() > 0)
            {
                myNewElement = $('p.pdf');
            }
            else
            {*/
               // myNewElement = $('p.child:first').find('a');
            /*}*/
            myNewElement = $('a.menu:not(.i):last');
            myNewElement.trigger('click');
            
            
            commitProjet(myElement,myNewElement);
        }
    }
    if(current.context == "i")
    {
        myNewElement = myElement.firstBefore('a.menu.i');
        if(myNewElement.size() > 0)
        {
               myNewElement.trigger('click');
               commitProjet(myElement,myNewElement);
        }
        else
        {
            /*$('p.projets').find('a').trigger('click');
            myNewElement = $('a.menu:not(.i):first');
            commitProjet(myElement,myNewElement);*/
            myNewElement = $('a.menu:not.i:last');
            myNewElement.trigger('click');
            commitProjet(myElement,myNewElement);
        }
    }
    if(current.context == "pdf")
    {
         myNewElement = $('p.child:first a');
         commitProjet(myElement,myNewElement);
    }
    if(current.context == "retour")
    {
         myNewElement = $('p.root:first a');
         commitProjet(myElement,myNewElement);
    }
    
}
function getUpProjet()
{
    current = new CurrentProjet();
    var myElement = current.element;
    if(current.context == "pdf")
    {
        myNewElement = $('p.pdf');
        commitProjet(myElement,myNewElement);
    }
    if(current.context == "i")
    {
        $('p.projets').find('a').trigger('click');
        myNewElement = $('a.menu:not(.i):first');
        commitProjet(myElement,myNewElement);
    }
    if(current.context == "menu")
    {
         myNewElement = $('p.child:first a');
         closeProject();
         commitProjet(myElement,myNewElement);
    }
    if(current.context == "retour")
    {
         location.href = myElement.attr('href');
    }
    if(current.context == "root")
    {
         location.href = myElement.attr('href');
    }
}
function getDownProjet()
{
    current = new CurrentProjet();
    var myElement = current.element;
    if(current.context == "menu")
    {
        if($('a#inspiration').size() > 0)
        {
            $('a#inspiration').trigger('click');
            myNewElement = myElement.firstAfter('a.menu.i:first');
            commitProjet(myElement,myNewElement);
        }
    }
    if(current.context == "i")
    {
        
    }
    if(current.context == "pdf")
    {
         myNewElement = $('p.child:first a');
         commitProjet(myElement,myNewElement);
    }
    if(current.context == "retour")
    {
        $('p.projets').find('a').trigger('click');
        myNewElement = $('a.menu:not(.i):first');
        commitProjet(myElement,myNewElement);
    }
    if(current.context == "root")
    {
        $('p.projets').find('a').trigger('click');
        myNewElement = $('a.menu:not(.i):first');
        commitProjet(myElement,myNewElement);
    }
}
function getVisitedLinks(myA)
{
    var data = new Array();
    myA.closest('p').nextUntil('p.child','p.projets').each(function(i){
        myVisitedLink = $(this).find('a:visited');
        if(myVisitedLink.size() > 0)
        {
            myId = $(this).attr('id');
            myId = getIdFromString(myId,'id_');
            data[i] = myId;
        }
    });
    myString = data.join(',');
    return myString;
    
}
$(document).ready(function(){
    $('a#contact').click(function(e){
        e.preventDefault;
        var me = $(this);
        if($(this).is('.open'))
        {
            $('div#content_categorie').show();
            $('div.img_w').show();
            $('p.menu').show();
            $('div.atelier *').hide();
            $('div.atelier').hide();
            
            me.removeClass('open');
        }
        else
        {
            closeAll(
                function(){
                    me.addClass('open');
                    $('div#content_categorie').hide();
                    $('div.img_w').hide();
                    $('p.menu').hide();
                    $('div.atelier').show();
                    $('div.atelier *').show();
                }
            );
            
        }
        
    })
})
