window.CMenus=[];

var BLANK_IMAGE="img/b.gif";

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.ie55=(this.ver.indexOf("MSIE 5.5")>-1&&this.dom&&!this.opera)?1:0;this.ie5=(this.ver.indexOf("MSIE 5")>-1&&this.dom&&!this.ie55&&!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 COOLjsMenuPRO(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.cc = "this.cc";
	this.name = name;
	this.rel = items[0].pos == "relative";
	this.root = [];
	this.root.par = null;
	this.root.cd = [];
	this.z = "this.z";
	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.index=0;this.root.lvl=new CMenuLevel(this, this.root); 
	this.u = "this.u";
	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();
				if (this.items[i].lvl!=null) s += this.items[i].lvl.code;
		}
		s += this.root.lvl.code;
		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;
		this.rel_div = this.rel_div || this.get_div('cm'+this.name+'_');
		var x = this.bw.ns4 ? this.rel_div.pageX : domPageX(this.rel_div);
		var y = this.bw.ns4 ? this.rel_div.pageY : domPageY(this.rel_div);
		if (this.root.pos[0] == x && this.root.pos[1] == y) return;
		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.code=''; if((this.menu.bw.ie55||this.menu.bw.ie6)&&(this.par!=this.menu.root||this.menu.root.fmt.popup)){ var blnk=""; if(location.protocol=="https:")  blnk=this.menu.root.fmt.https_fix_blank_doc; this.code = "<IFRAME frameborder=0 id=ifr"+this.menu.name+"_"+this.par.index+" src=\""+blnk+"\" scroll=none style=\"FILTER:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0);visibility:hidden;height:1;position:absolute;width:1px;left:0px;top:0px;z-index:1\"></iframe>"; } 
this.menu_rect=function(){var r=[65535,65535,0,0];for (i in this.par.cd) {var itm = this.par.cd[i];if (itm.par==this.menu.root || itm.v) {var s=itm.style.shadow;var slt=(s<0?-s:0);var srt=(s>0?s:0);var l=itm.pos[0]-slt;var t=itm.pos[1]-slt;var w=itm.size[1]+itm.pos[0]+srt;var h=itm.size[0]+itm.pos[1]+srt;if(l<r[0])r[0]=l;if(t<r[1])r[1]=t;if(w>r[2])r[2]=w;if(h>r[3])r[3]=h;}} return r;}; 
this.fix_form=function(lvl,v){if((this.menu.bw.ie55||this.menu.bw.ie6)&&(this.par!=this.menu.root||this.menu.root.fmt.popup)){this.iframe=this.iframe?this.iframe:this.menu.get_div("ifr"+this.menu.name+"_"+this.par.index);if (v) {var r=this.menu_rect();var st = this.iframe.style;st.left=r[0];st.top=r[1];st.width=Math.abs(r[0]-r[2]);st.height=Math.abs(r[1]-r[3]);this.iframe.style.visibility='visible'; }else this.iframe.style.visibility='hidden';} var fmt = this.menu.root.fmt; if ((this.menu.bw.ie5||this.menu.bw.ns4||this.menu.bw.operaOld)&&!(lvl==this.menu.root.lvl&&fmt.popup)&&fmt.forms_to_hide) {  var hide = 0;  for (var i=0;i<this.menu.root.cd.length;i++){  var lvl = this.menu.root.cd[i].lvl;  if (lvl!=null&&lvl.v) hide=1;  }  for (var i=0;i<fmt.forms_to_hide.length;i++){  var frm=fmt.forms_to_hide[i];  var frmobj=this.menu.bw.ns4?document.layers[frm]:document.getElementById?document.getElementById(frm):document.all[frm];  if (this.menu.bw.ns4) frmobj.style=frmobj;  if (frmobj&&frmobj.style) {   if (hide)    frmobj.style.visibility=this.menu.bw.ns4?'hide':'hidden';   else   frmobj.style.visibility=this.menu.bw.ns4?'show':'visible';  }  } }  }; 
this.vis=function(s){ if (s&&this.menu.root.lvl!=this&&this.menu.rel) {this.menu.move()}; var ss=this.v; this.v=s; var l=this.par.cd.length; if (this.menu.onlevelshow) this.menu.onlevelshow(this); 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.fix_form(this, this.v); }; 
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.v = 0; 
	
	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 + 1, 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 + 2, 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+3, 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+4, 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+5, 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.v=s; }; 
	this.setVis = function (n){ if (this.state!=n)  switch (n){  case "n":   this.visDiv("n",1);this.visDiv("o",0);   break;  case "o":   this.visDiv("n",0);this.visDiv("o",1);   break;  } 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? 10: 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) ? 50 : 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.operaOld) window.operaResizeTimer = setTimeout('resizeHandler()', 1000);
	if (typeof(window.oldCMOnLoad) == 'function') window.oldCMOnLoad();
	if (bw.ns4) window.onresize = resizeHandler;
}

	window.onload = new CMOnLoad();

function resizeHandler()
{
	if (window.reloading) return;
	if (!window.origWidth)
	{
		window.origWidth = window.innerWidth;
		window.origHeight = window.innerHeight;
	}
	var reload = window.innerWidth != window.origWidth || window.innerHeight != window.origHeight;
	window.origWidth = window.innerWidth;
	window.origHeight = window.innerHeight;
	if (window.operaResizeTimer) 
		clearTimeout(window.operaResizeTimer);
	if (reload)
	{
		window.reloading=1;
		document.location.reload();
		return
	};
	if (new bw_check().operaOld)
	{
		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)
}
