/*//////////////////////////////////////////////////////////////////////////////////////////

Name:	formValidation.js

Version:  (Date, Author, Version Number, Changes)

24/07/05 
[P.P]
Version 1
		
		Defines the following functions:
		* ExplodeDate()
		* ValidateNonBlank()
		* ValidatePostcode()
		* ValidateTelNumber()
		* ValidateEmailAddress()
		* ValidateDate()
		
19/08/05
[P.P.]
Version 1.1
	* Date format accepts '-' or '/' separator
	* Fixed validation bugs in email and tel checks


//////////////////////////////////////////////////////////////////////////////////////////*/



function ExplodeDate(str, delimiter){
	
var arr = new Array(3);

arr[0] = str.substr(0, 2);
arr[1] = str.substr(3, 2);
arr[2] = str.substr(6, 4);

return arr;
	
}



function ValidateNonBlank(str){

if( str == "" )
  return "is required";
else
  return true;
}



function ValidateNaturalNumber(str){
	
var numberRegex = new RegExp("^\\d+$");
var nonBlank;

if((nonBlank = ValidateNonBlank(str)) != true)
  return nonBlank;

if( numberRegex.test(str) )
  return true;
else
  return "is not a valid number";
	
}



function ValidatePostcode(str){
	
var postcodeRegex = new RegExp("^(\\w+) (\\w+)$");
var nonBlank;

if((nonBlank = ValidateNonBlank(str)) != true)
  return nonBlank;
  
if( postcodeRegex.test(str) )
  return true;
else
  return "is not recognised as valid";
	
}



function ValidateTelNumber(str){

var telRegex = new RegExp("^(\\(?)(\\d+)(\\)?)(\\d+)$");
var nonBlank;

if((nonBlank = ValidateNonBlank(str)) != true)
  return nonBlank;
  
if( telRegex.test(str) )
  return true;

else
  return "is not recognised as valid";

}



function ValidateEmailAddress(str){
	
var emailRegex = new RegExp("^\\w+@\\w+\\.\\w+\\.?\\w*$");
var nonBlank;

if((nonBlank = ValidateNonBlank(str)) != true)
  return nonBlank;
  
if( emailRegex.test(str) )
  return true;

else
  return "is not recognised as valid";
  
}



function ValidateDate(str, required){
	
var dateRegex = new RegExp("^\\d{2}-\\d{2}-\\d{4}$|^\\d{2}\/\\d{2}\/\\d{4}$");
var nonBlank;

if(required == true){
  if((nonBlank = ValidateNonBlank(str)) != true){
    return nonBlank;
    }
  }

else
  if(str == "")
    return true;

if( dateRegex.test(str) )
  return true;

else
  return "is not correctly formatted";

}