Your IP : 18.191.200.21


Current Path : /home/bitrix/ext_www/dev.klimatlend.ua/bitrix/modules/learning/admin/
Upload File :
Current File : /home/bitrix/ext_www/dev.klimatlend.ua/bitrix/modules/learning/admin/learn_test_edit.php

<?
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");

if (!CModule::IncludeModule('learning'))
{
	require($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_admin_after.php'); // second system's prolog

	if (IsModuleInstalled('learning') && defined('LEARNING_FAILED_TO_LOAD_REASON'))
		echo LEARNING_FAILED_TO_LOAD_REASON;
	else
		CAdminMessage::ShowMessage(GetMessage('LEARNING_MODULE_NOT_FOUND'));

	require($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/epilog_admin.php');	// system's epilog
	exit();
}

require_once($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/learning/prolog.php");
IncludeModuleLangFile(__FILE__);

ClearVars();

$message = null;
$bVarsFromForm = false;
$ID = intval($ID);
$COURSE_ID = intval($COURSE_ID);

$aTabs = array(
	array("DIV" => "edit1", "TAB" => GetMessage('LEARNING_TEST'), "ICON"=>"main_user_edit", "TITLE"=>GetMessage('LEARNING_TEST_TITLE')),
	array("DIV" => "edit2", "TAB" => GetMessage('LEARNING_DESC'), "ICON"=>"main_user_edit", "TITLE"=>GetMessage('LEARNING_DESC_TITLE')),
	array("DIV" => "edit3", "TAB" => GetMessage('LEARNING_MARKS'), "ICON"=>"main_user_edit", "TITLE"=>GetMessage('LEARNING_MARKS_TITLE')),
);
$tabControl = new CAdminForm("testTabControl", $aTabs);


$isReadAccess         = false;
$isCreateOrEditAccess = false;
$isBtnsDisabled       = true;

$oAccess = CLearnAccess::GetInstance($USER->GetID());
$linkedLessonId = CCourse::CourseGetLinkedLesson ($COURSE_ID);

if ($linkedLessonId !== false)
{
	if ($oAccess->IsLessonAccessible ($linkedLessonId, CLearnAccess::OP_LESSON_READ))
		$isReadAccess = true;

	if ($oAccess->IsLessonAccessible ($linkedLessonId, CLearnAccess::OP_LESSON_WRITE))
	{
		$isReadAccess         = true;
		$isCreateOrEditAccess = true;
		$isBtnsDisabled       = false;
	}
}

if ($isReadAccess === false)
{
	$APPLICATION->SetTitle(GetMessage('LEARNING_TESTS'));
	require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");

	$aContext = array(
		array(
			"ICON" => "btn_list",
			"TEXT"=>GetMessage("LEARNING_BACK_TO_ADMIN"),
			"LINK"=>"learn_unilesson_admin.php?lang=" . LANG . '&PARENT_LESSON_ID=-1' . GetFilterParams("filter_"),
			"TITLE"=>GetMessage("LEARNING_BACK_TO_ADMIN")
		),
	);
	$context = new CAdminContextMenu($aContext);
	$context->Show();

	CAdminMessage::ShowMessage(GetMessage("LEARNING_BAD_COURSE"));

	require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");
	die();
}


$arNewIDs = array();
$nextNum = 0;

if ($_SERVER["REQUEST_METHOD"] == "POST" && strlen($_POST["Update"])>0 && check_bitrix_sessid() && $isCreateOrEditAccess)
{
	$test = new CTest;

	foreach($_POST as $key=>$val)
	{
		if (substr($key, 0, 7) == "N_MARK_")
		{
			$arNewIDs[] = intval(substr($key, 7));
		}
	}
	if (count($arNewIDs) > 0)
		$nextNum = max($arNewIDs);

	$QUESTIONS_AMOUNT = (intval(${"QUESTIONS_AMOUNT_".$QUESTIONS_FROM})>0 ? intval(${"QUESTIONS_AMOUNT_".$QUESTIONS_FROM}) : 0);
	$QUESTIONS_FROM_ID = (intval(${"QUESTIONS_FROM_ID_".$QUESTIONS_FROM})>0 ? intval(${"QUESTIONS_FROM_ID_".$QUESTIONS_FROM}) : 0);

	if ($CURRENT_INDICATION == "Y")
	{
		$CURRENT_INDICATION =
			($CURRENT_INDICATION_PERCENT == "Y" ? 1 : 0) +
			($CURRENT_INDICATION_MARK == "Y" ? 2 : 0);
	}
	else
	{
		$CURRENT_INDICATION = 0;
	}

	if ($FINAL_INDICATION == "Y")
	{
		$FINAL_INDICATION =
			($FINAL_INDICATION_CORRECT_COUNT == "Y" ? 1 : 0) +
			($FINAL_INDICATION_SCORE == "Y" ? 2 : 0) +
			($FINAL_INDICATION_MARK == "Y" ? 4 : 0) +
			($FINAL_INDICATION_MESSAGE == "Y" ? 8 : 0);
	}
	else
	{
		$FINAL_INDICATION = 0;
	}

	$MIN_TIME_BETWEEN_ATTEMPTS = $MIN_TIME_BETWEEN_ATTEMPTS_D * 60 * 24 + $MIN_TIME_BETWEEN_ATTEMPTS_H * 60 + $MIN_TIME_BETWEEN_ATTEMPTS_M;

	$NEXT_QUESTION_ON_ERROR = ($SHOW_ERRORS == "Y" && $NEXT_QUESTION_ON_ERROR == "N" && $PASSAGE_TYPE == "2") ? "N" : "Y";

	$arFields = Array(
		"ACTIVE" => $ACTIVE,
		"COURSE_ID" => $COURSE_ID,
		"NAME" => $NAME,
		"CODE" => $CODE,
		"SORT" => $SORT,
		"DESCRIPTION" => $DESCRIPTION,
		"DESCRIPTION_TYPE" => $DESCRIPTION_TYPE,

		"TIME_LIMIT" => $TIME_LIMIT,
		"ATTEMPT_LIMIT" => $ATTEMPT_LIMIT,
		"COMPLETED_SCORE" => $COMPLETED_SCORE,

		"QUESTIONS_FROM" => $QUESTIONS_FROM,
		"QUESTIONS_AMOUNT" => $QUESTIONS_AMOUNT,
		"QUESTIONS_FROM_ID" => $QUESTIONS_FROM_ID,

		"RANDOM_QUESTIONS" => $RANDOM_QUESTIONS,
		"RANDOM_ANSWERS" => $RANDOM_ANSWERS,

		"APPROVED" => $APPROVED,
		"INCLUDE_SELF_TEST" => $INCLUDE_SELF_TEST,

		"PASSAGE_TYPE" => $PASSAGE_TYPE,

		"PREVIOUS_TEST_ID" => $PREVIOUS_TEST_ID,
		"PREVIOUS_TEST_SCORE" => $PREVIOUS_TEST_SCORE,

		"INCORRECT_CONTROL" => $INCORRECT_CONTROL,

		"CURRENT_INDICATION" => $CURRENT_INDICATION,
		"FINAL_INDICATION" => $FINAL_INDICATION,

		"SHOW_ERRORS" => $SHOW_ERRORS,
		"NEXT_QUESTION_ON_ERROR" => $NEXT_QUESTION_ON_ERROR,

		"MIN_TIME_BETWEEN_ATTEMPTS" => $MIN_TIME_BETWEEN_ATTEMPTS,
	);

	if (strlen($arFields["COMPLETED_SCORE"]) <=0)
	{
		unset($arFields["COMPLETED_SCORE"]);
		$arFields["APPROVED"] = "N";
	}

	if (intval($arFields["PREVIOUS_TEST_ID"]) <= 0)
	{
		$arFields["PREVIOUS_TEST_ID"] = false;
	}
	if (strlen($arFields["PREVIOUS_TEST_SCORE"]) <=0)
	{
		$arFields["PREVIOUS_TEST_SCORE"] = 0;
	}

	$DB->StartTransaction();

	if($ID>0)
	{
		$actionType = "update";
		$res = $test->Update($ID, $arFields);
	}
	else
	{
		$actionType = "add";
		$ID = $test->Add($arFields);
		$res = ($ID>0);
	}

	if(!$res)
	{
		if($e = $APPLICATION->GetException())
			$message = new CAdminMessage(GetMessage("LEARNING_ERROR"), $e);
		$bVarsFromForm = true;
	}
	else
	{
		//Marks
		$marks = CLTestMark::GetList(Array(),Array("TEST_ID" => $ID));

		$arMarks = $arScores = array();

		while ($m = $marks->GetNext())
		{
			//delete?
			if (${"MARK_".$m["ID"]."_DEL"} == "Y")
			{
					if(!CLTestMark::Delete($m["ID"]))
					{
						$message = new CAdminMessage(Array("MESSAGE" => GetMessage("LEARNING_DELETE_ERROR").$m["ID"]));
						$bVarsFromForm = true;
					}
			}

			if(in_array(${"SCORE_".$m["ID"]}, $arScores))
			{
				$message = new CAdminMessage(Array("MESSAGE" =>  str_replace("##SCORE##", ${"SCORE_".$m["ID"]}, GetMessage("LEARNING_SCORE_EXISTS_ERROR"))));
				$bVarsFromForm = true;
			}
			elseif(in_array(${"MARK_".$m["ID"]}, $arMarks))
			{
				$message = new CAdminMessage(Array("MESSAGE" => str_replace("##MARK##", ${"MARK_".$m["ID"]}, GetMessage("LEARNING_MARK_EXISTS_ERROR"))));
				$bVarsFromForm = true;
			}
			else
			{
				if (${"MARK_".$m["ID"]."_DEL"} != "Y")
				{
					$arMarks[] = ${"MARK_".$m["ID"]};
					$arScores[] = ${"SCORE_".$m["ID"]};
				}

				$arFields = Array(
					"TEST_ID" => $ID,
					"SCORE" => ${"SCORE_".$m["ID"]},
					"MARK" => ${"MARK_".$m["ID"]},
					"DESCRIPTION" => ${"DESCRIPTION_".$m["ID"]},
				);

				$mrk = new CLTestMark;
				$res = $mrk->Update($m["ID"], $arFields);
				if (!$res)
				{
					$message = new CAdminMessage(Array("MESSAGE" => GetMessage("LEARNING_SAVE_ERROR").$m["ID"]));
					$bVarsFromForm = true;
				}
			}
		}

		//add new
		foreach ($arNewIDs as $i)
		{
			if (strlen(${"N_MARK_".$i})<=0 && strlen(${"N_SCORE_".$i})<=0) continue;

			if(in_array(${"N_SCORE_".$i}, $arScores))
			{
				$message = new CAdminMessage(Array("MESSAGE" => str_replace("##SCORE##", ${"N_SCORE_".$i}, GetMessage("LEARNING_SCORE_EXISTS_ERROR"))));
				$bVarsFromForm = true;
			}
			elseif(in_array(${"N_MARK_".$i}, $arMarks))
			{
				$message = new CAdminMessage(Array("MESSAGE" => str_replace("##MARK##", ${"N_MARK_".$i}, GetMessage("LEARNING_MARK_EXISTS_ERROR"))));
				$bVarsFromForm = true;
			}
			else
			{
				$arMarks[] = ${"N_MARK_".$i};
				$arScores[] = ${"N_SCORE_".$i};
				$arFields = Array(
					"SCORE" => ${"N_SCORE_".$i},
					"MARK" => ${"N_MARK_".$i},
					"DESCRIPTION" => ${"N_DESCRIPTION_".$i},
					"TEST_ID" => $ID,
				);

				$mark = new CLTestMark;
				$MarkID = $mark->Add($arFields);
				if (intval($MarkID)<=0)
				{
					if ($e = $APPLICATION->GetException())
						$message = new CAdminMessage(GetMessage("LEARNING_ERROR"), $e);
					$bVarsFromForm = true;
				}
			}
		}

		if (sizeof($arScores) && !in_array(100, $arScores))
		{
			$message = new CAdminMessage(Array("MESSAGE" => GetMessage("LEARNING_MAX_MARK_ERROR")));
			$bVarsFromForm = true;
		}

	}

	//Redirect
	if (!$bVarsFromForm)
	{
		$DB->Commit();

		if(strlen($apply)<=0)
		{
			if($from == "learn_admin")
			{
				LocalRedirect("/bitrix/admin/learn_unilesson_admin.php?lang=".LANG
					. '&PARENT_LESSON_ID=' . ($_GET['PARENT_LESSON_ID'] + 0)
					. '&LESSON_PATH=' . urlencode($_GET['LESSON_PATH'])
					."&".GetFilterParams("filter_", false));
			}
			elseif (strlen($return_url)>0)
			{
				if(strpos($return_url, "#TEST_ID#")!==false)
				{
					$return_url = str_replace("#TEST_ID#", $ID, $return_url);
				}
				LocalRedirect($return_url);
			}
			else
			{
				LocalRedirect("/bitrix/admin/learn_test_admin.php?lang=".LANG
					. "&COURSE_ID=" . $COURSE_ID
					. '&PARENT_LESSON_ID=' . ($_GET['PARENT_LESSON_ID'] + 0)
					. '&LESSON_PATH=' . urlencode($_GET['LESSON_PATH'])
					.GetFilterParams("filter_", false));
			}
		}
		LocalRedirect("/bitrix/admin/learn_test_edit.php?lang=" . LANG 
			. "&COURSE_ID=" . $COURSE_ID
			. '&PARENT_LESSON_ID=' . ($_GET['PARENT_LESSON_ID'] + 0)
			. '&LESSON_PATH=' . urlencode($_GET['LESSON_PATH'])
			. "&ID=" . $ID
			."&tabControl_active_tab=".urlencode($tabControl_active_tab).GetFilterParams("filter_", false));

	}
	else
	{
		if ($actionType == "add")
		{
			$ID = 0;
		}
		$DB->Rollback();
	}
}

if($ID>0)
	$APPLICATION->SetTitle(str_replace("#ID#", $ID, GetMessage("LEARNING_EDIT_TITLE2")));
else
	$APPLICATION->SetTitle(GetMessage("LEARNING_EDIT_TITLE1"));

//Defaults
$str_ACTIVE = "Y";
$str_SORT = "500";
//$str_APPROVED = "Y";
$str_COMPLETED_SCORE = "95";
//$str_INCLUDE_SELF_TEST = "N";
$str_RANDOM_QUESTIONS = "Y";
$str_RANDOM_ANSWERS="Y";
$str_QUESTIONS_FROM="A";
$str_QUESTIONS_AMOUNT = "0";
$str_TIME_LIMIT = "0";
$str_ATTEMPT_LIMIT = "0";
$str_DESCRIPTION_TYPE = "text";
$str_SKIP_QUESTION = "N";
$str_FINAL_RESPONSE = "Y";
$str_PASSAGE_TYPE = "0";
$str_PREVIOUS_TEST_ID = "0";
$str_PREVIOUS_TEST_SCORE = "95";
$str_INCORRECT_CONTROL = "N";
$str_CURRENT_INDICATION_PERCENT = "N";
$str_CURRENT_INDICATION_MARK = "N";
$str_CURRENT_INDICATION = "N";
$str_FINAL_INDICATION_CORRECT_COUNT = "N";
$str_FINAL_INDICATION_SCORE = "N";
$str_FINAL_INDICATION_MARK = "N";
$str_FINAL_INDICATION_MESSAGE = "N";
$str_FINAL_INDICATION = "N";
$str_SHOW_ERRORS = "N";
$str_NEXT_QUESTION_ON_ERROR = "Y";

$test = new CTest;
$res = $test->GetByID($ID);
if(!$res->ExtractFields("str_"))
{
	$ID = 0;
}
else
{
	if ($str_CURRENT_INDICATION > 0)
	{
		$str_CURRENT_INDICATION_PERCENT = ($str_CURRENT_INDICATION & 1) ? "Y" : "N";
		$str_CURRENT_INDICATION_MARK = ($str_CURRENT_INDICATION & 2) >> 1 ? "Y" : "N";
		$str_CURRENT_INDICATION = "Y";
	}

	if ($str_FINAL_INDICATION > 0)
	{
		$str_FINAL_INDICATION_CORRECT_COUNT = ($str_FINAL_INDICATION & 1) ? "Y" : "N";
		$str_FINAL_INDICATION_SCORE = ($str_FINAL_INDICATION & 2) >> 1 ? "Y" : "N";
		$str_FINAL_INDICATION_MARK = ($str_FINAL_INDICATION & 4) >> 2 ? "Y" : "N";
		$str_FINAL_INDICATION_MESSAGE = ($str_FINAL_INDICATION & 8) >> 3 ? "Y" : "N";
		$str_FINAL_INDICATION = "Y";
	}

	$str_MIN_TIME_BETWEEN_ATTEMPTS_D = floor($str_MIN_TIME_BETWEEN_ATTEMPTS / (60 * 24));
	$str_MIN_TIME_BETWEEN_ATTEMPTS_H = floor(($str_MIN_TIME_BETWEEN_ATTEMPTS - $str_MIN_TIME_BETWEEN_ATTEMPTS_D * 60 * 24) / 60);
	$str_MIN_TIME_BETWEEN_ATTEMPTS_M = $str_MIN_TIME_BETWEEN_ATTEMPTS - $str_MIN_TIME_BETWEEN_ATTEMPTS_D * 60 * 24 - $str_MIN_TIME_BETWEEN_ATTEMPTS_H * 60;
}

if($bVarsFromForm)
{
	$ACTIVE = ($ACTIVE != "Y"? "N":"Y");
	$APPROVED = ($APPROVED != "Y"? "N":"Y");
	$RANDOM_QUESTIONS = ($RANDOM_QUESTIONS != "Y"? "N":"Y");
	$RANDOM_ANSWERS = ($RANDOM_ANSWERS != "Y"? "N":"Y");
	$INCORRECT_CONTROL = ($INCORRECT_CONTROL != "Y"? "N":"Y");
	$CURRENT_INDICATION = ($CURRENT_INDICATION == 0 ? "N":"Y");
	$FINAL_INDICATION = ($FINAL_INDICATION == 0 ? "N":"Y");

	$SHOW_ERRORS = ($SHOW_ERRORS != "Y"? "N":"Y");
	$NEXT_QUESTION_ON_ERROR = ($NEXT_QUESTION_ON_ERROR != "Y"? "N":"Y");
	$DB->InitTableVarsForEdit("b_learn_test", "", "str_");

	$str_CURRENT_INDICATION_PERCENT = ($CURRENT_INDICATION_PERCENT != "Y"? "N":"Y");
	$str_CURRENT_INDICATION_MARK = ($CURRENT_INDICATION_MARK != "Y"? "N":"Y");
	$str_FINAL_INDICATION_CORRECT_COUNT = ($FINAL_INDICATION_CORRECT_COUNT != "Y"? "N":"Y");
	$str_FINAL_INDICATION_SCORE = ($FINAL_INDICATION_SCORE != "Y"? "N":"Y");
	$str_FINAL_INDICATION_MARK = ($FINAL_INDICATION_MARK != "Y"? "N":"Y");
	$str_FINAL_INDICATION_MESSAGE = ($FINAL_INDICATION_MESSAGE != "Y"? "N":"Y");

	$str_MIN_TIME_BETWEEN_ATTEMPTS_D = intval($MIN_TIME_BETWEEN_ATTEMPTS_D);
	$str_MIN_TIME_BETWEEN_ATTEMPTS_H = intval($MIN_TIME_BETWEEN_ATTEMPTS_H);
	$str_MIN_TIME_BETWEEN_ATTEMPTS_M = intval($MIN_TIME_BETWEEN_ATTEMPTS_M);
}

require($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/prolog_admin_after.php");

if ($message)
	echo $message->Show();

$aContext = array(
	array(
		"ICON"  => "btn_list",
		"TEXT"  => GetMessage("MAIN_ADMIN_MENU_LIST"),
		"LINK"  => "learn_test_admin.php?lang=" . LANG 
			. '&PARENT_LESSON_ID=' . ($_GET['PARENT_LESSON_ID'] + 0)
			. '&LESSON_PATH=' . htmlspecialcharsbx($_GET['LESSON_PATH'])
			. "&COURSE_ID=" . $COURSE_ID
			. GetFilterParams("filter_"),
		"TITLE" => GetMessage("MAIN_ADMIN_MENU_LIST")
	),
);


if ($ID > 0)
{
	$aContext[] = 	array(
		"ICON" => "btn_new",
		"TEXT"=>GetMessage("MAIN_ADMIN_MENU_CREATE"),
		"LINK"=>"learn_test_edit.php?lang=" . LANG 
			. "&COURSE_ID=" . $COURSE_ID 
			. '&PARENT_LESSON_ID=' . ($_GET['PARENT_LESSON_ID'] + 0)
			. '&LESSON_PATH=' . htmlspecialcharsbx($_GET['LESSON_PATH'])
			. GetFilterParams("filter_"),

		"TITLE"=>GetMessage("LEARNING_ADD")
	);

	$returnUrl = "/bitrix/admin/learn_test_admin.php?lang=" . LANG
		. "&amp;COURSE_ID=" . $COURSE_ID
		. '&amp;PARENT_LESSON_ID=' . ($_GET['PARENT_LESSON_ID'] + 0)
		. '&amp;LESSON_PATH=' . urlencode($_GET['LESSON_PATH'])
		. GetFilterParams("filter_", false);


	$aContext[] = 	array(
		"ICON" => "btn_delete",
		"TEXT"=>GetMessage("MAIN_ADMIN_MENU_DELETE"),
		"LINK"	=> "javascript:if(confirm('".GetMessage("LEARNING_CONFIRM_DEL_MESSAGE")."'))window.location='learn_test_admin.php?lang=".LANG
			. "&COURSE_ID=" . $COURSE_ID . "&action=delete&ID=" . $ID . "&" . bitrix_sessid_get() . urlencode(GetFilterParams("filter_", false)) 
			. '&return_url=' . urlencode(urlencode($returnUrl)) . "';",
	);

}

$context = new CAdminContextMenu($aContext);
$context->Show();
?>

<?php $tabControl->BeginEpilogContent();?>
	<?=bitrix_sessid_post()?>
	<?echo GetFilterHiddens("find_");?>
	<input type="hidden" name="Update" value="Y">
	<input type="hidden" name="ID" value="<?echo $ID?>">
	<input type="hidden" name="COURSE_ID" value="<?echo $COURSE_ID?>">
	<input type="hidden" name="from" value="<?echo htmlspecialcharsbx($from)?>">
	<?if(strlen($return_url)>0):?><input type="hidden" name="return_url" value="<?=htmlspecialcharsbx($return_url)?>"><?endif?>
<?php $tabControl->EndEpilogContent();?>
<?$tabControl->Begin();?>
<?$tabControl->BeginNextFormTab();?>
<!-- ID -->
<?php $tabControl->BeginCustomField("ID", "ID", false);?>
	<?if($ID>0):?>
		<tr>
			<td><?echo $tabControl->GetCustomLabelHTML()?>:</td>
			<td><?=$str_ID?></td>
		</tr>
	<? endif; ?>
<?php $tabControl->EndCustomField("ID");?>
<!-- Timestamp_X -->
<?php $tabControl->BeginCustomField("TIMESTAMP_X", GetMessage("LEARNING_LAST_UPDATE"), false);?>
	<?if($ID>0):?>
		<tr>
			<td><?echo $tabControl->GetCustomLabelHTML()?>:</td>
			<td><?=$str_TIMESTAMP_X?></td>
		</tr>
	<? endif; ?>
<?php $tabControl->EndCustomField("TIMESTAMP_X");?>
<?php $tabControl->BeginCustomField("ACTIVE", GetMessage("LEARNING_ACTIVE"), false);?>
<!-- Active -->
	<tr>
		<td><?echo $tabControl->GetCustomLabelHTML()?>:</td>
		<td><input type="checkbox" name="ACTIVE" value="Y"<?if($str_ACTIVE=="Y")echo " checked"?>></td>
	</tr>
<?php $tabControl->EndCustomField("ACTIVE");?>
<?php $tabControl->BeginCustomField("NAME", GetMessage("LEARNING_NAME"), false);?>
	<tr class="adm-detail-required-field">
		<td><?echo $tabControl->GetCustomLabelHTML()?>:</td>
		<td valign="top">
			<input type="text" name="NAME" size="50" maxlength="255" value="<?echo $str_NAME?>">
		</td>
	</tr>
<?php $tabControl->EndCustomField("NAME");?>
<?php $tabControl->BeginCustomField("SORT", GetMessage("LEARNING_SORT"), false);?>
<!-- Sort -->
	<tr>
		<td><? echo $tabControl->GetCustomLabelHTML()?>:</td>
		<td>
			<input type="text" name="SORT" size="10" maxlength="10" value="<?echo $str_SORT?>">
		</td>
	</tr>
<?php $tabControl->EndCustomField("SORT");?>
<?php $tabControl->BeginCustomField("QUESTIONS_FROM", GetMessage("LEARNING_QUESTIONS_FROM"), false);?>
	<tr>
		<td valign="top"><? echo $tabControl->GetCustomLabelHTML()?>:</td>
		<td>
		<table>
			<tr>
				<td colspan="2"><input type="radio" name="QUESTIONS_FROM" id="QUESTIONS_FROM_A" value="A"<?if($str_QUESTIONS_FROM=="A" && intval($str_QUESTIONS_AMOUNT)==0)echo " checked"?>  onClick="OnChangeAnswer('');"><label for="QUESTIONS_FROM_A"><? echo GetMessage("LEARNING_QUESTIONS_FROM_ALL")?></label></td>
			</tr>

			<?php
			$linkedLessonId = CCourse::CourseGetLinkedLesson ($COURSE_ID);
			if ($linkedLessonId === false)
				throw new Exception();

			$oTree = CLearnLesson::GetTree ($linkedLessonId);

			$arSubLessons = $oTree->GetTreeAsList();



			// because of some troubles with backward compatibility, some clients can have QUESTIONS_FROM === 'H'
			if($str_QUESTIONS_FROM=="H")
			{
				?>
				<input style="display:none;" type="radio" name="QUESTIONS_FROM" value="H" checked="checked">
				<input type="hidden" name="QUESTIONS_FROM_ID_H" value="<?php echo $str_QUESTIONS_FROM_ID; ?>">
				<?php
			}


			?>
			<tr>
				<td colspan="2">
					<input type="radio" name="QUESTIONS_FROM" id="QUESTIONS_FROM_R" value="R"
						<?php
						if ( ($str_QUESTIONS_FROM=="R") && (intval($str_QUESTIONS_AMOUNT)==0) )
							echo " checked ";
						?>  onclick="OnChangeAnswer('R');"><label for="QUESTIONS_FROM_R"><?php echo GetMessage("LEARNING_QUESTIONS_FROM_ALL_LESSON_WITH_SUBLESSONS"); ?></label>
					<select name="QUESTIONS_FROM_ID_R">
						<?php
						foreach ($arSubLessons as $key => $arSubLesson)
						{
							if ( ($str_QUESTIONS_FROM=="R") && ($str_QUESTIONS_FROM_ID == $arSubLesson['LESSON_ID']) )
								$htmlSelected = ' selected="selected" ';
							else
								$htmlSelected = ' ';

							?>
							<option value="<?php echo $arSubLesson['LESSON_ID']; ?>" 
								<?php echo $htmlSelected; ?>><?php 
								echo str_repeat('&nbsp;.&nbsp;', $arSubLesson['#DEPTH_IN_TREE']) 
									. htmlspecialcharsbx($arSubLesson['NAME']);
							?></option>
							<?php
						}
						?>
					</select>
				</td>
			</tr>
			<tr>
				<td colspan="2">
					<input type="radio" name="QUESTIONS_FROM" id="QUESTIONS_FROM_S" value="S"
						<?php
						if ( ($str_QUESTIONS_FROM=="S") && (intval($str_QUESTIONS_AMOUNT)==0) )
							echo " checked ";
						?>  onclick="OnChangeAnswer('S');"><label for="QUESTIONS_FROM_S"><?php echo GetMessage("LEARNING_QUESTIONS_FROM_ALL_LESSON"); ?></label>
					<select name="QUESTIONS_FROM_ID_S">
						<?php
						foreach ($arSubLessons as $key => $arSubLesson)
						{
							if ( ($str_QUESTIONS_FROM=="S") && ($str_QUESTIONS_FROM_ID == $arSubLesson['LESSON_ID']) )
								$htmlSelected = ' selected="selected" ';
							else
								$htmlSelected = ' ';

							?>
							<option value="<?php echo $arSubLesson['LESSON_ID']; ?>" 
								<?php echo $htmlSelected; ?>><?php 
								echo str_repeat('&nbsp;.&nbsp;', $arSubLesson['#DEPTH_IN_TREE']) 
									. htmlspecialcharsbx($arSubLesson['NAME']);
							?></option>
							<?php
						}
						?>
					</select>
				</td>
			</tr>
			
			<tr>
				<td colspan="2"><input type="radio" name="QUESTIONS_FROM" id="QUESTIONS_FROM_A2" value="A"<?if($str_QUESTIONS_FROM=="A" && intval($str_QUESTIONS_AMOUNT)!=0)echo " checked"?> onclick="OnChangeAnswer('A');"><label for="QUESTIONS_FROM_A2"><input type="text" name="QUESTIONS_AMOUNT_A" onclick="return false;" size="2" value="<?echo ($str_QUESTIONS_FROM=="A" && $str_QUESTIONS_AMOUNT!=0? $str_QUESTIONS_AMOUNT : "")?>">&nbsp;<? echo GetMessage("LEARNING_QUESTIONS_FROM_COURSE")?></label></td>
			</tr>

			<tr>
				<td><input type="radio" name="QUESTIONS_FROM" id="QUESTIONS_FROM_C" value="C"<?if($str_QUESTIONS_FROM=="C")echo " checked"?> onclick="OnChangeAnswer('C');"><label for="QUESTIONS_FROM_C"><input type="text" name="QUESTIONS_AMOUNT_C" onclick="return false;" size="2" value="<?echo ($str_QUESTIONS_FROM=="C" ? $str_QUESTIONS_AMOUNT : "")?>">&nbsp;<? echo GetMessage("LEARNING_QUESTIONS_FROM_CHAPTERS")?></label></td>
			</tr>

			<tr>
				<td><input type="radio" name="QUESTIONS_FROM" id="QUESTIONS_FROM_L" value="L"<?if($str_QUESTIONS_FROM=="L")echo " checked"?> onclick="OnChangeAnswer('L');"><label for="QUESTIONS_FROM_L"><input type="text" name="QUESTIONS_AMOUNT_L" onclick="return false;" size="2" value="<?echo ($str_QUESTIONS_FROM=="L" ? $str_QUESTIONS_AMOUNT : "")?>">&nbsp;<? echo GetMessage("LEARNING_QUESTIONS_FROM_LESSONS")?></label></td>
			</tr>
		</table>
		<script type="text/javascript">
			<?
			if ($str_QUESTIONS_AMOUNT == '0' && $str_QUESTIONS_FROM != "S" && $str_QUESTIONS_FROM != "H" && $str_QUESTIONS_FROM != "R")
				$str = "";
			else
				$str = $str_QUESTIONS_FROM;
			?>

			var QUESTIONS_FROM = '<?=$str?>';


			function OnChangeAnswer(QUESTIONS_FROM)
			{
				var arFrom = new Array('A','L','C');

				for (var i=0; i<arFrom.length; i++)
				{
					if (arFrom[i] != QUESTIONS_FROM)
						document.forms['testTabControl_form'].elements['QUESTIONS_AMOUNT_'+arFrom[i]].disabled = true;
					else
						document.forms['testTabControl_form'].elements['QUESTIONS_AMOUNT_'+arFrom[i]].disabled = false;
				}

				var arFromID = new Array('S','H', 'R');

				for (var i=0; i<arFromID.length; i++)
				{
					if (document.forms['testTabControl_form'].elements['QUESTIONS_FROM_ID_'+arFromID[i]])
					{
						if (arFromID[i] != QUESTIONS_FROM)
							document.forms['testTabControl_form'].elements['QUESTIONS_FROM_ID_'+arFromID[i]].disabled = true;
						else
							document.forms['testTabControl_form'].elements['QUESTIONS_FROM_ID_'+arFromID[i]].disabled = false;
					}
				}

			}

			OnChangeAnswer(QUESTIONS_FROM);
		</script>
		</td>
	</tr>
<?php $tabControl->EndCustomField("QUESTIONS_FROM");?>
<?php $tabControl->BeginCustomField("INCLUDE_SELF_TEST", GetMessage("LEARNING_INCLUDE_SELF_TEST"), false);?>
	<tr>
		<td><? echo $tabControl->GetCustomLabelHTML()?>:</td>
		<td>
			<input type="checkbox" name="INCLUDE_SELF_TEST" value="Y"<?if($str_INCLUDE_SELF_TEST=="Y")echo " checked"?>>
		</td>
	</tr>
<?php $tabControl->EndCustomField("INCLUDE_SELF_TEST");?>
<?php $tabControl->BeginCustomField("RANDOM_QUESTIONS", GetMessage("LEARNING_RANDOM_QUESTIONS"), false);?>
	<tr>
		<td><? echo $tabControl->GetCustomLabelHTML()?>:</td>
		<td>
			<input type="checkbox" name="RANDOM_QUESTIONS" value="Y"<?if($str_RANDOM_QUESTIONS=="Y")echo " checked"?>>
		</td>
	</tr>
<?php $tabControl->EndCustomField("RANDOM_QUESTIONS");?>
<?php $tabControl->BeginCustomField("RANDOM_ANSWERS", GetMessage("LEARNING_RANDOM_ANSWERS"), false);?>
	<tr>
		<td><? echo $tabControl->GetCustomLabelHTML()?>:</td>
		<td>
			<input type="checkbox" name="RANDOM_ANSWERS" value="Y"<?if($str_RANDOM_ANSWERS=="Y")echo " checked"?>>
		</td>
	</tr>
<?php $tabControl->EndCustomField("RANDOM_ANSWERS");?>
<?php $tabControl->BeginCustomField("ATTEMPT_LIMIT", GetMessage("LEARNING_ATTEMPT_LIMIT"), false);?>
	<tr>
		<td><? echo $tabControl->GetCustomLabelHTML()?>:</td>
		<td>
			<input type="text" name="ATTEMPT_LIMIT" value="<?echo $str_ATTEMPT_LIMIT?>" size="3"> <? echo GetMessage("LEARNING_ATTEMPT_LIMIT_HINT")?>
		</td>
	</tr>
<?php $tabControl->EndCustomField("ATTEMPT_LIMIT");?>
<?php $tabControl->BeginCustomField("MIN_TIME_BETWEEN_ATTEMPTS", GetMessage("LEARNING_MIN_TIME_BETWEEN_ATTEMPTS"), false);?>
	<tr>
		<td><? echo $tabControl->GetCustomLabelHTML()?>:</td>
		<td>
			<input type="text" name="MIN_TIME_BETWEEN_ATTEMPTS_D" value="<?echo $str_MIN_TIME_BETWEEN_ATTEMPTS_D?>" size="3"> <? echo GetMessage("LEARNING_MIN_TIME_BETWEEN_ATTEMPTS_D")?> <input type="text" name="MIN_TIME_BETWEEN_ATTEMPTS_H" value="<?echo $str_MIN_TIME_BETWEEN_ATTEMPTS_H?>" size="3"> <? echo GetMessage("LEARNING_MIN_TIME_BETWEEN_ATTEMPTS_H")?> <input type="text" name="MIN_TIME_BETWEEN_ATTEMPTS_M" value="<?echo $str_MIN_TIME_BETWEEN_ATTEMPTS_M?>" size="3"> <? echo GetMessage("LEARNING_MIN_TIME_BETWEEN_ATTEMPTS_M")?>
		</td>
	</tr>
<?php $tabControl->EndCustomField("MIN_TIME_BETWEEN_ATTEMPTS");?>
<?php $tabControl->BeginCustomField("TIME_LIMIT", GetMessage("LEARNING_TIME_LIMIT"), false);?>
	<tr>
		<td><? echo $tabControl->GetCustomLabelHTML()?>:</td>
		<td>
			<input type="text" name="TIME_LIMIT" value="<?echo $str_TIME_LIMIT?>" size="3"> <? echo GetMessage("LEARNING_TIME_LIMIT_HINT")?>
		</td>
	</tr>
<?php $tabControl->EndCustomField("TIME_LIMIT");?>
<?php $tabControl->BeginCustomField("APPROVED", GetMessage("LEARNING_APPROVED"), false);?>
	<tr>
		<td><? echo $tabControl->GetCustomLabelHTML()?>:</td>
		<td>
			<input type="checkbox" name="APPROVED" value="Y"<?if($str_APPROVED=="Y")echo " checked"?> onclick="OnChangeApproved(this.checked);">
		</td>
	</tr>
<?php $tabControl->EndCustomField("APPROVED");?>
<?php $tabControl->BeginCustomField("COMPLETED_SCORE", GetMessage("LEARNING_COMPLETED_SCORE"), false);?>
	<tr>
		<td><? echo $tabControl->GetCustomLabelHTML()?>:</td>
		<td>
			<input type="text" name="COMPLETED_SCORE" size="3" maxlength="3" value="<?echo $str_COMPLETED_SCORE?>">
			<? echo GetMessage("LEARNING_COMPLETED_SCORE2")?>
		</td>
	</tr>
	<script type="text/javascript">
		function OnChangeApproved(val)
		{
			document.forms['testTabControl_form'].elements['COMPLETED_SCORE'].disabled = !val;
		}
		OnChangeApproved(<?=($str_APPROVED=="Y"?"true":"false")?>);
	</script>
<?php $tabControl->EndCustomField("COMPLETED_SCORE");?>
<?php $tabControl->BeginCustomField("PASSAGE_TYPE", GetMessage("LEARNING_PASSAGE_TYPE"), false);?>
	<tr>
		<td valign="top"><? echo $tabControl->GetCustomLabelHTML()?>:</td>
		<td>
			<table>
			<tr>
				<td valign="top"><input type="radio" name="PASSAGE_TYPE" id="PASSAGE_TYPE_0" value="0"<?if($str_PASSAGE_TYPE=="0")echo " checked"?> onclick="toggleNextQ();"></td>
				<td><label for="PASSAGE_TYPE_0"><?=GetMessage("LEARNING_PASSAGE_TYPE_0")?></label></td>
			</tr>
			<tr>
				<td valign="top"><input type="radio" name="PASSAGE_TYPE" id="PASSAGE_TYPE_1" value="1"<?if($str_PASSAGE_TYPE=="1")echo " checked"?> onclick="toggleNextQ();"></td>
				<td><label for="PASSAGE_TYPE_1"><?=GetMessage("LEARNING_PASSAGE_TYPE_1")?></label></td>
			</tr>
			<tr>
				<td valign="top"><input type="radio" name="PASSAGE_TYPE" id="PASSAGE_TYPE_2" value="2"<?if($str_PASSAGE_TYPE=="2")echo " checked"?> onclick="toggleNextQ();"></td>
				<td><label for="PASSAGE_TYPE_2"><?=GetMessage("LEARNING_PASSAGE_TYPE_2")?></label></td>
			</tr>
			</table>
		</td>
	</tr>
<?php $tabControl->EndCustomField("PASSAGE_TYPE");?>
<?php $tabControl->BeginCustomField("PREVIOUS_TEST", GetMessage("LEARNING_PREVIOUS_TEST_ID"), false);
	
	$PREVIOUS_TEST_COURSE_ID = null;
	$t = CTest::GetList(array(), array("ACTIVE" => "Y", 'ID' => $str_PREVIOUS_TEST_ID));
	if ($arData = $t->Fetch())
		$PREVIOUS_TEST_COURSE_ID = $arData['COURSE_ID'];

	?>
	<tr>
		<td><? echo $tabControl->GetCustomLabelHTML()?>:</td>
		<td valign="top">
		<script type="text/javascript">
			function filterTests()
			{
				var course = BX("PREVIOUS_TEST_COURSE_ID");
				var test = BX("PREVIOUS_TEST_ID");
				var iSelectIndex = 0;
				var needSelectedIndex = 0;

				while(test.options.length > 1)
				{
					test.options.remove(1);
				}
				for(var i = 0, count = sourceList.options.length; i < count; i++)
				{
					if(sourceList.options[i].getAttribute("data-course") == course.options[course.selectedIndex].value)
					{
						iSelectIndex = iSelectIndex + 1;
						var tmp = sourceList.options[i].cloneNode(true);

						var newElem = document.createElement("option");
						newElem.text = sourceList.options[i].innerHTML;
						newElem.value = sourceList.options[i].value;

						if (sourceList.options[i].index == sourceList.selectedIndex)
							needSelectedIndex = iSelectIndex;

						test.options.add(newElem);
					}
				}

				if (needSelectedIndex !== false)
					test.selectedIndex = needSelectedIndex;
			}
		</script>
		<select name="PREVIOUS_TEST_COURSE_ID" id="PREVIOUS_TEST_COURSE_ID" onchange="filterTests()">
			<?
			// was: $course = CCourse::GetList(array("SORT" => "ASC"), array("MIN_PERMISSION" => "W"));
			$course = CCourse::GetList(array("SORT" => "ASC"), array("ACCESS_OPERATIONS" => CLearnAccess::OP_LESSON_READ));
			while ($course->ExtractFields("f_"))
			{
				?><option value="<?echo $f_ID ?>" <?if (IntVal($f_ID)==$PREVIOUS_TEST_COURSE_ID || (!isset($PREVIOUS_TEST_COURSE_ID) && IntVal($f_ID)==$COURSE_ID)) echo "selected";?>><?echo $f_NAME ?></option><?
			}
			?>
		</select>
		<?$t = CTest::GetList(array(), array("ACTIVE" => "Y"));?>
		<select name="PREVIOUS_TEST_ID" id="PREVIOUS_TEST_ID" onchange="OnChangePreviousTest();">
			<option value="0">&lt;<? echo GetMessage("LEARNING_TEST_NO_DEPENDS")?>&gt;</option>
			<?
				while($t->ExtractFields("t_")):
					if (!isset($ID) || $ID != $t_ID):
			?>
					<option data-course="<?php echo intval($t_COURSE_ID)?>" value="<?echo $t_ID?>"<?if($str_PREVIOUS_TEST_ID == $t_ID)echo " selected"?>><?echo $t_NAME?></option>
			<?
					endif;
				endwhile;
			?>
		</select>
		<script type="text/javascript">
			var sourceList = BX("PREVIOUS_TEST_ID").cloneNode(true);
			sourceList.selectedIndex = BX("PREVIOUS_TEST_ID").selectedIndex;
			filterTests();
		</script>
		<? echo GetMessage("LEARNING_PREVIOUS_TEST_SCORE")?>
		<input type="text" name="PREVIOUS_TEST_SCORE" size="3" maxlength="3" value="<?echo $str_PREVIOUS_TEST_SCORE?>">
		<? echo GetMessage("LEARNING_PREVIOUS_TEST_SCORE2")?>
		</td>
	</tr>
	<script type="text/javascript">
		function OnChangePreviousTest()
		{
			document.forms['testTabControl_form'].elements['PREVIOUS_TEST_SCORE'].disabled = !document.forms['testTabControl_form'].elements['PREVIOUS_TEST_ID'].selectedIndex;
		}
		OnChangePreviousTest();
	</script>
<?php $tabControl->EndCustomField("PREVIOUS_TEST");?>
<?php $tabControl->BeginCustomField("INCORRECT_CONTROL", GetMessage("LEARNING_INCORRECT_CONTROL"), false);?>
	<tr>
		<td><? echo $tabControl->GetCustomLabelHTML()?>:</td>
		<td>
			<input type="checkbox" name="INCORRECT_CONTROL" value="Y"<?if($str_INCORRECT_CONTROL=="Y")echo " checked"?>>
		</td>
	</tr>
<?php $tabControl->EndCustomField("INCORRECT_CONTROL");?>
<?php $tabControl->BeginCustomField("CURRENT_INDICATION", GetMessage("LEARNING_CURRENT_INDICATION"), false);?>
	<tr>
		<td valign="top"><? echo $tabControl->GetCustomLabelHTML()?>:</td>
		<td>
			<input type="checkbox" name="CURRENT_INDICATION" value="Y"<?if($str_CURRENT_INDICATION == "Y")echo " checked"?> onClick="toggleIndication(this.checked, 1);" id="indication_cb_1">
			<div id="indication_1">
				<label><input type="checkbox" name="CURRENT_INDICATION_PERCENT" value="Y"<?if($str_CURRENT_INDICATION_PERCENT == "Y")echo " checked"?>><? echo GetMessage("LEARNING_CURRENT_INDICATION_PERCENT")?></label><br />
				<label><input type="checkbox" name="CURRENT_INDICATION_MARK" value="Y"<?if($str_CURRENT_INDICATION_MARK =="Y")echo " checked"?>><? echo GetMessage("LEARNING_CURRENT_INDICATION_MARK")?></label>
			</div>
		</td>
	</tr>
<?php $tabControl->EndCustomField("CURRENT_INDICATION");?>
<?php $tabControl->BeginCustomField("FINAL_INDICATION", GetMessage("LEARNING_FINAL_INDICATION"), false);?>
	<tr>
		<td valign="top"><? echo $tabControl->GetCustomLabelHTML()?>:</td>
		<td>
			<input type="checkbox" name="FINAL_INDICATION" value="Y"<?if($str_FINAL_INDICATION == "Y")echo " checked"?> onClick="toggleIndication(this.checked, 2);" id="indication_cb_2">
			<div id="indication_2">
				<label><input type="checkbox" name="FINAL_INDICATION_CORRECT_COUNT" value="Y"<?if($str_FINAL_INDICATION_CORRECT_COUNT == "Y")echo " checked"?>><? echo GetMessage("LEARNING_FINAL_INDICATION_CORRECT_COUNT")?></label><br />
				<label><input type="checkbox" name="FINAL_INDICATION_SCORE" value="Y"<?if($str_FINAL_INDICATION_SCORE == "Y")echo " checked"?>><? echo GetMessage("LEARNING_FINAL_INDICATION_SCORE")?></label><br />
				<label><input type="checkbox" name="FINAL_INDICATION_MARK" value="Y"<?if($str_FINAL_INDICATION_MARK == "Y")echo " checked"?>><? echo GetMessage("LEARNING_FINAL_INDICATION_MARK")?></label><br />
				<label><input type="checkbox" name="FINAL_INDICATION_MESSAGE" value="Y"<?if($str_FINAL_INDICATION_MESSAGE == "Y")echo " checked"?>><? echo GetMessage("LEARNING_FINAL_INDICATION_MESSAGE")?></label>
			</div>
		</td>
	</tr>
	<script type="text/javascript">
		function toggleIndication(visible, num)
		{
			if (visible)
				document.getElementById("indication_" + num).style.display = "block";
			else
				document.getElementById("indication_" + num).style.display = "none";
		}

		toggleIndication(document.getElementById("indication_cb_1").checked, 1);
		toggleIndication(document.getElementById("indication_cb_2").checked, 2);
	</script>
<?php $tabControl->EndCustomField("FINAL_INDICATION");?>
<?php $tabControl->BeginCustomField("SHOW_ERRORS", GetMessage("LEARNING_SHOW_ERRORS"), false);?>
	<tr>
		<td><? echo $tabControl->GetCustomLabelHTML()?>:</td>
		<td>
			<input type="checkbox" name="SHOW_ERRORS" value="Y"<?if($str_SHOW_ERRORS=="Y")echo " checked"?> onClick="toggleNextQ();" id="show_errors">
		</td>
	</tr>
<?php $tabControl->EndCustomField("SHOW_ERRORS");?>
<?php $tabControl->BeginCustomField("NEXT_QUESTION_ON_ERROR", GetMessage("LEARNING_ON_ERROR"), false);?>
	<tr id="next_q_on_error">
		<td valign="top"><? echo $tabControl->GetCustomLabelHTML()?>:</td>
		<td>
			<input type="radio" name="NEXT_QUESTION_ON_ERROR" value="Y"<?if($str_NEXT_QUESTION_ON_ERROR!="N")echo " checked"?>>&nbsp;<? echo GetMessage("LEARNING_NEXT_QUESTION_ON_ERROR")?><br />
			<input type="radio" name="NEXT_QUESTION_ON_ERROR" value="N"<?if($str_NEXT_QUESTION_ON_ERROR=="N")echo " checked"?>>&nbsp;<? echo GetMessage("LEARNING_PREV_QUESTION_ON_ERROR")?>
		</td>
	</tr>
	<script type="text/javascript">
		function toggleNextQ()
		{
			if (document.getElementById("show_errors").checked && document.getElementsByName("PASSAGE_TYPE")[2].checked)
			{
				document.getElementById("next_q_on_error").style.display = "";
			}
			else
			{
				document.getElementById("next_q_on_error").style.display = "none";
			}
		}

		toggleNextQ();
	</script>
<?php $tabControl->EndCustomField("NEXT_QUESTION_ON_ERROR");?>

<?$tabControl->BeginNextFormTab();?>
<?php $tabControl->BeginCustomField("DESCRIPTION", GetMessage("LEARNING_DESCRIPTION"), false);?>
	<?if(COption::GetOptionString("learning", "use_htmledit", "Y")=="Y" && CModule::IncludeModule("fileman")):?>
	<tr>
		<td colspan="2" align="center">
			<?CFileMan::AddHTMLEditorFrame(
				"DESCRIPTION",
				$str_DESCRIPTION,
				"DESCRIPTION_TYPE",
				$str_DESCRIPTION_TYPE,
				array(
					'height' => 450,
					'width' => '100%'
				),
				"N",
				0,
				"",
				"",
				false,
				true,
				false,
				array('toolbarConfig' => CFileman::GetEditorToolbarConfig("learning_".(defined('BX_PUBLIC_MODE') && BX_PUBLIC_MODE == 1 ? 'public' : 'admin')))
			);?>
		</td>
	</tr>
	<?else:?>
	<tr>
		<td align="center"><?echo GetMessage("LEARNING_DESC_TYPE")?>:</td>
		<td>
			<input type="radio" name="DESCRIPTION_TYPE" value="text"<?if($str_DESCRIPTION_TYPE!="html")echo " checked"?>> <?echo GetMessage("LEARNING_DESC_TYPE_TEXT")?>
			<input type="radio" name="DESCRIPTION_TYPE" value="html"<?if($str_DESCRIPTION_TYPE=="html")echo " checked"?>> <?echo GetMessage("LEARNING_DESC_TYPE_HTML")?>
		</td>
	</tr>
	<tr>
		<td colspan="2">
			<textarea style="width:100%; height:250px;" name="DESCRIPTION" wrap="off"><?echo $str_DESCRIPTION?></textarea>
		</td>
	</tr>
	<?endif?>
<?php $tabControl->EndCustomField("DESCRIPTION");?>

<?$tabControl->BeginNextFormTab();?>
<?php $tabControl->BeginCustomField("MARKS", GetMessage("LEARNING_MARKS"), false);?>
	<tr>
		<td colspan="2">
			<table cellpadding="0" cellspacing="0" width="100%" class="internal" id="marks-table">
				<tbody id="marks-table-tbody">
				<tr class="heading">
					<td align="center" width="10%">ID</td>
					<td align="center" width="15%"><?echo GetMessage("LEARNING_TEST_MARK_SCORE")?></td>
					<td align="center" width="20%"><?echo GetMessage("LEARNING_TEST_MARK")?></td>
					<td align="center" width="50%"><?echo GetMessage("LEARNING_TEST_MARK_MESSAGE")?></td>
					<td align="center" width="10%"><?echo GetMessage("LEARNING_TEST_MARK_DELETE")?></td>
				</tr>
				<?php
					if ($ID)
					{
						$marks = CLTestMark::GetList(Array("score" => "DESC"),Array("TEST_ID" => $ID));
						while($arMarkData = $marks->Fetch())
						{
							$s_ID          = (integer) $arMarkData['ID'];
							$s_SCORE       = (int) $arMarkData['SCORE'];
							$s_MARK        = htmlspecialcharsbx($arMarkData['MARK']);
							$s_DESCRIPTION = htmlspecialcharsbx($arMarkData['DESCRIPTION']);
							?>
							<tr>
								<td align="center"><?php echo $s_ID?></td>
								<td align="center">
									<div style="white-space:nowrap;"><?php
										echo GetMessage("LEARNING_TEST_SCORE_TILL");
									?> <input type="text" size="4" name="SCORE_<?php echo $s_ID?>" value="<?php
										echo isset(${"SCORE_".$s_ID}) ? ((int) ${"SCORE_".$s_ID}) : $s_SCORE;
									?>"> %</div>
								</td>
								<td align="center">
									<input type="text" size="20"  name="MARK_<?php echo $s_ID?>" value="<?php
										echo isset(${"MARK_".$s_ID}) ? htmlspecialcharsbx(${"MARK_".$s_ID}) : $s_MARK;
									?>">
								</td>
								<td align="center">
									<input type="text" size="60"  name="DESCRIPTION_<?php echo $s_ID?>" value="<?php
										echo isset(${"DESCRIPTION_".$s_ID}) ? htmlspecialcharsbx(${"DESCRIPTION_".$s_ID}) : $s_DESCRIPTION;
									?>">
								</td>
								<td align="center"><input type="checkbox" name="MARK_<?php echo $s_ID?>_DEL" value="Y"></td>
							</tr><?php
						}
					}

					foreach($arNewIDs as $i):?>
					<tr>
						<td align="center">&nbsp;</td>
						<td align="center">
							<div style="white-space:nowrap;"><?echo GetMessage("LEARNING_TEST_SCORE_TILL")?> <input type="text" size="4" name="N_SCORE_<?php echo $i?>" value="<?php echo isset(${"N_SCORE_".$i}) ? intval(${"N_SCORE_".$i}) : ""?>"> %</div>
						</td>
						<td align="center">
							<input type="text" size="20"  name="N_MARK_<?php echo $i?>" value="<?php echo isset(${"N_MARK_".$i}) ? htmlspecialcharsbx(${"N_MARK_".$i}) : ""?>">
						</td>
						<td align="center">
							<input type="text" size="60"  name="N_DESCRIPTION_<?php echo $i?>" value="<?php echo isset(${"N_DESCRIPTION_".$i}) ? htmlspecialcharsbx(${"N_DESCRIPTION_".$i}) : ""?>">
						</td>
						<td align="center"><a href="javascript:void(0);" onclick="BX.remove(this.parentNode.parentNode)"><img src="/bitrix/themes/.default/images/actions/delete_button.gif" border="0" width="20" height="20"/></a><input type="hidden" name="ANSWER_HIDDEN_ID[]" value="<?php echo (int) $i; ?>"></td>
					</tr>
				<?php endforeach?>
				</tbody>
			</table>
			<script type="text/javascript">
				var nextNum = <?php echo $nextNum?>;
				function addMark() {
					var row = BX.create("tr", {
						children: [
							BX.create('td', {
								html : '&nbsp;'
							}),
							BX.create('td', {
								html : '<div style="white-space:nowrap;"><?echo GetMessage("LEARNING_TEST_SCORE_TILL")?> <input type="text" size="4" name="N_SCORE_' + nextNum + '" value=""> %</div>',
								props : {align: 'center'}
							}),
							BX.create('td', {
								html : '<input type="text" size="20"  name="N_MARK_' + nextNum + '" value="">',
								props : {align: 'center'}
							}),
							BX.create('td', {
								html : '<input type="text" size="60"  name="N_DESCRIPTION_' + nextNum + '" value="">',
								props : {align: 'center'}
							}),
							BX.create('td', {
								html : '<a href="javascript:void(0);" onclick="BX.remove(this.parentNode.parentNode)"><img src="/bitrix/themes/.default/images/actions/delete_button.gif" border="0" width="20" height="20"/></a><input type="hidden" name="ANSWER_HIDDEN_ID[]" value="n' + nextNum + '">',
								props : {align: 'center'}
							})
						]
					});

					nextNum++;
					BX("marks-table-tbody").appendChild(row);
				}
				<?php
				if ($ID == 0)
				{
					?>
					addMark();
					<?php
				}
				?>
			</script>
			<br />
			<a href="javascript:void(0)" class="adm-btn" onclick="addMark();"><?php echo GetMessage("LEARNING_ADD_MARK")?></a>
		</td>
	</tr>
<?php $tabControl->EndCustomField("MARKS");?>

<?
$tabControl->Buttons(
	array(
		'disabled' => $isBtnsDisabled,
		"back_url" =>"learn_test_admin.php?lang=". LANG
		. '&PARENT_LESSON_ID=' . ($_GET['PARENT_LESSON_ID'] + 0)
		. '&LESSON_PATH=' . htmlspecialcharsbx($_GET['LESSON_PATH'])
		. "&COURSE_ID=" . $COURSE_ID
		. GetFilterParams("find_", false)));

$tabControl->arParams["FORM_ACTION"] = $APPLICATION->GetCurPage() . "?lang=" . LANG 
	. "&COURSE_ID=" . $COURSE_ID
	. '&PARENT_LESSON_ID=' . ($_GET['PARENT_LESSON_ID'] + 0)
	. '&LESSON_PATH=' . htmlspecialcharsbx($_GET['LESSON_PATH'])
	. "&ID=" . $ID;
$tabControl->Show();

$tabControl->ShowWarnings($tabControl->GetName(), $message);

require($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/epilog_admin.php");