function validate(argForm) {
	for (var i=0; i<argForm.elements.length; i++) {
		with(argForm.elements(i)) {
			if ((typeof required) != "undefined") {
				if ( required == "true" && (value.length < 1 || value == "mm/dd/yyyy") ) {
					alert(title + " is required.")

					try {
						focus()
					}
					catch(e) {}

					return false
				}
		    	}

			if (className == "clsPhone")
				value = stripPhone(value)
			else if (className == "clsEmail") {
				if ( !isValidEmail(value) ) {
					alert(title + " is invalid.")
					try {
						focus()
					} catch(e) {}
					return false
				}
			}
			else if (className == "clsDate") {
				if (value == "mm/dd/yyyy")
					value = ""
				else if ( !isValidDate(value) ) {
					alert(title + " is invalid.")
					try {
						focus()
					} catch(e) {}
					return false
				}
			}
		}
	}

	return true
}

function isValidEmail(argValue) {
	if (argValue == "")
		return true

	if (argValue.indexOf("@") < 1)
		return false

	if (argValue.indexOf(".") < 2)
		return false
	else if ( argValue.indexOf(".") > (argValue.length - 2) )
		return false

	return true
}

function stripPhone(argValue) {
	argValue = argValue.replace("(", "")
	argValue = argValue.replace(")", "")
	argValue = argValue.replace(" ", "")
	argValue = argValue.replace("-", "")

	return argValue
}

function isValidDate(argValue) {
	if (argValue == "")
		return true

/*
	var lo_Date = new Date(argValue)
	var li_temp = lo_Date.getMonth()
	
	if (isNaN(li_temp))
		return false
	else if (li_temp == 11)
		li_temp = 12

	try {
		if ( argValue.substring(0, argValue.indexOf("/")) == li_temp )
			return false
	} catch(e) {
		if ( argValue.substring(0, argValue.indexOf("-")) == li_temp )
			return false
	}
*/
	return true
}

function generateStates(oObj) {
	var ddv_sStates = "AK,AL,AR,AZ,CA,CO,CT,DC,DE,FL,GA,HI,IA,ID,IL,IN,KS,KY,LA,MA,MD,ME,MI,MN,MO,MS,MT,NC,ND,NE,"
	ddv_sStates += "NH,NJ,NM,NV,NY,OH,OK,OR,PA,RI,SC,SD,TN,TX,UT,VA,VT,WA,WI,WV,WY,OO"
	var DDV_temp

	var ARR_STATES = ddv_sStates.split(",")

	if (oObj) {
		for (var i=0; i<ARR_STATES.length; i++) {
			oObj.options[i+1] = new Option(ARR_STATES[i], ARR_STATES[i])
		}

		oObj.length = i + 1
	}
}