/*INISEAL:[h3%2F75V%2BRTXVfO8vz7unbeDdCgmI%3D%0A]*/
/*****************************************************************************
 * ÆÄÀÏ¸í : pbk-commoncheckatp.js
 * ÀÛ¼ºÀÏ : 2008. 04. 19
 * ÀÛ¼ºÀÚ : ej
 * ¼³   ¸í : pbk_common.js¸¦ ±â´Éº° ºÐ¸®.
 * ===========================================================================
 * º¯°æÀÌ·Â:
 * DATE				AUTHOR		DESCRIPTION
 * ---------------------------------------------------------------------------
 * º¯°æ ÀÌ·ÂÀº ÀÌ°÷¿¡ Ãß°¡ ÇÕ´Ï´Ù.
 *****************************************************************************/
 
/**
 * ÀÎÁõ¼­ Á¦Ãâ °ü·Ã script
 *
 * Step 1 ¶Ç´Â ´ÙÀ½ ½ºÅÜ¿¡¼­  ¿¡¼­ ÀüÀÚ¼­¸íÇÒ ÇÊµå¿¡ signid="ÀüÀÚ¼­¸í°ª" À» ³Ö°í ½ºÅ©¸³Æ®¿¡¼­ 
 * pbk.common.signField.addAll(formObj); È£ÃâÇÏ¿© ÀüÀÚ¼­¸íÇÊµå¸¦ ÀÏ°ý ÀúÀå ÇÑ´Ù.
 * pbk.common.signField.add(formObj,'remtAmt','¼Û±Ý¾×'); ¸¦ È£ÃâÇÏ¿© Á¶ÇÕµÈ ÇÊµå³ª Ãß°¡ÇÒ ÀüÀÚ¼­¸í ÇÊµå¸¦ Ãß°¡ÇÒ¼ö ÀÖ´Ù.
 * 
 * ÀúÀåÇÑ ÀüÀÚ¼­¸í ÇÊµå´Â ÀüÀÚ¼­¸íÀ»ÇÒ È­¸é¿¡¼­ JSP ÅÂ±× 
 * <pbk:inputSignField signFieldName="signField" type="hidden"  /> ¸¦ ÀüÀÚ¼­¸íÇÒ Form ³»¿¡ ±¸ÇöÇØÁØ´Ù.
 *
 * @author jk
 * @since 2009. 04. 17
 */
pbk.common.signField = function() {
    // id/value ºÐ·ùÀÚ(signTagComponent ÀÇ SEPARATER ¿Í °°¾Æ¾ßÇÔ)
    var SEPARATER = "¡×";
    
    // signid ¸¦ ÀúÀåÇÒ ¹è¿­ name
    var SIGN_FIELD = "signField";
    
    return {
        /**
         * ÀÎÁõ¼­ Á¦Ãâ ÇÊµå ¸¦ Æû¿¡ ¸ðµÎ Ãß°¡ÇÑ´Ù.
         *
         * @param {Object} formObj
         * @param {boolean} isJoin  °°Àº signid °¡ ÀÖÀ»¶§ ÀÌÀü °ª¿¡ ´õÇÒÁö ¿©ºÎ(
         * since 2008.12.08 jk
         */
        addAll : function(formObj, isJoin){
            // ¼Ó¼º signid °¡ ÀÖ´Â ÇÊµå¸¸ Ãß°¡.
            var elements = formObj.elements;
            
            for(i=0; i<elements.length; i++){
                var element = elements.item(i);
                var signid = element.getAttribute('signid'); 
                
                // signField ¹è¿­¿¡ Ãß°¡.
                if(signid != null && signid != undefined && element.value != ''){
                    pbk.common.signField.add(formObj, element.id, signid, isJoin);
                }
            }     
            return formObj;   
        },
        /**
         * ÀÎÁõ¼­ Á¦Ãâ ÇÊµå ¸¦ Æû¿¡ Ãß°¡ÇÑ´Ù.
         *
         * @param {Object} formObj
         * @param {String} elementId
         * @param {String} signid
         * @param {boolean} isJoin  °°Àº signid °¡ ÀÖÀ»¶§ ÀÌÀü °ª¿¡ ´õÇÒÁö ¿©ºÎ
         * since 2008.12.08 jk
         */
        add : function(formObj, elementId, signid, isJoin){
            var element = document.getElementById(elementId);
            var type = element.getAttribute('type');
            var value = element.value;
            
            if(isJoin == null || isJoin == undefined) isJoin = true;
               
            if(element != null && value != '') {
                if(type == 'radio'){
                    // radio ÀÇ text ¼Ó¼ºÀÌ ÀÖÀ¸¸é °¡Á®¿Â´Ù.(¾øÀ¸¸é value °ªÀ» ³Ö´Â´Ù.)
                    value = pbk.common.signField.getRadioText(element);
                }else if(type == 'checkbox'){
                    // checkbox ÀÇ text ¼Ó¼ºÀÌ ÀÖÀ¸¸é °¡Á®¿Â´Ù.(¾øÀ¸¸é value °ªÀ» ³Ö´Â´Ù.)
                    value = pbk.common.signField.getCheckboxText(element);
                }

                // °°Àº signid °¡ ÀÖ¾îµµ Áßº¹ »ý¼º.
                if(isJoin == false){
                    form.createHiddenField(formObj, SIGN_FIELD, signid + SEPARATER + value, true);
                }else{
                // °°Àº signid ¿¡ °ª ´õÇÑ´Ù.
                    pbk.common.signField.join(formObj, signid, value);
                }
            }
            return formObj;   
        },
        /**
         * °°Àº signid °¡ ÀÖÀ»¶§ °ªÀ» ´õÇØÁØ´Ù.
         *
         * @param {Object} formObj
         * @param {String} signid
         * @param {String} value
         * @param {boolean} isJoin  °°Àº signid °¡ ÀÖÀ»¶§ ÀÌÀü °ª¿¡ ´õÇÒÁö ¿©ºÎ(±âº» true)
         * since 2008.12.08 jk
         */
        join : function(formObj, signid, value){
            // formObj SIGN_FIELD ÀÇ ¹è¿­ °¡Á®¿Â´Ù.
            var elements = document.getElementsByName(SIGN_FIELD);
            
            if(elements == null || elements == undefined) return false;
            
            for(k=0; k<elements.length; k++){
                var element = elements[k];
                var sId = element.value.split(SEPARATER); 
 
                // °°Àº signid °¡ ÀÖÀ¸¸é °ªÀ» ´õÇØÁØ´Ù.
                if(sId.length > 1 && sId[0] == signid && element.value != '' && value != ''){
                    element.value = element.value +' '+ value;
                    return true;
                }
            }  
            // signid Ãß°¡.
            form.createHiddenField(formObj, SIGN_FIELD, signid + SEPARATER + value, true);
            
            return false;   
        },        
        /**
         * ¼±ÅÃµÈ radio ¹öÆ°ÀÇ text ¸¦ return ÇÕ´Ï´Ù.
         * 
         * @param radioObj {Object} radio ¹öÆ° Obj
         * @since 2009.04.22 jk
         */
        getRadioText : function (radioObj) {
            if(!radioObj){
                return "";
            }
            var radioLength = radioObj.length;
            if(radioLength == undefined){
                if(radioObj.checked && radioObj.text != undefined){
                    return radioObj.text;   // text ¼Ó¼º°ªÀ» °¡Á®¿Â´Ù.
                }
                else{
                    return radio.getCheckedValue(radioObj);
                }
            }

            for(var i = 0; i < radioLength; i++) {
                if(radioObj[i].checked) {
                    return radioObj[i].text;
                }
            }
            return radio.getCheckedValue(radioObj);
        },  
        /**
         * ¼±ÅÃµÈ checkboxÀÇ °ªµéÀ» ',' ·Î ±¸ºÐÇÏ¿© ³Ñ±ä´Ù.
         * 
         * @param checkBoxObj {Object} checkbox
         * @since 2009.04.22 jk         
         */
        getCheckboxText : function (checkBoxObj) {
            var chkList = "";
            
            if(!checkBoxObj){
                return "";
            }
            
            var checkboxLength = checkBoxObj.length;
            if (checkboxLength == undefined) {
                if (checkBoxObj.checked) {
                    if(checkBoxObj.text != undefined)
                        chkList = checkBoxObj.text;
                    else
                        chkList = checkBoxObj.value;
                }
            }
            else {
                for (var i = 0; i < checkboxLength; i++) {
                    if (checkBoxObj[i].checked) {
                        if(checkBoxObj[i].text != undefined)
                            chkList = chkList + checkBoxObj[i].text;
                        else
                            chkList = chkList + checkBoxObj[i].value;
                            
                        if(checkboxLength > i) chkList = chkList + ', ';    // text ¼Ó¼º°ªÀ» ¿¬°áÇÑ´Ù.
                    }
                }
            }
            return chkList;
        }              
         
    }
}();
 
