/**
 * desc       : array ¹è¿­À» comboÇ×¸ñ¿¡ Ãß°¡ÇÑ´Ù.
 * parameter  : comboname -> combo name
 *              valuearr -> value array
 *              labelarr -> label array
 * return     : 
 */
function addCombo(comboname, valuearr, labelarr) {
    if( typeof(valuearr) == "string") valuearr = new Array(valuearr);
    if( typeof(labelarr) == "string") labelarr = new Array(labelarr);
    
    var models = document.getElementById(comboname);
    var option = null;
    
    for(var i = 0, n = valuearr.length; i < n ; i++) {
			option = new Option(); 
			option.value = valuearr[i]; 
			option.text = labelarr[i]; 
			models.options[models.options.length] = option; 
    }
}

/**
 * desc       : combo data »èÁ¦
 * parameter  : comboname -> combo name
 * return     : 
 */
function clearCombo(comboname, startIndex) {
    var models = document.getElementById(comboname);
    
    for(var i=models.childNodes.length - 1; i>1; i--)
        models.removeChild(models.childNodes[i]);
}

/**
 * desc       : À©µµ¿ì ¿ÀÇÂ parameter  : mypage -> page url
 *              myname -> target name
 *              w -> width
 *              h -> height
 *              scroll -> scroll À¯¹«
 * return     : 
 */
function openWindow(mypage, myname, w, h, scroll) {
	var winl = (screen.width - w) / 2;
	var wint = (screen.height - h) / 2;
	
	winprops = 'height=' + h + ',width=' + w + ',top=' + wint + ',left=' + winl
             + ',scrollbars=' + scroll + ',resizable, status=yes';
	win	= open(mypage, myname, winprops);
    
	if (parseInt(navigator.appVersion) >= 4) { 
		win.window.focus();
	}
}

/**
 * desc       : ¸ð´ÞÃ¢ ¿ÀÇÂ
 * parameter  : url -> page url
 *              winProps -> parameter
 *              functionName -> ¸ð´ÞÃ¢ÀÌ ´ÝÈù ÈÄ È£ÃâÇÒ ÇÔ¼ö
 * return     : 
 */
function openModal(url, winProps, functionName) {
    var rtnValue = window.showModalDialog(url, window, winProps);

    rtnFunction = new Function(functionName + "(arguments[0])");

    try {
        rtnFunction(rtnValue);
    }catch(e) {
    }
}

/**
 * desc       : trim °ø¹é Á¦°Å
 * parameter  : 
 * return     : 
 */
String.prototype.trim = function()
{
	return this.replace(/(^\s*)|(\s*$)/g, "");
}

/**
 * desc       : trim °ø¹é Á¦°Å
 * parameter  : 
 * return     : 
 */
	
function trim(str)
{
	return str.replace(/(^\s*)|(\s*$)/g, "");
}

/**
 * desc       : ¼ýÀÚÀÎÁö °Ë»ç parameter  : v -> °Ë»ç ´ë»ó
 * return     : true / false
 */
function isNum(v) {
	return (v.toString() && !/\D/.test(v));
}

/**
 * desc       : ¼±ÅÃµÈ radio rObjÀÇ Index¸¦ return ÇÑ´Ù.
 * parameter  : rObj radio Object
 * return     : rtn ¼±ÅÃµÈ radio button index
 */
function getRadioIndex(rObj)
{
    var i;
    var rtn;
    try
    {
        for(i=0;i<rObj.length;i++)
        {
            if (rObj[i].checked == true)
                return i;
        }
    }
    catch (e) { return ""; }
    return rtn;
}

/**
 * desc       : ¼±ÅÃµÈ radio rObjÀÇ value°ªÀ» return ÇÑ´Ù.
 * parameter  : rObj radio Object
 * return     : rtn ¼±ÅÃµÈ radio button value
 */
function getRadioValue(rObj)
{
    var i;
    var rtn;
    try
    {
        for(i=0;i<rObj.length;i++)
            if (rObj[i].checked == true) return rObj[i].value;
    }
    catch (e) { return ""; }
    return rtn;
}

/**
 * desc       : val¿¡ ÇØ´çÇÏ´Â radio rObjÀÇ Ç×¸ñÀ» ¼±ÅÃÇÑ´Ù.
 * parameter  : rObj radio Object, val °ª
 * return     : void
 */
function setRadioValue(rObj, val)
{
    var i;
    var rtn;
    try
    {
        for(i=0;i<rObj.length;i++)
            if (rObj[i].value == val) rObj[i].checked = true;
    }
    catch (e) { ; }
}

/**
 * desc       : val¿¡ ÇØ´çÇÏ´Â select optionÀ» ¼±ÅÃÇÑ´Ù.
 * parameter  : obj select Object, val °ª
 * return     : void
 */
function setSelectValue(obj, val)
{   
    try
    {
        for(var i=0; i<obj.length; i++)
        {
            if (obj[i].value == val)
                obj[i].selected = true;
        }
    }
    catch(e){
    }
}

/**
 * desc       : radio¹öÆ°ÀÇ default checked Ç×¸ñÀ¸·Î clear ½ÃÅ²´Ù.
 * parameter  : obj -> radio Object
 * return     : void
 */
function clearRadioDefault(obj)
{
    if(obj == null)
        return ;
    else if(obj.length == null)
        obj.defaultChecked = false;
    else
    {
        for(var i=0; i<obj.length; i++)
            obj[i].defaultChecked = false;
    }
}

/**
 * desc       : radioÀÇ default checked¸¦ obj Ç×¸ñÀ¸·Î ¼³Á¤ÇÑ´Ù.
 * parameter  : obj -> radio Object
 *              index -> default Checked? index
 * return     : void
 */
function setRadioDefault(obj)
{
    if(obj == null)
        return ;
    else if(obj.length == null)
        obj.defaultChecked = obj.checked;
    else
    {
        for(var i=0; i<obj.length; i++)
            obj[i].defaultChecked = obj[i].checked;
    }
}

/**
 * desc       : str¹®ÀÚ¿­ÀÇ bytes ¼ö¸¦ ¹ÝÈ¯ÇÑ´Ù.
 * parameter  : str byte¼ö¸¦ °è»êÇÒ ¹®ÀÚ¿­
 * return     : len str ¹®ÀÚ¿­ byteÀÇ ¼ö
 */
function getByteLength(str){
   var len = 0;
   if ( str == null ) return 0;
   
   for(var i=0;i<str.length;i++){
      var c = escape(str.charAt(i));
      if ( c.length == 1 ) len ++;
      else if ( c.indexOf("%u") != -1 ) len += 2;
      else if ( c.indexOf("%") != -1 ) len += c.length/3;
   }
   
   return len;
}

/*
 * Interfaces:
 * b64 = base64encode(data);
 * data = base64decode(b64);
 */
var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var base64DecodeChars = new Array(
    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63,
    52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1,
    -1,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14,
    15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1,
    -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
    41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1);

/**
 * desc       : str ¹®ÀÚ¿­À» base64·Î encode ½ÃÅ²´Ù.
 * parameter  : str base64·Î encode½ÃÅ³ ´ë»ó
 * return     : out base64·Î encodeµÈ ¹®ÀÚ¿­
 */
function base64encode(str) {
    var out, i, len;
    var c1, c2, c3;

    len = str.length;
    i = 0;
    out = "";
    while(i < len) {
    c1 = str.charCodeAt(i++) & 0xff;
    if(i == len)
    {
        out += base64EncodeChars.charAt(c1 >> 2);
        out += base64EncodeChars.charAt((c1 & 0x3) << 4);
        out += "==";
        break;
    }
    c2 = str.charCodeAt(i++);
    if(i == len)
    {
        out += base64EncodeChars.charAt(c1 >> 2);
        out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
        out += base64EncodeChars.charAt((c2 & 0xF) << 2);
        out += "=";
        break;
    }
    c3 = str.charCodeAt(i++);
    out += base64EncodeChars.charAt(c1 >> 2);
    out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
    out += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >>6));
    out += base64EncodeChars.charAt(c3 & 0x3F);
    }
    
    return out;
}

/**
 * desc       : str ¹®ÀÚ¿­À» base64·Î decode ½ÃÅ²´Ù.
 * parameter  : str base64·Î decode½ÃÅ³ ´ë»ó
 * return     : out base64·Î decodeµÈ ¹®ÀÚ¿­
 */
function base64decode(str) {
    var c1, c2, c3, c4;
    var i, len, out;

    len = str.length;
    i = 0;
    out = "";
    while(i < len) {
	    /* c1 */
	    do {
	        c1 = base64DecodeChars[str.charCodeAt(i++) & 0xff];
	    } while(i < len && c1 == -1);
	    if(c1 == -1)
	        break;
	
	    /* c2 */
	    do {
	        c2 = base64DecodeChars[str.charCodeAt(i++) & 0xff];
	    } while(i < len && c2 == -1);
	    if(c2 == -1)
	        break;
	
	    out += String.fromCharCode((c1 << 2) | ((c2 & 0x30) >> 4));
	
	    /* c3 */
	    do {
	        c3 = str.charCodeAt(i++) & 0xff;
	        if(c3 == 61)
	        return out;
	        c3 = base64DecodeChars[c3];
	    } while(i < len && c3 == -1);
	    if(c3 == -1)
	        break;
	
	    out += String.fromCharCode(((c2 & 0XF) << 4) | ((c3 & 0x3C) >> 2));
	
	    /* c4 */
	    do {
	        c4 = str.charCodeAt(i++) & 0xff;
	        if(c4 == 61)
	        return out;
	        c4 = base64DecodeChars[c4];
	    } while(i < len && c4 == -1);
	    if(c4 == -1)
	        break;
	    out += String.fromCharCode(((c3 & 0x03) << 6) | c4);
    }
    
    return out;
}

/**
 * desc       : ÆäÀÌÂ¡ parameter  : totalCnt    -> ÀüÃ¼ row ¼ö
 *              currentPage -> ÇöÀçÆäÀÌÁö
 *              pageSize    -> ÇÑ ÆäÀÌÁöÀÇ row ¼ö
 *              pageNum     -> ÆäÀÌÁö ¼ö
 * return     : ÆäÀÌÂ¡ innerHTML
 */ 
function f_paging(totalCnt, currentPage, pageSize, pageNum) {
    if(totalCnt == 0)
        return "";
    
	totalCnt = parseInt(totalCnt);
    currentPage = parseInt(currentPage);
    pageSize = parseInt(pageSize);
    pageNum = parseInt(pageNum);
    
    var totalPage = Math.ceil(totalCnt / pageSize);
	var thisblock = Math.ceil(currentPage / pageNum);
	var startPage, endPage;
	var ret_HTML = "";
    
	if(thisblock > 1){
		startPage = (thisblock-1) * pageNum + 1;
	}else{
		startPage = 1;
	}
	
	if((thisblock * pageNum) >= totalPage) {
		endPage = totalPage;
	}else{
		endPage = thisblock * pageNum;
	}
    
	ret_HTML = "<TABLE width='100%' cellspacing='0' cellpadding='0' border='0'>"
             + "<TR><TD width='70' align='left'>©¢ : " + totalCnt + " ¡Æ?/TD>"
             + "  <TD align='center'>";
    
    if(currentPage > pageNum)
        ret_HTML += " <A HREF='javascript:onclick=act_search(1);'><img src='/images/bbm/number_01.gif' border='0' align='absmiddle'></A>"; // ¢¬?©ø=
    
	if(currentPage > 1)
		ret_HTML += " <A HREF='javascript:onclick=act_search(" + (currentPage - 1) + ");'><img src='/images/bbm/number_02.gif' border='0' align='absmiddle'></A>"; // ¢¥?¨ö

    if(startPage == currentPage)
        ret_HTML += "<span class='list_number_text_orange'>";
    else
        ret_HTML += "<span class='list_number_text_blue'>";
    
	for(i=startPage; i<=endPage; i++){
		if(i != currentPage){
            ret_HTML += " <A HREF='javascript:onclick=act_search(" + i + ");'>" + i + "</A>";
		}else{
            if(i == startPage)
    			ret_HTML += " " + i + " </span><span class='list_number_text_blue'>";
            else
                ret_HTML += "</span><span class='list_number_text_orange'> " + i + " </span><span class='list_number_text_blue'>";
		}
	}
    
    ret_HTML += "</span>";
	
	if(currentPage != totalPage)
		ret_HTML += " <A HREF='javascript:onclick=act_search(" + (currentPage + 1) + ");'><img src='/images/bbm/number_03.gif' border='0' align='absmiddle'></A>"; // L|
    
    if(totalPage >= Math.floor(((currentPage + pageNum - 1) / pageNum)) * pageNum + 1)
        ret_HTML += " <A HREF='javascript:onclick=act_search(" + totalPage + ");'><img src='/images/bbm/number_04.gif' border='0' align='absmiddle'></A>"; // ¢¬??
        
	ret_HTML += "  </TD><TD width='70'>&nbsp;</TD>"
             +  "</TR></TABLE>";
    
	return ret_HTML;
}

//-------------------------------------------------------------------
// °ø¹é¿©ºÎ È®ÀÎ
//-------------------------------------------------------------------
function isEmpty(varCk) {
    if ((varCk == "") || (varCk == null)) {
        return true;
    }
    return false;
}

//-------------------------------------------------------------------
// trim °ø¹é Á¦°Å
//-------------------------------------------------------------------
function trim(parm_str)
{
    return rtrim(ltrim(parm_str));
}

//-------------------------------------------------------------------
// ltrim ¿ÞÂÊ °ø¹é Á¦°Å
//-------------------------------------------------------------------
function ltrim(parm_str)
{
    str_temp = parm_str;

    while (str_temp.length != 0) {
        if (str_temp.substring(0, 1) == " ") {
            str_temp = str_temp.substring(1, str_temp.length) ;
        }
        else {
            return str_temp ;
        }
    }
    return str_temp ;
}

//-------------------------------------------------------------------
// rtrim ¿À¸¥ÂÊ °ø¹éÁ¦°Å
//-------------------------------------------------------------------
function rtrim(parm_str) {
  str_temp = parm_str ;
  while (str_temp.length != 0) {
    int_last_blnk_pos = str_temp.lastIndexOf(" ");
    if ((str_temp.length - 1) == int_last_blnk_pos) {
      str_temp = str_temp.substring(0, str_temp.length - 1);
    }
    else {
      return str_temp;
    }
  }
  return str_temp;
}

//-------------------------------------------------------------------
// str1¿¡¼­ ÀÔ·ÂÇÑ ¹®ÀÚÀÇ ±æÀÌ°¡ len°¡ µÇ¸é str2·Î Æ÷Ä¿½º¸¦ ÀÌµ¿½ÃÅ²´Ù.
//    fname : form name
//    str1  : object name
//    str2  : target object name
//    len   : length
//-------------------------------------------------------------------
function length_check(fname, str1, str2, len) {

    var strlen = eval("document." + fname + "." + str1 + ".value.length");
    var varCk = window.event.keyCode;

    if ( (varCk>= 48 && varCk<=57) || (varCk>=65 && varCk<=90) || (varCk>=96 && varCk<=105)) {
        if (strlen == len) {
            if( str2 != "") {
                eval("document."+ fname + "." + str2 + ".focus()");
                eval("document."+ fname + "." + str2 + ".select()");
            }
        }
    }
}

//-------------------------------------------------------------------
// ¿£ÅÍÅ° °Ë»ç
function chkEnter(mthd) {
    return window.event.keyCode == 13;
}

//-------------------------------------------------------------------
// str_value ¹®ÀÚ¿­ÀÇ ±æÀÌ°¡ int_lengthº¸´Ù ÀÛÀ»°æ¿ì ¾Õ¿¡ '0'À» ºÙÀÎ´Ù.
//    str_value : ¹®ÀÚ¿­
//    int_length    : ±æÀÌ
//-------------------------------------------------------------------
function setZero(str_value, int_length)
{
    var int_cnt = 0;

    for ( int_cnt = str_value.length; int_cnt < int_length; int_cnt++)
        str_value = "0" + str_value;

    return str_value;
}

//-------------------------------------------------------------------
// ¾Õ¿¡ ºÙÀº '0'À» Á¦°ÅÇÑ´Ù.
//-------------------------------------------------------------------
function cutZero(num)
{
    var s = "";
    var i = 0;

    if (num.length == 0) return "";

    while(num.charAt(i++) == '0')
        if (i==num.length) return "0";

    s = num.substring(i-1);
    return s;
}

function StringReplaceAll(v_msg, v_s1, v_s2)
{
    while(v_msg.indexOf(v_s1) != -1)
    {
        v_msg = v_msg.replace(v_s1, v_s2);
    }
    return v_msg;

}

//-------------------------------------------------------------------
// 
//    1000 -> 1,000
//-------------------------------------------------------------------
function commaSplit(srcNumber) {
    var txtNumber = '' + srcNumber;
    if (isNaN(txtNumber) || txtNumber == "") {
        alert("¼ýÀÚ°¡ ¾Æ´Õ´Ï´Ù.");
        fieldName.select();
        fieldName.focus();
    }else {
        var rxSplit = new RegExp('([0-9])([0-9][0-9][0-9][,.])');
        var arrNumber = txtNumber.split('.');
        arrNumber[0] += '.';
        do {
            arrNumber[0] = arrNumber[0].replace(rxSplit, '$1,$2');
        }while (rxSplit.test(arrNumber[0]));
        if (arrNumber.length > 1) {
            return arrNumber.join('');
        }else {
            return arrNumber[0].split('.')[0];
      }
   }
}

/**
 * desc       : ÀÛ¾÷ ÇÁ·Î¼¼½º °Ë»ç parameter  : procFlag -> o¢¬¢ç¡í??Flag
 *              procName -> ÀÛ¾÷¸í              flag -> ÀÛ¾÷ÁøÇà»óÅÂ Flag 'process' : [¨ú?¢ç , 'move' : ?L¢Ò L¥ì¢¯
 * return     : ÀÛ¾÷ÁøÇà À¯¹« boolean
 */
function checkProcess(procFlag, procName, flag)
{
    if(procFlag == 'P')
    {
        alert(procName + ' o¢¬¢ç?T¢¥??');
        return true;
    }
    else if(flag == 'process' && procFlag == 'Y')
    {
        alert('L©ö?' + procName + ' ¥ì??¢¥?');
        return true;
    }
    
    return false;
}

/**
 * desc       : select box optionÀÇ defaultSelected ¸¦ false·Î clear ½ÃÅ²´Ù.
 * parameter  : obj -> selecb box
 * return     : void
 */
function clearSelectDefault(obj)
{
    for(var i=0; i<obj.length; i++)
        obj[i].defaultSelected = false;
}

/**
 * desc       : select box optionÀÇ defaultSelected ¸¦ ¼³Á¤ÇÑ´Ù.
 * parameter  : obj -> selecb box
 * return     : void
 */
function setSelectDefault(obj)
{
    obj[obj.selectedIndex].defaultSelected = true;
}

/**
 * desc       : ÇÃ·¡½¬¸¦ Ãâ·ÂÇÑ´Ù.
 * parameter  : src -> °æ·Î
 *            : w -> ³ÐÀÌ
 *            : h -> ³ôÀÌ
 * return     : void
 */
function swf(src,w,h){
    html = '';
    html += '<object type="application/x-shockwave-flash" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" id="param" width="'+w+'" height="'+h+'">';
    html += '<param name="movie" value="'+src+'">';
    html += '<param name="quality" value="high">';
    html += '<param name="bgcolor" value="#ffffff">';
    html += '<param name="wmode" value="transparent">';
    html += '<param name="menu" value="false">';
    html += '<param name="swliveconnect" value="true">';
    html += '<embed src="'+src+'" quality=high bgcolor="#ffffff" menu="false" width="'+w+'" height="'+h+'" swliveconnect="true" id="param" name="param" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"><\/embed>';
    html += '<\/object>';
    document.write(html);
}

/**
 * desc       : ProgressBar¸¦ º¸¿©ÁØ´Ù.
 * parameter  : void
 * return     : void
 */
function showProgress(){
    progressBar.style.display = 'block';
}

/**
 * desc       : ProgressBar¸¦ ¼û±ä´Ù.
 * parameter  : void
 * return     : void
 */
function hideProgress(){
    progressBar.style.display = 'none';
}

/**
 * desc       : Cookie °ªÀ» °¡Á®¿Â´Ù.
 * parameter  : name -> Cookie name
 * return     : Cookie value
 */
function getCookie(name) {
    var search = name + "=";
  
    if(document.cookie.length > 0)
    {
    		offset = document.cookie.indexOf(search);
    
        if(offset != -1)
        {
            end = document.cookie.indexOf(";", offset);
            
            if(end == -1)
                end = document.cookie.length;
                
            return unescape(document.cookie.substring(offset, end));
        }
    }
}

/**
 * desc       : Cookie°ª ¼³Á¤
 * parameter  : name -> Cookie name
 *              value -> Cookie value
 *              expires -> À¯È¿±â°£
 * return     : void
 */
function setCookie(name, value, expires)
{
    document.cookie = name + "=" + escape (value) + "; path=/; expires=" + expires.toGMTString();
}

/**
 * desc       : title À§Ä¡¸¦ ÃÊ±âÈ­ ½ÃÅ²´Ù.
 * parameter  : arguments -> title div id
 * return     : void
 */
function initTitle()
{
    var title;
    
    for(var i=0; i<arguments.length; i++)
    {
        title = eval(arguments[i]);
		    title.scrollLeft = 0;
		    title.scrollTop = 0;
    }
}

/**
 * desc       : formÀÇ ÇöÀç ¼³Á¤µÈ °ªµéÀ» defaultValue·Î ¼³Á¤ÇÑ´Ù.
 * parameter  : form -> form
 * return     : void
 */
function setDefaultValue(form)
{
    for(var i=0, n=form.length; i < n ; i++)
    {
        var obj = form.elements[i];
        var name = obj.name;
        
        if(obj.type == "checkbox" || obj.type == "radio")
        {
            setRadioDefault(obj);
        }
        else if(obj.type == "select-one" || obj.type == "select")
        {
            clearSelectDefault(obj);
            setSelectDefault(obj);
        }
        else
        {
            obj.defaultValue = obj.value;
        }
    }
}

/**
 * desc       : formÀÇ °ªÀ» ÃÊ±âÈ­ ½ÃÅ²´Ù.
 * parameter  : form -> form
 * return     : void
 */
function clearInfo(form)
{
    for(var i=0, n=form.length; i < n ; i++)
    {
        var obj = form.elements[i];
        var name = obj.name;
        
        if(obj.type == "checkbox" || obj.type == "radio")
        {
            obj.checked = false;
        }
        else if(obj.type == "select-one" || obj.type == "select")
        {
            obj[0].selected = true;
        }
        else
        {
            obj.value = '';
        }
    }
}