var charexp = /./
var letterexp = /[a-z]/i
var phonexp =  /^\d{10}$/
var memberexp = /^\d{3}$/
var zipexp = /^\d{5}$|^\d{5}[\-\s]?\d{4}$/
var emailexp = /^[A-Za-z][a-z_0-9\.]+@[a-z_0-9\.]+\.[a-z]{3}$/i

var wordexp = /\w{3,}/
var passwordexp = /[A-Za-z0-9]*/i
var stringexp = /[ A-Za-z0-9]*/i
var dateexp = /^[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4}$/
var integerexp = /^[0-9]{1,}$/
var doubleexp = /^[0-9]{1,}([,.][0-9]){0,1}$/

function y2k(number) { return (number < 1000) ? number + 1900 : number; }

function isEmail(sField)
{
	var atIndex;
	var dotIndex;
	var length;
	var fReturn;
	
	fReturn = false;
	length = sField.length - 1;
	atIndex = sField.lastIndexOf("@");
	dotIndex = sField.lastIndexOf (".");
	
	if ((atIndex != -1) && (dotIndex != 1)) {
		if (atIndex != 0) {
			if (atIndex == sField.indexOf ("@")) {
				if (length - dotIndex > 1) {
					if (atIndex <= dotIndex) {
						if (Math.abs(atIndex - dotIndex) != 1) {
							fReturn = true;
						}
					}
				}
			}
		}
	}
	return fReturn;
}

function isValidDate(str) 
{

var day;
var month;
var year;

var datearray = new Array(3);

datearray = str.split("/");

day = datearray[0];
month = datearray[1];
year = datearray[2];


// checks if date passed is valid
// will accept dates in following format:
// isDate(dd,mm,ccyy), or
// isDate(dd,mm) - which defaults to the current year, or
// isDate(dd) - which defaults to the current month and year.
// Note, if passed the month must be between 1 and 12, and the
// year in ccyy format.

    var today = new Date();
    year = ((!year) ? y2k(today.getYear()):year);
    month = ((!month) ? today.getMonth():month-1);
    if (!day) return false
    var test = new Date(year,month,day);
    if ( (y2k(test.getYear()) == year) &&
         (month == test.getMonth()) &&
         (day == test.getDate()) )
        if ( year < 1754 ) 
			return false;
		else
			return true;
    else
        return false
}



function isValid(pattern, str) {
	return pattern.test(str)
}

function hasLetter(str) {
	return letterexp.test(str)
}

function hasChar(str) {
	return charexp.test(str)
}

function stripChars(pattern, str) {
	return str.replace(pattern,"")
}

function stripNonDigits(str) {
	return str.replace(/[^0-9]/g,"")
}

function ReplaceDblBySngQuotes(vString)
{
	var re;
	re = /\"/g;
	return vString.replace(re, "\'")
}

function ReplaceCommaByPoint(vString)
{
	var re;
	re = /,/g;
	return vString.replace(re, "\.")
}

function ContainsInvalidChars(vString){

	var i = 0
	var ReturnValue = false
	var ASCIICode
	
	while (i < (vString.length-1))
	{
		ASCIICode = vString.charCodeAt(i)
		if ( (ASCIICode >= 48) && (ASCIICode <= 57) )
		{
			//OK : digits
		}
		else if ( (ASCIICode >= 65) && (ASCIICode <= 90) )
		{
			//OK : capitals
		}
		else if ( (ASCIICode >= 97) && (ASCIICode <= 122) )
		{
			//OK : capitals
		}
		else 
		{
			//NOT OK : invalid characters!
			ReturnValue = true
		}
		i++
	}
	
	return ReturnValue
	
}