/*Browsercheck object*/
function cm_bwcheck()
{
	this.ver=navigator.appVersion
	this.agent=navigator.userAgent.toLowerCase()
	this.dom=document.getElementById?1:0
	this.op5=(this.agent.indexOf("opera 5")>-1 || this.agent.indexOf("opera/5")>-1) && window.opera 
	this.op6=(this.agent.indexOf("opera 6")>-1 || this.agent.indexOf("opera/6")>-1) && window.opera   
  	this.ie5 = (this.agent.indexOf("msie 5")>-1 && !this.op5 && !this.op6)
  	this.ie55 = (this.ie5 && this.agent.indexOf("msie 5.5")>-1)
  	this.ie6 = (this.agent.indexOf("msie 6")>-1 && !this.op5 && !this.op6)
	this.ie4=(this.agent.indexOf("msie")>-1 && document.all &&!this.op5 &&!this.op6 &&!this.ie5&&!this.ie6)
  	this.ie = (this.ie4 || this.ie5 || this.ie6)
	this.mac=(this.agent.indexOf("mac")>-1)
	this.ns6=(this.agent.indexOf("gecko")>-1 || window.sidebar)
	this.ns4=(!this.dom && document.layers)?1:0;
	this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.op5 || this.op6)
  	this.usedom= this.ns6//Use dom creation
  	this.reuse = this.ie||this.usedom //Reuse layers
  	this.px=this.dom&&!this.op5?"px":""
	return this
}

var bw=new cm_bwcheck()
/*Variable declaration*/
var cmpage,cm_eventlayer=0,cm_eventlayerE=0

/*Crossbrowser objects functions*/
function cm_message(txt)
{
	alert(txt); return false
}
function cm_makeObj(obj,nest,o)
{
  	if(bw.usedom&&o)
  		this.evnt=o
  	else
  	{
  		nest=(!nest) ? "":'document.layers.'+nest+'.'
    		this.evnt=bw.dom? document.getElementById(obj):
    		bw.ie4?document.all[obj]:bw.ns4?eval(nest+"document.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?document: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(); 
					}
				}	//alert('showing arrow')}} 
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;
						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 
    			document.images["img"+this.name].src=on?this.img2.src:this.img1.src;
    		if(on && bw.ns6)
    		{
    			this.o.hideIt(); 
    			this.o.css.visibility='inherit'
    		}; //netscape 6 bug fix  
  	}
  	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()
{
	this.x=0; 
	this.x2 =(!bw.ie)?window.innerWidth:document.body.offsetWidth-20;
  	this.y=0; 
  	this.orgy=this.y2= (!bw.ie)?window.innerHeight: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]||null; 
  	c.borderY=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; 
  	return c
}

/***Making the main menu object**/
function makeCM(name)
{
  	var c=this; 
  	c.mc=0; 
  	c.name = name; 
  	c.m=new Array(); 
  	c.level=new Array(); 
  	c.l=new Array(); 
  	c.tim=100; 
  	c.isresized=0;
  	c.isover=0; 
  	c.zIndex=100; 
  	c.bar=0; 
  	c.z=0; 
  	c.totw=0; 
  	c.toth=0; 
  	c.maxw=0; 
  	c.maxh=0;
	cmpage = new cm_page();
}//events

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+'\')"' //Added 4.02
    		+' 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+'")') //Added 4.02
  	}
  	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)
	{
		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(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.out=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) 
  		m.mover="self.status='"+c.root+m.lnk+"'"
}

/**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;
  	}
  	m.subx=x + ox; m.suby=y + oy
}

/**Showing sub elements**/
makeCM.prototype.showsub=function(el)
{
	var c=this,pm=c.m[el];
	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)
  	{
  		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; 
  	var b = c.l[l].b, bx=c.l[l].borderX, by=c.l[l].borderY, rows=pm.rows
  	var x=bx,y=by,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'
          				} //NS6 bugfix
        			}
        			if(bw.ie6) 
        				b.showIt()//IE6 bugfix (scrollbars)
        			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+"')") //Added 4.02
          				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; 
  	else 
  		maxh+=by*2; 
  	b.clipTo(0,maxw,maxh,0,1)
  	if(!pm.subx||!pm.suby||c.srollY>0||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; 
  	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
  	if(!l)
  	{
  		if(!l) 
  			l=1;
  	}
  	for(i=l-1;i<c.l.length;i++)
  	{
    		if(i>0&&i>l-1) 
    			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)
    			}
    		} //opera bug
  	}
  	if(!l&&c.onhide) 
  		eval(c.onhide) //onhide event
}

/***Make all menu div objects**/
makeCM.prototype.makeObjects=function(nowrite)
{
	var c = this,oc,name,bx,by,w,h,l,no,ar,id,nest
  	if(!nowrite)
  	{
    		for(i=0;i<c.l.length;i++)
    		{
      			if(i!=0) 
      				c.l[i].str+="</div>"
      			if(!bw.usedom) 
      				document.write(c.l[i].str)
      			else if(i>0) 
      				document.body.appendChild(c.l[i].app)
      			c.l[i].str=null //Probably need this on frames version though
    		}
    	}
    	c.z=c.zIndex+2
  	for(i=0;i<c.l.length;i++)
  	{
  		oc=0
    		if(i!=0)
    		{
    			bobj=c.l[i].b = new cm_makeObj(c.name + "_"+i+"_0","",c.l[i].app); 
    			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); 
      				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); 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])
        			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)
        			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)
        			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); img.moveIt(0,0)
        			img.css.visibility="inherit"; img.css.zIndex=c.z+4; if(bw.op5) img.showIt()
      			}
      			c.z++; 
    		}
  	}
}

/**Onmouseout**/  //Added 4.02
makeCM.prototype.mout = function()
{
	var c = this;
  	clearTimeout(c.tim)
  	c.isover = 0
  	c.tim = setTimeout("if(!"+c.name+".isover)"+c.name+".hidesub()",c.wait)
}

/**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');
  	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(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)
  	{ //Background-Bar
    		bbx=c.barBorderX; 
    		bby=c.barBorderY; 
    		bar1=c.bar1= new cm_makeObj(c.name+'bbar_0',c.name+'bbar',nowrite?0:c.bar1)
    		bar=c.bar= new cm_makeObj(c.name+'bbar','',nowrite?0:c.bar); bar.css.zIndex=c.zIndex+1
    		//bar.evnt.onmouseover=new Function(cm_eventlayerE)
    		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)
  	{ //Window resize code.
    		setTimeout('window.onresize=new Function("'+c.name+'.resized()")',500)
    		c.resized=cm_resized; 
    		if(bw.op5||bw.op6) 
    			document.onmousemove=new Function(c.name+".resized()")
  	}
  	if(c.onconstruct) 
  		eval(c.onconstruct) //onconstruct event
	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)?15: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)
		{
      			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); 
  	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") 
			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
}
