
var form = "";
var submitted = false;
var error = false;
var error_message = "";

String.prototype.trim = function() { return this.replace(/^\s+|\s+$/, ''); };

function check_input(field_name, field_size, message)
{
  if (form.elements[field_name] && (form.elements[field_name].type != "hidden"))
  {
    var field_value = form.elements[field_name].value;

    if (field_value.length < field_size)
    {
      error_message = error_message + "* " + message + "\n";
      error = true;
    }
  }
}

function check_select(field_name, field_default, message)
{
  if (form.elements[field_name] && (form.elements[field_name].type != "hidden"))
  {
    var field_value = form.elements[field_name].value;

    if (field_value == field_default)
	{
      error_message = error_message + "* " + message + "\n";
      error = true;
    }
  }
}

function check_double_input(field_name_1, field_name_2, field_size, message_1, message_2)
{
  if (form.elements[field_name_1] && (form.elements[field_name_1].type != "hidden"))
  {
    var password = form.elements[field_name_1].value;
    var confirmation = form.elements[field_name_2].value;

    if (password.length < field_size)
    {
      error_message = error_message + "* " + message_1 + "\n";
      error = true;
    }
    else if (password != confirmation)
    {
      error_message = error_message + "* " + message_2 + "\n";
      error = true;
    }
  }
}

function check_alphanumeric_input(field_name, message)
{
  var regex=/^[0-9A-Za-z]+$/;
  if (!regex.test(form.elements[field_name]))
	{
    error_message = error_message + "* " + message + "\n";
    error = true;
	}
}

function check_form(form_name)
{
  if (submitted == true)
  {
    alert("Ya ha enviado el formulario. Pulse Aceptar y espere a que termine el proceso.");
    return false;
  }

  error = false;
  form = form_name;
  error_message = "Hay errores en su formulario!\nPor favor, haga las siguientes correciones:\n\n";

  check_input("firstname", 2, "Su mombre debe tener al menos 2 caracteres.");
  check_input("lastname", 2, "Sus apellidos deben tener al menos 2 caracteres.");
  check_input("identification", 2, "Su numero de identificacion debe tener al menos 2 caracteres.");
  check_input("identification_type", 1, "Su tipo de identificacion debe tener al menos 1 caracter.");
  check_input("dob", 10, "Su fecha de nacimiento debe tener al menos 10 caracteres.");
  check_select("province", "", "Debe seleccionar una provincia.");
  check_input("postcode", 4, "Su codigo postal debe tener al menos 4 caracteres.");
  check_input("telephone", 3, "Su numero de telefono debe tener al menos 3 caracteres.");
  check_double_input("email", "email_confirmation", 6, "Su direccion de E-Mail debe tener al menos 6 caracteres.", "La confirmacion del E-Mail debe ser igual al E-Mail.");
  check_input("alias", 1, "Su seudonimo debe tener al menos 1 caracter.");
//  check_alphanumeric_input("alias", "Su seudonimo contiene caracteres no permitidos.")
  check_double_input("password", "password_confirmation", 4, "Su contraseņa debe tener al menos 4 caracteres.", "La confirmacion de la contraseņa debe ser igual a la contraseņa.");
  check_input("captcha", 5, "El codigo de verificacion debe tener 5 caracteres.");

  if ( form.elements['accept'] && !(form.elements['accept'].checked) )
  {
    error_message = error_message + "* Debe aceptar las Condiciones de uso y la Politica de privacidad\n";
    error = true;
  }

  if (error == true)
  {
    alert(error_message);
    return false;
  }
  else
  {
    submitted = true;
    return true;
  }
}

function createHttpRequest()
{
  if (window.ActiveXObject) 
    xmlHttpRequest = new ActiveXObject('Microsoft.XMLHTTP');
  else 
    if (window.XMLHttpRequest) 
      xmlHttpRequest = new XMLHttpRequest();

  return xmlHttpRequest;
}

function verify_alias()
{
  create_account.elements["alias"].value = create_account.elements["alias"].value.trim();

  if ( create_account.elements["alias"].value == "" )
  {
    create_account.elements["alias"].focus();
    alert("Debe indicar el seudonimo.");
    return;
  }

  var xmlHttpRequest = null;
  xmlHttpRequest = createHttpRequest();
  if (xmlHttpRequest==null)
  {
    alert ('!Su navegador no soporta AJAX!');
    return;
  }
  
  create_account.elements["verify"].disabled = true;
  mySpan.innerHTML = "Verificando...";
  mySpan.style.border = "1px solid #FFCC00"; 
  mySpan.style.backgroundColor = "#FFFFCC";
  mySpan.style.padding = "2px";

  xmlHttpRequest.onreadystatechange = function()
  {
    if ( xmlHttpRequest.readyState == 4 )
    {
      if ( xmlHttpRequest.responseText == 'ok' )
      {
        mySpan.innerHTML = "El seudonimo esta disponible.";
		mySpan.style.border = "1px solid #33CC33"; 
		mySpan.style.backgroundColor = "#EBFFCE";
		mySpan.style.padding = "2px";
		//mySpan.className = "messageStackSuccess";
      }
	  else
	  {
        mySpan.innerHTML = "El seudonimo NO esta disponible.";
		mySpan.style.border = "1px solid #DD3C10"; 
		mySpan.style.backgroundColor = "#FFEBE8";
		mySpan.style.padding = "2px";
		//mySpan.className = "messageStackError";
	  }
      create_account.elements["verify"].disabled = false;
    }
  }

  xmlHttpRequest.open('POST','verify-alias.php', true);
  xmlHttpRequest.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  xmlHttpRequest.send('alias=' + create_account.elements["alias"].value); 
}
