window.CMenus=[];



function bw_check()

{

	var is_major=parseInt(navigator.appVersion);

	this.nver=is_major;

	this.ver=navigator.appVersion;

	this.agent=navigator.userAgent;

	this.dom=document.getElementById?1:0;

	this.opera=window.opera?1:0;

	this.ie5=(this.ver.indexOf("MSIE 5")>-1&&this.dom&&!this.opera)?1:0;

	this.ie6=(this.ver.indexOf("MSIE 6")>-1&&this.dom&&!this.opera)?1:0;

	this.ie4=(document.all&&!this.dom&&!this.opera)?1:0;

	this.ie=this.ie4||this.ie5||this.ie6;

	this.mac=this.agent.indexOf("Mac")>-1;

	this.ns6=(this.dom&&parseInt(this.ver)>=5)?1:0;

	this.ie3=(this.ver.indexOf("MSIE")&&(is_major<4));

	this.hotjava=(this.agent.toLowerCase().indexOf('hotjava')!=-1)?1:0;

	this.ns4=(document.layers&&!this.dom&&!this.hotjava)?1:0;

	this.bw=(this.ie6||this.ie5||this.ie4||this.ns4||this.ns6||this.opera);

	this.ver3=(this.hotjava||this.ie3);

	this.opera7=((this.agent.toLowerCase().indexOf('opera 7')>-1) || (this.agent.toLowerCase().indexOf('opera/7')>-1));

	this.operaOld=this.opera&&!this.opera7;

	return this;

};



function none()

{

}



function nn(val)

{

	return val != null;

}

 

function und(val)

{

	return typeof(val)=='undefined';

}



function AdvancedMenu(name, items)

{

	this.bw=new bw_check();

	this.bi=new Image();

	this.bi.src=BLANK_IMAGE;

	if (this.bw.ns4) 

		window.onresize=resizeHandler;

	window.CMenus[name]=this;

	window.CMenuHideTimers[name]=null;

	this.name=name;

	this.rel=items[0].pos=="relative";

	this.root=[];

	this.root.par=null;

	this.root.cd=[];

	this.root.fmt=items[0];

	this.root.pos=this.rel?[0,0]:items[0].pos;

	this.root.fmt.pos=this.root.pos;

	this.root.frameoff=items[0].pos?items[0].pos:[0,0];

	this.items=[];

	this.root.lvl=new CMenuLevel(this, this.root);

	for (var i=1;i<items.length;i++) 

		if (!und(items[i])) 

			new CMenuItem(this, this.root, items[i], und(items[i].format)?items[0]:items[i].format);

		this.drawTop=function()

		{

			var s="";

			for (var i=0;i<this.items.length;i++)

				if (this.items[i].par==this.root) 

					s+=this.items[i].draw();

				if (this.rel)

				{

					var w=0;

					var h=0;

					for (var i=0;i<this.root.cd.length;i++) 

					{

						var n=this.root.cd[i];

						if (n.pos[1]+n.size[0]>h) 

							h=n.pos[1]+n.size[0];

							if (n.pos[0]+n.size[1]>w)

								w=n.pos[0]+n.size[1];

					}

					s=this.bw.ns4?'<ilayer id="cm'+this.name+'_" >' + s + '</ilayer>':'<div id="cm'+this.name+'_" style="position:relative;left:0px;top:0px;width:'+w+'px;height:'+h+'px;">' + s +'</div>';

				}

			return s;

		};





		this.drawOther=function()

		{

			var s="";

			for (var i=0;i<this.items.length;i++) 

				if (this.items[i].par!=this.root)

					s+=this.items[i].draw();

				return s;

		};

		this.initTop=function()

		{

			document.write(this.drawTop());

		};

		this.init=function()

		{

			document.write(this.drawOther());

		};

		this.hide=function()

		{

			if (this.root.fmt.popup)

				this.root.lvl.vis(0);

			else 

			{

				for (var i=0;i<this.root.cd.length;i++)

					if (this.root.cd[i].lvl)

						this.root.cd[i].lvl.vis(0);

					this.root.lvl.a=null;

					this.root.lvl.draw();

					if (this.root.fmt.hidden_top)

						this.root.lvl.vis(0);

			}

		};







		this.mpopup=function(ev,offX,offY)

		{

			var x=ev.pageX?ev.pageX:(this.bw.opera?ev.clientX:this.bw.ie4?ev.clientX+document.body.scrollLeft:ev.x+document.body.scrollLeft);

			var y=ev.pageY?ev.pageY:(this.bw.opera?ev.clientY:this.bw.ie4?ev.clientY+document.body.scrollTop:ev.y+document.body.scrollTop);

			var po=this.root.fmt.popupoff;

			y += offY?offY:po?po[0]:0;x += offX?offX:po?po[1]:0;this.popup(x, y);

		};

		this.popup=function(x,y)

		{

			this.moveXY(x,y);

			this.root.lvl.a=null;

			this.root.lvl.vis(1);

			mEvent(this.name,0,'t');

			mEvent(this.name,0,'0');

		};

		this.moveXY=function(x,y)

		{

			if (!this.root.pos || this.root.pos[0] != x || this.root.pos[1] != y) 

			{

				this.root.pos=[x,y];

				this.root.loff=[0,0];

				this.root.ioff=[0,0];

				for (var i=0;i<this.items.length;i++)

				{

					this.items[i].setPosFromParent();

					this.items[i].move(this.items[i].pos[0],this.items[i].pos[1]);

				}

			}

		};

		this.show=function()

		{

			if (this.rel) 

				this.move();

			this.root.lvl.vis(1);

		};

		this.move=function()

		{

			if (!this.rel)

				 return;

			var d=this.get_div('cm'+this.name+'_');

			var x=this.bw.ns4?d.pageX:domPageX(d);

			var y=this.bw.ns4?d.pageY:domPageY(d);

			var topNode=this.items[0];

			this.root.pos=[x,y];

			for (var i=0;i<this.items.length;i++)

			{

				this.items[i].setPosFromParent();

				if (this.items[i].par !== this.root)

					this.items[i].move(this.items[i].pos[0],this.items[i].pos[1]);

			}

		};

		this.get_div=function (name)

		{

			return this.bw.ns4?document.layers[name]:document.getElementById?document.getElementById(name):document.all[name];

		}

};





function CMenuLevel(menu, par){

	this.menu=menu;

	this.par=par;

	this.v=0;

	this.vis=function(s)

	{

		var ss=this.v;

		this.v=s;

		var l=this.par.cd.length;

		for (var i=0;i<l;i++)

		{

			var n=this.par.cd[i];

			if ( n.hc() && n.lvl.v && !s )

				n.lvl.vis(s);

			n.vis(s);

		}

		if (!s) 

			this.a=null;

		if (this.v!=ss&&this.menu.onlevelshow) 

			this.menu.onlevelshow(this);

	};

	this.setA=function(idx,s)

	{

		var n=this.menu.items[idx];

		if (nn(this.a)&&n.par.lvl!=this.a.par.lvl)

			return;

		if(s&&n.hc())n.lvl.vis(1);

		if( s && n!= this.a && nn(this.a) && this.a.hc() && this.a.lvl.v )

			this.a.lvl.vis(0);

			this.a=n;

			this.draw();

	};

	this.draw=function()

	{	

		if (this.menu.root.lvl==this&&this.menu.root.fmt.hidden_top)

			return;

		for (var i=0;i<this.par.cd.length;i++)

			if (this.par.cd[i]==this.a)

				this.par.cd[i].setVis('o');

			else

				this.par.cd[i].setVis('n');

	}

};



function CMenuItem(menu, par, item, format)

{

	if (und(item))

		return;

	this.lvl=null;

	this.par=par;

	this.code=item.code;

	this.ocode=item.ocode || item.code;

	this.targ=und(item.target)?"":'target="'+item.target+'" ';

	this.url=und(item.url)?"javascript:none()":item.url;

	this.fmt=format;this.menu=menu;

	this.bw=menu.bw;

	this.cd=[];

	this.divs=[];

	this.index=menu.items.length;

	menu.items=menu.items.concat([this]);

	this.pindex=par.cd.length;

	par.cd=par.cd.concat([this]);

	this.id="cmi"+this.menu.name+"_"+this.index;this.v=0;

	this.state='n';this.diva=["b","s","o","n","e"];

	this.hc=function()

	{

		return this.cd.length > 0

	};

	this.hac=function()

	{

		return this.hc()&&this.cd[0].vis

	};

	this.div=function(n)

	{

		return und(this.divs[n])?this.divs[n]=this.get_div(this.id+n):this.divs[n];

	};

	this.gen_code=function(state, off)

	{

		var res='';

		var table=(nn(this.arrow) && this.hc()) || nn(this.image);var image=nn(this.image);

		var arrow=nn(this.arrow)&& this.hc();

		if (table)

			res += '<table cellpadding=0 cellspacing=0 width="100%" height="'+(parseInt(this.size[0])-parseInt(off))+'" border=0><tr>';

		if (image)

			res += '<td bgcolor="'+(state=='n'?this.style.color.imagebg:this.style.color.oimagebg)+'" width='+this.imgsize[1]+'><img src="'+(state=='n'?this.image:this.oimage)+'" width='+this.imgsize[1]+' height='+this.imgsize[0]+'></td>';

		if (table)

			res += '<td width="100%">';

			res += '<div class="'+(state=='n'?this.style.css.ON:this.style.css.OVER)+'">'+(state=='n'?this.code:this.ocode)+'</div>';if (table) res += '</td>';

		if (arrow)

			res += '<td width='+this.arrsize[1]+'><img src="'+(state=='n'?this.arrow:this.oarrow)+'" width='+this.arrsize[1]+' height='+this.arrsize[0]+'></td>';

		if (table)

			res += '</tr></table>';return res;};

		this.draw=function()

		{

			var bl=bt=this.style.border;

			var br=bb=this.style.border*2;

			if (this.style.border && !und(this.style.borders)) 

			{

				bl=this.style.borders[0];

				bt=this.style.borders[1];

				br=this.style.borders[2]+bl;

				bb=this.style.borders[3]+bt;

			};

			var s=this.style.shadow;

			var z=(!this.style.shadow?"":adiv(this.menu.bw, this.id+"s", this.z, this.pos[0]+s, this.pos[1]+s, this.size[1], this.size[0], this.style.color.shadow, "", ""))+

			(!this.style.border?"":adiv(this.menu.bw, this.id+"b", this.z, this.pos[0], this.pos[1], this.size[1], this.size[0], this.style.color.border, "", ""))+

			adiv(this.menu.bw, this.id+"n", this.z, this.pos[0]+bl, this.pos[1]+bt, this.size[1]-br, this.size[0]-bb, this.style.color.bgON, this.gen_code('n', parseInt(bt)+parseInt(bb)))+

			adiv(this.menu.bw, this.id+"o", this.z, this.pos[0]+bl, this.pos[1]+bt, this.size[1]-br, this.size[0]-bb, this.style.color.bgOVER,this.gen_code('o', bt+bb))+

			adiv(this.menu.bw, this.id+"e", this.z, this.pos[0]+bl, this.pos[1]+bt, this.size[1]-br, this.size[0]-bb, "", '<a href="'+this.url+'" '+this.targ+'onclick="mEvent(\''+this.menu.name+'\','+this.index+',\'c\');">'+'<img src="'+this.menu.bi.src+'" width="'+this.size[1]+'" height="'+this.size[0]+'" border="0"></a>','','onmouseover="mEvent(\''+this.menu.name+'\','+this.index+',\'o\');" onmouseout="mEvent(\''+this.menu.name+'\','+this.index+',\'t\');"');

			return z;

		};

		this.vis=function(s)

		{

			if (this.style.shadow) 

				this.visDiv("s",s);

			if (this.style.border) 

				this.visDiv("b",s);

			if (!s) 

			{

				this.visDiv("o",0);

				this.visDiv("n",0);

				this.state="n";

			}

			else if (this.state=="n")

				this.visDiv("n",1);

			else

				this.visDiv("o",1);

			this.visDiv("e",s)

		};

		this.setVis=function (n)

		{

			if (this.state!=n)

			{

				if (n=="n") 

				{

					this.visDiv("n",1);

					this.visDiv("o",0);

				};

				if (n=="o") 

				{

					this.visDiv("n",0);this.visDiv("o",1);

			};

		};

		this.state=n;

	};

	this.visDiv=this.bw.ns4? visDivNS:visDivDom;

	this.getf=function(obj, name)

	{

		if (!und(obj) && nn(obj) && !und(obj.fmt)) 

		{

			if (!und(obj.fmt[name]))

				return obj.fmt[name];

			if (obj.par!=this.menu.root && obj.par && obj.par.sub && obj.par.sub[0][name])

 				return obj.par.sub[0][name];

			return this.getf(obj.par, name);

		};

		return;

	};

	this.ioff=this.getf(this, "itemoff");

	this.loff=this.getf(this, "leveloff");

	this.imgsize=this.getf(this, "imgsize");

	this.arrsize=this.getf(this, "arrsize");

	this.image=this.getf(this, "image");

	this.oimage=this.getf(this, "oimage") || this.image;

	this.arrow=this.getf(this, "arrow");

	this.oarrow=this.getf(this, "oarrow") || this.arrow;

	this.style=this.getf(this, "style");

	this.size=this.getf(this, "size");

	if (this.par==this.menu.root)

		this.fmt.pos=this.getf(this, "pos");

	this.prev=this.pindex==0? null : this.par.cd[this.pindex-1];

	this.setPos=function()

	{

		if (this.prev==null)

		{

			this.z=this.par==this.menu.root? 0: this.par.z+10;

			this.pos=und(this.fmt.pos)?(this.par==this.menu.root? this.fmt.pos : this.pos=[this.par.pos[0]+this.loff[1], this.par.pos[1]+this.loff[0]]):this.fmt.pos;

		}

		else

		{

			this.prev.next=this;

			this.z=this.prev.z;

			this.pos=[this.prev.pos[0]+this.ioff[1], this.prev.pos[1]+this.ioff[0]];

		};

	};

	this.setPosFromParent=function()

	{

		if (this.index==0&&!this.menu.rel)

		{

			this.pos=[this.menu.root.pos[0], this.menu.root.pos[1]]

		}

		else

	 		if (this.prev==null)

			{

				this.pos=[this.par.pos[0]+this.loff[1], this.par.pos[1]+this.loff[0]];

			}

			else

			{

				this.pos=[this.prev.pos[0]+this.ioff[1], this.prev.pos[1]+this.ioff[0]];

			};

		};

		this.setPos();

		this.sub=item.sub;

		if (!und(this.sub) && !und(this.sub.length)&& this.sub.length>0)

		{

			this.lvl=new CMenuLevel(menu, this);

			for (var i=1;i<this.sub.length;i++)

				if (!und(this.sub[i])) new CMenuItem(this.menu, this, this.sub[i], und(this.sub[i].format)?this.sub[0]: this.sub[i].format);

		};

		this.get_div=function (name)

		{

			if (this.bw.ns4 && this.menu.rel && this.par==this.menu.root)

	 			return document.layers["cm"+this.menu.name+"_"].layers[name];

			else

				return this.bw.ns4?document.layers[name]:document.getElementById?document.getElementById(name):document.all[name];	

		};

		this.move=function( x, y )

		{

			var bl=bt=this.style.border;

			if (this.style.border && !und(this.style.borders)) 

			{

				bl=this.style.borders[0];

				bt=this.style.borders[1];

			};

			if (this.style.shadow) 

				this.moveTo(x+parseInt(this.style.shadow),y+parseInt(this.style.shadow),"s");

			if (this.style.border) 

				this.moveTo(x,y,"b");

			this.moveTo(x+bl,y+bt,"o");

			this.moveTo(x+bl,y+bt,"n");

			this.moveTo(x+bl,y+bt,"e");

		};

		this.moveTo=function( x, y, b )

		{

			if (this.bw.ns4)

				this.div(b).moveTo(x,y);

			else

			{

				this.div(b).style.left=x;

				this.div(b).style.top=y;	

			};

		};

		return this;

};



function adiv(bw,name,z,left,top,width,height,bgc,code,otherCSS, otherDIV)

{

	return bw.ns4?		

	'<layer id="'+name+'" z-index="'+z+'" left="'+left+'" top='+top+'" width="'+width+'" height="'+height+'"'+(bgc!=""?' bgcolor="'+bgc+'"':'')+(otherCSS?' style="'+otherCSS:'')+'" visibility="hidden" '+(otherDIV?otherDIV:'')+'>'+code+'</layer>\n':

	'<div id="'+name+'" style="position:absolute;clip:rect(0px '+width+'px '+height+'px 0px);z-index:'+z+';left:'+left+'px;top:'+top+'px;width:'+width+'px;height:'+height+'px;visibility:hidden'+(bgc!=""?';background-color:'+bgc+'':'')+';'+(otherCSS?otherCSS:'')+'" '+(otherDIV?otherDIV:'')+'>'+code+'</div>';

};



function visDivNS(d,s)

{

	this.div(d).visibility=s?'show':'hide';

};



function visDivDom(d,s)

{

	this.div(d).style.visibility=s?'visible': 'hidden';

};



function mEvent(m,node_index,e) 

{

	if (nn(window.CMenuHideTimers[m])) 

	{

		window.clearTimeout(window.CMenuHideTimers[m]);
		window.CMenuHideTimers[m]=null;

	};

	switch (e){

		case "o":

 			window.CMenus[m].items[node_index].par.lvl.setA(node_index,1);

			if (window.CMenus[m].onmouseover) 

				window.CMenus[m].onmouseover(window.CMenus[m].items[node_index]);

			break;

		case "c":

			if (window.CMenus[m].items[node_index].hc())

 				window.CMenus[m].items[node_index].lvl.vis(!window.CMenus[m].items[node_index].lvl.v);			else				for (var i=0;i<window.CMenus[m].root.cd.length;i++)					if (nn(window.CMenus[m].root.cd[i].lvl)) window.CMenus[m].root.cd[i].lvl.vis(0);			if (window.CMenus[m].onclick) window.CMenus[m].onclick(window.CMenus[m].items[node_index]);			break;		case "t": 			window.CMenuHideTimers[m]=setTimeout('window.CMenus["'+m+'"].hide()', und(window.CMenus[m].root.fmt.delay)?600:window.CMenus[m].root.fmt.delay);			if (window.CMenus[m].onmouseout) window.CMenus[m].onmouseout(window.CMenus[m].items[node_index]);			break;	};	return true;};function domPageX(el) {  var x=el.offsetLeft;  var parent=el.offsetParent;  while(parent && parent!=document.body) {	x += parent.offsetLeft;	parent=parent.offsetParent;  };  return x;};function domPageY(el) {  var x=el.offsetTop;  var parent=el.offsetParent;  while(parent && parent!=document.body) {	x += parent.offsetTop;	parent=parent.offsetParent;  };  return x;};if (und(window.CMenuHideTimers)) 



window.CMenuHideTimers=[];

window.oldCMOnLoad=window.onload;



function CMOnLoad()

{

	var bw=new bw_check();

	if (bw.ns4 || bw.opera)

	{

		window.origWidth=window.innerWidth;

		window.origHeight=window.innerHeight;

		if (bw.opera && !window.operaResizeTimer) 

			resizeHandler();

		if (bw.ns4) 

			window.onresize=resizeHandler;

	}

	else 

	{

		setTimeout('domOnResize();', 500); window.onresize=new domOnResize();	

	};

	if (typeof(window.oldCMOnLoad)=='function') 

		window.oldCMOnLoad();

};



window.onload=new CMOnLoad();



function resizeHandler() 

{

	if (window.reloading) return;

	var reload=window.innerWidth != window.origWidth || window.innerHeight != window.origHeight;

	window.origWidth=window.innerWidth; window.origHeight=window.innerHeight;

	if (reload) 

	{

		window.reloading=1;

		document.location.reload();

		return

	};

	if (new bw_check().opera) 

		window.operaResizeTimer=setTimeout('resizeHandler()',500);

};



function CMenuPopUp(menu, evn, offX, offY)

{

	window.CMenus[menu].mpopup(evn, offX, offY);

};



function CMenuPopUpXY(menu,x,y)

{

	window.CMenus[menu].popup(x,y);

};



function domOnResize(){

	for (var i in CMenus) 

		if (CMenus[i].rel) CMenus[i].move();

};



if (new bw_check().ns4) 	

	window.onresize=resizeHandlerelse;

	window.onresize=domOnResize;

