<!-- // Hide
/****** CASCADING POPUP MENUS v3.1 by Angus Turnbull http://gusnz.cjb.net ******/
var isDOM = (document.getElementById ? true : false);
var isIE  = (document.all ? true: false);
var isNS4 = (navigator.appName=='Netscape' && !isDOM ? true : false);
var isIE4 = ((isIE && !isDOM) ? true : false);
var isDyn = (isDOM || isIE4 || isNS4);

function getRef(id, par) {
	par = (!par ? document : (par.navigator ? par.document : par));
	return (isIE ? par.all[id] :
		(isDOM ? (par.getElementById?par:par.ownerDocument).getElementById(id) :
		par.layers[id]));
}
function getSty(id, par) {
	return (isNS4 ? getRef(id, par) : getRef(id, par).style)
}
function LayerObj(id, par) {
	this.ref = getRef(id, par);
	this.sty = getSty(id, par);
	this.x = function(nX) { if (!isNaN(nX)) this.sty.left = nX; else return parseInt(this.sty.left) }
	this.y = function(nY) { if (!isNaN(nY)) this.sty.top = nY; else return parseInt(this.sty.top) }
	this.vis = function(val) { this.sty.visibility = val }
	this.bgColor = function(col) {
		if (!col) col = isNS4 ? null : 'transparent';
		if (isNS4) this.sty.bgColor = col;
		else this.sty.backgroundColor = col }
	this.bgImage = function(img) {
		if (isNS4) { if (!img) img=null; this.sty.background.src=img }
		else this.sty.backgroundImage=(img?'url('+img+')':'') }
	this.write = function(txt) {
		if (isNS4) with (this.ref.document) { write(txt); close() }
		else this.ref.innerHTML = txt }
	return this;
}
function getLyr(id, par) { return new LayerObj(id, par) }
function setLyr(lVis, docW, par) {
	if (!this.seq) seq = 0;
	if (!docW) docW = 0;
	var obj = (!par ? (isNS4 ? window : document.body) :
		(!isNS4 && par.navigator ? par.document.body : par));
	var newID = '_js_layer_' + seq++;
	if (isIE) obj.insertAdjacentHTML('beforeEnd','<div id="' + newID +
		'" style="position:absolute"></div>');
	else if (isDOM) {
		var newL = document.createElement('div');
		obj.appendChild(newL);
		with (newL) { id = newID; style.position='absolute' }
	}
	else if (isNS4) {
		var newL = new Layer(docW, obj);
		newID = newL.id;
	}
	var lObj = getLyr(newID, par);

	with (lObj) { vis(lVis); x(0); y(0); sty.width=docW }
	return lObj;
}
function popOver(mN, iN) { 
	with (this) {
		clearTimeout(hideTimer);
		overM = mN;
		overI = iN;
		var thisI = menu[mN][iN];
		if (thisI.onmouseover) thisI.onmouseover();
		litOld = litNow;
		litNow = new Array();
		var litM = mN, litI = iN;
		while(1) {
			litNow[litM] = litI;
			if (litM == 'root') break;
			litI = menu[litM][0].parentItem;
			litM = menu[litM][0].parentMenu;
		}
		var same = true;
		for (var z in menu) if (litNow[z] != litOld[z]) same = false;
		if (same) return;
		for (thisM in menu) {
			litI = litNow[thisM];
			oldI = litOld[thisM];
			if (litI && (litI != oldI)) changeCol(thisM, litI, true);
			if (oldI && (oldI != litI)) changeCol(thisM, oldI, false);
			if (isNaN(litI)) { 
					var mitem = menu[thisM][0].lyr;
					if (mitem != null) mitem.vis('hidden');
			}
		}
		clearTimeout(showTimer);
		nextMenu = '';
		if (thisI.type == 'sm:') {
			var lyrM = menu[mN][0].lyr;
			with (menu[thisI.href][0]) {
				lyr.x(lyrM.x() + thisI.lyr.x() + eval(offX));
				lyr.y(lyrM.y() + thisI.lyr.y() + eval(offY));
				showStr = objName + '.menu.' + thisI.href + '[0].lyr.vis("visible")';
				nextMenu = thisI.href;
				if (showDelay) showTimer = setTimeout(showStr, showDelay);
				else eval(showStr);
			}
		}
	}
}
function popChangeCol(mN, iN, isOver) { 
	with (this.menu[mN][iN]) {
		var col = isOver ? overCol : outCol;
		if (col.indexOf('.') == -1) lyr.bgColor(col);
		else lyr.bgImage(col);
		if (overClass == outClass) return;
		if (isNS4) lyr.write(this.getHTML(mN, iN, isOver));
		else with (lyr.ref){
			var chl = (isDOM ? childNodes : children)
			for (var i = 0; i < chl.length; i++) chl[i].className = (isOver ? overClass : outClass);
		}
	}
}
function popOut(mN, iN) { 
	with (this) {
		var thisI = menu[mN][iN];
		if (thisI.onmouseout) thisI.onmouseout();
		if (thisI.href != nextMenu) clearTimeout(showTimer);
		var delay = ((mN == 'root') && (thisI.type != 'sm:')) ? 50 : hideDelay;
		hideTimer = setTimeout(objName + '.over("root", 0)', delay);
		overM = 'root';
		overI = 0;
	}
}
function popClick() { 
	with (this) {
		if (overI) {
			var thisI = menu[overM][overI];
			if (thisI.onclick) thisI.onclick();
			with (thisI) switch (type) {
				case 'sm:': return;
				case 'js:': { eval(href); break }
				case '': type = 'window';
				default: if (href) eval(type + '.location.href = "' + href + '"');
			}
		}
		over('root', 0);
	}
}
function addProps(obj, data, names, addNull) {
	for (var i = 0; i < names.length; i++) if(i < data.length || addNull) obj[names[i]] = data[i];
}
function ItemStyle() {
	var names = ['len', 'spacing', 'popInd', 'popPos', 'pad', 'outCol', 'overCol', 'outClass',
		'overClass', 'borderClass'];
	addProps(this, arguments, names, true);
}
function popStartMenu(mName) { 
	with (this) {
		if (!menu[mName]) { menu[mName] = new Array(); menu[mName][0] = new Object(); }
		actMenu = mName;
		menu[mName].length = 1;
		nextItem = 1;
		var aM = menu[mName][0];
		var names = ['isVert','isVert','offX','offY','width','itemSty','parentMenu','parentItem'];
		addProps(aM, arguments, names, true);
		if (!aM.lyr) aM.lyr = null;
	}
}
function popAddItem() { 
	with (this) {
		var aI = menu[actMenu][nextItem++] = new Object();
		var names = ['text','href','type','itemSty','len','spacing','popInd','popPos',
			'iW','iH','lyr'];
		addProps(aI, arguments, names, true);
		var iSty = (arguments[3] ? arguments[3] : menu[actMenu][0].itemSty);
		for (prop in iSty) if (aI[prop] == window.UnDeFiNeD) aI[prop] = iSty[prop];
		if (isNS4 && aI.borderClass) aI.pad++;
	}
}
function popGetHTML(mN, iN, isOver) { 
	with (this) {
		var itemStr = '';
		with (menu[mN][iN]) {
			var textClass = (isOver ? overClass : outClass);
			if ((type == 'sm:') && popInd) {
				if (isNS4) itemStr += '<layer class="' + textClass + '" left="'+ ((popPos+iW) % iW) +
					'" top="' + pad + '">' + popInd + '</layer>';
				else itemStr += '<div class="' + textClass + '" style="position: absolute; left: ' +
					((popPos+iW) % iW) + '; top: ' + pad + '">' + popInd + '</div>';
			}
			if (isNS4) itemStr += (borderClass ? '<span class="' + borderClass + '">' +
				'<spacer type="block" width="' + (iW - 8) + '" height="' + (iH - 8) + '"></span>' : '') +
				'<layer left="' + pad + '" top="' + pad + '" width="' + (iW - (2 * pad)) + '" height="' +
				(iH - (2 * pad)) + '"><a class="' + textClass + '" href="#" ' +
				'onClick="return false" onMouseOver="status=\'\'; return true">' + text + '</a></layer>';
			else itemStr += '<div class="' + textClass + '" style="position: absolute; left: ' + pad +
				'; top: ' + pad + '; width: ' + (iW - (2 * pad)) + '; height: ' + (iH - (2 * pad)) +
				'">' + text + '</div>';
		}
		return itemStr;
	}
}
function popUpdate() { 
	with (this) {
		if (!isDyn) return;
		for (mN in menu) with (menu[mN][0]) {
			var str = '', iX = 0, iY = 0;
				for (var iN = 1; iN < menu[mN].length; iN++) with (menu[mN][iN]) {
				var itemID = objName + '_' + mN + '_' + iN;
				if (type == 'sm:') {
					menu[href][0].parentMenu = mN;
					menu[href][0].parentItem = iN;
				}
				var shrink = (borderClass && isDOM && !isIE ? 2 : 0)
				iW = (isVert ? width : len) - shrink;
				iH = (isVert ? len : width) - shrink;
				var isImg = (outCol.indexOf('.') != -1) ? true : false;
				if (isDOM || isIE4) {
					str += '<div id="' + itemID + '" ' + (borderClass ? 'class="' + borderClass + '" ' : '') +
						'style="position: absolute; left: ' + iX + '; top: ' + iY + '; width: ' + iW + '; height: ' +
						iH + '; ' + (outCol ? 'background: ' + (isImg ? 'url('+ outCol+')' : outCol) : '') + '" ';
				}
				if (isNS4) {
					str += '<layer id="' + itemID + '" left="' + iX + '" top="' + iY + '" width="' +
						iW + '" height="' + iH + '" ' + (outCol ? (isImg ? 'background="' : 'bgcolor="') +
						outCol + '" ' : '');
				}
				str += 'onMouseOver="' + objName + '.over(\'' + mN + '\',' + iN + ')" ' +
						'onMouseOut="' + objName + '.out(\'' + mN + '\',' + iN + ')">' +
						getHTML(mN, iN, false) + (isNS4 ? '</layer>' : '</div>');
				var spc = (borderClass ? 1 : 0)
				if (isVert) iY += len + spacing - spc;
				else iX += len + spacing - spc;
			}
			if (!lyr) lyr = setLyr('hidden', 3);
			else if (isIE4) setTimeout(objName + '.menu.' + mN + '[0].lyr.sty.width=9', 50);
			with (lyr) { sty.zIndex = 1000; write(str); sty.cursor = (isIE ? 'hand' : 'pointer') }
			for (var i = 1; i < menu[mN].length; i++)
				menu[mN][i].lyr = getLyr(objName + '_' + mN + '_' + i, lyr.ref);
		}
		position();
		menu.root[0].lyr.vis('visible');
	}
}
function PopupMenu(objName) {
	this.objName = objName;
	this.showTimer = 0;
	this.hideTimer = 0;
	this.showDelay = 0;
	this.hideDelay = 500;
	this.showMenu = '';
	this.menu =  new Array();
	this.litNow = new Array();
	this.litOld = new Array();
	this.overM = 'root';
	this.overI = 0;
	this.actMenu = '';
	this.nextItem = 1;
	this.over = popOver;
	this.changeCol = popChangeCol;
	this.out = popOut;
	this.click = popClick;
	this.startMenu = popStartMenu;
	this.addItem = popAddItem;
	this.getHTML = popGetHTML;
	this.update = popUpdate;
	this.position = function() { 
		with (this.menu.root[0]) {
			if (!lyr) return;
			var winWidth = (isIE ? document.body.clientWidth : window.innerWidth)
			lyr.x(eval(offX));
			lyr.y(eval(offY));
		}
	}
}
// End Hide -->

