///<Sumary>
///This function checks that the data entered by the external agents is valid
///</Sumary>
function ValidateUserName(username, password)
{   
   var errors = new ErrorCollection();
   var validEmail = CheckEmailAddress(username);
   var validPassword = true;
   
   if (!validEmail)
   {
		errors.AddError(Messages.EMAIL_ADDRESS_INVALID);
   } 
   if (password == '')
   {
        validPassword = false;
        errors.AddError(Messages.INVALID_USER_DETAILS);
   }
   
   if (!validEmail || !validPassword)
   {
		errors.DisplayAll(null, null, false, false);
        return false;
   } 
   else
   {
      return true;
   }
   return false;
}

///<Sumary>
///This function checks that the email address is valid
///</Sumary>
function CheckEmailAddress(emailAddress) 
{
	var at = "@";
	var dot = ".";
	var atIndex = emailAddress.indexOf(at);
	var emailAddressLength = emailAddress.length;
	var dotIndex = emailAddress.indexOf(dot);
	if (emailAddress.indexOf(at) == -1)
	{
	   return false;
	}

	if (emailAddress.indexOf(at) == -1 || emailAddress.indexOf(at) == 0 || emailAddress.indexOf(at)==emailAddressLength)
	{
	   return false;
	}

	if (emailAddress.indexOf(dot) == -1 || emailAddress.indexOf(dot) == 0 || emailAddress.indexOf(dot)==emailAddressLength)
	{
		return false;
	}

	 if (emailAddress.indexOf(at,(atIndex + 1)) != -1)
	 {
		return false;
	 }

	 if (emailAddress.substring(atIndex-1, atIndex)==dot || emailAddress.substring(atIndex + 1, atIndex + 2) == dot)
	 {
		return false;
	 }

	 if (emailAddress.indexOf(dot,(atIndex + 2)) == -1)
	 {
		return false;
	 }
	
	 if (emailAddress.indexOf(" ") != -1)
	 {
		return false;
	 }
	 return true;
}
