/**
 * Валидация поля формы
 *
 * @param Object field
 */
var validate = function(field, noAjax)
{
  var emptyId = $(field).attr('id') + '-empty';
  var name = $(field).attr('name');
  var val = $(field).val();
  var valid = true;

  if (name) {
    if (name != 'u_password_' || name != 'u_eula') {
      if (!val) {
        $('#' + emptyId).show('slow');
        valid = false;
      } else {
        $('#' + emptyId).hide('slow');
      }
    }
  }

  if (name == 'u_email' && val) {
    if (!noAjax) {
      $.getJSON("register", {check:val}, function(json) {
        if (json.unique) {
          $('#u_email-unique').hide('slow');
        } else {
          $('#u_email-unique').show('slow');
          valid = false;
        }
      });
    }
  } else {
    $('#u_email-unique').hide('slow');
  }

  if (name == 'u_eula') {
    if (!$(field).attr('checked')) {
      $('#' + emptyId).show('slow');
      valid = false;
    } else {
      $('#' + emptyId).hide('slow');
    }
  }

  if (name == 'u_password' && val.length < 6) {
    $('#u_password-short').show('slow');
    valid = false;
  } else {
    $('#u_password-short').hide('slow');
  }

  if (name == 'u_password' || name == 'u_password_') {
    if ($('#u_password').val() == $('#u_password_').val()) {
      $('#u_password_-empty').hide('slow');
    } else {
      if ($('#u_password_').val()) {
        $('#u_password_-empty').show('slow');
        valid = false;
      }
    }
  }

  if (name == 'u_email' && val) {
    var test = val.search(/^[\w][\w\.-]*[\w]@[\w][\w\.-]*[\w]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/);
    if (test == 0 ) $('#u_email-wrong').hide('slow');
    if (test == -1) {
      $('#u_email-wrong').show('slow');
      valid = false;
    }
  }

  if (name == 'u_password' && val) {
    var test = val.search(/[^a-zA-Z0-9.-]/);
    if (test == -1 ) {
      $('#u_password-wrong').hide('slow');
    } else {
      $('#u_password-wrong').show('slow');
      valid = false;
    }
  }

  return valid;
}

var register = function(form, submit)
{
  var valid = true;
  $(form).find("input, select, textarea").each(function(){
    valid = valid && validate($(this), 1);
  });

  if (valid) {
    if ($(form).find('.submit').hasClass('disabled')) return false;
    $(form).find('.submit').addClass('disabled');
  }

  if (valid && submit) {
    $(form).submit();
    return false;
  }
  return valid;
}

$(function(){
  $('a.button').click(function(){
    $(this).blur();
  });
})
