/*
 * Menu 0.8 990602
 * ===============
 * by gary smith, July 1997
 * Copyright (c) 1997-1999 Netscape Communications Corp.
 * Netscape grants you a royalty free license to use or modify this
 * software provided that this copyright notice appears on all copies.
 * This software is provided "AS IS," without a warranty of any kind.
 *
 * Menu 0.9 011028
 * ===============
 * by gordon bateson, Oct, 2001, gordon@kanazawa-gu.ac.jp
 * Copyright (c) 2001-2002 (no warranty. royalty free license granted as above)
 * download from www.kanazawa-gu.ac.jp/~gordon/research/menus/
 */
window.fw=(window.fwLoadMenus)?true:false;
window.mm=(window.mmLoadMenus)?true:false;
menus=new Array();
dragMenus=new Array();
floatMenus=new Array();
activeMenus=new Array();
is=new domSniffer();

function Menu() {
	var a=arguments;
	if(this){
		if(a[0]+""==""||a[0]==null||isNaN(a[0]))
		{
			addMenuMethods(this);
			addMenuProperties(this,a)
		}
		else
		{
			error("Menu() called with numeric menu label '"+a[0]+"'")
		}
	}
	else
	{
		error("Menu() called without 'new' object")
	}
}

function addMenuItem()
{
	var a=arguments;
	if(isMenu(this))
	{
		var item=new menuItem(this,a);
		item.index=this.items.length;
		this.items[item.index]=item
	}
	else
	{
		error("addMenuItem() called without a menu object")
	}
}

function addMenuSeparator()
{
	if(isMenu(this))
	{
		this.addMenuItem()
	}
	else
	{
		error("addMenuSeparator() called without a menu object")
	}
}

function writeMenus()
{
	var a=arguments;
	var m=getMenu(this,a);
	var styles=isMenu(m)?m.prototypeStyles:null;
	if(documentReady())
	{
		var d=document;
		var w=window;
		if(!w.wroteMenus){
			if(is.n4) d.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
		  d.onmousemove=doMouseMove;
		  d.onmouseup=doMouseUp;
		  setOnResize();
		  if(is.ie)
		  {
			  var c=(is.ie4win)?w:getCanvas();
			  c.onscroll=ieOnScroll;
			  ieOnScroll();
			  if(is.dom)w.onunload=ieOnUnload
			}
			w.wroteMenus=true
		}
		for(var i=0;i<menus.length;i++)
		{
			if(w.fw||w.mm)
			{
				var s=status||"";
			  if(is.n4||is.opera)status=((s.length>60)?"":s)+"-"
			}
			else
			{
			  status="creating menu "+i
			}
			  var m=menus[i];
			  if(!m.menuLayer)createMenuLayer(m,styles||m)
	  }
	  status=""
	}
	else
	{
		var s=(isMenu(m))?"'"+m.label+"'":"";
	 	setTimeout("writeMenus("+s+")",3000)
	}
}
		 
function documentReady()
{
  if(!window.is)window.is=new domSniffer();
  return((is.ie||is.opera||is.dom)&&eval("document.body"))||(is.n4&&eval("document.width"))
}
function showMenu()
{
	var a=arguments;
	var m=getMenu(this,a);
	var i=isMenu(this)?0:1;
	var x=a[i];
	var y=a[i+1];
	var z=a[i+2];
	if(isMenu(m))
	{
		if(m.menuLayer&&m.setStyles)
		{
			m.hideInactiveMenus();
			clearMenuTimer();
			if(m.activeItem)m.activeItem.hideItem();
			m.topParent=m.getMenuTree()[0];
			m.isParent=(m.topParent.index==m.index);
			shiftMenu(m,x,y,z);
			showLayer(m.menuLayer);
			m.addToArray(activeMenus);
			var p=m.parentMenu;
			if(p&&isVisible(p.menuLayer))
			{
				p.activeChild=m
			}
			else
			{
				if(m.enableTracker)startMenuTracking(m)
			}
		}
	}
	else
	{
		error("showMenu() called without a menu object")
	}
}
	
function permanentMenu(x,y,z)
{
	this.permanentX=x;
	this.permanentY=y;
	this.enableTracker=z;
	this.disableDrag=!z;
	this.disableHide=true;
	this.isPermanent=true;
	if(this.menuLayer)
	this.showMenu()
}
	
function hideMenu()
{
	var a=arguments;
	var m=getMenu(this,a);
	if(isMenu(m))
	{
		if(m.menuLayer)
		{
			hideLayer(m.menuLayer);
			m.removeFromArray(activeMenus);
			if(m.activeItem)m.activeItem.hideItem();
			if(m.parentItem)m.parentItem.hideItem();
			var p=m.parentMenu;
			if(p&&isVisible(p.menuLayer))
			{
				p.activeChild=null
			}
			else
			{
				if(m.enableTracker)m.removeFromArray(floatMenus)
			}
		}
	}
	else
	{
		error("hideMenu() called without a menu object")
	}
}
function MM_startTimeout()
{
	setMenuTimer(1000)
}

function MM_showMenu(m,x,y,c,id)
{
	var obj=(id)?getElement(id):null;
	if(obj)
	{
		x+=getObjectOffsetX(obj);
		y+=getObjectOffsetY(obj)
	}
		m.showMenu(x,y)
}
	
FW_startTimeout=MM_startTimeout;
FW_showMenu=MM_showMenu;

function isMenu(obj)
{
	return(obj&&typeof(obj)=="object"&&obj.type&&obj.type=="Menu")
}

function getMenu(m,a)
{
	var obj=null;
	if(isMenu(m))
	{
		obj=m
	}
	else 
		if(a.length&&a[0])
		{
			if(typeof(a[0])=="object")
		  {
			  obj=isMenu(a[0])?a[0]:null
		  }
		  else 
			  if(typeof(a[0])=="string")
			  {
				  obj=menus[a[0]]
			  }
	   }
	return obj
}

function addMenuMethods(m)
{
	m.addMenuItem=addMenuItem;
	m.addMenuSeparator=addMenuSeparator;
	m.showMenu=showMenu;
	m.hideMenu=hideMenu;
	m.writeMenus=writeMenus;
	m.permanentMenu=permanentMenu;
	m.menuId=menuId;
	m.hasParent=hasParent;
	m.addToArray=addToArray;
	m.getMenuTree=getMenuTree;
	m.removeFromArray=removeFromArray;
	m.hideInactiveMenus=hideInactiveMenus;
	if(window.MenuAPI)MenuAPI(m)
}

function addMenuProperties(m,a)
{
	m.type="Menu";
	m.version="0.9 [menu.js; Menu; 011028]";
	m.index=menus.length;
	m.label=a[0]||"menuLabel"+pad(m.index,2);
	m.menuItemWidth=isNaN(a[1])?"":a[1];
	m.menuItemHeight=isNaN(a[2])?"":a[2];
	m.fontFamily=a[3]||"arial,helvetica,sans-serif";
	m.fontSize=a[4]||(window.fw?12:14);
	m.fontColor=a[5]||"#000000";
	m.fontColorHilite=a[6]||"#ffffff";
	m.menuItemBgColor=a[7]||"#cccccc";
	m.menuHiliteBgColor=a[8]||"#000084";
	m.menuItemHAlign= a[9]||"left";
	m.menuItemVAlign=a[10]||"top";
	m.menuItemPadding=isNaN(a[11])?1:a[11];
	m.menuItemSpacing=isNaN(a[12])?0:a[12];
	m.hideTimeout=isNaN(a[13])?"":a[13];
	m.childOffsetX=isNaN(a[14])?"":a[14];
	m.childOffsetY=isNaN(a[15])?"":a[15];
	m.childOffsetZ=(a[16]+""=="false")?true:false;
	m.isTransparent=(a[17]+""=="false")?true:false;
	m.isHorizontal=(a[18]+""=="false")?true:false;
	m.menuItemIndent=isNaN(a[19])?(fw?0:15):a[19];
	m.bgColor="#555555";
	m.menuBorder=1;
	m.menuLiteBorder=1;
	m.menuItemBorder=1;
	m.menuLiteBgColor="#ffffff";
	m.menuBorderBgColor="#777777";
	var s="/images/templates/";
	if(window.fw||window.mm)
	{
	 	m.disableDrag=true;
	 	m.childMenuIcon=s + "cm_arrow.gif";
	 	m.hideOnMouseOut=true
	}
	else
	{
		m.isScrollable=true;
		m.childMenuIcon=s+"black-right.gif";
		m.childMenuIconHilite=s+"white-right.gif"
	}
	m.scrollbarColor="pink";
	m.scrollbarThickness=13;
	m.scrollbars=new Array();
	m.scrollbarIcons=new Array();
	m.scrollbarIcons[0]=s+"black-up.gif";
	m.scrollbarIcons[1]=s+"black-right.gif";
	m.scrollbarIcons[2]=s+"black-down.gif";
	m.scrollbarIcons[3]=s+"black-left.gif";
	m.items=new Array();
	m.html="";
	menus[m.index]=m;
	menus[m.label]=m
}

function isImage(s)
{
	var i=Math.max(s.length-4,0);
	var x=s.toLowerCase().substring(i);
	return(x==".gif"||x==".jpg")
}

function menuItem(m,a)
{
	this.menu=m;
	if(!a.length)
	{
		this.isSeparator=true;
		m.hasSeparator=true
	}
	else
	{
		if(typeof(a[0])=="string")
		{
			if(isImage(a[0]))
		  {
				this.bgImage=a[0]
			}
			else
			{
				this.text=a[0]
			}
		}
		else 
	  if(isMenu(a[0]))
		{
			this.childMenu=a[0];
			a[0].parentItem=this;
			a[0].parentMenu=m;
			this.text=a[0].label;
			this.bgImage=a[0].bgImage
		}
		if(a[1])this.click=a[1];
		if(a[2])this.fontColor=a[2];
		if(a[3])
		{if(isImage(a[3]))
  		{
	  		this.bgImageHi=a[3]
		 	}
		  else
		  {
			  this.mouseover=a[3]
		  }
		}
		if(a[4])
		{
			if(isImage(a[4]))
			{
				this.bgImageLo=a[4]
			}
			else
			{
				this.mouseout=a[4]
			}
		}
		if(a[5])this.bgColor=a[5];
		if(a[6])this.fontColorHi=a[6];
		if(a[7])this.typeIcon=a[7];
		if(a[8])this.bgColorHi=a[8];
	}
	this.itemId=itemId;
	this.showItem=showItem;
	this.hideItem=hideItem
}

function createMenuLayer(m,styles)
{
	if(m.bgImageUp||m.bgImageOver||m.isTransparent)m.noBorders=true;
	createMenuSublayers(m,styles);
	var d=document;
	var bg=(styles.isTransparent)?"":styles.menuBorderBgColor;
	var lyr=null;
	if(is.n4)
	{
		lyr=new Layer(1000);
		if(bg)lyr.bgColor=bg;
		d=lyr.document;
		d.open("text/html");
		d.write(m.html);
		d.close()
	}
	else if(is.ie||is.opera)
	{
		var id=m.menuId("menuLayer");
		m.html=DIV(id,dhtmlStyle()+hiddenStyle()+bgStyle(styles,bg),m.html);
		if(d.readyState=="complete")
		{
			d.body.insertAdjacentHTML("BeforeEnd",m.html)
		}
		else
		{
			d.writeln(m.html)
		}
		lyr=getElement(id)
	}
	else if(is.dom)
	{
		lyr=d.createElement("DIV");
		if(lyr.style)lyr.style.position="absolute";
		else lyr.addAttribute("style","position:absolute");
		with(lyr.style)
		{
			top="0px";
			left="0px";
			if(bg)backgroundColor=bg
		}
		hideLayer(lyr);
		lyr.innerHTML=m.html;
		d.body.appendChild(lyr)
	}
	m.html="";
	if(lyr)
	{
		if(getElement(m.menuId("itemsLayer"),lyr))
		{
			setZIndex(lyr,99);
			m.menuLayer=lyr;
			setMenuReferences(m);
			setMenuStyles(m,styles);
			if(m.isPermanent)m.showMenu();
			if(is.opera)setOnResize()
		}
		else
		{
			error("Menu layers could not be created.\n"+"Perhaps you have style-sheets switched off?")
	  }
	}
}

function createMenuSublayers(m,styles)
{
	var b=(m.noBorders)?0:styles.menuBorder;
	m.liteX=m.liteY=b;
	m.html+=DIV(m.menuId("liteBorder"),dhtmlStyle(b,b)+bgStyle(styles,styles.menuLiteBgColor));
	b+=(m.noBorders)?0:styles.menuLiteBorder;
	m.itemsX=m.itemsY=b;
	var s=dhtmlStyle(b,b)+bgStyle(styles,styles.bgColor);
	m.html+=DIV(m.menuId("darkBorder"),s);
	var fw=window.fw;
	var f=styles.fontSize;
	var i=styles.menuItemIndent;
	var p=styles.menuItemPadding;
	styles.itemPaddingL=(fw)?(i||f):(1+i+p);
	styles.itemPaddingR=(fw)?(i||f):(p+(window.mm?0:i));
	styles.itemPaddingT=(fw)?1:p;
	styles.itemPaddingB=(fw)?5:p;
	var html="";
	for(var i=0;i<m.items.length;i++)html+=itemLayerDIV(m.items[i],styles);
	html=DIV(m.menuId("scrollLayer"),dhtmlStyle(),html);
	m.html+=DIV(m.menuId("itemsLayer"),s+sd("overflow","hidden"),html);
	if(window.scrollbarDIV)for(var i=0;i<4;i++)m.html+=scrollbarDIV(m,i,styles.scrollbarColor)
}

function itemLayerDIV(item,styles)
{
	item.bgColorLo =item.bgColor||styles.menuItemBgColor;
	item.bgImageLo =item.bgImageLo||styles.bgImageUp;
	item.fontColorLo =item.fontColor||styles.fontColor;
	var html=itemHiLoDIV(item,styles,false);
	item.bgColorHi=item.bgColorHi||styles.menuHiliteBgColor;
	item.bgImageHi=item.bgImageHi||styles.bgImageOver;
	item.fontColorHi=item.fontColorHi||styles.fontColorHilite;
	item.hasHi=(window.fw||window.mm||item.click||item.childMenu||item.bgImageHi||styles.bgImageOver);
	if(((is.n4||is.opera||is.ie4)&&item.hasHi)||item.isSeparator)html+=itemHiLoDIV(item,styles,true);
	var url=item.typeIcon;
	if(url)html+=IMG(url,item.itemId("typeIcon"));
	var url=(item.childMenu)?styles.childMenuIcon:"";
	if(url)html+=IMG(url,item.itemId("childIcon"));
	var s=dhtmlStyle()+bgStyle(styles,item.bgColorLo,item.bgImage);
	var w=styles.menuItemWidth;
	var h=styles.menuItemHeight||(window.fw?styles.fontSize+6:0);
	if(w)s+=sd("width",px(w));
	if(h)s+=sd("height",px(h));
	return DIV(item.itemId("itemLayer"),s,html)
}

function itemHiLoDIV(item,styles,hi)
{
	var html=item.text||"";
	var id=item.itemId(hi?"hi":"lo");
	if(item.isSeparator)
	{
		var bg=(hi)?styles.menuLiteBgColor:styles.bgColor;
		var x=(!item.menu.isHorizontal)?1:(hi)?5:4;
		var y=(item.menu.isHorizontal)?1:(hi)?5:4;
		var s=dhtmlStyle(x,y)+bgStyle("",bg)
	}
	else
	{
		var i=pi(styles.fontSize);
		var f=sd((is.n4?"fontSize":"font-size"),((is.dom&&i)?px(i):i));
		f+=sd("font-family",styles.fontFamily);
		f+=sd("font-weight",styles.fontWeight);
		f+=sd("font-style",styles.fontStyle);
		var l=styles.itemPaddingL;
		var r=styles.itemPaddingR;
		var t=styles.itemPaddingT;
		var b=styles.itemPaddingB;
		if(styles.menuItemWidth||(!is.n4&&!is.opera&&!is.konq&&!is.ie4&&!(is.ie&&is.mac)))f+=sd("text-align",styles.menuItemHAlign);
		var s=dhtmlStyle();
		if(is.n4||is.opera||is.ie4)
		{
			html=DIV(id+"Text",dhtmlStyle(l,t)+f,html)
		}
		else
		{
			s+=f;s+=sd("padding-left",px(l))+sd("padding-right",px(r));
			s+=sd("padding-top",px(t))+sd("padding-bottom",px(b));
			if(is.gecko&&html.substring(0,1)!="<")html="<DIV style='cursor:hand;cursor:pointer;'>"+html+"</DIV>";
			else 
				if((is.ie4win||is.ie5mac||is.ice)&&!styles.menuItemWidth)html="<NOBR>"+html+"</NOBR>"
		}
		if(hi)
		{
			s+=hiddenStyle();
			var bg=item.bgColorHi;
			var url=item.bgImageHi;
			var fontColor=item.fontColorHi
		}
		else
		{
			var bg=(is.ice)?"transparent":"";
			var url=item.bgImageLo;
			var fontColor=item.fontColorLo
		}
		s+=bgStyle(styles,bg,url)+sd("color",fontColor)
	}
	return DIV(id,s,html)
}

function itemId(type){return makeId(type,this.menu.index,this.index)}

function menuId(type){return makeId(type,this.index)}

function makeId(type,m,i){return "menu"+pad(m,2)+(isNaN(i)?"":"item"+pad(i,2))+type}

function pad(i,l){var s=""+i;while(s.length<l)s="0"+s;return s}

function bgStyle(m,bg,url)
{
	var b=isMenu(m)?m.isTransparent:false;
	if(url)url="url("+url+")";
	var s=(is.n4?"layer-":"")+"background-";
	return(b)?"":sd(s+"color",bg)+sd(s+"image",url)
}

function dhtmlStyle(l,t)
{
	return sd("position","absolute")+sd("left",px(l||0))+sd("top",px(t||0))+sd("cursor", "hand")+sd("cursor", "pointer")
}
function hiddenStyle(){return sd("visibility",(is.n4?"hide":"hidden"))}
function sd(p,v){return(v)?(p+":"+v+";"):""}
function IMG(url,id){var s=dhtmlStyle()+hiddenStyle();var html="<IMG "+(is.n4?"":"STYLE='"+s+"'")+"SRC='"+url+"' NAME='"+id+(is.n4?"Img":"")+"' HSPACE=0 VSPACE=0 onLoad='this.hasLoaded=true'>";if(is.n4)html=DIV(id,s,html);return html}
function DIV(id,s,body){return "<DIV "+(id?"ID='"+id+"' ":"")+"STYLE='"+(s||"")+"'>"+(body||"")+"</DIV>"}
function setMenuReferences(m){var lyr=m.menuLayer;m.liteBorder=getElement(m.menuId("liteBorder"),lyr);m.darkBorder=getElement(m.menuId("darkBorder"),lyr);m.itemsLayer=getElement(m.menuId("itemsLayer"),lyr);m.scrollLayer=getElement(m.menuId("scrollLayer"),m.itemsLayer);for(var i=0;i<m.items.length;i++){var item=m.items[i];var itemLayer=getElement(item.itemId("itemLayer"),(m.scrollLayer||m.itemsLayer));itemLayer.item=item;item.itemLayer=itemLayer;item.lo=getElement(item.itemId("lo"),itemLayer);item.hi=getElement(item.itemId("hi"),itemLayer);item.loText=getElement(item.itemId("loText"),item.lo);item.hiText=getElement(item.itemId("hiText"),item.hi);setIconReferences(item,itemLayer,"typeIcon");setIconReferences(item,itemLayer,"childIcon");if(is.n4)itemLayer.captureEvents(Event.MOUSEDOWN);itemLayer.onmousedown=startMenuDrag;if(!item.isSeparator){itemLayer.onmouseover=fn("this.item.showItem(e)");if(window.fw||window.mm||!item.childMenu)itemLayer.onmouseout=fn("this.item.hideItem(e)")}}if(window.setScrollBar)for(var i=0;i<4;i++)m.scrollbars[i]=setScrollBar(m,i)}
function setIconReferences(item,itemLayer,id){var lyr=eval("item."+id+"=getElement(item.itemId(id), itemLayer)");var img=eval("item."+id+"Img=getElement(item.itemId(id+'Img'),lyr)||lyr");if(is.n4&&img){img.itemLayer=itemLayer;img.onmousedown=fn("this.itemLayer.onmousedown(e)")}}
function fn(s){return new Function("e",s)}
function setMenuStyles(m,styles,z){if(!m.setStyles){setDimensions(m,styles);var w=m.menuW=m.itemsW+(2*m.itemsX);var h=m.menuH=m.itemsH+(2*m.itemsY);var b=!isNaN(m.itemsW)&&m.itemsW>0&&!isNaN(m.itemsH)&&m.itemsH>0;if(is.ie4win&&b)b=(w<getInsideWindowW()&&h<getInsideWindowH());z=(z||0)+1;if(b){for(var i=0;i<m.items.length;i++)setItemStyles(m.items[i],styles);m.setStyles=true}else if(z<=20){var s="menus['"+m.label+"'],menus['"+styles.label+"'], "+z;setTimeout("setMenuStyles("+s+")",100)}else{error("Menu '"+m.label+"' has zero height or width")}}}

function setDimensions(m,styles)
{
	var fixedW=m.itemsW=(styles.menuItemWidth||0);
	var fixedH=m.itemsH=(styles.menuItemHeight||0);
	var isH=m.isHorizontal;
	var x=0;
	var y=0;
	for(var i=0;i<m.items.length;i++)
	{
		var item=m.items[i];
		if(item.isSeparator)
		{
			if(isH)
			{
				item.itemW=10
			}
			else
			{
				item.itemH=10
			}
		}
	  else
	  {
	  	var lyr=item.loText||item.lo;
	  	var w=fixedW;
	  	item.contentW=getContentW(lyr);
	  	if(!w)
	  	{
	  		var w=item.contentW;
	  		if(w)
	  		{
	  			if(item.loText)w+=(styles.itemPaddingL+styles.itemPaddingR);
	  			if(item.childIcon)w+=Math.max(0,12-styles.itemPaddingR);
	  			if(!isH)m.itemsW=Math.max(w,m.itemsW)
	  		}
	  	}
	  	item.itemW=w;
	  	var h=fixedH;
	  	item.contentH=getContentH(lyr);
	  	if(!h)
	  	{
	  		var h=item.contentH;
	  		if(h)
	  		{
	  			if(item.loText)h+=(styles.itemPaddingT+styles.itemPaddingB);
	  			if(isH)m.itemsH=Math.max(h,m.itemsH)
	  		}
	  	}
	  	item.itemH=h
	  }
	  shiftTo(item.itemLayer,x,y);
	  var b=(m.hasSeparator||i==m.items.length-1)?0:((m.noBorders?0:styles.menuItemBorder)+styles.menuItemSpacing);
	  if(isH)
	  {
	  	x+=item.itemW+b
	  }
	  else
	  {
	  	y+=item.itemH+b
	  }
	 }
	 if(isH)
	 {
	 	m.itemsW=x
	}
	else
	{
	 	m.itemsH=y
	}
	m.scrollW=m.itemsW;
	m.scrollH=m.itemsH
}
	
function setItemStyles(item,styles)
{
	var m=item.menu;
	var isH=m.isHorizontal;
	var w=(isH)?item.itemW:m.itemsW;
	var h=(isH)?m.itemsH:item.itemH;
	setSize(item.itemLayer,w,h);
	if(item.isSeparator)
	{
		w=(isH)?1:w-2;h=(isH)?h-2:1
	}
	else
	{
		var s="menus["+m.index+"].items["+item.index+"]";
		if(item.typeIcon)shiftIcon(s+".typeIcon",1,"("+h+"-h)/2");
		if(item.childIcon)shiftIcon(s+".childIcon",w+"-w-2","("+h+"-h)/2")
	}
	if(item.lo)setSize(item.lo,w,h);
	if(item.hi)setSize(item.hi,w,h);
	var hAlign=styles.menuItemHAlign;
	var vAlign=styles.menuItemVAlign;
	var padX=(item.loText)?(styles.itemPaddingL+styles.itemPaddingR):0;
	var padY=(item.loText)?(styles.itemPaddingT+styles.itemPaddingB):0;
	var x=(hAlign=="left")?0:Math.max(0,(w-padX-item.contentW))/(hAlign=="center"?2:1);
	var y=(vAlign=="top")?0:Math.max(0,(h-padY-item.contentH))/(vAlign=="middle"?2:1);
	if(x||y)
	{
		if(item.loText)
		{
			shiftBy(item.loText,x,y);
	    if(item.hiText)shiftBy(item.hiText,x,y)
	  }
	  else 
	  	with(item.lo.style)
	  	{
	  		if(is.konq||(is.ie&&is.mac))paddingLeft=px(pi(paddingLeft)+x);
	  		paddingTop=px(pi(paddingTop)+y)
	  	}
	}
}

function shiftIcon(s,x,y,z){var obj=eval(s);if(obj){var img=(is.n4)?getElement(obj.id+"Img",obj):obj;if(img){var w=img.width||img.offsetWidth||0;var h=img.height||img.offsetHeight||0;if(img.hasLoaded&&w&&h){setSize(obj,w,h);shiftTo(obj,eval(x),eval(y));if(!isVisible(obj))showLayer(obj)}else{z=(z||0)+1;if(z<50)setTimeout("shiftIcon('"+s+"', '"+x+"', '"+y+"', "+z+")",100)}}}}
function shiftMenu(m,x,y,z)
{
	var w=m.menuW;
	var h=m.menuH;
	var minX=getPageOffsetX()+10;
	var minY=getPageOffsetY()+10;
	var maxX=minX+getInsideWindowW()-20;
	var maxY=minY+getInsideWindowH()-20;
	if(is.opera)
	{
		var i=document.body.style.pixelHeight;
		if(i)maxY=Math.min(maxY,i)
	}
	if(z==5)
	{
		x=getObjectX(m.menuLayer);
		y=getObjectY(m.menuLayer)
	}
	else if(z==4)
	{
	}
	else
	{
		if(m.isParent)
		{
			if(m.isPermanent)
			{
				x=m.permanentX;
				y=m.permanentY
			}
			if(isNaN(x))x=(x=="left")?minX:(x=="center")?maxX-(getInsideWindowW()+w)/2:(x=="right")?maxX-w:x;
			if(isNaN(y))y=(y=="top")?minY:(y=="center")?maxY-(getInsideWindowH()+h)/2:(y=="bottom")?maxY-h:y;
			var obj=getObject(x,null);
			if(obj)x=getObjectOffsetX(obj);
			var obj=getObject(y,obj);
			if(obj)y=getObjectOffsetY(obj);
			var altX=x=((x||x+""=="0")&&(isNaN(z)||(z<2)))?x:window.cursorX+(pi(x));
			var altY=y=((y||y+""=="0")&&(isNaN(z)||!(z%2)))?y:window.cursorY+(pi(y));
		}
		else
		{
			var p=m.parentMenu;
			var lyr=m.parentItem.itemLayer;
			var childX=(window.fw)?-2:p.childOffsetX;
			var childY=(window.fw)?getObjectH(lyr)/3:p.childOffsetY;
			childX=(isNaN(childX))?(p.isHorizontal?0:-2):1*childX;
			childY=(isNaN(childY))?(p.isHorizontal?0: 2):1*childY;
			var parentX=getObjectX(p.menuLayer)+p.itemsX+(p.scrollX||0);
			var parentY=getObjectY(p.menuLayer)+p.itemsY+(p.scrollY||0);
			setZIndex(m.menuLayer,getZIndex(p.menuLayer)+1);
			var isH=p.isHorizontal;
			x=parentX+(m.childOffsetZ?0:getObjectX(lyr))+childX+(isH?-m.itemsX:getObjectW(lyr));
			y=parentY+(m.childOffsetZ?0:getObjectY(lyr))+childY+(isH?getObjectH(lyr):-m.itemsY);
			var altX=(isH)?x+getObjectW(lyr)-(2*childX)+(2*m.itemsX):parentX-childX;
			var altY=(isH)?parentY-childY:y+getObjectH(lyr)-(2*childY)+(2*m.itemsY)
		}
		if(!m.isPermanent)
		{
			var p=(m.isParent)?null:m.parentMenu;
			var staticX=!p||!p.isHorizontal;
			var staticY=!p|| p.isHorizontal;
			x=(x+w<=maxX)?x:(altX<maxX&&altX-w>=minX)?altX-w:(staticX)?(altX-minX>maxX-x?altX-w:x):Math.max(maxX-w,minX);
			y=(y+h<=maxY)?y:(altY<maxY&&altY-h>=minY)?altY-h:(staticY)?(altY-minY>maxY-y?altY-h:y):Math.max(maxY-h,minY)
		}
	}
	m.menuX=x;
	m.menuY=y;
	if(window.checkScroll&&m.isScrollable&&!is.opera)checkScroll(m,minX,minY,maxX,maxY);
	shiftTo(m.menuLayer,m.menuX,m.menuY);if(!m.setSize)setSubLayersSize(m,m.scrollW,m.scrollH)
}
function getObject(a,lyr)
{
	var b=(typeof(a)=="string"&&a!=""&&isNaN(a));
	return(typeof(a)=="object")?a:b?getElement(a):(a||a+""=="0")?null:lyr
}

function setSubLayersSize(m,w,h){setSize(m.scrollLayer,w,h,-m.scrollX,-m.scrollY);var x=(is.ie4mac)?m.itemsX:0;var y=(is.ie4mac)?m.itemsY:0;setSize(m.itemsLayer,w+x,h+y);var x=m.itemsX-m.liteX;var y=m.itemsY-m.liteY;setSize(m.liteBorder,w+x,h+y);setSize(m.darkBorder,w+x,h+y);setSize(m.menuLayer,w+(2*m.itemsX),h+(2*m.itemsY));if(window.showScrollbar&&m.isScrollable)for(var i=0;i<4;i++)showScrollbar(m,w,h,i);m.setSize=true}

function showItem(E)
{
	var m=this.menu;
	m.hideInactiveMenus();
	if(m.activeItem)m.activeItem.hideItem();
	if(this.childMenu)
	{
		changeIcon(this.childIconImg,m.childMenuIconHilite);
		this.childMenu.showMenu()
	}
	if(this.hi)
	{
		showLayer(this.hi);
  }
	else if(this.hasHi)changeStyle(this,this.bgImageHi,this.bgColorHi,this.fontColorHi);
	m.activeItem=this;
 if(this.mouseover)eval(""+this.mouseover)
}
	
function hideItem(e){var m=this.menu;changeIcon(this.childIconImg,m.childMenuIcon);if(this.hi)hideLayer(this.hi);else if(this.hasHi)changeStyle(this,this.bgImageLo,this.bgColorLo,this.fontColorLo);m.activeItem=null;if(this.mouseout)eval(""+this.mouseout);setMenuTimer(m)}
function changeStyle(item,url,bg,c){with(item.lo.style){if(url)backgroundImage="url("+url+")";color=c}item.itemLayer.style.backgroundColor=bg}

function changeIcon(i,myURL)
{
	if(i&&myURL)i.src=myURL
}

function setMenuTimer(x)
{
	var p=isMenu(x)?x.topParent:null;
	var i=""+(p?(p.hideTimeout||p.hideOnMouseOut):x);
	if(i)
	{
		if(i=="true")i=2000;
		if(!isNaN(i))
		{
			clearMenuTimer();
			window.menuTimer=setTimeout("if(!window.mousedownMenu)hideInactiveMenus()",i)
		}
	}
}
function clearMenuTimer(){if(window.menuTimer)clearTimeout(menuTimer)}
function hideInactiveMenus(e){for(var i=activeMenus.length;i>0;i--){var m=activeMenus[i-1];var p=m.parentMenu;var b=isMenu(this)&&((m.index==this.index)||this.hasParent(m));if(!m.activeItem&&!m.activeChild&&!m.disableHide&&!b)m.hideMenu()}}
function hasParent(m){var p=this.parentMenu;return(p&&(p.index==m.index||p.hasParent(m)))}
function doMouseMove(e){return(window.mousedownItem)?doMenuDrag(e):setCursorPosition(e)}
function doMouseUp(e){return(window.mousedownItem)?finishMenuDrag():(window.mousedownMenu)?finishScroll():hideInactiveMenus()}
function setOnResize(b){if(is.n4||is.opera){var w=innerWidth;var h=innerHeight;var s="if("+w+"!=innerWidth||"+h+"!=innerHeight)location.reload();"}else{var s="for(var i=0;i<menus.length;i++){var m=menus[i];if(m.isPermanent)m.showMenu();else shiftMenu(m,0,0,5)}"}if(is.opera){if(!b&&window.resizeTimer)clearTimeout(window.resizeTimer);window.resizeTimer=setTimeout((b?s :"")+"setOnResize(true)",(b?500:2000))}else{window.onresize=new Function(s)}}
function ieOnScroll(){window.pageXOffset=getCanvas("scrollLeft");window.pageYOffset=getCanvas("scrollTop")}
function ieOnUnload(){for(var m=menus.length;m>0;m--){with(menus[m-1]){for(var i=items.length;i>0;i--)with(items[i-1])itemLayer=lo=hi=typeIcon=childIcon=null;for(var i=0;i<4;i++)if(scrollbars[i])scrollbars[i]=scrollbars[i].icon=scrollbars[i].edge=null;menuLayer=liteBorder=darkBorder=itemsLayer=scrollLayer=null}}}
function setCursorPosition(e){window.cursorX=getCursorX(e||event);window.cursorY=getCursorY(e||event)}
function startMenuDrag(e){var item=this.item;if(getMouseButton(e||event)==1){var p=item.menu.topParent;if(!p.disableDrag){if(p.enableTracker)p.removeFromArray(floatMenus);p.addToArray(dragMenus)}var w=window;w.mousedownX=w.cursorX;w.mousedownY=w.cursorY;w.mousedownItem=item}}
function doMenuDrag(e){var w=window;var x=w.cursorX;var y=w.cursorY;setCursorPosition(e);var deltaX=w.cursorX-x;if(isNaN(deltaX))deltaX=0;var deltaY=w.cursorY-y;if(isNaN(deltaY))deltaY=0;for(var i=0;i<dragMenus.length;i++)shiftMenuTree(dragMenus[i],deltaX,deltaY);return false}

function finishMenuDrag(e)
{
	var w=window;
	var item=w.mousedownItem;
	w.mousedownItem=null;
	var deltaX=Math.abs(w.mousedownX-w.cursorX);
	var deltaY=Math.abs(w.mousedownY-w.cursorY);
	var p=item.menu.topParent;
	if(!p.disableDrag)
	{
		p.removeFromArray(dragMenus);
		if(p.enableTracker)startMenuTracking(p);
		var mt=p.getMenuTree();
		for(var i=0;i<mt.length;i++)shiftMenu(mt[i],0,0,5)}
	if(deltaX<10&&deltaY<10)
	{
		item.hideItem();
		hideInactiveMenus();
		if(item.click)eval(""+item.click)
	}
}

function startMenuTracking(m){m.screenX=getObjectX(m.menuLayer)-getPageOffsetX();m.screenY=getObjectY(m.menuLayer)-getPageOffsetY();m.addToArray(floatMenus);if(!window.menuTrackingTimer)doMenuTracking()}
function doMenuTracking(){var b=false;for(var i=0;i<floatMenus.length;i++){var m=floatMenus[i];var lyr=m.menuLayer;var z=""+m.enableTracker;if(isNaN(z)||z<=0)z=10;var deltaX=getPageOffsetX()+m.screenX-getObjectX(lyr);var deltaY=getPageOffsetY()+m.screenY-getObjectY(lyr);deltaX=(deltaX>0&&deltaX<z)?z:(deltaX<0&&deltaX>z)?-z:deltaX;deltaY=(deltaY>0&&deltaY<z)?z:(deltaY<0&&deltaY>z)?-z:deltaY;if(deltaX||deltaY){b=true;shiftMenuTree(m,deltaX/z,deltaY/z)}}window.menuTrackingTimer=setTimeout("doMenuTracking()",(b?z+5:Math.min(z*50,500)))}
function shiftMenuTree(m,x,y){var mt=m.getMenuTree();for(var i=0;i<mt.length;i++)shiftBy(mt[i].menuLayer,x,y)}
function getMenuTree(){var mt=new Array();var p=this.parentMenu;while(p&&isVisible(p.menuLayer)){mt[mt.length]=p;p=p.parentMenu}mt.reverse();var m=this;while(m){mt[mt.length]=m;m=m.activeChild}return mt}
function addToArray(a){var l=a.length;for(var i=0;i<l;i++)if(a[i].index==this.index)break;if(i>=l)a[i]=this}
function removeFromArray(a){var z=0;var l=a.length;for(var i=0;i<l;i++){if(a[i].index==this.index){z++}else{if(z)a[i-z]=a[i]}}if(z)a.length=l-z}
function getElement(id,lyr)
{
	var d=(is.n4&&lyr)?lyr.document:document;
	var obj=(is.n4)?eval("d."+id):(is.ie)?d.all[id]:(is.dom||is.opera)?d.getElementById(id):null;
	return obj||d.images[id]||d.links[id]||d.anchors[id]
}
function setVisibility(obj,v){var s=(is.n4)?obj:obj.style;s.visibility=v}
function getVisibility(obj){var s=(is.n4)?obj:obj.style;return s.visibility.toLowerCase()}
function isVisible(obj){var v=getVisibility(obj);return(v=="inherit"||v=="visible"||v=="show"||v=="inherited"||!v)}
function setZIndex(obj,z){var s=(is.n4)?obj:obj.style;s.zIndex=z}
function getZIndex(obj){var s=(is.n4)?obj:obj.style;return(s.zIndex=="auto")?0:s.zIndex}
function hideLayer(lyr){setVisibility(lyr,(is.n4?"hide":"hidden"))}
function showLayer(lyr){setVisibility(lyr,((is.opera||is.ice)?"visible":"inherit"))}
function getPageOffsetX(){return window.pageXOffset||window.scrollX||0}
function getPageOffsetY(){return window.pageYOffset||window.scrollY||0}
function getObjectOffsetX(obj,innerX){var x=obj.pageX||obj.x||obj.offsetLeft;x=(is.ie4mac&&innerX&&x==innerX)?0:(x||(is.ie&&is.mac?obj.leftMargin:0));var p=(is.ie4mac)?obj.parentElement:obj.offsetParent;return x+(p?getObjectOffsetX(p,x):0)}
function getObjectOffsetY(obj,innerY){var y=obj.pageY||obj.y||(is.ie&&is.mac?obj.topMargin:0)||obj.offsetTop||0;var p=(is.ie4mac)?obj.parentElement:obj.offsetParent;return((is.ie4mac&&innerY&&y==innerY)?0:y)+(p?getObjectOffsetY(p,y):0)}
function getObjectX(obj)
{
	return(is.n4)?obj.left:(is.ie||is.opera)?obj.style.pixelLeft:(is.dom)?pi(obj.style.left):0
}
function getObjectY(obj){return(is.n4)?obj.top:(is.ie||is.opera)?obj.style.pixelTop:(is.dom)?pi(obj.style.top):0}
function getObjectH(obj){return(is.n4)?obj.clip.height:(is.ie||is.opera)?obj.style.pixelHeight:(is.dom)?pi(obj.style.height):0}
function getObjectW(obj){return(is.n4)?obj.clip.width:(is.ie||is.opera)?obj.style.pixelWidth:(is.dom)?pi(obj.style.width):0}
function getContentH(lyr){return(is.n4)?lyr.document.height:(is.ie)?(is.mac?lyr.offsetHeight:lyr.scrollHeight):(is.opera)?lyr.style.pixelHeight:(is.dom)?lyr.offsetHeight:0}
function getContentW(lyr){return(is.n4)?lyr.document.width:(is.ie)?(is.mac?lyr.offsetWidth:lyr.scrollWidth):(is.opera)?lyr.style.pixelWidth:(is.dom)?domContentW(lyr):0}
function domContentW(obj){var w=pi(obj.offsetWidth)-(is.konq?pi(obj.clientWidth):0);var childW=0;if(is.konq||is.gecko){var n=obj.childNodes;for(var i=0;i<n.length;i++)childW=Math.max(childW,domContentW(n[i]))}return w+childW}
function getInsideWindowH(){var h=(nsHasScrollBars()&&innerWidth<document.width)?18:0;return window.innerHeight-h||getCanvas("clientHeight")}
function getInsideWindowW(){var w=(nsHasScrollBars()&&innerHeight<document.height)?18:0;return window.innerWidth-w||getCanvas("clientWidth")}
function nsHasScrollBars(){return is.ns&&(is.dom||(is.n4&&scrollbars.visible))}
function getCanvas(s){var c=(is.strict&&!is.ie5mac)?document.documentElement:document.body;return(c&&s)?eval("c."+s+"||0"):(s)?0:c}
function px(i){return i+"px"}function pi(i){return parseInt(i||0)}
function setSize(obj,w,h,clipX,clipY){setClip(obj,clipY||0,w+(clipX||0),h+(clipY||0),clipX||0);if(is.strict){var s=obj.style;w-=(pi(s.paddingLeft)+pi(s.paddingRight));h-=(pi(s.paddingTop)+pi(s.paddingBottom))}if(is.n4)with(obj){width=w;height=h}else if(is.opera)with(obj.style){pixelWidth=w;pixelHeight=h}else with(obj.style){width=px(w);height=px(h)}}
function setClip(obj,t,r,b,l){if(is.n4)with(obj.clip){top=t;right=r;bottom=b;left=l}else{obj.style.clip="rect("+t+" "+r+" "+b+" "+l+")"}}
function shiftBy(obj,x,y){if(is.n4){obj.left+=x;obj.top+=y}else if(is.opera)with(obj.style){pixelLeft+=x;pixelTop+=y}else with(obj.style){left=px(x+pi(left));top=px(y+pi(top))}}
function shiftTo(obj,x,y){if(is.n4){obj.left=x;obj.top=y}else if(is.opera)with(obj.style){pixelLeft=x;pixelTop=y}else with(obj.style){left=px(x);top=px(y)}}
function getCursorX(e){return e.pageX||e.clientX+((is.ie||is.ice)?getPageOffsetX():0)}
function getCursorY(e){return e.pageY||e.clientY+((is.ie||is.ice)?getPageOffsetY():0)}
function getMouseButton(e){return e.which||e.button+(is.ie?0:1)}
function error(msg){if(location.protocol=="file:"&&!window.menuError){msg="Sorry, there was a problem with the menus\n\n"+msg+"\n\n";msg+="Do you wish to see any more error messages?";window.menuError=!confirm(msg)}}
function domSniffer()
{
	var t=true;
	var n=navigator;
	if(n.appName=="Netscape")this.ns=t;
	if(n.__ice_version)this.ice=t;
	var s=n.userAgent;
	if(s.indexOf("Mac")>=0)this.mac=t;
	if(s.indexOf("Gecko")>=0)this.gecko=t;
	if(s.indexOf("Opera")>=0)this.opera=t;
	if(s.indexOf("Konqueror")>=0)this.konq=t;
	var d=document;
	if(d.layers)this.n4=t;
	if(d.childNodes)this.dom=t;
	if(d.all&&d.plugins)
	{
		this.ie=t;
		if(this.dom)
		{
			if(this.mac)this.ie5mac=t
		}
		else
		{
			this.ie4=t;
			if(this.mac)
			{
				this.ie4mac=t
			}
			else
			{
				this.ie4win=t
			}
		}
	}
	if(this.konq||this.ice)
	{
		this.strict=t
	}
	else
	{
		var s=d.compatMode;
		if(s&&s=="CSS1Compat")this.strict=t;
		var dt=d.doctype;
		if(dt)
		{
			var s=dt.systemId||dt.name;
			if(s&&s.indexOf("strict.dtd")>=0)this.strict=t
		}
	}
	if(!this.n4&&!this.ie&&!this.opera&&!this.dom)error("this browser can't display DHTML menus")
}
function hideMenusOnKeyPress(ascii,ctrl){var w=window;if(!w.is)w.is=new domSniffer();if(is.n4)document.captureEvents(Event.KEYPRESS);document.onkeypress=menuKeyPress;w.itemsHideKey=new Object();w.itemsHideKey.ctrl=ctrl||false;w.itemsHideKey.ascii=(typeof(ascii)=="string")?ascii.toLowerCase().charCodeAt(0):(ascii||27)}
function menuKeyPress(e){if(e){var ctrl=(e.modifiers&Event.CONTROL_MASK);var ascii=e.which}else if(window.event){var ctrl=event.ctrlKey;var ascii=event.keyCode;if(ctrl&&ascii<96)ascii+=96}var k=window.itemsHideKey;if((k.ctrl==ctrl)&&(k.ascii==ascii))hideInactiveMenus()}
function enlargeWindow(){if(!window.askAboutWindowSize&&window.screen){var maxH=screen.availHeight;var maxW=screen.availWidth;var h=getInsideWindowH();var w=getInsideWindowW();var s="Would you like to enlarge this window?";if(((h&&(h<maxH*0.6))||(w&&(w<maxW*0.7)))&&confirm(s)){window.moveTo(0,0);window.resizeTo(maxW,maxH)}window.askAboutWindowSize=true}}


function preloadImages(a)
{
	var i=0;
	var imgArray = new Array;
	for	(i=0; i<=a.length-1; i++)
	{
		imgArray[i] = new Image();
		imgArray[i].src = a[i];
	}
}
