var offsetfromcursorX=12; //Customize x offset of tooltip
var offsetfromcursorY=15; //Customize y offset of tooltip

var offsetdivfrompointerX=10; //Customize x offset of tooltip DIV relative to pointer image
var offsetdivfrompointerY=22; //Customize y offset of tooltip DIV relative to pointer image. Tip: Set it to (height_of_pointer_image-1).

var maxWidth=470;
var minWidth=145;

document.write('<div id="dhtmltooltip"></div>'); //write out tooltip DIV
document.write('<img id="dhtmlpointer_lt" src="/img/tooltip/tooltip_arrow_left_top.gif">'); //write out pointer image
document.write('<img id="dhtmlpointer_lb" src="/img/tooltip/tooltip_arrow_left_bottom.gif">'); //write out pointer image
document.write('<img id="dhtmlpointer_rt" src="/img/tooltip/tooltip_arrow_right_top.gif">'); //write out pointer image
document.write('<img id="dhtmlpointer_rb" src="/img/tooltip/tooltip_arrow_right_bottom.gif">'); //write out pointer image
document.write('<div id="hdiv"></div>');


var ie=document.all;
var ns6=document.getElementById && !document.all;
var enabletip=false;
if (ie||ns6)
var tipobj=document.getElementById("dhtmltooltip");
var hdivobj=document.getElementById("hdiv");

var pointer_lt=document.getElementById("dhtmlpointer_lt");
var pointer_lb=document.getElementById("dhtmlpointer_lb");
var pointer_rt=document.getElementById("dhtmlpointer_rt");
var pointer_rb=document.getElementById("dhtmlpointer_rb");
var pointerobj=pointer_lt;

function ietruebody(){
	return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body;
}

function showTooltip(thetext,title){
	if (ns6||ie){
		txt="<div id='test'><nobr>"+thetext+"</nobr></div>";
		hdivobj.innerHTML=txt;
		l=hdivobj.offsetWidth;

		if (l<minWidth) {
			tipobj.style.width=minWidth;
		}
		else {
			if (l>maxWidth) {
				tipobj.style.width=maxWidth;
			}	
			else {
				tipobj.style.width=l+10;	
			}
		}

		txt="<table width='100%' border='0' cellspacing='0' cellpadding='0'>"+
			"<tr>"+
				"<td width='4px' heidht='4px'><img src='/img/tooltip/tooltip_corner_left_top.gif' border='0' alt=''></td>"+
				"<td heidht='4px' class='tooltip_border_top'></td>"+
				"<td width='4px' heidht='4px'><img src='/img/tooltip/tooltip_corner_right_top.gif' border='0' alt=''></td>"+
			"</tr>";
		if (title != undefined){
			txt+="<tr>"+
					"<td width='4px' class='tooltip_border_left'></td>"+
					"<td class='tooltip_title'>"+title+"</td>"+
					"<td width='4px' class='tooltip_border_right'></td>"+
				"</tr>";
		}	
		txt+="<tr>"+
				"<td width='4px' class='tooltip_border_left'></td>"+
				"<td class='tooltip_body'>"+thetext+"</td>"+
				"<td width='4px' class='tooltip_border_right'></td>"+
			"</tr>"+
			"<tr>"+
				"<td width='4px' heidht='4px'><img src='/img/tooltip/tooltip_corner_left_bottom.gif' border='0' alt=''></td>"+
				"<td heidht='4px' class='tooltip_border_bottom'></td>"+
				"<td width='4px' heidht='4px'><img src='/img/tooltip/tooltip_corner_right_bottom.gif' border='0' alt=''></td>"+
			"</tr>"+
		"</table>";

		tipobj.innerHTML=txt;
		enabletip=true;
		return false;
	}
}

function positiontip(e){
	if (enabletip){
		var curX=(ns6)?e.pageX : event.clientX+ietruebody().scrollLeft;
		var curY=(ns6)?e.pageY : event.clientY+ietruebody().scrollTop;
		
		var winwidth=ie&&!window.opera? ietruebody().clientWidth : window.innerWidth-20;
		var winheight=ie&&!window.opera? ietruebody().clientHeight : window.innerHeight-20;

		var rightedge=ie&&!window.opera? winwidth-event.clientX-offsetfromcursorX : winwidth-e.clientX-offsetfromcursorX;
		var bottomedge=ie&&!window.opera? winheight-event.clientY-offsetfromcursorY : winheight-e.clientY-offsetfromcursorY;
		
		var leftedge=(offsetfromcursorX<0)? offsetfromcursorX*(-1) : -1000;

// position -- right-bottom		
		if ( rightedge<tipobj.offsetWidth && bottomedge<tipobj.offsetHeight+26 ) {
			tipobj.style.left=curX-tipobj.offsetWidth+"px";
			tipobj.style.top=curY-tipobj.offsetHeight-offsetfromcursorY-7+"px";

			pointerobj.style.visibility="hidden";
			pointerobj=pointer_rb;
			pointerobj.style.left=curX-pointerobj.offsetWidth-9+"px";
			pointerobj.style.top=curY-pointerobj.offsetHeight+"px";
		}

// position -- left-bottom	
		if ( rightedge>=tipobj.offsetWidth && bottomedge<tipobj.offsetHeight+26 ) {
			tipobj.style.left=curX+offsetfromcursorX-offsetdivfrompointerX+"px";
			tipobj.style.top=curY-tipobj.offsetHeight-offsetfromcursorY-7+"px";

			pointerobj.style.visibility="hidden";
			pointerobj=pointer_lb;
			pointerobj.style.left=curX+offsetfromcursorX+"px";
			pointerobj.style.top=curY-pointerobj.offsetHeight+"px";
		}

// position -- right-top	
		if ( rightedge<tipobj.offsetWidth && bottomedge>=tipobj.offsetHeight+26 ) {
			tipobj.style.left=curX-tipobj.offsetWidth+"px";
			tipobj.style.top=curY+offsetfromcursorY+offsetdivfrompointerY+"px";


			pointerobj.style.visibility="hidden";
			pointerobj=pointer_rt;
			pointerobj.style.left=curX-pointerobj.offsetWidth-9+"px";
			pointerobj.style.top=curY+offsetfromcursorY+"px";
		}

// position -- left-top	
		if ( rightedge>=tipobj.offsetWidth && bottomedge>=tipobj.offsetHeight+26 ) {
			tipobj.style.left=curX+offsetfromcursorX-offsetdivfrompointerX+"px";
			tipobj.style.top=curY+offsetfromcursorY+offsetdivfrompointerY+"px";


			pointerobj.style.visibility="hidden";
			pointerobj=pointer_lt;
			pointerobj.style.left=curX+offsetfromcursorX+"px";
			pointerobj.style.top=curY+offsetfromcursorY+"px";
		}

		tipobj.style.visibility="visible";
		pointerobj.style.visibility="visible";
	}
}

function hideTooltip(){
	if (ns6||ie){
		enabletip=false;
		tipobj.style.visibility="hidden";
		pointerobj.style.visibility="hidden";
		tipobj.style.left="-1000px";
		tipobj.style.backgroundColor='';
		tipobj.style.width='';
	}
}

document.onmousemove=positiontip;
