/*
/*
 * DO NOT REMOVE THIS NOTICE
 *
 * PROJECT:   mygosuMenu
 * VERSION:   1.3.0
 * COPYRIGHT: (c) 2003,2004 Cezary Tomczak
 * LINK:      http://gosu.pl/software/mygosumenu.html
 * LICENSE:   BSD (revised)
 */
function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}


function getElementById_2( id ) 
{ 
    if (document.getElementById)	
        var returnVar = document.getElementById(id); 
    else if (document.all) 
        var returnVar = document.all[id]; 
    else if (document.layers) 
        var returnVar = document.layers[id]; 
    return returnVar; 
} 	

function ClickMenu(id) {
    this.box1Hover = true;
    this.box2Hover = true;

    this.init = function() {
        if (!document.getElementById(this.id)) {
            alert("Element '"+this.id+"' does not exist in this document. ClickMenu cannot be initialized");
            return;
        }
        this.parse(document.getElementById(this.id).childNodes, this.tree, this.id);
        this.load();
        if (window.attachEvent) {
            window.attachEvent("onunload", function(e) { self.save(); });
        } else if (window.addEventListener) {
            window.addEventListener("unload", function(e) { self.save(); }, false);
        }
    }

    this.parse = function(nodes, tree, id) {
        for (var i = 0; i < nodes.length; i++) {
            if (nodes[i].nodeType != 1) {
                continue;
            }
            if ("box1" == nodes[i].className.substr(0, 4)) {
                nodes[i].id = id + "-" + tree.length;
                tree[tree.length] = new Array();
                eval('nodes[i].onmouseover = function() { self.box1over("'+nodes[i].id+'"); }');
                eval('nodes[i].onmouseout = function() { self.box1out("'+nodes[i].id+'"); }');
                eval('nodes[i].onclick = function() { self.box1click("'+nodes[i].id+'"); }');
            }
            if ("section" == nodes[i].className) {
                id = id + "-" + (tree.length - 1);
                nodes[i].id = id + "-section";
                tree = tree[tree.length - 1];
            }
            if ("box2" == nodes[i].className.substr(0, 4)) {
                nodes[i].id = id + "-" + tree.length;
                tree[tree.length] = new Array();
                eval('nodes[i].onmouseover = function() { self.box2over("'+nodes[i].id+'", "'+nodes[i].className+'"); }');
                eval('nodes[i].onmouseout = function() { self.box2out("'+nodes[i].id+'", "'+nodes[i].className+'"); }');
            }
            if (nodes[i].childNodes) {
                this.parse(nodes[i].childNodes, tree, id);
            }
        }
    }

    this.box1over = function(id) {
        if (!this.box1Hover) return;
        if (!document.getElementById(id)) return;
        document.getElementById(id).className = (this.id_openbox == id ? "box1-open-hover" : "box1-hover");
    }

    this.box1out = function(id) {
        if (!this.box1Hover) return;
        if (!document.getElementById(id)) return;
        document.getElementById(id).className = (this.id_openbox == id ? "box1-open" : "box1");
    }

    this.box1click = function(id) {
        if (!document.getElementById(id)) {
            return;
        }
        var id_openbox = this.id_openbox;
        if (this.id_openbox) {
            if (!document.getElementById(id + "-section")) {
                return;
            }
            this.hide();
            if (id_openbox == id) {
                if (this.box1hover) {
                    document.getElementById(id_openbox).className = "box1-hover";
                } else {
                    document.getElementById(id_openbox).className = "box1";
                }
            } else {
                document.getElementById(id_openbox).className = "box1";
            }
        }
        if (id_openbox != id) {
            this.show(id);
            var className = document.getElementById(id).className;
            if ("box1-hover" == className) {
                document.getElementById(id).className = "box1-open-hover";
            }
            if ("box1" == className) {
                document.getElementById(id).className = "box1-open";
            }
        }
    }

    this.box2over = function(id, className) {
        if (!this.box2Hover) return;
        if (!document.getElementById(id)) return;
        document.getElementById(id).className = className + "-hover";
    }

    this.box2out = function(id, className) {
        if (!this.box2Hover) return;
        if (!document.getElementById(id)) return;
        document.getElementById(id).className = className;
    }

    this.show = function(id) {
        if (document.getElementById(id + "-section")) {
            document.getElementById(id + "-section").style.display = "block";
            this.id_openbox = id;
        }
    }

    this.hide = function() {
        document.getElementById(this.id_openbox + "-section").style.display = "none";
        this.id_openbox = "";
    }

    this.save = function() {
	//alert('SAVE   openbox='+this.id_openbox+'   id='+this.id);//
        if (this.id_openbox) {
		//alert('SET   openbox='+this.id_openbox+'   id='+this.id);//
            this.cookie.set(this.id, this.id_openbox);
        } else {
		//alert('DEL   openbox='+this.id_openbox+'   id='+this.id);//			
            this.cookie.del(this.id);
        }
    }
	
	this.get_value = function(varname)
	{		  
		  var url = window.location.href;  //alert(url);		  
		  var qparts = url.split("?");
		  
		  if (qparts.length == 0)
		  {
		    return "";
		  }
		  
		  var q = qparts[1];		  
		  if(q == undefined) return value;
		  var vars = q.split("&");		  
		  var value = "";
		  
		  for (var i=0; i<vars.length; i++)
		  {		    
		    var parts = vars[i].split("=");		   
		    if (parts[0] == varname)
		    {		   
		      value = parts[1];
		      break;
		    }
		  }		  
		  
		  value = unescape(value);		  
		  value.replace(/\+/g," ");		  
		  return value;
	}


    this.load = function() {
		//var last = readCookie('lll_menu');
		var last = this.get_value('top_id');
		//alert(last+" == "+this.id);
		if("click-menu"+last == this.id)
		{
			//alert(last);
	        var id_openbox = this.cookie.get(this.id);		
	        if (id_openbox) {			
	            this.show(id_openbox);
	            document.getElementById(id_openbox).className = "box1-open";
	        }
		}
    }

	this.load_o = function() {
        var id_openbox = this.cookie.get('lll_menu');		
        if (id_openbox) {
            this.show(id_openbox);
            document.getElementById(id_openbox).className = "box1-open";
        }
    }
	
    function Cookie() {
        this.get = function(name) {
		//alert(document.cookie);
            var cookies = document.cookie.split(";");
			
			//var lll_menu_name = this.get_plius('lll_menu'); //
			
            for (var i = 0; i < cookies.length; i++) {
                var a = cookies[i].split("=");
                if (a.length == 2) {
                    a[0] = a[0].trim();
                    a[1] = a[1].trim();                    
					//if (a[0] == 'lll_menu') { //
					//if (lll_menu_name == name) //
					if (a[0] == name) {
						//alert(document.cookie);
                        //alert (a[0]+" = "+a[1]);
						return unescape(a[1]);
                    }
                }
            }
            return "";
        }
		
		this.get_plius = function(name) {
		    var cookies = document.cookie.split(";");
            for (var i = 0; i < cookies.length; i++) {
                var a = cookies[i].split("=");
                if (a.length == 2) {
                    a[0] = a[0].trim();
                    a[1] = a[1].trim();                    					
					if (a[0] == name) {
                       // alert (a[0]+" = "+a[1]);
						return unescape(a[1]);
                    }
                }
            }
            return "";
        }
		
        this.set = function(name, value) {		
			//this.del('lll_menu'); //
            //document.cookie = "lll_menu=" + escape(name) + ";"; //
			createCookie(name, escape(value), 1);
			var t = "lll_menu";
			createCookie(t, escape(name), 1);
			
			//document.cookie = name + "=" + escape(value) + ";";
			//alert("======"+t+"======"+readCookie(t));
			//alert("======"+name+"======"+readCookie(name));
        }
        this.del = function(name) {
			//eraseCookie("lll_menu");
			//createCookie("lll_menu",escape(name),1);
			eraseCookie(name);
			//document.cookie = "lll_menu=" + escape(name) + ";"; //	
            //document.cookie = name + "=; expires=Thu, 01-Jan-70 00:00:01 GMT";
			//alert('erase='+name);
        }
    }

    var self = this;
    this.id = id;
    this.tree = new Array();
    this.cookie = new Cookie();
    this.id_openbox = "";
    this.init();
	//this.load_o();/////////////////////////////////////////
}

if (typeof String.prototype.trim == "undefined") {
    String.prototype.trim = function() {
        var s = this.replace(/^\s*/, "");
        return s.replace(/\s*$/, "");
    }
}


//////////////////////////////////////////////////////////
