function logIn(level) {
	
	if(level == 1) {	
		
		ajax.sendRequest('Log', function (response){
			container.innerHTML = response;
		},
		{'level':level});
	} else if(level == 2){
		var loginForm = document.getElementById('loginForm');
		
		ajax.sendRequest('Log', function (response){
			
			container.innerHTML = response;
			var userId = document.getElementById('userId').innerHTML;
			if(Number(userId)) {
				window.location = window.location;
			}
		},
		{'level':level, 'UserName':loginForm.UserName.value, 'PassWord':loginForm.PassWord.value});
	}
}
function closeLoginBox(){
	var objBody = document.getElementsByTagName("body").item(0);
	objBody.removeChild(document.getElementById('overlay2'));	
}
function iniLoginBox() {
	
	var objBody = document.getElementsByTagName("body").item(0);
		
	var objOverlay = document.createElement("div");
		objOverlay.setAttribute('id','overlay2');
		objBody.appendChild(objOverlay);	
	
	var box = document.createElement("div");
		box.setAttribute('id','box');
		objOverlay.appendChild(box);
		
	var boxContainer = document.createElement("div");
		boxContainer.setAttribute('id','boxContainer');
		box.appendChild(boxContainer);	
	
	var boxTool = document.createElement("div");
		boxTool.setAttribute('id','boxTool');
		boxTool.align="right";
		boxTool.innerHTML = '<a href="javascript:closeLoginBox();">закрыть</a>'
		boxContainer.appendChild(boxTool);	
		
	container = document.createElement("div");
		container.setAttribute('id','container');
		boxContainer.appendChild(container);	
		
}
function logOut() {
	
	var str = window.location;
	
	str = encodeURI(str);
	str = str.replace(/\+/g, "%2B");
	str = str.replace(/&/g, "%26");
	
	window.location = ('LogInOut?REQUEST_URI='+str);
}
function REG_rule(self){
	if(self.agree_to_terms.checked)
		regUser(2);
	else
		logIn(1);
}
function regUser(level) {
	
	if((level == 1) || (level == 2)) {	
		
		ajax.sendRequest('AddUser', function (response){
			container.innerHTML = response;
		},
		{'level':level});
	} else if(level == 3) {
		
		var REG_form = document.getElementById('REG');
	
		var data  = {'level':level,
					'UserName':REG_form.UserName.value,
					'PassWord':REG_form.PassWord.value,
					'EmailAddress':REG_form.EmailAddress.value,
					'reg_code':REG_form.reg_code.value,
					'time_offset':REG_form.time_offset.value};
		
		ajax.sendRequest('AddUser', function (response){
			container.innerHTML = response;
		}, data);
	}
	return;
}
loading = '<table height="200" class="text" align="center"><tr><td align="center"><img src="images/loading.gif"></td></tr></table>';
reg_error_no_name        = "Необходимо ввести имя пользователя от 3 до 26 символов";
reg_error_no_pass        = "Пароль не указан";
reg_error_pass_nm        = "Введенные пароли не совпадают";
reg_error_chars          = "Отображаемое имя содержит один или несколько запрещенных символов: [ ] | ; ,  &#036;";
reg_error_taken          = "Введенное отображаемое имя уже используется другим пользователем";
reg_error_username_taken = "Введенное имя пользователя уже используется другим пользователем";
reg_error_username_none  = "Необходимо ввести имя пользователя от 3 до 26 символов";
reg_error_email_missing  = "Email адрес не указан";
reg_error_email_nm       = "Введенные email адреса не совпадают";
reg_error_email_taken    = "Введенный email уже используется другим пользователем";
reg_error_email_ban      = "Email адрес, который Вы используете, не разрешен на этом форуме. Пожалуйста выберите другой.";
reg_error_email_invalid  = "Email адрес, который Вы ввели, неправильный (пример: name@domain.com)<br /> или содержит запрещенные символы: [ ] ; # &amp; ! * ' &quot; &lt; &gt; % ( ) { } ? &#092;";
reg_error_dchars_only    = "Отображаемое имя может содержать только эти символы:  ";
reg_error_uchars_only    = "Имя пользователя может содержать следующие символы:  ";

function setErrorLogin(code) {
	var msg= document.getElementById('msg-name');
	var box = document.getElementById('box-name');
	var img = document.getElementById('img-name');
	var reg = document.getElementById('reg-name');
	
	if(code == 1)
		msg.innerHTML = reg_error_no_name;
	else if(code == 3)
		msg.innerHTML = reg_error_username_taken;

	if(code) {
		box.style.display = "block";
		img.src = 'images/aff_cross.gif'
		reg.className = 'classWarn';	
	} else {
		box.style.display = "none";
		img.src = 'images/aff_tick.gif'
		reg.className = 'classOk';	
		msg.innerHTML = '';
	}
}
function checkLogin() {
	var REG_form = document.getElementById('REG');
	var UserName = REG_form.UserName.value;
	
	UserName = UserName.replace(/(\s+$)|(^\s+)/g, '');
	REG_form.UserName.value = UserName;
	
	if(UserName.length < 3 || UserName.length > 26) {
		setErrorLogin(1);
		return;
	}	
		
	AJAXcheckLogin(UserName);
}
function AJAXcheckLogin(UserName) {
	
		ajax.sendRequest('AddUser', function (response){
			
			if(response.resolv == 'ok')
				setErrorLogin(0);
			else 	
				setErrorLogin(3); 
		},
		{'action':'checkLogin', 'UserName':UserName});
}

function setErrorPassWord(code) {
	var msg = document.getElementById('msg-password');
	var box = document.getElementById('box-password');
	var img = document.getElementById('img-password');
	var reg1 = document.getElementById('reg-password');
	var reg2 = document.getElementById('reg-password-check');
	
	if(code == 1)
		msg.innerHTML = reg_error_no_pass;
	else if(code == 2)
		msg.innerHTML = reg_error_pass_nm;
		
	if(code) {
		box.style.display = "block";
		img.src = 'images/aff_cross.gif'
		reg1.className = 'classWarn';	
		reg2.className = 'classWarn';	
	} else {
		box.style.display = "none";
		img.src = 'images/aff_tick.gif'
		reg1.className = 'classOk';	
		reg2.className = 'classOk';	
		msg.innerHTML = '';
	}
}

function checkPassword(){
	var REG_form = document.getElementById('REG');
	var pass1 = REG_form.PassWord.value;
	var pass2 = REG_form.PassWord_Check.value;
	if(!pass1 || !pass2)
		setErrorPassWord(1);
	else if(pass1 != pass2)
		setErrorPassWord(2);
	else 
		setErrorPassWord(0);
}
function setErrorEmail(code) {
	var msg = document.getElementById('msg-emailaddress');
	var box = document.getElementById('box-emailaddress');
	var img = document.getElementById('img-emailaddress');
	var reg1 = document.getElementById('reg-emailaddress');
	var reg2 = document.getElementById('reg-emailaddress-two');
	
	if(code == 1)
		msg.innerHTML = reg_error_email_missing;
	else if(code == 2)
		msg.innerHTML = reg_error_email_invalid;
	else if(code == 3)
		msg.innerHTML = reg_error_email_nm;
		
	if(code) {
		box.style.display = "block";
		img.src = 'images/aff_cross.gif'
		reg1.className = 'classWarn';	
		reg2.className = 'classWarn';	
	} else {
		box.style.display = "none";
		img.src = 'images/aff_tick.gif'
		reg1.className = 'classOk';	
		reg2.className = 'classOk';	
		msg.innerHTML = '';
	}
}

function checkEmail(){
	var REG_form = document.getElementById('REG');
	var email1 = REG_form.EmailAddress.value;
	var email2 = REG_form.EmailAddress_two.value;
	
	email1 = email1.replace(/(\s+$)|(^\s+)/g, '');
	REG_form.EmailAddress.value = email1;
	
	email2 = email2.replace(/(\s+$)|(^\s+)/g, '');
	REG_form.EmailAddress_two.value = email2;
	
	if(!email1 || !email2)
		setErrorEmail(1);
	else if(notEmail(email1) || notEmail(email2))
		setErrorEmail(2);
	else if(email1 != email2)
		setErrorEmail(3);
	else 
		setErrorEmail(0);
	
}
function notEmail(str) {
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(str)) return 0;
	else return 1;

}
function check(){
	
	if(document.getElementById('reg-name').className != 'classOk') {
		checkLogin();
		
	}
	
	if((document.getElementById('reg-password').className != 'classOk') ||
	(document.getElementById('reg-password-check').className != 'classOk')) {
		checkPassword();
		
	}
	if((document.getElementById('reg-emailaddress').className != 'classOk') ||
	(document.getElementById('reg-emailaddress-two').className != 'classOk')) {
		checkEmail();
		
	}
	if((document.getElementById('reg-name').className != 'classOk') ||
	(document.getElementById('reg-password').className != 'classOk') ||
	(document.getElementById('reg-password-check').className != 'classOk') ||
	(document.getElementById('reg-emailaddress').className != 'classOk') ||
	(document.getElementById('reg-emailaddress-two').className != 'classOk')) {
		;
	} else {
		regUser(3);
	}
	
}
