
var re = /^\s*|\s*$/g; 
var regex = /^[a-zA-Z0-9._+-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/; 
var pregex = /^\(?\d{3,3}\)?[ -]?\d{3,3}[ -]?\d{4,4}$/; 
var fregex = /^([a-zA-Z0-9._-]+\.)[a-zA-Z0-9]{2,4}$/; 
function trim(value) {
	return (value.replace(re,""));
}
function check_fields(theField, check_type, theForm) {
	var return_value = false;
	var file_name_value = "";
	var find_last_backslash = "";
	var field_name = "";
	var temp_field_name = "";
	var fields = "";
	var temp_field_value = "";
	
	switch (check_type) {
		case 2:
			(!isNaN(theField.value) || (trim(theField.value) == '')) ? return_value = true : theField.focus();
			break;
		case 3:
			(regex.test(theField.value) || (trim(theField.value) == '')) ? return_value = true : theField.focus();
			break;
		case 4:
			(pregex.test(theField.value) || (trim(theField.value) == '')) ? return_value = true : theField.focus();
			break;
		case 5:
			// added for macs
			temp_field_value = theField.value.replace(/\//g, '\\');
			(fregex.test(temp_field_value.slice(temp_field_value.lastIndexOf("\\")+1)) || (trim(temp_field_value) == '')) ? return_value = true : theField.focus();
			break;
		case 6:
			(eval("theForm." + theField.slice(0, theField.lastIndexOf("|")) + ".value.length") <= (theField.slice(theField.lastIndexOf("|")+1) - 0)) ? return_value = true : eval("theForm." + theField.slice(0, theField.lastIndexOf('|')) + ".focus()");
			break;
		case 7:
			fields = theField.split("|");
			
			(eval("theForm." + fields[0] + ".value") == eval("theForm." + fields[1] + ".value")) ? return_value = true : eval("theForm." + fields[0] + ".focus()");
			break;
		case 8:
			/*
				This is broken up into 3 parts
				First value = field name
				second value = value being searched for
				third value = 1 or 0... 1 = first value must contain second value, 0 = first value must *NOT* contain second value
				e.g. first_name|Jim|1 == James = False, Jimmy = True
			*/
			fields = theField.split("|");
			var temp_value = eval("theForm." + fields[0] + ".value.indexOf(\"" + fields[1] + "\")");
			
			((eval("trim(theForm." + fields[0] + ".value)") == '') || (((temp_value == -1) && (fields[2] == 0)) || ((temp_value > -1) && (fields[2]== 1)))) ? return_value = true : eval("theForm." + fields[0] + ".focus()");
			break;
		case 9:
			fields = theField.split("|");
			
			((eval("theForm." + fields[0] + ".value.length") >= (fields[1] - 0)) || (eval("trim(theForm." + fields[0] + ".value)") == '')) ? return_value = true : eval("theForm." + fields[0] + ".focus()");
			break;
		case 10:
			fields = theField.split("|");
		
			for (var i = 0; i < fields.length; i++) {
				if (eval("theForm." + fields[i] + ".checked")) {
					return_value = true;
					break;
				}
			}
			break;
		case 11:
			fields = theField.split("|");
			/*
				This is broken up into 2 parts
				First value = field name
				second value = extensions being searched for (also a list)
				e.g. my_image|jpg.gif.png == car.gif = true, car.bmp = False
			*/
			// replace . with | so can build regular expression
			var extension_list = fields[1].toLowerCase().replace(/\./g, "|");
			// compile reg exp
			var new_re = new RegExp(extension_list)
			
			// get field value
			field_name = eval('theForm.' + fields[0]);
			// get file name
			//added for macs
			temp_field_value = field_name.value.replace(/\//g, '\\');
			
			file_name_value = temp_field_value.slice(field_name.value.lastIndexOf("\\")+1)
			// get extension
			var extension_value = file_name_value.toLowerCase().split(".");
			// run reg exp against file name to check if extension is present
			
			((new_re.test(extension_value[1])) || (trim(field_name.value) == '')) ? return_value = true : eval("theForm." + fields[0] + ".focus()");
			break;
		default:
			var field_type = theForm.elements[theField].type;
			if ((field_type.indexOf('radio') > -1) || (field_type.indexOf('checkbox') > -1)) {
				var field_length = eval("theForm." + theForm.elements[theField].name + ".length");
				if (isNaN(field_length)) {
					if (eval("theForm." + theForm.elements[theField].name + ".checked")) {
						return_value = true;
						break;
					}
				} else {
					for (var i = 0; i < field_length; i++) {
						if (eval("theForm." + theForm.elements[theField].name + "[i].checked")) {
							return_value = true;
							break;
						}
					}
				}
			
			} else if (field_type.indexOf('select') > -1) {
				
				try {
					if (theForm.elements[theField].options[theForm.elements[theField].selectedIndex].value != '')
					{ return_value = true; }
				} catch(e) {
					if(theForm.elements[theField].selectedIndex == -1)
					{ return_value = false; }
				}
				
			// else make sure entry is not blank
			} else {
				if (trim(theForm.elements[theField].value) != '') {
					return_value = true;
				}
			}
			break;
	}
	return (return_value);
}
