/**********************************************************************************   
SlideMenu 
*   Copyright (C) 2001 <a href="/dhtmlcentral/thomas_brattli.asp">Thomas Brattli</a>
*   This script was released at DHTMLCentral.com
*   Visit for more great scripts!
*   This may be used and changed freely as long as this msg is intact!
*   We will also appreciate any links you could give us.
*
*   Made by <a href="/dhtmlcentral/thomas_brattli.asp">Thomas Brattli</a> 
*********************************************************************************/

function lib_bwcheck()
 { //Browsercheck (needed)
	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_bwcheck()
 //Opera didn't seem to like the padding in the layers, it messes up the background-images, so here's a version without it.
 if(bw.opera5) document.write("<style>DIV.clSlide{padding:0px; background-image:url(' ')}\nDIV.clSlideSub{padding:0px; background-image:url(' ')}\nDIV.clSlideSub2{padding:0px; background-image:url(' ')}</style>")

 /************************************************************************************
 Making cross-browser objects
 ************************************************************************************/
 function makeMenuObj(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;
	 this.bgSymbol=null;
	 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+"')";
   //  this.css.backgroundRepeat="no-repeat";
    }
   else
   	{
   //	 this.css.background.src=img;
  // 	 this.css.backgroundRepeat="no-repeat";
   	}
  }
 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 SlideMenuInit()
  {
   oSlideMenu=new makeMenuObj('divSlideCont');
	 oSlideMenu.moveIt(menux,menuy);
	 oSlide=new Array();
	 for(i=0;i<menus.length;i++)
	  {
		 oSlide[i]=new makeMenuObj('divSlide'+i,'divSlideCont');
		 oSlide[i].subs=menus[i].subs;
		 oSlide[i].sub=new Array();
		 oSlide[i].moveIt(0,mainheight*i);
		 oSlide[i].starty=oSlide[i].y;
     if(bw.opera)
      oSlide[i].css.paddingLeft="10px";
		 if(!menus[i].seperator)
		  {
		   oSlide[i].bgImg(level0_regular);
		   oSlide[i].bgSymbol=level0_regular;
		  }
		 for(j=0;j<oSlide[i].subs;j++)
		  {
			 oSlide[i].sub[j]=new makeMenuObj('divSlideSub'+i+"_"+j,'divSlideCont');
			 oSlide[i].sub[j].moveIt(10,oSlide[i].y+subheight*j+between);
			 oSlide[i].sub[j].starty=oSlide[i].sub[j].y;
			 oSlide[i][j]=new Array();
			 oSlide[i][j].subs=menus[i][j].subs;
			 oSlide[i][j].sub=new Array();
			 img=level1_round;
			 if(oSlide[i][j].subs!=0)
			  {
				 if(j!=oSlide[i].subs-1)
				  img=level1_sub;
				 else
				 	img=level1_sub_round;
				 oSlide[i].sub[j].css.color="#ffffff";
			  }
			 else
			 	{
				 if(j!=oSlide[i].subs-1)
				  img=level1_regular;
			  }
			 oSlide[i].sub[j].origimg=img;
			 oSlide[i].sub[j].bgImg(img);
			 oSlide[i].sub[j].bgSymbol=img;
			 for(a=0;a<oSlide[i][j].subs;a++)
			  {
				 oSlide[i][j].sub[a]=new makeMenuObj('divSlideSub'+i+"_"+j+"_"+a,'divSlideCont');
				 oSlide[i][j].sub[a].moveIt(20,oSlide[i].sub[j].y+subheight*a+between-2);
				 oSlide[i][j].sub[a].starty=oSlide[i][j].sub[a].y;
				 oSlide[i][j][a]=new Array();
				 oSlide[i][j][a].subs=menus[i][j][a].subs;
				 oSlide[i][j][a].sub=new Array();
				 if(a!=oSlide[i][j].subs-1)
				  img=level2_regular;
				 else
				 	img=level2_round;
				 oSlide[i][j].sub[a].origimg=img;
				 //oSlide[i][j].sub[a].bgImg(img);
				 oSlide[i][j].sub[a].bgSymbol=img;
			  }
		  }
	  }
	 oSlideMenu.showIt()
 }
/********************************************************************************
Variables
********************************************************************************/
 var active=-1;
 var going;
 var isthere;
 var sactive=-1;
 var sisthere=-1;
 var s2active=-1;
 var s2isthere=-1
/********************************************************************************
Switch menu function.
********************************************************************************/
 function swmenu(num,snum,s2num)
  {
	 if(snum!=-1)
	  {
		 if(oSlide[num][snum].subs==0)
		  return;
	  }
	 if(s2num!=-1)
	  {
		 if(oSlide[num][snum][s2num].subs==0)
		  return;
	  }
	 if((num!=active || snum!=sactive || s2num!=s2active) && !going)
	  {
	   going=true;
	   isthere=0;
	   sisthere=0;
	   moveUp(num,snum,s2num);
	  }
  }
/********************************************************************************
Moving the menus upward to their original position.
********************************************************************************/
 function moveUp(num,snum)
  {
	 if(snum==-1)
	  {
		 for(i=0;i<oSlide.length;i++)
		  {
			 if(oSlide[i].y>oSlide[i].starty+pxspeed && active!=i)
			  oSlide[i].moveBy(0,-pxspeed);
			 else
			 	{
			 	 if(active!=i)
			 	  oSlide[i].moveIt(oSlide[i].x,oSlide[i].starty);
			 	  isthere=i
			 	}
		  }
		 if(isthere<oSlide.length-1)
		  setTimeout("moveUp("+num+","+snum+")",timspeed);
		 else
		 	swmenu2(num,snum);
	  }
	 else
	 	{
		 if(num==oSlide.length-1)
		  isthere=num;	
		  if(sactive!=-1)
		   { //Is out!
			  //Slide subs
			  j=0
			  for(i=sactive+1;i<oSlide[num].sub.length;i++)
			   {
				  j++;
				  if(oSlide[num].sub[i].y>oSlide[num].sub[i].starty+pxspeed)
				   oSlide[num].sub[i].moveBy(0,-pxspeed);
				  else
				   {
				   	oSlide[num].sub[i].moveIt(oSlide[num].sub[i].x,oSlide[num].sub[i].starty);
				   	sisthere=i;
				   }
			   }
			  //Slide main
			  for(i=num+1;i<oSlide.length;i++)
			   {
			 	  if(oSlide[i].y>oSlide[i].starty + oSlide[num].sub[sactive].y +subheight*j )
				   oSlide[i].moveBy(0,-pxspeed);
				  else
				 	 {
				 	  oSlide[i].moveIt(oSlide[i].x,oSlide[i].starty + oSlide[num].sub[sactive].y +subheight*j );
				 	  isthere=i;
				 	 }
			   }
		   }
		  else
		   { //Slide to the one clicked
			  for(i=num+1;i<oSlide.length;i++)
			   {
				  if(oSlide[i].y>oSlide[i].starty + snum*between+between)
				   oSlide[i].moveBy(0,-pxspeed);
				  else
				   {
				   	oSlide[i].moveIt(oSlide[i].x,oSlide[i].starty + snum*between+between);
				   	isthere=i;
				   }
			   }
		   }
		  if(isthere<oSlide.length-1 || (sactive!=-1 && sisthere<oSlide[num].sub.length-1 && sactive!=oSlide[num].sub.length-1))
		   setTimeout("moveUp("+num+","+snum+")",timspeed);
		  else
		   swmenu2(num,snum);
	  }
  }
/********************************************************************************
Switch menu 2, stuff that happens before the menus are moved down again.
********************************************************************************/
 function swmenu2(num,snum)
  {
	 isthere=0;
	 sisthere=0;
	 if(active>-1 && snum==-1)
	  {
		 //Hiding submenus
		 for(j=0;j<oSlide[active].subs;j++)
		  {
		   oSlide[active].sub[j].hideIt();
		  }
		 oSlide[active].bgImg(level0_regular);
		 oSlide[active].bgSymbol=level0_regular;
		 oSlide[active].moveIt(0,oSlide[active].starty);
	  }
	 if(sactive>-1)
	  {
		 //Hiding submenus
		 for(j=0;j<oSlide[active][sactive].sub.length;j++)
		  {
		   oSlide[active][sactive].sub[j].hideIt();
		  }
		 oSlide[active].sub[sactive].bgImg(oSlide[active].sub[sactive].origimg);
		 oSlide[active].sub[sactive].bgSymbol=oSlide[active].sub[sactive].origimg;
		 oSlide[active].sub[sactive].moveIt(10,oSlide[active].sub[sactive].starty);
		 //Move back to place
		 for(i=sactive+1;i<oSlide[active].sub.length;i++)
		  {
			 oSlide[active].sub[i].moveIt(oSlide[active].sub[i].x,oSlide[active].sub[i].starty);
		  }
	  }
	 active=num;
	 //Showing submenus
	 if(snum>-1)
	  {
		 sactive=snum;
		 for(j=0;j<oSlide[num][snum].sub.length;j++)
		  {
		   oSlide[num][snum].sub[j].showIt();
		  }
		 oSlide[num].sub[snum].moveBy(10,3);
		 oSlide[num].sub[snum].bgImg(level1_round2);
		 oSlide[num].sub[snum].bgSymbol=level1_round2;
	  }
	 else
	  {
		 sactive=-1;
		 for(j=0;j<oSlide[active].subs;j++)
		  {
		   oSlide[active].sub[j].showIt();
		  }
		 oSlide[num].moveBy(10,3);
		 oSlide[num].bgImg(level0_round);
		 oSlide[num].bgSymbol=level0_round;
	  }
	 if(num!=oSlide.length-1)
	  moveDown(num,snum);
	 else
	  {
		 isthere=num;
		 moveDown(num,snum);
	  }
  }
/********************************************************************************
Moving the menus down
********************************************************************************/
 function moveDown(num,snum)
  {
	 //if(num==oSlide.length-1) isthere=num
	 for(i=num+1;i<oSlide.length;i++)
	  {
		 if(snum==-1)
		  {
			 if(oSlide[i].y<(oSlide[num].subs-1)*subheight+oSlide[i].starty+between-pxspeed)
			  oSlide[i].moveBy(0,pxspeed);
			 else
			 	{
			 	 oSlide[i].moveIt(oSlide[i].x,(oSlide[num].subs-1)*subheight+oSlide[i].starty+between);
			 	 isthere=i;
			 	}
		  }
		 else
		  {
			 if(oSlide[i].y<(oSlide[num].subs-1)*subheight+oSlide[i].starty+between-pxspeed + (oSlide[num][snum].subs-1)*subheight+between)
			  oSlide[i].moveBy(0,pxspeed);
			 else
			  {
			   oSlide[i].moveIt(oSlide[i].x,(oSlide[num].subs-1)*subheight+oSlide[i].starty+between  + (oSlide[num][snum].subs-1)*subheight+between);
			   isthere=i;
			  }
		  }
	  }
	 if(snum!=-1)
	  {
		 for(i=snum+1;i<oSlide[num].sub.length;i++)
		  {
			 if(oSlide[num].sub[i].y<(oSlide[num][snum].subs-1)*subheight+oSlide[num].sub[i].starty+between-pxspeed)
			  oSlide[num].sub[i].moveBy(0,pxspeed);
			 else
			 	{
			 	 oSlide[num].sub[i].moveIt(oSlide[num].sub[i].x,(oSlide[num][snum].subs-1)*subheight+oSlide[num].sub[i].starty+between);
			 	 sisthere=i;
			 	}
		  }
	  }
	 if(snum==-1)
	  {
		 if(isthere<oSlide.length-1)
		  setTimeout("moveDown("+num+","+snum+")",timspeed);
		 else
		 	going=false;
	  }
	 else
	 	{
		 if(isthere<oSlide.length-1 || (sisthere<oSlide[num].sub.length-1 && snum!=oSlide[num].sub.length-1))
		  setTimeout("moveDown("+num+","+snum+")",timspeed);
		 else
		 	going=false;
	  }
  }
 var test=0
/********************************************************************************
Functions to write out the layers...
********************************************************************************/
 menus=new Array();
 var a=0;
 var b=0;
 var c=0;
 var d=0;
 function makeMenu(type,text,lnk,target,end)
  {
	 str="";
	 tg="";
   if(target)
   tg='target="'+target+'"';
   if(!lnk)
    lnk="#";
//   self.status=lnk;
	 if(a==0)
	  str='<div id="divSlideCont">\n';
	 if(type=="top")
	  {
		 menus[a]=new Array();
		 if(text=="seperator")
		  {
			 str+='\t<div id="divSlide'+a+'" class="clSlide"></div>\n';
			 menus[a].seperator=1;
		  }
		 else
		 	{
       str+='\t<div id="divSlide'+a+'" class="clSlide"><a href="'+lnk+'" '+tg+' onclick="swmenu('+a+',-1,-1); cl=\'clSlideLinks\'; setTimeout(\'changeClasse('+a+',cl,-1)\',100); if(bw.ie || bw.ns6) this.blur(); ';
       if(lnk=="#")
        str+='return false';
       str+='" class="clSlideLinks" id="adivSlide'+a+'">'+text+'</a><br></div>\n';
		  }
     menus[a].subs=0;
     a++;
     b=0;
	  }
	 else
	  if(type=="sub")
	   {
		  str+='\t\t<div id="divSlideSub'+(a-1)+'_'+(b)+'" class="clSlideSub"><a '+tg+' onclick="swmenu('+(a-1)+','+b+',-1); cl=\'clSlideSubLinks\'; setTimeout(\'changeClasse('+(a-1)+',cl,'+b+')\',100); if(bw.ie || bw.ns6) this.blur(); ';
      if(lnk=="#")
       str+='return false';
      str+='" href="'+lnk+'" class="clSlideSubLinks" id="divSlideSub'+(a-1)+'_'+(b)+'_a">'+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="divSlideSub'+(a-1)+'_'+(b-1)+'_'+c+'" class="clSlideSub2"><a '+tg+' href="'+lnk+'" class="clSlideSub2Links" id="divSlideSub'+(a-1)+'_'+(b-1)+'_'+c+'_a">'+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);
	 //alert(str);
  }
 function preLoadBackgrounds()
  {
   for(i=0;i<arguments.length;i++)
    {
     this[i]=new Image();
     this[i].src=arguments[i];
    }
   return this;
  }
 function changeStartingBlock(num1,num2)
  {
   swmenu(num1,-1,-1);
   setTimeout("swmenu("+num1+","+num2+",-1)",timspeed);
  }
function changeToClasses(a, b)
 {
  for(i=0;i<oSlide.length;i++)
   {
    getImg=oSlide[i].bgSymbol;
    if(checkImg(getImg)==1)
     {
      ident=document.getElementById('adivSlide'+i);
      ident.className=ident.className+'_m';
     }
    else
     if(checkImg(getImg)==2)
      {
       ident=document.getElementById('adivSlide'+i);
       ident.className=ident.className;
      }
    for(j=0;j<oSlide[i].subs;j++)
     {
      ident=document.getElementById('divSlideSub'+i+'_'+j+'_a');
      ident.className=ident.className;
     }
   }
  ident=document.getElementById('divSlideSub'+a+'_'+b+'_a');
  ident.className=ident.className+"_m";
  return false;
 }
function changeClasse(a,cName,b)
  {
   if(a>=0 && b>=0)
    {
     ident=document.getElementById('divSlideSub'+a+'_'+b+'_a');
     ident.className=cName+'_m';
     for(i=0;i<oSlide[a].subs;i++)
      {
       if(i!=b)
        {
         ident2=document.getElementById('divSlideSub'+a+'_'+i+'_a');
         ident2.className=cName;
        }
      }
    }
   else
    if(a>=0)
     {
      getImg=oSlide[a].bgSymbol;
      if(checkImg(getImg)==1)
       {
        ident=document.getElementById('adivSlide'+a);
        ident.className=cName+'_m';
       }
      else
       if(checkImg(getImg)==2)
        {
         ident=document.getElementById('adivSlide'+a);
         ident.className=cName;
        }
      for(i=0;i<oSlide.length;i++)
       {
        if(i!=a)
         {
          ident2=document.getElementById('adivSlide'+i);
          ident2.className=cName;
         }
       }
      for(i=0;i<oSlide[a].subs;i++)
       {
       	ident3=document.getElementById('divSlideSub'+a+'_'+i+'_a');
        ident3.className='clSlideSubLinks';
       }
     }
  }
 function checkImg(bg)
 {
  if(bg=='img/minus.gif')
   return 1;
  else
   if(bg=='img/plus.gif')
    return 2;
   else
    return 0;
 }