function form_check(form_object, field_required, field_description){
	// dialog message
	var alertMsg = "Please complete the following required fields:\n";

	var l_Msg = alertMsg.length;

	for (var i = 0; i < field_required.length; i++){
		var obj = form_object.elements[field_required[i]];

		if (obj){
			if ((typeof check_focus_text == 'function') && (obj.type != 'file')) {
				check_focus_text(obj, obj.className);
			}
		
			var classes = obj.className.replace(/ form_validation_error/g,'');
			obj.className = classes;
			
			switch(obj.type){
				case "select-one":
					if (obj.selectedIndex == 0 || obj.options[obj.selectedIndex].text == ""){
						alertMsg += " - " + field_description[i] + "\n";
						obj.className = classes + ' form_validation_error';
					} 
				break;
				case "select-multiple":
				case "select":
					if (obj.selectedIndex == 0){
						alertMsg += " - " + field_description[i] + "\n";
						obj.className = classes + ' form_validation_error';
					}
				break;
				case "file":
				case "text":
				case "password":
				case "textarea":
					if (field_required[i] == 'email' && !obj.value.match(/^[a-zA-Z0-9\._\-]*@[a-zA-Z0-9\.\-]*\.[a-zA-Z]{2,6}(\.[a-zA-Z]{2,4})?$/)) {
						alertMsg += " - " + field_description[i] + "\n";
						obj.className = classes + ' form_validation_error';
					} else if (obj.value == "" || obj.value == null){
						alertMsg += " - " + field_description[i] + "\n";
						obj.className = classes + ' form_validation_error';
					}
				break;
				case "checkbox":
					if (obj.checked != true){
						alert(field_description[i]);
						obj.className = classes + ' form_validation_error';
					}
				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 += " - " + field_description[i] + "\n";
					obj.className = classes + ' form_validation_error';
				} 
			}

			if ((typeof check_focus_text == 'function') && (obj.type != 'file')) {
				check_blur_text(obj, obj.className);
			}
		}
	}

	if (alertMsg.length == l_Msg){
		if (typeof check_focus_text == 'function') {
			for (var i in form_object.elements) {
				var obj = form_object.elements[i];
				if (obj) {
					switch(obj.type){
						case "text":
						case "password":
						case "textarea":
							check_focus_text(obj, obj.className);
							break;
							
						default:
							continue;
					}
				}
			}
		}
	
		return true;
	} else {
		alert(alertMsg);
		return false;
	}
}
