/** 
* string String::cut(int len)
* ±ÛÀÚ¸¦ ¾Õ¿¡¼­ºÎÅÍ ¿øÇÏ´Â ¹ÙÀÌÆ®¸¸Å­ Àß¶ó ¸®ÅÏÇÕ´Ï´Ù.
* ÇÑ±ÛÀÇ °æ¿ì 2¹ÙÀÌÆ®·Î °è»êÇÏ¸ç, ±ÛÀÚ Áß°£¿¡¼­ Àß¸®Áö ¾Ê½À´Ï´Ù.
*/
String.prototype.cut = function( len )
{
        var str = this;
        var l = 0;
        for (var i=0; i<str.length; i++) {
                l += (str.charCodeAt(i) > 128) ? 2 : 1;
                if (l > len) return str.substring(0,i) + "...";
        }
        return str;
}

/** 
* bool String::bytes(string enter_type)
* ÇØ´ç½ºÆ®¸µÀÇ ¹ÙÀÌÆ®´ÜÀ§ ±æÀÌ¸¦ ¸®ÅÏÇÕ´Ï´Ù. (±âÁ¸ÀÇ length ¼Ó¼ºÀº 2¹ÙÀÌÆ® ¹®ÀÚ¸¦ ÇÑ±ÛÀÚ·Î °£ÁÖÇÕ´Ï´Ù)
* enter_type ÀÌ r ÀÎ °æ¿ì, \r\nÀ» \r·Î¸¸ ÀÎ½ÄÇØ¼­ 1¹ÙÀÌÆ®·Î °£ÁÖ
*/
String.prototype.bytes = function(enter_type)
{
        var str = this;
        var l = 0;

        if (enter_type == "r") {
            for (var i=0; i<str.length; i++) {

                if (str.charAt(i) == "\n") {
                    continue;
                }
                l += (str.charCodeAt(i) > 128) ? 2 : 1;
            }

        } else {
            for (var i=0; i<str.length; i++) {
                l += (str.charCodeAt(i) > 128) ? 2 : 1;
            }
        }
        return l;
}

String.prototype.trim = function()
{
	var str = this.replace( /(\s+$)/g, "" );
	return str.replace( /(^\s*)/g, "" );
}

