function form_check(f)
{
	var var_elem_name;
	for(x=0; x< document.forms[parseInt(f)].elements.length; x++){
		if(document.forms[parseInt(f)].elements[x].required == "CUSTOM"){
			alert(document.forms[parseInt(f)].elements[x].message);
			document.forms[parseInt(f)].elements[x].focus();
			return (false)
		}
		if(document.forms[parseInt(f)].elements[x].type == "text" || document.forms[parseInt(f)].elements[x].type == "textarea"|| document.forms[parseInt(f)].elements[x].type == "password"){
			var_elem_name = document.forms[parseInt(f)].elements[x].required;
			if((document.forms[parseInt(f)].elements[x].required) != null){
				var_elem = var_elem_name.split("_");
				switch(var_elem[0]){
					case "E":
						if (checkbae(document.forms[parseInt(f)].elements[x].value)== 0){
			    			document.forms[parseInt(f)].elements[x].focus();
			   				return (false)
						}
					break;
					case "D":
						if((date_check(document.forms[parseInt(f)].elements[x])== 0))
							return(false);
					break;
					case "I":
						if ((isNaN(document.forms[parseInt(f)].elements[x].value) || document.forms[parseInt(f)].elements[x].value == "") || (document.forms[parseInt(f)].elements[x].value.length < var_elem[1])){
								if(document.forms[parseInt(f)].elements[x].message != null)
									alert(document.forms[parseInt(f)].elements[x].message);
								else
									alert("A numeric value is required in this field.");
								document.forms[parseInt(f)].elements[x].focus();
					    		return (false);
						}
					break;
					case "CD":
						sum_array = document.forms[parseInt(f)].elements[x].value.split("/")
						if ((isNaN(sum_array[0])) || (isNaN(sum_array[1])) || (sum_array[1] == "") || (sum_array[0] == "")){
								if(document.forms[parseInt(f)].elements[x].message != null)
									alert(document.forms[parseInt(f)].elements[x].message);
								else
									alert("A four digit date value is required in this field.");
								document.forms[parseInt(f)].elements[x].focus();
					    		return (false);
						}
					break;
					case "C":
						alert("character code not complete :P  ");
					break; 
					case "M": // minute checker
						if (document.forms[parseInt(f)].elements[x].value == "" || is_empty(document.forms[parseInt(f)].elements[x].value) || (document.forms[parseInt(f)].elements[x].value < 0) || (document.forms[parseInt(f)].elements[x].value > 59)){
							if(document.forms[parseInt(f)].elements[x].message != null)
								alert(document.forms[parseInt(f)].elements[x].message);
							else
							    alert("Please enter a valid value.");
							document.forms[parseInt(f)].elements[x].focus();
						    return (false);
						}
					break;
					case "H": // minute checker
						if (document.forms[parseInt(f)].elements[x].value == "" || is_empty(document.forms[parseInt(f)].elements[x].value) || (document.forms[parseInt(f)].elements[x].value < 0) || (document.forms[parseInt(f)].elements[x].value >= 12)){
							if(document.forms[parseInt(f)].elements[x].message != null)
								alert(document.forms[parseInt(f)].elements[x].message);
							else
							    alert("Please enter a valid value.");
							document.forms[parseInt(f)].elements[x].focus();
						    return (false);
						}
					break;
					case "R":
						if (document.forms[parseInt(f)].elements[x].value == "" || is_empty(document.forms[parseInt(f)].elements[x].value) || (document.forms[parseInt(f)].elements[x].value.length < var_elem[1])){
							if(document.forms[parseInt(f)].elements[x].message != null)
								alert(document.forms[parseInt(f)].elements[x].message);
							else
							    alert("Please enter a valid value.");
							document.forms[parseInt(f)].elements[x].focus();
						    return (false);
						}
					break;
					default:
					break;	
				} // close switch
			}
		}
		//  this part checks radio buttons and checkboxes
		else if (document.forms[parseInt(f)].elements[x].type == "radio" || document.forms[parseInt(f)].elements[x].type == "checkbox"){
			var_elem_name = document.forms[parseInt(f)].elements[x].required;
		if((document.forms[parseInt(f)].elements[x].required) != null){
					var_elem = var_elem_name.split("_");
				switch(var_elem[0]){
					case "R":
						if(var_elem[0] == "R"){
							box = document.forms[parseInt(f)].elements[x]
							if(document.forms[parseInt(f)].elements[x][0] != ""){
								var var_alert="0";
								var var_spot =0;
								var var_checked_name = document.forms[parseInt(f)].elements[x];
								var_int = var_elem[1];
						//	alert("num= "+ (x + parseInt(var_int)));
								for(count=x; count < (x + parseInt(var_int)); count++){
						//	alert("count= " + count + " " + document.forms[parseInt(f)].elements[count].checked);
									if(document.forms[parseInt(f)].elements[count].checked == true){
										var_alert = 1;
										var_spot = count;
									}
								}
								if(var_alert != 1){
									if(document.forms[parseInt(f)].elements[x].message != null)
										alert(document.forms[parseInt(f)].elements[x].message);
									else
										alert("Please select one of the fields.");
									document.forms[parseInt(f)].elements[x].focus();
									return (false);
								}
							}
						}
						else{
							alert("Option not currently available!");
							}
				} // close switch
			}	// close if
		}	//close else
		else if (document.forms[parseInt(f)].elements[x].type == "select-one"){
				switch(document.forms[parseInt(f)].elements[x].required){ 
					case "R":
						if (document.forms[parseInt(f)].elements[x].selectedIndex == ""){
							if(document.forms[parseInt(f)].elements[x].message != null)
								alert(document.forms[parseInt(f)].elements[x].message);
							else
							    alert("Please enter a valid value.");
							document.forms[parseInt(f)].elements[x].focus();
						    return (false);
						}
					
					break;
					default:
					break;	
				} // close switch
		}// close select else
		else if (document.forms[parseInt(f)].elements[x].type == "file"){
			switch(document.forms[parseInt(f)].elements[x].required){ 
				case "R":
					if (document.forms[parseInt(f)].elements[x].value == "" || is_empty(document.forms[parseInt(f)].elements[x].value) || (document.forms[parseInt(f)].elements[x].value.length < var_elem[1])){
						if(document.forms[parseInt(f)].elements[x].message != null)
							alert(document.forms[parseInt(f)].elements[x].message);
						else
						    alert("Please enter a valid value.");
						document.forms[parseInt(f)].elements[x].focus();
					    return (false);
					}
				break;
				default:
				break;	
			} // close switch
		} // close file else
	}
return true}
// date checking function
// date checking function
function date_check(var_date){
	var error = "0"
	var message = ""
	var_array = var_date.value.split("/");
	if(var_array.length != 3){
		error = "1";
		message = message + "\n Date Format must be in mm/dd/yyyy format.";
	}
	else{
		if (isNaN(var_array[0])){
				error = "1";
				message = message + "\n Please enter a valid date.";
			}
		else{
			if(var_array[0] > 12){
				error = "1";
				message = message + "\n Please enter a valid date.";
			}
		}
		if (isNaN(var_array[1])){
				error = "1";
				message = message + "\n Please enter a valid day.";
			}
		else{
			if(var_array[1] > 31){
				error = "1";
				message = message + "\n Please enter a valid day.";
			}
		}
		if (isNaN(var_array[2])){
				error = "1";
				message = message + "\n Please enter a valid year.";
			}
		else{
			if(var_array[2] > 2100 || var_array[2] < 1850){
				error = "1";
				message = message + "\n Please enter a valid year.";
			}
		}
		if (var_array[0] == 2) {
			// Check for leap year
			if ( ( (var_array[2]%4 == 0)&&(var_array[2]%100 != 0) ) || (var_array[2]%400 == 0) ) { // leap year
				if (var_array[1] > 29){
					error = "1";
					message = message + "\n Please enter a valid day.";
				}
			}
			else {
				if (var_array[1] > 28) {
					error = "1";
					message = message + "\n Please enter a valid day.";
				}
			}
		}
		if ((var_array[0]==4)||(var_array[0]==6)||(var_array[0]==9)||(var_array[0]==11)) {
			if (var_array[1] > 30) {
				error = "1";
				message = message + "\n Please enter a valid day.";
			}
		}
	}
	if (error == "1"){
		alert('Please enter a valid date.' + message)
		var_date.focus();
		return(false);
	}
}
// email checking stuff
var testresults

function checkemail(var_e){
	var str=var_e
//	var str=document.theForm.emailaddress.value
	var filter=/^.+@.+\..{2,3}$/
	if (filter.test(str))
		if(ValidString(str)){
		testresults=true
        }
        else{
   		alert("Please input a valid email address - contains invalid character(s)!")
        testresults=false
        }
	else{
		alert("Please input a valid email address!")
		testresults=false
	}
return (testresults)
}

function ValidString(ChkString)
{
	var ValidString="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._@"
	for (i=0; i<ChkString.length; i++)
	{
		if (ValidString.indexOf(ChkString.substring(i,i+1)) == -1) return false;
	}
	return true;
}

function checkbae(var_e){
	if (document.layers||document.all)
		return checkemail(var_e)
	else
		return true
}
// check for all blanks in a field
function is_empty(s){
	for(var ie_count = 0; ie_count < s.length; ie_count++){
		var c = s.charAt(ie_count);
		if((c != ' ' ) && c != '\n' && (c != '\t')) return false;
	}
	return true;
}
