//--------------------The Independent Functions---------------------------Begin

/*****************************************************************
leftTrim(string)
PURPOSE: Remove leading blanks from our string.
@Parameter str - the string we want to LTrim
@Return   a copy of a string without leading spaces.
*****************************************************************/
function leftTrim(str) {
    var whitespace = new String(" \t\n\r");
    
    var s = new String(str);
    
    if (whitespace.indexOf(s.charAt(0)) != -1) {
        // We have a string with leading blank(s)...
        
        var j=0, i = s.length;
        
        // Iterate from the far left of string until we
        // don't have any more whitespace...
        while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
            j++;
        
        // Get the substring from the first non-whitespace
        // character to the end of the string...
        s = s.substring(j, i);
    }
    return s;
}

/******************************************************************
rightTrim(string) 
PURPOSE: Remove trailing blanks from our string.
@Parameter str - the string we want to RTrim
@Return  a copy of a string without trailing spaces.
******************************************************************/
function rightTrim(str) {
    // We don't want to trip JUST spaces, but also tabs,
    // line feeds, etc.  Add anything else you want to
    // "trim" here in Whitespace
    var whitespace = new String(" \t\n\r");
    
    var s = new String(str);
    
    if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
        // We have a string with trailing blank(s)...
        
        var i = s.length - 1;       // Get length of string
        
        // Iterate from the far right of string until we
        // don't have any more whitespace...
        while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
            i--;
        
        
        // Get the substring from the front of the string to
        // where the last non-whitespace character is...
        s = s.substring(0, i+1);
    }
    
    return s;
}

/******************************************************************
trim(string) 
PURPOSE: Remove trailing and leading blanks from our string.
@Parameter str - the string we want to Trim
@Return   a copy of a string without leading or trailing spaces
******************************************************************/
function trim(str) {
    return rightTrim(leftTrim(str));
}


/**********************************************************
@parameter input could be a String or a number
@return boolean     true or false
**********************************************************/
function isValidNumber(input) {
    return(("" != input) && (!isNaN(parseFloat(input))) && ((input <= Number.MAX_VALUE) && (input >= Number.MIN_VALUE)));
}

/**********************************************************
@parameter input could be a String or a number
@return a Currency-like Formatted String  e.g. "135.00", "3754.35"
        or NaN if "input" is not able to converted to a number
**********************************************************/
function formatAsMoney(input) {
    input -= 0;
    input = (Math.round(input*100))/100;
    return (input == Math.floor(input)) ? 
                   input + '.00' : ((input*10 == Math.floor(input*10)) ? 
                                             input + '0' : input + '');
}

/**********************************************************
@parameter input could be a String or a number
@return a Currency-like Formatted String  e.g. "135.00", "3754.35"
        or NaN if "input" is not able to converted to a number
**********************************************************/
function formatAsNumber(input) {
    input -= 0;
    input = (Math.round(input*100))/100;
    return (input == Math.floor(input)) ? 
                   input + '' : ((input*10 == Math.floor(input*10)) ? 
                                             input + '' : input + '');
}

/**********************************************************
@parameter input could be a String or a number
@return a Formatted String    e.g.  If decimalPlace==-3, 17645.34===>18000 
        or NaN if "input" is not able to converted to a number
**********************************************************/
function formatByDecimalPlace(input, decimalPlace) {
    return Math.round(input*Math.pow(10, decimalPlace))/Math.pow(10, decimalPlace);
}

//--------------------The Independent Functions---------------------------End