
//  CLIENT_SIDE SNIFFER CODE

// convert all characters to lowercase to simplify testing 
var agt=navigator.userAgent.toLowerCase(); 

//BROWSER VERSION
// Note: On IE5, these return 4, so use is_ie5up to detect IE5. 
var is_major = parseInt(navigator.appVersion); 
var is_minor = parseFloat(navigator.appVersion); 

//BROWSER TYPE 
var is_nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1) 
            && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1) 
            && (agt.indexOf('webtv')==-1));
var is_nav4up = (is_nav && (is_major >= 4));  
var is_ie   = (agt.indexOf("msie") != -1); 
var is_ie3  = (is_ie && (is_major < 4)); 
var is_ie4  = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.0")==-1) );
var is_ie4up  = (is_ie  && (is_major >= 4));
var is_ie5  = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.0")!=-1) );  
var is_ie5up  = (is_ie  && !is_ie3 && !is_ie4);  
var is_dom = (document.getElementById);

//PLATFORM 
var is_win   = ( (agt.indexOf("win")!=-1) || (agt.indexOf("16bit")!=-1) );
var is_mac    = (agt.indexOf("mac")!=-1);
var is_sun   = (agt.indexOf("sunos")!=-1);
var is_irix  = (agt.indexOf("irix") !=-1);    // SGI
var is_hpux  = (agt.indexOf("hp-ux")!=-1);
var is_aix   = (agt.indexOf("aix") !=-1);      // IBM
var is_linux = (agt.indexOf("inux")!=-1);
var is_sco   = (agt.indexOf("sco")!=-1) || (agt.indexOf("unix_sv")!=-1);
var is_unixware = (agt.indexOf("unix_system_v")!=-1); 
var is_mpras    = (agt.indexOf("ncr")!=-1); 
var is_reliant  = (agt.indexOf("reliantunix")!=-1);
var is_dec   = ((agt.indexOf("dec")!=-1) || (agt.indexOf("osf1")!=-1) || 
       (agt.indexOf("dec_alpha")!=-1) || (agt.indexOf("alphaserver")!=-1) || 
       (agt.indexOf("ultrix")!=-1) || (agt.indexOf("alphastation")!=-1)); 
var is_sinix = (agt.indexOf("sinix")!=-1);
var is_freebsd = (agt.indexOf("freebsd")!=-1);
var is_bsd = (agt.indexOf("bsd")!=-1);
var is_unix  = ((agt.indexOf("x11")!=-1) || is_sun || is_irix || is_hpux || 
             is_sco ||is_unixware || is_mpras || is_reliant || 
             is_dec || is_sinix || is_aix || is_linux || is_bsd || is_freebsd);

             
             

// VARIABLENDEFINITION
imgArray = new Array();                               // enthaelt die Bilder im Dokument
bilder_Anzahl = 0;                                    // enthaelt die Anzahl aller Bilder im Dokument
act_nav="";
level1_selection="";
       
             

//PRELOAD-FUNKTIONEN
// Funktion: erstellt ein neues Objekt, das zwei Bildobjekte enthaelt; aufgerufen in searchImages();
function entry(layer, name, src1, src2)
{
  this.layer = layer;           
  this.name = name;
  this.normal = new Image()     
  this.normal.name = name;      
  this.normal.src = src1;       
  this.hilite = new Image();    
  this.hilite.name = name;      
  this.hilite.src = src2;       
      
  return (this);
}
    
// gueltiges bild fuer hilite?; aufgerufen in searchImages(); 
function isValidImage(name)
{
  return(name.indexOf("_off.") > 0);
}
    
// Umwandlung _off- in _on-bild
function convertToHilite(src)
{
  var fileType = src.substring(src.lastIndexOf("."), src.length); 
  var endOfPath = src.lastIndexOf("/") + 1;                       
  var path = src.substring(0, endOfPath);                         
  var fileName = src.substring(endOfPath, src.length);            
  var endOfFileName = fileName.lastIndexOf("_");                
  fileName = fileName.substring(0, endOfFileName);              
  fileName = path + fileName + "_on" + fileType;                  
  return (fileName);
}
    
// sucht _off-bilder; ruft convertToHilite(); und isValidImage(); und entry(); und searchImagesInLayers(); auf
function searchImages()
{
    var anzahl_der_Bilder = document.images.length;

  for (var img = 0; img < anzahl_der_Bilder; img++)
  { 
    var name = document.images[img].name;             
    var nsrc = document.images[img].src; 
                 
    var hsrc = convertToHilite(nsrc);                 
 
    if (isValidImage(nsrc))
    {  
      imgArray[bilder_Anzahl] = new entry("", name, nsrc, hsrc);  // das gefundene Bild in das Array eintragen
      bilder_Anzahl++;
    }
  }
  if (is_nav) searchImagesInLayers();      
}
    
// gueltig ab NN4; dasselbe wie searchImages();
function searchImagesInLayers()
{
  var layers = document.layers;
  for (var l = 0; l < layers.length; l++)
  {
    doc2 = layers[l].document;
    for (var d = 0; d < doc2.images.length; d++)
    {
      var name = doc2.images[d].name;
      var nsrc = doc2.images[d].src;
      var hsrc = convertToHilite(nsrc);
      if (isValidImage(nsrc))
      {
        imgArray[bilder_Anzahl] = new entry(layers[l].name, name, nsrc, hsrc);
        bilder_Anzahl++;
      }
    }
  }
}
  
// Hauptfunktion des Preload: im body-Tag mit dem onLoad-Event aufgerufen  
function mystic()
{
  searchImages();
}
  
  
  
// Funktion: Ermittelt die Position eines Bildes im imgArray anhand des Namens und liefert dessen Position zurueck.
function getPos(name)
{
  var retValue = -1;
  for (var p = 0; p < imgArray.length; p++)
  {
    if (imgArray[p].name == name) retValue = p;
  }
  return (retValue);
}
  
  
// _on-zustand der navi-images at OnMouseOver/OnMouseOut
function imgOn(name)
{ 
  if(level1_selection!="") imgOff(level1_selection);
   var nr = getPos(name);

 if (nr != -1)
  {
    var bild = imgArray[nr];
    if ((is_nav) && (bild.layer != ""))
    {
      document.layers[bild.layer].document.images[name].src = bild.hilite.src;
    }
    else
    {
     document.images[name].src = bild.hilite.src;
    }
  }
}


function imgOff(name)
{
  var nr = getPos(name);
  if (nr != -1)
  {
    var bild = imgArray[nr];
    if ((is_nav) && (bild.layer != ""))
    {
      document.layers[bild.layer].document.images[name].src = bild.normal.src;
    }
    else
    {
      document.images[name].src = bild.normal.src;
    }
  }
}
  

//zeigt on-zustand beim laden der passenden seite, in functions_local eingebaut, aufgerufen beim onload im header 

  
  
//initialisierung fuer die layers
function init() 
{
  if(is_ie)
  {
	  genObj="document.all"
	  genStyle=".style"
  }

  if(is_nav4up)
  {
	  genObj="document.layers"
	  genStyle=""
  }
}
 
init();

//show and hide layer at OnMouseOver/OnMouseOut 
function createObj(divName) 
{
  if(is_dom)
  {
	  stand_obj=document.getElementById(divName);
	  obj=stand_obj.style
  }
  else
  {
    obj=eval(genObj+"['"+divName+"']"+genStyle);
  }  
  return obj; 
}

function show(divName) 
{
  createObj(divName);
  obj.visibility='visible';
  obj.zIndex=100; 
}

function hide(divName) 
{
  createObj(divName);
  obj.visibility='hidden';
  obj.zIndex=0; 
} 


 


//versteckt activen layer, zeigt neuen layer + zeigt passendes _on-gif
function set_agmak(Name)//agmak
{
   imgOn(Name);
   show("navi"+Name);
   act_nav=Name;
 	
 }

function set_layer(Name) 
{
 
  
  if(act_nav!="")
	{
	  hide("navi"+act_nav);
		imgOff(act_nav);
             hide("navinews"); 
  
  }
  imgOn(Name);
  show("navi"+Name);
 	act_nav=Name;
}



//versteckt aktuellen layer, in adlink_functions eingebaut, aufgerufen beim onload im header
function hiding()
{
  if(act_nav!="")
	{
	  hide("navi"+act_nav);
		imgOff(act_nav);
	    hide("navinews");
	}
}



//setzt unsichtbare layers, die fuer das wiedererscheinen des active layers zustaendig sind 
function onload_hiding()
{
	show("hideTop");
	show("hideBottom");
	show("hideRight");
}

function onloadLevel1(imgNam)
{ 
  
  level1_selection=imgNam;
  hiding();

}




// oeffnet pop up - fenster mit def. hoehe, breite und vorgegebener position
function fenster(ort,w,h) 
{
  win = window.open(ort, 'Neues_Fenster', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,copyhistory=no,width='+w+',height='+h+',screenX=20,screenY=200,left=20,top=200');
}
 

//oeffnet popup wegbeschreibung unter kontakt
function map(){
  mapwin=open("/uk/kontakt/pics/anfahrt.gif","KartenFenster","width=580,height=689");
  if (mapwin.confirm('Wollen Sie die Karte jetzt ausdrucken')){
    mapwin.print();
    mapwin.close();
  } 
}


//avoid resize problems with Netscape 4
if (is_nav4up) 
{
  origWidth = innerWidth;
  origHeight = innerHeight;
}

function reDo() 
{
  if (innerWidth != origWidth || innerHeight != origHeight) 
  history.go(0);
}

if (is_nav4up) onresize = reDo;
