// Title: COOLjsMenuPRO// URL: http://javascript.cooldev.com/scripts/coolmenupro/// Version: 2.1.0// Last Modify: 26 May 2003// Author: Sergey Nosenko <darknos@cooldev.com>// Notes: Registration needed to use this script on your web site.// Copyright (c) 2001-2002 by CoolDev.Com// Copyright (c) 2001-2002 by Sergey Nosenkowindow.CMenus=[];var BLANK_IMAGE="../images/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.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.index=0;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();			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)?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.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)}