var JavaScriptTooltips_fadeInSpeed;

var JavaScriptTooltips_fadeOutSpeed;
var JavaScriptTooltips_fadeOutDelay;

var JavaScriptTooltips_fadeInDelay;

var JavaScriptTooltips_maximumOpacity;
var JavaScriptTooltips_offsetX;

var JavaScriptTooltips_offsetY;

function dataArray(opacity, timer, context) {
	this.opacity = opacity;
	this.timer = timer;
	this.context = context;
}

var tooltipData = new Array();

function show_new(context, content, event) {
	content=unescape(content);
	content = '<div class="PHPTooltips_Main">'+content+'</div>';
	show(context, content, event);
}

function show(context, content, event) {
    content = unescape(content);

	if (!context.id) {
		var HTMLelID = '';
		var letters = 'abcdefghijklmnopqrstuvwxyz';
		var numbers = '0123456789';
		for (i = 0; i < 12; i++) {
			HTMLelID += Math.floor(Math.random() * 2) == 0 ? letters.charAt(Math.floor(Math.random() * 26)) : numbers.charAt(Math.floor(Math.random() * 10));
		}
		context.id = HTMLelID;
	}

	tooltipID = context.id + "_tooltip";
	if (!$(tooltipID)) {

		tooltipID = tooltipID;
		tooltipData[tooltipID] = new dataArray(0, false, context);

		var newTooltip = document.createElement("div");
		newTooltip.id = tooltipID;
		newTooltip.style.position = "absolute";
		newTooltip.style.display = "block";
		newTooltip.style.left = "0px";
		newTooltip.style.top = "0px";
		newTooltip.style.zIndex = "99";
		newTooltip.style.width = "auto";
		newTooltip.style.height = "auto";

		document.body.appendChild(newTooltip);

		context.onmouseout = function() { hide(tooltipID) }

		$(tooltipID).onmouseover = function () { _fadeIn(tooltipID); }
		$(tooltipID).onmouseout = function () { hide(tooltipID); }
		$(tooltipID).onclick = function () { hide(tooltipID, true); }

		 $(tooltipID).innerHTML = content;
	}
	$(tooltipID).style.display = 'block';

	var posx = Event.pointerX(event);
	var posy = Event.pointerY(event);

	width = $(tooltipID).offsetWidth;
	height = $(tooltipID).offsetHeight;
	leftPos = posx + JavaScriptTooltips_offsetX;
	topPos = posy - height - JavaScriptTooltips_offsetY;

	$(tooltipID).style.left = leftPos + "px";
	$(tooltipID).style.top = topPos + "px";

	_fadeIn(tooltipID);
}

/**
 * Hides a tooltip
 *
 * @access private
 */
function hide(tooltipID, instantly) {
		if (tooltipData[tooltipID].opacity >= JavaScriptTooltips_maximumOpacity && !instantly) {
				tooltipData[tooltipID].timer = setTimeout(fadeOut(tooltipID), JavaScriptTooltips_fadeOutDelay);
		} else {
			tooltipData[tooltipID].timer = setTimeout(fadeOut(tooltipID), 1);
		}
}


function fadeIn(tooltipID){
		clearTimeout(tooltipData[tooltipID].timer);
		return '_fadeIn(\'' + tooltipID + '\')';
}


function _fadeIn(tooltipID){
		$(tooltipID).show();

}


function fadeOut(tooltipID) {
		clearTimeout(tooltipData[tooltipID].timer);
		return '_fadeOut(\'' + tooltipID + '\')';
}


function _fadeOut(tooltipID) {
		$(tooltipID).hide();
}


function setOpacity(tooltipID, value) {
		$(tooltipID).style.opacity = value / 100;
}

