

                       
               // --------------------------------------------------------------------------------------------------------
               // initial immer Browser und Plattform ermitteln
               // --------------------------------------------------------------------------------------------------------
               
               var ie = false;
               var ns = false;
               var ns_4x = false;
               var safari = false;
               var firefox = false;
               var opera = false;
               var gecko = false;			// sind: Netscape, safari, mozilla, firefox, Konqueror (und?)
               var khtml = false;			// sind: Safari, Konqueror
               var apple = false;
               var linux = false;
               var win = false;
               var hilf ="";
               
               
               if ( (navigator.appVersion).indexOf("MSIE") > -1 ) ie = true;
               if ( (navigator.appVersion).indexOf("Safari") > -1 ) safari = true;
               if ( (navigator.userAgent).indexOf("Firefox") > -1 ) firefox = true;
               if ( (navigator.userAgent).indexOf("Opera") > -1 ) opera = true;
               if ( (navigator.userAgent).indexOf("Netscape") > -1 ) ns = true;		// funktioniert ab Netscape 6 ?
               
               // detect netscape 4.x
               
               if ( (navigator.userAgent).indexOf("Mozilla/4.") == 0 
               	 && (navigator.userAgent).indexOf("Mozilla/4.0") < 0
                 && (navigator.userAgent).indexOf("Mozilla/4.5") < 0 )
               {  
                 ns_4x = true;
               }
               
               // Browser Gruppen
               
               if ( (navigator.userAgent).indexOf("Gecko") > -1 ) gecko = true;
               if ( (navigator.userAgent).indexOf("KHTML") > -1 ) khtml = true;
               
               // plattform
             	
               if ( (navigator.platform).indexOf("Mac") > -1 ) apple = true;
               if ( (navigator.platform).indexOf("Win32") > -1 ) win = true;
               
               hilf = navigator.platform;
               hilf = hilf.toLowerCase();
               if ( hilf.indexOf("unix") > -1 ) linux = true;
               if ( hilf.indexOf("linux") > -1 ) linux = true;
               
               // -------------------------------------------------------------------------------------------------------
               // je nach Browser und Plattform entsprechende css laden
               // -------------------------------------------------------------------------------------------------------
               
               // da beim Mac Navigator und MSIE css-Schriften kleiner darstellen,
               // bekommen diese Browser ein anderes Style-Sheet
               // Die Browser lassen sich in ihrer unterschiedlichen Schriftgroessen-Darstellung in
               // 2 Familien einteilen :
               //
               // Browser-Familie 1 :
               // NS4(Mac), IE4(Mac), NS4(Unix)
               //
               // Browser-Familie 2 :
               // NS4(PC), IE5(PC), IE5(Mac)
               
               // folgende dynamische Pfade WICHTIG fuer Servlets !! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
               // Fam. 1 :
       
               if (!win && ns_4x )  
                   document.write("<link rel=stylesheet type='text/css' href='mac.css'>");
               // Fam. 2:
               else
                   document.write("<link rel=stylesheet type='text/css' href='win.css'>");
                   
               
               // -------------------------------------------------------------------------------------------------------
       
           
               // da MSIE unter Windows als Fenstermasse immer das Aussenmass nimmt (alle anderen das Innenmass)
               // muessen folgende Korrektur_summanden verwendet werden :
               
               var x_add = 0;      //  Korrekturfaktor fuer MSIE unter Win in x-Ausdehnung
               var y_add = 0;      //  Korrekturfaktor fuer MSIE unter Win in y-Ausdehnung
               
               if (win && ie)            // fuer MSIE unter Win Korrekturfaktoren setzten 
               {
                   x_add = 10;
                   y_add = 30;   
               }
               
               // Fuer Detail-Ansichts-Fenster (show_big())
               
               var fenster;        // Referenz auf geoeffnetes Fenster durch openWin
               var x_plus = 30;    // Rahmen um Bild
               var y_plus = 70;    // dito
               
               
               //------------------------------------------------------------------------------------------------------//
               //                                   Funktionsabschnitt                                                 //         
               //------------------------------------------------------------------------------------------------------//        
               
               // nur zum Test
               //
               function browserTest()
               {
                  alert (  "netscape 5 : " + ns + 
                         "\nnetscape 4.x : " + ns_4x  +
                         "\nMSIE : " + ie +
                         "\nsafari : " + safari +
                         "\nfirefox : " + firefox +
                         "\nopera : " + opera +
                         "\ngecko : " + gecko +
                         "\nkhtml : " + khtml +
                         
                         "\napple    : " + apple + 
                         "\nlinux    : " + linux + 
                         "\nwindows  : " + win );
               }
              
              
              //Funktion zum Oeffnen des Produktfensters
              //
              function openProductPopup(productFile, prodName)
              {
                  //browserTest();
                  
                  
                  if (apple)  // Apple : Apfel-D funktioniert nur mit vorhandener Menubar
                  {
                    
                    window.open(productFile,prodName,"width=403,height=344,scrollbars=no,resizable=no,menubar=yes")
                  }
                  
                  
                              // Win : Strg-D funktioniert auch ohne Menubar
                  else        // x_add und y_add - siehe scripts.js (Korrekturfaktoren fuer MSIE unter Win)
                  {
                    eval('window.open(productFile,prodName,"width='+ (403 + x_add) +',height='+ (344 + y_add) +',scrollbars=no,resizable=no")');
                  }
                   
              }
              
              
              
              
              // Funktion zum Oeffnen eines beliebigen Fensters (parameterisierte Form)
              // Parameter : 
              //               file - die anzuzeigende HTML-Datei
              //               winname - Name des Fensters
              //               breite, hoehe - Fenstermasse
              //
              function openWin(file, winname, breite, hoehe)
              {
                  
                      if (apple)  // Apple : Apfel-D funktioniert nur mit vorhandener Menubar
                         eval('fenster = top.open(file,winname,"width=' + breite + ',height=' + hoehe + ',scrollbars=no,resizable=yes,menubar=yes")');
                                  // Win : Strg-D funktioniert auch ohne Menubar
                      else        // x_add und y_add - siehe scripts.js (Korrekturfaktoren fuer MSIE unter Win)
                      {
                         eval('fenster = top.open(file,winname,"width='+ (breite + x_add) +',height='+ (hoehe + y_add) +',scrollbars=no,resizable=yes")');
                      }
                      checkPopup(breite, hoehe)
              }
         
       
       	   // Test korrektheit des angezeigten Popupfenster
       	   // 1. wurde das Fenster "normal" d.h. per Link geoeffnet -> dann nur Resize (Bug MISE PC beheben)
       	   // x_size. y_size  - Groesse des Fensters
       	   function checkPopup(x_size, y_size)
       	   {
       	      fenster.resizeTo(x_size + x_add,y_size + y_add);    // sicherheitshalber nochmal auf richtige Fenstergroesse stellen (MISE unter Mac)
       	   }
       	    
             // diese Funktion schliesst ein Fenster, wartet 500ms und ruft dann die Funktion im Parameter "callback" auf.
             // Hintergrund : alle Browser haben Probleme, ein Fenster zu erzeugen, welches gerade eben geschlossen wurde.
             //
             function closeIt(toCloseWin, callback)
             {
                 if (toCloseWin == null || toCloseWin.closed)
                     ;
                 else 
                 {
                     toCloseWin.close();
                 }
                 window.setTimeout(callback,500);
             }
         
       
        
              // Funktion fuer Rollover (Variante fuer Einsatz OHNE Layer)
              // Parameter : 
              // image_name    - Name des Bild-Objektes im Document, welches durch Rollover ausgetauscht werden soll.
              // image_new     - Instanz vom Typ Image(). Enthaelt das Bild, welches anstelle des alten eingefuegt werden soll.
              //
              function m_over(image_name, image_new)
              {
                  window.document.images[image_name].src = image_new.src;
              }
              
              
              
              
              // Funktion zur Beseitigung des Layer-Bugs unter NS, da hier nach einem aendern der Window-Size durch
              // den Benutzer die Layer-Positionen verloren gehen.
              // Loesung: durch body-onload() wird diese funktion gerufen. Hier wird dann quasi ein window.resize() erkannt
              //          und dann ein reload() ausgefuehrt, wodurch NS die Layerpositionen berichtigt.
              //          Um eine Aenderung der Window-Groesse zu erkennen, muss die jeweils aktuelle Groesse gespeichert werden.
              // 
              
                           
               function check_resize()
                           { 
                             if (ns)  // nur bei Netscape
                             {
                               if (parent.frames[0].resizeCheck)      // wurde breite schon mal gesetzt ?
                               {
                                       // alle Frames aktualisieren
                                       // frame 0 sicherheitshalber zuletzt, da dieses das aktuele Script haelt
                                       //
                                       for (i = (parent.frames.length - 1 ) ; i >= 0 ; --i)
                                       {
       	                                parent.frames[i].location.reload();
       	                            }
                               }
                               else
                               {
                                   parent.frames[0].resizeCheck = true;    // nach dem body-onload wird Variable initialisiert -> ab jetzt Resize pruefen !
                               }
                             }
                           }
                           
               // zeigt einen Layer an
               function display_layers(number)
                           {
                               if (document.layers)  // fuer NS
                               {
                                   eval('window.document.lay'+number+'.visibility = "visible"');
                               }
                               else  // fuer MSIE
                               {   
                                   eval('lay'+number+'.style.visibility = "visible"');
                               }
                           }
                           
               // macht einen Layer unsichtbar
               function hide_layers(number)
                           {
                               if (document.layers)  // fuer NS
                               {
                                   eval('window.document.lay'+number+'.visibility = "hidden"');
                               }
                               else  // fuer MSIE
                               {
                                  eval('lay'+number+'.style.visibility = "hidden"');
                               }
                           }
       
       
               // erzeugt bei Click auf entsprechenden Link einen Bookmark der aktuellen Seite (nur bei MISE)
               //
               function addBookmark()
               {
                   if(ns)
                       alert("Lesezeichen erzeugen bei Netscape-Browsern :\n\n\nWindows: 'STRG-D'\nMacintosh: 'Apfel-D'");
                   
                   if(ie && win)
                   {
                       window.external.AddFavorite(location.href, document.title);
                   }
                   
                   if(ie && !win)
                   {
                       alert("Ihr Browser unterstuetzt eventuell diese Funktion nicht !\nIn diesem Fall Lesezeichen bitte manuell anlegen ('STRG-D' bzw. 'Apfel-D')");
                       window.external.AddFavorite(location.href, document.title);
                   }
                   
                   if (!ns && !ie)
                   {
                       alert("Lesezeichen erzeugen bei den meisten Browsern :\n\n\nWindows: 'STRG-D'\nMacintosh: 'Apfel-D'");
                   }
               
               }
            
               
                // oeffnet neues Ansichtfenster fuer ein einzelnes Bild (Detailansicht)
                //
                function show_big( bildquelle )
                {
                        
                        var breite = 200;
                        var hoehe = 200;
                        
                        if (!ie)    // Komfort der "Loading Image..."-Anzeige nur bei IE
                        {
                            openWin("", "", breite + x_plus , hoehe + y_plus);
                            
                            //gloabale auslesen
                            var win = fenster;
                    
                    
                            // Neues Fenster mit Inhalt fuellen
                    
                            win.document.open();
                            win.document.writeln("<html><head>");
                            win.document.writeln("</head>");
                            win.document.writeln("<body leftmargin=10 topmargin=10 marginwidth=10 marginheight=10 bgcolor=#ffffff onload='opener.resizeToFit()'><center>");
                            win.document.writeln("<img src=\"" + bildquelle + "\">");
                            win.document.writeln("<br><br><form><input type=button onClick=\"self.close();\" value=\"close\"></form>");
                            win.document.writeln("</center>");
                            win.document.writeln("</body></html>");
                            win.document.close();
                        }
                        else 
                        {
                            openWin("bildansicht.htm?" + bildquelle, "", breite + x_plus , hoehe + y_plus);
                        }
                        
                        
                
               }
               
               // wird von Detail-Bild gerufen, nachdem es sich aufgebaut hat
               // siehe show_Big()
               //
               function resizeToFit()
               {
                    if (!ie)                    // Komfort der "Loading Image..."-Anzeige nur bei IE
                       fenster.resizeTo(fenster.document.images[0].width + x_plus + x_add, fenster.document.images[0].height + y_plus + y_add); 
                    else
                    {
                        fenster.document.all.warten.style.visibility='hidden';
                        fenster.document.all.bild.style.visibility='visible';
                        fenster.resizeTo(fenster.document.images[0].width + x_plus + x_add, fenster.document.images[0].height + y_plus + y_add); 
                    }
               }
               
                
                //Preload von Bildern, die z.B. fuer Rollover benoetigt werden.   
                //Beispiel Benutzung: <BODY onLoad="MM_preloadImgs('btn_name_de_over.gif')">
         
                function preloadImgs() 
                {
                  var d=document; 
                  
                  if(d.images){ 
                      if(!d.p) d.p=new Array();
                      var i,j=d.p.length,a=preloadImgs.arguments; 
                      for(i=0; i<a.length; i++)
                      if (a[i].indexOf("#")!=0){ d.p[j]=new Image; d.p[j++].src=a[i];}}
                }
                
                //Um ein Objekt zu finden.
                //Wird von swapImg() benoetigt.
                function findObj(n, d)
                {
                  var p,i,x;  
                  if(!d) d=document; 
                  if((p=n.indexOf("?"))>0&&parent.frames.length) 
                  {
                    d=parent.frames[n.substring(p+1)].document; 
                    n=n.substring(0,p);
                  }
                  if(!(x=d[n])&&d.all) x=d.all[n]; 
                  for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
                  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=findObj(n,d.layers[i].document);
                  if(!x && d.getElementById) x=d.getElementById(n); return x;
                }
                
                //In Verbindung mit swapImg() genutzt.
                //Beispiel: <a href="#" onMouseOut="swapImgRestore()" onMouseOver="swapImg('Image1','','btn_name_de_over.gif',1)">
                function swapImgRestore() 
                {
                    var i,x,a=document.sr; 
                    for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
                }


                //Rollover
                //benoetigt findObj(), funktioniert in Kombination mit swapImgRestore()
                //Beispiel: <a href="#" onMouseOut="swapImgRestore()" onMouseOver="swapImg('Image1','','btn_name_de_over.gif',1)">
                function swapImg() 
                { 
                  var i,j=0,x,a=swapImg.arguments; 
                  document.sr=new Array; 
                  for(i=0;i<(a.length-2);i+=3)
                   if ((x=findObj(a[i]))!=null){document.sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
                } 
                
               // Zum Oeffnen von Popups       
               // onClick="openPopup('TEST','blah','width=333,height=222')"
                function openPopup(theURL,name,features) 
                {
                    window.open(theURL,name,features);
                }
