var x;

function setRetrieveFieldEnabled(enable)
{
	var u = getByID("password");
	u.disabled = !enable;
	u.style.backgroundColor = enable ? "#fff" : "#ddd";
}

function checkEmail()
{
	var c_mail = getByID("email_check");
	var f_mail = Trim(getByID("password").value);
	getByID("password").value = f_mail;
	if(f_mail == ""){
		c_mail.innerHTML = "please insert your email address";
	} else {
		var regex = /^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;
		if(regex.test(f_mail)){
			checkEmailAvailability(f_mail);
		} else {
			c_mail.innerHTML = "please insert a valid email address";
		}
	}
}

function checkEmailAvailability(email)
{
	x = getXMLobject
	(
		"GET",
		"ajax.php?action=checkEmail&email=" + escape(email),
		function() // onLoad
		{
			getByID("password").disabled = false;
			getByID("submit").disabled = false;
			if(x.responseText == "ok"){
				getByID("email_check").innerHTML = "attention: email doesn't exist...";
			} else {
				getByID("email_check").innerHTML = "ok";
			}
		},
		function() // onFault
		{
			getByID("password").disabled = false;
			getByID("submit").disabled = false;
			alertError("There was a problem checking email availability. Please try again later...");
		},
		function() // wait..
		{
			getByID("email_check").innerHTML = "checking email availability...";
			getByID("password").disabled = true;
			getByID("submit").disabled = true;
		},
		true
	);
}

function randomPassword(length)
{
  chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
  pass = "";
  for(x=0;x<length;x++)
  {
    i = Math.floor(Math.random() * 62);
    pass += chars.charAt(i);
  }
  return pass;
}

function jsRetrievePassword()
{
	var qstring  = "";
	var email = getByID("password").value;
	var newPassword = randomPassword(5);

	if (email == ""){
		getByID("password").focus();
		alertError("You have not inserted your email account!");
		return;
	}
	qstring += "action=retrievePassword&";
	qstring += "email=" + escape(email) + "&passwordmd5=" + hex_md5(newPassword) + "&password=" + escape(newPassword);
	x = getXMLobject("GET", "ajax.php?" + qstring, retrieveOnLoad, retrieveOnFault, retrieveWait, true);
}

function jsRetrieveUsername()
{
	var qstring  = "";
	var email = getByID("password").value;

	if (email == ""){
		getByID("password").focus();
		alertError("You have not inserted your email account!");
		return;
	}
	qstring += "action=retrieveUsername&";
	qstring += "email=" + escape(email);
	x = getXMLobject("GET", "ajax.php?" + qstring, retrieveOnLoad, retrieveOnFault, retrieveWait, true);
}

function retrieveWait()
{
	setRetrieveFieldEnabled(false);
}
function retrieveOnLoad()
{
	if(x.responseText == "ok"){
		document.location.href = "ok_retrieve.php";
	} else {
		alertError("Error. Please try again!");
		setRetrieveFieldEnabled(true);
		getByID("password").focus();
	}
}
function retrieveOnFault()
{
	alertError("There was an error with server connection. Please try again!");
	setRetrieveFieldEnabled(true);
}