/*¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á//

	ÇÊ¼ö¸í·É¾î
	ÇöÀçÁÖ¼Ò	: location.pathname
	ÇöÀç ÁÖ¼ÒÀÇ ÆÄ¶ó¹ÌÅÍ°ª	: location.search;

	¡á Å°º¸µå Á¦¾î
	event.keyCode == "13"		: Enter
	event.keyCode == "112"	:	F1 µµ¿ò¸»
	event.keyCode == "114"	:	F3 °Ë»ö
	event.keyCode == "116"	:	F5 »õ·Î°íÄ§
	event.keyCode == "122"	:	F11 ÀüÃ¼È­¸é
	event.keyCode == "8"		:	back space
	event.keyCode == "72"		:	Ctrl+H È÷½ºÅä¸®
	event.keyCode == "78"		:	Ctrl+N »õÃ¢¿­±â
	event.keyCode == "79"		:	Ctrl+O ¿­±â
	event.keyCode == "82"		:	Ctrl+R »õ·Î°íÄ§
	event.keyCode == "93"		:	¸Þ´ºÅ°					
	event.keyCode == "69"		:	Ctrl+E °Ë»ö
	event.keyCode == "66"		:	Ctrl+B Áñ°ÜÃ£±â ±¸¼º

	window.document.onkeydown = fnTrapKeydown;

	try {
		RE data = new RE("test regexp");
	}
	catch (RESyntaxException e) {
		// ¿©±â¼­ ¿¹¿Ü¸¦ Àâ´Â´Ù.
	}

	°¢Á¾ prototype ¹× °øÅë ÇÔ¼ö

	//     : Á¤±Ô½ÄÀÇ ½ÃÀÛ°ú ³¡ Ç¥½Ã
	^      : ½ÄÀÇ Ã¹±ÛÀÚ
	A-Z    : ´ë¹®ÀÚ ¾ËÆÄºª
	{4,12} : ¹®ÀÚÀÇ ±æÀÌ°¡ 4~12 »çÀÌ
	g      : ÀüÃ¼ ¹üÀ§
	\.     : Æ¯¼ö ¹®ÀÚ Ç¥Çö

¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á¡á*/
var regNum = new RegExp(/^[0-9]/);
var regPhone = new RegExp(/^[0-9]{2,3}-[0-9]{3,4}-[0-9]{4}/);
var regDomain = new RegExp(/^[.a-zA-Z0-9-]+.[a-zA-Z]/);
var regAlpha = new RegExp(/^[a-zA-Z]/);
var regHost = new RegExp(/^[a-zA-Z-]/);
var regHangul = new RegExp(/[°¡-ÆR]/);
var regHangulEng = new RegExp(/[°¡-ÆRa-zA-Z]/);
var regHangulOnly = new RegExp(/^[°¡-ÆR]/);
var regId = new RegExp(/^[a-zA-Z]{1}[a-zA-Z0-9_-]{4,15}/);
var regEmail = new RegExp(/^[A-Za-z0-9]{4,12}@[A-Za-z0-9]{2,12}\.[A-Za-z0-9]{2,12}/g);

//-----------------------------------------------------------------------------
// ¹®ÀÚÀÇ °ø¹é Á¦°Å
// @return : String
//-----------------------------------------------------------------------------
String.prototype.trim = function(){ 
	return this.replace(/(^\s*)|(\s*$)/g, ""); 
}
//-----------------------------------------------------------------------------
// ¹®ÀÚÀÇ ¿ì °ø¹é Á¦°Å
// @return : String
//-----------------------------------------------------------------------------
String.prototype.trimR = function() {
    return this.replace(/(\s*$)/, "");  
}
//-----------------------------------------------------------------------------
// ¹®ÀÚÀÇ ÁÂ °ø¹é Á¦°Å
// @return : String
//-----------------------------------------------------------------------------
String.prototype.trimL = function() {
    return this.replace(/(^\s*)/, "");
}
String.prototype.replaceAll = function(str1, str2){
	var strTemp = "";
	if (this.trim() != "" && str1 != str2){
		strTemp = this.trim();
		while (strTemp.indexOf(str1) > -1){
			strTemp = strTemp.replace(str1, str2);
		}
	}
	return strTemp;
}
//-----------------------------------------------------------------------------
// ¹®ÀÚ¿­ÀÇ byte ±æÀÌ ¹ÝÈ¯
// @return : int
//-----------------------------------------------------------------------------
String.prototype.byte = function() {
    var cnt = 0;
    for (var i = 0; i < this.length; i++) {
        if (this.charCodeAt(i) > 127)
            cnt += 2;
        else
            cnt++;
    }
    return cnt;
}

//-----------------------------------------------------------------------------
// Á¤¼öÇüÀ¸·Î º¯È¯
// @return : String
//-----------------------------------------------------------------------------
String.prototype.int = function() {
    if(!isNaN(this)) {
        return parseInt(this);
    }
    else {
        return null;  
    }
}

//-----------------------------------------------------------------------------
// ¼ýÀÚ¸¸ °¡Á® ¿À±â
// @return : String
//-----------------------------------------------------------------------------
String.prototype.num = function() {
    return (this.trim().replace(/[^0-9]/g, ""));
}

//-----------------------------------------------------------------------------
// ¼ýÀÚ¿¡ 3ÀÚ¸®¸¶´Ù , ¸¦ Âï¾î¼­ ¹ÝÈ¯
// @return : String
//-----------------------------------------------------------------------------
String.prototype.money = function() {
    var num = this.trim();
    while((/(-?[0-9]+)([0-9]{3})/).test(num)) {
        num = num.replace((/(-?[0-9]+)([0-9]{3})/), "$1,$2");
    }
    return num;
}

//-----------------------------------------------------------------------------
// ¼ýÀÚÀÇ ÀÚ¸®¼ö(cnt)¿¡ ¸Âµµ·Ï ¹ÝÈ¯
// @return : String
//-----------------------------------------------------------------------------
String.prototype.digits = function(cnt) {
    var digit = "";
    if (this.length < cnt) {
        for(var i = 0; i < cnt - this.length; i++) {
            digit += "0";
        }
    }
    return digit + this;
}

//-----------------------------------------------------------------------------
// " -> '  (&#34;  -> &#39;)·Î ¹Ù²Ù¾î¼­ ¹ÝÈ¯
// @return : String
//-----------------------------------------------------------------------------
String.prototype.quota = function() {
    return this.replace(/"/g, "&#34;").replace(/'/g, "&#39;");
}

//-----------------------------------------------------------------------------
// ÆÄÀÏ È®ÀåÀÚ¸¸ °¡Á®¿À±â
// @return : String
//-----------------------------------------------------------------------------
String.prototype.ext = function() {
    return (this.indexOf(".") < 0) ? "" : this.substring(this.lastIndexOf(".") + 1, this.length);  
}

//-----------------------------------------------------------------------------
// URL¿¡¼­ ÆÄ¶ó¸ÞÅÍ Á¦°ÅÇÑ ¼ø¼öÇÑ url ¾ò±â
// @return : String
//-----------------------------------------------------------------------------  
String.prototype.uri = function() {
    var arr = this.split("?");
    arr = arr[0].split("#");
    return arr[0];  
}


/*---------------------------------------------------------------------------------*\
*  °¢Á¾ Ã¼Å© ÇÔ¼öµé
\*---------------------------------------------------------------------------------*/

//-----------------------------------------------------------------------------
// Á¤±Ô½Ä¿¡ ¾²ÀÌ´Â Æ¯¼ö¹®ÀÚ¸¦ Ã£¾Æ¼­ ÀÌ½ºÄÉÀÌÇÁ ÇÑ´Ù.
// @return : String
//-----------------------------------------------------------------------------
String.prototype.meta = function() {
    var str = this;
    var result = ""
    for(var i = 0; i < str.length; i++) {
        if((/([\$\(\)\*\+\.\[\]\?\\\^\{\}\|]{1})/).test(str.charAt(i))) {
            result += str.charAt(i).replace((/([\$\(\)\*\+\.\[\]\?\\\^\{\}\|]{1})/), "\\$1");
        }
        else {
            result += str.charAt(i);
        }
    }
    return result;
}

//-----------------------------------------------------------------------------
// Á¤±Ô½Ä¿¡ ¾²ÀÌ´Â Æ¯¼ö¹®ÀÚ¸¦ Ã£¾Æ¼­ ÀÌ½ºÄÉÀÌÇÁ ÇÑ´Ù.
// @return : String
//-----------------------------------------------------------------------------
String.prototype.remove = function(pattern) {
    return (pattern == null) ? this : eval¡¡("this.replace(/[" + pattern.meta() + "]/g, \"\")");
}

//-----------------------------------------------------------------------------
// ÃÖ¼Ò ÃÖ´ë ±æÀÌÀÎÁö °ËÁõ
// str.isLength(min [,max])
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isLength = function() {
    var min = arguments[0];
    var max = arguments[1] ? arguments[1] : null;
    var success = true;
    if(this.length < min) {
        success = false;
    }
    if(max && this.length > max) {
        success = false;
    }
    return success;
}

//-----------------------------------------------------------------------------
// ÃÖ¼Ò ÃÖ´ë ¹ÙÀÌÆ®ÀÎÁö °ËÁõ
// str.isByteLength(min [,max])
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isByteLength = function() {
    var min = arguments[0];
    var max = arguments[1] ? arguments[1] : null;
    var success = true;
    if(this.byte() < min) {
        success = false;
    }
    if(max && this.byte() > max) {
        success = false;
    }
    return success;
}

//-----------------------------------------------------------------------------
// °ø¹éÀÌ³ª ³ÎÀÎÁö È®ÀÎ
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isBlank = function() {
    var str = this.trim();
    for(var i = 0; i < str.length; i++) {
        if ((str.charAt(i) != "\t") && (str.charAt(i) != "\n") && (str.charAt(i)!="\r")) {
            return false;
        }
    }
    return true;
}

//-----------------------------------------------------------------------------
// ¼ýÀÚ·Î ±¸¼ºµÇ¾î ÀÖ´ÂÁö ÇÐÀÎ
// arguments[0] : Çã¿ëÇÒ ¹®ÀÚ¼Â
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isNum = function() {
    return (/^[0-9]+$/).test(this.remove(arguments[0])) ? true : false;
}

//-----------------------------------------------------------------------------
// ¿µ¾î¸¸ Çã¿ë - arguments[0] : Ãß°¡ Çã¿ëÇÒ ¹®ÀÚµé
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isEng = function() {
    return (/^[a-zA-Z]+$/).test(this.remove(arguments[0])) ? true : false;
}

//-----------------------------------------------------------------------------
// ¼ýÀÚ¿Í ¿µ¾î¸¸ Çã¿ë - arguments[0] : Ãß°¡ Çã¿ëÇÒ ¹®ÀÚµé
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isEngNum = function() {
    return (/^[0-9a-zA-Z]+$/).test(this.remove(arguments[0])) ? true : false;
}

//-----------------------------------------------------------------------------
// ¼ýÀÚ¿Í ¿µ¾î¸¸ Çã¿ë - arguments[0] : Ãß°¡ Çã¿ëÇÒ ¹®ÀÚµé
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isNumEng = function() {
    return this.isEngNum(arguments[0]);
}

//-----------------------------------------------------------------------------
// ¾ÆÀÌµð Ã¼Å© ¿µ¾î¿Í ¼ýÀÚ¸¸ Ã¼Å© Ã¹±ÛÀÚ´Â ¿µ¾î·Î ½ÃÀÛ - arguments[0] : Ãß°¡ Çã¿ëÇÒ ¹®ÀÚµé
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isUserid = function() {
    return (/^[a-zA-z]{1}[0-9a-zA-Z]+$/).test(this.remove(arguments[0])) ? true : false;
}

//-----------------------------------------------------------------------------
// ÇÑ±Û Ã¼Å© - arguments[0] : Ãß°¡ Çã¿ëÇÒ ¹®ÀÚµé
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isKor = function() {
    return (/^[°¡-ÆR]+$/).test(this.remove(arguments[0])) ? true : false;
}

//-----------------------------------------------------------------------------
// ÁÖ¹Î¹øÈ£ Ã¼Å© - arguments[0] : ÁÖ¹Î¹øÈ£ ±¸ºÐÀÚ
// XXXXXX-XXXXXXX
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isJumin = function() {
    var arg = arguments[0] ? arguments[0] : "";
    var jumin = eval¡¡("this.match(/[0-9]{2}[01]{1}[0-9]{1}[0123]{1}[0-9]{1}" + arg + "[1234]{1}[0-9]{6}$/)");
    if(jumin == null) {
        return false;
    }
    else {
        jumin = jumin.toString().num().toString();
    }

    // »ý³â¿ùÀÏ Ã¼Å©
    var birthYY = (parseInt(jumin.charAt(6)) == (1 ||2)) ? "19" : "20";
    birthYY += jumin.substr(0, 2);
    var birthMM = jumin.substr(2, 2) - 1;
    var birthDD = jumin.substr(4, 2);
    var birthDay = new Date(birthYY, birthMM, birthDD);
    if(birthDay.getYear() % 100 != jumin.substr(0,2) || birthDay.getMonth() != birthMM || birthDay.getDate() != birthDD) {
        return false;
    }      

    var sum = 0;
    var num = [2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5]
    var last = parseInt(jumin.charAt(12));
    for(var i = 0; i < 12; i++) {
        sum += parseInt(jumin.charAt(i)) * num[i];
    }
    return ((11 - sum % 11) % 10 == last) ? true : false;
}

//-----------------------------------------------------------------------------
// ¿Ü±¹ÀÎ µî·Ï¹øÈ£ Ã¼Å© - arguments[0] : µî·Ï¹øÈ£ ±¸ºÐÀÚ
// XXXXXX-XXXXXXX
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isForeign = function() {
    var arg = arguments[0] ? arguments[0] : "";
    var jumin = eval¡¡("this.match(/[0-9]{2}[01]{1}[0-9]{1}[0123]{1}[0-9]{1}" + arg + "[5678]{1}[0-9]{1}[02468]{1}[0-9]{2}[6789]{1}[0-9]{1}$/)");
    if(jumin == null) {
        return false;
    }
    else {
        jumin = jumin.toString().num().toString();
    }
    // »ý³â¿ùÀÏ Ã¼Å©
    var birthYY = (parseInt(jumin.charAt(6)) == (5 || 6)) ? "19" : "20";
    birthYY += jumin.substr(0, 2);
    var birthMM = jumin.substr(2, 2) - 1;
    var birthDD = jumin.substr(4, 2);
    var birthDay = new Date(birthYY, birthMM, birthDD);
    if(birthDay.getYear() % 100 != jumin.substr(0,2) || birthDay.getMonth() != birthMM || birthDay.getDate() != birthDD) {
        return false;
    }
    if((parseInt(jumin.charAt(7)) * 10 + parseInt(jumin.charAt(8))) % 2 != 0) {
        return false;
    }
    var sum = 0;
    var num = [2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5]
    var last = parseInt(jumin.charAt(12));
    for(var i = 0; i < 12; i++) {
        sum += parseInt(jumin.charAt(i)) * num[i];
    }
    return (((11 - sum % 11) % 10) + 2 == last) ? true : false;
}  

//-----------------------------------------------------------------------------
// »ç¾÷ÀÚ¹øÈ£ Ã¼Å© - arguments[0] : µî·Ï¹øÈ£ ±¸ºÐÀÚ
// XX-XXX-XXXXX
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isBiznum = function() {
    var arg = arguments[0] ? arguments[0] : "";
    var biznum = eval¡¡("this.match(/[0-9]{3}" + arg + "[0-9]{2}" + arg + "[0-9]{5}$/)");
    if(biznum == null) {
        return false;
    }
    else {
        biznum = biznum.toString().num().toString();
    }

    var sum = parseInt(biznum.charAt(0));
    var num = [0, 3, 7, 1, 3, 7, 1, 3];
    for(var i = 1; i < 8; i++) sum += (parseInt(biznum.charAt(i)) * num[i]) % 10;
    sum += Math.floor(parseInt(parseInt(biznum.charAt(8))) * 5 / 10);
    sum += (parseInt(biznum.charAt(8)) * 5) % 10 + parseInt(biznum.charAt(9));
    return (sum % 10 == 0) ? true : false;
}

//-----------------------------------------------------------------------------
// ¹ýÀÎ µî·Ï¹øÈ£ Ã¼Å© - arguments[0] : µî·Ï¹øÈ£ ±¸ºÐÀÚ
// XXXXXX-XXXXXXX
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isCorpnum = function() {
    var arg = arguments[0] ? arguments[0] : "";
    var corpnum = eval¡¡("this.match(/[0-9]{6}" + arg + "[0-9]{7}$/)");
    if(corpnum == null) {
        return false;
    }
    else {
        corpnum = corpnum.toString().num().toString();
    }
    var sum = 0;
    var num = [1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2]
    var last = parseInt(corpnum.charAt(12));
    for(var i = 0; i < 12; i++) {
        sum += parseInt(corpnum.charAt(i)) * num[i];
    }
    return ((10 - sum % 10) % 10 == last) ? true : false;
}

//-----------------------------------------------------------------------------
// ÀÌ¸ÞÀÏÀÇ À¯È¿¼ºÀ» Ã¼Å©
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isEmail = function() {
    return (/\w+([-+.]\w+)*@\w+([-.]\w+)*\.[a-zA-Z]{2,4}$/).test(this.trim());
}

//-----------------------------------------------------------------------------
// ÀüÈ­¹øÈ£ Ã¼Å© - arguments[0] : ÀüÈ­¹øÈ£ ±¸ºÐÀÚ
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isPhone = function() {
    var arg = arguments[0] ? arguments[0] : "";
    return eval¡¡("(/(02|0[3-9]{1}[0-9]{1})" + arg + "[1-9]{1}[0-9]{2,3}" + arg + "[0-9]{4}$/).test(this)");
}

//-----------------------------------------------------------------------------
// ÇÚµåÆù¹øÈ£ Ã¼Å© - arguments[0] : ÇÚµåÆù ±¸ºÐÀÚ
// @return : boolean
//-----------------------------------------------------------------------------
String.prototype.isMobile = function() {
    var arg = arguments[0] ? arguments[0] : "";
    return eval¡¡("(/01[016789]" + arg + "[1-9]{1}[0-9]{2,3}" + arg + "[0-9]{4}$/).test(this)");
}
//-----------------------------------------------------------------------------
// ÀÌ¹ÌÁö ¿øº» Å©±â º¸±â 
// 
//-----------------------------------------------------------------------------
String.prototype.popupView = function () {
	var img_view = this; 
	var x = x + 20 ; 
	var y = y + 30 ; 
	var shight = screen.height-100; //ÀüÃ¼È­¸é¿¡¼­ Ã¢¿©¹éÁÖ±â
	var swidth = screen.width-50; //ÀüÃ¼È­¸é¿¡¼­ Ã¢¿©¹éÁÖ±â
	htmlz = "<html>";
	htmlz = htmlz + "<head><title>ÀÌ¹ÌÁöÅ©°Ôº¸±â</title><style>body{margin:0;cursor:hand;}</style></head>";
	htmlz = htmlz + "<body scroll=auto onload='width1=document.all.Timage.width;if(width1>"+swidth+")width1="+swidth+";height1=document.all.Timage.height;if(height1>"+shight+")height1="+shight+";top.window.resizeTo(width1+30,height1+54);' onclick='top.window.close();'>";
	htmlz = htmlz + "<img src='"+img_view+"'  title='Å¬¸¯ÇÏ½Ã¸é ´ÝÈü´Ï´Ù.' name='Timage' id='Timage'>";
	htmlz = htmlz + "</body></html>"; 
	imagez = window.open('', "image", "width="+ 100 +", height="+ 100 +", top=0,left=0,scrollbars=auto,resizable=1,toolbar=0,menubar=0,location=0,directories=0,status=1"); 
	imagez.document.open(); 
	imagez.document.write(htmlz)
	imagez.document.close(); 
}
String.prototype.popupViewByImg = function (img) {
	var img_view = img; 
	var x = x + 20 ; 
	var y = y + 30 ; 
	var shight = screen.height-100; //ÀüÃ¼È­¸é¿¡¼­ Ã¢¿©¹éÁÖ±â
	var swidth = screen.width-50; //ÀüÃ¼È­¸é¿¡¼­ Ã¢¿©¹éÁÖ±â

	htmlz = "<html>";
	htmlz = htmlz + "<head><title>ÀÌ¹ÌÁöÅ©°Ôº¸±â</title><style>body{margin:0;cursor:hand;}</style></head>";
	htmlz = htmlz + "<body scroll=auto onload='width1=document.all.Timage.width;if(width1>"+swidth+")width1="+swidth+";height1=document.all.Timage.height;if(height1>"+shight+")height1="+shight+";top.window.resizeTo(width1+30,height1+54);' onclick='top.window.close();'>";
	htmlz = htmlz + "<img src='"+img_view+"'  title='Å¬¸¯ÇÏ½Ã¸é ´ÝÈü´Ï´Ù.' name='Timage' id='Timage'>";
	htmlz = htmlz + "</body></html>"; 
	imagez = window.open('', "image", "width="+ 100 +", height="+ 100 +", top=0,left=0,scrollbars=auto,resizable=1,toolbar=0,menubar=0,location=0,directories=0,status=1"); 
	imagez.document.open(); 
	imagez.document.write(htmlz)
	imagez.document.close(); 
}
Array.prototype.shuffle = function(){ 
  return this.concat().sort( 
    function(){return Math.random() - Math.random();} 
  ); 
} 
