// - - - - - - - -
// UTF-8 Документ
// - - - - - - - -

LoadingImg='<img src="/Images/Elements/mozilla_blu.gif" title="Обработка данных..." border="0" />';

function ShowMsg(value,LoadingImg)
{
	if(document.getElementById('MessageBox'))
	{
		document.getElementById('MessageBox').innerHTML=value;
		document.getElementById('MessageBoxAnim').innerHTML=LoadingImg;
	}
	else
	{
		window.alert(value);
	}
}

function DoNothing()
{
	return;
}

function DisableEnter()
{
	document.getElementById('Login').disabled = true;
	document.getElementById('Pass').disabled = true;
	document.getElementById('Code').disabled = true;
	document.getElementById('EnterButton').disabled = true;
	document.getElementById('EnterImageSecurity').onclick = DoNothing;
}

function EnableEnter()
{
	document.getElementById('Login').disabled = false;
	document.getElementById('Pass').disabled = false;
	document.getElementById('Code').disabled = false;
	document.getElementById('Code').value = '';
	document.getElementById('EnterButton').disabled = false;
	document.getElementById('EnterImageSecurity').onclick = ReloadEnterImageSecurity;
	ReloadEnterImageSecurity();
}

function Enter()
{
	try
	{
		var userLogin=document.getElementById('Login').value;
		var userPass=document.getElementById('Pass').value;
		var userCode=document.getElementById('Code').value;;
	}
	catch(e)
	{
		EnableEnter();
		alert(e.message);
	}
	
	DisableEnter();
	ShowMsg('Выполняется вход...',LoadingImg);
	
	initReqObj();
	ReqObj.onreadystatechange=function()
	{
		if(ReqObj.readyState==4)
		{
			try
			{
				ErrArr=ReqObj.responseJS.result;
				ErrArrCount=ErrArr.length;
				if(ErrArrCount)
				{
					EnableEnter();
					switch(ErrArr[0])
					{
						case '100':
							ShowMsg('Неправильный <b>Код</b> безопасности','');
						break;
						
						case '101':
							ShowMsg('Поле <b>Логин</b> не должно быть пустым','');
						break;
						
						case '102':
							ShowMsg('Неправильно введен <b>логин/пароль</b>','');
						break;
						
						case '103':
							ShowMsg('Ваш <b>Логин</b> заблокирован [<a href="/FAQ/BanLogin/'+userLogin+'" target="_blank" style="color:#FFFFFF">узнать почему</a>]','');
						break;
						
						default:
							ShowMsg('Неизвестная ошибка авторизации','');
					}
				}
				else
				{
					ShowMsg('Переход на главную страницу...',LoadingImg);
					location.replace('/Main');
				}
			}
			catch(e)
			{
				EnableEnter();
				ShowMsg('Перезагрузите страницу и попробуйте еще раз','');
				alert(e.message+' | '+ReqObj.responseText);
			}
		}
	}

	ReqObj.open(null,'Ajax.Handler.php?ajax_file=Enter',true);
	ReqObj.send(
	{
		userLogin:userLogin,
		userPass:userPass,
		userCode:userCode
	});
}

function DisableReg()
{
	document.getElementById('RegLogin').disabled = true;
	document.getElementById('RegPass').disabled = true;
	document.getElementById('RegEmail').disabled = true;
	document.getElementById('RegCode').disabled = true;
	document.getElementById('RegButton').disabled = true;
	document.getElementById('RegCancel').disabled = true;
	document.getElementById('RegImageSecurity').onclick = DoNothing;
}

function EnableReg()
{
	document.getElementById('RegLogin').disabled = false;
	document.getElementById('RegPass').disabled = false;
	document.getElementById('RegEmail').disabled = false;
	document.getElementById('RegCode').disabled = false;
	document.getElementById('RegCode').value = '';
	document.getElementById('RegButton').disabled = false;
	document.getElementById('RegCancel').disabled = false;
	document.getElementById('RegImageSecurity').onclick = ReloadRegImageSecurity;
	ReloadRegImageSecurity();
}

function Reg()
{
	try
	{
		var userLogin=document.getElementById('RegLogin').value;
		var userPass=document.getElementById('RegPass').value;
		var userEmail=document.getElementById('RegEmail').value;
		var userCode=document.getElementById('RegCode').value;
	}
	catch(e)
	{
		EnableReg();
		alert(e.message);
	}
	
	DisableReg();
	ShowMsg('Выполняется регистрация...',LoadingImg);
	
	initReqObj();
	ReqObj.onreadystatechange=function()
	{
		if(ReqObj.readyState==4)
		{
			try
			{
				ErrArr=ReqObj.responseJS.result;
				ErrArrCount=ErrArr.length;
				if(ErrArrCount)
				{
					EnableReg();
					switch(ErrArr[0])
					{
						case '100':
							ShowMsg('Неправильный <b>Код</b> безопасности','');
						break;
						
						case '101':
							ShowMsg('Поле <b>Логин</b> не должно быть пустым','');
						break;
						
						case '200':
							ShowMsg('<b>Логин</b> должен быть более 4 символов','');
						break;
						
						case '201':
							ShowMsg('<b>Логин</b> должен быть менее 32 символов','');
						break;
						
						case '202':
							ShowMsg('Введенный Вами <b>Логин</b> уже занят','');
						break;
						
						case '203':
							ShowMsg('Вы не ввели <b>Пароль</b>','');
						break;
						
						case '204':
							ShowMsg('<b>Пароль</b> должен быть более 4 символов','');
						break;
						
						case '205':
							ShowMsg('<b>Пароль</b> должен быть менее 32 символов','');
						break;
						
						case '206':
							ShowMsg('Вы не ввели <b>E-Mail</b>','');
						break;
						
						case '207':
							ShowMsg('<b>E-Mail</b> должен быть менее 32 символов','');
						break;
						
						case '208':
							ShowMsg('Не правильный формат <b>E-Mail</b>','');
						break;
						
						case '209':
							ShowMsg('Введенный Вами <b>E-Mail</b> уже используется','');
						break;
						
						default:
							ShowMsg('Неизвестная ошибка регистрации','');
					}
				}
				else
				{
					ShowMsg('Переход на главную страницу...',LoadingImg);
					location.replace('/Main');
				}
			}
			catch(e)
			{
				EnableReg();
				ShowMsg('Перезагрузите страницу и попробуйте еще раз','');
				alert(e.message+' | '+ReqObj.responseText);
			}
		}
	}

	ReqObj.open(null,'Ajax.Handler.php?ajax_file=Register',true);
	ReqObj.send(
	{
		userLogin:userLogin,
		userPass:userPass,
		userEmail:userEmail,
		userCode:userCode
	});
}

function DisableLost()
{
	document.getElementById('LostLogin').disabled = true;
	document.getElementById('LostEmail').disabled = true;
	document.getElementById('LostCode').disabled = true;
	document.getElementById('LostButton').disabled = true;
	document.getElementById('LostCancel').disabled = true;
	document.getElementById('LostImageSecurity').onclick = DoNothing;
}

function EnableLost()
{
	document.getElementById('LostLogin').disabled = false;
	document.getElementById('LostEmail').disabled = false;
	document.getElementById('LostCode').disabled = false;
	document.getElementById('LostCode').value = '';
	document.getElementById('LostButton').disabled = false;
	document.getElementById('LostCancel').disabled = false;
	document.getElementById('LostImageSecurity').onclick = ReloadLostImageSecurity;
	ReloadLostImageSecurity();
}

function Lost()
{
	try
	{
		var userLogin=document.getElementById('LostLogin').value;;
		var userEmail=document.getElementById('LostEmail').value;;
		var userCode=document.getElementById('LostCode').value;;
	}
	catch(e)
	{
		EnableLost();
		alert(e.message);
	}
	
	DisableLost();
	ShowMsg('Восстановление пароля...',LoadingImg);
	
	initReqObj();
	ReqObj.onreadystatechange=function()
	{
		if(ReqObj.readyState==4)
		{
			try
			{
				ErrArr=ReqObj.responseJS.result;
				ErrArrCount=ErrArr.length;
				if(ErrArrCount)
				{
					EnableLost();
					switch(ErrArr[0])
					{
						case '100':
							ShowMsg('Неправильный <b>Код</b> безопасности','');
						break;
						
						case '101':
							ShowMsg('Поле <b>Логин</b> не должно быть пустым','');
						break;
						
						case '200':
							ShowMsg('<b>Логин</b> должен быть более 4 символов','');
						break;
						
						case '201':
							ShowMsg('<b>Логин</b> должен быть менее 32 символов','');
						break;
						
						case '206':
							ShowMsg('Вы не ввели <b>E-Mail</b>','');
						break;
						
						case '207':
							ShowMsg('<b>E-Mail</b> должен быть менее 32 символов','');
						break;
						
						case '208':
							ShowMsg('Не правильный формат <b>E-Mail</b>','');
						break;
						
						case '211':
							ShowMsg('Не найден пользователь с такими данными','');
						break;
						
						default:
							ShowMsg('Неизвестная ошибка','');
					}
				}
				else
				{
					EnableLost();
					ShowEnterTable();
					document.getElementById('Login').value = userLogin;
					ShowMsg('Пароль отправлен Вам на e-mail','');
				}
			}
			catch(e)
			{
				EnableLost();
				ShowMsg('Перезагрузите страницу и попробуйте еще раз','');
				alert(e.message+' | '+ReqObj.responseText);
			}
		}
	}

	ReqObj.open(null,'Ajax.Handler.php?ajax_file=LostPass',true);
	ReqObj.send(
	{
		userLogin:userLogin,
		userEmail:userEmail,
		userCode:userCode
	});
}


function ReloadEnterImageSecurity()
{
	document.getElementById('EnterImageSecurity').src=document.getElementById('EnterImageSecurity').src+'1';
}

var RegImgSec = false;
function ReloadRegImageSecurity()
{
	if(RegImgSec)
	{
		document.getElementById('RegImageSecurity').src=document.getElementById('RegImageSecurity').src+'2';
	}
	else
	{
		RegImgSec = true;
		document.getElementById('RegImageSecurity').src=document.getElementById('EnterImageSecurity').src+'2';
	}
}

var LostImgSec = false;
function ReloadLostImageSecurity()
{
	if(LostImgSec)
	{
		document.getElementById('LostImageSecurity').src=document.getElementById('LostImageSecurity').src+'3';
	}
	else
	{
		LostImgSec = true;
		document.getElementById('LostImageSecurity').src=document.getElementById('EnterImageSecurity').src+'3';
	}
}

function ShowHideForms()
{
	if(document.getElementById("EnterTbl").style.display!="none")
	{
		SimpleGui.ShowHideItem('EnterTbl');
	}
	
	if(document.getElementById("RegTbl").style.display!="none")
	{
		SimpleGui.ShowHideItem('RegTbl');
	}

	if(document.getElementById("LostTbl").style.display!="none")
	{
		SimpleGui.ShowHideItem('LostTbl');
	}
}

function ShowEnterTable()
{
	ShowHideForms();
	SimpleGui.ShowHideItem('EnterTbl');
	ShowMsg('Форма входа на сайт','');
	ReloadEnterImageSecurity();
}

function ShowRegTable()
{
	ShowHideForms();
	SimpleGui.ShowHideItem('RegTbl');
	ShowMsg('<span style="color:#F00; padding:1px; border:solid 1px #000; background-color:#FFF"><b>Регистрация нового пользователя</b></span>','');
	ReloadRegImageSecurity();
}

function ShowLostTable()
{
	ShowHideForms();
	SimpleGui.ShowHideItem('LostTbl');
	ShowMsg('<span style="color:#F00; padding:1px; border:solid 1px #000; background-color:#FFF"><b>Восстановления пароля</b></span>','');
	ReloadLostImageSecurity();
}