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

    $id   = trim($id);
    $mark = trim($mark);

    $ok=0; 

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

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

        // Let's check if author allow voting on his texts

       $result=mysql_db_query($db_database, "select Logins.AcceptVotes from Logins, Authors, Texts WHERE Texts.AuthorId=Authors.Id AND Authors.Login=Logins.Login AND Texts.Id='" . addslashes($id) . "'" , $link);
       if($result)
       {
          $row = mysql_fetch_array($result);
          mysql_free_result($result);
          if($row && $row[0]=='No')
          {
             $errmsg="Автор запретил голосование по своим работам.";
             break;
          }
       }
        
      // Not let's check if we already voted on this

       $result=mysql_db_query($db_database, "SELECT CreatedAt FROM Marks WHERE Login='". addslashes($login) ."' AND TextId='" . addslashes($id) . "'" , $link);
       if(!$result)
       {
           $errmsg = "Ошибка проверки наличия оценки! Сообщите администрации.";
           break;
       } 

       $row = mysql_fetch_array($result);
       mysql_free_result($result);
       if($row)
       {
           $errmsg="Вы уже проголосовали по этой работе " . $row[0];
           break;
       }

      $sql = 
        "INSERT INTO Marks (Login, TextId, CreatedAt, Value) VALUES ('" . addslashes($login) . "', '" . addslashes($id) . "', NOW(), '" . addslashes($mark) . "');" .
        "SELECT @M:=SUM(Value)/COUNT(*), @C:=COUNT(*) FROM Marks WHERE TextId=" . addslashes($id) . ";" .
        "UPDATE Texts SET MarksValue=@M, MarksCount=@C WHERE Id=" . addslashes($id) . ";" .
        "SELECT @A:=AuthorId FROM Texts WHERE Id=" . addslashes($id) . ";" .
        "SELECT @M:=SUM(Marks.Value)/COUNT(*), @C:=COUNT(*) FROM Marks, Texts WHERE Marks.TextId=Texts.Id AND Texts.AuthorId=@A;" .
        "UPDATE Authors SET MarksValue=@M, MarksCount=@C WHERE Id=@A";

      $result=do_transaction($db_database, $sql, $link);
      if(!$result)
      {
        $errmsg = "Ошибка регистрации оценки. Сообщите об этой ошибке администрации. " . $sql;
        break;
      } 
 
       $ok = 1;
       break;
    } // while

    if($ok)
    {
        do_redirect("text.php?Id=" . $id);
    } 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>

<?php 

print "<a href=\"text.php?Id=" . $id . "\">Вернитесь</a> к работе.\n";
show_footer(); 

?>

</BODY>
</HTML>
