/**
 * SELECT ¹Ú½º(Drop-Down)¿¡ ÀÖ´Â ¸ðµç ¿É¼ÇÀ» »èÁ¦ÇÏ´Â ÇÔ¼ö
 * @param select HTML FormÀÇ SELECT °´Ã¼(Drop-Down)
 */
function clearOptions(select) {
    if (!select) {
        return;
    }
    for (var i = select.options.length; i > 0; i--) {
        select.remove(i - 1);
    }
}

/**
 * SELECT ¹Ú½º¿¡ ÀÖ´Â ¸ðµç ¿É¼ÇÀ» ¼±ÅÃÇÏ´Â ÇÔ¼ö
 * @param select HTML FormÀÇ SELECT °´Ã¼
 */
function selectAllOptions(select) {
    var size = select.options.length;
    for (var i = 0; i < size; i++) {
        select.options[i].selected = true;
    }
    return false;
}


/**
 * SELECT ¹Ú½º¿¡ ÀÖ´Â ¸ðµç ¿É¼ÇÀ» ÇØÁ¦ÇÏ´Â ÇÔ¼ö
 * @param select HTML FormÀÇ SELECT °´Ã¼
 */
function deselectAllOptions(select) {
    var size = select.options.length;
    for (var i = 0; i < size; i++) {
        select.options[i].selected = false;
    }
    return false;
}


/**
 * SELECT ¹Ú½º¿¡ ÀÖ´Â ¸ðµç ¿É¼ÇÀ» ¼±ÅÃ ¿©ºÎ¸¦ ¹Ý´ë·Î º¯°æÇÏ´Â ÇÔ¼ö
 * @param select HTML FormÀÇ SELECT °´Ã¼
 */
function changeAllOptions(select) {
    var size = select.options.length;
    for (var i = 0; i < size; i++) {
        if (select.options[i].selected) {
           select.options[i].selected = false;
        } else {
           select.options[i].selected = true;
        }
    }
    return false;
}


/**
 * SELECT ¹Ú½º¿¡ ÀÖ´Â ¼±ÅÃµÈ µ¥ÀÌÅÍ(Option)¸¦ »èÁ¦ÇÏ´Â ÇÔ¼ö
 * @param select HTML FormÀÇ SELECT °´Ã¼
 */
function dropOptions(select) {
    var size = select.options.length;
    for (var i = 0; i < size; i++)
    {
        if (select.options[i].selected)
        {
            select.options[i] = null;
            i--;
            size--;
        }
    }
    return false;
}


/**
 * SELECT ¹Ú½º¿¡ ÀÖ´Â ¸ðµç µ¥ÀÌÅÍ(Option)¸¦ »èÁ¦ÇÏ´Â ÇÔ¼ö
 * @param select HTML FormÀÇ SELECT °´Ã¼
 */
function dropAllOptions(select) {
    selectAllOptions(select);
    dropOptions(select);
    return false;
}


/**
 * ÇÏ³ªÀÇ HTML Form SELECTÀÇ ¼±ÅÃµÈ µ¥ÀÌÅÍ(option)¸¦ ´Ù¸¥ HTML Form SELECT·Î ¿Å±â´Â ÇÔ¼ö
 * @param from ¿Å°Ü¾ß ÇÏ´Â µ¥ÀÌÅÍ¸¦ °¡Áö°í ÀÖ´Â HTML Form Select
 * @param to   µ¥ÀÌÅÍ°¡ ¿Å°ÜÁö´Â HTML Form Select
 */
function moveOptions(from, to) {
    var size = from.options.length;
    for (var i = 0; i < size; i++) {
        if (from.options[i].selected) {
            to.options[to.options.length]
                = new Option(from.options[i].text, from.options[i].value);
            from.options[i] = null;
            i--;
            size--;
        }
    }
    return false;
}


/**
 * ÇÏ³ªÀÇ HTML Form SELECTÀÇ ¸ðµç µ¥ÀÌÅÍ(option)¸¦ ´Ù¸¥ HTML Form SELECT·Î ¿Å±â´Â ÇÔ¼ö
 * @param from ¿Å°Ü¾ß ÇÏ´Â µ¥ÀÌÅÍ¸¦ °¡Áö°í ÀÖ´Â HTML Form Select
 * @param to   µ¥ÀÌÅÍ°¡ ¿Å°ÜÁö´Â HTML Form Select
 * @see        moveData()
 */
function moveAllOptions(from, to) {
    selectAllOptions(from);
    moveOptions(from, to);
    return false;
}


/**
 * HTML Form TextFieldÀÇ °ªÀ» HTML Form Select·Î Ãß°¡ÇÏ´Â ÇÔ¼ö
 * @param data  µ¥ÀÌÅÍ °´Ã¼
 * @param select HTML Form Select °´Ã¼
 */
function addTextToOptions(data, select) {
    select.options[select.options.length] = new Option(data, data);
    return false;
}

/**
 * HTML ¼±ÅÃµÈ ¿É¼ÇÀ» À§·Î ¿Ã¸°´Ù.
 * @param select HTML Form Select °´Ã¼
 */
function upSelectedOptions(select) {

    /* select¿¡ Æ÷ÇÔµÈ ÀüÃ¼ optionÀÇ ¼ö */
    var size = select.options.length;

    for (var i = 0; i < size; i++) {
        if (select.options[i].selected) {

            /* ¸Ç À§ÀÇ optionÀ» ¼±ÅÃÇß´ÂÁö¸¦ È®ÀÎÇÑ´Ù. */
            if (i == 0) return false;

            var tempText = select.options[i - 1].text;
            var tempValue = select.options[i - 1].value;
            select.options[i - 1].text = select.options[i].text;
            select.options[i - 1].value = select.options[i].value;
            select.options[i - 1].selected = true;
            select.options[i].text = tempText;
            select.options[i].value = tempValue;
            select.options[i].selected = false;
        }
    }
    return false;
}


/**
 * HTML ¼±ÅÃµÈ ¿É¼ÇÀ» ¾Æ·¡·Î ³»¸°´Ù.
 * @param select HTML Form Select °´Ã¼
 */
function downSelectedOptions(select) {
    /* select¿¡ Æ÷ÇÔµÈ ÀüÃ¼ optionÀÇ ¼ö */
    var size = select.options.length;

    for (var i = size - 1; i >= 0; i--) {
        if (select.options[i].selected) {

            /* ¸Ç ¾Æ·¡ÀÇ optionÀ» ¼±ÅÃÇß´ÂÁö¸¦ È®ÀÎÇÑ´Ù. */
            if (i == (size - 1)) return false;

            var tempText = select.options[i + 1].text;
            var tempValue = select.options[i + 1].value;
            select.options[i + 1].text = select.options[i].text;
            select.options[i + 1].value = select.options[i].value;
            select.options[i + 1].selected = true;
            select.options[i].text = tempText;
            select.options[i].value = tempValue;
            select.options[i].selected = false;
        }
    }
    return false;
}

/**
 * HTML Ã¼Å© ¹Ú½º¸¦ ¸ðµÎ ¼±ÅÃÇÑ´Ù.
 * @param select HTML Form Checkbox °´Ã¼
 */
function selectAllCheckboxs(checkbox) {
    if (checkbox == null) return;

    /* Ã¼Å© ¹Ú½º°¡ ÇÏ³ªÀÎ °æ¿ì¿¡ ´ëÇÑ Ã³¸® */
    checkbox.checked = true;

    for (var i = 0; i < checkbox.length; i++) {
        checkbox[i].checked = true;
    }
    return true;
}

/**
 * HTML Ã¤Å© ¹Ú½ºÀÇ ¼±ÅÃÀ» ÇØÁ¦ÇÑ´Ù.
 * @param select HTML Form Checkbox °´Ã¼
 */
function deselectAllCheckboxs(checkbox) {
    if (checkbox == null) return;

    /* Ã¼Å© ¹Ú½º°¡ ÇÏ³ªÀÎ °æ¿ì¿¡ ´ëÇÑ Ã³¸® */
    checkbox.checked = false;

    for (var i = 0; i < checkbox.length; i++) {
        checkbox[i].checked = false;
    }
    return true;
}

/**
 * HTML Ã¼Å© ¹Ú½ºÀÇ ¼±ÅÃ ¿©ºÎ¸¦ º¯°æÇÑ´Ù.
 * @param select HTML Form Checkbox °´Ã¼
 */
function changeAllCheckboxs(obj, checkObj) {
    if (!obj.checked) {
        deselectAllCheckboxs(checkObj);
    } else {
        selectAllCheckboxs(checkObj);
    }
}

//PHP¿ë Ã¼Å©¹Ú½º ¼±ÅÃ
function chkBox(objArr) { // ÀüÃ¼¼±ÅÃ/ÇØÁ¦ 
    var obj = document.getElementsByName(objArr); 
    for (var i=0; i<obj.length; i++) obj[i].checked = true; 
} 
//PHP¿ë Ã¼Å©¹Ú½º ¼±ÅÃ ÇØÁ¦
function revBox(objArr) { // ÀüÃ¼¹ÝÀü 
    var obj = document.getElementsByName(objArr); 
    for (var i=0; i<obj.length; i++) obj[i].checked = false; 
} 
//PHP¿ë Ã¼Å© ¹Ú½ºÀÇ ¼±ÅÃ ¿©ºÎ¸¦ º¯°æÇÑ´Ù.
function changeAllCheckboxsArray(obj, checkObj) {
    if (!obj.checked) {
        revBox(checkObj);
    } else {
        chkBox(checkObj);
    }
}

/**
 * Æ¯Á¤ ºÎºÐÀ» ¼û±â°Å³ª º¸¿©ÁØ´Ù.
 * @param field : ¼û±â°Å³ª º¸ÀÏ °´Ã¼
 * @return false
 * @browser IE6
 */
function showOrHide(obj) {
    if (document.getElementById) {
        var el = document.getElementById(obj);
        if (el.style.display != "none") {
            el.style.display = "none";
        } else {
            el.style.display = "block";
        }
    }
    return false;
}

/**
 * ÅØ½ºÆ® ÇÊµå¿¡ ÀÔ·ÂÇÑ °ª¿¡ 6ÀÚ¸® ÀÌÈÄ¿¡ ´ë½Ã(-)¸¦ ºÙÀÎ´Ù.
 * ÅØ½ºÆ® ÇÊµå¿¡ ¾Æ·¡¸¦ ±âÀÔÇÑ´Ù. onkeyup="toSsn(this)"
 * @param field ÅØ½ºÆ® ÇÊµå
 */
function toSsn(field) {
    var number = String(field.value);
    number = number.replace(/-|\s+/g, "");

    var length = number.length;

    if (length < 6) {
        field.value = number;
    } else {
        var result = number.substring(0, 6) + "-";
        result += number.substring(6, length);
        field.value = result;
    }
}

/**
 * 2005.10.27 Ãß°¡ (È²¿¬Èñ)
 * radio ¹öÆ° Áß ¼±ÅÃÇÑ °ªÀ» ReturnÇÑ´Ù.
 * @param field : radio button °´Ã¼
 * @return ¼±ÅÃÇÑ °ª
 */
function getCheckedValue(radio) {
    var len = radio.length;
    var chkValue = "";

    for(i=0; i<len; i++) {
        if(radio[i].checked == true) {
            chkValue = radio[i].value;
            break;
        }
    }
    return chkValue;
}

/**
 * checkBox°¡ ÇÏ³ª¶óµµ ¼±ÅÃµÇ¾ú´ÂÁö ¿©ºÎ ¹ÝÈ¯
 * @param field : checkbox °´Ã¼
 * @return boolean
 */
function getChecked(checkbox) {
    var len = 0;
    var bCheck = false;
    var count = 0;
    
    /* Ã¼Å© ¹Ú½º°¡ ÇÏ³ªÀÎ °æ¿ì¿¡ ´ëÇÑ Ã³¸® */
    if (checkbox) {
        len = checkbox.length;
        if (len) {
            for (var i = 0; i < checkbox.length; i++) {
                if (checkbox[i].checked) {
                    count++;
                }
            }
        } else {
            if(checkbox.checked)
                count++;
        }
    }

    if(count > 0)
        bCheck = true;
    else
        bCheck = false;
        
    return bCheck;
}

/**
 * checkBox°¡ ÇÏ³ª¶óµµ ¼±ÅÃµÇ¾ú´ÂÁö ¿©ºÎ ¹ÝÈ¯ (PHP¿ë)
 * @param field : checkbox °´Ã¼
 * @return boolean
 */
function getCheckedArray(checkboxArr) {
    var len = 0;
    var bCheck = false;
    var count = 0;
    
    var obj = document.getElementsByName(checkboxArr); 
    for (var i=0; i<obj.length; i++) { 
        if(obj[i].checked) {
            count++;
        }
    }

    if(count > 0)
        bCheck = true;
    else
        bCheck = false;
        
    return bCheck;
}

/*
 * 2005.10.31 Ãß°¡ (È²¿¬Èñ)
 * ÀÌ¸ÞÀÏ À¯È¿¼º Ã¼Å©
 */
function IsEmailAddr(obj) {
    var format = /^((\w|[\-\.])+)@((\w|[\-\.])+)\.([A-Za-z]+)$/;
    return IsValidFormat(obj, format);
}

/**
 * 2005.10.31 Ãß°¡ (È²¿¬Èñ)
 * ÀÔ·Â°ªÀÌ »ç¿ëÀÚ°¡ Á¤ÀÇÇÑ Æ÷¸Ë Çü½ÄÀÎÁö Ã¼Å©
 * ÀÚ¼¼ÇÑ format Çü½ÄÀº ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ 'regular expression'À» ÂüÁ¶
 * @param obj      Object
 * @param format   String
 * @return true  ¿Ã¹Ù¸¥ Æ÷¸Ë Çü½ÄÀÏ °æ¿ì
 */
function IsValidFormat(obj, format) {
    if (obj.value.search(format) != -1) {
        return true;
    }
    return false;
}

/**
 * ÀÔ·Â°ªÀÌ ¾ËÆÄºª,¼ýÀÚ·Î µÇ¾îÀÖ´ÂÁö Ã¼Å©
 * @param obj   Object
 * @return true ¾ËÆÄºª,¼ýÀÚ·Î µÇ¾îÀÖ´Â °æ¿ì
 */
function IsAlphaNum(obj) {
    var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
    return ContainsCharsCheck(obj.value,chars);
}

/**
 * ÀÔ·Â°ªÀÌ ¾ËÆÄºªÀ¸·Î µÇ¾îÀÖ´ÂÁö Ã¼Å©
 * @param obj   Object
 * @return true ¾ËÆÄºªÀ¸·Î µÇ¾îÀÖ´Â °æ¿ì
 */
function IsAlpha(obj) {
    var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
    return ContainsCharsCheck(obj.value,chars);
}

/**
 * ÀÔ·Â°ªÀÌ ¼ýÀÚ·Î µÇ¾îÀÖ´ÂÁö Ã¼Å©
 * @param obj   Object
 * @return true ¼ýÀÚ·Î µÇ¾îÀÖ´Â °æ¿ì
 */
function IsNum(obj) {
    var chars = "0123456789";
    return ContainsCharsCheck(obj.value,chars);
}


/**
 * ¼ýÀÚ¿©ºÎ È®ÀÎ
 */
function isValidNum(val){
    if(!isNaN(val)) return false;

    return true;
}


/**
* ÅØ½ºÆ® ¹Ú½ºÀÇ ¹®ÀÚ¿­ ±æÀÌ¸¦ Ã¼Å©ÇÑ´Ù.
*
* @param    obj, maxlen
* @return    void
*/
function keyupCheckLen(obj, maxlen, msgNo, msgText)
{
    var str_src    = obj.value;
    var str_len = GetLenByByte(str_src);
    var message;
    
    if(str_len > maxlen)
    {
        message = GetMsg(msgNo, msgText, Math.floor(maxlen/2), maxlen);
        
        alert(message);
        //alert(maxlen + "¹ÙÀÌÆ®±îÁö¸¸ ÀÔ·Â °¡´ÉÇÕ´Ï´Ù.");
        obj.value = stringCut(str_src, maxlen);
    }
}


/**
  * ÀÔ·Â ÇÊµåÀÇ ¹®ÀÚ Å©±â¸¦ ¾ò´Â´Ù.. (ÇÑ±Û±îÁö °í·ÁÇÏ¿© °è»êµÊ)
  * @param String   ¹®ÀÚ¿­
  * @return int ¹®ÀÚ¿­ÀÇ ±æÀÌ
 */
function GetLenByByte(value)
{
    var byteLength = 0;
    for (var inx = 0; inx < value.length; inx++) {
        var oneChar = escape(value.charAt(inx));
        if ( oneChar.length == 1 ) {
            byteLength ++;
        } else if (oneChar.indexOf("%u") != -1) {
            byteLength += 2;
        } else if (oneChar.indexOf("%") != -1) {
            byteLength += oneChar.length/3;
        }
    }
    return byteLength;
}


/**
* ¹®ÀÚ¿­ ÀÚ¸£±â
*
* @param    string    str        »ç¿ëÀÚ°¡ ÀÔ·ÂÇÑ ¹®ÀÚ¿­
* @param    int        MAX_LEN    ÀÔ·Â¹®ÀÚÀÇ ÃÖ´ë°ª
* @return    string    str
*/
function stringCut(str, MAX_LEN)
{
    var str;
    var len = 0;
    var temp;
    var count = 0;

    len = str.length;

    for (k=0 ; k<len ; k++)
    {
        temp = str.charAt(k);

        if (escape(temp).length > 4) {
            count += 2;
        }
        else
            if(escape(temp) != "%0D")
                count++;

        if(count > MAX_LEN)
        {
            break;
        }
    }

    return str.substring(0, k);

}


/**
 * ÀÔ·Â°ªÀÌ Æ¯Á¤ ¹®ÀÚ(chars)¸¸À¸·Î µÇ¾îÀÖ´ÂÁö Ã¼Å©
 * Æ¯Á¤ ¹®ÀÚ¸¸ Çã¿ëÇÏ·Á ÇÒ ¶§ »ç¿ë
 * ex) if (!ContainsCharsCheck(form.blood,"ABO")) {
 *         Alert("Ç÷¾×Çü ÇÊµå¿¡´Â A,B,O ¹®ÀÚ¸¸ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.");
 *     }
 * @param obj   Object
 * @return true Æ¯Á¤ ¹®ÀÚ°¡ ÀÖÀ» °æ¿ì
 */
function ContainsCharsCheck(str, chars) {
    for (var inx = 0; inx < str.length; inx++) {
       if (chars.indexOf(str.charAt(inx)) == -1)
           return false;
    }
    return true;
}

function ContainsCharsOnly(str, chars) {
    var rtnstr = "";

    for (var inx = 0; inx < str.length; inx++) {
       if (chars.indexOf(str.charAt(inx)) == -1) {
           return rtnstr;
       } else {
               rtnstr += str.charAt(inx);
       }
    }

       return rtnstr;
}


function checkLetter(obj, opt, rtnyn) {
    var src_chars = obj.value;
    var com_chars = "";

    if( opt == "1")
    {
        com_chars = "0123456789";

        if (!ContainsCharsCheck(src_chars, com_chars)) {
            alert("¼ýÀÚ¸¸ ÀÔ·Â °¡´ÉÇÕ´Ï´Ù.");

            obj.value = ContainsCharsOnly(src_chars, com_chars);
        } else {
            obj.value = src_chars;
        }
    } else if( opt == "2") {
        com_chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

        if (!ContainsCharsCheck(src_chars, com_chars)) {
            alert("¿µ¹®°ú ¼ýÀÚ¸¸ ÀÔ·Â °¡´ÉÇÕ´Ï´Ù.");

            obj.value = ContainsCharsOnly(src_chars, com_chars);
        } else {
            obj.value = src_chars;
        }
    }

    if( rtnyn == "Y") {
        return obj.focus();
    }
}

/**
  * ÇØ´ç ³â, ¿ùÀÇ ¸¶Áö¸· ÀÏÀÚ¸¦ °¡Á®¿Â´Ù
  * @param year   ³â
  * @param month  ¿ù
  * @return ¸¶Áö¸· ÀÏÀÚ
 */
function getEndDay(year,month){//
   if ((month==1)||(month==3)||(month==5)||(month==7)||(month==8)||(month==10)||(month==12))
          return 31;
     else {
         if(month==2) {
             if ((year%4==0) && ((year/4)%200!=0))   return 29;
             else    return 28;
         } else {
           return 30;
         }
    }
}

/**
  * ÇØ´ç ³â, ¿ùÀÇ ¸¶Áö¸· ÀÏÀÚ¿¡ ¸Â°Ô SelectBox »ý¼º
  * @param objYear   ³â
  * @param objMonth  ¿ù
  * @return ¸¶Áö¸· ÀÏÀÚ
 */
function getSelectEndDay(objYear, objMonth, objDay, sValue, header) {
    var endDay = getEndDay(eval(objYear.value), eval(objMonth.value));
    var sDay;
    var day;
    var selIndex = 0;

    for (var i=objDay.options.length; i>0; i--) {
        objDay.remove(i - 1);
    }

    if(header != null && header != "") {
	    objDay.options[0] = new Option(header, "");
	    for(var i=1; i<=endDay; i++) {
	        if(i<10) day = "0" + i;
	        else day = i;

	        day = new Option(day, day);
	        objDay.options[i] = day;

	        if(sValue != "" && i == eval(sValue)) selIndex = i;
	    }
    } else {
	    for(var i=1; i<=endDay; i++) {
	        if(i<10) day = "0" + i;
	        else day = i;

	        day = new Option(day, day);
	        objDay.options[i-1] = day;

	        if(sValue != "" && i == eval(sValue)) selIndex = i-1;
	    }
    }
    objDay.selectedIndex = selIndex;
}

function checkContainsChars(str, chars) {
 	var ch = "";

    for (var inx = 0; inx < chars.length; inx++) {
       if (str.indexOf(chars.charAt(inx)) > -1) {
           ch = chars.charAt(inx);
           break;
       }
    }
    return ch;
}


function Comma(number) {
    number = '' + number;

    if (number.length > 3) {
        var mod = number.length % 3;
        var output = (mod > 0 ? (number.substring(0,mod)) : '');

        for (i=0 ; i < Math.floor(number.length / 3); i++) {
            if ((mod == 0) && (i == 0))
                output += number.substring(mod+ 3 * i, mod + 3 * i + 3);
            else
                output+= ',' + number.substring(mod + 3 * i, mod + 3 * i + 3);
        }

        return (output);
    }
    else return number;
}

function isEmptyStr(str) {
    str = str.replace(/^\s+/, "");  /* remove leading white spaces */
    str = str.replace(/\s+$/g, ""); /* remove trailing while spaces */

    if (str == "")
        return true;
    else
        return false;
}

function  GetMsg(msgNo,msg1,msg2,msg3)
{
    msgNo=parseInt(msgNo,10);
    var msgs=new Array();
    
    // ÀÏ¹Ý ÀÔ·Â Çü½Ä °ü·Ã ¸Þ¼¼Áö
    msgs[100] = msg1 + 'À»(¸¦) ÀÔ·ÂÇØ ÁÖ¼¼¿ä.';
    msgs[101] = '';
    msgs[102] = msg1 + 'Àº(´Â) °ø¹é Æ÷ÇÔ ÇÑ±Û' + msg2 + 'ÀÚ, ¿µ¹® ' + msg3 + 'ÀÚ ÀÌ³»¿©¾ß ÇÕ´Ï´Ù.\n ' + msg1 + 'À»(¸¦) ´Ù½Ã ÀÔ·ÂÇØ ÁÖ¼¼¿ä.';
    
    msgs[110] = msg1 + 'ÀÌ ¿Ï·áµÇ¾ú½À´Ï´Ù.';
    
    return msgs[msgNo];
}
