// JavaScript Document
if (window.addEventListener)
window.addEventListener("load", sfHover, false)
else if (window.attachEvent)
window.attachEvent("onload", sfHover)

document.onmousemove = mouseMove;
document.onclick=function (ev)
{
	var ns 			= (navigator.appName.indexOf("Netscape") != -1);
	var ie 			= (navigator.appName.indexOf("Microsoft") != -1);
	ev         		= ev || window.event;
	var target   	= ev.target || ev.srcElement;
	var kCode		= FindKeyCode(ev); //mouse click event, FIREFOX(1=left click,2=middle click(scroll button),3=right click),IE(0=left click);
	var mousepos	= mouseCoords(ev);

	if (!ns && target)
	{
		mouseX = getLeft(target);
		mouseY = getTop(target);
	}
	if (target)
	{
		mouse_click_x	= Left(target) || mousepos.x;
		mouse_click_y	= Top(target) || mousepos.y;;
	}
	if (target && target.form)
	{//request an authentication key
		//if (!getCookie("key"))
		getPage('?q=RequestKey',document.createElement('div'),'',true);
		activeTarget = target;
	}
	if (target && target.parentNode && target.parentNode.nodeName=='A')
		target = target.parentNode;
		
	if (kCode<2 && target && target.nodeName=='A' && target.href && target.href.indexOf("javascript")<0)
	{
		if (target.href.indexOf("Galleries.php")>-1)
		{
			window.location = target.href.replace(/Galleries.php/g,'');
			return false;
		}
		else if (target.href.indexOf("Default.php")>-1)
		{
			window.location = target.href.replace(/Default.php/g,'');
			return false;
		}
	}
	/*if (kCode<2 && target && target.nodeName=='A' && target.href && target.href.indexOf("javascript")<0 && !target.getAttribute("target") && (target.href.indexOf('Default.php')>=0 || target.href.indexOf('index.php')>=0) && window.location.toString().indexOf('Galleries')<0)
	{
		var url		= window.location.toString().split("#");
		var aname	= getQuery('dir',target.href) || getQuery('page',target.href);
		var anchor	= document.getElementById((ie) ? (url[1] || "theContent") : "theContent");

		anchor.name	= aname;
		if (ie)
		anchor.id	= aname;
		window.setTimeout(function()
		{
		window.location	= url[0].split("index.php")[0] + '#' + aname;
		},700);
		//window.location = window.location.toString()+((window.location.toString().indexOf('#theContent')>0)?'':'#theContent');

		getPage(target.href.replace(document.getElementById('Content'),'Default.php','index.php'),'',loadMap);
		Hor_Nav('hor-nav',getQuery('dir',target.href)||getQuery('page',target.href));
		if (lastHorMenu)
			lastHorMenu.style.display='none';



		return false;
	}
	else
		return true;*/

}
function mouseMove(ev)
{
	ev         		= ev || window.event;
	var target   	= ev.target || ev.srcElement;
	var mousePos 		= mouseCoords(ev);
	mouseE = ev;//public event for mouse move;
	mouseX = mousePos.x;
	mouseY = mousePos.y;

	tooltip(target);
	
	if (lastHorMenu)
	{
		if (target!=document.getElementById("hor-nav") && !isChild(target,document.getElementById("hor-nav")) && !isChild(target,lastHorMenu))
		{
			lastHorMenu.style.display='none';
			lastHorMenu=null;
		}
	}
	return true;
}

function mouseCoords(ev){
	ev = ev || window.event;
	var target   		= ev.target || ev.srcElement;
	if(ev.pageX || ev.pageY){
		//document.title = ev.pageX + "x" + ev.pageY;
		return {x:ev.pageX, y:ev.pageY};
	}
	else if(target && target.nodeName!='A' && target.parentNode && target.parentNode.nodeName=='LI')
	{//document.title = (ev.clientX + document.body.scrollLeft - document.body.clientLeft) + "x" + (ev.clientY + document.body.scrollTop  - document.body.clientTop);
		return {
		x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
		y:ev.clientY + document.body.scrollTop  - document.body.clientTop	};
	}
	else
		return {
		x:0,y:0};
}
function getMouseOffset(target, ev){
	ev = ev || window.event;

	var docPos    = getPosition(target);
	var mousePos  = mouseCoords(ev);
	return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y};
}
function getPosition(e){
	var left = 0;
	var top  = 0;
	e         			= e || window.event;
	while (e.offsetParent){
		left += e.offsetLeft + (e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);
		top  += e.offsetTop  + (e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);
		e     = e.offsetParent;
	}


	left += e.offsetLeft + (e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);
	top  += e.offsetTop  + (e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);

	return {x:left, y:top};

}