function SlideMenu(id, cn, co, df, cr, cp, cq, cu, cs, ct, cv, cw, cz, cx, cy, dc, da, db, dd, de, dy, ed, hs, AllExpanded, key) 
{
	this.version = "3.3.0.0"; this.ao = id;    this.ap = cn + ""; this.aq = 0;     this.ar  = co;
	this.as      = false;     this.at = cr;    this.au = cp;      this.av = cq;    this.aw  = cu;
	this.ax      = cs;        this.ay = ct;    this.az = cv;      this.ba = cw;    this.bb  = cz;
    this.bc      = cx;        this.bd = cy;    this.be = dc;      this.bf = da;    this.bg  = db;
	this.bh      = dd;        this.bi = de; 
	
	if(df != null && df == true) this.as = true;
	
	this.dx      = dy;        this.ec = ed;    this.bk = null;    this.bl = null;  this.bm  = null;
	this.bn      = null;      this.bv = null;  this.bo = null;    this.ef = null;  this.bw  = null;
	this.bq      = null;      this.br = false; this.bs = false;   this.bt = false; this.bu  = null;
	this.eb      = true;      this.hq = null;  this.hu = null;    this.ht = hs;    this.key = key;	       
	
	this.allExpanded = AllExpanded;
	this.eg          = new Array();
	this.eh          = new Array();
	
	if (this.dx <= 0) {
		this.dq = new Array();
		this.du = false;
	}
	
	this.isIE = (navigator.userAgent.toLowerCase().indexOf("msie") == -1) ? false : true; 
};
	
SlideMenu.prototype.hi = function(hk, hl) {
		this.eg[this.eg.length] = hk;
		this.eh[this.eh.length] = hl;
};
SlideMenu.prototype.hj = function(hl) {
	var i = 0;
	for (i = 0; i < this.eh.length; i++) {
		if (this.eh[i] == hl) return this.eg[i];
	}
	
	return (function() {}); 
};
SlideMenu.prototype.dv = function(f,f2) {
	if (window.onload) { 
		if (!this.du) { 
			this.du       = true;
			this.dq[0]    = window.onload;
			window.onload = (function() { f2.dw() } );
		}
		this.dq[this.dq.length] = f;
	} else 
		window.onload = f ;
};
SlideMenu.prototype.dw = function() { 
	for (var i = 0; i < this.dq.length; i++) this.dq[i]();
};
SlideMenu.prototype.aa = function() {
	var i, j, hm, hn, ho, hp;
	
	hm = document.getElementById(this.ao);
	
	if (this.az != null) hm.className = this.az;
	
	for (i = 0; i < hm.childNodes.length; i++) {
		var hn = hm.childNodes[i];

		if (typeof hn.id != "undefined") {	
			if (hn.id.substring(0, this.key.length) != this.key) {
				this.ai(hn.id, 0);
				hp = this.bl;
				
				if (this.bb != null && this.bh != null)
					if (document.getElementById("menu:slide:i" + hp.ao)) document.getElementById("menu:slide:i" + hp.ao).className = this.bh;
				if (this.ap == hp.ao || this.allExpanded) {
					this.ae(hp.ao, 0, true);
					hp.ce = true;
					this.ae(hp.ao, 2, false);
				} else 
					this.ae(hp.ao, 0, true);
			} else {
				if (this.ba != null) hn.className = this.ba;
				for (j = 0; j < hn.childNodes.length; j++) {
					ho = hn.childNodes[j];
					this.ai(ho.id, 1);
					
					if (this.be != null && this.bi != null) 
						if (document.getElementById("menu:slide:i" + ho.id)) document.getElementById("menu:slide:i" + ho.id).className = this.bi;
					
					hp.ch = true;
					
					if (this.ap == this.bl.ao) {
						this.ap = hp.ao;
						this.ae(hp.ao,0,true);
						hp.ce   = true;
						this.ae(hp.ao,2,false);
						this.ae(this.bl.ao, 3, true);
						this.bu = this.bl.ao;
						this.ae(this.bl.ao, 5, false);
					} else
						this.ae(this.bl.ao, 3, true);
				}
			}
		}
	}
		
	if (this.dx > 0) this.ab();
};
SlideMenu.prototype.ab = function() {
	var di = this.bk;
	var dh;
	
	while (di != null) {
		if (di.cf == 0) {
			if (di.ch) {
				dh                = document.getElementById(this.key + di.ao);
				dh.style.overflow = "auto";
				
				if (this.dx <= 0) {
					if (this.ec < dh.offsetHeight) {
						di.ef           = dh.offsetHeight;
						dh.style.height = di.ef + "px";
					} else {
						di.ef           = this.ec;
						dh.style.height = this.ec + "px";
					}
				} else {
					dh.style.height = this.dx + "px";
					if (this.ht != null) dh.scrollTop = this.ht;
				}
					
				dh.style.display = "none";
				
				if (di.ce || this.allExpanded) {
					dh.style.display = "block";
					
					if (!this.as) this.bm = dh;
				}
			}
		}
		di = di.al();
	}
	document.getElementById(this.ao).style.visibility = "visible";
};
SlideMenu.prototype.ac = function(bx,dj) {
	var di;
	
	if (bx != null && dj != null) {
		di = document.getElementById(bx);

		if (di != null && di.className != dj) di.className=dj;
	}
};
SlideMenu.prototype.ad = function(bx,dk) {
	if (dk == null || dk == "null") return;
	
	var dh = document.createElement("img");
	    dh.src = dk;
	var di;
	
	if (bx != null && dk != null) {
		di = document.getElementById(bx);
		if (di != null) {
			dh.className = di.className;
			dh.id        = bx;
			di.src       = dh.src; 
		}
	}
};
SlideMenu.prototype.ae = function(bx, dl, dm) {
	var dn, dk, el;
	
	if (bx == null || dl == null || dl < 0 || dl > 5 || dm == null) return;
	
	el = this.am(bx);
	
	if (el == null) return;
	if (dm && (el.ce || this.bu == el.ao)) return;
	
	switch (dl) {
		case 0 : dn = this.at; dk = this.bb; break;
		case 1 : dn = this.au; dk = this.bc; break;
		case 2 : dn = this.av; dk = this.bd; break;
		case 3 : dn = this.aw; dk = this.be; break;
		case 4 : dn = this.ax; dk = this.bf; break;
		case 5 : dn = this.ay; dk = this.bg; break;
		default: return;
	}
	this.ac(bx, dn);
	this.ad("menu:slide:i" + bx, dk);
};
SlideMenu.prototype.hr = function(bx) {
	if (this.hq == null) this.hq = document.getElementsByName("h_" + this.ao)[0];
	if (this.hq != null) this.hq.value = bx;
	if (bx == "-1")      return;
	if (this.hu == null) this.hu = document.getElementsByName("h_" + this.ao + "scroll")[0];
	if (this.hu != null) {
		var di = this.am(bx);
		
		if(di.cf == 0 && di.ch) 
			this.hu.value = this.key + bx + "," + document.getElementById(this.key + bx).scrollTop;
		else 
			this.hu.value = document.getElementById(bx).parentNode.scrollTop;
	}	
};
SlideMenu.prototype.af = function(bx) {
		
	if (this.br) return;
	
	var el,di;
	
	this.br = true;
	el      = this.am(bx);
	
	if (el==null) {
		this.br = false;
		return;
	} if (!el.ch) {
		if (el.ce) {
			this.br = false;
			this.hr(bx);
			return;
		}
		this.ae(bx, 2, false);
		if (this.as) {
			el.ce   = true;
			this.br = false;
			this.hr(bx);
			return;
		}
			
		this.ae(this.ap, 0, false);
		this.ap = bx;
		di      = this.an();
		el.ce   = true;
		this.hr(bx);
		
		if (di == null) {
			this.br = false;
			return;
		}
		bx = di.ao;
		el = di;
		
		if (!this.as && !el.ch) {
			this.ae(el.ao, 0, false);
			el.ce   = false;
			this.br = false;
			return;
		}
	}
	this.bw = 0;
	this.bn = 0;
	this.bo = document.getElementById(this.key + bx);
	if (el.ce) {
		this.bn = el.ef;
		this.bv = this.bn;
		this.bm = this.bo;
		this.ae(bx, 0, false);
		this.bs = false;
		this.bo = null;
		el.ce   = false;
		this.hr("-1");
		this.bq = window.setInterval("oboutSM" + this.ao + ".ag()", 1);
			
		return;
	}
	this.ef = el.ef;
	this.bs = true;
	this.bt = false;
	di      = this.an();
		
	if (!this.as) {
		if(di == null) 
			this.bv = 0;
		else {
			if (di.ch)
				this.bv = di.ef;
			else 
				this.ae(di.ao, 0, false);
			
			di.ce = false;
		}
		di = null;
		
		if (this.bm != null) {
			this.bn = this.bv;
			this.bt = true;
			this.ae(this.ap, 0, false);
				
			if (this.bv > this.ef)
				this.bs=false;
			else 
				this.bs=true;
		}
	} 
	this.ae(bx, 2, false);
	this.ap = bx;
	el.ce   = true;
	this.eb = true;
	this.hr(bx);
	this.bq = window.setInterval("oboutSM" + this.ao + ".ah('" + bx + "')", 1);
	//this.bq = window.setInterval("oboutSM" + this.ao + ".ah()", 1);
};
SlideMenu.prototype.ag = function() {
	if (this.bn < 1) {
		this.bm.style.display = "none";
		
		if (!this.bs) {
			window.clearInterval(this.bq);
			this.bm = this.bo;
			this.br = false;
		} 
		return;
	} 
	this.bm.style.overflow = "hidden";
	this.bm.style.height   = this.bn + "px";
	this.bn -= this.ar;	
};
//SlideMenu.prototype.ah = function() {
SlideMenu.prototype.ah = function(id) {
	if (this.bt) this.ag(); 
	//if (this.bw >= this.ef) {
	if (this.bw >= menuElementHeights["menu:slide:" + id]) {	
		//this.bo.style.height   = this.ef + "px";
		this.bo.style.height   = menuElementHeights["menu:slide:" + id] + "px";
		this.bo.style.overflow = "auto";
		this.bo.style.display  = "block";
				
		if (this.bs) {
			window.clearInterval(this.bq);
			this.br = false;
			this.bm = this.bo;
		}	
		return;
	}
	this.bo.style.overflow = "hidden";
	this.bo.style.height   = this.bw + "px";
		
	if (!this.eb) 
		this.bo.style.display ="block";
	else 
		this.eb               = false;
	
	this.bw += this.ar;
};
SlideMenu.prototype.ai = function(bx,by) {
	var di = new aj(bx, by);
	
	if (this.dx > 0) di.ef = this.dx;
	
	this.aq++;
	
	if (this.bk == null) {
		this.bk = di;
		this.bl = this.bk;
	} else {
		this.bl.ak(di);
		this.bl = this.bl.al();
	}
};
	
function aj(bx, by) {
	this.ao = bx;
	this.cf = by; 
	this.cg = null;
	this.ef = null;		
	this.ce = false;
	this.ch = false;
};
aj.prototype.ak = function(dp) { this.cg = dp; };
aj.prototype.al = function()   { return this.cg; };

SlideMenu.prototype.am = function(bx) {
	var di = this.bk;
	
	while (di != null && di.ao != bx) di = di.al();
	return di;
};
SlideMenu.prototype.an = function() {
	var di = this.bk;
	while (di != null && di.ce != true) di = di.al();
	
	if (di != null) return di;
	
	return null;
};

function f_pro1(slideObject) 
{
	var i, j, o, oc, ob;
	o = document.getElementById("pro1");
	
	for (i = 0; i < o.childNodes.length; i++) {
		var oc = o.childNodes[i];
		if (typeof oc.id != "undefined") {
			if (oc.id.substring(0, slideObject.key.length) != slideObject.key) {
				oc.onmouseover = function() { 
					slideObject.ae(this.id, 1, true); 
				};
				oc.onmouseout  = function() { 
					slideObject.ae(this.id, 0, true); 
					
				};
				if (oc.onclick) {
					slideObject.hi(oc.onclick, oc.id);
					oc.onclick = function() {
						slideObject.af(this.id); 
						slideObject.hj(this.id)();
					};
					
				} else 
					oc.onclick = function() { slideObject.af(this.id); } 
				 
			} else {
				for (j = 0; j < oc.childNodes.length; j++) {
					ob = oc.childNodes[j];
					ob.onmouseover = function() { slideObject.ae(this.id, 4, true); };
					ob.onmouseout  = function() { slideObject.ae(this.id, 3, true); };
				}
			}
		}
	} 
}

var menuElementHeights = new Array();

function getMaxHeight(divMenuElement)
{
	var maxHeight = 50;
	var divs      = document.getElementsByTagName("div");
	for (i = 0; i < divs.length; i++) {
		if ((divs[i].id.indexOf(divMenuElement) != -1) && (maxHeight < divs[i].scrollHeight)) maxHeight = divs[i].scrollHeight + 25;
		
		menuElementHeights[divs[i].id] = divs[i].scrollHeight;
	}

	return maxHeight;
}