function validateValue(theField, minLength, maxLength, fieldName, bNum) {
	var valid=false;
	var errorMsg="";
	var regN = /^[0-9]{0,3}\.?[0-9]{1,2}$/;
	var regC = /^(-)?\d+(\.\d\d)?$/;

	if(theField.value == null)
		errorMsg = "The "+fieldName+" field is empty. Please enter "+fieldName+".";
	else if (theField.value == "")
		errorMsg = "The "+fieldName+" field is empty. Please enter "+fieldName+".";
	else if (theField.value.length==0)
		errorMsg = "The "+fieldName+" field is empty. Please enter "+fieldName+".";
	else if (theField.value.length<minLength || theField.value.length>maxLength)
		errorMsg = "The value you enter for "+fieldName+" may be too short or long. Please re-enter "+fieldName+".";
	else if (bNum == "cur" && !regC.test(theField.value))
		errorMsg = "Please enter numeric values only in "+fieldName+".";
	else if (bNum == true && !regN.test(theField.value))
		errorMsg = bNum + "The value you entered in the "+fieldName+" field may be invalid. Please try again.";

	else
		valid = true;

	if (valid==false) {
		window.alert(errorMsg);
		try {theField.focus();} catch(e) {}
	}
	return valid;
}

function validateEmail(theField, minLength, maxLength, fieldName) {
	var valid=false;
	var errorMsg="";
	var reg =  /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/;

	if(theField.value == null)
		errorMsg = "The "+fieldName+" field is empty. Please enter "+fieldName+".";
	else if (theField.value.length==0)
		errorMsg = "The "+fieldName+" field is empty. Please enter "+fieldName+".";
	else if (theField.value.length<minLength || theField.value.length>maxLength)
		errorMsg = "The value you entered in the "+fieldName+" field may be too short or invalid. Please try again.";

	else if (!reg.test(theField.value))
		errorMsg = "The value you entered in the "+fieldName+" field may be invalid. Please try again.";

	else
		valid = true;

	if (valid==false) {
		window.alert(errorMsg);
		try {theField.focus();} catch(e) {}
	}
	return valid;
}

function bNumber(theField) {
	var valid=false;
	var errorMsg="";
	var regN = /^[0-9]{0,2}\.?[0-9]{1,2}$/;

	if (!regN.test(theField.value))
		errorMsg = "The value you entered in the "+fieldName+" field may be invalid. Please try again.";
	else
		valid = true;

	if (valid==false) {
		window.alert(errorMsg);
		try {theField.focus();} catch(e) {}
	}
	return valid;
}

function validateNumeric(theField, minLength, maxLength, testValue, minValue, maxValue, fieldName) {
	var valid=false;
	var errorMsg="";

	if(theField.value=="TestCC#")
		valid = true;
	else if(theField.value=="")
		errorMsg = "The "+fieldName+" field is empty. Please enter a valid number.";
	else if (theField.value.length==0)
		errorMsg = "The "+fieldName+" field is empty. Please enter a valid number.";
	else if (theField.value.length<minLength || theField.value.length>maxLength)
		errorMsg = "The "+fieldName+" field is must be between "+minLength+" and "+maxLength+". Please enter a valid number.";
	else if (verifyLUHN(theField.value)==false)
		errorMsg = "The "+fieldName+" number you provided is invalid. Please enter a valid number.";
	else
		valid = true;
	
	if (valid==false) {
		window.alert(errorMsg);
		try {theField.focus();} catch(e) {}
	}
	return valid;
}

function verifyLUHN(num){
	var counter = new Number(0);
	var tempcount = new Number(0);
	var tempstring; 
	var half = new Number(parseInt((num.length - 1) * 0.5)); 
	for (var j=0; j <= half; j++){ 
		counter = counter + parseInt(num.substring(num.length - 2 * j - 1, num.length - 2 * j));
	} 
	half = parseInt(num.length * .5) - 1;

	for (j=0; j <= half; j++){ 
		tempcount = 2 * parseInt(num.substring(num.length - 2*j - 2,num.length - 2*j - 1)); 
		tempstring = tempcount.toString(); 
		if(tempstring.length == 2){ 
			counter = counter + parseInt(tempstring.substring(0,1)) + parseInt(tempstring.substring(1,2)); 
		} 
		else{
			counter = counter + parseInt(tempstring.substring(0,1)); 
		} 
	} 

	if(counter % 10 == 0){
		return true;
	} 
	else{ 
		return false; 
	}
}
