<!--

var _valid_counter = 0;
var _valid_counter_all = 7;

var ico_warning = new Image();	ico_warning.src = '/template/module/account/images/icons/warning.gif';
var ico_ok = new Image();		ico_ok.src = '/template/module/account/images/icons/form_ok.gif';
var ico_empty = new Image();	ico_empty.src = '/template/module/account/images/icons/form_empty.gif';
var ico_error = new Image();	ico_error.src = '/template/module/account/images/icons/form_error.gif';

function _showMessages(messId, messVal, icoId, icoVal){
	if(messVal.blank()){
		$(messId).hide();
	}
	else{
		$(messId).update(messVal).show();
		$(messId).style.display = 'block';

		if(typeof Effect != 'undefined') {
			new Effect.Highlight(messId, { startcolor:'#FFFFFF', endcolor:'#FFE6E6', restorecolor: '#FFE6E6' });
			//new Effect.Grow($(messId));
			//new Effect.Appear($(messId), { duration: 3.0 });
			//new Effect.Pulsate(messId);
		}
	}

	if(icoVal.blank()){
		$(icoId).hide();
	}
	else{
		$(icoId).show();
		$(icoId).src = icoVal;
	}
}

function _checkSubmitAble(obj){
	if(_valid_counter == _valid_counter_all){
		$(obj.form.run.id).enable().focus();
	}
	else{
		$(obj.form.run.id).disable();
	}
}

function _account_login_response(obj, result){
	if(result.toUpperCase() == 'ACCOUNT NOT EXISTS'){
		_valid_counter = _valid_counter | 1;
		_showMessages('login_msg', '', 'login_ico', ico_ok.src);
	}
	else{
		_valid_counter = _valid_counter & ~1;
		_showMessages('login_msg', 'Логин занят.', 'login_ico', ico_error.src);
	}
	_checkSubmitAble(obj);
}

function _validateLogin(obj, submit_form){
	if($F(obj.id).blank()){
		_showMessages('login_msg', '', 'login_ico', ico_warning.src);
	}
	else if(!$F(obj.id).match(/^[a-z_]{1,20}[a-z0-9_\-]{0,19}$/i)){
		_showMessages('login_msg', 'Недопустимый логин.', 'login_ico', ico_error.src);
	}
	else{
		var myAjax = new Ajax.Request('/ajax/', {
				method: 'POST',
				parameters: 'ajax_function=ajax_account_exists&' + Form.Element.serialize(obj),
				onSuccess: function(ajaxResult){
					_account_login_response(obj, ajaxResult.responseText);
					//echo(ajaxResult.responseText);
				},
				onComplete: function(){
					if(submit_form && _valid_counter == _valid_counter_all){
							submit_form.submit();
					}
				},
				onException: function(a, b) {
					alert('error: #' + b.message);
				}
			});
	}
}

function validateLogin(e){
	var obj = $(Event.element(e));

	_validateLogin(obj, false);
	_checkSubmitAble(obj);
}

function _validatePassword(obj){
	var password = obj.form.password;
	var passwordcopy = obj.form.passwordcopy;

	if(!($F(password.id).blank() || $F(passwordcopy.id).blank())){
		if($F(password.id) == $F(passwordcopy.id)){
			if(!$F(password.id).match(/^[a-z0-9_\-]{6,255}$/i)){
				_valid_counter = _valid_counter & ~2;
				_showMessages('password_msg', 'Недопустимый пароль.', 'password_ico', ico_error.src);
			}
			else{
				_valid_counter = _valid_counter | 2;
				_showMessages('password_msg', '', 'password_ico', ico_ok.src);
			}
		}
		else{
			_valid_counter = _valid_counter & ~2;
			_showMessages('password_msg', 'Пароли не совпадают.', 'password_ico', ico_error.src);
		}
	}
	else{
		_valid_counter = _valid_counter & ~2;
		_showMessages('password_msg', '', 'password_ico', ico_warning.src);
	}

}

function validatePassword(e){
	var obj = $(Event.element(e));

	_validatePassword(obj);
	_checkSubmitAble(obj);
}

function _validateCode(obj){
	if($F(obj.id).blank()){
		_valid_counter = _valid_counter & ~4;
		_showMessages('code_msg', '', 'code_ico', ico_warning.src);
	}
	else if(!$F(obj.id).match(/^[0-9]{4}$/i)){
		_showMessages('code_msg', 'Неверный код', 'code_ico', ico_error.src);
	}
	else{
		_valid_counter = _valid_counter | 4;
		_showMessages('code_msg', '', 'code_ico', ico_ok.src);
	}
}

function _CodeChangecheckSubmitAble(e){
	var obj = $(Event.element(e));
	if($F(obj.id).match(/^[0-9]{4}$/i)){
		_validateCode(obj);
		_checkSubmitAble(obj);
	}
}

function validateCode(e){
	var obj = $(Event.element(e));

	_validateCode(obj);
	_checkSubmitAble(obj);
}

function validateRegisterForm(e){
	var form = $(Event.element(e)).form;

	_resetRegisterForm(form);

	_validatePassword(form.password);
	_validateCode(form.code);
	_validateLogin(form.login, form);

	return false;
}

function _resetRegisterForm(form){
	$w('login_msg password_msg code_msg').each(Element.hide);
	$('login_ico').src = $('password_ico').src = $('code_ico').src = ico_warning.src;

	_valid_counter = 0;
	_checkSubmitAble(form.login);
}

function cleanRegisterForm(e){
	var form = Event.element(e).form;
	var inputs = form.getInputs();
	
	inputs.each(function(obj){
		if(!obj.id.blank() && !obj.type.match(/submit|reset|button/i))
			Form.Element.clear(obj);
	});

	_resetRegisterForm(form);
}

function validatorFormRegisterEvents(form){
	$(form.login.id).observe('blur', validateLogin);
	$(form.password.id).observe('blur', validatePassword);
	$(form.passwordcopy.id).observe('blur', validatePassword);
	$(form.code.id).observe('blur', validateCode);

	$(form.code.id).observe('keyup', _CodeChangecheckSubmitAble);

	$(form.run.id).observe('click', validateRegisterForm);
	$(form.reset.id).observe('click', cleanRegisterForm);

	_resetRegisterForm(form);

	_validatePassword(form.password);
	_validateCode(form.code);
	_validateLogin(form.login, form);
}

//-->
