/**
* 문자 사이의 공백을 제거한다.
* @param str  공백제거할 문자열
* @return  공백제거된 문자열
*/
function removeBlank(str){ 
	str = str.replace(/\s/g,'');
	return str;
}

// 아이디 형식 체크
function checkID(f) {
	var strAll  = "abcdefghijklmnopqrstuvwxyz0123456789";
	var strHead = "abcdefghijklmnopqrstuvwxyz";

	if(f.value.length < 4 || f.value.length > 15) {
		alert("4자 이상 15자 이내의 영문(소문자)과 숫자를 조합한 아이디를 입력해 주십시오.");
		f.focus();
		return;
	}

	for(var i=0;i < f.value.length;i++) {
		if(strAll.indexOf(f.value.substring(i, i+1)) < 0) {
			alert("아이디에 허용할 수 없는 문자가 입력되었습니다.\n\n다시 입력하여 주십시오.");
			f.value = "";
			f.focus();
			return;
		}
	}

	if(strHead.indexOf(f.value.substring(0,1)) < 0) {
		alert("아이디의 첫글자는 영문자를 입력하여 주십시오.");
		f.focus();
		return;
	}

	return true;
}

// 비밀번호 형식 체크
function checkPWD(f) {
	var strAll  = "abcdefghijklmnopqrstuvwxyz0123456789";

	if(f.value.length < 4 || f.value.length > 15) {
		alert("4자 이상 15자 이내의 영문과 숫자를 조합한 비밀번호를 입력해 주십시오.");
		f.focus();
		return;
	}

	for(var i=0;i < f.value.length;i++) {
		if(strAll.indexOf(f.value.substring(i, i+1)) < 0) {
			alert("비밀번호에 허용할 수 없는 문자가 입력되었습니다.\n\n다시 입력하여 주십시오.");
			f.value = "";
			f.focus();
			return;
		}
	}

	return true;
}

// 입력 필드의 숫자 입력 확인
function checkNumber(val) {
	var str_number = "0123456789";

	for(var i=0;i < val.value.length;i++) {
		if(str_number.indexOf(val.value.substring(i,i+1)) < 0) {
			alert("잘못된 문자를 입력하였습니다.\n\n숫자로 입력하세요");
			val.value = "";
			val.focus();
			return;
		}
	}

	return true;
}

// 올바른 한글명 입력 확인
function checkName(f) {
	if(f.value.length == "") {
		alert("이름을 입력하세요!");
		f.focus();
		return;
	} 

	if (f.value.indexOf(" ") != -1) {
		alert("이름에 공백을 입력할수 없습니다.");
		f.focus();
		return;		
	}

	for (var i=0; i< f.value.length; i++) {
		var ch = f.value.charAt(i);
	
		if( (ch>="a" && "z">=ch) || ch=="-" || ch=="_" || (ch>="0" && "9">=ch) || (ch>="a" && "z">=ch) || (ch>="A" && "Z">=ch) || ch=="!" || ch=="@" || ch=="$" || ch=="%" || ch=="^" || ch=="&" || ch=="*" )
		{
			alert("공백 없이 한글명을 입력하세요.");
			f.focus();
			return;
		}
	} 

	return true;
}

// 주민등록번호 체크
function makeArray(n)
{
	this.length = n;
	for(var i=1; i<=n; i++)
		this[i] = 0;
	return this;
}

function RegistCheck(l_regist,r_regist) {
	num = new makeArray(13);
	digit = new makeArray(12);

	digit[1] = 2
	digit[2] = 3
	digit[3] = 4
	digit[4] = 5
	digit[5] = 6
	digit[6] = 7
	digit[7] = 8
	digit[8] = 9
	digit[9] = 2
	digit[10] = 3
	digit[11] = 4
	digit[12] = 5

	str = l_regist + r_regist;

	//사람이 입력한 주민등록 번호를 배열에 넣는다
	for(j=1; j<=13; j++)
	{
		num[j] = parseInt(str.charAt(j-1),10)
	}

	mm = num[3] + num[4];
	dd = num[5] + num[6];

	if ( !(mm < 13 && dd < 32) ) return false;

	// Y2K source start : 2000년이전 출생자의 주민등록 번호 입력을 위한 부분
	if (num[7] != 3 &&  num[7] != 4) {
		sum = 0;
		//check_digit와 번호를 연산한다
		for(i=1; i<=12; i++)
		{
			sum += digit[i] * num[i];
		}
		div = (sum%11);
		if(div == 1){
			comp = 0;
		}
		else if(div == 0){
			comp = 1;
		}
		else if((div != 0)&&(div != 1)){
			comp = 11 - div;
		}
		if(div == 0)
		{
			if(num[13] == 1)
				return true;
			else
				return false;
		}
		else if(div == 1)
		{
			if(num[13] == 0)
				return true;
			else
				return false;
		}
		else if((11-div) == num[13])
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	else {
	// 2000년 이후 출생자의 주민등록번호 체크 루틴 		
		if (num[3] != 0 && num[3] != 1) {
			return false;
		}
		else if (num[5] != 0 && num[5] != 1 && num[5] != 2 && num[5] != 3) {		
			return false;
		}
		else if (num[7] != 1 && num[7] != 2 && num[7] != 3 && num[7] != 4) {
			return false;
		}
		else if (num[3] == 0 && num[4] == 0) {		
			return false;
		}
		else if ((num[3] == 1) && (num[4] != 0 && num[4] != 1 && num[4] != 2)) {		
			return false;
		}
		else if (num[5] == 0 && num[6] == 0) {		
			return false;
		}
		else if (num[5] == 3 && (num[6] != 0 && num[6]  != 1)) {		
			return false;
		}
		else {
			return true;
		}
	}
	// Y2K Source end
}

// 이메일 형식 체크
function checkEmail(val) {
	var emailPat = /^(.+)@(.+)$/;
	var specialChars = "\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
	var validChars = "\[^\\s" + specialChars + "\]";
	var quotedUser = "(\"[^\"]*\")";
	var ipDomainPat = /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom = validChars + '+';
	var word = "(" + atom + "|" + quotedUser + ")";
	var userPat = new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat = new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray = val.value.match(emailPat);

	if(val.value == "") {
		alert("E-Mail 주소를 입력하여 주십시오."); 
		val.focus();
		return; 
	}

	if (matchArray == null) { 
		alert("E-mail 주소 형식에 문제가 있습니다."); 
		val.focus();
		return; 
	}

	var user   = matchArray[1];
	var domain = matchArray[2];

	if (user.match(userPat)==null) { 
		alert("E-mail의 ID 부분 형식에 문제가 있습니다."); 
		val.focus();
		return; 
	}

	var IPArray = domain.match(ipDomainPat);

	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) { 
				alert("E-mail 목적 IP에 문제가 있습니다."); 
				val.focus();
				return; 
			}
		}

		return true;
	}

	var domainArray = domain.match(domainPat);

	if (domainArray == null) { 
		alert("E-mail 주소의 도메인명이 틀립니다."); 
		val.focus();
		return; 
	}

	var atomPat = new RegExp(atom,"g")
	var domArr  = domain.match(atomPat)
	var len     = domArr.length

	if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) {
		alert("E-mail 주소의 도메인명이 틀립니다."); 
		val.focus();
		return; 
	}

	if (len<2) { 
		alert("E-mail 주소의 호스트명이 틀립니다."); 
		val.focus();
		return; 
	}

	return true;
}

// 새창 띄우기
function openWindow(filePath,fileName,win_width,win_height,win_status,win_scrollbars,win_top,win_left) {
	var openWin = window.open(filePath, fileName, 'width=' + win_width + ',height=' + win_height + ',status=' + win_status + ',scrollbars=' + win_scrollbars + ',top=' + win_top + ',left=' + win_left + '');
	openWin.focus();
}

function openPost() {
	openWindow('../../html/member/post.asp','post',378,410,0,0,10,10);
}

function eventSubmit(f) {
	if(window.event.keyCode == 13) {
		f.submit();
	}
}

function checkInputTitle(f) {
	var strLowercase = "";
	var strMessage	= "";
	var arrText = new Array("<script","</script>","<a href","</a>","<form ","</form>","onsubmit","submit");
	var itext = 0;
	var itext2 = 0;
	var num = 0;

	strLowerCase = f.value.toLowerCase();

	for(var i = 0; i < arrText.length ; i++) {
		while(itext >= 0) {
			itext = strLowerCase.indexOf(arrText[i],itext2);

			if(itext > 0) {
				num++;
				itext2 = itext + 1;
			}
		}

		itext = 0;
		itext2 = 0;
	}

	if(num > 0) {
		alert("허용되지 않는 스크립트 문자를 입력하셨습니다.");
		f.focus();
		return;
	}

	return true;
}

function checkInputContent(f) {
	var strLowercase = "";
	var strMessage	= "";
	var arrText = new Array("<script","</script>","<form","</form>","onsubmit","submit");
	var itext = 0;
	var itext2 = 0;
	var num = 0;

	strLowerCase = f.value.toLowerCase();

	for(var i = 0; i < arrText.length ; i++) {
		while(itext >= 0) {
			itext = strLowerCase.indexOf(arrText[i],itext2);

			if(itext > 0) {
				num++;
				itext2 = itext + 1;
			}
		}

		itext = 0;
		itext2 = 0;
	}

	if(num > 0) {
		alert("허용되지 않는 스크립트 문자를 입력하셨습니다.");
		f.focus();
		return;
	}

	return true;
}

//글자수 입력제한 바이트단위로 한다
function fc_chk_byte1(aro_name,ari_max) {
	var ls_str     = aro_name.value; // 이벤트가 일어난 컨트롤의 value 값
	var li_str_len = ls_str.length;  // 전체길이
	// 변수초기화
	var li_max      = ari_max; // 제한할 글자수 크기
	var i           = 0;  // for문에 사용
	var li_byte     = 0;  // 한글일경우는 2 그밗에는 1을 더함
	var li_len      = 0;  // substring하기 위해서 사용
	var ls_one_char = ""; // 한글자씩 검사한다
	var ls_str2     = ""; // 글자수를 초과하면 제한할수 글자전까지만 보여준다.

	for(i=0; i< li_str_len; i++) {
		// 한글자추출
		ls_one_char = ls_str.charAt(i);

		// 한글이면 2를 더한다.
		if (escape(ls_one_char).length > 4) {
			li_byte += 2;
		} else { // 그밗의 경우는 1을 더한다.
			li_byte++;
		}

		// 전체 크기가 li_max를 넘지않으면
		if(li_byte <= li_max) {
			li_len = i + 1;
		}
	}

	// 전체길이를 초과하면
	if(li_byte > li_max) {
		alert("텍스트 용량을 초과하였습니다. \n 초과된 용량은  자동으로 삭제 됩니다. ");
		ls_str2 = ls_str.substr(0, li_len);
		aro_name.value = ls_str2;
	}

	aro_name.focus();   
}

var isNN = (navigator.appName.indexOf("Netscape")!=-1);

function autoTab(input,len, e) {
	var keyCode = (isNN) ? e.which : e.keyCode; 
	var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
	
	if(input.value.length >= len && !containsElement(filter,keyCode)) {
		input.value = input.value.slice(0, len);
		input.form[(getIndex(input)+1) % input.form.length].focus();
	}
}

function containsElement(arr, ele) {
	var found = false, index = 0;

	while(!found && index < arr.length)
		if(arr[index] == ele)
			found = true;
		else
			index++;
	return found;
}

function getIndex(input) {
	var index = -1, i = 0, found = false;

	while (i < input.form.length && index == -1)
		if (input.form[i] == input)index = i;
		else i++;

	return index;
	return true;
}

//사업자 번호 구성체크
function isBizInteger(st,maxLength) {
	if (st.length == maxLength) {
		for (j=0; j>maxLength; j++)   
			 if (((st.substring(j, j+1) < "0") || (st.substring(j, j+1) > "9"))) {
     				return false;
  			}
 		}
 	else {
  		return false;
 	}
 	return true;
}

//사업자 등록번호 체크
function BizCheck(obj1, obj2, obj3) {
 	biz_value = new Array(10);
 
 	if (isBizInteger(obj1.value,3) == false) {
	  	obj1.focus();
	  	obj1.select();
  		return false;
 	}
 	if (obj1.value=="000") {
	  	obj1.focus();
	  	obj1.select();
  		return false;
 	}
	 if (isBizInteger(obj2.value,2) == false) {
	  	obj2.focus();
	  	obj2.select();
	  	return false;
	 }
 	if (obj2.value=="00") {
	  	obj2.focus();
	  	obj2.select();
  		return false;
 	}
	
	 if (isBizInteger(obj3.value,5) == false) {
		  obj3.focus();
		  obj3.select();
		  return false;
	 }
	
	 var objstring = obj1.value +"-"+ obj2.value +"-"+ obj3.value;
	 var li_temp, li_lastid;
	
	 if ( objstring.length == 12 ) {
		  biz_value[0] = ( parseFloat(objstring.substring(0 ,1)) * 1 ) % 10;
		  biz_value[1] = ( parseFloat(objstring.substring(1 ,2)) * 3 ) % 10;
		  biz_value[2] = ( parseFloat(objstring.substring(2 ,3)) * 7 ) % 10;
		  biz_value[3] = ( parseFloat(objstring.substring(4 ,5)) * 1 ) % 10;
		  biz_value[4] = ( parseFloat(objstring.substring(5 ,6)) * 3 ) % 10;
		  biz_value[5] = ( parseFloat(objstring.substring(7 ,8)) * 7 ) % 10;
		  biz_value[6] = ( parseFloat(objstring.substring(8 ,9)) * 1 ) % 10;
		  biz_value[7] = ( parseFloat(objstring.substring(9,10)) * 3 ) % 10;
		  li_temp = parseFloat(objstring.substring(10,11)) * 5 + "0";
		  biz_value[8] = parseFloat(li_temp.substring(0,1)) + parseFloat(li_temp.substring(1,2));
		  biz_value[9] = parseFloat(objstring.substring(11,12));
		  li_lastid = (10 - ( ( biz_value[0] + biz_value[1] + biz_value[2] + biz_value[3] + biz_value[4] + biz_value[5] + biz_value[6] + biz_value[7] + biz_value[8] ) % 10 ) ) % 10;
		   if (biz_value[9] != li_lastid) {
			    obj1.focus();
			    obj1.select();
			    return false;
		   }
		   else
		    	return true;
	 }
	 else {
		  obj1.focus();
		  obj1.select();
		  return false;
	 }
}

// Focus 이동
//function eventEnter(next){
//	if(window.event.keyCode == 13){
//		window.event.returnValue = false;
//
//		next.focus();
//
//		return false;
//	} else {
//		return true;
//	}
//
//	return true;
//}


// 다음 입력 필드로 이동
var next_go = true;
var cur_val = null;

function moveNext(id_from,id_to,maxSize) {
	var cur = document.getElementById(id_from).value;
	curSize = cur.length;

	if (curSize == maxSize) {
		if(next_go || cur_val != cur)
		{
			cur_val = cur;
			next_go = false;
			document.getElementById(id_to).focus();
		}
		return true;
	}

	next_go = true;
}

// 검색
function doSearch(f) {
	if(f.select.value == "") {
		alert("검색 조건을 선택하세요");
		f.select.focus();
		return;
	}

	if(removeBlank(f.keyword.value) == "") {
		alert("검색 내용을 입력하세요");
		f.keyword.focus();
		return;		
	}

	f.submit();
}

function enterSearch(f) {
	if(window.event.keyCode == 13) {
		doSearch(f);
	}
}

/**
* 선택한 정보를 삭제한다.
* @param f document 폼명, _mode 삭제위치, _msg 삭제시 문구, _url 리턴 경로
* @return  없음
*/
function doDelete(f, _mode, _msg, _url) {
	var blnListCheck = false;
	var intCount = 0;

	if(_mode == "L") {
		if(f.list_cnt.value == 1) {
			if(f.chk.checked == true) {
				blnListCheck = true;

				intCount = 1;
			}
		} else {
			for(var i = 0; i < f.list_cnt.value  ; i++) {
				if(f.chk[i].checked == true) {
					blnListCheck = true;

					intCount = intCount + 1;
				}
			}
		}

		if(blnListCheck == true) {
			if(!confirm("선택한 " + _msg + "를 삭제하시겠습니까?")) { return; }
		} else {
			alert("삭제하실 " + _msg + " 목록을 선택하여 주십시오.");
			return;
		}
	} else {
		if(!confirm("" + _msg + "를 삭제하시겠습니까?")) { return; }

		intCount = 1;
	}

	f.cnt.value = intCount;
	f.action = _url;
	f.target = "exeFrame";
	f.submit();
}

// 파일 다운로드
function doDown(_path, _sfile, _ofile) {
	location.href = "../../lib/proc/download.asp?path=" + _path + "&sfile=" + _sfile + "&ofile=" + _ofile;
}

// 첨부파일이 이미지 파일인지 체크
function checkImage(_img) {
	if(!_img.match(/\.(gif|jpg|png)$/i)) { 
		alert("이미지 파일을 첨부 해주세요!"); 
		return; 
	}
    
	return true;
}

// 첨부파일이 영상 파일인지 체크
function checkMovie(_movie) {
	if(!_movie.match(/\.(mpg|avi|wmv|flv)$/i)) { 
		alert("영상 파일을 첨부 해주세요!"); 
		return; 
	}
    
	return true;
}