function pwd_enc(pwd)
{
	// Remove leading spaces and carriage returns
	while ((pwd.substring(0,1) == ' ') || (pwd.substring(0,1) == '\\r'))
	{
		pwd = pwd.substring(1,pwd.length);
	}

	// Remove trailing spaces and carriage returns
	while ((pwd.substring(pwd.length-1,pwd.length) == ' ') || (pwd.substring(pwd.length-1,pwd.length) == '\\r'))
	{
		pwd = pwd.substring(0,pwd.length-1);
	}

	return hex_md5(pwd.toLowerCase());
}

function valid_user()
{
  var reg1 = /^[\W\w]{5,}$/;
  var reg2 = /^(\w([-._\w]*\w)*@(\w[-_\w]*\w\.)+\w{2,9})$/;

	if(document.addUser.username.value == "") 
	{
		alert("Please give a username");
		return false;
	}
  else if(document.addUser.name.value == "")
  {
      alert("Please give a name");
      return false;
  }
  else if(document.addUser.admin_level.value == "")
  {
      alert("Please select an admin level");
      return false;
  }

  if(document.addUser.task.value == "add")
  {
      if(document.addUser.password1.value == "")
      {
          alert("Please give a password");
          return false;
      }
      else if(document.addUser.password2.value == "")
      {
          alert("Please repeat the password");
          return false;
      }
      else if(document.addUser.password1.value != document.addUser.password2.value)
      {
          alert("Passwords do not match");
          return false;
      }
      else if(!reg1.test(document.addUser.username.value) || !reg1.test(document.addUser.password1.value))
      {
          alert("Username and password must be at least 5 characters");
          return false;
      }
  
	  document.addUser.password1.value = pwd_enc(document.addUser.password1.value);
	  document.addUser.password2.value = pwd_enc(document.addUser.password2.value);
  }
  else
  {
    if(!reg1.test(document.addUser.username.value))
    {
        alert("Username must be at least 5 characters");
        return false;
    }
    if(document.addUser.password.value != "")
    {
        document.addUser.password.value = pwd_enc(document.addUser.password.value);
    }
  }

	return true;
}

function valid_client()
{
  var reg1 = /^[\W\w]{5,}$/;
  var reg2 = /^(\w([-._\w]*\w)*@(\w[-_\w]*\w\.)+\w{2,9})$/;

  if(document.addClient.username.value == "") 
  {
    alert("Please give a username");
    return false;
  }
  else if(document.addClient.name.value == "")
  {
      alert("Please give a name");
      return false;
  }
  else if(document.addClient.email.value == "")
  {
      alert("Please give an email address");
      return false;
  }
  else if(!reg2.test(document.addClient.email.value))
  {
      alert("Invalid email address");
      return false;
  }
  else if(document.addClient.address1.value == "")
  {
      alert("Please give an address");
      return false;
  }
  else if(document.addClient.city.value == "")
  {
      alert("Please give a city");
      return false;
  }
  else if(document.addClient.post_code.value == "")
  {
      alert("Please give a post code");
      return false;
  }

  if(document.addClient.task.value == "add")
  {
      if(document.addClient.password1.value == "")
      {
          alert("Please give a password");
          return false;
      }
      else if(document.addClient.password2.value == "")
      {
          alert("Please repeat the password");
          return false;
      }
      else if(document.addClient.password1.value != document.addClient.password2.value)
      {
          alert("Passwords do not match");
          return false;
      }
      else if(!reg1.test(document.addClient.username.value) || !reg1.test(document.addClient.password1.value))
      {
          alert("Username and password must be at least 5 characters");
          return false;
      }
  
      document.addClient.password1.value = pwd_enc(document.addClient.password1.value);
      document.addClient.password2.value = pwd_enc(document.addClient.password2.value);
  }
  else
  {
    if(!reg1.test(document.addClient.username.value))
    {
        alert("Username must be at least 5 characters");
        return false;
    }

    if(document.addClient.password.value != "")
    {
        document.addClient.password.value = pwd_enc(document.addClient.password.value);
    }
  }

  return true;
}

function valid_page()
{
	if(document.addPage.title.value == "") 
	{
		alert("Please give a title");
		return false;
	}

	return true;
}

function valid_item()
{
	if(document.addItem.title.value == "") 
	{
		alert("Please give a title");
		return false;
	}

	return true;
}

function valid_link()
{
	if(document.addLink.title.value == "") 
	{
		alert("Please give a title");
		return false;
	}
	else if(document.addLink.url.value == "") 
	{
		alert("Please give a URL");
		return false;
	}

	return true;
}

function valid_family()
{
  if(document.addFamily.name.value == "") 
  {
    alert("Please give a name");
    return false;
  }
  else if(document.addFamily.category_id.value == "") 
  {
    alert("Please select a category");
    return false;
  }

  return true;
}

function valid_genus()
{
  if(document.addGenus.name.value == "") 
  {
    alert("Please give a name");
    return false;
  }
  else if(document.addGenus.family_id.value == "") 
  {
    alert("Please select a family");
    return false;
  }

  return true;
}

function valid_creature()
{
  if(document.addCreature.common_name.value == "") 
  {
    alert("Please give a common name");
    return false;
  }
  else if(document.addCreature.latin_name.value == "") 
  {
    alert("Please give a latin name");
    return false;
  }
  else if(document.addCreature.genus_id.value == "") 
  {
    alert("Please select a genus");
    return false;
  }
  else if(!document.addCreature.price.value == "" && isNaN(document.addCreature.price.value))
  {
    alert("Price must be numeric");
    return false;
  }

  return true;
}

function valid_image()
{
	if(document.addImage.name.value == "") 
	{
		alert("Please give a name");
		return false;
	}
	if(document.addImage.category.value == "") 
	{
		alert("Please give a category");
		return false;
	}
	else if(document.addImage.imageFile.value == "") 
	{
		alert("Please select an image file");
		return false;
	}

	return true;
}

function valid_login()
{
	if(document.login.username.value == "" || document.login.password.value == "")
	{
		alert("Please give a username and password");
		return false;
	}

	document.login.password.value = pwd_enc(document.login.password.value);
	return true;
}