<!--  HJRS_JS_ValFuncs.js.  (c) 2009 HJR SOFTWARE 704-825-7440.  Not to be modified without HJR SOFTWARE's prior written permission.
//  Validation Functions for HJRS JS FormFieldManagement.  Created: 09/23/2009
var sAlphaLC = "abcdefghijklmnopqrstuvwxyz";
var sAlphaUC = sAlphaLC.toLocaleUpperCase();
var sNumbers = "0123456789";
var sSpace   = " ";
var sMarks   = "`!@#$%\&*()-+_={}[]|\\\/:;',.?" + String.fromCharCode(34);
var sTypical = sAlphaLC+sSpace+sAlphaUC+sNumbers+".,-\\\/";
var sBlob    = sTypical + sMarks + String.fromCharCode(13,10);

function ValText(oF,sValChars,sErrVC,sReqChars,sErrRC,iMinLen,sErrML,iMaxLen,sErrMxL,iCase) {
  var lRtn = false, lTest = true;
  var oP = GetPromptObj(oF), lReq = IsFieldRequired(oF);
  var sFN = trim(oP.innerText);
  if ( lReq )
    lTest = CantBeEmpty(oF,"I need the " + sFN,oP );
  if ( lTest ) {
    if ( sValChars )
      CanOnlyContain(oF,sValChars,"Invalid Characters in " + sFN,oP );
    lTest = MustBeAtLeast(oF,iMinLen,sErrML,oP );
    if ( ( lTest ) && ( iMaxLen > 0 ) )
      lTest = CantBeMoreThan(oF,iMaxLen,sErrMxL,oP);
    if ( ( lTest ) && ( sReqChars ) )
      lTest = MustContain(oF,sReqChars,sErrRC,oP);
    oF.value = trim(oF.value);
    if ( iCase == 1 )
      oF.value = oF.value.toLocaleLowerCase();
    if ( iCase == 2 )
      oF.value = oF.value.toLocaleUpperCase();
    if ( iCase == 3 ) {
      sFN = oF.value.charAt(0).toLocaleUpperCase();
      oF.value = sFN + oF.value.substring(1,oF.value.length)
    }
    if ( iCase == 4 )
      oF.value = hjrsProperCase(oF.value);
  }
  return lTest;
}

function ValNumberFormat(oF,sFormat,sReqChars,sErrRC,iMinLen,sErrML,iMaxLen,sErrMxL) {
  var lRtn = false, lTest = true;
  var oP = GetPromptObj(oF), lReq = IsFieldRequired(oF);
  var sFN = trim(oP.innerText);
  var sValChars = sNumbers+"-./";
  var iAt, iL, iC, sNewStr = "";
  if ( lReq )
    lTest = CantBeEmpty(oF,"I need the " + sFN,oP );
  if ( lTest ) {
    if ( sValChars )
      CanOnlyContain(oF,sValChars,"Invalid Characters in " + sFN,oP );
    if ( sFormat ) {
      if ( sFormat == "00000-0000" ) {
        if ( oF.value.length < 6 )
          sFormat = "00000";
      }
      iAt = sFormat.indexOf(".");
      if ( iAt > -1 ) {
        iL = sFormat.length;
        oF.value = rtrim(oF.value);
        if ( oF.value.indexOf(".") == -1 ) {
          oF.value += "." + "00000".substr(0,iL-iAt-1);
        } else {
          iC = oF.value.indexOf(".");
          if ( oF.value.length - iC - 1 < iL - iAt - 1 ) {
            oF.value += "00000".substr(0,(iL-iAt-1) - (oF.value.length-iC-1));
          } else if ( oF.value.length - iC - 1 > iL - iAt - 1 ) {
            oF.value = oF.value.substr(0,iC+1) + hjrsMidStr(oF.value+"00000",iC+1,iL - iAt - 1);
          }
        }
      }
    }
    CanOnlyContain(oF,sNumbers,"Invalid Characters in " + sFN,oP );
    iL = oF.value.length -1;
    if ( sFormat ) {
      for (iAt = sFormat.length - 1; iAt > -1; iAt -- ) {
        if ( sNumbers.indexOf(sFormat.charAt(iAt)) == -1 ) {
          sNewStr = sFormat.charAt(iAt) + sNewStr;
        } else {
          if ( iL > -1 ) {
            sNewStr = oF.value.charAt(iL) + sNewStr;
          } else {
            if ( sFormat.charAt(iAt) == "0" ) {
              sNewStr = "0" + sNewStr;
            } else {
              sNewStr = " " + sNewStr;
            }
          }
          iL --;
        }
      }
      oF.value = sNewStr;
    }

    lTest = MustBeAtLeast(oF,iMinLen,sErrML,oP );
    if ( ( lTest ) && ( iMaxLen > 0 ) )
      lTest = CantBeMoreThan(oF,iMaxLen,sErrMxL,oP);
    if ( ( lTest ) && ( sReqChars ) )
      lTest = MustContain(oF,sReqChars,sErrRC,oP);
  }
  return lTest;
}

function ValEmail( oField, sEMsg ) {
  var reEM = /^[a-zA-Z]+([_\.-]?[a-zA-Z0-9]+)*@[a-zA-Z0-9]+([\.-]?[a-zA-Z0-9]+)*(\.[a-zA-Z]{2,4})+$/;
  var lRtn = true;
  var oPrompt = GetPromptObj(oField), lReq = IsFieldRequired(oField);
  var sFN = trim(oPrompt.innerText);

  if ( lReq )
    lRtn = CantBeEmpty(oField,"I need the " + sFN,oPrompt );
  if ( lRtn ) {
    if ( oField.value.length > 0 ) {
      ValText(oField,sAlphaLC+sAlphaUC+sNumbers+".@-_","","@.","",0,"",0,"",1);
      oField.value = trim(oField.value.toLocaleLowerCase());
      lRtn = reEM.test( oField.value );
    }
  }
  return RR(lRtn,oField,oPrompt,sEMsg); 
}
//-->
