String.prototype.trim = function()
{
    return this.replace(/(^\s*)|(\s*$)/g, "");
}

var _ultraTab = null;

function UltraGetAnchor(string)
{
	var index = string.indexOf("#");
	if (index>=0)
	{
		var nString = string.substring(index,string.length)
		return nString.replace("#","");
	}
	else
	{
		return "";
	}
}

function UltraTab()
{	
	this.selectedElement = new Array();
	
	this.parseRecursive = function(node,level)
	{
		var isActivated = false;
		if (arguments.length>2)
			isActivated = arguments[2];
		
		if (node==null)
			return false;

		for(var index=0; index<node.childNodes.length; index++)
		{
			var currEl = node.childNodes[index];
			if (currEl!=null)
			{
				if (currEl.nodeName=="A" && (currEl.parentNode.nodeName=="LI" || currEl.parentNode.parentNode.nodeName=="LI"))
				{
					if (currEl.href.indexOf("#")!=-1)
					{	
						var elId = UltraGetAnchor(currEl.href);
						if (elId.trim()!="")
						{
							if (isActivated==false)
							{
								var elRef = document.getElementById(elId);
								if (elRef!=null)
								{
									elRef.parentNode.style.display = "none";
								}

								currEl.setAttribute("level",level);
								currEl.setAttribute("levelIndex",this.selectedElement[level].length-1);
							}
							else
							{
								currEl.setAttribute("level",level);
								if (this.selectedElement[level] == null)
								{
									this.selectedElement[level] = new Array(currEl);
									currEl.setAttribute("levelIndex",this.selectedElement[level].length-1);
								}
								else
								{
									this.selectedElement[level].push(currEl);
									currEl.setAttribute("levelIndex",this.selectedElement[level].length-1);
								}
							}

							currEl.onclick = function()
							{
								var currLevel = this.getAttribute("level");
								var currLevelIndex = this.getAttribute("levelIndex");
								
								var el = _ultraTab.selectedElement[currLevel][currLevelIndex];
								if (el!=null)
								{
									if (el.parentNode.nodeName=="LI"){
										el.parentNode.className = el.parentNode.className.replace("active","");
									}else{
										el.parentNode.parentNode.className = el.parentNode.parentNode.className.replace("active","");
									}
									
									var elId = UltraGetAnchor(el.href);
									if (elId!=null)
									{
										var oldEl = document.getElementById(elId);	
										if (oldEl!=null){
											oldEl.parentNode.style.display = "none";
										}
									}
								}
								
								var toDisplay = UltraGetAnchor(this.href);
								if (this.parentNode.nodeName=="LI")
								{
									if (this.parentNode.className.indexOf("active")==-1)
									{
										this.parentNode.className += " active";
									}
								}
								else
								{
									if (this.parentNode.parentNode.className.indexOf("active")==-1)
									{
										this.parentNode.parentNode.className += " active";
									}									
								}
								
								var elToDisplay = document.getElementById(toDisplay);
								if (elToDisplay!=null)
								{
									var elToDisplay = elToDisplay.parentNode;
									if (elToDisplay!=null)
									{
										elToDisplay.style.display = "block";
									}
								}
								
								_ultraTab.selectedElement[currLevel][currLevelIndex] = this;
								return false;
							}
						}
					}
				}
				else if (currEl.nodeName=="LI")
				{
					if (currEl.className.indexOf("active")!=-1)
					{
						this.parseRecursive(currEl,level,true);		
					}
					else
					{
						this.parseRecursive(currEl,level,false);
					}					
				}
				else if (currEl.nodeName=="UL")
				{
					level++;					
					this.parseRecursive(currEl,level,false);
				}
				else
				{
					this.parseRecursive(currEl,level,isActivated);
				}
			}
		}
	}

	this.parseRecursive(document.getElementById("domtab"),0,false);
}

var argumentos =new Array();
argumentos[0]="width=340,height=240,resize=no,scrollbars=no";

var POPUP = {     
   open : function(a,where,args) {
            a.onclick = function(){
               window.open( where, '', args);
               return false;
            }     
   },

   init : function() {
      var external = document.links;
      for (var k=0; k<external.length; k++){		
         if (external[k].href && external[k].className && (external[k].className.split("-")[0].indexOf("popup")!=-1)) {		 		
				 var arg="";	
				 if(external[k].className.split("popup")[1].indexOf("undefined")==-1){
				 	var index = parseInt(external[k].className.split("popup")[1]);				
					if(!isNaN(index)&&(index>=0)&&(index<argumentos.length))
						arg = argumentos[index];   
					}
          		 POPUP.open(external[k],external[k].href,arg);
         }
      }
   }
}

window.onload = function()
{
	_ultraTab = new UltraTab();
	POPUP.init();
}