/**
 * @version 1.1
 * @copyright 2004-2007 Laurent Jouanneau. 
 * @link http://ljouanneau.com/soft/javascript
 * @licence release under LGPL Licence
 */


// the tooltip object
var tooltip = {
    // setup properties of tooltip object
    id:"tooltip",
    offsetx : 10,
    offsety : 10,
    _x : 0,
    _y : 0,
    xmlhttp: new myXMLHttpRequest(),
    _tooltipElement:null,
    _saveonmouseover:null
}

tooltip.show = function (htmlelement,id) {
	if(document.getElementById){
        this._tooltipElement = document.getElementById(this.id);
	}else if ( document.all ) {
        this._tooltipElement = document.all[this.id].style;
	}
    this._saveonmouseover = document.onmousemove;
    document.onmousemove = this.mouseMove;

	var text=htmlelement.getAttribute("title_saved");

	if (!text) {
    	tooltip._tooltipElement.innerHTML ="<img src='/img/ajax.gif'>";
        var url = 'libs/userinfo.php'+'?id='+id;

        var text = "nao veio nada";

   	this.xmlhttp.open("GET",url,true);
    	this.xmlhttp.onreadystatechange=function() {
        	if (tooltip.xmlhttp.readyState==4) {
                	text=tooltip.xmlhttp.responseText;
    			htmlelement.setAttribute("title_saved",text);
		//	tooltip.mostra(htmlelement,text);	
    			if (tooltip._tooltipElement!=null) {
				tooltip._tooltipElement.innerHTML = text;
    				tooltip.moveTo(tooltip._x + tooltip.offsetx , tooltip._y + tooltip.offsety);

    				if(tooltip._tooltipElement.style){
        				tooltip._tooltipElement.style.visibility ="visible";
    				}else{
        				tooltip._tooltipElement.visibility = "visible";
    				}

			}
       		} 
    	}
    	this.xmlhttp.send(null);
	} else this.mostra(htmlelement,text);
}

tooltip.mostra=function (htmlelement,text)
{
    //tooltip._saveonmouseover = document.onmousemove;
    //document.onmousemove = tooltip.mouseMove;

    tooltip._tooltipElement.innerHTML = text;

    tooltip.moveTo(tooltip._x + tooltip.offsetx , tooltip._y + tooltip.offsety);

    if(tooltip._tooltipElement.style){
        tooltip._tooltipElement.style.visibility ="visible";
    }else{
        tooltip._tooltipElement.visibility = "visible";
    }
   return false;
}

tooltip.hide = function (htmlelement) {
    //htmlelement.setAttribute("title",htmlelement.getAttribute("title_saved"));
    //htmlelement.removeAttribute("title_saved");

    if (this._tooltipElement == null) return;

    if(this._tooltipElement.style){
        this._tooltipElement.style.visibility ="hidden";
    }else{
        this._tooltipElement.visibility = "hidden";
    }
    document.onmousemove=this._saveonmouseover;
    this._tooltipElement = null;
}

tooltip.mouseMove = function (e) {
   // we don't use "this" because this method is assign to an event of document
   // and so is dereferenced
    if(e == undefined)
        e = event;

    if( e.pageX != undefined){ // gecko, konqueror,
        tooltip._x = e.pageX;
        tooltip._y = e.pageY;
    }else if(event != undefined && event.x != undefined && event.clientX == undefined){ // ie4 ?
        tooltip._x = event.x;
        tooltip._y = event.y;
    }else if(e.clientX != undefined ){ // IE6,  IE7, IE5.5
        if(document.documentElement){
            tooltip._x = e.clientX + ( document.documentElement.scrollLeft || document.body.scrollLeft);
            tooltip._y = e.clientY + ( document.documentElement.scrollTop || document.body.scrollTop);
        }else{
            tooltip._x = e.clientX + document.body.scrollLeft;
            tooltip._y = e.clientY + document.body.scrollTop;
        }
    /*}else if(event != undefined && event.x != undefined){ // IE6,  IE7, IE5.5
        tooltip.x = event.x + ( document.documentElement.scrollLeft || document.body.scrollLeft);
        tooltip.y = event.y + ( document.documentElement.scrollTop || document.body.scrollTop);
    */
    }else{
        tooltip._x = 0;
        tooltip._y = 0;
    }
    tooltip.moveTo( tooltip._x +tooltip.offsetx , tooltip._y + tooltip.offsety);

}

tooltip.moveTo = function (xL,yL) {
    if (this._tooltipElement==null) return;
    if(this._tooltipElement.style){
        this._tooltipElement.style.left = xL +"px";
        this._tooltipElement.style.top = yL +"px";
    }else{
        this._tooltipElement.left = xL;
        this._tooltipElement.top = yL;
    }
}


