
String.prototype.tr = function(from, to) {
    var fromChars = from.split("");
    var toChars = to.split("");

    var mapTable = {};

    for(i = 0; i < fromChars.length; i++) {
        var c = i < toChars.length ? toChars[i] : "";
        mapTable[fromChars[i]] = c;
    }

    var str = this;

    var re = new RegExp(fromChars.join("|"), "g");
    str = str.replace(re, function(c) {
        return mapTable[c];
    });

    return str;
};

String.prototype.toLower = function() {
	var s = this;
	s = s.toLowerCase();
	return s.tr("âàáãäéèêëîïíôóòùúüûçÀÂÉÈÊËÎÏÔÙÛÜÇÿñ", "aaaaaeeeeiiiooouuuucaaeeeeiiouuucyn");
};

String.prototype.toUpper = function() {
	var s = this;
	s = s.toUpperCase();
	return s.tr("âàáãäéèêëîïíôóòùúüûçÀÂÉÈÊËÎÏÔÙÛÜÇÿñ", "AAAAAEEEEIIIOOOUUUUCAAEEEEIIOUUUCYN");
};
