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 dhtmltooltip = "" ; //l'objet boite de dialogue
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 dhtmltooltipId. Cette objet est une boite de dialogue qui va suivre les mouvements de la souris
 * @params :
 *    - dhtmltooltipId : l'id du bloc correspondant a cette boite
 *    - targetparent : la fonction est-elle appele d'une iframe
*/
function getHtmlToolTip(dhtmltooltipId, targetparent){
    var tipobj;
    //cas d'un appel depuis une iframe
    if(targetparent){
        if (parent.document.getElementById){
             tipobj = parent.document.getElementById(dhtmltooltipId);
        }
        else if(document.all){
             tipobj = document.all(dhtmltooltipId);
         }
        else{
            tipobj = document.dhtmltooltipId;
        }        
    }
    //cas d'un appel en pleine page
    else{
        if (document.getElementById){
             tipobj = document.getElementById(dhtmltooltipId);
        }
        else if(document.all){
             tipobj = document.all(dhtmltooltipId);
         }
        else{
            tipobj = document.dhtmltooltipId;
        }
    }
    
    dhtmltooltip = tipobj
    return tipobj ;
}

/** #########################################
 * 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
 *    - dhtmltooltipId : l'identifiant de la boite de dialogue
 *    - targetparent : appel du script depuis une iframe
*/
function ddrivetip2(imgObj, divId, thecolor, thewidth, dhtmltooltipId, targetparent){
    document.onmousemove=positiontip ; //on lance le calcul du positionnement de la souris

    var tipobj = getHtmlToolTip(dhtmltooltipId, targetparent) ;   //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
    
    var divObj =document.getElementById(divId); //on recupere le bloc div a copier

    if(divObj){
        tipobj.innerHTML = divObj.innerHTML ; //on copie 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){
        imgObj.alt = "" ;
        imgObj.title = "" ;
    }
    
    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 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 tipobj = dhtmltooltip ; //boite de dialogue
    
    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 (bottomedge<tipobj.offsetHeight){
            tipobj.style.top=ie? ietruebody().scrollTop+event.clientY-tipobj.offsetHeight-offsetypoint+"px" : window.pageYOffset+e.clientY-tipobj.offsetHeight-offsetypoint+"px"
        }
        else{
            tipobj.style.top=curY+offsetypoint+"px"
        }
        tipobj.style.visibility="visible"
    }
}

/** #########################################
 * Permet de cacher la boite de dialogue
 *@params:
 *    - dhtmltooltipId : l'identifiant de la boite de dialogue
 *    - targetparent : appel du script depuis une iframe
*/
function hideddrivetip(dhtmltooltipId, targetparent){
    var tipobj = getHtmlToolTip(dhtmltooltipId, targetparent) ;    

    //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' ;   
    tipobj.innerHTML = "" ;
    
    curX = "" ;
    curY = "" ;
}
/** #########################################
* Permet de decocher les checkbox deja cochees lors d un clique sur l une d elles avant de valider le formulaire
*/
function onFilterChecked(idFilterChecked,type,nbResultsRayon){
    if(idFilterChecked == idFiltreEnCours) document.getElementById(idFilterChecked).checked = false;
    else{
        document.getElementById(idFilterChecked).checked = true;
       if(type=='family'){
           var thisNbResultsRayons = '';
           if(!maxResults) thisNbResultsRayons = nbResultsRayon;
           document.formArbo.action += '&nbProducts=' + nbProducts + '&nbResultsRayon=' + thisNbResultsRayons;
       }
       else document.formArbo.action += '&nbProducts=' + nbProducts;
    }
    var elts = document.formArbo.elements;
    for(var i=0;i<elts.length;i++) 
        if(elts[i].id != idFilterChecked) elts[i].checked = false;
       
   document.formArbo.submit();
}
/** #########################################
* Permet d'ajouter les parametres nbProducts et nbResultsRayon dans l url lors de la validation d un formulaire (tri, ...) ou d un clic sur un lien
*/
function checkUrl(obj,type){
    var paramProducts;
    var paramResultsRayon;

    if(params.indexOf("nbProducts=")!=-1) {
        paramProducts = params.substr(params.indexOf("nbProducts=") + 11);
        if(paramProducts.indexOf('&')!=-1) paramProducts = paramProducts.substring(0,paramProducts.indexOf('&'));
        if(type == 'form') obj.action += '&nbProducts=' + paramProducts;
        else obj.href += '&nbProducts=' + paramProducts;
    }
    if(params.indexOf("nbResultsRayon=")!=-1) {
        paramResultsRayon = params.substr(params.indexOf("nbResultsRayon=") + 15);
        if(paramResultsRayon.indexOf('&')!=-1) paramResultsRayon = paramResultsRayon.substring(0,paramResultsRayon.indexOf('&'));
        if(type == 'form') obj.action += '&nbResultsRayon=' + paramResultsRayon;
        else obj.href += '&nbResultsRayon=' + paramResultsRayon;
    }
}
