// JavaScript Document

var scrollUpFlag = false;
var scrollDownFlag = false;
var mainTablePosX = 0;
	
function startup_tasks()
{
	var mainTable = document.body.getElementsByTagName("TABLE")[0];

	if( mainTable )
	{
		if( mainTable.offsetLeft > 0 )
			mainTablePosX = mainTable.offsetLeft;
		else
			mainTablePosX = (mainTable.offsetWidth - mainTable.width)/2;
	}

	deleteEmptySpans();
	deleteNewsBrowserParagraph();
	build_mainmenu();
	build_scroll();
	build_submenu();
}
	
function build_mainmenu()
{
	var treemenu = document.getElementById("treemenu1");
	
	if(treemenu)
	{
		var ultags = treemenu.getElementsByTagName("ul")
	
		for (var t=0; t<ultags.length; t++)
		{
			if (ultags[t].parentNode.parentNode.parentNode.id=="treemenu1")
			{
				if( BrowserDetect.browser!="Firefox")
				    ultags[t].parentNode.style.top = "0px";
				else
				    ultags[t].parentNode.style.top = ultags[t].parentNode.parentNode.offsetHeight + "px";
	
				ultags[t].parentNode.parentNode.onmouseover=function()
				{
					desactivate_allmenus("treemenu1");
					this.getElementsByTagName("div")[0].style.visibility="visible";
				}
			}
			else
			{
				ultags[t].style.position = "relative";
				ultags[t].style.top = "-10px";
			
				ultags[t].parentNode.parentNode.onmouseover=function()
				{
					this.getElementsByTagName("div")[0].style.visibility="visible";
				}
				ultags[t].parentNode.parentNode.onmouseout=function()
				{
					this.getElementsByTagName("div")[0].style.visibility="hidden";
				}
			}
		}
	}
}

function build_submenu()
{
	var divSubmenu = document.getElementById("submenu1");
	var divS1 = document.getElementById("submenu");
	var divS2 = document.getElementById("submenu_nivel2");
	var divS3 = document.getElementById("submenu_nivel3");
	
	if( divSubmenu && divS1 && divS2 && divS3 )
	{			
		divS2.style.top = (divS1.offsetTop+32) + "px";
		divS3.style.top = (divS1.offsetTop+32) + "px";
		divS2.style.left = (mainTablePosX+171) + "px";
		divS3.style.left = (mainTablePosX+171+180) + "px";

		var ultags = divSubmenu.getElementsByTagName("ul")
	
		for (var t=0; t<ultags.length; t++)
		{
			if (ultags[t].parentNode.parentNode.parentNode.id=="submenu1")
			{
				ultags[t].parentNode.parentNode.onmouseover=function()
				{
					desactivate_submenu();
					MostrarSubmenu("2", this.getElementsByTagName("div")[0]);
					
					SacarColorSubmenu( 1 );
					this.getElementsByTagName("A")[0].style.color = "#990000";
				}
			}
		}
	}
}

function MostrarSubmenu( menuId, divObj )
{
  var newUlObj = document.createElement("UL");
  var oldUlObjs = divObj.getElementsByTagName("UL");
  
  if( oldUlObjs.length < 1 )
      return;
      
  for( var i=0; i<oldUlObjs[0].childNodes.length; i++ )
  {
    var newLiObj = oldUlObjs[0].childNodes[i].cloneNode(false);
    var newAObj = oldUlObjs[0].childNodes[i].getElementsByTagName("A")[0].cloneNode(true);
    
    if( menuId == "2" )
    {
    	var subMenuObj = oldUlObjs[0].childNodes[i].getElementsByTagName("DIV");

    	if( subMenuObj.length > 0 )
    	{
    	    var newDivObj = subMenuObj[0].cloneNode(true);
    	    newDivObj.style.visibility = "hidden";
    	    newDivObj.style.position = "absolute";
    	    
	    newAObj.appendChild( newDivObj );
    	
	    newAObj.onmouseover=function()
	    {
	        MostrarSubmenu("3", this.getElementsByTagName("DIV")[0]);

		SacarColorSubmenu( 2 );
		this.style.color = "#990000";
	    }
	}
	else
	{
	    newAObj.onmouseover=function()
	    {
		SacarColorSubmenu( 2 );
		this.style.color = "#990000";
	    }
	}
    }
    else if( menuId == "3" )
    {
	    newAObj.onmouseover=function()
	    {
		SacarColorSubmenu( 3 );
		this.style.color = "#990000";
	    }
    }
    
    newLiObj.appendChild( newAObj );
    newUlObj.appendChild( newLiObj );
  }

  var menuDivObj = document.getElementById("submenu_nivel" + menuId);
  
  for( var i=0; i<menuDivObj.childNodes.length; i++ )
	menuDivObj.removeChild( menuDivObj.childNodes[i] );

  menuDivObj.appendChild( newUlObj );
  menuDivObj.style.visibility = "visible";
}

function SacarColorSubmenu( idSubmenu )
{
  var ulObj = null;
  
  if( idSubmenu == 1 )
    ulObj = document.getElementById("submenu1");
  else
    ulObj = document.getElementById("submenu_nivel" + idSubmenu);
    
  if( ulObj )
  {
    var atags = ulObj.getElementsByTagName("A");
    
    for( var i=0; i<atags.length; i++ )
      atags[i].style.color = "#AF8D0C";
  }
}

function build_scroll()
{
	var divSubmenu = document.getElementById("submenu1");

	var divScroll = document.getElementById("submenu_scroll_div");
	var divScrollBottom = document.getElementById("submenu_scroll_bottom");
	var mainTable = document.body.getElementsByTagName("TABLE")[0];
	
	if( divScroll && divScrollBottom && mainTable )
	{
		divScroll.style.left = mainTablePosX + "px";
		
		if( mainTable.offsetHeight < 600 )
			mainTable.style.height = "600px";

		divScrollBottom.style.height = (mainTable.offsetHeight-600) + "px";

		if( divSubmenu )
		{
			if( divSubmenu.offsetHeight+398 > mainTable.offsetHeight )
				mainTable.style.height = (divSubmenu.offsetHeight+398) + "px";


			if( divSubmenu.offsetHeight > 200 )
			{
				var divScrollUp = document.getElementById("submenu_scroll_up");
				var divScrollDown = document.getElementById("submenu_scroll_down");
				
				divScrollUp.style.top = (divScrollBottom.offsetTop-210) + "px";
				divScrollDown.style.top =  (divScrollBottom.offsetTop+10) + "px";
			
				divScrollUp.style.visibility = "visible";
				divScrollDown.style.visibility = "visible";
			}
		
			setInterval("SubmenuScroller()",50);

			divScrollBottom.style.height = (mainTable.offsetHeight-600) + "px";
		}
	}

	if(divSubmenu)
		divSubmenu.style.visibility = "visible";
	if(divScroll)
		divScroll.style.visibility = "visible";
}

function SubmenuScroller()
{
	var divSubmenu = document.getElementById("submenu1");

	if( scrollUpFlag && divSubmenu.offsetTop < 0 )
		divSubmenu.style.top = (divSubmenu.offsetTop+3) + "px";
	if( scrollDownFlag && divSubmenu.offsetTop+divSubmenu.offsetHeight > 200 )
		divSubmenu.style.top = (divSubmenu.offsetTop-3) + "px";
}

function SubmenuScrollUp(valor)
{
	scrollUpFlag = valor;
}

function SubmenuScrollDown(valor)
{
	scrollDownFlag = valor;
}

function desactivate_submenu()
{
	var submenu2 = document.getElementById("submenu_nivel2");
	if( submenu2 )
		submenu2.style.visibility = "hidden";
		
	var submenu3 = document.getElementById("submenu_nivel3");
	if( submenu3 )
		submenu3.style.visibility = "hidden";
		
	SacarColorSubmenu( 1 );
}

function desactivate_allmenus( menuId )
{
	var menu = document.getElementById(menuId);
	
	if( menu )
	{
		divs = menu.getElementsByTagName("div");
			
		for(var j=0; j<divs.length; j++)
		{
		    var str = divs[j].id;
		    
		    if( str.charAt(str.length-1) == "2" )
		        divs[j].style.visibility = "hidden";
		}
	}
}

function deleteEmptySpans()
{
	var spans = document.getElementsByTagName("span");
	
	for( var i=0; i<spans.length; i++ )
	{
		if( spans[i].childNodes.length < 1 )
			spans[i].parentNode.removeChild( spans[i] );
	}
}

function deleteNewsBrowserParagraph()
{
	var div = document.getElementById("news_list_browse");

	if( div )
	{
		var pars = div.getElementsByTagName("p");
		
		if( pars.length > 0 )
		{
			var padre = pars[0].parentNode;
			padre.innerHTML = pars[0].innerHTML + padre.innerHTML;
			padre.removeChild(pars[0]);
		}
	}
}

function doc_mousepos_cb(e)
{
	getMouseXY(e);

	if( mousey > 365 )
		desactivate_allmenus("treemenu1");
		
	if( mousex > mainTablePosX+420 || mousey < 380 || mousey > 600 )
		desactivate_submenu();
		
	//var obj = document.getElementById("wine_content");
	//obj.innerHTML = "[ X: " + mousex + ", Y: " + mousey + "]";
}

var mousex = 0;
var mousey = 0;

function getMouseXY(e) // works on IE6,FF,Moz,Opera7
{ 
    if (!e) e = window.event; // works on IE, but not NS (we rely on NS passing us the event)

    if (e)
    { 
        if (e.pageX || e.pageY)
        { // this doesn't work on IE6!! (works on FF,Moz,Opera7)
          mousex = e.pageX;
          mousey = e.pageY;
          algor = '[e.pageX]';
          if (e.clientX || e.clientY) algor += ' [e.clientX] '
        }
        else if (e.clientX || e.clientY)
        { // works on IE6,FF,Moz,Opera7
          mousex = e.clientX + document.body.scrollLeft;
          mousey = e.clientY + document.body.scrollTop;
          algor = '[e.clientX]';
          if (e.pageX || e.pageY) algor += ' [e.pageX] '
        }  
    }
}

function findPosX(obj)
{
    var curleft = 0;

    if (obj.offsetParent)
    {
	    while (obj.offsetParent)
	    {
		    curleft += obj.offsetLeft
		    obj = obj.offsetParent;
	    }
    }
    else if (obj.x)
	    curleft += obj.x;

    return curleft;
}

function findPosY(obj)
{
    var curtop = 0;
    
    if (obj.offsetParent)
    {
	    while (obj.offsetParent)
	    {
		    curtop += obj.offsetTop
		    obj = obj.offsetParent;
	    }
    }
    else if (obj.y)
	    curtop += obj.y;
	    
    return curtop;
}

function BotonMouseOver( boton )
{
  boton.style.backgroundColor = "#990000";
}

function BotonMouseOut( boton )
{
  boton.style.backgroundColor = "#4B7884";
}
	
if (window.addEventListener)
{	
	window.addEventListener("load", startup_tasks, false);
	window.addEventListener("mousemove", doc_mousepos_cb, false);
}
else if (window.attachEvent)
{
	window.attachEvent("onload", startup_tasks);
	document.attachEvent("onmousemove", doc_mousepos_cb);
}
