/***************************************************************************
           panel/tooltips.js  -  Extended Tooltip Javascript
                             -------------------
    begin                : Fri Aug 09 2002
    copyright            : (C) 2002-2005 Stephen Chapman, Felgall Pty Ltd
    last modified        : Sun Jul 03 2005
    module version       : 1.0
 ***************************************************************************/

/***************************************************************************
 *  Permission is granted to use this javascript provided that the below
 *  code is not altered.
 ***************************************************************************/

var DH = 0;
var an = 0;
var al = 0;
var ai = 0;

if (ns6) {
	ai = 1; DH = 1;
} else if (ie4) {
	al = 1; DH = 1;
} else if ((navigator.appName.indexOf('Netscape') != -1) && (parseInt(navigator.appVersion) == 4)) {
	an = 1; DH = 1;
}

function fd(oi, wS)
{
	if (ai) {
		return wS ? document.getElementById(oi).style : document.getElementById(oi);
	}

	if (al) {
		return wS ? document.all[oi].style : document.all[oi];
	}

	if (an) {
		return document.layers[oi];
	}
}

function pw()
{
	return window.innerWidth != null ?
		window.innerWidth : (document.body.clientWidth != null ?
		document.body.clientWidth : null);
}

function mouseX(e)
{
	if (e.pageX) {
		return e.pageX;
	} else if (e.clientX) {
		return e.clientX + (document.documentElement.scrollLeft ?
			document.documentElement.scrollLeft : document.body.scrollLeft);
	} else {
		return null;
	}
}

function mouseY(e)
{
	if (e.pageY) {
		return e.pageY;
	} else if (e.clientY) {
		return e.clientY + (document.documentElement.scrollTop ?
			document.documentElement.scrollTop : document.body.scrollTop);
	} else {
		return null;
	}
}

function bubble(e,oi,y,x)
{
	if (DH) {
		var wp = pw();
		ds = fd(oi,1);
		dm = fd(oi,0);
		st = ds.visibility;

		if (dm.offsetWidth) {
			ew = dm.offsetWidth;
		} else if (dm.clip.width) {
			ew = dm.clip.width;
		}
			
		if (st == 'visible' || st == "show") {
			ds.visibility = "hidden";
		} else {
			tv = mouseY(e) + 20 + y;
			lv = mouseX(e) - (ew/4) + x;

			if (lv < 2) {
				lv = 2;
			} else if (lv + ew > wp) {
				lv -= ew/2;
			}

			if (!an) {
				lv += 'px';
				tv += 'px';
			}
			ds.left = lv;
			ds.top = tv;
			ds.visibility = 'visible';
		}
	}
}

