/*************************************************************************/
/*  1. ½Ã ½º ÅÛ ¸í : °øÅë                                                */
/*  2. ÇÁ·Î±×·¥ ID : util.js                                             */
/*  3. ÇÁ·Î±×·¥ ¸í : Àü·«¹°ÀÚ ¹®ÀÚÃ³¸®¸¦ À§ÇÑJavaScript ÇÔ¼ö ¸ðÀ½        */
/*  4. ÀÛ  ¼º   ÀÏ : 2004.10.25                                          */
/*  5. ÀÛ  ¼º   ÀÚ : ÇÑ½ÂÈÆ                                              */
/*  6. °³       ¿ä : ¾÷¹« ³»¿ë°ú °ü·ÃµÈ JavaScript ÇÔ¼ö¸¦ Á¤ÀÇÇÑ´Ù.      */
/*************************************************************************/
/* LAST DATE    Author   DESCRIPTION                                     */
/* -----------  -------  ----------------------------------------------- */
/* 2004.10.25   ÇÑ½ÂÈÆ   ÃÖÃÊ»ý¼º                                        */
/*************************************************************************/

/************************
  ¹®ÀÚ¿­ Ã³¸® ÇÔ¼öµé
************************/

/**
 * ÁÖ¾îÁø ¹®ÀÚ¿­ÀÇ ¿À¸¥ÂÊ¿¡ ÀÖ´Â °ø¹é¹®ÀÚµéÀ»
 * Á¦°ÅÇÏ¿© µ¹·Á ÁØ´Ù.
 *
 * @param str ¹®ÀÚ¿­
 */
function trimRight(str) {
	// strÀÌ ¼ýÀÚÇüÀÏ ¼öµµ ÀÖ´Ù. µû¶ó¼­ ÀÏ´Ü StringÀ¸·Î ¸¸µç´Ù.
	str = new String(str);

	var i;

	for ( i  = str.length - 1; i >= 0; i-- ) {
		var ch = str.charAt(i);

		if ( ch != ' ' && ch != '\t' && ch != '\b' && ch != '\n' ) break;
	}

	return str.substring(0, i + 1);
}


/**
 * TextÇü ÀÔ·ÂÆû °ªÀ» ¿À¸¥ÂÊ¿¡ ÀÖ´Â °ø¹é¹®ÀÚµéÀ» Á¦°ÅÇÑ´Ù.
 *
 * @param obj TextÇü ÀÔ·ÂÆû °´Ã¼
 */
function trimRightObj(obj) {
	obj.value = trimRight(obj.value);
}


/**
 * ÁÖ¾îÁø ¹®ÀÚ¿­ÀÇ ¿ÞÂÊ¿¡ ÀÖ´Â °ø¹é¹®ÀÚ¸¦
 * Á¦°ÅÇÏ¿© µ¹·Á ÁØ´Ù.
 *
 * @param str ¹®ÀÚ¿­
 */
function trimLeft(str) {
	// strÀÌ ¼ýÀÚÇüÀÏ ¼öµµ ÀÖ´Ù. µû¶ó¼­ ÀÏ´Ü StringÀ¸·Î ¸¸µç´Ù.
	str = new String(str);

	var i;

	for (i = 0; i < str.length; i++) {
		var ch = str.charAt(i);

		if ( ch != ' ' && ch != '\t' && ch != '\b' && ch != '\n' ) break;
	}

	return str.substring(i);
}


/**
 * TextÇü ÀÔ·ÂÆû °ªÀ», ¿ÞÂÊ¿¡ ÀÖ´Â °ø¹é¹®ÀÚµéÀ» Á¦°ÅÇÑ´Ù.
 *
 * @param obj TextÇü ÀÔ·ÂÆû °´Ã¼
 */
function trimLeftObj(obj) {
	obj.value = trimLeft(obj.value);
}


/**
 * ÁÖ¾îÁø ¹®ÀÚ¿­ÀÇ ¾çÂÊ¿¡ ÀÖ´Â °ø¹é¹®ÀÚ¸¦ Á¦°ÅÇÏ¿© µ¹·Á ÁØ´Ù.
 *
 * @param str ¹®ÀÚ¿­
 */
function trim(str) {
	return ( trimLeft( trimRight(str) ) );
}


/**
 * TextÇü ÀÔ·ÂÆû °ªÀ» ¾çÂÊ¿¡ ÀÖ´Â °ø¹é¹®ÀÚ¸¦ Á¦°ÅÇÑ´Ù.
 *
 * @param obj TextÇü ÀÔ·ÂÆû °´Ã¼
 */
function trimObj(obj) {
	obj.value = trim(obj.value);
}



/**
 * TextÇü ÀÔ·ÂÆûÀÇ °ª¿¡¼­ ½½·¡½¬('/')¸¦ Á¦°ÅÇÏ¿©
 * ´Ù½Ã TextÇü ÀÔ·ÂÆûÀÇ °ªÀ¸·Î ¼¼ÆÃÇÑ´Ù.
 *
 * @param  obj  TextÇü ÀÔ·ÂÆû °´Ã¼
 * @param  ch   Á¦°ÅÇÒ ¹®ÀÚ.
 */
function removeCharObj(obj, ch) {
	obj.value = removeChar(obj.value, ch);
}


/**
 * strÀÇ ¹®ÀÚµé Áß¿¡ chr °ªÀÇ ¹®ÀÚ¸¦ Á¦°ÅÇÏ¿©
 * µ¹·Á ÁØ´Ù.
 *
 * @param str  Á¦°ÅÇÒ ¹®ÀÚ°¡ µé¾î ÀÖ´Â ¹®ÀÚ¿­
 * @param chr  Á¦°ÅÇÒ ¹®ÀÚ
 */
function removeChar(str, chr) {
	// strÀÌ ¼ýÀÚÇüÀÏ ¼öµµ ÀÖ´Ù. µû¶ó¼­ ÀÏ´Ü StringÀ¸·Î ¸¸µç´Ù.
	str = String(str);

	var newStr = "";

	for (var i = 0; i < str.length; i++) {
		if (str.charAt(i) != chr) {
			newStr += str.charAt(i);
		}
	}

	return newStr;
}


/**
 * TextÇü ÀÔ·ÂÆûÀÇ °ªÀ» 3ÀÚ¸®¸¶´Ù ÄÄ¸¶¸¦ ÂïÀº °ªÀ¸·Î
 * ¼¼ÆÃÇÑ´Ù.
 *
 * @param  obj  TextÇü ÀÔ·ÂÆû °´Ã¼
 */
function insertCommaObj(obj) {
	if ( event != undefined && isControlKey() ) return;
	//if ( isControlKey() ) return true;

	obj.value = insertComma(obj.value);
}



/**
 * ÁÖ¾îÁø ¼öÄ¡ ¹®ÀÚ¿­¿¡, µÚ¿¡¼­ 3ÀÚ¸®¾¿ ¸¶´Ù ÄÄ¸¶(,)¸¦
 * »ðÀÔÇÑ´Ù.
 *
 * @param  noStr  ÄÄ¸¶¸¦ »ðÀÔÇÒ ¹®ÀÚ¿­
 */
function insertComma(noStr) {
	if ( event != undefined && isControlKey() ) return;
	//if ( isControlKey() ) return true;

	var noStr = removeChar(noStr, ',');

	var signPart = ""; // ±âÈ£ºÎ
	var intPart  = ""; // Á¤¼öºÎ
	var floatPat = ""; // ¼Ò¼öºÎ

	// ±âÈ£ºÎ, Á¤¼öºÎ, ¼Ò¼öºÎ¸¦ ºÐ¸®ÇÑ´Ù.
	if ( noStr.charAt(0) == '-' ) {
		signPart = "-";
	}

	var dotIndex = noStr.lastIndexOf('.');

	if ( dotIndex == -1 ) {
		dotIndex = noStr.length;
	}

	intPart   = noStr.substring(signPart.length, dotIndex);
	floatPart = noStr.substring(dotIndex);

	// Á¤¼öºÎ¿¡ 3ÀÚ¸®¸¶´Ù ÄÄ¸¶(,)¸¦ »ðÀÔÇÑ´Ù.
	var buff = "";
	for (var i = 1, index = intPart.length - 1; i <= intPart.length; i++, index--) {
		buff = intPart.charAt(index) + buff;

		// °¡Àå ¸¶Áö¸· ÀÚ¸® ¾Õ¿¡´Â ÄÄ¸¶¸¦ ³ÖÁö ¾Ê´Â´Ù.
		if ( i % 3 == 0 && i < intPart.length ) {
			buff = ',' + buff;
		}
	}

	// ±âÈ£ºÎ, ÄÄ¸¶°¡ µé¾î°£ Á¤¼öºÎ, ¼Ò¼öºÎ¸¦ ÇÕÃÄ µ¹·ÁÁØ´Ù.
	return signPart + buff + floatPart;
}



/**
 * ÁÖ¾îÁø ¹®ÀÚ¿­ÀÌ ¸î byteÀÎÁö¸¦ °è»êÇÏ¿© µ¹·ÁÁØ´Ù.
 * IE¿¡¼­ ¹®ÀÚ¿­ÀÇ ±æÀÌ °ªÀº ÇÑ±Û ÇÑ ±ÛÀÚ¸¦ 1·Î Ãë±ÞÇÏ³ª
 * DB¿¡¼­´Â ±æÀÌ°¡ byte ¼öÀÌ¹Ç·Î HTML/JavaScript¿¡¼­
 * Á¦°øÇÏ´Â length °ªÀ¸·Î ºñ±³ÇÒ ¼ö ¾ø´Ù. µû¶ó¼­,
 * ÇÑ±ÛÀº 2byte·Î ¿µ¹®Àº 1byte·Î °è»êÇÏ´Â ÀÌ ÇÔ¼ö°¡
 * ÇÊ¿äÇÏ´Ù. strÀÌ nullÀÌ¸é 0À» µ¹·ÁÁØ´Ù.
 *
 * @param str byte ¼ö¸¦ ¼¿ ´ë»ó ¹®ÀÚ¿­
 */
function countByte(str) {
	str = new String(str);

	if ( str ==  null ) return 0;

    var count = 0;

    for (i = 0; i < str.length; i++) {
        if ( str.charCodeAt(i) < 256 ) {
            count++;
        }
        else {
            count += 2;
        }
    }

    return count;
}


/**
 * TextÇü ÀÔ·ÂÆû °ª ¿ÞÂÊ¿¡ maxWidth °ª¿¡¼­ ¹®ÀÚ¿­ 
 * Æø(¿µ¹® 1, ÇÑ±Û 2)À» »«¸¸Å­À» ÁÖ¾îÁø ¹®ÀÚ(ch)·Î Ã¤¿î
 * °ªÀ» µ¹·Á ÁØ´Ù. ¿¹¸¦ µé¾î, padLeft(1, 4, '0')ÀÌ¸é
 * °á°ú´Â "001"ÀÌ µÈ´Ù.
 *
 * @author ÇÑ½ÂÈÆ
 * @date   2004-01-16
 *
 * @param  obj      Ã¤¿ï ´ë»óÀÌ µÇ´Â °ªÀ» °¡Áö´Â TextÇü ÀÔ·ÂÆû °´Ã¼
 * @param  maxWidth Ã¤¿ï ÀüÃ¼ Æø
 * @param  ch       Ã¤¿ï ¹®ÀÚ. ¾øÀ¸¸é °ø¹é¹®ÀÚ(' ')°¡ »ç¿ëµÈ´Ù.
 */
function padLeftObj(obj, maxWidth, ch) {
	return padLeft(obj.value, maxWidth, ch);
}

/**
 * ÁÖ¾îÁø ¹®ÀÚ¿­(value) ¿ÞÂÊ¿¡ maxWidth °ª¿¡¼­ ¹®ÀÚ¿­ 
 * Æø(¿µ¹® 1, ÇÑ±Û 2)À» »«¸¸Å­À» ÁÖ¾îÁø ¹®ÀÚ(ch)·Î Ã¤¿î
 * °ªÀ» µ¹·Á ÁØ´Ù. ¿¹¸¦ µé¾î, padLeft(1, 4, '0')ÀÌ¸é
 * °á°ú´Â "001"ÀÌ µÈ´Ù.
 *
 * @author ÇÑ½ÂÈÆ
 * @date   2004-01-16
 *
 * @param  value    Ã¤¿ï ´ë»óÀÌ µÇ´Â °ª
 * @param  maxWidth Ã¤¿ï ÀüÃ¼ Æø
 * @param  ch       Ã¤¿ï ¹®ÀÚ. ¾øÀ¸¸é °ø¹é¹®ÀÚ(' ')°¡ »ç¿ëµÈ´Ù.
 */
function padLeft(value, maxWidth, ch) {
	if ( ch == undefined || trim(ch) == "" ) {
		ch = ' ';
	}

	var padCount = maxWidth - countByte(value);

	var pad = "";

	for (var i = 0; i < padCount; i++) {
		pad += ch;
	}

	return pad + value;
}


/**
 * TextÇü ÀÔ·ÂÆû °ªÀ» ¼ýÀÚ°ªÀ¸·Î Á¤Á¦ÇÑ´Ù. ¿¹¸¦ µé¾î ¿¬¼ÓµÈ 0Àº 0À¸·Î
 * 0ÀÌ ¾Õ¿¡ ÀÖ´Â ¼ýÀÚ´Â 0À» Á¦°ÅÇÏ¿© ÁÖ¾îÁø TextÇü ÀÔ·ÂÆûÀÇ
 * °ªÀ» ´ëÄ¡ÇÑ´Ù.
 *
 * @param  obj  TextÇü ÀÔ·ÂÆû
 */
function refineNoObj(obj) {
	obj.value = refineNo(obj.value);
}


/**
 * ÁÖ¾îÁø °ªÀ» ¼ýÀÚ°ªÀ¸·Î Á¤Á¦ÇÑ´Ù.
 * ¿¹¸¦ µé¾î ¿¬¼ÓµÈ 0Àº 0À¸·Î,
 * 0ÀÌ ¾Õ¿¡ ÀÖ´Â ¼ýÀÚ´Â 0À» Á¦°ÅÇÏ¿© µ¹·ÁÁØ´Ù.
 *
 * @param  no  Á¤Á¦ÇÒ ¼ýÀÚ°ª
 */
function refineNo(no) {
	no = removeChar(no, ',');

	if ( isNaN(no) || no > 999999999999999 ) return no;

	return Number(no);
}




/************************
  ¼öÄ¡ °è»ê °ü·Ã ÇÔ¼ö
************************/

/**
 * ¼Ò¼öÁ¡ ÀÌÇÏ indexÀÚ¸®¿¡¼­ ¹Ý¿Ã¸²
 *
 * @param num    ¿ø ¼öÄ¡°ª
 * @param index  ¼Ò¼öÁ¡ÀÌÇÏ À¯È¿ÀÚ¸®¼ö
 */
function round (num, index) {
	var pow = Math.pow(10, parseInt(index));

	return Math.round(parseFloat(num) * pow) / pow;
}


/**
 * ¼Ò¼öÁ¡ ÀÌÇÏ indexÀÚ¸®¿¡¼­ ¹ö¸²
 *
 * @param num    ¿ø ¼öÄ¡°ª
 * @param index  ¼Ò¼öÁ¡ÀÌÇÏ À¯È¿ÀÚ¸®¼ö
 */
function floor (num, index) {
	var pow = Math.pow(10, parseInt(index));

	return Math.floor(parseFloat(num) * pow) / pow;
}	


/**
 * ¼Ò¼öÁ¡ ÀÌÇÏ indexÀÚ¸®¿¡¼­ ¿Ã¸²
 *
 * @param num    ¿ø ¼öÄ¡°ª
 * @param index  ¼Ò¼öÁ¡ÀÌÇÏ À¯È¿ÀÚ¸®¼ö
 */
function ceil (num, index) {
	var pow = Math.pow(10, parseInt(index));

	return Math.ceil(parseFloat(num) * pow) / pow;
}


/************************
  È£È¯À» À§ÇÑ ÇÔ¼öµé
************************/

/**
 * 3ÀÚ¸®¸¶´Ù ÄÞ¸¶Âï±â
 */
function commaNum(num) {
	return insertComma(num);
}


//ÄÞ¸¶¸¦ Æ÷ÇÔÇÑ ¹®ÀÚ¿¡¼­ ÄÞ¸¶ Á¦°Å
function commaDel(str){
	return removeChar(str, ',');
}


// ¹®ÀÚ¿­ Æ÷¸Ë ÁöÁ¤ÇÔ¼ö
// str : ¹®ÀÚ¿­
// fmt : Æ÷¸Ë(*·Î ¹®ÀÚ ÆÐÅÏ Ç¥Çö)
// rType : ¸®ÅÏ ÇüÅÂ('1' = write, '2' = return)
// ¿¹Á¦ :('1234567890', '***-**-*****', '2') 
// °á°ú : '123-45-67890' ¸®ÅÏ
function formatStr(str, fmt, rType) {
	var fmtcnt = 0;
	var rtn = "";
	var tmp = "";
	var j = 0;

	for ( i=0; i < fmt.length; i++ ) {
		if(fmt.substring(i, i+1) == '*') {
			rtn += str.substring(j, j+1)
			j++;
		}
		else {
			rtn += fmt.substring(i, i+1)
		}	
	}
	
	if (str.length != j) rtn = str;

	if (rType == '1') document.write(rtn);
	else return rtn;
}


// ¹®ÀÚ¿­ Àý»ç ÇÔ¼ö
// str : ¹®ÀÚ¿­
// len : ¹®ÀÚ¿­ ±æÀÌ
// rType : ¸®ÅÏ ÇüÅÂ('1' = write, '2' = return)
// ¿¹Á¦ :('1234567890', '***-**-*****', '2') 
// °á°ú : '123-45-67890' ¸®ÅÏ
function gaSubString(str, len, rType) {
	var tmp = str;
	if (tmp.length > len)
		tmp = str.substring(0, len);
	
	if ( rType == '1' ) document.write(tmp);
	else if ( rType == '2' ) return tmp;
}

/* ÀÌ¹ÌÁö ¸®»çÀÌÁî (ÀÌ¹ÌÁöID, ³ÐÀÌ, ³ôÀÌ) */
function resizeImg(name,wt,ht){
w = eval("document."+name+".width");
h = eval("document."+name+".height");

maxWidth = wt;
maxHeight = ht;

if(w > maxWidth || h > maxHeight){
if(w > h){
nw = maxWidth;
nh = Math.round((h*nw)/w);
}else{
nh = maxHeight;
nw = Math.round((nh*w)/h);
}
}else{
nw = w;
nh = h;
}

eval("document."+name+".height="+nh);
eval("document."+name+".width="+nw);
}
