/** 
 * 
 * 공통 기본 자바스크립트 함수
 *
 */

//------------------------------------------------------------------
// studentPop : 학생정보를 팝업으로 호출한다.
// 파라미터 : stdtNum(학번), intAm(메뉴번호)
// 메뉴번호 : 1(기본), 2(학적), 3(수강), 4(등록), 5(성적), 6(장학), 7(입학/졸업), 8(학과변동)
//-------------------------------------------------------------------
function studentPop(stdtNum, intAm) {
	var am = "";
	switch(intAm) {
		case 1:
			am = "readListBasic";
			break;
		case 2:
			am = "readListHakjeok";
			break;
		case 3:
			am = "readListSugan";
			break;
		case 4:
			am = "readListReg";
			break;
		case 5:
			am = "readListPoint";
			break;
		case 6:
			am = "readListJangHak";
			break;			
		case 7:
			am = "readListInOut";
			break;
		case 8:
			am = "readListChange";
			break;
		default:
			am = "readListBasic";
	}
	openWindowCenter('/AM221_A.do?am='+am+'&stdtNum='+stdtNum, 'OpenWin', 830, 500, 'scrollbars=yes');
	return;
}

//------------------------------------------------------------------
// 상담실에서 FILE Object를 넘기면 확장자를 체크한다.
// 예제) onChange="javascript:chkQnAFile(formName.fileName)"
// 상담실에 업로드 가능한 파일 체크
//-------------------------------------------------------------------
function chkQnAFile(obj) {
	var filenm = obj.value;
	var attachMysize = 0;
	if (filenm!="") {
		var ext = filenm.slice(filenm.lastIndexOf(".")+1).toLowerCase();
		if (!(ext=="hwp" || ext=="xls" || ext=="doc" || ext=="gul" || ext=="ppt" || ext=="pdf" || ext=="txt" || ext=="gif" || ext=="jpg")) {
			alert("(.hwp, .xls, .doc, .gul, .ppt, .pdf, .txt, .gif, .jpg)만 업로드 가능합니다.");
			obj.value="";
			obj.focus();
			return false;
		}
	} else return false;
	return true;
} 
 
//------------------------------------------------------------------
// FILE Object를 넘기면 확장자가 일반문서(hwp, doc, pdf, txt), 이미지(gif, jpg, png)인지 체크한다
// 예제) onChange="javascript:chkExamFile(formName.fileName)"
// 시험의 답변시 제출되는 파일의 형태
//-------------------------------------------------------------------
function chkExamFile(obj) {
	var filenm = obj.value;
	var attachMysize = 0;
	if (filenm!="") {
		var ext = filenm.slice(filenm.lastIndexOf(".")+1).toLowerCase();
		if (!(ext=="hwp" || ext=="doc" || ext=="pdf" || ext=="txt" || ext=="gif" || ext=="jpg" || ext=="png")) {
			alert("(.hwp, .doc, .pdf, .txt, .gif, .jpg, .png)만 업로드 가능합니다.");
			obj.value="";
			obj.focus();
			return false;
		}
	} else return false;
	return true;
}

//------------------------------------------------------------------
// FILE Object를 넘기면 확장자가 일반문서(hwp, doc, pdf, txt)인지 체크한다
// 예제) onChange="javascript:chkMunseoFile(formName.fileName)"
//-------------------------------------------------------------------
function chkMunseoFile(obj) {
	var filenm = obj.value;
	var attachMysize = 0;
	if (filenm!="") {
		var ext = filenm.slice(filenm.lastIndexOf(".")+1).toLowerCase();
		if (!(ext=="hwp" || ext=="doc" || ext=="pdf" || ext=="txt")) {
			alert("문서파일(.hwp, .doc, .pdf, .txt)만 업로드 가능합니다.");
			obj.value="";
			obj.focus();
			return false;
		}
	} else return false;
	return true;
}

//------------------------------------------------------------------
// FILE Object를 넘기면 확장자가 이미지(gif, jpg, png)인지 체크한다
// 예제) onChange="javascript:chkImg(formName.fileName)"
//-------------------------------------------------------------------
function chkImg(obj) {
	var filenm = obj.value;
	var attachMysize = 0;
	if (filenm!="") {
		var ext = filenm.slice(filenm.lastIndexOf(".")+1).toLowerCase();
		if (!(ext=="gif" || ext=="jpg" || ext=="png")) {
			alert("이미지파일(.gif, .jpg, .png)만 업로드 가능합니다.");
			obj.value="";
			obj.focus();
			return false;
		}
	} else return false;
	return true;
}

//------------------------------------------------------------------
// FILE Object를 넘기면 확장자가 음성파일인지 체크한다
// 예제) onChange="javascript:chkWav(formName.fileName)"
//-------------------------------------------------------------------
function chkWav(obj) {
	var filenm = obj.value;
	var attachMysize = 0;
	if (filenm!="") {
		var ext = filenm.slice(filenm.lastIndexOf(".")+1).toLowerCase();
		if (!(ext=="wav" || ext=="mp2" || ext=="mp3")) {
			alert("음성파일(.wav, .mp3, .mp3)만 업로드 가능합니다.");
			obj.focus();
			return false;
		}
	} else return false;
	return true;
}

//------------------------------------------------------------------
// FILE Object를 넘기면 확장자가 동영상파일인지 체크한다
// 예제) onChange="javascript:chkMov(formName.fileName)"
//-------------------------------------------------------------------
function chkMov(obj) {
	var filenm = obj.value;
	var attachMysize = 0;
	if (filenm!="") {
		var ext = filenm.slice(filenm.lastIndexOf(".")+1).toLowerCase();
		if (!(ext=="avi" || ext=="wmv" || ext=="wma")) {
			alert("동영상파일(.avi, .wav, .wma)만 업로드 가능합니다.");
			obj.focus();
			return false;
		}
	} else return false;
	return true;
}

//------------------------------------------------------------------
// FILE Object를 넘기면 확장자가 Excel파일인지 체크한다
// 예제) onChange="javascript:chkExcel(formName.fileName)"
//-------------------------------------------------------------------
function chkExcel(obj) {
	var filenm = obj.value;
	var attachMysize = 0;
	if (filenm!="") {
		var ext = filenm.slice(filenm.lastIndexOf(".")+1).toLowerCase();
		if (!(ext=="xls")) {
			alert("엑셀파일(.xls)만 업로드 가능합니다.");
			obj.focus();
			return false;
		}
	} else return false;
	return true;
}

//------------------------------------------------------------------
// FILE Object를 넘기면 확장자가 압축파일인지 체크한다
// 예제) onChange="javascript:chkZip(formName.fileName)"
//-------------------------------------------------------------------
function chkZip(obj) {
	var filenm = obj.value;
	var attachMysize = 0;
	if (filenm!="") {
		var ext = filenm.slice(filenm.lastIndexOf(".")+1).toLowerCase();
		if (!(ext=="zip")) {
			alert("압축파일(.zip)만 업로드 가능합니다.");
			obj.focus();
			return false;
		}
	} else return false;
	return true;
}

//------------------------------------------------------------------
// FILE Object를 넘기면 확장자가 플레시파일인지 체크한다
// 예제) onChange="javascript:chkSwf(formName.fileName)"
//-------------------------------------------------------------------
function chkSwf(obj) {
	var filenm = obj.value;
	var attachMysize = 0;
	if (filenm!="") {
		var ext = filenm.slice(filenm.lastIndexOf(".")+1).toLowerCase();
		if (!(ext=="swf")) {
			alert("플레시(.swf)만 업로드 가능합니다.");
			obj.focus();
			return false;
		}
	} else return false;
	return true;
}

//----------------------------------------------------------------------------
// CheckBox Object를 넘기면 전부체크한다.
//   반드시 checkYn이란 이름을 가진 checkBox가 있어야 하며, 이 CheckBox의
//   onClick event에 이 function을 적용한다.
//
//	ARGUMENTS
//		formName : CheckBox가 있는 form의 name
//		obj : CheckBox의 name(form name을 붙여서 넘긴다. ( ex. formName.chboxName )
//
//	RETURN
//
//	예제) <input type="checkbox" name="checkYn" onClick="javascript:checkAll(formName, formName.chboxName)">
//---------------------------------------------------------------------------*/
function checkAll(formName, obj){
    if (obj) {
        if (obj.length) {
            for (var i=0 ; i<obj.length ; i++)
            	if (obj[i].type=='checkbox') obj[i].checked = formName.checkYn.checked;
        }
        else
            if (obj.type=='checkbox') obj.checked = formName.checkYn.checked;
    }
}


//----------------------------------------------------------------------------
// CheckBox가 반드시 한 건만 선택되도록 체크
//
//	ARGUMENTS
//		obj = CheckBox의 name ( form name을 붙여서 넘긴다. 예: formName.chboxName )
//
//	RETURN
//		boolean
//
//	예제) if( checkValid(formName.chboxName) ) { ...
//---------------------------------------------------------------------------*/
function checkValid(obj) {
    var checkedCount = 0;
    if (obj) {
        if (obj.length) {
            for(var i=0 ; i<obj.length ; i++)
                if (obj[i].checked) checkedCount++;
            if (checkedCount == 0) {
                alert('항목을 선택하여 주십시오.');
                return false;
            } else if (checkedCount > 1){
                alert('항목을 하나만 선택하여 주십시오.');
                return false;
            } else
                return true;
        } else {
            if (!obj.checked) {
                alert('항목을 선택하여 주십시오.');
                return false;
            } else
                return true;
        }
    } else {
        alert('선택할 항목이 없습니다.');
        return false;
    }
}


//----------------------------------------------------------------------------
// CheckBox가 반드시 한 건 이상은 선택되도록 체크
//
//	ARGUMENTS
//		obj : CheckBox의 name(form name을 붙여서 넘긴다. 예:formName.chboxName)
//
//	RETURN
//		checkedCount : check된 수
//
// 예제) if( checkValid2(formName.chboxName) ) { ...
//---------------------------------------------------------------------------*/
function checkValid2(obj) {
    var checkedCount = 0;
    if (obj) {
        if (obj.length) {
            for (var i=0 ; i<obj.length ; i++)
                if (obj[i].checked) checkedCount++;
            if (checkedCount == 0) {
                alert('항목을 선택하여 주십시오.');
                return checkedCount;
            } else
                return checkedCount;
        } else {
            if (!obj.checked) {
                alert('항목을 선택하여 주십시오.');
                return checkedCount;
            } else {
                checkedCount++;
                return checkedCount;
            }
        }
    } else {
        alert('선택할 항목이 없습니다.');
        return false;
    }
}


//----------------------------------------------------------------------------
// 선택된 CheckBox 또는 RadioButton 의 Value를 Return한다.
//
//	ARGUMENTS
//		obj : CheckBox 또는 RadioButton 의 name(form name을 붙여서 넘긴다. 예:formName.chboxName)
//
//	RETURN
//		checkedValue : 선택된 항목의 value 값
//
// 예제) var value = getCheckedValue(formName.chboxName);
//---------------------------------------------------------------------------*/
function getCheckedValue(obj) {
    var checkedValue='';

    if (obj.length) {
        for (var i=0 ; i<obj.length ; i++) {
            if (obj[i].checked) {
                checkedValue = obj[i].value;
                return checkedValue;
            }
        }
    } else {
        if(obj.checked) {
            checkedValue = obj.value;
            return checkedValue;
        }
    }

    return checkedValue;
}


//------------------------------------------------------------------------------
// 팝업창을 띄우고 화면의 중앙으로 이동한다.
//
//	ARGUMENTS
//		theURL : 팝업창의 URL
//		winName : 팝업창 이름
//		width : 팝업창의 width
//		height : 팝업창의 height
//		features : 추가기능 (ex. 'scrollbars=no, resizable=yes' )
//
//	RETURN
//		win : window 객체
//
// 예제) var win = openWindowCenter(url, 'popup_calendar', 180, 195, 'scrollbars=no');
//------------------------------------------------------------------------------
function openWindowCenter(theURL, winName, width, height, features) {

	// 화면 중앙의 좌표값 계산
	var leftX = screen.width / 2 - width / 2;
	var topY = -75 + screen.height / 2 - height / 2;
	
	// 팝업창 크기 설정
	var featuresValue = 'width=' + width + ',height=' + height;
	featuresValue += ',left=' + leftX + ',top=' + topY;
	
	// 추가 속성 지정
	if (features.length > 0)
		featuresValue += ',' + features; // + ',resizable=yes';
	
	//창을 open 한다.
	var win = window.open(theURL,winName,featuresValue);

	win.focus();
	
	return win;
}


//------------------------------------------------------------------------------
// 찾고자 하는 form의 element의 갯수를 return
//
//   ARGUMENTS
//      formName = form의 name
//      eleName  = 갯 수를 알고자 하는 element의 Name
//
//   RETURN
//      element의 갯 수
//---------------------------------------------------------------------------*/
function getEleNum(formName,elementName) {
    var elementNum = 0;
    if (formName.elements.length) {
	    for (i=0 ; i<formName.elements.length ; i++) {
  	      if (formName.elements[i].name == elementName)
    	        elementNum++;
    	}
    } else {
			elementNum = 1;
    }
    return elementNum;
}


//------------------------------------------------------------------------------
// 찾고자 하는 form의 element중 선택된 element의 갯수를 return
//
//   ARGUMENTS
//      formName = form의 name
//      eleName  = 갯 수를 알고자 하는 element의 Name
//
//   RETURN
//      element의 갯 수
//---------------------------------------------------------------------------*/
function getCheckedEleNum(formName,elementName) {
    var elementNum = 0;
    for (i=0 ; i<formName.elements.length ; i++) {
        if (formName.elements[i].name == elementName) {
            if (formName.elements[i].checked)
                elementNum++;
        }
    }
    return elementNum;
}


//------------------------------------------------------------------------------
// 찾고자 하는 form의 element중 선택된 element의 index를 return
//
//   ARGUMENTS
//      formName = form의 name
//      checkBoxName  = 체크 된 index를 알고자 하는 체크박스 이름
//
//   RETURN
//      checked Index의 Array
//---------------------------------------------------------------------------*/
function getCheckedEleIndex(formName,checkBoxName) {
    var checkedEleIndex = new Array();
    var elementNum = 0;
    var j = 0;
    for (i=0 ; i<formName.elements.length ; i++) {
        if (formName.elements[i].name == checkBoxName) {
            if (formName.elements[i].checked) {
                checkedEleIndex[elementNum] = j;
                elementNum++;
            }
            j++;
        }
    }
    return checkedEleIndex;
}


//------------------------------------------------------------------------------
//  찾고자 하는 form의 element중 선택된 checkBox와 같은 row에 있는 항목의
// element의 value를 return
//
//   ARGUMENTS
//      formName = form의 name
//      checkBoxName = 체크 된 index를 알고자 하는 체크박스 이름
//      elementName = value를 알고 싶은 element의 이름
//
//   RETURN
//      element의 value Array
//---------------------------------------------------------------------------*/
function getCheckedEleValues(formName,checkBoxName,elementName) {
    var checkedEleIndex  = getCheckedEleIndex(formName,checkBoxName);
    
    if (checkedEleIndex.length == 0) {
        alert('선택된 항목이 없습니다.');
        return;
    }
    
    var checkedEleValues = new Array();
    var elementNum = 0;
    var j = 0;
    
    for (i=0 ; i<formName.elements.length ; i++) {
        if (formName.elements[i].name == elementName) {
            if (j == checkedEleIndex[elementNum]) {
                checkedEleValues[elementNum] = formName.elements[i].value;
                elementNum++;
            }
            j++;
        }
    }
    return checkedEleValues;
}


//------------------------------------------------------------------------------
// selectbox 에 option을 추가한다.
//
//   ARGUMENTS
//      selectName = select의 name (form name까지 붙여준다)
//      tmpValue   = option의 value 값
//      tmpText    = option의 text 값
//
//   RETURN
//---------------------------------------------------------------------------*/
function addSelectOption(selectName,tmpValue,tmpText) {
    if (tmpValue != '') {
        if (!selectName.length) i = 0;
        else i = selectName.length;
        var tmpOption = new Option();
        tmpOption.text = tmpText;
        tmpOption.value = tmpValue;
        selectName.options[i] = tmpOption;
    }
}


//------------------------------------------------------------------------------
// selectbox 에서 select된 option을 삭제한다.
//
//   ARGUMENTS
//      selectName = select의 name(form name까지 붙여준다)

//   RETURN
//---------------------------------------------------------------------------*/
function delSelectOption(selectName) {
    if (selectName.length) {
        var selectedCnt = 0;
        for(i=0 ; i<selectName.length ; i++) {
            if(selectName.options[i].selected) {
                selectName.options[i] = null;
                selectedCnt++;
                i--;
            }
        }
        if (selectedCnt == 0) return;
    } else
        return;
}
//------------------------------------------------------------------------------
// selectbox안에 모든 option을 삭제한다.
//
//   ARGUMENTS
//      selectName = select의 name(form name까지 붙여준다)

//   RETURN
//---------------------------------------------------------------------------*/
function allDelSelectOption(selectName) {
    if (selectName.length) {
        var selectedCnt = 0;
        for(i=0 ; i<selectName.length ; i++) {
                selectName.options[i] = null;
                selectedCnt++;
                i--;
        }
        if (selectedCnt == 0) return;
    } else
        return;
}


//------------------------------------------------------------------------------
// selectbox 를 전체선택한다.
//
//   ARGUMENTS
//      selectName = select의 name(form name까지 붙여준다)
//
//   RETURN
//---------------------------------------------------------------------------*/
function selectAll(selectName) {
    if (selectName.length) {
        for (i=0 ; i<selectName.length ; i++)
            selectName.options[i].selected = true;
    }
}


//------------------------------------------------------------------------------
// subString 한다.
//
//	ARGUMENTS
//		str = 대상 String
//		inx = subString할 길이
//
//	RETURN
//		result = substring 된 문자열	
//---------------------------------------------------------------------------*/
function getSubString(str,inx) {
    var result = '';
    if (str.length < inx)
        result = str;
    else
        result = str.substring(0,inx);
}


//------------------------------------------------------------------------
// 글자수 제한 체크 (onKeyUp 이벤트)
//
//   ARGUMENTS
//      len = 제한하려는 Byte 수(한글은 2byes 처리함)
//
//   RETURN
//
// 예제) <textarea name="userPswd" cols="60" rows="2" onKeyUp="charNumChk(this, 80);"></textarea>
// 
//------------------------------------------------------------------------
function charNumChk(obj, len) {

	var str = obj.value;
	var nLen = str.length+(escape(str)+"%u").match(/%u/g).length-1;
    if ( nLen <= len ) {
       return true;
    } else {
    	alert("영문"+len+"자, 숫자"+len+"자, 한글"+len/2+"자 를 초과하여 입력할 수 없습니다.");
    	obj.value =  charCutBytes(obj.value, len);
    	obj.focus();
        return false;
    }

}

function charNumChk3(obj, len) {
	var ls_one_char = ""; 
	var str = obj.value;	
	var nLen = str.length+(escape(str)+"%u").match(/%u/g).length-1;	
	if(!isNotKorean(obj.value)){
		alert("한글을 입력할 수 없습니다.");
		return false;
	}
    if ( nLen <= len ){
       return true;
    } else {
    	alert("영문"+len+"자, 숫자"+len+"자 를 초과하여 입력할 수 없습니다.");
    	obj.value =  charCutBytes(obj.value, len);
    	obj.focus();
        return false;
    }

}

//------------------------------------------------------------------------
// 글자수 제한 체크(포커스 이동을 안함)
//
//   ARGUMENTS
//      len = 제한하려는 Byte 수(한글은 2byes 처리함)
//
//   RETURN
//
// 예제) charNumChk2(this, 80);
// 
//------------------------------------------------------------------------
function charNumChk2(obj, len) {

	var str = obj.value;
	var nLen = str.length+(escape(str)+"%u").match(/%u/g).length-1;
    if ( nLen <= len ) {
       return true;
    } else {
    	alert("영문"+len+"자, 숫자"+len+"자, 한글"+len/2+"자 를 초과하여 입력할 수 없습니다.");
    	obj.value =  charCutBytes(obj.value, len);
        return false;
    }

}



//------------------------------------------------------------------------
// 해당 문자열을 지정된 bytes 수 만큼만 잘라낸다.
// (한글과 같은 2 Byte 문자는 지정된 Byte 가 넘을 경우 잘릴수도 있음)
//
//   ARGUMENTS
//      str = 대상문자열
//      len = 잘라낼 Byte 수 (한글은 2byes 처리함)
//
//   RETURN
//      처리된 문자열
//
//------------------------------------------------------------------------
function charCutBytes(str, len) {
	var byteLength = 0;
	var result = '';
	
	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;
		}
		
		// bytes 길이를 넘어버dnddnd리면 마지막 글자는 넣지않고 리턴한다.
		if( byteLength > len )		break;
		//if( byteLength == len )	break;
		result += str.charAt(inx);

	}
	
	return result;
}



//------------------------------------------------------------------------
// 중복작업이 이루어질 경우를 대비해 모든 link를 workingNow()로 변경한다.
// 일반적으로 submit 이전에 실행해주면 중복 submit 을 막을 수 있다.
//------------------------------------------------------------------------
function reWorkChk() {
    for(i=0 ; i<document.links.length ; i++) {
        if (document.links[i].href.indexOf('close') == -1)
            document.links[i].href = 'javascript:workingNow();';
    }
}


//------------------------------------------------------------------------
// 중복작업 체크 후 모든 링크에 걸릴 메세지
// (reWorkChk 함수에 의존적, 직접호출필요없음)
//------------------------------------------------------------------------
function workingNow() {
    alert('현재 작업 진행 중에 다른 작업을 수행하셨습니다.\n진행중인 작업이 완료되었거나 작업이 지연중이니 \n이전 메뉴로 돌아가서 확인하십시오.');
}


//------------------------------------------------------------------------
// 현재 창에 새로운 이름을 붙인다.
//------------------------------------------------------------------------
function newName() {
    this.name = this.name+'_new';
}
        
        
//------------------------------------------------------------------------
// 현재창을 가운데로 이동시킨다.
//------------------------------------------------------------------------
function moveToCenter() {
    if (document.layers) {
        var x = screen.width / 2 - outerWidth / 2;
        var y = screen.height / 2 - outerHeight / 2;
    } else {
        var x = screen.width / 2 - document.body.offsetWidth / 2;
        var y = -75 + screen.height / 2 - document.body.offsetHeight / 2;
    }

    window.moveTo(x, y);
}


//------------------------------------------------------------------------
// 창 크기를 바꾸고 가운데로 이동시킨다.
//------------------------------------------------------------------------
function resizeCenter(width, height) {
    var leftX = screen.width / 2 - width / 2;
    var topY = -75 + screen.height / 2 - height / 2;

    window.resizeTo(width, height);
    window.moveTo(leftX, topY);
}


//------------------------------------------------------------------------
// 숫자만 입력 가능하도록 이벤트 처리 (onKeyDown 이벤트)
//
// 예제) <input type="text" name="jumin" onKeyDown="onlyNumberInput(this);" style="ime-mode:disabled;">
//------------------------------------------------------------------------
function onlyNumberInput(obj) {

	if(  ( (event.keyCode<48)||(event.keyCode>57) || event.shiftKey )
		&& event.keyCode != 8
		&& event.keyCode != 9
		&& event.keyCode != 13
		&& event.keyCode != 16
		&& event.keyCode != 17
		&& event.keyCode != 18
		&& event.keyCode != 19
		&& event.keyCode != 20
		&& event.keyCode != 21
		&& event.keyCode != 25
		&& event.keyCode != 27
		&& event.keyCode != 33
		&& event.keyCode != 34
		&& event.keyCode != 45
		&& event.keyCode != 46
		&& event.keyCode != 91
		&& event.keyCode != 93
		&& event.keyCode != 144
		&& event.keyCode != 145
		&& event.keyCode != 173
		&& event.keyCode != 174
		&& event.keyCode != 175
		&& !( event.keyCode >= 112 && event.keyCode <= 123 )
		&& !( event.keyCode >= 96 && event.keyCode <= 105 )
		&& !( event.keyCode >= 35 && event.keyCode <= 40 ) ) {
		alert("숫자만 입력하세요.");
		obj.value="";
		obj.focus();  //focus추가
		event.returnValue=false;
		return false;
	}
	
	event.returnValue = true;
	return true;
}

//------------------------------------------------------------------------
// 숫자와 .(Dot)만 입력 가능하도록 이벤트 처리 (onKeyDown 이벤트)
//
// 예제) <input type="text" name="jumin" onKeyDown="onlyNumberInput(this);" style="ime-mode:disabled;">
//------------------------------------------------------------------------
function onlyNumberDotInput(obj) {

	if(  ( (event.keyCode<48)||(event.keyCode>57) || event.shiftKey)
		&& event.keyCode != 110
		&& event.keyCode != 8
		&& event.keyCode != 9
		&& event.keyCode != 13
		&& event.keyCode != 16
		&& event.keyCode != 17
		&& event.keyCode != 18
		&& event.keyCode != 19
		&& event.keyCode != 20
		&& event.keyCode != 21
		&& event.keyCode != 25
		&& event.keyCode != 27
		&& event.keyCode != 33
		&& event.keyCode != 34
		&& event.keyCode != 45
		&& event.keyCode != 46
		&& event.keyCode != 91
		&& event.keyCode != 93
		&& event.keyCode != 144
		&& event.keyCode != 145
		&& event.keyCode != 173
		&& event.keyCode != 174
		&& event.keyCode != 175
		&& !( event.keyCode >= 112 && event.keyCode <= 123 )
		&& !( event.keyCode >= 96 && event.keyCode <= 105 )
		&& !( event.keyCode >= 35 && event.keyCode <= 40 ) ) {
		alert("숫자와 '.'만 입력하세요.");
		//obj.value="";
		obj.focus();  //focus추가
		event.returnValue=false;
		return false;
	}
	
	event.returnValue = true;
	return true;
}


//----------------------------------------------------------------------------
// 검색폼의 특수문자를 필터링한다. ( #, &, \, ', ", %, _ ) (onKeyDown 이벤트)
//
// 예제) <input type="text" name="cdGrpNm" onKeyDown="chkSrchFormSpecialChar();">
//---------------------------------------------------------------------------*/
function chkSrchFormSpecialChar() {
	var kcode = event.keyCode;
	var shiftKey= event.shiftKey;
	var msg = event.srcElement.value;
	
	// window.status = "키코드 : " + kcode + ", 쉬프트키 : " + shiftKey + ", 값 :" + event.srcElement.value;
	
	if( ( (kcode == 51 || kcode == 53 || kcode == 55 ||  kcode == 189 || kcode == 222) && shiftKey ) ||
		( kcode == 222 && !shiftKey ) ||
		( kcode == 220 && !shiftKey ) ) {

		alert("특수문자( #, &, \\, ', \", %, _ )는 입력하실 수 없습니다.");
        event.returnValue=false;
		return false;
	}

	// 한번 더 check	
	if (	msg.indexOf("#") != -1 ||
		msg.indexOf("&") != -1 ||
		msg.indexOf("\\") != -1 ||
		msg.indexOf("'") != -1 ||
		msg.indexOf('"') != -1 ||
		msg.indexOf("%") != -1 ||
		msg.indexOf("_") != -1) {
        
		alert("특수문자( #, &, \\, ', \", %, _ )는 입력하실 수 없습니다.");
		// event.srcElement.value = msg.substring(0, msg.length-1);
		event.srcElement.value = '';
        event.returnValue=false;
		return false;
	}
	
	// 복사해 넣기 방지
	if( event.ctrlKey && kcode == 86 ) {
		event.returnValue=false;
		return false;
	}
	
	event.returnValue = true;
	return true;
}


//------------------------------------------------------------------------
// 주민등록번호 입력 형식 처리 (onKeyUp 이벤트)
//
// 예제) <input type="text" size="14" type="text" maxLength="14" 
//					name="jumin" onKeyDown="onlyNumberInput(this);" onKeyUp="ssnFormat(this);">
//------------------------------------------------------------------------
function ssnFormat(obj) {

	var str = onlyNum(obj.value);
	var leng = str.length;

	switch(leng){
		case  1 :
		case  2 :
		case  3 : 
		case  4 :
		case  5 :
		case  6 : obj.value = str; break;
		case  7 :
		case  8 :
		case  9 :
		case 10 :
		case 11 :
		case 12 : obj.value = str.substring(0, 6) + "-" + str.substring(6, 13);
						break;
		case 13 : 	obj.value = str.substring(0, 6) + "-" + str.substring(6, 13);
						if(!isSSN(str.substring(0, 6) + str.substring(6, 13))){obj.value = "";}
						break;
 	}
}


//------------------------------------------------------------------------
// 주민등록번호의 유효성을 검증
//
//	ARGUMENTS
//		ssn = 대상 주민번호 ( ex. '8010142016147' )
//
//	RETURN
//		boolean
//---------------------------------------------------------------------------*/
function isSSN(ssn){
	var msg = "올바른 주민등록번호가 아닙니다.";
	
	if( ssn.length == 13 ) {
		
		var str_jumin1 = ssn.substring(0, 6);
		var str_jumin2 = ssn.substring(6);
		var checkImg='';
		var i3=0

		for (var i=0;i<str_jumin1.length;i++) {
			var ch1 = str_jumin1.substring(i, i+1);
			if(ch1<'0' || ch1>'9') { i3 = i3 + 1; }
		}

		if ( (str_jumin1 == '') || ( i3 != 0 ) ) {
			alert(msg);
			return false;
		}

		var i4=0
		for (var i=0;i<str_jumin2.length;i++) {
			var ch1 = str_jumin2.substring(i, i+1);
			if (ch1<'0' || ch1>'9') { i4=i4+1 }
		}

		if ( (str_jumin2 == '') || ( i4 != 0 ) ) {
			alert(msg);
			return false;
		}

		if(str_jumin1.substring(0,1) < 4) {
			alert(msg);
			return false;
		}

		if(str_jumin2.substring(0,1) > 4) {
			alert(msg);
			return false;
		}

		if((str_jumin1.length > 7) || (str_jumin2.length > 8)) {
			alert(msg);
			return false;
		}

		if ((str_jumin1 == '72') || ( str_jumin2 == '18')) {
			alert(msg);
			return false;
		}
	
		var f1=str_jumin1.substring(0,1)
		var f2=str_jumin1.substring(1,2)
		var f3=str_jumin1.substring(2,3)
		var f4=str_jumin1.substring(3,4)
		var f5=str_jumin1.substring(4,5)
		var f6=str_jumin1.substring(5,6)
		var hap=f1*2+f2*3+f3*4+f4*5+f5*6+f6*7
		var l1=str_jumin2.substring(0,1)
		var l2=str_jumin2.substring(1,2)
		var l3=str_jumin2.substring(2,3)
		var l4=str_jumin2.substring(3,4)
		var l5=str_jumin2.substring(4,5)
		var l6=str_jumin2.substring(5,6)
		var l7=str_jumin2.substring(6,7)
		hap=hap+l1*8+l2*9+l3*2+l4*3+l5*4+l6*5
		hap=hap%11
		hap=11-hap
		hap=hap%10

		if (hap != l7 ) {
			alert(msg);
			return false;
		}
		
		return true;
 	}
 	
 	alert(msg);
	return false;
}

function isFgnSsn(val){
	if (val == ''){
		alert('외국인등록번호를 입력하십시오.');
		return false;
	}
	
	if (val.length != 13) {
		alert('외국인등록번호 자리수가 맞지 않습니다.');
		return false;
	}
        
	if ((val.charAt(6) == "5") || (val.charAt(6) == "6")) birthYear = "19";
	else if ((val.charAt(6) == "7") || (val.charAt(6) == "8")) birthYear = "20";
	else if ((val.charAt(6) == "9") || (val.charAt(6) == "0")) birthYear = "18";
	else {
		alert("외국인등록번호에 오류가 있습니다. 다시 확인하십시오.");
		return false;
	} 
	
	birthYear += val.substr(0, 2);
	birthMonth = val.substr(2, 2) - 1;
	birthDate = val.substr(4, 2);
	birth = new Date(birthYear, birthMonth, birthDate);

	if ( birth.getYear() % 100 != val.substr(0, 2) ||
		birth.getMonth() != birthMonth ||
		birth.getDate() != birthDate) {
		alert('외국인등록번호에 오류가 있습니다. 다시 확인하십시오.');
		return false;
	}
    return true;
}

//------------------------------------------------------------------------
// 주민등록번호의 유효성을 검증
//
//	ARGUMENTS
//		ssn = 대상 주민번호 ( ex. '801014','2016147' )
//
//	RETURN
//		boolean
//---------------------------------------------------------------------------*/
function isSSN(jumin1,jumin2) 
{
	var msg = "올바른 주민등록번호가 아닙니다.";
	var jumin_1 = jumin1;
	var jumin_2 = jumin2;

	if(jumin_1 == "" || jumin_1.length != 6 || jumin_2 == "" || jumin_2.length != 7)
	{
		return false;
	}

	var Number = jumin_1 + jumin_2;
	var Sum=0;
	var Mod=0;
	var YearIn=0;
	var MonthIn=0;
	var DateIn=0;
	
	for (i=0; i<12; i++) {
		if (i==0)
			YearIn+=parseInt(Number.charAt(i))*10;
		if (i==1)
			YearIn+=parseInt(Number.charAt(i));
		if (i==2)
			MonthIn+=parseInt(Number.charAt(i))*10;
		if (i==3)
			MonthIn+=parseInt(Number.charAt(i));
		if (i==4)
			DateIn+=parseInt(Number.charAt(i))*10;
		if (i==5)
			DateIn+=parseInt(Number.charAt(i));
		if (i<6)
			Sum+=parseInt(Number.charAt(i))*(i+2);
		if (i>5&&i<8)
			Sum+=parseInt(Number.charAt(i))*(i+2);
		if (i>7)
			Sum+=parseInt(Number.charAt(i))*(i-6);
	}

	Mod = 11 - (Sum%11);
	
	if ( (11-(Sum%11)) >= 10 )
		Mod-=10;
	
	if(Mod!=parseInt(Number.charAt(12))) {
		alert(msg);
		return false;
	}
	if(MonthIn < 1 || MonthIn > 12 || DateIn < 1 || DateIn > 31) {
		alert(msg);
		return false;
	}
	if((MonthIn ==4 || MonthIn == 6 || MonthIn == 9 || MonthIn ==11 ) && DateIn > 30) {
		alert(msg);
		return false;
	}
	if(MonthIn ==2 && DateIn > 29) {
		alert(msg);
		return false;
	}
	return true;
}

//------------------------------------------------------------------------
// 사업자등록번호가 정확한지 확인한다.
//
//	ARGUMENTS
//		iSaupNo : 사업자등록번호 ( 'XXXXXXXXXX' 10자리)
//
//	RETURN
//		boolean
//---------------------------------------------------------------------------*/
function isSaupNO(iSaupNo) {

	if (!isNumber(iSaupNo)){
    	alert("사업자등록번호는 반드시 숫자로 구성되어야 합니다.");
    	return false;
	}
	else if ( iSaupNo.length != 10 ) {
		alert("사업자등록번호는 10자리 입니다.");
		return false;
	}
  
	var arr_saup = iSaupNo.split("");
	var wtArray = new Array(1,3,7,1,3,7,1,3,5);
	var iSaup_9 = 0;
	var iSum_saup = 0;
	var iCheck_digit = 0;
	
	//1~8자리까지 가중치를 곱하여 모두 더한다.
	for (i = 0; i < 8; i++){
		iSum_saup +=  eval(arr_saup[i]) * eval(wtArray[i]);
	}
	
	iSum_saup = iSum_saup % 10;
	
	//9번째 자리 숫자에 5를 곱한다.
	iSaup_9 = eval(arr_saup[8]) * 5;
	
	//5를 곱한 값을 10으로 나누어  몫과 나머지를 각각 1~8합계에 더한다.
	iSum_saup +=  Math.floor(iSaup_9 / 10) + iSaup_9 % 10;
	
	//결과 값을 10에서 뺀다.
	iCheck_digit = 10 - (iSum_saup % 10);
  
	//계산 값을 10으로 나눈 나머지를 구한다. (Check Digit)
	iCheck_digit = iCheck_digit % 10;
	
	if (iCheck_digit != arr_saup[9]) {
		alert("사업자등록번호가 정확하지 않습니다.\n 다시 확인하신후 입력하십시오.");
		return false;
	}
	
	return true;
}


//------------------------------------------------------------------------
// 법인번호 입력 형식 처리 (onKeyUp 이벤트)
//
// 예제) <input type="text" size="14" type="text" maxLength="14" 
//					name="bubinno" onKeyDown="onlyNumberInput();" onKeyUp="bubinFormat(this);">
//------------------------------------------------------------------------
function bubinFormat(obj) {
	var str = onlyNum(obj.value);
	var leng = str.length;

	switch(leng){
		case  1 :
		case  2 :
		case  3 :
		case  4 :
		case  5 :
		case  6 : obj.value = str; break;
		case  7 :
		case  8 :
		case  9 :
		case 10 :
		case 11 :
		case 12 :
		case 13 : obj.value = str.substring(0, 6) + "-" + str.substring(6, 13);
	}
}


//------------------------------------------------------------------------
// 사업자등록번호 입력 형식 처리 (onKeyUp 이벤트)
//
// 예제) <input type="text" size="12" type="text" maxLength="12" 
//					name="saupno" onKeyDown="onlyNumberInput();" onKeyUp="saupnoFormat(this);">
//------------------------------------------------------------------------
function saupnoFormat(obj) {
	var str = onlyNum(obj.value);
	var leng = str.length;
	
	switch(leng) {
		case  1 :
		case  2 :
		case  3 :obj.value = str; break;
		case  4 :
		case  5 :obj.value = str.substring(0, 3) + "-" + str.substring(3, 5); break;
		case  6 :
		case  7 :
		case  8 :
		case  9 :obj.value = str.substring(0, 3) + "-" + str.substring(3, 5) + "-" + str.substring(5, 10);break;
		default :break;
	}
}


//------------------------------------------------------------------------
// 입력값이 숫자인지를 확인한다.
//
//	ARGUMENTS
//		sVal : 입력값 문자열
//
//	RETURN
//		boolean
//---------------------------------------------------------------------------*/
function isNumber(sVal){    
	
	if(sVal.length < 1){
		return false;
	}

	for(i=0; i<sVal.length; i++) {
		iBit = parseInt(sVal.substring(i,i+1));
    	if(('0' < iBit) || ('9' > iBit)) {
			;
		}
		else {
			return false;
		}
	}
	
	return true;
}


//------------------------------------------------------------------------
// 입력된 문자열에서 숫자만 추출하여 리턴
//
//	ARGUMENTS
//		val : 숫자 추출 대상 문자열
//
//	RETURN
//		result : 처리된 문자열
//---------------------------------------------------------------------------*/
function onlyNum(val) {
	var num = val;
	var result = "";

	for (var i = 0; i < num.length; i ++) {
		if (num.charAt(i) >= 0 && num.charAt(i) <= 9)
			result = result + num.charAt(i);
		else
			continue;
	}
	
	return result;
}

//------------------------------------------------------------------------
// 우편번호 찾기 팝업창 오픈
//
//	ARGUMENTS
//		post1Obj : 우편번호 앞자리 오브젝트
//     post2Obj : 우편번호 뒷자리 오브젝트
//     addrObj : 주소 오브젝트
//
//---------------------------------------------------------------------------*/
function callPost(post1Obj, post2Obj, addr1Obj, addr2Obj) {
	var url = "/CMM/CMM04_A.do?am=readList&post1=" + post1Obj + "&post2=" + post2Obj + "&addr1=" + addr1Obj + "&addr2=" + addr2Obj;
	openWindowCenter(url, 'APPLE', 450, 240, 'scrollbars=yes,resizable=no')
}

//------------------------------------------------------------------------
// 유관기관검색 팝업창 오픈
//
//	ARGUMENTS none
//
//---------------------------------------------------------------------------*/
function callOrg() {
	var url = "/CAL/CAL04_A.do?method=readOrgList";
	openWindowCenter(url, 'APPLE', 685, 450, 'scrollbars=yes,resizable=no')
}

//------------------------------------------------------------------------
// CM 팝업창 오픈
//
//	ARGUMENTS
//      formNm = 폼이름
//
//---------------------------------------------------------------------------*/
function callCm(formNm) {
	var url = "/INF/INF04_A.do?method=readCmList"+"&formNm="+formNm;
	openWindowCenter(url, 'APPLE', 685, 450, 'scrollbars=yes,resizable=no')
}

//------------------------------------------------------------------------
// 콜센터 상담원 팝업창 오픈
//
//	ARGUMENTS
//
//---------------------------------------------------------------------------*/
function callCall() {
	var url = "/CAL/CAL05_A.do?method=readCallList";
	openWindowCenter(url, 'APPLE', 685, 450, 'scrollbars=yes,resizable=no')
}

//------------------------------------------------------------------------
// 연구원 팝업창 오픈
//
//	ARGUMENTS none
//
//---------------------------------------------------------------------------*/
function callResearch() {
	var url = "/INF/INF08_A.do?method=readResearchList";
	openWindowCenter(url, 'APPLE', 685, 450, 'scrollbars=yes,resizable=no')
}
//------------------------------------------------------------------------------
// checkbox 를 전체선택 또는 해제한다.
//
//   ARGUMENTS
//      obj1 = 전체 선택여부 obj1이 checked이면 obj2를 모두 checked하고, 그렇지 않다면 모두 false한다. form1.chk = checkbox의  name에 (form name까지 붙여준다)
//      obj2 = form1.chk = checkbox의  name에 (form name까지 붙여준다)
//
//   RETURN
//---------------------------------------------------------------------------*/
function allCheckBox(obj1, obj2){
	if(obj1.checked){
		if(obj2){
			if(obj2.length > 1){
				for(var i=0;i<obj2.length;i++){
					if(obj2[i].disabled == false){
						obj2[i].checked = true;
					}
				}
			}else{
				if(obj2.disabled == false){
					obj2.checked = true;
				}
			}				
		}
	}else{
		if(obj2){
			if(obj2.length > 1){
				for(var i=0;i<obj2.length;i++){
					obj2[i].checked = false;
				}
			}else{
				obj2.checked = false;
			}				
		}		
	}
}
/* =============================================================
  Function : 삭제여부를 물어 본후 확인을 누르면 진행 시키는script
  Return   : true, false
  Usage    : 
================================================================= */
function delConfirm(){
	return confirm ("삭제하시겠습니까?");
}
/* =============================================================
  Function : 원서제출여부를 물어 본후 확인을 누르면 진행 시키는script
  Return   : true, false
  Usage    : 
================================================================= */
function applyEntrConfirm(){
	return confirm ("입학원서 제출후에는 수정이 불가능합니다. 입학원서를 제출하시겠습니까?");
}
/* =============================================================
  Function : 승인여부를 물어 본후 확인을 누르면 진행 시키는script
  Return   : true, false
  Usage    : 
================================================================= */
function admissionConfirm(){
	return confirm ("승인하시겠습니까?");
}
/* =============================================================
  Function : 입학포기를 물어 본후 확인을 누르면 진행 시키는script
  Return   : true, false
  Usage    : 
================================================================= */
function entrCncl6Confirm(){
	return confirm ("입학포기하시겠습니까?");
}
/* =============================================================
  Function : 삭제여부를 물어 본후 확인을 누르면 진행 시키는script
  Return   : true, false
  Usage    : 
================================================================= */
function entrCncl7Confirm(){
	return confirm ("입학취소하시겠습니까?");
}
/* =============================================================
  Function : 삭제여부를 물어 본후 확인을 누르면 진행 시키는script
  Return   : true, false
  Usage    : 
================================================================= */
function entrCncl10Confirm(){
	return confirm ("재입학하시겠습니까?");
}
/* =============================================================
  Function : 반려여부를 물어 본후 확인을 누르면 진행 시키는script
  Return   : true, false
  Usage    : 
================================================================= */
function rejectConfirm(){
	return confirm ("반려하시겠습니까?");
}
/* =============================================================
  Function : 탈퇴여부를 물어 본후 확인을 누르면 진행 시키는script
  Return   : true, false
  Usage    : 
================================================================= */
function secedeConfirm(){
	return confirm ("탈퇴하시겠습니까?");
}
/* =============================================================
  Function : 저장여부를 물어 본후 확인을 누르면 진행 시키는script
  Return   : true, false
  Usage    : 
================================================================= */
function saveConfirm(){
	return confirm ("저장하시겠습니까?");
}
/* =============================================================
  Function : 반납여부를 물어 본후 확인을 누르면 진행 시키는script
  Return   : true, false
  Usage    : 
================================================================= */
function retConfirm(){
	return confirm ("반납하시겠습니까?");
}
/* =============================================================
  Function : 파기여부를 물어 본후 확인을 누르면 진행 시키는script
  Return   : true, false
  Usage    : 
================================================================= */
function destConfirm(){
	return confirm ("파기하시겠습니까?");
}
/* =============================================================
  Function : 복원여부를 물어 본후 확인을 누르면 진행 시키는script
  Return   : true, false
  Usage    : 
================================================================= */
function restoreConfirm(){
	return confirm ("복원하시겠습니까?");
}
/* =============================================================
  Function : 복원여부를 물어 본후 확인을 누르면 진행 시키는script
  Return   : true, false
  Usage    : 
================================================================= */
function storeConfirm(){
	return confirm ("제작을 완료하시겠습니까?");
}
/* =============================================================
  Function : 복원여부를 물어 본후 확인을 누르면 진행 시키는script
  Return   : true, false
  Usage    : 
================================================================= */
function serviceConfirm(){
	return confirm ("서비스를 반영하시겠습니까?");
}
//------------------------------------------------------------------------
// 메뉴이동
//------------------------------------------------------------------------
    function goMenu(url,brdid,menuid,brdnm){
    	menuform.brd_id.value = brdid;
    	menuform.menuId.value = menuid;
    	menuform.brdNm.value = brdnm;
	    menuform.action=url;
	    menuform.submit();
	}

//------------------------------------------------------------------------
// 주민등록번호 중복검사 
//
//	ARGUMENTS
//		ssn1Obj : 주민번호 앞자리 Object
//     ssn2Obj : 주민번호 뒷자리 Object
//     ssn1ObjNm : 주민번호앞자리 이름
//     ssn2ObjNm : 주민번호뒷자리 이름
//     ssnFnObjNm : 주민번호 체크여부 이름
//     formNm : 폼이름
//
//---------------------------------------------------------------------------*/
	function goSsn(ssn1Obj, ssn2Obj, ssnFnObj, ssn1ObjNm, ssn2ObjNm,  ssnFnObjNm, formNm){
		if(!isSSN((ssn1Obj.value + ssn2Obj.value))){
			ssn1Obj.value = "";
			ssn2Obj.value = "";
			ssnFnObj.value ="F";
		 	return;
		}else { 		
			var url = "/INF/INF031_A.do?method=ssnFind&ssn1="+ssn1Obj.value+"&ssn2="+ssn2Obj.value+"&ssn1Nm="+ssn1ObjNm+"&ssn2Nm="+ssn2ObjNm+"&ssnFnNm="+ssnFnObjNm+"&formNm="+formNm;
			openWindowCenter(url, 'APPLE', 442, 198, 'scrollbars=yes,resizable=no')
		}
	}

//------------------------------------------------------------------------
// Clinet 주민등록번호 중복검사 
//
//	ARGUMENTS
//		ssn1Obj : 주민번호 앞자리 Object
//     ssn2Obj : 주민번호 뒷자리 Object
//     ssn1ObjNm : 주민번호앞자리 이름
//     ssn2ObjNm : 주민번호뒷자리 이름
//     ssnFnObjNm : 주민번호 체크여부 이름
//     formNm : 폼이름
//
//---------------------------------------------------------------------------*/
	function goClientSsn(ssn1Obj, ssn2Obj, ssnFnObj, ssn1ObjNm, ssn2ObjNm,  ssnFnObjNm, formNm){
		if(!isSSN((ssn1Obj.value + ssn2Obj.value))){
			ssn1Obj.value = "";
			ssn2Obj.value = "";
			ssnFnObj.value ="F";
		 	return;
		}else { 		
			var url = "/INF/INF031_A.do?method=ssnClientFind&ssn1="+ssn1Obj.value+"&ssn2="+ssn2Obj.value+"&ssn1Nm="+ssn1ObjNm+"&ssn2Nm="+ssn2ObjNm+"&ssnFnNm="+ssnFnObjNm+"&formNm="+formNm;
			openWindowCenter(url, 'APPLE', 442, 198, 'scrollbars=yes,resizable=no')
		}
	}
	
//------------------------------------------------------------------------
// 아이디찾기 주의사항  * 아래의 사항을 꼭 읽어볼것...
//popup용 폼에 layer은 아래와 같다.
//popup용 폼선언은 <form name=<%=formNm%> method="post" action="">
//hidden객체는 <input type="hidden" name="formNm" value="<%=formNm%>">
//<input type="hidden" name="idNm" value="<%=idNm%>">
// 폼객체는 <alice:idfind formNm="<%=formNm%>" idNm="<%=idNm%>"/>
//parent객체에 idFn 객체값을 설정하면서 "F"라는 갑을 넣어준다. 아이디중복검사를 성공적으로 마치면 "T"라고 설정됩니다.
//parent객체는  <alice:idfind formNm="parent폼이름" idNm="parent폼의 ID객체이름 "/>
//	ARGUMENTS
//		idObj : 주민번호 앞자리 Object
//     idObjNm : 주민번호 뒷자리 Object
//     formNm : 폼이름
//
//---------------------------------------------------------------------------*/	
	function findID(idObj, idObjNm, formNm){
		if(idObj.value == ""){
			alert("아이디를 입력하여 주세요.");
			idObj.focus();
			return;
		}else{
			var retVal = checkSpace( idObj.value );
			if( retVal != "") {
			    alert("아이디는 빈공간 없이 연속된 영문 소문자와 숫자만 사용할 수 있습니다.");
			    return;
			}
			if(idObj.value.length < 6 ||  idObj.value.length > 20){
				alert("아이디는 영문자 숫자 조합 6자리이상 20자리 미만으로 입력하여 주세요.");
				idObj.focus();
				return;
			}						
			//아이디의 첫번째 자리는 영문자여야함.
			if(isEnglish(idObj.value.substring(0,1)) == false){
				alert("아이디의 첫번째자리는 영문자로 입력하셔야 합니다.");
				idObj.value = "";
				idObj.focus();
				return;
			}			
			//아이디는 영문자또는 숫자로 되어야있어야함.
			if(!isAlphaNum(idObj)){
				alert("아이디는 영문자 숫자 조합 6자리이상 20자리 미만으로 입력하여 주세요.");
				idObj.focus();
				return;
			}			
			//아이디는 숫자로만 입력할 수 없음.
			if(isNumber(idObj) == false){
				alert("아이디는 숫자로만 입력하실 수 없습니다.");
				idObj.value = "";
				idObj.focus();
				return;
			}else{			
				var url = "/MBS02_A.do?am=readIdChk&userId="+idObj.value+"&idNm="+idObjNm+"&formNm="+formNm;
				openWindowCenter(url, '아이디찾기', 450, 250, 'scrollbars=no');
			}
		}
	}	

//------------------------------------------------------------------------
// 추천 아이디 유효성 체크
//	ARGUMENTS
//		idObj : 아이디 폼 오브젝트
//     formNm : 폼이름
//
//---------------------------------------------------------------------------*/	
function chkId(idObj, formNm){
	if(idObj.value == ""){
		alert("추천 아이디를 입력하여 주세요.");
		idObj.focus();
		return false;
	}else{
		var retVal = checkSpace( idObj.value );
		if( retVal != "") {
		    alert("추천 아이디는 빈공간 없이 연속된 영문 소문자와 숫자만 사용할 수 있습니다.");
		    return false;
		}
		if(idObj.value.length < 6 ||  idObj.value.length > 20){
			alert("추천 아이디는 영문자 숫자 조합 6자리이상 20자리 미만으로 입력하여 주세요.");
			idObj.focus();
			return false;
		}						
		//아이디의 첫번째 자리는 영문자여야함.
		if(isEnglish(idObj.value.substring(0,1)) == false){
			alert("추천 아이디의 첫번째자리는 영문자로 입력하셔야 합니다.");
			idObj.value = "";
			idObj.focus();
			return false;
		}			
		//아이디는 영문자또는 숫자로 되어야있어야함.
		if(!isAlphaNum(idObj)){
			alert("추천 아이디는 영문자 숫자 조합 6자리이상 20자리 미만으로 입력하여 주세요.");
			idObj.focus();
			return false;
		}			
		//아이디는 숫자로만 입력할 수 없음.
		if(isNumber(idObj) == false){
			alert("추천 아이디는 숫자로만 입력하실 수 없습니다.");
			idObj.value = "";
			idObj.focus();
			return false;
		}
		return true;
	}
}

//------------------------------------------------------------------------
// 유관기관 검색 팝업
//
//---------------------------------------------------------------------------*/
function callOrgMem() {
	var url = "/MEM/MEM05_A.do?method=readList";
	openWindowCenter(url, 'APPLE', 660, 450, 'scrollbars=yes,resizable=no')
}

	
//------------------------------------------------------------------------
// Client 검색 팝업
//
//---------------------------------------------------------------------------*/
function callClient() {
	var url = "/CMR/CMR05_A.do?method=readClientList"; 
	openWindowCenter(url, 'APPLE', 760, 620, 'scrollbars=yes,resizable=no')
}

//------------------------------------------------------------------------
// Base64 Encoding
//
//	ARGUMENTS
//		val : 인코딩 대상 문자열
//
//	RETURN 
//		result : 처리된 문자열
//---------------------------------------------------------------------------*/
function encode64(input) {
   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;

   do {
      chr1 = input.charCodeAt(i++);
      chr2 = input.charCodeAt(i++);
      chr3 = input.charCodeAt(i++);

      enc1 = chr1 >> 2;
      enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
      enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
      enc4 = chr3 & 63;

      if (isNaN(chr2)) {
         enc3 = enc4 = 64;
      } else if (isNaN(chr3)) {
         enc4 = 64;
      }

      output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) + 
         keyStr.charAt(enc3) + keyStr.charAt(enc4);
   } while (i < input.length);
   
   return output;
}

//------------------------------------------------------------------------
//  U-Learning 강좌 보기
//
//---------------------------------------------------------------------------*/
function viewLecList(url) {
	openWindowCenter(url, 'APPLE', 760, 620, 'scrollbars=yes,resizable=no')
}
//------------------------------------------------------------------------
//  주민번호 중복검사 초기화
//
//---------------------------------------------------------------------------*/
function ssnFnChk(form) {
	if(form.ssnFn) form.ssnFn.value ="F";
	
}
//------------------------------------------------------------------------
//  아이디 중복검사 초기화
//
//---------------------------------------------------------------------------*/
function idFnChk(form) {
	if(form.idFn) form.idFn.value ="F";
	
}
//------------------------------------------------------------------------
//  패스워드 유효성 여부 체크
//
//---------------------------------------------------------------------------*/
function validPWD( str )
{
     var cnt=0;
     if( str == ""){
     	alert("비밀번호를 입력하세요.");
     	return 0;
     }     

    /* check whether input value is included space or not  */
     var retVal = checkSpace( str );
     if( retVal != "") {
         alert("비밀번호는 빈공간 없이 연속된 영문 소문자와 숫자만 사용할 수 있습니다.");
         return 0;
     }
     for( var i=0; i < str.length; ++i)
     {
         if( str.charAt(0) == str.substring( i, i+1 ) ) ++cnt;
     }  
     if( cnt == str.length ) {
         alert("보안상의 이유로 한 문자로 연속된 비밀번호는 허용하지 않습니다.");
         return 0; 
     }

     /* limitLength */

     //var isPW = /^[a-z0-9_~`!@\\#\$%\^&\*()-\+=\|\[\]\{\};:'"<,>.?/]{6,12}$/;
     var isPW = /^[a-z0-9]{6,20}$/;
     if( !isPW.test(str) ) {
         alert("비밀번호는 6~20자의 영문 소문자와 숫자만 사용할 수 있습니다."); 
         return 0; 
     }
     return 1;
}
//------------------------------------------------------------------------
//  비밀번호 영문자 숫자혼용  유효성 여부 체크
//
//---------------------------------------------------------------------------*/
function isValidPwd1(obj) {
    var chars1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
    var chars2 = "0123456789";
    chk = containsChars(obj, chars1) && containsChars(obj, chars2);
    if (!chk) alert("비밀번호는 영문 소문자와 숫자를 같이 사용해야 합니다.");
    return chk

}

//------------------------------------------------------------------------
//  현재 년월일
//
//---------------------------------------------------------------------------*/
function toDayString(date) { //formatTime(date)
    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)
}

//------------------------------------------------------------------------
//  14세미만 체크
//
//---------------------------------------------------------------------------*/
function toChk14(ssn1, ssn2) {
	var curDate = new Date();
	var curYear = curDate.getFullYear();
	var inYear = "";
	
	// 주민등록번호상 년도 구하기
	if (ssn2.substring(0,1)=='1' || ssn2.substring(0,1)=='2') inYear = 1900 + parseInt(ssn1.substring(0,2));
	if (ssn2.substring(0,1)=='3' || ssn2.substring(0,1)=='4') inYear = 2000 + parseInt(ssn1.substring(0,2));

	// 14세 미만 체크
	if ((curYear-inYear) < 14) {
		return false;
	// 월일 체크
	} else if ((curYear-inYear) == 14) {
		if (curDate.getMonth()<parseInt(ssn1.substring(2,4))) {
			if (curDate.getDate()<parseInt(ssn1.substring(4,6))) {
				return false;
			}
		}
	}
	
	return true;
}

//------------------------------------------------------------------------
//  18세미만 체크
//
//---------------------------------------------------------------------------*/
function toChk18(ssn1, ssn2) {
	var curDate = new Date();
	var curYear = curDate.getFullYear();
	var inYear = "";
	
	// 주민등록번호상 년도 구하기
	if (ssn2.substring(0,1)=='1' || ssn2.substring(0,1)=='2') inYear = 1900 + parseInt(ssn1.substring(0,2));
	if (ssn2.substring(0,1)=='3' || ssn2.substring(0,1)=='4') inYear = 2000 + parseInt(ssn1.substring(0,2));

	// 18세 미만 체크
	if ((curYear-inYear) < 18) {
		return false;
	// 월일 체크
	} else if ((curYear-inYear) == 18) {
		if (curDate.getMonth()<parseInt(ssn1.substring(2,4))) {
			if (curDate.getDate()<parseInt(ssn1.substring(4,6))) {
				return false;
			}
		}
	}
	
	return true;
}

//------------------------------------------------------------------------
//  이메일 구분 선택에 따른 주소값 셋팅 
//
//---------------------------------------------------------------------------*/
function mailSelect(frm, obj, val, obj2) {
	var setVal = "";
	if (val!="") {
		for (i=0; i<obj2.length; i++) {
			if (obj2[i].value==val) {
				setVal = obj2[i].text;
			}
		}
	}
	obj.value = setVal;
	if (val=='99') {
		obj.readOnly = false;
		obj.focus();
	}
	else obj.readOnly = true;
}


//-------------------------------------------------------------------------
//  select에서 기타선택시 text박스를 보여주고 입력받음
//
//---------------------------------------------------------------------------*/
function etcTxtInput(div,obj,val){
	if(val=='99'){
		div.style.display="";
		obj.focus();
	} else {
		obj.value="";
		div.style.display="none";
	}
}

//------------------------------------------------------------------------
//  로그인
//
//---------------------------------------------------------------------------*/
function goLogin() {
	location.replace("/MBS01_A.do?am=loginForm");
}

//------------------------------------------------------------------------
//  회원가입
//
//---------------------------------------------------------------------------*/
function goJoin() {
	location.replace("/MBS02_A.do?am=readUserCls");
}

//------------------------------------------------------------------------
//  아이디/비밀번호 찾기
//
//---------------------------------------------------------------------------*/
function goSerIdPass() {
	location.replace("/MBS03_A.do?am=readSerForm");
}

//------------------------------------------------------------------------
//  마이페이지
//
//---------------------------------------------------------------------------*/
function goMyPage() {
	location.href("/MPG01_A.do?am=readView");
}

//------------------------------------------------------------------------
//  페이지이동
//
//---------------------------------------------------------------------------*/
function goUrl(url) {
	location.replace(url);
}

//------------------------------------------------------------------------
//  패밀리 사이트로 이동
//
//---------------------------------------------------------------------------*/
function goFamilySite(arg) {
	if (arg != "")
		window.open(arg,'mainFrame');
}
//------------------------------------------------------------------------
//  패밀리 사이트로 이동(팝업)
//
//---------------------------------------------------------------------------*/
function goFamilySiteOpen(arg) {
	if (arg != "")
		window.open(arg);
}

//------------------------------------------------------------------------
//  구독신청 페이지로 이동
//
//---------------------------------------------------------------------------*/
function goApplyApple() {
		var arg="http://apple.joins.com/apply/apply.asp"
		if( arg != "")
		window.open(arg);
}

//------------------------------------------------------------------------
//  location Bar 부분 페이지로 이동
//
//---------------------------------------------------------------------------*/
function goHand(arg){
	if(arg=="HOM"){
		var arg="/MAI00_A.do?am=readMain";
		location.replace(arg);
	}else if(arg=="MOV"){
		var arg="/MOV01_A.do?am=readList";
		location.replace(arg);
	}else if(arg=="EXP"){
		var arg="/EXP01_A.do?am=readList";
		location.replace(arg);
	}else if(arg=="TAS"){
		var arg="/TAS01_A.do?am=readList";
		location.replace(arg);	
	}else if(arg=="TUT"){
		var arg="/TUT01_A.do?am=readList";
		location.replace(arg);	
	}else if(arg=="RES"){
		var arg="/RES01_A.do?am=readList";
		location.replace(arg);	
	}else if(arg=="CMN"){
		var arg="/CMN01_A.do?am=readList";
		location.replace(arg);	
	}else if(arg=="HDK"){
		var arg="/HDK01_A.do?am=readList";
		location.replace(arg);	
	}else if(arg=="MBS"){
		var arg="/MBS01_A.do?am=readList";
		location.replace(arg);	
	}else if(arg=="MPG"){
		goMyPage();
	}else{
		var arg="/FTR01_A.do?am=readList01";
		location.replace(arg);	
	}
}

//------------------------------------------------------------------------
//  <!-- STALKER CODE -->
// 오른쪽 top link 계산
//---------------------------------------------------------------------------*/
function heartBeat2() {
	if(IE2) { 
		diffY2 = document.body.scrollTop; 
		diffX2 = 0; 
	}

	//if(NS2) { diffY2 = self.pageYOffset; diffX2 = self.pageXOffset; }
	if(diffY2 != lastScrollY2) {
		percent2 = .1 * (diffY2 - lastScrollY2);
		
		if(percent2 > 0) {
			percent2 = Math.ceil(percent2);
			/*
			if (document.all.divMenu.style.pixelTop<scrollHeight2) {
				percent2 = Math.ceil(percent2);
			} else {
				return;
			}
			*/
		} else {
			percent2 = Math.floor(percent2);
		}

		if(IE2) document.all.divMenu.style.pixelTop += percent2;
	
		if(NS2) document.divMenu.top += percent2; 
		
		lastScrollY2 = lastScrollY2 + percent2;
	}

	if(diffX2 != lastScrollX2) {
		percent2 = .1 * (diffX2 - lastScrollX2);
	
		if(percent2 > 0) percent2 = Math.ceil(percent2);
		else percent2 = Math.floor(percent2);
	
		if(IE2) document.all.divMenu.style.pixelLeft += percent2;
		
		if(NS2) document.divMenu.top += percent2;
		
		lastScrollY2 = lastScrollY2 + percent2;
	} 
} 
//------------------------------------------------------------------------
//  <!-- STALKER CODE -->
// top 으로 가기
//---------------------------------------------------------------------------*/
function goTop() {
	var scrollHeight2 = 0;
	self.onError=null;
	currentX2 = currentY2 = 0; 
	whichIt = null; 
	lastScrollX2 = 0; lastScrollY2 = 0;
	NS2 = (document.layers) ? 1 : 0;
	IE2 = (document.all) ? 1: 0;

	if(NS2 || IE2) action = window.setInterval("heartBeat2()",1);
	scrollHeight2 = document.body.scrollHeight;
}

//------------------------------------------------------------------------
//  랜덤이미지출력
//---------------------------------------------------------------------------*/
function rdImg() {
	ran = Math.round(Math.random()*3);
	if (ran==1) {
		nWidth = screen.width-225;
		
		nHeight = screen.height-263;
		
		var _obj_ = "";
		var id = "EVT_FLASH"; 
		var flashUri = "/flash/goldApple.swf";
		var vWidth = "180";
		var vHeight = "160";
		var winMode = "transparent";
		
		_obj_ = '<object id="' + id + '" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="' + vWidth + '" height="' + vHeight + '" id="' + id + '" align="middle">';
		_obj_ += '<param name="movie" value="' + flashUri + '" />';
		_obj_ += '<param name="quality" value="high" />';
		_obj_ += '<param name="wmode" value="' + winMode + '" />    ';
		_obj_ += '<param name="bgcolor" value="#ffffff" />        ';
		_obj_ += '<embed src="' + flashUri + '" quality="high" wmode="' + winMode + '" bgcolor="#ffffff" width="' + vWidth +'" height="' + vHeight + '" id="' + id + '" align="middle" allowscriptaccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></embed>    ';
		_obj_ += '</object>';
	
		str = '<div id="divEvtGold" style="position:absolute;z-index:35;';
		str += ' left:'+Math.round(Math.random()*nWidth)+';'; //x축 좌표값 범위 설정.
		str += ' top:'+Math.round(Math.random()*nHeight)+'">'; //y축 좌표값 범위 설정.
		str += _obj_ + '</div>';
		
		document.write(str);
	}
}

//------------------------------------------------------------------------
//  div셋팅
//---------------------------------------------------------------------------*/
function setEvtGoldDiv() {
	divEvtGold.style.display = "none";
}

//------------------------------------------------------------------------
//  애플강아지
//---------------------------------------------------------------------------*/
function goGoldApple(){
	var url = "/EVT01_A.do?am=updateGoldApple";
	openWindowCenter(url, 'gold', 330, 330, 'scrollbars=no');
	setEvtGoldDiv();
}

//------------------------------------------------------------------------
//  랜덤페이지이동
//---------------------------------------------------------------------------*/
function rdGoUrl(type) {
	ran = Math.round(Math.random()*6);
	var url = "";
	if (ran==1) url = "/MOV03_A.do?am=readList";
	else if (ran==2) url = "/EXP01_A.do?am=readList";
	else if (ran==3) url = "/TAS01_A.do?am=readList";
	else if (ran==4) url = "/TUT01_A.do?am=readList";
	else if (ran==5) url = "/RES01_A.do?am=readList&dataRoomCls=1";
	else url = "/CMN01_A.do?am=readList";
	if (type=='1') opener.location.href(url);
	else {
		opener.opener.location.href(url);
		opener.self.close();
	}
	self.close();
}

function goStudy(){
	openWindowCenter('/flash/guide/loader.html', 'APPLE', 800, 600, 'scrollbars=no,resizable=no');
}

//------------------------------------------------------------------------
//  운영원칙
//---------------------------------------------------------------------------*/
function readRegulation(){
	var url = "/CMN01_A.do?am=readRegulation";
	openWindowCenter(url, 'Regulation', 560, 600, 'scrollbars=no,resizable=no');
}

//------------------------------------------------------------------------
//  이벤트종료
//---------------------------------------------------------------------------*/
function endEvt(){
	alert("이벤트가 종료되었습니다.");
}

//------------------------------------------------------------------------
//  학교코드검색
//  serScho(학교구분,폼이름,학교명리턴input,학교명코드input);
//  ex) serScho('3','form1','schoNm','schoCd');
//---------------------------------------------------------------------------*/
function serScho(schoCls,formNm,schoNm,schoCd){
	openWindowCenter('/UH34_A.do?am=readSerSchol&schoCls='+schoCls+'&formNm='+formNm+'&schoNm='+schoNm+'&schoCd='+schoCd, '학교검색', 450, 380, 'scrollbars=yes,resizable=no');
}
// 재외국인 번호 체크
function check_fgnno(fgnno) {
        var sum=0;
        var odd=0;
        buf = new Array(13);
        for(i=0; i<13; i++) { buf[i]=parseInt(fgnno.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 }
        return true;
}
// 비율 입력값 체크 (xxx.xx) 
function chkRate(frm, val) {
    if (navigator.userAgent.indexOf("MSIE") != -1) {
    	var keyCode = window.event.keyCode;
     	if ( ((keyCode>=48) && (keyCode <= 105)) || (keyCode==8) || (keyCode==13) || (keyCode==35) || (keyCode==46) || (keyCode==190) ) {
        	//0(48)~숫자키패드9(105), enter(13), bakspace(8), delete(46), end(35) key 일 때만 처리한다.
        	if (isNumDot(val) == false) {
				val.value = "";
				return;
        	} else if (val.value > 100) {
        		alert(" 100보다 큰 값을 입력할 수 없습니다. 다시 입력하세요.");
        		val.value = "";
        	}
    	} 
 	}
}

//------------------------------------------------------------------------
//  선택회원 전체 메일 보내기
//  폼 내에서 선택된 회원의 Checkbox의 name은 CHK로 하고 value는 학번을 넣어줌
//  <input type="checkbox" name="CHK" value="031312">
//  메일보내기 링크는 아래와 같이 한다.
//  관리자 > 학생명단참고
//  <a href="javascript:sendTotMail(form1);">메일전송</a>
//---------------------------------------------------------------------------*/
function sendTotMail(frm){
	var winName="mailWin";
	window.open("",winName,"toolbar=no,status=yes,resizable=no,width=1000,height=920");
	frm.target=winName;
	frm.method='POST'
	frm.action="/lms/bulkmail/SeCmBulkMailCud.jsp";
	frm.submit();
}

//------------------------------------------------------------------------
//  선택회원 전체 쪽지 보내기
//  폼 내에서 선택된 회원의 Checkbox의 name은 CHK로 하고 value는 학번을 넣어줌
//  <input type="checkbox" name="CHK" value="031312">
//  링크는 아래와 같이 한다.
//  관리자 > 학생명단참고
//  <a href="javascript:sendTotMsg(form1);">쪽지전송</a>
//---------------------------------------------------------------------------*/
function sendTotMsg(frm){

	var winName="memoWin";	
	var memowin=window.open("",winName,"width=400,height=350");
	frm.method='POST';
	frm.target=winName;
	frm.action="/lms/common/memo/ScMemoSendCommonFrm.jsp";
	frm.submit();
}

//------------------------------------------------------------------------
//  선택회원 전체 SMS 보내기
//  폼 내에서 선택된 회원의 Checkbox의 name은 CHK로 하고 value는 학번을 넣어줌
//  <input type="checkbox" name="CHK" value="031312">
//  링크는 아래와 같이 한다.
//  <a href="javascript:sendTotSms(form1);">SMS전송</a>
//  관리자 > 학생명단참고
//---------------------------------------------------------------------------*/
function sendTotSms(frm){
	var winName="smsWin";
	var memowin=window.open("",winName,"width=500,height=500");
	frm.target=winName;
	frm.method='POST';
	frm.action="/lms/common/sms/SmsPopupRegFrm.jsp";
	frm.submit();
}
//------------------------------------------------------------------------
//  엔터키를 체크하여 검색 수행
//---------------------------------------------------------------------------*/

function goSearchEnter(){
	if( event.keyCode == 13 ){
		search();
	}else{
		return false;
	}
}
