<?php
    include "misc.inc";
    include "common.inc";
    include "db_connect.inc";

    $name  = trim($name);
    $email = trim($email);

    $ok=0; 

    while(1)
    {
        $login = current_user();
        if(!$login)
        {
            $errmsg="Вы должны сначала зарегистрироваться!";
            break;
        }

        if(strlen($email)==0 || strlen($name)==0)
        {
            $errmsg="Вы должны заполнить все поля формы!";
            break;
        } 

       $result=mysql_db_query($db_database, "SELECT Id from Authors WHERE Email='". addslashes($email) ."'", $link);
       if(!$result)
       {
           $errmsg = "Ошибка поиска автора";
           break;
       } 

       $row = mysql_fetch_array($result);
       mysql_free_result($result);
       if($row)
       {
            // Author found
            $author_id = $row[0];
            
            // check if he already have been associated with some login.
            $result = mysql_db_query($db_database,
                                  "SELECT ISNULL(Login) FROM Authors WHERE Email='" . addslashes($email) . "'", $link);
            if(!$result)
            {
                $errmsg="Ошибка сервера!";
                break;
            }
      
            $row = mysql_fetch_array($result);
            mysql_free_result($result);
            if(!$row)
            {
                $errmsg = "Ошибка проверки адреса. Сообщите об этой ошибке администрации.";
                break;
            } 
            if(!trim($row[0]))
            {
                $errmsg = "Этот адрес уже зарегистрирован.";
                break;
            } 
       } else 
       {
           // New author - Let's add
           $sql = "INSERT INTO Authors (Email, Name, Login) VALUES ('" . addslashes($email) . "', '" . addslashes($name) . "', NULL)";
           $result=mysql_db_query($db_database, $sql, $link);
           if(!$result)
           {
               $errmsg = "Ошибка добавления нового автора. Сообщите об этой ошибке администрации. " . $sql;
              break;
           } 
           $author_id = mysql_insert_id($link);
       }
           
       srand((double)microtime()*1000000);
       $tmp_pass    = rand();

       $url = current_URL();
       $url = substr($url, 0, strrpos($url, "/"));

       $url = $url . "/confirmemail_handler.php?author="  . $author_id . 
        "&login=" . $login . 
        "&pass=" . $tmp_pass;

       //TODO
       $message =
//         x         x         x         x         x         x         x         x
"Это сообщение сгенерировано системой регистрации сервера OBEC.PACTET\n" .
"(http://obec.org.ru). Кто-то (возможно, Вы) попросил зарегистрировать Ваш\n" .
"почтовый адрес как принадлежащий пользователю нашего сервера со следующим\n" .
"псевдонимом:\n" .
"\n" .
"Псевдоним:      " . $login . "\n" .
"Почтовый адрес: " . $email . "\n" .
"\n" .
"Для подтверждения этой регистрации Вам нужно открыть URL:\n" .
"\n" .
"\n" .
$url . "\n" .
"\n" .
"После подтверждения Вы увидите страницу настроек со списком\n" .
"уже зарегистрированных адресов.\n" .
"\n" .
"Если Вы не делали запрос на добавление адреса к псевдониму (или вообще\n" .
"не знаете, о чём идет речь), просто проигнорируйте это письмо - регистрация\n" .
"будет автоматически отменена через несколько дней. Если Вы считаете, что\n" .
"кто-то пытается приписать себе Ваши произведения, опубликованные в\n" .
"OBEC.PACTET - свяжитесь с модератором или администрацией сервера.\n" .
"\n" .
"С уважением,\n" .
"    разработчики и администраторы сервера OBEC.PACTET.\n\n";

       if(!mail($email, "OBEC.PACTET email confirmation request", $message,
            "From: " . $OBEC_EMAIL . "\n" .
            "Reply-To: ". $OBEC_EMAIL ."\n" .
            "X-Mailer: " . $PROGRAM_NAME . "\n" .
            "MIME-Version: 1.0\n" .
            "Content-Type: text/plain; charset=koi8-r" )) 
       {
           $errmsg = "Ошибка отправки почтового сообщения на указанный адрес.";
           break;
       }

       $sql = "DELETE FROM PendingEmailConfimations WHERE (Login='" . addslashes($login) . "' AND AuthorId='" . addslashes($author_id) . "') OR CreatedAt< DATE_SUB(NOW(), INTERVAL 1 DAY)";
       $result = mysql_db_query($db_database, $sql , $link);

       if(!$result)
       {
             $errmsg = "Ошибка 1 генерации временного пароля. Сообщите об этой ошибке администрации.";
             break;
       } 

       $sql = "INSERT INTO PendingEmailConfimations (Login, AuthorId, CreatedAt, Password) VALUES ('" . addslashes($login) . "', '" . addslashes($author_id) . "', NOW() , '" . addslashes($tmp_pass). "')";
       $result = mysql_db_query($db_database, $sql , $link);

       if(!$result)
       {
             $errmsg = "Ошибка 2 генерации временного пароля. Сообщите об этой ошибке администрации.";
             break;
       } 
 
       $ok = 1;
       break;
    } // while

    if($ok)
    {
        do_redirect("prefs.php");
    } else
    {
          start_page();
    }
?>

<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-r">
<TITLE>Ошибка добавления адреса!</TITLE>
</HEAD>

<BODY link="#000033" vlink="#333333" alink="#CC0000">
<?php show_header(); ?>

<p>Ошибка добавления адреса:
<pre>
        <?php print $errmsg; ?>
</pre>
<a href="prefs.php">Вернитесь</a>, и попробуйте еще раз.

<?php show_footer(); ?>

</BODY>
</HTML>
