<%@ page contentType="text/html; charset=UTF-8"%><%@ include file="/WEB-INF/jspf/include/taglibs.jsp"%>

<script>
function doHintSearch( searchText )
{
	//alert( textSearch );
	let popup = document.getElementById( "popupHintSearch" );
	const request = new XMLHttpRequest();
	request.open('GET', "pubexecuter?module=contract.function&action=AccessRestore&operation=doHintSearch&searchText=" + searchText );
	request.setRequestHeader('Content-Type', 'application/x-www-form-url');
	request.addEventListener("readystatechange", () => {
		let json = JSON.parse( request.responseText );
		let html = "";
		json.result.forEach(function(entry) {
		    html = html + "<div class=\"hintResult\" style=\"font-size: 1.3rem;\">" + entry.address + "</div>";
		});
		popup.innerHTML = html;
		popup.style.display = 'block';
	} );
	request.send();
	return true;
}
</script>

<div class="areaContainer"> 
	<div class="areaSelect" style="width: 15rem; min-width: 15rem;">
		<form method="post" action="pubexecuter" name="buttons">
		<input type="hidden" name="module" value="contract.function">
		<input type="hidden" name="action" value="AccessRestore">
		<input type="hidden" name="button" value="">
		<div class="vButtons">
			<c:set var="buttonSelect"><c:if test="${buttonSelectKey eq 'restore'}">buttonSelect</c:if></c:set>
			<div class="button ${buttonSelect}" onclick="document.forms['buttons'].button.value='restore'; document.forms['buttons'].submit();">восстановить доступ</div>
		</div>
		<div class="labelText labelFont labelTextMarginTop">Найти договор:</div>
		<div class="vButtons">
			<c:forEach var="searchModule" items="${searchModules}">
			<c:set var="buttonSelect"><c:if test="${buttonSelectKey eq searchModule.key}">buttonSelect</c:if></c:set>
			<div class="button ${buttonSelect}" onclick="document.forms['buttons'].button.value='${searchModule.key}'; document.forms['buttons'].submit();">${searchModule.value}</div>
			</c:forEach>
			<c:if test="${empty searchModules}"><div style="border: 0px; text-align: center; font-style: italic;">поисковые модули не настроены</div></c:if>
		</div>
		</form>
	</div>
	<div class="areaBody">
	<c:choose>
		<c:when test="${buttonSelectKey ne 'restore'}">
			<form method="post" action="pubexecuter" name="search">
			<input type="hidden" name="module" value="contract.function">
			<input type="hidden" name="action" value="AccessRestore">
			<input type="hidden" name="button" value="${buttonSelectKey}">
			<input type="hidden" name="contract" value="">
			
			<div class="labelText labelFont">Поиск договора ${contractSearchTitle}</div>
			<c:if test="${useHintSearch}"><c:set var="searchOninput">oninput="return doHintSearch( this.value );"</c:set></c:if>
			<div class="inputMarginTop" style="position: relative;"><input type="text" name="searchText" class="textField textFont" style="" value="${searchText}" placeholder="${searchTextPlaceHolder}" autocomplete="off" ${searchOninput}>
				<div id="popupHintSearch" style="display: none; position: absolute; top: 3rem; width: calc(100% - 2rem); z-index: 100; border: 1px solid red; background-color: white; border-radius: 10px; padding: 1rem; font-size: 1.5rem;">fajsdfhkasdh</div>
			</div>
			<div class="labelComment">${searchTextComment}</div>
			<div style="margin: 30px 0px; text-align: right;"><input type="submit" value="ИСКАТЬ" class="button" style="padding: 10px 20px;" /></div>
			<c:if test="${searchResult != null}">
				<div class="labelText labelFont labelTextMarginTop" style="margin-bottom: 20px;">Результаты поиска</div>
				<c:choose>
					<c:when test="${not empty searchResult}">
						<c:forEach var="item" items="${searchResult}">
						<div class="flexRow" style="margin-top: 30px;">
							<div>
								<div class="labelFont" style="">${item.contractTitle}</div>
								<c:if test="${not empty item.verifyTitle}"><div style="margin: 10px 20px; font-style: italic;">${item.verifyTitle}: ${item.verifyValue}</div></c:if>
							</div>
							<div><button class="selectContract" onclick="document.forms['search'].button.value='restore'; document.forms['search'].contract.value='${item.contractTitle}'; document.forms['buttons'].submit();">ВЫБРАТЬ</button></div>
						</div>
						</c:forEach>
					</c:when>
					<c:otherwise>
						<div style="text-align: center; font-style: italic;">Договора не найдены</div>
					</c:otherwise>
				</c:choose>
			</c:if>
			</form>
		</c:when>
		<c:otherwise>
<c:if test="${empty status}">
	<div class="text">Для воcстановления доступа введите номер Вашего договора</div>
	<form method="post" action="pubexecuter" name="bgAccessRestore">
		<input type="hidden" name="action" value="AccessRestore" />
		<input type="hidden" name="module" value="contract.function" />
		<input type="hidden" name="restoreMode" value="${restoreMode}" />
		<input type="hidden" name="step" value="${restoreModeData.nextStep}" />
		<div class="mt-3">
			<label for="contractFormControlInput" class="form-label fs-5">Номер договора:</label>
			<input type="text" name="contract" value="${userName}" class="form-control text-center fs-4" id="contractFormControlInput" placeholder="${contractMask}">
		</div>
		<div class="labelComment">Введите номер договора. Если не помните номер договора, попробуйте найти договор с помощью поиска.</div>
		
		<c:if test="${not empty restoreModes}">
		<div class="labelComment mt-5">Выберите способ востанавления пароля</div>
		<ul class="nav nav-underline mb-3">
		<c:forEach var="mode" items="${restoreModes}">
			<li class="nav-item fs-5">
				<c:set var="active"><c:if test="${restoreMode eq mode.modeName}">active</c:if></c:set>
			    <a class="nav-link ${active}" aria-current="page" href="#" onClick="document.forms['bgAccessRestore'].restoreMode.value='${mode.modeName}';document.forms['bgAccessRestore'].step.value=''; document.forms['bgAccessRestore'].submit(); return false;">${mode.tabTitle}</a>
			</li>
		</c:forEach>
		</ul>
		</c:if>
		
		<c:if test="${not empty restoreMode}">
		<c:choose>
			<c:when test="${restoreModeData.stepData['step'] eq 'select'}">
				<div class="labelText labelTextMarginTop">${restoreModeData.stepData['selectTitle']}</div>
				<div class="mt-3 mx-5 fs-4">
				<c:forEach var="item" items="${restoreModeData.stepData['maskItems']}"><div class="">${item}</div></c:forEach>
				</div>
				<div class="mt-3">
					<label for="itemFormControlInput" class="form-label fs-5">${restoreModeData.stepData['itemTitle']}</label>
					<input type="text" name="${restoreModeData.stepData['itemName']}" class="form-control text-center fs-4" id="itemFormControlInput" placeholder="${restoreModeData.stepData['itemPlaceHolder']}">
				</div>
				<div class="labelComment">${restoreModeData.stepData['itemComment']}</div>
				<div style="margin: 30px 0px; text-align: right;"><input type="submit" value="ДАЛЕЕ" class="button" style="padding: 10px 20px;" /></div>
			</c:when>
			<c:when test="${restoreModeData.stepData['step'] eq 'enterCode'}">
				<input type="hidden" name="${restoreModeData.stepData['itemName']}" value="${restoreModeData.stepData['itemValue']}" />
				<c:choose>
					<c:when test="${restoreModeData.stepData['itemName'] eq 'email'}">
						<div class="fs-6 mt-3 mx-3">На адрес <b>${restoreModeData.stepData['itemValue']}</b> отправлено сообщение с кодом подтвержения.</div>
						<div class="mt-3">
							<label for="emailCodeFormControlInput" class="form-label fs-5">Введите код из почтового сообщения:</label>
							<input type="text" name="code" class="form-control text-center fs-4" id="emailCodeFormControlInput" placeholder="${restoreModeData.stepData['codeMask']}">
						</div>
					</c:when>
					<c:when test="${restoreModeData.stepData['itemName'] eq 'phone'}">
						<div class="fs-6 mt-3 mx-3">На номер <b><bg:phoneFormat value="${restoreModeData.stepData['phone']}"/></b> отправлена SMS с кодом подтвержения.</div>
						<div class="mt-3">
							<label for="phoneCodeFormControlInput" class="form-label fs-5">Введите код из SMS:</label>
							<input type="text" name="code" class="form-control text-center fs-4" id="phoneCodeFormControlInput" placeholder="${restoreModeData.stepData['codeMask']}">
						</div>
					</c:when>
				</c:choose>
				<div style="margin: 30px 0px; text-align: right;"><input type="submit" value="ДАЛЕЕ" class="button" style="padding: 10px 20px;" /></div>
			</c:when>
		</c:choose>
		<%-- ${restoreModeData.stepData} --%>
		</c:if>
	</form>
	<c:if test="${restoreModeData.stepData['step'] eq 'gotoLK'}">
		<form action="${pageContext.request.contextPath}/webexecuter/b/Password" method="post">
			<input type="hidden" name="passwordOnce" value="${restoreModeData.stepData['code']}">
			<div class="fs-6">Код подтвержден. Вы можете перейти в Личный кабинет и сменить пароль.</div>
			<div style="margin: 30px 0px; text-align: right;"><input type="submit" value="ПЕРЕЙТИ В ЛК" class="button" style="padding: 10px 20px;" /></div>
		</form>
	</c:if>
</c:if>
<%--  и e-mail (указанный в договоре для функции восcтановления пароля). 
		Дальнейшие инструкции по воcстановлению пароля будут высланы на указанный e-mail --%>
<c:if test="${not empty error}">
	<div class="alert alert-danger" role="alert"><b>ОШИБКА:</b>
	<c:choose>
		<c:when test="${error eq 'contractNotFound'}"><b>Договор не найден</b><br/>Введенный Вами номер договора "<c:out value="${userName}" escapeXml="true"/>" не найден в базе данных. Проверьте правильность ввода номера договора.</c:when>
		<c:when test="${error eq 'codeNotEnter'}"><b>Не введен код</b><br/>Введите код или обратитесь в службу тех. поддержки.</div></c:when>
		<c:when test="${error eq 'codeNotFound'}"><b>Код не найден</b><br/>Попробуйте востановить доступ заново.</c:when>
		<c:when test="${error eq 'codeNotValid'}"><b>Не правильно введен проверочный код</b><br/>Проверьте правильность ввода кода и попробуйте ввести повторно</c:when>

		<c:when test="${error eq 'emailNotFound'}"><b>В договоре не указаны email адреса</b><br/>За дополнительной информацией обратитесь в тех. поддержку оператора.</c:when>
		<c:when test="${error eq 'emailNotValid'}"><b>Неправильный E-mail</b><br/>Введенный Вами E-mail "<c:out value="${restoreModeData.stepData['errorEmail']}" escapeXml="true"/>" не совпадает с email указанным в договоре "<c:out value="${userName}" escapeXml="true"/>".</c:when>
		<c:when test="${error eq 'emailNotEnter'}"><b>Не введенный E-mail</b><br/>Введите номер телефона</c:when>
		<c:when test="${error eq 'emailSendMessage'}"><b>При отправке email</b><br/>Попробуйте позже или обратитесь в службу тех. поддержки.</c:when>
		<c:when test="${error eq 'emailDataEmpty'}"><b>При формирования текста письма</b><br/>Обратитесь в службу тех. поддержки.</c:when>

		<c:when test="${error eq 'phoneNotFound'}"><b>В договоре не указаны телефонные номера</b><br/>За дополнительной информацией обратитесь в тех. поддержку оператора.</c:when>
		<c:when test="${error eq 'phoneNotValid'}"><b>Не правильный номер</b><br/>Введенный номер "${restoreModeData.stepData['errorPhone']}" не совпадает с номерами из договора. Проверьте правильность ввода номера и попробуйте ввести повторно</c:when>
		<c:when test="${error eq 'phoneNotEnter'}"><b>Не введенный номер</b><br/>Введите номер телефона</c:when>
		<c:when test="${error eq 'phoneSendMessage'}"><b>При отправке SMS</b><br/>Попробуйте позже или обратитесь в службу тех. поддержки.</c:when>
		<c:when test="${error eq 'phoneMessageEmpty'}"><b>При формирования текста SMS</b><br/>Обратитесь в службу тех. поддержки.</c:when>
		<c:when test="${error eq 'phoneCodeVerificationLimit'}"><b>Превышен лимит попыток проверки проверочного кода</b><br/>Обратитесь в службу технической поддержки оператора для востановления доступа в Личный кабинет</c:when>
		<c:otherwise><b>Неизвестная</b><br/>это что то новенькое!!! [error = '${error}'] Свяжитесь с разработчиками!</c:otherwise>
	</c:choose>
	</div>
</c:if>
</c:otherwise>
</c:choose>
	</div>
</div>