var stepSize;
var TheSize;
var DownSize;

/******************************************************************************
**
**                 DONETREENAVI
**F
**  file:             donetreenavi.js
**
**  created:          5.9.2001
**  created by:       Pertti Mäki-Välkkilä
**
**  modified:         13.9.2001
**  modified by:      Pertti Mäki-Välkkilä
**
**  ©Copyright Done Information Oy. All rights reserved.
**
**  Any use or modification without written permission is illegal.
**
**  http://www.donesolutions.com
**
**  pertti.maki-valkkila@donesolutions.com
**
**  Tested to work OK with:
**    PC:
**      Netscape Communicator 4.7x
**      Netscape Stand Alone 4.x
**      Internet Explorer 4.x
**    MAC:
**      Netscape Communicator 4.7x
**      Internet Explorer 4.x
**
******************************************************************************/

/*****************************************************************************/
function menuItem(ar1,ar2,ar3,ar4,ar5){
/*
**  Valikon yhden kohdan olio.
******************************************************************************/
	this.title=unescape(ar1);
	this.url=ar2;
	if(ar3)
	  this.target=ar3;
	else
	  this.target=linkTarget;
	this.hasSub=ar4;
	this.id=ar5;
	this.isOpen=false;
  temp=ar5.split(".");
	this.level=temp.length;
	if(ar4)
	  this.sub=new Array();
}

/*****************************************************************************/
function setItem(title,url,target,hasSub,docId) {
/*
**  Funktiolla lisätään uusi kohta valikko hierarkiaan.
**
**  title  = uuden kohdan linkin teksti
**  url    = uuden kohdan linkki
**  hasSub = onko uudella kohdalla alivalikko
**  docId  = uuden kohdan DocId
******************************************************************************/
	
	// Hajotetaan DocId osiin
	temp2=docId.split(".");

  if(menu.length<1) {
	  stepSize=temp2.length-1;
	}
	// Hajotetaan DocId osiin
	newDocId=temp2[stepSize];
	
	for(i=stepSize+1;i<temp2.length;i++) {
	  newDocId=newDocId+"."+temp2[i];
	}
	
	// Hajotetaan DocId osiin
	temp=newDocId.split(".");
	
	// Tutkitaan montako alitasoa maksimissaa tulee olemaan
	if(maxLevels<(temp.length-1))
	  maxLevels=temp.length-1;
	
	// Aloitetaan uuden valikkokohdan hierarkian etsintä
	aName="menu["+temp[0]+"]";
	
	// Mennään taulukkohierarkiassa tarpeeksi alaspäin
	for(i=1;i<temp.length;i++) {
	  aName=aName+".sub["+temp[i]+"]";

	}

	

	// Jos kohtaa ei vielä ole olemassa luodaan se
	if(!eval(aName)) {
	  eval(aName+"= new menuItem(\""+escape(title)+"\",\""+url+"\",\""+target+"\","+hasSub+",\""+newDocId+"\");");
	}
}

/*****************************************************************************/
function collapseAll() {
/*
**  Funktiolla suljetaan kaikki puuhakemiston kohdat
**
******************************************************************************/
	if(ns) {
    var etuliite=window.top.links.document.yleisettxt.document;
    var varetu=window.top.links.document.yleisettxt;
	}
	if(ie || ns6) {
    var etuliite=window.top.links.document;
    var varetu=window.top.links;
	}

  var i;

	// Käydään läpi päätason kaikki kohdat
  for(i=0;i<varetu.menu.length;i++) {
	
	  // Jos kohta on olemassa suoritetaan seuraavat toiminnot
	  if(varetu.menu[i]) {
		  
			// Asetetaan solmu suljetuksi
		  varetu.menu[i].isOpen=false;
			
			// Jos päätason kohdalla on alimenu, käydään se läpi
			if(varetu.menu[i].hasSub) {
			  setNodeState(varetu.menu[i].sub,false);
			}
		}
	}
	
	// Piirretään kaikki tasot uudelleen
	rePrintAll();
}

/*****************************************************************************/
function expandAll() {
/*
**  Funktiolla avataan kaikki puuhakemiston kohdat
**
******************************************************************************/
	if(ns) {
    var etuliite=window.top.links.document.yleisettxt.document;
    var varetu=window.top.links.document.yleisettxt;
	}
	if(ie||ns6) {
    var etuliite=window.top.links.document;
    var varetu=window.top.links;
	}

  var i;

	// Käydään läpi päätason kaikki kohdat
  for(i=0;i<varetu.menu.length;i++) {

	  // Jos kohta on olemassa suoritetaan seuraavat toiminnot
	  if(varetu.menu[i]) {

			// Asetetaan solmu avatuksi
		  varetu.menu[i].isOpen=true;

			// Jos päätason kohdalla on alimenu, käydään se läpi
			if(varetu.menu[i].hasSub) {
			  setNodeState(varetu.menu[i].sub,true);
			}
		}
	}
	
	// Piirretään kaikki tasot uudelleen
	rePrintAll();
}

/*****************************************************************************/
function setNodeState(curItem,state) {
/*
**  Funktiolla asetetaan haluttu alikohtajoukko haluttuun tilaan
**
**  curItem = käsiteltävä alikohtataulukko
**  state   = tila johon alikohdat halutaan asettaa (true/false)
******************************************************************************/

  var i;
	
	// Käydään läpi alikohtajoukko läpi
  for(i=0;i<curItem.length;i++) {
	
	  // Jos löytyy olemassa oleva alikohta
	  if(curItem[i]) {
		
		  // Asetetaan alikohta haluttuun tilaan
		  curItem[i].isOpen=state;
			
			// Jos kyseisellä alikohdalla on lisää alikohtia, asetetaan myös ne
			// samaan tilaan.
			if(curItem[i].hasSub) {
			  setNodeState(curItem[i].sub,state);
			}
		}
	}
}

/*****************************************************************************/
function rePrintAll() {
/*
**  Funktiolla tulostetaan kaikki päätasot uudelleen
**
******************************************************************************/
	if(ns) {
    var etuliite=window.top.links.document.yleisettxt.document;
    var varetu=window.top.links.document.yleisettxt;
	}
	if(ie||ns6) {
    var etuliite=window.top.links.document;
    var varetu=window.top.links;
	}

  // Käydään läpi kaikki päätasot
  for(i=0;i<varetu.menu.length;i++) {
	
	  // Jos alikohta on olemassa
	  if(varetu.menu[i]) {
		
  	  // Alustetaan taulukko jolla määritellään linkin eteen piirrettävät kuvat
    	pics=new Array;

  	  // Jos piirrettävä päätaso on koko päätasoista viimeinen asetetaan eka 
    	// kuva siitä alaspäin piirrettäväksi tyhjäksi. Muuten ekana kuvana on
    	// suora katkoviiva. 
	    if(i==(varetu.menu.length-1))
  	    pics[1]=0;
	    else
   	    pics[1]=1;

    	// Alustetaan piirrettävän päätason sisällön muuttuja
      rePaintLayer="";

	    // Aloitetaan rekursiivinen päätason sisällön rakentaminen
    	printLevel(varetu.menu[i],varetu.currentID, 0);

	    // Piirretään haluttu päätaso paikoilleen Netscapessa
  	  if(ns) {
		    etuliite ["main"+varetu.menu[i].id].document.write(rePaintLayer);
  	  	etuliite ["main"+varetu.menu[i].id].document.close();
    	}

	    // Piirretään haluttu päätaso paikoilleen IE:ssä
    	if(ie) {
	     	document.all ["main"+menu[i].id].innerHTML=rePaintLayer;
  	  }
	
  	  // Piirretään haluttu päätaso paikoilleen IE:ssä
    	if(ns6) {
	    	document.getElementById("main"+menu[i].id).innerHTML=rePaintLayer;
    	}
	
  	}
	}
  // Siirretään päätason alekkain
  if(mac && ie) {
    koe=setTimeout("placeTopMenu();",500);
 	} else {
    placeTopMenu();
  }
}

/*****************************************************************************/
function openOnLoad(lName, doOpenPage, doFocus) {
/*
**  Funktiolla avataan hakemistopuu halutusta kohdasta kun sivu ladataan
**  ensimmäisen kerran.
**
**  lName  = avattavan kohdan id-numero
******************************************************************************/
	if(ns) {
    var etuliite=window.top.links.document.yleisettxt.document;
    var varetu=window.top.links.document.yleisettxt;
	}
	if(ie||ns6) {
    var etuliite=window.top.links.document;
    var varetu=window.top.links;
	}

	// Hajotetaan DocId osiin
  temp=lName.split(".");

	// Aloitetaan uuden päätasokohdan hierarkian etsintä
	aName="varetu.menu["+temp[0]+"]";
	
	// Asetetaan puu avatuksi päätasolta
	eval(aName+".isOpen=true");
	
	// Mennään taulukkohierarkiassa tarpeeksi alaspäin
	for(i=1;i<temp.length;i++) {
	  aName=aName+".sub["+temp[i]+"]";
		
		// Asetetaan kyseinen solmu avatuksi
	  eval(aName+".isOpen=true");
	}
	
	// Haetaan kahva haluttuun solmuun 
	chLevel=eval(aName);
	
	// Haetaan kahva valittuun päätasoon
	topM=eval("menu["+temp[0]+"]");	

	// Alustetaan taulukko jolla määritellään linkin eteen piirrettävät kuvat
	pics=new Array;

  // Jos piirrettävä päätaso on koko päätasoista viimeinen asetetaan eka 
	// kuva siitä alaspäin piirrettäväksi tyhjäksi. Muuten ekana kuvana on
	// suora katkoviiva. 
	if(temp[0]==(varetu.menu.length-1))
	 pics[1]=0;
	else
	 pics[1]=1;

  // Alustetaan piirrettävän päätason sisällön muuttuja
  rePaintLayer="";
	
	varetu.currentID=lName;
  // Aloitetaan rekursiivinen päätason sisällön rakentaminen
	printLevel(topM,varetu.currentID,1);

 	// Piirretään haluttu päätaso paikoilleen Netscapessa
	if(ns) {
		etuliite ["main"+topM.id].document.write(rePaintLayer);
		etuliite ["main"+topM.id].document.close();
	}

  // Piirretään haluttu päätaso paikoilleen IE:ssä
	if(ie) {
		document.all ["main"+topM.id].innerHTML=rePaintLayer;
	}

  // Piirretään haluttu päätaso paikoilleen NS6:ssä
	if(ns6) {
		document.getElementById("main"+topM.id).innerHTML=rePaintLayer;
	}

	// Siirretään päätason alekkain
	if(mac && ie) {
	  koe=setTimeout("placeTopMenu();",5000);
	} else {
	  placeTopMenu();
	}

	// Haetaan solmun sisältö target-frameen
	if(typeof(doOpenPage) != "undefined" && doOpenPage) eval("top."+chLevel.target+".location='"+chLevel.url+"';");
	
	if(typeof(doFocus) != "undefined" && doFocus) {
		var ela = document.getElementById("anchor" + lName);
		if(ela != null) {
			ela.focus();
		}
	}
	// Asetetaan uudeksi aktiiviseksi päätasoksi nyt valittu päätaso
	varetu.currentActive=temp[0];
}

/*****************************************************************************/
function openSub(lName, flag) {
/*
**  Funktiolla avataan tai suljetaan hakemistopuu halutusta kohdasta.
**
**  lName  = avattavan tai suljettavan kohdan id-numero
******************************************************************************/
	if(ns) {
    var etuliite=window.top.links.document.yleisettxt.document;
    var varetu=window.top.links.document.yleisettxt;
	}
	if(ie||ns6) {
    var etuliite=window.top.links.document;
    var varetu=window.top.links;
	}

	// Hajotetaan DocId osiin
  temp=lName.split(".");

	// Jos uusi avattava tai suljettava kohta on muussa päätasossa kuin sillä
	// hetkellä aktiivisena olevapäätaso ja aktiivisella kohdalla on eri style
	// kuin ei aktiivisella kohdalla, piirretään passivoituva päätaso uudelleen.  
	if(varetu.currentActive && (temp[0]!=varetu.currentActive && varetu.activeStyle && varetu.linkActive && flag) ) {
	
	  // Passivoitava päätaso
		topM=eval("varetu.menu["+varetu.currentActive+"]");	

		// Alustetaan taulukko jolla määritellään linkin eteen piirrettävät kuvat
		pics=new Array;
		
		// Jos piirrettävä päätaso on koko päätasoista viimeinen asetetaan eka 
		// kuva siitä alaspäin piirrettäväksi tyhjäksi. Muuten ekana kuvana on
		// suora katkoviiva. 
		if(varetu.currentActive==(varetu.menu.length-1))
		  pics[1]=0;
	  else
	    pics[1]=1;

		// Alustetaan piirrettävän päätason sisällön muuttuja
    rePaintLayer="";
		
  	newFlag = (varetu.linkActive && flag);

		// Aloitetaan rekursiivinen päätason sisällön rakentaminen
	  printLevel(topM,lName,newFlag);
		
		// Piirretään haluttu päätaso paikoilleen Netscapessa
	  if(ns) {
		  etuliite ["main"+topM.id].document.write(rePaintLayer);
		  etuliite ["main"+topM.id].document.close();
	  }

		// Piirretään haluttu päätaso paikoilleen IE:ssä
	  if(ie) {
	  	document.all ["main"+topM.id].innerHTML=rePaintLayer;
	  }

		// Piirretään haluttu päätaso paikoilleen NS6:ssä
	  if(ns6) {
	  	document.getElementById("main"+topM.id).innerHTML=rePaintLayer;
	  }
		
	}
	
	// Aloitetaan uuden päätasokohdan hierarkian etsintä
	aName="varetu.menu["+temp[0]+"]";
	
	// Mennään taulukkohierarkiassa tarpeeksi alaspäin
	for(i=1;i<temp.length;i++) {
	  aName=aName+".sub["+temp[i]+"]";
	}
	
	// Asetetaan avattava tai suljettava kohta päinvastaiseen asentoon. 
	chLevel=eval(aName);
	chLevel.isOpen=!chLevel.isOpen;
	
	if(flag && ie) {
	  url=chLevel.url;
		if(url!="javascript:void(0);") {
		  eval("top."+chLevel.target+".document.location=\""+url+"\";");
		}
	}
	
	// Haetaan kahva valittuun päätasoon
	topM=eval("varetu.menu["+temp[0]+"]");	

	// Alustetaan taulukko jolla määritellään linkin eteen piirrettävät kuvat
	pics=new Array;

	// Jos piirrettävä päätaso on koko päätasoista viimeinen asetetaan eka 
	// kuva siitä alaspäin piirrettäväksi tyhjäksi. Muuten ekana kuvana on
	// suora katkoviiva. 
	if(temp[0]==(varetu.menu.length-1)){
	 pics[1]=0;
}
	
	else
	 pics[1]=1;

	// Alustetaan piirrettävän päätason sisällön muuttuja
  rePaintLayer="";

	newFlag = (varetu.linkActive && flag);
	if(newFlag)
	  varetu.currentID=lName;
		
	// Aloitetaan rekursiivinen päätason sisällön rakentaminen
	printLevel(topM,varetu.currentID, newFlag);

	// Piirretään haluttu päätaso paikoilleen Netscapessa
	if(ns) {
		etuliite ["main"+topM.id].document.write(rePaintLayer);
		etuliite ["main"+topM.id].document.close();
	}

	// Piirretään haluttu päätaso paikoilleen IE:ssä
	if(ie) {
		document.all ["main"+topM.id].innerHTML=rePaintLayer;
	}
	
	// Piirretään haluttu päätaso paikoilleen IE:ssä
	if(ns6) {
		document.getElementById("main"+topM.id).innerHTML=rePaintLayer;
	}

	// Siirretään päätason alekkain
	if(mac && ie) {
	  koe=setTimeout("placeTopMenu();",500);
	} else {
	  placeTopMenu();
	}
	
	// Asetetaan uudeksi aktiiviseksi päätasoksi nyt valittu päätaso
	if(flag)
	  varetu.currentActive=temp[0];
		
	updateSearchBox();
}


/*****************************************************************************/
function markActive(lName) {
/*
**  Funktiolla vaihdetaan valitun kohdan tyyli aktiiviseksi tyyliksi
**
**  lName  = valitun kohdan id-numero
******************************************************************************/
	if(ns) {
    var etuliite=window.top.links.document.yleisettxt.document;
    var varetu=window.top.links.document.yleisettxt;
	}
	if(ie||ns6) {
    var etuliite=window.top.links.document;
    var varetu=window.top.links;
	}

	// Hajotetaan DocId osiin
  temp=lName.split(".");

	// Jos valittu kohta on muussa päätasossa kuin sillä hetkellä aktiivisena
	// olevapäätaso ja aktiivisella kohdalla on eri style kuin ei aktiivisella
	// kohdalla, piirretään passivoituva päätaso uudelleen.  
	if(varetu.currentActive && (temp[0]!=varetu.currentActive && varetu.activeStyle) ) {

	  // Passivoitava päätaso
		topM=eval("varetu.menu["+varetu.currentActive+"]");	

		// Alustetaan taulukko jolla määritellään linkin eteen piirrettävät kuvat
		pics=new Array;

		// Jos piirrettävä päätaso on koko päätasoista viimeinen asetetaan eka 
		// kuva siitä alaspäin piirrettäväksi tyhjäksi. Muuten ekana kuvana on
		// suora katkoviiva. 
		if(varetu.currentActive==(varetu.menu.length-1))
		  pics[1]=0;
	  else
	    pics[1]=1;

 	  // Alustetaan piirrettävän päätason sisällön muuttuja
    rePaintLayer="";
		
	  // Aloitetaan rekursiivinen päätason sisällön rakentaminen
	  printLevel(topM,lName,1);
		
  	// Piirretään haluttu päätaso paikoilleen Netscapessa
	  if(ns) {
		  etuliite ["main"+topM.id].document.write(rePaintLayer);
		  etuliite ["main"+topM.id].document.close();
	  }

	  // Piirretään haluttu päätaso paikoilleen IE:ssä
	  if(ie) {
	  	document.all ["main"+topM.id].innerHTML=rePaintLayer;
	  }

	  // Piirretään haluttu päätaso paikoilleen NS6:ssä
	  if(ns6) {
	  	document.getElementById("main"+topM.id).innerHTML=rePaintLayer;
	  }
	}

	// Haetaan kahva valittuun päätasoon
	topM=eval("varetu.menu["+temp[0]+"]");	

	// Alustetaan taulukko jolla määritellään linkin eteen piirrettävät kuvat
	pics=new Array;

  // Jos piirrettävä päätaso on koko päätasoista viimeinen asetetaan eka 
	// kuva siitä alaspäin piirrettäväksi tyhjäksi. Muuten ekana kuvana on
	// suora katkoviiva. 
	if(temp[0]==(varetu.menu.length-1))
	 pics[1]=0;
	else
	 pics[1]=1;

  // Alustetaan piirrettävän päätason sisällön muuttuja
  rePaintLayer="";
	
	varetu.currentID=lName;
  // Aloitetaan rekursiivinen päätason sisällön rakentaminen
	printLevel(topM,varetu.currentID,1);

 	// Piirretään haluttu päätaso paikoilleen Netscapessa
	if(ns) {
		etuliite ["main"+topM.id].document.write(rePaintLayer);
		etuliite ["main"+topM.id].document.close();
	}

  // Piirretään haluttu päätaso paikoilleen IE:ssä
	if(ie) {
		document.all ["main"+topM.id].innerHTML=rePaintLayer;
	}

  // Piirretään haluttu päätaso paikoilleen NS6:ssä
	if(ns6) {
		document.getElementById("main"+topM.id).innerHTML=rePaintLayer;
	}

	// Siirretään päätason alekkain
	if(mac && ie) {
	  koe=setTimeout("placeTopMenu();",5000);
	} else {
	  placeTopMenu();
	}

	// Asetetaan uudeksi aktiiviseksi päätasoksi nyt valittu päätaso
	varetu.currentActive=temp[0];
}

/*****************************************************************************/
function printLevel(curItem,activeName,flag) {
/*
**  Funktiolla vaihdetaan valitun kohdan tyyli aktiiviseksi tyyliksi
**
**  lName  = valitun kohdan id-numero
******************************************************************************/
  // alert("printLevel");
	// Alustetaan silmukoiden muuttujat i ja j käytettäväksi vain tässä aliohjelmassa
  var i,j;
	if(ns) {
    var etuliite=window.top.links.document.yleisettxt.document;
    var varetu=window.top.links.document.yleisettxt;
	}
	if(ie||ns6) {
    var etuliite=window.top.links.document;
    var varetu=window.top.links;
	}
	
	
	// Alustetaan linkin eteen piirrettävien kuvien stringi
  empty="<table summary=\"\" width=\""+varetu.treeWidth+"\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tr>";
	
	// Käydään läpi kuvamääritykset piirrettävän kohdan tasoon saakka
	for(j=1;j<curItem.level;j++) {
	  
		// Jos määrityksessä on 1, piirretään suora katkoviiva
	  if(pics[j]) {
		  empty+="<td width=\""+varetu.picW+"\" background=\""+varetu.gContinue+"\" valign=\"top\"><img src=\""+varetu.gContinue+"\" alt=\"\" align=\"top\" width=\""+varetu.picW+"\" height=\""+varetu.picH+"\"></td>";
		
		// Muuten piirretään tyhjä kuva
		} else {
		  empty+="<td width=\""+varetu.picW+"\" valign=\"top\"><img src=\""+varetu.gEmpty+"\" alt=\"\" align=\"top\" width=\""+varetu.picW+"\" height=\""+varetu.picH+"\"></td>";
		}
	}
	
	// Jos piirrettävä kohta on folder
  if(curItem.hasSub) {
	
	  // Jos folder on auki
	  if(curItem.isOpen) {
		
		  // Jos kuvamäärityksissä on 1 ei folder ole tasossa viimeinen joten
			// piirretään keskellä olevan avatun folderin kuva. 
      if(pics[curItem.level]) {
			
			  // Jos puuta voidaan avata myös kuvasta, asetetaan sille toimitoja
			  if(varetu.folderActive) {
	        empty+="<td width=\""+varetu.picW+"\" background=\""+varetu.gContinue+"\" valign=\"top\"><a id=\"anchor" + curItem.id + "\" href=\"javascript:openSub('"+curItem.id+"');\"><img src=\""+varetu.gOpenNode+"\" alt=\"\" align=\"top\" border=\"0\" width=\""+varetu.picW+"\" height=\""+varetu.picH+"\"></a></td>";
				
				// Muuten piirretään pelkkä kuva
				} else {
	        empty+="<td width=\""+varetu.picW+"\" background=\""+varetu.gContinue+"\" valign=\"top\"><img src=\""+varetu.gOpenNode+"\" alt=\"\" align=\"top\"></td>";
				}
				
			// Kuvamäärityksissä on 0 joten folder on tasossa viimeinen joten 
			// piirretään tason viimeinen avattu folder. 
  	  } else {

			  // Jos puuta voidaan avata myös kuvasta, asetetaan sille toimitoja
			  if(varetu.folderActive) {
	        empty+="<td width=\""+varetu.picW+"\" valign=\"top\"><a id=\"anchor" + curItem.id + "\"  href=\"javascript:openSub('"+curItem.id+"');\"><img src=\""+varetu.gLastOpenNode+"\" alt=\"\" align=\"top\" border=\"0\" width=\""+varetu.picW+"\" height=\""+varetu.picH+"\"></a></td>";

				// Muuten piirretään pelkkä kuva
				} else {
	        empty+="<td width=\""+varetu.picW+"\" valign=\"top\"><img src=\""+varetu.gLastOpenNode+"\" alt=\"\" align=\"top\" width=\""+varetu.picW+"\" height=\""+varetu.picH+"\"></td>";
				}
  	  }
		
		// Kun folder on kiinni
		} else {

		  // Jos kuvamäärityksissä on 1 ei folder ole tasossa viimeinen joten
			// piirretään keskellä olevan suljetun folderin kuva. 
      if(pics[curItem.level]) {

			  // Jos puuta voidaan avata myös kuvasta, asetetaan sille toimitoja
			  if(varetu.folderActive) {
	        empty+="<td width=\""+varetu.picW+"\" background=\""+varetu.gContinue+"\" valign=\"top\"><a id=\"anchor" + curItem.id + "\"  href=\"javascript:openSub('"+curItem.id+"',0);\"><img src=\""+varetu.gCloseNode+"\" alt=\"\" align=\"top\" border=\"0\" width=\""+varetu.picW+"\" height=\""+varetu.picH+"\"></a></td>";

				// Muuten piirretään pelkkä kuva
				} else {
	        empty+="<td width=\""+varetu.picW+"\" background=\""+varetu.gContinue+"\" valign=\"top\"><img src=\""+varetu.gCloseNode+"\" alt=\"\" align=\"top\" width=\""+varetu.picW+"\" height=\""+varetu.picH+"\"></td>";
				}

			// Kuvamäärityksissä on 0 joten folder on tasossa viimeinen joten 
			// piirretään tason viimeinen avattu folder. 
  	  } else {

			  // Jos puuta voidaan avata myös kuvasta, asetetaan sille toimitoja
			  if(varetu.folderActive) {
	        empty+="<td width=\""+varetu.picW+"\" valign=\"top\"><a id=\"anchor" + curItem.id + "\"  href=\"javascript:openSub('"+curItem.id+"',0);\"><img src=\""+varetu.gLastCloseNode+"\" alt=\"\" align=\"top\" border=\"0\" width=\""+varetu.picW+"\" height=\""+varetu.picH+"\"></a></td>";

				// Muuten piirretään pelkkä kuva
				} else {
	        empty+="<td width=\""+varetu.picW+"\" valign=\"top\"><img src=\""+varetu.gLastCloseNode+"\" alt=\"\" align=\"top\" width=\""+varetu.picW+"\" height=\""+varetu.picH+"\"></td>";
				}
  	  }
		}
		
	// Kun piirrettävä kohta on pelkkä dokumentti
	} else {
	
	  // Jos kuvamäärityksissä on 1 ei dokumentti ole tasossa viimeinen joten
		// piirretään keskellä olevan dokumentin kuva. 
    if(pics[curItem.level]) {
	    empty+="<td width=\""+varetu.picW+"\" background=\""+varetu.gContinue+"\" valign=\"top\"><img src=\""+varetu.gDoc+"\" alt=\"\" align=\"top\" width=\""+varetu.picW+"\" height=\""+varetu.picH+"\"></td>";

		// Kuvamäärityksissä on 0 joten dokumentti on tasossa viimeinen joten 
		// piirretään tason viimeinen dokumentti. 
	  } else {
	    empty+="<td width=\""+varetu.picW+"\" valign=\"top\"><img src=\""+varetu.gLastDoc+"\" alt=\"\" align=\"top\" width=\""+varetu.picW+"\" height=\""+varetu.picH+"\"></td>";
  	}
	}
	
	// Asetetaan piirrettävän linkin class
  if(curItem.level<varetu.linkClass.length-1) {
	  
  	// Jos määritettyjä classeja on kyseiselle tasolle, otetaan se 
	  curClass=varetu.linkClass[curItem.level-1];
	} else {

  	// Jos määritettyjä classeja ei ole tarpeeksi, otetaan viimeinen class 
	  curClass=varetu.linkClass[varetu.linkClass.length-1];
	}
	
	// Jos aktiiviselle linkille halutaan oma class asetetaan se tarvittaessa
	if(curItem.id==varetu.activeName && varetu.activeStyle ) {

  	// Jos määritettyjä classeja on kyseiselle tasolle, otetaan se 
	  if(curItem.level<varetu.activeClass.length-1) {
		  curClass=varetu.activeClass[curItem.level-1];

  	// Jos määritettyjä classeja ei ole tarpeeksi, otetaan viimeinen class 
		} else {
		  curClass=varetu.activeClass[activeClass.length-1];
		}
	}
	
	// Aloitetaan linkin piirtäminen. Sijoitetaan alkuun kuvamääritykset.
  rePaintLayer+=empty+"<td width=\""+(varetu.treeWidth-varetu.picW*curItem.level)+"\" valign=\"top\"><a  id=\"anchor" + curItem.id + "\"  href=\""+curItem.url+"\" class=\""+curClass+"\" ";
	
	// Jos linkille on määritelty target, asetetaan se paikoilleen
	if(curItem.target)
	  rePaintLayer+="target=\""+curItem.target+"\" ";
		
	// Jos puuta voidaan avata myös linkistä, asetetaan linkille action NS:llä
	if(curItem.hasSub && ns && varetu.linkActive)
		rePaintLayer+="onmousedown=\"openSub('"+curItem.id+"',1);\"";
		
	// Jos puuta voidaan avata myös linkistä, asetetaan linkille action IE:llä
	if(curItem.hasSub && (ie || ns6) && varetu.linkActive)
		rePaintLayer+="onclick=\"openSub('"+curItem.id+"',1);\"";
	
	// Jos linkki ei toimi avaajana ja aktiivisella linkillä on oma class,
	// asetetaan sille aktivointi action, NS 	
	if(!varetu.linkActive && ns && varetu.activeStyle && curItem.hasSub)
		rePaintLayer+="onmousedown=\"markActive('"+curItem.id+"');\"";
		
	// Jos linkki ei toimi avaajana ja aktiivisella linkillä on oma class,
	// asetetaan sille aktivointi action, IE 	
	if(!varetu.linkActive && (ie || ns6) && avaretu.ctiveStyle && curItem.hasSub)
		rePaintLayer+="onclick=\"markActive('"+curItem.id+"');\"";
		
	// Jos linkki ei toimi avaajana ja aktiivisella linkillä on oma class,
	// asetetaan sille aktivointi action, NS 	
	if(!curItem.hasSub && ns && varetu.activeStyle)
		rePaintLayer+="onmousedown=\"markActive('"+curItem.id+"');\"";
		
	// Jos linkki ei toimi avaajana ja aktiivisella linkillä on oma class,
	// asetetaan sille aktivointi action, IE 	
	if(!curItem.hasSub && (ie || ns6) && varetu.activeStyle)
		rePaintLayer+="onclick=\"markActive('"+curItem.id+"');\"";

	// Suljetaan A-tagin aloitus
	rePaintLayer+=">";
	
	// Jos halutaan folderin linkki boldiksi, avataan B-tagi
	if(varetu.folderBold && curItem.hasSub)
	  rePaintLayer+="<b>";
		
	// Linkin teksti
	rePaintLayer+=curItem.title;
	
	// Jos halutaan folderin linkki boldiksi, suljetaan B-tagi
	if(varetu.folderBold && curItem.hasSub)
	  rePaintLayer+="</b>";
	
	// Suljetaan A-tagi, NOBR-tagi sekä tehdään rivin vaihto				
	rePaintLayer+="</a></td></tr></table>";
	
	// Jos piirrettävällä linkillä on avoinna oleva alipuu
	if(curItem.hasSub && curItem.isOpen) {
	
	  // Käydään alipuun kohdan läpi
	  for(i=0;i<curItem.sub.length;i++) {
		
		  // Kun tulee vastaa määritelty alikohta
		  if(curItem.sub[i]) {
			
			  // Jos alikohta on tasossa viimeinen, asetetaan piirrettävä kuva 0:ksi
			  if(i==(curItem.sub.length-1)) {
				  pics[curItem.level+1]=0;
				
				// Muuten se on 1
				} else {
				  pics[curItem.level+1]=1;
					
				}
				
				// Kutsutaan samaa aliohjelmaa rekursiivisesti tutkittavalla alikohdalla
			  printLevel(curItem.sub[i],varetu.activeName,flag);
			
			}
  	}
	}	

	
}

/*****************************************************************************/
function placeTopMenu() {
/*
**  Funktiolla asetetaan päätason valikot alekkain
**
******************************************************************************/
//	alert("placeTopMenu");
  // IE:n rutiinit
  if(ie) {
	
	  // Haetaan ensimmäinen päätason kohta
	  for(i=0;;i++) {
		  if(menu[i]) {
			
			  // Asetetaan ekan päätason sijainti halutuksi
			  document.all ["main"+(menu[i].id)].style.top=posY;				
			  document.all ["main"+(menu[i].id)].style.left=posX;				
				break;
			}
		}
		
		// Start on ekan päätason numero. Prev kertoo edellisen päätason numeron
		start=i; prev=i;
		
		// Käydään läpi päätasot ekasta eteenpäin
	var j;	  
	j=menu.length;
	// alert(menu.length);
	for(i=start+1;i<menu.length;i++) {
		
		  // Kun tulee vastaa olemassa oleva päätaso
		  if(menu[i]) {
			
			  // Sijoitetaan päätaso edellisen päätason alapuolelle
			  document.all ["main"+(menu[i].id)].style.top=parseInt(document.all ["main"+prev].style.top)+document.all ["main"+prev].scrollHeight;
			
  document.all ["main"+(menu[i].id)].style.left=posX;
			j=parseInt(document.all ["main"+prev].style.top)+document.all ["main"+prev].scrollHeight;
			// alert(j);	
				// Sijoitetaan löytynyt taso Pren:n arvoksi
				prev=i;
			}
		}
	}
	document.getElementById("etsi").style.top=j+20;
	
	// NS:n rutiinit
	if(ns) {
    var etuliite=window.top.links.document.yleisettxt.document;
    var varetu=window.top.links.document.yleisettxt;
		
	  for(i=0;i<varetu.menu.length;i++) {
		  if(varetu.menu[i]) {	
  	  		// Asetetaan ensimmäisen päätason sijainti haluttuun kohtaan
			  etuliite ['main'+i].top=varetu.posY;
			  etuliite ['main'+i].left=varetu.posX;
			start=i; prev=i;
			break;
		  }
	  }
	
		// Lasketaan miten korkeaksi dokumentin sisältö tulee muodostuu
      dHeight=etuliite.layers['main'+start].document.height;
	
	  // Lasketaan miten leveäksi dokumentin sisältö tulee muodostuu
	    dWidth=etuliite.layers['main'+start].document.width;

	  // Käydään läpi päätasot ekasta eteenpäin
	    for(i=start+1;i<varetu.menu.length;i++) {		
		
		    if(varetu.menu[i]) {		  
			    // Sijoitetaan päätaso edellisen päätason alapuolelle
			    etuliite ['main'+i].top=etuliite ['main'+prev].top + etuliite ['main'+prev].document.height;	
			    etuliite ['main'+i].left=varetu.posX;
			
			    // Lisätään päätason korkeus dokumentin korkeuteen
			    dHeight+=etuliite ['main'+i].document.height;
			
			    // Tarkastetaan onko käsiteltävä päätaso leveämpi kuin levein siihen mennessä 
			    if(etuliite ['main'+i].document.width>dWidth)
			      dWidth=etuliite ['main'+i].document.width;

			    prev=i;
	 	    }
    	}
		
		// Asetetaan dokumentin sisällön korkeus haluttuun pituuteen => saadaan 
		// scrollbarit
	  varetu.clip.height=etuliite ['main'+(varetu.menu.length-1)].top+etuliite ['main'+(varetu.menu.length-1)].document.height+10;
		window.top.links.document.height=varetu.clip.height+varetu.pageY;
		
			

		if (window.top.links.document.height<window.top.links.innerHeight)
		  window.top.links.scrollTo(0,0);
		
		// Asetetaan dokumentin sisällön leveys haluttuun leveyteen => saadaan 
		// scrollbarit
		if(window.top.links.document.width<dWidth+varetu.posX)
		  window.top.links.document.width=dWidth+varetu.posX;
	
	}



  // NS6:n rutiinit
  if(ns6) {
	
	  // Haetaan ensimmäinen päätason kohta
	  for(i=0;;i++) {
		  if(menu[i]) {
			
			  // Asetetaan ekan päätason sijainti halutuksi
			  document.getElementById("main"+(menu[i].id)).style.top=posY;				
			  document.getElementById("main"+(menu[i].id)).style.left=posX;				
				break;
			}
		}
		
		// Start on ekan päätason numero. Prev kertoo edellisen päätason numeron
		start=i; prev=i;
		
		// Käydään läpi päätasot ekasta eteenpäin
	  for(i=start+1;i<menu.length;i++) {
		
		  // Kun tulee vastaa olemassa oleva päätaso
		  if(menu[i]) {
			
			  // Sijoitetaan päätaso edellisen päätason alapuolelle
			  document.getElementById("main"+(menu[i].id)).style.top=parseInt(document.getElementById("main"+prev).style.top)+document.getElementById("main"+prev).offsetHeight;
			  document.getElementById("main"+(menu[i].id)).style.left=posX;
	

				// Sijoitetaan löytynyt taso Pren:n arvoksi
				prev=i;
			}
		}
	}
	
	
}


/*****************************************************************************/
function buildTopLevel(){
/*
**  Funktiolla rakennetaan päätason layerit
**
******************************************************************************/

  // Alustetaan päätasojen string
	txt="";
	if(ie || ns6) {
    txt+="<style>";
  	// Asetetaan kaikille päätasoille oma tyyli
    for(i=0;i<menu.length;i++) {
	    if(menu[i]) {
        txt+="#main"+i+" {position:absolute;visibility:visible;z-index:"+(8+i)+";"+naviStyle+";width:"+treeWidth+"px;}";
  		}
	  }
	
  	// Suljetaan STYLE-tagi
    txt+="</style>";
	}


	// Käydään läpi kaikki päätasot
  for(i=0;i<menu.length;i++) {
	
	  // Jos päätaso on olemassa
	  if(menu[i]) {
		
		  if(ie||ns6) {
  		  // Aloitetaan layer
        txt+="<div id=\"main"+menu[i].id+"\">\n";
			}
			if (ns) {
			  txt+="<layer name=\"main"+i+"\" left=\"0\" top=\"0\" visibility=\"visible\" bgcolor=\"#ffffff\" width=\""+treeWidth+"\">";
			}

			// Yhden kohdan kaikki tavara pysyy samalla rivillä
			if(i<(menu.length-1)) 
			  txt+="<table summary=\"\" width=\""+treeWidth+"\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tr><td width=\""+picW+"\" background=\""+gContinue+"\" valign=\"top\">";
			else
			  txt+="<table summary=\"\" width=\""+treeWidth+"\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tr><td width=\""+picW+"\" valign=\"top\">";
			
			// Jos kohta on päätason viimeinen
			if(i==(menu.length-1)) {
			
			  // Jos kohta on folder
			  if(menu[i].hasSub){
				
				  // Jos puuta voidaan avata ja sulkea myös kuvasta asetetaan action
				  if(folderActive) {
			      txt+="<a id=\"anchor" + menu[i].id + "\"  href=\"javascript:openSub('"+menu[i].id+"',0);\"><img src=\""+gLastCloseNode+"\" alt=\"\" align=\"top\" border=\"0\" width=\""+picW+"\" height=\""+picH+"\"></a>";
					
					// Muuten piirretään pelkkä kuva
					} else {
			      txt+="<img src=\""+gLastCloseNode+"\" alt=\"\" align=\"top\" width=\""+picW+"\" height=\""+picH+"\">";
					}
					
				// Kohta on dokumentti
			  } else {				
			    txt+="<img src=\""+gLastDoc+"\" alt=\"\" align=\"top\" width=\""+picW+"\" height=\""+picH+"\">";
			  }
				
			// Kohta ei ole viimenen päätasossa
			} else {
			
			  // Jos kohta on folder
			  if(menu[i].hasSub){

				  // Jos puuta voidaan avata ja sulkea myös kuvasta asetetaan action
				  if(folderActive) {
			      txt+="<a id=\"anchor" + menu[i].id + "\" href=\"javascript:openSub('"+menu[i].id+"',0);\"><img src=\""+gCloseNode+"\" alt=\"\" align=\"top\" border=\"0\" width=\""+picW+"\" height=\""+picH+"\"></a>";

					// Muuten piirretään pelkkä kuva
					} else {
			      txt+="<img src=\""+gCloseNode+"\" alt=\"\" align=\"top\" width=\""+picW+"\" height=\""+picH+"\">";
					}

				// Kohta on dokumentti
			  } else {
			    txt+="<img src=\""+gDoc+"\" alt=\"\" align=\"top\" width=\""+picW+"\" height=\""+picH+"\">";
			  }
			}

			// Aloitetaan kohdan A-tagi
			txt+="</td><td width=\""+(treeWidth-picW)+"\" valign=\"top\"><a id=\"anchor" + menu[i].id + "\" href=\""+menu[i].url+"\" class=\""+linkClass[0]+"\" ";
			
			// Jos kohdalle on määäritelty target
			if(menu[i].target)
			  txt+="target=\""+menu[i].target+"\" ";
				
			// Jos kohta on folder ja puuta voidaan avata ja sulkea myös linkistä,
			// asetetaan sille action, NS
			if(menu[i].hasSub && linkActive && ns)
			  txt+="onmousedown=\"openSub('"+menu[i].id+"',1);\"";
				
			// Jos kohta on folder ja puuta voidaan avata ja sulkea myös linkistä,
			// asetetaan sille action, IE
			if(menu[i].hasSub && linkActive && (ie || ns6))
			  txt+="onclick=\"openSub('"+menu[i].id+"',1);\"";
				
			// Jos linkki ei ole aktiivinen ja aktiivisella kohdalla on oma class,
			// asetetaan kohdalla action jolla tyyli vaihdetaan, NS
    	if(!linkActive && ns && activeStyle)
	    	txt+="onmousedown=\"markActive('"+menu[i].id+"');\"";
		
			// Jos linkki ei ole aktiivinen ja aktiivisella kohdalla on oma class,
			// asetetaan kohdalla action jolla tyyli vaihdetaan, IE
    	if(!linkActive && (ie || ns6) && activeStyle)
	    	txt+="onclick=\"markActive('"+menu[i].id+"');\"";
			
			// Suljetaan aloitettu A-tagi
			txt+=">";
			
			// Jos folderin linkki halutaan boldiksi, aloitetaan B-tagi
			if(folderBold && menu[i].hasSub)
			  txt+="<b>";

			// Linkin teksti
			txt+=menu[i].title;

			// Jos folderin linkki halutaan boldiksi, aloitetaan B-tagi
			if(folderBold && menu[i].hasSub)
			  txt+="</b>";
				
			// A-tagin, NOBR-tagin ja DIV:n lopetus sekä ENTER
			txt+="</a></td></tr></table>";
			
	
			
			if(ie||ns6) {
			  txt+="</div>\n";
			}
			if(ns) {
			  txt+="</layer>\n";
			}				
		}
	}

	// Piirretään rakennetut päätasot näkyviin
TheSize = menu.length*20+130;
txt+="<form name=\"Fsearch\" onSubmit=\"submitFQuery(); return false;\">";
txt+="<span id=\"etsi\" style=\"position:absolute; top:"+TheSize+"px; left:16px; visibility:visible; z-index: 4;\">";
	txt+="<table width=160 border=0 class=\"search\">";
	txt+="<tr valign=middle>";
	txt+="<td colspan=2 align=center align=middle>";
	txt+="<font class=\"search\">Etsi sivuilta</font><br>";
	txt+="</td>";
	txt+="<tr valign=middle>";
	txt+="<td>";
	txt+="<input type=\"text\" name=\"fquery\" class=\"search\" size=\"10\">";
	txt+="</td>";
	txt+="<td>";
	txt+="<input type=\"submit\" class=\"searchbutton\" value=\"Hae\" onClick=\"submitFQuery()\">";
	txt+="</td>";
	txt+="</table>";
	txt+="</span>";
	txt+="</form>";


document.write(txt);
}

