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.
 *
 * Auf manchen Rechnern 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");
}

// Anpassen der Hoehe von linkeSpalte und contentBottomBg
function adjustLayout()
{
   // Ermitteln der Hoehe von "linkeSpalte" und "contentBottomBg"
   var linkeSpalteHeight = xHeight("linkeSpalte");
   var contentBottomBg = xHeight("contentBottomBg");
   var LSSpacerHeight = xHeight("LSSpacer");

   // Ermitteln der groessten Hoehe
   var maxHeight = Math.max(linkeSpalteHeight,contentBottomBg);

   // Zuweisen der groessten Hoehe
   xHeight("linkeSpalte",maxHeight + 1);
   xHeight("contentBottomBg",maxHeight);

   // Manchmal ist der content groesser als die linkeSpalte -> ausgleichen... (z.B. Unterkategorie)
   if(xHeight("linkeSpalte") < xHeight("content"))
   {
      xHeight("linkeSpalte",xHeight("content"));
   }
}

window.onload = function()
{
   xAddEventListener(window,"resize",adjustLayout,false);
   adjustLayout();
}

// 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"
   }
}

/*
 * Anfang Ajax-Suche
 */
var stopload = false;

/*
 * diese funktion formatiert den div[produktLayer] in der prodSuche, und veranlasst dort die produkte aus zu geben.
 */
function getProduct(mySrc, produktLayer, searchValue)
{
   layerObject = document.getElementById(produktLayer);
   if(searchValue.length <= 2 || 1 == document.getElementById('hideSearchLayer').value)
   {
      layerObject.style.display = 'none';
      document.getElementById('hideSearchLayer').value = 0;
      return false;
   }
   var Ergebnis = searchValue.match(/ü|ö|ä|ß/g);
   var replaceArray = new Array();
   replaceArray['ü'] = 'ue';
   replaceArray['ö'] = 'oe';
   replaceArray['ä'] = 'ae';
   replaceArray['ß'] = 'ss';
   if (Ergebnis)
   {
      for (var i = 0; i < Ergebnis.length; ++i)
      {
         searchValue = searchValue.replace(Ergebnis[i], replaceArray[Ergebnis[i]]);
      }
   }
   layerObject.style.zIndex = '9998';
   layerObject.style.top = '48px';

   if(searchValue != document.getElementById('lastSearch').value)
   {
      document.getElementById('lastSearch').value = searchValue;
      layerObject.innerHTML = '<div class="produktBox"><div class="produktBereichNoBorder"><div class="spacer"></div><img src="'+document.getElementById('thisUrl').value+'/images/ladebalken.gif" width="87" height="11" alt="" /> l&auml;dt...<div class="spacer"></div></div></div><div class="footer" onmouseover="javascript:hideLayer(\'produktLayer\');"></div>';
      stopload = false;
      loadFile(produktLayer, mySrc, new Array('searchValue='+searchValue));
   }
   else
   {
      layerObject.style.display = 'inline';
   }
}

/*
 * diese funktion lädt eine externe datei
 * die parameter werden per post übergeben
 */
function loadFile (ausgabeId, mySrc, params_array)
{
   if (window.XMLHttpRequest)
   {
      http = new XMLHttpRequest();
   }
   else if (window.ActiveXObject)
   {
      http = new ActiveXObject("Microsoft.XMLHTTP");
   }
   if (http != null)
   {
      document.getElementById(ausgabeId).style.display = 'inline';
      http.open("POST", mySrc, true);
      http.onreadystatechange = ausgeben;
      http.setRequestHeader
      (
         "Content-Type",
         "application/x-www-form-urlencoded"
      );
      var params = params_array.join("&");
      http.send(params);
   }

   // sollte als funktion ausgeführ werden, da sonst die datei noch nicht geladen ist.
   function ausgeben()
   {
      try
      {
         if (http.readyState == 4 && false === stopload)
         {
            document.getElementById(ausgabeId).innerHTML = http.responseText;
         }
      }
      catch(e)
      {
         // eine fehlermeldung ist meiner meinung nach im frontend nicht nötig
      }
   }
}

function mySetFocus (event, mouseObject)
{
   if(mouseObject)
   {
      var mouseObject = mouseObject;
   }
   else
   {
      var mouseObject = false;
   }
   if('1lclick' == event)
   {
      var keyCode = event;
   }
   else
   {
      var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
   }
   // Mozilla
   if(document.getSelection)
   {
      if(40 == keyCode)
      {
         event.cancelBubble = true;
         var myObjekt_array = new Array();
         myObjekt_array = document.getElementsByName('produktBereich');
         if(myObjekt_array.length == 0)
         {
            return true;
         }
         var whatObject = -1;
         for(var i =0; i < myObjekt_array.length-1; i++)
         {
            var myObjekt = document.getElementById(myObjekt_array[i].id);
            if(myObjekt.style.color != '')
            {
               document.getElementById('selectedProd').value = myObjekt_array[i+1].id;
               document.getElementById(myObjekt_array[i+1].id).style.color = '#36A7E9';
               document.getElementById(myObjekt_array[i].id).style.color = '';
               whatObject=1;
               break;
            }
         }
         if(-1 == whatObject)
         {
            document.getElementById('selectedProd').value = myObjekt_array[0].id;
            document.getElementById(myObjekt_array[0].id).style.color = '#36A7E9';
            document.getElementById(myObjekt_array[myObjekt_array.length-1].id).style.color = '';
         }
         //document.getElementById(whatObject).focus();
      }
      else if(38 == keyCode)
      {
         event.cancelBubble = true;
         var myObjekt_array = new Array();
         myObjekt_array = document.getElementsByName('produktBereich');
         if(myObjekt_array.length == 0)
         {
            return true;
         }
         var whatObject = -1;
         for(var i =0; i < myObjekt_array.length; i++)
         {
            var myObjekt = document.getElementById(myObjekt_array[i].id);
            if(myObjekt.style.color != '')
            {
               if(i == 0)
               {
                  document.getElementById('selectedProd').value = myObjekt_array[myObjekt_array.length-1].id;
                  document.getElementById(myObjekt_array[myObjekt_array.length-1].id).style.color = '#36A7E9';
                  document.getElementById(myObjekt_array[0].id).style.color = '';
               }
               else
               {
                  document.getElementById('selectedProd').value = myObjekt_array[i-1].id;
                  document.getElementById(myObjekt_array[i-1].id).style.color = '#36A7E9';
                  document.getElementById(myObjekt_array[i].id).style.color = '';
               }
               whatObject=1;
               break;
            }
         }
         if(-1 == whatObject)
         {
            document.getElementById('selectedProd').value = myObjekt_array[myObjekt_array.length-1].id;
            document.getElementById(myObjekt_array[myObjekt_array.length-1].id).style.color = '#36A7E9';
            document.getElementById(myObjekt_array[0].id).style.color = '';
         }
         //document.getElementById(whatObject).focus();
      }
      else if(13== keyCode)
      {
         event.cancelBubble = true;
         if(document.getElementById('selectedProd').value != '-1')
         {
            window.location.href = document.getElementById(document.getElementById('selectedProd').value+'_img').href;
            return false;
         }
         else
         {
            return true;
         }
      }
      else if(1 == keyCode)
      {
         myObjekt_array = document.getElementsByName('produktBereich');
         if(myObjekt_array.length == 0)
         {
            return true;
         }
         var whatObject = -1;
         for(var i =0; i < myObjekt_array.length; i++)
         {
            document.getElementById(myObjekt_array[i].id).style.color = '';
         }
         mouseObject.style.color = '#36A7E9';
      }
      else if(mouseObject)
      {
         window.location.href = document.getElementById(mouseObject.id+'_img').href;
         return false;
      }
      else if(event.shiftKey)
      {
         if(9 == keyCode)
         {
            event.cancelBubble = true;
            var myObjekt_array = new Array();
            myObjekt_array = document.getElementsByName('produktBereich');
            if(myObjekt_array.length == 0)
            {
               return true;
            }
            var whatObject = -1;
            for(var i =0; i < myObjekt_array.length; i++)
            {
               var myObjekt = document.getElementById(myObjekt_array[i].id);
               if(myObjekt.style.color != '')
               {
                  if(i == 0)
                  {
                     document.getElementById('selectedProd').value = myObjekt_array[myObjekt_array.length-1].id;
                     document.getElementById(myObjekt_array[myObjekt_array.length-1].id).style.color = '#36A7E9';
                     document.getElementById(myObjekt_array[0].id).style.color = '';
                  }
                  else
                  {
                     document.getElementById('selectedProd').value = myObjekt_array[i-1].id;
                     document.getElementById(myObjekt_array[i-1].id).style.color = '#36A7E9';
                     document.getElementById(myObjekt_array[i].id).style.color = '';
                  }
                  whatObject=1;
                  break;
               }
            }
            if(-1 == whatObject)
            {
               document.getElementById('selectedProd').value = myObjekt_array[myObjekt_array.length-1].id;
               document.getElementById(myObjekt_array[myObjekt_array.length-1].id).style.color = '#36A7E9';
               document.getElementById(myObjekt_array[0].id).style.color = '';
            }
            return false;
         }
         else
         {
            return true;
         }
      }
      else if(9 == keyCode)
      {
         event.cancelBubble = true;
         var myObjekt_array = new Array();
         myObjekt_array = document.getElementsByName('produktBereich');
         if(myObjekt_array.length == 0)
         {
            return true;
         }
         var whatObject = -1;
         for(var i =0; i < myObjekt_array.length-1; i++)
         {
            var myObjekt = document.getElementById(myObjekt_array[i].id);
            if(myObjekt.style.color != '')
            {
               document.getElementById('selectedProd').value = myObjekt_array[i+1].id;
               document.getElementById(myObjekt_array[i+1].id).style.color = '#36A7E9';
               document.getElementById(myObjekt_array[i].id).style.color = '';
               whatObject=1;
               break;
            }
         }
         if(-1 == whatObject)
         {
            document.getElementById('selectedProd').value = myObjekt_array[0].id;
            document.getElementById(myObjekt_array[0].id).style.color = '#36A7E9';
            document.getElementById(myObjekt_array[myObjekt_array.length-1].id).style.color = '';
         }
      }
      else
      {
         return true;
      }
      return false;
   }
   // Internet Explorer
   else if(document.selection)
   {
      if(40 == keyCode)
      {
         event.cancelBubble = true;
         var myObjekt_array = new Array();
         var divs = document.getElementsByTagName("div");
         var j=0;
         for(var i =0; i < divs.length-1; i++)
         {
            if('produktBereich' == divs[i].name)
            {
               myObjekt_array[j] = divs[i];
               j++;
            }
         }
         if(myObjekt_array.length == 0)
         {
            return true;
         }
         var whatObject = -1;
         for(var i =0; i < myObjekt_array.length-1; i++)
         {
            var myObjekt = document.getElementById(myObjekt_array[i].id);
            if(myObjekt.style.color != '')
            {
               document.getElementById('selectedProd').value = myObjekt_array[i+1].id;
               document.getElementById(myObjekt_array[i+1].id).style.color = '#36A7E9';
               document.getElementById(myObjekt_array[i].id).style.color = '';
               whatObject=1;
               break;
            }
         }
         if(-1 == whatObject)
         {
            document.getElementById('selectedProd').value = myObjekt_array[0].id;
            document.getElementById(myObjekt_array[0].id).style.color = '#36A7E9';
            document.getElementById(myObjekt_array[myObjekt_array.length-1].id).style.color = '';
         }
      }
      else if(38 == keyCode)
      {
         event.cancelBubble = true;
         var myObjekt_array = new Array();
         var divs = document.getElementsByTagName("div");
         var j=0;
         for(var i =0; i < divs.length-1; i++)
         {
            if('produktBereich' == divs[i].name)
            {
               myObjekt_array[j] = divs[i];
               j++;
            }
         }
         if(myObjekt_array.length == 0)
         {
            return true;
         }
         var whatObject = -1;
         for(var i =0; i < myObjekt_array.length; i++)
         {
            var myObjekt = document.getElementById(myObjekt_array[i].id);
            if(myObjekt.style.color != '')
            {
               if(i == 0)
               {
                  document.getElementById('selectedProd').value = myObjekt_array[myObjekt_array.length-1].id;
                  document.getElementById(myObjekt_array[myObjekt_array.length-1].id).style.color = '#36A7E9';
                  document.getElementById(myObjekt_array[0].id).style.color = '';
               }
               else
               {
                  document.getElementById('selectedProd').value = myObjekt_array[i-1].id;
                  document.getElementById(myObjekt_array[i-1].id).style.color = '#36A7E9';
                  document.getElementById(myObjekt_array[i].id).style.color = '';
               }
               whatObject=1;
               break;
            }
         }
         if(-1 == whatObject)
         {
            document.getElementById('selectedProd').value = myObjekt_array[myObjekt_array.length-1].id;
            document.getElementById(myObjekt_array[myObjekt_array.length-1].id).style.color = '#36A7E9';
            document.getElementById(myObjekt_array[0].id).style.color = '';
         }
      }
      else if(13== keyCode)
      {
         event.cancelBubble = true;
         if(document.getElementById('selectedProd').value != '-1')
         {
            window.location.href = document.getElementById(document.getElementById('selectedProd').value+'_img').href;
            return false;
         }
         else
         {
            return true;
         }
      }
      else if(event.shiftKey)
      {
         if(9 == keyCode)
         {
            event.cancelBubble = true;
            var myObjekt_array = new Array();
            var divs = document.getElementsByTagName("div");
            var j=0;
            for(var i =0; i < divs.length-1; i++)
            {
               if('produktBereich' == divs[i].name)
               {
                  myObjekt_array[j] = divs[i];
                  j++;
               }
            }
            if(myObjekt_array.length == 0)
            {
               return true;
            }
            var whatObject = -1;
            for(var i =0; i < myObjekt_array.length; i++)
            {
               var myObjekt = document.getElementById(myObjekt_array[i].id);
               if(myObjekt.style.color != '')
               {
                  if(i == 0)
                  {
                     document.getElementById('selectedProd').value = myObjekt_array[myObjekt_array.length-1].id;
                     document.getElementById(myObjekt_array[myObjekt_array.length-1].id).style.color = '#36A7E9';
                     document.getElementById(myObjekt_array[0].id).style.color = '';
                  }
                  else
                  {
                     document.getElementById('selectedProd').value = myObjekt_array[i-1].id;
                     document.getElementById(myObjekt_array[i-1].id).style.color = '#36A7E9';
                     document.getElementById(myObjekt_array[i].id).style.color = '';
                  }
                  whatObject=1;
                  break;
               }
            }
            if(-1 == whatObject)
            {
               document.getElementById('selectedProd').value = myObjekt_array[myObjekt_array.length-1].id;
               document.getElementById(myObjekt_array[myObjekt_array.length-1].id).style.color = '#36A7E9';
               document.getElementById(myObjekt_array[0].id).style.color = '';
            }
            return false;
         }
         else
         {
            return true;
         }
      }
      else if(9 == keyCode)
      {
         event.cancelBubble = true;
         var myObjekt_array = new Array();
         var divs = document.getElementsByTagName("div");
         var j=0;
         for(var i =0; i < divs.length-1; i++)
         {
            if('produktBereich' == divs[i].name)
            {
               myObjekt_array[j] = divs[i];
               j++;
            }
         }
         if(myObjekt_array.length == 0)
         {
            return true;
         }
         var whatObject = -1;
         for(var i =0; i < myObjekt_array.length-1; i++)
         {
            var myObjekt = document.getElementById(myObjekt_array[i].id);
            if(myObjekt.style.color != '')
            {
               document.getElementById('selectedProd').value = myObjekt_array[i+1].id;
               document.getElementById(myObjekt_array[i+1].id).style.color = '#36A7E9';
               document.getElementById(myObjekt_array[i].id).style.color = '';
               whatObject=1;
               break;
            }
         }
         if(-1 == whatObject)
         {
            document.getElementById('selectedProd').value = myObjekt_array[0].id;
            document.getElementById(myObjekt_array[0].id).style.color = '#36A7E9';
            document.getElementById(myObjekt_array[myObjekt_array.length-1].id).style.color = '';
         }
      }
      else if(mouseObject)
      {
         if('1lclick' == keyCode)
         {
            window.location.href = document.getElementById(mouseObject.id+'_img').href;
         }
         else
         {
            var myObjekt_array = new Array();
            var divs = document.getElementsByTagName("div");
            var j=0;
            for(var i =0; i < divs.length-1; i++)
            {
               if('produktBereich' == divs[i].name)
               {
                  myObjekt_array[j] = divs[i];
                  j++;
               }
            }
            if(myObjekt_array.length == 0)
            {
               return true;
            }
            var whatObject = -1;
            for(var i =0; i < myObjekt_array.length; i++)
            {
               document.getElementById(myObjekt_array[i].id).style.color = '';
            }
            mouseObject.style.color = '#36A7E9';
         }
         return false;
      }
      else
      {
         return true;
      }
      return false;
   }
}

function hideLayer(layerId)
{
   document.getElementById(layerId).style.display='none';
   if(document.getElementById('hideSearchLayer'))
   {
      document.getElementById('hideSearchLayer').value = '1';
   }
   if(document.getElementById('hidePraemieLayer'))
   {
      document.getElementById('hidePraemieLayer').value = '1';
   }
}

function paypalTimedRedirect()
{
   var secs = parseInt($('#seconds').html());
   if(secs <= 0)
   {
      return $('#paypalForm').submit();
   }
   $('#seconds').html((secs -1));
   window.setTimeout("paypalTimedRedirect()", 1000);
}
/*
 * Ende Ajax-Suche
 */
