	function check_int(num) { 
		var flag = false;
		if (isNaN(new Number(num.value))) {   
			alert("Please enter a number in the field, '" + num.label + "'");
		}
		else if (parseInt(num.value) < num.c_min) {   
			alert("Please enter a number greater than " + num.c_min);
		} 
		else if (parseInt(num.value) > num.c_max) {     
			alert("Please enter a number less than " + num.c_max); 
		}  
		else {   
			flag = true;
		}
		if(!flag) {
			num.focus();
			num.select();
		}
		return flag;
 	}
 	
	function check_numeric(num) { 
		var flag = false;
		if (isNaN(new Number(num.value))) {   
			alert("Please enter a number in the field, '" + num.label + "'");
		}
		else if (parseFloat(num.value) < num.c_min) {   
			alert("Please enter a number greater than " + num.c_min);
		} 
		else if (parseFloat(num.value) >num.c_max) {     
			alert("Please enter a number less than " + num.c_max); 
		}  
		else {   
			flag = true;
		}
		if(!flag) {
			num.focus();
			num.select();
		}
		return flag;
 	}
 	
 	function check_text(str) { 
		var flag = false;
		if (isEmpty(str) && str.not_optional) {  
			alert("Please enter some text in the field, '" + str.label + "'"); 
		}
		else if (str.value.length < str.c_min) {   
			alert("Please enter some text longer than " + str.c_min);
		} 
		else if (str.value.length > str.c_max) {
			alert("Please enter some text shorter than " + str.c_max);
		}   
		else {   
			flag = true;
		}
		if(!flag) {
			str.focus();
			str.select();
		}
		return flag;
	}

	function check_varchar(str) {
		var flag = false;
		if(!str.c_max || !str.c_min)
			alert("This control is missing c_maximum and/or c_minimum values.\nPlease contact your system adc_ministrator.\n ");
		if (isEmpty(str) && str.not_optional) {  
			alert("Please enter some text in the field, '" + str.label + "'"); 
		}  
		else if (str.value.length < str.c_min) {   
			alert("Please enter some text longer than " + str.c_min);
		} 
		else if (str.value.length > str.c_max) {
			alert("Please enter some text shorter than " + str.c_max);
		}   
		else {   
			flag = true;
		}
		if(!flag) {
			str.focus();
			str.select();
		}
		return flag;
	}

	function isEmpty(element) {
		if((element.context_type == 'boolean') && element.checked) 
			return false;
		if(element.value != null && (element.value != ' ') && (element.value != '') && (element.value.length > 0)) {
			for(var i = 0; i < element.value.length; i++) {
				var c = element.value.charAt(i);
				if((c != ' ') && (c != '\n') && (c != '')) {
					return false;
				}
			}
		}
		return true;
	}
	
	function submit(theform) { 
		var msg;
		var empty = "";
		var error = "";
		for(var i = 0; i < theform.length; i++) {
			var element = theform.elements[i];
			if(isEmpty(element) && element.not_optional)
				empty += "\n            " + element.label;
			if(element.context_type == 'numeric') {
				var val = new Number(element.value);
				if(isNaN(val) || ((element.c_min != null) && (val < element.c_min)) ||
				  ((element.c_max != null) && (val > element.c_max))) {
					error += "- the field '" + element.name + "' must be a number";
					if(element.c_min != null)
						error += " that is greater than " + element.c_min;
					if(element.c_max != null && element.c_min != null)
						error += " and less than " + element.c_max;
					else if(element.c_max != null)
						error += " that is less than " + element.c_max;
					error += "\n";
				}
			}
			else if(element.context_type == 'int') {
				var val = new Number(element.value);
				if(isNaN(val) || (val != null) && ((element.c_min != null) && (val < element.c_min)) ||
				  ((element.c_max != null) && (val > element.c_max))) {
					error += "- the field '" + element.name + "' must be a number";
					if(element.c_min != null)
						error += " that is greater than " + element.c_min;
					if(element.c_max != null && element.c_min != null)
						error += " and less than " + element.c_max;
					else if(element.c_max != null)
						error += " that is less than " + element.c_max;
					error += ".\n";
				}
			}
			else if(element.context_type == 'varchar') {
			  if(((element.c_min != null) && (element.value.length < element.c_min)) ||
			  ((element.c_max != null) && (element.value.length > element.c_max))) {
					error += "- the field '" + element.name + "' must be text";
					if(element.c_min != null)
						error += " that is longer than " + element.c_min;
					if(element.c_max != null && element.c_min != null)
						error += " and shorter than " + element.c_max;
					else if(element.c_max != null)
						error += " that shorter than " + element.c_max;
					error += ".\n";
				}
			}
			else if(element.context_type == 'text'&& 
				((element.c_min != null) && (element.value.length < element.c_min)) ||
			  	((element.c_max != null) && (element.value.length > element.c_max))) {
					error += "- the field '" + element.name + "' must be text";
					if(element.c_min != null)
						error += " that is longer than " + element.c_min;
					if(element.c_max != null && element.c_min != null)
						error += " and shorter than " + element.c_max;
					else if(element.c_max != null)
						error += " that shorter than " + element.c_max;
					error += ".\n";
			}
		}
		if(!empty && !error)
			return true;
		msg = "_______________________________________________\n\n";
		msg += "Your data was NOT submitted due to the following errors.\n";
		msg += "Please correct these errors and re-submit.\n";
		msg += "_______________________________________________\n\n";
		if(empty) {
			msg += "- The following required fields are empty: " + empty + "\n";
			if(error)
				msg += "\n";
		} 
		msg += error;
		alert(msg);
		return false;
	}
	
	function validate(input) {
		if(input.type == 'submit')
			return submit(input.form);
		else if(input.context_type == 'int') 
			return check_int(input);
		else if(input.context_type == 'numeric') 
			return check_numeric(input);
		else if(input.context_type == 'varchar') 
			return check_varchar(input);
		else if(input.context_type == 'text') 
			return check_text(input);
		else
			return true;
	}
	
	function error_string(str, newstr) {
		if(str == "") {
			str = "Error on this page:"
		}
		str = str + " " + newstr;
		return str; 
	}

