function popup(url)
{
   newPopup = window.open(url, "", "width=700, height=500, top=50, left=50, location=yes, menubar=yes, toolbar=yes, status=yes, scrollbars=yes, resizable=yes");
}

/*
 * Diese Popup-Funktion erzeugt ein neues Fenster
 * mit definierter Groesse;
 *
 * Auch auf Thomas Rechnern ;-).  Bei Ihm wollte das Popup,
 * das mit der Funktion 'popup()' erzeugt wurde, partout
 * nicht die angegebenen Werte fuer Breite und Hoehe annehmen!
 * Die Ursache lag wohl in dem 3. Argument von 'window.open()'.
 */
function popupFirmSize(url, width, height)
{
   if(null == width)
   {
      var width = 700;
   }
   if(null == height)
   {
      var height = 500;
   }
   newPopup = window.open(url, "", "width=" + width + ", height="+ height +", top=50, left=50, location=no, menubar=no, toolbar=no, status=no, scrollbars=no, resizable=yes");
}


/*
 * Gibt die Breite zurueck, nach der die Angebotsboxen
 * von alleine umbrechen (weil "#content" eben nicht
 * breit genug ist fuer alle Angebotsboxen)
 */
function getOptimaleAngebotsContainerBreite()
{
   // Breite von 'content' abzueglich (padding-left + padding-right)
   var contentWidth = xWidth("content");
   // Breite einer Angebotsbox ( inclusive 'border-left' & 'border-right', 'padding-left' & 'padding-right' UND 'margin-left' & 'margin-right' einer Angebotsbox!)
   var angebotWidth = 202;
   // Wie oft passt eine Angebotsbox in '#content'
   var angebotCount =  parseInt(contentWidth/angebotWidth);
   // + evtl. 'border-left' bzw. 'border-right' des Angebotscontainers
   var optimaleBreite = angebotCount*angebotWidth;

   return optimaleBreite;
}

/*
 * gibt "blockId" die Breite, die alle Angebotsboxen ".A"
 * in dem DIV "blockClass" benoetigen.
 * (Die eigentliche Zentrierung wird per "margin:auto;" gemacht)
 */
function centerAngebotsBlock(blockId,blockClass)
{
   var divs = document.getElementsByTagName('div');
   var zaehler = 0;
   var angebotsBreite = 202;
   /*
    * Wir gehen nun alle DIVs durch.
    * Wenn wir auf das DIV mit dem Uebergebenen Klassennamen (blockClass)
    * stossen, zaehlen wir das Vorkommen der Angebotsboxen. Bis wir
    * auf das naechste "blockClass"-DIV stossen.
    */
   for(var i=0; i<divs.length; i++)
   {
      if(blockClass == divs[i].className)
      {
         // Angebotsboxen gezaehlt und schon beim 2. Block...
         if(zaehler != 0)
         {
            var gesamtBreite = zaehler * angebotsBreite;
            document.getElementById(blockId).style.width = gesamtBreite + "px";
            return;
         }
      }
      if("A" == divs[i].className)
      {
         zaehler++;
      }
   }
}

// -------------- dieses Script passt die Hoehe von "rechteSpalte" automatisch an ----------------
function adjustLayout()
{
   // --------------------------------------------------------------------------------------------
   // Die Anpassung (zB Höhe & Breite) von Objekten im Quelltext
   // muss VOR der Spaltenhöhenanpassung erfolgen!
   // --------------------------------------------------------------------------------------------

   var optimaleBreite = getOptimaleAngebotsContainerBreite();

   if ( document.getElementById("startAC") != null )
   {
      xWidth("startAC",optimaleBreite);
   }
   if ( document.getElementById("aktionenC") != null )
   {
      /*xWidth("aktionenC",optimaleBreite);*/
      /*centerAngebotsBlock("aktionenC","aktionsBlock");*/
   }
   if ( document.getElementById("katAC") != null )
   {
      xWidth("katAC",optimaleBreite);
   }
   if ( document.getElementById("recAG") != null )
   {
      xWidth("recAG",optimaleBreite);
   }
   if ( document.getElementById("recZG") != null )
   {
      xWidth("recZG",optimaleBreite);
   }
   if ( document.getElementById("microAG") != null )
   {
      xWidth("microAG",optimaleBreite);
   }
   if ( document.getElementById("empfehlungenC") != null )
   {
      xWidth("empfehlungenC",optimaleBreite);
   }

   // --------------------------------------------------------------------------------------------
   // Die Anpassung (zB Höhe & Breite) von Objekten im Quelltext
   // muss VOR der Spaltenhöhenanpassung erfolgen!
   // ------------------------------------------------------------------------------------- (Ende)

   // Ermitteln der realen Hoehen...
   var lsHeight = xHeight("linkeSpalte");
   var rsHeight = xHeight("rechteSpalte");
   var conHeight = xHeight("content");

   // Um zu vergleichen, muessen wir die unterschiedl. Hoehen beruecksichtigen...
   /*
      - "content" beginnt bei 170px!
      - "linkeSpalte" beginnt bei 149px! -> 21 = 170 - 149!
      - "rechteSpalte" beginnt bei 0px! 
   */
   var diffLs = 21;
   var diffRs = 170;
   var calcLsHeight = lsHeight-diffLs;
   var calcRsHeight = rsHeight-diffRs;
   var maxHeight = Math.max(calcLsHeight, calcRsHeight, conHeight);

   // Zuweisen der groessten Hoehe...
   var newLsHeight = maxHeight+diffLs;
   var newRsHeight = maxHeight+diffRs;
   xHeight("linkeSpalte",newLsHeight);
   xHeight("rechteSpalte",newRsHeight);
   xHeight("content",maxHeight);

   // weil im IE ein (im Wiki unter "CSS" dokumentierter) Bug bei ungeraden Hoehen vorliegt...
   if ( document.all )
   {
      if ( maxHeight%2 != 0 )
      {
         // da Hoehe von "rechteSpalte" und "content" ungerade...
         document.getElementById("footerRS").style.bottom = -1;
         document.getElementById("footerCT").style.bottom = -1;
      }
      else
      {
         // wenn "maxHeight" gerade ist, ist die Hoehe von "linkeSpalte" ungerade
         document.getElementById("footerLS").style.bottom = -1;
      }
   }
}

window.onload = function()
{
   xAddEventListener(window, "resize", adjustLayout, false);
   adjustLayout();
   // -------------- dieses Script passt die Hoehe von "rechteSpalte" automatisch an ----------------

   // IE-Button-Hover (Anfang)
   //
   // die folgende "if" - Anw. testet ob Browser ein IE5+ ist!
   if (document.all&&document.getElementById)
   {
      // "buttons" ist ein Array aller im document befindlichen Buttons
      var buttons = document.getElementsByTagName("button");
      for (i=0; i<buttons.length; i++)
      {
         buttons[i].onmouseover=function()
         {
            this.className+=" hoverIE";
         }
         buttons[i].onmouseout=function()
         {
            this.className=this.className.replace(" hoverIE", "");
         }
      }

      // button im auslandsbestellung-formular getElementsByName anstatt getElementsByTagName
      var button_ausland = document.getElementsByName("button_ausland");
      for (i=0; i<button_ausland.length; i++)
      {
         button_ausland[i].onmouseover=function()
         {
            this.className+=" hoverIE";
         }
         button_ausland[i].onmouseout=function()
         {
            this.className=this.className.replace(" hoverIE", "");
         }
      }

      // den INPUTs ebenfalls einen Hover-Effekt geben
      var inputs = document.getElementsByTagName("input");
      for (i=0; i<inputs.length; i++)
      {
         if (
                "button" == inputs[i].className
             || "button noWidth" == inputs[i].className
             || "noWidth button" == inputs[i].className
            )
         {
            inputs[i].onmouseover=function()
            {
               this.className+=" buttonHoverIE";
            }
            inputs[i].onmouseout=function()
            {
               this.className=this.className.replace(" buttonHoverIE", "");
            }
         }
      }
   }
   // IE-Button-Hover (Ende)

}

// Bestsella-Funktion
function bestscout(page)
{
   window.open("https://www.bestscout.com/bestScout/userlogin?unit=apobyte&lp="+page, "sppopup", "width=400,height=255,noresize");
   window.name = 'ScreenPilotMainFrame';
   return;
}

// dateCheck Funktion
// Diese Funktion generiert bei einer Datumseingabe per Select Box, die Select Box fuer die Tage, nach der Auswahl des Monates bzw Jahres automatisch
function dateCheck(tag_id, monat_id, jahr_id)
{
   var tag = tag_id.value;
   var monat = monat_id.value;
   var jahr = jahr_id.value;

   // Ausgewähltes Jahr ein Schaltjahr?
   var schaltjahr = false;
   var schaltjahr_string = new String(jahr / 4);
   if (-1 == schaltjahr_string.indexOf("."))
   {
      schaltjahr = true;
   }

   if(4 == monat || 6 == monat || 9 == monat || 11 == monat) // Monat mit 30 Tagen
   {
      // Loescht Tag 31 und fügt 29 und 30 neu ein
      tag_id.options[31] = null;
      tag_id.options[30] = new Option("30", "30", false, false);
      tag_id.options[29] = new Option("29", "29", false, false);
      if(tag <= 30 && tag >= 1) { tag_id.options[tag] = new Option(tag, tag, false, true); } // Selected einen vorher ausgewählten Tag innerhalb der neuen Tages"Range"
   }
   else if(02 == monat) // Februar mit 28 bzw 29 Tagen
   {
      // Je nach Schaltjahr 29 oder 28 Tage
      if( schaltjahr )
      {
         // Fuegt Tag 29 ein und loescht 30 und 31
         tag_id.options[31] = null;
         tag_id.options[30] = null;
         tag_id.options[29] = new Option("29", "29", false, false);
         if(tag <= 29 && tag >= 1) { tag_id.options[tag] = new Option(tag, tag, false, true); } // Selected einen vorher ausgewählten Tag innerhalb der neuen Tages"Range"
      }
      else
      {
         // Loescht Tag 29,30 und 31
         tag_id.options[31] = null;
         tag_id.options[30] = null;
         tag_id.options[29] = null;
         if(tag <= 28 && tag >= 1) { tag_id.options[tag] = new Option(tag, tag, false, true); } // Selected einen vorher ausgewählten Tag innerhalb der neuen Tages"Range"
      }
   }
   else  // Monat mit 31 Tagen
   {
      tag_id.options[31] = new Option("31", "31", false, false);
      tag_id.options[30] = new Option("30", "30", false, false);
      tag_id.options[29] = new Option("29", "29", false, false);
      if(tag <= 31 && tag >= 1) { tag_id.options[tag] = new Option(tag, tag, false, true); } // Selected einen vorher ausgewählten Tag innerhalb der neuen Tages"Range"
   }
}