function chk_text(sel, msg) {
	if(!sel.value){
		window.alert(msg);
		sel.focus();
		return false;
	}else{
		return true;
	}
}
function chk_hidden(sel, msg) {
	if(!sel.value){
		window.alert(msg);
		return false;
	}else{
		return true;
	}
}
function chk_text_length(sel, len, msg) {
	if(sel.value.length > len){
		window.alert(msg);
		sel.focus();
		return false;
	}else{
		return true;
	}
}
function chk_select(sel, msg) {
	if(sel.selectedIndex==0){
		window.alert(msg);
		sel.focus();
		return false;
	}else{
		return true;
	}
}
function chk_radio(sel, cnt, msg) {
	var n=0;
	for(i=0; i<cnt; i++){
		if(sel[i].checked){
			n++;
		}
	}
	if(n==0){
		window.alert(msg);
		sel[0].focus();
		return false;
	}else{
		return true;
	}
}

// 숫자만 받음
function num_only(){
	if((event.keyCode<48) || (event.keyCode>57)){
		event.returnValue=false;
	}
}

// 숫자 및 관련 몇 개의 기능키(자판 숫자키들과 같이 있는)만 받음
function isOnlyNumKeyDown() {
	//alert(event.keyCode)
	if((event.keyCode<8 || event.keyCode>9) && (event.keyCode<12 || event.keyCode>13) && (event.keyCode<16 || event.keyCode>18) && (event.keyCode<20 || event.keyCode>21) && event.keyCode!=25 && (event.keyCode<33 || event.keyCode>40) && (event.keyCode<45 || event.keyCode>46) && (event.keyCode<48 || event.keyCode>57) && (event.keyCode<96 || event.keyCode>105) && event.keyCode!=144){
		event.returnValue=false;
		alert("숫자만 사용하세요!");
		return false;
	}
}

// 자리수 체크 후 다음 필드(요소)로 이동
function nextField(obj,len,tar,type) {
	if(obj.value.length >= len) {
		tmpTar = eval(obj.form.name+"."+tar);
		(type > 0) ? tmpTar.select() : tmpTar.focus()
	}
}

/*
################################################################################
자동 폼체크(update by DD on 20090813)
################################################################################
사용방법		: 아래의 조건을 check="y||ne||len=10" 식으로 구분해 적어준다.
--------------------------------------------------------------------------------
필수입력		: y(사용시 맨앞에 붙이세요)
/////////////////////////////////////////////////////////////////
숫자만			: n
숫자,특수문자	: n= -_(예:공백과 -_만 허용할경우)
영문자만		: e
영문,특수문자	: e= -_(예:공백과 -_만 허용할경우)
한글만			: k
한글,특수문자	: k= -_(예:공백과 -_만 허용할경우)
숫자,영문만		: ne
숫자,영문,특수	: ne= -_(예:공백과 -_만 허용할경우)
숫자,한글만		: nk
숫자,한글,특수	: nk= -_(예:공백과 -_만 허용할경우)
영문,한글		: ek
영문,한글,특수	: ek= #!@$%
숫자,영문,한글	: nek
숫자,영문,한글,특수 : nek= #!@$%
/////////////////////////////////////////////////////////////////
숫자나영문만 받을 때는 스타일의 IME-MODE:를 참조하여 사용한다.
	예) style="IME-MODE:disabled;"
	[참고]style="IME-MODE:active;" <==자판이 해당언어(한글)로..
/////////////////////////////////////////////////////////////////
정확한글자수	: len=4(최대와최소가같음)
최대글자수		: max=10
최소글자수		: min=4
최대입력값		: lt=100(100보다 작은숫자값을 입력하도록할때)
최소입력값		: gt=10(10보다 큰숫자값을 입력하도록할때)
금칙어필터링	: taboo(사용시 앞쪽에 붙이세요)
이메일체크		: email or email=email1(포커스받을필드)
URL체크			: url or url=https#ftp(허용할 프로토콜 ,기본값 http<-구분자(#))
주민번호		: jumin=jumin1#jumin2(주민번호2개의폼이름<-구분자(#))
사업자번호		: saup=saup1#saup2#saup3(사업자번호3개의폼이름<-구분자(#))
패스워드		: pass=pass1#pass2(패스워드2개필드<-#으로구분)
--------------------------------------------------------------------------------
체크할 기능
--------------------------------------------------------------------------------
이메일체크		: 작동(확인->기존 알고리즘과 비교할 것)
URL체크			: 작동(확인->기존 알고리즘과 비교할 것)
IP체크			: 작동(확인->기존 알고리즘과 비교할 것)
주민번호체크	: 작동(확인)
사업번호체크	: 작동(확인)
라디오체크		: 작동(확인)
체크박스체크	: 작동(확인)
--------------------------------------------------------------------------------
추가해야될 기능
--------------------------------------------------------------------------------
정규식의특수문자처리
숫자,한글,영문 입력기능 단순화: 같은 if문 및 alert문을 함수화
첨부파일체크기능: 현재구현안됨
금칙어사용자추가: (taboo=단어#단어) 형식으로 추가가능토록 구현
isOnlyNumKeyDown(),nextField()도 js파일에 추가할지 결정
URL체크시 url=ftp,https등으로 사용자가 값을 던지면 체크할 수 있도록 할 것
주민번호체크시 vaildate func 에 한 개 값으로 던지고 func에서 처리하도록 할 것
주민 및 사업번호 체크 시 false 라면 포커스 받는 필드를 다수 중 첫 번째로 변경할 것
주민 및 사업번호 체크 시 eval 을 포커스 받는 것도 조금 더 손볼 것.
--------------------------------------------------------------------------------
아래 정규식 패턴을 조금 더 정형화하여 하위에서 적용할 것
--------------------------------------------------------------------------------
var regNum =/^[0-9]+$/;
var regPhone =/^[0-9]{2,3}-[0-9]{3,4}-[0-9]{4}$/;
#var regMail =/^[_a-zA-Z0-9-]+@[._a-zA-Z0-9-]+.[a-zA-Z]+$/;
#var regDomain =/^[.a-zA-Z0-9-]+.[a-zA-Z]+$/;
var regAlpha =/^[a-zA-Z]+$/;
var regHost =/^[a-zA-Z-]+$/;
var regHangul =/[가-힣]/;
var regHangulEng =/[가-힣a-zA-Z]/;
var regHangulOnly =/^[가-힣]*$/;
var regId = /^[a-zA-Z]{1}[a-zA-Z0-9_-]{4,19}$/;//첫글자영문,영문과숫자만,총5~50글자
//if (!regId.test(form.userid.value))
--------------------------------------------------------------------------------
예제) <INPUT TYPE="text" NAME="userid" title="아이디" check="y||is||min=4||max=10">
※title 정의를 하지 않을 경우 필드명을 alert으로 띄움.
*/

/*------------------------------------------------------------------------------
# 확정된 정규식 패턴(추후 아래 소스에 적용 할것)
------------------------------------------------------------------------------*/
var regDomain = /^((\w+(-|_)?\w+)[.])+([a-zA-Z]{2,4})$/;
var regURL = /^((http|https)\:\/\/)?((\w+(-|_)?\w+)[.])+([A-Za-z]{2,4})+([:][0-9]{2,6})*(\/(\w*(-|_)?\w*))*$/i;
var regMail = /^([_a-zA-Z0-9-])+@((\w+(-|_)?\w+)[.])+([a-zA-Z]{2,4})$/;
var regLink = /(?:^|)(http|https|ftp|mailto):(?:\/\/)?(\w+(?:[\.:@]\w+)*?)(?:\/|@)([^\?]*?)(?:\?([^\?]*?))?(?:$|)/;

//------------------------------------------------------------------------------

function CheckForm(obj){
	var command;
	var value;
	var chkRadio= new Array();
	this.frm=document.forms[obj];

	if(!this.frm)
	{
		alert("Error:"+obj+" 오브젝트를 찾을수없습니다.");
		return false;
	}
	for (i=0; i<frm.elements.length; i++) {
		f = frm.elements[i];
		chkRadio[f.name] = false;
		ObjName = (!f.title || f.title == "undefined") ? f.name : f.title;
		if(typeof(f.check) != "undefined"){
			ArryCheck = f.check.split("||");
			//체크할항목들...
			for (j=0; j<ArryCheck.length; j++) {
				data = ArryCheck[j].split("=");
				command = data[0];
				value = (typeof(data[1])=="undefined") ? false : data[1];
				switch(command){
					case "y": //필수입력조건 체크
					{
						//alert(f.type)
						switch(f.type){
							case "radio":
							case "checkbox":
								tmpobj = document.getElementsByName(f.name);
								if(chkRadio[f.name] == false){
									for(k=0;k<tmpobj.length;k++) {
										if(tmpobj[k].checked == true) {
											chkRadio[f.name] = true;
											break;
										}
									}
									if(chkRadio[f.name] == false ) {
										alert(ObjName+"는(은) 필수선택 항목입니다.");
										f.focus();
										return false;
									}
								}
								break;
							case "select-one":
								if(f.selectedIndex <= -1) {
									alert("Error:"+ObjName+"는(은) 선택할 수 없는 아이템입니다.");
									return false;
								}
								else if(f.selectedIndex == 0){
									alert(ObjName+"는(은) 선택하셔야 합니다.");
									f.focus();
									return false;
								}
								break;
							default :
								if(chkNull(f.value)){
									alert(ObjName+"는(은) 필수입력입니다.");
									if(f.type!="hidden") { f.focus(); }
									return false;
									break;
								}
						}
						break;
					}
					case "n": //숫자,사용자허용특수문자 입력가능
					{
						var charpos = f.value.search("[^0-9"+value+"]");
						if(f.value.length > 0 && charpos >= 0)
						{
							if(value!="")
								alert(ObjName+"는(은) 숫자 및 일부문자("+value+")만 입력 가능합니다."+ "\n\n [에러문자위치 " + eval(charpos+1)+"]");
							else
								alert(ObjName+"는(은) 숫자만 입력 가능합니다."+ "\n\n [에러문자위치 " + eval(charpos+1)+"]");
							f.focus();
							return false;
						}
						break;
					}
					case "e": //영문,사용자허용특수문자 입력가능
					{
						var charpos = f.value.search("[^A-Za-z"+value+"]");
						if(f.value.length > 0 && charpos >= 0)
						{
							if(value!="")
								alert(ObjName+"는(은) 영문 및 일부문자("+value+")만 입력 가능합니다."+ "\n\n [에러문자위치 " + eval(charpos+1)+"]");
							else
								alert(ObjName+"는(은) 영문만 입력 가능합니다."+ "\n\n [에러문자위치 " + eval(charpos+1)+"]");
							f.focus();
							return false;
						}
						break;
					}
					case "k": //한글,사용자허용특수문자 입력가능
					{
						var charpos = f.value.search("[^가-힣"+value+"]");
						if(f.value.length > 0 && charpos >= 0)
						{
							if(value!="")
								alert(ObjName+"는(은) 한글 및 일부문자("+value+")만 입력 가능합니다."+ "\n\n [에러문자위치 " + eval(charpos+1)+"]");
							else
								alert(ObjName+"는(은) 한글만 입력 가능합니다."+ "\n\n [에러문자위치 " + eval(charpos+1)+"]");
							f.focus();
							return false;
						}
						break;
					}
					case "ne": //영문,숫자,사용자허용특수문자 입력가능
					{
						var charpos = f.value.search("[^0-9A-Za-z"+value+"]");
						if(f.value.length > 0 && charpos >= 0)
						{
							if(value!="")
								alert(ObjName+"는(은) 영문,숫자 및 일부문자("+value+")만 입력 가능합니다."+ "\n\n [에러문자위치 " + eval(charpos+1)+"]");
							else
								alert(ObjName+"는(은) 영문,숫자만 입력 가능합니다."+ "\n\n [에러문자위치 " + eval(charpos+1)+"]");
							f.focus();
							return false;
						}
						break;
					}
					case "nk": //한글,숫자,사용자허용특수문자 입력가능
					{
						var charpos = f.value.search("[^0-9가-힣"+value+"]");
						if(f.value.length > 0 && charpos >= 0)
						{
							if(value!="")
								alert(ObjName+"는(은) 한글,숫자 및 일부문자("+value+")만 입력 가능합니다."+ "\n\n [에러문자위치 " + eval(charpos+1)+"]");
							else
								alert(ObjName+"는(은) 한글,숫자만 입력 가능합니다."+ "\n\n [에러문자위치 " + eval(charpos+1)+"]");
							f.focus();
							return false;
						}
						break;
					}
					case "ek": //영문,한글,사용자허용 특수문자 입력가능
					{
						var charpos = f.value.search("[^A-Za-z가-힣"+value+"]");
						if(f.value.length > 0 && charpos >= 0)
						{
							if(value!="")
								alert(ObjName+"는(은) 영문,한글 및 일부문자("+value+")만 입력 가능합니다."+ "\n\n [에러문자위치 " + eval(charpos+1)+"]");
							else
								alert(ObjName+"는(은) 영문,한글만 입력 가능합니다."+ "\n\n [에러문자위치 " + eval(charpos+1)+"]");
							f.focus();
							return false;
						}
						break;
					}
					case "iek": //숫자영문,한글,사용자허용 특수문자 입력가능
					{
						var charpos = f.value.search("[^0-9A-Za-z가-힣"+value+"]");
						if(f.value.length > 0 && charpos >= 0)
						{
							if(value!="")
								alert(ObjName+"는(은) 영문,한글 및 일부문자("+value+")만 입력 가능합니다."+ "\n\n [에러문자위치 " + eval(charpos+1)+"]");
							else
								alert(ObjName+"는(은) 영문,한글만 입력 가능합니다."+ "\n\n [에러문자위치 " + eval(charpos+1)+"]");
							f.focus();
							return false;
						}
						break;
					}
					case "reg": //사용자가 정의 내리는 정규식 입력가능
					{
						var charpos = f.value.search(value);
						if(f.value.length > 0 && charpos >= 0)
						{
							if(value!="")
								alert(ObjName+"는(은) 다음 정규식("+value+")에 맞는 글자만 입력 가능합니다."+ "\n\n [에러문자위치 " + eval(charpos+1)+"]");
							else
								alert(ObjName+"는(은) 정규식이 있어야 합니다."+ "\n\n [에러문자위치 " + 식val(charpos+1)+"]");
							f.focus();
							return false;
						}
						break;
					}
					case "len": //정확한글자수 체크(최대최소)
					{
						if(eval(f.value.length) != eval(value))
						{
							alert(ObjName+"는(은) "+value+"자릿수로 입력하세요."+ "\n\n [현재입력 글자수 : " + f.value.length+"]");
							f.focus();
							return false;
						}
						break;
					}
					case "min": //최소입력글자수 미만시
					{
						if(eval(f.value.length) < eval(value))
						{
							alert(ObjName+"는(은) "+value+"자 이상 입력하세요."+ "\n\n [현재입력 글자수 : " + f.value.length+"]");
							f.focus();
							return false;
						}
						break;
					}
					case "max": //최대입력글자수 초과시
					{
						if(eval(f.value.length) > eval(value))
						{
							alert(ObjName+"는(은) "+value+"자 이하로 입력하세요."+ "\n\n [현재입력 글자수 : " + f.value.length+"]");
							f.focus();
							return false;
						}
						break;
					}
					case "lt": //숫자인경우 조건값보다 작은값만 받기
					{
						if(isNaN(f.value))
						{
							alert(ObjName+"은(는) 숫자를 입력하세요. ");
							return false;
						}
						if(eval(f.value) >= eval(value))
						{
							alert(ObjName+"은(는) 입력값이 "+value+"보다 작아야 합니다.");
							return false;
						}
						break;
					}
					case "gt": //숫자인경우 조건값보다 큰값만 받기
					{
						if(isNaN(f.value))
						{
							alert(ObjName+"은(는) 숫자를 입력하세요. ");
							return false;
						}
						if(eval(f.value) <= eval(value))
						{
							alert(ObjName+"은(는) 입력값이 "+value+"보다 커야 합니다.");
							return false;
						}
						break;
					}
					case "taboo": //금칙어 필터링
					{
						if(badCheck(f.value)){
							alert(ObjName+"에 금칙어가 포함되어있습니다.");
							f.focus();
							return false;
						}
						break;
					}
					case "email": //이메일 체크
					{
						if(!validateEmail(f.value)){
							alert("이메일 형식이 맞지 않습니다.");
							if(value){
								eval("frm."+value+".focus();")
							}
							else{
								f.focus();
							}
							return false;
						}
						break;
					}
					case "url": //URL 체크
					{
						if(!validateURL(f.value,value)){
							alert("URL 형식이 맞지 않습니다.");
							f.focus();
							return false;
						}
						break;
					}
					case "ip": //IP 체크
					{
						if(!validateIP(f.value)){
							alert("IP 형식이 맞지 않습니다.");
							f.focus();
							return false;
						}
						break;
					}
					case "jumin": //주민번호 유효성 체크하기
					{
						tmpvalue = value.split("#");
						var tmptxt = new Array();
						for(k=0;k<tmpvalue.length;k++) tmptxt[k] = eval("frm."+tmpvalue[k]);
						if(!resnoCheck(tmptxt[0],tmptxt[1]))
						{
							alert("주민번호를 잘못입력하셨습니다.");
							for(k=0;k<tmpvalue.length;k++) eval("frm."+tmpvalue[k]+".value='';");
							f.select();
							return false;
						}
						break;
					}
					case "saup": //사업자등록번호 유효성 체크하기
					{
						tmpvalue = value.split("#");
						var tmptxt = "";
						for(k=0;k<tmpvalue.length;k++) tmptxt += eval("frm."+tmpvalue[k]+".value");
						if(!checkBizRegNo(tmptxt))
						{
							alert("사업자등록번호를 잘못입력하셨습니다.");
							for(k=0;k<tmpvalue.length;k++) eval("frm."+tmpvalue[k]+".value='';");
							f.select();
							return false;
						}
						break;
					}
					case "pass": //패스워드확인 체크하기
					{
						tmpvalue = value.split("#");
						if(eval("frm."+tmpvalue[0]+".value") != eval("frm."+tmpvalue[1]+".value"))
						{
							alert(ObjName+"와 비밀번호확인의 입력이 같아야 합니다.");
							for(k=0;k<tmpvalue.length;k++) eval("frm."+tmpvalue[k]+".value='';");
							f.select();
							return false;
						}
						break;
					}
				}
			}
		}
	}

	return true;
}

//금지어 목록
var bads = new Array("임마","바보","미친놈","성인정보","섹스","나쁜놈","불륜","자살","낙태","병신","미친","씨발","씨바","지랄","대출","니미","씨브럴","좆");
//금지어 체크
function badCheck(word) {
	//아래에서 필터할 폼의 이름과 필드이름을 설정
	orgword=word.toLowerCase();
	awdrgy = 0;
	aLeRt = 0;
	while (awdrgy<=bads.length-1 && aLeRt!=1) {
		if (orgword==bads[awdrgy]) {
			aLeRt = 1;
			return true;
		}
		awdrgy++;
	}
	return false;
}

//공백체크
function chkNull(str) {
	str = str.replace(/\s/g, '');
	return (str.length==0);
}



function validateEmail(emailStr) {
	// 전자메일 패턴. 사용자이름@도메인 의 형식을 검사함
	var emailPat = /^(.+)@(.+)$/;
	// 포함되지 말아야할 특수문자들 ( ) < > @ , ; : \ " . [ ]
	var specialChars = "\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
	// 포함될 수 있는 특수문자들 (나머지)
	var validChars = "\[^\\s" + specialChars + "\]";

	// 아래의 경우는 사용자 이름에 따옴표가 있는 경우. RFC표준사항임
	// 예를 들어 "Windy Hana"@luru.net은 올바른 메일 주소임
	var quotedUser = "(\"[^\"]*\")";
	// 도메인 대신 IP를 사용할 수 있음

	// 예를 들어 laday@[210.120.253.10]은 올바른 메일 주소 "[", "]"이 반드시 필요
	var ipDomainPat = /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	// 기본적인 아토믹에 해당됨
	var atom=validChars + '+';
	// 사용자로 사용될 수 있는 문자를 나타냄
	// 예를 들어 laday.luru@domain.net에서 laday와 luru가 워드가 됨
	var word = "(" + atom + "|" + quotedUser + ")";
	// 사용자의 패턴을 나타냄. 위의 워드가 .단위로 여러개 올 수 있음
	var userPat = new RegExp("^" + word + "(\\." + word + ")*$");
	// 아래의 것은 일반적인 도메인 패턴에 해당됨
	var domainPat = new RegExp("^" + atom + "(\\." + atom +")*$");
	// @을 기준으로 사용자와 도메인으로 나눔. 편의를 위함
	var matchArray=emailStr.match(emailPat);
	// 두개 이상 또는 @이 아예 없는 경우
	if (matchArray==null) {
		//alert("메일주소 형식이 잘못되어 있습니다 (@과 .을 확인해 보세요)")
		return false
	}
	var user=matchArray[1];
	var domain=matchArray[2];
	// 사용자 부분이 제대로 되었는지 검사
	if (user.match(userPat)==null) {
		//alert("사용자 이름이 올바르지 않습니다");
		return false;
	}
	// 도메인 부분이 IP로 되어 있는 경우
	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				//alert("IP 주소 형식이 올바르지 않습니다");
				return false;
			}
		}
		return true
	}
	// 도메인 이름이 심볼릭 네임인 경우 올바르지 않음
	var domainArray=domain.match(domainPat);
	if (domainArray==null) {
		//alert("도메인 형식이 올바르지 않습니다")
		return false;
	}
	// 도메인 형식 검사에 통과했더라도, 마지막 세개 또는 두개의 문자(com, net, kr등등)
	// 까지 올바른지 검사. 최상위 도메인은 반드시 세글자 아니면 두 글자임
	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>4) {
		//alert("도메인 주소의 마지막 필드는 반드시 세글자 도메인 또는 두글자 나라이어야 합니다.");
		return false;
	}
	// 호스트이름이 있는지 검사
	if (len<2) {
		//alert("호스트 이름이 존재하지 않습니다. 호스트 이름은 반드시 2글자 이상이어야 합니다");
		return false;
	}
	// 모든 검사에 통과했으면 오케이
	//alert("올바른 형식입니다");
	return true;
}


// 이메일 체크
function validateEmail222(strMail) {
   /** 체크사항
     - @가 2개이상일 경우
     - .이 붙어서 나오는 경우
     -  @.나  .@이 존재하는 경우
     - 맨처음이.인 경우
     - @이전에 하나이상의 문자가 있어야 함
     - @가 하나있어야 함
     - Domain명에 .이 하나 이상 있어야 함
     - Domain명의 마지막 문자는 영문자 2~4개이어야 함 **/

    var check1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/;

    var check2 = /^[a-zA-Z0-9\-\.\_]+\@[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4})$/;

    if ( !check1.test(strMail) && check2.test(strMail) ) {
        return true;
    } else {
        return false;
    }
}


//이메일체크
function validateEmail111(strEmail)
{
	if(strEmail.length>0){
		var emailArray = strEmail.split("@");
		if(emailArray.length == 2){
			var expTmpID = /^(\w+(-|_)?\w+)$/;
	alert(emailArray[0].test(expTmpID))
	return false;
			if(emailArray[0].test(expTmpID)) {
				if(validateDomain(emailArray[1]) == false){
					return validateIP(strEmail);
				}
				else {
					return true;
				}
			}
		}
	}
	return false;
	/*
	alert(strEmail.search(/^(.+@.+){1}$/));

	return false;
	alert(expEmail.test(strEmail))
	if(expEmail.test(strEmail) == true){
		strEmail.split("@");
	}
	var splitted = email.test(regexp_email);
	if(splitted == null) return false;
	if(splitted[1] != null )
	{
		var regexp_user=/^\"?[\w-_\.]*\"?$/;
		if(splitted[1].test(regexp_user) == null) return false;
	}
	if(splitted[2] != null)
	{
		var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
		if(splitted[2].test(regexp_domain) == null)
		{
			return validateIP(splitted[2]);
			//var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
			//if(splitted[2].test(regexp_ip) == null) return false;
		}
		return true;
	}
	return false;
	*/
}

function validateDomain(strDom)
{
	var expDom = /^((\w+(-|_)?\w+)[.])+([a-zA-Z]{2,4})$/;
	return expDom.test(strDom);
}

/***********************************************
 * URL 유효성 체크
 * ---------------------------------------------
 *  정상적인 URL인지 체크
 * 정상 예1) http://www.naver.com
 * 정상 예2) http://www.naver.com/index.html
 * 정상 예3) http://naver.co.kr
 * 정상 예4) www.naver.com
 * 정상 예5) naver.com
 * 정상 예6) http://blog.naver.com/
 * 비정상 예1) http:/www.naver.com
 * 비정상 예2) http://www.naver.com2
 * 비정상 예3) mailto://www.naver.com
 **********************************************/
function validateURL(strUrl,strProtocolAdd)
{
	//url=... 으로 추가된 프로토콜 설정
	var strProtocolType;
	if(strProtocolAdd==false){
		strProtocolType = "http";
	}
	else{
		strProtocolType = "http|"+strProtocolAdd.replace("#","|");
	}
	//url=... 에서 정의된 프로토콜인지 검사
	var expProtocolType = new RegExp("^"+strProtocolType,"i");
	var chkProtocolType = expProtocolType.test(strUrl);

	// 정의되자 않는 프로토콜을 검사하기 위해 "://" 이 있는지 검사
	var strProtocolBase = ":\\/\\/";
	var expProtocolBase = new RegExp(strProtocolBase,"g");
	var chkProtocolBase = expProtocolBase.test(strUrl);

	// 정의되지 않는 프로토콜 처리
	if(chkProtocolBase==true && chkProtocolType==false){
		alert("URL에 현재 지원하지 않는 프로토콜이 포함되어 있습니다.\n(" + strProtocolType + " 프로토콜만 지원)");
		return false;
	}

	// 중복 슬러시 체크
	var expDoubleSlash = new RegExp("[^(:\\/\\/)](\\/\\/)","g");

	if(expDoubleSlash.test(strUrl)){
		alert("프로토콜(http:// 등)외 이중 슬러시[//]는 사용하실 수 없습니다.");
		return false;
	}

	// 프로토콜 및 나머지 유효성 검사
	var strProtocol = "((" + strProtocolType + ")" + strProtocolBase + ")?";
	var expUrl = new RegExp("^"+strProtocol+"((\\w+(-|_)?\\w+)[.])+([A-Za-z]{2,4})+([:][0-9]{2,6})*(\\/(\\w*(-|_)?\\w*))*$","i");
	//var expUrl = new RegExp("^"+strProtocol+"([(\\w)(\\-)]{1}(\.[(\\w)(\\-)])*(\.[A-Za-z]{2,}){1}){1}(\\:[0-9]{2,6})?(\/[(\\w)(\\-)])*$","i");

	return expUrl.test(strUrl);
}

/***********************************************
 * IP 유효성 체크
 * ---------------------------------------------
 *  정상적인 IP인지 체크
 * 정상 예1) 222.107.254.169
 * 정상 예2) 222.7.54.69
 * 비정상 예1) 022.107.254.169
 * 비정상 예2) 222107.254.169
 * 비정상 예3) 222.107.254.1699
 * 비정상 예4) 222.107.254.
 * 비정상 예5) 222.107.254
 * 비정상 예6) 222.107.254.169:80
 **********************************************/
function validateIP(strIP) {
	var expIp = /^(1|2)?\d?\d([.](1|2)?\d?\d){3}$/;
	return expIp.test(strIP);
}

//주민번호체크
function resnoCheck(ResNo1, ResNo2) {
	var chk =0;
	var yy  = ResNo1.value.substring(0,2);
	var mm  = ResNo1.value.substring(2,4);
	var dd  = ResNo1.value.substring(4,6);
	var sex = ResNo2.value.substring(0,1);

	if (sex != 1 && sex != 2 && sex != 3 && sex != 4){
		return false;
	}

	for (var i = 0; i <=5 ; i++){
		chk = chk + ((i%8+2) * parseInt(ResNo1.value.substring(i,i+1)))
	}
	for (var i = 6; i <=11 ; i++){
		chk = chk + ((i%8+2) * parseInt(ResNo2.value.substring(i-6,i-5)))
	}

	chk = 11 - (chk %11)
	chk = chk % 10
	if (chk != ResNo2.value.substring(6,7))
	{
		return false;
	}
	else{
		return true;
	}
}

//사업자등록번호체크
function checkBizRegNo(saupno)
{
	var checkID = new Array(1, 3, 7, 1, 3, 7, 1, 3, 5, 1);
	//var bizID = ""+ saup1 + saup2 + saup3;//문자열로 더하기
	var bizID = saupno;
	var i, Sum=0, c2, remander;

	bizID = bizID.replace(/-/gi,'');

	for (i=0; i<=7; i++){
		Sum += checkID[i] * bizID.charAt(i);
	}

	c2 = "0" + (checkID[8] * bizID.charAt(8));
	c2 = c2.substring(c2.length - 2, c2.length);

	Sum += Math.floor(c2.charAt(0)) + Math.floor(c2.charAt(1));

	remander = (10 - (Sum % 10)) % 10 ;

	if(bizID.length != 10){
		//alert(bizID.length);
		return false;
	}
	else if (Math.floor(bizID.charAt(9)) != remander){
		return false;
	}
	else{
		return true;
	}
}

/* 기존체크 스크립트(참조할것은 참조하고 버릴 것은 버리고..)
function email_sel(sel, selform) {
	if(sel.selectedIndex == 0){
		return;
	}
	val = sel.options[sel.selectedIndex].value;
	if(val == "D"){
		selform.mbEMail2.value = "";
		selform.mbEMail2.readOnly = false;
		selform.mbEMail2.focus();
	}else{
		selform.mbEMail2.value = val;
		selform.mbEMail2.readOnly = true;
	}
}

function id_check() {
	if(!document.regform.mbID.value){
		window.alert('아이디를 입력한 후 체크하세요.');
		document.regform.mbID.focus();
		return;
	}
	var mbID = document.regform.mbID.value;

	if(mbID.length <4 || mbID.length >12 ){
		window.alert('아이디는 4자~12자이내로 해주세요.');
		return;
	}
	if(!isAlphaNumeric(mbID)){
		window.alert('아이디는 영문자와 숫자로 이루어져야합니다.');
		return;
	}
	window.open('../member/id_ok.html?mbID='+mbID,"newWin","width=428,height=240,toolbar=no")

}

function zip_alert() {
	window.alert("우편번호확인 버튼을 통해 입력하세요.");
}

function zipcode() {
	window.open("../member/zip_code.html","newWin","width=428,height=240,toolbar=no")
}

function emailCheck(email){
	var exclude=/[^@\-\.\w]|^[_@\.\-]|[\._\-]{2}|[@\.]{2}|(@)[^@]*\1/;
	var check=/@[\w\-]+\./;
	var checkend=/\.[a-zA-Z]{2,3}$/;

	var emailchk = email.value;
	if(((emailchk.search(exclude) != -1)||(emailchk.search(check)) == -1)||(emailchk.search(checkend) == -1)){
		alert("E-MAIL주소를 정확하게 입력하세요.")
		email.focus();
		return false;
	}else{
		return true;
	}
}
*/

/*
//에러처리를 위한 스크립트
function reportError(msg,url,line) {
	var str = "Err: " + msg + " on line: "
	+ line + "\nURL: " + url  + "\nWeb: "
	+ navigator.appName + " " + navigator.appName
	+ " " + navigator.appVersion;
	alert(str);
	return true;
}
window.onerror = reportError;//관리자만 실행하기 위해선 따로 분리하여 하단에 삽입..
*/
