var isIE6=false;
if(navigator.userAgent.indexOf("MSIE 6") != -1) isIE6 = true; 

// note: gros mélange de jquery et de javascript standart...


//=======================================
// FONCTION : 	addLoadListener
// DESC		:	ajoute un événement au onload
// TODO     :   remplacer par le onready de jquery
//=======================================
function addLoadListener(func)
{ 
    if (window.addEventListener) { 
	//window.addEventListener("load", func, false);  // BUG ?
    } 
    else if (document.addEventListener) { 
	document.addEventListener("load", func, false); 
    } 
    else if (window.attachEvent) { 
	//window.attachEvent("onload", func);  // BUG ?
    } 
}


//=============================================
// Gère la modification du CSS pour la couleur
// des EM (page produit)
//
// Include script that maps Internet Explorer 
// methods to the DOM equivalents
//=============================================
var stylesheet = document.styleSheets[0];
// Check to see if we are operating in Internet Explorer
if (stylesheet.rules)
{
	// Internet Explorer detected
	// Map the standard DOM attributes and methods to the internet explorer
	// equivalents
	stylesheet.cssRules = stylesheet.rules;
	stylesheet.insertRule = function(ruleText, ruleIndex)
	{ 
		this.addRule(ruleText,ruleIndex);
	};
	stylesheet.deleteRule = function(ruleIndex) { this.removeRule(ruleIndex); };
}


//=======================================
// CLASSE	: 	pageCollecIntro
// DESC	    :	Gère l'affichage de la page d'intro des collections
//=======================================
function pageCollecIntro ()
{
    this.hlParagraphe = function(p_id, p_etat)
    {
	if(p_etat)	document.getElementById(p_id).style.background='';
	else		document.getElementById(p_id).style.background='';
    }    
    
}

//=======================================
// CLASSE	: 	pageCollec
// DESC	:	Gère l'affichage d'une page de collection
// PARAM	: 	p_label est l'identifiant de la collection dans la bdd
//			et le nom du sous-dossier dans images/collections
//=======================================
function pageCollec (p_label)
{
    this.currentCollec = p_label;       
    this.currentGamme = null;
    this.currentModele = null;
    this.vignSelected = null;

    this.nbModelesParPage = new Array();
    
    //========================================================
    // Définit le nombre de modèles pour chaque page
    //========================================================
    this.setNbModeles = function(p_idGamme, p_nbModele)
    {
        this.nbModelesParPage[p_idGamme] = p_nbModele;
    }    
    
    //==============================
    // Affichage d'une gamme
    //==============================
    this.showGamme = function(p_idGamme /*, p_nbModele*/, p_idModele) 
    {
        p_idModele = (p_idModele) ? p_idModele : 0;
        this.currentGamme = p_idGamme;
        this.currentModele = p_idModele;	
        
        // Charge le descriptif de la gamme
        document.getElementById('collecgammedesc').innerHTML = document.getElementById('collecgammedesc_'+p_idGamme).innerHTML;
   

        // Charge le titre flash de la page
        if  ('function' == typeof document.getElementById('collecflashtitre').echo)
        {
            document.getElementById('collecflashtitre').echo(document.getElementById('collecgammetitre_'+p_idGamme).innerHTML); 
        }
        // Charge la bulle de titre
        if (isIE6==true) {
            document.getElementById("collecgammebulle").style.background="none";
            document.getElementById("collecgammebulle").style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src="+'images/collections/'+this.currentCollec+'/'+p_idGamme+'/'+lg+'_gammebulle.png'+")";    
        }
        else
        document.getElementById('collecgammebulle').style.background = 'transparent url(images/collections/'+this.currentCollec+'/'+p_idGamme+'/'+lg+'_gammebulle.png) left top no-repeat';

        
        
        // Charge les vignettes
        // On affiche le nombre de visuels de la gamme courante
        // et, si besoin, on masque les vignettes restantes (5 vign max)
        for (i=0;i<5;i++)
        {
            vign=document.getElementById('collecvign'+i);

            if (i<this.nbModelesParPage[p_idGamme]) {
            vign.style.backgroundImage =  'url(images/collections/'+this.currentCollec+'/'+p_idGamme+'/'+'smallvisuelcollec'+i+'.jpg)';
            vign.style.display = '';	
            }
            else
            vign.style.display = 'none';	
        }
        
        // Aligne le tableau de vignettes et le descriptif au centre
        switch(this.nbModelesParPage[p_idGamme])
        {
            case 1:
            document.getElementById('collecpreview').style.marginLeft='170px';
            document.getElementById('collecmodeledesc').style.marginLeft='60px';
            break;
            
            case 2:
            document.getElementById('collecpreview').style.marginLeft='120px';
            document.getElementById('collecmodeledesc').style.marginLeft='80px';
            break;
            
            case 3:
            document.getElementById('collecpreview').style.marginLeft='70px';
            document.getElementById('collecmodeledesc').style.marginLeft='50px';
            break;
                    
            case 4:
            document.getElementById('collecpreview').style.marginLeft='35px';
            document.getElementById('collecmodeledesc').style.marginLeft='35px';
            break;                    
            
            default:
            document.getElementById('collecpreview').style.marginLeft='0px';
            document.getElementById('collecmodeledesc').style.marginLeft='20px';
            break;
        }
        
        
        // Insère les contenu cachés des descriptifs 
        // des modèles de la gamme courante
        document.getElementById('zonedescmodele').innerHTML = document.getElementById('collecmodeledesc_'+p_idGamme).innerHTML;
        
        
        // Affiche le modèle
        this.showModele (p_idModele);
    }
    
    //==============================
    // Affichage d'un modèle
    //==============================
    this.showModele = function(p_idModele) 
    {             
        // Charge le visuel principal
        visuel = document.getElementById('collecvisuel');
        visuel.src = 'images/collections/'+this.currentCollec+'/'+this.currentGamme+'/visuelcollec'+p_idModele+'.jpg';
        visuel.style.visibility='visible';
        
        // Affiche le descriptif du modèle
        document.getElementById('collecmodeledesc').innerHTML = document.getElementById('collecmodeledesc_'+this.currentGamme+'_'+p_idModele).innerHTML;

        // Affiche l'astuce du modèle si l'id existe
        if(document.getElementById('collecgammeastucetitre_'+this.currentGamme+'_'+p_idModele))
        {
            document.getElementById('collecastuce').style.display='block';
            document.getElementById('collecgammeastucetitre').innerHTML = document.getElementById('collecgammeastucetitre_'+this.currentGamme+'_'+p_idModele).innerHTML;
            document.getElementById('collecgammeastuce').innerHTML = document.getElementById('collecgammeastuce_'+this.currentGamme+'_'+p_idModele).innerHTML;
            
            if(navigator.appName == 'Microsoft Internet Explorer') 
            {
                var version=0;
                if (navigator.appVersion.indexOf("MSIE")!=-1)
                {
                    temp=navigator.appVersion.split("MSIE");
                    version=parseFloat(temp[1]);
                }
                if(version != 8 )
                {
                    DD_roundies.addRule('#collecastuce', '6px',false);//le false fait que sa sexecute que pour IE
                }
            }
        }
        else
        {
            document.getElementById('collecastuce').style.display='none';     
        }
        
        // Met la vignette du modèle à l'état sélectionné
        if (this.vignSelected != null) this.vignSelected.style.backgroundPosition='0px 0px';
        this.vignSelected = document.getElementById('visuelcollec'+p_idModele);
        this.vignSelected.style.backgroundPosition='-178px 0px';
    }

    //==============================
    // onMouseOver sur une vignette
    //==============================
    this.vignMouseOver = function(obj) {
        if(this.vignSelected != obj)
            obj.style.backgroundPosition='-89px 0px';
    }

    //==============================
    // onMouseOut sur une vignette
    //==============================
    this.vignMouseOut = function(obj) {
        if(this.vignSelected != obj)
            obj.style.backgroundPosition='0px 0px';
    }
    
    //==============================
    // onClick sur une vignette
    //==============================
    this.vignMouseClick  = function(p_idModele) {
        this.showModele (p_idModele);	
    }
    
}


//=======================================
// CLASSE	: pageProduits
// DESC	    : Gère l'affichage d'une page de produit
// PARAM	: 	p_label est l'identifiant de la collection dans la bdd
//			et le nom du sous-dossier dans images/collections
//=======================================
function pageProduit (p_label)
{
    this.currentProd = p_label;       
    this.currentGamme = null;
    this.nbFichesParProd = new Array();
    this.currentFiche = 0;
    this.previousActif = null;
    
    this.scrollpageprod="right";
    this.changeCouleurActif = true;
    
    //========================================================
    // Alterne entre la page d'intro et la page produit
    //========================================================    
    this.scrollPage = function()
    {
        if(this.scrollpageprod=="right")
        {             
            $("#prodretour").animate({"opacity": "1"}, "slow");
            this.scrollpageprod="left";
            $(".scrollpage").animate({"marginLeft": "-844px"}, "slow");  
        }
        else
        {
            $("#prodretour").animate({"opacity": "0"}, "slow");
            this.scrollpageprod="right";
            $(".scrollpage").animate({"marginLeft": "0px"}, "slow");  
        }
           
    }        
   
        
    //========================================================
    // Change le thème de couleur
    //========================================================    
    this.changeCouleur = function(p_color)
    {
        if(this.changeCouleurActif == false) return;
    
        document.getElementById('barreliaison').style.background=p_color;
        document.getElementById('prodgammetitreh1').style.background=p_color;
        
        // TODO: pas terrible... faut garder l'ordre dans le CSS
        stylesheet.cssRules[0].style.color=p_color; // ligne 0 : .proditem em
        stylesheet.cssRules[1].style.color=p_color; // ligne 1 : .activecol
        
    }
    
    //========================================================
    // Définit le nombre de fiches pour chaque idGamme
    //========================================================
    this.setNbFiches = function(p_idGamme, p_nbFiches)
    {
        this.nbFichesParProd[p_idGamme] = p_nbFiches;
    }
    
    //========================================================
    // Affichage d'une gamme
    // Note: on utilise un onclick sur les <a> au lieu du HREF
    // sinon le this retourné n'est pas le bon
    //========================================================
    this.showGamme = function(p_obj, p_nomprod)     
    {    
        this.changeCouleurActif = false;
    
    
        // Workaround : on crée l'objet ici uniquement au premier affichage au lieu
        // de le créer dans la page (bug de la fonction echo inopérante au premier
        // appel (pas encore exportée par flash ?)
        //
        if  ('function' != typeof document.getElementById('prodflashtitre').echo)
        {
            if (swfobject.hasFlashPlayerVersion("9.0"))
            swfobject.embedSWF("titre.swf", "prodflashtitre", "445", "33", "9.0.0", "expressInstall.swf", {titre:p_nomprod}, {wmode:"transparent"}); 
        }
        
        this.scrollPage();
                 
        idGamme = p_obj.id;
        

        // Insertion des onglets de nav
        document.getElementById('navproditemscol').innerHTML= document.getElementById('gammenav_'+idGamme).innerHTML;
        document.getElementById(idGamme+'_0').style.fontWeight='bold';
        this.previousActif=0
        
        // Charge le descriptif de la gamme et 
        // les visuels de titre de la gamme
        document.getElementById('prodgammedesc').innerHTML = document.getElementById('prodgammedesc_'+idGamme).innerHTML;

        
        if (isIE6==true) {
            document.getElementById("prodgammebulle").style.background="none";
            document.getElementById("prodgammebulle").style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src="+'images/produits/'+this.currentProd+'/'+lg+'_bulle'+idGamme+'.png'+")";    
        }
        else
        document.getElementById('prodgammebulle').style.backgroundImage = 'url(images/produits/'+this.currentProd+'/'+lg+'_bulle'+idGamme+'.png)';
      
        // Charge le titre flash de la page
        if  ('function' == typeof document.getElementById('prodflashtitre').echo)
            document.getElementById('prodflashtitre').echo(p_nomprod); 
           
                
        // Charge le visuel principal
        visuel = document.getElementById('prodvisuel');
        visuel.src = 'images/produits/'+this.currentProd+'/visuel'+idGamme+'.jpg';
        visuel.style.visibility='visible';
        
        // Enlève l'état inactif de la description
        document.getElementById('prodgammedesc').className='';
        
        // Replace le bloc de fiche à 0
        // et set l'état des boutons de fiche
        // todo: voir pour pas utiliser animate
        this.currentFiche = 0;
        $(".fiche"+idGamme).animate({"marginLeft": "0px"}, 0);   
        this.etatBoutonsFiches('fichebtnprecedent', false);                //TODO: à mettre dans setBoutonsFiches
        if(this.nbFichesParProd[idGamme]>1) etatbtnsuiv = true; else etatbtnsuiv = false; 
        this.etatBoutonsFiches('fichebtnsuivant', etatbtnsuiv);  
                        
        this.currentGamme = idGamme;
  
    }
     
    //=================================
    // onMouseOver sur un item de nav
    //=================================
    this.disableInfos = function(p_obj)
    {
        if(p_obj.id == this.currentGamme) return; 
        document.getElementById('prodgammedesc').className='prodinactif';
    }
        
    //=================================
    // onMouseOut sur un item de nav
    //=================================
    this.enableInfos = function(p_obj)
    {
        if(p_obj.id == this.currentGamme) return; 
        document.getElementById('prodgammedesc').className='';
    }   

    //=================================
    // Passe à la fiche suivante
    //=================================
    this.gotoFiche = function(p_id)
    {
        // Etats actifs/inactifs des liens de nav
        document.getElementById(this.currentGamme+'_'+this.previousActif).style.fontWeight='';
        this.previousActif = p_id;
        document.getElementById(this.currentGamme+'_'+p_id).style.fontWeight='bold';

        // Scroll vers la fiche spécifiée
        $(".fiche"+this.currentGamme).animate({"marginLeft": ((360*p_id)*-1)+"px"}, "normal");   
        this.currentFiche=p_id;

    }
    
    //=================================
    // Passe à la fiche suivante
    //=================================
    this.ficheSuivante = function()
    {
        if(this.currentFiche == this.nbFichesParProd[this.currentGamme]-1) return;
        
        this.currentFiche++;   
        this.setBoutonsFiches();        
        $(".fiche"+this.currentGamme).animate({"marginLeft": "-=360px"}, "normal");   
    }
    
    //=================================
    // Passe à la fiche précédente
    //=================================
    this.fichePrecedente = function()
    {        
        if(this.currentFiche==0) return;

        this.currentFiche--;
        this.setBoutonsFiches();
        $(".fiche"+this.currentGamme).animate({"marginLeft": "+=360px"}, "normal");   
    }
    
    //===================================
    // Gère l'état des boutons de fiche
    //===================================
    this.setBoutonsFiches = function()
    {
        // Bouton précédent
        //
        if(this.currentFiche==0) this.etatBoutonsFiches('fichebtnprecedent', false);
        else this.etatBoutonsFiches('fichebtnprecedent', true);
        
        // Bouton suivant
        //        
        if(this.currentFiche+1 == this.nbFichesParProd[this.currentGamme]) this.etatBoutonsFiches('fichebtnsuivant', false);
        else this.etatBoutonsFiches('fichebtnsuivant', true);
    }
    
    //===================================
    // Gère l'affichage des boutons 
    // de fiche
    //===================================
    this.etatBoutonsFiches = function(p_idbtn, p_actif)
    {              
        if(p_actif) valopacity = "1";
        else valopacity = "0.2";

        $("#"+p_idbtn).animate({"opacity": valopacity}, "fast"); 
    }
        
    
}


//=======================================
// CLASSE	: pageHome
// DESC	    : Gère l'affichage de la home
//=======================================
function pageHome ()
{
    //=================================
    // Zoom l'image de l'intro
    //=================================
    this.showIntroImage = function(p_etat)
    {
        if(p_etat)
            $("#hometexteblocscroll").animate({"marginLeft": "0px"}, "normal");  
        else
            $("#hometexteblocscroll").animate({"marginLeft": "-250px"}, "normal"); 
    }

    //=================================
    // hightlight de la zone
    // Trouvez votre salon
    //=================================
    this.trouvezHl = function(p_etat)
    {
        if (p_etat) {
            document.getElementById('hometrouvez').style.backgroundPosition='left bottom';
            document.getElementById('hometrouvezlien').style.color='#666';
        }
        else {
            document.getElementById('hometrouvez').style.backgroundPosition='left top';
            document.getElementById('hometrouvezlien').style.color='';
        }
    }
    
    //=================================
    // hightlight de la zone
    // Gamme produits
    //=================================
    this.produitsHl = function(p_etat)
    {
        if (p_etat) {
            document.getElementById('homeproduits').style.backgroundPosition='left bottom';
            document.getElementById('homeproduitslien').style.color='#666';
        }
        else {
            document.getElementById('homeproduits').style.backgroundPosition='left top';
            document.getElementById('homeproduitslien').style.color='';
        }
    }        

}

//====================================================================================================
//
// GESTION DU MENU
//
//====================================================================================================


// On anime le bloc de
// sélection (si il est différent de la position
// courante) puis on fait la redirection   
//        
function affichepage(p_id, p_url)
{
    p_left = surbpos[p_id][0];
    p_width = surbpos[p_id][1];            

    if(menuactif==p_id) window.location=p_url;
    else
    $("#menusurb").animate({"left": p_left+"px", "width": p_width+"px"}, "slow",  0, function() {window.location=p_url; }   );              
}

// Gère l'affichage des sous-menu
// On masque tout puis on affiche le 
// sous menu courant
//
function showSousMenu(p_id, p_restore)
{
    var tabSousMenu = new Array('sousmenuconcepthl','sousmenucollechl', 'sousmenuprodhl','sousmenusalonshl', 'sousmenupressehl', 'sousmenufranchisehl');
    for (i = 0; i< 6 ; i++)
    {
        if(document.getElementById(tabSousMenu[i]))
        {
            if(p_restore==false)
            {
                if(tabSousMenu[i] != ('sous'+p_id))
                document.getElementById(tabSousMenu[i]).style.display='none';
                else
                document.getElementById(tabSousMenu[i]).style.display='block';
            }
            else
            {
                if(('sous'+menuactif == tabSousMenu[i]) && (document.getElementById('sous'+menuactif)))
                    document.getElementById('sous'+menuactif).style.display='block';
                else
                    document.getElementById(tabSousMenu[i]).style.display='none';
            }
        }

    }         
}

// Gère les surbrillance des éléments
// de menu (rollover simple pour IE, glow animé
// pour les autres
//
function menuhl(p_id, p_etat)
{
    // Déplace la zone de sélection dès qu'on
    // hover sur un item du menu
    //p_left = surbpos[p_id][0];
    //p_width = surbpos[p_id][1];    
    //$("#menusurb").stop().animate({"left": p_left+"px", "width": p_width+"px"}, "normal"  );  
    // fin


    if(menuactif==p_id) return;
    
    // Affiche le sous menu
    //
    showSousMenu(p_id, false);

    // Affiche le glow
    //
    if(navigator.appName=="Microsoft Internet Explorer")
    {
        if(p_etat==true)
        document.getElementById(p_id).style.backgroundPosition = 'left top';
        else
        document.getElementById(p_id).style.backgroundPosition = 'left bottom';
    }
    else
    {
        if(menuactif==p_id) return;
        $("#"+p_id).animate({"opacity": p_etat}, "normal");  
    }
}

// Masque le sous-menu lorsque la souris 
// quitte la zone du menu principal
//
function masquerSousMenu(e) 
{
    var y;
    var x;

    if(navigator.appName!="Microsoft Internet Explorer") { y=e.pageY; }
    else { y=event.clientY +(document.documentElement.scrollTop); }  
    
    if ((y < 35) || (y > 150)) {
        showSousMenu(menuactif, true);
        
        // Remet la zone de sélection à sa
        // place initiale
        //p_left = surbpos[menuactif][0];
        //p_width = surbpos[menuactif][1]; 
        //$("#menusurb").stop().animate({"left": p_left+"px", "width": p_width+"px"}, "slow"  );  
        // fin
        
        //document.onmousemove = null; 
    }
}        

//=======================================
// Initialise les éléments du
// menu (sélection, glow, etc.)
//=======================================
function menuInit()
{
    // Affiche la surbrillance et le sous menu de la page active
    //
    document.getElementById('menusurb').style.left=surbpos[menuselect][0]+'px';
    document.getElementById('menusurb').style.width=surbpos[menuselect][1]+'px';
    document.getElementById('menusurb').style.display='block';
                                    
    if(document.getElementById('sous'+menuselect))
        document.getElementById('sous'+menuselect).style.display='block';

    if(document.getElementById(menuselect)) document.getElementById(menuselect).style.backgroundPosition = 'left top';

    // Le glow ne marche pas sous IE
    // on utilise une porte coulissante CSS simple
    //
    if(navigator.appName!="Microsoft Internet Explorer")
    {         
        document.getElementById("menuconcepthl").style.backgroundPosition = 'left top';
        document.getElementById("menucollechl").style.backgroundPosition = 'left top';
        document.getElementById("menuprodhl").style.backgroundPosition = 'left top';
        document.getElementById("menusalonshl").style.backgroundPosition = 'left top';
        document.getElementById("menufranchisehl").style.backgroundPosition = 'left top';
        document.getElementById("menupressehl").style.backgroundPosition = 'left top';
        
        if(menuselect != 'menuconcepthl')   $("#menuconcepthl").animate({"opacity": 0}, 1500);  
        if(menuselect != 'menucollechl')    $("#menucollechl").animate({"opacity": 0},3000);  
        if(menuselect != 'menuprodhl')      $("#menuprodhl").animate({"opacity": 0}, 2000);  
        if(menuselect != 'menupressehl')    $("#menupressehl").animate({"opacity": 0}, "fast");  
        if(menuselect != 'menusalonshl')    $("#menusalonshl").animate({"opacity": 0}, 2500);  
        if(menuselect != 'menufranchisehl') $("#menufranchisehl").animate({"opacity": 0}, 2400); 
    } 
    
    document.onmousemove = masquerSousMenu; 
}             

//====================================================================================================   

function afficheFlashRequis(conteneur, margehaut, margegauche, titre, texte)
{
    document.getElementById(conteneur).style.background="url(images/flashplayer.gif) center "+margehaut+"px no-repeat";
    document.getElementById(conteneur).style.height=240+"px";
    document.getElementById(conteneur).style.marginLeft=margegauche+"px";
    document.getElementById(conteneur).innerHTML=
    "<center><a href='http://www.adobe.com/go/getflashplayer'><h3 style=' color:#000; margin-bottom:5px; padding-top:"+(margehaut+60)+"px;'>"+titre+"</h3>"+texte+"</a></center>";          
}   