/*
***************************************************************************
'*  SOURCE NAME				: prototype.js
'*  FIRST AUTHOR				: °­ÇöÁÖ
'*  PROGRAMING DATE		: 2006-07-19
'*  DESCRIPTION				: ÀÚ¹Ù ½ºÅ©¸³Æ® ±âº» ÇÁ·ÎÅäÅ¸ÀÔ Á¤ÀÇ
'***************************************************************************
'***************************************************************************
'*  SYSTEM NAME   GUIDANCE		NAME		DATE			DESCRIPTION
'***************************************************************************
*/

/*
ÁÂ¿ì °ø¹é Á¦°Å ÇÔ¼ö (by °­ÇöÁÖ 2006-07-14)
- »ç¿ë¹æ¹ý : ¹®ÀÚ¿­.trim();
*/
String.prototype.trim = function() {
	return this.replace(/(^\s*)|(\s*$)/g,"");
}

/*
¿ÞÂÊ °ø¹é Á¦°Å ÇÔ¼ö (by °­ÇöÁÖ 2006-07-14)
- »ç¿ë¹æ¹ý : ¹®ÀÚ¿­.ltrim();
*/
String.prototype.ltrim = function() {
	return this.replace(/(^\s*)/g,"");
}

/*
¿À¸¥ÂÊ °ø¹é Á¦°Å ÇÔ¼ö (by °­ÇöÁÖ 2006-07-14)
- »ç¿ë¹æ¹ý : ¹®ÀÚ¿­.rtrim();
*/
String.prototype.rtrim = function() {
	return this.replace(/(\s*$)/g,"");
}

/*
ÅÂ±×¸¸ Á¦°Å ÇÔ¼ö (by °­ÇöÁÖ 2006-07-14)
- »ç¿ë¹æ¹ý : ¹®ÀÚ¿­.stripTags();
*/
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();
	}
}

/*
ÀüÃ¼ ¹®ÀÚ¿­ º¯°æ ÇÔ¼ö (by °­ÇöÁÖ 2006-09-01)
- »ç¿ë¹æ¹ý : ¹®ÀÚ¿­.replaceAll();
*/
String.prototype.replaceAll = function(str1, str2){
	var temp_str = "";
	if (this.trim() != "" && str1 != str2){
		temp_str = this.trim();
		while (temp_str.indexOf(str1) > -1){
			temp_str = temp_str.replace(str1, str2);
		}
	}

	return temp_str;
}


/*
´ë¼Ò¹®ÀÚ ±¸º°ÇÏÁö ¾Ê°í ´Ü¾î À§Ä¡ Ã£±â (by °­ÇöÁÖ 2006-07-14)
- »ç¿ë¹æ¹ý : ¹®ÀÚ¿­.ipos('°Ë»öÇÒ¹®ÀÚ'[, °Ë»ö½ÃÀÛÇÒÀ§Ä¡]); 
*/
String.prototype.ipos = function(needle, offset) {
	var str = this;
	var offset = (typeof offset == "number")?offset:0;
	return str.toLowerCase().indexOf(needle.toLowerCase(), offset);
}

/*
´ë¼Ò¹®ÀÚ ±¸º°ÇÏÁö ¾Ê°í µÚ¿¡¼­ºÎÅÍ ´Ü¾î À§Ä¡ Ã£±â (by °­ÇöÁÖ 2006-07-14)
- »ç¿ë¹æ¹ý : ¹®ÀÚ¿­.ripos('°Ë»öÇÒ¹®ÀÚ'[, °Ë»ö½ÃÀÛÇÒÀ§Ä¡]); 
*/
String.prototype.ripos = function(needle, offset) {
	var str = this;
	var offset = (typeof offset == "number")?offset:str.length;
	return str.toLowerCase().lastIndexOf(needle.toLowerCase(), offset);
}

/*
//±æÀÌ Ã¼Å© ÇÔ¼ö(°°Àº °æ¿ì=true, °°Áö ¾ÊÀº °æ¿ì=false) (by °­ÇöÁÖ 2006-07-18)
- »ç¿ë¹æ¹ý : ¹®ÀÚ¿­.CheckLen(±æÀÌ°ª); 
*/
String.prototype.checkLen = function(offset) {
	var str = this;
	var offset = (typeof offset == "number")?offset:0;
	if(str.length!=offset) return false;
	return true;
}

/*
//¹ÙÀÌÆ® ±æÀÌ¼ö Ãâ·Â ÇÔ¼ö (by °­ÇöÁÖ 2006-07-18)
- »ç¿ë¹æ¹ý : ¹®ÀÚ¿­.byteLength(); 
*/
String.prototype.byteLength = function() {
	var str = this;
	if(typeof str == "undefined" || str == null) return "0";

	var result = 0
	for(var i = 0; i < str.length; i++) {
		result += str.charAt(i) >= '¤¡' ? 2 : 1
	}
	return result
}

/*
//¹ÙÀÌÆ® ±æÀÌ¼ö Á¦ÇÑ Àß¶ó³»±â ÇÔ¼ö (by °­ÇöÁÖ 2006-07-18)
- »ç¿ë¹æ¹ý : ¹®ÀÚ¿­._util.truncateString(ÃÖ´ë±æÀÌ¼ö)
*/
String.prototype.truncateString = function(max) {
	var str = this;
	if (max>0){
		var blen = str.byteLength();
		if(blen > max) {
			return str.substring(0, max - 2) + "..";
		} else {
			return str;
		}
	}
}
/*
//¼ýÀÚÀÎÁö ¿©ºÎ¸¦ ºÎ¿ï°ªÀ¸·Î ¹ÝÈ¯ÇÕ´Ï´Ù.(by °­ÇöÁÖ 2006-07-18)
- »ç¿ë¹æ¹ý : ¹®ÀÚ¿­.checkNumeric(); 
*/
String.prototype.checkNumeric = function() {
	var str = this;
	var pattern = /^[0-9]+$/i
	return pattern.test(str)
}

/*
//¼ýÀÚ, ¿µ¹®ÀÚÀÎÁö ¿©ºÎ¸¦ ºÎ¿ï°ªÀ¸·Î ¹ÝÈ¯ÇÕ´Ï´Ù.(by °­ÇöÁÖ 2006-07-18)
- »ç¿ë¹æ¹ý : ¹®ÀÚ¿­.checkAlphaNumeric(); 
*/
String.prototype.checkAlphaNumeric = function() {
	var str = this;
	var pattern = /^[a-zA-Z0-9]+$/i
	return pattern.test(str)
}

/*
//¼ýÀÚ, ¼Ò¹®ÀÚ ¿µ¹®ÀÚÀÎÁö ¿©ºÎ¸¦ ºÎ¿ï°ªÀ¸·Î ¹ÝÈ¯ÇÕ´Ï´Ù.(by °­ÇöÁÖ 2006-07-18)
- »ç¿ë¹æ¹ý : ¹®ÀÚ¿­.checkLowerAlphaNumeric(); 
*/
String.prototype.checkLowerAlphaNumeric = function() {
	var str = this;
	var pattern = /^[a-z0-9]+$/i
	return pattern.test(str)
}

/*
//ÇÑ±ÛÀÎÁö ¿©ºÎ¸¦ ºÎ¿ï°ªÀ¸·Î ¹ÝÈ¯ÇÕ´Ï´Ù.(by °­ÇöÁÖ 2006-07-18)
- »ç¿ë¹æ¹ý : ¹®ÀÚ¿­.checkHan(); 
*/
String.prototype.checkHan = function() {
	var str = this;
	var result = true;
	for(var i=0; i < str.length;i++){
		var chr=str.charCodeAt(i);
		if(chr > 255) continue;
		else{
			if(chr == 32) continue;
			result = false;
			break;
		}
	}
  return result;
}

/*
//µµ¸ÞÀÎÀÎÁö ¿©ºÎ¸¦ ºÎ¿ï°ªÀ¸·Î ¹ÝÈ¯ÇÕ´Ï´Ù.(by °­ÇöÁÖ 2006-07-18)
- »ç¿ë¹æ¹ý : ¹®ÀÚ¿­.domainCheck(); 
*/
String.prototype.domainCheck = function() {
	var str = this;
	var strDomain1;
	strDomain1 = str.replace(/^[\s]+/g, "");
	strDomain1 = strDomain1.replace(/[\s]+$/g, "");
	if(strDomain1.search(/[\w\~\-]+(\.[\w\~\-]+)+\s*$/g)<0  || strDomain1.search(/^(www|WWW)\.+/g)>-1 ){
		return false;
	}else return true;
}

/*
À¯È¿ÇÑ ÀÌ¸ÞÀÏ ÁÖ¼Ò ¿©ºÎ¸¦ ºÎ¿ï°ªÀ¸·Î ¹ÝÈ¯ÇÕ´Ï´Ù.(by °­ÇöÁÖ 2006-07-18)
- »ç¿ë¹æ¹ý : ¹®ÀÚ¿­.checkEmail(); 
*/
String.prototype.checkEmail = function() {
	var str = this;
	var pattern = /[a-zA-Z0-9-_]+@[a-zA-Z0-9-_.]+\.[a-zA-Z]{2,}/gi
	return pattern.test(str)
}

/*
À¯È¿ÇÑ ÀüÈ­¹øÈ£ ¿©ºÎ¸¦ ºÎ¿ï°ªÀ¸·Î ¹ÝÈ¯ÇÕ´Ï´Ù.(by °­ÇöÁÖ 2006-07-18)
- »ç¿ë¹æ¹ý : ¹®ÀÚ¿­.checkPhone(); 
*/
String.prototype.checkPhone = function() {
	var str = this;
	var pattern = /^([0]{1}[0-9]{1,2})-?([1-9]{1}[0-9]{2,3})-?([0-9]{4})$/;
	return pattern.test(str)
}


/*
À¯È¿ÇÑ ÁÖ¹Î ¹øÈ£ ¿©ºÎ¸¦ ºÎ¿ï°ªÀ¸·Î ¹ÝÈ¯ÇÕ´Ï´Ù.(by °­ÇöÁÖ 2006-07-18)
- »ç¿ë¹æ¹ý : checkJumin('ÁÖ¹Îµî·Ï¹øÈ£°ª1', 'ÁÖ¹Îµî·Ï¹øÈ£°ª2');
*/
var checkJumin = function(jumin1,jumin2) {
	if (!jumin1.checkNumeric()){
		alert("ÀÔ·ÂÇÏ½Å ÁÖ¹Îµî·Ï¹øÈ£´Â ¼ýÀÚ°¡ ¾Æ´Õ´Ï´Ù.");
		return false;
	}
	if (!jumin2.checkNumeric()){
		alert("ÀÔ·ÂÇÏ½Å ÁÖ¹Îµî·Ï¹øÈ£´Â ¼ýÀÚ°¡ ¾Æ´Õ´Ï´Ù.");
		return false;
	}

	if (!jumin1.checkLen(6)){
		alert("ÀÔ·ÂÇÏ½Å ÁÖ¹Îµî·Ï¹øÈ£ÀÇ ÀÚ¸´¼ö°¡ ¸ÂÁö ¾Ê½À´Ï´Ù.");
		return false;
	}

	if (!jumin2.checkLen(7)){
		alert("ÀÔ·ÂÇÏ½Å ÁÖ¹Îµî·Ï¹øÈ£ÀÇ ÀÚ¸´¼ö°¡ ¸ÂÁö ¾Ê½À´Ï´Ù.");
		return false;
	}

	var jumin = jumin1 + jumin2;
	var check_sum = parseInt(jumin.charAt(0))*2 + parseInt(jumin.charAt(1))*3
               	  + parseInt(jumin.charAt(2))*4 + parseInt(jumin.charAt(3))*5
               	  + parseInt(jumin.charAt(4))*6 + parseInt(jumin.charAt(5))*7
               	  + parseInt(jumin.charAt(6))*8 + parseInt(jumin.charAt(7))*9
               	  + parseInt(jumin.charAt(8))*2 + parseInt(jumin.charAt(9))*3
               	  + parseInt(jumin.charAt(10))*4 + parseInt(jumin.charAt(11))*5;
 	check_sum = check_sum % 11;
 	check_sum = 11 - check_sum;
 	var check_digit = parseInt(jumin.charAt(12));

 	if (check_sum >= 10) check_sum = check_sum - 10;
 	if (check_digit != check_sum){
		alert("¿ÇÁö ¾ÊÀº ÁÖ¹Îµî·Ï¹øÈ£ÀÔ´Ï´Ù.");
		return false;
	}
 	return true;
}


/*
Æ¯¼ö¹®ÀÚ»ç¿ë ¿©ºÎ¸¦ ºÎ¿ï°ªÀ¸·Î ¹ÝÈ¯ÇÕ´Ï´Ù.(by °­ÇöÁÖ 2006-07-18)
- »ç¿ë¹æ¹ý : ¹®ÀÚ¿­.specialChar(); 
*/
String.prototype.specialChar = function() {
	var str = this;
	for (i = 0; i < str.length; i++)	{
		var ch = str.charCodeAt(i);
		if((ch >= 0 && ch <= 47) || (ch >= 58 && ch <= 64) || (ch >= 91 && ch <= 94) || (ch == 96) || (ch >= 123 && ch <= 255) || (ch==95))
			return false;
	}
	return true;
}

/*
¼ýÀÚ¸¦ ÅëÈ­ÇüÀ¸·Î º¯È¯ (1000 => 1,000) (by °­ÇöÁÖ 2006-07-18)
- »ç¿ë¹æ¹ý : °´Ã¼.get_currency(); 
*/
String.prototype.get_currency = function() {
	var str = this;
	var strCurrency = "";

	for(i = 0; i < str.length; i++)
	{
		if(i > 0 && (i % 3) == 0)
			strCurrency = str.charAt(str.length - i - 1) + "," + strCurrency;
		else
			strCurrency = str.charAt(str.length - i - 1) + strCurrency;
	}
	
	return strCurrency;
}

/*
 ÅëÈ­ÇüÀ» ¼ýÀÚ·Î º¯È¯ (1,000 => 1000) (by °­ÇöÁÖ 2006-07-18)
- »ç¿ë¹æ¹ý : °´Ã¼.get_numeric(); 
*/
String.prototype.get_numeric = function() {
	var str = this;
	var strNumeric = str;
	
	for(i = 0; i < strNumeric.length; i++)
		strNumeric = strNumeric.replace(",", "");
	
	return strNumeric;
}

/*
 ¹®ÀÚ¿­À» encodeÈ­ (by °­ÇöÁÖ 2006-07-21)
- »ç¿ë¹æ¹ý : ¹®ÀÚ¿­.encode(); 
*/
String.prototype.encode = function() {
	var str = this;
	if (encodeURIComponent) {
		return encodeURIComponent(str);
	}
	else if (escape) {
		return escape(str);
	}
	else{
		return null;
	}
}


/*
 ¹®ÀÚ¿­À» decodeÈ­ (by °­ÇöÁÖ 2006-07-21)
- »ç¿ë¹æ¹ý : ¹®ÀÚ¿­.decode(); 
*/
String.prototype.decode = function() {
	var str = this;
	str = str.replace(/\+/g, ' ');
	if (decodeURIComponent) {
		return decodeURIComponent(str);
	}
	else if (unescape) {
		return unescape(str);
	}
	else{
		return null;
	}
}

