function htmlEncode(string)
{
    string = string.toString();
    string = string.replace(/\&/g, '&amp;');
    string = string.replace(/\</g, '&lt;');
    string = string.replace(/\>/g, '&gt;');
    string = string.replace(/\"/g, '&quot;');
    string = string.replace(/\'/g, '&#039;');

    return string;
}

function htmlDecode(string)
{
    string = string.toString();
    string = string.replace(/&amp;/g, '&');
    string = string.replace(/&lt;/g, '<');
    string = string.replace(/&gt;/g, '>');
    string = string.replace(/&quot;/g, '"');
    string = string.replace(/&#039;/g, "'");

    return string;
}

function strTrim(string)
{
    return (!string ? string : string.replace(/(^\s+)|(\s+$)/g, ''));
}

function validateNumber(e)
{
    var key;
    if (window.event)
        key = window.event.keyCode;
    else
        key = (e.which != 0 ? e.which : e.charCode);

    var char = String.fromCharCode(key);
    if (['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'].indexOf(char) != -1)
        return true;

    if (!window.event)
    {
        if ((e.keyCode == 8 || e.keyCode == 46 || e.keyCode == 37 || e.keyCode == 39 || e.keyCode == 35 || e.keyCode == 36))
            return true;
    }

    if (e.stopPropagation)
        e.stopPropagation();
    if (e.preventDefault)
        e.preventDefault();
    e.returnValue = false;
    e.cancel = true;
    e.cancelBubble = true;
    return false;
}

function extractParamFromUri(uri, paramName)
{
    if (!uri)
    {
        return;
    }
    var uri = uri.split('#')[0];  // Remove anchor.
    var parts = uri.split('?');  // Check for query params.
    if (parts.length == 1)
    {
        return;
    }
    var query = decodeURI(parts[1]);

    // Find url param.
    paramName += '=';
    var params = query.split('&');
    for (var i = 0, param; param = params[i]; ++i)
    {
        if (param.indexOf(paramName) === 0)
        {
            return unescape(param.split('=')[1]);
        }
    }
}

function ieMaxWidth(el, width)
{
    if (el.clientWidth > width)
        el.style.width = width + 'px';
    else
        el.style.width = 'auto';
}

