function fieldOnBlur(field, validationType, required) {
	field.value = allTrim(field.value) ;
	if ( validationType == "" )  {
		fieldOkay(field) ;
	} else if  ( validationType == "AlphaNumeric" ) {
		if ( ! isAlphaNumeric(field.value)) {
			fieldError(field) ;
		} else {
			fieldOkay(field) ;
		}
	} else if ( validationType == "Alpha" ) {
		if ( ! isAlpha(field.value))  {
			fieldError(field) ;
		} else {
			fieldOkay(field) ;
		}
	} else if ( validationType == "Numeric") {
		if ( ! isNumeric(field.value))  {
			fieldError(field) ;
		} else {
			fieldOkay(field) ;
		}
	} else if ( validationType == "Money") {
		if ( ! isMoney(field.value))  {
			fieldError(field) ;
		} else {
			fieldOkay(field) ;
		}
	} else if ( validationType == "URL") {
		if ( ! isURL(field.value))  {
			fieldError(field) ;
		} else {
			fieldOkay(field) ;
		}
	} else if ( validationType == "Email") {
		if ( ! isEmail(field.value))  {
			fieldError(field) ;
		} else {
			fieldOkay(field) ;
		}
	} else if ( validationType == "Phone") {
		if ( ! isPhone(field.value))  {
			fieldError(field) ;
		} else {
			fieldOkay(field) ;
		}
	} else if ( validationType == "Zip") {
		if ( ! isZip(field.value))  {
			fieldError(field) ;
		} else {
			fieldOkay(field) ;
		}
	}
	
	// If field is required (third param), then make sure it's not blank.
	if ( ( required == true ) && ( field.value == "" ) ) {
		fieldError(field) ;
	} else if ( ( required != true ) && ( field.value == "" ) ) {
		fieldOkay(field) ;
	}
	
}

function fieldOnFocus(field) {
	field.select() ;
}

function fieldError(field) {
	field.style.border = "thin solid #e82433" ;
}

function fieldOkay(field) {
	field.style.border = "thin solid #BBBBBB" ;
}

// ————————————————————————————————————————————————————————————————————————————————
// — The majority of these functions return TRUE if the value is empty.  They are only checked against the validation if they contain a value...
// ————————————————————————————————————————————————————————————————————————————————

function isURL(argvalue) {
 var li_startPos = 7 ;
 
 if ( argvalue.substring(0, 4) == "https" ) li_startPos = 8 ;
 
  if (argvalue.indexOf(" ") != -1)
    return false;
  else if ( ( argvalue.indexOf("http://") == -1 ) && ( argvalue.indexOf("https://") == -1 ) )
    return false;
  else if ( ( argvalue == "http://" ) || ( argvalue == "https://" ) )
    return false;
  else if ( ( argvalue.indexOf("http://") > 0 ) || ( argvalue.indexOf("https://") > 0 ) ) 
    return false;

  argvalue = argvalue.substring(li_startPos, argvalue.length);
  if (argvalue.indexOf(".") == -1)
    return false;
  else if (argvalue.indexOf(".") == 0)
    return false;
  else if (argvalue.charAt(argvalue.length - 1) == ".")
    return false;

  if (argvalue.indexOf("/") != -1) {
    argvalue = argvalue.substring(0, argvalue.indexOf("/"));
    if (argvalue.charAt(argvalue.length - 1) == ".")
      return false;
  }

  if (argvalue.indexOf(":") != -1) {
    if (argvalue.indexOf(":") == (argvalue.length - 1))
      return false;
    else if (argvalue.charAt(argvalue.indexOf(":") + 1) == ".")
      return false;
    argvalue = argvalue.substring(0, argvalue.indexOf(":"));
    if (argvalue.charAt(argvalue.length - 1) == ".")
      return false;
  }
  return true;
}

function x_isURL(theValue) {
//	var urlRegxp = /^(http:\/\/www.|https:\/\/www.|ftp:\/\/www.|www.){1}([\w]+)(.[\w]+){1,2}$/;
	var urlRegxp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
	var lb_retval =theValue.match(urlRegxp) ;
	
	if ( lb_retval == null ) lb_retval = false ;
	
	if ( theValue.length = 0 ) {
		lb_retval = true ;
	}
	
	return lb_retval ;
}

function isEmail(theValue) {
	var emailregex="^([_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*\.(([a-z]{2,3})|(aero|coop|info|museum|name)))?$" ;
	//var emailregex=/^[\w]+\+?\w*@[\w]+\.[\w.]+\w$/;
	var lb_retval =theValue.match(emailregex);
	return lb_retval ;
}

function isPhone(theValue) {
	var lb_retval = true ;
	var ls_newValue = theValue + "" ;								// Add empty quotes to allow search() function to operate on a "string"
	var charpos = ls_newValue.search("[^0-9\-]") ;

	if ( ls_newValue.length > 0 && charpos >= 0 ) {
		lb_retval = false ;
	}

	return lb_retval ;
}

function isZip(theValue) {
	var lb_retval = true ;
	var ls_newValue = theValue + "" ;								// Add empty quotes to allow search() function to operate on a "string"
	var charpos = ls_newValue.search("[^0-9\-]") ;

	if ( ls_newValue.length > 0 && charpos >= 0 ) {
		lb_retval = false ;
	}

	return lb_retval ;
}

function isNumeric(theValue) {
	var lb_retval = true ;
	var ls_newValue = theValue + "" ;								// Add empty quotes to allow search() function to operate on a "string"
	var charpos = ls_newValue.search("[^0-9\.]") ;

	if ( ls_newValue.length > 0 && charpos >= 0 ) {
		lb_retval = false ;
	}

	return lb_retval ;
}

function isMoney(theValue) {
	var lb_retval = true ;
	var ls_newValue = theValue + "" ;								// Add empty quotes to allow search() function to operate on a "string"
	var charpos = ls_newValue.search("[^0-9\.]") ;

	if ( ls_newValue.length > 0 && charpos >= 0 ) {
		lb_retval = false ;
	}

	return lb_retval ;
}

function isAlphaNumeric(theValue) {
	var lb_retval = true ;
	var ls_newValue = theValue + "" ;								// Add empty quotes to allow search() function to operate on a "string"
	var charpos = ls_newValue.search("[^A-Za-z0-9 ]") ;

	if ( ls_newValue.length > 0 && charpos >= 0 ) {
		lb_retval = false ;
	}

	return lb_retval ;
}

function isAlpha(theValue) {
	var lb_retval = true ;
	var ls_newValue = theValue + "" ;								// Add empty quotes to allow search() function to operate on a "string"
	var charpos = ls_newValue.search("[^A-Za-z ]") ;

	if ( ls_newValue.length > 0 && charpos >= 0 ) {
		lb_retval = false ;
	}

	return lb_retval ;
}

function roundInteger(value, zeroIfEmpty) {
	var retval = Math.round(value) ;

	if ( zeroIfEmpty != false ) {
		if ( value == "" ) retval = "" ;
	}

	if ( ! isNumeric(retval) ) retval = value ;

	return retval ;

}

function roundDecimal2(value, zeroIfEmpty) {
	var retval = (Math.round(value * 100))/100 + "" ;
	var dot = retval.indexOf(".",0) ;
	if (dot == -1) {
		retval = retval + ".00" ;
	} else if (dot == retval.length - 2) {
		retval = retval + "0" ;
	}
	
	if ( zeroIfEmpty != false ) {
		if ( value == "" ) retval = "" ;
	}
	
	if ( isNumeric(retval) == false ) retval = value ;
	
	return retval ;
}

function convertFeetToMeters(value) {
	var ldec_retval = 0.00 ;
	if ( isNumeric(value) ) ldec_retval = value * 0.3048 ;
	return ldec_retval
}

function convertMetersToFeet(value) {
	var ldec_retval = 0.00 ;
	if ( isNumeric(value) ) ldec_retval = value * 3.2808399 ;
	return ldec_retval
}

function convertGallonsToLiters(value) {
	var ldec_retval = 0.00 ;
	if ( isNumeric(value) ) ldec_retval = value * 3.7854118 ;
	return ldec_retval
}

function convertLitersToGallons(value) {
	var ldec_retval = 0.00 ;
	if ( isNumeric(value) ) ldec_retval = value * 0.264172051 ;
	return ldec_retval
}

 function allTrim(theValue) 	{ 
  	while (theValue.substring(0, 1) == ' ' || theValue.charCodeAt(0) == 32) { 
		theValue = theValue.substring(1, theValue.length); 
	}
	while (theValue.substring(theValue.length - 1, theValue.length) == ' ' || theValue.charCodeAt(theValue.length - 1) == 32) { 
		theValue = theValue.substring(0, theValue.length - 1); 
	} 
	return theValue; 
 } 
  