
/************************************************************************************
(1) 시스템명		:
(2) 작 성 일		: 
(3) 작 성 자		: 
(4) 프로그램ID	: cmCommon.js
(5) 프로그램명	: 공통자바스크립트 함수
(6) 프로그램개요	: 공통자바스크립트 함수

Valid Checking
		01.E-mail
			js_Chk_Mail(Object)
		02.주민번호
			js_Chk_Ssno(Object)
		03.ID, PASSWORD 체크
			js_Chk_IdPass(Object)
		04.입력값이 NULL인지 체크
			js_Chk_Null(Object)
		05.입력값에 스페이스 이외의 의미있는 값이 있는지 체크
			js_Chk_Empty(Object)
		06.입력값에 특정 문자(chars)가 있는지 체크
         	js_Chk_CharNo(Object,chars)
		07.입력값이 특정 문자(chars)만으로 되어있는지 체크
         	js_Chk_CharYes(Object,chars)
		08.입력값이 알파벳잊지 체크
         	js_Chk_Alpah(Object)
		09.입력값이 대문자인지 체크
        	js_Chk_Upper(Object)
		10.입력값이 알파벳 소문자인지 체크
         	js_Chk_Lower(Object)
		11.입력값에 숫자만 있는지 체크
         	js_Chk_Number(Object)
		11.Object가 아닐때 숫자 체크
			js_Chk_Num(v)
		11.Object에 숫자 입력금지(onkeypress)
			js_Chk_NoChars()
		13.입력값이 알파벳,숫자로 되어있는지 체크
         	js_Chk_AlpahNum(Object)
		14.입력값이 숫자,대시(-)로 되어있는지 체크
         	js_Chk_NumDash(Object)
		15.입력값이 숫자,콤마(,)로 되어있는지 체크
         	js_Chk_NumComma(Object)
		16.입력값이 사용자가 정의한 포맷 형식인지 체크
         	js_Chk_ValidFormat(Object,format)
		17.입력값이 전화번호 형식(숫자-숫자-숫자)인지 체크
         	js_Chk_Phone(Object)
		18.한글, 영문 문자열 길이 체크
			js_Chk_StrLen(Object)
		19.선택된 라디오버튼이 있는지 체크
			js_Chk_RadioNull(Object)
		20.선택된 체크박스가 있는지 체크
			js_Chk_CheckedNull(Object)
		22.From ~ To 날짜 체크
			js_Chk_FromToYmd(fr_date, to_date, flag, days)
		23.사업자 번호 채크
			js_Chk_busino(Object)
		24. 문자열 공백제거
			trimSpace(str)
	

Etc
		01.체크박스 전체선택
			js_Etc_AllCheck(Object, Objnm)
		02.체크박스 전체취소
			js_Etc_AllCancel(Object, Objnm)
		06.날짜수 계산
			js_Cal_Date(fr_ymd, to_ymd)
		07.focus 이동
			js_SetFocus(cur_Obj, next_Obj, Len)

Return
		08.증가값 y(년),m(월),d(일) 를 받아 20020808형식으로 return
			js_Rtn_DateYmd(y,m,d)

ReMove
		21.무조건 공백문자 제거
			js_Rm_Space(Object)
		03.입력값에서 콤마를 없앤다
			js_Rm_Comma(Object)

String
		05.문자열길이 체크후 나머지자르기(한글포함)
			js_Str_ChkSub(max,Object)
		04.문자열길이 체크후 상태표시줄에 보이기
			js_Str_ChkStatus(max,Object)
		03.금액 세자리 단위로 , 보이기
			js_Str_PriceFormat(Object)

Combo Box
		01.자동이체 은행 ListBox
			js_Combo_MakeBank(Object, code)
		02.전화번호 지역번호 ListBox
			js_Combo_MakeDDD(Object, code)
		03.휴대폰 사업자번호 ListBox
			js_Combo_MakeHP(Object, code)
		04.자동 년월일 입력 ListBox
			js_Combo_MakeDateYmd(Obj_year, Obj_month, Obj_day, def_ymd)

공통검색
		01.공통검색 체크 스크립트
			fs_Dfast()
(7) 수 정 일		: 2002-08-22
(8) 수 정 자		: 
(9) 수정내용		:
	1.
	2.
 ************************************************************************************/
//  	var sp_char = " !@#$%^&*()_-+|/;:,.?`~{}[]";	// 특수문자
/**
 *		Email 체크
 *		if (!js_Chk_Mail(form.email)) {
 *         alert("올바른 이메일 주소가 아닙니다.");
 *      }
 */
	function js_Chk_Mail_1(Object) 
	{

		var format = /^((\w|[\-\.])+)@((\w|[\-\.])+)\.([A-Za-z]+)$/;
		return js_Chk_ValidFormat(Object,format);
	}

	function checkemail(str){
		var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
		
		if (filter.test(str)){
			testresults=true
		}else{
			testresults=false
		}
		return (testresults)
	}

	function js_Chk_Mail(Obj) {
		if (Obj == null || Obj == "") return false;
	
		//@ . 존재여부 체크
		if (Obj.indexOf('@') < 0 || Obj.indexOf('.') < 0) return false;
	
		if (Obj.indexOf('.') == (Obj.length - 1)) return false;
	
		Obj = Obj.toUpperCase();
		var ascCd = 0; //ascii code
		var cntAt = 0; //@ 갯수
		var poDot = 0; //. 위치
	
		for (var i=0; i < Obj.length; i++) {
			ascCd = Obj.charCodeAt(i);
			//48 ~ 57 (0 ~ 9), 65 ~ 90 (A ~ Z)
			ascCd = ( (ascCd >= 48 && ascCd <= 57) || (ascCd >= 65 && ascCd <= 90) ) ? -1 : ascCd
	
			switch (ascCd) {
				case -1 :	//48 ~ 57 (0 ~ 9), 65 ~ 90 (A ~ Z)
				case 45 :	//-
				case 95 :	//_
					break;
	
				case 46 :	//.
					if (cntAt == 0) return false;
					if (poDot == (i-1)) return false;
					poDot = i
					break;
	
				case 64 :	//@
					if (cntAt == 1) return false;
					cntAt = 1;
					poDot = i;
					break;
	
				default :
					return false;
			}
		}
	
		return true;
	}


/**
 *		Object가 아닐때 숫자 체크
 */
	function js_Chk_Num(v)
	{
        var v_pw = new String(v);
        var j=0;
        var k=0;
        if (v == '') return true;
        for (i=0; i < v_pw.length; i++){
        	if (v_pw.substring(i,i+1) >= '0' && v_pw.substring(i, i+1) <= '9'){
            	j++;
            }
            if(v_pw.substring(i,i+1)=='.') {
            	j++;
            	k++;
            }
        }
        if (j == v_pw.length && k <2){
               return true;
        }else {
               return false;
        }
	}
/**
 *		주민등록번호 체크
 */
	function js_Chk_Ssno(Obj_val) 
	{
		var s = Obj_val;

		if (!js_Chk_Num(s)){
			alert('주민등록번호는 반드시 숫자만 입력하십시요!');
			return false;
		}

		if( s.charAt(6) == 1 || s.charAt(6) == 2 || s.charAt(6) == 3 || s.charAt(6) == 4)
		{
			if( s.charAt(12) == (( 11 - ((s.charAt(0)*2+s.charAt(1)*3+s.charAt(2)*4
					 +s.charAt(3)*5+s.charAt(4)*6+s.charAt(5)*7
					 +s.charAt(6)*8+s.charAt(7)*9+s.charAt(8)*2
					 +s.charAt(9)*3+s.charAt(10)*4+s.charAt(11)*5)
					% 11)))%10)
			return true;
		}
		return false;
	}

/**
 *		ID, PASSWORD 체크
 */
	function js_Chk_IdPass(Object)
	{
	        var flag = 0;
	        var s;
	        for (i=0; i < Object.length; i++) {
	                s = Object.substring(i, i+1);
	                if (!((s >= '0' && s <= '9' ) || (s >= 'a' && s <= 'z') || (s >= 'A' && s <= 'Z'))) {
	                        flag = 1;
	                        break;
	                }
	        }
	        if (flag == 0) return true;
	        else if (flag == 1) return false;
	}

/**
 *		입력값이 NULL인지 체크
 */
	function js_Chk_Null(Object) {
	    if (Object.value == null || Object.value == "" || js_Trim(Object.value).length == 0) {
	        return true;
	    }
	    return false;
	}

/**
 *		입력값에서 null제거
 */
	function js_Trim(objval){
		var len = objval.length;
		var s = 0;
		var e = len;
		for(var i=0; i<len; i++){
			if(objval.charAt(i)!=" "){
				s = i;
				break;
			}
			if(i == len-1){
				return "";
			}
		}
		for(var j=e; j > s; j--){
			if(objval.charAt(j-1)!=" "){
				e = j;
				break;
			}
		}
		if((s == 0)&&(e == len)){
				return objval;
		}
		return objval.substring(s,e);
	}

/**
 *		입력값에 스페이스 이외의 의미있는 값이 있는지 체크
 *		ex) if (js_Chk_Empty(form.keyword)) {
 *				alert("검색조건을 입력하세요.");
 *			}
 */
	function js_Chk_Empty(Object) {
	    if (Object.value == null || Object.value.replace(/ /gi,"") == "") {
	        return true;
	    }
	    return false;
	}
	
/**
 *		입력값에 특정 문자(chars)가 있는지 체크
 *		특정 문자를 허용하지 않으려 할 때 사용
 *		ex) if (js_Chk_CharNo(form.name,"!,*&^%$#@~;")) {
 *				alert("이름 필드에는 특수 문자를 사용할 수 없습니다.");
 *			}
 *
 *		입력값이 특정 문자(chars)만으로 되어있는지 체크
 *		특정 문자만 허용하려 할 때 사용
 *		ex) if (!js_Chk_CharYes(form.blood,"ABO")) {
 *				alert("혈액형 필드에는 A,B,O 문자만 사용할 수 있습니다.");
 *			}
 */
	function js_Chk_CharNo(Object,chars) {
		for (var inx = 0; inx < Object.value.length; inx++) {
			if (chars.indexOf(Object.value.charAt(inx)) != -1)
				return true;
		}
		return false;
	}
	function js_Chk_CharYes(Object,chars) {
		for (var inx = 0; inx < Object.value.length; inx++) {
			if (chars.indexOf(Object.value.charAt(inx)) == -1){
				return false;
			}
		}
		return true;
	}

/**
 *		입력값이 알파벳인지 체크
 */
	function js_Chk_Alpah(Object) {
		var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
	//	return js_Chk_CharYes(Object,chars);	// form check
		if(!js_Chk_CharYes(Object,chars)){	// onBlur event
			alert('알파벳만 입력하실 수 있습니다.');
			Object.focus();
			return false;
		}else {
			return true;
		}
	}

/**
 *		입력값이 알파벳 대문자인지 체크
 */
	function js_Chk_Upper(Object) {
		var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
		if(!js_Chk_CharYes(Object,chars)){
			alert('알파벳 대문자만 입력하실 수 있습니다.');
			Object.focus();
			return false;
		}else {
			return true;
		}
	}

/**
 *		입력값이 알파벳 소문자인지 체크
 */
	function js_Chk_Lower(Object) {
		var chars = "abcdefghijklmnopqrstuvwxyz";
		if(!js_Chk_CharYes(Object,chars)){
			alert('알파벳 소문자만 입력하실 수 있습니다.');
			Object.focus();
			return false;
		}else {
			return true;
		}
	}

/**
 *		입력값에 숫자만 있는지 체크
 *		onblur="js_Chk_Number(this);" onkeypress="js_Chk_NoChars();" 함께 사용권장
 */
	function js_Chk_Number(Object) {
		var chars = "0123456789";
		if(!js_Chk_CharYes(Object,chars)){
			alert('숫자만 입력하실 수 있습니다.');
			Object.value = "";
			Object.focus();
			return false;
		}else {
			return true;
		}
	}
/**
 *		문자입력(영문자) 금지 함수 설정
 */
	function js_Chk_NoChars()
	{
		if(( event.keyCode >= 97 && event.keyCode <= 122) || (event.keyCode >=65 && event.keyCode <=90))
		{
			event.keyCode=0;
		}
	}
/**
 *		입력값이 알파벳,숫자로 되어있는지 체크
 */
	function js_Chk_AlpahNum(Object) {
		var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
		if(!js_Chk_CharYes(Object,chars)){
			alert('알파벳과 숫자만 입력하실 수 있습니다.');
			Object.focus();
			return false;
		}else {
			return true;
		}
	}

/**
 *		입력값이 숫자,대시(-)로 되어있는지 체크
 */
	function js_Chk_NumDash(Object) {
		var chars = "-0123456789";
		return js_Chk_CharYes(Object,chars);
	}

/**
 *		입력값이 숫자,콤마(,)로 되어있는지 체크
 */
	function js_Chk_NumComma(Object) {
		var chars = ",0123456789";
		return js_Chk_CharYes(Object,chars);
	}
/**
 *		입력값이 숫자,Dot(.)로 되어있는지 체크
 */
	function js_Chk_NumDot(Object) {
		var chars = ".0123456789";
		return js_Chk_CharYes(Object,chars);
	}

/**
 *		입력값이 사용자가 정의한 포맷 형식인지 체크
 *		자세한 format 형식은 자바스크립트의 'regular expression'을 참조
 */
	function js_Chk_ValidFormat(Object,format) {
		if (Object.value.search(format) != -1) {
			return true; //올바른 포맷 형식
		}else {
			return false;
		}
	}

/**
 *		입력값이 전화번호 형식(숫자-숫자-숫자)인지 체크
 */
	function js_Chk_Phone(Object) {
		var format = /^(\d+)-(\d+)-(\d+)$/;
		return js_Chk_ValidFormat(Object,format);
	}

/**
 *		한글, 영문 문자열 길이 체크
 *		ex) if (js_Chk_StrLen(form.title) > 100) {
 * 				alert("제목은 한글 50자(영문 100자) 이상 입력할 수 없습니다.");
 *			}
 */
	function js_Chk_StrLen(Object) {
	    var byteLength = 0;
	    for (var inx = 0; inx < Object.value.length; inx++) {
	        var oneChar = escape(Object.value.charAt(inx));
	        if ( oneChar.length == 1 ) {
	            byteLength ++;
	        } else if (oneChar.indexOf("%u") != -1) {
	            byteLength += 2;
	        } else if (oneChar.indexOf("%") != -1) {
	            byteLength += oneChar.length/3;
	        }
	    }
	    return byteLength;
	}

/**
 *		선택된 라디오버튼이 있는지 체크
 */
	function js_Chk_RadioNull(Object) {
	    if (Object.length > 1) {

	        for (var inx = 0; inx < Object.length; inx++) {
	            if (Object[inx].checked) return true;
	        }
	    } else {
	        if (Object.checked) return true;
	    }
	    return false;
	}

/**
 *		선택된 체크박스가 있는지 체크
 */
	function js_Chk_CheckedNull(Object) {
	    return js_Chk_RadioNull(Object);
	}

/**
 *		무조건 공백문자 제거 
 */
	function js_Rm_Space(Object)
	{
		var rtn = "";
		if (Object.length > 0 && Object.indexOf(' ') >= 0)
		{
			for (var i=0; i < Object.length; i++)
			{
				if (Object.substr(i, 1) == ' ') continue;
				else rtn = rtn + Object.substr(i,1);
			}	
		}
	
		return rtn;
	}



/**
 *		자동이체 은행ListBox
 */
	function js_Combo_MakeBank(Object, code)
	{
		var BankCodeCd = new Array();
		var BankCodeNm = new Array();		
		
		BankCodeCd[0]  = "03";
		BankCodeCd[1]  = "04";
		BankCodeCd[2]  = "05";
		BankCodeCd[3]  = "06";
		BankCodeCd[4]  = "11";
		BankCodeCd[5]  = "20";
		BankCodeCd[6]  = "21";
		BankCodeCd[7]  = "23";
		BankCodeCd[8]  = "25";
		BankCodeCd[9]  = "26";
		BankCodeCd[10] = "27";
		BankCodeCd[11] = "31";
		BankCodeCd[12] = "32";
		BankCodeCd[13] = "34";
		BankCodeCd[14] = "35";
		BankCodeCd[15] = "37";
		BankCodeCd[16] = "39";
		BankCodeCd[17] = "71";
		BankCodeCd[18] = "81";
		BankCodeCd[19] = "83";	
		BankCodeCd[20] = "07";		
		BankCodeCd[21] = "12";		
			
		BankCodeNm[0]  = "기업은행";		
		BankCodeNm[1]  = "국민은행";
		BankCodeNm[2]  = "외한은행";
		BankCodeNm[3]  = "주택은행";
		BankCodeNm[4]  = "농협중앙회";
		BankCodeNm[5]  = "한빛은행";
		BankCodeNm[6]  = "조흥은행";
		BankCodeNm[7]  = "제일은행";
		BankCodeNm[8]  = "서울은행";
		BankCodeNm[9]  = "신한은행";	
		BankCodeNm[10] = "한미은행";
		BankCodeNm[11] = "대구은행";		
		BankCodeNm[12] = "부산은행";
		BankCodeNm[13] = "광주은행";
		BankCodeNm[14] = "제주은행";			
		BankCodeNm[15] = "전북은행";		
		BankCodeNm[16] = "경남은행";
		BankCodeNm[17] = "우체국";					
		BankCodeNm[18] = "하나은행";		
		BankCodeNm[19] = "평화은행";
		BankCodeNm[20] = "수산업협";
		BankCodeNm[21] = "단위농협";		
	
		for (var i=0; i < BankCodeCd.length; i++)
		{
			if (code.length > 0 && code == BankCodeCd[i])
				  Object.document.writeln('<option value='+BankCodeCd[i]+' selected>'+BankCodeNm[i]+'</option>');
			else  Object.document.writeln('<option value='+BankCodeCd[i]+'>'+BankCodeNm[i]+'</option>');
					
		}
	
	}
/**
 *		전화번호 지역번호 ListBox
 */
	function js_Combo_MakeDDD(Object, code)
	{
		var DDDCd = new Array();
	
		DDDCd[0] = "02";
		DDDCd[1] = "031";
		DDDCd[2] = "032";
		DDDCd[3] = "033";
		DDDCd[4] = "041";
		DDDCd[5] = "042";
		DDDCd[6] = "043";
		DDDCd[7] = "051";
		DDDCd[8] = "052";
		DDDCd[9] = "053";
		DDDCd[10] = "054";
		DDDCd[11] = "055";
		DDDCd[12] = "061";
		DDDCd[13] = "062";
		DDDCd[14] = "063";
		DDDCd[15] = "064";
		
		for (var i=0; i < DDDCd.length; i++)
		{
			if (code.length > 0 && code == DDDCd[i])
				  Object.document.writeln('<option value='+DDDCd[i]+' selected>'+DDDCd[i]+'</option>');
			else  Object.document.writeln('<option value='+DDDCd[i]+'>'+DDDCd[i]+'</option>');
					
		}
		
	}
/**
 *		휴대폰 사업자번호 ListBox
 */
	function js_Combo_MakeHP(Object, code)
	{
		var HPCd = new Array();
	
		HPCd[0] = "011";
		HPCd[1] = "016";
		HPCd[2] = "017";
		HPCd[3] = "018";
		HPCd[4] = "019";
	
		for (var i=0; i < HPCd.length; i++)
		{
			if (code.length > 0 && code == HPCd[i])
				  Object.document.writeln('<option value='+HPCd[i]+' selected>'+HPCd[i]+'</option>');
			else  Object.document.writeln('<option value='+HPCd[i]+'>'+HPCd[i]+'</option>');
					
		}
		
	}

/**
 *		자동 년월일 입력 ListBox
 *		Function Name		: SetDateYmd_Combo
 *		Description			: 다이나믹 날짜 콤보
 *		Argument1 Obj_year	: 년에 해당하는 오브젝트(ex: document.form.year)
 *		Argument2 Obj_month	: 월에 해당하는 오브젝트(ex: document.form.month)
 *		Argument3 Obj_day	: 일에 해당하는 오브젝트(ex: document.form.day)
 *		Argument4 def_ymd	: 기본 입력값
 *		Creator/Created		: 
 */
	function js_Combo_MakeDateYmd(Obj_year, Obj_month, Obj_day, def_ymd)
	{
		var year, month, day;
		var current, Obj_year, Obj_month, Obj_day, days, i, j, def_ymd;
		
		current = new Date();
	
		if(def_ymd==''){
	
			year	= (Obj_year.value)? Obj_year.value : '';
			month	= Obj_month.value;
			day		= '1';
		
		} else {
	
			if(def_ymd.length==8){
				year	= Number(def_ymd.substring(0,4));
				month	= Number(def_ymd.substring(4,6));
				day		= Number(def_ymd.substring(6,8));
			}
			
		}
	
		if(year==''){
	
			year = current.getFullYear();
	
			Obj_year.options[0] = new Option("선택",'');
			Obj_year.options[1] = new Option("이전",year-10);
			for (i=2, j=year-9; i < 22; i++, j++)
				Obj_year.options[i] = new Option(j, j);
			
			Obj_year.options[22] = new Option("다음",year+22);
	
			if(Obj_month)
				for(var i=Obj_month.length-1; i>-1; i--)
					Obj_month.options[i]=null;
			
			Obj_month.options[0] = new Option("선택",'');
			if(Obj_day)
				for(var i=Obj_day.length-1; i>-1; i--)
					Obj_day.options[i]=null;
	
			Obj_day.options[0] = new Option("선택",'');
			
			Obj_month.options[0].selected = true;
			Obj_day.options[0].selected = true;
	
	
		} else {
	
			year = (year) ? Number(year) : current.getFullYear();
			
			Obj_year.options[0] = new Option("선택",'');  
			Obj_year.options[1] = new Option("이전",year-10);  
			for (i=2, j=year-9; i < 22; i++, j++)
				Obj_year.options[i] = new Option(j, j);
			
			Obj_year.options[i] = new Option("다음",j);  
	
			month =(month)? Number(month) : current.getMonth()+1;
	
			for (i=0; i < 12; i++) {
				j = (i < 9) ? '0'+(i+1) : i+1;
				Obj_month.options[i] = new Option(j, j);
			}
			
			days = new Date(new Date(year, month, 1)-86400000).getDate();
	
			for(var i=0; i<Obj_day.length; i++)
				Obj_day.options[i]=null;
	
			for (i=0, j; i < days; i++) {
				j = (i < 9) ? '0'+(i+1) : i+1;
				Obj_day.options[i] = new Option(j, j);
			}
	
			Obj_year.value = year;
			Obj_month.options[month-1].selected = true;
			Obj_day.options[day-1].selected = true;
	
	  } 
		return;
	}
/**
 *		자동 년월 입력 ListBox
 *		Function Name		: SetDateYmd_Combo
 *		Description			: 다이나믹 날짜 콤보
 *		Argument1 Obj_year	: 년에 해당하는 오브젝트(ex: document.form.year)
 *		Argument2 Obj_month	: 월에 해당하는 오브젝트(ex: document.form.month)
 *		Argument3 Obj_day	: 일에 해당하는 오브젝트(ex: document.form.day)
 *		Argument4 def_ymd	: 기본 입력값
 *		Creator/Created		: 
 */
	function fs_Combo_MakeDateYmd2(Obj_year, Obj_month, Obj_day, def_ymd)
	{
		var year, month, day;
		var current, Obj_year, Obj_month, Obj_day, days, i, j, def_ymd;	
		current = new Date();
		if(def_ymd==''){
			year	= (Obj_year.value)? Obj_year.value : '';
			month	= Obj_month.value;
			day		= '1';	
		} else {
			if(def_ymd.length==8){
				year	= Number(def_ymd.substring(0,4));
				month	= Number(def_ymd.substring(4,6));
				day		= Number(def_ymd.substring(6,8));
			}
		}
		if(year==''){
			year = current.getFullYear();
			Obj_year.options[0] = new Option("선택",'');
			Obj_year.options[1] = new Option("이전",year-10);
			for (i=2, j=year-9; i < 22; i++, j++)
				Obj_year.options[i] = new Option(j, j);
			Obj_year.options[22] = new Option("다음",year+22);
			if(Obj_month)
				for(var i=Obj_month.length-1; i>-1; i--)
					Obj_month.options[i]=null;
					Obj_month.options[0] = new Option("선택");
			Obj_month.options[0].selected = true;
		} else {
			year = (year) ? Number(year) : current.getFullYear();		
			Obj_year.options[0] = new Option("선택",'');  
			Obj_year.options[1] = new Option("이전",year-10);  
			for (i=2, j=year-9; i < 22; i++, j++)
				Obj_year.options[i] = new Option(j, j);		
			Obj_year.options[i] = new Option("다음",j);  
			month =(month)? Number(month) : current.getMonth()+1;
			for (i=0; i < 12; i++) {
				j = (i < 9) ? '0'+(i+1) : i+1;
				Obj_month.options[i] = new Option(j, j);
			}		
			days = new Date(new Date(year, month, 1)-86400000).getDate();
			for(var i=0; i<Obj_day.length; i++)
				Obj_day.options[i]=null;	

			for (i=0, j; i < days; i++) {
				j = (i < 9) ? '0'+(i+1) : i+1;
				Obj_day.options[i] = new Option(j, j);
			}
	
			Obj_year.value = year;
			Obj_month.options[month-1].selected = true;
			Obj_day.options[day-1].selected = true;
	
			
		} 
		return;
	}
/**
 *		증가값 y(년),m(월),d(일) 를 받아 20020808형식으로 return
 *		년,월,일(0,0,0 이면 현재 년월일)
 */
	function js_Rtn_DateYmd(y,m,d)
	{
		var date = new Date();
	
	    date.setFullYear(date.getFullYear() + y); //	y 년을 더함
	    date.setMonth(date.getMonth() + m);       //	m 월을 더함
	    date.setDate(date.getDate() + d);         //	d 일을 더함

	    var year  = date.getFullYear();
	    var month = date.getMonth() + 1;	// 1월=0,12월=11이므로 1 더함
	    var day   = date.getDate();

	    if (("" + month).length == 1) { month = "0" + month; }// 두자리로
	    if (("" + day).length   == 1) { day   = "0" + day;   }// 두자리로
	
	    return ("" + year + month + day);	// ex)20020808
	}

/**
 *		From ~ To 날짜 체크
 *			js_Chk_FromToYmd(fr_date, to_date, flag, days)
 *			fr_date(20020810): 조회시작일, to_date(20021120): 조회종료일
 *			flag - 
 *			0 : 미래공지형,
 *			1 : 과거일조회형,
 *			2 : 조회기간체크형
 *			기간 - 날짜수(ex) 3달이면 92 일정도
 *		ex) 과거일조회형으로 92일 기간만 조회가능토록함
 *			js_Chk_FromToYmd(fr_date, to_date, 1, 92)
 *			var msg = '날짜범위를 확인하십시요!';
 *			var msg = '현재날짜 보다 큰 날짜는 선택할 수 없습니다!';
 *			var msg = '조회날짜 범위는 1개월만 가능합니다!';
 *
 *		Object가 하나일 경우는 to_date란에 0을 넣는다.
 */
	function js_Chk_FromToYmd(fr_date, to_date, flag, days)
	{
		var curdate = js_Rtn_DateYmd(0,0,0);	// 20021111

	    var v_dif 		= js_Cal_Date(fr_date, to_date)+1;
		if(to_date != 0) {
			switch(Number(flag)){
				case 0:
					if (fr_date > to_date){
				        return false;		        
				    }else {
						return true;		
					}
					break;
				case 1:
				    if (curdate < fr_date || curdate < to_date){
				        return false;
					}else {
						return true;
					}
					break;
				case 2:
				    if (v_dif > days){
				        return false;
					}else {
						return true;		
					}
					break;
				default:
					break;
			}//swithc-case end
		}else {//Object가 하나일 경우
			if (curdate < fr_date){ // 현재일 보다 큰 날짜는 선택할 수 없을 경우(생일)
				return false;
			}else {
				return true;
			}
		}
	}
	
/**
 *		체크박스 전체선택
 */
	function js_Etc_AllCheck(Object, Objnm)
	{
		for (i=0; i < Object.elements.length; i++) {
			if (Object.elements[i].name == Objnm) {
				Object.elements[i].checked = true;
			}
		}
	}
/*
	var value = false;

	if ( select_mode == 0 ){
		value = true;
		select_mode = 1;
	}else{
		value = false;
		select_mode = 0;
	}
	
	for(var i=0;i<9;i++){
		document.inform.elements[i].checked = value;
	}
*/
/**
 *		체크박스 전체취소
 */
	function js_Etc_AllCancel(Object, Objnm)
	{
		for (i=0; i < Object.elements.length; i++) {
			if (Object.elements[i].name == Objnm) {
				Object.elements[i].checked = false;
			}
		}
	}

/**
 *		Next Focus 다음 입력필드로 이동
 *		ex) onkeyup  = 'js_SetFocus(this, document.form.ssno2, 6)'
 */
	function js_SetFocus(cur_Obj, next_Obj, Len) {
		if (cur_Obj.value.length == Len) {
			next_Obj.focus();
		}
	}

/**
 *		입력값에서 콤마를 없앤다.
 */
	function js_Rm_Comma(Object) {
		return (Object.value).replace(/,/gi,"");
	}

/**
 *		문자열길이 체크후 상태표시줄에 보이기
 *		ex) onkeyup   = 'js_Str_ChkStatus(200,this)' 와 
 *		    onkeydown = 'js_Str_ChkStatus(200,this)' 함께 사용
 */
	function js_Str_ChkStatus(max,Object){
		var len = js_Chk_StrLen(Object);
		window.status = '최대:'+max+'  현재:'+len;
	}

/**
 *		문자열길이 체크후 나머지자르기(한글포함)
 *		ex) onBlur = 'js_Str_ChkSub(200,this)'
 */
	function js_Str_ChkSub(max,Object){
	
		js_Str_ChkStatus(max,Object);
	
		var byteLength = 0;
		var rtnStr = "";	// 문자열을 잘라 입력필드에 넣는다
		var Len = js_Chk_StrLen(Object);
	
		if(Len > max){
//			if(!confirm('최대 '+max+'자까지 입력가능합니다.\n\n마지막 '+(Len-max)+'자를 삭제하시겠습니까?')){
//				return false;
//			}

			alert('최대 '+max+'자까지 입력가능합니다.\n\n마지막 '+(Len-max)+'자는 삭제됩니다.');

			for (var inx = 0; inx < Object.value.length; inx++) {
				var oneChar1 = Object.value.charAt(inx)
				var oneChar = escape(oneChar1);
				if ( oneChar.length == 1 )
					byteLength ++;
				else if (oneChar.indexOf("%u") != -1)
					byteLength += 2;
				else if (oneChar.indexOf("%") != -1)
					byteLength += oneChar.length/3;
	
				rtnStr+=oneChar1;
	
				if(byteLength >= max) break;
				else if((byteLength+1) >= max)
					if (escape(Object.value.charAt(inx+1)).indexOf("%u") != -1) break;
			
		    }//end for
		    
			Object.value = rtnStr;
	
			js_Str_ChkStatus(max,Object);
		
		}else {
			js_Str_ChkStatus(max,Object);
		}
	
		js_Str_ChkStatus(max,Object);
	}

/**
 *		fr_ymd에서 to_ymd 까지 날짜수 계산
 */
	function js_Cal_Date(fr_ymd, to_ymd) {

		var base = new Date();

		var target = new Date();

		if(fr_ymd.length==8) {
			base = new Date(fr_ymd.substring(0,4), fr_ymd.substring(4,6), fr_ymd.substring(6,8));
		} else if (fr_ymd.length==10) {
			base = new Date(fr_ymd.substring(0,4), fr_ymd.substring(5,7), fr_ymd.substring(9,10));
		}
		if(to_ymd.length==8) {
			target = new Date(to_ymd.substring(0,4), to_ymd.substring(4,6), to_ymd.substring(6,8));
		} else if (to_ymd.length==10) {
			target = new Date(to_ymd.substring(0,4), to_ymd.substring(5,7), to_ymd.substring(9,10));
		}

		return ((target-base)/(3600))/24000;
	}

/**
 *		사업자 번호 채크js_Chk_busino(Object)
 */
	function js_Chk_busino(Object){ 

		var sum = 0;
		var getlist =new Array(10);
		var chkvalue =new Array("1","3","7","1","3","7","1","3","5");
		
		for (var i=0;i<10;i++){  
			getlist[i] = Object.value.substring(i,i+1); 
		} 
		
		for (var i=0;i<9;i++){  
			sum += getlist[i]*chkvalue[i]; 
		} 
		sum = sum +parseInt((getlist[8]*5)/10) ; 
		sidliy = sum%10; 
		sidchk = 0; 
		
		if ( sidliy != 0 ) {  
			sidchk = 10 - sidliy;  
		} else {  
			sidchk = 0;  
		} 
		if ( sidchk != getlist[9] ) { 
			return false; 
		}  
		return true; 
	}

	function js_Chk_busino_value(value){ 

		var sum = 0;
		var getlist =new Array(10);
		var chkvalue =new Array("1","3","7","1","3","7","1","3","5");
		
		for (var i=0;i<10;i++){  
			getlist[i] = value.substring(i,i+1); 
		} 
		
		for (var i=0;i<9;i++){  
			sum += getlist[i]*chkvalue[i]; 
		} 
		sum = sum +parseInt((getlist[8]*5)/10) ; 
		sidliy = sum%10; 
		sidchk = 0; 
		
		if ( sidliy != 0 ) {  
			sidchk = 10 - sidliy;  
		} else {  
			sidchk = 0;  
		} 
		if ( sidchk != getlist[9] ) { 
			return false; 
		}  
		return true; 
	}
	


/**
 *		금액 세자리 단위로 , 보이기
 */
	function js_Str_PriceFormat(val) {
		var con1 = "'" + val + "'";
		if (con1.indexOf("-") != -1) {
			con1 = con1.substring(2);
			con1 = "'" + con1;
			var cfm = 1;
		}

		con = con1.length;

		var price = con1.substring(1,con-1);

		t_len=price.length;

		t_mod=t_len % 3;

		if(t_mod==0) {
			 t_mod=3;
		}

		t_int=parseInt(t_len/3)+1;

		if(t_mod==3) {
			t_int=t_int-1;
		}

		t_mid = price.substring(0,t_mod);
		t_mid = price.substring(0,t_mod);

		if(t_int == 3 && t_len == 7) {
	        t_mid=t_mid + "," + price.substring(1,4) + "," + price.substring(4,t_len+1);
		} else if(t_int == 3 && t_len == 8) {
	        t_mid=t_mid + "," + price.substring(2,5) + "," + price.substring(5,t_len+1);
	    } else if(t_int == 3 && t_len==9)  {
	        t_mid=t_mid + "," + price.substring(3,6) + "," + price.substring(6,t_len+1);
	    } else if(t_len > 9 && t_len < 13)  {
	        t_mid=t_mid + "," + price.substring(t_len-9,t_len-6) + "," + price.substring(t_len-6,t_len-3)+ "," + price.substring(t_len-3,t_len+1);
	    } else if(t_len > 12 && t_len < 16)  {
	        t_mid=t_mid + "," + price.substring(t_len-12,t_len-9) + "," + price.substring(t_len-9,t_len-6)+ "," + price.substring(t_len-6,t_len-3) + "," + price.substring(t_len-3,t_len+1);
	    } else if(t_len < 4) {
	        t_mid= price;
	    } else {
	        t_mid=t_mid + "," + price.substring(t_mod,t_len);
		}
		
		if(t_mid == "0,") {
			t_mid = "";
		}
	    if (cfm == 1) {
	        return  "-" + t_mid;
	    } else {
	        return t_mid;
	    }
	}

	function dataCheck(name, tel)
	{
	   
	   	
		phoneRe = /(01[16789])-?([0-9]{3,4})-?([0-9]{4})/ ;
		if (phoneRe.exec(tel))
		{
			tel = RegExp.$1 + RegExp.$2 + RegExp.$3;
		}
		else
		{
			alert( "핸드폰번호가 형식에 맞지 않습니다.");
			return false;
		}
		
		return true;
	}
	function a(){
		alert('test');	
	}
	
	//입력데이터에 공백있을때 경고
	function js_Empty_Warning(Object){
		var num = Object.value.length; 
	  	for(var i = 0; i < num; i++) {
	    	var chr = Object.value.substr(i,1);         
			if((chr == ' ')) {
		    	//alert('공백없이 입력하여 주세요.');
	        	//Object.focus();
	        	//return;
			   	return true;
			}
	    }
	}

// 한글이외의 캐릭터가 있을경우 false 
// 한자나 숫자 영문의 경우 false 

function checkKoreanOnly( koreanChar ) {
   
   if ( koreanChar == null ) return false ;
   
   for(var i=0; i < koreanChar.length; i++){ 

     var c=koreanChar.charCodeAt(i); 

     //( 0xAC00 <= c && c <= 0xD7A3 ) 초중종성이 모인 한글자 
     //( 0x3131 <= c && c <= 0x318E ) 자음 모음 

     if( !( ( 0xAC00 <= c && c <= 0xD7A3 ) || ( 0x3131 <= c && c <= 0x318E ) ) ) {      
        return false ; 
     }
   }  
   return true ;
}
/*
// 영문 이외의 캐릭터가 있을경우 false 
 
function checkEnglishOnly( englishChar ) {  
    
    if ( englishChar == null ) return false ;
       
    for( var i=0; i < englishChar.length;i++){          
       var c=englishChar.charCodeAt(i);       
       if( !( (  0x61 <= c && c <= 0x7A ) || ( 0x41 <= c && c <= 0x5A ) ) ) {         
        return false ;       
       }
     }      
    return true ;
     
}
*/
// 숫자 이외의 캐릭터가 있을경우 false 
 
function checkDigitOnly( digitChar ) {  
    
    if ( digitChar == null ) return false ;
       
    for(var i=0;i<digitChar.length;i++){          
       var c=digitChar.charCodeAt(i);       
       if( !(  0x30 <= c && c <= 0x39 ) ) {         
        return false ;       
       }
     }      
    return true ;
     
}

	
function CheckResno(data) 
{
        var s = data;
        if (s.length < 13)
        {
                alert('--주민등록번호 13자리를 입력하세요.!');
                return false;
        }
        if (!number_check(s))
        {
                alert('--주민등록번호는 반드시 숫자만 입력하십시요!');
                return false;
        }
        if( s.charAt(6) == 1 || s.charAt(6) == 2 || s.charAt(6) == 3 || s.charAt(6) == 4)
        {
	        if( s.charAt(12) == (( 11 - ((s.charAt(0)*2+s.charAt(1)*3+s.charAt(2)*4
					 +s.charAt(3)*5+s.charAt(4)*6+s.charAt(5)*7
					 +s.charAt(6)*8+s.charAt(7)*9+s.charAt(8)*2
					 +s.charAt(9)*3+s.charAt(10)*4+s.charAt(11)*5)
					% 11)))%10)
				//alert('맞는 주민번호입니다...');
		        return true;
        }
        alert('--주민등록번호를 확인하십시요!');
        return false;
}
function number_check(v)
{
		var v_pw = new String(v);
		var j=0;
		if (v == '') return true;
		for (i=0; i < v_pw.length; i++){
			if (v_pw.substring(i,i+1) >= '0' && v_pw.substring(i, i+1) <= '9'){
				j++;
			}
		}

		if (j == v_pw.length){
			return true;
		}else {
			return false;
		}
}

	function js_Date_check(Obj_year, Obj_month, Obj_day){
		var year, month, day;
		var current, Obj_year, Obj_month, Obj_day, days, i, j, def_ymd;

		current = new Date();
	
		year	=	eval(Obj_year.value);
		month	=	eval(Obj_month.value);
		day		=	eval(Obj_day.value);

		if (js_Chk_StrLen(Obj_year) < 4) {
  			alert("년도는 4자리 숫자로 입력하세요.");
  			Obj_year.select();
  			return 1;
 		}

		if(year < 1900 || year >2100){
			alert("년도는 1900-2100년 사이값으로 입력하세요.");
			Obj_year.select();
			return 1;
		}
		
		if (js_Chk_StrLen(Obj_month) < 2) {
  			alert("월은 2자리 숫자로 입력하세요.");
  			Obj_month.select();
  			return 1;
 		}
		
		if(month < 01 || month > 12){
			alert("월는 01-12 사이값으로 입력하세요.");
			Obj_month.select();
			return 1;
		}

		var chkDay	=	false;
		if (js_Chk_StrLen(Obj_day) < 2) {
  			alert("일은 2자리 숫자로 입력하세요.");
  			Obj_day.select();
  			return 1;
 		}

		if(day < 01 || day > 31){
			alert("입력일 확인하세요.");
			Obj_day.select();
			return 1;
		}else{
			if(month == 04 || month == 06 || month == 09 || month == 11){
						if(day < 01 || day > 30)	chkDay	=	true;
			}else if(month == 02 && year%4 != 0){
						if(day < 01 || day > 28)	chkDay	=	true;
			}else if(month == 02 && year%4 == 0){
				if(year%100 == 0){
					if(year%400 == 0){
						if(day < 01 || day > 29)	chkDay	=	true;
					}else{
						if(day < 01 || day > 28)	chkDay	=	true;
					}
				}else{
						if(day < 01 || day > 29)	chkDay	=	true;
				}
			}else{
						if(day < 01 || day > 31)	chkDay	=	true;
			}

			if(chkDay){
				alert("입력일 확인하세요.");
				Obj_day.select();
				return 1;
			}
			
		}
	}

	/*	공백제거	*/	
	function trimSpace(str)
	{
		 return str.replace(/(^\s*)|(\s*$)/g, "");
	}

	//*******************************************
	// 숫자인지를 체크
	// 성공하면 true, 실패하면 false
	//*******************************************
	function isDigit( strVar )
	{
	     var isNum 	= /^[\d]+$/;
	     
	     if( !isNum.test(strVar) )
	     	return false;
	     else
	     	return true;	
	}
	
	//*******************************************
	// 다음항목으로 포커스 이동 (숫자만 입력가능함)
	//*******************************************	
	function focusNextOnlyDigit( objNext, nLength, objCur )
	{
		var strValue	= objCur.value;

		if(event.keyCode == 8 || event.keyCode == 13 || strValue.length == 0 )
		{
			return false;
		}

		if( !isDigit( strValue ) ) 
		{
			alert("숫자만 입력가능합니다.");
			objCur.value=checkKey(objCur.value,2);
			objCur.focus();
			return;
		}

		try
		{
		// 포커스 이동해 주는 부분..
		if ( strValue.length == nLength )	
			objNext.focus();
		}
		catch(e)
		{
		}
	}

	//******************************************
	//* 숫자만 사용	
	//******************************************
	function checkKey(tmp, type)
	{
		var strDigit	= '0123456789';
		var strAlpha   = 'abcedfghijklmnopqrstuvwxyzABCEDFGHIJKLMNOPQRSTUVWXYZ';
		var strEtc   = '_-';
		var nLeng	= tmp.length;
		var strCc		= '';
		
		var strType = '';
		if(type==1)
		{
			strType = strDigit+strAlpha;
		}
		else if(type==2)
		{
			strType = strDigit;
		}
		else if(type == 3)
		{
			strType = strDigit+strAlpha+strEtc;
		}
		else
		{
			strType = strDigit;
		}
		
		for(i=0;i<nLeng;i++)
		{
			if(strType.indexOf(tmp.substring(i,i+1)) >= 0)
			{
				strCc += tmp.substring(i,i+1);
			}
		}
		return strCc;
	}

	function resizeImage(ImageId,maxwidth,maxheight)
	{
		
		var imgWidth  = eval("document.getElementById('Img" + ImageId + "').width") ;   // 이미지 원본 넓이
		var imgHeight = eval("document.getElementById('Img" + ImageId + "').height") ;  // 이미지 원본 높이


		var ResizeW   = 0;  // 줄여야할 넓이
		var ResizeH   = 0;  // 줄여야할 높이
		var sUrl      = eval("document.getElementById('Img"+ImageId+"').src");  // 이미지의 경로

		if (imgWidth  == 0) imgWidth  = maxwidth;
		if (imgHeight == 0) imgHeight = maxheight;	

		// 높이를 확인한후 높이가 최대치 보다 크면
		if( imgHeight > maxheight )
		{
			//줄어든 높이에 맞는 비율의 넓이를 구함.
			//imgHeight:imgWidth=maxheight:ResizeW
			ResizeW = maxheight*imgWidth/imgHeight
			
			if ( ResizeW > maxwidth )
			{
				//maxheight:ResizeW=ResizeH:maxwidth
				ResizeH = maxheight*maxwidth/ResizeW;
				eval("document.getElementById('Img"+ImageId+"').height =" + ResizeH);
				eval("document.getElementById('Img"+ImageId+"').width ="  + maxwidth);
			} else {
				eval("document.getElementById('Img"+ImageId+"').height =" + maxheight);	
				eval("document.getElementById('Img"+ImageId+"').width ="  + ResizeW);
			}
		} else {
			// 높이는 최대치 작고, 넓이만 최대치보다 넓으면. 넓이를 최대치로 줄여준다.
			if ( imgWidth > maxwidth)
			{
				//imgHeight:imgWidth=ResizeH:maxwidth
				ResizeH = imgHeight*maxwidth/imgWidth;
				eval("document.getElementById('Img"+ImageId+"').height =" + ResizeH);  
				eval("document.getElementById('Img"+ImageId+"').width ="  + maxwidth);  
			// 최대사이즈 보다 작으면
			} else {
				eval("document.getElementById('Img"+ImageId+"').height =" + imgHeight);  
				eval("document.getElementById('Img"+ImageId+"').width ="  + imgWidth);  
			}
		}
	}


	// file download
	function fs_down(v1, v2){
		var iframe = document.createElement("<iframe width='0' height='0' border='0' frameborder='0' src='' name='downFrame' id='downFrame'></iframe>");
		document.body.appendChild(iframe);
		document.getElementById('downFrame').src = '/inc/jsp/cmFileDown.jsp?p_filenm=' + v1 + '&p_re_filenm=' + v2;
		//window.open('/inc/jsp/cmFileDown.jsp?p_filenm=' + v1 + '&p_re_filenm=' + v2, '', 'width=150, height=100, menubars=no');
		return;
	}


	// (해당 오브젝트, 제한하고 싶은 길이)
	// onKeyUp="_cl(this, 10)", onBlur="_cl(this, 10)"
	// check_length
	var _cl_cut_text = "";
	function _cl(obj, text_length){
		var obj_text = obj.value;
		var _cl_text_cnt = 0;
		
		for(i = 0 ; i < obj_text.length ; i++){
			if(escape(obj_text.charAt(i)).length > 4){
				_cl_text_cnt += 2;
			}else{
				_cl_text_cnt += 1;
			}

			if(_cl_text_cnt > text_length){
				alert('글자수가 벗어났습니다.');
				obj.value = _cl_cut_text;
				return;
			}
		}
		_cl_cut_text = obj_text;
	}
	
	// 공백제거
	String.prototype.ltrim = function() {
		var re = /\s*((\S+\s*)*)/;
		return this.replace(re, "$1").replace(/　/g, "");
	}
 
	String.prototype.rtrim = function() {
		var re = /((\s*\S+)*)\s*/;
		return this.replace(re, "$1").replace(/　/g, "");
	}

	String.prototype.trim = function() {
		return this.ltrim().rtrim();
	}

	// check_null
	function _cn(obj){
		if(obj.length > 0 && obj.selectedIndex == undefined){
			// checkbox or radio
			for(i = 0 ; i < obj.length ; i++){
				if(obj[i].checked){
					return false;
				}
			}
			return true;
		}else{
			// textfield
			var obj_text = obj.value;
			if(obj_text.trim() == '' || obj_text.trim().length == 0){
				return true;
			}
			return false;
		}
	}
	
	// alert focus
	function _af(obj, msg){
		alert(msg);
		if(obj.length > 0 && obj.selectedIndex == undefined){
			obj[0].focus();
		}else{
			obj.focus();
		}
	}

	function _check(obj, alertMsg){
		if(_cn(obj)){
			_af(obj, alertMsg);
			return true;
		}
	}



