if (window.Node && window.XMLSerializer) {
    if (window.Node && window.XMLSerializer && !window.opera && Node.prototype.__defineGetter__) {
        Node.prototype.__defineGetter__('outerHTML', function() {
            var outstr = new XMLSerializer().serializeToString(this);
            if ((this.tagName=='TEXTAREA') && !(this.innerHTML)) {
                outstr += '</TEXTAREA>'
            }
            return outstr;
        });
    }
}

String.prototype.capitalizeSentence = function()
{            
    return this.charAt(0).toUpperCase() + this.substring(1);
}

String.prototype.wordWrap = function(m, b, c){
    var i, j, l, s, r;
    if(m < 1)
        return this;
    for(i = -1, l = (r = this.split("\n")).length; ++i < l; r[i] += s)
        for(s = r[i], r[i] = ""; s.length > m; r[i] += s.slice(0, j) + ((s = s.slice(j)).length ? b : ""))
            j = c == 2 || (j = s.slice(0, m + 1).match(/\S*(\s)?$/))[1] ? m : j.input.length - j[0].length
            || c == 1 && m || j.input.length + (j = s.slice(m).match(/^\S*/)).input.length;
    return r.join("\n");
};
