﻿document.getElementsByClassName = function (classname, node)
{
    if (!node) node = document.getElementsByTagName("body")[0];

    var a = [];
    var re = new RegExp('\\b' + classname + '\\b');
    var els = node.getElementsByTagName("*");

    for (var i = 0, j = els.length; i < j; i++)
    {
        if (re.test(els[i].className))
        {
            a.push(els[i]);
        }
    }

    return a;
};

var Utils =
{
    getKeyCode: function(e)
    {
        if (window.event) // IE
            return window.event.keyCode;
        else if (e.which) // Netscape/Firefox/Opera
            return e.which;
        else
            return 0;
    },

    onlyNumbers: function(e)
    {
        var keynum = Utils.getKeyCode(e);

        // 9  tab
        // 8  backspace
        // 37 left
        // 39 right
        // 46 delete
        if ((keynum >= 96 && keynum <= 105) || (keynum >= 48 && keynum <= 57) || keynum == 8 || keynum == 9 || keynum == 37 || keynum == 39 || keynum == 46)
            return true;
        else
            return false;
    },

    checkNumber: function(obj)
    {
        if (obj.value != parseInt(obj.value))
        {
            obj.value = "";
        }
    },

    checkLength: function(obj, disp, len)
    {
        var remaining = (len - obj.value.length);
        var s = (remaining == 1 ? "" : "s");
        var display = document.getElementById(disp);

        if (remaining < 0)
        {
            display.style.color = "red";
            display.innerHTML = "Text is too long!";
        }
        else
        {
            display.style.color = "";
            display.innerHTML = remaining + " character" + s + " remaining";
        }
    },

    cancelBubble: function(e)
    {
        if (window.event)
            window.event.cancelBubble = true;
        else
            e.stopPropagation();
    }
};
