	  var menu0=0; menu1=0; menu2=0;
	  var lay=new Array ();
	  var untermenu=new Array ();
	  var version=navigator.appVersion.charAt(0);
	  var op=navigator.userAgent.indexOf ("Opera");
	  var user=navigator.userAgent;
	  var offen="", isNet, isIE, showObj;

	  function abfrage() {

	    if (op>-1) {
		  lay=document.getElementsByTagName ("DIV");
		  untermenu=document.getElementsByTagName ("SPAN");
		}
		if (navigator.appName=='Netscape' && parseInt (version)==4) {
		  lay[2]=window.document.layers[3];
		  lay[3]=window.document.layers[4];
		  lay[4]=window.document.layers[6];
  		  lay[5]=window.document.layers[7];
		  lay[6]=window.document.layers[8];
		  lay[7]=window.document.layers[10];
		  lay[8]=window.document.layers[11];
		  untermenu[0]=window.document.layers[2];
		  untermenu[4]=window.document.layers[5];
		  untermenu[10]=window.document.layers[9];
		}
		if (navigator.appName=='Microsoft Internet Explorer' && user.indexOf("MSIE 4")>-1) {
		  lay=document.all.tags ("DIV");
		  untermenu=document.all.tags ("SPAN");
		}
		if (navigator.appName=='Microsoft Internet Explorer' && user.indexOf("MSIE 5")>-1) {
		  lay=document.getElementsByTagName ("DIV");
		  untermenu=document.getElementsByTagName ("SPAN");
		}
		if (navigator.appName=='Microsoft Internet Explorer' && user.indexOf("MSIE 6")>-1) {
		  lay=document.getElementsByTagName ("DIV");
		  untermenu=document.getElementsByTagName ("SPAN");
		}
		if (navigator.appName=='Netscape' && parseInt(version)>=5) {
	       lay=document.getElementsByTagName("DIV");
	       untermenu=document.getElementsByTagName("SPAN");
		}
	  }

	 function zeig (menu) {

	    	if (navigator.appName=='Netscape' && parseInt (version)==4) {
		  lay[menu].visibility="visible";
		  lay[menu].display="inline";
		}
		else {
		  lay[menu].style.visibility="visible";
		  lay[menu].style.display="inline";
		}
	  }

	  function verstecke (menu) {

	    	if (navigator.appName=='Netscape' && parseInt (version)==4) {
		  lay[menu].visibility="hidden";
		}
		else {
		  lay[menu].style.visibility="hidden";
		}
	  }




function HD_goToURL() { //v3.0
  var i, args=HD_goToURL.arguments; document.HD_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

function screenSize() {
  //ermittelt die Bildschirmausdehnung und beeinflusst somit die selektierende CSS-Datei
	var args=screenSize.arguments;
	if(screen.width > 1024)
		document.write(args[1]+"B"); //big
	else
		document.write(args[1]+"S"); //small
}


if (document.images) {

homeLogo_b_out						= new Image
homeLogo_s_out						= new Image
welcomeB2B_b_out					= new Image
welcomeB2C_b_out					= new Image
welcomeB2B_s_out					= new Image
welcomeB2C_s_out					= new Image

homeLogo_b_over						= new Image
homeLogo_s_over						= new Image
welcomeB2B_b_over					= new Image
welcomeB2C_b_over					= new Image
welcomeB2B_s_over					= new Image
welcomeB2C_s_over					= new Image

homeLogo_b_out.src					= "images/homeLogo_b.gif"
homeLogo_s_out.src					= "images/homeLogo_s.gif"
welcomeB2B_b_out.src					= "images/homeB2B_b.gif"
welcomeB2C_b_out.src					= "images/homeB2C_b.gif"
welcomeB2B_s_out.src					= "images/homeB2B_s.gif"
welcomeB2C_s_out.src					= "images/homeB2C_s.gif"
homeLogo_b_over.src					= "images/homeLogoo_b.gif"
homeLogo_s_over.src					= "images/homeLogoo_s.gif"
welcomeB2B_b_over.src					= "images/homeB2Bo_b.gif"
welcomeB2C_b_over.src					= "images/homeB2Co_b.gif"
welcomeB2B_s_over.src					= "images/homeB2Bo_s.gif"
welcomeB2C_s_over.src					= "images/homeB2Co_s.gif"



home							= new Image
home_over						= new Image
profil							= new Image
profil_over						= new Image
b2b							= new Image
b2b_over						= new Image
b2c							= new Image
b2c_over						= new Image
contact							= new Image
contact_over						= new Image



home.src						= "images/buttons/d_home.gif"
home_over.src						= "images/buttons/d_home_over.gif"
profil.src						= "images/buttons/d_profil.gif"
profil_over.src						= "images/buttons/d_profil_over.gif"
b2b.src							= "images/buttons/d_b2b.gif"
b2b_over.src						= "images/buttons/d_b2b_over.gif"
b2c.src							= "images/buttons/d_b2c.gif"
b2c_over.src						= "images/buttons/d_b2c_over.gif"
contact.src						= "images/buttons/d_kontakt.gif"
contact_over.src					= "images/buttons/d_kontakt_over.gif"


home2							= new Image
home2_over						= new Image
profil2							= new Image
profil2_over						= new Image
b2b2							= new Image
b2b2_over						= new Image
b2c2							= new Image
b2c2_over						= new Image
contact2						= new Image
contact2_over						= new Image



home2.src						= "../images/buttons/d_home.gif"
home2_over.src						= "../images/buttons/d_home_over.gif"
profil2.src						= "../images/buttons/d_profil.gif"
profil2_over.src					= "../images/buttons/d_profil_over.gif"
b2b2.src						= "../images/buttons/d_b2b.gif"
b2b2_over.src						= "../images/buttons/d_b2b_over.gif"
b2c2.src						= "../images/buttons/d_b2c.gif"
b2c2_over.src						= "../images/buttons/d_b2c_over.gif"
contact2.src						= "../images/buttons/d_kontakt.gif"
contact2_over.src					= "../images/buttons/d_kontakt_over.gif"


/* Login/Logout */
einloggen						= new Image
ausloggen						= new Image
einloggen_over						= new Image
ausloggen_over						= new Image

einloggen.src						= "../images/buttons/d_einloggen.gif"
ausloggen.src						= "../images/buttons/d_ausloggen.gif"
einloggen_over.src					= "../images/buttons/d_einloggen_over.gif"
ausloggen_over.src					= "../images/buttons/d_ausloggen_over.gif"


/* Profil */
job							= new Image
job_over						= new Image

job.src							= "images/buttons/d_jobs.gif"
job_over.src						= "images/buttons/d_jobs_over.gif"

zurueck							= new Image
zurueck_over						= new Image

zurueck.src 						= "images/buttons/d_zurueck.gif"
zurueck_over.src 					= "images/buttons/d_zurueck_over.gif"
/* B2B */

funktechnik 						= new Image
videotechnik						= new Image
visionssysteme						= new Image
nachrichtentechnik					= new Image
netzwerktechnik						= new Image
verladeautomatisierung					= new Image
fernsteuerung						= new Image
referenzen						= new Image
philosophie						= new Image
leistungsspektrum					= new Image

funktechnik_over 					= new Image
videotechnik_over					= new Image
visionssysteme_over					= new Image
nachrichtentechnik_over					= new Image
netzwerktechnik_over					= new Image
verladeautomatisierung_over				= new Image
fernsteuerung_over					= new Image
referenzen_over						= new Image
philosophie_over					= new Image
leistungsspektrum_over					= new Image


funktechnik.src 					= "../images/buttons/d_funktechnik.gif"
videotechnik.src 					= "../images/buttons/d_videotechnik.gif"
visionssysteme.src					= "../images/buttons/d_visionssysteme.gif"
nachrichtentechnik.src 					= "../images/buttons/d_nachrichtentechnik.gif"
netzwerktechnik.src 					= "../images/buttons/d_netzwerktechnik.gif"
verladeautomatisierung.src 				= "../images/buttons/d_verladeautomatisierung.gif"
fernsteuerung.src					= "../images/buttons/d_fernsteuerung.gif"
referenzen.src						= "../images/buttons/d_referenzen.gif"

philosophie.src 					= "images/buttons/d_philosophie.gif"
leistungsspektrum.src					= "images/buttons/d_leistungsspektrum.gif"


funktechnik_over.src 					= "../images/buttons/d_funktechnik_over.gif"
videotechnik_over.src					= "../images/buttons/d_videotechnik_over.gif"
visionssysteme_over.src					= "../images/buttons/d_visionssysteme_over.gif"
nachrichtentechnik_over.src				= "../images/buttons/d_nachrichtentechnik_over.gif"
netzwerktechnik_over.src				= "../images/buttons/d_netzwerktechnik_over.gif"
verladeautomatisierung_over.src				= "../images/buttons/d_verladeautomatisierung_over.gif"
fernsteuerung_over.src					= "../images/buttons/d_fernsteuerung_over.gif"
referenzen_over.src					= "../images/buttons/d_referenzen_over.gif"

philosophie_over.src 					= "images/buttons/d_philosophie_over.gif"
leistungsspektrum_over.src				= "images/buttons/d_leistungsspektrum_over.gif"


/* B2C */

fernsehtechnik						= new Image
haushaltsgerate						= new Image
mobilemedientechnik					= new Image
telekommunikation					= new Image
antennentechnik						= new Image

fernsehtechnik_over 					= new Image
haushaltsgerate_over					= new Image
mobilemedientechnik_over				= new Image
telekommunikation_over					= new Image
antennentechnik_over					= new Image

fernsehtechnik.src 					= "../images/buttons/d_fernsehtechnik.gif"
haushaltsgerate.src					= "../images/buttons/d_haushaltsgerate.gif"
mobilemedientechnik.src 				= "../images/buttons/d_mobilemedientechnik.gif"
telekommunikation.src					= "../images/buttons/d_telekommunikation.gif"
antennentechnik.src					= "../images/buttons/d_antennentechnik.gif"

fernsehtechnik_over.src 				= "../images/buttons/d_fernsehtechnik_over.gif"
haushaltsgerate_over.src				= "../images/buttons/d_haushaltsgerate_over.gif"
mobilemedientechnik_over.src				= "../images/buttons/d_mobilemedientechnik_over.gif"
telekommunikation_over.src				= "../images/buttons/d_telekommunikation_over.gif"
antennentechnik_over.src				= "../images/buttons/d_antennentechnik_over.gif"

// siteWidget

sw_home							= new Image;
sw_faq							= new Image;
sw_contact						= new Image;
sw_search						= new Image;
sw_job							= new Image;
sw_b2b							= new Image;
sw_b2c							= new Image;

sw_home_over						= new Image;
sw_faq_over						= new Image;
sw_contact_over						= new Image;
sw_search_over						= new Image;
sw_job_over						= new Image;
sw_b2b_over						= new Image;
sw_b2c_over						= new Image;


sw_home.src						= "images/buttons/sw_home.gif";
sw_faq.src						= "images/buttons/sw_faq.gif";
sw_contact.src						= "images/buttons/sw_contact.gif";
sw_search.src						= "images/buttons/sw_search.gif";
sw_job.src						= "images/buttons/sw_job.gif";
sw_b2b.src						= "images/buttons/sw_b2b.gif";
sw_b2c.src						= "images/buttons/sw_b2c.gif";

sw_home_over.src					= "images/buttons/sw_home_over.gif";
sw_faq_over.src						= "images/buttons/sw_faq_over.gif";
sw_contact_over.src					= "images/buttons/sw_contact_over.gif";
sw_search_over.src					= "images/buttons/sw_search_over.gif";
sw_job_over.src						= "images/buttons/sw_job_over.gif";
sw_b2b_over.src						= "images/buttons/sw_b2b_over.gif";
sw_b2c_over.src						= "images/buttons/sw_b2c_over.gif";


sw_home2						= new Image;
sw_faq2							= new Image;
sw_contact2						= new Image;
sw_search2						= new Image;
sw_job2							= new Image;
sw_b2b2							= new Image;
sw_b2c2							= new Image;

sw_home_over2						= new Image;
sw_faq_over2						= new Image;
sw_contact_over2					= new Image;
sw_search_over2						= new Image;
sw_job_over2						= new Image;
sw_b2b_over2						= new Image;
sw_b2c_over2						= new Image;


sw_home2.src						= "../images/buttons/sw_home.gif";
sw_faq2.src						= "../images/buttons/sw_faq.gif";
sw_contact2.src						= "../images/buttons/sw_contact.gif";
sw_search2.src						= "../images/buttons/sw_search.gif";
sw_job2.src						= "../images/buttons/sw_job.gif";
sw_b2b2.src						= "../images/buttons/sw_b2b.gif";
sw_b2c2.src						= "../images/buttons/sw_b2c.gif";

sw_home_over2.src					= "../images/buttons/sw_home_over.gif";
sw_faq_over2.src					= "../images/buttons/sw_faq_over.gif";
sw_contact_over2.src					= "../images/buttons/sw_contact_over.gif";
sw_search_over2.src					= "../images/buttons/sw_search_over.gif";
sw_job_over2.src					= "../images/buttons/sw_job_over.gif";
sw_b2b_over2.src					= "../images/buttons/sw_b2b_over.gif";
sw_b2c_over2.src					= "../images/buttons/sw_b2c_over.gif";

}



function chgImg(imgField, newImg) {


	if (document.images) {
		 
		 document[imgField].src= eval(newImg + ".src")
		 
		 
	}
}

function show(obj) {
	if (isIE) {showObj = eval(document.all+'["'+obj+'"]'+'.style')}
	
	showObj.visibility= "visible"}
function hide(obj) {
	if (isIE) {showObj = eval(document.all+'["'+obj+'"]'+'.style')}
	
	showObj.visibility = "hidden"
}


/***********************************************
* Fading Scroller- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/

var delay = 2000; //set delay between message change (in miliseconds)
var maxsteps=30; // number of steps to take to change from start color to endcolor
var stepdelay=70; // time in miliseconds of a single step
//Note: maxsteps*stepdelay will be total time in miliseconds of fading effect

var startcolor= new Array(213,223,232); // start color (red, green, blue)
var endcolor=new Array(30,95,140); // end color (red, green, blue)

var fcontent=new Array();
begintag='<div class="scroller">'; //set opening tag, such as font declarations

fcontent[0]='<b>Geschäftslösungen</b><br /><span style="line-height:10px; font-size: 8px;">&nbsp;<br /></span><span><a href="b2b/videotechnik.php">Videotechnik</a></span><br /><span><a href="b2b/visionssysteme.php">Visionssysteme</a></span><br /><span><a href="b2b/fernsteuerung.php">Fernsteuerungen</a></span><br /><span><a href="b2b/funktechnik.php">Funktechnik</a></span><br />'
fcontent[1]='<span style="color: black;"><b>Geschäftslösungen</b></span><br /><span style="line-height:10px; font-size: 8px;">&nbsp;<br /></span><span><a href="b2b/netzwerktechnik.php">Netzwerktechnik</a></span><br /><span><a href="b2b/nachrichtentechnik.php">Nachrichtentechnik</a></span><br /><span><a href="b2b/Verladeautomatisierung.php">Verladeautomatisierung</a></span><br />'
fcontent[2]='<strong>Heimelektronik</strong><br /><span style="line-height:10px; font-size: 8px;">&nbsp;<br /></span><span><a href="b2c/fernsehtechnik.php">Home&nbsp;Entertainment</a></span><br /><span><a href="b2c/haushaltsgerate.php">Haushaltsgeräte</a></span><br /><span><a href="b2c/telekommunikation.php">Telekommunikation</a></span><br /><span><a href="b2c/mobilemedientechnik.php">Car&nbsp;Entertainment</a></span><br /><span><a href="b2c/antennentechnik.php">Antennentechnik</a></span><br />'

closetag='</div>';

var fwidth='210px'; //set scroller width
var fheight='110px'; //set scroller height

var fadelinks=1;  //should links inside scroller content also fade like text? 0 for no, 1 for yes.

var first=0; //erster Durchlauf nach Mouseover, sorgt dafür, dass nicht weitergescrollt wird
var merker=0;

//function to change content
function changecontent(){
//  alert(mo + ' ' + merker + ' ' + first + ' ' + index);
  if (mo==1 && first==0) {merker=index-1; first=1;}
  
  if (merker>2) merker=merker-1;
  else if (merker<0) merker=1;

  if (index<0)
    index=0
  if (index>=fcontent.length && mo==0) index=0;
  if (DOM2){

    if (mo==0) document.getElementById("fscroller").style.color="rgb("+startcolor[0]+", "+startcolor[1]+", "+startcolor[2]+")"
    else document.getElementById("fscroller").style.color="rgb("+endcolor[0]+", "+endcolor[1]+", "+endcolor[2]+")";

    if (mo==0) document.getElementById("fscroller").innerHTML=begintag+fcontent[index]+closetag
    else document.getElementById("fscroller").innerHTML=begintag+fcontent[merker]+closetag

    if (fadelinks)
        linkcolorchange(1);
    if (mo==0) colorfade(1);
    else colorfade(maxsteps);
    
  }
  else if (ie4)
    document.all.fscroller.innerHTML=begintag+fcontent[index]+closetag;
  
  if (mo==1 && first==0) {merker=index; first=1; clearTimeout(fadecounter);}


  if (mo==0) {index++;}
}

// colorfade() partially by Marcio Galli for Netscape Communications.  ////////////
// Modified by Dynamicdrive.com

function linkcolorchange(step){
  var obj=document.getElementById("fscroller").getElementsByTagName("A");
  if (obj.length>0){
    for (i=0;i<obj.length;i++)
      obj[i].style.color=getstepcolor(step);
  }
}

var fadecounter;

function colorfade(step) {
  if(step<=maxsteps) {	
    document.getElementById("fscroller").style.color=getstepcolor(step);
    if (fadelinks)
      linkcolorchange(step);
    step++;
    fadecounter=setTimeout("colorfade("+step+")",stepdelay);
  }else{
    clearTimeout(fadecounter);
    document.getElementById("fscroller").style.color="rgb("+endcolor[0]+", "+endcolor[1]+", "+endcolor[2]+")";
    setTimeout("changecontent()", delay);
	
  }   
}

function getstepcolor(step) {
  var diff
  var newcolor=new Array(3);
  for(var i=0;i<3;i++) {
    diff = (startcolor[i]-endcolor[i]);
    if(diff > 0) {
      newcolor[i] = startcolor[i]-(Math.round((diff/maxsteps))*step);
    } else {
      newcolor[i] = startcolor[i]+(Math.round((Math.abs(diff)/maxsteps))*step);
    }
  }
  return ("rgb(" + newcolor[0] + ", " + newcolor[1] + ", " + newcolor[2] + ")");
}

/* MarkTree JavaScript code
 * 
 * The contents of this file are subject to the Mozilla Public License Version
 * 1.1 (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 * http://www.mozilla.org/MPL/
 *
 * Software distributed under the License is distributed on an "AS IS" basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 * for the specific language governing rights and limitations under the
 * License.
 * 
 * Miika Nurminen, 12.7.2004.
 */

/* cross-browser (tested with ie5, mozilla 1 and opera 5) keypress detection */
function get_keycode(evt) {
  // IE
    code = document.layers ? evt.which
           : document.all ? event.keyCode // event.keyCode!=evt.keyCode!
           : evt.keyCode;

  if (code==0) 
    code=evt.which; // for NS
  return code;
}

var lastnode=null;
var listnodes = null;
var list_index=1;
var lastnodetype=''; // determines if node is a link, input or text;

// up, left, down, right, keypress codes
//ijkl
//var keys = new Array(105,106,107,108);
//num arrows
//var keys = new Array(56,52,50,54);
//wasd
// var press2 = new Array(119,97,115,100);
 var press = new Array(47,45,42,43);

// keydown codes
  //  var keys2=new Array(87,65,83,68);
  var keys= new Array(38,37,40,39);

  // keyset 1 = keydown, otherwise press
function checkup(keyset,n) {
  if (keyset==1) return (n==keys[0]);
  return ((n==press[0]) /*|| (n==press2[0])*/)
}

function checkdn(keyset,n) {
  if (keyset==1) return (n==keys[2]);
  return ((n==press[2]) /*|| (n==press2[2])*/)
}

function checkl(keyset,n) {
  if (keyset==1) return (n==keys[1]);
  return ((n==press[1]) /*|| (n==press2[1])*/)
}

function checkr(keyset,n) {
  if (keyset==1) return (n==keys[3]);
  return ((n==press[3]) /*|| (n==press2[3])*/)
}





function is_exp(n) {
  if (n==null) return false;
  return ((n.className=='exp') || (n.className=='exp_active'));
}

function is_col(n) {
  if (n==null) return false;
  return ((n.className=='col') || (n.className=='col_active'));
}

function is_basic(n) {
  if (n==null) return false;
  return ((n.className=='basic') || (n.className=='basic_active'));
}



/* returns i>=0 if true */
function is_active(node) {
  if (node.className==null) return false
  return node.className.indexOf('_active');
}

function toggle_class(node) {
  if ((node==null) || (node.className==null)) return;
  str=node.className;
  result="";
  i = str.indexOf('_active');
  if (i>0)
    result= str.substr(0,i);
  else
    result= str+"_active";
  node.className=result; 
  return node;
}

function activate(node) {
  node.style.backgroundColor='#eeeeff';
}

function deactivate(node) {
   node.style.backgroundColor='#ffffff';
}

function is_list_node(n) {
  if (n==null) return false;
  if (n.className==null) return false;
  if ( (is_exp(n)) || 
       (is_col(n)) ||
       (is_basic(n)) )
   return true; else return false;
}


function get_href(n) {
  alist=n.attributes;
  if (alist!=null) {
    hr = alist.getNamedItem('href');
    if (hr!=null) return hr.nodeValue;
  }
  if (n.childNodes.length==0) return '';
  for (var i=0; i<n.childNodes.length; i++) {
    s = get_href(n.childNodes[i]);
    if (s!='') return s;
  }
  return '';
}

function get_link(n) {
  if (n==null) return null;
  if (n.style==null) return null;

 // disabling uncontrolled recursion to prevent error messages on IE
 // when trying to focus to invisible links (readonly mode)
//    alert(n.nodeName+' '+n.className);
  if ((n.nodeName=='UL') && (n.className=='sub')) return null;

  if (n.nodeName=='A') return n;
  if (n.childNodes.length==0) return null;
  for (var i=0; i<n.childNodes.length; i++) {
    s = get_link(n.childNodes[i]);
    if (s!=null) return s;
  }
  return null;
}

function set_lastnode(n) {
/*var d = new Date();
var t_mil = d.getMilliseconds();*/
// testattu nopeuksia explorerilla, ei merkittäviä eroja
  if (lastnode==n) return; 
/*  deactivate(lastnode)
  lastnode=n;
  activate(lastnode);*/

  if (is_active(lastnode)>=0)
    toggle_class(lastnode);
  lastnode=n;
  if (!(is_active(lastnode)>=0))
    toggle_class(lastnode);


/*var d2 = new Date();
var t_mil2 = d2.getMilliseconds();
  window.alert(t_mil2-t_mil);*/
}

function next_list_node() {
  tempIndex = list_index;
  while (tempIndex<listnodes.length-1) {
    tempIndex++;
    var x = listnodes[tempIndex];
    if (is_list_node(x)) {
      list_index=tempIndex;
      return;
    }
  }
}

function prev_list_node() {
  tempIndex = list_index;
  while (tempIndex>0) {
    tempIndex--;
    var x = listnodes[tempIndex];
    if (is_list_node(x)) {
      list_index=tempIndex;
      return;
    }
  }
}



function getsub (li) {
  if (li.childNodes.length==0) return null;
  for (var c = 0; c < li.childNodes.length; c++)
    if ( (li.childNodes[c].className == 'sub') || (li.childNodes[c].className == 'subexp') ) 
      return li.childNodes[c];
}

function find_listnode_recursive (li) {
  if (is_list_node(li)) return li; 
  if (li.childNodes.length==0) return null;
  result=null;
  for (var c = 0; c < li.childNodes.length; c++) {
    result=find_listnode_recursive(li.childNodes[c]);
    if (result!=null) return result;
  }
  return null;
}

function next_child_listnode(li) {
  var result=null;
  for (var i=0; i<li.childNodes.length; i++) {
    result=find_listnode_recursive(li.childNodes[i]);
    if (result!=null) return result;
  }
  return null;  
}

function next_actual_sibling_listnode(li) {
  if (li==null) return null;
  var temp=li;
  while (1) { 
    var n = temp.nextSibling;
    if (n==null) {
      n=parent_listnode(temp);
      return next_actual_sibling_listnode(n);
    }
    if (is_list_node(n)) return n;
    temp=n;
  }
}

function next_sibling_listnode(li) {
if (li==null) return null; 
 var result=null;
  var temp=li;
  if (is_col(temp)) return next_child_listnode(temp);
  while (1) { 
    var n = temp.nextSibling;
    if (n==null) {
      n=parent_listnode(temp);
      return next_actual_sibling_listnode(n);
    }
    if (is_list_node(n)) return n;
    temp=n;
  }
}

function last_sibling_listnode(li) {
  if (li==null) return null;
  var temp=li;
  var last=null;
  while(1) {
    var n = temp.nextSibling;
    if (is_list_node(temp)) 
      last = temp;
    if (n==null) {
      if (is_col(last)) return last_sibling_listnode(next_child_listnode(last));
      else return last;
    }
    temp = n;
  }
}

function prev_sibling_listnode(li) { 
  if (li==null) return null;
  var temp=li;
  var n = null;
  while (1) { 
    n = temp.previousSibling;
    if (n==null) {
      return parent_listnode(li);
    }
    if (is_list_node(n)) {
      if (is_col(n)) { 
        return last_sibling_listnode(next_child_listnode(n));
      }
      else {
        return n;
      }
    }
    temp=n;
  }
}


function parent_listnode(li) {
  // added 12.7.2004 to prevent IE error when readonly mode==true
  if (li==null) return null;
  n=li;
  while (1) {
    n=n.parentNode;
    if (n==null) return null;
    if (is_list_node(n)) return n;
  }
}

function getVisibleParents(id) {
  var n = document.getElementById(id);
  while(1) {
    expand(n);
    n = parent_listnode(n);
    if (n==null) return;
  }
}

function onClickHandler (evt) {
if (lastnode==null) 
{
listnodes = document.getElementsByTagName('li');
lastnode=listnodes[1];
temp=listnodes[1];
}


  var target = evt ? evt.target : event.srcElement;
  if (!is_list_node(target)) return;
  toggle(target);
  set_lastnode(target);
}


function expand(node) {
    if (!is_exp(node)) return;
    if (node.className=='exp_active') 
      node.className='col_active';
    else 
        node.className='col';
    setSubClass(node,'subexp');
    //    getsub(node).className='subexp';
}

function collapse(node) {
  if (!is_col(node)) return;
  
if (node.className=='col_active')
    node.className='exp_active'
  else 
    node.className='exp';

 setSubClass(node,'sub');
//  getsub(node).className='sub';

}

function setSubClass(node,name) {
  sub = getsub(node);
  if (sub==null) return;
  sub.className=name;  
}

function toggle(target) {
  if (!is_list_node(target)) return;
    if (is_col(target)) {
      target.className='exp';
      setSubClass(target,'sub');
      //      getsub(target).className='sub';
    }
    else if (is_exp(target)) {
      target.className='col';
      setSubClass(target,'subexp');
      //      getsub(target).className='subexp';
    }
 
}

function expandAll(node) {
    if (node.className=='exp') {
        node.className='col';
        setSubClass(node,'subexp');
//        getsub(node).className='subexp';
    }
    var i;
    if (node.childNodes!=null) 
//    if (node.hasChildNodes()) 
        for ( i = 0; i<node.childNodes.length; i++)
            expandAll(node.childNodes[i]);
}

function collapseAll(node) {
    if  (node.className=='col') {
        node.className='exp';
        setSubClass(node,'sub');
//        getsub(node).className='sub';
    }
    var i;        
    if (node.childNodes!=null) 
// for opera   if (node.hasChildNodes()) 
        for ( i = 0; i<node.childNodes.length; i++)
            collapseAll(node.childNodes[i]);
}



function unFocus(node) {
     // unfocuses potential link that is to be hidden (if a==null there is no link so it should not be blurred).
     // tested with mozilla 1.7, 12.7.2004. /mn (
      intemp=parent_listnode(node);  
      a = get_link(intemp);     // added 6.4. to get keyboard working with
      // moved before collapse to prevent an error message with IE when readonly==true      
      if (a!=null) a.blur(); // netscape after collapsing a focused node
      return intemp;
}

// mode: 0==keypress, 1==keyup
function keyfunc(evt,mode) {
 var c = get_keycode(evt);
 var temp = null;
 var a = null;

  if (lastnode==null) {
    listnodes = document.getElementsByTagName('li');
    lastnode=listnodes[1];
    temp=listnodes[1];
  }

  //window.alert(c);
  if (checkup(mode,c)) { // i 
   temp=prev_sibling_listnode(lastnode);
  }
  else if (checkdn(mode,c)) { // k
    temp=next_sibling_listnode(lastnode);
  }
  else if (checkr(mode,c)) { // l
    expand(lastnode);
    //  temp=next_child_listnode(lastnode);
    // if (temp==null) {
      a = get_link(lastnode);
        if (a!=null) a.focus(); else self.focus(); 
      //}
  }
  else if (checkl(mode,c)) { // j
    if (is_col(lastnode)) {
      unFocus(lastnode);
      collapse(lastnode);
    }
    else {
      temp=unFocus(lastnode);
      collapse(temp);
    }
   //    if (temp==null) lastnode.focus(); // forces focus to correct div (try mozilla typesearch) (doesn't seem to work -mn/6.4.2004)
  }
  else return;
  if (temp!=null) set_lastnode(temp);

  // alert('pressed ' + String.fromCharCode(c) + '(' + c + ')');
  return true;
}


function keytest (evt) {
  return keyfunc(evt,1);
};


function presstest (evt) {
  return keyfunc(evt,0);
};


  document.onclick = onClickHandler;
  document.onkeypress = presstest;
  document.onkeyup = keytest;


