/************************************************************************************
A script by Dave Cage, Dec 2000	nikzhowz@mailUNSPAMandnews.com
Tested on IE5.01, NN4.08, and M18 on a Win98 system
Free for personal use if this message is included
With gratitude and respect for Thomas Brattli whose scripts showed me how it's done
http://www.bratta.com
*************************************************************************************/
function sniffIt(){
	this.nn4= (document.layers);
	this.ie4= (document.all && !document.getElementById);
	this.ie5= (document.all && document.getElementById);
	this.nn6= (document.getElementById && !document.all);
	this.mac= (navigator.userAgent.toLowerCase().indexOf('mac')>-1 && this.ie4);
	this.opera= (navigator.userAgent.toLowerCase().indexOf('opera')>-1);
	this.ok= (this.nn4 || this.ie4 || this.ie5 || this.nn6 && !this.mac && !this.opera);
}
who= new sniffIt();
function scrDim(){
	this.x= (who.nn4 || who.nn6)?innerWidth:document.body.offsetWidth-20;
	this.y= (who.nn4 || who.nn6)?innerHeight:document.body.offsetHeight-4;
	this.midX= this.x/2;	this.midY= this.y/2;
}
if(who.ok)scr= new scrDim;
if(who.nn4){
	onresize= function(){if(scr.x!=innerWidth || scr.y!=innerHeight)history.go(0)};
}
px= (who.nn6)?'px':0;
function p_menuMain(obj){
	this.cnt= 0;
	this.itemCnt= 0;
	this.writeStyle= p_writeStyle;
	this.makeObj= p_makeObj;
	this.newMenu= p_newMenu;
	this.makeItem= p_makeItem;
	this.closeAll= p_closeAll;
	this.centerIt= p_centerIt;
	this.build= p_build;
	this.goURL= p_goURL;
	this.menuitem= new Array();
	this.link= new Array();
	this.obj= obj+'Obj';
	eval(this.obj+'=this');
}
function p_writeStyle(){
	this.totWidth= this.menuWidth+this.blockWidth+(this.borderSize*3);
	var str='';
	str+= '<sty'+'le type= "text/css">';
	str+= '.menu {position:absolute;width:'+this.totWidth+'px;clip:rect(0px,0px,0px,0px);overflow:hidden;z-index:100;visibility:hidden}.block {position:absolute;left:'+this.borderSize+'px;width:'+this.blockWidth+'px;height:'+this.menuHeight+'px;clip:rect(0px,'+this.blockWidth+'px,'+this.menuHeight+'px,0px)}.header {position:absolute;width:'+this.menuWidth+'px;clip:rect(0px,0px,0px,0px);'+((who.nn6)?'cursor:pointer;':(who.ie4 || who.ie5)?'cursor:hand;':'')+'color:'+this.headerFontColor+';'+this.headerStyle+'}.item {position:absolute;width:'+this.menuWidth+'px;clip:rect(0px,0px,0px,0px);'+((who.nn6)?'cursor:pointer;':(who.ie4 || who.ie5)?'cursor:hand;':'')+'color:'+this.itemFontColor+';'+this.itemStyle+'}';
	str+= '</sty'+'le>';
	document.write(str);
}
function p_newMenu(){
	if(this.itemCnt>0){
		this.cnt+= 1;
		this.itemCnt= 0;
	}
	var str='';
	if(this.cnt>0)str+='</div>\n';
	str+='\n<div id="menu'+this.cnt+'" class= "menu">'
	document.write(str);
	this.link[this.cnt]= new Array();
	this.menuitem[this.cnt]= new Array();
}
function p_makeItem(txt,lnk,target){
	var cls= (this.itemCnt==0)?'header':'item';
	document.write('<div id= "block'+this.cnt+'_'+this.itemCnt+'" class="block"></div><div id="item'+this.cnt+'_'+(this.itemCnt)+'" class="'+cls+'">'+txt+'</div>');
	if(lnk){
		this.link[this.cnt][this.itemCnt]= new Array();
		this.link[this.cnt][this.itemCnt][0]= lnk;
		if(target)this.link[this.cnt][this.itemCnt][1]= target;
	}
	this.menuitem[this.cnt]= this.itemCnt++;
}
function p_makeObj(obj,nest){
	nest= (!nest)?'':'document.'+nest+'.';
	this.sty= (who.nn4)?eval(nest+'document.'+obj):(who.ie4)?document.all[obj].style:document.getElementById(obj).style;
	this.el= (who.nn4)?this.sty:(who.ie4)?document.all[obj]:document.getElementById(obj);
	this.doc= (who.nn4)?this.el.document:this.el;
	this.obj= obj+'Obj';
	eval(this.obj+'=this');
}
function p_core(){
	this.clipIt= p_clipIt;
	this.moveIt= p_moveIt;
	this.chgCol= p_chgCol;
}
if(who.ok)p_makeObj.prototype= new p_core();
function p_clipIt(t,r,b,l,flg){
	if(who.nn4){
		this.sty.clip.top= t;
		this.sty.clip.right= r;
		this.sty.clip.bottom= b;
		this.sty.clip.left= l;
	}
	else {
		this.sty.clip= 'rect('+t+px+','+r+px+','+b+px+','+l+px+')';
		if(!flg){
			this.sty.width= r+px;	this.sty.height= b+px;
		}
	}
	this.cw= r;	this.ch= b;
}
function p_closeAll(num){
	for(var i=0;i<=this.cnt;i++){
		if(i!=num){
			if(this[i].clipState){
				this[i].clipState=!this[i].clipState;
				clearTimeout(this[i].timerID);
				this[i].clipIn();
			}
		}
	}
}
function p_clipIn(){
	if(this.ch-this.speed>this.start){
		this.clipIt(0,this.cw,this.ch-this.speed,0);
		this.timerID= setTimeout(this.obj+'.clipIn()',30);
	}
	else {
		clearTimeout(this.timerID);
		this.clipIt(0,this.cw,this.start,0);
	}
}
function p_clipOut(){
	if(this.ch+this.speed<this.end){
		this.clipIt(0,this.cw,this.ch+this.speed,0);
		this.timerID= setTimeout(this.obj+'.clipOut()',30);
	}
	else {
		clearTimeout(this.timerID);
		this.clipIt(0,this.cw,this.end,0);
	}
}
function p_chkClip(){
	clearTimeout(this.timerID);
	this.clipState= !this.clipState;
	if(!this.clipState){
		this.clipIn()
	}
	else {
		this.clipOut();
	}
}
function p_moveIt(x,y){
	this.x= x;	this.y= y;
	this.sty.left= x+px;
	this.sty.top= y+px;
}
function p_chgCol(clr,fclr){
	if(who.nn4){
		this.sty.bgColor= clr;
		return;
	}
	this.sty.backgroundColor= clr;
	this.sty.color= fclr;
}

function p_goURL(num1,num2){
	if(this.link[num1][num2]){
		var url= this.link[num1][num2][0];
		var target= this.link[num1][num2][1];
		if(target){
			if(target=='_blank')open(url);
			else if(target=='_top')top.location.href= url;
			else if(target=='_self')location.href= url;
			else eval('parent.frames.'+target+'.location.href= "'+url+'"');
		}
		else location.href= url;
	}
}
function p_centerIt(flg){
	if(flg)scr= new scrDim();
	var tmp=((this.totWidth+this.between)*(this.cnt+1)-this.between)/2;
	this.left= scr.midX-tmp;
	for(var i=0;i<=this.cnt;i++){
		this[i].moveIt(this.left,this.top);
		this.left+= this.totWidth+this.between;
		this[i].sty.visibility='visible';
	}
}
function p_build(){
	document.write('</div>');
	for(var i=0;i<=this.cnt;i++){
		this[i]= new this.makeObj('menu'+i);
		this[i].y= this.borderSize;
		this[i].speed= this.speed;
		this[i].clipIn= p_clipIn;
		this[i].clipOut= p_clipOut;
		this[i].chkClip= p_chkClip;
		this[i].clipState= 0;
		this[i].timerID= null;
		this[i].item= new Array();
		for(var j=0;j<=this.menuitem[i];j++){
			var tmp= new this.makeObj('block'+i+'_'+j,'menu'+i);
			tmp.moveIt(this.borderSize,this[i].y);
			tmp.chgCol(this.blockColor,'000000');
			this[i].item[j]= new this.makeObj('item'+i+'_'+j,'menu'+i);
			this[i].item[j].clipIt(0,this.menuWidth,this.menuHeight,0);
			this[i].item[j].moveIt(this.blockWidth+(this.borderSize*2),this[i].y);
			if(who.nn4)this[i].item[j].el.captureEvents(Event.MOUSEUP);
			if(j==0){
				if(who.nn4)	this[i].item[j].el.onmouseup= new Function(this[i].obj+'.chkClip();'+this.obj+'.goURL('+i+','+j+');'+this.obj+'.closeAll('+i+')');
				else {
					this[i].item[j].el.onclick= new Function(this[i].obj+'.chkClip();'+this.obj+'.goURL('+i+','+j+');'+this.obj+'.closeAll('+i+')');
					if(!this.link[i][j])this[i].item[j].sty.cursor= 'default';
				}
				this[i].item[j].chgCol(this.headerColor,this.headerFontColor);
				this[i].item[j].el.onmouseover= new Function(this[i].item[j].obj+'.chgCol("'+this.headerHilite+'","'+this.headerFontHilite+'");'+tmp.obj+'.chgCol("'+this.headerBlockHilite+'","000000")');
				this[i].item[j].el.onmouseout= new Function(this[i].item[j].obj+'.chgCol("'+this.headerColor+'","'+this.headerFontColor+'");'+tmp.obj+'.chgCol("'+this.blockColor+'","000000")');
			}
			else {
				if(who.nn4)this[i].item[j].el.onmouseup= new Function(this.obj+'.goURL('+i+','+j+')');
				else this[i].item[j].el.onclick= new Function(this.obj+'.goURL('+i+','+j+')');
				this[i].item[j].chgCol(this.itemColor,this.itemFontColor);
				this[i].item[j].el.onmouseover= new Function(this[i].item[j].obj+'.chgCol("'+this.itemHilite+'","'+this.itemFontHilite+'");'+tmp.obj+'.chgCol("'+this.blockHilite+'","000000")');
				this[i].item[j].el.onmouseout= new Function(this[i].item[j].obj+'.chgCol("'+this.itemColor+'","'+this.itemFontColor+'");'+tmp.obj+'.chgCol("'+this.blockColor+'","000000")');
			}
			this[i].y+= this.borderSize+this.menuHeight;
		}
		this[i].start= this.menuHeight+(this.borderSize*2);
		this[i].end= this[i].y;
		this[i].clipIt(0,this.totWidth,this[i].start,0);
		this[i].chgCol(this.borderColor,'000000');
		if(!this.centered){
			this[i].moveIt(this.left,this.top);
			this.left+= this.totWidth+this.between;
			this[i].sty.visibility='visible';
		}
	}
	if(this.centered)	this.centerIt();
	if(!who.nn4 && this.centered)onresize= new Function('setTimeout("'+this.obj+'.centerIt(1)",200)');
}
