

    function trim(str){
       return str.replace(/^\s*|\s*$/g,"");
    }


    //deprecated
    function str_lpad(str, pad_length, pad_string){
        if(str.length >= pad_length) return str;
        while(str.length < pad_length){
            str = pad_string + str;
        }
        return str.substr(0, pad_length);
    }
    
    //deprecated
    function str_rpad(str, pad_length, pad_string){
        if(str.length >= pad_length) return str;
        while(str.length < pad_length){
            str = str + pad_string;
        }
        return str.substr(0, pad_length);
    }
    
    function str__lpad(str, pad_length, pad_string){
        if(str.length >= pad_length) return str;
        while(str.length < pad_length){
            str = pad_string + str;
        }
        return str.substr(0, pad_length);
    }
    
    function str__rpad(str, pad_length, pad_string){
        if(str.length >= pad_length) return str;
        while(str.length < pad_length){
            str = str + pad_string;
        }
        return str.substr(0, pad_length);
    }
    
    function str__words_count(str, excl_ch){
        excl_ch = excl_ch == null ? new Array() : excl_ch;
        str = String(str);
        //removing excluded chars
        for(var i = 0; i < excl_ch.length; i++){
            pos = str.indexOf(excl_ch[i]);
            while(pos != -1){
                str = str.substr(0, pos) + " " + str.substr(pos + 1, str.length - pos - 1);
                pos = str.indexOf(excl_ch[i]); 
            }
        }
        //removing double spaces
        pos = str.indexOf("  ");
        while(pos != -1){
            str = str.substr(0, pos) + " " + str.substr(pos + 2, str.length - pos - 2);
            pos = str.indexOf("  ");
        }
        //trimming string
        str = trim(String(str));
        //splitting by spaces
        if(str == ''){
            return 0;
        } else {
            var words = new Array();
            words = str.split(" ");
            return words.length;
        }
    }
