// JavaScript Document
// some poorly written routines to read a string looking for FUNCTION ( ARG, ARG ) etc.
// undoubtedly will need to rewrite

var gv_fnFound=false;
var gv_aryStrArgs= new Array(0);
var gv_aryNumArgs= new Array(0);

// ==================================================================
// Function: getIsFn
// Descr:    return true if the input string begins with the requested function
// ==================================================================
function getIsFn(p_inStr,p_fn){
  var f_myRE      = new RegExp("^[\t ]*"+p_fn+"[\t ]*[(]", "gi");
  var f_myString  = new String(p_inStr);
  var f_myResults = f_myString.match(f_myRE);
  return (f_myResults != null);
  }

// ==================================================================
// Function: getSafeQuote
// Descr:    returns passed in string with all quote characters (") replaced with the HTML escaped quote "&quot;"
// ==================================================================
function getSafeQuote(p_in){
  var f_myString = new String(p_in);
  var f_rExp = /"/gi;
  return f_myString.replace(f_rExp, "&quot;").toString();
  }

// ==================================================================
// Function: getUnsafeQuote
// Descr:    reverses getSafeQuote
// ==================================================================
function getUnsafeQuote(p_in){
  var f_myString = new String(p_in);
  var f_rExp = /&quot;/gi;
  return f_myString.replace(f_rExp, "\"" ).toString();
  }

// ==================================================================
// Function: getNum
// Descr:    returns passed in string with all non-numeric values stripped
// ==================================================================
function getNum(p_in){
  var f_myString = new String(p_in);
  var f_rExp = /\D/gi;
  return f_myString.replace(f_rExp, "");
  }

// ==================================================================
// Function: getStr
// Descr:    returns passed in string stripped of quotes
// ==================================================================
function getStr(p_in){
  var f_myString = new String(p_in);
  var f_rExp = /"/gi;
  return f_myString.replace(f_rExp, "");
  }
	
// ==================================================================
// Function: trimStr
// Descr:    returns passed in string stripped of leading and trailing whitespace
// ==================================================================
function trimStr(p_in){
  var f_myString = new String(p_in);
  var f_startExp = /^[\s]+/gi;
  var f_endExp   = /[\s]+$/gi;
  f_myString= f_myString.replace(f_startExp, "");
  return f_myString.replace(f_endExp, "");
  }

// ==================================================================
// Function: getNumericArgs
// Descr:    Description
// ==================================================================
function getNumericArgs(p_inStr){
  var f_myRE      = /[( ,\t]+(\d+)/gi
  var f_myString  = new String(p_inStr);
  gv_aryNumArgs = f_myString.match(f_myRE);

  if (gv_aryNumArgs == null){
    gv_aryNumArgs= new Array(0);
	} else {
		for(var i=0; i < gv_aryNumArgs.length; i++) {
		  gv_aryNumArgs[i] = getNum(gv_aryNumArgs[i]);
		  } // for
	}
	return gv_aryNumArgs.length;
  } // getNumericArgs

// ==================================================================
// Function: getStringArgs
// Descr:    Description
// ==================================================================
function getStringArgs(p_inStr){
  var f_myRE      = /"([^"]*)"/gi
  var f_myString  = new String(p_inStr);
  gv_aryStrArgs = f_myString.match(f_myRE);

  if (gv_aryStrArgs == null){
    gv_aryStrArgs= new Array(0);
	} else {
		for(var i=0; i < gv_aryStrArgs.length; i++) {
		  gv_aryStrArgs[i] = getStr(gv_aryStrArgs[i]);
		  } // for
	}
	return gv_aryStrArgs.length;
  } // getStringArgs


// ==================================================================
// Function: readFn
// Descr:    returns true if requested function was able to be read
// ==================================================================
function readFn(p_inStr,p_fn){
	getNumericArgs(p_inStr);
	getStringArgs(p_inStr);
	gv_fnFound= getIsFn(p_inStr,p_fn);
	return gv_fnFound;

  } // listArgs


