/** /popinfos.js
* Javascript permettant de faire des info-bulles sous les blocs input, span, div...
* Utilisation :
* <input type="text" onfocus="afficher_keywords(this, '<b>NOTE:</b> Test')" />
* <span onmouseover="afficher_keywords(this, '<b>NOTE:</b> Test')">Hello World</span>
*
* Penser à inclure "keywords.css" pour avoir l'aspect graphique
*
* @author Arthur Mayrand (arthur@mayrand.net)
* @date 15/07/2006
* @version 1.0
*/

// Masquage des erreur JS -> DÉSACTIVÉ!
//window.onerror=null;

// 
var isDOM=document.getElementById;

// Récupère la position de l'élément
function getBounds(e){
    var left=e.offsetLeft;
    var top=e.offsetTop;
    for(var parent=e.offsetParent;parent;parent=parent.offsetParent) {
        left+=parent.offsetLeft;
        top+=parent.offsetTop;
    }
    return{l:left,t:top,w:e.offsetWidth,h:e.offsetHeight};
}

// Affiche la popinfos + met en place la fonction pour son retrait
function afficher_keywords(e,html){
    if(!isDOM) return;
    var b=getBounds(e);
    var h=document.createElement('DIV');
    h.className='keywords';
    h.style.left=b.l+'px';
    h.style.top=b.t+b.h+5+'px';
    document.body.appendChild(h);
    h.innerHTML=html;
    e.keywords=h;
    if (e.onfocus){
        e.onfocus=function(){this.keywords.style.visibility='visible'};
        e.onblur=function(){this.keywords.style.visibility='hidden'};
        e.onfocus();
    }else{
        e.onmouseover=function(){this.keywords.style.visibility='visible'};
        e.onmouseout=function(){this.keywords.style.visibility='hidden'};
        e.onmouseover();
    }
}

// Souligne en pointillé+curseur Help sur les éléments <span> appelant keywords avec onmouseover
function souligner_span_keywords() {
    var spans = document.getElementsByTagName('span');

    for(i=0;i<spans.length;i++) {
        e=spans[i];
        v=new String(e.onmouseover);
        if (v.indexOf('afficher_keywords')!=-1) {
            e.style.cursor="help";
            e.style.borderBottom="1px dotted #999999";
            e.style.color="#FEDE4F";
        }
    }
}

// Permet de lancer la fonction souligner_span_popupinfos() une fois que la page est finie de charger
if(document.addEventListener){
    document.addEventListener("DOMContentLoaded", souligner_span_keywords, false); // pour Mozilla
    document.addEventListener("load", souligner_span_keywords, false); // pour les autres navigateurs W3c-compliant
} else {
    window.onload = souligner_span_keywords; // pour IE
}


