<!--
function trim(userInput)
{
    var iStart, iEnd;
    var sTrimmed;
    var cChar;

    iEnd = userInput.length - 1;
    iStart = 0;
    bLoop = true;

    cChar = userInput.charAt(iStart);
    while ((iStart < iEnd) && ((cChar == "\n") || (cChar == "\r") ||
           (cChar == "\t") || (cChar == " "))){
		iStart ++;
        cChar = userInput.charAt(iStart);
    }

    cChar = userInput.charAt(iEnd);
    while ((iEnd >= 0) && ((cChar == "\n") || (cChar == "\r") ||
           (cChar == "\t") || (cChar == " "))){
		iEnd --;
        cChar = userInput.charAt(iEnd);
    }

    if (iStart < iEnd){
      sTrimmed = userInput.substring(iStart, iEnd + 1);
    } 
    else if ((iStart == iEnd) && (cChar != '')) { // In case a single character was entered.
       sTrimmed = cChar; 
    }
    else {
      sTrimmed = "";
    }
      return sTrimmed;
}

function IsInteger(sValue) {
  sValue = trim(sValue);
  return sValue==parseInt(sValue,10)
}

function IsFloat(sValue) {
  sValue = trim(sValue);
  return sValue==parseFloat(sValue,10)
}

function IsDate(dDate, boIgnoreEmpty) {
  // Return true if boIgnoreEmpty is true and dDate is empty (blank)
  if (boIgnoreEmpty && trim(dDate)=="") {
    return true;
  }

  // Since the Date function does not validate hyphens, replace hyphens with /
  dDate = Replace(dDate, "-", "/");

  // NaN is never equal to itself.
  if (Date.parse(dDate) != Date.parse(dDate)) {
    return false;
  }
  else {
    return true;
  }
}

function Replace(fullS,oldS,newS) {
// Replaces oldS with newS in the string fullS
   for (var i=0; i<fullS.length; i++) {
      if (fullS.substring(i,i+oldS.length) == oldS) {
         fullS = fullS.substring(0,i)+newS+fullS.substring(i+oldS.length,fullS.length)
      }
   }
   return fullS
}

function ValidateEMail (sEMail)
{
	var locAt;
	var locDot;
	var letter;
	var i;
	var parsed = true;
	var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_!#$%^&*()+=\|'?/<>,;:{}[]~`";
	var invalidchars = "@. ";

	/********************************/
	/* Check for invalid characters */
	/********************************/
	for (i=0; i < sEMail.length; i++) {
		letter = sEMail.charAt(i).toLowerCase();
		if (validchars.indexOf(letter) != -1)
			continue;
		return false;
	}

	/******************************************/
	/* Make sure the first character is valid */
	/******************************************/
	letter = sEMail.charAt(0).toLowerCase();
	if (invalidchars.indexOf(letter) != -1) {
		return false;
	}

	/*****************************/
	/* Make sure a @ was entered */
	/*****************************/
	locAt = sEMail.indexOf("@");
	if (locAt == -1) {
		return false;
	}
	else {
		letter = sEMail.charAt(locAt-1).toLowerCase();
		if (invalidchars.indexOf(letter) != -1) {
			return false;
		}
        letter = sEMail.charAt(locAt+1).toLowerCase();
		if (invalidchars.indexOf(letter) != -1) {
			return false;
		}
	}

	/*************************************/
	/* Make sure a . was entered after @ */
	/*************************************/
	locDot = sEMail.lastIndexOf(".");
	if (locDot == -1) {
		return false;
	}

	if (locDot <= locAt) {
		return false;
	}
	else {
		letter = sEMail.charAt(locDot-1).toLowerCase();
		if (invalidchars.indexOf(letter) != -1) {
			return false;
		}
		letter = sEMail.charAt(locDot+1).toLowerCase();
		if (invalidchars.indexOf(letter) != -1) {
			return false;
		}
	}
	return true;
}
//--> 
