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

tooltip.show = function (htmlelement) {
	document.getElementById('tooltipcontainer').innerHTML = document.getElementById('t' + htmlelement).innerHTML;
	tooltip.htmlelement = 'tooltipcontainer';
	
    tooltip._saveonmouseover = document.onmousemove;
    document.onmousemove = tooltip.mouseMove;

	document.getElementById(tooltip.htmlelement).style.display = "block";
	document.getElementById('i' + htmlelement).style.width = document.getElementById('i' + htmlelement).offsetWidth +"px";

//Width
	var temp_width = 44 + document.getElementById('i' + htmlelement).offsetWidth;
	if (document.getElementById('a' + htmlelement))	{
		temp_width += document.getElementById('a' + htmlelement).offsetWidth;
	}
	
//Height
	var temp_height = document.getElementById('i' + htmlelement).offsetHeight;
	if (temp_height < 44) temp_height = 44;
	if (document.getElementById('a' + htmlelement) && document.getElementById('a' + htmlelement).offsetHeight > temp_height)	{
		temp_height = document.getElementById('a' + htmlelement).offsetHeight;
	}
	
	document.getElementById('t' + htmlelement).style.width = temp_width + "px";
	document.getElementById('t' + htmlelement).style.height = temp_height + "px";
	
	tooltip.moveTo(tooltip._x + tooltip.offsetx, tooltip._y + tooltip.offsety);
	
   return false;
}

tooltip.hide = function () {
    document.getElementById(tooltip.htmlelement).style.display = "none";
	
    document.onmousemove=tooltip._saveonmouseover;
}

tooltip.mouseMove = function (e) {
    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{
        tooltip._x = 0;
        tooltip._y = 0;
    }
	if (tooltip._y - document.documentElement.scrollTop > document.getElementById(tooltip.htmlelement).offsetHeight) {
		tooltip._y -= tooltip.offsety*2 + document.getElementById(tooltip.htmlelement).offsetHeight;
	}
	if (tooltip._x > document.body.offsetWidth / 2) {
		tooltip._x -= document.getElementById(tooltip.htmlelement).offsetWidth + tooltip.offsetx*4;
	}
    tooltip.moveTo( tooltip._x + tooltip.offsetx, tooltip._y + tooltip.offsety);
}

tooltip.moveTo = function (xL,yL) {
	document.getElementById(tooltip.htmlelement).style.left = xL +"px";
	document.getElementById(tooltip.htmlelement).style.top = yL +"px";
}
