$(document).ready(function() {
  Controller.prototype.activateFormValidation = activateFormValidation;
  Controller.prototype.activateSubmitButton = activateSubmitButton;
  Controller.prototype.activateAutoUserPassCheck = activateAutoUserPassCheck;
  Controller.prototype.activateCaptchaRefresh = activateCaptchaRefresh;

  controller.activateFormValidation();
  controller.activateSubmitButton();
  controller.activateAutoUserPassCheck();
  // FINISH THIS...
  controller.activateCaptchaRefresh(); // FINISH THIS...
  // FINISH THIS...

  controller.focusField("#trial_right input[name=first_name]");

  // Variables
  Controller.prototype.userPassAvailable = true;
});

function activateFormValidation() {
  controller.validator = $(document.free_trial).validate({
    rules: {
      first_name: 'required',
      last_name: 'required',
      email: {
        required: true,
        email: true
      },
      telephone: 'required',
      freetrial_username: {
        required: true,
        minlength: 5
      },
      freetrial_password: {
        required: true,
        minlength: 4
      },
      password_confirm: {
        required: true,
        equalTo: 'input[name=freetrial_password]'
      },
      captcha: 'required',
      address: 'required',
      city: 'required',
      state: 'required',
      zip: 'required',
      country: 'required',
      timezone: 'required',
      dst: 'required'
    },
    messages: {
      first_name: '',
      last_name: '',
      email: {
        required: '',
        email: ''
      },
      telephone: '',
      freetrial_username: {
        required: '',
        minlength: ''
      },
      freetrial_password: {
        required: '',
        minlength: ''
      },
      password_confirm: {
        required: '',
        equalTo: ''
      },
      captcha: '',
      company: '',
      address: '',
      city: '',
      state: '',
      zip: '',
      country: '',
      timezone: '',
      dst: ''
    }
  });
}

function activateSubmitButton() {
  $("#free_trial").click(function() {

    if (!controller.userPassAvailable) {
      alert("The username you are requesting is not available. Please choose another before submitting.");

      return false;
    } else {
      if ($(document.free_trial).valid()) {
        document.free_trial.submit();
      }
    }

    return false;
  });
}

function activateAutoUserPassCheck() {
  $("#trial_right input[name=freetrial_username], #trial_right input[name=freetrial_password]").change(function() {
    var username = $("input[name=freetrial_username]").val();
    var password = $("input[name=freetrial_password]").val();
    if (username.length > 0 && password.length > 0) {
      $("#trial_right span.username_feedback")
        .removeClass('username_taken')
        .removeClass('username_available')
        .addClass('username_checking');

      $.post(base_url+'index.php/trial/checkUsernamePassword', {username: username, password: password}, function(response) {
        if (response == '1') { // Username/password exists.
          controller.userPassAvailable = false;
          $("#trial_right span.username_feedback").removeClass('username_checking').addClass('username_taken');
        } else { // Doesn't exist.
          controller.userPassAvailable = true;
          $("#trial_right span.username_feedback").removeClass('username_checking').addClass('username_available');
        }
      }, 'text');
    }

    return false;
  });
}

function activateCaptchaRefresh() {
  $("#refreshCaptcha").click(function() {
    return controller.refreshCaptcha($("img#captcha_image"), $("div#trial_right input[name=captcha_verify]"));
  });
}

