﻿function RestrictToMaximum(ele) {
    if (ele) {
        var max = ele.attributes["maxlength"].value;
        if (ele.value.length >= max) {
            return false;
        }
    }
}

function TruncateToMaximum(ele) {
    if (ele) {
        var max = ele.attributes["maxlength"].value;
        if (ele.value.length > max) {
            ele.value = ele.value.substring(0, max);
        }
    }
}

function ToSentenceCase(ele) {
    if (ele) {
        var words = ele.value.split(' ');
        var newVal = "";
        var word = "";
        for (var i = 0; i < words.length; i++) {
            word = words[i].trim();
            if (word) {
                if (newVal == "") {
                    newVal += word.charAt(0).toString().toUpperCase();
                    newVal += word.substring(1, word.length).toLowerCase();
                    newVal += ' ';
                }
                else {
                    newVal += word.toLowerCase();
                    newVal += ' ';
                }
            }
        }
        ele.value = newVal.trim();
    }
}

function ToTitleCase(ele) {
    if (ele) {
        var words = ele.value.split(' ');
        var newVal = "";
        var word = "";
        for (var i = 0; i < words.length; i++) {
            word = words[i].trim();
            if (word) {
                newVal += word.charAt(0).toString().toUpperCase();
                newVal += word.substring(1, word.length).toLowerCase();
                newVal += ' ';
            }
        }
        ele.value = newVal.trim();
    }
}

function ToUpperCase(ele) {
    if (ele) {
        var words = ele.value.split(' ');
        var newVal = "";
        var word = "";
        for (var i = 0; i < words.length; i++) {
            word = words[i].trim();
            if (word) {
                newVal += word.toUpperCase();
                newVal += ' ';
            }
        }
        ele.value = newVal.trim();
    }
}

function ToLowerCase(ele) {
    if (ele) {
        var words = ele.value.split(' ');
        var newVal = "";
        var word = "";
        for (var i = 0; i < words.length; i++) {
            word = words[i].trim();
            if (word) {
                newVal += word.toLowerCase();
                newVal += ' ';
            }
        }
        ele.value = newVal.trim();
    }
}

function RestrictToInteger(e) {
    if (!e) e = window.event;
    var key = e.keyCode ? e.keyCode : e.which;
    if ((key >= 48 && key <= 57)) {
        return true;
    }
    else {
        return false;
    }
}

function RestrictToFloatingPoint(e, ele) {
    if (!e) e = window.event;
    key = e.keyCode ? e.keyCode : e.which;

    if (key == 46) {
        var indx = ele.value.indexOf(".", 0);
        if (indx > 0) {
            return false;
        }
    }
    else {
        if (key >= 48 && key <= 57) {
            return true;
        }
        else {
            return false;
        }
    }
}

function Format(ele) {
    if (ele.value) {
        var s = ele.value.replace(/,/g, "");
        ele.value = FormatNumber(s, 2, false, false, true);
    }
}

function FormatNumber(num, decimalNum, bolLeadingZero, bolParens, bolCommas)
/**********************************************************************
IN:
NUM - the number to format
decimalNum - the number of decimal places to format the number to
bolLeadingZero - true / false - display a leading zero for
numbers between -1 and 1
bolParens - true / false - use parenthesis around negative numbers
bolCommas - put commas as number separators.
 
RETVAL:
The formatted number!
**********************************************************************/
{
    if (isNaN(num)) return "";

    var tmpNum = num;
    var iSign = num < 0 ? -1 : 1; 	// Get sign of number

    // Adjust number so only the specified number of numbers after
    // the decimal point are shown.
    tmpNum *= Math.pow(10, decimalNum);
    tmpNum = Math.round(Math.abs(tmpNum))
    tmpNum /= Math.pow(10, decimalNum);
    tmpNum *= iSign; 				// Readjust for sign


    // Create a string object to do our formatting on
    var tmpNumStr = new String(tmpNum);
    if(tmpNumStr.indexOf(".") < 0)
        tmpNumStr = tmpNumStr + ".00";

    // See if we need to strip out the leading zero or not.
    if (!bolLeadingZero && num < 1 && num > -1 && num != 0)
        if (num > 0)
        tmpNumStr = tmpNumStr.substring(1, tmpNumStr.length);
    else
        tmpNumStr = "-" + tmpNumStr.substring(2, tmpNumStr.length);

    // See if we need to put in the commas
    if (bolCommas && (num >= 1000 || num <= -1000)) {
        var iStart = tmpNumStr.indexOf(".");
        if (iStart < 0)
            iStart = tmpNumStr.length;

        iStart -= 3;
        while (iStart >= 1) {
            tmpNumStr = tmpNumStr.substring(0, iStart) + "," + tmpNumStr.substring(iStart, tmpNumStr.length)
            iStart -= 3;
        }
    }

    // See if we need to use parenthesis
    if (bolParens && num < 0)
        tmpNumStr = "(" + tmpNumStr.substring(1, tmpNumStr.length) + ")";

    return tmpNumStr; 	// Return our formatted string!
}

function CleanupToFloatingPoint(ele) {
    var oriVal = ele.value.trim();
    var newVal = "";
    var validChars = "0123456789.";

    if (oriVal) {
        if (isNaN(oriVal)) {
            for (var i = 0; i < oriVal.length; i++) {
                var ch = oriVal.substring(i, i + 1);
                if (validChars.indexOf(ch) > 0) {
                    if (ch != "." || newVal.indexOf(".") == -1) {
                        newVal += ch;
                    }
                }
            }
            ele.value = newVal;
        }
    }
}

function CleanupToInteger(ele) {
    var oriVal = ele.value.trim();
    var newVal = "";
    var validChars = "0123456789";

    if (oriVal) {
        if (isNaN(oriVal)) {
            for (var i = 0; i < oriVal.length; i++) {
                var ch = oriVal.substring(i, i + 1);
                if (validChars.indexOf(ch) > 0) {
                    newVal += ch;
                }
            }
            ele.value = newVal;
        }
    }
}