
/***********************************************
* Required field(s) validation v1.10- By NavSurf
* Visit Nav Surf at http://navsurf.com
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/

/* ARGUMENTS EXPECTED:
- Form Object
- Required Control ID #1
- Friendly Name for Required Control #1
- Required Control ID #2
- Friendly Name for Required Control #2
- ...
*/
function formCheck(){
	
	if (formCheck.arguments.length <= 1) {
		return true;
	}
	else if ((formCheck.arguments.length % 2) != 1) {
		return true;
	}
	else {
		
		var formobj = formCheck.arguments[0];
		var i = 0;
		
		// array of control ID values
		var fieldRequired = Array((formCheck.arguments.length - 1) / 2);
		// array of friendly names
		var fieldDescription = Array((formCheck.arguments.length - 1) / 2);
		
		for (i = 0; i < fieldRequired.length; i++) {
			fieldRequired[i] = formCheck.arguments[(i * 2) + 1];
			fieldDescription[i] = formCheck.arguments[(i * 2) + 2];
		}
		
		// dialog message
		var alertMsg = "Please complete the following fields:\n";
		
		var l_Msg = alertMsg.length;
		
		for (i = 0; i < fieldRequired.length; i++) {
			var obj = formobj.elements[fieldRequired[i]];
			if (obj){
				switch(obj.type) {
					case "select-one":
						if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text === "") {
							alertMsg += " - " + fieldDescription[i] + "\n";
						}
						break;
					case "select-multiple":
						if (obj.selectedIndex == -1) {
							alertMsg += " - " + fieldDescription[i] + "\n";
						}
						break;
					case "text":
					case "textarea":
						if (obj.value === "" || obj.value === null) {
							alertMsg += " - " + fieldDescription[i] + "\n";
						}
						break;
					default:
				}
				if (obj.type === undefined) {
					var blnchecked = false;
					for (var j = 0; j < obj.length; j++){
						if (obj[j].checked){
							blnchecked = true;
						}
					}
					if (!blnchecked) {
						alertMsg += " - " + fieldDescription[i] + "\n";
					}
				}
			}
		}

		if (alertMsg.length === l_Msg) {
			return true;
		}
		else {
			alert(alertMsg);
			return false;
		}
	}
}

