//General purpose function to see if an input value has been entered at all
function isEmpty(inputStr) {
	if (inputStr == null || inputStr == "" || inputStr == " ") {
		return true;
	}
	return false;
}
	
// General purpose function to see if an input value is a valid date
function isDate(inputStr){
	a = inputStr;
	var delim1 = a.indexOf("/")
	var delim2 = a.lastIndexOf("/")
	
	if (delim1 == delim2) return false
	if (delim1 == -1) return false
	if (delim2 == (a.length-1)) return false
	else{
		var b = parseInt(a.substring(0,delim1),10) //month
		var d = parseInt(a.substring(delim1 + 1, delim2),10)
		var f = parseInt(a.substring(delim2 +1, a.length),10)
	}
	//basic error checking
	if (b<1 || b>12) return false
	//if (c != '/') return false
	if (d<1 || d>31) return false
	//if (e != '/') return false
	if (f<1900 || f>9999) return false
	// months with 30 days
	if (b==4 || b==6 || b==9 || b==11){
		if (d==31) return false
	}
	// february, leap year
	if (b==2){
		// feb
		var g=parseInt(f/4)
		if (isNaN(g)) {
			return false
		}
		if (d>29) return false
		if (d==29 && ((f/4)!=parseInt(f/4))) return false
	}
		return true;
}

// General purpose function to see if an input value is a valid Phone Number
function isPhone(inputStr){
	a = inputStr
	var delim1 = a.indexOf("-")
	var delim2 = a.lastIndexOf("-")
	
	if (delim1 == delim2)
		return false
		
	if (delim1 != 3)
		return false
		
	if (delim2 != 7)
		return false
		
	if ((a.length - delim2) != 5)
		return false

	var b = parseInt(a.substring(0,delim1),10)				//Area Code
	var d = parseInt(a.substring(delim1 + 1, delim2),10)	//First 3 
	var f = parseInt(a.substring(delim2 +1, a.length),10)	//Last 4
	
	//basic error checking
	if (b<201 || b>999){
		return false
	}
	
	if (d<201 || d>999){
		return false
	}
	
	if (f<0 || f>9999){
		return false
	}
	
	return true;
}
		
// General purpose function that converts a text field date to a javascript date object
function makeDate(inputStr) {
	d1=inputStr
	var delim1=d1.indexOf("/")
	var delim2=d1.lastIndexOf("/")
	var b=parseInt(d1.substring(0,delim1),10) //month
	var d=parseInt(d1.substring(delim1 + 1, delim2),10)
	var f=parseInt(d1.substring(delim2 +1, d1.length),10)
	var dateA = new Date( f, b, d)
	return dateA
}
	
//function to check  if value entered is integer
/*function isNumber(inputVal){
	oneDecimal=false;
	inputStr=inputVal.toString();
    for (var i=0; i < inputStr.length; i++) {
		var oneChar=inputStr.charAt(i);
			if (oneChar=="." && !oneDecimal){
				oneDecimal=true;
				continue;
			}
			if (oneChar <"0" ||oneChar > "9") {
				return false;
			}
	}
	return true;
} */

//Standard error alert.
function onError(form_object, input_object, object_value, error_message){
	alert(error_message);
	return false;   
}

//Check objects.
function hasValue(obj, obj_type){
	if (obj_type == "TEXT" || obj_type == "PASSWORD"){
		if (obj.value.length == 0) 
			return false;
		else 
			return true;
	}
	else if (obj_type == "SELECT"){
		for (i=0; i < obj.length; i++){
		if (obj.options[i].selected)
			return true;
		}
		return false;   
	}
	else if (obj_type == "SINGLE_VALUE_RADIO" || obj_type == "SINGLE_VALUE_CHECKBOX"){
		if (obj.checked)
			return true;
		else
			return false;   
	}
	else if (obj_type == "RADIO" || obj_type == "CHECKBOX"){
		for (i=0; i < obj.length; i++){
			if (obj[i].checked)
				return true;
		}
		return false;   
	}
}

//Checks Integer.
function checkInteger(object_value){
	//Returns true if value is a number or is NULL
	//otherwise returns false   
	if (object_value.length == 0)
		return true;
	//Returns true if value is an integer defined as
	//   having an optional leading + or -.
	//   otherwise containing only the characters 0-9.
	var decimal_format = ".";
	var check_char;
	//The first character can be + -  blank or a digit.
	check_char = object_value.indexOf(decimal_format)
		//Was it a decimal?
		if (check_char < 1)
			return checkNumber(object_value);
		else
			return false;
}

//Number range
function numberRange(object_value, min_value, max_value){
	// check minimum
	if (min_value != null){
		if (object_value < min_value)
		return false;
	}
	// check maximum
	if (max_value != null){
		if (object_value > max_value)
		return false;
	}
	//All tests passed, so...
	return true;
}

//Checks if values are in range.
function checkRange(object_value, min_value, max_value){
	//if value is in range then return true else return false
    if (object_value.length == 0)
		return true;
	if (!checkNumber(object_value)){
		return false;
	}
	else{
		return (numberRange((eval(object_value)), min_value, max_value));
	}
	//All tests passed, so...
	return true;
}