function createUser(event) {
    if(event.target.id != 'user_cancel'){
        var error = null;
        if($('user_email_address').getValue().trim() == '' || $('user_password').getValue().trim() == '' || $('user_password').getValue() != $('passwordConfirmation').getValue()) {
            error = 'You have either not provided an Email address, Password or your Password Confirmation does not match.';
        } else if(!$('user_email_address').getValue().match(/@.*\./)) {
            error = 'You have provided an invalid email address.';
        }
        
        if(error == null) {
            submitUserForm(event);
        } else {
            $('user_error').show().update(error);
        }
    }
    event.stop();
}

function cancelUser(event) {
    Simpltry.Dialog.removeAll();
    event.stop();
}

function submitUserForm(event) {
    $('user_cancel').hide();
    $('user_submit').hide();
    $('user_indicator').show();
    var formToSubmit = event.target;
    new Ajax(formToSubmit.action, {
        onComplete: userCallback,
        method: 'post'
    }).request(formToSubmit);
}

function userCallback (text) {
  var json = Json.evaluate(this.transport.getResponseHeader("X-JSON"));
  if(json.success) {
    Simpltry.Dialog.removeAll();
    loginUser();
  } else {
    $('user_error').show().update(text);
    $('user_cancel').show();
    $('user_submit').show();
    $('user_indicator').hide();
  }
}

function submitLoginUser(event) {
  submitUserForm(event);
  event.stop();
}

function loginUser () {
    $('logoutLink').show();
    $('registerLink').hide();
    $('loginLink').hide();
}

function logoutUser () {
    $('logoutLink').hide();
    $('registerLink').show();
    $('loginLink').show();
    new Ajax('/user/logout').request();
}

function saveAddress (known_address_id) {
    new Ajax('/user/save_address/' + known_address_id, {method:"get"}).request();
}

function deleteSaved (saved_lookup_id) {
    new Ajax('/user/delete_saved/' + saved_lookup_id, {method:"get"}).request();
}

function emailPassword() {
    new Ajax('/user/email_password', {
        onComplete:emailPasswordCallback}).request($('user_form'));
}

function emailPasswordCallback(text) {
  var json = Json.evaluate(this.transport.getResponseHeader("X-JSON"));
  if(json.success) {
    Simpltry.Dialog.removeAll();
    statusMessage("Password sent, please check your email.",{autofadeDuration:4.0});
  } else {
    $('user_error').update(text);
  }
}