/********************************************************************************************************************************
    ### 공통코드 찾기 START
********************************************************************************************************************************/
/**
 * 실질적인 공통코드 찾기는 여기서 부터 시작된다.
 * 1. searchValue가 있을경우 iframe에서 공통 코드를 찾는다.
 * 2. searchValue가 없을경우 popup을 띄워서 사용자가 찾도록 한다.
 */
function searchCommonCode(params){
    var searchValue   = getParamValue(params, "searchValue");
    var searchedValue = getParamValue(params, "searchedValue");

    if(searchValue != "" || searchedValue != ""){
        var oIFrame = document.createElement("<iframe name='searchCommonCodeFrame' src='/common/web/null.html' width='0' height='0' ></iframe>");
        if(!document.all("searchCommonCodeFrame")){
            document.body.appendChild(oIFrame);
        }
        var srcURL = URLDecoding(getParamValue(params, "srcURL"));
        searchCommonCodeFrame.location.href = srcURL + "?" + params;
    }else{
        openCommonCodeDialog(params);
    }
}


/**
 * 공통코드 찾기 팝업을 띄운다.
 */
function openCommonCodeDialog(params){
    var popupOpenType = getParamValue(params, "popupOpenType");
    if(popupOpenType == "")popupOpenType="POPUP";
    var popupName     = getParamValue(params, "popupName");

    if(popupOpenType == "POPUP"){
        openPopup(popupName, params);
    }else if(popupOpenType == "MODAL"){
        openModalPopup(popupName, params);
    }else{
         alert("팝업의 오픈 형태가 정의되지 않았습니다.");
    }
}


/**
 * 공통 코드 서치 tag lib 사용시 필요한 script이다.
 * 공통 코드의 cd_nm input box에서  onkeyup, onkeydown 이벤트가 발생할때 호출된다.
 * 공통 코드 팝업버튼  click 했을 경우에도 이쪽으로..
 * init by 김창수
 */
function commonCodeElementEvent(obj){
    /** cd_nm input element에서는 key event에서 backspace, del, tab, enter event만 수용한다.*/
    /*
        event를 keydown, keyup 모두 쓴이유는
        backspace, delete와 tab, enter 키가 event가 반영되는 시점이 다르기 때문이다.
        event가 반영되는 시점이라하면,
        backspace, delete는 keyup이 발생할때 대상 소스에 반영(삭제)되고,
        tab 키의경우 keyup에서는 이미 포커스가 다른 소스로 넘어가므로,
        tab의 경우 keydown에서의 소스가 의미가 있다고 볼수 있다.
    */
    var btnObj   = getCommonCodeObj(obj, "btnImg");

/*    if((event.keyCode=="8"||event.keyCode=="46") && event.type == "keyup" ){ //backspace, delete			// 이벤트성이 아닌 일반키로 적용
        // span에 있는 모든 elements의 value를 지워준다.
        var objSpan = obj.parentNode;			// 이벤트성이 아닌 일반키로 적용
        var colChild = objSpan.children;			// 이벤트성이 아닌 일반키로 적용
        for(var i = 0 ; i < colChild.length ; i++){			// 이벤트성이 아닌 일반키로 적용
          if(colChild[i].tagName == "INPUT"){			// 이벤트성이 아닌 일반키로 적용
               colChild[i].value = "";			// 이벤트성이 아닌 일반키로 적용
          }			// 이벤트성이 아닌 일반키로 적용
        }			// 이벤트성이 아닌 일반키로 적용
        //var cdObj = getCommonCodeObj(obj, "cd");
        //var cd_nmObj = getCommonCodeObj(obj, "cd_nm");
        //cdObj.value = "";
        //cd_nmObj.value = "";
//		callSearchEndEvent(getCodeSearchParams(obj), "");			// 이벤트성이 아닌 일반키로 적용
        return;			// 이벤트성이 아닌 일반키로 적용
    }else */if((event.keyCode=="9"|| event.keyCode=="13") && event.type == "keydown"){ // tab, enter
		getSearchData(obj);
    }else if(event.srcElement == btnObj && event.type=="click"){// button click event 발생시
        getSearchData(obj);
    }
}
//onload 시점에 사원번호로 사원이름까지 알기 위해서... 함수를 뺐음  by 순보
function getSearchData(obj)
{
	var params = getCodeSearchParams(obj);
       if(callBeforeSearchEvent(params)){
	       	params = getCodeSearchParams(obj);
	        searchCommonCode(params);
	    }
}

/**
 * 코드 찾기 전에 호출되는 함수를 호출한다.
 * 이때 코드 찾기 전의 함수가 false(boolean)을 리턴 할때만 더이상 진행이 되지 않는다.
 */
function callBeforeSearchEvent(params){
    var strOnBeforeSearchEvent = getParamValue(params, "onBeforeSearchEvent");
    if(strOnBeforeSearchEvent && eval(strOnBeforeSearchEvent)){
        var return_value = eval(strOnBeforeSearchEvent + "()");
        if(return_value == false){//false로 명시적으로 리턴되는경우에만 코드 찾기를 그만둔다.
            return false;
        }else{
            return true;
        }
    } 
    return true;
}

function callSearchEndEvent(params, codeObj){
    var strOnSearchEndEvent = getParamValue(params, "onSearchEndEvent");
    if(strOnSearchEndEvent && eval(strOnSearchEndEvent)){
        eval(strOnSearchEndEvent + "(" + "\"" + codeObj + "\"" + ")");
    }
}
/**
 * 공통 코드 서치 tag lib 사용시 필요한 script이다.
 * cd_nm element에서 parameter를 매핑한다.
 * init by 김창수
 */
function getCodeSearchParams(obj){

    // elementType이 cd_nm 이면 obj에서 company_cd, cd_kind, ....등의 정보를 가져오면되고(모든 정보는 cd_nm element에 다 있다.)
    // elementType이 btnImg이면 같이 묶여있는 cd_nm element를 찾아오는 작업을 거쳐서 company_cd, cd_kind ,,,, 등을 가죠오면된다.
    // 우선 cd_nm element를 찾아와서 한방에 처리하자.
    var cd_nmObj = getCommonCodeObj(obj, "cd_nm");
    var cdObj    = getCommonCodeObj(obj, "cd");
    var btnObj   = getCommonCodeObj(obj, "btnImg");

    var searchValue = "";
    if(obj == cdObj){
    	searchValue = URLEncoding(cdObj.value?cdObj.value:"");
    }else if(obj == cd_nmObj){
    	searchValue = URLEncoding(cd_nmObj.value?cd_nmObj.value:"");
    }
    // cd_nm element를 찾아왔으므로 정보를 가져와서 코드 찾기 parameter를 구성하자.
    var params = "cdName="        + cdObj.name
              + "&cd_nmName="     + cd_nmObj.name
              + "&searchValue="   + searchValue
              + "&searchIndex="   + getIndexOfNamedObj(cdObj)// 동일한 명칭이 여러개 올수도 있다.
              ;
    // 나머지 attributes를 넘기자...기본적으로 cd_nmObj에 다 들어가 있다.
    for(var i = 0 ; i < cd_nmObj.attributes.length ; i++){
        if(cd_nmObj.attributes[i].value && cd_nmObj.attributes[i].value != "null")//의미 있는것들만 넘기자.
            params += ("&" + cd_nmObj.attributes[i].name + "=" + URLEncoding(cd_nmObj.attributes[i].value));
    }
    return params;
}
/**
 * obj의 name과 동일한 element들중의 index를 가져온다.
 */
function getIndexOfNamedObj(obj){
    var elements = document.getElementsByName(obj.name);
    for(var i = 0 ; i < elements.length ; i++){
        if(elements[i] == obj){
            return i;
        }
    }
}
/**
 * 공통 코드 elements 구조가
 * <span>
 *     <input cd> <input cd_nm> <img button>
 * </span>
 * 로 되어있다.
 * _getCommonCodeObj는  위의 구조에서 cd_nm element를 가져오는 function이다
 * 물론 인수로 넘어오는  obj는 cd, cd_nm, img button세개중의 하나이다.
 * 이 세개의 구분은 attribute(elementType :: cd, cd_nm, btnImg)로 한다.
 */
function getCommonCodeObj(obj, eleType){
    var divObj = obj.parentNode;
    var eles = divObj.childNodes;
    for(var i = 0 ; i < eles.length ; i++){
        if(eles[i].elementType == eleType){
            return eles[i];
        }
    }
}

/**
 * 파라미터 스트링(paramName=paramValue&paramName2=parmaValue2.....)에서 paramName에 해당하는 value를 찾아온다.
 * init by 김창수
 */
function getParamValue(params, paramName){
	var paramArray = params.split("&");
	var name = "";
	for(var i = 0 ; i < paramArray.length ; i++){
		name = paramArray[i].substring(0, paramArray[i].indexOf("="));
		if(name == paramName){
			return paramArray[i].substring(paramArray[i].indexOf("=") +1);
		}
	}
	
	return "";
}

function setCommonCode(targetType, targetName, codeObj, params){
    if(targetType.toUpperCase() == "FORM"){
        var cdName     = getParamValue(params,"cdName");
        var cd_nmName  = getParamValue(params,"cd_nmName");
        var searchIndex = getParamValue(params, "searchIndex");
        var objCds    = document.getElementsByName(cdName);
        var objCd_nms = document.getElementsByName(cd_nmName);
        /* 
        var objForm    = document.forms(targetName);
        if(!objForm){
            alert("[" + targetName + "] 으로된 form이 존재 하지 않습니다.\n공통코드 찾기에서 form의 명칭을 정확히 입력해 주시기 바랍니다.");
        }
        
        var objCd      = objForm.namedItem(cdName);
        var objCd_nm   = objForm.namedItem(cd_nmName);
        */
        if(_isValidObject(objCds[searchIndex]))
	        objCds[searchIndex].value    = codeObj.cd;
        if(_isValidObject(objCd_nms[searchIndex]))
	        objCd_nms[searchIndex].value = codeObj.cd_nm;
    }else if(targetType.toUpperCase() == "IBSHEET"){
        var currentRow = getParamValue(params,"currentRow");
        var cdName     = getParamValue(params,"cdName");
        var cd_nmName  = getParamValue(params,"cd_nmName");
        try{
            if(eval(targetName+ ".SaveNameCol(cdName)") != -1)
	    	    eval(targetName + ".CellValue2(" + currentRow + ", '" + cdName    + "') = '" + codeObj.cd + "'");
            if(eval(targetName+ ".SaveNameCol(cd_nmName)") != -1)
	            eval(targetName + ".CellValue2(" + currentRow + ", '" + cd_nmName + "') = '" + codeObj.cd_nm + "'");
        }catch(e){
            alert(e.description
                 + "\nIBSheet Name : " + targetName
                 + "\nCurrent Row  : " + currentRow
                 + "\ncd column name : " + cdName
                 + "\ncd_nm column name : " + cd_nmName
                 );
        }
    }else{
        alert("targetType의 값으로 [" + targetType + "]이 올수 없습니다.\n[FORM/IBSHEET]값 중 하나를 입력하시기 바랍니다.");
    }
}

function setOrgCode(targetType, targetName, codeObj, params){
    if(targetType.toUpperCase() == "FORM"){
        var org_cdName = getParamValue(params,"org_cdName");
        var org_nmName = getParamValue(params,"org_nmName");
        var searchIndex = getParamValue(params, "searchIndex");
        var objCds    = document.getElementsByName(org_cdName);
        var objCd_nms = document.getElementsByName(org_nmName);
/*
        var objForm    = document.forms(targetName);
        if(!objForm){
            alert("[" + targetName + "] 으로된 form이 존재 하지 않습니다.\n공통코드 찾기에서 form의 명칭을 정확히 입력해 주시기 바랍니다.");
        }
        var objOrg_cd   = objForm.namedItem(org_cdName);
        var objOrg_nm   = objForm.namedItem(org_nmName);
*/
        if(_isValidObject(objCds[searchIndex]))
	        objCds[searchIndex].value    = codeObj.org_cd;
        if(_isValidObject(objCd_nms[searchIndex]))
	        objCd_nms[searchIndex].value = codeObj.org_nm;
    }else if(targetType.toUpperCase() == "IBSHEET"){
        var currentRow = getParamValue(params,"currentRow");
        var org_cdName = getParamValue(params,"org_cdName");
        var org_nmName = getParamValue(params,"org_nmName");
        try{
            if(eval(targetName+ ".SaveNameCol(org_cdName)") != -1)
	    	    eval(targetName + ".CellValue2(" + currentRow + ", '" + org_cdName + "') = '" + codeObj.org_cd + "'");
            if(eval(targetName+ ".SaveNameCol(org_nmName)") != -1)
	            eval(targetName + ".CellValue2(" + currentRow + ", '" + org_nmName + "') = '" + codeObj.org_nm + "'");
        }catch(e){
            alert(e.description
                 + "\nIBSheet Name : " + targetName
                 + "\nCurrent Row  : " + currentRow
                 + "\ncd column name : " + org_cdName
                 + "\ncd_nm column name : " + org_nmName
                 );
        }
    }else{
        alert("targetType의 값으로 [" + targetType + "]이 올수 없습니다.\n[FORM/IBSHEET]값 중 하나를 입력하시기 바랍니다.");
    }
}
//Biz(사업자)조회 추가 유경수 2007.12.19
function setBizCode(targetType, targetName, codeObj, params){
    if(targetType.toUpperCase() == "FORM"){
        var biz_cdName = getParamValue(params,"biz_cdName");
        var biz_nmName = getParamValue(params,"biz_nmName");
        var searchIndex = getParamValue(params, "searchIndex");
        var objCds    = document.getElementsByName(biz_cdName);
        var objCd_nms = document.getElementsByName(biz_nmName);
/*
        var objForm    = document.forms(targetName);
        if(!objForm){
            alert("[" + targetName + "] 으로된 form이 존재 하지 않습니다.\n공통코드 찾기에서 form의 명칭을 정확히 입력해 주시기 바랍니다.");
        }
        var objBiz_cd   = objForm.namedItem(biz_cdName);
        var objBiz_nm   = objForm.namedItem(biz_nmName);
*/
        if(_isValidObject(objCds[searchIndex]))
	        objCds[searchIndex].value    = codeObj.biz_cd;
        if(_isValidObject(objCd_nms[searchIndex]))
	        objCd_nms[searchIndex].value = codeObj.biz_nm;
    }else if(targetType.toUpperCase() == "IBSHEET"){
        var currentRow = getParamValue(params,"currentRow");
        var biz_cdName = getParamValue(params,"biz_cdName");
        var biz_nmName = getParamValue(params,"biz_nmName");
        try{
            if(eval(targetName+ ".SaveNameCol(biz_cdName)") != -1)
	    	    eval(targetName + ".CellValue2(" + currentRow + ", '" + biz_cdName + "') = '" + codeObj.biz_cd + "'");
            if(eval(targetName+ ".SaveNameCol(biz_nmName)") != -1)
	            eval(targetName + ".CellValue2(" + currentRow + ", '" + biz_nmName + "') = '" + codeObj.biz_nm + "'");
        }catch(e){
            alert(e.description
                 + "\nIBSheet Name : " + targetName
                 + "\nCurrent Row  : " + currentRow
                 + "\ncd column name : " + biz_cdName
                 + "\ncd_nm column name : " + biz_nmName
                 );
        }
    }else{
        alert("targetType의 값으로 [" + targetType + "]이 올수 없습니다.\n[FORM/IBSHEET]값 중 하나를 입력하시기 바랍니다.");
    }
}
function setEmpCode(targetType, targetName, codeObj, params){
    if(targetType.toUpperCase() == "FORM"){
        var emp_idName = getParamValue(params,"emp_idName");
        var emp_noName = getParamValue(params,"emp_noName");
        var emp_nmName = getParamValue(params,"emp_nmName");

        var searchIndex = getParamValue(params, "searchIndex");
        var objEmp_ids    = document.getElementsByName(emp_idName);
        var objEmp_nos    = document.getElementsByName(emp_noName);
        var objEmp_nms    = document.getElementsByName(emp_nmName);

/*
        var objForm    = document.forms(targetName);
        if(!objForm){
            alert("[" + targetName + "] 으로된 form이 존재 하지 않습니다.\n공통코드 찾기에서 form의 명칭을 정확히 입력해 주시기 바랍니다.");
        }
        var objEmp_id   = objForm.namedItem(emp_idName);
        var objEmp_no   = objForm.namedItem(emp_noName);
        var objEmp_nm   = objForm.namedItem(emp_nmName);
*/
        if(_isValidObject(objEmp_ids[searchIndex]))
        	objEmp_ids[searchIndex].value = codeObj.emp_id;
        if(_isValidObject(objEmp_nos[searchIndex]))
    	    objEmp_nos[searchIndex].value = codeObj.emp_no;
        if(_isValidObject(objEmp_nms[searchIndex]))
	        objEmp_nms[searchIndex].value = codeObj.emp_nm;
    }else if(targetType.toUpperCase() == "IBSHEET"){
        var currentRow = getParamValue(params,"currentRow");
        var emp_idName = getParamValue(params,"emp_idName");
        var emp_noName = getParamValue(params,"emp_noName");
        var emp_nmName = getParamValue(params,"emp_nmName");
        try{
            if(eval(targetName+ ".SaveNameCol(emp_idName)") != -1)
	    	    eval(targetName + ".CellValue2(" + currentRow + ", '" + emp_idName + "') = '" + codeObj.emp_id + "'");
            if(eval(targetName+ ".SaveNameCol(emp_noName)") != -1)
	    	    eval(targetName + ".CellValue2(" + currentRow + ", '" + emp_noName + "') = '" + codeObj.emp_no + "'");
            if(eval(targetName+ ".SaveNameCol(emp_nmName)") != -1)
	            eval(targetName + ".CellValue2(" + currentRow + ", '" + emp_nmName + "') = '" + codeObj.emp_nm + "'");
        }catch(e){
            alert(e.description
                 + "\nIBSheet Name : " + targetName
                 + "\nCurrent Row  : " + currentRow
                 + "\nemp_id column name : " + emp_idName
                 + "\nemp_no column name : " + emp_noName
                 + "\nemp_nm column name : " + emp_nmName
                 );
        }
    }else{
        alert("targetType의 값으로 [" + targetType + "]이 올수 없습니다.\n[FORM/IBSHEET]값 중 하나를 입력하시기 바랍니다.");
    }
}
function _isValidObject(obj){
	if(obj)return true;
	else return false;
}
/********************************************************************************************************************************
    ### 공통코드 찾기 END
********************************************************************************************************************************/
/********************************************************************************************************************************
    ### URLEncoding/URLDecoding 관련 script start - 2005.12.19
********************************************************************************************************************************/
/*  Function Equivalent to java.net.URLEncoder.encode(String, "UTF-8")
    Copyright (C) 2002, Cresc Corp.
    Version: 1.0
*/

function URLEncoding(str){
    var s0, i, s, u;
    s0 = "";                // encoded str
    for (i = 0; i < str.length; i++){   // scan the source
        s = str.charAt(i);
        u = str.charCodeAt(i);          // get unicode of the char
        if (s == " "){s0 += "+";}       // SP should be converted to "+"
        else {
            if ( u == 0x2a || u == 0x2d || u == 0x2e || u == 0x5f || ((u >= 0x30) && (u <= 0x39)) || ((u >= 0x41) && (u <= 0x5a)) || ((u >= 0x61) && (u <= 0x7a))){       // check for escape
                s0 = s0 + s;            // don't escape
            }
            else {                  // escape
                if ((u >= 0x0) && (u <= 0x7f)){     // single byte format
                    s = "0"+u.toString(16);
                    s0 += "%"+ s.substr(s.length-2);
                }
                else if (u > 0x1fffff){     // quaternary byte format (extended)
                    s0 += "%" + (oxf0 + ((u & 0x1c0000) >> 18)).toString(16);
                    s0 += "%" + (0x80 + ((u & 0x3f000) >> 12)).toString(16);
                    s0 += "%" + (0x80 + ((u & 0xfc0) >> 6)).toString(16);
                    s0 += "%" + (0x80 + (u & 0x3f)).toString(16);
                }
                else if (u > 0x7ff){        // triple byte format
                    s0 += "%" + (0xe0 + ((u & 0xf000) >> 12)).toString(16);
                    s0 += "%" + (0x80 + ((u & 0xfc0) >> 6)).toString(16);
                    s0 += "%" + (0x80 + (u & 0x3f)).toString(16);
                }
                else {                      // double byte format
                    s0 += "%" + (0xc0 + ((u & 0x7c0) >> 6)).toString(16);
                    s0 += "%" + (0x80 + (u & 0x3f)).toString(16);
                }
            }
        }
    }
    return s0;
}


/*  Function Equivalent to java.net.URLDecoder.decode(String, "UTF-8")
    Copyright (C) 2002, Cresc Corp.
    Version: 1.0
*/

function URLDecoding(str){
    var s0, i, j, s, ss, u, n, f;
    s0 = "";                // decoded str
    for (i = 0; i < str.length; i++){   // scan the source str
        s = str.charAt(i);
        if (s == "+"){s0 += " ";}       // "+" should be changed to SP
        else {
            if (s != "%"){s0 += s;}     // add an unescaped char
            else{               // escape sequence decoding
                u = 0;          // unicode of the character
                f = 1;          // escape flag, zero means end of this sequence
                while (true) {
                    ss = "";        // local str to parse as int
                        for (j = 0; j < 2; j++ ) {  // get two maximum hex characters for parse
                            sss = str.charAt(++i);
                            if (((sss >= "0") && (sss <= "9")) || ((sss >= "a") && (sss <= "f"))  || ((sss >= "A") && (sss <= "F"))) {
                                ss += sss;      // if hex, add the hex character
                            } else {--i; break;}    // not a hex char., exit the loop
                        }
                    n = parseInt(ss, 16);           // parse the hex str as byte
                    if (n <= 0x7f){u = n; f = 1;}   // single byte format
                    if ((n >= 0xc0) && (n <= 0xdf)){u = n & 0x1f; f = 2;}   // double byte format
                    if ((n >= 0xe0) && (n <= 0xef)){u = n & 0x0f; f = 3;}   // triple byte format
                    if ((n >= 0xf0) && (n <= 0xf7)){u = n & 0x07; f = 4;}   // quaternary byte format (extended)
                    if ((n >= 0x80) && (n <= 0xbf)){u = (u << 6) + (n & 0x3f); --f;}         // not a first, shift and add 6 lower bits
                    if (f <= 1){break;}         // end of the utf byte sequence
                    if (str.charAt(i + 1) == "%"){ i++ ;}                   // test for the next shift byte
                    else {break;}                   // abnormal, format error
                }
            s0 += String.fromCharCode(u);           // add the escaped character
            }
        }
    }
    return s0;
}
	/************************************************************
   // 사원가족정보 세팅 ==> 삭제대상
    ************************************************************/
    var fam = null;

	function setFamInfo(flag,phm_family_id,emp_id,fam_ctz_no,fam_nm1,fam_nm2,fam_rel_cd,sch_grd_cd,sch_nm,birth_ymd,solar_type,sex,edu_chl_yn,spouse_yn,
	                    support_yn,hanicap_yn,aged_yn,together_yn,rgi_yn,foreign_cd,h_grd_cd,job_type,offi_nm,pos_nm,del_date,tel_no,note
	) {
		this.flag          = flag                   //
        this.phm_family_id = phm_family_id          // 사원가족ID
        this.emp_id        = emp_id                 // 사원id
        this.fam_ctz_no    = fam_ctz_no             // 가족주민번호
        this.fam_nm        = fam_nm1+fam_nm2        // 가족이름
        this.fam_nm1       = fam_nm1                // 가족성명(성)
        this.fam_nm2       = fam_nm2                // 가족성명(이름)
        this.fam_rel_cd    = fam_rel_cd             // 가족관계코드
        this.sch_grd_cd    = sch_grd_cd             // 학력코드
        this.sch_nm        = sch_nm                 // 학교명
        this.birth_ymd     = birth_ymd              // 생년월일
        this.solar_type    = solar_type             // 음양구분(1:양, 2:음)
        this.sex           = sex                    // 성별(1:남, 2:여)
        this.edu_chl_yn    = edu_chl_yn             // 자녀양육
        this.spouse_yn     = spouse_yn              // 배우자유무
        this.support_yn    = support_yn             // 부양자여부
        this.hanicap_yn    = hanicap_yn             // 장애자여부
        this.aged_yn       = aged_yn                // 경로우대여부
        this.together_yn   = together_yn            // 동거여부
        this.rgi_yn        = rgi_yn                 // 주민등록등재여부
        this.foreign_cd    = foreign_cd             // 외국인구분
        this.h_grd_cd      = h_grd_cd               // 장애등급코드
        this.job_type      = job_type               // 직업유형
        this.offi_nm       = offi_nm                // 직장명
        this.pos_nm        = pos_nm                 // 직위명
        this.del_date      = del_date               // 삭제일자
        this.tel_no        = tel_no                 // 전화번호
        this.note          = note                   // 비고
	}

	function setFam(flag,phm_family_id,emp_id,fam_ctz_no,fam_nm1,fam_nm2,fam_rel_cd,sch_grd_cd,sch_nm,birth_ymd,solar_type,sex,edu_chl_yn,spouse_yn,
	                    support_yn,hanicap_yn,aged_yn,together_yn,rgi_yn,foreign_cd,h_grd_cd,job_type,offi_nm,pos_nm,del_date,tel_no,note) {
		fam = new setFamInfo(flag,phm_family_id,emp_id,fam_ctz_no,fam_nm1,fam_nm2,fam_rel_cd,sch_grd_cd,sch_nm,birth_ymd,solar_type,sex,edu_chl_yn,spouse_yn,
	                    support_yn,hanicap_yn,aged_yn,together_yn,rgi_yn,foreign_cd,h_grd_cd,job_type,offi_nm,pos_nm,del_date,tel_no,note);
	}
