String.prototype.format = function() {
    var args = arguments;
    return this.replace(/{([^{}]*)}/g,
       function(a, b) {
           if (b.indexOf(":") > 0) {
               var parts = b.split(":");
               var index = parseInt(parts[0]);
               var formatSpecifier = parts[1];

               var o = args[index];
               return o;
           }
           else {
               var index = parseInt(b);
               return args[index];
           }
       }
    );
}

String.prototype.htmlEncode = function() {
    var s = this;
    var el = document.createElement("div");
    el.innerText = el.textContent = s;
    s = el.innerHTML;
    delete el;
    return s;
}