//자동 탭
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 onlynum(objtext1)
{
	var inText = objtext1.value;
	var ret;
	for (var i = 0; i < inText.length; i++) {
		ret = inText.charCodeAt(i);
		if (!((ret > 47) && (ret < 58)))  {
			alert("숫자만을 입력하세요");
			objtext1.focus();
			return false;
		}
	}
	return true;
}

//숫자와영문자인지체크
function onlyEnglish(objtext1) 
{
	var inText = objtext1.value;
	var ret;	
	for (var i = 0; i < inText.length; i++) {
		ret = inText.charCodeAt(i);
		if ((ret > 122) || (ret < 48) || (ret > 57 && ret < 65) || (ret > 90 && ret < 97)) {
			alert("영문자와 숫자만을 입력하세요");
			objtext1.focus();
			return false;
		}
	}
	return true;
}

//띄워쓰기 없이 한글로만 입력 
function onlyHan(objtext1) 
{
	var inText = objtext1.value;
	var ret;		
	for (var i = 0; i < inText.length; i++) {
		ret = inText.charCodeAt(i);
		if (ret > 31 && ret < 127) {
			alert("띄어쓰기 없이 한글로만 입력하세요");
			objtext1.focus();
			return false;
		}
	}
	return true;
}  


//공백을 넣었는지 체크
function checkspace(srcobject)
{ 
	var len = srcobject.length;
	for (i=0;i<len;i++) {
		if (srcobject.charAt(i) != " ")	{
			break;
		}
	}

	if (i == len)
		return true;
  else
  	return false;
}

//숫자와영문자인지체크
function onlyKoreanNEnglish(objtext1) 
{	
	var inText = objtext1.value;
	var deny_pattern = /[^(가-힣a-zA-Z0-9 )]/;

	if(deny_pattern.test(inText))
	{
		alert("영문자와 한글,숫자만을 입력하세요");
		objtext1.focus();
		return false;
	}
	return true;
}

//주소체크
function checkTitle(objtext1) 
{	
	var inText = objtext1.value;
	var deny_pattern = /[^(가-힣a-zA-Z0-9\- _.,@\(\))]/;

	if(deny_pattern.test(inText))
	{
		alert("영문자,한글,숫자,-,_,.,@,(,) 만 입력하세요");
		objtext1.focus();
		return false;
	}
	return true;
}

//이메일 체크
function email_chk(email)
{
	var t = email.value
	var ValidFlag = false
	var atCount = 0
	var SpecialFlag
	var atLoop
	var atChr
	var BadFlag
	var tAry1
	var UserName
	var DomainName

	if ( t.length > 0 && t.indexOf("@") > 0 && t.indexOf(".") > 0) {
		atCount = 0
		SpecialFlag = false

		for( atLoop=1; atLoop<=t.length; atLoop++ ) {
			atChr = t.substring( atLoop, atLoop+1 )
			if ( atChr == "@" ) atCount = atCount + 1

			if ( (atChr >= 32) && (atChr <= 44) ) SpecialFlag = true 
			if ( (atChr == 47) || (atChr == 96) || (atChr >= 123) ) SpecialFlag = true 
			if ( (atChr >= 58) && (atChr <= 63) ) SpecialFlag = true 
			if ( (atChr >= 91) && (atChr <= 94) ) SpecialFlag = true 
		}

		if ( ( atCount == 1 ) && (SpecialFlag == false ) ) {
			BadFlag = false
			tAry1 = t.split("@")
			UserName = tAry1[0]
			DomainName = tAry1[1]
			if ( (UserName.length <= 0 ) || (DomainName.length <= 0 ) ) BadFlag = true
			if ( DomainName.substring( 1, 2 ) == "." ) BadFlag = true
			if ( DomainName.substring( DomainName.length-1, DomainName.length) == "." ) BadFlag = true
			ValidFlag = true
		}
	}
	if ( BadFlag == true ) ValidFlag = false
	return ValidFlag
}

//우편번호 검색창 열기
function OpenZip(zip,addr1, addr2)
{
var Url
   Url = '/common/postno.asp?zip=' + zip + '&addr1=' + addr1 + '&addr2=' + addr2;

   if (navigator.appName == 'Netscape') {
		wnd = window.open(Url, 'view', "status=no,scrollbars=yes,width=410,height=357")
        wnd.focus();
   }
   else {
		wnd = window.open(Url, 'view', "status=no,scrollbars=yes,width=410,height=357")
   }
}

//주민등록 번호 체크
function check_juminno(juminno) {
 if(juminno=="" || juminno==null || juminno.length!=13) {
  alert("주민등록번호를 적어주세요.");
  return false;
 }
 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) {
  return false;
 }
 // Check Digit 검사
 if (!isSSN(jumin1, jumin2)) {  
  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 isLeapYear(y) {
 if (y < 100)
 y = y + 1900;
 if ( (y % 4 == 0) && (y % 100 != 0) || (y % 400 == 0) ) {
  return true;
 } else {
  return false;
 }
}
function getNumberOfDate(yy, mm) {
 month = new Array(29,31,28,31,30,31,30,31,31,30,31,30,31);
 if (mm == 2 && isLeapYear(yy)) mm = 0;
 return month[mm];
}
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;
}
