//variable declaration//
var cmpage;
//crossbrowser objects functions//
function cm_message(txt) {alert(txt); return false;}
function cm_makeObj(obj,nest,o,doc) {
	if (!doc) doc=document;
	if (bw.usedom&&o) this.evnt=o;
	else {nest=(!nest) ? "doc.":'doc.layers.'+nest+'.';
		this.evnt=bw.dom? doc.getElementById(obj):bw.ie4?doc.all[obj]:bw.ns4?eval(nest+"layers."+obj):0;
	}
	if (!this.evnt) return cm_message('The layer does not exist ('+obj+')'
		+'- \nIf your using Netscape please check the nesting of your tags (on the entire page)\nNest:'+nest);
	this.css=bw.dom||bw.ie4?this.evnt.style:this.evnt; this.ok=0;
	this.ref=bw.dom||bw.ie4?doc:this.css.document; 
	this.obj=obj+"Object"; eval(this.obj+"=this");
	this.x=0; this.y=0; this.w=0; this.h=0; this.vis=0; return this;
}
cm_makeObj.prototype.moveIt=function(x,y) {this.x=x; this.y=y; this.css.left=x+bw.px; this.css.top=y+bw.px;}
cm_makeObj.prototype.showIt=function(o) {this.css.visibility="visible"; this.vis=1; if (bw.op5&&this.arr) {this.arr.showIt();}}
cm_makeObj.prototype.hideIt=function(no) {this.css.visibility="hidden"; this.vis=0;}
cm_makeObj.prototype.clipTo=function(t,r,b,l,setwidth) { 
	this.w=r; this.h=b;
	if (bw.ns4) {this.css.clip.top=t; this.css.clip.right=r; this.css.clip.bottom=b; this.css.clip.left=l;}
	else {
		if (t<0) t=0; if (r<0) r=0; if (b<0) b=0;
		this.css.clip="rect("+t+bw.px+","+r+bw.px+","+b+bw.px+","+l+bw.px+")";
		if (setwidth) {
			if (bw.op5||bw.op6) {this.css.pixelWidth=r; this.css.pixelHeight=b;}
			else {this.css.width=r+bw.px; this.css.height=b+bw.px;}
		}
	}
}
function cm_active(on,h) {
	if (this.o.arr) on?this.o.arr.hideIt():bw.op5?this.o.arr.showIt():this.o.arr.css.visibility="inherit";
	if (bw.reuse||bw.usedom) {
		if (!this.img2) this.o.evnt.className=on?this.cl2:this.cl;
		else this.o.ref.images["img"+this.name].src=on?this.img2.src:this.img1.src;
		if (on&&bw.ns6) {this.o.hideIt(); this.o.css.visibility='inherit';}
	}
	else {  
		if (!this.img2) {
			if (on) this.o.over.showIt(); else this.o.over.hideIt();
		}
		else this.o.ref.images["img"+this.name].src=on?this.img2.src:this.img1.src;
  	}
	this.isactive=on?1:0;
}
//pageobject//
function cm_page(frame) {
	if (!frame) frame=self 
	this.x=0; this.x2=(!bw.ie)?frame.innerWidth:frame.document.body.offsetWidth-20;
	this.y=0; this.orgy=this.y2=(!bw.ie)?frame.innerHeight:frame.document.body.offsetHeight-6;
	this.x50=this.x2/2; this.y50=this.y2/2; return this;
}
//check positions//
function cm_cp(num,w,minus) {
	if (num) {
		if (num.toString().indexOf("%")!=-1) {
			var t=w?cmpage.x2:cmpage.y2; num=parseInt((t*parseFloat(num)/100));
			if (minus) num-=minus;
		}
		else num=eval(num);
	}
	else num=0; return num;
}
//level object//
function cm_makeLevel() {
	var c=this, a=arguments; c.width=a[0]||null; c.height=a[1]||null; 
	c.regClass=a[2]||null; c.overClass=a[3]||null; c.borderX=a[4]>-1?a[4]:null; 
	c.borderY=a[5]>-1?a[5]:null; c.borderClass=a[6]||null; c.rows=a[7]>-1?a[7]:null; 
	c.align=a[8]||null; c.offsetX=a[9]||null; c.offsetY=a[10]||null; c.arrow=a[11]||null; 
	c.arrowWidth=a[12]||null; c.arrowHeight=a[13]||null; c.roundBorder=a[14]||null; return c;
}
//making the main menu object//
function makeCM(name) {
	var c=this; c.mc=0; c.name=name; c.m=new Array(); c.scrollY=-1; c.level=new Array(); c.l=new Array(); c.tim=100; c.isresized=0;
	c.isover=0; c.zIndex=100; c.frameStartLevel=1; c.bar=0; c.z=0; c.totw=0; c.toth=0; c.maxw=0; c.maxh=0; cmpage=new cm_page(); c.constructed=0;
	return this;
}
makeCM.prototype.onshow=""; makeCM.prototype.onhide=""; makeCM.prototype.onconstruct="";
//creating layers//
function cm_divCreate(id,cl,txt,w,c,app,ex,txt2) {
	if (bw.usedom) {
		var div=document.createElement("DIV"); div.className=cl; div.id=id; 
		if (txt) div.innerHTML=txt; if (app) {app.appendChild(div); return div;}
		if (w) document.body.appendChild(div); return div;
	}
	else {
		var dstr='<div id="'+id+'" class="'+cl+'"';
		if (ex&&bw.reuse) dstr+=" "+ex; dstr+=">"+txt; ; if (txt2) dstr+=txt2; 
		if (c) dstr+='</div>'; if (w) document.write(dstr); else return dstr;
	}
	return ""
}
//getting layer string for each menu//
function cm_getLayerStr(m,app,name,fill,clb,arrow,ah,aw,root) {
	var no=m.nolink,arrstr='', l=m.lev,str='', txt=m.txt, ev='', id=name+'_'+m.name, d1; if (app) d1=app;
	if ((!bw.reuse||l==0)&&!no) {
		ev=' onmouseover="'+name+'.showsub(\''+m.name+'\')"'
		+' onmouseout="'+name+'.mout(\''+m.name+'\')"'
		+' onclick="'+name+'.onclck(\''+m.name+'\'); return false" ';
	}
	if (bw.reuse&&l!=0) txt=''; if (l==0) str+=d1=cm_divCreate(id+'_0',clb,''); str+=m.d2=cm_divCreate(id,m.cl,txt,0,0,d1,ev);
	if (l==0&&bw.usedom) { 
		m.d2.onclick=new Function(name+'.onclck("'+m.name+'")'); 
		m.d1=d1; 
		m.d2.onmouseover=new Function(name+'.showsub("'+m.name+'")'); 
		m.d2.onmouseout=new Function(name+'.mout("'+m.name+'")');
	}
	if (!bw.reuse&&!m.img1&&!no) {
		str+=cm_divCreate(id+'_1',m.cl2,txt,0,1);
		str+=cm_divCreate(id+'_3',"clCMAbs",'<a href="#" '+ev+'><img alt="" src="'+root+fill+'" width="'+m.w+'" height="'+m.h+'" border="0" /></a>',0,1);
	}
	str+='</div>'; 
	if (l==0) {if (arrow)str+=m.d3=cm_divCreate(id+'_a','clCMAbs','<img alt="" height="'+aw+'" width="'+ah+'" src="'+root+arrow+'" />',0,1,d1); str+="</div>";}
	str+="\n"; if (!bw.reuse) {m.txt=null; m.d2=null; m.d3=null;}
	if (bw.usedom) {if (l==0) document.body.appendChild(d1); str='';}
	return str
}
//get align num from text (better to evaluate numbers later)//
function cm_checkalign(a) {
	switch(a) {
		case "right": return 1; break; case "left": return 2; break;
		case "bottom": return 3; break; case "top": return 4; break;
		case "righttop": return 5; break; case "lefttop": return 6; break;
		case "bottomleft": return 7; break; case "topleft": return 8; break;
	}
	return null;
}
//making each individual menu//
makeCM.prototype.makeMenu=function(name,parent,txt,lnk,targ,w,h,img1,img2,cl,cl2,align,rows,nolink,onclick,onmouseover,onmouseout) {
	var c=this; if (!name) name=c.name+""+c.mc; var p=parent!=""&&parent&&c.m[parent]?parent:0;
	if (c.mc==0) {
		if (bw.op7&&this.frames) bw.usedom=0;
		var tmp=location.href;
		if (tmp.indexOf('file:')>-1||tmp.charAt(1)==':') c.root=c.offlineRoot; else c.root=c.onlineRoot;
		if (c.useBar) {
			if (!c.barBorderClass) c.barBorderClass=c.barClass; c.bar1=cm_divCreate(c.name+'bbar_0',c.barClass,'',0,1);
			c.bar=cm_divCreate(c.name+'bbar',c.barBorderClass,'',1,1,0,0,c.bar1); if (bw.usedom) c.bar.appendChild(c.bar1);    
		}
	}
	var create=1,img,arrow; var m=c.m[name]=new Object(); m.name=name; m.subs=new Array(); m.parent=p; m.arnum=0; m.arr=0;
	var l=m.lev=p?c.m[p].lev+1:0; c.mc++; m.hide=0;
	if (l>=c.l.length) {
		var p1,p2=0;
		if (l>=c.level.length) p1=c.l[c.level.length-1];
		else p1=c.level[l]; c.l[l]=new Array(); if (!p2) p2=c.l[l-1];
		if (l!=0) {
			if (isNaN(p1.align)) p1["align"]=cm_checkalign(p1.align);
			for (var i in p1) {
				if (i!="str"&&i!="m") {
					if (p1[i]==null) c.l[l][i]=p2[i]; else c.l[l][i]=p1[i];
				}
			}
		}
		else {
			c.l[l]=c.level[0]; c.l[l].align=cm_checkalign(c.l[l].align);
		}
		c.l[l]["str"]=''; c.l[l].m=new Array(); if (!c.l[l].borderClass) c.l[l].borderClass=c.l[l].regClass;
		c.l[l].app=0; c.l[l].max=0; c.l[l].arnum=0; c.l[l].o=new Array(); c.l[l].arr=new Array();
		c.level[l]=p1=p2=null;
		if (l!=0) c.l[l].str=c.l[l].app=cm_divCreate(c.name+'_' +l+'_0',c.l[l].borderClass,'');
	}
	if (p) {p=c.m[p]; p.subs[p.subs.length]=name; 
	    if (p.subs.length==1&&c.l[l-1].arrow) {
			p.arr=1; 
			if (p.parent) {
				c.m[p.parent].arnum++
				if (c.m[p.parent].arnum>c.l[l-1].arnum) {
					c.l[l-1].str+=c.l[l-1].arr[c.l[l-1].arnum]=cm_divCreate(c.name+'_a'+(l-1)+'_'+c.l[l-1].arnum,'clCMAbs','<img height="'+c.l[l-1].arrowHeight
					+'" width="'+c.l[l-1].arrowWidth+'" src="'+c.root+c.l[l-1].arrow+'" alt="" />',0,1,c.l[l-1].app); c.l[l-1].arnum++;
				}
			}
		}
		if (bw.reuse) if (p.subs.length>c.l[l].max) c.l[l].max=p.subs.length; else create=0;
	}
	m.rows=rows>-1?rows:c.l[l].rows; m.w=cm_cp(w||c.l[l].width,1); m.h=cm_cp(h||c.l[l].height,0); m.txt=txt; m.lnk=lnk; 
	if (align) align=cm_checkalign(align); m.align=align||c.l[l].align; m.cl=cl=cl||c.l[l].regClass; 
	m.targ=targ; m.cl2=cl2||c.l[l].overClass; m.create=create;  m.mover=onmouseover; m.mout=onmouseout; 
	m.onclck=onclick; m.active=cm_active; m.isactive=0; m.nolink=nolink;
	if (create) c.l[l].m[c.l[l].m.length]=name;
	if (img1) {
		m.img1=new Image(); m.img1.src=c.root+img1; if (!img2) img2=img1; m.img2=new Image(); m.img2.src=c.root+img2;
		m.cl="clCMAbs"; m.txt=''; if (!bw.reuse&&!nolink) m.txt='<a href="#" onmouseover="'+c.name+'.showsub(\''+name+'\')" onmouseout="'+c.name+'.mout(\''+name+'\')" onclick="'+c.name+'.onclck(\''+name+'\'); return false">';
		m.txt+='<img alt="" src="'+c.root+img1+'" width="'+m.w+'" height="'+m.h+'" id="img'+m.name+'" '
		if (bw.dom&&!nolink) m.txt+='style="cursor:pointer; cursor:hand"'; if (!bw.reuse){if (!bw.dom) m.txt+='name="img'+m.name+'"'; m.txt+=' border="0"'}; m.txt+=' />'; if (!bw.reuse&&!nolink) m.txt+='</a>';
	}
	else {
		m.img1=0; m.img2=0;
	}
	if (l==0||create) c.l[l].str+=cm_getLayerStr(m,c.l[l].app,c.name,c.fillImg,c.l[l].borderClass,c.l[l].arrow,c.l[l].arrowWidth,c.l[l].arrowHeight,c.root);
	if (l==0) {
		if (m.w>c.maxw) c.maxw=m.w; if (m.h>c.maxh) c.maxh=m.h; c.totw+=c.pxBetween+m.w+c.l[0].borderX; c.toth+=c.pxBetween+m.h+c.l[0].borderY;
	}
	if (lnk&&!onmouseover) {
		var path=lnk.indexOf("mailto:") >- 1||lnk.indexOf("http://")>-1?"":c.root;
		m.mover="self.status='"+path+m.lnk+"'";
		if (!m.mout) m.mout=""; m.mout+=";self.status='';";
	}
}
//getting x/y coords for subs//
makeCM.prototype.getcoords=function(m,bx,by,x,y,maxw,maxh,ox,oy) {
	var a=m.align; x+=m.o.x; y+=m.o.y;
	switch(a) {
		case 1: x+=m.w+bx; break; case 2: x-=maxw+bx; break;
		case 3: y+=m.h+by; break; case 4: y-=maxh+by; break;
		case 5: x-=maxw+bx; y-=maxh-m.h; break;
		case 6: x+=m.w+bx; y-=maxh-m.h; break;
		case 7: y+=m.h+by; x-=maxw-m.w; break;
		case 8: y-=maxh+by; x-=maxw-m.w+bx; break;
	}
	if (m.lev==this.frameStartLevel-1&&this.frames) {
		switch(a){
			case 1: x=0; break; 
			case 2: x=this.cmpage.x2-maxw; break;
			case 3: y=0; break; 
			case 4: y-=maxh+by; break;
			case 5: x-=maxw+bx; y-=maxh-m.h; break;
			case 6: x+=m.w+bx; y-=maxh-m.h; break;
			case 7: y+=m.h+by; x-=maxw-m.w; break;
			case 8: y-=maxh+by; x-=maxw-m.w+bx; break;
		}
	}
	m.subx=x+ox; m.suby=y+oy;
}
//showing sub elements//
makeCM.prototype.showsub=function(el) {
	var c=this,pm=c.m[el],m,o,nl;
	if (!pm.b||(c.isresized&&pm.lev>0)) pm.b=c.l[pm.lev].b; c.isover=1;
	clearTimeout(c.tim);
	var ln=pm.subs.length,l=pm.lev+1;
	if (c.l[pm.lev].a==el&&l!=c.l.length&&!c.openOnClick) {if (c.l[pm.lev+1].a) c.hidesub(l+1,el); return;}
	c.hidesub(l,el); if (pm.mover) eval(pm.mover); if (!pm.isactive) pm.active(1);
	c.l[pm.lev].a=el; if (ln==0) return; 
	if (c.openOnClick&&!c.clicked) return;
	if (!c.l[l].b) return;
	var b=c.l[l].b, bx=c.l[l].borderX, by=c.l[l].borderY, rows=pm.rows;
	var rb=c.l[l].roundBorder;
	var x=bx+rb,y=by+rb,maxw=0,maxh=0,cn=0; b.hideIt();
	for (var i=0; i<c.l[l].m.length; i++) {  
		if (!bw.reuse) m=c.m[c.l[l].m[i]];
		else m=c.m[c.m[el].subs[i]];
		if (m&&m.parent==el&&!m.hide) {
			if (!bw.reuse) o=m.o; else o=m.o=c.l[l].o[i];
			if (x!=o.x||y!=o.y) o.moveIt(x,y); nl=m.subs.length;
			if (bw.reuse) {
				if (o.w!=m.w||o.h!=m.h) o.clipTo(0,m.w,m.h,0,1);
				if (o.evnt.className!=m.cl) { 
					m.isactive=0; o.evnt.className=m.cl;
					if (bw.ns6) {o.hideIt(); o.css.visibility='inherit';}
				}
				if (bw.ie6) b.showIt();
				o.evnt.innerHTML=m.txt; if (bw.ie6) b.hideIt();
				if (!m.nolink) {
					o.evnt.onmouseover=new Function(c.name+".showsub('"+m.name+"')");
					o.evnt.onmouseout=new Function(c.name+".mout('"+m.name+"')");
					o.evnt.onclick=new Function(c.name+".onclck('"+m.name+"')");
					if (o.oldcursor) {o.css.cursor=o.oldcursor; o.oldcursor=0;}
				}
				else {
					o.evnt.onmouseover=''; o.evnt.onclick='';
					if (o.css.cursor=='') o.oldcursor=bw.ns6?"pointer":"hand";
					else o.oldcursor=o.css.cursor; o.css.cursor="auto";
				}        
			}
			if (m.arr) {
				o.arr=c.l[l].arr[cn]; o.arr.moveIt(x+m.w-c.l[l].arrowWidth-3,y+m.h/2-(c.l[l].arrowHeight/2)); 
				o.arr.css.visibility="inherit"; cn++;
			}
			else o.arr=0;
			if (!rows) {y+=m.h+by; if (m.w>maxw) maxw=m.w; maxh=y;}
			else {x+=m.w+bx; if (m.h>maxh) maxh=m.h; maxw=x;}
			o.css.visibility="inherit"; if (bw.op5||bw.op6) o.showIt();
		}
		else {o=c.m[c.l[l].m[i]].o; o.hideIt();}
	}
	if (!rows) maxw+=bx*2+rb; else maxh+=by*2+rb;
	if (rb) {maxw+=rb; maxh+=rb;}
	b.clipTo(0,maxw,maxh,0,1);
	if (c.chkscroll) c.chkscroll();
	if (c.chkscroll||!pm.subx||!pm.suby||c.scrollY>-1||c.isresized) c.getcoords(pm,c.l[l-1].borderX,c.l[l-1].borderY,pm.b.x,pm.b.y,maxw,maxh,c.l[l-1].offsetX,c.l[l-1].offsetY);
	x=pm.subx; if (c.chkscroll&&l==c.frameStartLevel) pm.suby+=c.scrollY; y=pm.suby; b.moveIt(x,y); if (c.onshow) eval(c.onshow); b.showIt();
}
//hide sub elements//
makeCM.prototype.hidesub=function(l,el) {
	var c=this,tmp,m,i,j,hide;
	if (!l) {l=1; hide=1; c.clicked=0;}
	for (i=l-1; i<c.l.length; i++) {
		if (i>0&&i>l-1) if (c.l[i].b) c.l[i].b.hideIt();
		if (c.l[i].a&&c.l[i].a!=el) {
			m=c.m[c.l[i].a]; m.active(0,1); if (m.mout) eval(m.mout); c.l[i].a=0;
			if (i>0&&i>l-1) if (bw.op5||bw.op6) for (j=0; j<c.l[i].m.length; j++) c.m[c.l[i].m[j]].o.hideIt();
		}
		if (i>l) {
			for(j=0;j<c.l[i-1].arnum;j++) {
				c.l[i-1].arr[j].hideIt(); if (bw.op6) c.l[i-1].arr[j].moveIt(-1000,-1000);
			}
		}
	}
	if (hide&&c.onhide) eval(c.onhide)
}
//make all menu div objects//
makeCM.prototype.makeObjects=function(nowrite,fromframe) {
	var c=this,oc,name,bx,by,w,h,l,no,ar,id,nest,st=0,en=c.l.length,bobj,o,m,i,j;
	if (fromframe) {
		st=this.frameStartLevel;
		this.body=fromframe.document.body;
		this.doc=fromframe.document;
		this.deftarget=fromframe;
		this.cmpage=new cm_page(fromframe);
	}
	else {
		this.body=document.body;
		this.doc=document;
		if (this.frames) en=this.frameStartLevel;
		this.deftarget=self;
	}
	if (!nowrite) {
		for (i=st; i<en; i++) {
			if (!bw.usedom) this.doc.write(c.l[i].str);
			else if (i>0) this.body.appendChild(c.l[i].app);
			if (!this.frames) c.l[i].str=null;
		}
	}
	c.z=c.zIndex+2;
	for (i=st; i<en; i++) {
		oc=0;
		if (i!=0) {
			bobj=c.l[i].b=new cm_makeObj(c.name+"_"+i+"_0","",c.l[i].app,this.doc); bobj.css.zIndex=c.z; 
			if (bw.dom) bobj.css.overflow='hidden';
		}
		bx=c.l[i].borderX; by=c.l[i].borderY; c.l[i].max=0;
		for (j=0; j<c.l[i].m.length; j++) {
			m=c.m[c.l[i].m[j]]; name=m.name; w=m.w; h=m.h; l=m.lev; no=m.nolink;
			if (i>0) {m.b=bobj; nest=i;}
			else {m.b=new cm_makeObj(c.name+"_"+name+"_0","",m.d1,this.doc); m.b.css.zIndex=c.z; m.b.clipTo(0,w+bx*2,h+by*2,0,1); nest=name;}
			id=c.name+"_"+name; nest=c.name+"_"+nest;
			if (m.create) {
				o=m.o=new cm_makeObj(id,nest+"_0",m.d2,this.doc); o.z=o.css.zIndex=c.z+1; if (bw.reuse) {c.l[l].o[oc]=o; oc++;}
				if (l==0&&m.img1) o.css.visibility='inherit'; if (bw.op5) o.showIt(); o.arr=0;
			}
			if (!bw.reuse||l==0) o.clipTo(0,w,h,0,1); o.moveIt(bx,by); o.z=o.css.zIndex=c.z+2;
			if (j<c.l[i].arnum) {
				c.l[i].arr[j]=new cm_makeObj(c.name+"_a"+i+"_"+j,nest+"_0",nowrite?0:c.l[i].arr[j],this.doc);
				c.l[i].arr[j].css.zIndex=c.z+30+j;
			}
			else if (l==0&&m.arr==1) {
				o.arr=new cm_makeObj(id+"_a",nest+"_0",m.d3,this.doc);
				o.arr.moveIt(bx+m.w-c.l[i].arrowWidth-3,by+m.h/2-(c.l[i].arrowHeight/2)); 
				o.arr.css.zIndex=c.z+20;
			}
			if (!no&&!bw.reuse&&!m.img1) {  
				o.over=new cm_makeObj(c.name+"_"+name+"_1",nest+"_0"+".document.layers."+id,"",this.doc);
				o.over.moveIt(0,0); o.over.hideIt(); o.over.clipTo(0,w,h,0,1); o.over.css.zIndex=c.z+3;
				img=new cm_makeObj(c.name+"_"+name+"_3",nest+"_0"+".document.layers."+id,"",this.doc); img.moveIt(0,0);
				img.css.visibility="inherit"; img.css.zIndex=c.z+4; if (bw.op5) img.showIt();
			}
			c.z++; 
		}
	}
	if (fromframe) {
		c.chkscroll=function() {
			if (bw.ie&&!bw.ie6) this.scrollY=this.body.scrollTop;
			else if (bw.ie6||bw.op7) {
				if (this.doc.compatMode&&document.compatMode!="BackCompat")	this.scrollY=this.doc.documentElement.scrollTop;
				else this.scrollY=this.body.scrollTop;
			}
			else this.scrollY=this.deftarget.pageYOffset;
		}
	}
}
//onmouseout//
makeCM.prototype.mout=function() {
	var c=this; clearTimeout(c.tim); c.isover=0; var f="if (!"+c.name+".isover)"+c.name+".hidesub()";
	if (!c.closeOnClick) c.tim=setTimeout(f,c.wait)
	else {
		if (bw.ns4) {document.captureEvents("Event.MOUSEDOWN"); document.onmousedown=new Function(f);}
		else document.onclick=new Function(f); 
		if (this.frames) {
			if (bw.ns4) {this.doc.captureEvents("Event.MOUSEDOWN"); this.doc.onmousedown=new Function(f);}
			else this.doc.onclick=new Function(f);
		}
	}
}
//constructing and initiating top items and bar//
makeCM.prototype.construct=function(nowrite) {
	var c=this; if (!c.l[0]||c.l[0].m.length==0) return cm_message('No menus defined');
	if (!nowrite){
		for (var i=1; i<c.l.length; i++) {c.l[i].str+="</div>";}
	}
	c.makeObjects(nowrite); cmpage=new cm_page(); 
	var mpa,o,maxw=c.maxw,maxh=c.maxh,i,totw=c.totw,toth=c.toth,m,px=c.pxBetween;
	var bx=c.l[0].borderX,by=c.l[0].borderY,x=c.fromLeft,y=c.fromTop,mp=c.menuPlacement,rows=c.rows;
	if (rows) {toth=maxh+by*2; totw=totw-px+bx;} else {totw=maxw+bx*2; toth=toth-px+by;}
	switch(mp) {
		case "center": x=cmpage.x2/2-totw/2; if (bw.ns4) x-=9; break;
		case "right": x=cmpage.x2-totw; break;
		case "bottom": case "bottomcenter": y=cmpage.y2-toth; if (mp=="bottomcenter") x=cmpage.x2/2-totw/2; break;
		default: if (mp.toString().indexOf(",")>-1) mpa=1; break;
	}
	for (var i=0; i<c.l[0].m.length; i++) {
		m=c.m[c.l[0].m[i]]; o=m.b; if (mpa) rows?x=cm_cp(mp[i]):y=cm_cp(mp[i],0,0,1); 
		o.moveIt(x,y); o.showIt(); if (m.arr) m.o.arr.showIt(); o.oy=y; 
		if (!mpa) rows?x+=m.w+px+bx:y+=m.h+px+by
	}
	if (c.useBar==1) {
		var bbx=c.barBorderX,bby=c.barBorderY; 
		var bar1=c.bar1=new cm_makeObj(c.name+'bbar_0',c.name+'bbar',nowrite?0:c.bar1,document);
		var bar=c.bar=new cm_makeObj(c.name+'bbar','',nowrite?0:c.bar,document); bar.css.zIndex=c.zIndex+1;
		var barx=c.barX=="menu"?c.m[c.l[0].m[0]].b.x-bbx:cm_cp(c.barX,1);
		var bary=c.barY=="menu"?c.m[c.l[0].m[0]].b.y-bby:cm_cp(c.barY);
		var barw=c.barWidth=="menu"?totw:cm_cp(c.barWidth,1,bbx*2);
		var barh=c.barHeight=="menu"?toth:cm_cp(c.barHeight,0,bby*2);
		bar1.clipTo(0,barw,barh,0,1); bar1.moveIt(bbx,bby); bar1.showIt();
		bar.clipTo(0,barw+bbx*2,barh+bby*2,0,1); bar.moveIt(barx,bary); bar.showIt();
	}
	if (c.resizeCheck) {
    if (bw.ns4||bw.op5||bw.op6) setTimeout('window.onresize=new Function("'+c.name+'.resized()")',500);
	else window.onresize=new Function(c.name+".resized()");
    c.resized=cm_resized; if (bw.op5||bw.op6) document.onmousemove=new Function(c.name+".resized()");
  }
  if (c.onconstruct) eval(c.onconstruct);
  c.constructed=1;
  return true;
}
//capturing resize//
var cm_inresize=0
function cm_resized() {
	if (cm_inresize) return;
	page2=new cm_page(); var off=(bw.op6||bw.op5)?20:5;
	if (page2.x2<cmpage.x2-off||page2.y2<cmpage.orgy-off||page2.x2>cmpage.x2+off||page2.y2>cmpage.orgy+off) {
		if (bw.ie||bw.ns6||bw.op7||bw.ns4) {
			cmpage=page2; this.isresized=1; 
			if (this.onresize) eval(this.onresize); this.construct(1);
			if (this.onafterresize) eval(this.onafterresize);
		}
		else {
			cm_inresize=1; location.reload();
		} 
	}
}
//onclick of an item//
makeCM.prototype.onclck=function(m) {
	m=this.m[m];
	if (m.onclck) eval(m.onclck);
	if (this.openOnClick&&m.subs.length>0) {
		this.clicked=1; this.showsub(m.name); return;
	} 
	var lnk=m.lnk, targ=m.targ;
	if (lnk) {
		if (lnk.indexOf("mailto")!=0&&lnk.indexOf("http")!=0) lnk=this.root+lnk;
		if (String(targ)=="undefined"||targ==""||targ==0||targ=="_self") {
			if (this.frames) {
				if (this.l[0].a) {
					this.m[this.l[0].a].active(0,1);
					this.l[0].a=0;
				}
				for (i=this.frameStartLevel; i<this.l.length; i++) {
         			 if (this.l[i].b) {
						this.l[i].b.hideIt(); this.l[i].b=null;
						for (j=0; j<this.l[i].m.length; j++) {
							this.m[this.l[i].m[j]].b=null;
						}
					}
				}
				this.isover=0;
			}
			this.deftarget.location.href=lnk;
		}
		else if (targ=="_blank") window.open(lnk);
		else if (targ=="_top"||targ=="window") top.location.href=lnk;
		else if (top[targ]) top[targ].location.href=lnk;
		else if (parent[targ]) parent[targ].location.href=lnk;
	}
	else return false;
}