/*****************************************************************************
Copyright (c) 2001 Thomas Brattli 
Version 4.0_beta
v 4.d modify by CN. / center placement & resize
******************************************************************************/
/*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.ns = (this.ns4)
	this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.op5 || this.op6)
//	this.usedom= this.ns6//Use dom creation
	this.usedom= false//ns6 bug
	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-2; 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;o.ox=x;
		if(!mpa) rows?x+=m.w+px+bx:y+=m.h+px+by;
	}
	c.length = i;
	if(c.onconstruct) eval(c.onconstruct) //onconstruct event
	return true;
}


/**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
	}
}

/******************************************
CM_ADD-IN - hideselectboxes (last updated: 01/29/02)*/
if(bw.dom&&!bw.op5&&!bw.op6){
	makeCM.prototype.sel=0
	makeCM.prototype.onshow+=";this.hideselectboxes(pm,pm.subx,pm.suby,maxw,maxh,pm.lev)"
	makeCM.prototype.hideselectboxes=function(pm,x,y,w,h,l){
	var selx,sely,selw,selh,i
	if(!this.sel){
		this.sel=document.getElementsByTagName("SELECT")
		this.sel.level=0
	}
	var sel=this.sel
	for(i=0;i<sel.length;i++){
		selx=0; sely=0; var selp;
		if(sel[i].offsetParent){selp=sel[i]; while(selp.offsetParent){selp=selp.offsetParent; selx+=selp.offsetLeft; sely+=selp.offsetTop;}}
		selx+=sel[i].offsetLeft; sely+=sel[i].offsetTop
		selw=sel[i].offsetWidth; selh=sel[i].offsetHeight
		if(selx+selw>x && selx<x+w && sely+selh>y && sely<y+h){
			if(sel[i].style.visibility!="hidden"){
				sel[i].level=l; sel[i].style.visibility="hidden";
				if(pm){if(!pm.mout) pm.mout=""; pm.mout+=this.name+".sel["+i+"].style.visibility='visible';"}}
			}else if(l<=sel[i].level && !(pm&&l==0)) sel[i].style.visibility="visible"
		}
	}
}

/**Résoud problème de callage mac**/
app = navigator.appName;
if((navigator.platform.indexOf('Mac') > -1 ) && (app == "Microsoft Internet Explorer")){
	TopY =  0 
	TopX =  10 
}
else{
	TopY =  0 
	TopX =  0 
}



/**Fonction de placement des éléments **/

function findPos(wich, num){
	my_layer = 'layer' + wich;
	my_div = 'div' + wich;

	if(bw.ns4){   //Netscape 4
		x = document.layers[my_layer + num].pageX
		y = document.layers[my_layer + num].pageY
	} else {
		 //other browsers
		x=0; y=0;
		var el,temp
		el = bw.ie4?document.all[my_div + num]:document.getElementById(my_div + num);
		if(el.offsetParent){
			temp = el
			while(temp.offsetParent){
				//Looping parent elements to get the offset of them as well
				temp=temp.offsetParent;
				x+=temp.offsetLeft;
				y+=temp.offsetTop;
			}
		}
		x+=el.offsetLeft;
		y+=el.offsetTop;
	}
	//Returning the x and y as an array
	return [x,y]
}


function reg() {
	if (bw.ns) {
		window.captureEvents(Event.Resize)
		window.onresize = "reload()";
	}
	

	
}

function replace_elements(){

	placeElements(1);
	placeElements(2);
	placeElements(3);
	
	if((navigator.platform.indexOf('Mac') > -1 ) && (app == "Microsoft Internet Explorer")){
		self.location.reload();
	}	
}
