$(document).ready(function () {
})

Array.prototype.indexAt = function(){ 
  for(var i = 0; i < this.length; i++){ 
    if(this[i]===arguments[0]) 
      return i; 
  }; 
  return -1; 
}; 

$(function() {
  $('#signupform').validate(
    '/signup/validate/',
    {
      fields: ['email'],
      dom: $('#id_email'),
      event: 'blur',
      callback: emailValidated,
      precallback: preValidate
      }
    );
  $('#signupform').validate(
    '/signup/validate/',
    {
      fields: ['password1'],
      dom: $('#id_password1'),
      event: 'blur',
      callback: password1Validated,
      precallback: preValidate
      }
    );
  $('#signupform').validate(
    '/signup/validate/',
    {
      fields: ['password1', 'password2'],
      dom: $('#id_password2'),
      event: 'blur',
      callback: passwordValidated,
      precallback: preValidate
      }
    );
  $('#signupform').validate('/signup/validate/',{type: 'table'});
});

function emailValidated(data, form) {
  clearValidation('id_email');
  if (data['email']['valid'] == true) {
    closePrompt('#id_email');
    addOk('email');
  }
  else {
    // Invalid address display error
    openPrompt('#id_email', data['email']['error'], "body");
    addError('email');
  }
}

function password1Validated(data, form) {
  clearValidation('id_password1');
  if (data['password1']['valid']) {
    // Is not empty
    closePrompt('#id_password1');
  }
  else {
    openPrompt('#id_password1', data['password1']['error'], "body");
    addError('password1');
  }
}

function passwordValidated(data, form) {
  clearValidation('id_password2');
  if (data['password2']['valid']) {
    // Passwords match
    closePrompt('#id_password2');
    addOk('password1');
    addOk('password2');
  }
  else {
    openPrompt('#id_password2', data['password2']['error'], "body");
    addError('password2');
  }
}
