var mouseX = 0;
var mouseY = 0;
var mouseMoved = false;

function getMouseXY(e) {
	if (typeof(e) != 'undefined' && typeof(e.pageX)) {
		
		mouseX = e.pageX;
		mouseY = e.pageY;
		
	} else if (typeof(document.documentElement) != 'undefined' && typeof(document.documentElement.scrollLeft) != 'undefined') {
		
		mouseX = event.clientX + document.documentElement.scrollLeft;
		mouseY = event.clientY + document.documentElement.scrollTop;
		
	} else if (typeof(document.body) != 'undefined' && typeof(document.body.scrollLeft) != 'undefined') {
		
		mouseX = event.clientX + document.body.scrollLeft;
		mouseY = event.clientY + document.body.scrollTop;
		
	}
	
	mouseMoved = true;
}


//--------------------------------------------------------------------------------------------
function initMouseMove() {
	if (mouseMoved) {
		return;
	}
	
	if (typeof(Event) != 'undefined') {
		document.captureEvents(Event.MOUSEMOVE);
	}

	document.onmousemove = getMouseXY;
}


//--------------------------------------------------------------------------------------------
function initToolTip() {
	initMouseMove();

	document.writeln('<div id="tooltip_shadow" style="position:absolute; left:0px; top:0px; '
		+ 'display:block; background-color:#222222; color:#222222; '
		+ 'font-family:Verdana,Geneva,sans-serif; font-size:8pt; border:1px solid #222222; '
		+ 'padding:3px; margin:5px; opacity:0; filter:alpha(opacity=0); z-index:1000;"></div>');

	document.writeln('<div id="tooltip" style="position:absolute; left:3px; top:3px; '
		+ 'display:block; background-color:#fffee1; color:black; '
		+ 'font-family:Verdana,Geneva,sans-serif; font-size:8pt; border:1px solid black; '
		+ 'padding:3px; margin:5px; opacity:0; filter:alpha(opacity=0); z-index:1001;"></div>');
}


//--------------------------------------------------------------------------------------------
function setToolTipBackgroundColor(backgroundColor) {
	if (typeof(document.getElementById) == 'undefined') {
		return;
	}
	
	var el1 = document.getElementById('tooltip');
	
	if (el1 == null || typeof(el1) == 'undefined') {
		return;
	}

	if (backgroundColor != null) {
		el1.style.backgroundColor = backgroundColor;
	}
}


//--------------------------------------------------------------------------------------------
function setToolTipBackgroundImage(backgroundImage) {
	if (typeof(document.getElementById) == 'undefined') {
		return;
	}
	
	var el1 = document.getElementById('tooltip');
	
	if (el1 == null || typeof(el1) == 'undefined') {
		return;
	}

	if (backgroundImage != null) {
		el1.style.backgroundImage = backgroundImage;
	}
}


//--------------------------------------------------------------------------------------------
function setToolTipBackgroundRepeat(backgroundRepeat) {
	if (typeof(document.getElementById) == 'undefined') {
		return;
	}
	
	var el1 = document.getElementById('tooltip');
	
	if (el1 == null || typeof(el1) == 'undefined') {
		return;
	}

	if (backgroundRepeat != null) {
		el1.style.backgroundRepeat = backgroundRepeat;
	}
}


//--------------------------------------------------------------------------------------------
function setToolTipColor(color) {
	if (typeof(document.getElementById) == 'undefined') {
		return;
	}
	
	var el1 = document.getElementById('tooltip');
	
	if (el1 == null || typeof(el1) == 'undefined') {
		return;
	}

	if (color != null) {
		el1.style.color = color;
	}
}


//--------------------------------------------------------------------------------------------
function setToolTipFontFamily(fontFamily) {
	if (typeof(document.getElementById) == 'undefined') {
		return;
	}
	
	var el1 = document.getElementById('tooltip');
	
	if (el1 == null || typeof(el1) == 'undefined') {
		return;
	}

	var el2 = document.getElementById('tooltip_shadow');
	
	if (el2 == null || typeof(el2) == 'undefined') {
		return;
	}

	if (fontFamily != null) {
		el1.style.fontFamily = fontFamily;
		el2.style.fontFamily = fontFamily;
	}
}


//--------------------------------------------------------------------------------------------
function setToolTipFontSize(fontSize) {
	if (typeof(document.getElementById) == 'undefined') {
		return;
	}
	
	var el1 = document.getElementById('tooltip');
	
	if (el1 == null || typeof(el1) == 'undefined') {
		return;
	}

	var el2 = document.getElementById('tooltip_shadow');
	
	if (el2 == null || typeof(el2) == 'undefined') {
		return;
	}

	if (fontSize != null) {
		el1.style.fontSize = fontSize;
		el2.style.fontSize = fontSize;
	}
}


//--------------------------------------------------------------------------------------------
function setToolTipFontStyle(fontStyle) {
	if (typeof(document.getElementById) == 'undefined') {
		return;
	}
	
	var el1 = document.getElementById('tooltip');
	
	if (el1 == null || typeof(el1) == 'undefined') {
		return;
	}

	var el2 = document.getElementById('tooltip_shadow');
	
	if (el2 == null || typeof(el2) == 'undefined') {
		return;
	}

	if (fontStyle != null) {
		el1.style.fontStyle = fontStyle;
		el2.style.fontStyle = fontStyle;
	}
}


//--------------------------------------------------------------------------------------------
function setToolTipFontWeight(fontWeight) {
	if (typeof(document.getElementById) == 'undefined') {
		return;
	}
	
	var el1 = document.getElementById('tooltip');
	
	if (el1 == null || typeof(el1) == 'undefined') {
		return;
	}

	var el2 = document.getElementById('tooltip_shadow');
	
	if (el2 == null || typeof(el2) == 'undefined') {
		return;
	}

	if (fontWeight != null) {
		el1.style.fontWeight = fontWeight;
		el2.style.fontWeight = fontWeight;
	}
}


//--------------------------------------------------------------------------------------------
function setToolTipBorderSize(borderSize) {
	if (typeof(document.getElementById) == 'undefined') {
		return;
	}
	
	var el1 = document.getElementById('tooltip');
	
	if (el1 == null || typeof(el1) == 'undefined') {
		return;
	}

	var el2 = document.getElementById('tooltip_shadow');
	
	if (el2 == null || typeof(el2) == 'undefined') {
		return;
	}

	if (borderSize != null) {
		el1.style.borderSize = borderSize;
		el2.style.borderSize = borderSize;
	}
}


//--------------------------------------------------------------------------------------------
function setToolTipBorderStyle(borderStyle) {
	if (typeof(document.getElementById) == 'undefined') {
		return;
	}
	
	var el1 = document.getElementById('tooltip');
	
	if (el1 == null || typeof(el1) == 'undefined') {
		return;
	}

	if (borderStyle != null) {
		el1.style.borderStyle = borderStyle;
	}
}


//--------------------------------------------------------------------------------------------
function setToolTipBorderColor(borderColor) {
	if (typeof(document.getElementById) == 'undefined') {
		return;
	}
	
	var el1 = document.getElementById('tooltip');
	
	if (el1 == null || typeof(el1) == 'undefined') {
		return;
	}

	if (borderColor != null) {
		el1.style.borderColor = borderColor;
	}
}


//--------------------------------------------------------------------------------------------
function setToolTipPadding(padding) {
	if (typeof(document.getElementById) == 'undefined') {
		return;
	}
	
	var el1 = document.getElementById('tooltip');
	
	if (el1 == null || typeof(el1) == 'undefined') {
		return;
	}

	var el2 = document.getElementById('tooltip_shadow');
	
	if (el2 == null || typeof(el2) == 'undefined') {
		return;
	}

	if (padding != null) {
		el1.style.padding = padding;
		el2.style.padding = padding;
	}
}


//--------------------------------------------------------------------------------------------
function setToolTipShadow(shadow) {
	if (typeof(document.getElementById) == 'undefined') {
		return;
	}
	
	var el2 = document.getElementById('tooltip_shadow');
	
	if (el2 == null || typeof(el2) == 'undefined') {
		return;
	}

	if (!shadow) {
		el2.style.visibility = hidden;
	}
}


//--------------------------------------------------------------------------------------------
function setToolTipStyle(backgroundColor, backgroundImage, backgroundRepeat, color, fontFamily, fontSize, fontStyle, fontWeight, borderSize, borderStyle, borderColor, padding, shadow) {
	setToolTipBackgroundColor(backgroundColor);
	setToolTipBackgroundImage(backgroundImage);
	setToolTipBackgroundRepeat(backgroundRepeat);
	setToolTipColor(color);
	setToolTipFontFamily(fontFamily);
	setToolTipFontSize(fontSize);
	setToolTipFontStyle(fontStyle);
	setToolTipFontWeight(fontWeight);
	setToolTipBorderSize(borderSize);
	setToolTipBorderStyle(borderStyle);
	setToolTipBorderColor(borderColor);
	setToolTipPadding(padding);
	setToolTipShadow(shadow);
}

	
//--------------------------------------------------------------------------------------------
function getOpacity(el) {
	var opacity = 100;
	
	if (el == null) {
		return opacity;
	} else if (typeof(el.filters) != 'undefined' && typeof(el.filters.alpha) != 'undefined' && typeof(el.filters.alpha.opacity) != 'undefined') {
		opacity = el.filters.alpha.opacity;
	} else if (typeof(el.style) != 'undefined' && typeof(el.style.opacity) != 'undefined') {
		opacity = parseFloat(el.style.opacity) * 100;
	}
	
	if (opacity < 0) {
		opacity = 0;
	}
	
	if (opacity > 100) {
		opacity = 100;
	}
	
	return opacity;
}


//--------------------------------------------------------------------------------------------
function setOpacity(el, opacity) {
	if (el == null) {
		return;
	}

	if (opacity < 0) {
		opacity = 0;
	}
	
	if (opacity > 100) {
		opacity = 100;
	}
	
	if (typeof(el.filters) != 'undefined' && typeof(el.filters.alpha) != 'undefined' && typeof(el.filters.alpha.opacity) != 'undefined') {
		el.filters.alpha.opacity = opacity;
	} else if (typeof(el.style) != 'undefined' && typeof(el.style.opacity) != 'undefined') {
		el.style.opacity = '' + (opacity / 100) + '';
	}
}


//--------------------------------------------------------------------------------------------
var fadingTimer = null;

function stopFadeToolTip() {
	clearTimeout(fadingTimer);
	fadingTimer = null;
}


//--------------------------------------------------------------------------------------------
function fadeToolTip(on) {
	if (typeof(document.getElementById) == 'undefined') {
		return;
	}
	
	var el1 = document.getElementById('tooltip');
	
	if (el1 == null || typeof(el1) == 'undefined') {
		return;
	}

	var el2 = document.getElementById('tooltip_shadow');
	
	if (el2 == null || typeof(el2) == 'undefined') {
		return;
	}

	var opacity = getOpacity(el1);
	
	if (on) {
		if (opacity < 100) {
			opacity += 20;
			
			setOpacity(el1, opacity);
			setOpacity(el2, opacity - 50);
			
			fadingTimer = setTimeout("fadeToolTip(" + on + ")", 50);
		} else {
			stopFadeToolTip();
		}
	} else {
		if (opacity > 0) {
			opacity -= 20;
			
			setOpacity(el1, opacity);
			setOpacity(el2, opacity - 50);
			
			fadingTimer = setTimeout("fadeToolTip(" + on + ")", 50);
		} else {
			stopFadeToolTip();
	
			el1.style.display = 'none';
			el2.style.display = 'none';
		}
	}
}


//--------------------------------------------------------------------------------------------
function showToolTip(txt) {
	if (typeof(document.getElementById) == 'undefined') {
		return;
	}
	
	var el1 = document.getElementById('tooltip');
	
	if (el1 == null || typeof(el1) == 'undefined') {
		return;
	}

	var el2 = document.getElementById('tooltip_shadow');
	
	if (el2 == null || typeof(el2) == 'undefined') {
		return;
	}

	if (fadingTimer != null) {
		stopFadeToolTip();
	}
	
	if (txt != null) {
		var x = mouseX + 50;
		var y = mouseY;
		
		var left1 = '' + x + 'px';
		var top1 = '' + y + 'px';
		
		var left2 = '' + (x + 3) + 'px';
		var top2 = '' + (y + 3) + 'px';
		
		el1.style.left = left1;
		el1.style.top = top1;
		el1.innerHTML = unescape(txt);
		el1.style.display = 'block';
		
		el2.style.left = left2;
		el2.style.top = top2;
		el2.innerHTML = unescape(txt);
		el2.style.display = 'block';
		
		fadeToolTip(true);
	} else {
		fadeToolTip(false);
	}
}


//--------------------------------------------------------------------------------------------

initToolTip();
