
	


	function mouse_event_handler(name, url, title, desc)
	{
		var toolTipName = 'master_tooltip';
		var obj = document.getElementById(name + '_icon');
		obj.onclick = function(event) { location.href = url; }
		obj.onmousemove = function(event) { setElementPos(event, toolTipName); }
		obj.onmouseover = function(event) { setToolTipContent(toolTipName, title, desc); showElement(toolTipName); }
		obj.onmouseout = function(event) { hideElement(toolTipName); }
	}
	function setToolTipContent(name, title, desc)
	{
		var src = '<div id="tooltip_wizard_icon"></div>';
		src += '<h2>' + title + '</h2>';
		src += '<p>' + desc + '</p>';
		document.getElementById(name).innerHTML = src;
	}
	function showElement(name)
	{
		// fadeElement(name, 0.0, 0.9, 0.05, 20);
		document.getElementById(name).style.display='block';
	}
	function hideElement(name)
	{
		document.getElementById(name).style.display = 'none';
	}
	function fadeElement(name, start, stop, step, ms)
	{
		document.getElementById(name).style.opacity = start;
		if(start == stop) {
			return;
		}
		if(start < stop)
		{
			start += step;
			if(start > stop) {
				start = stop;
			}
		}
		else
		{
			start -= step;
			if(start < stop) {
				start = stop;
			}
		}
		setTimeout('fadeElement("'+name+'", '+start+', '+stop+', '+step+', '+ms+')', ms);
	}
	function setElementPos(evt, name) {
		var evt = (evt)?evt:( (window.event)?event:null );
		evt.cancelBubble;
		var objectId = (evt.target)?evt.target.id:((evt.srcElement)?evt.srcElement.id:null);
		if(objectId == 0) {
			return;
		}
		var object = document.getElementById(objectId);
		var xp = evt.clientX;
		var yp = evt.clientY;
		var sw = getWindowWidth();
		var sh = getWindowHeight();
		var width = 390; // fixme: hardcoded numbers 
		var height = 140; // fixme: hardcoded numbers 
		var scrolltop = getScrollTop();
		
		xp += 32; // fixme: hardcoded numbers 
		yp += scrolltop - 130;

		if(yp < scrolltop + 8) {
			yp += height + 32;
		}
		if(xp > sw - width) {
			xp -= width + 32;
		}

		document.getElementById(name).style.left = xp  + 'px';
		document.getElementById(name).style.top = yp+ 'px';
	}
	function getScrollWidth() {
		return Math.max(document.documentElement.scrollWidth, document.body.scrollWidth);
	}
	function getScrollHeight() {
		return Math.max(document.documentElement.scrollHeight, document.body.scrollHeight);
	}
	function getWindowWidth() {
		if(window.innerWidth) {
			return window.innerWidth;
		}
		if(document.documentElement && document.documentElement.clientWidth) {
			return document.documentElement.clientWidth;
		}
		return document.body.clientWidth;
	}
	function getWindowHeight() {
		if(window.innerHeight) {
			return window.innerHeight;
		}
		if(document.documentElement && document.documentElement.clientHeight) {
			return document.documentElement.clientHeight;
		}
		return document.body.clientHeight;
	}
	function getScrollTop() {
		if(document.documentElement && document.documentElement.scrollTop) {
			return document.documentElement.scrollTop;
		}
		return document.body.scrollTop;
	}
	function getScrollLeft() {
		if(document.documentElement && document.documentElement.scrollLeft) {
			return document.documentElement.scrollLeft;
		}
		return document.body.scrollLeft;
	}




