var isDOM = document.getElementById ? 1 : 0, 
    isIE = document.all ? 1 : 0,
	isNS4 = navigator.appName == 'Netscape' && !isDOM ? 1 : 0,
	isOp = self.opera ? 1 : 0,
	isDyn = isDOM || isIE || isNS4;
	
var _MYID = null;
function AUCRMR()
{
	var _t;
	if (_MYID == null)
	{
		_t = setTimeout("AUCRMR()", 5);
		return;
	}
	mRoot =  getRef(_MYID);
	
	if (!mRoot)
	{
		_t = setTimeout("AUCRMR()", 5);
		return;
	}
}	
	
function getRef(i,p)
{
	p = !p ? document : p.navigator ? p.document : p;
	
	return isIE ? p.all[i] : isDOM ? (p.getElementById ? p : p.ownerDocument).getElementById(i) : isNS4 ? p.layers[i] : null
	
}

function getSty(i,p)
{
	var r = getRef(i,p);
	
	return r ? isNS4 ? r : r.style : null
}

if (!self.LayerObj)
	var LayerObj = new Function('i','p','this.ref=getRef(i,p);this.sty=getSty(i,p);return this');
	
function getLyr(i,p)
{
	return new LayerObj(i,p)
}

function LyrFn(n,f)
{
	LayerObj.prototype[n] = new Function('var a = arguments, p = a[0], px = isNS4 || isOp ? 0 : "px"; with(this){'+f+'}');
}
	
LyrFn ('x', 'if (!isNaN(p)) sty.left = p + "px"; else return parseInt(sty.left)');

LyrFn('y', 'if (!isNaN(p)) sty.top = p + "px"; else return parseInt(sty.top)');

if (typeof addEvent != 'function')
{
	var addEvent = function(o, t, f, l)
					{
						var d = 'addEventListener', n = 'on' + t, rO = o, rT = t, rF = f, rL = l;
						
						if (o[d] && !l)
						{
							return o[d](t, f, false);
						}
							
						if (!o._evts) 
						{
							o._evts = {};
						}
						
						if (!o._evts[t])
						{
							o._evts[t] = o[n] ? {b:o[n]} : {};
							o[n] = new Function('e','var r=true,o=this,a=o._evts["'+t+'"],i; for(i in a){o._f=a[i]; r=o._f(e||window.event) != false && r; o._f=null} return r');
							if (t != 'unload')
							{
								addEvent(window,'unload',function(){removeEvent(rO,rT,rF,rL)});
							}
						}
						
						if (!f._i)
						{
							f._i = addEvent._i++;
						}
						
						o._evts[t][f._i] = f;
					};
					
	addEvent._i = 1;
	
	var removeEvent = function(o,t,f,l)
					  {
						  var d='removeEventListener';
						  if(o[d] && !l)
						  {
						  	return o[d](t,f,false);
						  }
						  if(o._evts && o._evts[t] && f._i)
						  {
						  	delete o._evts[t][f._i];
						  }
					   }
}

function FSMenu(myName, nested, cssProp, cssVis, cssHid)
{
	this.myName = myName;
	this.nested = nested;
	this.cssProp = cssProp;
	this.cssVis = cssVis;
	this.cssHid = cssHid;
	this.cssLitClass = 'highlighted';
	this.menus = {root:new FSMenuNode('root', true, this)};
	this.menuToShow = [];
	this.mtsTimer = null;
	this.showDelay = 0;
	this.switchDelay = 0; //default: 125
	this.hideDelay = 0; //default: 500
	this.showOnClick = 0;
	this.hideOnClick = true;
	this.animInSpeed = 10; //default: 0.2
	this.animOutSpeed = 10; //default: 0.2
	this.animations = []
}

FSMenu.prototype.show = function(mN)
						{
							with(this)
							{
								menuToShow.length = arguments.length;
								for (var i=0; i<arguments.length; i++)
								{
									menuToShow[i] = arguments[i];
								}
								clearTimeout(mtsTimer);
								if (!nested)
								{
									mtsTimer = setTimeout(myName + '.menus.root.over()', 10);
								}
							}
						};
						
FSMenu.prototype.hide = function(mN)
						{
							with(this)
							{
								clearTimeout(mtsTimer);
								if (menus[mN])
								{
									menus[mN].out();
								}
							}
						};
						
FSMenu.prototype.hideAll = function()
							{
								with(this)
								{
									for (var m in menus)
									{
										if (menus[m].visible && !menus[m].isRoot)
										{
											menus[m].hide(true);
										}
									}
								}
							};
							
function FSMenuNode(id, isRoot, obj)
{
	this.id = id;
	this.isRoot = isRoot;
	this.obj = obj;
	this.lyr = this.child = this.par = this.timer = this.visible = null;
	this.args = [];
	var node = this;
	this.over = function(evt)
				{
					with(node)
					{
						with(obj)
						{
							if (isNS4 && evt && lyr.ref)
							{
								lyr.ref.routeEvent(evt);
							}
							clearTimeout(timer);
							clearTimeout(mtsTimer);
							if (!isRoot && !visible)
							{
								node.show();
							}
							if (menuToShow.length)
							{
								var a = menuToShow, m = a[0];
								if (!menus[m] || !menus[m].lyr.ref)
								{
									menus[m] = new FSMenuNode(m, false, obj);
								}
								var c = menus[m];
								if (c == node)
								{
									menuToShow.length = 0;
									return;
								}
								clearTimeout(c.timer);
								if (c != child && c.lyr.ref)
								{
									c.args.length = a.length;
									for (var i=0; i<a.length; i++)
									{
										c.args[i] = a[i];
									}
									var delay = child ? switchDelay : showDelay;
									c.timer = setTimeout('with('+myName+'){menus["'+c.id+'"].par=menus["'+node.id+'"];menus["'+c.id+'"].show()}',delay?delay:1)
								}
								menuToShow.length = 0;
							}
							if (!nested && par)
							{
								par.over();
							}
						}
					}
				};
					
	this.out = function(evt)
				{
					with(node)
					{
						with(obj)
						{
							if (isNS4 && evt && lyr && lyr.ref)
							{
								lyr.ref.routeEvent(evt);
							}
							clearTimeout(timer);
							if (!isRoot && hideDelay >= 0)
							{
								timer = setTimeout(myName+'.menus["'+id+'"].hide()',hideDelay);
								if (!nested && par)
								{
									par.out();
								}
							}
						}
					}
				};
				
	if (this.id != 'root')
	{
		with(this)
		{
			with(lyr = getLyr(id))
			{
				if (ref)
				{
					if (isNS4)
					{
						ref.captureEvents(Event.MOUSEOVER|Event.MOUSEOUT);
					}
					addEvent(ref, 'mouseover', this.over);
					addEvent(ref, 'mouseout', this.out);
					if (obj.nested)
					{
						addEvent(ref, 'focus', this.over);
						addEvent(ref, 'click', this.over);
						addEvent(ref, 'blur', this.out);
					}
				}
			}
		}
	}
};
	
FSMenuNode.prototype.show = function(forced)
							{
								with(this)
								{
									with(obj)
									{
										if (!lyr || !lyr.ref)
										{
											return;
										}
										if (par)
										{
											if (par.child && par.child != this)
											{
												par.child.hide();
											}
											par.child = this;
										}
										var offR = args[1], offX = args[2], offY = args[3], lX = 0, lY = 0, doX ='' + offX !='undefined', doY = '' + offY != 'undefined';
										if (self.page && offR && (doX || doY))
										{
											with (page.elmPos(offR, par.lyr ? par.lyr.ref : 0))
											{
												lX = x, lY = y;
											}
											if (doX) 
											{
												lyr.x(lX + eval(offX));
											}
											if (doY)
											{
												lyr.y(lY + eval(offY));
											}
										}
										if (offR)
										{
											lightParent(offR, 1);
										}
										visible = 1;
										if (obj.onshow)
										{
											obj.onshow(id);
										}
										lyr.ref.parentNode.style.zIndex = '2';
										setVis(1, forced);
									}
								}
							};
								
FSMenuNode.prototype.hide = function(forced)
							{
								with(this)
								{
									with(obj)
									{
										if (!lyr || !lyr.ref || !visible)
										{
											return;
										}
										if (isNS4 && self.isMouseIn && isMouseIn(lyr.ref))
										{
											return show();
										}
										if (args[1])
										{
											lightParent(args[1],0);
										}
										if (child)
										{
											child.hide();
										}
										if (par && par.child == this)
										{
											par.child = null;
										}
										if (lyr)
										{
											visible = 0;
											if (obj.onhide)
											{
												obj.onhide(id);
											}
											lyr.ref.parentNode.style.zIndex = '1';
											setVis(0,forced);
										}
									}
								}
							};
							
FSMenuNode.prototype.lightParent = function(elm,lit)
									{
										with(this)
										{
											with(obj)
											{
												if (!cssLitClass || isNS4)
												{
													return;
												}
												if (lit)
												{
													elm.className += (elm.className ? ' ' : '') + cssLitClass;
												}
												else 
												{
													elm.className = elm.className.replace(new RegExp('(\\s*'+cssLitClass+')+$'),'');
												}
											}
										}
									};
									
FSMenuNode.prototype.setVis = function(sh,forced)
								{
									with(this)
										with(obj)
										{
											if(lyr.forced&&!forced)
												return;
											lyr.forced=forced;
											lyr.timer=lyr.timer||0;
											lyr.counter=lyr.counter||0;
											with(lyr)
											{
												clearTimeout(timer);
												if(sh&&!counter)
													sty[cssProp]=cssVis;
												var speed=sh?animInSpeed:animOutSpeed;
												if(isDOM&&speed<1)
													for(var a=0;a<animations.length;a++)
														animations[a](ref,counter,sh);
												counter+=speed*(sh?1:-1);
												if(counter>1)
												{
													counter=1;
													lyr.forced=false
												}
												else if(counter<0)
												{
													counter=0;
													sty[cssProp]=cssHid;
													lyr.forced=false
												}
												else if(isDOM)
												{
													timer=setTimeout(myName+'.menus["'+id+'"].setVis('+sh+','+forced+')',50)
												}
											}
										}
									};
									
FSMenu.animSwipeDown=function(ref,counter,show)
{
	if(show&&(counter==0))
	{
		ref._fsm_styT=ref.style.top;
		ref._fsm_styMT=ref.style.marginTop;
		ref._fsm_offT=ref.offsetTop||0
	}
	var cP=Math.pow(Math.sin(Math.PI*counter/2),0.75);
	var clipY=ref.offsetHeight*(1-cP);
	ref.style.clip=(counter==1?((window.opera||navigator.userAgent.indexOf('KHTML')>-1)?'':'rect(auto,auto,auto,auto)'):'rect('+clipY+'px,'+ref.offsetWidth+'px,'+ref.offsetHeight+'px,0)');
	if(counter==1||(counter<0.01&&!show))
	{
		ref.style.top=ref._fsm_styT;
		ref.style.marginTop=ref._fsm_styMT
	}
	else
	{
		ref.style.top=((0-clipY)+(ref._fsm_offT))+'px';ref.style.marginTop='0'}};FSMenu.animFade=function(ref,counter,show){var done=(counter==1);if(ref.filters){var alpha=!done?' alpha(opacity='+parseInt(counter*100)+')':'';if(ref.style.filter.indexOf("alpha")==-1)ref.style.filter+=alpha;else ref.style.filter=ref.style.filter.replace(/\s*alpha\([^\)]*\)/i,alpha)}else ref.style.opacity=ref.style.MozOpacity=counter/1.001};FSMenu.animClipDown=function(ref,counter,show){var cP=Math.pow(Math.sin(Math.PI*counter/2),0.75);ref.style.clip=(counter==1?((window.opera||navigator.userAgent.indexOf('KHTML')>-1)?'':'rect(auto,auto,auto,auto)'):'rect(0,'+ref.offsetWidth+'px,'+(ref.offsetHeight*cP)+'px,0)')};
									
									
FSMenu.prototype.activateMenu=function(id, subInd)
{
	with(this)
	{
		if (!isDOM || !document.documentElement)
			return;
		var fsmFB = getRef('fsmenu-fallback');
		if(fsmFB)
		{
			fsmFB.rel='alternate stylesheet';
			fsmFB.disabled=true;
		}
		var a, ul, li, parUL, mRoot = getRef(id), nodes, count=1;
		
				
		var lists=mRoot.getElementsByTagName('ul');for(var i=0;i<lists.length;i++){li=ul=lists[i];while(li){if(li.nodeName.toLowerCase()=='li')break;li=li.parentNode}if(!li)continue;parUL=li;while(parUL){if(parUL.nodeName.toLowerCase()=='ul')break;parUL=parUL.parentNode}a=null;for(var j=0;j<li.childNodes.length;j++)if(li.childNodes[j].nodeName.toLowerCase()=='a')a=li.childNodes[j];if(!a)continue;var menuID=myName+'-id-'+count++;if(ul.id)menuID=ul.id;else ul.setAttribute('id',menuID);var sOC=(showOnClick==1&&li.parentNode==mRoot)||(showOnClick==2);var evtProp=navigator.userAgent.indexOf('Safari')>-1||isOp?'safRtnVal':'returnValue';var eShow=new Function('with('+myName+'){var m=menus["'+menuID+'"],pM=menus["'+parUL.id+'"];'+(sOC?'if((pM&&pM.child)||(m&&m.visible))':'')+' show("'+menuID+'",this)}');var eHide=new Function('e','if(e.'+evtProp+'!=false)'+myName+'.hide("'+menuID+'")');addEvent(a,'mouseover',eShow);addEvent(a,'focus',eShow);addEvent(a,'mouseout',eHide);addEvent(a,'blur',eHide);if(sOC)addEvent(a,'click',new Function('e',myName+'.show("'+menuID+'",this);if(e.cancelable&&e.preventDefault)e.preventDefault();e.'+evtProp+'=false;return false'));if(subInd)a.insertBefore(subInd.cloneNode(true),a.firstChild)}if(isIE&&!isOp){var aNodes=mRoot.getElementsByTagName('a');for(var i=0;i<aNodes.length;i++){addEvent(aNodes[i],'focus',new Function('e','var node=this.parentNode;while(node){if(node.onfocus)node.onfocus(e);node=node.parentNode}'));addEvent(aNodes[i],'blur',new Function('e','var node=this.parentNode;while(node){if(node.onblur)node.onblur(e);node=node.parentNode}'))}}if(hideOnClick)addEvent(mRoot,'click',new Function(myName+'.hideAll()'));menus[id]=new FSMenuNode(id,true,this)}};var page={win:self,minW:0,minH:0,MS:isIE&&!isOp,db:document.compatMode&&document.compatMode.indexOf('CSS')>-1?'documentElement':'body'};page.elmPos=function(e,p){var x=0,y=0,w=p?p:this.win;e=e?(e.substr?(isNS4?w.document.anchors[e]:getRef(e,w)):e):p;if(isNS4){if(e&&(e!=p)){x=e.x;y=e.y};if(p){x+=p.pageX;y+=p.pageY}}if(e&&this.MS&&navigator.platform.indexOf('Mac')>-1&&e.tagName=='A'){e.onfocus=new Function('with(event){self.tmpX=clientX-offsetX;self.tmpY=clientY-offsetY}');e.focus();x=tmpX;y=tmpY;e.blur()}else while(e){x+=e.offsetLeft;y+=e.offsetTop;e=e.offsetParent}return{x:x,y:y}};if(isNS4){var fsmMouseX,fsmMouseY,fsmOR=self.onresize,nsWinW=innerWidth,nsWinH=innerHeight;document.fsmMM=document.onmousemove;self.onresize=function(){if(fsmOR)fsmOR();if(nsWinW!=innerWidth||nsWinH!=innerHeight)location.reload()};document.captureEvents(Event.MOUSEMOVE);document.onmousemove=function(e){fsmMouseX=e.pageX;fsmMouseY=e.pageY;return document.fsmMM?document.fsmMM(e):document.routeEvent(e)};function isMouseIn(sty){with(sty)return((fsmMouseX>left)&&(fsmMouseX<left+clip.width)&&(fsmMouseY>top)&&(fsmMouseY<top+clip.height))}}