function VerifyIsNotEmpty(paramValue)
{
	var len = paramValue.length;
	return (len != 0);	
}
function VerifyIfEqual(paramValue1, paramValue2)
{
	return (paramValue1 == paramValue2);
}
function VerifyPostalCode(paramValue)
{
	var len = paramValue.length;
	if (len == 0)
		return false;
	var reg = new RegExp("^[a-zA-Z][0-9][a-zA-Z][0-9][a-zA-Z][0-9]$");
	return reg.test(paramValue);
}

function VerifyIsNumeric(paramValue)
{
	var len = paramValue.length;
	if (len == 0)
		return false;
	var reg = new RegExp("^[0-9]*$");
	return reg.test(paramValue);
}

function VerifyLen(paramValue, len)
{
	var paramLen = paramValue.length;
	return (paramLen == len);
}

function VerifyMinLen(paramValue, len)
{
	var paramLen = paramValue.length;
	return (paramLen >= len);
}


function VerifyCreditCardNumber(paramValue)
{
	var len = paramValue.length;
	if (len == 0)
		return false;
	var reg = new RegExp("^[0-9]{13}$");
	return reg.test(paramValue);
}

function VerifyCreditCardNumber16(paramValue)
{
	var len = paramValue.length;
	if (len == 0)
		return false;
	var reg = new RegExp("^[0-9]{16}$");
	return reg.test(paramValue);
}

function VerifyMinMax(paramValue, min, max)
{
	var len = paramValue.length;
	return (len >=min && len <= max);
}

function VerifyIsEquals(paramValue1, paramValue2)
{
	return (paramValue1 == paramValue2);
}

function containBoundary(paramValue)
{
	//\b :  ! @#\$%^&*()-+=~:;<>,.|{}[]/
	var reg2 = new RegExp("[\b]");
	
	//if (reg2.test(paramValue)) {
		boundaryArray = new Array(24);
		boundaryArray[0] = "\!";
		boundaryArray[1] = "\#";
		boundaryArray[2] = "\\";
		boundaryArray[3] = "\$";
		boundaryArray[4] = "\%";
		boundaryArray[5] = "\^";
		boundaryArray[6] = "\&";
		boundaryArray[7] = "\*";
		boundaryArray[8] = "\(";
		//boundaryArray[9] = "\-"; . @
		boundaryArray[9] = "\+";
		boundaryArray[10] = "\=";
		boundaryArray[11] = "\~";
		boundaryArray[12] = "\:";
		boundaryArray[13] = "\;";
		boundaryArray[14] = "\<";
		boundaryArray[15] = "\>";
		boundaryArray[16] = "\,";
		boundaryArray[17] = "\|";
		boundaryArray[18] = "\{";
		boundaryArray[19] = "\}";
		boundaryArray[20] = "\[";
		boundaryArray[21] = "\]";
		boundaryArray[22] = "\/";
		boundaryArray[23] = "?";
		
		var foundBoundary = -1;
		for (i = 0 ; i < 24 ; i++ ) {
			foundBoundary = paramValue.indexOf(boundaryArray[i],0);
			if(foundBoundary > 0){
				return true;
			}		
		}
		// no boundary
		return false;
	//}
	// no boundary
	return false;
}

function VerifyEmailAddress(paramValue)
{
	var len = paramValue.length;
	if (len == 0)
		return false;
	//var reg = new RegExp("\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*");
	//return (reg.test(paramValue));

/* Nasser Apr 2007 
	Pour tester qu'une saisie est un mail valide, voici la chaîne pattern à utiliser : 
	^[a-zA-Z0-9\-_]+[a-zA-Z0-9\.\-_]*@[a-zA-Z0-9\-_]+\.[a-zA-Z\.\-_]{1,}[a-zA-Z\-_]+
	La signification de cette chaîne est logique également :
	^ : début du mail
	[a-zA-Z0-9\-_]+ : Au moins un caractère alphanumérique en début de mail
	[a-zA-Z0-9\.\-_]* : Tous les caractères alphanumériques plus ., - et _ au moins 1 fois
	@ : une fois arobase
	[a-zA-Z0-9\-_]+ : Tous les caractères alphanumériques plus ., - et _ au moins 1 fois
	\. : 1 fois le caractère .
	[a-zA-Z0-9\.\-_]{1,} : Tous les caractères alphanumériques plus ., - et _ au moins 2 fois
	[a-zA-Z0-9\-_]+ : Au moins un caractère alphanumérique en fin de mail
*/
	
	var reg = new RegExp("^[a-zA-Z0-9\-_]+[a-zA-Z0-9\.\-_]*@[a-zA-Z0-9\-_]+[\.]+[a-zA-Z\.\-_]{1,}[a-zA-Z\-_]+");
	//\w <=> [a-zA-Z_]
	//var reg = new RegExp("^[\w\-]+[\w\.\-]*@[\w\-]+[\.]+[a-zA-Z]{1,}[a-zA-Z]+");
	//var reg = new RegExp("^[\w\.-]+@[\w\.-]+\.[a-zA-Z]");
	//\b :  ! @#\$%^&*()-+=~:;<>,.|{}[]/

	return (reg.test(paramValue) && !containBoundary(paramValue));
}

function VerifyEmailAddressAT(paramValue)
{
	var len = paramValue.length;
	if (len == 0)
		return false;
	var foundAt = paramValue.indexOf("@",0);
	return (foundAt > 0);
}

function VerifyEmailAddressDOT(paramValue)
{
	var len = paramValue.length;
	if (len == 0)
		return false;
	var foundDot = paramValue.indexOf(".",0);
	return (foundDot > 0);
}
function DoubleAT(paramValue)
{
	var len = paramValue.length;
	if (len == 0)
		return true;
	var foundAt = paramValue.indexOf("@",0);
	if(foundAt > 0){
		var found2AT = paramValue.indexOf("@",foundAt + 1 );
		if( found2AT > 0)
			return true;
		else
			return false;
	}
	return false;
}
function ConsecutiveDOT(paramValue)
{
	var len = paramValue.length;
	if (len == 0)
		return true;
	var foundDot;
	var found2Dot;
	for (i = 0 ; i < len - 1 ; i++ ) {
		foundDot = -1;
		found2Dot = -1;
		foundDot = paramValue.indexOf(".",i);
		found2Dot = paramValue.indexOf(".", foundDot + 1);
		if((foundDot > 0) && (found2Dot ==  foundDot + 1)){
			return true;
		}		
	}
	return false;
}

function ConsecutiveHyphen(paramValue)
{
	var len = paramValue.length;
	if (len == 0)
		return true;
	var foundHyphen;
	var found2Hyphen;
	for (j = 0 ; j < len - 1 ; j++ ) {
		foundHyphen = -1;
	    found2Hyphen = -1;
		foundHyphen = paramValue.indexOf("-", j );
		found2Hyphen = paramValue.indexOf("-", foundHyphen + 1);
		if((foundHyphen > 0) && (found2Hyphen == foundHyphen + 1)){
			return true;
		}
	}
	return false;
}

function VerifyIfEqualUsernameAndPassword(username, password)
{
	if ((username == '') && (password == ''))
		return false;
	var regexU = new RegExp(username);
	var regexP = new RegExp(password);
	return (regexU.test(password) || regexP.test(username));		
}
function VerifyIsSecurePassword(paramValue)
{
	return (paramValue.toUpperCase() != "PASSWORD");
}


function VerifyIsContainsBlank(paramValue)
{
	return (paramValue.indexOf(' ') >= 0);
}


// Wirtten by David Leppek of Pay By Touch Merchant Services as a free easy method of validating a credit card
function Mod10(ccNumb) { //v2.0
var valid 	= "0123456789"
var len 	= ccNumb.length;
var bNum 	= true;
var iCCN 	= ccNumb;
var sCCN 	= ccNumb.toString();
var iCCN;
var iTotal 	= 0;
var bResult = false;
var digit;
var temp;
	iCCN = sCCN.replace (/^\s+|\s+$/g,'');	// strip spaces
    //alert(iCCN);
for (var j=0; j<len; j++) {
temp = "" + iCCN.substring(j, j+1);
if (valid.indexOf(temp) == "-1") bNum = false;
}
if(!bNum){alert("Not a Number");}
    iCCN = parseInt(iCCN);
	
if(len == 0){ /* nothing, field is blank */ 
	bResult = true;
}else{
	if(len >= 15){		//15 or 16 for Amex or V/MC
		for(var i=len;i>0;i--){
		digit = "digit" + i;
		//alert(digit);
		
			calc = parseInt(iCCN) % 10;	//right most digit
			calc = parseInt(calc);
			//alert(calc);
			iTotal += calc;		//parseInt(cardnum.charAt(count))i:\t" + calc.toString() + " x 2 = " + (calc *2) +" : " + calc2 + "\n";
			// commented out below which wrote NONALTERED digit to page for demo only.
			//document.form1.textfield.value += "" + i + ":\t" + calc.toString() + " x 1 = " + calc + "\n";
			
			i--;
		digit = "digit" + i;
		//alert(digit);
		
			iCCN = iCCN / 10; 	// subtracts right most digit from ccNum
			calc = parseInt(iCCN) % 10 ;	// step 1 double every other digit
			 //alert( iCCN + " " + calc);
			 calc2 = calc *2;
			
			switch(calc2){
				case 10: calc2 = 1; break;	//5*2=10 & 1+0 = 1
				case 12: calc2 = 3; break;	//6*2=12 & 1+2 = 3
				case 14: calc2 = 5; break;	//7*2=14 & 1+4 = 5
				case 16: calc2 = 7; break;	//8*2=16 & 1+6 = 7
				case 18: calc2 = 9; break;	//9*2=18 & 1+8 = 9
				default: calc2 = calc2; 		//4*2= 8 &   8 = 8  -same for all lower numbers
			}
			iCCN = iCCN / 10; 	// subtracts right most digit from ccNum
			iTotal += calc2;
			// commented out below which wrote MULTIPLIED digit to page for demo only
			//document.form1.textfield.value += "" + i +":\t" + calc.toString() + " x 2 = " + (calc *2) +" : " + calc2 + "\n";
		}
			// commeneted out SUM below for demo only
			//document.form1.textfield.value += "\t\tSum: " + iTotal + "\n";
		if ((iTotal%10)==0){
			//document.calculator.results.value = "Yes"; 
			bResult = true;
 		}else{
			//document.calculator.results.value = "No"; 
			bResult = false;
		}
	}
}

  return bResult;
}

///////////////////////////////////
// By: Gang Liu       June 15, 2001
///////////////////////////////////
// This function will trim leading and/or trailing spaces from a string
// arg = the value you wish to have trimmed..
// func = "left" for Ltrim(), "right" for RTrim() or "both" for Trim()

//===================================
function trim(arg,func) {
//===================================

	var trimvalue = "";
	arglen = arg.length;
	if (arglen < 1) return trimvalue;

	if (func == "left" || func== "both") {
		i = 0;
		pos = -1;
		while (i < arglen) {
			if (arg.charCodeAt(i) != 32 &&
!isNaN(arg.charCodeAt(i))) {
				pos = i;
				break;
			}
			i++;
		}
	}

	if (func == "right" || func== "both") {
		var lastpos = -1;
		i = arglen;
		while (i >= 0) {
			if (arg.charCodeAt(i) != 32 &&
!isNaN(arg.charCodeAt(i))) {
				lastpos = i;
				break;
			}
			i--;
		}
	}

	if (func == "left") {
			trimvalue = arg.substring(pos,arglen-1);
		}

	if (func == "right") {
		trimvalue = arg.substring(0,lastpos+1);
	}

	if (func == "both") {
		trimvalue = arg.substring(pos,lastpos + 1);
	}

	return trimvalue;

}
