function CookieMenu(path, cookieName,itemName,menuName){
	this.cookieName=cookieName;
	this.itemName=itemName;
	this.menuName=menuName;
	this.path=path;
	
	this.buildMenu();	
}


CookieMenu.prototype.buildMenu = function() {
	var menu=document.getElementById(this.menuName);
	if (menu==null) return;

	this.makePljusek(menu);
	
	this.ShowCookieMenu();
	
	menu.CookieMenu=this;
	menu.onclick=expandMenuMenus;
}

CookieMenu.prototype.ShowCookieMenu = function(){
	//alert(document.cookie);
	rx=new RegExp(this.cookieName + "=([^;]+)");
	
	if (rx.test(document.cookie)) {
		rx=new RegExp(this.cookieName + "=([^;]+)");
		rxr=rx.exec(document.cookie);
		zz=rxr[1].split('+');
	
		for(var z in zz){
			var li=document.getElementById(this.itemName + "-" +zz[z]);
			if(!li)
				li=document.getElementById(this.itemName + "ignore-" +zz[z]);
			var ul=document.getElementById(this.menuName + "-" +zz[z]);
			if(li && ul) {
				ul.style.display="block";
				li.menu=ul;
				li.menuimg=this.getPljusek(li);
				if (li.menuimg) li.menuimg.src=li.menuimg.src.replace(/exp\.gif/, "col.gif");
			}
		}
	} 
}

CookieMenu.prototype.makePljusek=function(m) {
	var has=false;
//	alert(m +  " " + m.childNodes.length);
	for (var i=0; i<m.childNodes.length; i++) {
//		alert(m.childNodes[i]);
		if (m.childNodes[i].tagName!=null && m.childNodes[i].tagName.toLowerCase()=="li")
			if (this.makePljusek(m.childNodes[i])) {
				m.childNodes[i].innerHTML='<img class=\"menu\" src=\"' + this.path + '/img/menuexp.gif\" />' + m.childNodes[i].innerHTML;
				m.childNodes[i].style.paddingLeft="0px";
			} 
		if (m.childNodes[i].tagName!=null && m.childNodes[i].tagName.toLowerCase()=="ul") {
			has=true;
			this.makePljusek(m.childNodes[i])
		}
	}
	return has;
}

CookieMenu.prototype.getPljusek=function(li) {
	for (var i=0; i<li.childNodes.length; i++) {
	
		if (li.childNodes[i].tagName!=null && li.childNodes[i].tagName.toLowerCase()=="img") {
//			alert(li.childNodes[i].src);
			return li.childNodes[i];
		}
	}
}

function expandMenuMenus(ev){
	if (ev) window.event=ev;
	var item, li;
	if (ev) {
		li=window.event.target;
	} else {
		li=window.event.srcElement;
	}
	
	if (!li) { return; }
	this.CookieMenu.expandMenu(li);
}


CookieMenu.prototype.expandMenu=function(li){
	
	if (li==null || !li) return;
	
	if (li.tagName.toLowerCase()!="img") return;
	
	// iskanje LI elementa	
	var islink=false;
	var item;
	
	while (li.tagName==null || li.tagName.toLowerCase()!="li") {		
		if (li.tagName!=null && li.tagName.toLowerCase()=="a") islink=true;
		li=li.parentNode;
	}	

	if (islink) return;

	item=li.id;
	
	rx=new RegExp(this.itemName + "[^\\\\]*\\-([^~]+\\-?)+", "gi");
	//alert(this.itemName + "[^\\\\]*\\/([^~]+\\/?)+");
	//alert(this.itemName +" " + item + " " + rx.test(item));
	
	if (!rx.test(item)) { alert(item + " !test"); return; }
	
	rx=new RegExp(this.itemName + "[^\\\\]*\\-([^~]+\\-?)+", "gi");
	var zz=rx.exec(item);
	if (zz==null) { alert("!?!?!"); return; }
	//alert("zz: " + zz);
	var id=zz[1];

	if (!li.menu) li.menu=document.getElementById(this.menuName + "-" + id);

    if(li.menu){
		if(li.menu.style.display=="block"){
			this.PrepareCookie(id,true);
			li.menu.style.display="none";
			if (li.menuimg==null) li.menuimg=this.getPljusek(li); 
			li.menuimg.src=li.menuimg.src.replace(/col\.gif/, "exp.gif");
		} else {
			this.PrepareCookie(id,false);
			li.menu.style.display="block";
			if (li.menuimg==null) li.menuimg=this.getPljusek(li); 
			li.menuimg.src=li.menuimg.src.replace(/exp\.gif/, "col.gif");
		}
		
		if (window.event.stopPropagation) window.event.stopPropagation();
		window.event.cancelBubble=true;
	} 
}

CookieMenu.prototype.PrepareCookie=function(id, remove){
	var rx=new RegExp(this.cookieName + "=([^;]+)");
	if (rx.test(document.cookie)) {
		rx=new RegExp(this.cookieName + "=([^;]+)");
		rxr=rx.exec(document.cookie);
		zz=$A(rxr[1].split('+'));
		var zzz=new Array();
		idexists=false;
		
		for (var i=0; i<zz.length; i++) 
			if(zz[i]==id){
				idexists=true;
				if(!remove)
					zzz[zzz.length]=zz[i];
			} else			
				zzz[zzz.length]=zz[i];
			
		if(!idexists && !remove) zzz[zzz.length]=id;
		document.cookie=this.cookieName + "=" + zzz.join("+") + ";path=/";
	} else if(!remove) {
		document.cookie=this.cookieName + "=" + id + ";path=/";
	}
}

