function hilite(el,stay)
{
	if(el.getAttribute("highlighted")||el.getAttribute("phighlighted")) return;
	if(!stay && el.getAttribute("phighlighted")) return;
	el.setAttribute("highlighted","1");
	if(document.getElementById)
	{
		if(el.nodeName!="IMG")
		{
			var c=el.getElementsByTagName("IMG");
			if(c.length<1)return;
			el=c[0];
		}
		var src=el.src;
		if(src.match(/phpcache\/[^\/]*_on\//)) return;
		src=src.replace(/(phpcache\/[^\/]*)(\/)/, "$1_hi$2");
		el.src=src;
	}
}
function dehilite(el,stay)
{
	if(!el.getAttribute("highlighted") && !el.getAttribute("phighlighted")) return;
	if(!stay && el.getAttribute("phighlighted")) return;
	el.setAttribute("highlighted","");
	if(document.getElementById)
	{
		if(el.nodeName!="IMG")
		{
			var c=el.getElementsByTagName("IMG");
			if(c.length<1)return;
			el=c[0];
		}
		var src=el.src;
		src=src.replace(/(phpcache\/[^\/]*)_hi(\/)/, "$1$2");
		el.src=src;
	}
}


function addEvent(el, ev, f)
{
	if(el.addEventListener)
	{
		if(typeof f == "string") eval("el.addEventListener(\'"+ev+"\', function(){"+f+"}, false);");
		else el.addEventListener(ev, f, false);
	}
	else if(el.attachEvent)
	{
		if(typeof f == "string") eval("el.attachEvent(\'on"+ev+"\', function(){"+f+"});");
		else el.attachEvent("on"+ev, f);
	}
}

function getAbsolutePosition(el, offsetEl)
{
	var l=0;
	var t=0;
	while (el && el!=offsetEl)
	{
		l += el.offsetLeft;
		t += el.offsetTop;
		el = el.offsetParent;
	}
	return {left:l, top:t};
}
function getScrollXY() {
	var scrOfX = 0, scrOfY = 0;
	if( typeof( window.pageYOffset ) == "number" ) {
		//Netscape compliant
		scrOfY = window.pageYOffset;
		scrOfX = window.pageXOffset;
	} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
		//DOM compliant
		scrOfY = document.body.scrollTop;
		scrOfX = document.body.scrollLeft;
	} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
		//IE6 standards compliant mode
		scrOfY = document.documentElement.scrollTop;
		scrOfX = document.documentElement.scrollLeft;
	}
	return [ scrOfX, scrOfY ];
}
function windowSize() {
	var myWidth = 0, myHeight = 0;
	if( typeof( window.innerWidth ) == "number" ) {
		if(document.body && document.body.clientWidth)
		{
			// Palauttaa Firefoxissa viewportin ilman scrollbareja
			myWidth = document.body.clientWidth;
			myHeight = document.body.clientHeight;
		}
		else
		{
			//Non-IE
			myWidth = window.innerWidth;
			myHeight = window.innerHeight;
		}
	} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		//IE 6+ in "standards compliant mode"
		myWidth = document.documentElement.clientWidth;
		myHeight = document.documentElement.clientHeight;
	} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		//IE 4 compatible
		myWidth = document.body.clientWidth;
		myHeight = document.body.clientHeight;
	}
	return {width:myWidth, height:myHeight};
}


function initTooltips()
{
	var cimg = document.getElementsByTagName("TD");
	for(var i=0; i<cimg.length; i++)
	{
		if(cimg[i].getAttribute("tooltip"))
		{
			addEvent(cimg[i], "mouseover", fireTooltip);
			addEvent(cimg[i], "mouseout", hideTooltip);
		}
	}
}
function fireTooltip(ev)
{
	clearTimeout(window.tooltipTimer);
	if(!ev) ev = window.event;
	if(!ev) return;
	var src = ev.target ? ev.target : ev.srcElement;
	if(!src) return;
	var txt = '';
	while(!txt && src && src.getAttribute)
	{
		txt = src.getAttribute("tooltip");
		src = src.parentNode;
	}
	window.tooltipContent = txt;
	if(!window.tooltipContent) return;
	var s = getScrollXY();
	window.tooltipScroll = s;
	window.tooltipX = ev.clientX;
	window.tooltipY = ev.clientY;
	if(window.tooltipVisible) showTooltip();
	else window.tooltipTimer = setTimeout(showTooltip, 500);
}
function showTooltip()
{
	var dX = 10;
	var dY = 12;
	var tooltipDiv = document.getElementById("tooltipDiv");
	var tooltipContentDiv = document.getElementById("tooltipDivContent");
	if(!tooltipDiv)
	{
		tooltipDiv = document.createElement("DIV");
		tooltipDiv.id = "tooltipDiv";
		var tmp = document.createElement("DIV");
		tmp.id = "tooltipDivBottom";
		tooltipDiv.appendChild(tmp);
		tooltipContentDiv = document.createElement("DIV");
		tooltipContentDiv.id = "tooltipDivContent";
		tmp.appendChild(tooltipContentDiv);
		document.body.appendChild(tooltipDiv);
		addEvent(window, "click", hideTooltip);
		addEvent(document, "click", hideTooltip);
		addEvent(document, "contextmenu", hideTooltip);
	}
	if(tooltipDiv.parentNode != document.body) document.body.appendChild(tooltipDiv);
	tooltipContentDiv.innerHTML = tooltipContent;
	tooltipDiv.style.position = "absolute";
	tooltipDiv.style.left = "-1000px";
	tooltipDiv.style.top = "-1000px";
	tooltipDiv.style.width = "auto";
	tooltipDiv.style.display = "block";
	if(tooltipDiv.offsetWidth*1 > 330) tooltipDiv.style.width = '330px';
	var ws = windowSize();
	tooltipX = tooltipX + tooltipScroll[0] + dX;
	tooltipY = tooltipY + tooltipScroll[1] + dY;
	if(ws.width+tooltipScroll[0] < tooltipX+tooltipDiv.offsetWidth) tooltipX = ws.width + tooltipScroll[0] - tooltipDiv.offsetWidth - dX;
	if(ws.height+tooltipScroll[1] < tooltipY+tooltipDiv.offsetHeight) tooltipY -= tooltipDiv.offsetHeight + Math.round(1.5*dY);
	//alert(tooltipX+' | '+tooltipY);
	tooltipDiv.style.left = tooltipX + "px";
	tooltipDiv.style.top = tooltipY + "px";
	window.tooltipVisible = true;
}
function hideTooltip()
{
	clearTimeout(window.tooltipTimer);
	window.tooltipVisible = false;
	var tooltipDiv = document.getElementById("tooltipDiv");
	if(tooltipDiv) tooltipDiv.style.display = "none";
}
//addEvent(window, "load", initTooltips);

function togglePage(state, closeHandler)
{
	var sSize = { width: document.body.scrollWidth, height: document.body.scrollHeight }
	var wSize =  windowSize();
	var d = document.getElementById('divID_pagematte');
	if(!d)
	{
		d = document.createElement('DIV');
		d.id = 'divID_pagematte';
		d.style.position = 'absolute';
		d.style.left = '0';
		d.style.top = '0';
		d.style.zIndex = '39999';
		d.style.display = 'none';
		d.onclick = function () { var d = togglePage(true); if(d.closeHandler) eval(d.closeHandler+'();'); }
		
		d.style.backgroundColor = '#868689';
		d.style.opacity = '.80';
		d.style.MozOpacity = '.80';
		d.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=80)';
		
		document.body.appendChild(d);
	}
	if(!state) d.closeHandler = closeHandler ? closeHandler : '';
	d.style.width = sSize.width < wSize.width ? wSize.width : sSize.width;
	d.style.height = sSize.height < wSize.height ? wSize.height : sSize.height;
	d.style.display = state ? 'none' : 'block';
	return d;
}
