<?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$
 * 
 */

include_once(DATEIPFAD . "includes/functions.shopeinstellung.inc.php");
include_once(DATEIPFAD . "includes/functions.menue.inc.php");
include_once(DATEIPFAD . "includes/htmlMimeMail/htmlMimeMail.php");

function addNewsletter($NewsletterEmail, $LanguageID = 0) {

    global $n_newsletterFehler, $n_newsletterErfolg;
    global $n_newsletterBestaetigung, $n_newsletterEmailUngueltig;
    global $n_newsletterHinweis;
    
    if (!$LanguageID) {
        $LanguageID = GetDefaultLanguageID();
    }
         
    $SQLSting = 'SELECT ';
    $SQLSting .= TABLE_NEWSLETTER . '.id, ';
    $SQLSting .= TABLE_NEWSLETTER . '.bestaetigt ';
    $SQLSting .= 'FROM ';
    $SQLSting .= TABLE_NEWSLETTER . ' ';
    $SQLSting .= 'WHERE ';
    $SQLSting .= TABLE_NEWSLETTER . '.email = \'' . $NewsletterEmail . '\' ';
    
    $NewsletterObject = mysql_fetch_object(errorlogged_mysql_query($SQLSting));
        
    if ($NewsletterObject && ($NewsletterObject->bestaetigt == 1)) {

        $addNewsletterMessage = $n_newsletterFehler;
        
    } else {
        	
        if ($NewsletterObject && ($NewsletterObject->bestaetigt == 0)) {
            
            $SQLString = 'DELETE FROM ' . TABLE_NEWSLETTER . ' ';
            $SQLString .= 'WHERE ';
            $SQLString .= TABLE_NEWSLETTER . '.id = \'' . $NewsletterObject->id . '\' ';
            
            $MySQLQueryReference = errorlogged_mysql_query($SQLString);
            
        }

        if (FALSE !== strpos($NewsletterEmail, "\r") || FALSE !== strpos($NewsletterEmail, "\n")) {
            echo "Spammer";
        } else { 
        		
            if (!is_mail($NewsletterEmail)) {
                
                $addNewsletterMessage = $n_newsletterEmailUngueltig;
        			
            } else {

                $SQLString  = 'SELECT ';
                $SQLString .= 'MAX(' . TABLE_NEWSLETTER . '.id) AS max_id ';
                $SQLString .= 'FROM ';
                $SQLString .= TABLE_NEWSLETTER;

                $NewsletterMaxObject = mysql_fetch_object(errorlogged_mysql_query($SQLString));

				$ActivationKey = md5($NewsletterEmail . ($NewsletterMaxObject->max_id + 1));
                        
				$SQLString = 'INSERT INTO ' . TABLE_NEWSLETTER . ' SET ';
				$SQLString .= TABLE_NEWSLETTER . '.datum = NOW(), ';
				$SQLString .= TABLE_NEWSLETTER . '.email = \'' . $NewsletterEmail . '\', ';
				$SQLString .= TABLE_NEWSLETTER . '.language_id = \'' . $LanguageID . '\', ';
				$SQLString .= TABLE_NEWSLETTER . '.activationkey = \'' . $ActivationKey . '\' ';
				
				$MySQLQueryReference = errorlogged_mysql_query($SQLString);
                
				sendBestaetigung($NewsletterEmail, $ActivationKey);
				
				$addNewsletterMessage = $n_newsletterHinweis; 
                        
            }
        	                
        }
      
    }
      
    return $addNewsletterMessage;
      
}

function saveBestaetigung($ActivationKey)
{
	$SQLString = "UPDATE " . TABLE_NEWSLETTER . " SET bestaetigt = '1' ";
	$SQLString = $SQLString . "WHERE activationkey= '" . $ActivationKey . "' ";
	$MySQLQueryReference = mysql_query($SQLString);
	
}

//Versendet Bestaetigungs-E-Mail direkt nach Anmeldung
function sendBestaetigung($lettermail, $ActivationKey, $Erinnerung=false){
	
	$ShopeinstellungenObject = GetShopeinstellungDetail();
	
    global $n_newsletter_mail_anmeldung_subject;
	global $n_newsletter_begruessung, $n_newsletter_registrierung_danke; 
	global $n_newsletter_bestaetigen_linktext;
	global $n_newsletter_hinweis, $n_newsletter_bestaetigen_url_nicht_anzeigbar;
	
    global $a_bankverbindung, $l_blz, $l_kto, $a_steuernr, $a_ust;
    global $lang_iban, $lang_bic, $lang_handelsregister;
    global $lang_telefon, $lang_fax;
    global $lang_sitz_gesellschaft, $lang_gerichtsstand, $lang_geschaeftsfuehrer, $lang_amtsgericht;
	
	// Mailtemplatebereich
	// 1 = Registrierung
	// 2 = Passwort vergessen
	
	// ********************************************************************************
	// ** Template ermitteln                                                         **
 	// ********************************************************************************
	
	$TemplateObject = GetTemplateDetail();
	$TemplateFile = URLPFAD . "templates/" . $TemplateObject->name  . "/mail_html/index.php";	
	
	$PostArray["content_file"] = DATEIPFAD . "templates/" . $TemplateObject->name  . "/mail_html/user/newsletter_bestaetigung.php";
	$PostArray["headline"] = $n_newsletter_mail_anmeldung_subject;
	
    // Logo
    if (file_exists(DATEIPFAD . "images/dbimages/shop_logo.gif")) {
        $logoImageSize = getimagesize(DATEIPFAD . "images/dbimages/shop_logo.gif");
        $PostArray["logo_image"] = "<img src=\"" . IMAGEPFAD . "dbimages/shop_logo.gif\" width=\"".$logoImageSize[0]."\" height=\"".$logoImageSize[1]."\" border=\"0\" alt=\"Logo\" />"; 
    } else {
        $logoImageSize = getimagesize(DATEIPFAD . "templates/" . $TemplateObject->name . "/design/" . $TemplateObject->design . "/images/shop_logo.gif");
        $PostArray["logo_image"] = "<img src=\"" . URLPFAD . "templates/" . $TemplateObject->name . "/design/" . $TemplateObject->design . "/images/shop_logo.gif\" width=\"" . $logoImageSize[0] . "\" height=\"" . $logoImageSize[1] . "\" border=\"0\" alt=\"Logo\" />"; 
    }
	
	// ********************************************************************************
	// ** POST-Variablen aufbereiten                                                 **
 	// ********************************************************************************

	// Einstellungen
	$PostArray["charset"] = CHARSET;
	$PostArray["haupt_imagepfad"] = IMAGEPFAD;
	$PostArray["imagepfad"] = URLPFAD . "templates/" . $TemplateObject->name  . "/design/" . $TemplateObject->design . "/images/";
	$PostArray["csspfad"] = URLPFAD . "templates/" . $TemplateObject->name  . "/design/" . $TemplateObject->design . "/css/";
	$PostArray["urlpfad"] = URLPFAD;
		
	// Betreiberdaten
	if ($ShopeinstellungenObject->firmen_titel) { $PostArray["tpl_betreiber_firma"] = $ShopeinstellungenObject->firmen_titel; }
	if ($ShopeinstellungenObject->name) { $PostArray["tpl_betreiber_name"] = $ShopeinstellungenObject->name; } ;
	$PostArray["tpl_betreiber_strasse"] = $ShopeinstellungenObject->strasse;
	$PostArray["tpl_betreiber_plz"] = $ShopeinstellungenObject->plz;
	$PostArray["tpl_betreiber_ort"] = $ShopeinstellungenObject->ort;
	$PostArray["tpl_betreiber_telefon"] = $ShopeinstellungenObject->tel;
	$PostArray["tpl_betreiber_telefax"] = $ShopeinstellungenObject->fax;
	$PostArray["tpl_betreiber_email"] = $ShopeinstellungenObject->email;
	$PostArray["tpl_betreiber_url"] = $ShopeinstellungenObject->url;
	
	$PostArray["tpl_betreiber_steuernummer"] = $ShopeinstellungenObject->str_nr;
	$PostArray["tpl_betreiber_ustid"] = $ShopeinstellungenObject->ust;
	$PostArray["tpl_betreiber_bank"] = $ShopeinstellungenObject->bank;
	$PostArray["tpl_betreiber_blz"] = $ShopeinstellungenObject->blz;
	$PostArray["tpl_betreiber_konto"] = $ShopeinstellungenObject->konto;
	$PostArray["tpl_betreiber_iban"] = $ShopeinstellungenObject->iban;
	$PostArray["tpl_betreiber_bic"] = $ShopeinstellungenObject->bic;
	$PostArray["tpl_betreiber_handelsregister"] = $ShopeinstellungenObject->handelsregister;
	$PostArray["tpl_betreiber_sitz_gesellschaft"] = $ShopeinstellungenObject->sitz_gesellschaft;
	$PostArray["tpl_betreiber_amtsgericht"] = $ShopeinstellungenObject->amtsgericht;
	$PostArray["tpl_betreiber_gerichtsstand"] = $ShopeinstellungenObject->gerichtsstand;
	$PostArray["tpl_betreiber_geschaeftsfuehrer"] = $ShopeinstellungenObject->geschaeftsfuehrer;

	$PostArray["tpl_activation_key"] = $ActivationKey;
	$PostArray['begruessung'] = $n_newsletter_begruessung;
	$PostArray['newsletter_registrierung_danke'] = $n_newsletter_registrierung_danke;
	$PostArray['newsletter_bestaetigen_linktext'] = $n_newsletter_bestaetigen_linktext;
	$PostArray['newsletter_bestaetigen_url_nicht_anzeigbar'] = $n_newsletter_bestaetigen_url_nicht_anzeigbar;
	$PostArray['newsletter_hinweis'] = $n_newsletter_hinweis;
	$PostArray['lettermail'] = $lettermail;
	
    $PostArray["lang_bic"] = html_entity_decode($lang_bic);
    $PostArray["lang_iban"] = html_entity_decode($lang_iban);
    $PostArray["lang_handelsregister"] = html_entity_decode($lang_handelsregister);
    $PostArray["lang_telefon"] = $lang_telefon;
    $PostArray["lang_fax"] = $lang_fax;
    $PostArray["lang_sitz_gesellschaft"] = $lang_sitz_gesellschaft;
    $PostArray["lang_gerichtsstand"] = $lang_gerichtsstand;
    $PostArray["lang_geschaeftsfuehrer"] = $lang_geschaeftsfuehrer;
    $PostArray["lang_amtsgericht"] = $lang_amtsgericht;
    $PostArray["a_bankverbindung"] = html_entity_decode($a_bankverbindung);
    $PostArray["l_blz"] = html_entity_decode($l_blz);
    $PostArray["l_kto"] = html_entity_decode($l_kto);
    $PostArray["a_steuernr"] = html_entity_decode($a_steuernr);
    $PostArray["a_ust"] = html_entity_decode($a_ust);
	
	// ********************************************************************************
	// ** Template für Kunden einlesen                                               **
 	// ********************************************************************************

	// Verbindung über CURL mit dem Template herstellen
    $CurlHandler = curl_init();
    
	// Template einlesen
    curl_setopt($CurlHandler, CURLOPT_POST, 1);
    curl_setopt($CurlHandler, CURLOPT_POSTFIELDS, $PostArray);
    curl_setopt($CurlHandler, CURLOPT_URL, $TemplateFile);
    curl_setopt($CurlHandler, CURLOPT_SSL_VERIFYHOST, 2);
    curl_setopt($CurlHandler, CURLOPT_USERAGENT, "");
    curl_setopt($CurlHandler, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($CurlHandler, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($CurlHandler, CURLOPT_USERPWD,"thomas:blubber");
	
	$ReturnString = curl_exec($CurlHandler);

//	echo "<pre>";
//	var_dump($ReturnString);
//	echo "</pre>";

	curl_close($CurlHandler);
	
    // ********************************************************************************
	// ** Mail an Kunden versenden                                                   **
 	// ********************************************************************************

	$Mail = new htmlMimeMail();
	$Mail->setHtmlCharset(CHARSET);
    $Mail->setTextCharset(CHARSET);
    
//	if ($KundenObject->mailtyp == 1) {
	    $Mail->setHtml($ReturnString);
//	} else {
//	    $Mail->setText($ReturnString);
//	}
	
	if ($ShopeinstellungenObject->url) {
		$Mail->setSubject(str_replace("http://", "", $ShopeinstellungenObject->url) . " - " . html_entity_decode($n_newsletter_mail_anmeldung_subject));
	} elseif ($ShopeinstellungenObject->firmen_titel) {
		$Mail->setSubject($ShopeinstellungenObject->firmen_titel . " - " . html_entity_decode($n_newsletter_mail_anmeldung_subject));
	} else {
		$Mail->setSubject($ShopeinstellungenObject->name . " - " . html_entity_decode($n_newsletter_mail_anmeldung_subject));
	}
	
	$Mail->setFrom($ShopeinstellungenObject->email);
	
	//echo "<pre>";
	//var_dump($Mail);
	//echo "</pre>";
	
	$Result = $Mail->send(array($lettermail));

	MailLog($ReturnString, $Mail, 7, "", "", $lettermail);
	
	
}





/*********************** Newsletterabo loeschen aus Adminbereich******************/

function DeleteAbonnent($AboID) {
        $loeschen = "DELETE FROM ".TABLE_NEWSLETTER." WHERE id = '".$AboID."'";
  $loesch = mysql_query($loeschen);
}





/*********************** Newsletterabo loeschen aus Kundenbereich******************/
/* 
 * 17.08.09: C.H.: Diese Funktion wird abgel�st durch untere;
 * da nun der Eintrag �ber einen Link gel�scht wird 
 *  
function deleteNewsletter($lettermail) {
global $n_newsletterEmailLoeschErfolg, $n_newsletterEmailLoesch;

        $abfrage = "SELECT * FROM ".TABLE_NEWSLETTER." where email = '" . $lettermail . "'";
        $ergebnis = mysql_query($abfrage);
        $row = mysql_fetch_object($ergebnis);
        if($lettermail == $row->email) {
                $loeschen = "DELETE FROM ".TABLE_NEWSLETTER." WHERE email = '".$lettermail."'";
          $loesch = mysql_query($loeschen);
                $tpl_newsAusgabe = $n_newsletterEmailLoeschErfolg;
        } else {
                        $tpl_newsAusgabe = $n_newsletterEmailLoesch;
        }

        return $tpl_newsAusgabe;
}
*/

function deleteNewsletter($ActivationKey) {
    if($ActivationKey == '')
        return;
	global $n_newsletterEmailLoeschErfolg, $n_newsletterEmailLoesch;
        $abfrage = "SELECT * FROM ".TABLE_NEWSLETTER." where activationkey = '" . $ActivationKey . "'";
        $ergebnis = mysql_query($abfrage);
        
        $row = mysql_fetch_object($ergebnis);
        if($ActivationKey == $row->activationkey) {
                $loeschen = "DELETE FROM ".TABLE_NEWSLETTER." WHERE activationkey = '".$ActivationKey."'";
          		$loesch = mysql_query($loeschen);
                //$tpl_newsAusgabe = $n_newsletterEmailLoeschErfolg;
                
        } else {
                        
        		//$tpl_newsAusgabe = $n_newsletterEmailLoesch;
        }
	return $tpl_newsAusgabe;
}

function GetNewsletterAboAnzahlArray($SearchField, $SearchString, $OptionConfirmedAbos = false) {

    // ********************************************************************************
    // ** SQL-String zum einlesen der Artikelanzahl
    // ********************************************************************************
		
    // Felder
    $SQLString = 'SELECT ';
    $SQLString .= TABLE_NEWSLETTER . '.bestaetigt, ';
    $SQLString .= 'COUNT(' . TABLE_NEWSLETTER . '.id) AS newsletter_anzahl ';
    $SQLString .= 'FROM ';
    $SQLString .= TABLE_NEWSLETTER . ' ';
    $SQLString .= 'WHERE ';
    $SQLString .= '(';
    
    if ($SearchField && $SearchString) {
        $SQLString .= '(' . $SearchField . ' LIKE \'%' . $SearchString . '%\') AND ';
    }

    if ($OptionConfirmedAbos) {
        $SQLString .= '(' . TABLE_NEWSLETTER . '.bestaetigt = \'1\' ) AND ';
    }

    $SQLString .= ' 1) ';

    $SQLString .= 'GROUP BY ' . TABLE_NEWSLETTER . '.bestaetigt ';
    
//    echo '$SQLString: ' . $SQLString . '<br>';

    $MySQLQueryReference = errorlogged_mysql_query($SQLString);
    
    while ($NewsletterAnzahlRow = mysql_fetch_array($MySQLQueryReference, MYSQL_ASSOC)) {
        
        if ($NewsletterAnzahlRow['bestaetigt']) {
            $NewsletterAboAnzahlArray['bestaetigt'] = $NewsletterAnzahlRow['newsletter_anzahl'];
        } else {
            $NewsletterAboAnzahlArray['unbestaetigt'] = $NewsletterAnzahlRow['newsletter_anzahl'];
        }
        
    }

    return $NewsletterAboAnzahlArray;
    
}


function GetNewsletterAboDataArray($SearchField, $SearchString, $SortField, $SortOrder, $DataOffset = "", $DataCount = "", $FilterAktiv = 0) {

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

        // Felder
        $SQLString = "SELECT DISTINCT ";
        $SQLString .= TABLE_NEWSLETTER . ".id, ";
        $SQLString .= "DATE_FORMAT(" . TABLE_NEWSLETTER . ".datum, '%d.%m.%Y %h:%i:%s') AS datum, ";
        $SQLString .= TABLE_NEWSLETTER . ".name, ";
        $SQLString .= TABLE_NEWSLETTER . ".email, ";
        $SQLString .= TABLE_NEWSLETTER . ".bestaetigt ";
        $SQLString .= "FROM " . TABLE_NEWSLETTER . " ";

        if ($SearchField && $SearchString) {

                $SQLString .= " WHERE  (" . $SearchField . " LIKE '%" . $SearchString . "%') ";

        }

        // Sortierung
        if ($SortField && $SortOrder) {
                $SQLString .= "ORDER BY " . $SortField . " " . $SortOrder . " ";
        }

        // Limit
        if ((string)$DataOffset != "" && (string)$DataCount != "") {
                $SQLString .= "LIMIT " . $DataOffset . ", " . $DataCount . " ";
        }

//echo '$SQLString: ' . $SQLString . "<br>";


        $MySQLQueryReferenz = mysql_query($SQLString);

        // ********************************************************************************
        // ** die Artikeldaten in ein Array ablegen
        // ********************************************************************************

        $NewletterAboCounter = 0;
        $NewletterAboDataArray = array();

        while ($NewsletterAboRowArray = mysql_fetch_array($MySQLQueryReferenz, MYSQL_ASSOC)) {

                // Daten für die Ausgabe formatieren
                $NewletterAboDataArray[$NewletterAboCounter]["id"] = $NewsletterAboRowArray["id"];
                $NewletterAboDataArray[$NewletterAboCounter]["datum"] = $NewsletterAboRowArray["datum"];
                $NewletterAboDataArray[$NewletterAboCounter]["name"] = $NewsletterAboRowArray["name"];
                $NewletterAboDataArray[$NewletterAboCounter]["email"] = $NewsletterAboRowArray["email"];
                $NewletterAboDataArray[$NewletterAboCounter]["bestaetigt"] = $NewsletterAboRowArray["bestaetigt"];

                $NewletterAboCounter++;
        }


        return $NewletterAboDataArray;
}

