function eString(){
    var me = this;
    
    /////////////////////////////////    
    me.isLetter = _isLetter;
    me.isLetterOnly = _isLetterOnly;
    me.htmlSpecialChars = _htmlSpecialChars;
    me.html2SpecialChars = _html2SpecialChars;
    me.trim = _trim;
    me.specialTransliterate = _specialTransliterate;
    me.upFirst = _upFirst;
    me.lowFirst = _lowFirst;
    /////////////////////////////////
    
    if (typeof(String.prototype.trim) == 'undefined') {
        String.prototype.trim = function(chr){
            if (!chr) 
                chr = '';
            return this.replace(/^[\s|\n|\r|\t|\v]+|[\s|\n|\r|\t|\v]+$/gi, chr);
        }
    }
    
    function _trim(str, chr){
        if (!chr) 
            chr = '';
        return str.replace(/^[\s|\n|\r|\t|\v]+|[\s|\n|\r|\t|\v]+$/gi, chr);
    }
    
    function _isLetter(s){
        return (s.search(/[0-9a-zà-ÿ\-\/\" \r\n\¹\;\:\.\_]/gi) != -1);
    }
    
    function _isLetterOnly(s){
        return (s.search(/[0-9a-zà-ÿ]/gi) != -1)
    }
    
    function _htmlSpecialChars(nm){
        nm = nm.replace(/</g, '&lt;');
        nm = nm.replace(/>/g, '&gt;');
        nm = nm.replace(/\"/g, '&quot;');
        nm = nm.replace(/\'/g, '&#x27;');
        return nm
    }
    
    function _html2SpecialChars(str){
        return str.replace(/&quot;/g, '"').replace(/&#x27;/g, "'").replace(/&lt;/g, '<').replace(/&gt;/g, '>').replace(/&lt;br&gt;/gi, '\n').replace(/<br>/gi, '\n');
    }
    
    function _specialTransliterate(str){
        return str.replace(/¨/g, 'å').replace(/¸/g, 'å');
    }
    
    function _upFirst(str){
        return str.replace(/^\s*./g, function(match){
            return match.toUpperCase()
        });
    }
    
    function _lowFirst(str){
        return str.replace(/^\s*./g, function(match){
            return match.toLowerCase()
        });
    }
}
