//--------------------------------------------------------------------------------------------------
  function fsRemoveAllDoubleQuotes(psInTarget)
     {
      return fsRemoveAllOccurrencesOfOneChar(fsAllTrim(psInTarget), "\"")
      }
//--------------------------------------------------------------------------------------------------
  function fsAllTrim(psInTarget)
     {
      return psInTarget.replace(/^ +/, "").replace(/ +$/, "");
      }
//--------------------------------------------------------------------------------------------------
  function fsRemoveAllOccurrencesOfOneChar(psInTarget, psInCharToRemove)
     {
      psInCharToRemove = "\\" + psInCharToRemove;
      var re = new RegExp(psInCharToRemove, "g");
      return psInTarget.replace(re, "");
      }
//--------------------------------------------------------------------------------------------------
  function fReduceBlocksOfMultipleCharsToOneChar(psInTarget, psInOneChar)
     {
      var sOneChar = "\\" + psInOneChar;
      var re = new RegExp(sOneChar + sOneChar + "{2,}", "g");
      return psInTarget.replace(re, psInOneChar);
      //                     /\*\*{2,}/g, "*"
      }
//--------------------------------------------------------------------------------------------------
  function fsNormaliseTextMaybe(psInTarget)
     {
      var sResult = fsAllTrim(psInTarget);
      if (sResult.length)
          if (sResult == sResult.toUpperCase() || sResult == sResult.toLowerCase())
             {
              var sTarget = sResult;
              sResult = "";
              while (sTarget.length)
                 {
                  var iSpacePos = sTarget.indexOf(" ");
                  if (iSpacePos > 0)
                     {
                      var sOneWord = sTarget.substring(0, iSpacePos);
                      sResult = sResult + fsNormaliseOneWordMaybe(sOneWord) + " ";
                      sTarget = fsAllTrim(sTarget.substring(iSpacePos + 1, sTarget.length));
                      }
                  else
                     {
                      sResult = sResult + fsNormaliseOneWordMaybe(sTarget);
                      sTarget = "";
                      }
                  }
           }
      return sResult;
      }
//--------------------------------------------------------------------------------------------------
  function fsNormaliseOneWordMaybe(psInTarget)
     {
      var sResult = fsRemoveAllOccurrencesOfOneChar(fsAllTrim(psInTarget), " ");
      if (sResult.length)
          if (sResult == sResult.toUpperCase() || sResult == sResult.toLowerCase())
              sResult = sResult.substring(0, 1).toUpperCase() + sResult.substring(1, sResult.length).toLowerCase();

      return sResult;
      }
//--------------------------------------------------------------------------------------------------
  function fPositionAndSizeBroswer(piInBrowserWidthRequired, piInBrowserHeightRequired)
     {
      var iBrowserWidth;
      var iBrowserHeight;

      if (piInBrowserWidthRequired == null)
          iBrowserWidth = 800;
      else
          iBrowserWidth = piInBrowserWidthRequired;

      if (piInBrowserHeightRequired == null)
          iBrowserHeight = 600;
      else
          iBrowserHeight = piInBrowserHeightRequired;

      with (window.screen)
           {
            if (availWidth < iBrowserWidth)
                iBrowserWidth = availWidth;

            if (availHeight < iBrowserHeight)
                iBrowserHeight = availHeight;
            }

      window.resizeTo(iBrowserWidth, iBrowserHeight);

      window.moveTo((window.screen.availWidth - iBrowserWidth) / 2,
                    (window.screen.availHeight - iBrowserHeight) / 2);
      }
//--------------------------------------------------------------------------------------------------
  function fCheckFieldEmpty(poInFieldToCheck, psInFieldNameForErrorMessage)
     {
      if (poInFieldToCheck.value.length == 0)
         {
          alert("ERROR :  NO  '' " + psInFieldNameForErrorMessage + " ''  Supplied.     ");
          poInFieldToCheck.focus();
          return true;
          }
      else
          return false;
      }
//--------------------------------------------------------------------------------------------------
  function fCheckFieldLength(poInFieldToCheck, piInFieldLength, psInFieldNameForErrorMessage)
     {
      if (poInFieldToCheck.value.length > piInFieldLength)
         {
          alert("ERROR :  The  \" " + psInFieldNameForErrorMessage + " \"  content is too Long.     ");
          poInFieldToCheck.focus();
          return true;
          }
      else
          return false;
      }
//--------------------------------------------------------------------------------------------------
  function fsRemoveAllNonDigits(psInTarget)
     {
      var sDigitsOnly = "";
      for (var iCharPos = 0; iCharPos < psInTarget.length; iCharPos ++)
          {
           var sOneChar = psInTarget.substring(iCharPos, iCharPos + 1);
           if (sOneChar >= "0" && sOneChar <= "9")
               sDigitsOnly += sOneChar;
           }
      return sDigitsOnly;
      }
//--------------------------------------------------------------------------------------------------
  function fCheckNotNumeric(poInFieldToCheck, psInFieldNameForErrorMessage)
     {
      var psInFieldValue = fsRemoveAllOccurrencesOfOneChar(fsAllTrim(poInFieldToCheck.value), ",");
      if (psInFieldValue.length == 0 || isNaN(psInFieldValue))
         {
          alert("ERROR :  \" " + psInFieldNameForErrorMessage + " \"  is NOT Numeric.");
          poInFieldToCheck.focus();
          return true;
          }
      else
          return false;
      }
//--------------------------------------------------------------------------------------------------
  function fiStringToPositiveInteger(psInTarget)
     {
      psInTarget = fsRemoveAllOccurrencesOfOneChar(fsAllTrim(psInTarget + ""), ",");
      if (psInTarget.length == 0 || isNaN(psInTarget))
          return 0;
      else
          psInTarget = Math.round(Math.abs(parseFloat(psInTarget, 10))) + "";
          var iLenTarget = psInTarget.length;
          if (iLenTarget > 3)
              psInTarget = psInTarget.substring(0, iLenTarget - 3) + "," 
                         + psInTarget.substring(iLenTarget - 3, iLenTarget);
          if (iLenTarget > 6)
              psInTarget = psInTarget.substring(0, iLenTarget - 6) + "," 
                         + psInTarget.substring(iLenTarget - 6, iLenTarget + 1);
          return psInTarget;
      }
//--------------------------------------------------------------------------------------------------
  function fCheckDropDownListChoice(poInDropDownListToCheck, psInFieldNameForErrorMessage)
     {
      if (poInDropDownListToCheck.length == 1)
          return false;

      if (poInDropDownListToCheck.selectedIndex == 0)
         {
          alert("ERROR :  NO  \" " + psInFieldNameForErrorMessage + " \"  chosen.");
          poInDropDownListToCheck.focus();
          return true;
          }
      else
          return false;
      }
//--------------------------------------------------------------------------------------------------