/*
15.09.09
- neue Funktion "bonitaet": überprüft die Bonität bei Neukunden
- neue Funktion "togglePayment": zeigt die Auswahlmöglichkeiten für die Bezahlung an

26.09.06
- Funktion "showCustomerOrder" optimiert: Größe des Fenster abhängig von aufrufender Seite

25.06.09
- neue Funktion "callSpecialPriceProduct": ruft Angebote-Fenster auf

22.06.09
- neue Funktion "showCustomerOrder": zeigt einen Auftrag bei Klick auf die Auftragsnummer in "Mein Konto" in einem sep. Fenster an
- neue Funktion "check18basket": Überprüfung des Warenkorbes auf ab-18-Artikel

12.06.09
- es sollen nur maximal 3 "Kunden kauften auch"-Artikel angezeigt werden

02.06.09
- neue Funktion callSimProduct: ruft Layout-Fenster mit einem Artikel auf

28.05.09
- neue Funktion changeSimProducts: wechselt die angezeigten gleichzeitig bestellten Artikel

27.05.09
- Array für IDs der aktuell angezeigten Artikel: arrProductsDisplayed
- Arrays für IDs der aktuell angezeigten gleichzeitig bestellten Artikel: arrSimProductsDisplayed und arrSimProducts
- Funktion zur Anzeige der von Kunden zusätzlich bestellten Artikel: showSimProducts

05.05.09
- Anrede (salutation) wird zu Titel
- Geschlecht (gender) wird zu Anrede

30.03.09
- Externe Bestellungen über nordseetraum-Seiten werden durch die Variablen extern und externID gekennzeichnet,
  wobei extern die URL ist und externID die Objekt-ID

30.01.09
- neue Variable wird bei der bestellung mitgesendet: "extern" => wenn gesetzt, erfolgte die Bestellung über eine externe Seite, z. B. 'nordseetraum'

05.11.08
- neue Funktion showMyLogin, genau wie showLogin, nur angepasst für Aufruf "Mein Konto"
- neue Funktion showMyAccount zeigt den Bereich "Mein Konto" an
- neue Funktion submitMyLogin, genau wie submitLogin, nur angepasst für Aufruf "Mein Konto"
- neue Funktion submitMyNewLogin: übermittelt die neuen Anmeldedaten eines Kunden
- neue Funktion setMyData: lädt die persönlichen Daten in die Eingabemaske im Bereich "Mein Konto"
- neue Funktion saveMyData: speichert die persönlichen Daten im Bereich "Mein Konto"
- neue Funktion setMyAltData: lädt die alternative Lieferadresse in die Eingabemaske im Bereich "Mein Konto"
- neue Funktion saveMyAltData: speichert die alternative Lieferadresse im Bereich "Mein Konto"
- neue Funktion setMyBank: lädt die Bankdaten in die Eingabemaske im Bereich "Mein Konto"
- neue Funktion saveMyBank: speichert die Bankdaten im Bereich "Mein Konto"
- neue Funktionen getMyOrders/setMyOrders: lädt die bisherigen Bestellungen in die zugehörige Liste im Bereich "Mein Konto"

04.11.08
- neue Funktion myLoginRequest, genau wie loginRequest, nur das Mail-Eingabefeld ist frmMyLoginRequest statt frmLoginRequest

15.10.08
- OnKey.Event für Firefox deaktiviert

13.10.08
- Gast-Login optimiert: keine Anmelde-Daten und kein separates Ankreuzkästchen, 
  stattdessen HIDDEN-Fields

30.09.08
- Funktion setPayment überprüft ab sofort per AJAX, ob es sich um einen Neukunden handelt.
*/

// Array für Hauptkategorien
arrMaincats = new Array();

// Array für Rubriken
arrCats = new Array();

// Array für Artikel
arrProducts = new Array();

// Array für Einheiten eines Produktes
arrUnits = new Array();

// Array für Einheiten eines Produktes (für Preisbestimmung)
arrFrontendUnits = new Array();

// Array für Gebindegrößen
arrAmounts = new Array();

// Array für Mehrwertsteuern
arrMwst = new Array();

// Array für Kunden
arrCustomers = new Array();

// Array für Kundenaufträge
arrOrders = new Array();

// Array für Liefermöglichkeiten
arrSuppliers = new Array();

// Array für Zahlungsmöglichkeiten
arrPayments = new Array();

// Array für IDs der aktuell angezeigten Artikel
arrProductsDisplayed = new Array();

// Array für IDs der aktuell angezeigten gleichzeitig bestellten Artikel
arrSimProducts = new Array(); // hier kommen alle Artikel und deren Vorschau rein, die angezeigt werden können
arrSimProductsDisplayed = new Array(); // hier kommt die Zuordnung der Artikel rein

////////////////////////////////////////////////////////////////////////////////
// Funktionen zum Laden der Daten in JS-Arrays
////////////////////////////////////////////////////////////////////////////////
/*
// wird bei Erstaufruf des Online-Shops gestartet
function refreshData()
{
	// Warenkorb-Status ändern
	infoBasket();

	// Startsymbole
	toggleShopMenu('');

   // Zeitstempel benutzen, damit der Aufruf nicht aus dem Cache erfolgt
   var datum = new Date();
   var timestamp = Date.parse(datum);

   var param = "timestamp=" + timestamp +
               "&action=refreshData";

   // AJAX-Request absetzen
	$('frontend').update('<img src=gfx/loading-16x16.gif width=16 height=16 style="border:0" /> Bitte haben Sie einen Moment Geduld! Die Artikeldaten f&uuml;r den Online-Shop werden noch geladen.');
	var ajax = new Ajax.Request
   (
      "inc/ajax/frontend.ajax.php",
      {
         method: "post",
         postBody: param,
			asynchronous: true,
         requestHeader:["Content-Type", "text/html"],
         onComplete: function(r)
         {
				eval(r.responseText);
			   
			   // Shop-Header anzeigen
			   $('tableShopHeader').show();
			   
			   // Übersicht mit allen Hauptrubriken aktualisieren
				createMaincatsOverview();
		
         },
         onFailure: function(r)
         {
            falert(r.responseText);
         }
      }
   )
}
*/

// Hauptrubriken-Übersicht generieren
var timerMaincatsOverview;
function createMaincatsOverview()
{
	// Buttons ausblenden
   toggleShopMenu('');

	// Schritt speichern	
	$('step').value = 'maincats';

	// Überschrift aktualisieren
	$('infoOverview').update('&Uuml;bersicht');

	// Warteanzeige
	ExtWait('Bitte haben Sie einen Moment Geduld! Die &Uuml;bersicht aller Rubriken wird jetzt geladen.');
	
	// Inhaltsseite leeren
	$('frontend').update('');

   // Zeitstempel benutzen, damit der Aufruf nicht aus dem Cache erfolgt
   var datum = new Date();
   var timestamp = Date.parse(datum);

	var param = "timestamp=" + timestamp +
					"&action=createMaincatsOverview";

	// AJAX-Request absetzen
	// kein ExtWait, da Funktion innerhalb einer anderen Funktion aufgerufen wird
	var ajax = new Ajax.Request
   (
      "inc/ajax/frontend.ajax.php",
      {
         method: "post",
         postBody: param,
         requestHeader:["Content-Type", "text/html"],
         onComplete: function(r)
         {
            eval(r.responseText);
            
			   // Shop-Header anzeigen
			   $('tableShopHeader').show();

            // passendes Menü anzeigen
            toggleShopMenu('maincats');
            
            // Warteanzeige aus
            ExtWait('');
         },
         onFailure: function(r)
         {
            falert(r.responseText);
         }
      }
   )
}

////////////////////////////////////////////////////////////////////////////////
// alle Funktionen für die Artikel-Übersicht
////////////////////////////////////////////////////////////////////////////////
// Happy-Hour-Artikel einer Hauptrubrik anzeigen
function createCatOverviewHH(id1){
	// Buttons ausblenden
   toggleShopMenu('');

	// Schritt speichern
	$('step').value = 'cats';

	// Überschrift aktualisieren
	$('infoOverview').update('');

	// Warteanzeige
	ExtWait('Bitte haben Sie einen Moment Geduld! Alle Happy-Hour-Artikel der ausgewählten Hauptrubrik werden jetzt geladen.');

	// Inhaltsseite leeren
	$('frontend').update('');

	// Zeitstempel benutzen, damit der Aufruf nicht aus dem Cache erfolgt
   var datum = new Date();
   var timestamp = Date.parse(datum);

   var param = "timestamp=" + timestamp +
               "&action=createCatOverviewHH" +
               "&id_maincat=" + id1;

   // AJAX-Request absetzen
   var ajax = new Ajax.Request
   (
      "inc/ajax/frontend.ajax.php",
      {
         method: "post",
         postBody: param,
         requestHeader:["Content-Type", "text/html"],
         onComplete: function(r)
         {
            arrProductsDisplayed = new Array();

            eval(r.responseText);

            // passendes Menü anzeigen
            toggleShopMenu('catOverview');

            // Warteanzeige aus
            ExtWait('');

            // gleichzeitig bestellte Artikel anzeigen
            showSimProducts();
         },
         onFailure: function(r)
         {
            falert(r.responseText);
         }
      }
   )
}

// Artikelübersicht einer Rubrik generieren (inkl. Angebote, wenn id2 = 0)
function createCatOverview(id1, id2)
{
	// Buttons ausblenden
   toggleShopMenu('');

	// Schritt speichern	
	$('step').value = 'cats';

	// Überschrift aktualisieren
	$('infoOverview').update('');

	// Warteanzeige
	ExtWait('Bitte haben Sie einen Moment Geduld! Die Artikel der ausgew&auml;hlten Rubrik werden jetzt geladen.');
	
	// Inhaltsseite leeren
	$('frontend').update('');
	
	// Zeitstempel benutzen, damit der Aufruf nicht aus dem Cache erfolgt
   var datum = new Date();
   var timestamp = Date.parse(datum);

   var param = "timestamp=" + timestamp +
               "&action=createCatOverview" +
               "&id_maincat=" + id1 +
               "&id_cat=" + id2;

   // AJAX-Request absetzen
   var ajax = new Ajax.Request
   (
      "inc/ajax/frontend.ajax.php",
      {
         method: "post",
         postBody: param,
         requestHeader:["Content-Type", "text/html"],
         onComplete: function(r)
         {
            arrProductsDisplayed = new Array();
            
            eval(r.responseText);

            // passendes Menü anzeigen
            toggleShopMenu('catOverview');
            
            // Warteanzeige aus
            ExtWait('');
            
            // gleichzeitig bestellte Artikel anzeigen
            showSimProducts();
         },
         onFailure: function(r)
         {
            falert(r.responseText);
         }
      }
   )
}

// gleichzeitig bestellte Artikel anzeigen
function showSimProducts(){

   return false; // 17.07.09 vorrübergehend deaktiviert

   var len = arrProductsDisplayed.length;
   if(len == 0)return false;

   for(var x = 0; x < len; x++){
   	// Zeitstempel benutzen, damit der Aufruf nicht aus dem Cache erfolgt
      var datum = new Date();
      var timestamp = Date.parse(datum);

      var param = "timestamp=" + timestamp +
                  "&action=getSimProducts" +
                  "&id_product=" + arrProductsDisplayed[x];

      // AJAX-Request absetzen
      var ajax = new Ajax.Request
      (
         "inc/ajax/frontend.ajax.php",
         {
            method: "post",
            asynchronous:true,
            postBody: param,
            requestHeader:["Content-Type", "text/html"],
            onComplete: function(r)
            {
               eval(r.responseText);
            },
            onFailure: function(r)
            {
               falert(r.responseText);
            }
         }
      )
   }
}

// wechselt die angezeigten gleichzeitig bestellten Artikel
var maxSimProducts = 4;
function changeSimProducts(obj){
   var id_product = obj.id_product; // ID des Hauptartikels
   var dirSimProducts = obj.dirSimProducts; // vor oder zurück?
   
   /*
   anzeigbare Artikel werden aus dem Array arrSimProducts bestimmt:
   arrSimProducts[1] = new Object();
   arrSimProducts[1]['preview'] = '<div style="border:1px solid #000; width:100px; height:100px;"><p>Bester Störtebeker</p><p></p></div>';
   arrSimProducts[1]['id_sim_products'] = '908,904,900,817,147,146,124,122,44,6,1';
   arrSimProducts[1]['startSimProducts'] = 0;
   */
   // Artikel bestimmen
   if(typeof arrSimProducts[id_product]['id_sim_products'] == 'undefined'){
      // falls Artikel nicht definiert, nur Pfeile ausblenden
      if(dirSimProducts == "prev"){
         $('imgPrevSim' + id_product +'_on').hide();
         $('imgPrevSim' + id_product +'_off').show();
      }
      if(dirSimProducts == "next"){
         $('imgNextSim' + id_product +'_on').hide();
         $('imgNextSim' + id_product +'_off').show();
      }
      return false;
   }
   
   // zunächst Warteanzeigen
   for(var x = 0; x < 3; x++){
   //for(var x = 0; x < 5; x++){
      if($('simProduct_' + id_product + '_' + x + '') != null){
         //var height = $('simProduct_' + id_product + '_' + x + '').getHeight();
         //var marginHeight = Math.round((height - 16)/2);
         var marginHeight = Math.round((110 - 16)/2);
         if(maxSimProducts >= x){
            $('simProduct_' + id_product + '_' + x + '').update('<img src="gfx/loading-16x16.gif" width="16" height="16" style="border:0;margin:' + marginHeight + 'px 47px;">');
         } else {
            $('simProduct_' + id_product + '_' + x + '').update('');
            $('simProduct_' + id_product + '_' + x + '').hide();
         }
      }
   }
   
   var strObj = "{id_product: " + id_product + ",dirSimProducts: '" + dirSimProducts + "'}";
   window.setTimeout("changeSimProductsSet(" + strObj + ")",1000);
}

// setzt die Artikel in die zugehörigen DIVs
function changeSimProductsSet(obj){
   var id_product = obj.id_product; // ID des Hauptartikels
   var dirSimProducts = obj.dirSimProducts; // vor oder zurück?

   var startSimProducts = arrSimProducts[id_product]['startSimProducts']; // Startnummer der Zusatzartikel
   var id_sim_products = arrSimProducts[id_product]['id_sim_products']; // mögliche anzuzeigende Artikel
   var arrID = id_sim_products.split(',');

   // vorherige und nächste Artikel anzeigen
   var count = 0;
   (dirSimProducts == 'prev') ? count = startSimProducts - 5 : count = startSimProducts + 5;

   // nächste Position in Array speichern
   arrSimProducts[id_product]['startSimProducts'] = count;

   /*
   // Schaltflächen ein-/ausblenden
   if(count == 0){
      // zurück-Button ausblenden
      $('imgPrevSim' + id_product +'_on').hide();
      $('imgPrevSim' + id_product +'_off').show();
   } else {
      // zurück-Button einblenden
      $('imgPrevSim' + id_product +'_on').show();
      $('imgPrevSim' + id_product +'_off').hide();
   }

   // weiter-Button einblenden
   $('imgNextSim' + id_product +'_on').show();
   $('imgNextSim' + id_product +'_off').hide();
   */
   
   // Artikel ausgeben
   //for(var x = 0; x < 5; x++){
   for(var x = 0; x < 3; x++){
      var id_sim_product = 0;

      var found = 0;
      do{
         if(typeof arrID[count] == 'undefined')break;
         id_sim_product = arrID[count];
         if(id_sim_product != id_product)found = 1;
         if(typeof arrSimProducts[id_sim_product] == 'undefined')found=0;
         count++;
      }while(found == 0);
      if(id_sim_product == 0)break;

      if($('simProduct_' + id_product + '_' + x + '') != null){
         if(maxSimProducts < x)continue;
         if(typeof arrSimProducts[id_sim_product] == 'undefined'){
            $('simProduct_' + id_product + '_' + x + '').update('<img src="gfx/0.gif" width="110" height="110" style="margin:0;border:0;">');
         } else {
            var linkTitle = arrSimProducts[id_sim_product]['linkTitle'];
            var preview = arrSimProducts[id_sim_product]['preview'];
            $('simProduct_' + id_product + '_' + x + '').update('<a href="#" onclick="callSimProduct({id_product:'+id_sim_product+'});return false;" title="' + linkTitle + '">' + preview + '</a>');
         }
      }
   }

   // leere Felder auffüllen
   if(x < 5){
      // weiter-Button ausblenden
      if($('imgNextSim' + id_product +'_on') != null)$('imgNextSim' + id_product +'_on').hide();
      if($('imgNextSim' + id_product +'_off') != null)$('imgNextSim' + id_product +'_off').show();
      while(x < 5){
         if($('simProduct_' + id_product + '_' + x + '') != null && maxSimProducts >= x)
            $('simProduct_' + id_product + '_' + x + '').update('<img src="gfx/0.gif" width="110" height="110" style="margin:0;border:0;">');
         x++;
      }
   }

   if(count == arrID.length){
      // weiter-Button ausblenden
      $('imgNextSim' + id_product +'_on').hide();
      $('imgNextSim' + id_product +'_off').show();
   }

   if(arrID.length <= 5){
      // weiter-Button ausblenden
      $('imgNextSim' + id_product +'_on').hide();
      $('imgNextSim' + id_product +'_off').show();
   }
}

function callSimProduct(obj){
   var contentWin = new Window('simProduct',
   {
      url: 'simProduct.php?id_product=' + obj.id_product,
      title: 'Kunden kauften auch',
      className: 'dialog',
      width: 600,
      height: 400,
      minimizable: false,
      maximizable: false,
      draggable: true,
      recenterAuto: false,
      resizable: true,
      hideEffect:Element.hide,
      showEffect:Element.show,
      opacity: 1,
      destroyOnClose: true,
      onDestroy: function()
      {
         //$('div_maincats').hide();
      }
   });
   contentWin.setZIndex(200);
   contentWin.showCenter(true);
}

// Artikel ausgeben (nur für Suchergebnis)
function createProduct(id3)
{
	// Buttons ausblenden
   toggleShopMenu('');

	// Schritt speichern	
	$('step').value = 'product';

	// Überschrift aktualisieren
	$('infoOverview').update('Artikel:');

	// Warteanzeige
	ExtWait('Bitte haben Sie einen Moment Geduld! Der ausgew&auml;hlte Artikel wird jetzt geladen.');
	
	// Inhaltsseite leeren
	$('frontend').update('');
	
	// Zeitstempel benutzen, damit der Aufruf nicht aus dem Cache erfolgt
   var datum = new Date();
   var timestamp = Date.parse(datum);

   var param = "timestamp=" + timestamp +
               "&action=createProduct" +
               "&id_product=" + id3;

   // AJAX-Request absetzen
   var ajax = new Ajax.Request
   (
      "inc/ajax/frontend.ajax.php",
      {
         method: "post",
         postBody: param,
         requestHeader:["Content-Type", "text/html"],
         onComplete: function(r)
         {
            eval(r.responseText);

            // passendes Menü anzeigen
            toggleShopMenu('catOverview');
            
            // Warteanzeige aus
            ExtWait('');
         },
         onFailure: function(r)
         {
            falert(r.responseText);
         }
      }
   )
}
////////////////////////////////////////////////////////////////////////////////
// alle Funktionen für den Warenkorb
////////////////////////////////////////////////////////////////////////////////
var timerInfoBasket;
function changeBasket(type, id_unit)
{
	// Wert des Eingabefeldes
	var amountInput = parseInt($F('frmIdUnit' + id_unit));
	(isNaN(amountInput) || amountInput == "") ? amount = 0 : amount = amountInput;
	
	switch(type)
	{
		case "plus":
			if(amount < 999)
			{
				window.clearTimeout(timerInfoBasket);
				amount++;
				toggleImgBasket({nr:0,id_unit:id_unit});
				saveToBasket(type, id_unit, amount);
				timerInfoBasket = window.setTimeout("infoBasket()",250);
			}	
			else
			{
				amount = 999;
			}			
			$('frmIdUnit' + id_unit).value = amount;
			break;
		case "minus":						
			if(amount > 0)
			{
				window.clearTimeout(timerInfoBasket);
				amount--;
            toggleImgBasket({nr:0,id_unit:id_unit});
				saveToBasket(type, id_unit, amount);
				timerInfoBasket = window.setTimeout("infoBasket()",250);
			}	
			else
			{
				amount = 0;
			}			
			$('frmIdUnit' + id_unit).value = amount;
			
			// Zeile im Warenkorb ausblenden
			if($F('step') == "basket" && amount == 0)$('tr' + id_unit).hide();
			
			break;
		case "change":						
			window.clearTimeout(timerInfoBasket);
         toggleImgBasket({nr:0,id_unit:id_unit});
			saveToBasket(type, id_unit, amount);
			timerInfoBasket = window.setTimeout("infoBasket()",250);
			if(amountInput != "")
				$('frmIdUnit' + id_unit).value = amount;
			break;
	}
}



// ändert die Darstellung des großen Warenkorbsymbols bei einer Änderung
var timerBasket;
function toggleImgBasket(obj){
   var nr = obj.nr;
   var id_unit = obj.id_unit;

   if($('imgBasket') == null)toggleImgBasket(obj);
   //if(nr == 0)window.clearTimeout(timerBasket);

   (nr > 0) ?
	$('imgBasket').src = shopHeaderBasket:
	$('imgBasket').src = shopHeaderLoader;

   /*
   (nr > 0) ?
	$('imgUnitBasket'+id_unit).src='gfx/warenkorb-19x16.gif':
	$('imgUnitBasket'+id_unit).src='gfx/loading-16x16.gif';
   */
   if(nr > 0){
	  $('imgUnitBasket'+id_unit+'Loading').hide();
	  $('imgUnitBasket'+id_unit).show();
   } else {
	  $('imgUnitBasket'+id_unit).hide();
	  $('imgUnitBasket'+id_unit+'Loading').show();
   }

   if(nr > 0)return false;

   var obj = '{nr:1,id_unit:'+id_unit+'}';
	timerBasket = window.setTimeout("toggleImgBasket("+obj+")",1000);
}

// speichert die Mengen der Artikeleinheiten im Warenkorb
arrBasket = new Array();
function saveToBasket(type, id_unit, amount)
{
	var len = arrBasket.length;
	
	// erster Eintrag
	if(len == 0)
	{
		if(amount == 0)return false;
		arrBasket[0] = new Object();
		arrBasket[0]['id_unit'] = id_unit;
		arrBasket[0]['amount'] = amount;
		arrBasket[0]['id_order'] = 0;
	}
	else
	{
		var found = 0;
		for(var seq = 0; seq < len; seq++)
		{
			if(arrBasket[seq]['id_unit'] == id_unit)
			{
				arrBasket[seq]['amount'] = amount;
				found = 1;
				break;
			}
		}
		
		if(found == 0 && amount > 0)
		{
			arrBasket[len] = new Object();
			arrBasket[len]['id_unit'] = id_unit;
			arrBasket[len]['amount'] = amount;
			arrBasket[len]['id_order'] = 0;
		}
	}
}

// zeigt Infos zum aktuellen Warenkorb im Header an
function infoBasket()
{
	// Angaben aus dem Warenkorb
	var units = '';
	var len = arrBasket.length;
	
	// kein Eintrag vorhanden
	for(var seq = 0; seq < len; seq++)
	{
		if(arrBasket[seq]['amount'] != 0)
		{
			var amount = arrBasket[seq]['amount'];
			var id_unit = arrBasket[seq]['id_unit'];
			if(units != "")units = units + '___';
			units = units + id_unit + '_' + amount;
		}
	}

	// Zeitstempel benutzen, damit der Aufruf nicht aus dem Cache erfolgt
   var datum = new Date();
   var timestamp = Date.parse(datum);

   var param = "timestamp=" + timestamp +
               "&action=infoBasket" +
               "&len=" + len +
               "&units=" + units;

   // AJAX-Request absetzen
	// kein ExtWait, da Funktion innerhalb einer anderen Funktion aufgerufen wird
   var ajax = new Ajax.Request
   (
      "inc/ajax/frontend.ajax.php",
      {
         method: "post",
         postBody: param,
         requestHeader:["Content-Type", "text/html"],
         onComplete: function(r)
         {
            eval(r.responseText);
         },
         onFailure: function(r)
         {
            falert(r.responseText);
         }
      }
   )
}

// lädt beim Aufruf einer Artikelliste alle Angaben für jedes Eingabefeld aus dem Warenkorb in die Eingabefelder
function loadBasketToFrm(id_unit)
{
	var len = arrBasket.length;
	if(len == 0)return false;

	for(var seq = 0; seq < len; seq++)
	{
		if(arrBasket[seq]['amount'] != 0 && arrBasket[seq]['id_unit'] == id_unit)
		{
			var amount = arrBasket[seq]['amount'];
			$('frmIdUnit' + id_unit).value = amount;
		}
	}
}

// alle Artikel im Warenkorb anzeigen
function showBasket()
{
	// Angaben aus dem Warenkorb
	var units = '';
	var len = arrBasket.length;
	
	// kein Eintrag vorhanden
	for(var seq = 0; seq < len; seq++)
	{
		if(arrBasket[seq]['amount'] != 0)
		{
			var amount = arrBasket[seq]['amount'];
			var id_unit = arrBasket[seq]['id_unit'];
			if(units != "")units = units + '___';
			units = units + id_unit + '_' + amount;
		}
	}
	if(units == "")
	{
		ExtInfo('In Ihrem Warenkorb befinden sich keine Artikel.');
		return false;
	}

	// Buttons ausblenden
   toggleShopMenu('');

	// Schritt speichern	
	$('step').value = 'basket';

	// Überschrift aktualisieren
	$('infoOverview').update('Mein Warenkorb');

	// Warteanzeige
	ExtWait('Bitte haben Sie einen Moment Geduld! Die &Uuml;bersicht der Artikel in Ihrem Warenkorb wird geladen.');
	
	// Inhaltsseite leeren
	$('frontend').update('');

	// Zeitstempel benutzen, damit der Aufruf nicht aus dem Cache erfolgt
   var datum = new Date();
   var timestamp = Date.parse(datum);

   var param = "timestamp=" + timestamp +
               "&action=showBasket" +
               "&len=" + len +
               "&units=" + units;

   // AJAX-Request absetzen
   var ajax = new Ajax.Request
   (
      "inc/ajax/frontend.ajax.php",
      {
         method: "post",
         postBody: param,
         requestHeader:["Content-Type", "text/html"],
         onComplete: function(r)
         {
            eval(r.responseText);

            // passendes Menü anzeigen
            toggleShopMenu('basket');
            
            // Warteanzeige aus
            ExtWait('');
         },
         onFailure: function(r)
         {
            falert(r.responseText);
         }
      }
   )
}

// Wechsel der Symbole oben rechts für den Online-Shop
function toggleShopMenu(step)
{
	var str = '';
	var strEmpty = '&nbsp;';
	switch(step)
	{
		// letzte Übersicht
		case "lastOverview":
			var str = 'Mein Warenkorb';
			var prevStep = 'meine Bezahlung';
			var nextStep = 'zur Kasse';
			
			$('infoShopHeader').update(strEmpty);
			$('shopMenu').update('<a href="javascript:;" onmouseover="$(\'imgPrev\').src=\'' + shopHeaderPrevStepOver + '\';$(\'infoShopHeader\').update(\'' + prevStep + '\');" onmouseout="$(\'imgPrev\').src=\'' + shopHeaderPrevStep + '\';$(\'infoShopHeader\').update(\'' + strEmpty + '\');" onclick="check18basket();$(\'infoReg\').hide();$(\'infoRegGuest\').hide();return false;"><img src="' + shopHeaderPrevStep + '" width="48" height="48" style="border:0;margin-bottom:2px;" id="imgPrev"></a><a href="javascript:;" onmouseover="$(\'imgBasket\').src=\'' + shopHeaderBasketOver + '\';$(\'infoShopHeader\').update(\'' + str + '\');" onmouseout="$(\'imgBasket\').src=\'' + shopHeaderBasket + '\';$(\'infoShopHeader\').update(\'' + strEmpty + '\');" onclick="showBasket();$(\'infoReg\').hide();$(\'infoRegGuest\').hide();return false;"><img src="' + shopHeaderBasket + '" width="48" height="48" style="border:0;margin-bottom:2px;" id="imgBasket"></a><img src="' + shopHeaderEmptyStep + '" width="48" height="48" style="border:0;margin-bottom:2px;" id="imgNext">');
			break;			
		// Bezahlungsart
		case "payment":
			var str = 'Mein Warenkorb';
			var prevStep = 'meine Daten';
			var nextStep = 'zur Kasse';
			
			$('infoShopHeader').update(strEmpty);
			$('shopMenu').update('<a href="javascript:;" onmouseover="$(\'imgPrev\').src=\'' + shopHeaderPrevStepOver + '\';$(\'infoShopHeader\').update(\'' + prevStep + '\');" onmouseout="$(\'imgPrev\').src=\'' + shopHeaderPrevStep + '\';$(\'infoShopHeader\').update(\'' + strEmpty + '\');" onclick="login();$(\'infoReg\').hide();$(\'infoRegGuest\').hide();return false;"><img src="' + shopHeaderPrevStep + '" width="48" height="48" style="border:0;margin-bottom:2px;" id="imgPrev"></a><a href="javascript:;" onmouseover="$(\'imgBasket\').src=\'' + shopHeaderBasketOver + '\';$(\'infoShopHeader\').update(\'' + str + '\');" onmouseout="$(\'imgBasket\').src=\'' + shopHeaderBasket + '\';$(\'infoShopHeader\').update(\'' + strEmpty + '\');" onclick="showBasket();$(\'infoReg\').hide();$(\'infoRegGuest\').hide();return false;"><img src="' + shopHeaderBasket + '" width="48" height="48" style="border:0;margin-bottom:2px;" id="imgBasket"></a><a href="javascript:;" onmouseover="$(\'imgNext\').src=\'' + shopHeaderNextStepOver + '\';$(\'infoShopHeader\').update(\'' + nextStep + '\');" onmouseout="$(\'imgNext\').src=\'' + shopHeaderNextStep + '\';$(\'infoShopHeader\').update(\'' + strEmpty + '\');" onclick="showLastOverview();$(\'infoReg\').hide();$(\'infoRegGuest\').hide();return false;"><img src="' + shopHeaderNextStep + '" width="48" height="48" style="border:0;margin-bottom:2px;" id="imgNext"></a>');
			break;			
		// Kundendaten (Kunde ist angemeldet)
		case "customerOrder":
			var str = 'Mein Warenkorb';
			var prevStep = 'zur &Uuml;bersicht';
			var nextStep = 'meine Bezahlung';
			
			$('infoShopHeader').update(strEmpty);
			$('shopMenu').update('<a href="javascript:;" onmouseover="$(\'imgPrev\').src=\'' + shopHeaderPrevStepOver + '\';$(\'infoShopHeader\').update(\'' + prevStep + '\');" onmouseout="$(\'imgPrev\').src=\'' + shopHeaderPrevStep + '\';$(\'infoShopHeader\').update(\'' + strEmpty + '\');" onclick="createMaincatsOverview();$(\'infoReg\').hide();$(\'infoRegGuest\').hide();return false;"><img src="' + shopHeaderPrevStep + '" width="48" height="48" style="border:0;margin-bottom:2px;" id="imgPrev"></a><a href="javascript:;" onmouseover="$(\'imgBasket\').src=\'' + shopHeaderBasketOver + '\';$(\'infoShopHeader\').update(\'' + str + '\');" onmouseout="$(\'imgBasket\').src=\'' + shopHeaderBasket + '\';$(\'infoShopHeader\').update(\'' + strEmpty + '\');" onclick="showBasket();$(\'infoReg\').hide();$(\'infoRegGuest\').hide();return false;"><img src="' + shopHeaderBasket + '" width="48" height="48" style="border:0;margin-bottom:2px;" id="imgBasket"></a><a href="javascript:;" onmouseover="$(\'imgNext\').src=\'' + shopHeaderNextStepOver + '\';$(\'infoShopHeader\').update(\'' + nextStep + '\');" onmouseout="$(\'imgNext\').src=\'' + shopHeaderNextStep + '\';$(\'infoShopHeader\').update(\'' + strEmpty + '\');" onclick="check18basket();$(\'infoReg\').hide();$(\'infoRegGuest\').hide();return false;"><img src="' + shopHeaderNextStep + '" width="48" height="48" style="border:0;margin-bottom:2px;" id="imgNext"></a>');
			break;		
		// Eingabemaske für Anmeldung
		case "login":
			var str = 'Mein Warenkorb';
			var prevStep = 'zur &Uuml;bersicht';

			$('infoShopHeader').update(strEmpty);
			$('shopMenu').update('<a href="javascript:;" onmouseover="$(\'imgPrev\').src=\'' + shopHeaderPrevStepOver + '\';$(\'infoShopHeader\').update(\'' + prevStep + '\');" onmouseout="$(\'imgPrev\').src=\'' + shopHeaderPrevStep + '\';$(\'infoShopHeader\').update(\'' + strEmpty + '\');" onclick="createMaincatsOverview();$(\'infoReg\').hide();$(\'infoRegGuest\').hide();return false;"><img src="' + shopHeaderPrevStep + '" width="48" height="48" style="border:0;margin-bottom:2px;" id="imgPrev"></a><a href="javascript:;" onmouseover="$(\'imgBasket\').src=\'' + shopHeaderBasketOver + '\';$(\'infoShopHeader\').update(\'' + str + '\');" onmouseout="$(\'imgBasket\').src=\'' + shopHeaderBasket + '\';$(\'infoShopHeader\').update(\'' + strEmpty + '\');" onclick="showBasket();$(\'infoReg\').hide();$(\'infoRegGuest\').hide();return false;"><img src="' + shopHeaderBasket + '" width="48" height="48" style="border:0;margin-bottom:2px;" id="imgBasket"></a><img src="' + shopHeaderEmptyStep + '" width="48" height="48" style="border:0;margin-bottom:2px;" id="imgNext">');
			break;		
		// Eingabemaske für Anmeldung "Mein Konto", "Mein Konto"
		case "myLogin": case "myAccount":
			var str = 'Mein Warenkorb';
			var prevStep = 'zur &Uuml;bersicht';

			$('infoShopHeader').update(strEmpty);
			$('shopMenu').update('<a href="javascript:;" onmouseover="$(\'imgPrev\').src=\'' + shopHeaderPrevStepOver + '\';$(\'infoShopHeader\').update(\'' + prevStep + '\');" onmouseout="$(\'imgPrev\').src=\'' + shopHeaderPrevStep + '\';$(\'infoShopHeader\').update(\'' + strEmpty + '\');" onclick="createMaincatsOverview();$(\'infoReg\').hide();$(\'infoRegGuest\').hide();return false;"><img src="' + shopHeaderPrevStep + '" width="48" height="48" style="border:0;margin-bottom:2px;" id="imgPrev"></a><a href="javascript:;" onmouseover="$(\'imgBasket\').src=\'' + shopHeaderBasketOver + '\';$(\'infoShopHeader\').update(\'' + str + '\');" onmouseout="$(\'imgBasket\').src=\'' + shopHeaderBasket + '\';$(\'infoShopHeader\').update(\'' + strEmpty + '\');" onclick="showBasket();$(\'infoReg\').hide();$(\'infoRegGuest\').hide();return false;"><img src="' + shopHeaderBasket + '" width="48" height="48" style="border:0;margin-bottom:2px;" id="imgBasket"></a><img src="' + shopHeaderEmptyStep + '" width="48" height="48" style="border:0;margin-bottom:2px;" id="imgNext">');
			break;		
		// Registrierungsformular
		case "reg":
			var str = 'Mein Warenkorb';
			var prevStep = 'zur Anmeldung';
			$('infoShopHeader').update(strEmpty);
			$('shopMenu').update('<a href="javascript:;" onmouseover="$(\'imgPrev\').src=\'' + shopHeaderPrevStepOver + '\';$(\'infoShopHeader\').update(\'' + prevStep + '\');" onmouseout="$(\'imgPrev\').src=\'' + shopHeaderPrevStep + '\';$(\'infoShopHeader\').update(\'' + strEmpty + '\');" onclick="login();$(\'infoReg\').hide();$(\'infoRegGuest\').hide();return false;"><img src="' + shopHeaderPrevStep + '" width="48" height="48" style="border:0;margin-bottom:2px;" id="imgPrev"></a><a href="javascript:;" onmouseover="$(\'imgBasket\').src=\'' + shopHeaderBasketOver + '\';$(\'infoShopHeader\').update(\'' + str + '\');" onmouseout="$(\'imgBasket\').src=\'' + shopHeaderBasket + '\';$(\'infoShopHeader\').update(\'' + strEmpty + '\');" onclick="showBasket();$(\'infoReg\').hide();$(\'infoRegGuest\').hide();return false;"><img src="' + shopHeaderBasket + '" width="48" height="48" style="border:0;margin-bottom:2px;" id="imgBasket"></a><img src="' + shopHeaderEmptyStep + '" width="48" height="48" style="border:0;margin-bottom:2px;" id="imgNext">');
			break;		
		// Rubrik
		case "catOverview":
			var str = 'Mein Warenkorb';
			var prevStep = 'zur &Uuml;bersicht';

			var nextStep = 'meine Daten';
			if($F('id_customer') == 0)nextStep = 'zur Anmeldung';

			$('infoShopHeader').update(strEmpty);
			$('shopMenu').update('<a href="javascript:;" onmouseover="$(\'imgPrev\').src=\'' + shopHeaderPrevStepOver + '\';$(\'infoShopHeader\').update(\'' + prevStep + '\');" onmouseout="$(\'imgPrev\').src=\'' + shopHeaderPrevStep + '\';$(\'infoShopHeader\').update(\'' + strEmpty + '\');" onclick="createMaincatsOverview();$(\'infoReg\').hide();$(\'infoRegGuest\').hide();return false;"><img src="' + shopHeaderPrevStep + '" width="48" height="48" style="border:0;margin-bottom:2px;" id="imgPrev"></a><a href="javascript:;" onmouseover="$(\'imgBasket\').src=\'' + shopHeaderBasketOver + '\';$(\'infoShopHeader\').update(\'' + str + '\');" onmouseout="$(\'imgBasket\').src=\'' + shopHeaderBasket + '\';$(\'infoShopHeader\').update(\'' + strEmpty + '\');" onclick="showBasket();$(\'infoReg\').hide();$(\'infoRegGuest\').hide();return false;"><img src="' + shopHeaderBasket + '" width="48" height="48" style="border:0;margin-bottom:2px;" id="imgBasket"></a><a href="javascript:;" onmouseover="$(\'imgNext\').src=\'' + shopHeaderNextStepOver + '\';$(\'infoShopHeader\').update(\'' + nextStep + '\');" onmouseout="$(\'imgNext\').src=\'' + shopHeaderNextStep + '\';$(\'infoShopHeader\').update(\'' + strEmpty + '\');" onclick="login();$(\'infoReg\').hide();$(\'infoRegGuest\').hide();return false;"><img src="' + shopHeaderNextStep + '" width="48" height="48" style="border:0;margin-bottom:2px;" id="imgNext"></a>');
			break;		
		// Warenkorb
		case "basket":
			var str = 'Mein Warenkorb';
			var prevStep = 'zur &Uuml;bersicht';

			var nextStep = 'meine Daten';
			if($F('id_customer') == 0)nextStep = 'zur Anmeldung';

			$('infoShopHeader').update(strEmpty);
			$('shopMenu').update('<a href="javascript:;" onmouseover="$(\'imgPrev\').src=\'' + shopHeaderPrevStepOver + '\';$(\'infoShopHeader\').update(\'' + prevStep + '\');" onmouseout="$(\'imgPrev\').src=\'' + shopHeaderPrevStep + '\';$(\'infoShopHeader\').update(\'' + strEmpty + '\');" onclick="createMaincatsOverview();$(\'infoReg\').hide();$(\'infoRegGuest\').hide();return false;"><img src="' + shopHeaderPrevStep + '" width="48" height="48" style="border:0;margin-bottom:2px;" id="imgPrev"></a><img src="' + shopHeaderEmptyStep + '" width="48" height="48" style="border:0;margin-bottom:2px;" id="imgBasket"><a href="javascript:;" onmouseover="$(\'imgNext\').src=\'' + shopHeaderNextStepOver + '\';$(\'infoShopHeader\').update(\'' + nextStep + '\');" onmouseout="$(\'imgNext\').src=\'' + shopHeaderNextStep + '\';$(\'infoShopHeader\').update(\'' + strEmpty + '\');" onclick="login();$(\'infoReg\').hide();$(\'infoRegGuest\').hide();return false;"><img src="' + shopHeaderNextStep + '" width="48" height="48" style="border:0;margin-bottom:2px;" id="imgNext"></a>');
			break;		

		// Rubrikenübersicht
		case "maincats":
			var str = 'Mein Warenkorb';
			
			var nextStep = 'meine Daten';
			if($F('id_customer') == 0)nextStep = 'zur Anmeldung';

			$('infoShopHeader').update(strEmpty);
			$('shopMenu').update('<img src="' + shopHeaderEmptyStep + '" width="48" height="48" style="border:0;margin-bottom:2px;"><a href="javascript:;" onmouseover="$(\'imgBasket\').src=\'' + shopHeaderBasketOver + '\';$(\'infoShopHeader\').update(\'' + str + '\');" onmouseout="$(\'imgBasket\').src=\'' + shopHeaderBasket + '\';$(\'infoShopHeader\').update(\'' + strEmpty + '\');" onclick="showBasket();$(\'infoReg\').hide();$(\'infoRegGuest\').hide();return false;"><img src="' + shopHeaderBasket + '" width="48" height="48" style="border:0;margin-bottom:2px;" id="imgBasket"></a><a href="javascript:;" onmouseover="$(\'imgNext\').src=\'' + shopHeaderNextStepOver + '\';$(\'infoShopHeader\').update(\'' + nextStep + '\');" onmouseout="$(\'imgNext\').src=\'' + shopHeaderNextStep + '\';$(\'infoShopHeader\').update(\'' + strEmpty + '\');" onclick="login();$(\'infoReg\').hide();$(\'infoRegGuest\').hide();return false;"><img src="' + shopHeaderNextStep + '" width="48" height="48" style="border:0;margin-bottom:2px;" id="imgNext"></a>');
			break;		
		// keine Buttons
		default:
			var str = 'Mein Warenkorb';
			
			$('infoShopHeader').update(strEmpty);
			$('shopMenu').update('<img src="' + shopHeaderEmptyStep + '" width="48" height="48" style="border:0;margin-bottom:2px;"><img src="' + shopHeaderEmptyStep + '" width="48" height="48" style="border:0;margin-bottom:2px;"><img src="' + shopHeaderEmptyStep + '" width="48" height="48" style="border:0;margin-bottom:2px;">');
			break;

	}		
	return false;
}

// Anmelden
function login()
{
	if($F('id_customer') != 0)
	{
		showFrmCustomer('customerOrder');
		return false;
	}		
	showLogin();
}			

// Abmelden
function logout()
{
	$('infoReg').hide();
	$('infoRegGuest').hide();

	$('imgLogin').hide();
	$('imgLoginDummy').show();
	$('id_customer').value = 0;
	showLogin();
}	

// Eingabemaske für die Anmeldung
function showLogin()
{
   $('step').value = 'login';
   
   $('infoOverview').update('Anmelden');
   
   // Zeitstempel benutzen, damit der Aufruf nicht aus dem Cache erfolgt
   var datum = new Date();
   var timestamp = Date.parse(datum);

   var param = "timestamp=" + timestamp;
   
   toggleShopMenu('login');

	var container = 'frontend';
	var src = 'inc/login.inc.php?' + param;
	new Ajax.Updater(container, src, { method: 'get' });
}

// Eingabemaske für die Anmeldung "Mein Konto"
function showMyLogin()
{
   $('step').value = 'myLogin';
   
   $('infoOverview').update('Anmelden');
   
   // Zeitstempel benutzen, damit der Aufruf nicht aus dem Cache erfolgt
   var datum = new Date();
   var timestamp = Date.parse(datum);

   var param = "timestamp=" + timestamp;
   
   toggleShopMenu('myLogin');

	var container = 'frontend';
	var src = 'inc/myLogin.inc.php?' + param;
	new Ajax.Updater(container, src, { method: 'get' });
}

// "Mein Konto" anzeigen
function showMyAccount()
{
   $('step').value = 'myAccount';
   
   $('infoOverview').update('&#132;Mein Konto&#147;');
   
   // Zeitstempel benutzen, damit der Aufruf nicht aus dem Cache erfolgt
   var datum = new Date();
   var timestamp = Date.parse(datum);

   var param = "timestamp=" + timestamp;
   
   toggleShopMenu('myAccount');

	var container = 'frontend';
	var src = 'inc/myAccount.inc.php?' + param;
	new Ajax.Updater(container, src, { method: 'get', onComplete: ExtMyAccount });
}

// Karteikarten "Mein Konto"
function ExtMyAccount()
{
    // basic tabs 1, built from existing content
    var tabs = new Ext.TabPanel({
        renderTo: 'myAccountTabs',
        width:700,
        activeTab: 0,
        frame:true,
        defaults:{autoHeight: true},
        items:[
            {contentEl:'myOrders', title: 'Bestellungen', autoLoad: {url: 'inc/myOrders.inc.php', callback: getMyOrders}},
            {contentEl:'frmMyLoginData', title: 'Anmeldedaten', autoLoad: {url: 'inc/myLoginData.inc.php', method: 'POST', params: 'id_customer=' + $F('id_customer')}},
            {contentEl:'frmMyData', title: 'pers&ouml;nliche Daten', autoLoad: {url: 'inc/myData.inc.php', callback: setMyData}},
            {contentEl:'frmMyAltData', title: 'alternative Lieferadresse', autoLoad: {url: 'inc/myAltData.inc.php', callback: setMyAltData}},
            {contentEl:'frmMyBank', title: 'Bankverbindung', autoLoad: {url: 'inc/myBank.inc.php', callback: setMyBank}}
        ]
    });
/*
    // second tabs built from JS
    var tabs2 = new Ext.TabPanel({
        renderTo: document.body,
        activeTab: 0,
        width:600,
        height:250,
        plain:true,
        defaults:{autoScroll: true},
        items:[{
                title: 'Normal Tab',
                html: "My content was added during construction."
            },{
                title: 'Ajax Tab 1',
                autoLoad:'ajax1.htm'
            },{
                title: 'Ajax Tab 2',
                autoLoad: {url: 'ajax2.htm', params: 'foo=bar&wtf=1'}
            },{
                title: 'Event Tab',
                listeners: {activate: handleActivate},
                html: "I am tab 4's content. I also have an event listener attached."
            },{
                title: 'Disabled Tab',
                disabled:true,
                html: "Can't see me cause I'm disabled"
            }
        ]
    });

    function handleActivate(tab){
        alert(tab.title + ' was activated.');
    }
});*/
}

// bestimmt die bisherigen Bestellungen für den Bereich "Mein Konto"
function getMyOrders()
{
	var id = $F('id_customer');
	if(id == 0)
	{
		ExtAlert('Fehler im System: Die Kunden-ID zum Laden der bisherigen Bestellungen konnte nicht bestimmt werden.');
		return false;
	}		

	// Zeitstempel benutzen, damit der Aufruf nicht aus dem Cache erfolgt
   var datum = new Date();
   var timestamp = Date.parse(datum);

   var param = "timestamp=" + timestamp +
               "&action=getMyOrders" +
               "&id_customer=" + id;

	ExtWait('Bitte haben Sie einen Moment Geduld! Ihre bisherigen Bestellungen werden jetzt geladen.');

   // AJAX-Request absetzen
   var ajax = new Ajax.Request
   (
      "inc/ajax/frontend.ajax.php",
      {
         method: "post",
         postBody: param,
         requestHeader:["Content-Type", "text/html"],
         onComplete: function(r)
         {
            // Warteanzeige aus
            ExtWait('');

            var arrCustomerOrders = new Array();
            eval(r.responseText);
            
            var len = arrCustomerOrders.length;
            $('infoMyOrders').update(len);
            
            if(len > 0)setMyOrders(arrCustomerOrders);
            
         },
         onFailure: function(r)
         {
            falert(r.responseText);
         }
      }
   )
}

// lädt die bisherigen Bestellungen in die zugehörige Liste im Bereich "Mein Konto"
function setMyOrders(arr)
{
	// Array für Grid optimieren
	var arrCustomerOrders = new Array();
	var len = arr.length;
	for(var seq = 0; seq < len; seq++)
	{
		arrCustomerOrders[seq] = [
		arr[seq]['id_order'],
		arr[seq]['order_number'],
		arr[seq]['alt_address_status'],
		arr[seq]['date_of_order'],
		arr[seq]['date_of_payment'],
		arr[seq]['date_of_shipment'],
		arr[seq]['notices_customer'],
		arr[seq]['notices_tob'],
		arr[seq]['id_payment'],
		arr[seq]['id_customer'],
		arr[seq]['id_supplier'],
		arr[seq]['deleted'],
		arr[seq]['status'],
		arr[seq]['ShippingMail']];
	}
	
	// Interpretation der Daten im Daten-Array
	var store = new Ext.data.SimpleStore({
	fields: 
	[
		{name: 'id_order'},
		{name: 'order_number'},
		{name: 'alt_address_status'},
		{name: 'date_of_order', type: 'date', dateFormat: 'U'},
		{name: 'date_of_payment', type: 'date', dateFormat: 'U'},
		{name: 'date_of_shipment', type: 'date', dateFormat: 'U'},
		{name: 'notices_customer'},
		{name: 'notices_tob'},
		{name: 'id_payment'},
		{name: 'id_customer'},
		{name: 'id_supplier'},
		{name: 'deleted'},
		{name: 'status'},
		{name: 'ShippingMail'}
	]
	});    
	store.loadData(arrCustomerOrders);    
	
	// shorthand alias für editierbaren Inhalt
	var fm = Ext.form;
	
	// sortierbare Tabelle (Grid))
	var grid = new Ext.grid.GridPanel({
		store: store,
		columns:
		[
			{id:'id_order', dataIndex: 'id_order', hidden: true},
			{id:'id_customer', dataIndex: 'id_customer', hidden: true},
			{id:'order_number', header: "Auftragsnummer", width: 130, sortable: true, dataIndex: 'order_number', hidden: false},
			{id:'date_of_order', header: "Auftragseingang", width: 130,  disableSelection:true, sortable: true, dataIndex: 'date_of_order', renderer: Ext.util.Format.dateRenderer('d.m.Y')
			},
			{id:'date_of_shipment', header: "Versanddatum", width: 130,  disableSelection:true, sortable: true, dataIndex: 'date_of_shipment', renderer: Ext.util.Format.dateRenderer('d.m.Y')
			},
			{id:'status', header: "Status", width: 130, sortable: true, dataIndex: 'status', hidden: false}
		],
		stripeRows: true,
		autoExpandColumn: '',
		enableColumnMove: false,
		enableHdMenu: false,
		height:350,
		maxHeight:350,
		width:580
	});
	grid.render('gridMyOrders');
}

// zeigt einen Auftrag in einem separaten Fenster an
function showCustomerOrder(id)
{
   var w = 700;

   // bei Aufruf von nordseetraum-Seiten andere Größe
   if(typeof $('extern') != null && $F('extern') != ""){
      w = 550;
   }

   var contentWin = new Window('customerOrder' + id,
   {
      url: 'customerOrder.php?id_order=' + id,
      title: 'Kundenauftrag',
      className: 'dialog',
      width: w,
      height: 525,
      minimizable: false,
      maximizable: false,
      draggable: true,
      resizable: true,
      hideEffect:Element.hide,
      showEffect:Element.show,
      opacity: 1,
      recenterAuto: false,
      destroyOnClose: true,
      onFocus: function(){
      	contentWin.setURL('customerOrder.php?id_order=' + id);
      },
      onBlur: function(){
      	//if(document.all)alert(typeof contentWin);//contentWin.destroy();
      },
      onDestroy: function()
      {
         //$('div_maincats').hide();
      }
   });
   contentWin.setZIndex(100);
   contentWin.showCenter(true);
	if(!document.all)Window.keepMultiModalWindow = true;
}



// lädt die persönlichen Daten in die Eingabemaske im Bereich "Mein Konto"
function setMyData()
{
	var id = $F('id_customer');
	if(id == 0)
	{
		ExtAlert('Fehler im System: Die Kunden-ID zum Laden der Daten konnte nicht bestimmt werden.');
		return false;
	}		

	$('myCompany').value = arrCustomers[0]['company'];

   var gender = arrCustomers[0]['gender'];
   var arrGender = $('frmShop').myGender;
   var len = arrGender.length;
   for(var i = 0; i < len; i++)
   {
      if(arrGender[i].value == gender)
      {
         arrGender[i].checked = true;
         break;
      }
   }

	$('mySalutation').value = arrCustomers[0]['salutation'];
	$('myLastname').value = arrCustomers[0]['lastname'];
	$('myFirstname').value = arrCustomers[0]['firstname'];
	$('myStreet').value = arrCustomers[0]['street'];
	$('myStreetExtra').value = arrCustomers[0]['street_extra'];
	$('myHousenumber').value = arrCustomers[0]['housenumber'];
	$('myPostcode').value = arrCustomers[0]['postcode'];
	$('myCity').value = arrCustomers[0]['city'];

   var country = arrCustomers[0]['country'];
   var arrCountry = $('myCountry');
   var len = arrCountry.length;
   for(var i = 0; i < len; i++)
   {
      if(arrCountry[i].value == country)
      {
         arrCountry[i].selected = true;
         break;
      }
   }
	var arrBirth = arrCustomers[0]['birthday'].split("-");
	var birthday = arrBirth[2];
	var birthmonth = arrBirth[1];
	if(birthmonth == "08")birthmonth = 8;
	var birthyear = arrBirth[0];

   var len = $('myBirthDay').length;
   for(var i = 0; i < len; i++)
   {
      if(parseInt($('myBirthDay')[i].value) == parseInt(birthday))
      {
         $('myBirthDay')[i].selected = true;
         break;
      }
   }
   var len = $('myBirthMonth').length;
   for(var i = 0; i < len; i++)
   {
      if(parseInt($('myBirthMonth')[i].value) == parseInt(birthmonth))
      {
         $('myBirthMonth')[i].selected = true;
         break;
      }
   }
   var len = $('myBirthYear').length;
   for(var i = 0; i < len; i++)
   {
      if($('myBirthYear')[i].value == birthyear)
      {
         $('myBirthYear')[i].selected = true;
         break;
      }
   }

	$('myPhone').value = arrCustomers[0]['phone'];
	$('myFax').value = arrCustomers[0]['fax'];
	$('myMobile').value = arrCustomers[0]['mobile'];
	$('myEmail').value = arrCustomers[0]['email'];
	$('myHomepage').value = arrCustomers[0]['homepage'];
}

// lädt die alternative Lieferadresse in die Eingabemaske im Bereich "Mein Konto"
function setMyAltData()
{
	var id = $F('id_customer');
	if(id == 0)
	{
		ExtAlert('Fehler im System: Die Kunden-ID zum Laden der alternativen Lieferadresse konnte nicht bestimmt werden.');
		return false;
	}		

	$('myAltCompany').value = arrCustomers[0]['alt_company'];

   var gender = arrCustomers[0]['alt_gender'];
   var arrGender = $('frmShop').myAltGender;
   var len = arrGender.length;
   for(var i = 0; i < len; i++)
   {
      if(arrGender[i].value == gender)
      {
         arrGender[i].checked = true;
         break;
      }
   }

	$('myAltSalutation').value = arrCustomers[0]['alt_salutation'];
	$('myAltLastname').value = arrCustomers[0]['alt_lastname'];
	$('myAltFirstname').value = arrCustomers[0]['alt_firstname'];
	$('myAltStreet').value = arrCustomers[0]['alt_street'];
	$('myAltStreetExtra').value = arrCustomers[0]['alt_street_extra'];
	$('myAltHousenumber').value = arrCustomers[0]['alt_housenumber'];
	$('myAltPostcode').value = arrCustomers[0]['alt_postcode'];
	$('myAltCity').value = arrCustomers[0]['alt_city'];
}

// lädt die Bankdaten in die Eingabemaske im Bereich "Mein Konto"
function setMyBank()
{
	var id = $F('id_customer');
	if(id == 0)
	{
		ExtAlert('Fehler im System: Die Kunden-ID zum Laden der Bankdaten konnte nicht bestimmt werden.');
		return false;
	}		

	$('myBank').value = arrCustomers[0]['bank'];
	$('myBankCode').value = arrCustomers[0]['bank_code'];
	$('myAccountNumber').value = arrCustomers[0]['account_number'];
}

// Anforderung der Logindaten (Eingabefeld frmLoginRequest)
function loginRequest()
{
	if($F('frmLoginRequest') == '')
	{
		$('frmLoginRequest').focus();
		ExtInfo('Bitte geben Sie Ihre Mail-Adresse ein!');
		return false;
	}		
	
	// Zeitstempel benutzen, damit der Aufruf nicht aus dem Cache erfolgt
   var datum = new Date();
   var timestamp = Date.parse(datum);

   var param = "timestamp=" + timestamp +
               "&action=loginRequest" +
               "&frmLoginRequest=" + escape($F('frmLoginRequest'));

   // AJAX-Request absetzen
   ExtWait('Bitte haben Sie einen Moment Geduld! Ihre Anforderung wird bearbeitet.');
   var ajax = new Ajax.Request
   (
      "inc/ajax/frontend.ajax.php",
      {
         method: "post",
         postBody: param,
         requestHeader:["Content-Type", "text/html"],
         onComplete: function(r)
         {
				ExtWait('');
            eval(r.responseText);
         },
         onFailure: function(r)
         {
            falert(r.responseText);
         }
      }
   )
}	

// Anforderung der Logindaten (Eingabefeld frmMyLoginRequest)
function myLoginRequest()
{
	if($F('frmMyLoginRequest') == '')
	{
		$('frmMyLoginRequest').focus();
		ExtInfo('Bitte geben Sie Ihre Mail-Adresse ein!');
		return false;
	}		
	
	// Zeitstempel benutzen, damit der Aufruf nicht aus dem Cache erfolgt
   var datum = new Date();
   var timestamp = Date.parse(datum);

   var param = "timestamp=" + timestamp +
               "&action=loginRequest" +
               "&frmLoginRequest=" + escape($F('frmMyLoginRequest'));

   // AJAX-Request absetzen
   ExtWait('Bitte haben Sie einen Moment Geduld! Ihre Anforderung wird bearbeitet.');
   var ajax = new Ajax.Request
   (
      "inc/ajax/frontend.ajax.php",
      {
         method: "post",
         postBody: param,
         requestHeader:["Content-Type", "text/html"],
         onComplete: function(r)
         {
				ExtWait('');
            eval(r.responseText);
         },
         onFailure: function(r)
         {
            falert(r.responseText);
         }
      }
   )
}

// Anforderung der Logindaten aus dem Direktbestellungsformular
function frmDirectLoginRequest()
{
	if($F('frmDirectLoginRequestInput') == '')
	{
		$('frmDirectLoginRequestInput').focus();
		ExtInfo('Bitte geben Sie Ihre Mail-Adresse ein!');
		return false;
	}		
	
	// Zeitstempel benutzen, damit der Aufruf nicht aus dem Cache erfolgt
   var datum = new Date();
   var timestamp = Date.parse(datum);

   var param = "timestamp=" + timestamp +
               "&action=loginRequest" +
               "&frmLoginRequest=" + escape($F('frmDirectLoginRequestInput'));

   // AJAX-Request absetzen
   ExtWait('Bitte haben Sie einen Moment Geduld! Ihre Anforderung wird bearbeitet.');
   var ajax = new Ajax.Request
   (
      "inc/ajax/frontend.ajax.php",
      {
         method: "post",
         postBody: param,
         requestHeader:["Content-Type", "text/html"],
         onComplete: function(r)
         {
				ExtWait('');
            eval(r.responseText);
         },
         onFailure: function(r)
         {
            falert(r.responseText);
         }
      }
   )
}	

// Anmeldedaten absenden
function submitLogin()
{
	if($F('frmLoginUsername') == '')
	{
		$('frmLoginUsername').focus();
		ExtInfo('Bitte geben Sie Ihren Benutzernamen ein!');
		return false;
	}		

	if($F('frmLoginPass') == '')
	{
		$('frmLoginPass').focus();
		ExtInfo('Bitte geben Sie Ihr Passwort ein!');
		return false;
	}		

	// Zeitstempel benutzen, damit der Aufruf nicht aus dem Cache erfolgt
   var datum = new Date();
   var timestamp = Date.parse(datum);

   var param = "timestamp=" + timestamp +
               "&action=submitLogin" +
               "&frmLoginUsername=" + escape($F('frmLoginUsername')) +
               "&frmLoginPass=" + escape($F('frmLoginPass'));

   // AJAX-Request absetzen
   ExtWait('Bitte haben Sie einen Moment Geduld! Ihre Anmeldung wird bearbeitet.');
   var ajax = new Ajax.Request
   (
      "inc/ajax/frontend.ajax.php",
      {
         method: "post",
         postBody: param,
         requestHeader:["Content-Type", "text/html"],
         onComplete: function(r)
         {
				ExtWait('');
            eval(r.responseText);
         },
         onFailure: function(r)
         {
            falert(r.responseText);
         }
      }
   )	
}	

// Anmeldedaten absenden für "Mein Konto"
function submitMyLogin()
{
	if($F('frmMyLoginUsername') == '')
	{
		$('frmMyLoginUsername').focus();
		ExtInfo('Bitte geben Sie Ihren Benutzernamen ein!');
		return false;
	}		

	if($F('frmMyLoginPass') == '')
	{
		$('frmMyLoginPass').focus();
		ExtInfo('Bitte geben Sie Ihr Passwort ein!');
		return false;
	}		

	// Zeitstempel benutzen, damit der Aufruf nicht aus dem Cache erfolgt
   var datum = new Date();
   var timestamp = Date.parse(datum);

   var param = "timestamp=" + timestamp +
               "&action=submitMyLogin" +
               "&frmLoginUsername=" + escape($F('frmMyLoginUsername')) +
               "&frmLoginPass=" + escape($F('frmMyLoginPass'));

   // AJAX-Request absetzen
   ExtWait('Bitte haben Sie einen Moment Geduld! Ihre Anmeldung wird bearbeitet.');
   var ajax = new Ajax.Request
   (
      "inc/ajax/frontend.ajax.php",
      {
         method: "post",
         postBody: param,
         requestHeader:["Content-Type", "text/html"],
         onComplete: function(r)
         {
				ExtWait('');
            eval(r.responseText);
         },
         onFailure: function(r)
         {
            falert(r.responseText);
         }
      }
   )	
}

// neue Anmeldedaten absenden
function submitMyNewLogin()
{
	if($F('frmMyNewLoginUsername') == '')
	{
		ExtInfo('Bitte geben Sie Ihren neuen Benutzernamen ein!');
		$('frmMyNewLoginUsername').focus();
		return false;
	}		

   if($F('frmMyNewLoginUsername').length < 3)
   {
      ExtAlert("Bitte geben Sie Ihren gew&uuml;nschten Benutzernamen mit mindestens 3 Zeichen ein!");
      $('frmMyNewLoginUsername').focus();
      return false;
   }

	if($F('frmMyNewLoginPass') == '')
	{
		ExtInfo('Bitte geben Sie Ihr Passwort ein!');
		$('frmMyNewLoginPass').focus();
		return false;
	}		

   if($F('frmMyNewLoginPass').length < 3)
   {
      ExtAlert("Bitte geben Sie Ihr gew&uuml;nschtes Passwort mit mindestens 3 Zeichen ein!");
      $('frmMyNewLoginPass').focus();
      return false;
   }

	// Zeitstempel benutzen, damit der Aufruf nicht aus dem Cache erfolgt
   var datum = new Date();
   var timestamp = Date.parse(datum);

   var param = "timestamp=" + timestamp +
               "&action=submitMyNewLogin" +
               "&id_customer=" + $F('id_customer') +
               "&frmLoginUsername=" + escape($F('frmMyNewLoginUsername')) +
               "&frmLoginPass=" + escape($F('frmMyNewLoginPass'));

   // AJAX-Request absetzen
   ExtWait('Bitte haben Sie einen Moment Geduld! Ihre neuen Anmeldedaten werden gespeichert.');
   var ajax = new Ajax.Request
   (
      "inc/ajax/frontend.ajax.php",
      {
         method: "post",
         postBody: param,
         requestHeader:["Content-Type", "text/html"],
         onComplete: function(r)
         {
				ExtWait('');
            eval(r.responseText);
         },
         onFailure: function(r)
         {
            falert(r.responseText);
         }
      }
   )	
}

// Eingabemaske für die Registrierung oder als Zwischenschritt für eine Bestellung einbinden
function showFrmCustomer(type)
{
	// Buttons ausblenden
   toggleShopMenu('');

	// Schritt speichern	
	$('step').value = type;

	// Inhaltsseite leeren
	$('frontend').update('');

   // Zeitstempel benutzen, damit der Aufruf nicht aus dem Cache erfolgt
   var datum = new Date();
   var timestamp = Date.parse(datum);

   switch(type)
   {
		// Registrierung
   	case "reg":
			// Überschrift aktualisieren
			$('infoOverview').update('Meine Registrierung');
		
			// Warteanzeige
			ExtWait('Bitte haben Sie einen Moment Geduld! Das Registrierungsformular wird geladen.');

			// Variablen für AJAX
		   var param = "timestamp=" + timestamp;
			var inc = 'inc/frmRegistry.inc.php?' + param;
   		break;
   	// Registrierung als Gast
   	case "regGuest":
			// Überschrift aktualisieren
			$('infoOverview').update('Meine Anmeldung als Gastkunde');
		
			// Warteanzeige
			ExtWait('Bitte haben Sie einen Moment Geduld! Das Registrierungsformular wird geladen.');

			// Variablen für AJAX
		   var param = "timestamp=" + timestamp +
		               "&customerGuest";
			var inc = 'inc/frmRegistry.inc.php?' + param;
   		break;
   	// Meine Daten während des Bestellvorganges
   	case "customerOrder":
			// Überschrift aktualisieren
			$('infoOverview').update('Meine Angaben');
		
			// Warteanzeige
			ExtWait('Bitte haben Sie einen Moment Geduld! Die Eingabemaske f&uuml;r Ihre Angaben wird geladen.');

			// Variablen für AJAX
		   var param = "timestamp=" + timestamp +
		               "&id_customer=" + $F('id_customer');
			var inc = 'inc/frmCustomerOrder.inc.php?' + param;
   		break;
   	// Meine Daten in Mein Konto
   	/*
   	case "customer":
   		$('infoOverview').update('Meine Angaben');
   		toggleShopMenu('customer');
		   var param = "timestamp=" + timestamp +
		               "&id_customer=" + $F('id_customer');
			var src = 'inc/frmRegistry.inc.php?' + param;
   		break;
		*/   		
	}   		

	var container = 'frontend';
	new Ajax.Updater(
	container,
	inc,
	{
		method: 'get',
		onComplete:function(r)
		{
		   switch(type)
		   {
				// Registrierung
		   	case "reg":
		   	// Registrierung als Gast
		   	case "regGuest":
  	   			toggleShopMenu('reg');
					break;
		   	// Meine Daten während des Bestellvorganges
		   	case "customerOrder":
   				toggleShopMenu('customerOrder');
					setCustomer();
					break;
			}			
			ExtWait('');
		},
		onFailure: function(r){alert(r.responseText);}
	});
}

// Eingabemaske für die Auswahl der Bezahlung
function showFrmPayments()
{
	// Buttons ausblenden
   toggleShopMenu('');

	// Schritt speichern	
	$('step').value = 'payment';

	// Überschrift aktualisieren
	$('infoOverview').update('Meine Bezahlung');

	// Warteanzeige
	//ExtWait('Bitte haben Sie einen Moment Geduld! Die Eingabemaske f&uuml;r die Auswahl Ihrer Bezahlung wird jetzt geladen.');
	
	// Inhaltsseite leeren
	$('frontend').update('');

   // Zeitstempel benutzen, damit der Aufruf nicht aus dem Cache erfolgt
   var datum = new Date();
   var timestamp = Date.parse(datum);
   var param = "timestamp=" + timestamp +
               "&id_customer=" + $F('id_customer');

	var container = 'frontend';
	var src = 'inc/frmPayments.inc.php?' + param;
	new Ajax.Updater(
	container,
	src,
	{
		method: 'get',
		onComplete: setPayment
	});
}

// Bonitätsprüfung für Neukunden
function bonitaet(id_customer){
   // Zeitstempel benutzen, damit der Aufruf nicht aus dem Cache erfolgt
   var datum = new Date();
   var timestamp = Date.parse(datum);

   var param = "timestamp=" + timestamp +
               "&id_customer=" + id_customer;

   // AJAX-Request absetzen
	var ajax = new Ajax.Request
   (
      "inc/ajax/bonitaet.ajax.php",
      {
         method: "post",
         postBody: param,
			asynchronous: false,
         requestHeader:["Content-Type", "text/html"],
         onComplete: function(r)
         {
				eval(r.responseText);
				(ret == true) ? togglePayment('bill') : togglePayment('noBill');
         },
         onFailure: function(r)
         {
            falert(r.responseText);
         }
      }
   )
}

// sperrt Auswahl bei Neu- und Gastkunden
function setPayment()
{
   // Zeitstempel benutzen, damit der Aufruf nicht aus dem Cache erfolgt
   var datum = new Date();
   var timestamp = Date.parse(datum);

   var param = "timestamp=" + timestamp +
               "&action=setPayment" +
               "&id_customer=" + $F('id_customer');

   // AJAX-Request absetzen
   var ajax = new Ajax.Request
   (
      "inc/ajax/frontend.ajax.php",
      {
         method: "post",
         postBody: param,
         requestHeader:["Content-Type", "text/html"],
         onComplete: function(r)
         {
				toggleShopMenu('payment');

            eval(r.responseText);
         },
         onFailure: function(r)
         {
            falert(r.responseText);
         }
      }
   )	
}

// Absenden des Registrierungs-Formulares
function customerRegistry()
{
   // Benutzername leer?
   if($F('customerLogin') == "")
   {
      ExtAlert("Bitte geben Sie Ihren gew&uuml;nschten Benutzernamen ein!");
      $('customerLogin').focus();
      return false;
   }

   // Benutzername zu kurz?
   if($F('customerLogin').length < 3)
   {
      ExtAlert("Bitte geben Sie Ihren gew&uuml;nschten Benutzernamen mit mindestens 3 Zeichen ein!");
      $('customerLogin').focus();
      return false;
   }
   
   // Passwort leer?
   if($F('customerPass') == "")
   {
      ExtAlert("Bitte geben Sie Ihr gew&uuml;nschtes Passwort ein!");
      $('customerPass').focus();
      return false;
   }
   // Passwort zu kurz?
   if($F('customerPass').length < 3)
   {
      ExtAlert("Bitte geben Sie Ihr gew&uuml;nschtes Passwort mit mindestens 3 Zeichen ein!");
      $('customerPass').focus();
      return false;
   }
   // Stimmt Passwort und Wiederholung überein?
   if($F('customerPass') != $F('customerPassRepeat'))
   {
      ExtAlert("Das von Ihnen eingegebene Passwort und die Wiederholung des Passwortes stimmen nicht &uuml;berein! Vielleicht haben Sie sich nur vertippt. Bitte versuchen Sie es erneut.");
      $('customerPass').focus();
      return false;
   }
   // Name leer?
   if($F('customerLastname') == "")
   {
      ExtAlert("Bitte geben Sie Ihren vollst&auml;ndigen Namen ein!");
      $('customerFirstname').focus();
      return false;
   }
   // Vorname leer?
   if($F('customerFirstname') == "")
   {
      ExtAlert("Bitte geben Sie Ihren vollst&auml;ndigen Namen ein!");
      $('customerFirstname').focus();
      return false;
   }
   // Straße leer?
   if($F('customerStreet') == "")
   {
      ExtAlert("Bitte geben Sie Ihre Wohnstra&szlig;e ein!");
      $('customerStreet').focus();
      return false;
   }
   // Hausnummer leer?
   if($F('customerHousenumber') == "")
   {
      ExtAlert("Bitte geben Sie Ihre Hausnummer ein!");
      $('customerHousenumber').focus();
      return false;
   }

   // PLZ leer?
   if($F('customerPostcode') == "")
   {
      ExtAlert("Bitte geben Sie die Postleitzahl Ihres Wohnortes ein!");
      $('customerPostcode').focus();
      return false;
   }

   // PLZ nur Zahlen?
   if(!testnum($F('customerPostcode')) && $F('customerCountry') == 'Deutschland')
   {
      ExtAlert("Bitte geben Sie f&uuml;r die Postleitzahl Ihres Wohnortes nur Zahlen ein! Haben Sie vielleicht ein Leerzeichen eingegeben?");
      $('customerPostcode').focus();
      return false;
   }

   // PLZ falsch?
   if($F('customerPostcode').length!=5 && $F('customerCountry') == 'Deutschland')
   {
      ExtAlert("Bitte geben Sie die 5-stellige Postleitzahl Ihres Wohnortes ein!");
      $('customerPostcode').focus();
      return false;
   }

   // Ort leer?
   if($F('customerCity') == "")
   {
      ExtAlert("Bitte geben Sie Ihren Wohnort ein!");
      $('customerCity').focus();
      return false;
   }
   
   // wurde Geburtsdatum komplett eingegeben?
   if($('birthDay').selectedIndex == 0 || $('birthMonth').selectedIndex == 0 || $('birthYear').selectedIndex == 0)
   {
      ExtAlert('Bitte geben Sie Ihr vollst&auml;ndiges Geburtsdatum ein.');
      $('birthDay').focus();
      return false;
   }

   // Mail leer?
   if($F('customerEmail') == "")
   {
      ExtAlert("Bitte geben Sie Ihre Mail-Adresse ein!");
      $('customerEmail').focus();
      return false;
   }

   // Mail korrekt?
   //nur ein @-Zeichen
   anzahl = $F('customerEmail').split("@");
   //regulärer Ausdruck für Email-Adresse
   var reg_email = new RegExp (".+@.{3,}\..{2,}");
   if(!reg_email.exec($F('customerEmail')) || (anzahl.length != 2) || ($F('customerEmail').indexOf(" ") >= 0))
   {
      ExtAlert("Bitte geben Sie eine g&uuml;ltige Mail-Adresse an!");
      $('customerEmail').focus();
      return false;
   }

   var gender = "";
   var arrGender = $('frmShop').customerGender;
   var len = arrGender.length;
   
   for(var i = 0; i < len; i++)
   {
      if(arrGender[i].checked == true)
      {
         var gender = arrGender[i].value;
         break;
      }
   }

	// Zeitstempel benutzen, damit der Aufruf nicht aus dem Cache erfolgt
   var datum = new Date();
   var timestamp = Date.parse(datum);

   var param = "timestamp=" + timestamp +
               "&action=submitRegistry" +
               "&customerGuest=" + $F('customerGuest') +
               "&customerLogin=" + escape($F('customerLogin')) +
               "&customerPass=" + escape($F('customerPass')) +
               "&customerPassRepeat=" + escape($F('customerPassRepeat')) +
               "&customerCompany=" + escape($F('customerCompany')) +
               "&customerSalutation=" + escape($F('customerSalutation')) +
               "&customerGender=" + escape(gender) +
               "&customerLastname=" + escape($F('customerLastname')) +
               "&customerFirstname=" + escape($F('customerFirstname')) +
               "&customerStreet=" + escape($F('customerStreet')) +
               "&customerHousenumber=" + escape($F('customerHousenumber')) +
               "&customerStreetExtra=" + escape($F('customerStreetExtra')) +
               "&customerPostcode=" + escape($F('customerPostcode')) +
               "&customerCity=" + escape($F('customerCity')) +
               "&customerCountry=" + escape($F('customerCountry')) +
               "&customerBirthDay=" + $F('birthDay') +
               "&customerBirthMonth=" + $F('birthMonth') +
               "&customerBirthYear=" + $F('birthYear') +
               "&customerPhone=" + escape($F('customerPhone')) +
               "&customerFax=" + escape($F('customerFax')) +
               "&customerMobile=" + escape($F('customerMobile')) +
               "&customerEmail=" + escape($F('customerEmail')) +
               "&customerHomepage=" + escape($F('customerHomepage'));

   // AJAX-Request absetzen
   ExtWait('Bitte haben Sie einen Moment Geduld! Ihre Registrierung wird bearbeitet.');
   var ajax = new Ajax.Request
   (
      "inc/ajax/frontend.ajax.php",
      {
         method: "post",
         postBody: param,
         requestHeader:["Content-Type", "text/html"],
         onComplete: function(r)
         {
				ExtWait('');

            eval(r.responseText);
         },
         onFailure: function(r)
         {
            falert(r.responseText);
         }
      }
   )	
   return false;
}

function setCustomer()
{
	$('customerCompany').value = arrCustomers[0]['company'];

   var gender = arrCustomers[0]['gender'];
   var arrGender = $('frmShop').customerGender;
   var len = arrGender.length;
   for(var i = 0; i < len; i++)
   {
      if(arrGender[i].value == gender)
      {
         arrGender[i].checked = true;
         break;
      }
   }

	$('customerSalutation').value = arrCustomers[0]['salutation'];
	$('customerLastname').value = arrCustomers[0]['lastname'];
	$('customerFirstname').value = arrCustomers[0]['firstname'];
	$('customerStreet').value = arrCustomers[0]['street'];
	$('customerStreetExtra').value = arrCustomers[0]['street_extra'];
	$('customerHousenumber').value = arrCustomers[0]['housenumber'];
	$('customerPostcode').value = arrCustomers[0]['postcode'];
	$('customerCity').value = arrCustomers[0]['city'];

   var country = arrCustomers[0]['country'];
   var arrCountry = $('customerCountry');
   var len = arrCountry.length;
   for(var i = 0; i < len; i++)
   {
      if(arrCountry[i].value == country)
      {
         arrCountry[i].selected = true;
         break;
      }
   }
	var arrBirth = arrCustomers[0]['birthday'].split("-");
	var birthday = arrBirth[2];
	var birthmonth = arrBirth[1];
	if(birthmonth == "08")birthmonth = 8;
	var birthyear = arrBirth[0];

   var len = $('birthDayOrder').length;
   for(var i = 0; i < len; i++)
   {
      if(parseInt($('birthDayOrder')[i].value) == parseInt(birthday))
      {
         $('birthDayOrder')[i].selected = true;
         break;
      }
   }
   var len = $('birthMonthOrder').length;
   for(var i = 0; i < len; i++)
   {
      if(parseInt($('birthMonthOrder')[i].value) == parseInt(birthmonth))
      {
         $('birthMonthOrder')[i].selected = true;
         break;
      }
   }
   var len = $('birthYearOrder').length;
   for(var i = 0; i < len; i++)
   {
      if($('birthYearOrder')[i].value == birthyear)
      {
         $('birthYearOrder')[i].selected = true;
         break;
      }
   }

	$('customerPhone').value = arrCustomers[0]['phone'];
	$('customerFax').value = arrCustomers[0]['fax'];
	$('customerMobile').value = arrCustomers[0]['mobile'];
	$('customerEmail').value = arrCustomers[0]['email'];
	$('customerHomepage').value = arrCustomers[0]['homepage'];

	if($F('altAddress') == 1)$('addAddress').checked = true;

	$('customerAltCompany').value = arrCustomers[0]['alt_company'];

   var alt_gender = arrCustomers[0]['alt_gender'];
   var arrGender = $('frmShop').customerAltGender;
   var len = arrGender.length;
   for(var i = 0; i < len; i++)
   {
      if(arrGender[i].value == alt_gender)
      {
         arrGender[i].checked = true;
         break;
      }
   }

	$('customerAltSalutation').value = arrCustomers[0]['alt_salutation'];
	$('customerAltLastname').value = arrCustomers[0]['alt_lastname'];
	$('customerAltFirstname').value = arrCustomers[0]['alt_firstname'];
	$('customerAltStreet').value = arrCustomers[0]['alt_street'];
	$('customerAltStreetExtra').value = arrCustomers[0]['alt_street_extra'];
	$('customerAltHousenumber').value = arrCustomers[0]['alt_housenumber'];
	$('customerAltPostcode').value = arrCustomers[0]['alt_postcode'];
	$('customerAltCity').value = arrCustomers[0]['alt_city'];
	//$('customerCompany').value = arrCustomers[0]['bank'];
	//$('customerCompany').value = arrCustomers[0]['bank_code'];
	//$('customerCompany').value = arrCustomers[0]['account_number'];
}

// speichert Änderungen in Meine Daten während des Bestellvorganges
function saveCustomer()
{
   // Name leer?
   if($F('customerLastname') == "")
   {
      ExtAlert("Bitte geben Sie Ihren vollst&auml;ndigen Namen ein!");
      $('customerLastname').focus();
      return false;
   }
   // Vorname leer?
   if($F('customerFirstname') == "")
   {
      ExtAlert("Bitte geben Sie Ihren vollst&auml;ndigen Namen ein!");
      $('customerFirstname').focus();
      return false;
   }
   // Straße leer?
   if($F('customerStreet') == "")
   {
      ExtAlert("Bitte geben Sie Ihre Wohnstra&szlig;e ein!");
      $('customerStreet').focus();
      return false;
   }
   // Hausnummer leer?
   if($F('customerHousenumber') == "")
   {
      ExtAlert("Bitte geben Sie Ihre Hausnummer ein!");
      $('customerHousenumber').focus();
      return false;
   }

   // PLZ leer?
   if($F('customerPostcode') == "")
   {
      ExtAlert("Bitte geben Sie die Postleitzahl Ihres Wohnortes ein!");
      $('customerPostcode').focus();
      return false;
   }

   // PLZ nur Zahlen?
   if(!testnum($F('customerPostcode')) && $F('customerCountry') == 'Deutschland')
   {
      ExtAlert("Bitte geben Sie f&uuml;r die Postleitzahl Ihres Wohnortes nur Zahlen ein! Haben Sie vielleicht ein Leerzeichen eingegeben?");
      $('customerPostcode').focus();
      return false;
   }
   
   // PLZ falsch?
   if($F('customerPostcode').length!=5 && $F('customerCountry') == 'Deutschland')
   {
      ExtAlert("Bitte geben Sie die 5-stellige Postleitzahl Ihres Wohnortes ein!");
      $('customerPostcode').focus();
      return false;
   }


   // Ort leer?
   if($F('customerCity') == "")
   {
      ExtAlert("Bitte geben Sie Ihren Wohnort ein!");
      $('customerCity').focus();
      return false;
   }
   
   // wurde Geburtsdatum komplett eingegeben?
   if($('birthDayOrder').selectedIndex == 0 || $('birthMonthOrder').selectedIndex == 0 || $('birthYearOrder').selectedIndex == 0)
   {
      ExtAlert('Bitte geben Sie Ihr vollst&auml;ndiges Geburtsdatum ein.');
      $('birthDayOrder').focus();
      return false;
   }
   
   // Mail leer?
   if($F('customerEmail') == "")
   {
      ExtAlert("Bitte geben Sie Ihre Mail-Adresse ein!");
      $('customerEmail').focus();
      return false;
   }

   // Mail korrekt?
   //nur ein @-Zeichen
   anzahl = $F('customerEmail').split("@");
   //regulärer Ausdruck für Email-Adresse
   var reg_email = new RegExp (".+@.{3,}\..{2,}");
   if(!reg_email.exec($F('customerEmail')) || (anzahl.length != 2) || ($F('customerEmail').indexOf(" ") >= 0))
   {
      ExtAlert("Bitte geben Sie eine g&uuml;ltige Mail-Adresse an!");
      $('customerEmail').focus();
      return false;
   }

	$('altAddress').value = 0;
	if($('addAddress').checked == true)$('altAddress').value = 1;

	// Eingaben für alternative Lieferadresse
	if($('addAddress').checked == true)
	{
	   // Name leer?
	   if($F('customerAltLastname') == "")
	   {
	      ExtAlert("Bitte geben Sie Ihren vollst&auml;ndigen Namen f&uuml;r die alternative Lieferadresse ein!");
	      $('customerLastname').focus();
	      return false;
	   }
	   // Vorname leer?
	   if($F('customerAltFirstname') == "")
	   {
	      ExtAlert("Bitte geben Sie Ihren vollst&auml;ndigen Namen f&uuml;r die alternative Lieferadresse ein!");
	      $('customerAltFirstname').focus();
	      return false;
	   }
	   // Straße leer?
	   if($F('customerAltStreet') == "")
	   {
	      ExtAlert("Bitte geben Sie die Stra&szlig;e f&uuml;r die alternative Lieferadresse ein!");
	      $('customerAltStreet').focus();
	      return false;
	   }
	   // Hausnummer leer?
	   if($F('customerAltHousenumber') == "")
	   {
	      ExtAlert("Bitte geben Sie Ihre Hausnummer f&uuml;r die alternative Lieferadresse ein!");
	      $('customerAltHousenumber').focus();
	      return false;
	   }
	
	   // PLZ leer?
	   if($F('customerAltPostcode') == "")
	   {
	      ExtAlert("Bitte geben Sie die Postleitzahl Ihres Wohnortes f&uuml;r die alternative Lieferadresse ein!");
	      $('customerAltPostcode').focus();
	      return false;
	   }
	   // PLZ nur Zahlen?
	   if(!testnum($F('customerAltPostcode')) && $F('customerCountry') == 'Deutschland')
	   {
	      ExtAlert("Bitte geben Sie f&uuml;r die Postleitzahl Ihres Wohnortes f&uuml;r die alternative Lieferadresse nur Zahlen ein!");
	      $('customerAltPostcode').focus();
	      return false;
	   }

	   // PLZ falsch?
	   if($F('customerAltPostcode').length!=5 && $F('customerCountry') == 'Deutschland')
	   {
	      ExtAlert("Bitte geben Sie die 5-stellige Postleitzahl Ihres Wohnortes f&uuml;r die alternative Lieferadresse ein!");
	      $('customerAltPostcode').focus();
	      return false;
	   }

	   // Ort leer?
	   if($F('customerAltCity') == "")
	   {
	      ExtAlert("Bitte geben Sie Ihren Wohnort f&uuml;r die alternative Lieferadresse ein!");
	      $('customerAltCity').focus();
	      return false;
	   }
	}

   var gender = "";
   var arrGender = $('frmShop').customerGender;
   var len = arrGender.length;
   
   for(var i = 0; i < len; i++)
   {
      if(arrGender[i].checked == true)
      {
         var gender = arrGender[i].value;
         break;
      }
   }

   var alt_gender = "";
   var arrGender = $('frmShop').customerAltGender;
   var len = arrGender.length;
   
   for(var i = 0; i < len; i++)
   {
      if(arrGender[i].checked == true)
      {
         var alt_gender = arrGender[i].value;
         break;
      }
   }

	// Zeitstempel benutzen, damit der Aufruf nicht aus dem Cache erfolgt
   var datum = new Date();
   var timestamp = Date.parse(datum);

   var param = "timestamp=" + timestamp +
               "&action=saveCustomer" +
               "&id_customer=" + escape($F('id_customer')) +
               "&altAddress=" + escape($F('altAddress')) +
               "&customerCompany=" + escape($F('customerCompany')) +
               "&customerSalutation=" + escape($F('customerSalutation')) +
               "&customerGender=" + escape(gender) +
               "&customerLastname=" + escape($F('customerLastname')) +
               "&customerFirstname=" + escape($F('customerFirstname')) +
               "&customerStreet=" + escape($F('customerStreet')) +
               "&customerHousenumber=" + escape($F('customerHousenumber')) +
               "&customerStreetExtra=" + escape($F('customerStreetExtra')) +
               "&customerPostcode=" + escape($F('customerPostcode')) +
               "&customerCity=" + escape($F('customerCity')) +
               "&customerCountry=" + escape($F('customerCountry')) +
               "&customerBirthDay=" + $F('birthDayOrder') +
               "&customerBirthMonth=" + $F('birthMonthOrder') +
               "&customerBirthYear=" + $F('birthYearOrder') +
               "&customerPhone=" + escape($F('customerPhone')) +
               "&customerFax=" + escape($F('customerFax')) +
               "&customerMobile=" + escape($F('customerMobile')) +
               "&customerEmail=" + escape($F('customerEmail')) +
               "&customerHomepage=" + escape($F('customerHomepage'))+
               "&customerAltCompany=" + escape($F('customerAltCompany')) +
               "&customerAltSalutation=" + escape($F('customerAltSalutation')) +
               "&customerAltGender=" + alt_gender +
               "&customerAltLastname=" + escape($F('customerAltLastname')) +
               "&customerAltFirstname=" + escape($F('customerAltFirstname')) +
               "&customerAltStreet=" + escape($F('customerAltStreet')) +
               "&customerAltHousenumber=" + escape($F('customerAltHousenumber')) +
               "&customerAltStreetExtra=" + escape($F('customerAltStreetExtra')) +
               "&customerAltPostcode=" + escape($F('customerAltPostcode')) +
               "&customerAltCity=" + escape($F('customerAltCity'));

   // AJAX-Request absetzen
   ExtWait('Bitte haben Sie einen Moment Geduld! Ihre Daten werden gespeichert.');
   var ajax = new Ajax.Request
   (
      "inc/ajax/frontend.ajax.php",
      {
         method: "post",
         postBody: param,
         requestHeader:["Content-Type", "text/html"],
         onComplete: function(r)
         {
				ExtWait('');
            eval(r.responseText);
            
            $('infoReg').hide();

         	// Angaben aus dem Warenkorb
         	var units = '';
         	var len = arrBasket.length;

            // Warenkorb leer?
            if(len == 0){
               ExtInfo('Ihre Angaben wurden gespeichert.<br><br>Ihr Warenkorb ist leer!');
               return false;
            }
            check18basket();
         },
         onFailure: function(r)
         {
            falert(r.responseText);
         }
      }
   )	
   return false;	
}

// Überprüfung des Warenkorbes auf ab-18-Artikel
function check18basket(){
   // Angaben aus dem Warenkorb
	var units = '';
	var len = arrBasket.length;

   // Warenkorb leer?
   if(len == 0){
      ExtInfo('Ihr Warenkorb ist leer!');
      return false;
   }
	for(var seq = 0; seq < len; seq++){
		if(arrBasket[seq]['amount'] != 0)
		{
			var amount = arrBasket[seq]['amount'];
			var id_unit = arrBasket[seq]['id_unit'];
			if(units != "")units = units + '___';
			units = units + id_unit + '_' + amount;
		}
	}

	// Zeitstempel benutzen, damit der Aufruf nicht aus dem Cache erfolgt
   var datum = new Date();
   var timestamp = Date.parse(datum);

   var param = "timestamp=" + timestamp +
               "&action=check18basket" +
               "&id_customer=" + escape($F('id_customer')) +
               "&len=" + len +
               "&units=" + units;

   // AJAX-Request absetzen
   var ajax = new Ajax.Request
   (
      "inc/ajax/frontend.ajax.php",
      {
         method: "post",
         postBody: param,
         requestHeader:["Content-Type", "text/html"],
         onComplete: function(r)
         {
            eval(r.responseText);
         },
         onFailure: function(r)
         {
            falert(r.responseText);
         }
      }
   )
   return false;
}



// speichert Änderungen in den persönlichen Daten im Bereich "Mein Konto"
function saveMyData()
{
   // Name leer?
   if($F('myLastname') == "")
   {
      ExtAlert("Bitte geben Sie Ihren vollst&auml;ndigen Namen ein!");
      $('myLastname').focus();
      return false;
   }
   // Vorname leer?
   if($F('myFirstname') == "")
   {
      ExtAlert("Bitte geben Sie Ihren vollst&auml;ndigen Namen ein!");
      $('myFirstname').focus();
      return false;
   }
   // Straße leer?
   if($F('myStreet') == "")
   {
      ExtAlert("Bitte geben Sie Ihre Wohnstra&szlig;e ein!");
      $('myStreet').focus();
      return false;
   }
   // Hausnummer leer?
   if($F('myHousenumber') == "")
   {
      ExtAlert("Bitte geben Sie Ihre Hausnummer ein!");
      $('myHousenumber').focus();
      return false;
   }

   // PLZ leer?
   if($F('myPostcode') == "")
   {
      ExtAlert("Bitte geben Sie die Postleitzahl Ihres Wohnortes ein!");
      $('myPostcode').focus();
      return false;
   }

   // PLZ nur Zahlen?
   if(!testnum($F('myPostcode')) && $F('myCountry') == 'Deutschland')
   {
      ExtAlert("Bitte geben Sie f&uuml;r die Postleitzahl Ihres Wohnortes nur Zahlen ein! Haben Sie vielleicht ein Leerzeichen eingegeben?");
      $('myPostcode').focus();
      return false;
   }

   // PLZ falsch?
   if($F('myPostcode').length!=5 && $F('myCountry') == 'Deutschland')
   {
      ExtAlert("Bitte geben Sie die 5-stellige Postleitzahl Ihres Wohnortes ein!");
      $('myPostcode').focus();
      return false;
   }

   // Ort leer?
   if($F('myCity') == "")
   {
      ExtAlert("Bitte geben Sie Ihren Wohnort ein!");
      $('myCity').focus();
      return false;
   }
   
   // wurde Geburtsdatum komplett eingegeben?
   if($('myBirthDay').selectedIndex == 0 || $('myBirthMonth').selectedIndex == 0 || $('myBirthYear').selectedIndex == 0)
   {
      ExtAlert('Bitte geben Sie Ihr vollst&auml;ndiges Geburtsdatum ein.');
      $('myBirthDay').focus();
      return false;
   }
   
   // Mail leer?
   if($F('myEmail') == "")
   {
      ExtAlert("Bitte geben Sie Ihre Mail-Adresse ein!");
      $('myEmail').focus();
      return false;
   }

   // Mail korrekt?
   //nur ein @-Zeichen
   anzahl = $F('myEmail').split("@");
   //regulärer Ausdruck für Email-Adresse
   var reg_email = new RegExp (".+@.{3,}\..{2,}");
   if(!reg_email.exec($F('myEmail')) || (anzahl.length != 2) || ($F('myEmail').indexOf(" ") >= 0))
   {
      ExtAlert("Bitte geben Sie eine g&uuml;ltige Mail-Adresse an!");
      $('myEmail').focus();
      return false;
   }

   var gender = "";
   var arrGender = $('frmShop').myGender;
   var len = arrGender.length;
   
   for(var i = 0; i < len; i++)
   {
      if(arrGender[i].checked == true)
      {
         var gender = arrGender[i].value;
         break;
      }
   }

	// Zeitstempel benutzen, damit der Aufruf nicht aus dem Cache erfolgt
   var datum = new Date();
   var timestamp = Date.parse(datum);

   var param = "timestamp=" + timestamp +
               "&action=saveMyData" +
               "&id_customer=" + escape($F('id_customer')) +
               "&customerCompany=" + escape($F('myCompany')) +
               "&customerSalutation=" + escape($F('mySalutation')) +
               "&customerGender=" + escape(gender) +
               "&customerLastname=" + escape($F('myLastname')) +
               "&customerFirstname=" + escape($F('myFirstname')) +
               "&customerStreet=" + escape($F('myStreet')) +
               "&customerHousenumber=" + escape($F('myHousenumber')) +
               "&customerStreetExtra=" + escape($F('myStreetExtra')) +
               "&customerPostcode=" + escape($F('myPostcode')) +
               "&customerCity=" + escape($F('myCity')) +
               "&customerCountry=" + escape($F('myCountry')) +
               "&customerBirthDay=" + $F('myBirthDay') +
               "&customerBirthMonth=" + $F('myBirthMonth') +
               "&customerBirthYear=" + $F('myBirthYear') +
               "&customerPhone=" + escape($F('myPhone')) +
               "&customerFax=" + escape($F('myFax')) +
               "&customerMobile=" + escape($F('myMobile')) +
               "&customerEmail=" + escape($F('myEmail')) +
               "&customerHomepage=" + escape($F('myHomepage'));

   // AJAX-Request absetzen
   ExtWait('Bitte haben Sie einen Moment Geduld! Ihre Daten werden gespeichert.');
   var ajax = new Ajax.Request
   (
      "inc/ajax/frontend.ajax.php",
      {
         method: "post",
         postBody: param,
         requestHeader:["Content-Type", "text/html"],
         onComplete: function(r)
         {
				ExtWait('');
            eval(r.responseText);
         },
         onFailure: function(r)
         {
            falert(r.responseText);
         }
      }
   )	
}

// speichert Änderungen in der alternativen Lieferadresse im Bereich "Mein Konto"
function saveMyAltData()
{
   // PLZ nur Zahlen?
   if(!testnum($F('myAltPostcode')))
   {
      ExtAlert("Bitte geben Sie f&uuml;r die Postleitzahl des Wohnortes nur Zahlen ein!");
      $('myAltPostcode').focus();
      return false;
   }

   var gender = "";
   var arrGender = $('frmShop').myAltGender;
   var len = arrGender.length;
   
   for(var i = 0; i < len; i++)
   {
      if(arrGender[i].checked == true)
      {
         var gender = arrGender[i].value;
         break;
      }
   }

	// Zeitstempel benutzen, damit der Aufruf nicht aus dem Cache erfolgt
   var datum = new Date();
   var timestamp = Date.parse(datum);

   var param = "timestamp=" + timestamp +
               "&action=saveMyAltData" +
               "&id_customer=" + escape($F('id_customer')) +
               "&customerAltCompany=" + escape($F('myAltCompany')) +
               "&customerAltSalutation=" + escape($F('myAltSalutation')) +
               "&customerAltGender=" + escape(gender) +
               "&customerAltLastname=" + escape($F('myAltLastname')) +
               "&customerAltFirstname=" + escape($F('myAltFirstname')) +
               "&customerAltStreet=" + escape($F('myAltStreet')) +
               "&customerAltHousenumber=" + escape($F('myAltHousenumber')) +
               "&customerAltStreetExtra=" + escape($F('myAltStreetExtra')) +
               "&customerAltPostcode=" + escape($F('myAltPostcode')) +
               "&customerAltCity=" + escape($F('myAltCity'));

   // AJAX-Request absetzen
   ExtWait('Bitte haben Sie einen Moment Geduld! Ihre Daten werden gespeichert.');
   var ajax = new Ajax.Request
   (
      "inc/ajax/frontend.ajax.php",
      {
         method: "post",
         postBody: param,
         requestHeader:["Content-Type", "text/html"],
         onComplete: function(r)
         {
				ExtWait('');
            eval(r.responseText);
         },
         onFailure: function(r)
         {
            falert(r.responseText);
         }
      }
   )	
}

// speichert Änderungen in Bankdaten im Bereich "Mein Konto"
function saveMyBank()
{
	// Zeitstempel benutzen, damit der Aufruf nicht aus dem Cache erfolgt
   var datum = new Date();
   var timestamp = Date.parse(datum);

   var param = "timestamp=" + timestamp +
               "&action=saveMyBank" +
               "&id_customer=" + escape($F('id_customer')) +
               "&customerBank=" + escape($F('myBank')) +
               "&customerBankCode=" + escape($F('myBankCode')) +
               "&customerAccountNumber=" + escape($F('myAccountNumber'));

   // AJAX-Request absetzen
   ExtWait('Bitte haben Sie einen Moment Geduld! Ihre Daten werden gespeichert.');
   var ajax = new Ajax.Request
   (
      "inc/ajax/frontend.ajax.php",
      {
         method: "post",
         postBody: param,
         requestHeader:["Content-Type", "text/html"],
         onComplete: function(r)
         {
				ExtWait('');
            eval(r.responseText);
         },
         onFailure: function(r)
         {
            falert(r.responseText);
         }
      }
   )	
}

function showLastOverview()
{
	// Angaben aus dem Warenkorb
	var units = '';
	var len = arrBasket.length;
	
	// kein Eintrag vorhanden
	for(var seq = 0; seq < len; seq++)
	{
		if(arrBasket[seq]['amount'] != 0)
		{
			var amount = arrBasket[seq]['amount'];
			var id_unit = arrBasket[seq]['id_unit'];
			if(units != "")units = units + '___';
			units = units + id_unit + '_' + amount;
		}
	}
	if(units == "")
	{
		ExtInfo('In Ihrem Warenkorb befinden sich keine Artikel.');
		return false;
	}
	
	// Buttons ausblenden
   toggleShopMenu('');

	// Schritt speichern	
	$('step').value = 'lastOverview';

	// Überschrift aktualisieren
	$('infoOverview').update('Meine Bestellung');

	// Warteanzeige
	ExtWait('Bitte haben Sie einen Moment Geduld! Ihre Bestellung wird vorbereitet.');
	
	// Inhaltsseite leeren
	$('frontend').update('');

	// Zeitstempel benutzen, damit der Aufruf nicht aus dem Cache erfolgt
   var datum = new Date();
   var timestamp = Date.parse(datum);

   var param = "timestamp=" + timestamp +
               "&action=showLastOverview" +
               "&id_customer=" + $F('id_customer') +
               "&altAddress=" + $F('altAddress') +
               "&payment=" + $F('payment') +
               "&len=" + len +
               "&units=" + units;

   // AJAX-Request absetzen
   var ajax = new Ajax.Request
   (
      "inc/ajax/frontend.ajax.php",
      {
         method: "post",
         postBody: param,
         requestHeader:["Content-Type", "text/html"],
         onComplete: function(r)
         {
            eval(r.responseText);

				// Buttons einblenden
				toggleShopMenu('lastOverview');
				
				// Warteanzeige aus
				ExtWait('');
         },
         onFailure: function(r)
         {
            falert(r.responseText);
         }
      }
   )
}	

// speichert die Auswahl der Bezahlung
function savePayment()
{
	if($('paymentVorkasse').checked == true)$('payment').value = 'Vorkasse';
	if($('paymentBankeinzug').checked == true)$('payment').value = 'Bankeinzug';
	if($('paymentRechnung').checked == true)$('payment').value = 'Rechnung';
	if($('paymentRechnung2').checked == true)$('payment').value = 'RechnungB';
	
	if($F('payment') == 'Bankeinzug')
	{
	   // Angaben leer?
	   if($F('customerAccountNumber') == "")
	   {
	      $('customerAccountNumber').focus();
	      ExtAlert("Bitte geben Sie Ihre Kontonummer ein!");
	      return false;
	   }
	   if($F('customerBank') == "")
	   {
	      $('customerBank').focus();
	      ExtAlert("Bitte geben Sie Ihr Kreditinstitut ein!");
	      return false;
	   }
	   if($F('customerBankCode') == "")
	   {
	      $('customerBankCode').focus();
	      ExtAlert("Bitte geben Sie die Bankleitzahl Ihres Kreditinstitutes ein!");
	      return false;
	   }

		// Zeitstempel benutzen, damit der Aufruf nicht aus dem Cache erfolgt
	   var datum = new Date();
	   var timestamp = Date.parse(datum);
	
	   var param = "timestamp=" + timestamp +
	               "&action=savePayment" +
	               "&id_customer=" + $F('id_customer') +
	               "&customerAccountNumber=" + escape($F('customerAccountNumber')) +
	               "&customerBank=" + escape($F('customerBank')) +
	               "&customerBankCode=" + escape($F('customerBankCode'));
	
	   // AJAX-Request absetzen
		ExtWait('Bitte haben Sie einen Moment Geduld!');
	   var ajax = new Ajax.Request
	   (
	      "inc/ajax/frontend.ajax.php",
	      {
	         method: "post",
	         postBody: param,
	         asynchronous: false,
	         requestHeader:["Content-Type", "text/html"],
	         onComplete: function(r)
	         {
					ExtWait('');
	            eval(r.responseText);
					showLastOverview();
	         },
	         onFailure: function(r)
	         {
	            falert(r.responseText);
	         }
	      }
	   )	
	}
	else
	{
		showLastOverview();
	}		
}

// zeigt die Auswahlmöglichkeiten für die Bezahlung an
function togglePayment(c){
   switch(c){
      case 'allOff':
         $('divPaymentRechnung').hide();
         $('divPaymentRechnung2').hide();
         $('divPaymentBankeinzug').hide();

         $('paymentTable').hide();
         $('paymentLoadingGif').show();
         break;
      case 'noBill':
         $('paymentLoadingGif').hide();
         $('paymentTable').show();
         
         $('infoVorkasse').show();

         $('divPaymentVorkasse').show();
         $('divPaymentRechnung2').show();
			$('paymentVorkasse').checked = true;
			if($('payment').value == 'Rechnung')$('paymentRechnung2').checked = true;
			break;
      case 'bill':
         $('paymentLoadingGif').hide();
         $('paymentTable').show();
         
         $('infoVorkasse').hide();
         $('infostarVorkasse').hide();

         $('divPaymentVorkasse').show();
         $('divPaymentBankeinzug').show();
         $('divPaymentRechnung').show();

         if($('payment').value == 'Vorkasse')$('paymentVorkasse').checked = true;
         if($('payment').value == 'Bankeinzug')$('paymentBankeinzug').checked = true;
         if($('payment').value == 'Rechnung')$('paymentRechnung').checked = true;

         // Kundendaten
         $('customerAccountNumber').value = arrCustomers[0]['account_number'];
         $('customerBank').value = arrCustomers[0]['bank'];
         $('customerBankCode').value = arrCustomers[0]['bank_code'];

         break;
   }
}

// Bestellung absenden
function submitOrder()
{
   // AGB?
   if($('AGB').checked != true)
   {
      ExtAlert("Bitte lesen Sie die Allgemeinen Gesch&auml;ftsbedingungen und erkl&auml;ren Sie sich mit diesen einverstanden!  Markieren Sie dazu das entsprechende Ankreuzk&auml;stchen auf der Seite <b>Meine Bestellung</b>.");
      return false;
   }

	// Angaben aus dem Warenkorb
	var units = '';
	var len = arrBasket.length;
	
	// kein Eintrag vorhanden
	for(var seq = 0; seq < len; seq++)
	{
		if(arrBasket[seq]['amount'] != 0)
		{
			var amount = arrBasket[seq]['amount'];
			var id_unit = arrBasket[seq]['id_unit'];
			if(units != "")units = units + '___';
			units = units + id_unit + '_' + amount;
		}
	}

	if(units == "")
	{
		ExtInfo('In Ihrem Warenkorb befinden sich keine Artikel.');
		return false;
	}
	
	// Zeitstempel benutzen, damit der Aufruf nicht aus dem Cache erfolgt
   var datum = new Date();
   var timestamp = Date.parse(datum);

   var param = "timestamp=" + timestamp +
               "&action=submitOrder" +
               "&id_customer=" + $F('id_customer') +
               "&altAddress=" + $F('altAddress') +
               "&payment=" + escape($F('payment')) +
               "&orderNotices=" + escape($F('orderNotices')) +
               "&extern=" + escape($F('extern')) +
               "&externID=" + escape($F('externID')) +
               "&units=" + units;

   // AJAX-Request absetzen
	ExtWait('Bitte haben Sie einen Moment Geduld! Ihre Bestellung wird bearbeitet.');
   var ajax = new Ajax.Request
   (
      "inc/ajax/frontend.ajax.php",
      {
         method: "post",
         postBody: param,
         asynchronous: false,
         requestHeader:["Content-Type", "text/html"],
         onComplete: function(r)
         {
				ExtWait('');
            eval(r.responseText);
         },
         onFailure: function(r)
         {
            falert(r.responseText);
         }
      }
   )	
}

function searchEnter(Ereignis)
{
  if (!Ereignis)
    Ereignis = window.event;

  if (Ereignis.which) {
    Tastencode = Ereignis.which;
  } else if (Ereignis.keyCode) {
    Tastencode = Ereignis.keyCode;
  }

	if (Tastencode == 13)
		search();
}
//if(navigator.userAgent.indexOf("Firefox") != -1)document.onkeyup = searchEnter;

// Suchfunktion
var infoLastSearch = "Das letzte Suchergebnis wird stets zwischengespeichert. Sie k&ouml;nnen sich auf unserer Website umsehen und sp&auml;ter wieder zur Suchfunktion im Online-Shop zur&uuml;ckkehren. Klicken Sie anschlie&szlig;end auf &#132;Suche starten&#147;, um Ihr letztes Suchergebnis aus dem Zwischenspeicher anzuzeigen. Oder geben Sie einen anderen Suchbegriff f&uuml;r eine neue Suche ein.";
function search()
{
	// Überschrift aktualisieren
	$('infoOverview').update('Suchergebnis');

	// letztes Suchergebnis zwischengespeichert?
	if($F('lastSearch') == $F('searchShopHeader'))
	{
		// Schritt speichern	
		$('step').value = 'search';
	
		// Warteanzeige kurz anzeigen lassen, könnte sonst verwirren
		ExtWait('Bitte haben Sie einen Moment Geduld! Ihre Suchanfrage wird bearbeitet.');			      	
		var last = $F('contentSearchResult');
		$('frontend').update(last);
		window.setTimeout("ExtWait('')",250);
		return false;
	}

   // solange Suchbegriff zu kurz, keine Suchergebnisse ausgeben
   if($F('searchShopHeader').length < 2)
   {
      ExtInfo('Bitte geben Sie mindestens 2 Zeichen f&uuml;r eine Suchanfrage ein!');
      return false;
   }

   //////////////////////////////////////
   // Suchbegriffe auswerten
   // zunächst Suchbegriffe nach " durchsuchen
   var inputSearch = $F('searchShopHeader');

	var arrSearch = new Array();
	var s = 0;
	if(inputSearch.indexOf('"') != -1)
	{
		var arr_s = inputSearch.split('"');
		// leere Einträge entfernen
		for(var a = 0; a < arr_s.length; a = a + 1)
		{
			if(arr_s[a] != "")
			{
				arrSearch[s] = arr_s[a];
				s = s + 1;
			}
		}
	// oder nach Leerzeichen trennen
	}
	else
	{
		if(inputSearch.indexOf(' ') != -1)
		{
			var arr_s = inputSearch.split(' ');
			// leere Einträge entfernen
			for(var a = 0; a < arr_s.length; a = a + 1)
			{
				if(arr_s[a] != "")
				{
					arrSearch[s] = arr_s[a];
					s = s + 1;
				}
			}
		}
		else
		{
			arrSearch[s] = inputSearch;
		}
	}

	// Abbruch bei fehlerhaften Suchergebnissen
	if(arrSearch.length == 0)
	{
		ExtAlert('Die Suchbegriffe konnten nicht ausgewertet werden.');
		return true;
	}

	// Inhaltsseite leeren
	$('frontend').update('');

	// Warteanzeige
	ExtWait('Bitte haben Sie einen Moment Geduld! Ihre Suchanfrage wird bearbeitet.');
		
	var search = arrSearch.join("__");
	
	// Suchbegriffe speichern
	$('lastSearch').value = $F('searchShopHeader');
	
	// Schritt speichern	
	$('step').value = 'search';
	
	// Zeitstempel benutzen, damit der Aufruf nicht aus dem Cache erfolgt
   var datum = new Date();
   var timestamp = Date.parse(datum);

   var param = "timestamp=" + timestamp +
               "&action=search" +
               "&search=" + escape(search);

   // AJAX-Request absetzen
   var ajax = new Ajax.Request
   (
      "inc/ajax/frontend.ajax.php",
      {
         method: "post",
         postBody: param,
         requestHeader:["Content-Type", "text/html"],
         onComplete: function(r)
         {
				ExtWait('');
            eval(r.responseText);

				/*
				// Beim ersten Mal hinweis anzeigen
			   if(infoLastSearch != "")
			   {
			   	ExtInfo(infoLastSearch);
					infoLastSearch = "";
				}
				*/
         },
         onFailure: function(r)
         {
            falert(r.responseText);
         }
      }
   )
}

// Direktbestellung absenden
function submitDirectOrder()
{
	////////////////////////////////////////////////////////
	// Angaben aus dem Warenkorb (20 Reihen)
	var frmDirectUnits = "";
	for(var row = 1; row <= 20; row++)
	{
		var ean = $F('ean'+row);
		var productTitle = $F('productTitle'+row);
		var amount = $F('amount'+row);
		var units = $F('units'+row);
		var price = $F('price'+row);
		
		ean = ean.replace(/\|/g, " und ");
		productTitle = productTitle.replace(/\|/g, " und ");
		amount = amount.replace(/\|/g, " und ");
		units = units.replace(/\|/g, " und");
		price = price.replace(/\|/g, " und ");

		// steht überhaupt was drin in der Zeile?
		if(ean == "" &&
			productTitle == "" &&
			amount == "" &&
			units == "" &&
			price == "")continue;

		// Anzahl und Artikelnummer oder -bezeichnung muss angegeben sein?
		if(ean == "" && productTitle == "")
		{
			ExtInfo('Bitte geben Sie zumindest die Artikelnummer oder die Artikelbezeichnung des gew&uuml;nschten Artikels ein.');
	      $('units'+ean).focus();
			return false;
		}
		if(units == "")
		{
			ExtInfo('Bitte geben Sie die Anzahl des gew&uuml;nschten Artikels ein.');
	      $('units'+row).focus();
			return false;
		}
	   if(!testnum(units))
	   {
	      ExtAlert('Bitte geben Sie f&uuml;r die Anzahl des gew&uuml;nschten Artikels nur Zahlen ein!');
	      $('units'+row).focus();
	      return false;
	   }
	   if(frmDirectUnits != "")frmDirectUnits = frmDirectUnits + "___";
	   frmDirectUnits = frmDirectUnits + ean + "|" + productTitle + "|" + amount + "|" + units + "|" + price
	}
	if(frmDirectUnits == "")
	{
		ExtInfo('Bitte geben Sie f&uuml;r eine Direktbestellung die gew&uuml;nschten Artikel in die daf&uuml;r vorgesehenen Eingabefelder ein.');
		return false;
	}


	////////////////////////////////////////////////////////
	// Persönliche Daten
	
	var frmDirectCustomerRegistered = 1;
	if($('frmDirectCustomerRegisteredFalse').checked == true)
	{
	   frmDirectCustomerRegistered = 0;
	   
	   // Name leer?
	   if($F('frmDirectCustomerLastname') == "")
	   {
	      ExtAlert("Bitte geben Sie Ihren vollst&auml;ndigen Namen ein!");
	      $('frmDirectCustomerLastname').focus();
	      return false;
	   }
	   // Vorname leer?
	   if($F('frmDirectCustomerFirstname') == "")
	   {
	      ExtAlert("Bitte geben Sie Ihren vollst&auml;ndigen Namen ein!");
	      $('frmDirectCustomerFirstname').focus();
	      return false;
	   }
	   // Straße leer?
	   if($F('frmDirectCustomerStreet') == "")
	   {
	      ExtAlert("Bitte geben Sie Ihre Wohnstra&szlig;e ein!");
	      $('frmDirectCustomerStreet').focus();
	      return false;
	   }
	   // Hausnummer leer?
	   if($F('frmDirectCustomerHousenumber') == "")
	   {
	      ExtAlert("Bitte geben Sie Ihre Hausnummer ein!");
	      $('frmDirectCustomerHousenumber').focus();
	      return false;
	   }
	
	   // PLZ leer?
	   if($F('frmDirectCustomerPostcode') == "")
	   {
	      ExtAlert("Bitte geben Sie die Postleitzahl Ihres Wohnortes ein!");
	      $('frmDirectCustomerPostcode').focus();
	      return false;
	   }
	   // PLZ nur Zahlen?
	   if(!testnum($F('frmDirectCustomerPostcode')))
	   {
	      ExtAlert("Bitte geben Sie f&uuml;r die Postleitzahl Ihres Wohnortes nur Zahlen ein! Haben Sie vielleicht ein Leerzeichen eingegeben?");
	      $('frmDirectCustomerPostcode').focus();
	      return false;
	   }

	   // PLZ falsch?
	   if($F('frmDirectCustomerPostcode').length != 5)
	   {
	      ExtAlert("Bitte geben Sie die 5-stellige Postleitzahl Ihres Wohnortes ein!");
	      $('frmDirectCustomerPostcode').focus();
	      return false;
	   }

	   // Ort leer?
	   if($F('frmDirectCustomerCity') == "")
	   {
	      ExtAlert("Bitte geben Sie Ihren Wohnort ein!");
	      $('frmDirectCustomerCity').focus();
	      return false;
	   }
	   
	   // Telefonnummer leer?
	   if($F('frmDirectCustomerPhone') == "")
	   {
	      ExtAlert("Bitte geben Sie Ihre Telefonnummer ein!");
	      $('frmDirectCustomerPhone').focus();
	      return false;
	   }
	
	   // Mail leer?
	   if($F('frmDirectCustomerEmail') == "")
	   {
	      ExtAlert("Bitte geben Sie Ihre Mail-Adresse ein!");
	      $('frmDirectCustomerEmail').focus();
	      return false;
	   }
	
	   // Mail korrekt?
	   //nur ein @-Zeichen
	   anzahl = $F('frmDirectCustomerEmail').split("@");
	   //regulärer Ausdruck für Email-Adresse
	   var reg_email = new RegExp (".+@.{3,}\..{2,}");
	   if(!reg_email.exec($F('frmDirectCustomerEmail')) || (anzahl.length != 2) || ($F('frmDirectCustomerEmail').indexOf(" ") >= 0))
	   {
	      ExtAlert("Bitte geben Sie eine g&uuml;ltige Mail-Adresse an!");
	      $('frmDirectCustomerEmail').focus();
	      return false;
	   }
	}
	else
	{
	   // Benutzernam leer?
	   if($F('frmDirectCustomerLogin') == "")
	   {
	      $('frmDirectCustomerLogin').focus();
	      ExtAlert("Bitte geben Sie Ihren Benutzernamen ein!");
	      return false;
	   }
		
	   // Passwort leer?
	   if($F('frmDirectCustomerPass') == "")
	   {
	      $('frmDirectCustomerPass').focus();
	      ExtAlert("Bitte geben Sie Ihr Passwort ein!");
	      return false;
	   }
	}
	
	if($('frmDirectPaymentVorkasse').checked == true)var frmDirectPayment = 'Vorkasse';
	if($('frmDirectPaymentBankeinzug').checked == true)var frmDirectPayment = 'Bankeinzug';
	if($('frmDirectPaymentRechnung').checked == true)var frmDirectPayment = 'Rechnung';

	if(frmDirectPayment == 'Bankeinzug')
	{
	   // Angaben leer?
	   if($F('frmDirectCustomerAccountNumber') == "")
	   {
	      $('frmDirectCustomerAccountNumber').focus();
	      ExtAlert("Bitte geben Sie Ihre Kontonummer ein!");
	      return false;
	   }
	   if($F('frmDirectCustomerBank') == "")
	   {
	      ExtAlert("Bitte geben Sie Ihr Kreditinstitut ein!");
	      $('frmDirectCustomerBank').focus();
	      return false;
	   }
	   if($F('frmDirectCustomerBankCode') == "")
	   {
	      ExtAlert("Bitte geben Sie die Bankleitzahl Ihres Kreditinstitutes ein!");
	      $('frmDirectCustomerBankCode').focus();
	      return false;
	   }
	}

   var directGender = "";
   var arrGender = document.getElementsByName('frmDirectCustomerGender');
   var len = arrGender.length;

   for(var i = 0; i < len; i++)
   {
      if(arrGender[i].checked == true)
      {
         directGender = arrGender[i].value;
         break;
      }
   }


	////////////////////////////////////////////////////////
   // AGB?
   if($('frmDirectAGB').checked != true)
   {
      ExtAlert("Bitte lesen Sie die Allgemeinen Gesch&auml;ftsbedingungen und erkl&auml;ren Sie sich mit diesen einverstanden!  Markieren Sie dazu das entsprechende Ankreuzk&auml;stchen ganz unten auf der Seite <b>Direktbestellung</b>.");
      return false;
   }

	// Zeitstempel benutzen, damit der Aufruf nicht aus dem Cache erfolgt
   var datum = new Date();
   var timestamp = Date.parse(datum);

   var param = "timestamp=" + timestamp +
               "&action=submitDirectOrder" +
               "&extern=" + escape($F('extern')) +
               "&externID=" + escape($F('externID')) +
               "&frmDirectCustomerRegistered=" + frmDirectCustomerRegistered +
               "&frmDirectCustomerLogin=" + escape($F('frmDirectCustomerLogin')) +
               "&frmDirectCustomerPass=" + escape($F('frmDirectCustomerPass')) +
               "&frmDirectCustomerID=" + escape($F('frmDirectCustomerID')) +
               "&frmDirectCustomerGender=" + directGender +
               "&frmDirectCustomerSalutation=" + escape($F('frmDirectCustomerSalutation')) +
               "&frmDirectCustomerLastname=" + escape($F('frmDirectCustomerLastname')) +
               "&frmDirectCustomerFirstname=" + escape($F('frmDirectCustomerFirstname')) +
               "&frmDirectCustomerStreet=" + escape($F('frmDirectCustomerStreet')) +
               "&frmDirectCustomerHousenumber=" + escape($F('frmDirectCustomerHousenumber')) +
               "&frmDirectCustomerStreetExtra=" + escape($F('frmDirectCustomerStreetExtra')) +
               "&frmDirectCustomerPostcode=" + escape($F('frmDirectCustomerPostcode')) +
               "&frmDirectCustomerCity=" + escape($F('frmDirectCustomerCity')) +
               "&frmDirectCustomerPhone=" + escape($F('frmDirectCustomerPhone')) +
               "&frmDirectCustomerFax=" + escape($F('frmDirectCustomerFax')) +
               "&frmDirectCustomerMobile=" + escape($F('frmDirectCustomerMobile')) +
               "&frmDirectCustomerEmail=" + escape($F('frmDirectCustomerEmail')) +
               "&frmDirectCustomerNotices=" + escape($F('frmDirectCustomerNotices')) +
               "&frmDirectPayment=" + frmDirectPayment +
               "&frmDirectCustomerAccountNumber=" + escape($F('frmDirectCustomerAccountNumber')) +
               "&frmDirectCustomerBank=" + escape($F('frmDirectCustomerBank')) +
               "&frmDirectCustomerBankCode=" + escape($F('frmDirectCustomerBankCode')) +
               "&frmDirectUnits=" + escape(frmDirectUnits);

   // AJAX-Request absetzen
	ExtWait('Bitte haben Sie einen Moment Geduld! Ihre Bestellung wird bearbeitet.');
   var ajax = new Ajax.Request
   (
      "inc/ajax/frontend.ajax.php",
      {
         method: "post",
         postBody: param,
         asynchronous: false,
         requestHeader:["Content-Type", "text/html"],
         onComplete: function(r)
         {
				ExtWait('');
				
            eval(r.responseText);
         },
         onFailure: function(r)
         {
            falert(r.responseText);
         }
      }
   )	
}

// Direktbestellung zurücksetzen (nur die Liste!)
function resetDirectOrder()
{
	$('anc').focus();
	$('ean1').focus();
	
	for(var row = 1; row <= 20; row++)
	{
		$('ean'+row).value = "";
		$('productTitle'+row).value = "";
		$('amount'+row).value = "";
		$('units'+row).value = "";
		$('price'+row).value = "";
	}
}

