function renderForgotPasswordForm() {

  var url = '?';
  var pars = "action=render_forgot_password_form";

  var myAjax = new Ajax.Request(
    url,
    {
      method: 'post',
      postBody: pars,
      encoding: 'ISO-8859-1',
      onComplete: renderForgotPasswordFormResponse
    });
}

function renderForgotPasswordFormResponse(resp) {
  $('new_login_content_form').innerHTML = resp.responseText;
}


function processForgotPasswordForm() {

  var error = '';
  var email     = $('par_email').value;

  if(!validateEmail(email)) {
    error = 1;
    $('par_email').className = 'missing';
  }

  if(error == 1) {
    alert('Ojoj. Du måste fylla i en giltig e-postadress');
  } else {
    /* mash form data into an array */
    var qs_data = new Hash();
    qs_data.set('par_email', email);
    //alert(qs_data.toQueryString());

    var pars = 'action=set_new_password&' + qs_data.toQueryString();

    new Ajax.Request('?',
    {
      method: 'post',
      postBody: pars,
      encoding: 'ISO-8859-1',
      onComplete: function(resp) {
        if (resp.status == 200) {
          //$('new_login_content_form').innerHTML = 'yes please? can we have the response here instead...';
          $('new_login_content_form').innerHTML = resp.responseText;
        }
      }
    });
  }
}


function renderSignUpForm() {

  var url = '?';
  var pars = "action=render_sign_up_form";

  var myAjax = new Ajax.Request(
    url,
    {
      method: 'post',
      postBody: pars,
      encoding: 'ISO-8859-1',
      onComplete: renderSignUpFormResponse
    });
}

function renderSignUpFormResponse(resp) {
  $('ajax_content_inner').innerHTML = resp.responseText;
  $("ajax_content").style.display = 'block';
}


var email_status;

function processRegistrationForm() {

  var error = '';
  var first_name      = $('par_first_name').value;
  var family_name     = $('par_family_name').value;
  var email           = $('par_email').value;
  var address         = $('par_address').value;
  var zip             = $('par_zip').value;
  var city            = $('par_city').value;
  var birth_year      = $('par_birth_year').value;
  var phone           = $('par_phone').value;
  var mobile          = $('par_mobile').value;
  var gender_id 			= ($RF('registration_form', 'par_gender_id') == 1) ? 1:2;

  $('par_first_name').className = (!first_name) ? 'missing':'';
  if(!first_name) { error = 1; }
  $('par_family_name').className = (!family_name) ? 'missing':'';
  if(!family_name) { error = 1; }

  if(!validateEmail(email)) {
    error = 1;
    $('par_email').className = 'missing';
  } else {
		email_status = 0;
    //$('par_email').className = '';
    dupeCheckEmail(email);
    if(email_status == 1) {
      error = 1;
      $('par_email').className = 'missing';
    } else {
      $('par_email').className = '';
    }
  }

  $('par_address').className = (!address) ? 'missing':'';
  if(!address) { error = 1; }
  $('par_zip').className = (!zip) ? 'missing':'';
  if(!zip) { error = 1; }
  $('par_city').className = (!city) ? 'missing':'';
  if(!city) { error = 1; }
  $('par_birth_year').className = (!birth_year) ? 'missing':'';
  if(!birth_year) { error = 1; }

  //$('par_gender_id').className = (!gender_id) ? 'missing':'';
  //if(!gender_id) { error = 1; }

  if(error == 1) {
    alert('Ojoj. Dina uppgifter ser inte ut att stämma.');
  } else {
    /* mash form data into an array */
    var qs_data = new Hash();
    qs_data.set('par_first_name', first_name);
    qs_data.set('par_family_name', family_name);
    qs_data.set('par_email', email);
    qs_data.set('par_address', address);
    qs_data.set('par_zip', zip);
    qs_data.set('par_city', city);
    qs_data.set('par_birth_year', birth_year);
    qs_data.set('par_gender_id', gender_id);
    qs_data.set('par_phone', phone);
    qs_data.set('par_mobile', mobile);
    //alert(qs_data.toQueryString());

    var pars = 'action=process_sign_up_form&' + qs_data.toQueryString();

    new Ajax.Request('?',
    {
      method: 'post',
      postBody: pars,
      encoding: 'ISO-8859-1',
      onComplete: function(resp) {
        if (resp.status == 200) {
          $('reg_response_div').innerHTML = resp.responseText;
          $("reg_response_div").style.display = 'block';
          setTimeout(hideAjaxContent, 5500);
        }
      }
    });
  }
}

function dupeCheckEmail(email) {

  var url = '?';
  var pars = "action=dupe_check_email&email=" + email;

  var myAjax = new Ajax.Request(
    url,
    {
      method: 'post',
			asynchronous: false,
      postBody: pars,
      encoding: 'ISO-8859-1',
      onComplete: function(resp) {

  			if (resp.status == 200) {
			    email_status = resp.responseText;
				}
			}
    });
}

function hideAjaxContent() {
  $("ajax_content").style.display = 'none';
}

function validateEmail(elementValue) {
  var emailPattern = /^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
  //alert(emailPattern.test(elementValue));
  return emailPattern.test(elementValue);
}


function $RF(el, radioGroup) {
  if($(el).type && $(el).type.toLowerCase() == 'radio') {
    var radioGroup = $(el).name;
    var el = $(el).form;
  } else if ($(el).tagName.toLowerCase() != 'form') {
    return false;
  }

  var checked = $(el).getInputs('radio', radioGroup).find(
    function(re) {return re.checked;}
  );
  return (checked) ? $F(checked) : null;
}


function hideLoginError() {
  $("login_error").style.display = 'none';
}