<!DOCTYPE html><?
$puthToCreater = 'baform';
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 clearStr($str) {
	$out = $str;
	$out = str_replace("\r\n", "", $out);
	$out = str_replace("\r", "", $out);
	$out = str_replace("\n", "", $out);
	return $out;
}
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;
                }
            }
        }
    }
	//echo "1--------------------------- ".$param;
    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])){
                
                $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/index.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);
					$ext =  pathinfo($val, PATHINFO_EXTENSION);
					if($ext == 'txt'){
					}else{
						continue;
					}
					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>
		
		<div class="dev-worap-button">
			<button class="w-100" onclick="return insertRezultFillForm();">&#128195; Вставить поле для вывода текстовго результата заполнения формы</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>
		<?
		$imagesHidden = 0;
		?>
		<input
                  class="no-images-show"
                  type="checkbox"
                  name="no_images_show"
                  value=""
                  <?
                  //checked="checked"
                  $checkedCofig =  getConfig("no_images_show");
                  $checked="";
                  if($checkedCofig == "Y"){
					  $imagesHidden = 1;
                      $checked = ' checked="checked"';
                  }
                  echo $checked;
                  ?>" /> <span class="f-text">Скрыть картинки (для текстовго дизайна без картинок)</span>		
<?if($imagesHidden === 1){?>
<style>				  
.wrap-answers-radio label img{
	display: none;
}
.wrap-answers-radio{
	display: block;
}
.wrap-answers-radio label{
	margin-bottom: 10px;
    display: flex;
    flex-direction: row;
}
.wr-text-circle-dev, .wrap-block-connect{
	width: 48%;
}
</style>
<?}?>
		<div class="wrap-animate-config">
			  <div class="f-text">Тема для дизайна:</div><?
				$tpl = getConfig("select_template");
				//echo "5---- ".$tpl;
			  ?>
			  <select name="template" class="select-template" value="">
				  <?
				  
				  $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>
			  <?if($tpl == 'animate_effects'){
					$globaEffectOut = getConfig("effectDis");
					if(empty($globaEffectOut)){
						$globaEffectOut = '';
					}
					
					$globaEffectIn = getConfig("effectApp");
					if(empty($globaEffectIn)){
						$globaEffectIn = '';
					}
					
					$globalSpeedDis = getConfig("speedDis");
					if(empty($globalSpeedDis)){
						$globalSpeedDis = 0.5;
					}
					$globalSpeedApp = getConfig("speedApp");
					if(empty($globalSpeedApp)){
						$globalSpeedApp = 0.5;
					}
					
					$zaderjkaApp = getConfig("zaderjkaApp");
					if(empty($zaderjkaApp)){
						$zaderjkaApp = 0;
					}
					
					$globalDisApp = getConfig("strDis");
					if(empty($globalDisApp)){
						$globalDisApp = "";
					}
					$globalApp = getConfig("strApp");
					if(empty($globalApp)){
						$globalApp = "";
					}
					//echo $globalDisApp;
					$globalDisApp = clearStr($globalDisApp);
					$globalApp = clearStr($globalApp);
				  ?>
				  <script>
					var globaEffectOut = "<?=$globaEffectOut?>";
					var globaEffectIn = "<?=$globaEffectIn;?>";
					var globalSpeedDis = "<?=$globalSpeedDis?>";
					var globalSpeedApp = "<?=$globalSpeedApp?>";
					var globalDisApp = "<?=$globalDisApp?>";//Сгенерированнй стиль Исчезновение
					var globalApp = "<?=$globalApp?>";//Сгенерированнй стиль Появление
					var zaderjkaApp = "<?=$zaderjkaApp?>";
				  </script>
				<div class="select-animate-config">
				  СПРАВА откройте панель инструментов для установки требуемого эффекта анимации для появления/исчезновения шага формы<br >
				  <div class="disappeared">
						<div class="disappeared-text">Эффект исчезновения: <span class="index-text-disappeared-rus"></span></div>
						<div class="disappeared-img"><img src="/<?=$puthToCreater?>/help.png"></div>
				  </div>
				  <div class="appearance-zaderjka">
				  <input 
				  onchange="return change_zaderjka();"
				  type="number" max="10" step="0.1" name="zaderjka" class="zaderjka" value="0" /> Задержка появления следующего шага.
				  </div>
				  <div class="appearance">
						<div class="appearance-text">Эффект появления: <span class="index-text-appearance-rus"></span></div>
						<div class="appearance-img"><img src="/<?=$puthToCreater?>/help.png"></div>
				  </div>
				  <div class="rezult-animate">
					<div class="rezult-animate-img">
						<div class="wrap-rezult-step1">
							<div class="rezult-step1-text">Шаг № 1</div>
						</div>
						<div class="wrap-rezult-step2">
							<div class="rezult-step2-text">Шаг № 2</div>
						</div>
					</div>
					<div class="rezult-animate-text-show">
						<a href="javascript:void(0);" onclick="return showRezultAnimate();">Посмотреть анимацию смены шагов</a>
					</div>
				  </div>
				  <script src=<?echo "/".$puthToCreater."/animate_effects.js";?>></script>
				  <script>
					$(".zaderjka").val(zaderjkaApp);
					$(".s_speed").val(globalSpeedApp);
					var textIn = $("label[for='" + globaEffectIn + "']").text();
					$(".index-text-appearance-rus").html(textIn);
					
					var textOut = $("label[for='" + globaEffectOut + "']").text();
					$(".index-text-disappeared-rus").html(textOut);
					
					//jQuery("input#" + globaEffectIn).click();
					//jQuery("input#" + globaEffectIn).change();
					jQuery("input#" + globaEffectIn).prop("checked", true);
					
					$(".s_speed").val(globalSpeedDis);
					//$("input#" + globaEffectOut).click();
					$("input#" + globaEffectOut).prop("checked", true);
					
				  </script>
				  <style>
					.wrap-animate-config{
						border: 1px solid #333;
						padding: 5px;
						border-radius: 4px;
						background-color: aliceblue;
						margin-top: 15px;
					}
				  </style>
				</div>  
			 <?}?>
		 </div>
	  </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>
  <?}?>
  </body>
</html>