	// 클래스 > 월의 마지막 일자를 지정한다
	function month_array(m0, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11)
	{
		this[0] = m0;
		this[1] = m1;
		this[2] = m2;
		this[3] = m3;
		this[4] = m4;
		this[5] = m5;
		this[6] = m6;
		this[7] = m7;
		this[8] = m8;
		this[9] = m9;
		this[10] = m10;
		this[11] = m11;
	} 

	// 날짜 형식인가를 본다 isDate에 의해서 사용된다
	function isDD(yyyy, mm, value) 
	{  
		var result = false; 
		var monthDD = new month_array(31,28,31,30,31,30,31,31,30,31,30,31); 
		var im = eval(mm) - 1; 
		if(value.length != 2)   return false; 
		if(isNaN(parseInt(value, 10)))    return false; 
		if(((yyyy % 4 == 0) && (yyyy % 100 != 0)) || (yyyy % 400 == 0)) 
		{ 
			monthDD[1] = 29; 
		} 
		var dd = eval(value); 
		if((0 < dd) && (dd <= monthDD[im]))     result = true; 
		return result; 
	} 

	// 2자리 월형식인가 본다 isDate에 의해서 사용된다
	function isMM(value) 
	{ 
			return((value.length > 0) && (!isNaN(parseInt(value, 10))) && (0 < eval(value)) && (eval(value) < 13)); 
	} 

	// 4자리 년형식인가 본다
	function isYYYY(value) 
	{ 
		return((value.length == 4) && (!isNaN(parseInt(value, 10))) && (value != "0000")); 
	} 

	// 날짜 형식인가를 묻는다
	// input "YYYYMM"
	function isDate(value) 
	{ 
		value = value.replace("-", "")
		value = value.replace(".", "")
		if (value.length != 8) return false;
			var     year  = value.substring(0,4); 
			var     month = value.substring(4,6); 
			var     day   = value.substring(6,8); 
			return( isYYYY(year) && isMM(month) && isDD(year,month,day) );  
	} 

	/*****************************************************************
     * 함수명 : isValidDate
     * 기   능 : 날짜형식으로 지정되었는지를 검사
    ******************************************************************/
	function isValidDate(obj, iDate)
	{
		//alert(iDate);
		var str = iDate ? iDate : obj.value;
		if(str=='') return;
		var isDateValue = false;

		// 정규식을 이용. 1차적으로 날짜형식 여부를 판단.
		// YYYYMMDD
		var pattern = /^[1|2][0-9]{3}([0][0-9]|[1][0-2])([0-2][0-9]|[3][0-1])/;
		if(pattern.test(str)){
			isDateValue = true;
			str = str.substr(0, 4)+""+str.substr(4,2)+""+str.substr(6,2);
			//alert("YYYYMMDD"+str);
		} else {
			// YYYY.MM.DD
			var pattern = /^[1|2][0-9]{3}[\.]([0][0-9]|[1][0-2])[\.]([0-2][0-9]|[3][0-1])/;
			if(pattern.test(str)){
				isDateValue = true;
				str = str.substr(0, 4)+""+str.substr(5,2)+""+str.substr(8,2)
				//alert("YYYY.MM.DD"+str);
			} else {
				// YYYY-MM-DD
				var pattern = /^[1|2][0-9]{3}[\-]([0][0-9]|[1][0-2])[\-]([0-2][0-9]|[3][0-1])/;
				if(pattern.test(str)){
					isDateValue = true;
					str = str.substr(0, 4)+""+str.substr(5,2)+""+str.substr(8,2)
					//alert("YYYY.MM.DD"+str);
				}
			}
		}

		// 정규식체크 통과시. 2차적으로 정상적인 년/월/일이 입력되었는지 유효성 판단.
		isDateValue = isDateValue ? isDate(str) : false;

		if(!isDateValue)
		{  
			alert("유효한 날짜가 아닙니다. 날짜를 다시 입력해 주십시요.");
			obj.value = '';
			obj.focus();
			return false;
		}
		else
		{
			//alert(str);
			convertDataString(obj, str);
		}
		return true;
	}
	

	/*****************************************************************
     * 함수명 : addDate
     * 기   능 : 파라미터로 받은 날자에 년,월,일을 가감하여 반환한다.
    ******************************************************************/
	function addDate(iDate, addType, addValue)
	{
		if(!addValue||addValue==''||addValue==0) return iDate;

		iDate = iDate.replace(/\./g,"")

		var newYear = parseInt(iDate.substring(0,4))+parseInt(addType.toUpperCase()=='Y' ? addValue : 0);
		var newMonth = parseInt(iDate.substring(4,6))-1+parseInt(addType.toUpperCase()=='M' ? addValue : 0);
		var newDate = parseInt(iDate.substring(6))+parseInt(addType.toUpperCase()=='D' ? addValue : 0);
		var oDate = new Date(newYear, newMonth, newDate);

		var tDate = '';
		var realMonth = parseInt(oDate.getMonth()) + 1;
		tDate+=oDate.getFullYear();
		tDate+=(realMonth<10) ? '0'+realMonth : realMonth;
		tDate+=(oDate.getDate()<10) ? '0'+parseInt(oDate.getDate()) : parseInt(oDate.getDate());

		return tDate;
	}

	/*****************************************************************
     * 함수명 : replaceAll
     * 기   능 : 문자대체  
    ******************************************************************/
    String.prototype.replaceAll = function(targetStr,replaceStr)
    { 
	    thisStr = this.toString(); 
	    var idx = thisStr.indexOf( targetStr ); 
	    while ( idx > -1 ) 
	    { 
	        thisStr = thisStr.replace( targetStr, replaceStr ); 
	        idx = thisStr.indexOf( targetStr ); 
	    } 
	    return thisStr; 
	} 
	
    /**********************************************
     * 함수명 : nextVal
     * 기    능 : 다음 폼으로 자동 이동 
    ***********************************************/
    function nextVal(ths,nxt,flag)
    {
        if(ths.value.length == flag)
        {
            nxt.focus();
            return;
        }
    } 
    
    /**********************************************
     * 함수명 : emptyValueID
     * 기   능 : 사업자 등록번호를 리셋한다.
     **********************************************/
    function emptyValueID()
    {
        var t = document.registForm;
        t.business_number.value = '';
    }
    
    /**********************************************
     * 함수명 : isLength()
     * 기   능 : 문자열의 길이를 체크한다.
    ***********************************************/
    function isLength(f,len,name)
    {
        if(f.value.length>len)
        {
            alert(name+'의 길이는 '+len+'을 넘을수 없습니다.');
            f.value=f.value.substring(0,len);
            f.focus();
            return false;
        }
         return true;
    }

    /**********************************************
     * 함수명 : isNull
     * 기   능 : 널값을 체크
     * 기능추가 : 0 허용여부 추가 - Mong
    ***********************************************/
    //공백 폼 체크
    function isNull(field, name, denialZero) 
    { 
    	if(!denialZero) denialZero = false;

        if (field.value.trim() == '') 
        { 
            alert(name + '란을 입력해 주세요.');
            if(field) field.focus(); 
            return false; 
        }
        if (denialZero && ("0" == field.value.trim() || 0 == field.value.trim())){
            alert(name + '란은 0을 입력 할 수 없습니다.');
            if(field) field.focus(); 
            return false; 
        }
        return true; 
    }
    
    
    /**********************************************
     * 함수명 : isNullFocus
     * 기   능 : 널값을 체크(포커스 제거)
    ***********************************************/
    //공백 폼 체크
    function isNullNotFocus(field, name) 
    { 
        if (field.value.trim() == '') 
        { 
            alert(name + '란을 입력해 주세요.');
            //if(field) field.focus(); 
            return false; 
        } 
        return true; 
    }
    
    /***************************************************
     * 함수명 : isEqualParameter(field1,field2)
     * 기   능 : 두 필드의 값이 동일한지 검사
    ****************************************************/ 
    function isEqualParameter(field1,field2,name)
    {
        if(field1.value != field2.value)
        {
            alert(name+'의 값이 일치하지 않습니다.');
            if(field1) field1.focus();
            return false;
        }
        return true;
    }
    
    /**********************************************
     * 함수명 : justNum
     * 기    능 : 문자열이 숫자로만 구성되었는지 체크
    ***********************************************/
    function justNum(field,name) 
    { 
        var valid = '0123456789';
        var temp; 
    
        for (var i=0; i<field.value.length; i++) 
        { 
            temp = '' + field.value.substring(i, i+1); 
            if (valid.indexOf(temp) == "-1") 
            {
                alert(name + '란은 숫자로만 입력해 주세요.'); 
                field.value=field.value.substring(0,(field.value.length-1));
                //field.value='';
                field.focus();
                return false; 
            }
        } 
        return true; 
    }
    
    /**********************************************
     * 함수명 : justNumComma
     * 기    능 : 문자열이 숫자로만 구성되었는지 체크
    ***********************************************/
    function justNumComma(field,name) 
    { 
        var valid = '0123456789.';
        var temp; 
    
        for (var i=0; i<field.value.length; i++) 
        { 
            temp = '' + field.value.substring(i, i+1); 
            if (valid.indexOf(temp) == "-1") 
            {
                alert(name + '란의 형식은 소숫점을 포함한 숫자입니다.'); 
                field.value=field.value.substring(0,(field.value.length-1));
                //field.value='';
                field.focus();
                return false; 
            }
        } 
        return true; 
    }
    
    /**********************************************
     * 함수명 : isEngNum
     * 기    능 : 문자열이 영문과 숫자로만 구성되었는지 체크
    ***********************************************/
    function isEngNum(field,name) 
    { 
        var valid = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_';
        var temp; 
        //alert('연문자와숫자구분');
    
        for (var i=0; i<field.value.length; i++) 
        { 
            temp = '' + field.value.substring(i, i+1); 
            if (valid.indexOf(temp) == "-1") 
            {
                alert(name + '란은 영문자와 숫자로만 입력해 주세요.'); 
               // field.value=field.value.substring(0,(field.value.length-1));
                field.value=field.value;;
                field.focus();
                return false; 
            }
        } 
        return true; 
    }

     
    /*****************************************************************
     * 함수명 : trim
     * 기   능 : 공백제거  
    ******************************************************************/
    String.prototype.trim = function()
    {
        return this.replace(/(^\s*)|(\s*$)/gi, "");
    }

    /************************************************
     * 함수명 : isSelectBox
     * 기   능 : 셀렉트박스 공백 체크
    *************************************************/
    function isSelectBox(f,n)
    {
        if(f.options[f.selectedIndex].value=='' || f.selectedIndex<0) 
        {
            alert( n + '란을 선택해 주세요.'); 
            f.focus();
            return false;
        }
        else return true;
    }

    /************************************************
     * 함수명 : isChecked
     * 기   능 : 라디오/체크버튼의 선택여부 체크
    *************************************************/
    function isChecked(eleName,n)
    {
    	var ele = document.getElementsByName(eleName);
    	var isChked = false;

		// 대상이 존재하지 않을경우.
    	if(ele.length==0)
		{
			alert("대상이 올바르지 않습니다.");
			return false;
		}

    	for(var i=0;i<ele.length;i++)
    	{
			if(ele[i].checked)
			{
				isChked = true;
				break;
			}
		}
		if(!isChked)
		{
			alert( n + '란을 선택해 주세요.'); 
			ele[0].focus();
			return false;
		}

		return true;
    }

    /*****************************************
     * 함수명 : isValidEmail
     * 기   능 : E-mail검사하는 스크립트
    ******************************************/
    function isValidEmail(f,n, value)
    {
    	var strEmail = (value) ? value : f.value;

        if(isEmail(strEmail)==false) 
        {
            alert( n + '란을 바르게 입력해 주세요.'); 
            //f.value='';
            f.focus();
            return false;
        }
        else return true;

    }


    /*******************************************
     * 함수명 : isEmail
     * 기   능 : 이메일 정규식 검사
    ********************************************/
    function isEmail( email )
    {

		// 메일 포멧이면 true 아니면 false를 반환
		// 풀패턴 검색시 느려질 수 있는 문제의 해결을 위하여 4개의 정규식으로 나누어 비교한다.
		var emailEx1 = /[^@]+@[A-Za-z0-9_\-]+\.[A-Za-z]+/;
		var emailEx2 = /[^@]+@[A-Za-z0-9_\-]+\.[A-Za-z0-9_\-]+\.[A-Za-z]+/;
		var emailEx3 = /[^@]+@[A-Za-z0-9_\-]+\.[A-Za-z0-9_\-]+\.[A-Za-z0-9_\-]+\.[A-Za-z]+/;
		var emailEx4 = /[^@]+@[A-Za-z0-9_\-]+\.[A-Za-z0-9_\-]+\.[A-Za-z0-9_\-]+\.[A-Za-z0-9_\-]+\.[A-Za-z]+/;
		if(!emailEx1.test(email)){
			if(!emailEx2.test(email))
				if(!emailEx3.test(email))
					if(!emailEx4.test(email))
						return false;
		}
		else{
			return true;
		}

/*
        var fmt3 = /^[-!#$%&\'*+\\./0-9=?A-Z^_a-z{|}~]+@[-!#$%&\'*+\\/0-9=?A-Z^_a-z{|}~]+\.[-!#$%&\'*+\\./0-9=?A-Z^_a-z{|}~]+$/;
        if(!fmt3.test(email)) return false;
        else return true;   
*/
    }

    /*****************************************
     * 함수명 : BizCheck
     * 기   능 : 사업자 등록번호 체크
     *****************************************/
    function BizCheck(obj1, obj2, obj3)
    {
        biz_value = new Array(10);
        if (isBizInteger(obj1.value,3) == false)
        {
            obj1.focus();
            obj1.select();
            return false;
        }
        if (isBizInteger(obj2.value,2) == false) 
        {
            obj2.focus();
            obj2.select();
            return false;
        }
        if (isBizInteger(obj3.value,5) == false) 
        {
            obj3.focus();
            obj3.select();
            return false;
        }
        var objstring = obj1.value +"-"+ obj2.value +"-"+ obj3.value;
        var li_temp, li_lastid;
        if ( objstring.length == 12 ) 
        {
            biz_value[0] = ( parseFloat(objstring.substring(0 ,1)) * 1 ) % 10;
            biz_value[1] = ( parseFloat(objstring.substring(1 ,2)) * 3 ) % 10;
            biz_value[2] = ( parseFloat(objstring.substring(2 ,3)) * 7 ) % 10;
            biz_value[3] = ( parseFloat(objstring.substring(4 ,5)) * 1 ) % 10;
            biz_value[4] = ( parseFloat(objstring.substring(5 ,6)) * 3 ) % 10;
            biz_value[5] = ( parseFloat(objstring.substring(7 ,8)) * 7 ) % 10;
            biz_value[6] = ( parseFloat(objstring.substring(8 ,9)) * 1 ) % 10;
            biz_value[7] = ( parseFloat(objstring.substring(9,10)) * 3 ) % 10;
            li_temp = parseFloat(objstring.substring(10,11)) * 5 + "0";
            biz_value[8] = parseFloat(li_temp.substring(0,1)) + parseFloat(li_temp.substring(1,2));
            biz_value[9] = parseFloat(objstring.substring(11,12));
            li_lastid = (10 - ( ( biz_value[0] + biz_value[1] + biz_value[2] + biz_value[3] + biz_value[4] + biz_value[5] + biz_value[6] + biz_value[7] + biz_value[8] ) % 10 ) ) % 10;
            if (biz_value[9] != li_lastid) 
            {
                obj1.focus();
                obj1.select();
                return false;
            }
            else
            {
                return true;
            }
        }
        else 
        {
            obj1.focus();
            obj1.select();
            return false;
        }
    }

    /*********************************************
     * 함수명 : CheckBizNo()
     * 기   능 : 사업자 등록번호 체크
     * 변   수 : flag_01(3자리)
                    flag_02(2자리)
                    flag_03(7자리)
     **********************************************/
    function CheckBizNo(flag_01,flag_02,flag_03)
    { 
        if (BizCheck(flag_01,flag_02,flag_03) == false) 
        {
            alert( "올바른 사업자 등록번호가 아닙니다.\n다시 확인해 주시기 바랍니다." );
            //flag_01.value='';
            //flag_02.value='';
            //flag_03.value='';
            //flag_01.focus();
            return false;
        } else {
            return true;
        }
    }

    /******************************************
     * 함수명 : isBizInteger
     * 기   능 : 사업자 등록번호 구성 체크
     ******************************************/
    function isBizInteger(st,maxLength)
    {
        if (st.length == maxLength) 
        {
              for (j=0; j < maxLength; j++)
              {    
                if (((st.substring(j, j+1) < "0") || (st.substring(j, j+1) > "9")))
                    return false;
              }
        }
        else 
        {
            return false;
        }
        return true;
    }


    /*******************************************************
     * 함수명 : writeTelNo()
     * 기   능 : 지역번호를 세팅
    ********************************************************/
    function writeTelNo(fn)
    {
        var i = 0;
        var j = 0;
        fn.length = 17;
        fn.options[++i].text = '서울';
        fn.options[++j].value ='02';
        fn.options[++i].text = '부산';
        fn.options[++j].value ='051';
        fn.options[++i].text = '대구';
        fn.options[++j].value ='053';
        fn.options[++i].text = '인천';
        fn.options[++j].value ='032';
        fn.options[++i].text = '대전';
        fn.options[++j].value ='042';
        fn.options[++i].text = '광주';
        fn.options[++j].value ='062';
        fn.options[++i].text = '울산';
        fn.options[++j].value ='052';
        fn.options[++i].text = '경기';
        fn.options[++j].value ='031';
        fn.options[++i].text = '강원';
        fn.options[++j].value ='033';
        fn.options[++i].text = '경남';
        fn.options[++j].value ='055';
        fn.options[++i].text = '경북';
        fn.options[++j].value ='054';
        fn.options[++i].text = '전남';
        fn.options[++j].value ='061';
        fn.options[++i].text = '전북';
        fn.options[++j].value ='063';
        fn.options[++i].text = '충남';
        fn.options[++j].value ='041';
        fn.options[++i].text = '충북';
        fn.options[++j].value ='043';
        fn.options[++i].text = '제주';
        fn.options[++j].value ='064';
     }
     
     /****************************************************
      * 함수명 : writeHpNo()
      * 기   능 : 휴대전화 번호를 설정하는 기능
     *****************************************************/
     function writeHpNo()
     {
        var t = document.jointForm;
        var i = 0;
        var j = 0;
        t.hp_no1.length = 7;
        t.hp_no1.options[++i].text = '010';
        t.hp_no1.options[++j].value = '010';
        t.hp_no1.options[++i].text = '011';
        t.hp_no1.options[++j].value = '011';
        t.hp_no1.options[++i].text = '016';
        t.hp_no1.options[++j].value = '016';
        t.hp_no1.options[++i].text = '017';
        t.hp_no1.options[++j].value = '017';
        t.hp_no1.options[++i].text = '018';
        t.hp_no1.options[++j].value = '018';
        t.hp_no1.options[++i].text = '019';
        t.hp_no1.options[++j].value = '019';
     }
     
     /*********************************************************
      * 함수명 : fileDownLoad()
      * @param tblInfo 테이블 정보
      * @param strKey  기본 키정보
      * @param strSubKey 기본키정보
      * @param seq 		파일 SEQUENCE
      * 기   능 : 파일다운로드
     **********************************************************/
     function fileDownLoad(tblInfo, strKey, strSubKey, seq)
     {
     	var base = "/common/FileDownload.jsp";
     	var params = "fileGbn="+tblInfo+"&strKey="+strKey+"&strSubKey="+strSubKey+"&seq="+seq;
     	var url = base+"?"+params;
     	CommonFunc.goPageURL(url);
     }


     /*********************************************************
      * 함수명 : selfDiagFileDownLoad()
      * 기   능 : 자가진단 파일다운로드
     **********************************************************/
     function selfDiagFileDownLoad(strPjtCode, strPjtCodePart, strQuart, strSme_userid)
     {
     	var base = "/common/FileDownloadForSelfDiagnosis.jsp";
     	var params = "";
     	params += "?strPjtCode="+strPjtCode;
     	params += "&strPjtCodePart="+strPjtCodePart;
     	params += "&strQuart="+strQuart;
     	params += "&strSme_userid="+strSme_userid;

     	var url = base+params;

     	CommonFunc.goPageURL(url);
     }


     /************************************************
     * 함수명 : iframeCheck
     * 기   능 : 아이프레임 크기 자동조절
    *************************************************/
    function iframeCheck(framename) 
	{
		eval("var PF = "+framename+".document.body");
		var CF = document.all[framename];
		CF.style.height = PF.scrollHeight + (PF.offsetHeight - PF.clientHeight);
		CF.style.width = PF.scrollWidth + (PF.offsetWidth - PF.clientWidth);
	}
  
	/**********************************************
	 * 함수명 : alert_overmax
	 * 기 능 : 글자 수 넘으면 경고창 뜨는 함수
	 * 작 성 자 : suerte
	/***********************************************/
	function alert_overmax(obj,maxlength) 
	{ 
	    var str = obj.value.length; 
	    var con = obj.value; 
	    if (str >= maxlength) 
	    { 
	        alert('최대 '+maxlength+'글자 까지만 보낼 수 있습니다.'); 
	        obj.value=con.substring(0,maxlength); 
	        obj.focus(); 
	    } 
	}
	
	/**********************************************
	 * 함수명 : strCalculateByte
	 * 기 능 : 글자 수 넘으면 경고창 뜨는 함수
	/***********************************************/
	function strCalculateByte(obj, length)
	{
		var str = obj.value; 
        var l = 0; 
        for (var i=0; i<str.length; i++)
        {
			l += (str.charCodeAt(i) > 128) ? 2 : 1; 
        	if(l>length)
        	{
        		alert('최대 '+ length +'Byte까지만 입력이 가능합니다.');
        		obj.value = str.substring(0, i);
        		//obj.focus();
        		return false;
        	}
        }
	}
	
	
	/***********************************************************
	 * Function Name : chkBoxAll
	 * Details : 체크박스 전체선택 선택해제
	 ***********************************************************/
	function chkBoxAll(bool,name) 
	{ 
    	var obj = document.getElementsByName(name); 
    	for(var i=0; i<obj.length; i++) {
    		if(!obj[i].disabled) {
    			obj[i].checked = bool;
    		}
    	}
	} 
    
    
    /***********************************************************
	 * Function Name : checkedCnt
	 * Details : 체크박스에 선택한 갯수를 리턴한다.
	 ***********************************************************/
	function checkedCnt(name)
	{
		var obj = document.getElementsByName(name);
		var cnt = 0;
		for(var i=0;i<obj.length;i++) 
		{
			if(obj[i].disabled == false && obj[i].checked==true) cnt++;
		}
		return cnt;
	}
	
	/***********************************************************
	 * Function Name : checkedArrayValue
	 * Details : 체크박스에 선택한 값들을 리턴한다.
	 ***********************************************************/
	function checkedArrayValue(name)
	{
		var obj = document.getElementsByName(name);
		var val = new Array();
		var j=0;
		for(var i=0;i<obj.length;i++) 
		{
			if(obj[i].disabled == false && obj[i].checked==true) val[j++]=obj[i].value;
		}
		//alert(val);
		return val;
	}
	
	/***********************************************************
	 * Function Name : checkedOnlyValue
	 * Details : 체크박스에 선택한 값들을 리턴한다.
	 ***********************************************************/
	function checkedOnlyValue(name)
	{
		var obj = document.getElementsByName(name);
		var val = new Array();
		var j=0;
		for(var i=0;i<obj.length;i++) 
		{
			if(obj[i].disabled == false && obj[i].checked==true) val[j++]=obj[i].value;
		}
		//alert(val);
		return val;
	}
	
	/***********************************************************
	 * Function Name : disabledCheckBoxCnt
	 * Details : 액션을 실행할수 없는 체크박스 갯수를  리턴한다.
	 ***********************************************************/
	function disabledCheckBoxCnt(chkname, valname, flag)
	{
		//alert('aaa');
		var cnt = 0;
		var obj = document.getElementsByName(chkname);
		var comp = document.getElementsByName(valname);
		//alert(obj.length);
		for(var i=0;i<obj.length;i++)
		{
			//alert(comp[i].value+"/"+flag);
			if(obj[i].checked==true && comp[i].value == flag) cnt++;
		}
		return cnt;
	}
	
	/***********************************************************
	 * Function Name : disabledCheckbox
	 * Details : 액션을 실행할수 없게 체크박스를 막는다.
	 ***********************************************************/
	function disabledCheckbox(chkname, valname, flag)
	{
		var cnt = 0;
		var obj = document.getElementsByName(chkname);
		var comp = document.getElementsByName(valname);
		for(var i=0;i<obj.length;i++)
		{
			if(obj[i].checked==true && comp[i].value == flag) 
			{
				//alert(obj[i]+"/"+obj[i].value)
				obj[i].disabled = true;
			}
		}
	}
	
	/***********************************************************
	 * Function Name : disabledCheckbox
	 * Details : 액션을 실행할수 없게 체크박스를 막는다.
	 ***********************************************************/
	function enabledCheckbox(chkname)
	{
		var cnt = 0;
		var obj = document.getElementsByName(chkname);
		for(var i=0;i<obj.length;i++)
		{
			obj[i].disabled = false;
		}
	}
	
	
	/**********************************************
	 * 함수명 : isValidfileExt
	 * 기   능 : 파일의 확장자를 체크하여 파일 업로드를 막는다.
	 * 작 성 자 : suerte
	/***********************************************/
	function isValidfileExt(filename)
	{
		var ext = filename.substr(filename.lastIndexOf(".")+1);
		var noValid = ['jsp','php','asp','exe','sh','bat','dll'];
		for(var i=0; i<noValid.length;i++)
		{
			if(ext.toLowerCase()==noValid[i])
			{
				alert('입력하신 파일은 업로드가 불가능 합니다.');
				return false;
			}
		}
		return true;
	}
	
	/**********************************************
	 * 함수명 : isValidfileExtImg
	 * 기   능 : 파일의 확장자를 체크하여 이미지 파일의 업로드만 허용한다.
	 * 작 성 자 : suerte
	/***********************************************/
	function isValidfileExtImg(filename)
	{
		var ext = filename.substr(filename.lastIndexOf(".")+1);
		var noValid = ['jpg','bmp','gif','png'];
		var cnt = 0;
		for(var i=0; i<noValid.length;i++)
		{
			if(ext.toLowerCase()== noValid[i]) cnt++;
		}
		//일치하는 형식이 없으면
		if(cnt<1)
		{
			alert('이미지 파일만 업로드가 가능합니다.');
			return false;
		}
		return true;
	}
	
	/**********************************************
	 * 함수명 : addRowFileType
	 * 기   능 : 파일타입의 행을 추가한다..
	 * 작 성 자 : lioneyes
	/***********************************************/
	function addRowFileType(strParam) 
	{ 
	    var oRow = dynamicFile.insertRow(); 
	    oRow.onmouseover=function(){dynamicFile.clickedRowIndex=this.rowIndex}; 
	    var oCell = oRow.insertCell(); 
	    var idxNum = dynamicFile.rows.length;
	    oCell.innerHTML = "<input type='file' name='strFileName"+idxNum+"' style='width:400; height:20' onKeyDown='return false'> &nbsp; <a href='javascript:delRow()'><span class='botton_box_20'>삭제(-)</span></a>"; 
  	} 
  
  	/**********************************************
	 * 함수명 : delRow
	 * 기   능 : 동적으로 생성된 행을 삭제한다..
	 * 작 성 자 : lioneyes
	/***********************************************/
	function delRow() 
  	{ 
    	dynamicFile.deleteRow(dynamicFile.clickedRowIndex); 
  	} 



  	/**********************************************
	 * 함수명 : isValidBizNo
	 * 기   능 : 사업자등록번호의 유효성을 체크한다.<br>
	 * 작 성 자 : Mong
	/***********************************************/
	function isValidBizNo(ele, value) { 
		
		var chk = false;

		var pattern = /^([0-9]{3})-?([0-9]{2})-?([0-9]{5})$/; 
		var num = value ? value : ele.value;

		var li_temp = null;
		var cKeyNum = null;

		var i = null;

		var cVal = 0; 

		var step1, step2, step3, step4, step5, step6, step7;
		var chkRule = "137137135";

		if (pattern.test(num))
		{
			num = RegExp.$1 + RegExp.$2 + RegExp.$3;

			step1 = 0; // ì´ê¸°í

			for (var i=0; i<7; i++)
			{
				step1 = step1 + (num.substring(i, i+1) *chkRule.substring(i, i+1));
			}

			step2 = step1 % 10;
			step3 = (num.substring(7, 8) * chkRule.substring(7, 8))% 10;
			step4 = num.substring(8, 9) * chkRule.substring(8, 9);
			step5 = Math.round(step4 / 10 - 0.5);
			step6 = step4 - (step5 * 10);
			step7 = (10 - ((step2 + step3 + step5 + step6) % 10)) % 10;

			chk = num.substring(9, 10) == step7; 

		}

		if (!chk)
		{
			alert('사업자등록번호 형식이 올바르지 않습니다.');
			if(ele) ele.focus();
		}

		return chk;
	}





  	/**********************************************
	 * 함수명 : isValidJumin
	 * 기   능 : 주민등록번호의 유효성을 체크한다.<br> 
	 * 작 성 자 : Mong
	/***********************************************/
	function isValidJumin(ele, value) {
		var pattern = /^([0-9]{6})-?([1-4]{1})([0-9]{6})$/;
		var chk = false;
		var num = value ? value : ele.value;
		var sum = 0;
		var last = 0;
		var bases = "234567892345";
		var mod = 0;

		if (pattern.test(num))
		{
			num = RegExp.$1 + RegExp.$2 + RegExp.$3;

			last = num.charCodeAt(12) - 0x30;

			for (var i=0; i<12; i++) {
				sum += (num.charCodeAt(i) - 0x30) * (bases.charCodeAt(i) - 0x30);
			}

			mod = sum % 11;

			chk = ((11 - mod) % 10 == last);
		}

		if (!chk)
		{
			alert('주민등록번호 형식이 올바르지 않습니다.');
			if(ele) ele.focus();
		}

		return chk;
		
	}



  	/**********************************************
	 * 함수명 : isValidForeignNum
	 * 기   능 : 외국인등록번호의 유효성을 체크한다.<br> 
	 * 작 성 자 : Mong
	/***********************************************/
	function isValidForeignNum(ele, value) {
		var pattern = /^([0-9]{6})-?([5-9]{1})([0-9]{6})$/;
		var chk = false;
		var num = value ? value : ele.value;
		var sum = 0;
	    var odd = 0;
		var i = 0;

		if (pattern.test(num))
		{
			num = RegExp.$1 + RegExp.$2 + RegExp.$3;
    
		    buf = new Array(13);
		    for (i = 0; i < 13; i++) buf[i] = parseInt(num.charAt(i));
		
		    odd = buf[7]*10 + buf[8];

			if(odd%2 == 0)
			{
			    multipliers = [2,3,4,5,6,7,8,9,2,3,4,5];
			    for (i = 0, sum = 0; i < 12; i++) sum += (buf[i] *= multipliers[i]);
	
			    sum=11-(sum%11);
			    
			    if (sum>=10) sum-=10;
			
			    sum += 2;
	
			    if (sum>=10) sum-=10;
			
			    chk = ( sum == buf[12]);

			}

		}

		if (!chk)
		{
			alert('외국인등록번호 형식이 올바르지 않습니다.');
			if(ele) ele.focus();
		}

		return chk;
	}


  	/**********************************************
	 * 함수명 : isValidPhoneBoth
	 * 기   능 : 전화번호/핸드폰 형식인지 확인한다.(일반전화, 핸드폰)
	 * 작 성 자 : Mong
	/***********************************************/
	function isValidPhoneBoth(ele, value) {
		var strPhoneNum = (value) ? value : ele.value;
		var pattern = /^([0]{1}[0-9]{1,3})-?([1-9]{1}[0-9]{2,3})-?([0-9]{4})$/;
		if (pattern.test(strPhoneNum)) 
		{
			return true;
		}
		else{
			alert('전화번호 형식이 올바르지 않습니다.');
			ele.focus();
			return false;
		}
	}

  	/**********************************************
	 * 함수명 : isValidPhone
	 * 기   능 : 전화번호 형식인지 확인한다.(일반전화)
	 * 작 성 자 : Mong
	/***********************************************/
	function isValidPhone(ele, value) {
		var strPhoneNum = (value) ? value : ele.value;
		var pattern = /^((02)|([0]{1}[3-6]{1}[1-5]{1})|([0]{1}[5-8]{1}[0]{1}[5]{0,1}))-?([1-9]{1}[0-9]{2,3})-?([0-9]{4})$/;
		if (pattern.test(strPhoneNum)) 
		{
			return true;
		}
		else{
			alert('전화번호 형식이 올바르지 않습니다.');
			ele.focus();
			return false;
		}
	}

  	/**********************************************
	 * 함수명 : isValidMobile
	 * 기   능 : 핸드폰번호 형식인지 확인한다.(핸드폰)
	 * 작 성 자 : Mong
	/***********************************************/
	function isValidMobile(ele, value) {
		var strMobileNum = (value) ? value : ele.value;
		var pattern = /^(01)(0|1|3|6|7|8|9)-?([1-9]{1}[0-9]{2,3})-?([0-9]{4})$/;
		if (pattern.test(strMobileNum)) 
		{
			return true;
		}
		else{
			alert('핸드폰번호 형식이 올바르지 않습니다.');
			ele.focus();
			return false;
		}
	}

  	/**********************************************
	 * 함수명 : isValidAlphaNumericOnly
	 * 기   능 : 영 대소문자와 숫자만으로 입력되었는지 확인한다.
	 * 작 성 자 : Mong
	/***********************************************/
	function isValidAlphaNumericOnly(ele){
		//var pattern = /[a-zA-Z][a-zA-Z0-9]+$/;
		var pattern = /^[a-zA-Z0-9]+$/;
		return (pattern.test(ele.value)) ? true : false;
	}

  	/**********************************************
	 * 함수명 : isValidAlphaOnly
	 * 기   능 : 영 대소문자만으로 입력되었는지 확인한다.
	 * 작 성 자 : Mong
	/***********************************************/
	function isValidAlphaOnly(ele) {
		var pattern = /^[a-zA-Z]+$/;
		return (pattern.test(ele.value)) ? true : false;
	}

  	/**********************************************
	 * 함수명 : isValidNumericOnly
	 * 기   능 : 숫자만으로 입력 되었는지 확인한다
	 * 작 성 자 : Mong
	/***********************************************/
	function isValidNumericOnly(ele) {
		var pattern = /^[0-9]+$/;
		return (pattern.test(ele.value)) ? true : false;
	}

	/************************************************
	 * 함수명  : _popZipcode()
	 * 기 능	 : 우편번호 검색창을 띄움.
	 * 작 성 자 : Mong
	 ************************************************/
	function _popZipcode()
	{
		window.open('/jsp/common/FindZipcode.jsp', '_popZipcode', 'width=500, height=250, toolbars=no, scrollbar=no');
		questionZip();
	}

	
 	function questionZip()
	{
		window.open('/jsp/common/questionZipcode.jsp', 'questionZipcode', 'width=520, height=310, toolbars=no, scrollbar=no, top=60, left=570');
	}
	
	// XMLHttpRequest 오브젝트 생성 함수
	// @sample obj = createHttpRequest();
	// @return XMLHttpRequest 오브젝트
	function createHttpRequest()
	{
	    if (window.ActiveXObject) {
	        try {
	            // IE6, IE7
	            return new ActiveXObject("Msxml2.XMLHTTP");
	        } catch (e) {
	            try {
	                // IE4, IE5
	                return new ActiveXObject("Microsoft.XMLHTTP");
	            } catch (e2) {
	                try { 
	                	return  new XDomainRequest(); //IE8
		            } catch (e3) {
		                return null;
		            }
	            }
	        }
	    } else if (window.XMLHttpRequest) {
	        // Mozilla, FireFox, Opera, Safari, Konqueror3
	        return new XMLHttpRequest();
	    } else {
	        return null;
	    }
	}
	
	/************************************************
	 * 함수명  : _popFacZipcode()
	 * 기 능	 : 우편번호 검색창을 띄움. (공장 주소를 위해 추가)
	 * 작 성 자 : jmcho
	 ************************************************/
	function _popFacZipcode()
	{
		window.open('/jsp/common/FindFacZipcode.jsp', '_popFacZipcode', 'width=500, height=250, toolbars=no, scrollbar=no');
		questionZip();
	}

	// XMLHttpRequest 오브젝트 생성 함수
	// @sample obj = createHttpRequest();
	// @return XMLHttpRequest 오브젝트
	function createHttpRequest()
	{
	    if (window.ActiveXObject) {
	        try {
	            // IE6, IE7
	            return new ActiveXObject("Msxml2.XMLHTTP");
	        } catch (e) {
	            try {
	                // IE4, IE5
	                return new ActiveXObject("Microsoft.XMLHTTP");
	            } catch (e2) {
	                try { 
	                	return  new XDomainRequest(); //IE8
		            } catch (e3) {
		                return null;
		            }
	            }
	        }
	    } else if (window.XMLHttpRequest) {
	        // Mozilla, FireFox, Opera, Safari, Konqueror3
	        return new XMLHttpRequest();
	    } else {
	        return null;
	    }
	}


	/************************************************
	 * 함수명  : .
	 * 기 능	 : AJAX 사용 관련 함수들. 실행 및 사용에 필요한 전역변수 생성.
	 * 작 성 자 : Mong
	 ************************************************/
	//httpRequest 전역변수 선언.
	var httpRequest = null;
	var activeEle = null;



	/************************************************
	 * 함수명  : _chkUseridDuplicate(ele)
	 * 기 능	 : 아이디 중복 검사를 실행 하기 위한 함수.
	 * @param : ele - 아이디 입력 폼
	 * @sample : 스크립트 호출시 input box 에서 _chkUseridDuplicate(this) 을 이용하여 객체 전달
	 * 작 성 자 : Mong
	 ************************************************/
	function _chkUseridDuplicate(ele)
	{
		// 아이디 유효성 검사를 위한 변수
		var validChk = true;
	
		// 폼 필드 제어를 위한 전역변수
		activeEle = ele;
	
		// 아이디에 입력된 공백을 제거
		ele.value=ele.value.trim();

		var eleFrmName = ele.form.name;

		// 아이디 유효성 검사 

		// 아이디 길이 제한은 중소기업/컨설팅사/컨설턴트만 체크.
		// 폼이름으로 비교하여 평가점검단/단장/주관기관/사이트 관리자일 경우에는 길이체크 안함.
		if(!(eleFrmName=='frmMemberAdminInspectRegist'||eleFrmName=='frmMemberInspectRegist'||eleFrmName=='frmMemberSupvisorRegist'||eleFrmName=='frmRegistSitemanager'))
		{
			if(ele.value.length<8||ele.value.length>20)
			{
				alert('아이디는 8자이상, 20자 이하로 입력 되어야 합니다.');
				return;
			}
		}
		else if(ele.value.length<1)
		{
			alert('아이디를 입력 해 주십시오.');
			return;
		}

		if(!isValidAlphaNumericOnly(ele))
		{
			alert('아이디는 영문/숫자로만 입력 되어야 합니다.');
			return;
		}
	
		//전달할 파라미터를 변수에 담는다.
		var paramName = 'smbacon_userid';
		var paramValue = ele.value;
		var fullParameter = '?' + paramName + '=' + paramValue;
	
	
		//브라우저에 따른 XMLHttpRequest 객체를 얻어온후 httpRequest 전역변수에 담는다.
		httpRequest = createHttpRequest();
	
	
		//	UTF-8 로 데이터를 전달하기 위하여 인코딩이 필요하다. smbacon은 utf-8 로 제작되기 때문에 필요하지 않음.
		//	paramName = encodeURIComponent(paramName);
		//	paramValue = encodeURIComponent(paramValue);
	
	
		//지정한 userid 중복체크를 위하여 GET방식으로 데이터를 요청한다.
		//httpRequest객체의 상태 변화가 있을때 호출할 함수를 지정한다.
		httpRequest.onreadystatechange = _resultChkDuplicate;
		httpRequest.open("GET", "/jsp/common/ChkUseridDuplicate.jsp"+fullParameter, true); // url의 주소를 GET방식으로 열 준비를 한다.
	
	
		//UTF-8 로 파라미터를 전달하기 위하여 content-type 를 지정. 반드시 open() 이후에 나와야 한다.
		//	httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');
		httpRequest.send(""); //서버에 전송한다.
	}


	function chk_pass_min(ele){
		    
		activeEle = ele; 
		ele.value=ele.value.trim();  
			if(ele.value.length<8||ele.value.length>20){
				alert('비밀번호는 8자이상, 20자 이하로 입력 되어야 합니다.');
				ele.value="";
				ele.focus();
				return;
			} 

			if(!isValidAlphaNumericOnly(ele)){
				alert('비밀번호는 영문/숫자로만 입력 되어야 합니다.');
				ele.value="";
				ele.focus();
				return;
			}
	}
	

	function ismaxlength(obj){
		var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : ""
		if (obj.getAttribute && obj.value.length>mlength)
		alert("최대 입력 범위를 초과 하였습니다.");
		obj.value=obj.value.substring(0,mlength)
	}
	
	/////////////////////////////////////////////////////////////////////////////////////
	// 숫자만 입력 가능하도록
	// 사용방법 : onlyNum();
	// 사용 예 : <input type="text" name="txt_number" onKeyPress="onlyNum();">
	
	function onlyNum() {	
		if(event.keyCode<26||event.keyCode<45||event.keyCode>57) event.returnValue=false;
	}
	/////////////////////////////////////////////////////////////////////////////////////
	
	///////////////////////////////////////////////////////////////////////////////////// 
	// 숫자만 입력 가능하도록(전화번호 '-' 추가)
	// 사용방법 : onlyNumPhone();
	// 사용 예 : <input type="text" name="txt_number" onKeyPress="onlyNumPhone();">
	
	function onlyNumPhone() {	
		if(event.keyCode<26||event.keyCode<45||event.keyCode>57||event.keyCode==109||event.keyCode==189) event.returnValue=false;
	}
	/////////////////////////////////////////////////////////////////////////////////////
 
	/////////////////////////////////////////////////////////////////////////////////////
	// 숫자만 입력 가능하도록 (소수점 (. 와 / )까지 제한)
	// 사용방법 : onlyNumAbs();
	// 사용 예 : <input type="text" name="txt_number" onKeyPress="onlyNumAbs();">
	
	function onlyNumAbs() {	
		if(event.keyCode<26||event.keyCode<48||event.keyCode>57) event.returnValue=false;
	}
	/////////////////////////////////////////////////////////////////////////////////////
	  

	/************************************************
	 * 함수명  : _resultChkDuplicate()
	 * 기 능	 : 아이디 중복검사 결과를 받아 처리하기 위한 함수.
	 * 작 성 자 : Mong
	 ************************************************/
	function _resultChkDuplicate()
	{
		/*
		 * 요청의 주기상태 (httpRequest.readyState)
		 *  0 - XMLHttpRequest를 생성하였으나 초기화하지 않음. open()함수를 실행하지 않은 상태.
		 *  1 - open()함수를 수행하였으나 send()함수를 실행하지 않은 상태.
		 *  2 - send()함수를 수행하였으나 서버가 처리를 준비하고 있는 상태.
		 *  3 - 서버가 처리를 진행중인 상태.
		 *  4 - 처리를 완료한 상태.
		 */

		// httpRequest 는 중복검사 실행 함수에서 전역변수로 생성.	
		if(httpRequest.readyState == 4) //처리를 완료 했을 경우
		{
			// 서버의 응답상태 (200 : 정상적인 완료. 이외는 모두 에러로 처리.)
			if(httpRequest.status == 200) //요청 성공
			{
				eval("result = " + httpRequest.responseText);
	
				//			중복체크 결과가 삽일 될 input box. name 외에 id='hdnIdChk' 를 넣음.
				var checkEle = document.getElementById('hdnIdChk');

				if (result.cnt > 0)	{
					alert('['+activeEle.value+']는 이미 사용중 인 아이디 입니다.');
					activeEle.value='';
					checkEle.value='';
					activeEle.focus();
				} else {
					checkEle.value='checked';
					alert('사용 가능한 아이디 입니다.');
				}
			}
			else
			{
				alert("ERROR : " + httpRequest.status);
			}
		}
	}
	



	/************************************************
	 * 함수명  : _chkUserInfoDuplicate(ele)
	 * 기 능	 : 사업자등록번호/주민번호 중복 검사를 실행 하기 위한 함수.
	 * @param : ele - 정보 입력 박스, eleForm - 정보입력폼
	 * 작 성 자 : Mong
	 ************************************************/
	function _chkUserInfoDuplicate(ele, eleForm, eleType, value, membership)
	{

		// 아이디 유효성 검사를 위한 변수
		var validChk = true;
		var activeValue = "";
		// 폼 필드 제어를 위한 전역변수
		activeEle = ele;

		activeValue = (value) ? value : ele.value;

		// 공백을 제거
		activeValue = activeValue.trim();

		// 입력 값의 유효성 검사 
		if("REP_REGIST_NUMBER" == eleType)
		{
			var strComp = activeValue.substr(6,1);
			//salert(strComp);
			if(strComp < 5)
			{
				validChk = isValidJumin(ele, activeValue);
			}
			else
			{
				validChk = isValidForeignNum(ele, activeValue);
			}
		}
		else if("REGIST_NUMBER" == eleType)
		{
			validChk = isValidBizNo(ele, activeValue);
		}

		// 아이디 유효성 검사를 통과하지 못했을 경우 처리.
		if(!validChk) {
			ele.focus();
			return;
		}
	
	
		//전달할 파라미터를 변수에 담는다.
		var paramName = 'strValue';
		var paramValue = activeValue;
	
		//	UTF-8 로 데이터를 전달하기 위하여 인코딩이 필요하다. smbacon은 utf-8 로 제작되기 때문에 필요하지 않음.
		//	paramName = encodeURIComponent(paramName);
		//	paramValue = encodeURIComponent(paramValue);
	
		var fullParameter = '?' + paramName + '=' + paramValue;

		paramName = 'strDupChk_type';
		paramValue = eleType;
	
		//	UTF-8 로 데이터를 전달하기 위하여 인코딩이 필요하다. smbacon은 utf-8 로 제작되기 때문에 필요하지 않음.
		//	paramName = encodeURIComponent(paramName);
		//	paramValue = encodeURIComponent(paramValue);
	
		fullParameter += '&' + paramName + '=' + paramValue;
	
		paramName = 'strMembership';
		paramValue = membership;
	
		//	UTF-8 로 데이터를 전달하기 위하여 인코딩이 필요하다. smbacon은 utf-8 로 제작되기 때문에 필요하지 않음.
		//	paramName = encodeURIComponent(paramName);
		//	paramValue = encodeURIComponent(paramValue);
	
		fullParameter += '&' + paramName + '=' + paramValue;

		//브라우저에 따른 XMLHttpRequest 객체를 얻어온후 httpRequest 전역변수에 담는다.
		httpRequest = createHttpRequest();


		//지정한 userid 중복체크를 위하여 GET방식으로 데이터를 요청한다.
		//httpRequest객체의 상태 변화가 있을때 호출할 함수를 지정한다.
		httpRequest.onreadystatechange = _resultChkInfoDuplicate;
		httpRequest.open("GET", "/jsp/common/ChkUserInfoDuplicate.jsp"+fullParameter, true); // url의 주소를 GET방식으로 열 준비를 한다.
	
	
		//UTF-8 로 파라미터를 전달하기 위하여 content-type 를 지정. 반드시 open() 이후에 나와야 한다.
		//	httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');
		httpRequest.send(""); //서버에 전송한다.
	}


	/************************************************
	 * 함수명  : _resultChkInfoDuplicate()
	 * 기 능	 : 아이디 중복검사 결과를 받아 처리하기 위한 함수.
	 * 작 성 자 : Mong
	 ************************************************/
	function _resultChkInfoDuplicate()
	{
		/*
		 * 요청의 주기상태 (httpRequest.readyState)
		 *  0 - XMLHttpRequest를 생성하였으나 초기화하지 않음. open()함수를 실행하지 않은 상태.
		 *  1 - open()함수를 수행하였으나 send()함수를 실행하지 않은 상태.
		 *  2 - send()함수를 수행하였으나 서버가 처리를 준비하고 있는 상태.
		 *  3 - 서버가 처리를 진행중인 상태.
		 *  4 - 처리를 완료한 상태.
		 */

		// httpRequest 는 중복검사 실행 함수에서 전역변수로 생성.	
		if(httpRequest.readyState == 4) //처리를 완료 했을 경우
		{
			// 서버의 응답상태 (200 : 정상적인 완료. 이외는 모두 에러로 처리.)
			if(httpRequest.status == 200) //요청 성공
			{
				eval("result = " + httpRequest.responseText);
	
				//			중복체크 결과가 삽일 될 input box. name 외에 id='hdnUserInfoChk' 를 넣음.
				var checkEle = document.getElementById('hdnUserInfoChk');



				if (result.cnt > 0 || result.success!='success')	{
					
					var msgForResult= (result.success!='success') ? '중복검색에 실패했습니다. 다시 시도 하십시오.' : '['+result.value+']는 이미 사용중인 '+result.alias+' 입니다.';

					var resultEle = document.getElementById('spnDupChk');

					if(resultEle)
					{
						resultEle.getAttribute('style').color='#DD0000';
						resultEle.setAttribute('innerHTML',msgForResult);
					}
					else
					{
						alert(msgForResult);
					}
				} else {

					var msgForResult='['+result.value+']는 사용 가능한 '+result.alias+' 입니다.';

					var resultEle = document.getElementById('spnDupChk');
					
					// 경고창으로 띄울경우(조건문을 if(true) 로 사용.)
					if(resultEle)
					{
						resultEle.getAttribute('style').color='#00AA00';
						resultEle.setAttribute('innerHTML',msgForResult);
					}
					else
					{
						alert(msgForResult);
					}


					checkEle.setAttribute('value','checked');
				}
			}
			else
			{
				alert("ERROR : " + httpRequest.status);
			}
		}
	}
	
	/************************************************
	 * 함수명  : _fndZipcode(eleFrm)
	 * 기능	 : Ajax 를 이용 우편번호를 검색. 검색폼의 제어.
	 * @param eleFrm - 우편번호 검색이 진행되는 폼.
	 ************************************************/
	function _fndZipcode(eleFrm)
	{
		// 검색어 입력 필드
		var searchEle = eleFrm.strDong;
	
		// 검색어 입력여부 검사 
		if(searchEle.value=='') 
		{
			alert('검색어를 입력 하셔야 합니다.');
			searchEle.focus();
			return;
		}
	
		// 전달할 파라미터를 변수에 담는다.
		var paramName = 'strDong';
		var paramValue = searchEle.value;
	
	
		//	UTF-8 로 데이터를 전달하기 위하여 인코딩이 필요하다. UTF-8 로 제작된 상태라 필요없음.
		//	paramName = encodeURIComponent(paramName);
		//	paramValue = encodeURIComponent(paramValue);
	
		var fullParameter = paramName + '=' + paramValue;

		// 폼 제어를 위한 전역변수
		activeEle = eleFrm.strResultZipcodes;
	
		//브라우저에 따른 XMLHttpRequest 객체를 얻어온후 httpRequest 전역변수에 담는다.
		httpRequest = createHttpRequest();
	
	
		//지정한 userid 중복체크를 위하여 POST방식으로 데이터를 요청한다.
		//httpRequest객체의 상태 변화가 있을때 호출할 함수를 지정한다.
		httpRequest.onreadystatechange = _resultFindZipcode;
		httpRequest.open("POST", "/jsp/common/FindZipcodeProc.jsp", true); // url의 주소를 POST 방식으로 열 준비를 한다.
	
		//UTF-8 로 파라미터를 전달하기 위하여 content-type 를 지정. 반드시 open() 이후에 나와야 한다.
		httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');
		httpRequest.send(fullParameter); //서버에 전송한다.
	}
	
	function _resultFindZipcode()
	{
		/*
		 * 요청의 주기상태 (httpRequest.readyState)
		 *  0 - XMLHttpRequest를 생성하였으나 초기화하지 않음. open()함수를 실행하지 않은 상태.
		 *  1 - open()함수를 수행하였으나 send()함수를 실행하지 않은 상태.
		 *  2 - send()함수를 수행하였으나 서버가 처리를 준비하고 있는 상태.
		 *  3 - 서버가 처리를 진행중인 상태.
		 *  4 - 처리를 완료한 상태.
		 */
		// 결과값 출력 div
		var resultEle = document.getElementById('resultEle');
		
		// 결과없음 출력 결과값 출력 div
		var noResultEle = document.getElementById('noResultEle');
		
		// 로딩바 표시 div
		var loadingEle = document.getElementById('loadingEle');

		resultEle.getAttribute('style').display='none';
		noResultEle.getAttribute('style').display='none';
		loadingEle.getAttribute('style').display='block';

		if(httpRequest.readyState == 4) //처리를 완료 했을 경우
		{
			// 서버의 응답상태 (200 : 정상적인 완료. 이외는 모두 에러로 처리.)
			if(httpRequest.status == 200) //요청 성공
			{	
				loadingEle.getAttribute('style').display='none';
				eval("result = " + httpRequest.responseText);

				var cnt = result.cnt;
				var data = result.data;
				var strZipcode = null;
				var strAddress = null;
				var strBunji = null;

				if(cnt > 0)
				{

					resultEle.getAttribute('style').display='block';
					activeEle.length=cnt+1;

					for(var i=0;i<cnt;i++)
					{
						strZipcode = '';
						strZipcode+= data[i]['zipcode'];

						strAddress = '';
						strAddress+= data[i]['sido']+' ';
						strAddress+= data[i]['gugun']+' ';
						strAddress+= data[i]['dong'];
						strAddress+= data[i]['ri']!='' ? ' '+data[i]['ri'] : '';

						strBunji = '';
						strBunji+= data[i]['bunji']!='' ? data[i]['bunji'] : '';

						activeEle.options[i+1].zipcode=data[i]['zipcode'];
						activeEle.options[i+1].sido=data[i]['sido'];
						activeEle.options[i+1].gugun=data[i]['gugun'];
						activeEle.options[i+1].dong=data[i]['dong'];
						activeEle.options[i+1].ri=data[i]['ri'];
						activeEle.options[i+1].bunji=data[i]['bunji'];
						activeEle.options[i+1].code_upper=data[i]['CODE_UPPER'];
						activeEle.options[i+1].fullAddress=strAddress;
						
						activeEle.options[i+1].text=strZipcode+' : '+strAddress+' '+strBunji;
						activeEle.options[i+1].value=strZipcode+' : '+strAddress;
						
					}
				}
				else
				{
					noResultEle.getAttribute('style').display='block';
					activeEle.length=1;
				}
	
			}
			else
			{
				alert("ERROR : " + httpRequest.status);
				noResultEle.getAttribute('style').display='block';
			}
		}
	}


	/************************************************
	 * 함수명  : _useZipcode()
	 * 기능	 : 선택된 우편번호를 폼으로 반환.
	 * 적용할 폼의 우편번호, 기본주소, 상세주소, 시/도, 구/군, code_upper 에 아이디값을 부여.
	 * name 값과 관계 없이 id 값으로 적용 유/무 를 판단후 데이터를 적용.
	 * 우편번호 : id="zipcodeEle"
	 * 기본주소 : id="addressEle"
	 * 상세주소 : id="addressDetailEle"
	 * 시/도정보 : id="sidoEle"
	 * 구/군정보 : id="gugunEle"
	 * code_upper : id="codeUpperEle"
	 * @param : activeEle
	 *          파라미터로 받지 않음.
	 *          우편번호 검색 기능 수행 시 전역변수로 생성.
	 ************************************************/
	function _useZipcode()
	{
		var value = activeEle.value;
		if(value=='')
		{
			alert('사용하실 우편번호를 선택하여 주십시오.');
			activeEle.focus();
			return;
		}
		else
		{
			var ele = null;
			var zipcode = activeEle.options[activeEle.selectedIndex].zipcode;
			var address = activeEle.options[activeEle.selectedIndex].fullAddress;
			var bunji = activeEle.options[activeEle.selectedIndex].bunji;
			var sido = activeEle.options[activeEle.selectedIndex].sido;
			var gugun = activeEle.options[activeEle.selectedIndex].gugun;
			var code_upper = activeEle.options[activeEle.selectedIndex].code_upper;

			ele = window.opener.document.getElementById('zipcodeEle');
			if(ele) ele.value=zipcode;

			ele = window.opener.document.getElementById('addressEle');
			if(ele) ele.value=address;

			ele = window.opener.document.getElementById('addressDetailEle');
			if(ele) ele.value=bunji;

			ele = window.opener.document.getElementById('sidoEle');
			if(ele) ele.value=sido;

			ele = window.opener.document.getElementById('gugunEle');
			if(ele) ele.value=gugun;

			ele = window.opener.document.getElementById('codeUpperEle');
			if(ele) ele.value=code_upper;

			self.close();
	
		}
	}
	
	/************************************************
	 * 함수명  : _useFacZipcode()
	 * 기능	 : 선택된 우편번호를 공장 주소 폼으로 반환.
	 * 적용할 폼의 우편번호, 기본주소, 상세주소, 시/도, 구/군, code_upper 에 아이디값을 부여.
	 * name 값과 관계 없이 id 값으로 적용 유/무 를 판단후 데이터를 적용.
	 * 우편번호 : id="facZipcodeEle"
	 * 기본주소 : id="facAddressEle"
	 * 상세주소 : id="facAddressDetailEle"
	 * 시/도정보 : id="sidoEle"
	 * 구/군정보 : id="gugunEle"
	 * code_upper : id="facCodeUpperEle"
	 * @param : activeEle
	 *          파라미터로 받지 않음.
	 *          우편번호 검색 기능 수행 시 전역변수로 생성.
	 ************************************************/
	function _useFacZipcode()
	{
		var value = activeEle.value;
		if(value=='')
		{
			alert('사용하실 우편번호를 선택하여 주십시오.');
			activeEle.focus();
			return;
		}
		else
		{
			var ele = null;
			var zipcode = activeEle.options[activeEle.selectedIndex].zipcode;
			var address = activeEle.options[activeEle.selectedIndex].fullAddress;
			var bunji = activeEle.options[activeEle.selectedIndex].bunji;
			var sido = activeEle.options[activeEle.selectedIndex].sido;
			var gugun = activeEle.options[activeEle.selectedIndex].gugun;
			var code_upper = activeEle.options[activeEle.selectedIndex].code_upper;

			ele = window.opener.document.getElementById('facZipcodeEle');
			if(ele) ele.value=zipcode;

			ele = window.opener.document.getElementById('facAddressEle');
			if(ele) ele.value=address;

			ele = window.opener.document.getElementById('facAddressDetailEle');
			if(ele) ele.value=bunji;

			ele = window.opener.document.getElementById('sidoEle');
			if(ele) ele.value=sido;

			ele = window.opener.document.getElementById('gugunEle');
			if(ele) ele.value=gugun;

			ele = window.opener.document.getElementById('facCodeUpperEle');
			if(ele) ele.value=code_upper;

			self.close();
	
		}
	}
	/************************************************
	 * 함수명  : _findZipcodeInit()
	 * 기능	 : 우편번호 검색창 초기화. 입력폼에 커서 위치 시킴.
	 ************************************************/
	function _findZipcodeInit()
	{
		document.getElementById('strDong').focus();
	}
	
	/************************************************
	 * 함수명  : selectBoxForcommonCode()
	 * 기능	 : 공통코드를 상위코드 선택시 하위코드 가져오기
	 ************************************************/
	function selectBoxForcommonCode(level, upper, element)
	{
		
		var obj = document.getElementById(element);
		if(obj)
		{
			obj.length = 1;
			obj.options[0].text = "-- 검색중입니다 --";
			obj.options[0].value = "";
			obj.focus();
		}
		var url = "/common/ChangeCommonCode.jsp";
		var params = "level="+level+"&upper="+upper+"&element="+element;
		url = url+"?"+params;
		
		document._actionFrm.location.href = encodeURI(url);
		
	}

	/************************************************
	 * 함수명  : _useMail_domain()
	 * @param : ele - 이메일 도메인 선택 SELECT 박스
	 * @param : targetEle - 선택된 도메인을 적용 할 input 박스
	 * 기능	 : 선택된 이메일 도메인을 타겟 ele 에 적용시킴. 선택된 도메인이 있을경우 targetEle 는 readOnly 처리.
	 ************************************************/
	function _useMail_domain(ele, targetEle)
	{
		targetEle.value = ele.value;
		targetEle.setAttribute('readOnly', (ele.value!='')); 
	}

	/************************************************
	 * 함수명  : _useBank_name()
	 * @param : ele - 은행코드 선택 SELECT 박스
	 * @param : targetEle - 선택한 은행코드의 은행명을 적용 할 input 박스
	 * 기능	 : 은행이 선택 되었을 경우 해당하는 은행명을 targetEle 에 적용시킴.
	 ************************************************/
	function _useBank_name(ele, targetEle)
	{
		(ele.getAttribute('value')!='') ? targetEle.setAttribute('value', ele.getAttribute('options')[ele.getAttribute('selectedIndex')].getAttribute('text')): '';
	}

	/************************************************
	 * 함수명  : _chkKeyPressNum(ele)
	 * 기 능	 : 숫자 이외의 키 입력을 막는다. <br>
	 * @param : ele - 정보 입력 박스
	 * 작 성 자 : Mong
	 ************************************************/
	function _chkKeyPressNum(ele) {

		var chr= event.keyCode;
		if(!((chr >= 48 && chr <= 57) || (chr >= 96 && chr <= 105) || chr == 13 || chr == 8 || chr == 9 || chr == 45)){
			event.returnValue  = false;
			ele.focus();
			return false;
		}
	}
	
	
	/************************************************
	 * 함수명  : _chkKeyPressNumOnly(ele)
	 * 기 능	 : 숫자 이외의 키 입력을 막는다. <br>
	 * @param : ele - 정보 입력 박스
	 * 작 성 자 : Mong
	 ************************************************/
	function _chkKeyPressNumOnly(ele) {

		var chr= event.keyCode;
		if(!((chr >= 48 && chr <= 57) || (chr >= 96 && chr <= 105) || chr == 13 || chr == 8 || chr == 9)){
			event.returnValue  = false;
			ele.focus();
			return false;
		}
	}

	/************************************************
	 * 함수명  : _chkKeyPressNumPoint(ele)
	 * 기 능	 : 숫자와 . 이외의 키 입력을 막는다. <br>
	 * @param : ele - 정보 입력 박스
	 * 작 성 자 : Mong
	 ************************************************/
	function _chkKeyPressNumPoint(ele) {

		var chr= event.keyCode;
		if(!((chr >= 48 && chr <= 57) || (chr >= 96 && chr <= 105) || chr == 46 || chr == 13 || chr == 8 || chr == 9)){
			event.returnValue  = false;
			ele.focus();
			return false;
		}
	}

	/************************************************
	 * 함수명  : _chkKeyPressChar(ele)
	 * 기 능	 : 문자 이외의 키 입력을 막는다. <br>
	 * @param : ele - 정보 입력 박스
	 * 작 성 자 : Mong
	 ************************************************/
	function _chkKeyPressChar(ele)   
	{
		var chr= event.keyCode;
		if(!(chr==8 || chr==9 || chr==46 || chr==229 || chr==37 || chr==39 || (chr >= 65 && chr <= 90) || (chr >= 97 && chr <= 122)))
		{
		  event.returnValue  = false;
		  ele.focus();
	   }
	}

	/************************************************
	 * 함수명  : _chkKeyPressCharNum(ele)
	 * 기 능	 : 문자/숫자 이외의 키 입력을 막는다. <br>
	 * @param : ele - 정보 입력 박스
	 * 작 성 자 : Mong
	 ************************************************/
	function _chkKeyPressCharNum(ele)   
	{
		var chr= event.keyCode;
		if(!((chr >= 48 && chr <= 57) || (chr >= 96 && chr <= 105) || chr==8 || chr==9 || chr==46 || chr==229 || chr==37 || chr==39 || (chr >= 65 && chr <= 90) || (chr >= 97 && chr <= 122)))
		{
		  event.returnValue  = false;
		  ele.focus();
	   }
	}

	/************************************************
	 * 함수명  : _numFormat
	 * 기 능	 : 천단위 콤마 넣기 <br>
	 * @param : ele - 정보 입력 박스
	 * @param : value - 값 : 생략가능
	 * 작 성 자 : Mong
	 ************************************************/
	function _numFormat(ele, value){
		var str = ((value > -1 || value) ? value : ele.getAttribute('value'))+'';
		//alert(str)
		if(str == '0') ele.setAttribute('value', 0);
		else
		{
			var Re = /[^0-9]/g;
			var ReN = /(-?[0-9]+)([0-9]{3})/;
			str = str.replace(Re,''); 
			while (ReN.test(str)) { str = str.replace(ReN, "$1,$2"); }
			ele.setAttribute('value', str);
		}
	}

	/************************************************
	 * 함수명  : _removeComma
	 * 기 능	 : 콤마 제거 <br>
	 * @param : ele - 정보 입력 박스
	 * @param : value - 값 : 생략가능
	 * 작 성 자 : Mong
	 ************************************************/
	function _removeComma(ele, value){
		var str = ((value) ? value : ele.getAttribute('value'))+'';
		var oldStr = new RegExp(",", "g");
		ele.setAttribute('value', str.replace(oldStr, ""));
	}



	/****************************  공통코드 조회 관련 Ajax ***********************************/

	var upperCodeEle = null;
	var middleCodeEle = null;
	var smallCodeEle = null;

	/************************************************
	 * 함수명  : _fndCodeLists(code, level, upperEle, middleEle, smallEle, eleType, eleNum)
	 * 기능	 : Ajax 를 이용 공통코드를 검색. 코드선택 selectBox 제어.
	 * @param code		- 하위분류 검색에 이용할 코드값.
						  (실제 사용시 this, this.value, 혹은 String code 값을  이용하여 호출.)
	 * @param level		- 검색대상 (U/M/S).
	 * @param upperEle	- 대분류 정보를 담을 selectBox.

	 * @param middleEle	- 생략가능. 중분류 정보를 담을 selectBox.
	 * @param smallEle	- 생략가능. 소분류 정보를 담을 selectBox.
	 * @param eleType	- 생략가능. 대/중/소 분류의 selectBox 가 object 가 아닐경우 getElement 를 이용하여 생성.<br>
	 					  eleType 가 id 일 경우 getElementById, name 혹은 생략일 경우 getElementsByName 을 사용
	 * @param eleNum	- 생략가능. 대/중/소 분류의 selectBox getElementsByName 을 이용하여 생성했을경우.<br> 
	 					  name 값이 동일한 element 가 여러개일 경우 해당되는 selectBox 의 첨자를 입력. 생략시 0
	 * 작 성 자 : Mong
	 ************************************************/
	function _fndCodeLists(code, level, upperEle, middleEle, smallEle, eleType, eleNum)
	{

		// 코드값이 객체로 넘어오면 객체의 value 를, 일반 String 일경우 code 를 그대로 사용
		code = (isObject(code)) ? code.value : code;

		// eleType 가 생략되었을 경우. 'name' 으로 초기화 시킴.
		eleType = (typeof eleType == 'undefined') ? 'name' : eleType;
		// eleNum 가 생략되거나 숫자가 아닌경우. 0으로 초기화 시킴.
		eleNum = (typeof eleNum == 'undefined'||isNaN(eleNum)) ? 0 : eleNum;
		eleNum = parseInt(eleNum);
		// 전달할 파라미터를 변수에 담는다.
		var paramName = 'code';
		var paramValue = code;

		//	UTF-8 로 데이터를 전달하기 위하여 인코딩이 필요하다. UTF-8 로 제작된 상태라 필요없음.
		//	paramName = encodeURIComponent(paramName);
		//	paramValue = encodeURIComponent(paramValue);
	
		var fullParameter = paramName + '=' + paramValue;

		// 전달할 파라미터를 변수에 담는다.
		var paramName = 'level';
		var paramValue = level;

		fullParameter += '&' + paramName + '=' + paramValue;


		// 결과값 제어를 위한 전역변수
		// 제어에 필요한 3개의 selectBox 가 객체인경우 그대로 사용.
		// 객체가 아닌경우 eleType 과 eleNum 값을 이용하여 객체로 생성.
		upperCodeEle = isObject(upperEle) ? upperEle : (eleType=='id') ? document.getElementById(upperEle) : document.getElementsByName(upperEle)[eleNum];
		middleCodeEle = isObject(middleEle) ? middleEle : (eleType=='id') ? document.getElementById(middleEle) : document.getElementsByName(middleEle)[eleNum];
		smallCodeEle = isObject(smallEle) ? smallEle : (eleType=='id') ? document.getElementById(smallEle) : document.getElementsByName(smallEle)[eleNum];

		//브라우저에 따른 XMLHttpRequest 객체를 얻어온후 httpRequest 전역변수에 담는다.
		httpRequest = createHttpRequest();
	
	
		//지정한 공통코드 검색을 위하여 POST방식으로 데이터를 요청한다.
		//httpRequest객체의 상태 변화가 있을때 호출할 함수를 지정한다.
		httpRequest.onreadystatechange = _resultCodeLists;
		httpRequest.open("POST", "/jsp/common/FindCodeLists.jsp", true); // url의 주소를 POST 방식으로 열 준비를 한다.
	
		//UTF-8 로 파라미터를 전달하기 위하여 content-type 를 지정. 반드시 open() 이후에 나와야 한다.
		httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');
		httpRequest.send(fullParameter); //서버에 전송한다.
	}
	
	function _resultCodeLists()
	{
		/*
		 * 요청의 주기상태 (httpRequest.readyState)
		 *  0 - XMLHttpRequest를 생성하였으나 초기화하지 않음. open()함수를 실행하지 않은 상태.
		 *  1 - open()함수를 수행하였으나 send()함수를 실행하지 않은 상태.
		 *  2 - send()함수를 수행하였으나 서버가 처리를 준비하고 있는 상태.
		 *  3 - 서버가 처리를 진행중인 상태.
		 *  4 - 처리를 완료한 상태.
		 */
		 
		var loadingEle = document.getElementById('loadingEle');
		var resultEle = document.getElementById('resultEle');
		var noResultEle = document.getElementById('noResultEle');

		if(loadingEle) loadingEle.getAttribute('style').display='block';
		if(resultEle) resultEle.getAttribute('style').display='none';
		if(noResultEle) noResultEle.getAttribute('style').display='none';

		if(httpRequest.readyState == 4) //처리를 완료 했을 경우
		{
			
			// 서버의 응답상태 (200 : 정상적인 완료. 이외는 모두 에러로 처리.)
			if(httpRequest.status == 200) //요청 성공
			{

				if(loadingEle) loadingEle.getAttribute('style').display='none';
				
				eval("var result = " + httpRequest.responseText);
				var data = result.data;
				var cnt = result.cnt;
				var resultFlag = result.result;
				var i = 0;
				var optObj = null;
				
				if(resultFlag == 'success')
				{

					if(resultEle) resultEle.getAttribute('style').display='block';

					if('U'==result.level)
					{
						//upperCodeEle.setAttribute('length', cnt+1);
						resetOptions(upperCodeEle, 1);
						upperCodeEle.setAttribute('value', '');
						upperCodeEle.setAttribute('selectedIndex', 0);

						// 중분류 제어 대상이 있을 경우에만 초기화
						if(middleCodeEle)
						{
							middleCodeEle.setAttribute('value', '');
							middleCodeEle.setAttribute('selectedIndex', 0);
							resetOptions(middleCodeEle, 1);
						}

						// 소분류 제어 대상이 있을 경우에만 초기화
						if(smallCodeEle)
						{
							smallCodeEle.setAttribute('value', '');
							smallCodeEle.setAttribute('selectedIndex', 0);
							resetOptions(smallCodeEle, 1);
						}

						for(i=0;i<cnt;i++)
						{
							optObj = document.createElement('OPTION');
//							optObj.innerText = data[i].code_upper_name;
							optObj.setAttribute('text', data[i].code_upper_name);
							optObj.setAttribute('innerText', data[i].code_upper_name);
							optObj.setAttribute('value', data[i].code_upper);
							optObj.setAttribute('userCode', data[i].usercode_upper);
							upperCodeEle.appendChild(optObj);
							optObj = null;
						}
					}
					else if('M'==result.level)
					{
						resetOptions(middleCodeEle, 1);
						middleCodeEle.setAttribute('value', '');
						middleCodeEle.setAttribute('selectedIndex', 0);
					
						// 소분류 대상이 있을 경우에만 초기화
						if(smallCodeEle)
						{
							smallCodeEle.setAttribute('value', '');
							smallCodeEle.setAttribute('selectedIndex', 0);
							resetOptions(smallCodeEle, 1);
						}

						for(i=0;i<cnt;i++)
						{
							optObj = document.createElement('OPTION');
							optObj.setAttribute('innerText', data[i].code_middle_name);
							optObj.setAttribute('text', data[i].code_middle_name);
							optObj.setAttribute('value', data[i].code_middle);
							optObj.setAttribute('userCode', data[i].usercode_middle);
							middleCodeEle.appendChild(optObj);

							optObj = null;
						}
					}
					else if('S'==result.level)
					{
						resetOptions(smallCodeEle, 1);
						smallCodeEle.setAttribute('value', '');
						smallCodeEle.setAttribute('selectedIndex', 0);

						for(i=0;i<cnt;i++)
						{
							optObj = document.createElement('OPTION');
							optObj.setAttribute('innerText', data[i].code_small_name);
							optObj.setAttribute('text', data[i].code_small_name);
							optObj.setAttribute('value', data[i].code_small);
							optObj.setAttribute('userCode', data[i].usercode_small);
							smallCodeEle.appendChild(optObj);
							optObj = null;
						}
					}
				}
				else
				{
					if(noResultEle) noResultEle.getAttribute('style').display='block';
					if(loadingEle) loadingEle.getAttribute('style').display='none';
				}
			}
			else
			{
				if(noResultEle) noResultEle.getAttribute('style').display='block';
				if(loadingEle) loadingEle.getAttribute('style').display='none';
				alert("ERROR : " + httpRequest.status);
			}
		}
	}

	/************************************************
	 * 함수명  : isObjcet(ele)
	 * 기 능	 : 오브젝트인이 여부를 판한 후 boolean 값을 return. <br>
	 * @param : ele - 오브젝트 여부를 확인 할 객체
	 * 작 성 자 : Mong
	 ************************************************/
	function isObject(ele)
	{
		return (typeof ele=='object');
	}

	/************************************************
	 * 함수명  : resetOptions(selEle, startNum)
	 * 기 능	 : 크로스 브라우징을 위해 웹 표준코드를 사용하여 OPTION 객체를 초기화 <br>
	 * @param : ele - 오브젝트 여부를 확인 할 객체
	 * @param : startNum - 남겨야 할 option 항목이 있을경우 해당 갯수를 입력.
	 * 작 성 자 : Mong
	 ************************************************/
	function resetOptions(selEle, startNum)
	{
		var objOpt = selEle.getElementsByTagName('OPTION');
		var optLength = objOpt.length;
		var i = 0;
		i += ((startNum)&&!isNaN(startNum)) ? startNum : i;

		for (var j=i;j<optLength;j++)
		{
			selEle.removeChild(objOpt[i]);
		}
	}

	


	/**********************************************
     * 함수명 : _doLogin
     * 기    능 : 회원 로그인을 실행
    ***********************************************/
    function _doLogin()
	{
		if(_doLoginValidCheck())
		{
			var eleFrm = document.getElementById('frmMembershipLogin');

			eleFrm.target = "_actionFrm";
			eleFrm.action = "/jsp/smbacon/login/MembershipLoginProc.jsp";
			eleFrm.submit();
		}
		else
		{
			return;
		}
	}

	/**********************************************
     * 함수명 : _doLoginValidCheck
     * 기    능 : 회원 로그인을 실행
    ***********************************************/
    function _doLoginValidCheck()
	{
		var eleFrm = document.getElementById('frmMembershipLogin');

		if(!isNull(eleFrm.strSmbacon_userid, '회원 아이디')) return false;
		if(!isNull(eleFrm.strSmbacon_passwd, '비밀번호'))
		{
			return false;
		}
		else
		{
			return true;
		}
	}



	/**********************************************
     * 함수명 : _initMembershipLogin
     * 기    능 : 로그인 폼을 초기화 (아이디 입력창으로 커서 이동)
    ***********************************************/
    function _initMembershipLogin()
	{
		var eleFrm = document.getElementById('frmMembershipLogin');
		eleFrm.strSmbacon_userid.focus();
	}
	
	/**********************************************
     * 함수명 : selectProjectCodePart
     * 기    능 : 년도별 사업을 선택시 세부사업을 표시한다.
    ***********************************************/
    function selectProjectCodePart(code, name)
    {
    	var url = "/jsp/common/combo/_selectProjectCodePart.jsp?strPjtCode="+code+"&strParam="+name;
    	_actionFrm.location.href=encodeURI(url);
    }



	/************************************************
	 * 함수명  : _closeAndParentReLoad()
	 * 기 능	 : 팝업창에서 창을 닫으며 부모창을 reload한다<br>
	 * 작 성 자 : Mong
	 ************************************************/
	function _closeAndParentReLoad()
	{
		var wndOpener = window.opener;
		if (wndOpener) wndOpener.location.reload();
		self.close();
	}
	
	/************************************************
	 * 함수명  : _chkPConsultantDuplicate(ele)
	 * 기 능	 : 컨설턴트의 사업참여여부 중복 검사를 실행 하기 위한 함수.
	 * @param : ele - 아이디 입력 폼
	 * @sample : 스크립트 호출시 input box 에서 _chkPConsultantDuplicate(this) 을 이용하여 객체 전달
	 * 작 성 자 : babmerseo
	 ************************************************/
	function _chkPConsultantDuplicate(ele)
	{
		// 아이디 유효성 검사를 위한 변수
		var validChk = true;
	
		// 폼 필드 제어를 위한 전역변수
		activeEle = ele;
	
		// 아이디에 입력된 공백을 제거
		ele.value=ele.value.trim();
	
		
		// 아이디 유효성 검사 
		if(ele.value.length<8||ele.value.length>20)
		{
			alert('아이디는 8자이상, 20자 이하로 입력 되어야 합니다.');
			validChk = false;
		}
		else if(!isValidAlphaNumericOnly(ele))
		{
			alert('아이디는 영문/숫자로만 입력 되어야 합니다.');
			validChk = false;
		}
	
		// 아이디 유효성 검사를 통과하지 못했을 경우 처리.
		if(!validChk) {
			ele.focus();
			return;
		}
	
	
		//전달할 파라미터를 변수에 담는다.
		var paramName = 'consultant_userid';
		var paramValue = ele.value;
		var fullParameter = '?' + paramName + '=' + paramValue;
	
	
		//브라우저에 따른 XMLHttpRequest 객체를 얻어온후 httpRequest 전역변수에 담는다.
		httpRequest = createHttpRequest();
	
	
		//	UTF-8 로 데이터를 전달하기 위하여 인코딩이 필요하다. smbacon은 utf-8 로 제작되기 때문에 필요하지 않음.
		//	paramName = encodeURIComponent(paramName);
		//	paramValue = encodeURIComponent(paramValue);
	
	
		//지정한 userid 중복체크를 위하여 GET방식으로 데이터를 요청한다.
		//httpRequest객체의 상태 변화가 있을때 호출할 함수를 지정한다.
		httpRequest.onreadystatechange = _resultChkSDuplicate;
		httpRequest.open("GET", "/jsp/smbacon/projectinfo/consultantparticipation/ChkPConsultantDuplicate.jsp"+fullParameter, true); // url의 주소를 GET방식으로 열 준비를 한다.
	
	
		//UTF-8 로 파라미터를 전달하기 위하여 content-type 를 지정. 반드시 open() 이후에 나와야 한다.
		//	httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');
		httpRequest.send(""); //서버에 전송한다.
	}


	/************************************************
	 * 함수명  : _resultChkDuplicate()
	 * 기 능	 : 컨설턴트의 사업참여여부 중복검사 결과를 받아 처리하기 위한 함수.
	 * 작 성 자 : babmerseo
	 ************************************************/
	function _resultChkSDuplicate()
	{
		/*
		 * 요청의 주기상태 (httpRequest.readyState)
		 *  0 - XMLHttpRequest를 생성하였으나 초기화하지 않음. open()함수를 실행하지 않은 상태.
		 *  1 - open()함수를 수행하였으나 send()함수를 실행하지 않은 상태.
		 *  2 - send()함수를 수행하였으나 서버가 처리를 준비하고 있는 상태.
		 *  3 - 서버가 처리를 진행중인 상태.
		 *  4 - 처리를 완료한 상태.
		 */

		// httpRequest 는 중복검사 실행 함수에서 전역변수로 생성.	
		if(httpRequest.readyState == 4) //처리를 완료 했을 경우
		{
			// 서버의 응답상태 (200 : 정상적인 완료. 이외는 모두 에러로 처리.)
			if(httpRequest.status == 200) //요청 성공
			{
				eval("result = " + httpRequest.responseText);
	
				//			중복체크 결과가 삽일 될 input box. name 외에 id='hdnIdChk' 를 넣음.
				var checkEle = document.getElementById('hdnIdChk');

				if (result.cnt > 0)	{
					alert('['+activeEle.value+']는 이미 해당사업에  참여하고 있는 컨설턴트 입니다.');
					activeEle.value='';
					checkEle.value='';
					activeEle.focus();
				} else {
					checkEle.value='checked';
					alert('해당사업에 참여할 수 있습니다.');
				}
			}
			else
			{
				alert("ERROR : " + httpRequest.status);
			}
		}
	}
	
	/************************************************
	 * 함수명  : _chkPConsultingDuplicate(ele)
	 * 기 능	 : 컨설팅사의 사업참여여부 중복 검사를 실행 하기 위한 함수.
	 * @param : ele - 아이디 입력 폼
	 * @sample : 스크립트 호출시 input box 에서 _chkPConsultingDuplicate(this) 을 이용하여 객체 전달
	 * 작 성 자 : babmerseo
	 ************************************************/
	function _chkPConsultingDuplicate(ele)
	{
		// 아이디 유효성 검사를 위한 변수
		var validChk = true;
	
		// 폼 필드 제어를 위한 전역변수
		activeEle = ele;
	
		// 아이디에 입력된 공백을 제거
		ele.value=ele.value.trim();
	
		
		// 아이디 유효성 검사 
		if(ele.value.length<8||ele.value.length>20)
		{
			alert('아이디는 8자이상, 20자 이하로 입력 되어야 합니다.');
			validChk = false;
		}
		else if(!isValidAlphaNumericOnly(ele))
		{
			alert('아이디는 영문/숫자로만 입력 되어야 합니다.');
			validChk = false;
		}
	
		// 아이디 유효성 검사를 통과하지 못했을 경우 처리.
		if(!validChk) {
			ele.focus();
			return;
		}
	
	
		//전달할 파라미터를 변수에 담는다.
		var paramName = 'consulting_userid';
		var paramValue = ele.value;
		var fullParameter = '?' + paramName + '=' + paramValue;
	
	
		//브라우저에 따른 XMLHttpRequest 객체를 얻어온후 httpRequest 전역변수에 담는다.
		httpRequest = createHttpRequest();
	
	
		//	UTF-8 로 데이터를 전달하기 위하여 인코딩이 필요하다. smbacon은 utf-8 로 제작되기 때문에 필요하지 않음.
		//	paramName = encodeURIComponent(paramName);
		//	paramValue = encodeURIComponent(paramValue);
	
	
		//지정한 userid 중복체크를 위하여 GET방식으로 데이터를 요청한다.
		//httpRequest객체의 상태 변화가 있을때 호출할 함수를 지정한다.
		httpRequest.onreadystatechange = _resultChkCDuplicate;
		httpRequest.open("GET", "/jsp/smbacon/projectinfo/consultingparticipation/ChkPConsultingDuplicate.jsp"+fullParameter, true); // url의 주소를 GET방식으로 열 준비를 한다.
	
	
		//UTF-8 로 파라미터를 전달하기 위하여 content-type 를 지정. 반드시 open() 이후에 나와야 한다.
		//	httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');
		httpRequest.send(""); //서버에 전송한다.
	}


	/************************************************
	 * 함수명  : _resultChkDuplicate()
	 * 기 능	 : 컨설팅사의 사업참여여부 중복검사 결과를 받아 처리하기 위한 함수.
	 * 작 성 자 : babmerseo
	 ************************************************/
	function _resultChkCDuplicate()
	{
		/*
		 * 요청의 주기상태 (httpRequest.readyState)
		 *  0 - XMLHttpRequest를 생성하였으나 초기화하지 않음. open()함수를 실행하지 않은 상태.
		 *  1 - open()함수를 수행하였으나 send()함수를 실행하지 않은 상태.
		 *  2 - send()함수를 수행하였으나 서버가 처리를 준비하고 있는 상태.
		 *  3 - 서버가 처리를 진행중인 상태.
		 *  4 - 처리를 완료한 상태.
		 */

		// httpRequest 는 중복검사 실행 함수에서 전역변수로 생성.	
		if(httpRequest.readyState == 4) //처리를 완료 했을 경우
		{
			// 서버의 응답상태 (200 : 정상적인 완료. 이외는 모두 에러로 처리.)
			if(httpRequest.status == 200) //요청 성공
			{
				eval("result = " + httpRequest.responseText);
	
				//			중복체크 결과가 삽일 될 input box. name 외에 id='hdnIdChk' 를 넣음.
				var checkEle = document.getElementById('hdnIdChk');

				if (result.cnt > 0)	{
					alert('['+activeEle.value+']는 이미 해당사업에  참여하고 있는 컨설팅사 입니다.');
					activeEle.value='';
					checkEle.value='';
					activeEle.focus();
				} else {
					checkEle.value='checked';
					alert('해당사업에 참여할 수 있습니다.');
				}
			}
			else
			{
				alert("ERROR : " + httpRequest.status);
			}
		}
	}
	
	/************************************************
	 * 함수명  : _chkPConsultantDuplicateVerify(ele)
	 * 기 능	 : 컨설팅사소속컨설턴트의 사업참여여부 중복 검사를 실행 하기 위한 함수.
	 * @param : ele - 아이디 입력 폼
	 * @sample : 스크립트 호출시 input box 에서 _chkPConsultantDuplicateVerify(this) 을 이용하여 객체 전달
	 * 작 성 자 : babmerseo
	 ************************************************/
	function _chkPConsultantDuplicateVerify(ele)
	{
		// 아이디 유효성 검사를 위한 변수
		var validChk = true;
	
		// 폼 필드 제어를 위한 전역변수
		activeEle = ele;
	
		// 아이디에 입력된 공백을 제거
		ele.value=ele.value.trim();
	
		
		// 아이디 유효성 검사 
		if(ele.value.length<8||ele.value.length>20)
		{
			alert('아이디는 8자이상, 20자 이하로 입력 되어야 합니다.');
			validChk = false;
		}
		else if(!isValidAlphaNumericOnly(ele))
		{
			alert('아이디는 영문/숫자로만 입력 되어야 합니다.');
			validChk = false;
		}
	
		// 아이디 유효성 검사를 통과하지 못했을 경우 처리.
		if(!validChk) {
			ele.focus();
			return;
		}
	
	
		//전달할 파라미터를 변수에 담는다.
		var paramName = 'consultant_userid';
		var paramValue = ele.value;
		var fullParameter = '?' + paramName + '=' + paramValue;
	
	
		//브라우저에 따른 XMLHttpRequest 객체를 얻어온후 httpRequest 전역변수에 담는다.
		httpRequest = createHttpRequest();
	
	
		//	UTF-8 로 데이터를 전달하기 위하여 인코딩이 필요하다. smbacon은 utf-8 로 제작되기 때문에 필요하지 않음.
		//	paramName = encodeURIComponent(paramName);
		//	paramValue = encodeURIComponent(paramValue);
	
	
		//지정한 userid 중복체크를 위하여 GET방식으로 데이터를 요청한다.
		//httpRequest객체의 상태 변화가 있을때 호출할 함수를 지정한다.
		httpRequest.onreadystatechange = _resultChkPDuplicate;
		httpRequest.open("GET", "/jsp/smbacon/projectinfo/consultingparticipation/ChkPConsultantDuplicateVerify.jsp"+fullParameter, true); // url의 주소를 GET방식으로 열 준비를 한다.
	
	
		//UTF-8 로 파라미터를 전달하기 위하여 content-type 를 지정. 반드시 open() 이후에 나와야 한다.
		//	httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');
		httpRequest.send(""); //서버에 전송한다.
	}


	/************************************************
	 * 함수명  : _resultChkDuplicate()
	 * 기 능	 : 컨설턴트의 사업참여여부 중복검사 결과를 받아 처리하기 위한 함수.
	 * 작 성 자 : babmerseo
	 ************************************************/
	function _resultChkPDuplicate()
	{
		/*
		 * 요청의 주기상태 (httpRequest.readyState)
		 *  0 - XMLHttpRequest를 생성하였으나 초기화하지 않음. open()함수를 실행하지 않은 상태.
		 *  1 - open()함수를 수행하였으나 send()함수를 실행하지 않은 상태.
		 *  2 - send()함수를 수행하였으나 서버가 처리를 준비하고 있는 상태.
		 *  3 - 서버가 처리를 진행중인 상태.
		 *  4 - 처리를 완료한 상태.
		 */

		// httpRequest 는 중복검사 실행 함수에서 전역변수로 생성.	
		if(httpRequest.readyState == 4) //처리를 완료 했을 경우
		{
			// 서버의 응답상태 (200 : 정상적인 완료. 이외는 모두 에러로 처리.)
			if(httpRequest.status == 200) //요청 성공
			{
				eval("result = " + httpRequest.responseText);
	
				//			중복체크 결과가 삽일 될 input box. name 외에 id='hdnIdChk' 를 넣음.
				var checkEle = document.getElementById('hdnIdChk');

				if (result.cnt > 0)	{
					alert('['+activeEle.value+']는 이미 해당사업에  참여하고 있는 컨설턴트 입니다.');
					activeEle.value='';
					checkEle.value='';
					activeEle.focus();
				} else {
					checkEle.value='checked';
					alert('해당사업에 참여할 수 있습니다.');
				}
			}
			else
			{
				alert("ERROR : " + httpRequest.status);
			}
		}
	}
	
	
	
	
	/************************************************
	 * 함수명  : consultantEnteringDuplicate(ele)
	 * 기 능	 : 컨설턴트 입사지원시 컨설턴트의 필수사항 중복 검사를 실행 하기 위한 함수.
	 * @param : ele - 아이디 입력 폼
	 * @sample : 스크립트 호출시 input box 에서 consultantEnteringDuplicate(this) 을 이용하여 객체 전달
	 * 작 성 자 : babmerseo
	 ************************************************/
	function consultantEnteringDuplicate(ele)
	{
		// 아이디 유효성 검사를 위한 변수
		var validChk = true;
	
		// 폼 필드 제어를 위한 전역변수
		activeEle = ele;
	
		// 아이디에 입력된 공백을 제거
		ele.value=ele.value.trim();
	
		
		// 아이디 유효성 검사 
		if(ele.value.length<8||ele.value.length>20)
		{
			alert('아이디는 8자이상, 20자 이하로 입력 되어야 합니다.');
			validChk = false;
		}
		else if(!isValidAlphaNumericOnly(ele))
		{
			alert('아이디는 영문/숫자로만 입력 되어야 합니다.');
			validChk = false;
		}
	
		// 아이디 유효성 검사를 통과하지 못했을 경우 처리.
		if(!validChk) {
			ele.focus();
			return;
		}
	
	
		//전달할 파라미터를 변수에 담는다.
		var paramName = 'consultant_userid';
		var paramValue = ele.value;
		var fullParameter = '?' + paramName + '=' + paramValue;
	
	
		//브라우저에 따른 XMLHttpRequest 객체를 얻어온후 httpRequest 전역변수에 담는다.
		httpRequest = createHttpRequest();
	
	
		//	UTF-8 로 데이터를 전달하기 위하여 인코딩이 필요하다. smbacon은 utf-8 로 제작되기 때문에 필요하지 않음.
		//	paramName = encodeURIComponent(paramName);
		//	paramValue = encodeURIComponent(paramValue);
	
	
		//지정한 userid 중복체크를 위하여 GET방식으로 데이터를 요청한다.
		//httpRequest객체의 상태 변화가 있을때 호출할 함수를 지정한다.
		httpRequest.onreadystatechange = _resultConsultantEnteringDuplicate;
		httpRequest.open("GET", "/jsp/smbacon/membership/consultantEntering/ConsultantEnteringDuplicate.jsp"+fullParameter, true); // url의 주소를 GET방식으로 열 준비를 한다.
	
	
		//UTF-8 로 파라미터를 전달하기 위하여 content-type 를 지정. 반드시 open() 이후에 나와야 한다.
		//	httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');
		httpRequest.send(""); //서버에 전송한다.
	}


	/************************************************
	 * 함수명  : _resultConsultantEnteringDuplicate()
	 * 기 능	 : 컨설턴트 입사지원시 컨설턴트의 필수사항 중복검사 결과를 받아 처리하기 위한 함수.
	 * 작 성 자 : babmerseo
	 ************************************************/
	function _resultConsultantEnteringDuplicate()
	{
		/*
		 * 요청의 주기상태 (httpRequest.readyState)
		 *  0 - XMLHttpRequest를 생성하였으나 초기화하지 않음. open()함수를 실행하지 않은 상태.
		 *  1 - open()함수를 수행하였으나 send()함수를 실행하지 않은 상태.
		 *  2 - send()함수를 수행하였으나 서버가 처리를 준비하고 있는 상태.
		 *  3 - 서버가 처리를 진행중인 상태.
		 *  4 - 처리를 완료한 상태.
		 */

		// httpRequest 는 중복검사 실행 함수에서 전역변수로 생성.	
		if(httpRequest.readyState == 4) //처리를 완료 했을 경우
		{
			// 서버의 응답상태 (200 : 정상적인 완료. 이외는 모두 에러로 처리.)
			if(httpRequest.status == 200) //요청 성공
			{
				eval("result = " + httpRequest.responseText);
	
				//			중복체크 결과가 삽일 될 input box. name 외에 id='hdnIdChk' 를 넣음.
				var checkEle = document.getElementById('hdnIdChk');

				if (result.cnt > 0)	{
					alert('['+activeEle.value+']는 특정 컨설팅사 소속 컨설턴트 입니다.');
					activeEle.value='';
					checkEle.value='';
					activeEle.focus();
				} else {
					checkEle.value='checked';
					alert('입사지원 할 수 있습니다.');
				}
			}
			else
			{
				alert("ERROR : " + httpRequest.status);
			}
		}
	}
	

	/************************************************
	 * 함수명  : _openObjPosition()
	 * 기 능	 : 파라미터로 전달받은 Div 오브젝트를 특정 위치에서 보여준다.<br>
	 * @param : eleObj - 위치의 기준이 되는 Odject
	 * @param : eleDiv - 화면에 보여줄 Div
	 * @param : intTop - 기준 Object 에서 조절할 세로위치값
	 * @param : intLeft - 기준 Object 에서 수정되는 가로위치값
	 * @param : isAbsolute - 기준점 없이 절대좌표로 오픈하고 싶을때 사용 (true / false) - 생략가능
	 * 작 성 자 : Mong
	 ************************************************/
	function _openObjPosition(eleObj, eleDiv, intTop, intLeft, isAbsolute)
	{
		// 절대좌표사용여부 파라미터가 true 가 아닐경우 false 로 셋팅
		if(true!=isAbsolute) isAbsolute=false;

		intTop = (intTop) ? intTop : 0;
		intLeft = (intLeft) ? intLeft : 0;
		
		var rect = eleObj.getBoundingClientRect();
		if(isAbsolute)
		{
			eleDiv.style.top = parseInt(intTop);
			eleDiv.style.left = parseInt(intLeft);
		}
		else
		{
			eleDiv.style.top = (document.body.scrollTop + rect.top) + parseInt(intTop);
			eleDiv.style.left = (document.body.scrollLeft + rect.left) + parseInt(intLeft);
		}

		eleDiv.getAttribute('style').display='block';
		//alert(eleDiv.id);
		//selectbox_hidden(eleDiv.id);
	}


	/************************************************
	 * 함수명  : _cngLoadingImg()
	 * 기 능	 : 특정 대상을 loading 이미지로 교체, 혹은 원상복귀
	 * @param : ele			- 대상
	 * @param : loadingView	- true : 로딩이미지, false : 원상복귀
	 * 작 성 자 : Mong
	 ************************************************/
	function _cngLoadingImg(ele, loadingView)
	{
		var loadingImgEle = document.getElementById('divLoadingImg');

		var rect = ele.getBoundingClientRect();

		if(loadingView)
		{
			loadingImgEle.getAttribute('style').top = (document.body.scrollTop + rect.top);		
			loadingImgEle.getAttribute('style').left = (document.body.scrollLeft + rect.left);		
		}

		loadingImgEle.getAttribute('style').display = (!loadingView) ? "none" : "block";
		ele.getAttribute('style').display = (loadingView) ? "none" : "block";
	}

	/**********************************************
     * 함 수 명 : _getCode
     * 기     능 : 코드집합 String 에서 특정 코드를 반환한다.
	 * @param : strCodes - 코드집합
	 * @param : eleCode - 반환을 원하는 코드.
	 * Detail : 코드집합 문자열의 형태는 아래와 같다.
	 *			codeName:value|codeName:value|....
    ***********************************************/
	function _getCode(strCodes, eleCode)
	{

		var rtnCode = "";
		var idxPos = strCodes.indexOf(eleCode+':');
		//alert(idxPos);
		if(idxPos>=0)
		{

			strCodes=strCodes.substring(idxPos+eleCode.length, strCodes.length);
			var division = strCodes.indexOf('|');

			rtnCode = (division>=0) ? strCodes.substring(1, division) : strCodes.substring(1, strCodes.length);
		}

		return rtnCode;
	}
	
	
	/**********************************************
     * 함수명 : changeProjectCodeForRegist
     * 기   능 : 년도별 사업선택시 세부사업 코드리스트를 반환 
    ***********************************************/
	function changeCommonProjectCode(strVal, strGbn, strElement)
	{
		strGbn = "PJTCODE";
		var url = "/common/ChangeCode.jsp";
		var params = "strCode="+strVal+"&strGbn="+strGbn+"&strElement="+strElement;
		url = url + "?" + params;
		
		document._actionFrm.location.href = encodeURI(url);
	}
	
	/**********************************************
     * 함수명 : FileDownloadForBusiness
     * 기   능 : 사업진행시 파일을 다운로드한다.
    ***********************************************/
	function FileDownloadForBusiness(strBusiness, strSmeUserId, strPjtCode, strPjtCodePart, strQuart, strSeq, strDataFileSeq, strConsultingUserId, strContractSeq, strConsultantUserId)
	{
		var url = "/common/FileDownloadForBusiness.jsp";
		var param = "strBusiness="+strBusiness;
		param += "&strSmeUserId="+strSmeUserId;
		param += "&strPjtCode="+strPjtCode;
		param += "&strPjtCodePart="+strPjtCodePart;
		param += "&strQuart="+strQuart;
		param += "&strSeq="+strSeq;
		param += "&strDataFileSeq="+strDataFileSeq;
		if(strConsultingUserId) param += "&strConsultingUserId="+strConsultingUserId;
		if(strContractSeq) param += "&strContractSeq="+strContractSeq;
		if(strConsultantUserId) param += "&strConsultantUserId="+strConsultantUserId;
		//alert(url);
		//alert(param);
		url = url + "?"+ param;
		CommonFunc.goPageURL(url);
	}
	
	/**********************************************
     * 함수명 : convertDataString
     * 기   능 : 문자열을 날짜형식으로 변환
    ***********************************************/
	function convertDataString(obj, val)
	{
		var str = "";
		if(val.length == 8)
		{
			str = val.substring(0,4)+"."+val.substring(4,6)+"."+val.substring(6,8);
		}
		obj.value=str;
	}
	
	
	/**********************************************
     * 함수명 : convertDecimalFormat
     * 기   능 : 3자리마다 콤마 찍기
    ***********************************************/ 
		function auto_amount(frm,obj) { 
		 
		   
    	 var str = obj.value;
    	 str = str.replace(/,/gi,'');
    	 
    	 if (str.length < 1) {
    		    return "";
    		  } else {
    		  var tm = "";
    		  var ck = ""; 
    		  if (str.substring(0, 1) == "-") { //음수
    		   tm = str.substring(1, str.length);
    		   ck = "Y";
    		  } else {//양수
    		   tm = str;
    		   ck = "N";
    		  }
    		  var st = "";
    		  var cm = ",";

    		  for (var i = tm.length, j = 0; i > 0; i--, j++) {
    		   if ((j % 3) == 2) {
    		    if (tm.length == j + 1) st = tm.substring(i - 1, i) + st;
    		    else{
    		    	st = cm + tm.substring(i - 1, i) + st;
    		    }
    		   } else {
    		    st = tm.substring(i - 1, i) + st;
    		   }
    		  }
    		  if (ck == "Y") st = "-" + st;
    		 }
    	 obj.value = st;
    	 
		} 
      
			
		function str_number(str) { 
			//문자열에서 숫자만 가져가기 
			var val = str; 
			var temp = ""; 
			var num = ""; 
			var i = 0; 
			for (i=0; i<val.length; i++) { 
				temp = ""+val.substr(i,1); 
					if ( (temp >= "0" && temp <= "9") ) { 
						num = num + temp; 
					} 
			} 
			num = ""+parseInt(num,10);//십진수로 변환 
			return num; 
		}
		 
		function num_check() { 
			//숫자만 입력받기. 
			if (navigator.userAgent.indexOf("MSIE") != -1) { 
				var keyCode = event.keyCode; 
				//alert(keyCode);
				if ((keyCode < 48 && keyCode != 45) || keyCode > 57) { 
					event.returnValue=false; 
				}
			} 
		} 
 
	
	
	/**********************************************
     * 함수명 : restoreDateString
     * 기   능 : 날짜형식을 문자열로 변환
    ***********************************************/
	function restoreDateString(obj, val)
	{
		//alert(val);
		obj.value = val.replace(/\./g, "")
		obj.focus();
	}
	
	/**********************************************
     * 함수명 : findCommonCodeList
     * 기   능 : 공통코드의 결과를 가져온다.
    ***********************************************/
	function findCommonCodeList(level, strCode, element)
	{
		var obj = document.getElementById(element);
		
		var url = "/common/ChangeCommonCode.jsp";
		var params = "level="+level+"&upper="+strCode+"&element="+element+"&strName=";
		url = url+"?"+params;
		
		obj.length = 1;
		obj.options[0].text = "-- 검색중입니다 --";
		obj.options[0].value = "";
		
		document._actionFrm.location.href = encodeURI(url);
		
	}
	
	/**********************************************
     * 함수명 : _getParentNodeByTagName
     * 기   능 : 파라미터로 전달받은 element의 parentNode 중 찾고자 하는 태그를 가진 대상을 반환. (재귀호출)
    ***********************************************/
	function _getParentNodeByTagName(ele, targetTagName)
	{
		if(!targetTagName) return null;
		var obj = ele.parentNode;
//		alert(obj.tagName);
		return (obj.tagName.toUpperCase()==targetTagName.toUpperCase()) ? obj : _getParentNodeByTagName(obj, targetTagName);
	}
	
	
	/**********************************************
     * 함수명 : _executeBeginContract
     * 기   능 : 중소기업은 체결된 계약에 대하여 [착수확인]한다.
    ***********************************************/
	function _executeBeginContract(frmName)
	{
		var frm = document.getElementById(frmName);
		if(confirm('체결된 계약건을 [착수확인]하시겠습니까?'))
		{
			frm.action = "/jsp/smbacon/business/begin/BeginContractProc.jsp";
			frm.target = "_actionFrm";
			frm.submit();			
		}
	}
	
	 /**********************************************
	     * 함수명 : goSelectSME()
	    ***********************************************/
	 function goSelectSME()
	 {
	  var pjtcodeObj = document.getElementById("strPjtCode");
	  var pjtcodePartObj = document.getElementById("strPjtCodePart");
	  var quartObj = document.getElementById("strQuart");
	  
	  
	  var pjtCode = pjtcodeObj.options[pjtcodeObj.selectedIndex].value;
	  var pjtCodePart = pjtcodePartObj.options[pjtcodePartObj.selectedIndex].value;
	  var quart = quartObj.options[quartObj.selectedIndex].value;
	  
	  var url = "/jsp/smbacon/statistics/StaticsSelectSME_excel.jsp";
	     var param = "strPjtCode="+pjtCode+"&strQuart="+quart+"&strPjtCodePart="+pjtCodePart;
	     url = url + "?" + param;
	     
	     CommonFunc.goPageURL(url);
	 }
