/**************************************************************************************   
SchuifMenu 
*   Copyright (C) 2001-2002 <a href="http://www.internetics.be/">INTERNETics</a>
*   Made by <a href="www.internetics.be/">EAN-9782940320080</a> 
***************************************************************************************/

function lib_bwcontrol(){ //Browsercheck (a must)
	this.ver=navigator.appVersion
	this.agent=navigator.userAgent
	this.dom=document.getElementById?1:0
	this.opera5=this.agent.indexOf("Opera 5")>-1
	this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0; 
	this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;
	this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
	this.ie=this.ie4||this.ie5||this.ie6
	this.mac=this.agent.indexOf("Mac")>-1
	this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0; 
	this.ns4=(document.layers && !this.dom)?1:0;
	this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5)
	return this
}
var bw=new lib_bwcontrol()


//Opera no padding in the layers of background-images, without bg-images.
if(bw.opera5) document.write("<style>DIV.clSchuif{padding:0px; background-image:url(' ')}\nDIV.clSchuifSub{padding:0px; background-image:url(' ')}\nDIV.clSchuifSub2{padding:0px; background-image:url(' ')}</style>")

/************************************************************************************
Making cross-browser objects
************************************************************************************/
function mnusMenuObj(obj,nest){
	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.el=bw.dom?document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+'document.'+obj):0;	
	this.ref=bw.dom || bw.ie4? document:bw.ns4?eval(nest+"document.layers." +obj+".document"):0;		
	this.x=(bw.ns4 || bw.ns5)? this.css.left:this.css.offsetLeft;
	this.y=(bw.ns4 || bw.ns5)? this.css.top:this.css.offsetTop;		
	this.hideIt=b_hideIt; this.showIt=b_showIt; this.movey=b_movey
	this.moveIt=b_moveIt; this.moveBy=b_moveBy; this.status=0; 
	this.bgImg=b_bgImg;	this.obj = obj + "Object"; eval(this.obj + "=this"); 
	this.clipTo=b_clipTo;
	return this
}
function b_showIt(){this.css.visibility="visible"; this.status=1}
function b_hideIt(){this.css.visibility="hidden"; this.status=0}
function b_movey(y){this.y=y; this.css.top=this.y}	
function b_moveIt(x,y){this.x=x; this.y=y; this.css.left=this.x;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}
function b_bgImg(img){if(bw.ie||bw.dom)this.css.backgroundImage="url('"+img+"')"
else this.css.background.src=img
}
function b_clipTo(t,r,b,l,w){if(bw.ns4){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+")"; if(w){this.css.width=r; this.css.height=b}}}
/********************************************************************************
Initiating page, making objects..
********************************************************************************/
function SchuifMenuInit(){
	oSchuifMenu=new mnusMenuObj('divSchuifCont')
	oSchuifMenu.moveIt(menux,menuy)
	oSchuif=new Array()
	for(i=0;i<menus.length;i++){
		oSchuif[i]=new mnusMenuObj('divSchuif'+i,'divSchuifCont')
		oSchuif[i].subs=menus[i].subs
		oSchuif[i].sub=new Array()
		oSchuif[i].moveIt(0,hoogteMain*i)
		oSchuif[i].starty=oSchuif[i].y
    if(bw.opera) oSchuif[i].css.paddingLeft="10px"
		if(!menus[i].seperator) oSchuif[i].bgImg(een_0)
		for(j=0;j<oSchuif[i].subs;j++){
			oSchuif[i].sub[j]=new mnusMenuObj('divSchuifSub'+i+"_"+j,'divSchuifCont')
			oSchuif[i].sub[j].moveIt(10,oSchuif[i].y+hoogteSub*j+TussenR)
			oSchuif[i].sub[j].starty=oSchuif[i].sub[j].y
			oSchuif[i][j]=new Array()
			oSchuif[i][j].subs=menus[i][j].subs
			oSchuif[i][j].sub=new Array()
			img=sub_een1_afsl
			if(oSchuif[i][j].subs!=0){
				if(j!=oSchuif[i].subs-1) img=sub_een1_s
				else img=sub_een1_nd
				oSchuif[i].sub[j].css.color="#FF0033"
			}else{
				if(j!=oSchuif[i].subs-1)img=sub_een1
			}
			oSchuif[i].sub[j].origimg=img
			oSchuif[i].sub[j].bgImg(img)
			for(a=0;a<oSchuif[i][j].subs;a++){
				oSchuif[i][j].sub[a]=new mnusMenuObj('divSchuifSub'+i+"_"+j+"_"+a,'divSchuifCont')
				oSchuif[i][j].sub[a].moveIt(20,oSchuif[i].sub[j].y+hoogteSub*a+TussenR-2)
				oSchuif[i][j].sub[a].starty=oSchuif[i][j].sub[a].y			
				oSchuif[i][j][a]=new Array()
				oSchuif[i][j][a].subs=menus[i][j][a].subs
				oSchuif[i][j][a].sub=new Array()
				if(a!=oSchuif[i][j].subs-1) img=sub_twee1
				else img=sub_twee2_afsl
				oSchuif[i][j].sub[a].origimg=img
				oSchuif[i][j].sub[a].bgImg(img)
			}
		}
	}
	oSchuifMenu.showIt()
}
/********************************************************************************
Variables
********************************************************************************/
var active=-1;var going;var istdaar; var sactive=-1; var sistdaar=-1; var s2active=-1; var s2istdaar=-1
/********************************************************************************
Switch menu function.
********************************************************************************/
function swmenu(num,snum,s2num){
	if(snum!=-1){
		if(oSchuif[num][snum].subs==0) return
	}
	if(s2num!=-1){
		if(oSchuif[num][snum][s2num].subs==0) return
	}
	if((num!=active || snum!=sactive || s2num!=s2active) && !going){going=true;istdaar=0;sistdaar=0;Omhoog(num,snum,s2num)}
}
/********************************************************************************
Schuiven van menus omhoog naar postie.
********************************************************************************/
function Omhoog(num,snum){
	if(snum==-1){
		for(i=0;i<oSchuif.length;i++){
			if(oSchuif[i].y>oSchuif[i].starty+pxlspeed && active!=i) oSchuif[i].moveBy(0,-pxlspeed)
			else{if(active!=i) oSchuif[i].moveIt(oSchuif[i].x,oSchuif[i].starty); istdaar=i}
		}
		
		if(istdaar<oSchuif.length-1) setTimeout("Omhoog("+num+","+snum+")",timrspeed)
		else swmenu2(num,snum)
	}else{
		if(num==oSchuif.length-1) istdaar=num
	
		if(sactive!=-1){ //Is out!
			//Schuif subs
			j=0
			for(i=sactive+1;i<oSchuif[num].sub.length;i++){
				j++
				if(oSchuif[num].sub[i].y>oSchuif[num].sub[i].starty+pxlspeed) oSchuif[num].sub[i].moveBy(0,-pxlspeed)
				else{oSchuif[num].sub[i].moveIt(oSchuif[num].sub[i].x,oSchuif[num].sub[i].starty); sistdaar=i}
			}
			//Schuif main
			for(i=num+1;i<oSchuif.length;i++){
				if(oSchuif[i].y>oSchuif[i].starty + oSchuif[num].sub[sactive].y +hoogteSub*j )  oSchuif[i].moveBy(0,-pxlspeed)
				else{oSchuif[i].moveIt(oSchuif[i].x,oSchuif[i].starty + oSchuif[num].sub[sactive].y +hoogteSub*j ); istdaar=i}
			}
		}else{ //Schuif to the one hovered
			for(i=num+1;i<oSchuif.length;i++){
				if(oSchuif[i].y>oSchuif[i].starty + snum*TussenR+TussenR)  oSchuif[i].moveBy(0,-pxlspeed)
				else{oSchuif[i].moveIt(oSchuif[i].x,oSchuif[i].starty + snum*TussenR+TussenR); istdaar=i}
			}
		}
		if(istdaar<oSchuif.length-1 || (sactive!=-1 && sistdaar<oSchuif[num].sub.length-1 && sactive!=oSchuif[num].sub.length-1)) setTimeout("Omhoog("+num+","+snum+")",timrspeed)
		else swmenu2(num,snum)
	}
}
/********************************************************************************
Wissel menu 2, voordat menus weer naar onder gaan.
********************************************************************************/
function swmenu2(num,snum){
	istdaar=0;
	sistdaar=0;
	if(active>-1 && snum==-1){
		//Hiding submenus
		for(j=0;j<oSchuif[active].subs;j++){oSchuif[active].sub[j].hideIt()}
		oSchuif[active].bgImg(een_0)
		oSchuif[active].moveIt(0,oSchuif[active].starty)
	}
	if(sactive>-1){
		//Hiding submenus
		for(j=0;j<oSchuif[active][sactive].sub.length;j++){oSchuif[active][sactive].sub[j].hideIt()}
		oSchuif[active].sub[sactive].bgImg(oSchuif[active].sub[sactive].origimg)
		oSchuif[active].sub[sactive].moveIt(10,oSchuif[active].sub[sactive].starty)
		//Move back to place
		for(i=sactive+1;i<oSchuif[active].sub.length;i++){
			oSchuif[active].sub[i].moveIt(oSchuif[active].sub[i].x,oSchuif[active].sub[i].starty)
		}
	}
	active=num
	//Showing submenus
	if(snum>-1){
		sactive=snum
		for(j=0;j<oSchuif[num][snum].sub.length;j++){oSchuif[num][snum].sub[j].showIt()}
		oSchuif[num].sub[snum].moveBy(10,3)
		oSchuif[num].sub[snum].bgImg(sub_een1_afsl2)
	}else{
		sactive=-1
		for(j=0;j<oSchuif[active].subs;j++){oSchuif[active].sub[j].showIt()}
		oSchuif[num].moveBy(10,3)
		oSchuif[num].bgImg(een_0_onder)
	}
	if(num!=oSchuif.length-1) moveDown(num,snum)
	else{
		istdaar=num
		moveDown(num,snum)
	}
}
/********************************************************************************
Verplaatsing naar onder menus
********************************************************************************/
function moveDown(num,snum){
	//if(num==oSchuif.length-1) istdaar=num
	for(i=num+1;i<oSchuif.length;i++){
		if(snum==-1){
			if(oSchuif[i].y<(oSchuif[num].subs-1)*hoogteSub+oSchuif[i].starty+TussenR-pxlspeed) oSchuif[i].moveBy(0,pxlspeed)
			else{oSchuif[i].moveIt(oSchuif[i].x,(oSchuif[num].subs-1)*hoogteSub+oSchuif[i].starty+TussenR); istdaar=i}
		}else{
			if(oSchuif[i].y<(oSchuif[num].subs-1)*hoogteSub+oSchuif[i].starty+TussenR-pxlspeed + (oSchuif[num][snum].subs-1)*hoogteSub+TussenR)  oSchuif[i].moveBy(0,pxlspeed)
			else{oSchuif[i].moveIt(oSchuif[i].x,(oSchuif[num].subs-1)*hoogteSub+oSchuif[i].starty+TussenR  + (oSchuif[num][snum].subs-1)*hoogteSub+TussenR); istdaar=i}
		}
	}
	if(snum!=-1){
		for(i=snum+1;i<oSchuif[num].sub.length;i++){		
			if(oSchuif[num].sub[i].y<(oSchuif[num][snum].subs-1)*hoogteSub+oSchuif[num].sub[i].starty+TussenR-pxlspeed) oSchuif[num].sub[i].moveBy(0,pxlspeed)
			else{oSchuif[num].sub[i].moveIt(oSchuif[num].sub[i].x,(oSchuif[num][snum].subs-1)*hoogteSub+oSchuif[num].sub[i].starty+TussenR); sistdaar=i}
		}
	}
	if(snum==-1){
		if(istdaar<oSchuif.length-1) setTimeout("moveDown("+num+","+snum+")",timrspeed)
		else going=false
	}else{
		if(istdaar<oSchuif.length-1 || (sistdaar<oSchuif[num].sub.length-1 && snum!=oSchuif[num].sub.length-1)) setTimeout("moveDown("+num+","+snum+")",timrspeed)
		else going=false
	}
}
var test=0
/********************************************************************************
Functions layers.
********************************************************************************/
menus=new Array(); var a=0; var b=0; var c=0; var d=0
function mnusMenu(type,text,lnk,title,target,end){
	str="";  tl="";tg="";
  if(title)  tl='title="'+title+'"'
  if(target) tg='target="'+target+'"'
  if(!lnk) lnk="#"
  self.status=lnk
	if(a==0) str='<div id="divSchuifCont">\n'
	if(type=="top"){
		menus[a]=new Array();
		if(text=="seperator"){
			str+='\t<div id="divSchuif'+a+'" class="clSchuif"></div>\n'
			menus[a].seperator=1
		}else{
      str+='\t<div id="divSchuif'+a+'" class="clSchuif"><a href="'+lnk+'" '+tl+''+tg+' onclick="swmenu('+a+',-1,-1); if(bw.ie || bw.ns6) this.blur(); '
      if(lnk=="#") str+='return false'
      str+='" class="clSchuifLinks"> '+text+'</a><br></div>\n'
		}
    menus[a].subs=0; a++; b=0
	}else if(type=="sub"){
		str+='\t\t<div id="divSchuifSub'+(a-1)+'_'+(b)+'" class="clSchuifSub"><a '+tl+''+tg+' onClick="swmenu('+(a-1)+','+b+',-1); if(bw.ie || bw.ns6) this.blur(); '
    if(lnk=="#") str+='return false'
    str+='" href="'+lnk+'" class="clSchuifSubLinks">  '+text+'</a><br></div>\n'
		b++; menus[a-1].subs=b; menus[a-1][b-1]=new Array(); c=0; menus[a-1][b-1].subs=0
	}else if(type=="sub2"){
		str+='\t\t<div id="divSchuifSub'+(a-1)+'_'+(b-1)+'_'+c+'" class="clSchuifSub2"><a '+tl+''+tg+' href="'+lnk+'" class="clSchuifSub2Links">  '+text+'</a><br></div>\n'
		c++; menus[a-1][b-1].subs=c; menus[a-1][b-1][c-1]=new Array(); d=0; menus[a-1][b-1][c-1].subs=0
	}
	if(end) str+="</div>"
	document.write(str)
}
function preLoadBackgrounds(){
  for(i=0;i<arguments.length;i++){
    this[i]=new Image()
    this[i].src=arguments[i]
  }
  return this
}


