/*

	<script language="JavaScript" src="validation.js"></script>
	<script language="JavaScript">
		var strErrorMsg
		
		function checkForm(frm) { 
			strErrorMsg = "" 
			
			chkString(frm.strFirstName, "First Name")
			chkNumber(frm.strSSN1, "Social Security Number - Prefix")	
			chkEmail(frm.strEmail, "Email Address")	
			chkSelectBox(frm.strDOBMonth, "Date of Birth - Month")
			chkCheckBox(obj, intMinimum, strFieldName)
			chkLength(obj, intLength, strFieldName)
			chkDate(intMonth, intDay, intYear, strFieldName)
			chkCompareStrings(obj1, obj2, strFieldDescs)
			
			getSelectValue(obj)
			
			if (strErrorMsg.length > 0) {
				alert('Please correct these errors before submitting\n\n' + strErrorMsg)
			}
			else { 
				frm.submit()
			}
			
		}
	</script>
*/	

	function getSelectValue(objSelect) { 
		return objSelect.options[objSelect.options.selectedIndex].value
	}

	function chkEmail(obj, strFieldName) {
		var str = obj.value
		var objRegExp = new RegExp("^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$")
		var blnReturn = true

		if (!objRegExp.test(str)) {
			strErrorMsg += "\'" + strFieldName + "\' must be a valid email address.\n"
			blnReturn = false
		}

		return blnReturn
	}

	function chkSelectBox(obj, strFieldName) {
		var blnReturn = true
	
		if (obj.options[obj.options.selectedIndex].value == "") {
			strErrorMsg += "\'" + strFieldName + "\' must be selected.\n"
			blnReturn = false
		}
		
		return blnReturn
	}
	
	function chkLength(obj, intLength, strFieldName) { 
		var str = obj.value
		var blnReturn = true
		if (str.length < intLength) { 
			strErrorMsg += "\'" + strFieldName + "\' must be at least " + intLength + " characters in length.\n"
			blnReturn = false
		}
		return blnReturn
	}
	
	function chkString(obj, strFieldName) { 
		var str = obj.value
		var blnReturn = true
		if ( str == "" || str == null) { 
			strErrorMsg += "\'" + strFieldName + "\' is required.\n"
			blnReturn = false
		}
		return blnReturn
	}
	
	function chkNumber(obj, strFieldName) { 
		var str = obj.value
		var blnReturn = true
		
		var blnHasValue = chkString(obj, strFieldName)
		if (blnHasValue) { 
			if ( isNaN(str) ) { 
				strErrorMsg += "\'" + strFieldName + "\' can include numbers only.\n"
				blnReturn = false
			}	
		}

		return blnReturn			
	}
	
	function chkCheckBox(obj, intMinimum, strFieldName) {
	
		var len = obj.length
		var ct = 0
		var blnReturn
		
		for (a = 0; a < len; a++) {
			if (obj[a].checked) {
				ct += 1
			}
		}
		
		if (ct < intMinimum) {
			strErrorMsg += "\'" + strFieldName + "\' should have at least " + intMinimum + " checkbox checked.\n"
			blnReturn = false		
		}
	}	
	
	function chkCompareStrings(obj1, obj2, strFieldName) {
		var str1 = obj1.value
		var str2 = obj2.value
		var blnReturn

		if (str1 != str2) {
			strErrorMsg += "\'" + strFieldName + "\' must be the same.\n"
			blnReturn = false
		}

		return blnReturn
	}	
	
	function chkDate(intMonth, intDay, intYear, strFieldName) { 

		var blnReturn = true
		
		if (intDay < 1) { 
			blnReturn = false
		}
	
		switch (parseInt(intMonth)) {
			case 1:;	case 3:; case 5:; case 7:; case 8:; case 10:; case 12:;
				if ( intDay > 31 ) {
					blnReturn = false
				}
				break
			
			case 4:; case 6:; case 9:; case 11:
				if ( intDay > 30 ) {
					blnReturn = false
				}
				break				
			
			case  2:
				if ( intDay > ( isLeapYear(intYear) ? 29 : 28)) {
					blnReturn = false
				}
				break				
		}
	
		if (!blnReturn) { 
			strErrorMsg += "\'" + strFieldName + "\' needs to be a valid date.\n"
		}
		
		return blnReturn
		
	}
	
	function isLeapYear(intYear) {
   	return (intYear % 4 != 0) ? false : (intYear % 100 != 0) ? true : (intYear % 400 != 0) ? false : true
	}			
