﻿String.prototype.padLeft = function (totalWidth, paddingChar) {
    if (this.length < totalWidth) {
        return new Array((totalWidth + 1) - this.length).join(paddingChar == "" ? " " : paddingChar) + this;
    }
    return this;
}

function decimal2hexadecimal(decimal) {
    return decimal.toString(16);
}

function htmlEncode(text) {
    var returnValue = "";
    for (var index = 0; index < text.length; index++) {
        if (text.charAt(index) == "&") {
            returnValue += "&amp;";
        } else if (text.charAt(index) == "'") {
            returnValue += "&#39;";
        } else if (text.charAt(index) == "\"") {
            returnValue += "&quot;";
        } else if (text.charAt(index) == "<") {
            returnValue += "&lt;";
        } else if (text.charAt(index) == ">") {
            returnValue += "&gt;";
        } else if ((text.charCodeAt(index) >= 160) && (text.charCodeAt(index) < 256)) {
            returnValue += "\\u" + decimal2hexadecimal(text.charCodeAt(index)).padLeft(4, "0");
        } else {
            returnValue += text.charAt(index);
        }
    }
    return returnValue;
}

function encodeAll() {
    var elements = document.getElementsByTagName("input");
    for (var index = 0; index < elements.length; index++) {
        if (elements[index].type == "text") {
            elements[index].value = htmlEncode(elements[index].value);
        }
    }

    elements = document.getElementsByTagName("textarea");
    for (var index = 0; index < elements.length; index++) {
        elements[index].value = htmlEncode(elements[index].value);
    }
}
