/********************************************************

   파일명 : common.js

           한국 방송통신 대학교 공통 JavaScript 라이브러리

   작성자 : 김국선

   작성일 : 2004.05.01

*********************************************************/

var    _intValue   = '0123456789';

var	_checkNumValue   = '0123456789.-';

var	_checkDateValue   = '0123456789.';

var	_checkMoneyValue   = '0123456789-,';

var    _upperValue = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';

var    _lowerValue = 'abcdefghijklmnopqrstuvwxyz';

var    _etcValue   = '~`!@#$%%^&*()-_=+\|[{]};:\'\",<.>/?';

var    dayOfMonth = new Array(31,28,31,30,31,30,31,31,30,31,30,31);



n = (document.layers) ? 1:0;

ie = (document.all) ? 1:0;

if (n) document.captureEvents(Event.KEYPRESS);



//-------------------------------------------------------------------

// 브라우저의 버전을 체크하는 부분

//-------------------------------------------------------------------

    var IEYES = 0;

	var NEYES = 0;

    var menufacture = navigator.appName;

    var version = navigator.appVersion;



	if((menufacture.indexOf('마이크로소프트') >= 0 || menufacture.indexOf('Microsoft') >= 0))

	{

		var str = version.split(';');

		if(str[1] == 'MSIE 5.0')

	        IEYES = 1;

		else if(str[1] == 'MSIE 5.5')

			IEYES = 2;

		else if(str[1] == 'MSIE 6.0')

			IEYES = 3;

		else IEYES = 4;

	}

	else NEYES = 1;



//-------------------------------------------------------------------

// 브라우저 체크

//-------------------------------------------------------------------

function check_browser() {



	var ret;

	ret = navigator.appName;



	if (ret == "Netscape")

		return "NE";

	else if (ret == "Microsoft Internet Explorer")

		return "IE";

	else

		return -1;

}



//-------------------------------------------------------------------

// 엔터키가 눌려졌는지 확인하는 함수

//-------------------------------------------------------------------

// 화면의 스크립트에서 아래와 같이 사용한다.

// func가 있고 없고에 따라 엔터키를 눌렀을때 실행할 함수를 분기 할 수도 있다.

//

// function enter_check(func,e) {

// 	 if(check_enter(e)){ //enter key가 눌려졌다면

//		if(func != '')

//			popup_window();

//		else f_sselect();

//	 }

// }

//

// 업무 입력화면에서 아래와 같이 enter_check()를 호출하고 인자값으로 의미없는 문자열과 키 이벤트를 갖는다.

// <INPUT name="year" value="" size="4" maxlength="4" class="input01" OnKeyDown="javascript:enter_check('popup', event);">

//

//-------------------------------------------------------------------

function check_enter(e) {

    if (n) {

        var nKey = e.which;

        //var nValue = String.fromCharCode(nKey)

    }

    if (ie) {

        var ieKey = e.keyCode;

        //var ieValue = String.fromCharCode(ieKey)

    }

	if (nKey==13 || ieKey==13)

		 return true;

	else return false;

}



//-------------------------------------------------------------------

// 체크박스 전체를 선택하는 함수

//-------------------------------------------------------------------

// 화면의 스크립트에서 아래와 같이 사용한다.

//

// <A class="button" href="javascript:on_check(myForm,'check',2)">전체선택</A>

//

// 인자로 해당 화면의 폼 이름과 Rowcount가 필요하다

//

// 이 함수를 사용할 수 있기 위해서는 반드시 체크박스의 이름을 check+i로 사용하여야 한다.

//-------------------------------------------------------------------

function on_check(fname, cname, rowcnt)

{

	for(var i=0;i < parseInt(rowcnt,10);i++) {

		fname[cname+i].checked = true;

	}

}



//-------------------------------------------------------------------

// 체크박스 전체를 해제하는 함수

//-------------------------------------------------------------------

// 화면의 스크립트에서 아래와 같이 사용한다.

//

// <A class="button" href="javascript:off_check(myForm,'check', 2)">전체해제</A>

//

// 인자로 해당 화면의 폼 이름과 Rowcount가 필요하다

//

// 이 함수를 사용할 수 있기 위해서는 반드시 체크박스의 이름을 check+i로 사용하여야 한다.

//-------------------------------------------------------------------

function off_check(fname, cname, rowcnt)

{

	for(var i=0;i < parseInt(rowcnt,10);i++) {

		fname[cname+i].checked = false;

	}

}



function on_check2(fname, name ,rowcnt) {

    if (parseInt(rowcnt, 10) == 1) {

    document.all[name].checked = true;

    } else {

    	for (var i=0 ; i < parseInt(rowcnt, 10) ; i++) {

    		document.all[name][i].checked = true;

    	}

    }

}



function off_check2(fname, name ,rowcnt) {

    if (parseInt(rowcnt, 10) == 1) {

    document.all[name].checked = false;

    } else {

    	for (var i=0 ; i < parseInt(rowcnt, 10) ; i++) {

    		document.all[name][i].checked = false;

    	}

    }

}



//-------------------------------------------------------------------

// 영문 대문자인지를 체크하는 함수    // Arg로 받은 한 값이 조건에 맞는지 하나씩 체크해야 함.

//-------------------------------------------------------------------

function is_upper(value) {

    var   i;

    for(i=0;i<_upperValue.length;i++)

        if(value == _upperValue.charAt(i)) {

            return true;

        }

    return false;

}

//-------------------------------------------------------------------

// 영문 소문자인지를 체크하는 함수   // Arg로 받은 한 값이 조건에 맞는지 하나씩 체크해야 함.

//-------------------------------------------------------------------

function is_lower(value) {

    var   i;

    for(i=0;i<_lowerValue.length;i++)

        if(value == _lowerValue.charAt(i)) {

            return true;

        }

    return false;

}

//-------------------------------------------------------------------

// 특수문자인지를 체크하는 함수(영문이나 한글이 아닌)  // Arg로 받은 한 값이 조건에 맞는지 하나씩 체크해야 함.

//-------------------------------------------------------------------

function is_etc(value) {

    var   j;

    for(j=0;j<_etcValue.length;j++)

        if(value == _etcValue.charAt(j)) {

            return true;

        }

    return false;

}

//-------------------------------------------------------------------

// 영문 대문자로 변환하는 함수  // Arg로 받은 한 값이 조건에 맞는지 하나씩 체크해야 함.

//-------------------------------------------------------------------

function to_upper(obj) {

    var strNew ="", str = obj.value;

    for( i=0 ; i<str.length; i++ )

    {

        if( str.charAt(i) >= 'a' && str.charAt(i) <= 'z' )

            strNew = strNew + str.charAt(i).toUpperCase() ;

        else

            strNew = strNew + str.charAt(i);

    }

    obj.value = strNew;

}

//-------------------------------------------------------------------

// 숫자인가를 체크하는 함수  // Arg로 받은 한 값이 조건에 맞는지 하나씩 체크해야 함.

//-------------------------------------------------------------------

function is_int(value) {

    var   j;

    for(j=0;j<_intValue.length;j++)

        if(value == _intValue.charAt(j)) {

            return true;

        }

    return false;

}

//-------------------------------------------------------------------

// 금액을 체크할때 (음, 양의 정수만) 체크하는 함수  // Arg로 받은 한 값이 조건에 맞는지 하나씩 체크해야 함.

//-------------------------------------------------------------------

function is_money(value) {

    var   j;

    for(j=0;j<_checkMoneyValue.length;j++)

        if(value == _checkMoneyValue.charAt(j)) {

            return true;

        }

    return false;

}

//-------------------------------------------------------------------

// 숫자값에서 -, 소숫점도 허용하게 하고 숫자열을 체크하는 함수    '.'  '-' 도 허용하게 수정함. 0425  // Arg로 받은 한 값이 조건에 맞는지 하나씩 체크해야 함.

//-------------------------------------------------------------------

function is_numeric(value) {

    var   j;

    for(j=0;j<_checkNumValue.length;j++)

        if(value == _checkNumValue.charAt(j)) {

            return true;

        }

    return false;

}

//-------------------------------------------------------------------

// 날자에서 Dot 허용하게 하고 숫자열을 체크하는 함수    '.'  를 허용하게 수정함. 0427  // Arg로 받은 한 값이 조건에 맞는지 하나씩 체크해야 함.

//-------------------------------------------------------------------

function is_date_num(value) {

    var   j;

    for(j=0;j<_checkDateValue.length;j++)

        if(value == _checkDateValue.charAt(j)) {

            return true;

        }

    return false;

}

//-------------------------------------------------------------------

// 전화번호를 구성할 만한 문자인가를 체크하는 함수  // Arg로 받은 한 값이 조건에 맞는지 하나씩 체크해야 함.

//-------------------------------------------------------------------

function is_tel_char(value) {  // 전화번호를 구성할 만한 문자인가?

    var   j;

    for(j=0;j<_intValue.length;j++)

        if(value == _intValue.charAt(j) || value == '-')

            return true;

    return false;

}

//-------------------------------------------------------------------

// 지정된 객체의 문자열의 길이를 계산하는 부분

//-------------------------------------------------------------------

function check_byte(str)

{

	var byteLength= 0;

	for(var inx=0; inx < str.length; inx++)

	{

		var oneChar = escape(str.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 check_length(obj, len, str)

{

    obj.value = ltrim(obj.value);

    complen = check_byte(obj.value);

    if ( complen > len)

    {

        alert(str + ' ' + len + 'Byte를 초과할수 없습니다. 현재 ' + complen + 'Byte입니다.');

        obj.focus();

        return false;

    }

    return true;

}

//-------------------------------------------------------------------

// 문자열 좌측의 공백 제거 처리 함수

//-------------------------------------------------------------------

function ltrim(para)

{

    while(para.substring(0,1) == ' ')

        para = para.substring(1, para.length);

    return para;

}

//-------------------------------------------------------------------

// 문자열 중간의 공백 제거 처리 함수

//-------------------------------------------------------------------

function mtrim(para)

{

    for ( i=0; i < para.length;)

        if (para.substring(i,i+1) == ' ' )

                para = para.substring(0,i) + para.substring(i+1,para.length);

        else

                i++;

        return para;

}

//-------------------------------------------------------------------

// 문자열 우측의 공백 제거 처리 함수

//-------------------------------------------------------------------

function rtrim(para)

{

    while(para.substring(para.length-1,para.length) == ' ')

        para = para.substring(0, para.length-1);

    return para;

}

//-------------------------------------------------------------------

// 입력된 문자가 금액인가를 체크하는 함수 ( '-' 와 숫자만 허용한다)

//-------------------------------------------------------------------

function check_money(obj)

{

    var i,j;

    var str = new String(obj.value);



    if ((str == '')||(str.length == 0))

        return true;



    for(i=0;i<str.length;i++)

    {

        if(!is_money(str.charAt(i)))

        {

            alert('숫자만 입력가능합니다.');

            obj.focus();

            return false;

        }

    }

    return true;

}

//-------------------------------------------------------------------

// 숫자로 구성된 문자열인가를 체크하는 함수 (마이너스, 콤마, Dot 모두 허용)

//-------------------------------------------------------------------

function check_digit(obj)

{

    var    i;

    var    str =  new String(del_comma(obj));

    for(i=0;i<str.length;i++)

        if(!is_numeric(str.charAt(i)))           // 0425, is_digit() 로 된것을 수정.

        {

            obj.focus();

            return false;

        }

    return true;

}



//-------------------------------------------------------------------

// 숫자로 구성된 문자열인가를 체크하는 함수

//-------------------------------------------------------------------

function is_digit(obj)

{

    var    i;

    var    str =  new String(obj.value);

	str = del_comma(obj);

    for(i=0;i<str.length;i++)

        if(!is_int(str.charAt(i)))

        {

            alert('숫자만 입력가능합니다.');

            obj.focus();

            return false;

        }

    return true;

}

//-------------------------------------------------------------------

// 입력된 문자가 실수인가를 체크하는 함수

//-------------------------------------------------------------------

function check_num(obj)

{

    var i,j;

    var str = new String(obj.value);



    if ((str == '')||(str.length == 0))

        return true;



    for(i=0;i<str.length;i++)

    {

        if(!is_int(str.charAt(i)))

			if(str.charAt(i)!='.' && str.charAt(i)!='-')

        {

            alert('실수만 입력가능합니다.');

            obj.focus();

            return false;

        }

    }

    return true;

}

//-------------------------------------------------------------------

// 입력된 문자가 숫자, 분수(1/3,2/5..)인가를 체크하는 함수

//-------------------------------------------------------------------

function check_fraction(obj)

{

    var i,j;

    var str = new String(obj.value);

    var check_slash = 0;



    if ((str == '')||(str.length == 0))

        return true;



    for(i=0;i< str.length;i++)

    {

        if(!is_int(str.charAt(i)))

        {

			if( str.charAt(i) !='/' )

            {

                alert('정수 또는 분수만 입력가능합니다.');

                obj.focus();

                return false;

            } else {

               check_slash++;

               if (i==0) {

                       alert('정수 또는 분수만 입력가능합니다.');

                       obj.focus();

                       return false;

               }

            }

        }

    }

    j = i -1;



    if (str.charAt(j) == '/' || check_slash > 1) {

        alert('정수 또는 분수만 입력가능합니다.');

        obj.focus();

        return false;

    }

    return true;

}

//-------------------------------------------------------------------

//  전화번호인지를 체크하는 함수

//-------------------------------------------------------------------

function is_tel(tel) {

    var    i;

    for(i=0;i<tel.length;i++)

        if(!is_tel_char(tel.charAt(i)))

            return false;

    return true;

}

/////////////////////////////////////////////////////

// 전화번호 체크에서 객체를 매개변수로 받음

/////////////////////////////////////////////////////

function is_tel2(obj) {

    var    i;

    var    tel = ltrim(obj.value);

    if( tel == '' ) return true;



    for(i=0;i<tel.length;i++)

        if(!is_tel_char(tel.charAt(i)))

        {

            alert('전화번호가 잘못되었습니다.');

            obj.focus();

            return false;

        }

    return true;

}

//-------------------------------------------------------------------

// Input에 내용이 없으면  false를 return함.

//-------------------------------------------------------------------

function is_not_null(obj, str)

{

    obj.value = ltrim(obj.value);

    if (obj.value == '')

    {

        alert( str + ' 입력하세요.');

        obj.focus();

        return false;

    }else

        return true;

}

//-------------------------------------------------------------------

// 해당 년월의 마지막 날짜 구하는 함수

//-------------------------------------------------------------------

function lastday(calyear,calmonth)

{

    if (((calyear %4 == 0) && (calyear % 100 != 0))||(calyear % 400 == 0))

        dayOfMonth[1] = 29;

    else

        dayOfMonth[1] = 28;

    var nDays = dayOfMonth[calmonth-1];

    return nDays;

}



//-------------------------------------------------------------------

// 날자형식의 숫자열인지를 체크하는 함수

//-------------------------------------------------------------------

function check_date_digit(obj)

{

    var    i;

    var    str =  new String(del_dot(obj));

    for(i=0;i<str.length;i++)

        if(!is_int(str.charAt(i)))

        {

            obj.focus();

            return false;

        }

    return true;

}

//-------------------------------------------------------------------

// 날짜의 정확성 검사

//-------------------------------------------------------------------

function is_valid_date(obj)

{

    var t_date = new String(del_dot(obj));

    var t_year  = parseInt(t_date.substring(0,4),10);

    var t_month = parseInt(t_date.substring(4,6),10);

    var t_day   = parseInt(t_date.substring(6,8),10);

    if(obj.value.length == 0){

        obj.focus();

        return false;

    }

    if (check_date_digit(obj) == false){

        alert('날짜는 형식이 틀렸습니다.\n\nYYYYMMDD 형식으로 입력해 주십시오!!');

        obj.value='';

        obj.focus();

        return false;

    }

    if (t_date.length != 8){

        alert('날짜의 입력이 틀렸습니다.\n\nYYYYMMDD 형식으로 입력해 주십시오!!');

        obj.focus();

        return false;

    }

    if (t_year < 999 || t_year >2999){

        alert('날짜가 잘못 입력되었습니다. 년도는 1000년에서 2999년까지 입니다.');

        obj.focus();

        return false;

    }

    if (t_month <1 || t_month > 12){

        alert('날짜가 잘못 입력되었습니다. 달은 1월에서 12월까지 입니다.');

        obj.focus();

        return false;

    }

    if (t_day <1 || t_day > lastday(t_year, t_month)){

        alert('날짜가 잘못 입력되었습니다.'+t_month+'월에는 '+t_day+'일이 없습니다.');

        obj.focus();

        return false;

    }

    return true;

}

//-------------------------------------------------------------------

// 두 날짜 사이의 관계는 올바르게 정립되어 있는가 ?

// 날짜의 세팅이 Text로만 이루어져 있는 경우

//-------------------------------------------------------------------

function is_valid_date_with(s_date, e_date)

{

	var t_s_date = parseInt(parseFloat(del_dot(s_date), 10), 10);

	var t_e_date = parseFloat(parseFloat(del_dot(e_date), 10), 10);



	if (is_valid_date(s_date) == false)

	{

		s_date.focus();

		return false;

	}

	if (is_valid_date(e_date) == false)

	{

		e_date.focus();

		return false;

	}



	if (t_s_date > t_e_date)

	{

		alert('시작일이 종료일보다 큽니다.');

		e_date.focus();

		return false;

	}

	return true;

}

//-------------------------------------------------------------------

// radio button이 선택되었는가 ?

//-------------------------------------------------------------------

function check_radio_button(obj, cnt, str)

{

    var result = false;

    if (cnt == 1)

    {

        if (obj.checked == true)

            return true;

        else

        {

            alert( str + '지정하세요!');

            return false;

        }

    }

    else

    {

        for (i = 0; i < cnt; i++)

        {

            if (obj[i].checked == true)

                result = true;

        }

        if (result != true)

        {

            alert( str + '지정하세요!');

            return false;

        }

    }

    return true;

}

//-------------------------------------------------------------------

// 오늘날짜를 yyyymmdd형태로 리턴하는 함수

//-------------------------------------------------------------------

function to_day() {



    var now = new Date();

    var yr = now.getYear();

    var mName = now.getMonth() + 1;

    var dName = now.getDate();



    if (yr < 100)

        year=("19"+yr).toString();

    else

        year=yr.toString();



    if (mName <10)

        month=("0"+mName).toString();

    else

        month=mName.toString();



    if (dName <10)

        day=("0"+dName).toString();

    else

        day=dName.toString();



    return year+month+day;



}



// IE에서의 encoding문제를 해결하기 위한 함수.

function str_encoding(str) {

	var ret = '';

	var c = '';

	var temp = '';



	if (check_browser() != 'IE') return str;



	for(i=0; i<str.length; i++) {

	   temp = str.charCodeAt(i);

	   if ( temp>122 || temp == 32)

		c = escape(str.charAt(i));

	   else

		c = str.charAt(i);

	   ret = ret + c;

	}



	return ret;

}



//교과목검색, 체중, 키 입력타입 체크('숫자' 와 ' . '만  허용)



function check_digit1(myform, myinput, mymsg)

{

	var str;

	str = mymsg;

	with (myform) {

		if (!check_digit_body1(myinput)) {

			if (str.length == 0)

				alert("숫자형식으로 입력하세요.");

			else

				alert(str);

			myinput.focus();

			myinput.select();

			return false;

		}

		else

		return true;

	}

}



function check_digit_body1(ctl_digit)

{



    var str=ctl_digit.value;



    if (str.length == 0)

		return false;



    // Checks that characters are numbers or hyphens.

    for (var i = 0; i < str.length; i++)

    {

		var ch = str.substring(i, i + 1);

		if ((ch < "0" || "9" < ch)){

			if (ch != ".")

 			   return false;

		}

    }

    return true;

}





function check_key_in(myform, myinput, mymsg)

{

	var str;

	str = mymsg;



	with (myform) {

		if (myinput.value == '') {

			if (str.length == 0)

				alert("입력하지 않으셨습니다.");

			else

				alert(str);

			myinput.focus();

			myinput.select();

			return false;

		}

		return true;



	}

}



function check_date(myform, myinput, mymsg)

{

	var str;

	str = mymsg;

	with (myform) {

		if (!check_date_body(myinput, ".")) {

			if (str.length == 0)

				alert("Date형식으로 입력하세요.");

			else

				alert(str);

			myinput.focus();

			myinput.select();

			return false;

		}

		return true;

	}

}



function check_digit_form(myform, myinput, mymsg)

{

	var str;

	str = mymsg;

	with (myform) {

		if (!check_digit_body(myinput)) {

			if (str.length == 0)

				alert("숫자형식으로 입력하세요.");

			else

				alert(str);

			myinput.focus();

			myinput.select();

			return false;

		}

		return true;

	}

}



function check_date_body(ctl_date, sep)

{



    var str=ctl_date.value;

    if (str.length == 0)

		return false;



    // Check for  10 characters in string.

    if (str.length != 10)

	return false;



    // Checks that characters are numbers or hyphens.

    for (var i = 0; i < str.length; i++)

    {

	var ch = str.substring(i, i + 1);

	if ((i==4)||(i==7)) {

		if (ch != ".") return false;

  	} else {

		if ((ch < "0")||(ch > "9")) return false;

	}

    }

    // Check out year value.

    if ( (str.substring(0, 4) < 1)  ||  (str.substring(0, 4) > 9999)  )

		return false;



    // Check out month value.

    if ( (str.substring(5, 7) < 1)  ||  (str.substring(5, 7) > 12)  )

		return false;



    // Check out day value.

    if ( (str.substring(8, 10) < 1)  ||  (str.substring(8, 10) > 31)  )

		return false;



    // Check out day value per each month value.

    // Febuary

    if ( (str.substring(5, 7) == 2 )  &&  (str.substring(8, 10) > 29)  )

		return false;



    // April

    if ( (str.substring(5, 7) == 4 )  &&  (str.substring(8, 10) > 30)  )

		return false;



    // June

    if ( (str.substring(5, 7) == 6 )  &&  (str.substring(8, 10) > 30)  )

		return false;



    // September

    if ( (str.substring(5, 7) == 9 )  &&  (str.substring(8, 10) > 30)  )

		return false;



    // November

    if ( (str.substring(5, 7) == 11 )  &&  (str.substring(8, 10) > 30)  )

		return false;



    new_str = str.substring(0, 4) + sep + str.substring(5, 7) + sep + str.substring(8, 10);



    ctl_date.value = new_str;



    return true;

}



function check_digit_body(ctl_digit)

{

    var str=ctl_digit.value;



    if (str.length == 0)

		return false;



    // Checks that characters are numbers or hyphens.

    for (var i = 0; i < str.length; i++)

    {

		var ch = str.substring(i, i + 1);

		if ((ch < "0" || "9" < ch) )

	    	return false;

    }



    return true;

}





function check_english(myform, myinput, mymsg)

{

	var str;

	str = mymsg;

	with (myform) {

		if (!check_english_body(myinput)) {

			if (str.length == 0)

				alert("알파벳, space, '-', ','만 입력할 수 있습니다.");

			else

				alert(str);

			myinput.focus();

			myinput.select();

			return false;

		}

		else

		return true;

	}

}



function check_english_body(ctl_digit)

{



    var str=ctl_digit.value;



    if (str.length == 0)

		return false;



    // Checks that characters are numbers or hyphens.

    for (var i = 0; i < str.length; i++)

    {

		var ch = str.substring(i, i + 1);

                if(ch != "-") {

		if ((ch < "A" || "z" < ch )){

		     if (ch == " ")

 			   ;

                     else if (ch == ",")

 			   ;

                     else

 			   return false;

		}

                }

    }

    return true;

}



function get_str_len(arg_str){

   var j = 0;

   var tempStr;

   var tempStr2;



   for(var i = 0; i < arg_str.length; i++  ) {

         tempStr = arg_str.charCodeAt(i);

         tempStr2 = tempStr.toString();



         if(tempStr2.length >= 5){

            j++;

         }

   }

   return i+j;

}



function str_trim( arg_str )

{

	var rtn_str = "";

	var i=0;

	while( arg_str.charAt(i) != "" ) {

		if( arg_str.charAt(i)!=' ') {

			rtn_str += arg_str.charAt(i);

		}

		i++;

	}

	return rtn_str;

}



function check_float(obj)

{

    var    _floatValue   = '0123456789.-';

    var str = new String(obj.value);



    if ((str == '')||(obj.value.length == 0))

        return true;

    for( var j = 0; j < obj.value.length; j++)

    {

        var char_ok = false;

        for(var i = 0; i < _floatValue.length; i++)

            if(str.charAt(j) == _floatValue.charAt(i) ) {

                char_ok = true;

                break;

            }

        if ( char_ok == false )

            return false;

    }

    return true;

}







//----------------------------------------------------------------------

// 주민등록 번호를 체크하는 함수(정통부 오픈소스[박찬희(2007.5.16추가)])

//----------------------------------------------------------------------



function check_juminno(juminno) {

        var jumin1 = juminno.substr(0,6);

        var jumin2 = juminno.substr(6,7);

        var yy     = jumin1.substr(0,2);  // 년도

        var mm     = jumin1.substr(2,2);        // 월

        var dd     = jumin1.substr(4,2);        // 일

        var genda  = jumin2.substr(0,1);        // 성별

        var msg, ss, cc;



        // 숫자가 아닌 것을 입력한 경우

        if (!isNumeric(jumin1)) {

          alert("주민등록번호 앞자리를 숫자로 입력하세요.");         

          return false;

        }

        // 길이가 6이 아닌 경우

        if (jumin1.length != 6) {

          alert("주민등록번호 앞자리를 다시 입력하세요.");

          return false;

        }

        // 첫번째 자료에서 연월일(YYMMDD) 형식 중 기본 구성 검사

        if (yy < "00" || yy > "99" ||

          mm < "01" || mm > "12" ||

          dd < "01" || dd > "31") {

          alert("주민등록번호 앞자리를 다시 입력하세요.");

          return false;

        }

        // 숫자가 아닌 것을 입력한 경우

        if (!isNumeric(jumin2)) {

          alert("주민등록번호 뒷자리를 숫자로 입력하세요.");

          return false;

        }

        // 길이가 7이 아닌 경우

        if (jumin2.length != 7) {

          alert("주민등록번호 뒷자리를 다시 입력하세요.");

          return false;

        }

        // 성별부분이 1 ~ 4 가 아닌 경우

        if (genda < "1" || genda > "4") {

          alert("주민등록번호 뒷자리를 다시 입력하세요.");

          return false;

        }

        // 연도 계산 - 1 또는 2: 1900년대, 3 또는 4: 2000년대

        cc = (genda == "1" || genda == "2") ? "19" : "20";

        // 첫번째 자료에서 연월일(YYMMDD) 형식 중 날짜 형식 검사

        if (isYYYYMMDD(parseInt(cc+yy), parseInt(mm), parseInt(dd)) == false) {

          alert("주민등록번호 앞자리를 다시 입력하세요.");

          return false;

        }

        // Check Digit 검사

        if (!isSSN(jumin1, jumin2)) {

          alert("입력한 주민등록번호를 검토한 후, 다시 입력하세요.");

          return false;

        }

        return true;

}





function isYYYYMMDD(y, m, d) { 

  switch (m) { 

    case 2: // 2월의 경우 

      if (d > 29) return false; 

      if (d == 29) { 

        // 2월 29의 경우 당해가 윤년인지를 확인 

        if ((y % 4 != 0) || (y % 100 == 0) && (y % 400 != 0)) 

        return false; 

      } 

      break; 

    case 4: // 작은 달의 경우 

    case 6: 

    case 9: 

    case 11: 

      if (d == 31) return false; 

  } 

  // 큰 달의 경우 

  return true; 

} 



 

function isNumeric(s) { 

 for (i=0; i<s.length; i++){

  c = s.substr(i, 1); 

  if (c < "0" || c > "9") return false; 

 } 

 return true; 

}



 

function isSSN(s1, s2) {

 n = 2;

 sum = 0;

 for (i=0; i<s1.length; i++)

  sum += parseInt(s1.substr(i, 1)) * n++;

 for (i=0; i<s2.length-1; i++){

  sum += parseInt(s2.substr(i, 1)) * n++;

  if (n == 10) n = 2;

 }

 c = 11 - sum % 11;

 if (c == 11) c = 1;

 if (c == 10) c = 0;

 if (c != parseInt(s2.substr(6, 1))) return false;

 else return true;

}







//-------------------------------------------------------------------

// 주민등록 번호를 체크하는 함수

//-------------------------------------------------------------------

function is_resno(obj){

	var str =  String(obj.value);

	var reg_no = String(obj.value);

	var str2 = '';

	var isNum = true;

	var ll_resno = 0 ;

	var ll_temp = 0 ;



	if ( parseInt(str.substring(6,7),10) == 1 || parseInt(str.substring(6,7),10) == 2 )

		str2 = str2 + "19";

	else

		str2 = str2 + "20";



	str2 = str2 + str.substring(0,6);



    var t_year  = parseInt(str2.substring(0,4),10);

    var t_month = parseInt(str2.substring(4,6),10);

    var t_day   = parseInt(str2.substring(6,8),10);



    if (t_year < 1900 || t_year >2999)

        return false;



    if (t_month <1 || t_month > 12)

        return false;



	if (t_day <1 || t_day > lastday(t_year, t_month))

        return false;





 	ll_resno = ll_resno + parseInt(str.substring(0,1),10) * 9 ;

 	ll_resno = ll_resno + parseInt(str.substring(1,2),10) * 8 ;

 	ll_resno = ll_resno + parseInt(str.substring(2,3),10) * 7 ;

 	ll_resno = ll_resno + parseInt(str.substring(3,4),10) * 6 ;

 	ll_resno = ll_resno + parseInt(str.substring(4,5),10) * 5 ;

 	ll_resno = ll_resno + parseInt(str.substring(5,6),10) * 4 ;

 	ll_resno = ll_resno + parseInt(str.substring(6,7),10) * 3 ;

 	ll_resno = ll_resno + parseInt(str.substring(7,8),10) * 2 ;

 	ll_resno = ll_resno + parseInt(str.substring(8,9),10) * 9 ;

 	ll_resno = ll_resno + parseInt(str.substring(9,10),10) * 8 ;

 	ll_resno = ll_resno + parseInt(str.substring(10,11),10) * 7 ;

 	ll_resno = ll_resno + parseInt(str.substring(11,12),10) * 6 ;

 	ll_temp = ll_resno % 11 ;

 	if (ll_temp == 0 ) ll_temp = 1 ;

 	if (ll_temp == 10 ) ll_temp = 0;

 	if (ll_temp != parseInt(str.substring(12,13),10)) {

 		//외국인인지 체크하는 함수 호출

 		fgn_no_chksum(reg_no);

 	} else {

 		return true ;

 	}	 	

}



//-------------------------------------------------------------------

// 외국인인지 체크하는 함수

//-------------------------------------------------------------------

function fgn_no_chksum(reg_no) {

    var sum = 0;

    var odd = 0;

    

    buf = new Array(13);

    for (i = 0; i < 13; i++) buf[i] = parseInt(reg_no.charAt(i));



    odd = buf[7]*10 + buf[8];

    

    if (odd%2 != 0) {

      return false;

    }



    if ((buf[11] != 6)&&(buf[11] != 7)&&(buf[11] != 8)&&(buf[11] != 9)) {

      return false;

    }

    	

    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;



    if ( sum != buf[12]) {

        return false;

    }

    else {

        return true;

    }

}



//-------------------------------------------------------------------

// 입력값에 있는 Hyphen('-')을 제거하는 함수.

//-------------------------------------------------------------------

function remove_hyphen(str)

{

	var sTmp = "";

	var sBuffer = "";

	var i = 0;



	for (i=0; i < str.length; i++)

	{

		sTmp = str.substring(i, i+1);

		if (sTmp != "-")

			sBuffer += sTmp;

	}

	return sBuffer;

}





//-------------------------------------------------------------------

// PopUp Window Open 함수.

//-------------------------------------------------------------------

function PopUpWindowOpen(surl, popupwidth, popupheight)

{

	if( popupwidth  > window.screen.width )

		popupwidth = window.screen.width;

	if( popupheight > window.screen.height )

		popupheight = window.screen.height; 

		

	if( isNaN(parseInt(popupwidth)) ){

		Top  = (window.screen.availHeight - 600) / 2;

		Left = (window.screen.availWidth  - 800) / 2;

	} else {

		Top  = (window.screen.availHeight - popupheight)  / 2;

		Left = (window.screen.availWidth  - popupwidth) / 2;

	}



	if (Top < 0) Top = 0;

	if (Left < 0) Left = 0;

	Future = "fullscreen=no,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,left=" + Left + ",top=" + Top + ",width=" + popupwidth + ",height=" + popupheight;



	PopUpWindow = window.open("/blank.html", "PopUpWindow" , Future)

	PopUpWindow.location = (surl!="") ? surl : "/blank.html";

	PopUpWindow.resizeTo(parseInt(popupwidth)+10, parseInt(popupheight)+29);

	PopUpWindow.focus();

	

}



//-------------------------------------------------------------------

// PopUp Window Open 함수2.( 이미 PopUp된 Window에서 다시 PopUp window를 Open할때 사용)

//-------------------------------------------------------------------

function PopUpWindowOpen2(surl, popupwidth, popupheight)

{

	if( popupwidth  > window.screen.width )

		popupwidth = window.screen.width;

	if( popupheight > window.screen.height )

		popupheight = window.screen.height;

		 

	if( isNaN(parseInt(popupwidth)) ){

		Top  = (window.screen.availHeight - 600) / 2;

		Left = (window.screen.availWidth  - 800) / 2;

	} else {

		Top  = (window.screen.availHeight - popupheight)  / 2;

		Left = (window.screen.availWidth  - popupwidth) / 2;

	}



	if (Top < 0) Top = 0;

	if (Left < 0) Left = 0;

	Future = "fullscreen=no,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,left=" + Left + ",top=" + Top + ",width=" + popupwidth + ",height=" + popupheight;



	PopUpWindow2 = window.open("/blank.html", "PopUpWindow2" , Future)

	PopUpWindow2.location = (surl!="") ? surl : "/blank.html";

	PopUpWindow2.resizeTo(parseInt(popupwidth)+10, parseInt(popupheight)+29);

	PopUpWindow2.focus();

}



//-------------------------------------------------------------------

// PopUp Window Open 함수 - Window 명까지 파라미터로 받음

//-------------------------------------------------------------------

function PopUpWindowOpenWithName(surl, popupwidth, popupheight, winName)

{

	if( popupwidth  > window.screen.width )

		popupwidth = window.screen.width;

	if( popupheight > window.screen.height )

		popupheight = window.screen.height;

		 

	if( isNaN(parseInt(popupwidth)) ){

		Top  = (window.screen.availHeight - 600) / 2;

		Left = (window.screen.availWidth  - 800) / 2;

	} else {

		Top  = (window.screen.availHeight - popupheight)  / 2;

		Left = (window.screen.availWidth  - popupwidth) / 2;

	}



	if (Top < 0) Top = 0;

	if (Left < 0) Left = 0;

	Future = "fullscreen=no,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,left=" + Left + ",top=" + Top + ",width=" + popupwidth + ",height=" + popupheight;



	popup_window = window.open("/blank.html", winName , Future)

	popup_window.location = (surl!="") ? surl : "/blank.html";

	popup_window.resizeTo(parseInt(popupwidth)+10, parseInt(popupheight)+29);

	popup_window.focus();

}





//--------------------------------------------------------------------------------------------------

// 년도의 정확성 검사(YYYY형식)

//--------------------------------------------------------------------------------------------------

function is_valid_year(value) {

    var t_year  = char_trim(value);



    if (t_year.length == 4) {

        if (t_year < 999 || t_year > 2999) {

             return false;

        } else {

            return true;

        }

    }

    return false;

}



//--------------------------------------------------------------------------------------------------

// 숫자열의 문자를 제거하는 함수

//--------------------------------------------------------------------------------------------------

function char_trim(value) {

	var strNew = "";

    var chkstr = "0123456789";

    for (var i = 0; i < value.length; i++) {

        if (chkstr.indexOf(value.substring(i, i + 1)) >= 0) {

            strNew += value.substring(i, i + 1);

        }

    }

    return strNew;

}



//--------------------------------------------------------------------------------------------------

// 자릿수를 체크하여 커서 이동

//--------------------------------------------------------------------------------------------------

function move_element(value,fname,num)

{

  if(value.length == 4 && num == 4){

     fname.focus();

  }

  else if(value.length == 2 && num == 2){

     fname.focus();

  }

  else if(value.length == 3 && num == 3){

     fname.focus();

  }

  else if(value.length == 5 && num == 5){

     fname.focus();

  }



  else if(value.length == 6 && num == 6){

     fname.focus();

  }

   else if(value.length == 7 && num == 7){

     fname.focus();

  }

   else if(value.length == 8 && num == 8){

     fname.focus();

  }

   else if(value.length == 9 && num == 9){

     fname.focus();

  }

}



//--------------------------------------------------------------------------------------------------

// 금액을 나타내는 숫자열에 3자리 단위로 ','를 삽입하는 함수

//--------------------------------------------------------------------------------------------------

function add_comma(obj) {

	var str =  String(obj.value);

    var x = 0;

    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;

        return st;

    }

}

//--------------------------------------------------------------------------------------------------

// 입력창에 숫자 데이터를 입력할때 자동으로 ',' 가 붙어 입력되게 하기 위해 사용한다.

// 하지만 이 함수는 항상 커서가 맨 뒤로 가기 때문에 숫자의 맨 앞이나 중간 값을 삭제할 때 문제를 발생 시킨다.

// 이 함수를 사용하기 위해서는 다음과 같이 정의하여야 한다.

// <INPUT name="amt1" value="" size="10" maxlength="10" class="input01" onKeyUp = 'javascript:is_add_comma(myForm.amt1, amt1)'>

// 상기 예처럼 인자를 폼 객체와 Input 박스 이름을 준다.

// * 주의  : 상기 함수를 사용하였다면 Input 박스 값이 숫자 값인지 체크할 때는 is_digit(obj); 를 쓴다.

//--------------------------------------------------------------------------------------------------

function is_add_comma(obj) {



	var i = 0;

	var num = '';

	var num = new String(del_comma(obj));



	if ((num.length < 1)||(num == '')) {

        return '';

    } else {

        var tm = "";

        var ck = "";

        if (num.substring(0, 1) == "-") {

            tm = num.substring(1, num.length);

            ck = "Y";

        } else {

            tm = num;

            ck = "N";

        }

		var j = 0;

		var k = 0;

        var st = "";

        var cm = ",";

		var tm_prev = "";

		var tm_next = "";

	    for(i=0;i<num.length;i++) {

			if(!is_numeric(num.charAt(i))){    // '.', '-'를 체크하지 못해 is_numeric()를 새로 추가함 0425

				alert("입력 값이 잘못되었습니다.");

				obj.focus();

				return "";

			}

		}

		for (i = 0; i < tm.length; i++) {   // '.'이 한개 이상 나오면 Error 처리

			if (tm.substring(i, i + 1) == ".")

				j = j + 1;

			if (tm.substring(i, i + 1) == "-")

				k = k + 1;

		}



		if (j > 1 || k > 0) {

			alert("입력 값이 잘못되었습니다.");

			obj.focus();

			return "";

		}



		tm = tm.split('.'); // '.'가 하나만 있는 상태에서 '.' 앞 뒤 숫자를 분리한다

		tm_prev = tm[0];

		tm_next = tm[1];



		for (var i = tm_prev.length, j = 0; i > 0; i--, j++) {



			if ((j % 3) == 2) {

				if (tm_prev.length == j + 1) st = tm_prev.substring(i - 1, i) + st;

				else st = cm + tm_prev.substring(i - 1, i) + st;

			} else {

				st = tm_prev.substring(i - 1, i) + st;

			}

		}

		if (tm_next == '' || tm_next == undefined)  // 소숫점 이후에 값이 없는 경우

		{

			st = st;	

		}

		else if (tm_prev == '' || tm_prev == undefined) // 소숫점을 먼저 찍고 숫자를 이어 쓴 경우

		{

			st = '0.'+tm_next;

		}

		else 	st = st+"."+tm_next;		//분리된 '.' 이하 자릿수를 붙인다.

		if (ck == "Y") st = "-" + st;		//분리된 '-' 를 붙인다.

			obj.value = st;

	}



/*

    var Key = event.keyCode;

    if (Key == 9)

        obj.select();

*/

}





//--------------------------------------------------------------------------------------------------

// 숫자열의 ',' 문자를 제거하는 함수

//--------------------------------------------------------------------------------------------------

function del_comma(obj) {



//	var obj_str = String(obj);

	var str =  String(obj.value);

    if (str.length < 1) {

        return "";

    } else {

        var st = "";

        var sp = ",";

        for (var i = 0; i < str.length; i++) {

            if (sp.indexOf(str.substring(i, i + 1)) == -1) {

                st += str.substring(i, i + 1);

            }

        }

        return st;

    }

}

function del_comma_replace(obj) {

	obj.value =  del_comma(obj);

}

//--------------------------------------------------------------------------------------------------

// 날자 입력창에 데이터를 입력할때 자동으로 '.' 가 붙어 입력되게 하기 위해 사용한다.

// 하지만 이 함수는 항상 커서가 맨 뒤로 가기 때문에 숫자의 맨 앞이나 중간 값을 삭제할 때 문제를 발생 시킨다.

// 백스페이스 키를 사용할 수 있게 하기위해 해당 키가 들어오는지를 확인하는 부분이 있다.

// 이 함수를 사용하기 위해서는 다음과 같이 정의하여야 한다.

// <INPUT type="text" name="req_ymd" value="" size="10" maxlength="8" class="input01"

//    onkeypress="input_num();"

//    onBlur='javascript:add_dot( myForm.delivery_ymd)'

//	  onfocus = 'javascript:del_dot_replace(myForm.delivery_ymd)'>

// 상기 예처럼 숫자만 입력될 수 있도록 input_num()을 쓰고 Key가 폼을 벋어날때 '.'를 붙일 수 있도록 onBlur를 사용하며

// Key가 다시 돌아 왔을때 '.'를 제거하고 수정할 수있도록 del_dot_replace()를 사용한다.

// * 주의  : 날자 체크할 때는 is_valid_date(obj); 를 쓴다.

// * 주의  : maxlength 는 반드시 8로 쓴다.

//--------------------------------------------------------------------------------------------------

function add_dot(obj) {



	var i = 0;

	var sep = '.';

	var str = '';



	var t_date = new String(del_dot(obj));



	if((t_date.length < 1) || (t_date == ''))

		return '';



	for(i=0;i<t_date.length;i++) {

		if(!is_int(t_date.charAt(i))){    // '.', '-'를 체크하지 못해 is_numeric()를 새로 추가함 0425

			alert("날자 입력이 잘못되었습니다.\n\nYYYYMMDD 형식으로 입력해 주십시오!!");

			obj.focus();

			return "";

		}

	}

	if (t_date.length != 8) {

		alert("날자 입력이 잘못되었습니다.\n\nYYYYMMDD 형식으로 입력해 주십시오!!");

		obj.focus();

		return "";

    }

	else {

		str = t_date.substring(0, 4) + sep + t_date.substring(4, 6) + sep + t_date.substring(6, 8);

    }

	obj.value = str;

}



//--------------------------------------------------------------------------------------------------

// 날자 타입의 '.' 문자를 제거하는 함수

//--------------------------------------------------------------------------------------------------

function del_dot(obj) {

	var str =  String(obj.value);



    if (str.length < 1) {

        return "";

    } else {

        var st = "";

        var sp = ".";

        for (var i = 0; i < str.length; i++) {

            if (sp.indexOf(str.substring(i, i + 1)) == -1) {

                st += str.substring(i, i + 1);

            }

        }

        return st;

    }

}



function del_dot_replace(obj) {

	obj.value =  del_dot(obj);

    // obj.select();

}



//--------------------------------------------------------------------------------------------------

// form reset

//--------------------------------------------------------------------------------------------------

function on_reset(fname){

	fname.reset();	

}



// E-MAIL 체크

function is_email(obj)

{

	var s =  String(obj.value);



	if ( s == "" || s == null) 

	{ alert("이메일을 입력하십시요.");

	    

	    return false;

	}    

	else

	{			

		var i = 1;

		var sLength = s.length;

		

		while ((i < sLength) && (s.charAt(i) != "@"))

		{

			i++

		}

		

		if ((i >= sLength) || (s.charAt(i) != "@"))

		{

		    alert("이메일이 형식에 맞지 않습니다.");

		    return false;

		}

		else i += 2;

		

		while ((i < sLength) && (s.charAt(i) != "."))

		{

			i++

		}

		

		if ((i >= sLength - 1) || (s.charAt(i) != "."))

		{

		    alert("이메일이 형식에 맞지 않습니다.");

		    return false;

		}

		else return true;

	}

}



//--------------------------------------------------------------------------------------------------

// 

//--------------------------------------------------------------------------------------------------



function check_pilsu_length (obj, len, str){

	var obj_val = obj.value;

	

	if( obj_val == "" || obj_val.length == 0 ){

		alert(name + "을(를) 입력하십시오.");

		return false;

	} else if( ltrim(obj_val).length == 0 ){

		alert("공백문자만 입력되었습니다. 값을 입력하십시오.");

		return false;

	}



	return check_length(obj, len, str); 

}  



//--------------------------------------------------------------------------------------------------

// select box의 모든 option을 selected 상태로 바꾼다.

//--------------------------------------------------------------------------------------------------

function select_all(obj){

   var select_cnt = obj.length-1;

   

   for(i=0; i<select_cnt; i++){

   		obj.options[i].selected = true;

   }

}



//--------------------------------------------------------------------------------------------------

// select box의 모든 option을 selected 상태로 바꾼다.

//--------------------------------------------------------------------------------------------------

function cm_open_help(pageid){

	var	top  = (window.screen.availHeight - 500)  / 2;

	var	left = (window.screen.availWidth  - 700) / 2;

	var option = "fullscreen=no,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,left=" + left + ",top=" + top + ",width=680,height=500";

	HelpWindow = window.open("/sg/om/sgom_a10_o1p.jsp?pageid="+ pageid, "HelpWindow", option)



}



//--------------------------------------------------------------------------------------------------

// 탭키 체크 (7월 4일)

//--------------------------------------------------------------------------------------------------

function check_tabkey(e) {

    if (n) {

        var nKey = e.which;

        //var nValue = String.fromCharCode(nKey)

    }

    if (ie) {

        var ieKey = e.keyCode;

        //var ieValue = String.fromCharCode(ieKey)

    }

	if (nKey==9 || ieKey==9)

		 return true;

	else return false;

}



//--------------------------------------------------------------------------------------------------

// on_click시 background color 바꾸는 함수 (7월 18일)

//--------------------------------------------------------------------------------------------------



var bg_old_color="";

var old_index=-1;

var out_old_color="";

var over_old_color="";



function change_backcolor(self, color) {



	if(old_index > -1) {

		if(self.parentNode.parentNode.rows[old_index]!=self) {

			self.parentNode.parentNode.rows[old_index].style.backgroundColor = bg_old_color;

		}

			

		self.parentNode.parentNode.rows[old_index].onmouseout = out_old_color;	

		self.parentNode.parentNode.rows[old_index].onmouseover = over_old_color;						

	}

		

	for(var i=0; i<self.parentNode.parentNode.rows.length; i++) {			

		if(self.parentNode.parentNode.rows[i]==self) {

			old_index = i;

			bg_old_color = color;

			out_old_color = self.onmouseout;

			over_old_color = self.onmouseover;			 						

			self.style.backgroundColor = "#F7FADB";			

			self.onmouseout = "";

			self.onmouseover= "";			

		}

	}		

}



//-------------------------------------------------------------------

// 날짜의 정확성 검사(년, 월까지만) : 7월 19일 조용연

//-------------------------------------------------------------------

function is_valid_date2(obj)

{

    var t_date = new String(del_dot(obj));

    var t_year  = parseInt(t_date.substring(0,4),10);

    var t_month = parseInt(t_date.substring(4,6),10);



    if (obj.value.length == 0){

        obj.focus();

        return false;

    }

    if (check_date_digit(obj) == false){

        alert('날짜는 형식이 틀렸습니다.');

        obj.value='';

        obj.focus();

        return false;

    }

    if (t_date.length != 6){

        alert('날짜의 입력이 틀렸습니다.');

        obj.focus();

        return false;

    }

    if (t_year < 999 || t_year >2999){

        alert('날짜가 잘못 입력되었습니다. 년도는 1000년에서 2999년까지 입니다.');

        obj.focus();

        return false;

    }

    if (t_month <1 || t_month > 12){

        alert('날짜가 잘못 입력되었습니다. 달은 1월에서 12월까지 입니다.');

        obj.focus();

        return false;

    }



    return true;

}





//-------------------------------------------------------------------

// 날짜의 정확성 검사(년까지만) : 7월 24일 조용연

//-------------------------------------------------------------------

function is_valid_date3(obj)

{

    var t_date = new String(del_dot(obj));

    var t_year  = parseInt(t_date.substring(0,4),10);



    if (obj.value.length == 0){

        obj.focus();

        return false;

    }

    if (check_date_digit(obj) == false){

        alert('날짜는 형식이 틀렸습니다.');

        obj.value='';

        obj.focus();

        return false;

    }

    if (t_date.length != 4){

        alert('날짜의 입력이 틀렸습니다.');

        obj.focus();

        return false;

    }

    if (t_year < 999 || t_year >2999){

        alert('날짜가 잘못 입력되었습니다. 년도는 1000년에서 2999년까지 입니다.');

        obj.focus();

        return false;

    }



    return true;

}



//-------------------------------------------------------------------

// 두 년도 사이의 관계는 올바르게 정립되어 있는가 ?

// 날짜의 세팅이 Text로만 이루어져 있는 경우

// : 7월 24일 조용연

//-------------------------------------------------------------------

function is_valid_year_with(s_year, e_year)

{

        var t_s_date = parseInt(parseFloat(del_dot(s_date), 10), 10);

        var t_e_date = parseFloat(parseFloat(del_dot(e_date), 10), 10);



        if (is_valid_date3(s_date) == false)

        {

                s_date.focus();

                return false;

        }

        if (is_valid_date3(e_date) == false)

        {

                e_date.focus();

                return false;

        }



        if (t_s_date > t_e_date)

        {

                alert('시작일이 종료일보다 큽니다.');

                e_date.focus();

                return false;

        }

        return true;

}





/** 디자인 팀에서 만든 소스 **/

function MM_goToURL() { //v3.0

  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;

  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");

}



function MM_openBrWindow(theURL,winName,features) { //v2.0

  window.open(theURL,winName,features);

}

function MM_preloadImages() { //v3.0

	var d=document; if(d.images){ 

		if(!d.MM_p) d.MM_p=new Array();

		var i,j=d.MM_p.length,a=MM_preloadImages.arguments; 

		for(i=0; i<a.length; i++)

		if (a[i].indexOf("#")!=0){ 

			d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];

		}

	}

}

/** 디자인 팀에서 만든 소스 끝**/



/** 개발 팀에서 만든 소스 **/



function transNum(value) {

    var   j;

    var str = "";

    if (value == '') return str;

    for (var i=0; i<value.length; i++) {

        for(j=0;j<_intValue.length;j++) {

            if(value.substring(i,i+1) == _intValue.charAt(j)) {

                str +=_intValue.charAt(j);

            }

        }

    }

    return str;

}



/******** 페이징 리사이즈  관련 자바스크립트 **********/

var minHeightValue = 500;

function resizeFrame(name){

        if (name == 'leftFrame')

            setPage1();

        else 

            setPage();    

}



// bodyFrame 페이지 리사이징

function setPage() {

	//setPage1();

	if(parent.mainFrame != null) {

	    if (document.body.scrollHeight<minHeightValue) 

	        parent.document.all.mainFrame.style.height = minHeightValue;	

	    else 

	        parent.document.all.mainFrame.style.height = document.body.scrollHeight;	

		

		parent.scrollTo(0,0);

	} 

	setFrame();

}



// leftFrame 페이지 리사이징

function setPage1(idx) {

    if (idx =='1') return;

	if(parent.leftFrame != null) {			

		

		if (parseInt(document.body.scrollHeight) <parseInt(minHeightValue)) {

		    parent.document.all.leftFrame.style.height = minHeightValue;

	       } else {

	        //alert("1");

		    //alert("ff");

		    //setTimeout("setPage1(1)",100);

		    //parent.document.all.leftFrame.style.height = document.body.scrollHeight;

		    

		    if (parent.mainFrame != null) {

		        if (parseInt(document.body.scrollHeight) < parseInt(transNum(parent.document.all.mainFrame.style.height))) {

		            //alert("4");

		            parent.document.all.leftFrame.style.height = transNum(parent.document.all.mainFrame.style.height) ;	

		        } else {

		            //alert("3");

		            parent.document.all.leftFrame.style.height = document.body.scrollHeight;

		        }

		    } else {

		        parent.document.all.leftFrame.style.height = document.body.scrollHeight ;	

		    }

		    

		}

		

		parent.scrollTo(0,0);



		// 좌측 프레임의 히든 값에 원래 높이를 셋팅한다.

		if (parent.leftFrame.document.all["initLeftFrameHeight"]) {

		    parent.leftFrame.document.all["initLeftFrameHeight"].value = document.body.scrollHeight;

		}



		 parent.leftFrame.document.body.style.backgroundColor ="#DBD4CC";

		 //parent.leftFrame.document.body.style.backgroundColor ="red";



	} 

	//setFrame();

}



// leftFrame 과 mainFrame 의 화면의 높이를 동일하게 맞춤

function setFrame() {



    if (parent.mainFrame != null && parent.leftFrame != null) {

        var initLeftFrameHeight = transNum(parent.document.all.leftFrame.style.height);

        

        if (parent.leftFrame.document.all["initLeftFrameHeight"]) {

            initLeftFrameHeight = parent.leftFrame.document.all["initLeftFrameHeight"].value;

        }        

        

        var initMainFrameHeight = transNum(parent.document.all.mainFrame.style.height);

        //alert(initLeftFrameHeight);

        //alert(initMainFrameHeight);

        //alert(transNum(parent.document.all.leftFrame.style.height));





        // 좌측 프레임이 우측 프레임 보다 클때

        if (parseInt(transNum(parent.document.all.leftFrame.style.height))>parseInt(initMainFrameHeight)) {

            //alert("f");

            // 좌측 처음 프레임이 우측보다 클 때

            if (parseInt(initLeftFrameHeight) > parseInt(initMainFrameHeight)) {  

                //alert("1");

                // 좌측 사이즈 처음으로 조정, 우측 사이즈 좌측으로 조정

                parent.document.all.leftFrame.style.height = initLeftFrameHeight;

                parent.document.all.mainFrame.style.height = initLeftFrameHeight;

            

            // 좌측 처음 프레임이 우측보다 작을 때

            } else {  

                //alert("2");

                // 좌측을 우측 사이즈로 조정

                parent.document.all.leftFrame.style.height = initMainFrameHeight;

                

            }

            

        

        // 좌측 프레임이 우측보다 작을 때

        } else {

            //alert("d");

            parent.document.all.leftFrame.style.height = initMainFrameHeight;

            

        }

        



     }



}



// iFrame 페이지 리사이징

function setiFramePage(frameName) {

	if(parent[frameName] != null) {

		parent.document.all[frameName].style.height = document.body.scrollHeight;	

		

	} 

}



/******** 체크 박스 관련 자바스크립트 **********/



//  체크 박스 전체 선택 또는 전체 취소

//  formName : 폼 (ex : document.form1)

//  chkName : 체크박스 이름

var chkAllState = "";

function selectChkAll(formName, chkName) {



    var ff = formName;



    for (var i=0; i<ff.elements.length; i++) {

        if (ff.elements[i].type=="checkbox" && ff.elements[i].name== chkName) {

            if (chkAllState==1) ff.elements[i].checked = false;

            else ff.elements[i].checked = true;

        }

    }

    if (chkAllState==1) {

        chkAllState = 0;

        document.all("lblSelectID").innerHTML = "선택";     

    } else  {

        chkAllState = 1;

        document.all("lblSelectID").innerHTML = "취소";     

    }

}	



//  체크박스에 선택한 것이 있는지 없는지의 여부

//  삭제시에 사용

function isSelect(formName, chkName) {



    var ff = formName;

    for (var i=0; i<ff.elements.length; i++) {

        if (ff.elements[i].type=="checkbox" && ff.elements[i].name== chkName) {

            if (ff.elements[i].checked) return true;

        }

    }

    return false;

}	



//  체크박스에 선택한 것이 몇개인지 리턴

//  삭제시에 사용

function intSelect(formName, chkName) {



    var ff = formName;

    var result = 0;

    for (var i=0; i<ff.elements.length; i++) {

        if (ff.elements[i].type=="checkbox" && ff.elements[i].name== chkName) {

            if (ff.elements[i].checked) result++;

        }

    }

    return result;

}	



/******** 파일 업로드 관련 자바스크립트 **********/



// 파일 업로드 폼 생성

function addFileForm(obj, divName, iFrameResize) {

    

    for (var i=0; i<obj.value; i++) 

        document.all(divName+(i+1)).style.display="" ;

    for (var i=parseInt(obj.value); i<document.all(obj.name).options[obj.length-1].value; i++) 

        document.all(divName+(i+1)).style.display="NONE" ;

    if (iFrameResize !=null && iFrameResize=='Y') {

        setSitePage();

    } else {

        setPage();

    }

    



  

}





// 파일 다운로드 스크립트

function fileDown(admno, admnogb, seq, tname, nonm)

{

   try {

	    var result = false;

	

	    var name = getCookie("knoucommon1");

		if(name == null) {

		alert("로그인 한 후 다시 이용해 주시기 바랍니다.");

		}else{

  	    processFrame.location.href = "/common/HCDownload.do?admno="+admno+"&admnogb="+admnogb+"&seq="+seq+"&tname="+tname+"&nonm="+nonm;

		} 

	} catch(errorObject) { alert("오류가 발생하였습니다.\n\n잠시 후 이용하시기 바랍니다."); }

}









// 파일 다운로드 스크립트

function fileDownG(admno, admnogb, seq, tname, nonm)

{

   try {

	    processFrame.location.href = "/common/HCDownloadG.do?admno="+admno+"&admnogb="+admnogb+"&seq="+seq+"&tname="+tname+"&nonm="+nonm;

    } catch(errorObject) { alert("오류가 발생하였습니다.\n\n잠시 후 이용하시기 바랍니다."); }

}







 function getCookie(name)

{

	var blank='';

	var cname = name + '=';

	var dc = (document.cookie+';');

	if(dc.length > 0) {

		begin = dc.lastIndexOf(cname);

		if(begin==-1)

			begin=dc.lastIndexOf(name);

		if(dc.charAt(begin+name.length)==';')

			return '';

	

		if(begin != -1) {

			begin += cname.length;

			end = dc.indexOf(';', begin);

			if(end == -1) 

				end = dc.length;

			if(begin==end)

				return blank;

			return unescape(dc.substring(begin, end));

		}

	}

	return null;

} 







// 분류체계를 선택하기 위한 팝업창을 띄우는 함수

function clssSelectOpen(sosokcd)

{

	var url = "/portal/common/PCClassifyListPopup.do?methodValue=clssSelectList&sosokcd=" + sosokcd;

	window.open(url, "clssSelectList","width=525,height=500,scrollbars=YES,resize=no");

}



// 스킨을 선택하기 위한 팝업창을 띄우는 함수

function skinSelectOpen(sosokcd)

{

	var url = "/portal/common/PCAdSkinSelectPopup.do?methodValue=skinSelectView&sosokcd=" + sosokcd;

	window.open(url, "skinSelectList","width=830,height=700,scrollbars=YES,resize=no");

}



// 대상자 지정을 하기 위한 팝업창을 띄우는 함수

function onTgtSelect(admnogb){

	var url = "/portal/common/PCAdTgtSelectPopup.do?methodValue=tgtList&year=2004&hakgi=2&admnogb=" + admnogb;

	window.open(url, "tgtSelectList","width=670,height=500,scrollbars=YES,resize=no");

}



//기안자 선택을 위한 팝업창을 띄우는 함수

// str1: 기안자명

// str2 : 기안자ID

// str3 : 기안부서명

// str4 : 기안부서ID

function drafterSelectOpen(str1, str2, str3, str4)

{

	var url = "/portal/common/PCDrafterSelectPopup.do?methodValue=deptList&str1="+str1+"&str2="+str2+"&str3="+str3+"&str4="+str4;

	var winOpen = window.open(url, "drafterSelect","width=310,height=330,scrollbar=YES,resize=no");

	winOpen.focus();

}





/******** 이미지 관련 자바스크립트 **********/



// 이미지 리사이즈

// imgResize(this, '이미지파일경로',최대넓이,최대높이)

function imgResize(target_img, file, imgW, imgH){

    try{

        if (parseInt(imgW)>0) {

        } else {

            imgW = 150;

        }

        if (parseInt(imgH)>0) {

        } else {

            imgH = 100;

        }

    

        var ImageObject = new Image();

        ImageObject.src = file;

        var W = ImageObject.width;

        var H = ImageObject.height;

        if(W>0){

            var nWidth      = ""; var nHeight     = ""; var ResizeRate  = ""; var wResizeRate = "";

            var hResizeRate = ""; var IsResize    = "N"; var IsTarget    = ""; var nWidth      = ""; var nHeight     = "";

        

            wResizeRate = W; 

            hResizeRate = H;

            if( W > imgW){

                IsResize = "Y"; 

                wResizeRate = imgW; 

            }

            if( H > imgH){

                IsResize = "Y"; 

                hResizeRate = imgH;

            }

            if (W<=imgW && H<=imgH) {

                IsResize = "N";

            }

            

            if(IsResize == "Y"){

                nWidth  = wResizeRate; 

                nHeight = hResizeRate;

            }else{

                nWidth  = W; nHeight = H;    

            }

            

            target_img.onload   = null; target_img.width    = nWidth; target_img.height   = nHeight;

            

            W           = null; H           = null; nWidth      = null; nHeight     = null; ResizeRate  = null;

            wResizeRate = null; hResizeRate = null; IsResize    = null; IsTarget    = null; nWidth      = null; nHeight     = null;

            ImageObject = null; delete ImageObject; CollectGarbage();

        }else{

            //ImageResize(target_img, file);

        }

    }catch(e){}

}



// 이미지 Body 용

// imgBody(this, 최대넓이)

function imgBody(target_img, maxWidth) {

   var newX, newY;

   var newHeight, newWidth;

   var newImg;

    

   newImg = new Image();

   newImg.src = target_img.src;

   imgw = newImg.width;

   imgh = newImg.height;



    if (maxWidth>0) {

    } else {

        maxWidth = 650;

    }

    

   if( imgw > maxWidth ){

	var wResizeRate = maxWidth;

	var ResizeRate = wResizeRate;

    

       target_img.onload = null;

       target_img.src = newImg.src;

       target_img.width = ResizeRate;

   }

}



// 이미지의 크기에 맞게 팝업창으로 보기

var photoPopup = null;

function CaricaFoto(img){ 

    foto1= new Image(); 

    foto1.src=(img); 

    Controlla(img); 

} 

function Controlla(img){ 

    viewFoto(img); 

} 

function viewFoto(img){ 

    if(photoPopup!=null) photoPopup.close();

        

    largh=foto1.width+0; 

    altez=foto1.height+0; 

    var winl = (screen.width - largh) / 2; 

    var wint = (screen.height - altez) / 2;  

    stringa="width="+largh+",height="+altez+",top="+wint+",left="+winl; 

    photoPopup=window.open(img,"",stringa); 

    photoPopup.document.write("<html><head><title>포토이미지</title></head><body leftmargin=0 topmargin=0 marginwidth=0 marginheight=0>");

    photoPopup.document.write("<a href='JavaScript:self.close();'><img src="+img+" border=0></a>");

    photoPopup.document.write("</html>");

    photoPopup.focus();

} 



//-------------------------------------------------------------------

// 두 날짜 사이의 관계는 올바르게 정립되어 있는가 ?

// 

//-------------------------------------------------------------------

function is_check_date_width(s_date, e_date) {

	var t_s_date = parseInt(transNum(s_date.value));

	var t_e_date = parseFloat(transNum(e_date.value));



	if (t_s_date > t_e_date)

	{

		alert('종료일자가 시작일자보다 작습니다.');

		e_date.focus();

		return false;

	}

	return true;

}

//-------------------------------------------------------------------

// 숫자인지 아닌지 체크

// 

//-------------------------------------------------------------------

function is_check_number(obj) {



    for (var i=0; i<obj.value.length; i++) {

        if ((obj.value.charAt(i)<'0') || (obj.value.charAt(i)>'9')) {

            alert('숫자만 입력 가능합니다.');

            obj.value="";

            obj.focus();

            return false;

        }   

    }    

    return true;

}



// POPUP 페이지 리사이징

function setPopupPage(iFrameWidth, iFrameHeight) {

    var iWidth = document.body.scrollWidth;

    var iHeight = document.body.scrollHeight;



    if (parseInt(iFrameWidth)>0 )

    	iWidth = parseInt(iFrameWidth);

    if (parseInt(iFrameHeight)>0 )

    	iHeight = parseInt(iFrameHeight);



	iHeight = iHeight + 49;



    if (iHeight > 800 )

        iHeight = 800;



    self.resizeTo(iWidth , iHeight);

} 





// bodyFrame 페이지 리사이징

function setSitePage(iFrameWidth, iFrameHeight) {

    var iWidth = document.body.scrollWidth;

    var iHeight = document.body.scrollHeight;

    

    if (parseInt(iFrameWidth)>0 )

        iWidth = parseInt(iFrameWidth);

    if (parseInt(iFrameHeight)>0 )

        iHeight = parseInt(iFrameHeight);

    self.resizeTo(iWidth , iHeight);

} 



//-------------------------------------------------------------------

// 첨부파일 형식체크

// 

//-------------------------------------------------------------------



function onlyfileAttach(fileName) {

    extArray = new Array(".gif", ".jpg", ".txt", ".bmp", ".hwp", ".doc", ".ppt", ".xls", ".pdf" ,".zip");

    allowSubmit = false;

    

    

    if (!fileName) return true;

    while (fileName.indexOf("\\") != -1) {

        fileName = fileName.slice(fileName.indexOf("\\") + 1);

    }

    

    ext = fileName.slice(fileName.indexOf(".")).toLowerCase();

    //alert(ext);

    for (var i = 0; i < extArray.length; i++) {

        if (extArray[i] == ext) { allowSubmit = true; break; }

    }

    

    if (allowSubmit) {

        return true;

    } else {

        alert("아래 형태의 파일만 업로드 할 수 있습니다: " +"\n[" + (extArray.join("  ")) + "]"+"\n다시 선택 해 주세요");

        return false;

    }

}







//-------------------------------------------------------------------

// 폼,  파일개수, 제한용량

//-------------------------------------------------------------------



function checkAttachLmt(frm, cnt, lmt) {

   //  현재 올리는 첨부파일 용량

    var size = 0;

    //alert("ddd");

    for (var i=0; i<cnt; i++) {

        var insertName = "fileLists"+i;

        //alert("fff");

        // 파일을 업로드 할 시

        if (frm[insertName]) {

            var fileSize = frm.FileSizeCheck.FileSize(frm[insertName].value);

            if (fileSize>0) size += Math.round(fileSize/1024);

        }

        //alert("gggg");

        

    }

    

//    alert(size);

    

    //  파일을 지우거나 수정하는 용량

    var minusSize = 0;

    for (var i=0; i<cnt; i++) {

        var deleteName = "fileFlags"+i;

        var updateName = "saveFiles"+i;

        var attachSize = "attachSize"+i;

        var insertName = "fileLists"+i;

        

        if (frm[deleteName]) {

            if (frm[deleteName].checked) {

                minusSize += parseInt(frm[attachSize].value);

            } else {

                if (frm[updateName] && frm[updateName].value !='') {

                    if (frm[insertName] && frm.FileSizeCheck.FileSize(frm[insertName].value)>0) {

                        minusSize +=  parseInt(frm[attachSize].value);

                    }

                }

                 

            }

            

        } else {

            if (frm[updateName] && frm[updateName].value !='') {

                if (frm[insertName] && frm.FileSizeCheck.FileSize(frm[insertName].value)>0) {

                    minusSize +=  parseInt(frm[attachSize].value);

                }

            }            

        }

        

        

    }

    

//    alert(minusSize);

    

    if (size>parseInt(lmt) || (size - minusSize)>parseInt(lmt)) {

        alert("최대 첨부파일 용량은 "+lmt+" Kb 입니다.\n첨부파일 용량을 확인해 주세요.");

        return false;

    } else {

        return true;

    }

    

    



   

}

/** 개발 팀에서 만든 소스 끝**/

