
<?php
  if(count($_POST) == 0)
  {
//Инициализируем переменные
	  $PswdFile = $_GET['pswdfile'];
    $PswdFileFull = "../txt/{$PswdFile}";
    $QuestLength = $_GET['questlength'];
	  $Question = GetQuestion($PswdFileFull, $QuestLength, 'pswd');
    $EmailAddrFile = str_replace('pswd', 'onepassd_emailaddr', $PswdFileFull);
    $LetterFile = "../txt/".str_replace('pswd', 'onepassd_letter', $PswdFile);

  }
  elseif(count($_POST) > 0)
  {
//Добавляем адрес электронной почты
    $Question = $_POST['question'];
    $PswdFile = $_POST['pswdfile'];
	  $PswdFileFull = "../txt/{$PswdFile}";
	  $QuestLength = $_POST['questlength'];
    $EmailAddrFile = str_replace('pswd', 'onepassd_emailaddr', $PswdFileFull);

//Добавляем адрес электронной почты (по одному)
    if($_POST['AddEmail'] != '')
    {
      $Email = $_POST['email'];
      if(!preg_match("/^[-0-9a-z_]+@[-0-9a-z_^\.]+\.[a-z]{2,3}$/i", $Email))
        $Errors[] = $Err_opfa_IncorrEmail;
      if(empty($Errors))
      {
        if(file_exists($EmailAddrFile))
          if(filesize($EmailAddrFile) > 0)
          {
	          $EmailArr = file($EmailAddrFile);
            $EmailStr = implode('', $EmailArr);
          }
        $Str = $Email."\n".$EmailStr;
        SaveStringInFile($EmailAddrFile, $Str, 'w');
        Refresh("changepassword_emailset&pswdfile={$PswdFile}&questlength={$QuestLength}");
      }
    }
//Загружаем адреса из файла
    if($_POST['Load'] != '')
    {
      $FileName = $_POST['filename'];
      $FileArr = @file($FileName);
      if(empty($FileArr))
        $Errors[] = $Err_CantLoadAddressesFromFile;
      elseif(count($FileArr) == 0)
        $Errors[] = $Err_CantLoadAddressesFromFile;
      else
      {
        for($i = 0; $i < count($FileArr); $i++)
          if(strlen($FileArr[$i]) > 60)
          {
            $Errors[] = $Err_AddrLengthLimit;
            break;
          }
      } //else -> if(empty($FileArr))
      //добавляем новые адреса в файл
      if(empty($Errors))
      {
        $EmailAddrArr = @file($EmailAddrFile);
        if(!empty($EmailAddrArr))
          $EmailAddrStr = implode('', $EmailAddrArr);
        $FileStr = implode('', $FileArr);
        //Добавляем пустую строку в конец импортируемого списка адресов если ее нет
        $LastChar = strlen($FileStr)-1;
        if($FileStr[$LastChar] != "\n")
          $FileStr .= "\n";
        $Str = $FileStr.$EmailAddrStr;
        //Записываем строку в файл
        SaveStringInFile($EmailAddrFile, $Str, 'w');
        Refresh("changepassword_emailset&pswdfile={$PswdFile}&questlength={$QuestLength}");
      }
    }
//импортируем адреса
    //foreach($_POST as $key => $value)
    //  print $key.' - '.$value.'<br>';
    if($_POST['Import'] != '')
    {
      //импортируем адреса из базы участников
      if($_POST['ImportSource'] == 'PollusersDatabase')
      {
        $UsersArr = @file($UsersDatabase);
        if(count($UsersArr) == 0)
          $Errors[] =  $Cpt_pud_NoUsers;
        if(empty($Errors))
        {
          for($i = 1; $i < count($UsersArr); $i = $i + 2)
            if($UsersArr[$i] != "no\n")
              $ToImport .= $UsersArr[$i];
          //Вставляем пустую строку в конец импортируемого списка адресов
          $LastChar = strlen($ToImport)-1;
          if($ToImport[$LastChar] != "\n")
            $ToImport .= "\n";
          $EmailAddrArr = @file($EmailAddrFile);
          $Str = $ToImport.implode('', $EmailAddrArr);
          SaveStringInFile($EmailAddrFile, $Str, 'w');
          Refresh("changepassword_emailset&pswdfile={$PswdFile}&questlength={$QuestLength}");
        }
      }  //if($_POST['ImportSource'] == 'PollusersDatabase')
      else {
        $SourceFile = "../txt/".$_POST['ImportSource'];
        $Source = file($SourceFile);
        $SourceStr = implode('', $Source);
        $EmailAddrArr = file($EmailAddrFile);
        $EmailAddrStr = implode('', $EmailAddrArr);
        SaveStringInFile($EmailAddrFile, $SourceStr.$EmailAddrStr, 'w');
        Refresh("changepassword_emailset&pswdfile={$PswdFile}&questlength={$QuestLength}");
      }
    } // if($_POST['Import'] != '')
  }  //elseif(count($_POST) > 0)
  //меню
  $EmailAddrArr = @file($EmailAddrFile);
  print "<form name=MenuForm action='' method=post>";
  print "<h4>{$Heading_EmailList}</h4>";
  print "<h5>{$Question}</h5>";
  //подсказки
  if($ShowTips == 'yes')
    ShowTips($Page);
  print "<fieldset class=GeneralField align=center>";
    print "<table align=center class=General border=0 cellpadding=0 cellspacing=0 width=90% >";
      print "<tr>";
        print "<td align=center><a href=index.php?page=ch_password&pswdfile={$PswdFile}&questlength={$QuestLength}>{$Cpt_Back}</a></td>";
        if(!empty($EmailAddrArr))
        {
          print "<td align=center><a href=index.php?page=changepassword_emailset&pswdfile={$PswdFile}&questlength={$QuestLength}>{$Menu_EmailList}</a></td>";
          print "<td align=center><a href=index.php?page=changepassword_emailset_sort&pswdfile={$PswdFile}&questlength={$QuestLength}>{$Menu_opfa_Sort}</a></td>";
          print "<td align=center><a href=index.php?page=changepassword_emailset_letter&pswdfile={$PswdFile}&questlength={$QuestLength}>{$Menu_LetterText}</a></td>";
          $Letter = @file($LetterFile);
          for($i = 0; $i <= 2; $i++)
            if(empty($Letter[$i]))
              $NoSend = true;
          if($NoSend != true)
            print "<td align=center><a class=MustRed href=index.php?page=changepassword_emailset_send&pswdfile={$PswdFile}&questlength={$QuestLength}>{$Menu_SendLetters}</a></td>";
        }
      print "</tr>";
    print "</table>";
  print "</fieldset><br><br>";

  ShowErrors($Errors, '90%', 'MiniField');

//Ищем источники импорта
  $TimeStamp = str_replace('pswd', '', $PswdFile);

  //Выбираем все файлы с префиксом 'onepassd_emailaddr' из директории txt
  $dr = opendir("../txt");
  while($FileName = readdir($dr))
  {
    if(strpos($FileName, 'onepassd_emailaddr') !== false)
      if(strpos($FileName, $TimeStamp) === false)
        $PollEmails[] = $FileName;

  }

  closedir($dr);
  //
  $OptionsStr = '';
  for($i = 0; $i < count($PollEmails); $i++)
  {
    $EmailAddrFile = $PollEmails[$i];
    //Временная метка
    $TimeStamp = str_replace('onepassd_emailaddr', '', $EmailAddrFile);
    //находим основной файл голосования
    if(file_exists("../txt/cp".$TimeStamp))
      $PollFile = "../txt/cp".$TimeStamp;
    else
      $PollFile = "../txt/arch".$TimeStamp;
    //извлекаем вопрос из основного файла голосования
    $PollArr = file($PollFile);
    $Question = StripBBCode($PollArr[0]);
    $Question = substr($Question, 0, 25);
    //Четные элементы массива - имена файлов-баз почт. адресов,  нечетные - вопрос
    $OptionsStr .= "<option value={$EmailAddrFile}>{$Question}";
  }

//Форма добавить, загрузить из файла, импортировать
  print "<fieldset class=MiniField align=center>";
  print "<table class=General align=center border=0 cellspacing=0 cellpadding=0 width=90%>";
    print "<tr>";
       //e-mail
       print "<td>{$Cpt_opfa_Email}</td>";
       print "<td><input name=email type=text size=35 maxlength=60 value={$Email}></td>";
       print "<td><input type=Submit class=ButtonSettings name=AddEmail value='{$Button_opfa_AddEmail}'></td>";
    print "</tr>";
    print "<tr>";
       //загрузка из файла
       print "<td>{$Cpt_opfa_LoadAddrFromFile}</td>";
       print "<td><input name=filename type=file size=22 maxlength=35 value='{$Login}'></td>";
       print "<td><input type=Submit class=ButtonSettings name=Load value={$Button_opfa_LoadAddrFromFile}></td>";
    print "</tr>";
    print "<tr>";
       //импортировать
       print "<td>{$Cpt_opfa_Import}</td>";
       print "<td><select name=ImportSource><option value=PollusersDatabase>{$Cpt_PollUsersDataBase}{$OptionsStr}</td>";
       print "<td><input type=Submit class=ButtonSettings name=Import value='{$Button_opfa_ImportEmails}'></td>";
    print "</tr>";
  print "</table>";
  print "</fieldset>";
  print "<input type=hidden name=question value='{$Question}'>";
  print "<input type=hidden name=pswdfile value='{$PswdFile}'>";
  print "<input type=hidden name=questlength value='{$QuestLength}'>";
  print "</form>";


  if(empty($EmailAddrArr))
  {
    print "<br>";
    print "<table align=center class=General border=0 cellpadding=0 cellspacing=0 width=85% >";
      print "<tr><td><b class=Mustred><b>{$Cpt_opfa_NoUsers}</b></td></tr>";
    print "</table>";
    print "</body></html>";
    exit;
  }

  //постраничная навигация (верхняя)
    //определяем страницы
  $ItPerPage = $OnePassw_ItemPerPage;
  $InitPos = $_GET['initpos'];
  if(empty($InitPos))
    $InitPos = 0;
  $EndPos  = $InitPos + $ItPerPage;
  //определяем количество страниц
  $CountAddr = count($EmailAddrArr);
  $CountPages = ceil($CountAddr/($ItPerPage));
  //выводим шапку таблицы
  $Navig =  "<table align=center class=General border=0 cellpadding=0 cellspacing=0 width=85% >";
    $Navig .= "<tr><td align=center>";
  //вычисляем позицию предыдущего элемента
  if($InitPos != 0)
  {
    $PrecInitPos = $InitPos - $ItPerPage;
    $Navig .= "<a class=Navigation href=index.php?page=changepassword_emailset&pswdfile={$PswdFile}&questlength={$QuestLength}&initpos={$PrecInitPos}>{$Cpt_Prev}</a>";
  }

  for($i = 0; $i < $CountPages; $i++)
  {
    $ElInitPos = $i * ($ItPerPage);
    if($ElInitPos != $InitPos)
    {
      $Navig .= "<a class=Navigation href=index.php?page=changepassword_emailset&pswdfile={$PswdFile}&questlength={$QuestLength}&initpos={$ElInitPos}>".($i+1)."</a>";
    }
    else
      $Navig .= "<span class=Navigation><b>".($i+1)."</b></span>";
    }
    if($EndPos < count($EmailAddrArr))
    {
      $NextInitPos = $InitPos + ($ItPerPage);
      $Navig .= "<a class=Navigation href=index.php?page=changepassword_emailset&pswdfile={$PswdFile}&questlength={$QuestLength}&initpos={$NextInitPos}>{$Cpt_Next}</a>";
    }
    $Navig .= "</td></tr>";
  $Navig .= "</table>";
  print $Navig;
//выводим адреса электронной почты
   print "<form name=EmailAddrForm method=post action=''>";
   print "<table align=center border=1 cellpadding=0 cellspacing=0>";
   print "<tr class=OrdTable >";
     print "<td width=30 align=center><b>№</b></td>";
     print "<td width=180 align=center><b>{$TH_Email}</b></td>";
     print "<td width=65 align=center>&nbsp;</td>";
     print "<td width=65 align=center>&nbsp;</td>";
     print "<td width=20>&nbsp;</td>";
   print "</tr>";

   $inx = ($InitPos+1);
   for($i = $InitPos; $i < $EndPos; $i++)
   {
     if($EmailAddrArr[$i] == '')
       break;
     print "<tr class=OrdTable >";
       print "<td align=center>{$inx}</td>";
       if(strpos($EmailAddrArr[$i], ' (%%sended%%)') !== false)
       {
         $EmailAddrArr[$i] = str_replace(' (%%sended%%)', '', $EmailAddrArr[$i]);
         $SendStatus = $Cpt_opfa_Sended;
       } else $SendStatus = "<b>{$Cpt_opfa_NotSended}</b>";
       print "<td>".$EmailAddrArr[$i]."</td>";
       print "<td ><a href=index.php?page=changepassword_emailset_edititem&pswdfile={$PswdFile}&pos={$i}&questlength={$QuestLength}>{$Cpt_Change}</a></td>";
       print "<td>{$SendStatus}</td>";
       print "<td><input type=checkbox name=addr{$i}></td>";
     print "</tr>";
     $inx++;
   }
 print "<table>";
 //кнопки
 print "<table width=423 align=center border=1 cellpadding=0 cellspacing=0>";
   print "<tr><td class=OrdTable align=center>";
     print "<input class=ButtonSettings type=submit name=DeleteAddr value='{$Button_opfa_Delete}'>";
     print "<input class=ButtonSettings type=submit name=DeleteAll value='{$Button_opfa_DeleteAll}'>";
     print "<input type=hidden name=page value='changepassword_emailset_deleteitem'>";
   print "</td></tr>";
 print "</table>";
 print "</form>";
  print $Navig;
?>