/**
 * Валидация поля формы
 *
 * @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 != 'passw-r' || name != 'agree' || name != 'agree') {
      if (!val) {
        $('#' + emptyId).show('slow');
        valid = false;
      } else {
        $('#' + emptyId).hide('slow');
      }
    }
  }

  if (name == 'email' && val) {
    if (!noAjax) {
      $.getJSON("registration", {umail:val}, function(json) {
        if (json.unique) {
          $('#email-unique').hide('slow');
        } else {
          $('#email-unique').show('slow');
          valid = false;
        }
      });
    }
  } else {
    $('#email-unique').hide('slow');
  }

  if (name == 'login' && val) {
    if (!noAjax) {
      $.getJSON("registration", {ulogin:val}, function(json) {
        if (json.unique) {
          $('#login-unique').hide('slow');
        } else {
          $('#login-unique').show('slow');
          valid = false;
        }
      });
    }
  } else {
    $('#login-unique').hide('slow');
  }

  if (name == 'login' && val.length < 4) {
    $('#login-short').show('slow');
    valid = false;
  } else {
    $('#login-short').hide('slow');
  }

  if (name == 'agree') {
    if (!$(field).attr('checked')) {
      $('#' + emptyId).show('slow');
      valid = false;
    } else {
      $('#' + emptyId).hide('slow');
    }
  }

  if (name == 'passw' && val.length < 6) {
    $('#pwd-short').show('slow');
    valid = false;
  } else {
    $('#pwd-short').hide('slow');
  }

  if (name == 'passw' || name == 'passw-r') {
    if ($('#pwd').val() == $('#pwdr').val()) {
      $('#pwdr-empty').hide('slow');
    } else {
      if ($('#pwdr').val()) {
        $('#pwdr-empty').show('slow');
        valid = false;
      }
    }
  }

  if (name == 'email' && val) {
    var test = val.search(/^[\w][\w\.-]*[\w]@[\w][\w\.-]*[\w]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/);
    if (test == 0 ) $('#email-wrong').hide('slow');
    if (test == -1) {
      $('#email-wrong').show('slow');
      valid = false;
    }
  }

  if (name == 'login' && val) {
    var test = val.search(/[^a-zA-Z0-9.-]/);
    if (test == -1 ) {
      $('#login-wrong').hide('slow');
    } else {
      $('#login-wrong').show('slow');
      valid = false;
    }
  }

  return valid;
}

var getCaptcha = function(url)
{
  $('#captcha-img').attr('src', url + '&r=' + Math.random());
  return false;
}

var register = function(form)
{
  var valid = true;
  $(form.elements).each(function(){
    var elem = $(this).get(0);
    valid = valid && validate(elem, 1);
  });

  return valid;
}
