// JavaScript Document
function IsEmptyStr(s)
{
	return ((String(s) == "") || (String(s) == "undefined"));
}


function IsEmptyRS(rs)
{
	return ((rs.BOF) && (rs.EOF));
}




function roundFloat(n, d)
{
	// return a float value = the numeric value n
	// rounded to d decimal places.
	
	var e = Math.pow(10, d);
	var v = Math.round(n * e) / e;
	return v;
}


function fixedDecimal(n, d)
{
	// return string containing the numeric value n,
	// formatted to d decimal places.
	
	var s = roundFloat(n, d).toString(10);
	
	if (d > 0)
	{
		if (s.indexOf(".") == -1)
			s += ".";
		
		while (s.indexOf(".") > s.length - 1 - d)
		{
			s += "0";
		}
	}
	
	return s;
}





function JSStr(strIn)
{
    var i
    var theChar
    var strOut = ""

    for (i = 0; i < strIn.length; i++)
    {
        theChar = strIn.charAt(i)
        if (theChar == "'")
            strOut += "\\"

        strOut += theChar
    }
	
    return strOut;
}


function SQLStr(StrIn, options, trunc)
{
    options = options.toUpperCase();
    var s = String(StrIn);
    
    if (options.indexOf("L") > -1)
        s = StripLeft(" \t\n", s);
    
    if (trunc > 0)
        s = s.substr(0, trunc);
    
    if (options.indexOf("R") > -1)
        s = StripRight(" \t\n", s);
    
    if (options.indexOf("E") > -1)
        s = SQLEscapeQuotes(s);
    
    if (options.indexOf("Q") > -1)
        s = "'" + s + "'";
    
    return(s);
}


function SQLInt(n, defaultN)
{
    var p = parseInt(String(n), 10);

    if (isNaN(p)) p = defaultN;
    
    return(String(p));
}


function SQLFloat(n, defaultN)
{
    var p = parseFloat(n);

    if (isNaN(p)) p = defaultN;
    
    return(String(p));
}


function SQLEscapeQuotes(strIn)
{
    var i
    var theChar
    var strOut = ""

    for (i = 0; i < strIn.length; i++)
    {
        theChar = strIn.charAt(i)
        if (theChar == "'")
            strOut += "'"

        strOut += theChar
    }
    return strOut
}


function StripChars(theFilter, theString)
{
	var strOut, i, curChar
	
	strOut = "";
	
	for (i = 0; i < theString.length; i++)
	{		
		curChar = theString.charAt(i)
		if (theFilter.indexOf(curChar) < 0)      // if it's not in the filter, send it thru
			strOut += curChar;
	}
	
	return strOut;
}


function Trim(theString)
{
	// remove all leading and trailing white-space from theString
	
	var i, firstNonWhite
	
	if (StripChars(" \n\r\t",theString).length == 0 ) return "";
	
	i = -1;
	
	while (1)
	{
		i++;
		if (theString.charAt(i) != " ")
			break;
	}
	
	firstNonWhite = i;
	
	//Count the spaces at the end
	
	i = theString.length;
	
	while (1)
	{
		i--;
		if (theString.charAt(i) != " ")
			break;
	}	
	
	return theString.substring(firstNonWhite, i + 1);
}


function StripLeft(theFilter,theString)
{
	// remove all leading "filter" characters from theString
	
    var curChar;
    
    for (var i = 0; i < theString.length; i++)
    {
        curChar = theString.charAt(i);
        if (theFilter.indexOf(curChar) == -1)	// if it's not in the filter, stop
            break;
    }
    
    return theString.substring(i, theString.length);
}


function StripRight(theFilter,theString)
{
	// remove all trailing "filter" characters from theString
	
    var curChar;
    
    for (var i = theString.length - 1; i >= 0; i--)
    {
        curChar = theString.charAt(i);
        if (theFilter.indexOf(curChar) == -1)	// if it's not in the filter, stop
            break;
    }
    
    return theString.substring(0, i+1);
}


function StripRightNot(theFilter,theString)
{
	// remove all trailing characters not in theFilter from theString
	
    var curChar;
    
    for (var i = theString.length - 1; i >= 0; i--)
    {
        curChar = theString.charAt(i);
        if (theFilter.indexOf(curChar) > -1)	// if it's in the filter, stop
            break;
    }
    
    return theString.substring(0, i+1);
}


function subAwithBinC(a,b,c)
{

	var i = c.indexOf(a);
	var l = b.length;

	while (i != -1)	{
		c = c.substring(0,i) + b + c.substring(i + a.length,c.length);
		i += l;
		i = c.indexOf(a,i);
	}
	return c;

}


function zeroPad(n, w)
{
	// return a string containing the number n, 
	// left-padded with zeros to a minimum width of w
	
	var r = String(n);
	
	while (r.length < w)
	{
		r = "0" + r;
	}
	
	return r;
}


function repeat(s, n)
{
	var t = "";
	for (var i = 0; i < n; i++)
	{
		t += s;
	}
	
	return t;
}

