var ns=document.layers?true:false;
var dom=document.layers?1:document.all?2:document.getElementById?3:0;
var choiseMargin=10;
var activeMenu="none";

function menuBar(id,startX,startY,bgcolor,bgcolor_on,bordercolor,border){
	this.id=id;
	this.startX=startX;
	this.startY=startY;
	this.bgcolor=bgcolor;
	this.bgcolor_on=bgcolor_on;
	this.bordercolor=bordercolor;
	this.border=border;
	this.timer=null;
	this.menu=new Array();
	this.menutimer=0;
	this.activemenu=0;
	this.create=mb_create;
	this.addMenu=mb_addmenu;
	this.addChoise=mb_addchoise;
}

function mbo_menu(id,title,width,height,startX,startY,choisewidth,choiseheight,object,url,img_on,img_off){
	this.id=id;
	this.title=title;
	this.width=width;
	this.height=height;
	this.totHeight=0;
	this.startX=startX;
	this.startY=startY;
	this.object=object;
	this.choisewidth=choisewidth;
	this.choiseheight=choiseheight;
	this.url=url;

	this.hasimage=true;
	this.img_on=new Image();
	this.img_on.src=img_on;
	this.img_off=new Image();
	this.img_off.src=img_off;

	document.write("<a href=\""+this.url+"\"><img src=\""+this.img_off.src+"\" name=\"menuimg"+this.id+"\" border=0></a>");

	this.visible=false;
	this.choise=new Array();
	this.mouseover=mb_menumouseover;
	this.mouseout=mb_menumouseout;
	this.hidemenu=mb_hidemenu;
}

function mbo_menuchoise(id,title,url,object){
	this.id=id;
	this.title=title;
	this.url=url;
	this.object=object;
}

function mb_create(){
	tempstartX=this.startX;
	for(var a=0;a<this.menu.length;a++){
		this.menu[a].width=document.images["menuimg"+a].width+2;//doep
		this.menu[a].startX=tempstartX;
		this.menu[a].menuClickLayer=createLayer("mbcl"+this.id+a,this.menu[a].startX,this.menu[a].startY,'<a href="'+this.menu[a].url+'"><img src="'+server+'images/pix.gif" width="'+this.menu[a].width+'" height="'+this.menu[a].height+'" border="0"></a>',this.menu[a].width,this.menu[a].height,false,true,false,this.id+".menu["+a+"]");
		this.menu[a].menuClickLayer.visibility=ns?'show':'visible';
		tempstartX+=this.menu[a].width;
	}
	for(var a=0;a<this.menu.length;a++){
		temp='<table border=0 cellpadding=1 cellspacing=0><tr><td bgcolor="'+this.bordercolor+'">';
		temp+='<table border=0 cellpadding='+choiseMargin+' cellspacing=0><tr><td bgcolor="'+this.bgcolor+'" nowrap>';
		temp+='';

		for(var b=0;b<this.menu[a].choise.length;b++){
			temp+='<a href="'+this.menu[a].choise[b].url+'"><font face="Helvetica,Arial" point-size="10">'+this.menu[a].choise[b].title+'</font></a><br>';
		}
		temp+='</td></tr></table>';
		temp+='</td></tr></table> ';
		this.menu[a].choiseLayer=createLayer("mb"+this.id+a,this.menu[a].startX,this.menu[a].startY+this.menu[a].height,temp,this.menu[a].choisewidth+(2*this.border)+2+2*choiseMargin,(this.menu[a].choiseheight+this.border)*this.menu[a].choise.length+this.border+choiseMargin*2+1,false,false,false,this.id+".menu["+a+"]",true);
		switch(dom){
			case 1:
				this.menu[a].totHeight=this.menu[a].choiseLayer.clip.height;
				this.menu[a].totWidth=this.menu[a].choiseLayer.clip.width;
				break;
			case 2:
				this.menu[a].totHeight=document.all["mb"+this.id+a].offsetHeight;
				this.menu[a].totWidth=document.all["mb"+this.id+a].offsetWidth;
				break;
			case 3:
				this.menu[a].totHeight=document.getElementById("mb"+this.id+a).offsetHeight+choiseMargin;
				this.menu[a].totWidth=document.getElementById("mb"+this.id+a).offsetWidth+choiseMargin;
				break;
		}
		if(this.menu[a].totWidth<this.menu[a].width){
			this.menu[a].totWidth=this.menu[a].width;
		}
		if(this.menu[a].totHeight==0){
			this.menu[a].totHeight=this.menu[a].height*this.menu[a].choise.length+2*choiseMargin;
			this.menu[a].totWidth=this.menu[a].choisewidth;
		}
		if(this.menu[a].choise.length==0){
			this.menu[a].totHeight=0;
			this.menu[a].totWidth=this.menu[a].width;
		}
	}
	switch(dom){
		case 1:
			window.captureEvents(Event.MOUSEMOVE);
			window.onmousemove=runMenuMove;
			break;
		case 2:
			document.onmousemove=runMenuMove;
			break;
		case 3:
			document.addEventListener('mousemove', runMenuMove, true);
			break;
	}
	activeMenu=this.id;
}

function mb_addmenu(title,url,img_on,img_off){
	menuid=this.menu.length;
	height=17;
	width=40;//doep
	this.menu[menuid]=new mbo_menu(menuid,title,width,height,0,this.startY,160,14,this.id,url,img_on,img_off);
	return menuid;
}

function mb_addchoise(menuid,title,url){
	choiseid=this.menu[menuid].choise.length;
	this.menu[menuid].choise[choiseid]=new mbo_menuchoise(choiseid,title,url,this.id);
}

function mb_menumouseout(){

}

function mb_menumouseover(){
	eval(this.object+".menu["+this.object+".activemenu].hidemenu();");
	eval(this.object+".activemenu="+this.id);
	activeMenu=this.object;
	if(this.hasimage){
		document.images["menuimg"+this.id].src=this.img_on.src;
	}

	if(this.choise.length>0){
		this.choiseLayer.visibility=ns?'show':'visible';
	}

	if(this.id<3 && this.choise.length>0){
		switch(dom){
			case 1:
				if(document.expmenuaway){
					document.expmenuaway.visibility='hide';
				}
				break;
			case 2:
				if(document.all["expmenuaway"]){
					document.all["expmenuaway"].style.visibility='hidden';
				}
				break;
			case 3:
				if(document.getElementById("expmenuaway")){
					document.getElementById("expmenuaway").style.visibility='hidden';
				}
				break;
		}
	}
}

function mb_hidemenu(){
	this.choiseLayer.visibility=ns?'hide':'hidden';
	if(this.hasimage){
		document.images["menuimg"+this.id].src=this.img_off.src;
	}
	if(this.id<3 && this.choise.length>0){
		switch(dom){
			case 1:
				if(document.expmenuaway){
					document.expmenuaway.visibility='show';
				}
				break;
			case 2:
				if(document.all["expmenuaway"]){
					document.all["expmenuaway"].style.visibility='visible';
				}
				break;
			case 3:
				if(document.getElementById("expmenuaway")){
					document.getElementById("expmenuaway").style.visibility='visible';
				}
				break;
		}
	}
}


function createLayer(name,x,y,text,width,height,bgcolor,onmouseover,onmouseout,object,nowidth){
	switch(dom){
		case 1:
			document.layers[name]=new Layer(width);
			document.layers[name].document.open();
			document.layers[name].document.write(text);
			document.layers[name].document.close();
			if(!nowidth){
				document.layers[name].resizeTo(width,height);
			}
			document.layers[name].moveTo(x,y);
			document.layers[name].visibility='hide';
			if(bgcolor){
				document.layers[name].bgColor=bgcolor;
			}
			if(object){
				Layer.prototype.thisobject=null;
				document.layers[name].thisobject=object;
			}
			if(onmouseover){
				document.layers[name].captureEvents(Event.MOUSEOVER);
				document.layers[name].onMouseOver=runMouseOver;
			}
			if(onmouseout){
				document.layers[name].captureEvents(Event.MOUSEOUT);
				document.layers[name].onMouseOut=runMouseOut;
			}

			return document.layers[name];
			break;
		case 2:
			mo='';
			mou='';
			bgc='';
			if(onmouseover){
				mo=' onMouseover="'+object+'.mouseover();"';
			}
			if(onmouseout){
				mou=' onMouseout="'+object+'.mouseout();"';
			}
			if(bgcolor){
				bgc='background-color:'+bgcolor+';';
			}
			if(nowidth){
				width="";
			}else{
				width="width:"+width+";";
			}
			document.body.insertAdjacentHTML('BeforeEnd','<div id="'+name+'" nowrap style="position:absolute;'+width+'height:'+height+';top:'+y+';left:'+x+';visibility:hidden;'+bgc+'"'+mo+' '+mou+'>'+text+'</div>');

			return document.all[name].style;
			break;
		case 3:
			var div;
			var bgc="";
			if(bgcolor){
				bgc="background-color:"+bgcolor+";";
			}
			if(nowidth){
				width="";
			}else{
				width="width:"+width+";";
			}
			div=document.createElement('DIV');
			div.id=name;
			div.setAttribute('style','position:absolute;left:'+x+';top:'+y+';'+width+';height:'+height+';visibility:hidden;'+bgc);
			if(onmouseover){
				div.setAttribute('onMouseover',object+'.mouseover();');
			}
			if(onmouseout){
				div.setAttribute('onMouseout',object+'.mouseout();');
			}
			div.innerHTML=text;
			document.body.appendChild(div);
			return div.style;
			break;
	}
}
function runMouseOver(){
	eval(this.thisobject+".mouseover();");
}
function runMouseOut(){
	eval(this.thisobject+".mouseout();");
}

function runMenuMove(e){
	if(activeMenu!="none"){
		if(dom==2){e=window.event;}
		iY=dom==2?(e.clientY+document.body.scrollTop):e.pageY;
		iX=dom==1?e.pageX:dom==2?e.clientX:e.clientX;
		oMenu=eval(activeMenu);
		iMaxY=oMenu.menu[oMenu.activemenu].startY+oMenu.menu[oMenu.activemenu].height+oMenu.menu[oMenu.activemenu].totHeight;
		if(iY>iMaxY || iY<oMenu.startY || iX<oMenu.menu[oMenu.activemenu].startX || iX>(oMenu.menu[oMenu.activemenu].startX+oMenu.menu[oMenu.activemenu].totWidth)){
			oMenu.menu[oMenu.activemenu].hidemenu();
			activeMenu="none";
		}
	}
}

