//****************************************************************************/

pxbetweenmain=1 //How much space should there be between the main menus
pxbetweensub=1 //How much space should there be between the sub menus

mainstayfolded=false //Should the main menus stay folded?
substayfolded=false //Should the sub menus stay folded?  Play with these 2 variables.

//The bgColor of the bottom mouseover div
var bgColor='#C96501'
//The bgColor to change to
var bgColorChangeTo='maroon'
//****************************************************************************/
//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
}
//------------------------------------
bw=new checkBrowser()
//------------------------------------
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-4;
	this.x50=this.x2/2;
	this.y50=this.y2/2;
	this.x16=(this.x2*16)/100
	this.ifrY=this.y2-120
	this.ifr50=this.ifrY/2-150
	return this;
}
//------------------------------------
function resized(){
	page2=new makePageCoords()
	if(page2.x2!=page.x2 || page2.y2!=page.y2){
		location.reload() //If the width or height have changed we reload the page.
	}
}
//------------------------------------
	function makeObj(obj,nest,frm){
		nest=(!nest) ? '':'document.'+nest+'.'
	//			alert('0');									
    	if(!frm) {
	//			alert('1');									
			this.el=bw.dom ? document.getElementById(obj):bw.ie4 ? document.all[obj]:bw.ns4?eval(nest+'document.'+obj):0;
	//			alert('2');									
			this.css=bw.dom ? document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+'document.'+obj):0;
	//			alert('3');									
    			this.evnt=(bw.ns4 || bw.ns5)? eval(nest+'document.'+obj):eval(obj);						
 	//			alert('4');									
    			this.ref=(bw.ns4 || bw.ns5) ? eval(nest+'document.'+obj+'.document'):eval('document');		
		}else{
		
			this.el=bw.dom ? parent.frm_main.document.getElementById(obj):bw.ie4 ? parent.frm_main.document.all[obj]:bw.ns4?eval('parent.frm_main.document.'+obj):0;

			this.css=bw.dom ? parent.frm_main.document.getElementById(obj).style:bw.ie4?parent.frm_main.document.all[obj].style:bw.ns4?eval('parent.frm_main.document.'+obj):0;
		
//			this.css=(bw.ns4 || bw.ns5) ? eval('parent.frm_main.document.'+obj):eval('parent.frm_main.document.all.'+obj+'.style')		

    			this.evnt=(bw.ns4 || bw.ns5)? eval('parent.frm_main.document.'+obj):eval('parent.frm_main.document.all'+obj);						
    			this.ref=(bw.ns4 || bw.ns5) ? eval('parent.frm_main.document.'+obj+'.document'):eval('parent.frm_main.document');					
		}
		//				alert('5');										
	this.scrollHeight=(bw.ns4 || bw.ns5)?this.css.document.height:this.el.offsetHeight
		//				alert('6');										
	this.clipHeight=(bw.ns4 || bw.ns5)?this.css.clip.height:this.el.offsetHeight
		
		this.x=(bw.ns4 || bw.ns5)? this.css.left:this.css.pixelLeft;
		this.y=(bw.ns4 || bw.ns5)? this.css.top:this.css.pixelTop;	
		
		this.height=bw.ns4?this.ref.height:this.el.offsetHeight;		
		this.status=0;	


		this.writeIt=b_writeIt;
		this.zoomIt=b_zoomIt; 
		this.zoom=b_zoom;

		this.hideIt=b_hideIt;	
		this.showIt=b_showIt; 
		this.vis=b_vis	
									
		this.moveIt=b_moveIt; 
		this.moveBy=b_moveBy;
		
		this.bgChange=b_bgChange;
		
	/*	
		this.animateIt=b_animateIt;
		this.animate=b_animate;											
		this.slide=b_slide; 
		this.slideIt=b_slideIt		
    	this.slideBy=b_slideBy;
	*/						
		this.clipIt=b_clipIt; 
		this.clip=b_clip; 
		this.clipactive=false;
		this.clipTo=b_clipTo;
						
    	this.obj = obj + "Object"; 	
		eval(this.obj + "=this")						
		return this
	}

/*The functions for showing and hiding
######################################################################################*/
function b_showIt(){this.css.visibility="visible"; this.status=1}
function b_hideIt(){this.css.visibility="hidden"; this.status=0}
function b_vis(){if(this.css.visibility=="hidden" || this.css.visibility=="hide") return true;}

/*The funciton to change bgcolor on a element.
######################################################################################*/
function b_bgChange(color){
	if(bw.dom || bw.ie4) this.css.backgroundColor=color
	else this.css.bgColor=color	
}

/*The functions for straigth moving
######################################################################################*/
	function b_moveIt(x,y){
			this.x=x;
		    	this.css.left=this.x;
			this.y=y;
			this.css.top=this.y;
	}
	function b_moveBy(x,y){
		this.x=this.x+x; this.y=this.y+y
    	this.css.left=this.x
		this.css.top=this.y
	}
/*The write function, document.write for netscape and innerHTML for ie and the zoom text.
######################################################################################*/
function b_writeIt(text){
	if(bw.ns4){this.ref.write(text);this.ref.close()}
	else if(bw.ie4 || bw.ie5) this.evnt.innerHTML=text
	else if(bw.ns5) null; //ADD NS5 HERE.
}


function b_zoomIt(text,start,end,step,speed,cl,fn){
	if(!this.zoomactive){
		way=(end>start) ? '<=':'>='
		if(!fn)fn=null
		this.zoom(text,start,end,step,cl,way,speed,fn)			
	}
}
function b_zoom(text,size,end,step,cl,way,speed,fn){
	if(eval(size+way+end)){
		this.zoomactive=true
		this.writeIt('<span class='+cl+' style="font-size:'+size+'pt">'+text+'</span>')
		size+=step
		//alert(size)
	setTimeout(this.obj+".zoom('"+text+"',"+size+","+end+","+step+",'"+cl+"','"+way+"',"+speed+",'"+fn+"')",speed)
	}
	else{
		eval(fn)
		this.zoomactive=false
	}
}

//-------------------------------

//Calls the scrolling functions. Also checks whether the page is loaded or not.
/*######################################################################################*/
function scroll(speed){
	if(loaded){
		loop=true;
		//alert(index);
		if(speed>0) oScroll[index].down(speed)
		else oScroll[index].up(speed)
	}
}

//Stops the scrolling (called on mouseout)
function noScroll(){
	loop=false
	if(timer) clearTimeout(timer)
}
function changeScroll(n){
	for(i=0;i<oScroll.length;i++){	
	oScroll[i].css.visibility='hidden'
	}
	oScroll[n].css.visibility='visible'
	//if(oScroll[n].y<-oScroll[n].scrollHeight+oCont.clipHeight)
	if(oScroll[n].scrollHeight<=oCont.clipHeight)

	{oUp.css.visibility='hidden';
	oDown.css.visibility='hidden';}
	else
	{oUp.css.visibility='visible';
	oDown.css.visibility='visible';}
	index=n;
}

/*Clip part
######################################################################################*/
	function b_clipTo(t,r,b,l){
		if(bw.ns4 || bw.ns5)
	//	if(n)
	{
			this.css.clip.top=t
			this.css.clip.right=r
			this.css.clip.bottom=b
			this.css.clip.left=l
		}else{
this.css.clip="rect("+t+","+r+","+b+","+l+")";
		}
	}
	function b_clipIt(tstop,rstop,bstop,lstop,step,fn){
		if(!fn) fn=null
		var clipval=new Array()
	//	if(ie) 
		if(bw.dom || bw.ie4)
		{
			clipval=this.css.clip
			clipval=clipval.slice(5,clipval.length-1);
			clipval=clipval.split(' ')
			for(var i=0;i<4;i++){
			clipval[i]=parseInt(clipval[i])
			}
		}else{
			clipval[0]=this.css.clip.top
            clipval[1]=this.css.clip.right
            clipval[2]=this.css.clip.bottom
            clipval[3]=this.css.clip.left
		}
		totantstep=Math.max(Math.max(Math.abs((tstop-clipval[0])/step),Math.abs((rstop-clipval[1])/step)),
			Math.max(Math.abs((bstop-clipval[2])/step),Math.abs((lstop-clipval[3])/step)))
		if(!this.clipactive)
			this.clip(clipval[0],clipval[1],clipval[2],clipval[3],(tstop-clipval[0])/totantstep,
				(rstop-clipval[1])/totantstep,(bstop-clipval[2])/totantstep,
					(lstop-clipval[3])/totantstep,totantstep,0, fn)
	}
	function b_clip(tcurr,rcurr,bcurr,lcurr,tperstep,rperstep,bperstep,lperstep,totantstep,antstep, fn){
		tcurr=tcurr+tperstep; rcurr=rcurr+rperstep
		bcurr=bcurr+bperstep; lcurr=lcurr+lperstep
		this.clipTo(tcurr,rcurr,bcurr,lcurr)
		if(antstep<totantstep){
			this.clipactive=true
			antstep++
			setTimeout(this.obj+".clip("+tcurr+","+rcurr+","+bcurr+","+lcurr+","+tperstep+","
				+rperstep+","+bperstep+","+lperstep+","+totantstep+","+antstep+",'"+fn+"')",50)	
		}else{
			this.clipactive=false
			eval(fn)
		}
	}
	
/*--------------------------------*/
/************************************************************************************
Initiating the page and making the menu
************************************************************************************/
function foldInit(){
	//Creating the foldoutmenu
	oFold=new Array(); y=10
	for(i=0;i<mainmenus;i++){
		oFold[i]=new makeObj('divFold'+i,'divMenu1')
		oFold[i].moveIt(0,y);
		oFold[i].size=oFold[i].height;
//		alert("i="+i+" h="+oFold[i].height);
		y+=oFold[i].height+pxbetweenmain;
		oFold[i].sub=new Array();
		oFold[i].subs=top_subs;
		suby=oFold[i].height+pxbetweensub;
		oFold[i].subn=submenus[i];
		for(j=0;j<submenus[i];j++){

//			alert(i+"_"+j);

			oFold[i].sub[j]=new makeObj('divFoldSub'+i+'_'+j,'divMenu1.document.divFold'+i)
			oFold[i].sub[j].sub=new makeObj('divFoldSub'+i+'_'+j+'_0','divMenu1.document.divFold'+i+'.document.divFoldSub'+i+'_'+j)
			oFold[i].sub[j].hideIt(); oFold[i].sub[j].sub.hideIt()
			oFold[i].sub[j].moveIt(20,suby)
			suby+=oFold[i].sub[j].height+pxbetweensub
		}
	}
}
/************************************************************************************
Object function to the top of the menus.
************************************************************************************/
function top_subs(show,num){
	for(j=0;j<this.sub.length;j++){
		if(show){
			this.sub[j].showIt()
			if(substayfolded){if(this.sub[j].sub.status) this.sub[j].sub.showIt()
			}else{
				this.sub[j].sub.hideIt()
			}
		}else{
			this.sub[j].hideIt()
			if(!substayfolded) this.sub[j].sub.hideIt()
			else if(substayfolded) this.sub[j].sub.css.visibility="hidden"
		}
	}
}
/************************************************************************************
Checking height of the menus, and moves them to the correct position.
************************************************************************************/
function checkheight(org, oFold){
//	if(mainstayfolded) istart=org; else 
	istart=0;
	for(i=istart;i<oFold.length;i++){
		oFold[i].size=oFold[i].height
		for(j=0;j<oFold[i].sub.length;j++){
			oFold[i].sub[j].size=oFold[i].sub[j].height+1
			if(oFold[i].sub[j].status){
				oFold[i].size+=oFold[i].sub[j].size
				if(oFold[i].sub[j].sub.status){
					oFold[i].size+=oFold[i].sub[j].sub.height+1
					oFold[i].sub[j].size+=oFold[i].sub[j].sub.height+1
				}
			}
			if(j!=0) oFold[i].sub[j].moveIt(20,oFold[i].sub[j-1].y+oFold[i].sub[j-1].size)
		}
		if(i!=0) oFold[i].moveIt(0,oFold[i-1].y+oFold[i-1].size+1)
	}
}
/************************************************************************************
Fold in and out the submenus.
************************************************************************************/
function subfoldmenu(main,sub, showSub, oFold){
//	if(!substayfolded){
		oFold[main].bgChange('#C96501')
		for(i=0;i<oFold[main].sub.length;i++){
			if(i!=sub){
			oFold[main].sub[i].sub.hideIt();
			oFold[main].sub[i].bgChange('#C96501')
			}else {oFold[main].sub[i].bgChange('maroon')}
		}
//	}
	if(!oFold[main].sub[sub].sub.status && showSub==1){
		oFold[main].sub[sub].sub.showIt()
	}else{
		oFold[main].sub[sub].sub.hideIt()
	}
	checkheight(main, oFold);
}
/************************************************************************************
Fold in and out the mainmenus
************************************************************************************/
function foldmenu(num, oFold){
//	if(!mainstayfolded){
		for(i=0;i<oFold.length;i++){
			if(i!=num) {
				oFold[i].subs(0,i)
				oFold[i].bgChange('#C96501')
			}else {oFold[i].bgChange('maroon')}
		}
//	}
	if(oFold[num].subn >0){
		for(i=0;i<oFold[num].subn;i++){oFold[num].sub[i].bgChange('#C96501')}
/*
		if(!oFold[num].sub[0].status)oFold[num].subs(1,num)
		else oFold[num].subs(0,num)
*/
		oFold[num].subs(1,num)
	}
	checkheight(num, oFold);
}

/**************************************************/
function load(page) {
	current=page;
//	var url=page+'.htm';
//	alert(url);
	if (bw.ns4 || bw.ns5) document.textLayer.src = url;
	//else if (bw.dom || bw.ie4) document.textFrame.document.location = url;
	else if (bw.dom || bw.ie4) document.textFrame.document.location = page;

}

