function HWClickShowHideMenu(id) {
	this.init = function() {
		this.top = id;
		this.isvisible = true;
		this.DHTML = false;
		this.DOM = false;
		this.MSIE4 = false;
		this.NS4 = false;
		this.OP = false;
		this.detect();
        this.cookie = new Cookie();
		if (!this.getElement('id', this.top, 0)) {
			alert("Element '"+this.top+"' does not exist in this document. HWClickShowHideMenu cannot be initialized");
			return;
		}
		this.close_all(true);

		var ele, len = this.getTagLength('li'), par;
		var self = this;

		for(var i = 0; i < len; i++) {
			ele = this.getElement("tag", 'a', i);
			if (ele && this.isMenuChild(ele)) {
				par = ele.parentNode;
				if (par && par.nodeName == 'LI') {
					if (par.id && this.isMenuChild(par) && par.id.length) {
						eval('ele.onclick = function() { self.toggle("'+par.id+'", true); }');
					}
				}
			}
        }
	}

	this.detect = function() {
		if (document.getElementById) {
			this.DHTML = true;
			this.DOM = true;
		} else {
			if (document.all) {
				this.DHTML = true;
				this.MSIE4 = true;
			} else {
				if (document.layers) {
					this.DHTML = true;
					this.NS4 = true;
				}
			}
		}
		if (window.opera) {
			this.OP = true;
		}
	}

	this.getElement = function(Mode, Identifier, ElementNumber) {
		var Element, ElementList;
		if (this.DOM) {
			if (Mode == "id") {
				Element = document.getElementById(Identifier);
				if (!Element) {
					Element = false;
				}
				return Element;
			}
			if (Mode == "name") {
				ElementList = document.getElementsByName(Identifier);
				Element = ElementList[ElementNumber];
				if (!Element) {
					Element = false;
				}
				return Element;
			}
			if (Mode == "tag") {
				ElementList = document.getElementsByTagName(Identifier);
				Element = ElementList[ElementNumber];
				if (!Element) {
					Element = false;
				}
				return Element;
			}
			return false;
		}
		if (this.MSIE4) {
			if (Mode == "id" || Mode == "name") {
				Element = document.all(Identifier);
				if (!Element) {
					Element = false;
				}
				return Element;
			}
			if (Mode == "tag") {
				ElementList = document.all.tags(Identifier);
				Element = ElementList[ElementNumber];
				if (!Element) {
					Element = false;
				}
				return Element;
			}
			return false;
		}
		if (this.NS4) {
			if (Mode == "id" || Mode == "name") {
				Element = document[Identifier];
				if (!Element) {
					Element = document.anchors[Identifier];
				}
				if (!Element) {
					Element = false;
				}
				return Element;
			}
			if (Mode == "layer") {
				Element = document.layers[Identifier];
				if (!Element) {
					Element = false;
				}
				return Element;
			}
			return false;
		}
		return false;
	}

	this.isMenuChild = function(ele) {
		if (!ele) {
			return false;
		}
		if (ele.id == this.top) {
			return true;
		}
		return this.isMenuChild(ele.parentNode);
	}

	this.isMenuChild = function(ele) {
		if (!ele) {
			return false;
		}
		if (ele.id == this.top) {
			return true;
		}
		return this.isMenuChild(ele.parentNode);
	}

	this.getTagLength = function(Identifier) {
		var Element, Length;
		if (this.DOM) {
			ElementList = document.getElementsByTagName(Identifier);
			Length = ElementList.length;
			if (!ElementList) {
				Length = 0;
			}
			return Length;
		}
		if (this.MSIE4) {
			ElementList = document.all.tags(Identifier);
			Length = ElementList[ElementNumber].length;
			if (!ElementList) {
				Length = 0;
			}
			return Length;
		}
		return 0;
	}

	this.toggleMenu = function() {
		var lb0 = document.getElementById("leftbar0");
		var lv1 = document.getElementById("level1");
		var lsm = document.getElementById("leftsmall");
		this.isvisible = !this.isvisible;

		if (this.isvisible) {
			if (lb0 != null) lb0.className = "leftbar0on";
			if (lv1 != null) lv1.className = "level1on";
			if (lsm != null) lsm.className = "leftsmallon";
		} else {
			if (lb0 != null) lb0.className = "leftbar0off";
			if (lv1 != null) lv1.className = "level1off";
			if (lsm != null) lsm.className = "leftsmalloff";
        }
        this.save_nav();
	}

	this.close_all = function(load) {
		var len = this.getTagLength('ul'), ele;
		for(var i = 0; i < len; i++) {
			ele = this.getElement("tag", 'ul', i);
			if (ele && this.isMenuChild(ele) && ele.title != "closed") {
				this.close(ele.parentNode.id);
			}
		}
		if (load) // && window.name.length > 0)       
			this.load_nav();
	}

	this.close = function(id) {
		var ul_element = this.getElement("id", 'ul_' + id, 0);
		if(ul_element) {
			ul_element.style.display = "none";
			ul_element.title = "closed";
		}
	}

	this.isopen = function(id) {
		var ul_element = this.getElement("id", 'ul_' + id, 0);
		if(ul_element) {
			if(ul_element.title != 'closed') {
				return true;
			}
		}
		return false;
	}

	this.closeup = function(id) {
		var li_element = this.getElement('id', id, 0);
		if(li_element) {
			var parent = li_element.parentNode;
			if (parent && parent.id != this.top) {
				this.openup(parent.parentNode.id);
			}
		}
	}

	this.openup = function(id) {
		var ul_element = this.getElement('id', 'ul_' + id, 0);
        var element = this.getElement('id', id, 0);
		if(element) {
			var parent = element.parentNode;
			if (parent && parent.id != this.top) {
				this.openup(parent.parentNode.id);
            }
        }
        if(ul_element) {
			ul_element.style.display = "block";
			ul_element.title = "opened";
		}
	}

	this.toggle = function(id, save) {
		var ele = id;
		state = this.isopen(id);
		this.close_all(false);
		if (state) {
			this.closeup(ele);
		} else {
			this.openup(ele);
		}
		if(save == true) this.save_nav();
	}

    function Cookie() {
        this.get = 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) {
                        return unescape(a[1]);
                    }
                }
            }
            return "";
        }
        this.set = function(name, value) {
            document.cookie = name + "=" + escape(value) + "; path=/;";
        }
        this.del = function(name) {
            document.cookie = name + "=; expires=Thu, 01-Jan-70 00:00:01 GMT; path=/;";
        }
        this.geturlparam = function(strParamName) {
            var strReturn = "";
            var strHref = window.location.href;
            if ( strHref.indexOf("?") > -1 ){
                var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
                var aQueryString = strQueryString.split("&");
                for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
                    if (aQueryString[iParam].indexOf(strParamName + "=") > -1 ){
                        var aParam = aQueryString[iParam].split("=");
                        strReturn = aParam[1];
                        break;
                    }
                }
            }
            return strReturn;
        }
    }
    
	this.save_nav = function() {
		var save = "", len = this.getTagLength('ul'), ele;
		for(var i = 0; i < len; i++) {
			ele = this.getElement('tag', 'ul', i);
			if (ele && this.isMenuChild(ele)) {
				if((ele.title == "opened" || ele.title == "closed") && ele.id != this.top) 
					save = save + ele.id + "=" + ele.title + ",";
			}
		}
		if(save.length == 0) {
			save = save + ",";
		}
		save = save + (this.isvisible ? "1" : "0");
        this.cookie.set(this.top, save);
//		window.name = save;
	}

	this.load_nav = function() {
        var load = this.cookie.get(this.top);
//      var load = window.name;
	    if (load.length > 0) {
		    var pos = load.lastIndexOf(",");
            if (pos > 0) {
				if (load.substring(pos+1, pos+2) == "0") {
					this.toggleMenu();
				}
			    load = load.substring(0, pos);
			}
		}
		var items = load.split(","), ele;
		if (items.length > 0) {
			for (var i = 0; i < items.length; i++) {        
				id_value = items[i].split("=");         
				if (id_value.length == 2) {
					id = id_value[0];  
					value = id_value[1];
					ele = this.getElement('id', id, 0);
					if (ele && this.isMenuChild(ele)) {
						ele.title = value;
						ele.style.display = (value == 'closed') ? 'none' : 'block';
					}
				}
			}
		}
	}
}
if (typeof String.prototype.trim == "undefined") {
    String.prototype.trim = function() {
        var s = this.replace(/^\s*/, "");
        return s.replace(/\s*$/, "");
    }
}

var forumJumpToNew = 0;
