<?php

/**
 * 
 * Copyright (C) Die Randgruppe GmbH
 * 
 * http://www.randshop.com
 * http://www.dierandgruppe.com
 * 
 * Unter der Lizenz von Die Randgruppe GmbH:
 * http://www.randshop.com/Lizenz
 *  
 * $Author$
 * $Date$
 * $Revision$
 * 
 */

if (KUNDENGRUPPEN) {
	include_once(DATEIPFAD . "includes/functions.mod.kundengruppen.inc.php");
}

include_once(DATEIPFAD . "includes/functions.warenkorb.inc.php");

function RegistrierungKunden($Anrede, $Titel, $Vorname, $Nachname, $Firma, $Strasse, $Hausnummer, $PLZ, $Ort, $Land, $Telefon, $Fax, $Email, $Kundengruppe, $Mailtyp, $LanguageID, $Passwort = false, $UStID = '', $bundesstaat = 0) {

	// Kundengruppe abfragen
	if (!$Kundengruppe) {
		$Kundengruppe = GetDefaultKundengruppe();
	}

	// Passwort generieren 
    if(!$Passwort)
	    $Passwort = generatePassword(8);

	// Kunde speichern
	$SQLString = "INSERT INTO " . TABLE_KUNDEN . " SET ";
	$SQLString .= TABLE_KUNDEN . ".anrede = '" . mysql_real_escape_string($Anrede) . "', ";
	$SQLString .= TABLE_KUNDEN . ".titel = '" . mysql_real_escape_string($Titel) . "', ";
	$SQLString .= TABLE_KUNDEN . ".vorname = '" . mysql_real_escape_string($Vorname) . "', ";
	$SQLString .= TABLE_KUNDEN . ".nachname = '" . mysql_real_escape_string($Nachname) . "', ";
	$SQLString .= TABLE_KUNDEN . ".firma = '" . mysql_real_escape_string($Firma) . "', ";
	$SQLString .= TABLE_KUNDEN . ".strasse = '" . mysql_real_escape_string($Strasse) . "', ";
	$SQLString .= TABLE_KUNDEN . ".hausnummer = '" . mysql_real_escape_string($Hausnummer) . "', ";
	$SQLString .= TABLE_KUNDEN . ".timestempel = '" . time() . "', ";
	$SQLString .= TABLE_KUNDEN . ".plz = '" . mysql_real_escape_string($PLZ) . "', ";
	$SQLString .= TABLE_KUNDEN . ".ort = '" . mysql_real_escape_string($Ort) . "', ";
	$SQLString .= TABLE_KUNDEN . ".land = '" . mysql_real_escape_string($Land) . "', ";
    $SQLString .= TABLE_KUNDEN . ".bundesstaat = '" . mysql_real_escape_string($bundesstaat) . "', ";
	$SQLString .= TABLE_KUNDEN . ".telefon = '" . mysql_real_escape_string($Telefon) . "', ";
	$SQLString .= TABLE_KUNDEN . ".telefax = '" . mysql_real_escape_string($Fax) . "', ";
	$SQLString .= TABLE_KUNDEN . ".email = '" . mysql_real_escape_string($Email) . "', ";
	$SQLString .= TABLE_KUNDEN . ".kundengruppe = '" . mysql_real_escape_string($Kundengruppe) . "', ";
	$SQLString .= TABLE_KUNDEN . ".mailtyp = '" . mysql_real_escape_string($Mailtyp) . "', ";
    $SQLString .= TABLE_KUNDEN . ".ust = '" . mysql_real_escape_string($UStID) . "', ";
    $SQLString .= TABLE_KUNDEN . ".password = '" . md5($Passwort) . "', ";
	$SQLString .= TABLE_KUNDEN . ".moral = '" . GetStandardKundenZahlungsmoral() . "', ";
	$SQLString .= TABLE_KUNDEN . ".language_id = '" . $LanguageID . "', ";
	$SQLString .= TABLE_KUNDEN . ".datum = NOW() ";
	
	$MySQLQueryReference = errorlogged_mysql_query($SQLString);

	return mysql_insert_id();

}

function SetKundenLogin($Email, $Passwort) {
    $Passwort = trim($Passwort);

    // �berpr�fen, ob die Emailadresse schon vorhanden ist
	$SQLString = "SELECT * FROM " . TABLE_KUNDEN . " ";
	$SQLString .= " WHERE " . TABLE_KUNDEN . ".email = '" . mysql_real_escape_string($Email) . "'";
	
	$KundenObject = mysql_fetch_object(errorlogged_mysql_query($SQLString));
	
	if (!$KundenObject) {

		$KundenLoginArray["login_err"] = 1;
		$KundenLoginArray["login_msg"] = "Falsche Emailadresse";

	} else {
		
		// �berpr�fen, ob das Passwort stimmt
		$SQLString = "SELECT * FROM " . TABLE_KUNDEN . " ";
		$SQLString .= " WHERE " . TABLE_KUNDEN . ".email = '" . $Email . "' AND " . TABLE_KUNDEN . ".password = '" . md5($Passwort) . "'";
		
		$KundenObject = mysql_fetch_object(errorlogged_mysql_query($SQLString));
		$KundengruppenObject = GetKundengruppenDetail($KundenObject->kundengruppe);
		
		if (!$KundenObject) {
	
			$KundenLoginArray["login_err"] = 2;
			$KundenLoginArray["login_msg"] = "Falsches Passwort";
			
		} else {
			
			$KundenLoginArray = true;
			$_SESSION["kundengruppentype"] = $KundengruppenObject->type;
			$_SESSION["kunden_id"] = $KundenObject->id; 
			UpdateWarenkorbPreis($_SESSION["sessionId"], $Email);
			
			// Sprache setzen
			$LanguageObject = CheckLanguageID($KundenObject->language_id);
			$_SESSION["languageid"] = $LanguageObject->language_id; 
			$_SESSION["languageisocode"] = $LanguageObject->language_isocode;
            $_SESSION['locale'] = $LanguageObject->locale;

		}
		
	}
	
	return $KundenLoginArray;
	
}

function SaveShopKundenPasswort($KundenID, $Passwort) {

    $Passwort=trim($Passwort) ;

    // Kunde speichern
	$SQLString = "UPDATE " . TABLE_KUNDEN . " SET ";
	$SQLString .= TABLE_KUNDEN . ".password = '" . md5($Passwort) . "' ";
	$SQLString .= " WHERE " . TABLE_KUNDEN . ".id = '" . $KundenID . "'";
	
	$MySQLQueryReference = errorlogged_mysql_query($SQLString);
	return $KundenID;

}

function SaveShopKundenLieferadresse($KundenID, $Lieferung, $Anrede, $Titel, $Vorname, $Nachname, $Firma, $Strasse, $Hausnummer, $PLZ, $Ort, $Land, $bundesstaat = 0) {
	
	// Kundendaten einlesen
	$KundenObject = GetKundenDetail("", $KundenID);
	
	// Kunde speichern
	$SQLString = "UPDATE " . TABLE_KUNDEN . " SET ";
	$SQLString .= TABLE_KUNDEN . ".la_anrede = '" . $Anrede . "', ";
	$SQLString .= TABLE_KUNDEN . ".la_titel = '" . mysql_real_escape_string($Titel) . "', ";
	$SQLString .= TABLE_KUNDEN . ".la_vorname = '" . mysql_real_escape_string($Vorname) . "', ";
	$SQLString .= TABLE_KUNDEN . ".la_nachname = '" . mysql_real_escape_string($Nachname) . "', ";
	$SQLString .= TABLE_KUNDEN . ".la_firma = '" . mysql_real_escape_string($Firma) . "', ";
	$SQLString .= TABLE_KUNDEN . ".la_strasse = '" . mysql_real_escape_string($Strasse) . "', ";
	$SQLString .= TABLE_KUNDEN . ".la_hausnummer = '" . mysql_real_escape_string($Hausnummer) . "', ";
	$SQLString .= TABLE_KUNDEN . ".la_plz = '" . mysql_real_escape_string($PLZ) . "', ";
	$SQLString .= TABLE_KUNDEN . ".la_ort = '" . mysql_real_escape_string($Ort) . "', ";
	$SQLString .= TABLE_KUNDEN . ".la_land = '" . $Land . "', ";
    $SQLString .= TABLE_KUNDEN . ".la_bundesstaat = '" . $bundesstaat . "', ";
	$SQLString .= TABLE_KUNDEN . ".lieferung = '" . $Lieferung . "' ";
	$SQLString .= " WHERE " . TABLE_KUNDEN . ".id = '" . $KundenID . "'";
		
	$MySQLQueryReference = errorlogged_mysql_query($SQLString);

	// Zahlungsart �ndern, wenn Land ge�ndert
	if (($KundenObject->la_land != $Land) || ($Lieferung != $KundenObject->lieferung)) {
		
		// Alle m�glichen Zahlungsarten einlesen
		$ZahlungsartArray = GetKundenZahlungsartList($KundenObject->email,"");
		
        $GetNewZahlungsart = true;
        
        foreach ($ZahlungsartArray as $Zahlungsart) {
            
            if ($Zahlungsart['id'] == $KundenObject->zahlungsart) {
                $GetNewZahlungsart = false;
            }
            
        }
        
        if ($GetNewZahlungsart) {

            $SQLString = "UPDATE " . TABLE_KUNDEN . " SET ";
            $SQLString .= TABLE_KUNDEN . ".zahlungsart = '" . $ZahlungsartArray[1]["id"] . "' ";
            $SQLString .= " WHERE " . TABLE_KUNDEN . ".id = '" . $KundenID . "'";
        
            $MySQLQueryReference = mysql_query($SQLString);

            $KundenObject->zahlungsart = $ZahlungsartArray[1]["id"];
      
        }	
        	
	}

	// Versandart �ndern, wenn Land oder Lieferung ge�ndert
	if (($KundenObject->la_land != $Land) || ($Lieferung != $KundenObject->lieferung)) {
		
		// Alle m�glichen Versandarten einlesen
		$VersandartArray = GetKundenVersandartList($KundenObject->email, $_SESSION["sessionId"]);
		
        $zahlungsartVersandarten = GetZahlungsartVersandarten($KundenObject->zahlungsart, $KundenObject->language_id);

        if (count($zahlungsartVersandarten) > 0) {
            
            foreach ($VersandartArray as $key=>$versandart) {

                if (!$zahlungsartVersandarten[$versandart['id']] && (count($VersandartArray) > 1)) {
                    unset($VersandartArray[$key]); // Versandarten die dieser Zahlungsart nicht zugeordnet sind rausschmeissen
                }
                
            }
            
        }
  
        $GetNewVersandart = true;
  
        foreach ($VersandartArray as $Versandart) {
          
            if ($Versandart['id'] == $KundenObject->versandart) {
                $GetNewVersandart = false;
            }
    		
    	}
	
        if ($GetNewVersandart) {
            
            $SQLString = "UPDATE " . TABLE_KUNDEN . " SET ";
            $SQLString .= TABLE_KUNDEN . ".versandart = '" . $VersandartArray[1]["id"] . "' ";
            $SQLString .= " WHERE " . TABLE_KUNDEN . ".id = '" . $KundenID . "'";
                    
            $MySQLQueryReference = errorlogged_mysql_query($SQLString);
            
        }

	}
	    
    return $KundenID;

}

function SaveShopKundenGrunddaten($KundenID, $Anrede, $Titel, $Vorname, $Nachname, $Firma, $Strasse, $Hausnummer, $PLZ, $Ort, $Land, $Telefon, $Fax, $Email, $Kundengruppe, $Mailtyp, $UStID = '', $Bundesstaat = 0) {
	
	// Kundendaten einlesen
	$KundenObject = GetKundenDetail("", $KundenID);

	// Kundengruppe abfragen
	if (!$Kundengruppe) {
		$Kundengruppe = GetDefaultKundengruppe();
	}

	// Kunde speichern
	$SQLString = "UPDATE " . TABLE_KUNDEN . " SET ";
	$SQLString .= TABLE_KUNDEN . ".anrede = '" . $Anrede . "', ";
	$SQLString .= TABLE_KUNDEN . ".titel = '" . mysql_real_escape_string($Titel) . "', ";
	$SQLString .= TABLE_KUNDEN . ".vorname = '" . mysql_real_escape_string($Vorname) . "', ";
	$SQLString .= TABLE_KUNDEN . ".nachname = '" . mysql_real_escape_string($Nachname) . "', ";
	$SQLString .= TABLE_KUNDEN . ".firma = '" . mysql_real_escape_string($Firma) . "', ";
	$SQLString .= TABLE_KUNDEN . ".strasse = '" . mysql_real_escape_string($Strasse) . "', ";
	$SQLString .= TABLE_KUNDEN . ".hausnummer = '" . mysql_real_escape_string($Hausnummer) . "', ";
	$SQLString .= TABLE_KUNDEN . ".plz = '" . mysql_real_escape_string($PLZ) . "', ";
	$SQLString .= TABLE_KUNDEN . ".ort = '" . mysql_real_escape_string($Ort) . "', ";
	$SQLString .= TABLE_KUNDEN . ".land = '" . $Land . "', ";
    $SQLString .= TABLE_KUNDEN . ".bundesstaat = '" . $Bundesstaat . "', ";
	$SQLString .= TABLE_KUNDEN . ".telefon = '" . mysql_real_escape_string($Telefon) . "', ";
	$SQLString .= TABLE_KUNDEN . ".telefax = '" . mysql_real_escape_string($Fax) . "', ";
	$SQLString .= TABLE_KUNDEN . ".email = '" . mysql_real_escape_string($Email) . "', ";
	$SQLString .= TABLE_KUNDEN . ".kundengruppe = '" . $Kundengruppe . "', ";
	$SQLString .= TABLE_KUNDEN . ".mailtyp = '" . $Mailtyp . "', ";
    $SQLString .= TABLE_KUNDEN . ".ust = '" . mysql_real_escape_string($UStID) . "' ";
    $SQLString .= " WHERE " . TABLE_KUNDEN . ".id = '" . $KundenID . "'";
		
	$MySQLQueryReference = errorlogged_mysql_query($SQLString);

	// Kundengruppe neu setzen
	$KundengruppenObject = GetKundengruppenDetail($Kundengruppe);
	$_SESSION["kundengruppentype"] = $KundengruppenObject->type;
	$_SESSION["mail"] = $Email;
	
	// Zahlungsart �ndern, wenn Land ge�ndert
	if ($KundenObject->land != $Land) {

		// Alle m�glichen Zahlungsarten einlesen
		$ZahlungsartArray = GetKundenZahlungsartList($KundenObject->email,"");
		
		$SQLString = "UPDATE " . TABLE_KUNDEN . " SET ";
		$SQLString .= TABLE_KUNDEN . ".zahlungsart = '" . $ZahlungsartArray[1]["id"] . "' ";
		$SQLString .= " WHERE " . TABLE_KUNDEN . ".id = '" . $KundenID . "'";
				
		$MySQLQueryReference = errorlogged_mysql_query($SQLString);
		
	}
	
	// Versandart �ndern, wenn Land ge�ndert
	if (($KundenObject->land != $Land) && !$KundengruppenObject->lieferung) {
		
		// Alle m�glichen Versandarten einlesen
		$VersandartArray = GetKundenVersandartList($KundenObject->email, $SessionID);
		
		$SQLString = "UPDATE " . TABLE_KUNDEN . " SET ";
		$SQLString .= TABLE_KUNDEN . ".versandart = '" . $VersandartArray[1]["id"] . "' ";
		$SQLString .= " WHERE " . TABLE_KUNDEN . ".id = '" . $KundenID . "'";
				
		$MySQLQueryReference = errorlogged_mysql_query($SQLString);
		
	}
	
	// Newsletter anpassen
	$SQLString = 'UPDATE ' . TABLE_NEWSLETTER . ' SET ';
    $SQLString .= TABLE_NEWSLETTER . '.email = \'' . mysql_real_escape_string($Email) . '\' ';
    $SQLString .= 'WHERE ';
    $SQLString .= TABLE_NEWSLETTER . '.email = \'' . $KundenObject->email . '\' ';
    $SQLString .= 'LIMIT 1';
    
    $MySQLQUeryReference = errorlogged_mysql_query($SQLString);
    
	return $KundenID;

}

function GetKundenAnzahl($SearchField, $SearchString) {

	// ********************************************************************************
	// ** SQL-String zum einlesen der Kunden zusammensetzen
	// ********************************************************************************

	// Felder
	$SQLString = "SELECT ";
	$SQLString .= "COUNT(*) AS KundenAnzahl ";
	$SQLString .= "FROM " . TABLE_KUNDEN . " ";
    $SQLString .= "WHERE ";
    $SQLString .= '(' . TABLE_KUNDEN . '.lieferant = 0) ';
	
	// Suche
	if ($SearchField && $SearchString) {
		$SQLString .= "AND " . $SearchField . " LIKE '%" . $SearchString . "%' "; 
	}
	
	$KundenAnzahlObject = mysql_fetch_object(errorlogged_mysql_query($SQLString));
	
	return $KundenAnzahlObject->KundenAnzahl;
	
}

function DeleteKunde($KundenID) {

	$SQLString = "DELETE FROM " . TABLE_KUNDEN . " WHERE id = '" . $KundenID . "'";
	$QuerryReferenz = errorlogged_mysql_query($SQLString);
	
}

function GetKundenDataArray($SearchField, $SearchString, $SortField, $SortOrder, $DataOffset, $DataCount, $OptionSearchLike = true) {

	$LanguageID = GetDefaultLanguageID();

	// ********************************************************************************
	// ** SQL-String zum einlesen der Kunden zusammensetzen
	// ********************************************************************************

	// Felder
	$SQLString = "SELECT ";
	$SQLString .= TABLE_KUNDEN . ".id, ";
	$SQLString .= TABLE_KUNDEN . ".titel, ";
	$SQLString .= TABLE_KUNDEN . ".vorname, ";
	$SQLString .= TABLE_KUNDEN . ".nachname, ";
	$SQLString .= TABLE_KUNDEN . ".firma, ";
	$SQLString .= TABLE_KUNDEN . ".email, ";
	$SQLString .= TABLE_KUNDEN . ".bestellungen, ";
	$SQLString .= TABLE_KUNDEN . ".datum, ";
	$SQLString .= "DATE_FORMAT(" . TABLE_KUNDEN . ".datum, '%d.%m.%Y') AS datum_format, ";
	$SQLString .= TABLE_KUNDEN . ".moral, ";
	$SQLString .= TABLE_ZAHLUNGSART_LANGU . ".name AS zahlungsart ";
	$SQLString .= "FROM " . TABLE_KUNDEN . " ";
	$SQLString .= "LEFT JOIN " . TABLE_ZAHLUNGSART . " ON " . TABLE_KUNDEN . ".zahlungsart = " . TABLE_ZAHLUNGSART . ".id ";
	$SQLString .= "LEFT JOIN " . TABLE_ZAHLUNGSART_LANGU . " ON ((" . TABLE_ZAHLUNGSART . ".id = " . TABLE_ZAHLUNGSART_LANGU . ".zahlungsart_id) AND (" . TABLE_ZAHLUNGSART_LANGU . ".language_id = '" . $LanguageID . "')) ";
    $SQLString .= "WHERE ";
    $SQLString .= '(' . TABLE_KUNDEN . '.lieferant = 0) ';
    
	// Suche
	if ($SearchField && $SearchString) {
	    
		if ($OptionSearchLike) {
			$SQLString .= "AND " . $SearchField . " LIKE '%" . $SearchString . "%' ";
		} else {
		 	$SQLString .= "AND " . $SearchField . " = '" . $SearchString . "' ";
		}
		
	}
	
	// Sortierung
	if ($SortField && $SortOrder) {
		$SQLString .= "ORDER BY " . $SortField . " " . $SortOrder . " "; 
	}
		
	// Limit
	if (isset($DataOffset) && isset($DataCount)) {
		$SQLString .= "LIMIT " . $DataOffset . ", " . $DataCount . " "; 
	}
	
//	echo $SQLString;
	
	$MySQLQueryReferenz = errorlogged_mysql_query($SQLString);

	// ********************************************************************************
	// ** die Kundendaten in ein Array ablegen
	// ********************************************************************************

	$KundenCounter = 0;
	$KundenDataArray = array();

	while ($KundenRowArray = mysql_fetch_array($MySQLQueryReferenz, MYSQL_ASSOC)) {
		$KundenDataArray[$KundenCounter]["id"] = $KundenRowArray["id"];
		$KundenDataArray[$KundenCounter]["titel"] = $KundenRowArray["titel"];
		$KundenDataArray[$KundenCounter]["vorname"] = $KundenRowArray["vorname"];
		$KundenDataArray[$KundenCounter]["nachname"] = $KundenRowArray["nachname"];
		$KundenDataArray[$KundenCounter]["firma"] = $KundenRowArray["firma"];
		$KundenDataArray[$KundenCounter]["email"] = $KundenRowArray["email"];
		$KundenDataArray[$KundenCounter]["bestellungen"] = $KundenRowArray["bestellungen"];
		$KundenDataArray[$KundenCounter]["datum_format"] = $KundenRowArray["datum_format"];
		$KundenDataArray[$KundenCounter]["zahlungsart"] = $KundenRowArray["zahlungsart"];
		$KundenDataArray[$KundenCounter]["moral"] = $KundenRowArray["moral"];
		$KundenCounter++;
	}

	return $KundenDataArray;
	
}

function SaveKundenDetails($KundenID, $Anrede, $Titel, $Vorname, $Nachname, $Firma, $Strasse, $Hausnummer, $PLZ, $Ort, $Land, $Telefon, $Fax, $Lieferung, $LAAnrede, $LATitel, $LAVorname, $LANachname, $LAFirma, $LAStrasse, $LAHausnummer, $LAPLZ, $LAOrt, $LALand, $Bank, $BLZ, $Kontonummer, $Email, $Passwort, $Zahlungsart, $Versandart, $Rabattstaffel, $Zahlungsmoral, $Kundengruppe, $Mailtyp, $UStID, $BonitaetsPruefungInaktiv, $bundesstaat = 0, $la_bundesstaat = 0) {
	
	// Kundengruppe abfragen
	if (!$Kundengruppe) {
		$Kundengruppe = GetDefaultKundengruppe();
	}
	
	$LanguageID = GetDefaultLanguageID();

	// Kunde neu anlegen
	if (!$KundenID) {
		
		$SQLString = "INSERT INTO " . TABLE_KUNDEN . " SET ";
		$SQLString .= TABLE_KUNDEN . ".anrede = '" . $Anrede . "', ";
		$SQLString .= TABLE_KUNDEN . ".titel = '" . mysql_real_escape_string($Titel) . "', ";
		$SQLString .= TABLE_KUNDEN . ".vorname = '" . mysql_real_escape_string($Vorname) . "', ";
		$SQLString .= TABLE_KUNDEN . ".nachname = '" . mysql_real_escape_string($Nachname) . "', ";
		$SQLString .= TABLE_KUNDEN . ".firma = '" . mysql_real_escape_string($Firma) . "', ";
		$SQLString .= TABLE_KUNDEN . ".strasse = '" . mysql_real_escape_string($Strasse) . "', ";
		$SQLString .= TABLE_KUNDEN . ".hausnummer = '" . mysql_real_escape_string($Hausnummer) . "', ";
		$SQLString .= TABLE_KUNDEN . ".plz = '" . mysql_real_escape_string($PLZ) . "', ";
		$SQLString .= TABLE_KUNDEN . ".ort = '" . mysql_real_escape_string($Ort) . "', ";
		$SQLString .= TABLE_KUNDEN . ".land = '" . mysql_real_escape_string($Land) . "', ";
        $SQLString .= TABLE_KUNDEN . ".bundesstaat = '" . mysql_real_escape_string($bundesstaat) . "', ";
		$SQLString .= TABLE_KUNDEN . ".telefon = '" . mysql_real_escape_string($Telefon) . "', ";
		$SQLString .= TABLE_KUNDEN . ".timestempel = '" . time() . "', ";
		$SQLString .= TABLE_KUNDEN . ".telefax = '" . mysql_real_escape_string($Fax) . "', ";
		$SQLString .= TABLE_KUNDEN . ".lieferung = '" . $Lieferung . "', ";
		$SQLString .= TABLE_KUNDEN . ".la_anrede = '" . $LAAnrede . "', ";
		$SQLString .= TABLE_KUNDEN . ".la_titel = '" . mysql_real_escape_string($LATitel) . "', ";
		$SQLString .= TABLE_KUNDEN . ".la_vorname = '" . mysql_real_escape_string($LAVorname) . "', ";
		$SQLString .= TABLE_KUNDEN . ".la_nachname = '" . mysql_real_escape_string($LANachname) . "', ";
		$SQLString .= TABLE_KUNDEN . ".la_firma = '" . mysql_real_escape_string($LAFirma) . "', ";
		$SQLString .= TABLE_KUNDEN . ".la_strasse = '" . mysql_real_escape_string($LAStrasse) . "', ";
		$SQLString .= TABLE_KUNDEN . ".la_hausnummer = '" . mysql_real_escape_string($LAHausnummer) . "', ";
		$SQLString .= TABLE_KUNDEN . ".la_plz = '" . mysql_real_escape_string($LAPLZ) . "', ";
		$SQLString .= TABLE_KUNDEN . ".la_ort = '" . mysql_real_escape_string($LAOrt) . "', ";
		$SQLString .= TABLE_KUNDEN . ".la_land = '" . mysql_real_escape_string($LALand) . "', ";
        $SQLString .= TABLE_KUNDEN . ".la_bundesstaat = '" . mysql_real_escape_string($la_bundesstaat) . "', ";
		$SQLString .= TABLE_KUNDEN . ".bank = '" . mysql_real_escape_string($Bank) . "', ";
		$SQLString .= TABLE_KUNDEN . ".blz = '" . mysql_real_escape_string($BLZ) . "', ";
		$SQLString .= TABLE_KUNDEN . ".konto_nr = '" . mysql_real_escape_string($Kontonummer) . "', ";
		$SQLString .= TABLE_KUNDEN . ".email = '" . mysql_real_escape_string($Email) . "', ";
        if($Passwort)
		    $SQLString .= TABLE_KUNDEN . ".password = '" . md5($Passwort) . "', ";
		$SQLString .= TABLE_KUNDEN . ".zahlungsart = '" . $Zahlungsart . "', ";
		$SQLString .= TABLE_KUNDEN . ".versandart = '" . $Versandart . "', ";
		$SQLString .= TABLE_KUNDEN . ".rabattstaffel = '" . $Rabattstaffel . "', ";
		$SQLString .= TABLE_KUNDEN . ".moral = '" . $Zahlungsmoral . "', ";
		$SQLString .= TABLE_KUNDEN . ".kundengruppe = '" . $Kundengruppe . "', ";
		$SQLString .= TABLE_KUNDEN . ".mailtyp = '" . $Mailtyp . "', ";
		$SQLString .= TABLE_KUNDEN . ".ust = '" . mysql_real_escape_string($UStID) . "', ";
		$SQLString .= TABLE_KUNDEN . ".bonitaetspruefung_inaktiv = '" . $BonitaetsPruefungInaktiv . "', ";
		$SQLString .= TABLE_KUNDEN . ".language_id = '" . $LanguageID . "', ";
		$SQLString .= TABLE_KUNDEN . ".datum = NOW() ";
		
		$MySQLQueryReference = errorlogged_mysql_query($SQLString);
		return mysql_insert_id();
		
	// Kunde speichern
	} else {
		
		$SQLString = "UPDATE " . TABLE_KUNDEN . " SET ";
		$SQLString .= TABLE_KUNDEN . ".anrede = '" . $Anrede . "', ";
		$SQLString .= TABLE_KUNDEN . ".titel = '" . mysql_real_escape_string($Titel) . "', ";
		$SQLString .= TABLE_KUNDEN . ".vorname = '" . mysql_real_escape_string($Vorname) . "', ";
		$SQLString .= TABLE_KUNDEN . ".nachname = '" . mysql_real_escape_string($Nachname) . "', ";
		$SQLString .= TABLE_KUNDEN . ".firma = '" . mysql_real_escape_string($Firma) . "', ";
		$SQLString .= TABLE_KUNDEN . ".strasse = '" . mysql_real_escape_string($Strasse) . "', ";
		$SQLString .= TABLE_KUNDEN . ".hausnummer = '" . mysql_real_escape_string($Hausnummer) . "', ";
		$SQLString .= TABLE_KUNDEN . ".plz = '" . mysql_real_escape_string($PLZ) . "', ";
		$SQLString .= TABLE_KUNDEN . ".ort = '" . mysql_real_escape_string($Ort) . "', ";
		$SQLString .= TABLE_KUNDEN . ".land = '" . $Land . "', ";
        $SQLString .= TABLE_KUNDEN . ".bundesstaat = '" . mysql_real_escape_string($bundesstaat) . "', ";
        $SQLString .= TABLE_KUNDEN . ".telefon = '" . mysql_real_escape_string($Telefon) . "', ";
		$SQLString .= TABLE_KUNDEN . ".telefax = '" . mysql_real_escape_string($Fax) . "', ";
		$SQLString .= TABLE_KUNDEN . ".lieferung = '" . $Lieferung . "', ";
		$SQLString .= TABLE_KUNDEN . ".timestempel = '" . time() . "', ";
		$SQLString .= TABLE_KUNDEN . ".la_anrede = '" . mysql_real_escape_string($LAAnrede) . "', ";
		$SQLString .= TABLE_KUNDEN . ".la_titel = '" . mysql_real_escape_string($LATitel) . "', ";
		$SQLString .= TABLE_KUNDEN . ".la_vorname = '" . mysql_real_escape_string($LAVorname) . "', ";
		$SQLString .= TABLE_KUNDEN . ".la_nachname = '" . mysql_real_escape_string($LANachname) . "', ";
		$SQLString .= TABLE_KUNDEN . ".la_firma = '" . mysql_real_escape_string($LAFirma) . "', ";
		$SQLString .= TABLE_KUNDEN . ".la_strasse = '" . mysql_real_escape_string($LAStrasse) . "', ";
		$SQLString .= TABLE_KUNDEN . ".la_hausnummer = '" . mysql_real_escape_string($LAHausnummer) . "', ";
		$SQLString .= TABLE_KUNDEN . ".la_plz = '" . mysql_real_escape_string($LAPLZ) . "', ";
		$SQLString .= TABLE_KUNDEN . ".la_ort = '" . mysql_real_escape_string($LAOrt) . "', ";
		$SQLString .= TABLE_KUNDEN . ".la_land = '" . mysql_real_escape_string($LALand) . "', ";
        $SQLString .= TABLE_KUNDEN . ".la_bundesstaat = '" . mysql_real_escape_string($la_bundesstaat) . "', ";
        $SQLString .= TABLE_KUNDEN . ".bank = '" . mysql_real_escape_string($Bank) . "', ";
		$SQLString .= TABLE_KUNDEN . ".blz = '" . mysql_real_escape_string($BLZ) . "', ";
		$SQLString .= TABLE_KUNDEN . ".konto_nr = '" . mysql_real_escape_string($Kontonummer) . "', ";
		$SQLString .= TABLE_KUNDEN . ".email = '" . mysql_real_escape_string($Email) . "', ";
        if($Passwort)
		    $SQLString .= TABLE_KUNDEN . ".password = '" . md5($Passwort) . "', ";
		$SQLString .= TABLE_KUNDEN . ".zahlungsart = '" . $Zahlungsart . "', ";
		$SQLString .= TABLE_KUNDEN . ".versandart = '" . $Versandart . "', ";
		$SQLString .= TABLE_KUNDEN . ".rabattstaffel = '" . $Rabattstaffel . "', ";
		$SQLString .= TABLE_KUNDEN . ".moral = '" . $Zahlungsmoral . "', ";
		$SQLString .= TABLE_KUNDEN . ".kundengruppe = '" . $Kundengruppe . "', ";
		$SQLString .= TABLE_KUNDEN . ".mailtyp = '" . $Mailtyp . "', ";
		$SQLString .= TABLE_KUNDEN . ".ust = '" . mysql_real_escape_string($UStID) . "', ";
		$SQLString .= TABLE_KUNDEN . ".bonitaetspruefung_inaktiv = '" . $BonitaetsPruefungInaktiv . "', ";
		$SQLString .= TABLE_KUNDEN . ".language_id = '" . $LanguageID . "' ";
		$SQLString .= " WHERE " . TABLE_KUNDEN . ".id = '" . $KundenID . "'";
		
		$MySQLQueryReference = errorlogged_mysql_query($SQLString);
		return $KundenID;
		
	}
	
}


function GetKundenMailtypList () {

	// SQL-String f�r die Mailtyp zusammensetzen
	$SQLString = "SELECT ";
	$SQLString .= TABLE_KUNDENMAILTYP . ".kundenmailtypid, ";
	$SQLString .= TABLE_KUNDENMAILTYP . ".name, ";
	$SQLString .= TABLE_KUNDENMAILTYP . ".standardzuweisung ";
	$SQLString .= "FROM " . TABLE_KUNDENMAILTYP . " ";
	$SQLString .= "ORDER BY " . TABLE_KUNDENMAILTYP . ".sort";
	
	// Mailtyp abfragen
	$MySQLQueryReference = errorlogged_mysql_query($SQLString);
	$KundenMailtypCounter = 0;

	while ($KundenMailtypRow = mysql_fetch_array($MySQLQueryReference)) {
		
		$KundenMailtypArray[$KundenMailtypCounter]["kundenmailtypid"] = $KundenMailtypRow["kundenmailtypid"];
		$KundenMailtypArray[$KundenMailtypCounter]["name"] = $KundenMailtypRow["name"];
		$KundenMailtypArray[$KundenMailtypCounter]["standardzuweisung"] = $KundenMailtypRow["standardzuweisung"];

		$KundenMailtypCounter++;
		
	}
	
	return $KundenMailtypArray;
	
}

function GetStandardKundenZahlungsmoral() {

	// SQL-String f�r die Zahlungsmoral zusammensetzen
	$SQLString = "SELECT ";
	$SQLString .= TABLE_KUNDENZAHLUNGSMORAL . ".kundenzahlungsmoralid ";
	$SQLString .= "FROM " . TABLE_KUNDENZAHLUNGSMORAL . " ";
	$SQLString .= "WHERE " . TABLE_KUNDENZAHLUNGSMORAL . ".standardzuweisung = 1";
	
	// Zahlungsmoral abfragen
	$KundenZahlungsmroalObject = mysql_fetch_object(errorlogged_mysql_query($SQLString));
	
	return $KundenZahlungsmroalObject->kundenzahlungsmoralid;

}

function GetKundenZahlungsmoralList() {

	// SQL-String f�r die Zahlungsmoral zusammensetzen
	$SQLString = "SELECT ";
	$SQLString .= TABLE_KUNDENZAHLUNGSMORAL . ".kundenzahlungsmoralid, ";
	$SQLString .= TABLE_KUNDENZAHLUNGSMORAL . ".zahlungsmoral, ";
	$SQLString .= TABLE_KUNDENZAHLUNGSMORAL . ".standardzuweisung ";
	$SQLString .= "FROM " . TABLE_KUNDENZAHLUNGSMORAL . " ";
	$SQLString .= "ORDER BY " . TABLE_KUNDENZAHLUNGSMORAL . ".sort";
	
	// Zahlungsmoral abfragen
	$MySQLQueryReference = errorlogged_mysql_query($SQLString);
	$KundenZahlungsmoralCounter = 0;

	while ($KundenZahlungsmoralRow = mysql_fetch_array($MySQLQueryReference)) {
		
		$KundenZahlungsmoralArray[$KundenZahlungsmoralCounter]["kundenzahlungsmoralid"] = $KundenZahlungsmoralRow["kundenzahlungsmoralid"];
		$KundenZahlungsmoralArray[$KundenZahlungsmoralCounter]["zahlungsmoral"] = $KundenZahlungsmoralRow["zahlungsmoral"];
		$KundenZahlungsmoralArray[$KundenZahlungsmoralCounter]["standardzuweisung"] = $KundenZahlungsmoralRow["standardzuweisung"];

		$KundenZahlungsmoralCounter++;
		
	}
	
	return $KundenZahlungsmoralArray;
	
}

function GetKundenanredeList($LanguageID = 0) {
	
	// Sprache ermitteln
	if (!$LanguageID) {
		$LanguageID = GetDefaultLanguageID();
	}

	// SQL-String f�r die Kundenanreden zusammensetzen
	$SQLString = 'SELECT ';
	$SQLString .= TABLE_KUNDENANREDE . '.kundenanredeid, ';
	$SQLString .= TABLE_KUNDENANREDE_LANGU . '.anrede, ';
	$SQLString .= TABLE_KUNDENANREDE_LANGU . '.briefanrede ';
	$SQLString .= 'FROM ';
	$SQLString .= TABLE_KUNDENANREDE . ' ';
	$SQLString .= 'LEFT JOIN ' . TABLE_KUNDENANREDE_LANGU . ' ON ((' . TABLE_KUNDENANREDE . '.kundenanredeid = ' . TABLE_KUNDENANREDE_LANGU . '.kundenanredeid) AND (' . TABLE_KUNDENANREDE_LANGU . '.language_id = ' . $LanguageID . ')) ';
	$SQLString .= 'ORDER BY ' . TABLE_KUNDENANREDE . ".sort ASC";
	
	
	
	
	// Kundenanreden abfragen
	$MySQLQueryReference = errorlogged_mysql_query($SQLString);
	$KundenanredeCounter = 0;
	
	
	$KundenanredeArray = array();
	while ($KundenanredeRow = mysql_fetch_array($MySQLQueryReference)) {
		
		$KundenanredeArray[$KundenanredeCounter]["kundenanredeid"] = $KundenanredeRow["kundenanredeid"];
		$KundenanredeArray[$KundenanredeCounter]["anrede"] = $KundenanredeRow["anrede"];
        $KundenanredeArray[$KundenanredeCounter]["titel"] = $KundenanredeRow["titel"];
		$KundenanredeCounter++;
		
	}
	
	return $KundenanredeArray;

}

function CheckEMailValidity($Email) {
	// Ist fehlerhaft, nicht mehr benutzen. Ismail aus der functions.global nutzen.
	//Prüfung auf Korrekte E-Mail-Adressen-Syntax
	//Syntax aus http://www.wer-weiss-was.de/theme163/article4946203.html, 11.08.09, 18:36 Uhr
	$EMailAdressenSyntax =  '/^[a-z0-9]+([-_\.]?[a-z0-9])*@[a-z0-9]+([-_\.]?[a-z0-9])+\.[a-z]{2,6}$/';
	$EMailAdresseKorrekt = (1==preg_match($EMailAdressenSyntax,$Email));
	return $EMailAdresseKorrekt;
}



function GetKundenDetail($Email = "", $KundenID = "", $LanguageID = 0) {

	if (!$LanguageID) {
		$LanguageID = GetDefaultLanguageID();
		$KundenLanguage = 1;
	} else {
		$KundenLanguage = 0;
	}
	
    $AdminDateiPfad = strtolower(DATEIPFAD . 'admin');
    
    if(!isset($_SESSION["gast_mail"])) {
    	$_SESSION["gast_mail"] = null;
    }
    
	
	if (strtolower(substr($_SERVER['SCRIPT_FILENAME'], 0, strlen($AdminDateiPfad))) == $AdminDateiPfad) {
        $GastSession = false;
	} else {
        $GastSession = true;
	}

	if($KundenID >= GASTKUNDEN_BASE) // Gastkunde ?
	{
		$SQLString = "SELECT ";
		$SQLString .= TABLE_BESTELLEN . ".kunden_id as id, ";
		$SQLString .= TABLE_BESTELLEN . ".email, ";
		$SQLString .= "'' as password, ";
		$SQLString .= TABLE_BESTELLEN . ".anrede_id as kundenanredeid, ";
		$SQLString .= TABLE_BESTELLEN . ".anrede, ";
        $SQLString .= TABLE_KUNDENANREDE_LANGU . ".briefanrede as briefanrede, ";
        $SQLString .= TABLE_BESTELLEN . ".vorname, ";
		$SQLString .= TABLE_BESTELLEN . ".nachname, ";
		$SQLString .= TABLE_BESTELLEN . ".firma, ";
		$SQLString .= TABLE_BESTELLEN . ".strasse, ";
		$SQLString .= TABLE_BESTELLEN . ".hausnummer, ";
		$SQLString .= TABLE_BESTELLEN . ".plz, ";
		$SQLString .= TABLE_BESTELLEN . ".ort, ";
		$SQLString .= TABLE_BESTELLEN . ".land_id as land, ";
		$SQLString .= TABLE_BESTELLEN . ".land as landname, ";
        $SQLString .= TABLE_BESTELLEN . ".bundesstaat, ";
		$SQLString .= "'' as telefon, ";
		$SQLString .= "'' as fax, ";
		$SQLString .= "0 as lieferung, ";
		$SQLString .= TABLE_BESTELLEN . ".la_anrede_id as la_kundenanredeid, ";
		$SQLString .= TABLE_BESTELLEN . ".la_anrede as la_anrede, ";
		$SQLString .= TABLE_BESTELLEN . ".la_anrede as la_briefanrede, ";
		$SQLString .= TABLE_BESTELLEN . ".la_vorname, ";
		$SQLString .= TABLE_BESTELLEN . ".la_nachname, ";
		$SQLString .= TABLE_BESTELLEN . ".la_firma, ";
		$SQLString .= TABLE_BESTELLEN . ".la_strasse, ";
		$SQLString .= TABLE_BESTELLEN . ".la_hausnummer, ";
		$SQLString .= TABLE_BESTELLEN . ".la_plz, ";
		$SQLString .= TABLE_BESTELLEN . ".la_ort, ";
		$SQLString .= TABLE_BESTELLEN . ".la_land_id as la_land, ";
        $SQLString .= TABLE_BESTELLEN . ".la_land as la_landname, ";
	//	$SQLString .= "lalandtable.name AS la_landname, ";
        $SQLString .= TABLE_BESTELLEN . ".la_bundesstaat, ";
		$SQLString .= TABLE_BESTELLEN . ".kunden_id as kunden_nr, ";
		$SQLString .= "1 as bestellungen, ";
		$SQLString .= TABLE_BESTELLEN . ".zahlungsart_id as zahlungsart, ";
		$SQLString .= TABLE_BESTELLEN . ".versandart_id as versandart, ";
		$SQLString .= TABLE_BESTELLEN . ".bank, ";
		$SQLString .= TABLE_BESTELLEN . ".blz, ";
		$SQLString .= TABLE_BESTELLEN . ".kto as konto_nr, ";
		$SQLString .= TABLE_BESTELLEN . ".kredit_typ as kreditk_typ, ";
		$SQLString .= TABLE_BESTELLEN . ".kredit_nr as kreditk_nr, ";
		$SQLString .= TABLE_BESTELLEN . ".kredit_gueltig as kreditk_gueltdate, ";
		$SQLString .= "0 as moral, ";
		$SQLString .= TABLE_BESTELLEN . ".language_id, ";
		$SQLString .= "'' AS zahlungsmoral, ";
		$SQLString .= "'' as ust, ";
		$SQLString .= "1 as mailtyp, ";
		$SQLString .= "0 as rabattstaffel, ";
		$SQLString .= TABLE_BESTELLEN . ".kundengruppenname, ";
		$SQLString .= "1 as neukunden, ";
		$SQLString .= "0 as kundengruppe_nach_bestellung, ";
        $SQLString .= "0 AS bonitaetspruefung_inaktiv, ";
        $SQLString .= "'00.00.0000' AS bonitaetspruefung_last_check_format, ";
        $SQLString .= "0 AS bonitaetspruefung_last_check, ";
        $SQLString .= "0 AS bonitaetspruefung_last_score, ";
        $SQLString .= TABLE_BESTELLEN . ".telefon ";
        $SQLString .= " FROM " . TABLE_BESTELLEN;
        $SQLString .= " LEFT JOIN " . TABLE_KUNDENANREDE_LANGU . " ON " . TABLE_BESTELLEN . ".anrede_id = " . TABLE_KUNDENANREDE_LANGU . ".kundenanredeid AND " . TABLE_KUNDENANREDE_LANGU . ".language_id = '" . $LanguageID . "'";
		$SQLString .= " WHERE kunden_id = '" . $KundenID . "'";
		
		$result = mysql_query($SQLString);
		$KundenObject = mysql_fetch_object($result);
		
		
	} else if (($_SESSION["gast_mail"] == "") || !$GastSession) {
	
		// SQL-String für die Kundenabfrage zusammensetzen
		$SQLString = "SELECT ";
		$SQLString .= TABLE_KUNDEN . ".id, ";
		$SQLString .= TABLE_KUNDEN . ".email, ";
		$SQLString .= TABLE_KUNDEN . ".password, ";
		$SQLString .= TABLE_KUNDEN . ".anrede AS kundenanredeid, ";
		$SQLString .= "kundenanrede_langu.anrede, ";
		$SQLString .= "kundenanrede_langu.briefanrede, ";
		$SQLString .= TABLE_KUNDEN . ".titel, ";
		$SQLString .= TABLE_KUNDEN . ".vorname, ";
		$SQLString .= TABLE_KUNDEN . ".nachname, ";
		$SQLString .= TABLE_KUNDEN . ".firma, ";
		$SQLString .= TABLE_KUNDEN . ".strasse, ";
		$SQLString .= TABLE_KUNDEN . ".hausnummer, ";
		$SQLString .= TABLE_KUNDEN . ".plz, ";
		$SQLString .= TABLE_KUNDEN . ".ort, ";
        $SQLString .= TABLE_KUNDEN . ".land, ";
        $SQLString .= TABLE_KUNDEN . ".bundesstaat, ";
        $SQLString .= TABLE_LAND . ".   isocode AS land_isocode, ";
		$SQLString .= TABLE_LAND_LANGU . ".name AS landname, ";
		$SQLString .= TABLE_KUNDEN . ".telefon, ";
		$SQLString .= TABLE_KUNDEN . ".telefax AS fax, ";
		$SQLString .= TABLE_KUNDEN . ".lieferung, ";
		$SQLString .= TABLE_KUNDEN . ".la_anrede AS la_kundenanredeid, ";
		$SQLString .= "la_kundenanrede_langu.anrede AS la_anrede, ";
		$SQLString .= "la_kundenanrede_langu.briefanrede  AS la_briefanrede, ";
		$SQLString .= TABLE_KUNDEN . ".la_titel, ";
		$SQLString .= TABLE_KUNDEN . ".la_vorname, ";
		$SQLString .= TABLE_KUNDEN . ".la_nachname, ";
		$SQLString .= TABLE_KUNDEN . ".la_firma, ";
		$SQLString .= TABLE_KUNDEN . ".la_strasse, ";
		$SQLString .= TABLE_KUNDEN . ".la_hausnummer, ";
		$SQLString .= TABLE_KUNDEN . ".la_plz, ";
		$SQLString .= TABLE_KUNDEN . ".la_ort, ";
		$SQLString .= TABLE_KUNDEN . ".la_land, ";
        $SQLString .= TABLE_KUNDEN . ".la_bundesstaat, ";
	//	$SQLString .= "lalandtable.name AS la_landname, ";
		$SQLString .= TABLE_KUNDEN . ".kunden_nr, ";
		$SQLString .= TABLE_KUNDEN . ".kundengruppe, ";
		$SQLString .= TABLE_KUNDEN . ".bestellungen, ";
		$SQLString .= TABLE_KUNDEN . ".zahlungsart, ";
		$SQLString .= TABLE_KUNDEN . ".versandart, ";
		$SQLString .= TABLE_KUNDEN . ".bank, ";
		$SQLString .= TABLE_KUNDEN . ".blz, ";
		$SQLString .= TABLE_KUNDEN . ".konto_nr, ";
		$SQLString .= TABLE_KUNDEN . ".kreditk_typ, ";
		$SQLString .= TABLE_KUNDEN . ".kreditk_nr, ";
		$SQLString .= TABLE_KUNDEN . ".kreditk_gueltdate, ";
		$SQLString .= TABLE_KUNDEN . ".moral, ";
		$SQLString .= TABLE_KUNDEN . ".language_id, ";
		$SQLString .= TABLE_KUNDENZAHLUNGSMORAL . ".zahlungsmoral  AS zahlungsmoral, ";
		$SQLString .= TABLE_KUNDEN . ".ust, ";
		$SQLString .= TABLE_KUNDEN . ".bonitaetspruefung_inaktiv, ";
        $SQLString .= "DATE_FORMAT(" . TABLE_KUNDEN . ".bonitaetspruefung_last_check, '%d.%m.%Y') AS bonitaetspruefung_last_check_format, ";
        $SQLString .= TABLE_KUNDEN . ".bonitaetspruefung_last_check, ";
        $SQLString .= TABLE_KUNDEN . ".bonitaetspruefung_last_score, ";
        $SQLString .= TABLE_KUNDEN . ".mailtyp, ";
		$SQLString .= TABLE_KUNDEN . ".rabattstaffel, ";
		$SQLString .= "lalandtable_langu.name AS la_landname, ";
        $SQLString .= TABLE_KUNDEN . ".bewertungspunkte, ";
		$SQLString .= TABLE_KUNDENGRUPPEN_LANGU . ".name AS kundengruppenname ";
		$SQLString .= "FROM " . TABLE_KUNDEN . " ";
		$SQLString .= "LEFT JOIN " . TABLE_KUNDENANREDE . " AS kundenanrede ON " . TABLE_KUNDEN . ".anrede = kundenanrede.kundenanredeid ";
		$SQLString .= "LEFT JOIN " . TABLE_KUNDENANREDE_LANGU . " AS kundenanrede_langu ON ((kundenanrede.kundenanredeid = kundenanrede_langu.kundenanredeid) AND (kundenanrede_langu.language_id = '" . $LanguageID . "')) ";
		$SQLString .= "LEFT JOIN " . TABLE_KUNDENANREDE . " AS la_kundenanrede ON " . TABLE_KUNDEN . ".la_anrede = la_kundenanrede.kundenanredeid ";
		$SQLString .= "LEFT JOIN " . TABLE_KUNDENANREDE_LANGU . " AS la_kundenanrede_langu ON ((la_kundenanrede.kundenanredeid = la_kundenanrede_langu.kundenanredeid) AND (la_kundenanrede_langu.language_id = '" . $LanguageID . "')) ";
		$SQLString .= "LEFT JOIN " . TABLE_KUNDENGRUPPEN . " ON " . TABLE_KUNDEN . ".kundengruppe = " . TABLE_KUNDENGRUPPEN . ".id ";
		$SQLString .= "LEFT JOIN " . TABLE_KUNDENGRUPPEN_LANGU . " ON " . TABLE_KUNDENGRUPPEN . ".id = " . TABLE_KUNDENGRUPPEN_LANGU . ".kundengruppen_id ";
		$SQLString .= "LEFT JOIN " . TABLE_LAND . " ON " . TABLE_KUNDEN . ".land = " . TABLE_LAND . ".id ";
		$SQLString .= "LEFT JOIN " . TABLE_LAND_LANGU . " ON ((" . TABLE_LAND . ".id = " . TABLE_LAND_LANGU . ".land_id) AND (" . TABLE_LAND_LANGU . ".language_id = IF(" . $KundenLanguage . ", " . TABLE_KUNDEN . ".language_id, " . $LanguageID . "))) ";
		$SQLString .= "LEFT JOIN " . TABLE_LAND . " AS lalandtable ON " . TABLE_KUNDEN . ".la_land = lalandtable.id ";
		$SQLString .= "LEFT JOIN " . TABLE_LAND_LANGU . " AS lalandtable_langu ON ((lalandtable.id = lalandtable_langu.land_id) AND (lalandtable_langu.language_id = IF(" . $KundenLanguage . ", " . TABLE_KUNDEN . ".language_id, " . $LanguageID . "))) ";
		$SQLString .= "LEFT JOIN " . TABLE_KUNDENZAHLUNGSMORAL . " ON " . TABLE_KUNDEN . ".moral = " . TABLE_KUNDENZAHLUNGSMORAL . ". kundenzahlungsmoralid  ";
		
		if ($Email) {
			$SQLString .= " WHERE " . TABLE_KUNDEN . ".email = '" . $Email . "'";
		} else {
			$SQLString .= " WHERE " . TABLE_KUNDEN . ".id = '" . $KundenID . "'";
		}
	
//        echo '$SQLString: ' . $SQLString . '<br>';
		
		// Kunde abfragen
		$KundenObject = mysql_fetch_object(errorlogged_mysql_query($SQLString));
		
	    if(!$KundenObject && $Email)
        {
            $SQLString = "SELECT ";
            $SQLString .= TABLE_BESTELLEN . ".kunden_id as id, ";
            $SQLString .= TABLE_BESTELLEN . ".email, ";
            $SQLString .= "'' as password, ";
            $SQLString .= TABLE_BESTELLEN . ".anrede_id AS kundenanredeid, ";
            $SQLString .= TABLE_BESTELLEN . ".anrede, ";
            $SQLString .= TABLE_BESTELLEN . ".anrede as briefanrede, ";
            $SQLString .= TABLE_BESTELLEN . ".vorname, ";
            $SQLString .= TABLE_BESTELLEN . ".nachname, ";
            $SQLString .= TABLE_BESTELLEN . ".firma, ";
            $SQLString .= TABLE_BESTELLEN . ".strasse, ";
            $SQLString .= TABLE_BESTELLEN . ".hausnummer, ";
            $SQLString .= TABLE_BESTELLEN . ".plz, ";
            $SQLString .= TABLE_BESTELLEN . ".ort, ";
            $SQLString .= TABLE_BESTELLEN . ".land_id as land, ";
            $SQLString .= TABLE_BESTELLEN . ".land AS landname, ";
            $SQLString .= TABLE_BESTELLEN . ".bundesstaat, ";
            $SQLString .= "'' as telefon, ";
            $SQLString .= "'' as fax, ";
            $SQLString .= "0 as lieferung, ";
            $SQLString .= TABLE_BESTELLEN . ".la_anrede_id AS la_kundenanredeid, ";
            $SQLString .= TABLE_BESTELLEN . ".la_anrede AS la_anrede, ";
            $SQLString .= TABLE_BESTELLEN . ".la_anrede AS la_briefanrede, ";
            $SQLString .= TABLE_BESTELLEN . ".la_vorname, ";
            $SQLString .= TABLE_BESTELLEN . ".la_nachname, ";
            $SQLString .= TABLE_BESTELLEN . ".la_firma, ";
            $SQLString .= TABLE_BESTELLEN . ".la_strasse, ";
            $SQLString .= TABLE_BESTELLEN . ".la_hausnummer, ";
            $SQLString .= TABLE_BESTELLEN . ".la_plz, ";
            $SQLString .= TABLE_BESTELLEN . ".la_ort, ";
            $SQLString .= TABLE_BESTELLEN . ".la_land_id as la_land, ";
            $SQLString .= TABLE_BESTELLEN . ".la_land as la_landname, ";
            $SQLString .= TABLE_BESTELLEN . ".la_bundesstaat, ";
        //  $SQLString .= "lalandtable.name AS la_landname, ";
            $SQLString .= TABLE_BESTELLEN . ".kunden_id as kunden_nr, ";
            $SQLString .= "1 as bestellungen, ";
            $SQLString .= TABLE_BESTELLEN . ".zahlungsart_id as zahlungsart, ";
            $SQLString .= TABLE_BESTELLEN . ".versandart_id as versandart, ";
            $SQLString .= TABLE_BESTELLEN . ".bank, ";
            $SQLString .= TABLE_BESTELLEN . ".blz, ";
            $SQLString .= TABLE_BESTELLEN . ".kto as konto_nr, ";
            $SQLString .= TABLE_BESTELLEN . ".kredit_typ as kreditk_typ, ";
            $SQLString .= TABLE_BESTELLEN . ".kredit_nr as kreditk_nr, ";
            $SQLString .= TABLE_BESTELLEN . ".kredit_gueltig as kreditk_gueltdate, ";
            $SQLString .= "0 as moral, ";
            $SQLString .= TABLE_BESTELLEN . ".language_id, ";
            $SQLString .= "'' AS zahlungsmoral, ";
            $SQLString .= "'' as ust, ";
            $SQLString .= "1 as mailtyp, ";
            $SQLString .= "0 as rabattstaffel, ";
            $SQLString .= TABLE_BESTELLEN . ".kundengruppenname, ";
            $SQLString .= "1 as neukunden, ";
            $SQLString .= "0 as kundengruppe_nach_bestellung, ";
            $SQLString .= TABLE_BESTELLEN . ".telefon ";
            $SQLString .= " FROM " . TABLE_BESTELLEN;
            $SQLString .= " WHERE email = '" . $Email . "' AND " . TABLE_BESTELLEN . ".kunden_id >= " . GASTKUNDEN_BASE;
            
//          echo $SQLString;
            
            $result = mysql_query($SQLString);
            $KundenObject = mysql_fetch_object($result);
            
        }
	} else if(isset($_SESSION["gast_mail"])) {
		
		// Daten vom Gastkunden
		$hash = md5($_SESSION['gast_mail'] . $_SESSION['gast_anrede'] . $_SESSION['gast_vorname'] . $_SESSION['gast_nachname'] . $_SESSION['gast_firma'] . $_SESSION['gast_strasse'] . $_SESSION['gast_hausnummer'] . $_SESSION['gast_plz'] . $_SESSION['gast_ort'] . $_SESSION['gast_land'] . $_SESSION['gast_telefon']);
        $hash32 = hexdec(substr($hash, 0, 6)) + hexdec(substr($hash, 6, 6)) + hexdec(substr($hash, 12, 6)) + hexdec(substr($hash, 18, 6)) + hexdec(substr($hash, 24, 6)) + hexdec(substr($hash, 30, 2));
		$kundenNr = $hash32 % 8999999 + GASTKUNDEN_BASE;
        $KundenObject = new stdClass();
        $KundenObject->id = $kundenNr;
		$KundenObject->email = $_SESSION['gast_mail'];
		$KundenObject->kundenanredeid = $_SESSION['gast_anrede'];
		$KundenObject->vorname = $_SESSION['gast_vorname'];
		$KundenObject->nachname = $_SESSION['gast_nachname'];
		$KundenObject->firma = $_SESSION['gast_firma'];
		$KundenObject->strasse = $_SESSION['gast_strasse'];
		$KundenObject->hausnummer = $_SESSION['gast_hausnummer'];
		$KundenObject->plz = $_SESSION['gast_plz'];
		$KundenObject->ort = $_SESSION['gast_ort'];
		$KundenObject->land = $_SESSION['gast_land'];
        $KundenObject->bundesstaat = $_SESSION['gast_bundesstaat'];
		$KundenObject->telefon = $_SESSION['gast_telefon'];
		$KundenObject->kundengruppe = GetDefaultKundengruppe();
		$LandObject = GetLandDetails($_SESSION['gast_land'], $LanguageID);
		$KundenObject->landname = $LandObject->name;
		$KundenObject->mailtyp = 1;
		
		$SQLString = "SELECT ";
		$SQLString .= TABLE_KUNDENANREDE_LANGU . ".anrede, ";
		$SQLString .= TABLE_KUNDENANREDE_LANGU . ".briefanrede ";
		$SQLString .= "FROM " . TABLE_KUNDENANREDE_LANGU . " ";
		$SQLString .= " WHERE " . TABLE_KUNDENANREDE_LANGU . ".kundenanredeid = '" . $_SESSION['gast_anrede'] . "' ";
		$SQLString .= " AND " . TABLE_KUNDENANREDE_LANGU . ".language_id = '" . $LanguageID . "' ";
		$KundenAnredeObject = mysql_fetch_object(mysql_query($SQLString));
		$KundenObject->anrede = $KundenAnredeObject->anrede;
		$KundenObject->briefanrede = $KundenAnredeObject->briefanrede;
		if(!$_SESSION['gast_la_lieferung']) {
			$KundenObject->lieferung = 0;	
		} else {
			$KundenObject->lieferung = 1;
		}
		
		$KundenObject->bestellungen = 0;
		
		//Lieferadresse
		$KundenObject->la_anrede = $_SESSION['gast_la_anrede'];
		$KundenObject->la_vorname = $_SESSION['gast_la_vorname'];
		$KundenObject->la_nachname = $_SESSION['gast_la_nachname'];
		$KundenObject->la_firma = $_SESSION['gast_la_firma'];
		$KundenObject->la_strasse = $_SESSION['gast_la_strasse'];
		$KundenObject->la_hausnummer = $_SESSION['gast_la_hausnummer'];
		$KundenObject->la_ort = $_SESSION['gast_la_ort'];
		$KundenObject->la_plz = $_SESSION['gast_la_plz'];
		$KundenObject->la_land = $_SESSION['gast_la_land'];
        $KundenObject->la_bundesstaat = $_SESSION['gast_la_bundesstaat'];
		$LandObject = GetLandDetails($_SESSION['gast_la_land'], $LanguageID);
		$KundenObject->la_landname = $LandObject->name;
		
		$SQLString = "SELECT ";
		$SQLString .= TABLE_KUNDENANREDE_LANGU . ".anrede, ";
		$SQLString .= TABLE_KUNDENANREDE_LANGU . ".briefanrede ";
		$SQLString .= "FROM " . TABLE_KUNDENANREDE_LANGU . " ";
		$SQLString .= " WHERE " . TABLE_KUNDENANREDE_LANGU . ".kundenanredeid = '" . $_SESSION['gast_la_anrede'] . "' ";
		$SQLString .= " AND " . TABLE_KUNDENANREDE_LANGU . ".language_id = '" . $LanguageID . "' ";
		$KundenAnredeObject = mysql_fetch_object(mysql_query($SQLString));
		$KundenObject->la_anrede = $KundenAnredeObject->anrede;
		$KundenObject->la_briefanrede = $KundenAnredeObject->briefanrede;
		
		$KundenObject->zahlungsart = $_SESSION['gast_zahlungsart'];
		$KundenObject->versandart = $_SESSION['gast_versandart'];
		$KundenObject->bank = $_SESSION["gast_bank"];
		$KundenObject->blz = $_SESSION["gast_blz"];
		$KundenObject->konto_nr = $_SESSION["gast_konto_nr"];
		$KundenObject->kreditk_typ = $_SESSION["gast_kredit_typ"];
		$KundenObject->kreditk_nr = $_SESSION["gast_kreditk_nr"];
		$KundenObject->kreditk_gueltdate = $_SESSION["gast_kreditk_gueltdate"];
		$KundenObject->language_id = $_SESSION['languageid'];   
		
		// Bonitaetspruefung
		$KundenObject->bonitaetspruefung_inaktiv = 0;
	}
	
	// wenn keine Kundengruppe gesetzt ist, die Defaultkundengruppe abfragen
	if (is_object($KundenObject) && !isset($KundenObject->kundengruppe)) {
		$KundenObject->kundengruppe = GetDefaultKundengruppe();
	}
	
	//if(isset($KundenObject)) {
		return $KundenObject;
	//}
	
}

function generatePassword($length)
{
    //kein j, i, l, I, o, O, Q, 1 und keine O(Null)
    $characters = 'qwertzupasdfghkyxcvbnm';
    $characters .='WERTZUPLKJHGFDSAYXCVBNM';
    $characters .='23456789';
    $alphanumericLength = strlen($characters);
    $characters .='_$%&?!+-';

    $charactersLength = strlen($characters);

    $numSpecialChars = 0;

    $password = '';
    while (strlen($password)<$length){

        if(strlen($password)==0 || strlen($password)==$length-1 || $numSpecialChars >= 3){
            //erstes Zeichen immer alphanumerisch
            $password .= substr($characters, mt_rand(0, 44), 1);
        }  else {
            //dazwischen auch Sonderzeichen verwenden
            $charIndex = mt_rand(0, $charactersLength-1);
            $password .= substr($characters, $charIndex, 1);
            if($charIndex >= $alphanumericLength) { // Sonderzeichen angehängt ?
                $numSpecialChars++;
            }
        }

        // mindestens 1 Sonderzeichen
        if(strlen($password) == $length-2 && $numSpecialChars == 0) {
            $password .= substr($characters, mt_rand($alphanumericLength, $charactersLength-1), 1);
        }
    }

    return $password;
}

    function SaveGastKundenLieferadresse($Lieferung, $Anrede, $Titel, $Vorname, $Nachname, $Firma, $Strasse, $Hausnummer, $PLZ, $Ort, $Land, $bundesstaat = 0) {
       
       // Kundendaten einlesen
       $KundenObject = GetKundenDetail();
       
       $_SESSION['gast_la_anrede'] = $Anrede;
       $_SESSION['gast_la_vorname'] = $Vorname;
       $_SESSION['gast_la_nachname'] = $Nachname;
       $_SESSION['gast_la_firma'] = $Firma;
       $_SESSION['gast_la_strasse'] = $Strasse;
       $_SESSION['gast_la_hausnummer'] = $Hausnummer;
       $_SESSION['gast_la_plz'] = $PLZ;
       $_SESSION['gast_la_ort'] = $Ort;
       $_SESSION['gast_la_land'] = $Land;
       $_SESSION['gast_la_bundesstaat'] = $bundesstaat;
       $_SESSION['gast_la_lieferung'] = $Lieferung;

       // Zahlungsart �ndern, wenn Land ge�ndert
       if (($KundenObject->la_land != $Land) || ($Lieferung != $KundenObject->lieferung)) {
          
          // Alle m�glichen Zahlungsarten einlesen
          $ZahlungsartArray = GetKundenZahlungsartList($KundenObject->email,"");
          
            $GetNewZahlungsart = true;
           
            foreach ($ZahlungsartArray as $Zahlungsart) {
               
                if ($Zahlungsart['id'] == $KundenObject->zahlungsart) {
                    $GetNewZahlungsart = false;
                }
               
            }
           
            if ($GetNewZahlungsart) {

               $_SESSION['gast_zahlungsart'] = $ZahlungsartArray[1]["id"];

                $KundenObject->zahlungsart = $ZahlungsartArray[1]["id"];
         
            }   
               
       }

       // Versandart ändern, wenn Land oder Lieferung geändert
       if (($KundenObject->la_land != $Land) || ($Lieferung != $KundenObject->lieferung)) {
          
          // Alle möglichen Versandarten einlesen
          $VersandartArray = GetKundenVersandartList($KundenObject->email, $_SESSION["sessionId"]);
          
            $zahlungsartVersandarten = GetZahlungsartVersandarten($KundenObject->zahlungsart, $KundenObject->language_id);

            if (count($zahlungsartVersandarten) > 0) {
               
                foreach ($VersandartArray as $key=>$versandart) {

                    if (!$zahlungsartVersandarten[$versandart['id']] && (count($VersandartArray) > 1)) {
                        unset($VersandartArray[$key]); // Versandarten die dieser Zahlungsart nicht zugeordnet sind rausschmeissen
                    }
                   
                }
               
            }
     
            $GetNewVersandart = true;
     
            foreach ($VersandartArray as $Versandart) {
             
                if ($Versandart['id'] == $KundenObject->versandart) {
                    $GetNewVersandart = false;
                }
              
           }
       
            if ($GetNewVersandart) {
               
               $_SESSION['gast_versandart'] = $VersandartArray[1]["id"];
                       
                $MySQLQueryReference = errorlogged_mysql_query($SQLString);
               
            }

       }
          
        return $KundenID;

    }


