//
//	Define Validate class constructor
//

function Validate() {}

Validate.prototype.isOnlyAlphaNumeric = function(string)
{
	var invalidCharactersRegExp = /[^a-z\d ]/i;
	var isValid = !(invalidCharactersRegExp.test(string));
	
	return isValid;
}

Validate.prototype.isOnlyAlphaNumericNoSpace = function(string)
{
   var invalidCharactersRegExp = /[^a-z\d]/i;
   var isValid = !(invalidCharactersRegExp.test(string));
      
   return isValid;
}

Validate.prototype.isOnlyAlphabetic = function(string)
{
	invalidCharactersRegExp = /[^a-z ]/i;
	var isValid = !(invalidCharactersRegExp.test(string));
	
	return isValid;
}

Validate.prototype.isOnlyNumeric = function(string)
{
	var invalidCharactersRegExp = /[^\d]/;
	var isValid = !(invalidCharactersRegExp.test(string));
	
	return isValid;
}

Validate.prototype.isValidInteger = function(string)
{
	var invalidCharactersRegExp = /[^\d-]/;
	var isValid = !(invalidCharactersRegExp.test(string));
	
	return isValid;
}

Validate.prototype.isValidFloatingPoint = function(string)
{
	var invalidCharactersRegExp = /[^\d\.-]/;
	var isValid = !(invalidCharactersRegExp.test(string));
	
	return isValid;
}

Validate.prototype.isValidAge = function(age)
{
	var isValid = false;
	if (this.isOnlyNumeric(age))
	{
		isValid = (parseInt(age) > 0 && parseInt(age) < 140)
	}
	
	return isValid;
}

Validate.prototype.isValidPassword = function(password)
{
	var invalidCharactersRegExp = /[^a-z\d]/i
	var isValid = !(invalidCharactersRegExp.test(password));
	if (isValid)
	{
		isValid = (password.length >= 8 && password.length <= 16);
	}
	return isValid;
}

Validate.prototype.isValidITelephoneNum = function(telephoneNum)
{
   var validFormatRegExp = /^(\+\d{1,3} ?)?(\(\d{1,5}\)|\d{1,5}) ?\d{3,4} ?\d{0,7}(?: (x|xtn|extn?|extension)\.? ?\d{1,5})?$/i;
   var isValid = validFormatRegExp.test(telephoneNum);
   return isValid;
}

Validate.prototype.isValidNTelephoneNum = function(telephoneNum)
{
   var validFormatRegExp = /^\d{3}-\d{3}-\d{4}$/;
   var isValid = validFormatRegExp.test(telephoneNum);
   return isValid;
}

Validate.prototype.isValidPostalCode = function(postalCode)
{
   var validFormat = /^(\d{5}(-\d{4})?|[a-z]{1,2}[\da-z]{1,2} ?\d[a-z][a-z])$/i
   var isValid = validFormat.test(postalCode);
   return isValid;
}

Validate.prototype.isValidZipCode = function(zipCode)
{
   var validFormat = /^(\d{5})(-\d{4})?$/
   var isValid = validFormat.test(zipCode);
   return isValid;
}

Validate.prototype.isValidEmail = function(email)
{
   var validFormatRegExp = /^\w(\.?\w)*@\w(\.?[-\w])*\.([a-z]{3}(\.[a-z]{2})?|[a-z]{2}(\.[a-z]{2})?)$/i
   var isValid = validFormatRegExp.test(email);
   return isValid;
}
