function testRegExp(elementValue, re) {
	if(window.RegExp) {
		return new RegExp(re).test(elementValue);
	} else {
		return true;
	}
}

function validateString(elementValue) {
	return (elementValue.length > 0);
}

function validateCleanString(elementValue) {
	return testRegExp(elementValue, '^[A-Za-z0-9_]+$');
}

function validateUserName(elementValue) {
	return testRegExp(elementValue, '^[a-zA-Z0-9_\.\-]{4,100}$');
}

function validateUserPassword(elementValue) {
	return testRegExp(elementValue, '^[a-zA-Z0-9_\-\.@!]{5,40}$');
}

function validateEmail(elementValue) {
	return testRegExp(elementValue, '^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+@[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$');
}

function validateEmailList(elementValue) {
	return testRegExp(elementValue, '^(([a-zA-Z0-9_\.\+\-]+@([a-zA-Z0-9_\+\-]+[\.]{1})+[a-zA-Z]{2,4}|(\"[^\"]{0,64}\")* *<[a-zA-Z0-9_\.\+\-]+@([a-zA-Z0-9_\+\-]+[\.]{1})+[a-zA-Z]{2,4}>|[^\"\(\)\<\>\@\,\;\:\\\.\[]{0,64} *<[a-zA-Z0-9_\.\+\-]+@([a-zA-Z0-9_\+\-]+[\.]{1})+[a-zA-Z]{2,4}>) *,{0,1} *)+$');
}

function validateAbsUrl(elementValue) {
	return testRegExp(elementValue, '^(news|telnet|nttp|file|http|ftp|https)://[-A-Za-z0-9\\.]+$');
}

function validateNumber(elementValue, allowBlank) {
	return (!allowBlank && value == '') ? false : testRegExp(elementValue, '^-?[0-9]*\\.?[0-9]*$');
}

function validateInt(elementValue, allowBlank) {
	return (!allowBlank && elementValue == '') ? false : testRegExp(elementValue, '^-?[0-9]*$');
}

function validateSize(elementValue) {
	return testRegExp(elementValue, '^[0-9]+(px|%)?$');
}

function validateID(elementValue) {
	return testRegExp(elementValue, '^[A-Za-z_]([A-Za-z0-9_])*$');
}
