<?php
  $Path = str_replace('\\','/', __FILE__);
  $Path = str_replace('contact-form/contact-form.php', '', $Path);

  include_once($Path."includes/error_reporting.php");
  include_once($Path.'/gigkalender.ini.php');
  include_once($Path.'/functions/standard.php');
  include_once($Path.'/guestbook/functions.php');
  include_once($Path."includes/frontend_language_selector.php");
  //include_once('gigkalender/languages/deutsch.php');
  //foreach ($_POST as $key => $value) $$key = $value;
  foreach ($_POST as $key => $value) {
    $$key = trim($value); // ' -1\2'3"4<b>5&6; ' => '-1\2'3"4<b>5&6;'
    $$key = html_entity_decode($$key); // '&lt;b&gt;dog&lt;/b&gt;' => <b>dog</b>
    $$key = htmlspecialchars_decode($$key); // 'this -&gt; &quot;' => 'this -> "'
    $$key = stripslashes($$key); // O\'reilly? => O'reilly
    $$key = strip_tags($$key); } // 'Hi <b>there</b>' => 'Hi there'

  $IPAddress = getRealIP();

  // Prevent 'undefined index' notices
  if (!isset($submit)) {
      $name = "";
      $email = "";
      $url = "";
      $message = "";
      $agreement = "";
      $email = "";
      $messageIsSpam = messageIsSpam('', '', $IPAddress, '', ''); }
  else {
    $messageIsSpam = messageIsSpam($name, $message, $IPAddress, '', $url);
  }
  // Abort script
    if ($messageIsSpam=="blocked-ip") {
      http_response_code(404);
      die(); }
  // Write spam log
    if ($messageIsSpam!='noSpam')
      writeSpamLog($name, '', $email, '', $url, '', $message, $IPAddress,
        $messageIsSpam, 'contact-form');

  echo '<div class="GigKalender"><div id="Contact">';
  
  if (isset($submit)
    && isset($name)
    && isset($email)
    && !empty($message)
    && isset($agreement)
    && $agreement=='checked'
    && checkEmail ($email)
    && $messageIsSpam=="noSpam" // in newer GigKalender it returned "noSpam", not "" anymore
    )
  {
    // test for time spent to fill the form
    $diff = microtime(TRUE)-$AntiSpamTimestamp;
    $diff = number_format($diff, 2, '.', '');
    if ($diff<2.5) {
      writeSpamLog($name, '', $email, '', '', '', $message, $IPAddress,
        'form-completion-time: '.$diff.' s', 'contact-form');
      http_response_code(404);
      die(); }
    else {
    $message = $L_114.":
".$name."

".$L_115.":
".$email."

".$L_119.":
".$message."

".$L_134.":
".$IPAddress."

FORM COMPLETION TIME:
".$diff." s

BLOCK IP ADDRESS:
".getCurrentURL()."?ip=".$IPAddress;
    // Mail mit Header definieren
      $name = sprintf('=?%s?B?%s?=', strtoupper('UTF-8'),
        base64_encode($name)); // Bugfix v1.2.80_165
      $optheader[] = "From: ".$name." <".$email.">";
      $optheader[] = "Reply-To: ".$name." <".$email.">";
      $optheader[] = "User-Agent: GigKalender ".$GigKalenderVersion;
      $optheader[] = "MIME-Version: 1.0";
      $optheader[] = "Content-Type: text/plain; Charset=utf-8";
      $header = implode("\r\n", $optheader);
    // Mail versenden
      if (@mail(getSetup('SetupGuestbookMail'), $L_New_message_via_contact_form, $message, $header)) {
        echo '<p>'.$L_142.'</p>';
        unset($submit);
      }
      else
        echo '<p class="ErrorMessage">'.$L_ERROR_Email_could_not_be_sent.'</p>'; }
  }
  else
  {
    if (isset($_GET["ip"])) {
      echo "<span class='ErrorMessage'>
        Blocking IP address: ".$_GET["ip"]."  ... ";
        $IPArray = explode(', ', getSetup('SetupGuestbookSpamIPs'));
        $IPArray[] = $_GET["ip"];
        $IPArray = array_unique($IPArray);
        $newIPs = implode(', ', $IPArray);
        $SQLQuery = "UPDATE ".$prefix."setup SET SetupGuestbookSpamIPs = '$newIPs'";
        $Result = mysqli_query($db, $SQLQuery);
        if ($Result) {
          echo 'IP address blocked!</span><br><br>'; }
        else echo 'Error 97<br>';
    }
    if (!isset($agreement)) $agreement = "";
    echo '<div id="ContactForm">
        <form action="'.getFrontendURL('SetupContactURL').'" method="post" accept-charset="UTF-8">
          <table>';
    // Name
    if (isset($submit)) {
      if (empty($name))
        echo '<tr><td></td><td class="ErrorMessage">'.$L_121.'</td></tr>';
        // Spam test
        elseif (preg_match('|word-in-name:|', $messageIsSpam))
          echo '<tr><td></td><td class="ErrorMessage">'.$L_124.'</td><td></td></tr>'; }
    echo '<tr>
            <td>'.$L_114.':</td>
            <td><input type="text" name="name" maxlength="40" value="'.$name.'" /></td>
            <td valign="top">*</td>
          </tr>';
    // Email
    if (isset($submit) && empty($email))
      echo '<tr><td></td><td class="ErrorMessage">'.$L_216.'</td></tr>';
    if (isset($submit) && !empty($email) && !checkEmail ($email))
      echo '<tr><td></td><td class="ErrorMessage">'.$L_122.'</td></tr>';
    echo '<tr>
            <td>'.$L_115.':</td>
            <td><input type="text" name="email" maxlength="80" value="'.$email.'" /></td>
            <td valign="top">*</td>
           </tr>';
    // Fake URL as spam trap
    echo '<tr style="display:none;">
            <td align="right" valign="top">'.$L_117.':</td>
            <td><input type="text" name="url" value="'.$url.'" /></td>
            <td></td>
          </tr>';
    // Message
    if (isset($submit)) {
      // Spam test
      if (preg_match('|word-in-message:|', $messageIsSpam))
        echo '<tr><td></td><td class="ErrorMessage">'.$L_124.'</td><td></td></tr>';
      elseif (preg_match ('|blocked-character:|', $messageIsSpam))
        echo '<tr><td></td><td class="ErrorMessage">'.$L_ERROR_Message_contains_invalide_characters.'</td><td></td></tr>';
      // empty message
      elseif (empty($message))
        echo '<tr><td></td><td class="ErrorMessage">'.$L_125.'</td><td></td></tr>'; }
    echo '<tr>
            <td>'.$L_119.':</td>
            <td><textarea name="message" rows="8" cols="" >'.$message.'</textarea></td>
            <td valign="top">*</td>
           </tr>';
    if (isset($submit) && $agreement!="checked")
      echo '<tr><td></td><td class="ErrorMessage">'.$L_ERROR_Missing_agreement.'</td></tr>';
    // Define string with link to privacy policy
      // Check if a Link can be set
        if ($SetupFrontendPrivacyPolicyURL) $Link = '<a href="'.$SetupFrontendPrivacyPolicyURL.'">'.$L_Privacy_Policy.'</a>';
          else $Link = $L_Privacy_Policy;
      // replace variable %1 in language string with the link
        $L_Field_Agreement = str_ireplace("%1", $Link, $L_Field_Agreement);
    // AntiSpamTimestamp
      if (!isset($submit)) {
        $AntiSpamTimestamp = microtime(TRUE); }
    // Button
    echo '<tr>
            <td></td>
            <td>
              <input style="width:auto" type="checkbox" name="agreement" value="checked" '.$agreement.'/>
              '.$L_Field_Agreement.'
            </td>
            <td valign="top">*</td>
           </tr>
           <tr>
            <td></td>
            <td><input type="submit" name="submit" value="'.$L_Button42.'" class="button" /></td>
            <input type="hidden" name="AntiSpamTimestamp" value="'.$AntiSpamTimestamp.'" />
           </tr>
        </table>
      </form></div>';
  }
  echo '</div></div>';
?>