﻿///////////////////////////////////////////////////////////////////////////
// 공백을 없앤다 
// 사용법 : CheckSpaceAll(id)
///////////////////////////////////////////////////////////////////////////
function CheckSpaceAll(id){
	var index;
	var len;
	
	str = document.getElementById(id);
         	
	while(true){
		index=str.value.indexOf(' ');
		if(index==-1) break;
		len=str.value.length;
		str.value = str.value.substring(0,index) + 
		str.value.substring((index+1),len);
	}	
	return str.value;
}

///////////////////////////////////////////////////////////////////////////
// 특수문자를 검사 영어, 숫자만 쓸수있다 
// 사용법 : CheckChar(필드명, 필드이름)
///////////////////////////////////////////////////////////////////////////
function CheckChar(id, str) {
	var field = document.getElementById(id);
	
	len = field.value.length;
	for(i=0;i<len;i++) {
		if ((field.value.charCodeAt(i)<45) || (field.value.charCodeAt(i)>122)) {
			alert('특수문자나 공백, 한글은 ' + str + '로 사용할 수 없습니다.');
			field.focus();
			return false;
		}
	}
	return true;  
}

///////////////////////////////////////////////////////////////////////////
// 특수문자를 검사 영어만 쓸수있다 
// 사용법 : CheckCharOnlyEnglish(필드명, 필드이름)
///////////////////////////////////////////////////////////////////////////
function CheckCharOnlyEnglish(id, str) {
	var comp="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
	var field = document.getElementById(id);
	var string = field.value;
	var len= field.value.length;
	var temp, temp1;  
	
	for(i = 0 ; i < len ; i++)
	{		
		if(comp.indexOf(string.substring(i,i+1))<0)
		{
			alert(str + "는 영문만 입력이 가능합니다. 다시 입력해 주십시오");
			field.value="";
			field.focus();
			return false;
		}
	}
	return true;
}

///////////////////////////////////////////////////////////////////////////
// Radio박스 Value값 체크 -- 엇 CheckBox도 된다 -ㅁ-;; 이름을 바꾸어야할듯한데
// 사용법 : BoxCheck(필드명, 경고메세지)
// 수정내역 : 2005.01.03 데이타가 하나일경우 처리프로세스
///////////////////////////////////////////////////////////////////////////
function BoxCheck(name, str) {
	var field = document.getElementsByName(name);
	var i, temp;
	if(field.length>0){
		for(i=0;i<field.length;i++){
			if(field[i].checked==0){
				temp = 0;
			}
			else{
				temp = 1;
				break;
			}
		}
	}
	else if(field.length>=1){
		if(field.checked==0)
			temp = 0;
		else
			temp = 1;
	}
	else
		temp = 0;
	
	if(temp==0){
		alert(str);
		return false;
	}
	else
		return true;
}

///////////////////////////////////////////////////////////////////////////
// Radio박스 Value값 체크 -- 엇 CheckBox도 된다 -ㅁ-;; 이름을 바꾸어야할듯한데
// 사용법 : BoxOneCheck(필드명, 경고메세지)
// 수정내역 : 하나만 선택해야함
///////////////////////////////////////////////////////////////////////////
function BoxOneCheck(name, str) {
	var field = document.getElementsByName(name);
	var i, temp,j;
	j = 0;
	
	if(field.length>0){
		for(i=0;i<field.length;i++){
			if(field[i].checked==0){
				temp = 0;
			}
			else{
				temp = 1;
				j = j + 1;
			}
		}
	}
	else{
		if(field.checked==0)
			temp = 0
		else{
			temp = 1
			j = j + 1;
		}
	}
	
	if(j==0){
		alert(str);
		return false;
	}
	else{
		if(j!=1){
			alert(str);
		}
		return true;
	}
}

///////////////////////////////////////////////////////////////////////////
// 입력된 문자열이 숫자인지를 판별한다. 
// 사용법 : IsNumber (데이타, 필드이름)
///////////////////////////////////////////////////////////////////////////
function IsNumber (id, str) {
	var field = document.getElementById(id);
	var data = field.value;
	var len = data.length;

	if (len > 0) {
		for(var i=0;i<len;i++) {
			if (data.charAt(i) < '0' || data.charAt(i) > '9') {
				alert(str + ' 숫자만 넣어주세요.');
				field.focus();
				return false;
			}
		}
		return true;
	} 
	else {
		field.focus();
		alert(str + ' 숫자만 넣어주세요.');
		return false;
	}
}

///////////////////////////////////////////////////////////////////////////
// 폼 값이 있는지 판별한다.
// IsValue(필드명, 필드이름)
///////////////////////////////////////////////////////////////////////////
function IsValue(id, name){
	//if(!field.value){
	var field = document.getElementById(id); 
	if(field.value.split(" ").join("").length < 1){
		alert(name + ' 입력하세요.');
		field.focus();
		return false;
	}
	return true;
}

///////////////////////////////////////////////////////////////////////////
// 값길이 제한
// MaxLength(필드명, 필드이름, 최소값, 최대값)
///////////////////////////////////////////////////////////////////////////
function MaxLength(id, name, min, max){
	var field = document.getElementById(id);
	var data = field.value.length;
	if (!(data >= min && data <= max)){
		alert(name + '는 ' + min + '자 이상 ' + max + '자 이하로 입력하세요.');
		field.focus();
		return false;
	}
	else
		return true;
}

///////////////////////////////////////////////////////////////////////////
// 값길이 제한
// MaxSize(필드명, 필드이름, 최소값, 최대값)
///////////////////////////////////////////////////////////////////////////
function MaxSize(id, name, min, max){
	var field = document.getElementById(id);
	var data = field.value;
	if (!(data >= min && data <= max)){
		alert(name + '는 ' + min + ' 이상 ' + max + ' 이하로 입력하세요.');
		field.focus();
		return false;
	}
	else
		return true;
}


///////////////////////////////////////////////////////////////////////////
// 값길이 제한
// IsMexLength(필드명, 필드이름)
///////////////////////////////////////////////////////////////////////////
function IsMexLength(id, kname){
	var field = document.getElementById(id);
	var value = field.value;
	if(field.getAttribute("maxlength"))
	{
		if(lenb(value)>parseInt(field.getAttribute("maxlength")))
		{
			alert(kname + "은(는) " + field.getAttribute("maxlength") + "Byte이상 입력할 수 없습니다. (현재 "+lenb(value)+"Byte)");
			return false;
		}
	}
	
	return true;
}

// 문자열길이 구하기 (한글:2byte)
function lenb(str){
	var chrcode;
	var leng=0;
	for (f_i=0;f_i<str.length;f_i++){
		chrcode=str.charCodeAt(f_i);
		if (chrcode<=127)
			leng++;
		else
			leng+=2;
	}
	return leng;
}


///////////////////////////////////////////////////////////////////////////
// 주민등록번호 체크
// CheckRegNum(주민등록번호앞자리, 주민등록번호뒷자리)
///////////////////////////////////////////////////////////////////////////

function CheckRegNum(id1, id2){
	var Reg1 = document.getElementById(id1);
	var Reg2 = document.getElementById(id2);
	if(IsValue(id1, '주민등록 번호')==false)
		return false;
	if(MaxLength(id1, '주민등록 번호', 1, 6)==false)
		return false;
	for (var i = 0; i < 6; i++) {
		var chr = Reg1.value.substr(i,1);
		if (chr < '0' || chr > '9') {
			alert("주민번호는 숫자로만 이루어져야 합니다.공백x");
			Reg1.focus();
			return false;
		}
	}

	if(IsValue(id2, '주민등록 번호')==false)
		return false;
	if(MaxLength(id2, '주민등록 번호', 1, 7)==false)
		return false;
	for (var i = 0; i < 7; i++) {
		var chr = Reg2.value.substr(i,1);
		if (chr < '0' || chr > '9') {
			alert("주민번호는 숫자로만 이루어져야 합니다.공백x");
			Reg2.focus();
			return false;
		}
	}
	var regSex = Reg2.value.substring(0,1);
	var birth02 = Reg1.value.substring(2,4);
	var birth03 = Reg1.value.substring(4,6);
	if (regSex > 4 || regSex == 0) {
		alert("잘못된 주민번호입니다. 다시 입력해 주세요.");
		Reg1.focus();
		return false;
	}
	else if (birth02 > 12) {
		alert("잘못된 주민번호입니다. 다시 입력해 주세요.");
		Reg1.focus();
		return false;
	}
	else if (birth03 > 31) {
		alert("잘못된 주민번호입니다. 다시 입력해 주세요.");
		Reg1.focus();
		return false;
	}

	var a1 = Reg1.value.substring(0,1);
	var a2 = Reg1.value.substring(1,2);
	var a3 = Reg1.value.substring(2,3);
	var a4 = Reg1.value.substring(3,4);
	var a5 = Reg1.value.substring(4,5);
	var a6 = Reg1.value.substring(5,6);
	var a_check = (a1*2)+(a2*3)+(a3*4)+(a4*5)+(a5*6)+(a6*7)
	var b1 = Reg2.value.substring(0,1);
	var b2 = Reg2.value.substring(1,2);
	var b3 = Reg2.value.substring(2,3);
	var b4 = Reg2.value.substring(3,4);
	var b5 = Reg2.value.substring(4,5);
	var b6 = Reg2.value.substring(5,6);
	var b7 = Reg2.value.substring(6,7);
	var identity_check = a_check+(b1*8)+(b2*9)+(b3*2)+(b4*3)+(b5*4)+(b6*5)
	identity_check = identity_check%11
	identity_check = 11-identity_check
	identity_check = identity_check%10

	if (identity_check != b7) {
		alert("잘못된 주민번호 입니다. 다시 입력해 주세요.");
		Reg1.focus();
		return false;
	}

	return true;
}

///////////////////////////////////////////////////////////////////////////
// 이메일 체크
// CheckEmailAddr(이멜@전까지, 이멜@다음부터끝까지)
///////////////////////////////////////////////////////////////////////////
function CheckEmailAddr(id1, id2){
	var pObj1 = document.getElementById(id1);
	var pObj2 = document.getElementById(id2);

	//이메일 검사 시작
	if ((pObj1.value.split(" ").join("") == "") ) { 
		alert("\이메일을 입력해주세요!");
		pObj1.focus();
		return false;
	}  
		
	if ((pObj2.value.split(" ").join("") == "") ) { 
		alert("\이메일을 입력해주세요!");
		pObj2.focus();
		return false;
	}  		
		
	valemail = pObj1.value;
	valemail2 = pObj2.value;
		
    for(i=0;i<valemail.length;i++) {
		c = valemail.charAt(i);
		if((c < '0' || c > '9')&&(c < 'a' || c > 'z')&&(c < 'A' || c > 'Z')&&(c != '.')&&(c != '-')&&(c != '_')){
			alert("E-mail은 영어, 숫자, '-', '_', '.'만 가능 합니다.");
			pObj1.value="";
			pObj1.focus();
			return false;
		}
	}

    for(i=0;i<valemail2.length;i++) {
		c = valemail2.charAt(i);
		if((c < '0' || c > '9')&&(c < 'a' || c > 'z')&&(c < 'A' || c > 'Z')&&(c != '.')&&(c != '-')&&(c != '_')){
			alert("E-mail은 영어, 숫자, '-', '_', '.'만 가능 합니다.");
			pObj2.value="";
			pObj2.focus();
			return false;
		}
	}		
	
	val = pObj1.value + "@" + pObj2.value;   

	if (pObj1.value.indexOf('@') != -1){
		pObj1.value = pObj1.value.substring(0,pObj1.value.indexOf('@'));
		pObj2.focus()
		return false;
	}
		
	if (val != '') {
		if (val.indexOf(" ") != -1) {
			alert("공백허용 되지 않습니다.");
			pObj1.focus();	
			return false;
		} 
			
		if (val.indexOf("@") < 1) {
			alert("'@' 누락되었습니다.");
			pObj1.focus();
			return false; 
		} 
		if (val.indexOf(".") == -1) {
			alert("'.' 누락되었습니다."); 
			pObj1.focus();
			return false;
		}	
		if (val.indexOf(".") - val.indexOf("@") == 1) {
			alert("'@' 다음에 바로 '.'이 올수 없습니다."); 
			pObj1.focus();
			return false;
		}	
		if (val.charAt(val.length-1) == '.') {
			alert("'.'은 Email주소 끝에 올 수 없습니다."); 
			pObj1.focus();
			return false;
		}
		if (val.charAt(val.length-1) == '@') {
			alert("'@'은 Email주소 끝에 올 수 없습니다."); 
			pObj1.focus();
			return false;
		} 			
		for(i=0;i<val.length;i++) {
			c = val.charAt(i);
			if((c < '0' || c > '9')&&(c < 'a' || c > 'z')&&(c < 'A' || c > 'Z')&&(c != '.')&&(c != '-')&&(c != '_')&&(c != '@')) {
				alert("E-mail은 영어, 숫자, '-', '_', '.'만 가능 합니다.");
				pObj1.focus();
				return false;
			}
		}
		
		return true;	
	}
	
	return false;
}

///////////////////////////////////////////////////////////////////////////
// 엔터 인식
// onKeyEnter(str, obj)
///////////////////////////////////////////////////////////////////////////
function onKeyEnter(str, obj) {
	if((event.keyCode == 13) ||(event.keyCode == 10)) {		
		eval(str + "(obj)");
	}
}

//     183,8229,8230,168,12291,173,8213,8741,65340,8764,8216,8217,8220,8221,8242,8243,12308,12309,12296,12297,12298,12299,12300,12301,12302,12303,12304,12305,8251,182,8451,8491,65504,65505,65509,176,12290,8240,8457,8704,8707,8719,8706,8711,8750,167,177,215,247,8800,8804,8805,8734,8756,8801,8786,8730,8765,8733,8757,8747,8748,8712,8715,8838,8839,8834,8835,8746,8745,8743,8744,8721,8736,8869,8594,8592,8593,8595,8596,8658,8660,8597,8599,8601,8598,8600,9837,9833,9834,9836,9794,9792,8224,8225,9734,9733,9675,9679,9678,9671,9670,9633,9632,9651,9650,9661,9660,164,9832,9743,9742,9756,9758,12927,12828,9665,9664,9655,9654,9828,9824,9825,9829,9831,161,191,65374,711,728,8978,730,9827,8857,9672,9635,9680,9681,9618,9636,9637,9640,9639,9638,9641,8560,8561,8562,8563,8564,8565,8566,8567,8568,8569,8544,8545,8546,8547,8548,8549,8550,8551,8552,8553,230,916,934,936,937,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,963,964,965,966,967,968,969,13205,13206,13207,8467,13208,13252,13219,13220,13221,13222,13211,13215,13216,13217,13218,13258,13197,13256,13223,13224,13232,13238,8486,13230,13231,13254,12896,12897,12898,12899,12900,12901,12902,12903,12904,12905,12906,12907,12908,12909,12910,12911,12912,12913,12914,12915,12916,12917,12918,12919,12920,12921,12922,12923,9424,9425,9426,9427,9428,9429,9430,9431,9432,9433,9434,9435,9436,9437,9438,9439,9440,9441,9442,9443,9444,9445,9446,9447,9448,9449,9312,9313,9314,9315,9316,9317,9318,9319,9320,9321,9322,9323,9324,9325,9326,33,64,35,36,37,94,38,42,40,41,95,43,124,126,96,47,63,62,46,44,60,59,58,39,34,91,123,93,125,65283,65286,65290,65312
var keyset = new Array(60,34,39);

// 특수문자 입력시 true 값 리턴
function IsSpecialTEXT(kk){
     if(!kk) return true;
     for(var i = 0 ; i < kk.length;i++){
	     for(k = 0 ; k < keyset.length ; k ++){
		     if (keyset[k] == kk.charCodeAt(i) ){
			     return true;
		     }
	     }
     }

     return false;
}

// 특수문자 제거후 값 리턴
function returnchkSpecialTEXT(kk){
     if(!kk) return false;
     var pp = new String(kk);
     for(var i = 0 ; i < kk.length;i++){
	     for(k = 0 ; k < keyset.length ; k ++){
		     if (keyset[k] == kk.charCodeAt(i) ){
			     pp = pp.replace(kk.charAt(i),"");
		     }
	     }
     }
     return pp;
}

///////////////////////////////////////////////////////////////////////////
// 필수값 체크 : title이 있는것은 무조건 필수값
///////////////////////////////////////////////////////////////////////////
function onCheckValueTitle(pObjForm)
{
	var arrEle = pObjForm.elements; 
	
	for(var i = 0; i < arrEle.length; i++) {
		with(arrEle[i]) {
			var v = arrEle[i].title; 
			
			if(!v) continue; 

			if (value=="")
			{
				alert(v + " 입력하십시오.");
				arrEle[i].focus();
				return false;
			}
			
			if(arrEle[i].getAttribute("maxlength")){
				if(lenb(value)>parseInt(arrEle[i].getAttribute("maxlength"))){
					alert(v + "은(는) " + arrEle[i].getAttribute("maxlength") + "Byte이상 입력할 수 없습니다. (현재 "+lenb(value)+"byte)");
					return false;
				}
			}	
		}
	}
	return true;
}

///////////////////////////////////////////////////////////////////////////
// 이름 유효값 체크 : title이 있는것은 무조건 필수값
///////////////////////////////////////////////////////////////////////////

function CheckName(varName) {

	//이름 검사 시작	
	var objName = document.getElementById(varName);
	var name = objName.value.split(" ").join("");
	
	l = name.length;
	t8 =  -1;
	
	for (i=0; i<l ; i++){
		if (name.charCodeAt(i) == 34)
			t8 = 1;
	}

	var special_char;	
	var name_error = 0;
	for (i=0; i<l ; i++){					// 2Bytes 캐릭터값이 0FFF 이상인것중 알파벳외
		if (name.charCodeAt(i) < 4096) {		
			if (!( ((name.charCodeAt(i)>=97) && (name.charCodeAt(i)<=122)) || ((name.charCodeAt(i)>=65) && (name.charCodeAt(i)<=90)) ))
				name_error = 1;
		}
		else {
			if (name.charCodeAt(i) >= 9424 && name.charCodeAt(i) <= 9449) name_error = 1;
			if (name.charCodeAt(i) >= 9312 && name.charCodeAt(i) <= 9326) name_error = 1;
			if (name.charCodeAt(i) >= 12896 && name.charCodeAt(i) <= 12923) name_error = 1;
			if (name.charCodeAt(i) >= 8544 && name.charCodeAt(i) <= 8553) name_error = 1;
			if (name.charCodeAt(i) >= 8560 && name.charCodeAt(i) <= 8569) name_error = 1;
			if (name.charCodeAt(i) >= 12296 && name.charCodeAt(i) <= 12309) name_error = 1;
		}
	}
	
	if (name_error == 1) {
		alert("이름에 특수문자를 넣을 수 없습니다.");
		objName.focus();
		return;
	}

	special_char = "[]<>‥…〃―∥＼∼‘’“”′″※℃Å￠￡￥。‰℉∀∃∏∂∇∮≠≤≥∞∴≡≒√∽∝∵∫∬∈∋⊆⊇⊂⊃∪∩∧∨∑∠⊥→←↑↓↔⇒⇔↕↗↙↖↘♭♩♪♬♂♀†‡☆★○●◎◇◆□■△▲▽▼♨☏☎☜☞㉿㈜◁◀▷▶♤♠♡♥♧～⌒♣⊙◈▣◐◑▒▤▥▨▧▦▩㎕㎖㎗ℓ㎘㏄㎣㎤㎥㎦㎛㎟㎠㎡㎢㏊㎍㏈㎧㎨㎰㎶Ω㎮㎯㏆⅓⅔⅛⅜⅝⅞⁴ⁿ₁₂₃";
	for (i=0; i<special_char.length; i++) {
		t1 = name.indexOf(special_char.charAt(i));
				
		if(t1 != -1) {
			alert("이름에 특수문자를 넣을 수 없습니다.");
			objName.focus();
			return false;
		}
	}

	// ------------------------- 특수문자 제거....
	if ((name.indexOf('담당') != -1) || (name.indexOf('관리자') != -1) || (name.indexOf('마스터') != -1) || (name.indexOf('씨발') != -1) || (name.indexOf('싸이코') != -1)){
		alert("비실명은 허용 되지 않습니다.");
		objName.focus();
		return false;
	}     

	if ((name.indexOf('운영자') != -1) || (name.indexOf('운영진') != -1) || (name.indexOf('관리자') != -1)){
   	alert("입력하신 이름은 사용이 제한되어 있습니다!");
  		objName.focus();
		return false;
	}
	//이름 검사 끝   

	return true;
}

// 필수 입력폼이 입력이 되었는지 여부 체크
function validateForm(theForm)
{
	var elArr = theForm.elements; 
	
	for(var i = 0; i < elArr.length; i++) {
		with(elArr[i]) {
			var v = elArr[i].validator; 
			
			if(!v) continue;			
			if ((type=="radio" || type=="checkbox"))
			{
				var tmp=false;
				var a = document.all.item(name);
				if (a!=null) {
					if (a.length!=null) {
						for (j=0; j<a.length; j++) {
							if(a[j].checked){
								tmp=true;								
							}							
						}
					}
				} 
  
				if(!tmp){
					alert(kname + "을(를) 선택하십시오.");
					return false;
				}
			}		  

			if (value=="")
			{
				alert(kname + "을(를) 입력하십시오.");
				//elArr[i].select();
				elArr[i].focus();
				return false;
			}			
			
			if(elArr[i].getAttribute("maxlength")){
				if(lenb(value)>parseInt(elArr[i].getAttribute("maxlength"))){
					alert(kname + "은(는) " + elArr[i].getAttribute("maxlength") + "Byte이상 입력할 수 없습니다. (현재 "+lenb(value)+"byte)");
					return false;
				}
			}
		}
	}
	return true;
}
