var TREE_RELOAD_NODE = false;//czy klikniecie na grupe ma powodowac odswiezenie strony
var TREE_EXPAND_ALL = false;
var TREE_EXPAND_ONENODE = true;

function MenuItem(divObj)
{
	this.divObj;
	this.imgObj;
	this.lnkObj;
	this.url;
	this.id;
	this.idgroup;
	this.idprev;
	this.islast;
	this.imgOpen = "minus3.gif";
	this.imgClose = "plus3.gif";
	this.imgDefault = "last.gif";
	this.tmpSubTree = "";
		
	this.Init = function()
	{
		this.divObj = divObj;		
		this.id = this.divObj.id;
		var arr = this.id.split("-");
		this.idgroup = arr[0].replace("m","");
		this.idprev = arr[1];
		this.islast = arr[2];		
		this.imgObj = document.getElementById("img_"+this.idgroup);
		this.lnkObj = document.getElementById("lnk_"+this.idgroup); 
		//this.lnkObj.innerText += " 9";
		this.url = document.getElementById("hdn_"+this.idgroup).value;
		this.divObj.style.display = "block";
	}
	
	this.Visible = function()
	{
		if(this.divObj.style.display == "block")
		{
			this.divObj.style.display="none";
		}
		else
		{
			this.divObj.style.display = "block";
		}
	}
	
	this.Hide = function()
	{
		this.divObj.style.display="none";
	}
	
	this.SetImage = function()
	{
		var src = this.imgObj.src;
		var result = src.search(this.imgClose);
		
		if(result != -1)
		{
			result = src.replace(this.imgClose, this.imgOpen);
		}
		else
		{
			result = src.replace(this.imgOpen, this.imgClose);
		}

		this.imgObj.src = result;
	}
	
	this.CloseImage = function()
	{
		var src = this.imgObj.src;
		this.imgObj.src = src.replace(this.imgOpen, this.imgClose);
	}
	
	this.Load = function(displayMode, imageNo)
	{
		if(displayMode == 1)
		{
		    this.divObj.style.display = "block";
		}
		else
		{
		    this.divObj.style.display = "none";
		}
		
		var index = this.imgObj.src.lastIndexOf("/");
		var currentImage = this.imgObj.src.substring(index+1);
		
		if(imageNo == 1)
		{
		    this.imgObj.src = this.imgObj.src.replace(currentImage, this.imgOpen);
		}
		if(imageNo == 2)
		{
		    this.imgObj.src = this.imgObj.src.replace(currentImage, this.imgClose);
		}
	}
	
	this.Init();
}

function Menu(idContener,name,idmark)
{
	this.contener = document.getElementById(idContener);
	this.arrItems = Array();
	this.name = name;
	
	this.Init = function()
	{
		if(this.contener == null)
		{
			return;
		}
		
		var id="";
		
		for(var i = 0; i < this.contener.childNodes.length; i++)
		{
			var item = new MenuItem(this.contener.childNodes[i]);
			this.arrItems.push(item);				
		}
		
		for(var i = 0; i < this.arrItems.length; i++)
		{
			if(this.arrItems[i].idprev != 0)
			{
				this.arrItems[i].Visible();
				this.arrItems[i].divObj.onmouseover = function(){this.className = "divminsub"};
				this.arrItems[i].divObj.onmouseout = function(){this.className = "divmsub"};
			}
			else
			{
				this.arrItems[i].divObj.onmouseover = function(){this.className = "divmin"};
				this.arrItems[i].divObj.onmouseout = function(){this.className = "divm"};
			}
			
			if(this.arrItems[i].islast != 1)
			{
				//this.arrItems[i].imgObj.onclick = new Function(this.name+'.Drill('+this.arrItems[i].idgroup+')');
				this.arrItems[i].divObj.onclick = new Function(this.name+'.ItemAction('+i+','+this.arrItems[i].idgroup+',"'+this.arrItems[i].url+'",'+this.arrItems[i].idprev+')');
			}
			else
			{
				this.arrItems[i].divObj.onclick = new Function(this.name+'.GoUrl("'+this.arrItems[i].url+'",'+this.arrItems[i].idprev+')');
			}

			if(this.arrItems[i].idgroup == idmark)	
			{
				this.arrItems[i].lnkObj.className = "asel";
			}
		}
		
		if(TREE_EXPAND_ALL)
		{
			for(var i = 0; i < this.arrItems.length; i++)
			{
				this.Drill(this.arrItems[i].idgroup);
			}
		}
	}
	
	this.ItemAction = function(iditem,idprev,url,idbaseprev)
	{		
		this.Drill(idprev);
		
		if(TREE_EXPAND_ONENODE && idbaseprev == 0)
		{
			this.tmpSubTree = idprev+",";
			this.GetSubTree(idprev);
			this.tmpSubTree = this.tmpSubTree.substring(0,this.tmpSubTree.length-1);
			this.Hide();
		}
		
		this.Save();
		
		if(TREE_RELOAD_NODE)
		{
			this.GoUrl(url,idbaseprev);
		}
	}
	
	this.GoUrl = function(url,idbaseprev)
	{		
		location.href = url;
	}
	
	this.Drill = function(idprev)
	{
		for(var i = 0; i < this.arrItems.length; i++)
		{
			if(this.arrItems[i].idgroup == idprev)
			{
				this.arrItems[i].SetImage();
			}
			if(this.arrItems[i].idprev == idprev)
			{
				this.arrItems[i].Visible();	
				
				if(this.arrItems[i].imgObj.src.search(this.arrItems[i].imgOpen) != -1 )
				{
					this.Drill(this.arrItems[i].idgroup);
				}							
			}	
		}		
	}
	
	this.GetSubTree = function(idprev)
	{
		for(var i = 0; i < this.arrItems.length; i++)
		{
			if(this.arrItems[i].idprev == idprev)
			{								
				this.tmpSubTree += ""+this.arrItems[i].idgroup+",";
				this.GetSubTree(this.arrItems[i].idgroup);
			}			
		}
	}
	
	this.Hide = function()
	{
		if(this.tmpSubTree.length == 0)
		{
			return;
		}
		
		var arr = Array();
		arr = this.tmpSubTree.split(",");
		
		for(var i = 0; i < this.arrItems.length; i++)
		{
			if(this.FindInArray(arr,this.arrItems[i].idgroup))
			{
				continue;
			}
			else
			{
				this.arrItems[i].CloseImage();
				
				if(this.arrItems[i].idprev != 0)
				{
					this.arrItems[i].Hide();
				}
			}
		}
	}
	
	this.FindInArray = function(arr,value)
	{
		for(var i = 0; i < arr.length; i++)
		{
			if(arr[i] == value)
			{
				return true;
			}
		}
		return false;
	}
	
	this.Save = function()
	{
		var tmp="";
		for(var i = 0; i < this.arrItems.length; i++)
		{
			if(this.arrItems[i].divObj.style.display != "block")
			{
				continue;
			}
			
			tmp += this.arrItems[i].idgroup;
			tmp += ",";
			tmp += "1"; //block
			tmp += ",";
			var src = this.arrItems[i].imgObj.src;
			
			var result = src.search(this.arrItems[i].imgOpen);						
			if(result != -1)
			{
				tmp += "1";//minus3.gif
			}
			else
			{		
			    result = src.search(this.arrItems[i].imgClose);						
			    if(result != -1)
			    {
				    tmp += "2";//plus3.gif
			    }
			    else
			    {
				    tmp += "0";//last.gif
			    }	
			}
			tmp += "|";
		}
		
		tmp = tmp.substring(0,tmp.length-1);
		SetCookie("treemenu",tmp);
	}
	
	this.GetItem = function(idgroup)
	{
	    for(var i = 0; i < this.arrItems.length; i++)
	    {
	        if(this.arrItems[i].idgroup == idgroup)
	        {
	            return this.arrItems[i];
	        }
	    }
	    return null;
	}
	
	this.Load = function()
	{	    
	    if(GetCookie("treemenu") == null)	
	    {
	        return false;
	    }
		
		var tmp = GetCookie("treemenu");
		var arr = Array();
		arr = tmp.split("|");
				
		for(var i = 0; i < arr.length; i++)
		{
			var arr2 = Array();
			arr2 = arr[i].split(",");
			
			try
			{
				this.GetItem(arr2[0]).Load(arr2[1],arr2[2]);				
			}
			catch(e){}
		}
	}
		
	this.Init();
	this.Load();
}