/*******************************************************************************
Copyright (c) 1999 Thomas Brattli (www.bratta.com)

eXperience DHTML coolMenus - Get it at www.bratta.com
Version 1.0
This script can be used freely as long as all copyright messages are
intact. Visit www.bratta.com/dhtml for the latest version of the script.

This is the actual script page. You shouldn't really have to edit anything in
here.
*******************************************************************************/
/*********************************************************************************
IMPORTANT NOTE!!!!!!
This is NOT a script in it's original form as intended by Thomas Brattli. Instead,
it is a modification of his excellent script Coolmenus2. Any shortcomings you encounter
through the use of this script is entirely the fault of scott who hand modified it.
For the originals and others like them, visit Mr. Brattli's site:
http://www.bratta.com/
**********************************************************************************/
//Default browsercheck, added to all scripts!
function checkBrowser(){
	this.ver=navigator.appVersion
	this.dom=document.getElementById?1:0
	this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0;
	this.ie4=(document.all && !this.dom)?1:0;
	this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0;
	this.ns4=(document.layers && !this.dom)?1:0;
	this.bw=(this.ie5 || this.ie4 || this.ns4 || this.ns5)
	return this
}
var bw=new checkBrowser()

//Ie var
var explorerev=''
/********************************************************************************
Object constructor and object functions
********************************************************************************/
function makePageCoords(){
	this.x=0;this.x2=(bw.ns4 || bw.ns5)?innerWidth:document.body.offsetWidth-20;
	this.y=0;this.y2=(bw.ns4 || bw.ns5)?innerHeight:document.body.offsetHeight-5;
	this.x50=this.x2/2;	this.y50=this.y2/2;
	return this;
}
function makeMenu(parent,obj,nest,type,num,subnum,subsubnum){
    nest=(!nest) ? '':'document.'+nest+'.'
   	this.css=bw.dom? document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+"document.layers." +obj):0;					
	this.evnt=bw.dom? document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+"document.layers." +obj):0;		
	this.height=bw.ns4?this.css.document.height:this.evnt.offsetHeight
	this.width=bw.ns4?this.css.document.width:this.evnt.offsetWidth
	this.moveIt=b_moveIt; this.bgChange=b_bgChange;	
	this.clipTo=b_clipTo;
	this.clipSub=(bw.ns5)?b_hideIt:b_clipTo;	//ADDED FOR NS6
	this.showIt=b_showIt;
	this.hideIt=b_hideIt;
	this.show='';
	this.hide='';
	this.parent=parent;
	this.active=0;
	this.nssubover=0
	if(type==0){
		if(bw.ns4){
			this.show= hideLayer+'.showIt()';
			this.hide= hideLayer+'.hideIt()';
			this.css.captureEvents(Event.MOUSEDOWN);
		}
		this.evnt.onmouseover=new Function("mmover("+num+","+this.parent.name+");"+this.show);
		this.evnt.onmouseout=new Function("mmout("+num+","+this.parent.name+");"+this.hide);
		this.evnt.onmousedown= new Function("goLnk("+this.parent.name+".lnk["+num+"],"+this.parent.name+".target["+num+"])");
	}else if(type==1){
		this.clipIn=(bw.ns5)?b_hideIt:b_clipIn;	//ADDED FOR NS6
		this.clipOut=(bw.ns5)?b_showIt:b_clipOut;	//ADDED FOR NS6
		this.clipy=0
		if((bw.ns5 || bw.ns4) && this.parent.menueventoff=="mouse"){ //Change for Netscape 6 ------------------------------------------------------------
			this.evnt.onmouseout=new Function("setTimeout('if(!"+this.parent.name+"["+num+"].nssubover)"+this.parent.name+".hideactive("+num+");',100)")
			this.evnt.onmouseover=new Function(this.parent.name+"["+num+"].nssubover=true")
		}
		else this.evnt.onmouseover= cancelEv;
	}else if(type==2){
		if(bw.ns4){
			this.show= hideLayer+'.showIt()';
			this.hide= hideLayer+'.hideIt()';
			this.css.captureEvents(Event.MOUSEDOWN);
		}
		this.evnt.onmouseover=new Function("submmover("+num+","+subnum+","+this.parent.name+");"+this.show);
		this.evnt.onmouseout=new Function("submmout("+num+","+subnum+","+this.parent.name+");"+this.hide);
		this.evnt.onmousedown= new Function("goLnk("+this.parent.name+".sublnk["+num+"]["+subnum+"],"+this.parent.name+".subtarget["+num+"]["+subnum+"])");
	}else if(type==3){
		if(bw.ns4){
			this.show= hideLayer+'.showIt()';
			this.hide= hideLayer+'.hideIt()';
			this.css.captureEvents(Event.MOUSEDOWN);
		}
		this.evnt.onmouseover=new Function("subsubmmover("+num+","+subnum+","+subsubnum+","+this.parent.name+");"+this.show);
		this.evnt.onmouseout=new Function("subsubmmout("+num+","+subnum+","+subsubnum+","+this.parent.name+");"+this.hide);
		this.evnt.onmousedown= new Function("goLnk("+this.parent.name+".subsublnk["+num+"]["+subnum+"]["+subsubnum+"],"+this.parent.name+".subsubtarget["+num+"]["+subnum+"]["+subsubnum+"])");
	}
	this.tim=100
    this.obj = obj + "Object"; 	eval(this.obj + "=this"); hideLayer= this.obj;
	return this
}
function b_clipTo(t,r,b,l,h){if(bw.ns4){this.css.clip.top=t;this.css.clip.right=r
this.css.clip.bottom=b;this.css.clip.left=l; this.clipx=r;
}else{this.css.clip="rect("+t+","+r+","+b+","+l+")"; this.clipx=r;;
if(h){ if(!bw.ns4){ this.css.height=b; this.css.width=r}}}} //CHANGE DONE FOR NETSCAPE 6 --------------------------------------------------------------------------------------------------------------------
function b_moveIt(x,y){this.x=x; this.y=y; this.css.left=this.x;this.css.top=this.y}
function b_bgChange(color,hilite){
	if(!bw.ns4){
		this.css.backgroundColor=color;
		if(bw.ie4) this.evnt.children[0].style.color= hilite;
		else this.evnt.firstChild.style.color= hilite;
	}
}
function b_showIt(){this.css.visibility='visible'}
function b_hideIt(){this.css.visibility='hidden'}
function goLnk(url,target){
	if(url=='#' || !url) return;
	if(target){
		if(target=='_parent') parent.location.href= url;
		else if(target=='_top') top.location.href= url;
		else if(target=='_blank') window.open(url,'');
		else if(target=='_self') setTimeout('location.href="'+url+'"',200);
		else if(parent.frames.length>0){
			if(!parent.frames[target]) window.open(url,target);
			else eval('parent.'+target+'.location.href="'+url+'"');
		}
		else window.open(url,target);
	}
	else setTimeout('location.href="'+url+'"',200);
	return false;
}
function b_clipIn(speed){
	if(this.clipy>0){
		this.clipy-=speed
		if(this.clipy<0) this.clipy=0
		this.clipTo(0,this.clipx,this.clipy,0,1)
		this.tim=setTimeout(this.obj+".clipIn("+speed+")",10)
	}else{this.clipy=0; this.clipTo(0,this.clipx,this.clipy,0,1)}	
}
function b_clipOut(speed){
	if(this.clipy<this.clipheight){
		speed=((this.clipheight-this.clipy)<speed)?this.clipheight-this.clipy:speed;
		this.clipy+=speed
		this.clipTo(0,this.clipx,this.clipy,0,1)
		this.tim=setTimeout(this.obj+".clipOut("+speed+")",10)
	}else{this.clipy=this.clipheight; this.clipTo(0,this.clipx,this.clipy,0,1)}
}
//Page variable, holds the width and height of the document. (see documentsize tutorial on bratta.com/dhtml)
var page=new makePageCoords()

/********************************************************************************
Checking if the values are % or not.
********************************************************************************/
function checkp(num,lefttop){
	if(num){
		if(num.toString().indexOf("%")!=-1){
			if(this.menurows)num=(page.x2*parseFloat(num)/100)
			else num=(page.y2*parseFloat(num)/100)
		}else num=parseFloat(num)
	}else num=0
	return num
}
/********************************************************************************
Menu object, constructing menu ++
********************************************************************************/
function menuObj(name){
	this.makeStyle=makeStyle;
	this.makeMain=makeMain;
	this.makeSub=makeSub;
	this.makeSubSub=makeSubSub
	this.back= new Array();
	this.lnk= new Array();
	this.sublnk= new Array();
	this.subsublnk= new Array();
	this.target= new Array();
	this.subtarget= new Array();
	this.subsubtarget= new Array();
	this.mainmenus=0; 
	this.submenus=new Array()
	this.construct=constructMenu;
	this.checkp=checkp;
	this.name=name;
	this.menumain=menumain;
	this.hidemain=hidemain;
	this.hideactive=hideactive;
	this.menusub=menusub;
	this.hidesubs=hidesubs;
	this.menueventon="mouse"
	this.menueventoff="mouse"
	this.stayoncolor=0
	this.clipStyle=(bw.ns5)?'':'clip:rect(0,0,0,0);';	//ADDED FOR NS6
	this.subClipStyle=(bw.ns5)?'visibility:hidden;':'clip:rect(0,0,0,0);';	//ADDED FOR NS6
}
function constructMenu(){
	bw=new checkBrowser()
	page=new makePageCoords()
	//Checking numbers for %
	this.mainwidth=checkp(this.mainwidth,0)
	this.mainheight=checkp(this.mainheight,1)
	this.subplacement=checkp(this.subplacement,1)
	this.subwidth=checkp(this.subwidth,0)
	this.subheight=checkp(this.subheight,1)
	this.subsubwidth=checkp(this.subsubwidth,0)
	this.subsubheight=checkp(this.subsubheight,1)
	this.subsubXplacement=checkp(this.subsubXplacement,1)
	this.subsubYplacement=checkp(this.subsubYplacement,1)
	if(this.backgroundbar){ //Backgroundbar part
		this.oBackgroundbar=new makeMenu(this,'div'+this.name+'Backgroundbar','',-1)
		this.oBackgroundbar.moveIt(this.checkp(this.backgroundbarfromleft,0),this.checkp(this.backgroundbarfromtop,1))
if(this.menurows) this.oBackgroundbar.clipTo(0,this.checkp(this.backgroundbarsize),this.mainheight+(this.mBorderSize*2),0,1)
		else this.oBackgroundbar.clipTo(0,this.mainwidth+(this.mBorderSize*2),this.checkp(this.backgroundbarsize),0,1)
		if(!bw.ns4)this.oBackgroundbar.css.backgroundColor=this.backgroundbarcolor
		else this.oBackgroundbar.css.bgColor= this.backgroundbarcolor
	}
	this.x=this.checkp(this.fromleft,0); this.y=this.checkp(this.fromtop,1);
	for(i=0;i<this.mainmenus;i++){
		if(this.menuplacement!=0){
			if(this.menurows) this.x=this.checkp(this.menuplacement[i])
			else this.y=this.checkp(this.menuplacement[i])
		}
		this.back[i]= new makeMenu(this,'div'+this.name+'Mainback'+i,'',-1,i);
		this.back[i].clipTo(0,this.mainwidth+(this.mBorderSize*2),this.mainheight+(this.mBorderSize*2),0,1);
		this.back[i].moveIt(this.x,this.y);
		if(bw.ns4){
			this[i]=new makeMenu(this,'div'+this.name+'Main'+i,'',-1,i)
			this[i].css.bgColor= this.mainbgcoloroff;
			this[i].hilite=new makeMenu(this,'div'+this.name+'Main'+i+'Hilite','',-1,i)
			this[i].hilite.clipTo(0,this.mainwidth,this.mainheight,0,1)
			this[i].hilite.moveIt(this.x+this.mBorderSize,this.y+this.mBorderSize)
			this[i].hilite.css.bgColor=this.mainbgcoloron;
			this[i].cover=new makeMenu(this,'div'+this.name+'Main'+i+'Cover','',0,i)
			this[i].cover.clipTo(0,this.mainwidth,this.mainheight,0,1)
			this[i].cover.moveIt(this.x+this.mBorderSize,this.y+this.mBorderSize);
		}
		else this[i]=new makeMenu(this,'div'+this.name+'Main'+i,'',0,i)
		this[i].clipTo(0,this.mainwidth,this.mainheight,0,1)
		this[i].moveIt(this.x+this.mBorderSize,this.y+this.mBorderSize)
		this[i].bgChange(this.mainbgcoloroff)
		if(!bw.ns4)this.back[i].css.backgroundColor=this.mBorderColor;
		else this.back[i].css.bgColor= this.mBorderColor;
		if(!this.menurows) this.y+=this.mainheight+this.checkp(this.pxbetween)+this.mBorderSize
		else {this.x+=this.mainwidth+this.checkp(this.pxbetween)+this.mBorderSize;this.s1BorderSize=this.mBorderSize}
		if(this.submenus[i]!='nosub'){
			this[i].subs=new makeMenu(this,'div'+this.name+'Sub'+i,'',1,i,-1)
			if(!this.menurows) this[i].subs.moveIt(this.subplacement+this[i].x,this[i].y-this.s1Separator)
			else this[i].subs.moveIt(this[i].x-this.s1BorderSize,this[i].y+this.subplacement)
			if(!bw.ns4) this[i].subs.css.backgroundColor= this.s1BorderColor;
			else this[i].subs.css.bgColor= this.s1BorderColor;
			this.suby=this.s1BorderSize;
			this[i].sub=new Array()
			for(j=0;j<this.submenus[i]["main"];j++){
				if(bw.ns4){
					this[i].sub[j]=new makeMenu(this,'div'+this.name+'Sub'+i+'_'+j,'div'+this.name+'Sub'+i,-1,i,j)
					this[i].sub[j].css.bgColor=this.subbgcoloroff;
					this[i].sub[j].hilite=new makeMenu(this,'div'+this.name+'Sub'+i+'_'+j+'Hilite','div'+this.name+'Sub'+i,-1,i,j);
					this[i].sub[j].hilite.clipTo(0,this.subwidth,this.subheight,0,1)
					this[i].sub[j].hilite.moveIt(this.s1BorderSize,this.suby)
					this[i].sub[j].hilite.css.bgColor=this.subbgcoloron
					this[i].sub[j].cover=new makeMenu(this,'div'+this.name+'Sub'+i+'_'+j+'Cover','div'+this.name+'Sub'+i,2,i,j)
					this[i].sub[j].cover.clipTo(0,this.subwidth,this.subheight,0,1)
					this[i].sub[j].cover.moveIt(this.s1BorderSize,this.suby)
				}
				else this[i].sub[j]=new makeMenu(this,'div'+this.name+'Sub'+i+'_'+j,'div'+this.name+'Sub'+i,2,i,j)

				this[i].sub[j].clipTo(0,this.subwidth,this.subheight,0,1)
				this[i].sub[j].moveIt(this.s1BorderSize,this.suby)
				this[i].sub[j].bgChange(this.subbgcoloroff)
				this.suby+=this.subheight+this.s1Separator
				if(this.submenus[i]["submenus"][j]>0){
					this.subsuby=this.s2BorderSize
					this[i].sub[j].subs=new makeMenu(this,'div'+this.name+'Sub'+i+'_'+j+'_sub','',1,i,j)
					this[i].sub[j].subs.moveIt(this[i].subs.x+this.subsubXplacement,this[i].subs.y+this[i].sub[j].y+this.subsubYplacement)
					if(!bw.ns4)this[i].sub[j].subs.css.backgroundColor= this.s2BorderColor
					else this[i].sub[j].subs.css.bgColor= this.s2BorderColor
					this[i].sub[j].sub=new Array()
					for(a=0;a<this.submenus[i]["submenus"][j];a++){
						if(bw.ns4){
							this[i].sub[j].sub[a]=new makeMenu(this,'div'+this.name+'Sub'+i+'_'+j+'_sub'+a,'div'+this.name+'Sub'+i+'_'+j+'_sub',-1,i,j,a)
							this[i].sub[j].sub[a].css.bgColor=this.subsubbgcoloroff
							this[i].sub[j].sub[a].hilite=new makeMenu(this,'div'+this.name+'Sub'+i+'_'+j+'_sub'+a+'Hilite','div'+this.name+'Sub'+i+'_'+j+'_sub',-1,i,j,a)
							this[i].sub[j].sub[a].hilite.clipTo(0,this.subsubwidth,this.subsubheight,0,1)
							this[i].sub[j].sub[a].hilite.moveIt(this.s2BorderSize,this.subsuby)
							this[i].sub[j].sub[a].hilite.css.bgColor=this.subsubbgcoloron
							this[i].sub[j].sub[a].cover=new makeMenu(this,'div'+this.name+'Sub'+i+'_'+j+'_sub'+a+'Cover','div'+this.name+'Sub'+i+'_'+j+'_sub',3,i,j,a)
							this[i].sub[j].sub[a].cover.clipTo(0,this.subsubwidth,this.subsubheight,0,1)
							this[i].sub[j].sub[a].cover.moveIt(this.s2BorderSize,this.subsuby)
						}
						else this[i].sub[j].sub[a]=new makeMenu(this,'div'+this.name+'Sub'+i+'_'+j+'_sub'+a,'div'+this.name+'Sub'+i+'_'+j+'_sub',3,i,j,a)
						this[i].sub[j].sub[a].clipTo(0,this.subsubwidth,this.subsubheight,0,1)
						this[i].sub[j].sub[a].moveIt(this.s2BorderSize,this.subsuby)
						this[i].sub[j].sub[a].bgChange(this.subsubbgcoloroff)
						this.subsuby+=this.subsubheight+this.s2Separator
					}
					this[i].sub[j].subs.clipheight=this.subsuby+this.s2BorderSize-this.s2Separator
					var h=(bw.ns5)?this[i].sub[j].subs.clipheight:0;	//ADDED FOR NS6
					this[i].sub[j].subs.clipTo(0,this.subsubwidth+(this.s2BorderSize*2),h,0,1)
				}else this[i].sub[j].subs=0
			}
			this[i].subs.clipheight=this.suby+this.s1BorderSize-this.s1Separator
			var h=(bw.ns5)?this[i].subs.clipheight:0;		//ADDED FOR NS6
			this[i].subs.clipTo(0,this.subwidth+(this.s1BorderSize*2),h,0,1)
		}else this[i].subs=0
	}
	setTimeout("window.onresize=resized;",500)
	if(this.menueventoff=="mouse"){
		if(!bw.ns5 && !bw.ns4){explorerev+=this.name+".hidemain(-1);" //CHANGE NETSCAPE 6 -------------------------------
		document.onmouseover=new Function(explorerev)}//CHANGE NETSCAPE 6 --------------------------------------------------------------
	}
	if(bw.ns5)document.body.style.visibility='visible'		//ADDED FOR NS6
}
function resized(){
	page2=new makePageCoords()
	if(page2.x2!=page.x2 || page.y2!=page2.y2) location.reload()
}

/*********************************************************************************************
Mouseevents (name==this (as in made object, not the event "this"))
*********************************************************************************************/
function cancelEv(){
	if(bw.ie4 || bw.ie5) window.event.cancelBubble=true
}
function mmover(num,name){
	name[num].bgChange(name.mainbgcoloron,name.mainHilite)
	if(name.menueventon=="mouse") name.menumain(num,1)
	name[num].nssubover=true
	cancelEv()
}
function mmout(num,name){
	if(!isNaN(num)){
		if(name[num].subs==0 || !name.stayoncolor || !name[num].active)
		name[num].bgChange(name.mainbgcoloroff,name.mainOff); 
		name[num].nssubover=false
		if(name.menueventoff=="mouse") if(bw.ns4) setTimeout("if(!"+name.name+"["+num+"].nssubover) "+name.name+".hideactive("+num+")",100)
	} 
	cancelEv()
}
function submmover(num,subnum,name){
	name[num].sub[subnum].bgChange(name.subbgcoloron,name.subHilite)
	if(name.menueventon=="mouse") {name.menusub(num,subnum,1)}
	name[num].nssubover=true
	cancelEv()
}
function submmout(num,subnum,name){
	if(!isNaN(subnum)){
		name[num].nssubover=false;
		if(!name.stayoncolor || !name[num].sub[subnum].active || name[num].sub[subnum].subs==0)
		name[num].sub[subnum].bgChange(name.subbgcoloroff,name.subOff)
	}
	cancelEv()
}
function subsubmmover(num,subnum,subsubnum,name){
	if(!isNaN(subnum)){
		name[num].sub[subnum].sub[subsubnum].bgChange(name.subsubbgcoloron,name.subsubHilite); 
		name[num].nssubover=true
	}
	cancelEv()
}
function subsubmmout(num,subnum,subsubnum,name){
	if(!isNaN(subnum)){
		name[num].nssubover=false; 
		name[num].sub[subnum].sub[subsubnum].bgChange(name.subsubbgcoloroff,name.subsubOff)
	}
	cancelEv()
}
/*********************************************************************************************
Showing submenus
*********************************************************************************************/
function menumain(num,mouse){
	if(this[num].subs!=0){
		clearTimeout(this[num].subs.tim)
		if(this[num].subs.clipy==0 || mouse){
			this.hidemain(num); this[num].subs.clipOut(this.menuspeed); this[num].active=1
		}else{
			this.hidemain(-1); this[num].active=0
		}
	}
	else{
		this.hidemain(-1);
		this[num].bgChange(this.mainbgcoloron,this.mainHilite)
	}
}
/*********************************************************************************************
Showing subsubmenus
*********************************************************************************************/
function menusub(num,sub,mouse){
	this.hidesubs(num,sub)
	if(this[num].sub[sub].subs!=0){
		if(this[num].sub[sub].subs.clipy==0 || mouse){
			this[num].sub[sub].active=1
			this[num].sub[sub].subs.clipOut(this.menusubspeed)
		}else{
			this[num].sub[sub].active=0
			this[num].sub[sub].subs.clipIn(this.menusubspeed)
		}
	}
}
/*********************************************************************************************
Hides the other sub menuitems if any are shown. Also calls the hidesubs to hide any showing
submenus.
*********************************************************************************************/
function hidemain(num){
	for(i=0;i<this.mainmenus;i++){
		if(this[i].subs!=0){
			if(this[i].subs.clipy<=this[i].subs.clipheight){
				this.hidesubs(i,100)
				if(i!=num){
					clearTimeout(this[i].subs.tim)
					this[i].active=0
					this[i].bgChange(this.mainbgcoloroff)
					if(this.menurows)this[i].subs.clipIn(this.menuspeed)
					else{this[i].subs.clipy=0; this[i].subs.clipSub(0,this[i].subs.clipx,this[i].subs.clipy,0,1)}	//CHANGED FOR NS6
				}
			}
		}else this[i].bgChange(this.mainbgcoloroff)
	}
}
/*********************************************************************************************
Hides the active submenuitems
*********************************************************************************************/
function hideactive(num){
	if(this[num].subs!=0){
		this.hidesubs(num,100)
		clearTimeout(this[num].subs.tim)
		this[num].active=0
		this[num].bgChange(this.mainbgcoloroff)
		if(this.menurows)this[num].subs.clipIn(this.menuspeed)
		else{this[num].subs.clipy=0; this[num].subs.clipSub(0,this[num].subs.clipx,this[num].subs.clipy,0,1)}	//CHANGED FOR NS6
	}
}
/*********************************************************************************************
Hides the other subsub menuitems if any are shown.
*********************************************************************************************/
function hidesubs(num,sub){
	for(j=0;j<this[num].sub.length;j++){
		if(this[num].sub[j].subs!=0 && j!=sub){
			if(this[num].sub[j].subs.clipy<=this[num].sub[j].subs.clipy
			|| this[num].subs.clipy<this[num].subs.clipheight){
				clearTimeout(this[num].sub[j].subs.tim)
				this[num].sub[j].active=0
				this[num].sub[j].bgChange(this.subbgcoloroff)
				this[num].sub[j].subs.clipy=0
				this[num].sub[j].subs.clipSub(0,this[num].sub[j].subs.clipx,this[num].sub[j].subs.clipy,0,1)	//CHANGED FOR NS6
			}
		}
	}
}
/*********************************************************************************************
These are the functions that writes the style and menus to the page. 
*********************************************************************************************/
function makeStyle(){
	str='\n<style type="text/css">\n'
	//CHANGE DONE FOR NETSCAPE 6 (removed the copyright line)--------------------------------------------------------------------------------------------------------------------
	//ADDED this.clipStyle and this.subClipStyle FOR NS6 ----------------------------------------------------------------------------------------------------------------------------------------------
	str+='\tDIV.cl'+this.name+'Back{position:absolute; z-index:50; '+this.clipStyle+'}\n'
	str+='\tDIV.cl'+this.name+'Main{position:absolute; z-index:51; '+this.clipStyle+' overflow:hidden; width:'+(this.mainwidth-10)+'; '+this.clMain+'; color:'+this.mainOff+'}\n'
	str+='\tDIV.cl'+this.name+'Sub{position:absolute; z-index:52; '+this.clipStyle+' overflow:hidden; width:'+(this.subwidth-10)+'; '+this.clSub+'; color:'+this.subOff+'}\n'
	str+='\tDIV.cl'+this.name+'SubSub{position:absolute; z-index:54; '+this.clipStyle+' width:'+(this.subsubwidth-10)+'; '+this.clSubSub+'; color:'+this.subsubOff+'}\n'
	if(bw.ns4){
		str+='\tDIV.cl'+this.name+'MainCover{position:absolute; z-index:51; clip:rect(0,0,0,0); overflow:hidden; width:'+(this.mainwidth-10)+'}\n'
		str+='\tDIV.cl'+this.name+'MainHilite{position:absolute; z-index:51; clip:rect(0,0,0,0); overflow:hidden; width:'+(this.mainwidth-10)+'; '+this.clMainHilite+'; color:'+this.mainHilite+'; visibility:hidden}\n'
		str+='\tDIV.cl'+this.name+'SubCover{position:absolute; z-index:52; clip:rect(0,0,0,0); overflow:hidden; width:'+(this.subwidth-10)+'}\n'
		str+='\tDIV.cl'+this.name+'SubHilite{position:absolute; z-index:52; clip:rect(0,0,0,0); overflow:hidden; width:'+(this.subwidth-10)+'; '+this.clSubHilite+'; color:'+this.subHilite+'; visibility:hidden}\n'
		str+='\tDIV.cl'+this.name+'SubSubCover{position:absolute; z-index:54; clip:rect(0,0,0,0); width:'+(this.subsubwidth-10)+'}\n'
		str+='\tDIV.cl'+this.name+'SubSubHilite{position:absolute; z-index:54; clip:rect(0,0,0,0); width:'+(this.subsubwidth-10)+'; '+this.clSubSubHilite+';color:'+this.subsubHilite+'; visibility:hidden}\n'
	}
	str+='\tDIV.cl'+this.name+'Subs{position:absolute; z-index:53; '+this.subClipStyle+' overflow:hidden}\n'
	str+='\t#div'+this.name+'Backgroundbar{position:absolute; z-index:50; '+this.clipStyle+' overflow:hidden}\n'
	str+='\tA.clA'+this.name+'Main{'+this.clAMain+'; color:'+this.mainOff+'}\n'
	str+='\tA.clA'+this.name+'Sub{'+this.clASub+'; color:'+this.subOff+'}\n'
	str+='\tA.clA'+this.name+'SubSub{'+this.clASubSub+'; color:'+this.subsubOff+'}\n'
	str+='</style>'
	document.write(str)
}
function makeMain(num,text,link,target){
	str=""
	if(this.backgroundbar && num==0){str+='\n<div id="div'+this.name+'Backgroundbar"></div>\n'}
	str+='<div id= "div'+this.name+'Mainback'+num+'" class="cl'+this.name+'Back"></div>\n'
	str+='\n\n<div id="div'+this.name+'Main'+num+'" class="cl'+this.name+'Main">'
	if(bw.ns4){
		str+=text;
		str+='</div>\n<div id="div'+this.name+'Main'+num+'Hilite" class="cl'+this.name+'MainHilite">'+text+'</div>\n'
		str+='<div id="div'+this.name+'Main'+num+'Cover" class="cl'+this.name+'MainCover"></div>\n'
		if(link) this.submenus[num]='nosub';
	}
	else{
		if(link){ str+='<a href="'+link+'" onclick= "return false"'; this.submenus[num]='nosub'
		}else str+='<a href="#" onclick="'+this.name+'.menumain('+num+'); return false"'
		if(target) str+=' target="'+target+'" '
		str+=' class="clA'+this.name+'Main">'+text+'</a></div>\n'
	}
	this.target[num]= (target)?target:0;
	this.lnk[num]=link;
	this.sublnk[num]= new Array();
	this.subsublnk[num]= new Array();
	this.subtarget[num]= new Array();
	this.subsubtarget[num]= new Array();
	this.mainmenus++; 
	document.write(str)
}
function makeSub(num,subnum,text,link,total,target){
	str=""
	if(subnum==0) str='<div id="div'+this.name+'Sub'+num+'" class="cl'+this.name+'Subs">\n'
	str+='\t<div id="div'+this.name+'Sub'+num+'_'+subnum+'" class="cl'+this.name+'Sub">'
	if(bw.ns4){
		str+=text;
		str+='</div>\n\t<div id="div'+this.name+'Sub'+num+'_'+subnum+'Hilite" class="cl'+this.name+'SubHilite">'+text+'</div>\n'
		str+='\t<div id="div'+this.name+'Sub'+num+'_'+subnum+'Cover" class="cl'+this.name+'SubCover"></div>\n'
	}
	else{
		if(link) str+='<a href="'+link+'" onclick= "return false"'; else str+='<a href="#" onclick="'+this.name+'.menusub('+num+','+subnum+'); return false"'
		if(target) str+=' target="'+target+'" '
		str+=' class="clA'+this.name+'Sub">'+text+'</a></div>\n'
	}
	this.subtarget[num][subnum]= (target)?target:0;
	this.sublnk[num][subnum]=link;
	this.subsublnk[num][subnum]= new Array();
	this.subsubtarget[num][subnum]= new Array();
	if(subnum==total-1){
		str+='</div>\n'; this.submenus[num]=new Array()
		this.submenus[num]["main"]=total; this.submenus[num]["submenus"]=new Array()
	}
	document.write(str)
}
function makeSubSub(num,subnum,subsubnum,text,link,total,target){
	str=""
	if(subsubnum==0) str='<div id="div'+this.name+'Sub'+num+'_'+subnum+'_sub" class="cl'+this.name+'Subs">\n'
	str+='\t<div id="div'+this.name+'Sub'+num+'_'+subnum+'_sub'+subsubnum+'" class="cl'+this.name+'SubSub">'
	if(bw.ns4){
		str+=text;
		str+='</div>\n\t<div id="div'+this.name+'Sub'+num+'_'+subnum+'_sub'+subsubnum+'Hilite" class="cl'+this.name+'SubSubHilite">'+text+'</div>\n';
		str+='\t<div id="div'+this.name+'Sub'+num+'_'+subnum+'_sub'+subsubnum+'Cover" class="cl'+this.name+'SubSubCover"></div>\n'
	}
	else{
		if(link) str+='<a href="'+link+'" onclick= "return false"'; else str+='<a href="#"'
		if(target) str+=' target="'+target+'" '
		str+=' class="clA'+this.name+'SubSub">'+text+'</a></div>\n'
	}
	this.subsubtarget[num][subnum][subsubnum]=(target)?target:0;
	this.subsublnk[num][subnum][subsubnum]=link;
	if(subsubnum==total-1){str+='</div>\n'; this.submenus[num]["submenus"][subnum]=total}
	document.write(str)
}

function getAnchorY(){
aImg= document.images['anchorImg'];
if(bw.ns4) return aImg.y;
//var end= (bw.ie4 || bw.ie5)?null:document.documentElement;
var end= (bw.ie4 || bw.ie5)?null:null;
var posY= aImg.offsetTop;
var prnt= aImg.offsetParent;
while(prnt!=end){
posY+= prnt.offsetTop;
prnt= prnt.offsetParent;
}
return posY;
}

//Making a menu object
oMenu=new menuObj('oMenu') //Place a name for the menu in there. Must be unique for each menu

//Setting menu object variables

oMenu.clMain='padding:0px; font-family:arial; font-size:22px; text-align:center;' //The style for the main menus
oMenu.clMainHilite='padding:0px; font-family:arial; font-size:22px; text-align:center;' //The style for NN main mouseovers
oMenu.clSub='padding:4px; font-family:arial; font-size:16px; font-weight:bold; text-align:left' //The style for the submenus
oMenu.clSubHilite='padding:4px; font-family:arial; font-size:16px; font-weight:bold; text-align:left' //The style for NN submenu mouseovers
oMenu.clAMain='text-decoration:none; cursor:default' //The style for the main links
oMenu.clASub='text-decoration:none; cursor:hand' //The style for the sub links

oMenu.mBorderColor= 'ffffff';
oMenu.s1BorderColor= '0000ff';

oMenu.mBorderSize= 1;		// The "frame" border size
oMenu.s1BorderSize= 1;

oMenu.s1Separator= 1;		// The borders between the menu items

//Background bar properties
oMenu.backgroundbar=0 //Set to 0 if no backgroundbar
oMenu.backgroundbarfromleft=0 //The left placement of the backgroundbar in pixel or %
oMenu.backgroundbarfromtop=235 //The top placement of the backgroundbar  in pixel or %
oMenu.backgroundbarsize="100%" //The size of the bar in pixel or %
oMenu.backgroundbarcolor="990000" //The backgroundcolor of the bar

oMenu.mainheight=22 //The height of the main menuitems in pixel or %
oMenu.mainwidth=22 //The width of the main menuitems  in pixel or %

oMenu.mainOff= '0000ff';	// The main menu font "off" color
oMenu.mainHilite= '0000ff';	// The main menu font "on" color
oMenu.subOff= '0000ff'		// The submenu font "off" color
oMenu.subHilite= '0000ff';	// The submenu font "on" color
oMenu.stayoncolor=1

oMenu.subwidth=86 // The width of the submenus
oMenu.subheight=26 // The height if the subitems in pixel or % 

//Writing out the style for the menu
oMenu.makeStyle()

oMenu.subplacement=oMenu.mainheight // Relative to the main item

oMenu.mainbgcoloroff='#ffffff' //The backgroundcolor of the main menuitems
oMenu.mainbgcoloron='#ff6600' //The backgroundcolor on mouseover of the main menuitems
oMenu.subbgcoloroff='#ffffff' //The backgroundcolor of the sub menuitems
oMenu.subbgcoloron='#ff6600' //The backgroundcolor on mouseover of the sub menuitems

oMenu.menuspeed=15 //The speed of the clipping in px

oMenu.menurows=1 //Set to 0 if you want rows and to 1 if you want columns

//Placement of the menuitems

//Right next to each other
oMenu.menuplacement=0
oMenu.pxbetween=4 //in pixel or %

//And you can set where it should start from the left here
numberofmenus=27
menutotalwidth=oMenu.mainwidth*numberofmenus+oMenu.mBorderSize*(numberofmenus+1)+oMenu.pxbetween*(numberofmenus-1)
leftval=page.x50-menutotalwidth/2
if(leftval<0)leftval=0
oMenu.fromleft=leftval

//This is how much from the top the menu should be.
oMenu.fromtop=getAnchorY(); //in pixel or %

/********************************************************************************
Construct your menus below
********************************************************************************/

// makeMain(MAIN_NUM,'TEXT','LINK','FRAME_TARGET') (set link to 0 if you want submenus of this menu item)
oMenu.makeMain(0,'#','#1')
	oMenu.makeSub(0,0,'1G/2G','#1g',5)
	oMenu.makeSub(0,1,'3G','#3g',5)
	oMenu.makeSub(0,2,'3GPP','#3gpp',5)
	oMenu.makeSub(0,3,'403','#403',5)
	oMenu.makeSub(0,4,'404','#404',5)
oMenu.makeMain(1,'A','#a')
	// makeSub(MAIN_NUM,SUB_NUM,'TEXT','LINK',TOTAL,'FRAME_TARGET') (set link to 0 if you want submenus of this menu item)
	oMenu.makeSub(1,0,'ALI','#ali',5)
	oMenu.makeSub(1,1,'ANSI','#ansi',5)
	oMenu.makeSub(1,2,'API','#api',5)
	oMenu.makeSub(1,3,'ATM','#atm',5)
	oMenu.makeSub(1,4,'AUC/AC','#auc/ac',5)
oMenu.makeMain(2,'B','#b')
	oMenu.makeSub(2,0,'BTS','#bts',2)
	oMenu.makeSub(2,1,'BSC','#bsc',2)
	
oMenu.makeMain(3,'C','#c')
	oMenu.makeSub(3,0,'CAMEL','#camel',4)
	oMenu.makeSub(3,1,'CDMA','#cdma',4)
	oMenu.makeSub(3,2,'CMDA2000','#cmda2000',4)
	oMenu.makeSub(3,3,'COBRA','#cobra',4)
oMenu.makeMain(4,'D','#d')
	oMenu.makeSub(4,0,'none','#none',1)
oMenu.makeMain(5,'E','#e')
	oMenu.makeSub(5,0,'EDGE','#edge',3)
	oMenu.makeSub(5,1,'EPOC','#epoc',3)
	oMenu.makeSub(5,2,'ETSI','#etsi',3)
oMenu.makeMain(6,'F','#f')
	oMenu.makeSub(6,0,'none','#none',1)
oMenu.makeMain(7,'G','#g')
	oMenu.makeSub(7,0,'GSM','#gsm',2)
	oMenu.makeSub(7,1,'GPRS','#gprs',2)
oMenu.makeMain(8,'H','#h')
	oMenu.makeSub(8,0,'HLR','#hlr',1)
oMenu.makeMain(9,'I','#i')
	oMenu.makeSub(9,0,'IEF','#ief',4)
	oMenu.makeSub(9,1,'IMT2000','#imt2000',4)
	oMenu.makeSub(9,2,'IN','#in',4)
	oMenu.makeSub(9,3,'IP','#ip',4)
oMenu.makeMain(10,'J','#j')
	oMenu.makeSub(10,0,'none','#none',1)
oMenu.makeMain(11,'K','#k')
	oMenu.makeSub(11,0,'none','#none',1)
oMenu.makeMain(12,'L','#l')
	oMenu.makeSub(12,0,'LA','#la',1)
oMenu.makeMain(13,'M','#m')
	oMenu.makeSub(13,0,'MGW','#mgw',3)
	oMenu.makeSub(13,1,'MPLS','#mpls',3)
	oMenu.makeSub(13,2,'MSC','#msc',3)
oMenu.makeMain(14,'N','#n')
	oMenu.makeSub(14,0,'none','none',1)
oMenu.makeMain(15,'O','#o')
	oMenu.makeSub(15,0,'O&M','#oandm',3)
	oMenu.makeSub(15,1,'OSA','#osa',3)
	oMenu.makeSub(15,2,'OSS','#oss',3)
oMenu.makeMain(16,'P','#p')
	oMenu.makeSub(16,0,'PBN','#pbn',5)
	oMenu.makeSub(16,1,'PCN','#pcn',5)
	oMenu.makeSub(16,2,'PCS','#pcs',5)
	oMenu.makeSub(16,3,'PDP','#pdp',5)
	oMenu.makeSub(16,4,'PLMN','#pdmn',5)
oMenu.makeMain(17,'Q','#q')
	oMenu.makeSub(17,0,'QOS','#qos',1)
oMenu.makeMain(18,'R','#r')
	oMenu.makeSub(18,0,'RADIUS','#radius',4)
	oMenu.makeSub(18,1,'RAN','#ran',4)
	oMenu.makeSub(18,2,'RNC','#rnc',4)
	oMenu.makeSub(18,3,'RTT','#rtt',4)
oMenu.makeMain(19,'S','#s')
	oMenu.makeSub(19,0,'SMS','#sms',3)
	oMenu.makeSub(19,1,'SMS-C','#smsc',3)
	oMenu.makeSub(19,2,'SGSN','#sgsn',3)
oMenu.makeMain(20,'T','#t')
	oMenu.makeSub(20,0,'TCP/IP','#tcpip',3)
	oMenu.makeSub(20,1,'TDMA','#tdma',3)
	oMenu.makeSub(20,2,'TIA','#tia',3)
oMenu.makeMain(21,'U','#u')
	oMenu.makeSub(21,0,'UMTS','#umts',1)
oMenu.makeMain(22,'V','#v')
	oMenu.makeSub(22,0,'VPN','#vpn',3)
	oMenu.makeSub(22,1,'VOIP','#voip',3)
	oMenu.makeSub(22,2,'VOICEXML','#voicexml',3)
oMenu.makeMain(23,'W','#w')
	oMenu.makeSub(23,0,'WAP','#wap',3)
	oMenu.makeSub(23,1,'WCDMA','#wcdma',3)
	oMenu.makeSub(23,2,'WIN','#win',3)
oMenu.makeMain(24,'X','#x')
	oMenu.makeSub(24,0,'none','#none',1)
oMenu.makeMain(25,'Y','#y')
	oMenu.makeSub(25,0,'none','#none',1)
oMenu.makeMain(26,'Z','#z')
	oMenu.makeSub(26,0,'none','#none',1)

/********************************************************************************
End menu construction
********************************************************************************/

/*********************************************************************************************
END Menu script
*********************************************************************************************/

