
cnt = 0;
colorOn="#0066CC";
colorOff="#003366";
TOP = 0;
LEFT = 0;
deltaX = 0;
deltaY = 0;

var item = new Array();

//--------------------------------------------------
navInfo = navigator.userAgent.toLowerCase();
ie      = navInfo.indexOf('msie')!=-1?1:0;
ns		= navInfo.indexOf('mozilla') != -1 && !ie ? 1:0;
ns56ie5 = (document.getElementById);
ie4		= !ns56ie5 && (document.all);
ns4 	= !ns56ie5 && (document.layers);

//--------------------------------------------------
function makeItem(main,link,textStr,height,width,style,position){
    imageon="";imageoff="";
	switch(position) {
		case 1: imageon = "url("+IMAGE_FILE_ON_1+")";imageoff = "url("+IMAGE_FILE_OFF_1+")";
			break;
		case 2:imageon = "url("+IMAGE_FILE_ON_2+")";imageoff = "url("+IMAGE_FILE_OFF_2+")";
			break;
		case 3:imageon = "url("+IMAGE_FILE_ON_3+")";imageoff = "url("+IMAGE_FILE_OFF_3+")";
			break;
		case 0: break;
		default:	alert(position);

	}


	tmp = { main:main,link:link,str:textStr,h:height,w:width,backImageOn:imageon,backImageOff:imageoff,style:style};
  	if (main)
	{
		tmp.isSub = false;
		groupNumber = cnt;
	}
	else
	{
		if(item[cnt-1].main) item[cnt-1].isSub = true;
		tmp.group = groupNumber;
	}
  	item[cnt++] = tmp;
}
//------------------------------------------------
function runMenu(){
	if(ie4)
	{
	 	drawAllLayersIE4();
		getAllLayersIE4();
		setColorVisibilityIE4();
		setAllEventsIE4();
	}
	else
	{
		printClass();
		drawAllLayers();
		getAllLayers();
		positionAllLayers();
		setColorVisibility();
		setAllEvents();
	}

}
//-----------------------------------------------
function printClass(){
     tmp ="\n<style type=\"text/css\">\n";
     tmp +="\tDIV.dropdown{position:absolute;z-index:51;}\n";
     tmp +="</style>\n";
     document.write(tmp);
}
//-------------------------------------------------
function drawAllLayersIE4()
{
	tmp ="";
	isSub = false;
	for(i=0; i!= cnt;i++)
	{
		if (item[i].main)
		{
			tmp += (isSub)?"</div>\n":"";
			tmp += "<div class=\"dropdown\" id=\"L"+i+"\" style=\"position:absolute;top:"+TOP+
				";left:"+LEFT+";height:"+item[i].h+"; width:"+item[i].w+
				";"+item[i].style+"\"><a title=\"\" class=\"menu\" href=\""+item[i].link+"\">"+
				""+item[i].str+"</a></div>\n";
			isSub = item[i].isSub;
			if (isSub)
			{
				tmp += "<div id=\"S"+i+"\" style=\"position:absolute; top:"+(TOP+item[i].h)+
					";left:"+LEFT+";\">\n";
			}
			LEFT += item[i].w;
		}
		else
		{
			tmp += "<div class=\"dropdown\" id=\"L"+i+"\" style=\"position:relative; height:"+item[i].h+
			"px; width:"+item[i].w+"px;\"><a title=\"\" class=\"menu\" href=\""+item[i].link+
				"\" >"+
				item[i].str+"</a></div>\n";
		}
	}

	tmp += (isSub)?"</div>\n":"";
	document.write(tmp);
}
function drawAllLayers()
{
	sigclase = "menu";
	tmp="";
	for(i=0;i<cnt;i++) {
	  tmp +="<div id=\"L"+i+"\" class=\"dropdown\" style=\""+item[i].style+"\">";

	  if(!item[i].main) //solo los subitems llevan link
	  	tmp += "<a title=\"\" class=\""+sigclase+"\" href=\""+item[i].link+"\">"+item[i].str+"</a>";
	  else
	    tmp += item[i].str;

	  tmp += "</div>\n";

	  if(i+1<cnt && item[i].main && !item[i+1].main) //si este era un main el proximo es el first sub
	  	sigclase = "menu_first_item";
	  else
	  	sigclase = "menu";
	}
	document.write(tmp)
	//alert(tmp);
}
//------------------------------------------------
function getAllLayersIE4()
{
	for(i=0;i<cnt;i++)
	{
		if (item[i].main&&item[i].isSub) item[i].S = getLayerHandle("S"+i);
		item[i].L = getLayerHandle("L"+i);
	}
}
function getAllLayers()
{
	for(i=0;i<cnt;i++)
	item[i].L = getLayerHandle("L"+i);
}
//------------------------------------------------
function positionAllLayers()
{
	currTop = TOP;
	currLeft = LEFT;
	for(i=0;i!=cnt; i++)
	{

		if(item[i].main)
		{
			currTop = TOP;
			currLeft = LEFT;
			LEFT += item[i].w;
		}
		positionLayer(item[i].L,currTop,currLeft,item[i].h,item[i].w);
		currTop += item[i].h;
		offItem(i);
	}
}
//-------------------------------------------------------------
function setColorVisibilityIE4()
{
	for(i=0;i<cnt;i++)
	{
		if(item[i].main)
		{
			setVisibility(item[i].L,true);
			if(item[i].isSub) setVisibility(item[i].S,false);
		}
		else setColor(item[i].L,colorOff);
	}
}
function setColorVisibility()
{
	for(i=0;i<cnt;i++)
	{
		if(!item[i].main)
		{
			setVisibility(item[i].L,false);
			setColor(item[i].L,colorOff);
		}
	}
}
//-------------------------------------------------------------
function setAllEventsIE4()
{
	for(i=0;i<cnt;i++)
	{
		if(item[i].main && item[i].isSub)
		{
			item[i].L.onmouseover = new Function("onSub("+i+")");
			item[i].L.onmouseout = new Function("offSub("+i+")");
			item[i].S.onmouseover = new Function("onSub("+i+")");
			item[i].S.onmouseout = new Function("offSub("+i+")");
		}
		else if (!item[i].main)
		{
		 	item[i].L.onmouseover = new Function("onItem("+i+")");
			item[i].L.onmouseout = new Function("offItem("+i+")");
		}
	}
}
function setAllEvents()
{
	for(i=0;i<cnt;i++)
	{
		if(item[i].main && item[i].isSub)
		{
			item[i].L.onmouseover = new Function("onAllSub("+i+")");
			item[i].L.onmouseout = new Function("offAllSub("+i+")");
		}
		else if (!item[i].main)
		{
		 	item[i].L.onmouseover = new Function("onAllSub("+item[i].group+"); onItem("+i+")");
			item[i].L.onmouseout = new Function("offAllSub("+item[i].group+"); offItem("+i+")");
		}
	}
}
//--------------------------------------------
function getLayerHandle(name)
{
   if (ns4)
   {
       tmpLayer = eval("document.layers." +name);
   }
   else if (ns56ie5)
   {
      tmpLayer = document.getElementById(name);
   }
   else if (ie4)
   {
         tmpLayer = document.all[name];
   }
   return tmpLayer;

}
//--------------------------------------------------
function positionLayer(item,top,left,height,width)
{
    if(ns)
	{
     top = top - deltaX; //offsetting for diffrent browser
     left= left - deltaY;
    }
    if(ns56ie5||ie4)
	{
     item.style.top    = top;
     item.style.left   = left;
     item.style.height = height;
     item.style.width  = width;
     item.style.clip = 'rect(0,'+width+','+height+',0)';
    }
	else if (ns4)
	{
     item.top        = top;
     item.left       = left;
     item.offsetWidth   = width;
     item.offsetHeight = height;
     item.clip.right   = width;
     item.clip.bottom  = height;
    }

}

function setColor(item,color)
{
     if(this.ns4)item.bgColor = color;
     else item.style.backgroundColor = color;

}
function setBackImage(item,image)
{
    item.style.backgroundImage = image;

}
//------------------------------------------------
function setVisibility(item,vis)
{
   if (ns56ie5||ie4)
   {
       if(vis)item.style.visibility = 'visible';
       else item.style.visibility = 'hidden';
   }
   else if (ns4)
   {
       if(vis)item.visibility = 'show';
       else item.visibility = 'hide';
   }
}
//-------------------------------------------------
function onSub(indx){ setVisibility(item[indx].S,true);}
function offSub(indx){ setVisibility(item[indx].S,false);}
function onItem(indx){ //setColor(item[indx].L,colorOn);
			setBackImage(item[indx].L, item[indx].backImageOn);
	}
function offItem(indx){ //setColor(item[indx].L,colorOff);
		setBackImage(item[indx].L, item[indx].backImageOff);
}
function onAllSub(indx){for(i=indx+1; i<cnt&&!item[i].main;i++) setVisibility(item[i].L,true);}
function offAllSub(indx){for(i=indx+1; i<cnt&&!item[i].main;i++) setVisibility(item[i].L,false);}
