/**
 * 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(checkbox) {
    if (checkbox == null) return;
    
    /* Ã¼Å© ¹Ú½º°¡ ÇÏ³ªÀÎ °æ¿ì¿¡ ´ëÇÑ Ã³¸® */
    if (checkbox.checked) {
        checkbox.checked = false;
    } else {
        checkbox.checked = true; 
    }
    
    for (var i = 0; i < checkbox.length; i++) {
        if (checkbox[i].checked) {
            checkbox[i].checked = false;
        } else {
            checkbox[i].checked = true;
        }
    }
    return true;
}

/**
 * Æ¯Á¤ ºÎºÐÀ» ¼û±â°Å³ª º¸¿©ÁØ´Ù.
 * @param field : ¼û±â°Å³ª º¸ÀÏ °´Ã¼
 * @return false
 */
function showOrHide(obj) {
    var element = $(obj);
    if (element.style.display == "none") {
        element.style.display = "block";
    } else {
        element.style.display = "none";
    }
    return false;
}

/**
 * ¼±ÅÃÇÑ ¶óµð¿À ¹öÆ°ÀÇ °ªÀ» ¹ÝÈ¯ÇÑ´Ù.
 * @param radioButton ¶óµð¿À ¹öÆ°
 * @return ¼±ÅÃÇÑ ¶óµð¿À ¹öÆ°ÀÇ °ª
 */
function getRadioButtonValue(radioButton) {
    if (radioButton.length) {
        for (var i = 0; i < radioButton.length; i++) {
            if (radioButton[i].checked) {
                return radioButton[i].value;
            }
        }
    }
    return radioButton.value;
}

