//Check the email address entered to see if it is at least in the proper format.
function check_email(emailaddress) {
   if (emailaddress.indexOf("@") == -1 || emailaddress.indexOf("@") == 0 || emailaddress.indexOf("@.") == 0 || emailaddress.indexOf(".") == -1) {
      return false;
   }
   else {
      return true;
   }
}
   
function ltrim(string_to_ltrim) {
	string_to_ltrim = new String(string_to_ltrim);
	if (string_to_ltrim.length > 0) {
		for (var i = 0; i < string_to_ltrim.length && string_to_ltrim.charAt(i) == ' '; i++);
		return string_to_ltrim.substring(i);
	} else {
		return "";
	}
}

function rtrim(string_to_rtrim) {
	string_to_rtrim = new String(string_to_rtrim);
	if (string_to_rtrim.length > 0) {
		for (var i = string_to_rtrim.length; i > 0 && string_to_rtrim.charAt(i - 1) == ' '; i--);
		return string_to_rtrim.substring(0, i);
	} else {
		return "";
	}
}

function trim(string_to_trim)
{
   return ltrim(rtrim(string_to_trim));
}

//Check if the current character is a letter a -> z or A -> Z
//Returns true or false.
function isLetter(character)
{   
   if ( (character >= "a" && character <= "z") || (character >= "A" && character <= "Z") )
   {
      return true;
   }
   else
   {
      return false;
   }   
}

//Check if the current character is a number 0 -> 9
//Returns true or false.
function isDigit(character)
{
	 if ((character >= "0") && (character <= "9") || (character >= 0) && (character <= 9))
   {
      return true;
   }
   else
   {
      return false;
   }   
}

//Returns true if character is a letter or digit.
function isLetterOrDigit(char_string)
{
   blnIs = true;
   for (i = 0; i < char_string.length; i++)
   {   
      //Check if the current character is a letter or number.
      //If one character fails, pass back false. Otherwise, pass back true.
      var c = char_string.charAt(i);
      if (!isLetter(c) && !isDigit(c))
      {
         blnIs = false;
      }
    }
    return blnIs;
}

function isValidDate(dateStr, format) {
	if (format == null) { format = "MDY"; }
	format = format.toUpperCase();
	if (format.length != 3) { format = "MDY"; }
	if ((format.indexOf("M") == -1) || (format.indexOf("D") == -1) || (format.indexOf("Y") == -1)) { format = "MDY"; }
	if (format.substring(0, 1) == "Y") { // If the year is first
		var reg1 = /^\d{2}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
		var reg2 = /^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
	} else if (format.substring(1, 2) == "Y") { // If the year is second
		var reg1 = /^\d{1,2}(\-|\/|\.)\d{2}\1\d{1,2}$/
		var reg2 = /^\d{1,2}(\-|\/|\.)\d{4}\1\d{1,2}$/
	} else { // The year must be third
		var reg1 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{2}$/
		var reg2 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/
	}
	// If it doesn't conform to the right format (with either a 2 digit year or 4 digit year), fail
	if ((reg1.test(dateStr) == false) && (reg2.test(dateStr) == false)) { return false; }
	var parts = dateStr.split(RegExp.$1); // Split into 3 parts based on what the divider was
	// Check to see if the 3 parts end up making a valid date
	if (format.substring(0, 1) == "M") { var mm = parts[0]; } else if (format.substring(1, 2) == "M") { var mm = parts[1]; } else { var mm = parts[2]; }
	if (format.substring(0, 1) == "D") { var dd = parts[0]; } else if (format.substring(1, 2) == "D") { var dd = parts[1]; } else { var dd = parts[2]; }
	if (format.substring(0, 1) == "Y") { var yy = parts[0]; } else if (format.substring(1, 2) == "Y") { var yy = parts[1]; } else { var yy = parts[2]; }
	if (parseFloat(yy) <= 50) { yy = (parseFloat(yy) + 2000).toString(); }
	if (parseFloat(yy) <= 99) { yy = (parseFloat(yy) + 1900).toString(); }
	var dt = new Date(parseFloat(yy), parseFloat(mm) - 1, parseFloat(dd), 0, 0, 0, 0);
	if (parseFloat(dd) != dt.getDate()) { return false; }
	if (parseFloat(mm) - 1 != dt.getMonth()) { return false; }
	return true;
}
