dom = (document.getElementById) ? true : false;
nn4 = (document.layers) ? true : false;
ie = (document.all) ? true : false;
ie4 = (!dom && ie) ? true : false;
isLoaded = false;

function init() {
	isLoaded = true;
}



var t = 0;
var mTimer = 0;
var tmpObj;
//--------------------------------------------------------------------------------
function leerDiv (name, parent, left, current) {
	this.name = name;
	this.parent = parent;
	this.left = left;
	this.current = "";
	this.prev = "";
	return this;
}
leerOrder = new Array(	new leerDiv("zeroLevel",false,0),
								new leerDiv("firstLevel",0,0),
								new leerDiv("secondLevel",1,200),
								new leerDiv("thirdLevel",2,400));
currLevel = 0;
Current_X = 0;
start_y=0;


//--------------------------------------------------------------------------------
function lightUp(which, level,menu_level,item,obj, parent_obj) {

try
	{
		tmp_var = my_direction;
	}
	catch(e)
	{
		my_direction="h";
	}
	try 
	{
		tmp_Y = ofs_Y;
	}
	catch(e)
	{
		if (my_direction=="h")
			ofs_Y = 21;
		else
			ofs_Y = 0;
	}

	try 
	{
		tmp_X = ofs_X;
	}
	catch(e)
	{
		if (my_direction=="v")
			ofs_X = 100;
		else
			ofs_X = 0;
	}
	

	try
	{
		tmp_var = background_color;
	}
	catch(e)
	{
		background_color = "#FFFFFF";
	}

	try
	{
		tmp_var = border_color;
	}
	catch(e)
	{
		border_color = "#000000";
	}

	try
	{
		tmp_var = text_color;
	}
	catch(e)
	{
		text_color = "#000000";
	}

	try
	{
		tmp_var = over_background_color; 
	}
	catch(e)
	{
		over_background_color = "#FFF3CE";
	}

	try
	{
		tmp_var = menu_width;
	}
	catch(e)
	{
		menu_width = 200;
	}

	if (level==0){
		for(i=parent_obj, x=0, y=0; i; i = i.offsetParent)
		{
			x += i.offsetLeft;
			y += i.offsetTop;
		}
		Current_X = x+ofs_X;
		start_y = y+ofs_Y;
	}


	if (level>0) obj.bgColor = over_background_color;
	if (t != 0) clearTimeout(t);
	tmpObj = obj;
	mTimer = setTimeout ("eval(\"lightUpT(\'"+which+"\',"+level+","+menu_level+","+item+")\")",250);
}
function lightUpT(which, level,menu_level,item) {
	if (t != 0) clearTimeout(t);

	if (currLevel > 0 && leerOrder[leerOrder[currLevel].parent].current == which) return;

	if (level < currLevel) {
		currLevel = level;
		restDown();
	}

	leerOrder[currLevel].current = which;

	if (leers[which] && isLoaded && (currLevel < leerOrder.length - 1)) {
		currLevel++;
		fillLeer(which,currLevel,menu_level,item,tmpObj);
	}
}

//--------------------------------------------------------------------------------
function lightDn(which, level,obj) {
	clearTimeout (mTimer);
	t = setTimeout("allDown('"+which+"', '"+level+"')",500);
	if (level>0) obj.bgColor=background_color;
	lightsDown(which, level)
}

//--------------------------------------------------------------------------------
function lightsDown(which, level) {
	leerOrder[level].prev = which;
	restDown();
}

//--------------------------------------------------------------------------------
function allDown(which, level) {
	currLevel = 0;
	for (i in leerOrder) if (i > 0) hideElem(leerOrder[i].name);
}

//--------------------------------------------------------------------------------
function restDown() {
	for (i in leerOrder) if (i > currLevel) hideElem(leerOrder[i].name);
}

//--------------------------------------------------------------------------------
function getPosition(strName, activeLayer) {
var pos = 0;
	
	if(nn4)
		{
			if(document.images[strName]) 
			{ 		
				pos = strName.y;
				}
			else
			{
				if(!document.layers[activeLayer]) return -1;
				pos = document.layers[activeLayer].y + strName.y;
				
			}
			
		}
	else
		{
		
			var oItem = strName.offsetParent;
			pos = strName.offsetTop; //document.images[strName].offsetTop;
		while(oItem)
		{
			pos += oItem.offsetTop;
			oItem = oItem.offsetParent;
		}
		}
		return pos;
}
//--------------------------------------------------------------------------------
function fillLeer(which,level,menu_level,item,obj) {
	var yoff;
	var strEvents;
	var	strTemp,strColS,tmpItem,tmpInc;
	tmpInc=0;
	var curNodes = leerOrder[leerOrder[level].parent].current;


//		moveElem(leerOrder[level].name,leerOrder[level].left+(menu_width*menu_level),yoff);
	


	createdLeer = "<TABLE WIDTH=\""+menu_width+"\" BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"0\" BGCOLOR=\""+border_color+"\"><TR><TD>" + 
	"<TABLE WIDTH=\"100%\" BORDER=\"0\" CELLSPACING=\"1\" CELLPADDING=\"3\">";

	for (i = 0; i < leers[curNodes].length; i++) {
		if (items[leers[curNodes][i]])
		{
			tmpItem=tmpInc+item;
			if (''+leers[leers[curNodes][i]]!='undefined')
			{
				strTemp="<\/td><td ALIGN=\"RIGHT\"><img src=\"/img/arrow.gif\"><\/td><\/tr><\/table>";
				strColS="<table WIDTH=\"100%\" BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"0\"><tr><td>";
			}
			else
			{
				strTemp="";
				strColS="";
			}

					strEvents = " onMouseOver=\"lightUp('"+leers[curNodes][i]+"','"+level+"','"+menu_level+"',"+tmpItem+",this, this);\" "+
					"onMouseOut=\"lightDn('"+leers[curNodes][i]+"','"+level+"',this);\"";
			createdLeer += 	"<TR><TD style='cursor : hand;' BGCOLOR=\""+background_color+"\"";
			if(!nn4) createdLeer += strEvents;
			createdLeer += ">"+strColS+"<A CLASS='menu' HREF='"+items[leers[curNodes][i]].url+"' TITLE='"+items[leers[curNodes][i]].title+"' ";
			
			if(nn4) createdLeer += strEvents;
				createdLeer +=	">" + items[leers[curNodes][i]].def+
								"<\/A>"+strTemp+"<\/TD><\/TR>";
			tmpInc++;
			}
	}
	createdLeer += "<\/TABLE></TD><\/TR><\/table>"
	rewriteElem(leerOrder[level].name, createdLeer);
	if (level>1)
		yoff=getPosition(obj,leerOrder[level-1].name)-1;
	else 
		yoff=start_y+item*ofs_Y;

	if (level>1)
	{
		if ((Current_X +menu_width+menu_width)>document.body.clientWidth)
			moveElem(leerOrder[level].name,Current_X -menu_width,yoff);
		else
			moveElem(leerOrder[level].name,Current_X +menu_width,yoff);
	}
	else
	{
		if ((Current_X +menu_width)>document.body.clientWidth)
			moveElem(leerOrder[level].name, document.body.clientWidth-menu_width,yoff);
		else
			moveElem(leerOrder[level].name, Current_X,yoff);
	}

	showElem(leerOrder[level].name);
}

//--------------------------------------------------------------------------------
function rewriteElem(elemId, contents) {
	if (dom) document.getElementById(elemId).innerHTML = contents;
		else if (nn4) {
			document.layers[elemId].document.open();
			document.layers[elemId].document.write(contents);
			document.layers[elemId].document.close();
		} else if (ie4) document.all[elemId].innerHTML = contents;
}

//--------------------------------------------------------------------------------
function moveElem(elemId, xoff, yoff) {
	if (dom) {
		document.getElementById(elemId).style.left = xoff;
		document.getElementById(elemId).style.top = yoff;
	} else if (ie4) {
		document.all[elemId].style.left = xoff;
		document.all[elemId].style.top = yoff;
	} else if (nn4) {
		document.layers[elemId].left = xoff;
		document.layers[elemId].top = yoff;
	}
}

//--------------------------------------------------------------------------------
function showElem(elemId) {
	if (dom) document.getElementById(elemId).style.visibility = "visible";
		else if (ie4) document.all[elemId].style.visibility = "visible";
			else if (nn4) document.layers[elemId].visibility = "show";
}

//--------------------------------------------------------------------------------
function hideElem(elemId) {
	if (dom) document.getElementById(elemId).style.visibility = "hidden";
		else if (ie4) document.all[elemId].style.visibility = "hidden";
			else if (nn4) document.layers[elemId].visibility = "hide";
}

 

	
