var _isEl = (document.getElementById) ? true : false;
var _isIE4 = (document.all && !_isEl) ? true : false;
var _isIE5 = ((navigator.userAgent.indexOf("MSIE")>-1) && _isEl) ? true : false;
var _isNS5 = (!document.all && _isEl || window.opera) ? true: false;

var _moveWithMouse= true;	
var _objLayerOn = false;	
var _padX= 20;
var _padY= 10; 
var _srollbarWidth=20;
var _obj, _objcss, _objBody;
var _mouseX, _mouseY;
var _objTimeout;

function displayLayer(e, objId) {
	if (_obj) _objcss.visibility='hidden';

	if (!_isNS5 && !_isIE4 && !_isIE5 && !_isEl) return;
	_obj = document.getElementById(objId);
	_objcss = _obj.style;
	if (_obj&&_moveWithMouse) document.onmousemove = trackMouse;
	
	if (!_obj) return;
	if (_objTimeout) clearTimeout(_objTimeout);
	_objLayerOn = true;
	
	if (!_moveWithMouse) positionLayer(e);
	else _objTimeout=setTimeout("_objcss.visibility='visible'",100);
}

function trackMouse(e) {
	_objBody=(document.compatMode=="CSS1Compat")? document.documentElement : document.body;
	_mouseX = (_isNS5)? e.pageX: window.event.clientX + _objBody.scrollLeft;
	_mouseY = (_isNS5)? e.pageY: window.event.clientY + _objBody.scrollTop;
	if (_objLayerOn) positionLayer(e);
}

function positionLayer(e) {
	if (!_moveWithMouse) {
		_mouseX = (_isNS5)? e.pageX: window.event.clientX + _objBody.scrollLeft;
		_mouseY = (_isNS5)? e.pageY: window.event.clientY + _objBody.scrollTop;
	}
	
	var layerW = getObjectWidth(_obj);
	var layerH = getObjectHeight(_obj);
	var windowW = (_isNS5)? window.innerWidth-_srollbarWidth+window.pageXOffset: _objBody.clientWidth+_objBody.scrollLeft;
	var windowH = (_isNS5)? window.innerHeight-_srollbarWidth+window.pageYOffset: _objBody.clientHeight+_objBody.scrollTop;
	
	if ((_mouseX+_padX+layerW)>windowW) _objcss.left = _mouseX-(layerW+_padX)+"px";
	else _objcss.left = (_mouseX+_padX-getObjectLeft(_objBody))+"px";
	
	if ((_mouseY+_padY+layerH)>windowH) _objcss.top = windowH-(layerH+_padY)+"px";
	else _objcss.top = (_mouseY+_padY-getObjectTop(_objBody))+"px";
	
	if (!_moveWithMouse) _objTimeout=setTimeout("_objcss.visibility='visible'",100);
}

function hideLayer(objId) {
	_obj = document.getElementById(objId);

	if (!_obj) return;
	_objTimeout=setTimeout("_objcss.visibility='hidden'",100);
	_objLayerOn = false;
}

function getObjectLeft(obj){
	var x = 0;
	if(obj != null) x = (_isIE4||_isIE5)? obj.clientLeft: obj.offsetLeft;
	return parseInt(x);
}
function getObjectTop(obj){
	var y = 0;
	if(obj != null) y = (_isIE4||_isIE5)? obj.clientTop: obj.offsetTop;
	return parseInt(y);
}
function getObjectWidth(obj){
	var w = 0;
	if (obj != null) w = (_isIE4||_isIE5)? obj.clientWidth: obj.offsetWidth;
	return parseInt(w);
}
function getObjectHeight(obj){
	var h = 0;
	if (obj != null) h = (_isIE4||_isIE5)? obj.clientHeight: obj.offsetHeight;
	return parseInt(h);
}
function getObjectRight(obj){
	return parseInt(getObjectLeft(obj) + getObjectWidth(obj));
}
function getObjectBottom(obj){
	return parseInt(getObjectTop(obj) + getObjectHeight(obj));
}
function within(objid, xPos, yPos){
	var obj = document.getElementById(objid);
	if((obj != null) && (xPos >= getObjectLeft(obj)) && (xPos <= getObjectRight(obj)) && (yPos >= getObjectTop(obj)) && (yPos <= getObjectBottom(obj))) return true;
	else return false;
}


document.write('<div id="tipDiv" style="position:absolute; visibility:hidden; z-index:100"></div>')
//window.onload = initLayer;
