﻿//==============================================================================
// 1. 기   능   명 : 체크박스 객체
// 2. 작   성   자 : 함께하는 e세상 소프트밸리(softvalley.co.kr)
// 3. 작 성  일 자 : 2007.02.07
// 4. 최 근 변경일 : 2007.07.28
// 8. 라 이 센 스  : All right reserved Softvalley, 소스를 수정하지 마세요.
//                   (alltry@softvalley.co.kr)
/*
    Object Name: BizOnCheckBox(CheckBox관리)
    Method:
        SetCheckAll()                   : 모두선택설정
        SetCheckAllFree()               : 모두해제설정
        GetCheckedData(gubunChar)       : 선택자료취득(구분자지정가능: ///)
        GetCheckedLength()              : 선택된 체크박스의 갯수
    Sample:
        var  clObj =  new BizonCheckBox("frm1","c1");
        clObj.GetCheckedLength();
*/
//==============================================================================

function BizOnCheckBox(formname,objname) {
    this.formname           =formname;
    this.objname            =objname;
    
    this.SetCheckAll        =SetCheckAll;
    this.SetCheckAllFree    =SetCheckAllFree;
    this.GetCheckedData     =GetCheckedData;
    this.GetCheckedLength   =GetCheckedLength;
    
    /* 
        전체선택 
    */
    function SetCheckAll(){
    	var f=document.forms[formname];
    	var check_count;
    	var true_count=0;
        
        try {
            check_count=f.elements[objname].length;
        } catch(e) {
            return;
        }
        
        /* 복수여부확인 */
        if (check_count==null) {
            if (f.elements[objname]==null) {
                return;
            } else {
                if (f.elements[objname].checked) {
                    f.elements[objname].checked = 0;
                } else {
                    f.elements[objname].checked = 1;
                }
                return;
            }
    
        } else {
        }
        
        /* 조사 */
    	for(i=0;i<check_count;i++)
    	{
            if (f.elements[objname][i].checked) {
                true_count++;
            }
    	}
        
        /* 이미 전부선택되어있는가? */
        if (check_count==true_count) {
            CheckSetAllFree();
        } else {
        	for(i=0;i<check_count;i++)
        	{
                f.elements[objname][i].checked=1;
        	}
        }
    } 

    /* 
        전체해제 
    */
    function SetCheckAllFree(){
    	var f=document.forms[formname];
        var check_count;
        try {
            check_count=f.elements[objname].length;
        } catch(e) {
            return;
        }
        
        if (check_count==null) {
            if (f.elements[objname]==null) {
                return;
            } else {
    		    f.elements[objname].checked=0;
            }
    
        } else {
        	for(var i=0;i<check_count;i++) {
        		f.elements[objname][i].checked=0;
        	}    
        }
    }


    /* 
        선택된 체크박스의 값을 돌려 주기 
    */
    function GetCheckedData(gubunChar){
    	var f=document.forms[formname];
    	var check_count;
    	var tmpname,tmpname1,tmpname2;
    	var returnVal="";
    	var k=0;
        
        try {
            check_count=f.elements[objname].length;
        } catch(e) {
            return "";
        }
    
        if (check_count==null) {
            if (f.elements[objname]==null) {
                return;
            } else {
        		if (f.elements[objname].checked){
        				returnVal= f.elements[objname].value;
        		} else {
                }
                return returnVal;
            }
        } else {
        }
    	
    	for(i=0;i<check_count;i++)
    	{
    		if (f.elements[objname][i].checked){
                if (returnVal=="") {
    				returnVal= f.elements[objname][i].value;            
                } else {
    				returnVal=returnVal + gubunChar + f.elements[objname][i].value;
                }
    
    		}
    	}
    	return returnVal;
    }    
    
    /**
        선택된 체크박스의 갯수
    */
    function GetCheckedLength(){
    	var f=document.forms[formname];
    	var check_count=0;
    	var tmpname;
    	var returnVal="";
    	var i,k;
    	
    	k=0;
        
        try {
            check_count=f.elements[objname].length;
        } catch(e) {
            return 0;
        }
        
        if (check_count==null) {
            if (f.elements[objname]==null) {
                return 0;
            } else {
        		if (f.elements[objname].checked){
        				return 1;
        		} else {
                }
                return 0;
            }
        } else {
        }    
        
    	for(i=0;i<check_count;i++) {
    		if (f.elements[objname][i].checked)	k=k+1;
    	}
    	return k;
    }    
}

