window.onerror = null;
window.defaultStatus = '';

var N = navigator.appName;
var V = parseInt(navigator.appVersion);
var loaded=0;
var n3 = (N == "Netscape" && V < 4);
var i3 = (N == "Microsoft Internet Explorer" && V < 4);
var n4 = (N == "Netscape" && V >= 4);
var i4 = (N == "Microsoft Internet Explorer" && V >= 4);

var ActiveLayer="";
var ActiveMenu="";

var ActiveSubLayer="";
var ActiveSubMenu="";

var X=0;
var Y=0;

var loading = true;

if (n4 || i4)
{
    if (navigator.appName == "Netscape") 
    {
		layerStyleRef="layer.";
		layerRef="document.layers";
		styleSwitch="";
    }
    else
    {
        layerStyleRef="";
        layerRef="document.all";
        styleSwitch=".style";
	}
}
if (n4)
{
	document.captureEvents(Event.MOUSEMOVE);
	document.onMouseMove = get_pos;
	// window.captureEvents(Event.RESIZE);
	// window.onResize = resize;
}
// ---------------------------
function resize (evnt)
{
	if (!loading)
		window.history.go(0);
		
	loading = false;
		
}
// ---------------------------
function get_pos(evnt)
{
	X = evnt.pageX;
	Y = evnt.pageY;

	// try to find submenu
	if (ActiveLayer != "")
	{
		var parent = document.layers[ActiveLayer];
		var menu = parent.above;
		while (menu)
		{
			if (menu.parentLayer == parent)
			{
				left   = menu.pageX;
				top    = menu.pageY;
				var right  = left + menu.clip.right;
				var bottom = top  + menu.clip.bottom;

				if (X  >= left && X <= right &&
					Y  >= top  && Y <= bottom )
				{
			
					name = menu.name;
					if (name.substr (0,1) == "M")
					{
						name = name.substr (1);
						showSubLayer(name);
						return;
					}
			
				}
			}
			
			menu = menu.siblingAbove;
		}
		
		if (ActiveSubLayer != "")
			hideThisSubLayer ();

	}

	var x = 0;
	var max = document.layers.length;

	for (x=0; x < max;x++)
	{
		l = document.layers[x];
		name = l.name;
		if (name.substr (0,1) == "M")
		{
			var left   = l.pageX;
			var top    = l.pageY;
			var right  = left + l.clip.right;
			var bottom = top  + l.clip.bottom;

			if (X  >= left && X <= right &&
				Y  >= top  && Y <= bottom )
			{
				name = name.substr (1);
				showLayer(name);
				return;
			}
		}
	}
	
	if (ActiveLayer != "")
		hideThisLayer ();
	
}

// ---------------------------
function showLayer(layer)
{

	if (n4 || i4) 
	{

		if (ActiveLayer != "")
		{	
			eval(layerRef+'["'+ActiveLayer+'"]'+styleSwitch+'.visibility="hidden"');
		}

		ActiveLayer = 'L'+ layer;
		ActiveMenu  = 'M'+ layer;
		
		if (i4)
		{
		
			var x= window[ActiveMenu].offsetLeft+97;
			var y= window[ActiveMenu].offsetTop+window[ActiveMenu].offsetHeight-17;	
			var parent;

			for (parent=window[ActiveMenu].offsetParent;
				 parent != null;parent=parent.offsetParent)
			{
			   x = x + parent.offsetLeft;
			   y = y + parent.offsetTop;
			}

          document.all[ActiveLayer].style.left=x;
		    document.all[ActiveLayer].style.top=y;
			document.all[ActiveLayer].style.visibility='visible';
		
		}
		if (n4)
		{
			x = document.layers[ActiveMenu].pageX+85;
			y = document.layers[ActiveMenu].pageY + document.layers[ActiveMenu].clip.height-10;
			
			document.layers[ActiveLayer].left = x;
			document.layers[ActiveLayer].top = y;
			document.layers[ActiveLayer].visibility = true;
		}
	}
}


// ---------------------------
function hideThisLayer()
{
	if (n4 || i4) 
	{
		if (ActiveSubLayer == "") // can hide only in no submenu open !!
		{
			var element;
			var parent = null;
			if (i4)
			{
				X = window.event.x;
				Y = window.event.y+3;
				
				element = document.elementFromPoint(X,Y);
				
				
				if (element)
				{
					for (parent=element.parentElement;
						 parent!= null;parent=parent.parentElement)
						if (parent.id == ActiveLayer)
							break;
				}
			}
				
			if (n4)
			{
				Y = Y+3;// shift
					
				var left   = document.layers[ActiveLayer].left;
				var top    = document.layers[ActiveLayer].top;
				var right  = document.layers[ActiveLayer].left + 
							 document.layers[ActiveLayer].clip.right;
				var bottom = document.layers[ActiveLayer].top + 
							 document.layers[ActiveLayer].clip.bottom;

				if (X  >= left && X <= right &&
					Y  >= top  && Y <= bottom )
					parent = true;
			}
				
			if (!parent)
			{
           if (ActiveLayer!="")
             eval(layerRef+'["'+ActiveLayer+'"]'+styleSwitch+'.visibility="hidden"');
	        ActiveLayer="";
			}
		}
	}
}

// ---------------------------
function showThisLayer()
{
    if (n4 || i4 && ActiveLayer != "")
		eval(layerRef+'["'+ActiveLayer+'"]'+styleSwitch+'.visibility="visible"');
         
}
