/**********************************************************
'*            Copyright©2001 Emil Malinov                 *
'*                  www.toomba.net                        *
'*********************************************************/

var rxAnyChar = /./i;         //match any character
var rxWhitespace = /[\s]/;    //match whitespace characters
var rxAlpha = /[^a-z\s]/i;    //match any non alphabetic character or whitespace character
var rxNumeric = /[^0-9]/i;    //match any non digit character
var rxFNumeric = /[^0-9\.]/i; //match any non digit character apart from .
var rxDot = /\./i;            //match .
var rxAlphaNumeric = /[^a-z0-9\s]/i;
var rxEmail = /^\w+@\w+\.(((com|net|org|edu|gov|mil|[a-z]{2})$)|(((com|net|org|edu|gov|mil)\.[a-z]{2})$))/i
var rxBadChar = /[^a-z0-9_\s]/i; //for username and password validation
var rxBadFirstChar = /[^a-z]/i;   //for username validation

function isValid(str, pattern) {
	return !pattern.test(str);
}

function isBlank(str) {
  return (isEmpty(str.replace(/\s/g, ""))) ? true : false;
}

function isEmpty(str) {
	return !rxAnyChar.test(str);
}

function isAlpha(str) {
  return !rxAlpha.test(str);
}

function isAlphaUpTo(str, num) {
  return (isAlpha(str) && str.length <= num) ? true : false;
}

function isNumeric(str) {
  return !rxNumeric.test(str)
}

function isNumericUpTo(str, num) {
  return (isNumeric(str) && str.length <= num) ? true : false;  
}

function isFNumeric(str) {
  return !rxFNumeric.test(str)
}

function isInt(str) {
  return !isNaN(parseInt(str)) && !rxDot.test(str) && isNumeric(str);        
}

function isFloat(str) {
  return !isNaN(parseFloat(str)) && isFNumeric(str);
}

function isIntBetween(str, num1, num2) {
  return isInt(str) && (parseInt(str) >= num1) && (parseInt(str) <= num2);
}

function isFloatBetween(str, num1, num2) {
  return isFloat(str) && (parseFloat(str) >= num1) && (parseFloat(str) <= num2); 
}

function isEmail(str) {
  return str.match(rxEmail);  
}

function hasWhitespace(str) {
  return str.match(rxWhitespace);
}

function isAlphaNumeric(str) {
  return !str.match(rxAlphaNumeric);
}

function isAlphaNumericUpTo(str, num) {
  return (isAlphaNumeric(str) && str.length <= num) ? true : false;
}

function isUsername(usr) {
  return (rxBadFirstChar.test(usr[0]) || usr.length < 5 || rxBadChar.test(usr)) ? false : true;
}

function isPassword(pwd) {
  return (pwd.length < 8 || rxBadChar.test(pwd)) ? false : true;
}