var enabletip=false //la fonctionnalite boite de dialogue est-elle activee ou non
var ie=document.all //script execute sur IE ou non
var ns6=document.getElementById && !document.all //script execute sur FF ou non
var curX = "" ; //position X de la souris
var curY = "" ; //position Y de la souris
var timeMasque = "" ; //la variable correspondant au setTimeout de la fonction masque()
var ratio = 2 ; //rapport entre largeur de la grande image et largeur de la petite image ici 800 et 400 


/** #########################################
 * Permet de recuperer l'objet dhtmltooltip. Cette objet est une boite de dialogue qui va suivre les mouvements de la souris
*/
function getHtmlToolTip(){
    var tipobj;
    if (document.getElementById){
         tipobj = document.getElementById("dhtmltooltip");
         if(!tipobj){
             tipobj = document.getElementById("dhtmltooltip2");         
         }
    }
    else if(document.all){
         tipobj = document.all("dhtmltooltip");
         if(!tipobj){
             tipobj = document.all("dhtmltooltip2");         
         }         
     }
    else{
        tipobj = document.dhtmltooltip;
         if(!tipobj){
             tipobj = document.dhtmltooltip2 ;         
         }        
    }
    
    return tipobj ;
}

/** #########################################
 * Permet de recuperer l'objet BODY de la page html
*/
function ietruebody(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

/** #########################################
 * Permet de copier un texte dans la boite de dialogue
 *@params:
 *    - thetext : texte a afficher
 *    - thecolor : couleur de fond de la boite de dialogue
 *    - thewidth : taille en largeur de la boite
 *    =================> N'EST PLUS UTILISE
*/
function ddrivetip(thetext, thecolor, thewidth){
    var tipobj = getHtmlToolTip() ; //recuperation de la boite de dialogue
    
    if (typeof thewidth!="undefined") tipobj.style.width=thewidth+"px" ; //on fixe la taille en largeur de la boite
    if (typeof thecolor!="undefined" && thecolor!="") tipobj.style.backgroundColor=thecolor ; //on fixe la couleur de fond
    tipobj.innerHTML=thetext ; //on copie le texte dans la boite
    enabletip=true ; //on active le mouvement de la boite en fonction de la souris
    return false
}

/** #########################################
 * Permet de copier le contenu d'un bloc div dans la boite de dialogue
 *@params:
 *    - imgObj : l'objet image sur lequel est appele cette fonction (FACULTATIF, peut valoir "")
 *    - divId : l'id du bloc a copier dans la boite de dialogue
 *    - thecolor : couleur de fond de la boite de dialogue
 *    - thewidth : taille en largeur de la boite
 *    - containerId : l'identifiant du bloc contenant le lien su lequel est appele la fonction
*/
function ddrivetip2(imgObj, divId, thecolor, thewidth, theheight, containerId){
    document.onmousemove=positiontip ; //on lance le calcul du positionnement de la souris
        
    var tipobj = getHtmlToolTip() ;   //recuperation de la boite de dialogue
    
            
    if (typeof thewidth!="undefined") tipobj.style.width=thewidth+"px"; //on fixe la taille en largeur de la boite
    if (typeof thecolor!="undefined" && thecolor!="") tipobj.style.backgroundColor=thecolor; //on fixe la couleur de fond
    if (typeof theheight!="undefined") tipobj.style.height=theheight+"px"; //on fixe la taille en hauteur de la boite
    
    var divObj =document.getElementById(divId); //on recuperer le bloc div a copier

    if(divObj){
        tipobj.innerHTML = divObj.innerHTML ; //on copier le contenu du bloc div dans la boite de dialogue
    }
    
    //Si la fonction a ete appele depuis une image, on desactive le texte alternatif sur cette image
    if(imgObj){
        if(imgObj){
            imgObj.alt = "" ;
            imgObj.title = "" ;
        }
    }
    
    /*if(containerId != ""){
        var containerObj = document.getElementById(containerId) ;
        if(containerObj){
            containerObj.className = containerObj.className+"selected"  ;
        }
    }*/
        fondu(tipobj.id);
    enabletip=true ; //on active le mouvement de la boite en fonction de la souris
     
    
    return false
}

/** #########################################
 * Permet de calculer la position X et Y de la souris
 *@params:
 *    - e : l'evenement
*/
function positioncurseur(e){
    curX=(ns6)?e.pageX : event.clientX+ietruebody().scrollLeft;
    curY=(ns6)?e.pageY : event.clientY+ietruebody().scrollTop;
}


/** #########################################
 * Permet de calculer la position X et Y de la souris et d'afficher la boite de dialogue aupres du pointeur
 *@params:
 *    - e : l'evenement
*/
function positiontip(e){
   // var offsetxpoint=-60  ; //placement x de la souris par rapport a la boite
    //var offsetypoint=20; //placement y de la souris par rapport a la boite
    
    var offsetxpoint=-300  ; //placement x de la souris par rapport a la boite
    var offsetypoint=-250; //placement y de la souris par rapport a la boite
    
    if(navigator.appVersion.indexOf("MSIE 6.0") > -1){
        offsetypoint=-250;
    }
    
    var tipobj = getHtmlToolTip() ;       
             
    if (enabletip){
        positioncurseur(e) ;
         
        var rightedge=ie&&!window.opera? ietruebody().clientWidth-event.clientX-offsetxpoint : window.innerWidth-e.clientX-offsetxpoint-20
        var bottomedge=ie&&!window.opera? ietruebody().clientHeight-event.clientY-offsetypoint : window.innerHeight-e.clientY-offsetypoint-20
        var leftedge=(offsetxpoint<0)? offsetxpoint*(-1) : -1000
        
        if (rightedge<tipobj.offsetWidth)
            tipobj.style.left=ie? ietruebody().scrollLeft+event.clientX-tipobj.offsetWidth+"px" : window.pageXOffset+e.clientX-tipobj.offsetWidth+"px"
        else if (curX<leftedge)
            tipobj.style.left="5px"
        else
            tipobj.style.left=curX+offsetxpoint+"px"
            
        if (ietruebody().scrollTop>curY+offsetypoint)
            tipobj.style.top=curY+"px"
        else if (bottomedge<tipobj.offsetHeight)
            tipobj.style.top=ie? ietruebody().scrollTop+event.clientY-tipobj.offsetHeight+"px" : window.pageYOffset+e.clientY-tipobj.offsetHeight+"px"
        else
            tipobj.style.top=curY+offsetypoint+"px"
    }
}

/** #########################################
 * Permet de cacher la boite de dialogue
 *@params:
 *    - containerId : l'identifiant du bloc contenant le lien su lequel est appele la fonction
*/
function hideddrivetip(containerId){
    var tipobj = getHtmlToolTip() ;

    //on reinitialise les donnees de la boite de dialogue
    enabletip=false ;
    tipobj.style.visibility="hidden" ;
    tipobj.style.left="-1000px" ;
    tipobj.style.backgroundColor='' ;
    tipobj.style.width='0px' ;
    
    /*if (typeof containerId!="undefined"){
        var containerObj = document.getElementById(containerId) ;
        if(containerObj){
            containerObj.className = ""  ;
        }    
    }*/
    curX = "" ;
    curY = "" ;
}

/** #########################################
 * Permet de changer de visuel une image
 *@params:
 *    - nameImg : l'url de la nouvelle image
*/
function changeVisu(nameImg){
    if (document.getElementById)
         document.getElementById("visu").src=nameImg;
    else if(document.all)
         document.all("visu").src=nameImg;
}
 
 
/** #########################################
 * Permet de bouger l'image HD en fonction de l'image SD
 * Cette fonction utilise la position du curseur curX et curY
*/
function masque() {
    if(curX == "" && curY == ""){
        document.onmousemove=positioncurseur ; //on lance le calcul du positionnement de la souris
    }
    var positionPointeur = 135 ; //la position du pointeur est calculee en fonction de la resolution 1024px en hauteur
    timeMasque = setTimeout("masque()",10);
    var bgX = (curX-positionPointeur)*-ratio ; //position du background en abscisse
    var bgY = (curY-positionPointeur)*-ratio ; //position du background en ordonnee
    bgY = bgY + ietruebody().scrollTop*ratio ; //position du background en ordonnee + positionnement du scroll
    document.getElementById("zoom").style.backgroundPosition = bgX+"px "+bgY+"px";
}
/** #########################################
* fonction d'effet de fondu
*/
function trans(id, i)
{
	var item = document.getElementById(id);
	var iDec=i / 100;
	item.style.opacity = iDec;
	item.style.MozOpacity = iDec;
	item.style.KhtmlOpacity = iDec;
	item.style.filter = 'alpha(opacity='+i+')'; 	
	item.style.visibility="visible";
	item.style.display="block";
	return;
}
function fondu(id){
    var i;	
    var item = document.getElementById(id);
    var iDec=100;
    if(navigator.appVersion.indexOf("MSIE 6.0") == -1){
         iDec=0;
        item.style.opacity = iDec;
        item.style.MozOpacity = iDec;
        item.style.KhtmlOpacity = iDec;
        item.style.filter = 'alpha(opacity='+iDec+')'; 
        for(i = 0; i <= 100; i++){
            var time = i *3 + 10;
            // On incrémente l'opacité de l'élément toutes les "time" millisecondes
            setTimeout('trans(\''+id+'\', \''+i+'\')', time);
        }
    }else{
        trans(id, iDec);
    }
}

/** #########################################
* fonction d'effet de fondu
*/
/*function fondu(id){
    var level = 0;    
    while(level <= 1){
        setTimeout( "transparence('" + id + "'," + level + ")", (level* 500));                
        level += 0.01;
    }
}*/
/** #########################################
 * Permet de detruire l'appel a la fonction masque
*/
function deactiveMasque(){
    clearTimeout(timeMasque) ;
}