<?
header("Location: /baform/index.php");
?>
<!DOCTYPE html><?
session_start();
function object_to_array($obj) {
    //only process if it's an object or array being passed to the function
    if(is_object($obj) || is_array($obj)) {
        $ret = (array) $obj;
        foreach($ret as &$item) {
            //recursively process EACH element regardless of type
            $item = object_to_array($item);
        }
        return $ret;
    }
    //otherwise (i.e. for scalar values) return without modification
    else {
        return $obj;
    }
}
function getConfig($param){
    $isExists = 0;
    $out = "";
    $currentPrjPuth = $_SERVER['DOCUMENT_ROOT']."/baform/current_prj_file.txt";
    if(file_exists($currentPrjPuth)){
        $currentPrjName = file_get_contents($currentPrjPuth);
        $currentPrjFilePuth = $_SERVER['DOCUMENT_ROOT']."/baform/form_pojects_save_txt/".$currentPrjName.".txt";
        if(file_exists($currentPrjFilePuth)){
            $currentPrjFilePuthConfig = $_SERVER['DOCUMENT_ROOT']."/baform/form_pojects_save_txt/".$currentPrjName.".config";
            if(file_exists($currentPrjFilePuthConfig)){
                $config = file_get_contents($currentPrjFilePuthConfig);
                if(!empty($config)){
                    $isExists = 1;
                }
            }
        }
    }
    if($isExists === 1){
        $config = json_decode($config);
        $config = object_to_array($config);
        if($param == 'emailfrom'){
            if(empty($config['emailfrom'])){
                $out = "admin@".str_replace("www","", $_SERVER['SERVER_NAME']);
            }else{
                $out = $config['emailfrom'];
            }
        //}elseif($param == 'template'){
        }elseif($param == 'template'){
            if(empty($config[$param])){
                $config[$param] = 'default';
            }
            $out = $config[$param];

        }else{
            if(empty($config[$param])){
                //echo "1--------------------------- ".$param."==".$config[$param]."<br>";
                $config[$param] = '';
            }
            $out = $config[$param];
        }
    }else{

        if($param == 'emailfrom'){
            $out = "admin@".str_replace("www","", $_SERVER['SERVER_NAME']);
        }elseif($param == 'template'){

            $out = 'default';
        }else{
            $out = '';
        }
    }
    return $out;
}
?>
<html lang="ru">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <!--<link rel="stylesheet" href="css/font.css" />
    <link rel="stylesheet" href="css/reset.css" />
    <link rel="stylesheet" href="css/base.css" />
    <link rel="stylesheet" href="css/style.css" />-->
    <title>Пример простого квиза</title>
	<script src="/baform/jquery-3.6.0.min.js"></script>
	<script src="/baform/jquery-ui.min.js"></script>
	<script src="/baform/script.js?<?=rand(10000000, 100000000);?>"></script>
	<link href="/baform/style.css?<?=rand(10000000, 100000000);?>" type="text/css"  rel="stylesheet" />
	
	<link href="/baform/leader-line.css?<?=rand(10000000, 100000000);?>" type="text/css"  rel="stylesheet" />
	<script src="/baform/leader-line.min.js"></script>	
	
  </head>
  <body>
  <h1>Инструмент для разработки много-шаговых форм, опросников, квизов.</h1>
  <?

$isAuth = 0;
if(isset($_SESSION['admin'])){
      if($_SESSION['admin'] == 1){
          $isAuth = 1;
      }
}
if($isAuth === 0){

}
if($isAuth === 0){
    if(!empty($_POST['pass'])){
        if($_POST['pass'] == "Hg2p-qvF>"){
            if(isset($_SESSION['admin'])){
                unset($_SESSION['admin']);
            }
            $_SESSION['admin'] = 1;
        }else{
            if(isset($_SESSION['admin'])){
                unset($_SESSION['admin']);
            }
            $_SESSION['admin'] = 0;
        }
        //echo "<pre>";print_r( $_SESSION );echo "</pre>";
        header("Location: /baform/baform.php");
        exit;
    }
    ?>
    <form method="post">
      <input type="text" name="pass" value="" placeholder="Введите пароль">
      <input type="submit" value="Авторизироваться">
    </form>
<?}else{
  ?>
    <div class="top-panel">Текущий проект: 
  
	  <span class="current-file">
		  <?
			$opt = '<select name="selectnameprj" class="select-name-prj">
			<option value="0">не выбрано</option>';
			$lastPrj = "";
			$dirPrjCurrent = $_SERVER['DOCUMENT_ROOT'].'/baform/';
			$prjFileCurrent = $dirPrjCurrent.'current_prj_file.txt';
			if(file_exists($prjFileCurrent)){
				$lastPrj = file_get_contents($prjFileCurrent);
			}
			$contentDevSeleted = "";
		  ?>	
		  
			<?
				$strCurrentPrj = "";
				$dir = $_SERVER['DOCUMENT_ROOT'].'/baform/form_pojects_save_txt';
				$files = scandir($dir);
				foreach($files as $val){
					if(basename($val) == "." || basename($val) == ".."){
						continue;
					}
					$selected = "";
					$filename_without_extension = pathinfo($val, PATHINFO_FILENAME);
					if(strlen($lastPrj)>0 && $filename_without_extension == $lastPrj){
						$selected = " selected";
						if(file_exists($dir."/".$val)){
							$contentDevSeleted = file_get_contents($dir."/".$val);
							$strCurrentPrj = $filename_without_extension;
						}
					}
					$opt .= '<option value="'.$filename_without_extension.'"'.$selected.'>'.$filename_without_extension.'</option>';
				}
				$opt .= '</select>';
				echo $strCurrentPrj."<br />";
			?>
	  </span>
	  <button onclick="return savePrj();">Сохранить проект как</button> 
	  <button onclick="return newPrj();">Создать новый проект-форму</button><br>
	  <button onclick="return loadPrj();">Загрузить существующий проект</button> <?=$opt;?>
  </div>
  <table>
	<tr>
		<th class="cell-1">Инструменты</th>
		<th  class="cell-2">Блок-схема</th>
		<th  class="cell-3">Просмотр результата</th>
	</tr>
	<tr>
	  <td  class="cell-1">
		<div class="dev-worap-button">
			<button onclick="return addBlock();">Добавить блок №</button> 
				<input type="text" name="addblocknum" class="addblocknum" size="3"/>
		</div>
		<div class="wrap-curr-text-number">Текущий блок для вставки ответов: <span class="curr-text-number"></span></div>
		<hr />
		<div class="dev-worap-button">
			<button class="w-100" onclick="return addRadio(this);"><img src="/baform/radio.png">Вставить радио кнопку-Ответ</button> 
		</div>
		
		<div class="dev-worap-button">
			<button class="w-100" onclick="return addTextInput(this);"><img style="background: white;" src="/baform/textin.png">Вставить строковое поле(для телефона, емаил..)</button> 
		</div>
		
		<div class="dev-worap-button">
			<button class="w-100" onclick="return addFileInput(this);">&#128228; Вставить множественное поле Файл</button> 
		</div>
		
		<div class="dev-worap-button">
			<button class="w-100" onclick="return showStaticText();">&#128214; Показать поле для статического текста внутри формы</button> 
		</div>
		<div class="dev-worap-button">
			<button class="w-100" onclick="return hideStaticText();">&#128213; Скрыть поле для статического текста внутри формы</button> 
		</div>
		
		
		<hr />
		
		<div class="dev-worap-button">
			<button class="w-100" onclick="return addNextButton(this);">&#8649; Вставить кнопку "Далее"</button><br />
			Если такой кнопки нет переход на следующий шаг будет по клику на Ответ
		</div>
		<div class="dev-worap-button">
			<button class="w-100" onclick="return addPrevButton(this);">&#8647; Вставить кнопку "Назад"</button> 
		</div>
		<div class="dev-worap-button">
			<button class="w-100" onclick="return addSendButton(this);">&#9993; Вставить кнопку "Отправить"</button> 
		</div>
		
		<div class="dev-worap-button">
			<button class="w-100" onclick="return showLinersConnect();">&#128275; &#10549; Показать формы для рисования линий связи</button> 
		</div>
		<div class="dev-worap-button">
			<button class="w-100" onclick="return hideLinersConnect();">&#128272; Скрыть формы для рисования линий связи</button> 
		</div>
		<div class="dev-worap-button">
			<button class="w-100" onclick="return addRowBlock();">&#9725;&#9725;&#9725; Вставить область для горизотального размещения блоков</button> 
		</div>
		<hr />
		<div class="dev-worap-button">
			<button class="w-100" onclick="return makeFormToPrevShow(0);">&#127910; Предварительный просмотр</button> 
		</div>
		
		<div class="dev-worap-button">
			<button class="w-100" onclick="return makeFormToPrevShow(1);">&#128195; Просмотр на отдельной странице</button> 
		</div>

        <div class="dev-worap-button download">
            <sup>3</sup> <a href="/baform/showrezulthtml/index-html">Скачать html разметку</a>
        </div>

        <div class="dev-worap-button download">
            <sup>3</sup> <a href="/baform/showrezulthtml/send_kviz-php">Скачать обработчик формы на php</a>
        </div>

          <hr />
          <h3>Опции:</h3>
          <div class="warning"><sup>1</sup> Черезвычайно важный параметр.</div>
          <div class="f-text">Заполните Email <b>ОТ</b> имени которого будут приходить письма:</div>
          <input
                  class="f-text-input emailfrom"
                  type="text"
                  name="fromemail"
                  class="fromemail"
                  value="<?
                         echo getConfig("emailfrom");
                  ?>" />

          <div class="f-text">Заполните Email владельца(администратора) опроса/квиза, <b>КУДА</b> должны приходить письма с результатами:</div>
          <input
                  class="f-text-input emailto"
                  type="text"
                  name="emailto"
                  value="<?
            echo getConfig("emailto");
          ?>" />
          <div class="dev-worap-button">
              <button class="w-100" onclick="return testSendEmailButton();">✉ <sup>2</sup>Тестировать почту по указанным выше настройкам</button>
          </div>

          <div class="f-text">Тема сообщения для администратору:</div>
          <input
                  class="f-text-input subject_email_to_admin"
                  type="text"
                  name="subject_email_to_admin"
                  value="<?
          echo htmlentities(getConfig("subject_email_to_admin"), ENT_QUOTES);
          ?>" />

          <div class="f-text">Тема сообщения для посетителя (если надо):</div>
          <input
                  class="f-text-input subject_email_to_user"
                  type="text"
                  name="subject_email_to_user"
                  value="<?
                  echo htmlentities(getConfig("subject_email_to_user"), ENT_QUOTES);
                  ?>" />

          <div class="f-text"></div>
          <input
                  class="f-text-input send_to_user"
                  type="checkbox"
                  name="send_to_user"
                  value=""
                  <?
                  //checked="checked"
                  $checkedCofig =  getConfig("send_to_user");
                  $checked="";
                  if($checkedCofig == "Y"){
                      $checked = ' checked="checked"';
                  }
                  echo $checked;
                  ?>" /> <span class="f-text">Дублировать письмо посетителю:</span>


          <div class="f-text">Тема для дизайна:</div>
          <select name="template" class="select-template" value="">
              <?
              $tpl = getConfig("template");
              $dir = $_SERVER['DOCUMENT_ROOT'].'/baform/templates';
              $files = scandir($dir);
              foreach($files as $val){
                  if(basename($val) == "." || basename($val) == ".."){
                      continue;
                  }
                  if(is_dir($dir."/".$val)){
                      $checked = "";// selected

                      if($tpl == $val){
                          $checked = ' selected="selected"';
                      }
                      echo '<option value="'.$val.'"'.$checked.'>'.$val.'</option>';
                  }
              }
              ?>
          </select>
		
	  </td>
	  
	  <td  class="cell-2 dev-cell" valign="top">
		<?=$contentDevSeleted;?>
	  </td>
	  
	  <td  class="cell-3 td-cell-3-result">
			
	  </td>
	</tr>
  </table>
  <div class="notis">
      <sup>1</sup><span class="text-notis">Важно, так как, иначе почта не придет.
          Обычно после @ должено совпадать с доменом.<br />
          Например так: admin@<b>shololad.ru</b><br />
          Однако так бывает не всегда. Зависит от настроек хостинга. Если на хостинге отправка писем идет через msmtp
          (виртуальная машина Битрикс, например), то нужно посмотреть
          его настройки(msmtp), а именно почту отправителя. Её и нужно заполнить в поле "От". Для публичных же хостинов, как правило достаточно,
          что бы, как указано выше, совпадение домена почты и сайта, на котором, предполагаетcя размещение формы отпросника/квиза.

      </span><br>
      <sup>2</sup><span> Имеет смысл если конструктор опросника/квиза находится на то же сайте где и предполагается размещение формы опросника</span>
      <br><sup>3</sup><span> Скачивать можно <b>ТОЛЬКО</b> после предварителного просмотра. Переименовать скачанные файлы: заменить дефис на точку<br>
          Далее:<br>
          1- Cкопировать разметку из html файла на странцу сайта, где нужна эта форма.Копировать нужно ИМЕННО в режиме HTML<br>
          2- На хостинг, где находится сайт php файл скопировать в папку на сайте относительно корня сайта /baform/showrezulthtml/<br>
          Должно получиться так: кореньСайта/baform/showrezulthtml/файлпхп.php
      </span>
  </div>
  <script>
	  /*var line = new LeaderLine(
		  document.getElementById('blockid-1'),
		  document.getElementById('blockid-4')
	  );
	  line.color = 'rgba(30, 130, 250, 0.5)';
      line.setOptions({startSocket: 'bottom', endSocket: 'top'});
      line.path = 'straight';
	  line.size = 2;
	  
	  var line = new LeaderLine(
		  document.getElementById('label-question-2-answer-1'),
		  document.getElementById('blockid-4')
	  );
	  line.color = 'rgba(30, 130, 250, 0.5)';
      line.setOptions({startSocket: 'top', endSocket: 'top'});
      line.path = 'straight';
	  
	  var line = new LeaderLine(
		  document.getElementById('label-question-2-answer-3'),
		  document.getElementById('blockid-4')
	  );
	  line.color = 'rgba(30, 130, 250, 0.5)';
      line.setOptions({startSocket: 'top', endSocket: 'top'});
      line.path = 'straight';
	  */
	  /*var line = new LeaderLine(
		  document.getElementById('blockid-1'),
		  document.getElementById('blockid-4')
	  );
	  line.color = 'rgba(30, 130, 250, 0.5)';
      line.setOptions({startSocket: 'bottom', endSocket: 'top'});
      line.path = 'straight';
	  line.size = 2;*/
	</script>
  <?}?>
  </body>
</html>