/// Gestion du menu pour la galerie flash
/// Auteur: Ilic Goran
/// Date: Lundi 17 novembre 2008
var galNav = {
    ///tableau avec les categs par niveau
    obj:null,
    ///niveau courant
    currentLevel:1,
    ///int de tableau de categs
    init:function(obj){
        this.obj = obj;
    },
    ///mis à jour de la navig
    ///elem: elem select
    ///currentLevel: niveau courant
    update:function(elem, currentLevel){
        
        ///on récupère la selection courant
        var itm = this.getSelected(elem);
        
        ///on check si la sélection est de type back
        ///A savoir si on souhait monter d'un niveau
        if(this.isBack(itm)){
            ///si oui on récupère les infos du parent
            var back = this.getBack(itm);
            
            itm = back[0];
            currentLevel = back[1];
        }
        /// on cache tout les éléments plus grand que ceux du niveau courant
        this.hideUpperLevel(currentLevel);
        
        ///itm est bien définit
        if(itm){
            /// on trouve son select
            var elem = document.getElementById('navig_id_'+itm);
            ///si le select est trouvé
            if(elem){
                ///on l'affiche
                elem.style.display="block";
                ///on insert les informations relative à l'option back, pour poivoir revenir vers le parent
                elem.options[0].value= itm+"-"+currentLevel;
            }
            ///On mette à jours le flash
            this.updateSwf(itm);
        } 
        
        
    },
    ///récupération de la selection courant d'un élément
    getSelected:function(elem){
        return (elem.options[elem.selectedIndex].value);
    },
   
    ///dissimulation des niveaux supérieurs au niveau passé en paramètre
    hideUpperLevel:function(level){
       /// on parcoure le tableau qui contient 2 niveaux
       /// Premier niveau contient les niveaux des categs
       /// Deuxième niveau contient les ids des categs
       
       ///donc pour touts les niveaux à partir du paramètre level
       for( var i = level; i < this.obj.length; i++){
            /// on regarde toutes les categ
            for( var i2 = 0; i2 < this.obj[i].length; i2++){
                var id =this.obj[i][i2];
                
                /// on les caches
                document.getElementById('navig_id_'+id).style.display="none";
                /// et on reset la liste
                document.getElementById('navig_id_'+id).selectedIndex=0;
            }
        }
    },
    ///l'option est elle de type back ?
    isBack:function(str){
        var reg1=new RegExp("[0-9]*-[0-9]*");
        if(str.match(reg1)) return true;
        
        return false;
    },
    ///Récupération des infos pour retrouver le parent
    getBack:function(str){
        var part = str.split("-");
        if(str.length < 3){
            part[0] = 0;
            part[1] = 1;
        }
        
        
        return part;
    },
    ///Mise à jour du flash avec swfObject 2.0
    updateSwf:function(idCateg){
        var flashvars = {
            preloaderColor: "0xC2002C",
            xmlDataPath: idCateg + ".xml"
        };
        var params = {
            wmode: "transparent"
        };
        var attributes = {};

        swfobject.embedSWF("viewer.swf", "flashcontent", "677", "600", "8","", flashvars, params, attributes);
        
        
    }
}