/******************************************************************************
*
*	String °øÅëÇÔ¼ö
*
*	ÁÖÀÇ : ¾Æ·¡ÀÇ ¸ðµç ¸Þ¼Òµå´Â ÀÔ·ÂÆûÀÇ ÇÊµåÀÌ¸§(myform.myfield)À»
*	ÆÄ¶ó¹ÌÅÍ·Î ¹Þ´Â´Ù. ÇÊµåÀÇ °ª(myform.myfield.value)ÀÌ ¾Æ´ÔÀ»
*	À¯³äÇÒ °Í.
*
******************************************************************************/

/**
 * Null Ã¼Å©
 * @parameter
 * @return
 */
String.prototype.isNull = function()
{
	if(this == null || this == "" || this == undefined || this == "undefined"){
		return true ;
	}
	else{
		return false ;
	}
}


/**
 * ¿µ¹®ÀÚ¸¸ Çã¿ë
 * @parameter
 * @return
 */
String.prototype.isAlpha = function()
{
	if(this.search(/[^A-Za-z]/) == -1){
		return true ;
	}
	else{
		return false ;
	}
}


/**
 * ¼ýÀÚ·Î¸¸ Çã¿ë
 * @parameter
 * @return
 */
String.prototype.isNumber = function()
{
	if(this.search(/[^0-9]/) == -1){
		return true ;
	}
	else{
		return false ;
	}
}


/**
 * ¼ýÀÚ·Î¸¸ Çã¿ë(½Ç¼öÇü)
 * @parameter
 * @return
 */
String.prototype.isFloat = function()
{
	if(this.search(/[^0-9.]/) == -1){
		return true ;
	}
	else{
		return false ;
	}
}



/**
 * ¿ÞÂÊ °ø¹é Á¦°Å
 * @parameter
 * @return
 */
String.prototype.ltrim = function()
{
	var i, j = 0;
	var objstr

	for(i=0 ; i < this.length ; i++){
		if(this.charAt(i) == ' '){
			j = j + 1 ;
		}
		else{
			break ;
		}
	}
	return this.substr(j, this.length - j+1)
	//return this.replace(/^s*/g, "") ;
}


/**
 * ¿À¸¥ÂÊ °ø¹é Á¦°Å
 * @parameter
 * @return
 */
String.prototype.rtrim = function()
{
	var i, j = 0 ;
	for(i = this.length - 1; i >= 0 ; i--){
		if(this.charAt(i) == ' '){
			j = j + 1 ;
		}
		else{
			break ;
		}
	}
	return this.substr(0, this.length - j) ;
	//return this.replace(/s*$/g, "") ;
}


/**
 * ¾Õ,µÚ °ø¹é Á¦°Å
 * @parameter
 * @return
 */
String.prototype.trim = function()
{
	return this.replace(/\s/g, "") ;
	//return this.replace(/(^\s*)|(\s*$)/gi, "");
       //return this.replace(/(^s*)|(s*$)/g, "");
}

//ÁÂ¿ì °ø¹é¾ø¾Ö´Â ÇÔ¼ö
/*
function trim(string)
{
    var temp = "";
    string = '' + string;
    splitstring = string.split(" ");
    for(i = 0; i < splitstring.length; i++)
        temp += splitstring[i];
    return temp;
   // »ç¿ë¹æ¹ý : trim(form.msg.value);
}
*/


/**
 * ¹ÙÀÌÆ® °è»ê(ÇÑ±ÛÀ» 2±ÛÀÚ·Î °è»ê)ÇÏ¿© ¼ø¼öÇÑ ±æÀÌ¸¦ °è»ê
 * @parameter
 * @return
 */
String.prototype.getByte = function()
{
	var sChar ;
	var iByte = 0 ;

	for(var i = 0 ; i < this.length ; i++){
		sChar = this.charAt(i) ;
		if(escape(sChar).length > 4){
			iByte += 2 ;
		}
		else{
			iByte++ ;
		}
	}
	return iByte ;
}


/**
 * ÀÔ·Â°ªÀÇ ¹ÙÀÌÆ® ±æÀÌ
 * @parameter
 * @return
 */
 String.prototype.getByte2 = function()
 {
	var iByte = 0 ;
	for(var inx = 0 ; inx < this.length ; inx++){
		var oneChar = escape(this.charAt(inx)) ;
		if(oneChar.length == 1){
			iByte ++ ;
		}
		else if(oneChar.indexOf("%u") != -1){
			iByte += 2 ;
		}
		else if(oneChar.indexOf("%") != -1){
			iByte += oneChar.length / 3 ;
		}
	}
	return iByte;
}

/**
 * ÀÔ·Â°ªÀÇ ¹ÙÀÌÆ® ±æÀÌ
 * @parameter
 * @return
 */
String.prototype.getByte3 = function()
{
       var i, len = 0 ;

       if (this != "") {
              for (var i = 0 ; i < this.length ; i++) {
                     if (this.charCodeAt(i) > 255) {
                            len += 2;
                     }
                     else {
                            len += 1;
                     }
              }
       }
       return len;
}




/**
 * ¿µ¹®ÀÚ¿Í ¼ýÀÚ·Î¸¸ ÀÌ·ç¾îÁ³´ÂÁö Ã¼Å©
 * @parameter
 * @return
 */
String.prototype.isAlphaNumber = function()
{
	if(this.search(/[^A-Za-z0-9_-]/) == -1){
		return true ;
	}
	else{
		return false ;
	}
}


/**
 * ÀÔ·Â¹üÀ§ Ã¼Å©
 * @parameter
 *	- iMin : ÃÖ¼Ò ¹üÀ§
 *	- iMax : ÃÖ´ë ¹üÀ§
 * @return
 * 	- ¹üÀ§ ¹Ì¸¸ : -1
 * 	- ¹üÀ§ ¼ö·Å : 0
 * 	- ¹üÀ§ ÃÊ°ú : 1
 */
String.prototype.isLimit = function()
{
	var iMin = parseInt(arguments[0]) ;  //ÃÖ¼Ò ÀÔ·Â¼ö
	var iMax = parseInt(arguments[1]) ;  //ÃÖ´ë ÀÔ·Â¼ö
	var iLen = this.length ;
	var iRt ;

	if(iLen > 0){
		if(iLen >= iMin && iLen <= iMax){
			iRt = 0 ;
		}
		else if(iLen < iMin){
			iRt = -1 ;
		}
		else if(iLen > iMax){
			iRt = 1 ;
		}
		else{}
	}
	return iRt ;
}


/**
 * ÃÖ¼Ò ÀÔ·Â¹üÀ§
 * @parameter
 *	- iMin : ÃÖ¼Ò ¹üÀ§
 * @return
 * 	- ¹üÀ§ ÀÌ»ó : true
 * 	- ¹üÀ§ ÀÌÇÏ : false
 */
String.prototype.isMin = function()
{
	var iMin = parseInt(arguments[0]) ;  //ÃÖ¼Ò ÀÔ·Â¼ö
	var iLen = this.length ;
	var bRt = false;

	if(iLen > 0){
		if(iLen >= iMin){
			bRt = true ;
		}
	}
	return bRt ;
}


/**
 * ÃÖ´ë ÀÔ·Â¹üÀ§
 * @parameter
 *	- iMax : ÃÖ´ë ¹üÀ§
 * @return
 * 	- ¹üÀ§ ÀÌÇÏ : true
 * 	- ¹üÀ§ ÀÌ»ó : false
 */
String.prototype.isMax = function()
{
	var iMax = parseInt(arguments[0]) ;  //ÃÖ´ë ÀÔ·Â¼ö
	var iLen = this.length ;
	var bRt = false;

	if(iLen > 0){
		if(iLen <= iMax){
			bRt = true ;
		}
	}
	return bRt ;
}


/**
 * ÀüÈ­¹øÈ£(¼ýÀÚ,'-' ¸¸ Çã¿ë)
 * @parameter
 * @return
 */
String.prototype.isTel = function()
{
	if(this.search(/[^0-9_-]/) == -1){
		return true ;
	}
	else{
		return false ;
	}
}


/**
 * E-Mail Çü½Ä Ã¼Å©
 * @parameter
 * @return
 */
String.prototype.isEmail = function()
{
	if(this.search(/(.+)@.+\..+/) == -1){
		return false ;
	}
	else{
		for(var i = 0 ; i < this.length ; i++){
			if(this.charCodeAt(i) > 256){
				return false ;
			}
		}
		return true ;
	}
}


/**
 * ³¯Â¥ Çü½Ä Ã¼Å© (YYYY-MM-DD)
 * @parameter
 * @return
 */
String.prototype.isDate = function()
{
	if(this.search(/\d{4}\-\d{2}\-\d{2}/) == -1){
		return false ;
	}
	else{
		return true ;
	}
}


/**
 * ÁÖ¹Îµî·Ï¹øÈ£ Ã¼Å©
 * @parameter
 * @return
 */
String.prototype.isJumin = function()
{
	var jumin = this ;
	if(jumin.length  != 13)
		return false ;

	tval = jumin.charAt(0)*2 + jumin.charAt(1)*3 + jumin.charAt(2)*4
		+ jumin.charAt(3)*5 + jumin.charAt(4)*6 + jumin.charAt(5)*7
		+ jumin.charAt(6)*8+ jumin.charAt(7)*9 + jumin.charAt(8)*2
		+ jumin.charAt(9)*3 + jumin.charAt(10)*4 + jumin.charAt(11)*5 ;

	tval2 = 11- (tval % 11) ;
	tval2 = tval2 % 10 ;

	if(jumin.charAt(12) == tval2 &&  (jumin.charAt(6) == "1" ||jumin.charAt(6) == "2")){
		return true ;
	}
	else{
		return false ;
	}
}


 /**
  * 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;
 }


 /**
  * ±ÛÀÚ¸¦ ¿ÞÂÊ¿¡¼­ºÎÅÍ ¿øÇÏ´Â ±æÀÌ¸¸Å­ Àß¶ó ¸®ÅÏÇÕ´Ï´Ù.
  */
String.prototype.leftCut = function(len)
{
       var str = this;
	return str.substring(0,i) ;
}


/**
 * ±ÛÀÚ¸¦ ¿À¸¥ÂÊ¿¡¼­ºÎÅÍ ¿øÇÏ´Â ±æÀÌ¸¸Å­ Àß¶ó ¸®ÅÏÇÕ´Ï´Ù.
 */
String.prototype.rightCut = function(len)
{
       var str = this;
	return str.substring((str.length-len),str.length) ;
}



 /**
  * bool String::bytes(void)
  * ÇØ´ç½ºÆ®¸µÀÇ ¹ÙÀÌÆ®´ÜÀ§ ±æÀÌ¸¦ ¸®ÅÏÇÕ´Ï´Ù. (±âÁ¸ÀÇ length ¼Ó¼ºÀº 2¹ÙÀÌÆ® ¹®ÀÚ¸¦ ÇÑ±ÛÀÚ·Î °£ÁÖÇÑ´Ù)
  */
String.prototype.bytes = function()
{
       var str = this;
         var l = 0;
         for (var i=0; i<str.length; i++) l += (str.charCodeAt(i) > 128) ? 2 : 1;
         return l;
}


/*
 * javascript ¿¡¼­ replace¸¦ ÀÌ¿ëÇÏ¿© ¹®ÀÚ¿­ ³»ÀÇ " ¸¦ &quot; ·Î º¯È¯ÇÏ±â
 * ¹®ÀÚ¿­.replace(/\"/g, "&quot;")
 */

String.prototype.replaceAll = function(str1, str2)
{
	var temp_str =  this ;
	while (temp_str.indexOf(str1) > -1) {
		temp_str = temp_str.replace(str1, str2) ;
		//temp_str = temp_str.replace(eval("/" + str1 + "/g"), str2);
	}
	return temp_str ;
}

/*
function replace(msrc,sstr,rstr)
{
       var idx,sleft,sright ;

       msrc += "" ;
       sstr += "" ;
       rstr += "" ;
       idx = msrc.indexOf(sstr) ;

       if (idx > -1) {
              sleft = msrc.substring(0,idx) + rstr;
              sright = msrc.substring(idx+sstr.length);
              return sleft + replace(sright,sstr,rstr);
       }
       else {
              return msrc;
       }
}
*/


/**
 * HTML Æ¯¼ö¹®ÀÚ¸¦ º¯È¯
 */
String.prototype.htmlChars = function()
{
       var str = ((this.replace('"', '&amp;')).replace('"', '&quot;')).replace('\'', '&#39;') ;
       return (str.replace('<', '&lt;')).replace('>', '&gt;') ;
}

/**
 * ÅÂ±×¸¸ Á¦°Å
 */
String.prototype.stripTags = function()
{
	var str = this;
	var pos1 = str.indexOf('<');

	if (pos1 == -1) return str;
	else {
		var pos2 = str.indexOf('>', pos1);
		if (pos2 == -1) return str;
		return (str.substr(0, pos1) + str.substr(pos2+1)).stripTags();
	}
}

/**
 * ´ë¼Ò¹®ÀÚ ±¸º°ÇÏÁö ¾Ê°í ´Ü¾î À§Ä¡ Ã£±â
 */
String.prototype.ipos = function(needle, offset)
{
       var offset = (typeof offset == "number")?offset:0;
       return str.toLowerCase().indexOf(needle.toLowerCase(), offset);
}

/**
 * ´ë¼Ò¹®ÀÚ ±¸º°ÇÏÁö ¾Ê°í µÚ¿¡¼­ºÎÅÍ ´Ü¾îÀ§Ä¡ Ã£±â
 */
String.prototype.ripos = function(needle, offset)
{
       var offset = (typeof offset == "number")?offset:0;
       return str.toLowerCase().lastIndexOf(needle.toLowerCase(), offset);
}

/**
 * Æ¯Á¤¹®ÀÚ¿­À» ¸ðµÎ Ã£¾Æ¼­ ¿øÇÏ´Â ¹®ÀÚ¿­·Î ¸ðµÎ ¹Ù²Ù±â
 */
String.prototype.replaceExp = function(from, to)
{
      return this.replace(new RegExp(from, "g"), to);
}
String.prototype.replaceEval = function(from, to){
      return this.replace(eval("/" + from + "/g"), to);
}

/**
 * ¹®ÀÚ¿­À» ¹è¿­·Î
 */
String.prototype.toArray = function()
{
       var len = this.length;
       var arr = new Array;
       for (var i=0; i<len; i++) arr[i] = this.charAt(i);
       return arr;
}
