function checkEmail()
{
	var errors = new Array();
	var error = new Array();
	
	clearError('mail');
	if ($('input_field_mail').value == '')
	{
		error = {
		 'text' : 'Вы не ввели e-mail адрес',
		 'field' : ['mail']
		};
		errors.push(error);
		
	}
	if ($('input_field_mail').value != '' && !checkEmailFormat($('input_field_mail').value))
	{
		error = {
		 'text' : 'Неправильный формат e-mail адреса. Введите e-mail в формате name@site.ru',
		 'field' : ['mail']
		};
		errors.push(error);
	}

	// Проверка, что уже есть такой адрес
	if ($('input_field_mail').value != '' && check_emailExternal($('input_field_mail').value))
	{
		error = {
		 'text' : 'Такой e-mail адрес уже зарегистрирован',
		 'field' : ['mail']
		};
		errors.push(error)
	}

	if (errors.length > 0)
	{
		displayErrors(errors);
		return false;
	}
	else
	{
		displayOK('mail');
		return true;
	}
}

function checkPasswordFirst()
{
	var errors = new Array();
	var error = new Array();
	
	clearError('password_first');
	if ($('input_field_password_first').value == '')
	{
		error = {
		 'text' : 'Вы не ввели пароль',
		 'field' : ['password_first']
		};
		errors.push(error);
	}
	if ($('input_field_password_first').value != '' && $('input_field_password_first').value.length < 5)
	{
		error = {
		 'text' : 'Пароль должен быть не менее 5 символов длиной',
		 'field' : ['password_first']
		};
		errors.push(error);
	}
	
	if (errors.length > 0)
	{
		displayErrors(errors);
		return false;
	}
	else
	{
		if ($('input_field_password_confirm').value != '')
		{
			var eq = checkPasswordsEqual();
		}
		else
		{
			var eq = true;
		}
		if (eq)
		{
			displayOK('password_first');
			return true;
		}
		return false;
	}
}

function checkPasswordConfirm()
{
	var errors = new Array();
	var error = new Array();
	
	clearError('password_confirm');
	if ($('input_field_password_confirm').value == '')
	{
		error = {
		 'text' : 'Вы не ввели пароль повторно',
		 'field' : ['password_confirm']
		};
		errors.push(error);
	}
	if ($('input_field_password_confirm').value != '' && $('input_field_password_confirm').value.length < 5)
	{
		error = {
		 'text' : 'Пароль должен быть не менее 5 символов длиной',
		 'field' : ['password_confirm']
		};
		errors.push(error);
	}
	
	if (errors.length > 0)
	{
		displayErrors(errors);
		return false;
	}
	else
	{
		if ($('input_field_password_first').value != '')
		{
			var eq = checkPasswordsEqual();
		}
		else
		{
			var eq = true;
		}
		if (eq)
		{
			displayOK('password_confirm');
			return true;
		}
		return false;
	}
}

function checkPasswordsEqual()
{
	var errors = new Array();
	var error = new Array();
	
	clearError('password_first');
	clearError('password_confirm');
	if ($('input_field_password_first').value != $('input_field_password_confirm').value)
	{
		error = {
		 'text' : 'Пароли не совпадают',
		 'field' : ['password_first','password_confirm']
		};
		errors.push(error);
	}
	if (errors.length > 0)
	{
		displayErrors(errors);
		return false;
	}
	else
	{
		displayOK('password_first');
		displayOK('password_confirm');
		return true;
	}
}

function checkImageCode()
{
	var errors = new Array();
	var error = new Array();
	
	clearError('image_code');
	if ($('input_field_image_code').value == '')
	{
		error = {
		 'text' : 'Вы не ввели код защиты',
		 'field' : ['image_code']
		};
		errors.push(error);
	}
	if ($('input_field_image_code').value != '' && check_imageCodeExternal($('input_field_image_code').value) == false)
	{
		error = {
		 'text' : 'Неправильный код',
		 'field' : ['image_code']
		};
		errors.push(error);
	}
	if (errors.length > 0)
	{
		displayErrors(errors);
		return false;
	}
	else
	{
		displayOK('image_code');
		return true;
	}
}

function checkAgreement()
{
	var errors = new Array();
	var error = new Array();
	
	clearError('agreement');
	if (!$('input_field_agreement').checked)
	{
		error = {
		 'text' : 'Вы не приняли условия соглашения',
		 'field' : ['agreement']
		};
		errors.push(error);
	}
	if (errors.length > 0)
	{
		displayErrors(errors);
		return false;
	}
	else
	{
		displayOK('agreement');
		return true;
	}
}

function checkEmailExists()
{
  clearEmailMessages();
  var ok = checkEmail();
  if (ok)
  {
    var email = $('input_field_mail').value;
  	$('input_field_mail').disabled = true;
    var result = check_emailExternal(email);
	if (result)
    {
      $('message_email_not_exists').style.display = 'none';
	  $('input_field_mail').className = 'input_bad';
	  $('message_email_exists').style.display='';
    }
    else
    {
      $('message_email_not_exists').style.display='';
	  $('message_email_exists').style.display='none';
    }
	$('input_field_mail').disabled = false;
  }
}

function check_imageCodeExternal(image_code)
{
	var result = getRequest({form:'register', 'check':1, 'element_name':'image_code', 'vals':'image_code='+escape(image_code)});
	if (result['ok'] == 1) return true;
	return false;
}

function check_emailExternal(email)
{
	var result = getRequest({form:'register', 'check':1, 'element_name':'mail', 'vals':'mail='+escape(email)});
	if (result['exist']) return true;
	return false;
}

function clearEmailMessages()
{
  $('message_email_not_exists').style.display='none';
  $('message_email_exists').style.display='none';
}

function checkEmailFormat(email)
{
	//var re = new RegExp('^[a-z0-9_+-]+@([a-z0-9-]+\.)+(com|net|org|mil|edu|gov|arpa|info|biz|inc|name|[a-z][a-z])$', 'i');
	var re = new RegExp('@.*\\.', 'i');
	if (re.test(email))
	{
		return true;
	}
	return false;
}

function checkForm()
{
	var c1 = checkEmail();
	var c2 = checkPasswordFirst();
	var c3 = checkPasswordConfirm();
	var c4 = checkImageCode();
	//var c5 = checkAgreement();
	//var c5 = true;
	
	//if (c1 && c2 && c3 && c4 && c5)
	if (c1 && c2 && c3 && c4)
	//if(111)
	{
		//alert(111);
		$('password_send').value = $('input_field_password_first').value
		document.register_new.submit();
		return true;
	}
	else
	{
		return false;
	}

}

function displayErrors(errors)
{
	for (var i=0; i < errors.length; i++)
	{
		if (errors[i].field)
		{
			for (var j=0; j<errors[i].field.length; j++)
			{
				if ($('input_field_'+errors[i].field[j]))
				{
					$('input_field_'+errors[i].field[j]).className = 'input_bad';
				}
				
				if ($('error_field_'+errors[i].field[j]))
				{
					$('error_field_'+errors[i].field[j]).innerHTML = errors[i].text;
					$('error_field_'+errors[i].field[j]).style.display='block';
				}
			}
		}
	}
	
	var form = $('register_new');
	//alert(form);
	for (var i = 0; i < form.elements.length; i++)
	{
		if (form.elements[i].id.indexOf('input_field_') == 0)
		{
			if (form.elements[i].className == 'input_std' && form.elements[i].className != 'input_bad')
			{
				form.elements[i].className = 'input_good';
			}
		}
	}
}

function clearError(name)
{
	if ($('input_field_'+name) && $('input_field_'+name).className != 'big_input')
	{
		$('input_field_'+name).className = 'big_input';
	}
	if ($('error_field_'+name) && $('error_field_'+name).style.display != 'none')
	{
		$('error_field_'+name).innerHTML = '';
		$('error_field_'+name).style.display = 'none';
	}
}

function displayOK(name)
{
	if ($('input_field_'+name) && $('input_field_'+name).className != 'input_good')
	{
		$('input_field_'+name).className = 'input_good';
	}

}

function changeImageCode()
{
	$('image_code_image').src='/i/0.gif';
	$('image_code_image').src='/image_code.php?reset=' + new Date().getTime();
	return false;
}

var old_inputs = new Array();

function displayErrorsOnLoad()
{
	var error_str = '';
	for (var i=0; i < errors.length; i++)
	{
		error_str += '<div>'+errors[i]+'</div>';
	}
	$('error_messages').innerHTML = error_str;
	//alert(inputs[0]);
	for (i=0; i < inputs.length; i++)
	{
		//alert($(inputs[i]));
		$(inputs[i]).className = 'input_bad';
	}
	old_inputs = inputs;
}