<!--
/********************************************
	판타플랜의 BASE Javascript 입니다.
	licence by 판타플랜
	creator by 판타플랜	
	Yjm.kr 이 추가
*********************************************/
// 디자인 칼라 변경
var requiredColor = "#FFF0FE"; // 기본 #FFF0FE
var norequiredColor = "#E2FFD9"; // 기본 #E2FFD9

//*** 입력값 검사
function checkForm(form) { // 자동 폼 검사
	var NO_BLANK = "{name+은는} 필수항목입니다";
	var check_span_form = "check_span_"+getFormIndex(form);
	var check_span_html = "";

	for(var i = 0;i < form.elements.length;i++) {
		var elm = form.elements[i];
		var elmtype = elm.getAttribute("TYPE");
		if(elmtype == null) continue;

		var elmname = elm.getAttribute("NAME");
		var elmhname = elm.getAttribute("HNAME");
		var elmvalue = elm.getAttribute("VALUE");
		var required = elm.getAttribute("REQUIRED");
		var elmoption = elm.getAttribute("OPTION");
		var minlen = elm.getAttribute("MINLEN");
		var maxlen = elm.getAttribute("MAXLEN");
		var minnum = elm.getAttribute("MINNUM");
		var maxnum = elm.getAttribute("MAXNUM");
		var match = elm.getAttribute("MATCH");
		var dupchk = elm.getAttribute("DUPCHK");
		var span = elm.getAttribute("SPAN");
		var affix = elm.getAttribute("AFFIX");
		var pattern = elm.getAttribute("PATTERN");
		if(required != null) {
			var chkRequired = false;
			switch (elmtype) {
				case("checkbox"):
					if(!isCheckbox(elm)) chkRequired = true;
					break;
				case("radio"):
					if(!isRadio(form.elements[elmname])) chkRequired = true;
					break;
				case("select-one"):
				case("select-multiple"):
					if(!isSelect(elm)) chkRequired = true;
					break;
				default:
					if(!isFilled(elm)) chkRequired = true;
					break;
			}
			if(chkRequired)	return errorMsg(elm,NO_BLANK);
			else check_span_html += makeCheckHTML('required_'+elmname,1);
		}

		if(pattern != null && elm.value != "")
			if(!isPattern(elm,pattern)) return false;
			else check_span_html += makeCheckHTML('pattern_'+elmname,pattern);
		
		if((elmtype == "text" || elmtype == "password" || elmtype == "select-one") && elmoption != null) {
			if(span > 1) {
				if(isFilled(elm)) {
					var temp_value = new Array();
					for(var j = 0; j < span;j++ ) {
						if(required != null) {
							form.elements[i+j].setAttribute("required", "");
							if(form.elements[i+j].getAttribute("HNAME")==null)form.elements[i+j].setAttribute("HNAME", form.elements[i].getAttribute("HNAME"));
							if(!isFilled(form.elements[i+j])) return errorMsg(form.elements[i+j],NO_BLANK);
							else check_span_html += makeCheckHTML('required_'+form.elements[i+j].getAttribute('NAME'),1);
						}
						temp_value[j] = form.elements[i+j].value;
					}
					elm.setAttribute("newvalue", temp_value.join(affix == null ? "" : affix));
					if(!fieldCheck(elm,elmoption)) return false;
					else {
						check_span_html += makeCheckHTML('option_'+elmname,elmoption);
						check_span_html += makeCheckHTML('span_'+elmname,span);
						if(affix != null) check_span_html += makeCheckHTML('affix_'+elmname,affix);
					}
				}
				i += span - 1;
			} else {
				if(!fieldCheck(elm,elmoption)) return false;
				else check_span_html += makeCheckHTML('option_'+elmname,elmoption);
			}
		}

		if((elmtype == "text" || elmtype == "textarea" || elmtype == "password" || elmtype == "hidden") && (minlen != null || maxlen != null))
			if(!bLength(elm,minlen,maxlen)) return false;
			else check_span_html += makeCheckHTML('lenminmax_'+elmname,minlen+'|'+maxlen);

		if((elmtype == "text" || elmtype == "hidden") && (minnum != null || maxnum != null))
			if(!numSize(elm,minnum,maxnum)) return false;
			else check_span_html += makeCheckHTML('numminmax_'+elmname,minnum+'|'+maxnum);

		if(elmtype == "checkbox" && (minnum != null || maxnum != null))
			if(!numCheckbox(elm,minnum,maxnum)) return false;
			else check_span_html += makeCheckHTML('checkboxminmax_'+elmname,minnum+'|'+maxnum);

		if(match && typeof(form.elements[match]) == "object" && elm.value != form.elements[match].value)
			return errorMsg(elm,"{name+이가} 일치하지 않습니다");
			
		if(dupchk != null && elmvalue && typeof(form.elements['dupchk_'+elmname]) == "object" && form.elements['dupchk_'+elmname].value != "1") {
			var duptable = (elm.getAttribute("duptable")!=null)?elm.getAttribute("duptable"):"member";
			var dupoption = (elm.getAttribute("dupoption")!=null)?elm.getAttribute("dupoption"):elmoption;
			var dupuno = (elm.getAttribute("dupuno")!=null)?elm.getAttribute("dupuno"):"";
			var dupelmname = elmname;
			if(span > 1) {
				dupelmname = elmname.substr(0,elmname.length-1);
/*				
				if(isFilled(elm)) {
					var temp_value = new Array();
					for(var j = 0; j < span;j++ ) {
//						if(required != null) {
//							form.elements[i+j].setAttribute("required", "");
//							if(!isFilled(form.elements[i+j])) return errorMsg(form.elements[i+j],NO_BLANK);
//							else check_span_html += makeCheckHTML('required_'+form.elements[i+j].getAttribute('NAME'),1);
//						}
						temp_value[j] = form.elements[i+j].value;
					}
//					elm.setAttribute("newvalue", temp_value.join(affix == null ? "" : affix));
//					if(!fieldCheck(elm,elmoption)) return false;
//					else {
//						check_span_html += makeCheckHTML('option_'+elmname,elmoption);
//						check_span_html += makeCheckHTML('span_'+elmname,span);
//						if(affix != null) check_span_html += makeCheckHTML('affix_'+elmname,affix);
//					}
				}
*/
				if(elmoption == null) {i += span - 1;}
/*
			} else {
				temp_value[0] = elmvalue;
//				if(!fieldCheck(elm,elmoption)) return false;
//				else check_span_html += makeCheckHTML('option_'+elmname,elmoption);
*/
			}
//			errorMsg(elm,"{name+의의} 중복 확인을 해주십시요");
			errorMsg(elm,"");
			CheckDup(form.name,dupelmname,elmhname,duptable,dupoption,span,dupuno);
//			CheckDup(form.name,dupelmname,elmhname,duptable,dupoption,span,dupuno,'/include/popup/dupcheck.php',351,276);
			return false;
		}

		// 시작시간과 종료시간 확인
		if(elmname == "bd_start_date" && elmvalue && form.bd_end_date && form.bd_end_date.value) {
			if(elmvalue > form.bd_end_date.value) {
					errorMsg(elm,"{name+의의} 시간을 확인 해주십시요");
					return false;
			}
		}
  }
	if(form.getAttribute("PHPCHECK") != null && document.getElementById(check_span_form) == null) {
		var newObj=document.createElement('<span id="'+check_span_form+'" style="display:none;"></span>');
		newObj.innerHTML = check_span_html;
		form.insertAdjacentElement('beforeEnd',newObj);
	}
	
  chkTrimCheckBox(form);
	return true;
}

function errorMsg(elm,msg) { // 에러 처리
	if(herror = Trim(elm.getAttribute("HERROR"))) {
		var error = herror;
	}else {
//	  var pattern = /{([a-zA-Z0-9]*)\+?([가-힝]{2})?}/i;
	  var pattern = /{([^+]*)\+?([가-힝]{2})?}/i;
	  var name = (hname = Trim(elm.getAttribute("HNAME"))) ? hname : Trim(elm.getAttribute("NAME"));
	  pattern.exec(msg);
		var tempjosa = RegExp.$2;
		var tempname = RegExp.$1.replace(/^name$/ig,name);
	  var tail = (tempjosa) ? josa(tempname,tempjosa) : "";
	  var error = msg.replace(pattern,tail);
	}
	var elmparent = elm.form;
	var elmname = elm.getAttribute("NAME");
	var elmtype = elm.getAttribute("TYPE");
	var span = elm.getAttribute('SPAN');
	var elmbackgroundColor = elm.getAttribute("REQUIRED") != null ? requiredColor:norequiredColor;
	if(elmtype == "radio" && elmparent.elements[elmname].length != null) {
		for(var j = 0;j < elmparent.elements[elmname].length;j++)
			elmparent.elements[elmname][j].style.backgroundColor = elmbackgroundColor;
	}else if(elmtype == "checkbox" && elmparent.elements[elmname].length != null) {
		for(var j = 0;j < elmparent.elements[elmname].length;j++)
			elmparent.elements[elmname][j].style.backgroundColor = elmbackgroundColor;
	}else{
		if(span > 1) {
			var spanid = getIndex(elm);
			for(var j = 0; j < span;j++ ) 
				elmparent.elements[spanid+j].style.backgroundColor = elmbackgroundColor;
		}else{
			elm.style.backgroundColor = elmbackgroundColor;
		}
	}
	if(error) {
		alert(error);
	}
	if(elm.getAttribute("SELECT") != null) elm.select();
	if(elm.getAttribute("DELETE") != null) {
		if(span > 1) {
			var spanid = getIndex(elm);
			for(var j = 0; j < span;j++ ) {
				var spanelm = elmparent.elements[spanid+j];
				var spanelmtype = elmparent.elements[spanid+j].getAttribute("TYPE");
				if(spanelmtype == "text" || spanelmtype == "textarea" || spanelmtype == "password") 
					spanelm.value = "";
			}
		} else {
			if(elmtype == "text" || elmtype == "textarea" || elmtype == "password") 
				elm.value = "";
		}
	}
	if(elm.getAttribute("NOFOCUS") == null && elm.getAttribute("TYPE") != "hidden" && !(elm.disabled || elm.style.display == "none"))	elm.focus();
	return false;
}    

function makeCheckHTML(chkname,chkvalue) {  // php 검사 항목 만들기
	return '<input type="hidden" name="formchk_'+chkname+'" id="formchk_'+chkname+'" value="'+chkvalue+'">';
}

function isFilled(elm,msg) {  // 아이템이 NULL인지 검사
	if(typeof(elm) != "object") return;
	if(elm.getAttribute("TYPE") == "text" || elm.getAttribute("TYPE") == "textarea") elm.value = Trim(elm.value);
	if(elm.getAttribute("TYPE") == "hidden" && elm.getAttribute("OPTION") == "fck") elm.value = Trim(document.frames[elm.name+'___Frame'].FCK.GetXHTML(true));
	if(elm.value == "") {
		if(msg != null ) return errorMsg(elm,'{'+msg+'+을를} 채워주십시요');
		return false;
	}else	return true;
}

function fieldCheck(elm,elmType,msg) { // 입력 필드 검사
 	if(isFilled(elm,msg)) {
		var chkerror = true;
    var newvalue = elm.getAttribute("NEWVALUE") ? elm.getAttribute("NEWVALUE") : elm.getAttribute("VALUE");
		var valid="";
		var msgType="";
		if(elmType.match(/(en)|(eng)|(영)/)) {valid +="|[A-Za-z]";msgType +=" 영어";}
		if(elmType.match(/(ko)|(kor)|(han)|(한)/)) {valid +="|[가-힣]";msgType +=" 한글";}
		if(elmType.match(/(no)|(num)|(1)/)) {valid +="|[0-9]";msgType +=" 숫자";}
		if(elmType.match(/(bar)|(-)|(line)|(minus)/)) {valid +="|-";msgType +=" -";}
		if(elmType.match(/(sp)|(\x20)/)) {valid +="|\\s ";msgType +=" 공백";}
		if(elmType.match(/(dot)|(\.)/)) {valid +="|\\.";msgType +=" 점";}
		if(elmType.match(/(com)|(,)/)) {valid +="|,";msgType +=" 컴마";}
		if(elmType.match(/(un)|(_)|(under)|(ubar)/)) {valid +="|_";msgType +=" _";}
		if(elmType.match(/(at)|(@)/)) {valid +="|@";msgType +=" @";}
		valid = valid != "" ? eval("/^(" + valid + ")+$/ig"):"";

		if(elmType.match(/(userid)/)) {valid = /^[a-zA-Z]{1}([a-zA-Z0-9]|-|_)+$/g;msgType =" 영문첫글자와 영어,숫자,_";}
		if(elmType.match(/(email)/)) {valid = /^([a-zA-Z0-9]|-|_)+@([a-zA-Z0-9]|[가-힣]|-|\.)+\.[a-zA-Z]+$/g;msgType =" @가 포함하는 문자";}
		if(elmType.match(/(domain)/)) {valid = /^http[s]?:\/\/(www\.)?.+$/ig;msgType =" http를 포함한 주소";}
		if(elmType.match(/(phone)/)) {valid = /^(0[0-9]{1,2})?(\)|-|\s|\.)?[1-9][0-9]{2,3}(-|\s|\.)?[0-9]{4}$/g;msgType =" 전화번호";}
		if(elmType.match(/(search)/)) {valid = /^[^(`|~|!|@|#|$|%|\^|&|\*|\_|\=|\||\/|\\|<|>|\.|\,|:|;|'|"|\[|\]|\{|\})]*$/g;msgType =" 특수문자는 제외된 검색어";}
	
		if(elmType.match(/(jumin)/)) {valid = /^[0-9]{6}-?[0-9]{7}$/g;msgType =" 주민등록번호";}
		if(elmType.match(/(biz)/)) {valid = /^[0-9]{3}-?[0-9]{2}-?[0-9]{5}$/g;msgType =" 사업자등록번호";}
		if(elmType.match(/(fgn)/)) {valid = /^[0-9]{6}-?[0-9]{7}$/g;msgType =" 외국인등록번호";}

		if(valid == "") return true;
		if(!valid.test(newvalue)) chkerror = false;
		if(elmType.match(/(userid)/))
			if(!chkUserId(newvalue)) {chkerror = false;msgType =" 관리자(시스템) 아이디가 아닌 것"}
		if(elmType.match(/(jumin)/))
			if(!isJumin(newvalue)) chkerror = false;
		if(elmType.match(/(biz)/))
			if(!isBizNo(newvalue)) chkerror = false;
		if(elmType.match(/(fgn)/))
			if(!isFgnNo(newvalue)) chkerror = false;
		if(!chkerror) {
			if(msg == null ) msg = 'name';
			return errorMsg(elm,'{'+msg+'+을를} '+josa(msgType,'으')+'로 정확하게 입력해 주십시요.');
		}else{
			return true;
		}
	} else return true;
}

function bLength(elm,minlen,maxlen,msg) {  // 문자열의 바이트수를 리턴 maxlen=최대, minlen=최소
	if(isFilled(elm,msg)) {
		var elmstr = elm.value + "";
		var blen = 0
		var minlen = parseInt(minlen);
		var maxlen = parseInt(maxlen);
		for(var i = 0; i < elmstr.length; i++) blen +=  Math.floor((escape(elmstr.charAt(i)).length)/4) + 1;
		if(!isNaN(minlen) && isNaN(maxlen)) comp = "blen >= minlen";
		if(isNaN(minlen) && !isNaN(maxlen)) comp = "blen <= maxlen";
		if(!isNaN(minlen) && !isNaN(maxlen)) comp = "blen >= minlen && blen <= maxlen";
		if(!eval(comp)) {
			if(msg == null) msg="name";
			if(!isNaN(minlen) && isNaN(maxlen)) return errorMsg(elm,"{"+msg+"+을를} "+minlen+" 이상의 크기(byte)로 입력 하세요.");
			if(isNaN(minlen) && !isNaN(maxlen)) return errorMsg(elm,"{"+msg+"+을를} "+maxlen+" 이하의 크기(byte)로 입력 하세요.");
			if(!isNaN(minlen) && !isNaN(maxlen)) {
				if(minlen == maxlen) return errorMsg(elm,"{"+msg+"+을를} "+minlen+" 크기(byte)로 입력 하세요.");
				else return errorMsg(elm,"{"+msg+"+을를} "+minlen+" ~ "+maxlen+" 사이(byte)로 입력 하세요.");
			}
		} else return true;
	}else return true;
}

function numSize(elm,minnum,maxnum,msg) {  // 숫자의 최대 최소값 maxnum=최대, minnum=최소
	if(isFilled(elm,msg)) {
		if(!fieldCheck(elm,'num',msg)) return false;
		var elmstr = parseInt(elm.value + "");
		var minnum = parseInt(minnum);
		var maxnum = parseInt(maxnum);
		if(!isNaN(minnum) && isNaN(maxnum)) comp = "elmstr >= minnum";
		if(isNaN(minnum) && !isNaN(maxnum)) comp = "elmstr <= maxnum";
		if(!isNaN(minnum) && !isNaN(maxnum)) comp = "elmstr >= minnum && elmstr <= maxnum";
		if(!eval(comp)) {
			if(msg == null) msg="name";
			if(!isNaN(minnum) && isNaN(maxnum)) {
				elm.value = minnum;
				return errorMsg(elm,"{"+msg+"+을를} "+minnum+" 이상의 크기로 입력 하세요.");
			}
			if(isNaN(minnum) && !isNaN(maxnum)) {
				elm.value = maxnum;
				return errorMsg(elm,"{"+msg+"+을를} "+maxnum+" 이하의 크기로 입력 하세요.");
			}
			if(!isNaN(minnum) && !isNaN(maxnum)) {
				if(minnum == maxnum) {
					elm.value = minnum;
					return errorMsg(elm,"{"+msg+"+을를} "+minnum+" 크기로 입력 하세요.");
				}else{
					elm.value = minnum;
					return errorMsg(elm,"{"+msg+"+을를} "+minnum+" ~ "+maxnum+" 사이로 입력 하세요.");
				}
			}
		} else return true;
	}else return true;
}

function isCheckbox(elm,msg) {  //ckeck 박스의 항목이 변경됬는지 확인
	if(elm.getAttribute("TYPE") != "checkbox") return;
	var elmname = elm.getAttribute("NAME");
	var elmparent = elm.form;
	if(elmparent.elements(elmname).length == null) {
		if(elm.checked == true && elm.value != "") return true;
	}else{
		for(var i = 0; i < elmparent.elements(elmname).length; i++) 
			if(elmparent.elements(elmname)[i].checked == true && elmparent.elements(elmname)[i].value != "") return true;
	}
	if(msg != null ) return errorMsg(elm,'{'+msg+'+을를} 체크하세요.');
	return false;
}

function numCheckbox(elm,checkmin,checkmax,msg) {  //ckeck 박스의 항목의 갯수 확인 maxnum=최대, minnum=최소
	if(elm.getAttribute("TYPE") != "checkbox") return;
	var elmname = elm.getAttribute("NAME");
	var elmparent = elm.form;
	var elmchecknum = 0;
	var checkmin = parseInt(checkmin);
	var checkmax = parseInt(checkmax);
	if(elmparent.elements(elmname).length != null) {
		for(var i = 0; i < elmparent.elements(elmname).length; i++) 
			if(elmparent.elements(elmname)[i].checked == true && elmparent.elements(elmname)[i].value != "") elmchecknum +=1;
		if(elmchecknum > 0) {
			if(!isNaN(checkmin) && isNaN(checkmax)) comp = "elmchecknum >= checkmin";
			if(isNaN(checkmin) && !isNaN(checkmax)) comp = "elmchecknum <= checkmax";
			if(!isNaN(checkmin) && !isNaN(checkmax)) comp = "elmchecknum >= checkmin && elmchecknum <= checkmax";
			if(!eval(comp)) {
				if(msg == null) msg="name";
				if(!isNaN(checkmin) && isNaN(checkmax)) return errorMsg(elm,"{"+msg+"+을를} "+checkmin+" 이상 체크 하세요.");
				if(isNaN(checkmin) && !isNaN(checkmax)) return errorMsg(elm,"{"+msg+"+을를} "+checkmax+" 이하 체크 하세요.");
				if(!isNaN(checkmin) && !isNaN(checkmax)) {
					if(checkmin == checkmax) return errorMsg(elm,"{"+msg+"+을를} "+checkmin+" 개 체크 하세요.");
					else return errorMsg(elm,"{"+msg+"+을를} "+checkmin+" ~ "+checkmax+" 사이로 체크 하세요.");
				}
			}else	return true;
		}else	return true;
	}else return true;
}

function isRadio(elm,msg) {  //radio 박스의 항목이 선택됬는지 확인
  if(elm.length == null) { 
		if(elm.getAttribute("TYPE") != "radio") return;
		if(elm.checked == true && elm.value != "") return true;
		if(msg != null ) return errorMsg(elm,'{'+msg+'+을를} 선택하세요.');
	  return false;
	} else {
		if(elm[0].getAttribute("TYPE") != "radio") return;
  	for(var i = 0;i < elm.length;i++) if(elm[i].checked == true && elm[i].value != "") return true; 
		if(msg != null ) return errorMsg(elm[0],msg+'중 하나를 선택하세요.');
    return false;
	}
	return true;
} 

function isSelect(elm,msg) {  //select 박스의 항목이 변경됬는지 확인
	if(elm.getAttribute("TYPE") != "select-one" && elm.getAttribute("TYPE") != "select-multiple") return;
  var len = elm.length;
  if(len > 1 || (len == 1 && elm.value != "")) {
  	if(elm.getAttribute("TYPE") == "select-multiple") {
	   	for(var i = 0;i < elm.length;i++) if(elm.options[i].selected == true && elm.options[i].value != "") return true; 
			if(msg != null ) return errorMsg(elm[0],msg+'중 하나 이상을 선택하세요.');
	    return false;
		}else if(elm.selectedIndex < 0 || elm.options[elm.selectedIndex].value == "") {
			if(msg != null ) return errorMsg(elm,msg+'중 하나 이상을 선택하세요.');
			return false;
		} else return true;
	} else return true;
}

function chkUserId(str) {	//불량 사용자 ID 체크
	var blackid = /^(root|bin|daemon|adm|lp|sync|shutdown|halt|mail|news|uucp|operator|games|gopher|ftp|nobody|vcsa|mailnull|rpm|rpc|xfs|rpcuser|nfsnobody|nscd|ident|radvd|named|pcap|mysql|postgres|oracle|dba|sa|administrator|master|webmaster|operator|admin|sysadmin|test|guest|anonymous|sysop|moderator|www)$/ig;
	if(blackid.test(str)) return false;
	else return true;
}

function isJumin(str) {	//주민번호 체크
	var str = str.replace(/-/g,"");
	
	switch(parseInt(str.charAt(6))) {
		case(1): case(2):	birthYear = "19"; break;
		case(3): case(4):	birthYear = "20"; break;
		case(9): case(0):	birthYear = "18"; break;
		default:	return false; break;
	}

	birthYear += str.substr(0, 2);
	birthMonth = str.substr(2, 2);
	birthDate = str.substr(4, 2);
	if(!isYYYYMMDD(birthYear,birthMonth,birthDate)) return false;

	IDtot = 0;
	IDAdd = "234567892345";
	for(var i=0;i<12;i++) IDtot += parseInt(str.charAt(i))*parseInt(IDAdd.charAt(i));
	IDtot=(11-(IDtot%11))%10;
	if(parseInt(str.charAt(12))==IDtot) {
		return true;
	} else return false;
}

function isBizNo(str) {	// 사업자등록번호 체크
	var str = str.replace(/-/g,"");

	IDtot = 0;
	IDAdd = "137137135";
	for(var i=0;i<9;i++) IDtot += parseInt(str.charAt(i))*parseInt(IDAdd.charAt(i));
  IDtot += parseInt((parseInt(str.charAt(8))*5)/10);

  IDtot = (10 - (IDtot%10))%10;
 	if(parseInt(str.charAt(9))==IDtot) {
		return true;
	} else return false;
}

function isFgnNo(str) {	// 재외국인 번호 체크
	var str = str.replace(/-/g,"");
   
	switch(parseInt(str.charAt(6))) {
		case(5): case(6):	birthYear = "19"; break;
		case(7): case(8):	birthYear = "20"; break;
		case(9): case(0):	birthYear = "18"; break;
		default:	return false; break;
	}

	birthYear += str.substr(0, 2);
	birthMonth = str.substr(2, 2);
	birthDate = str.substr(4, 2);
	if(!isYYYYMMDD(birthYear,birthMonth,birthDate)) return false;
	     
	IDtot = 0;
	IDAdd = "234567892345";
  var odd = parseInt(str.charAt(7))*10 + parseInt(str.charAt(8));
	for(var i=0;i<12;i++) IDtot += parseInt(str.charAt(i))*parseInt(IDAdd.charAt(i));
  IDtot = (11 - (IDtot%11))%10;
  IDtot = (IDtot + 2)%10;
 	if(parseInt(str.charAt(12))==IDtot && odd%2 != 0) {
		return true;
	} else return false;
}

function isPattern(elm,pattern) { // 패턴 검사
	pattern = eval(pattern);
	if(!pattern.test(elm.value)) return errorMsg(elm,"{name+은는} 형식에 맞지 않습니다.");
  return true;
}

function isYYYYMMDD(y, m, d) { //날짜 확인
	var c = new Date(y, m-1, d);
	if(c.getYear() < 100) y = y % 100;
	if(c.getYear() == y && c.getMonth() == m-1 && c.getDate() == d) return true;
  return false;
}

function getIndex(elm) { // 필드 순서 찾기
	if(typeof(elm) != "object") return;
	for(var i = 0;i < elm.form.length; i++) 
		if (elm.form[i] === elm) return i; 
	return; 
} 

function getFormIndex(form) { // 폼 순서 찾기
	if(typeof(form) != "object") return;
	for(var i = 0;i < document.forms.length; i++) 
		if (document.forms[i] === form) return i; 
	return; 
} 

function chkTrimCheckBox(form) { //공백 및 체크박스 검사
  var len = form.elements.length; 
  for(var i=0;i<len;i++) {
    if(form.elements[i].type == "text" || form.elements[i].type == "textarea"){
	    form.elements[i].value = Trim(form.elements[i].value); 
			if(form.elements[i].getAttribute("comma") != null) {
	    	form.elements[i].value = form.elements[i].value.replace(/,/g,"");
			}
    }else if(form.elements[i].type == "checkbox" && form.elements[i].checked == false) { 
	    form.elements[i].value = ""; 
	  //  form.elements[i].checked = true;
    }
  }
  return;
} 

function ChkPost_ajax(target_addrs,suffix){   //우편번호 입력 DIV 띄움
//	var ZipcodeFrame = document.getElementById('ZipcodeFrame');
	if(!target_addrs) target_addrs="";
	if(!suffix) suffix="";
	div_view('ZipcodeFind');
	ZipcodeFrame.target_addrs.value = target_addrs;
	ZipcodeFrame.suffix.value = suffix;
	ZipcodeFrame.addr_search.focus();

	return;
}

function CheckDup(form_name,field,hname,duptable,dupoption,span,u_no,elm1){  //필드 중복 검사
//	var check_dup = null;
	var check_value = new Array();
	var check_url ="";
	if(!duptable) duptable="member";
	if(!dupoption) dupoption="";
	if(!span) span="1";
	if(!u_no) u_no="";
	if(!elm1) elm1="../include/popup/ajax_dupcheck.php";
//	if(!elm2) elm2="351";
//	if(!elm3) elm3="276";

	check_url = '?form_name='+form_name+'&field='+field+'&hname='+encodeURI(hname)+'&duptable='+duptable+'&dupoption='+dupoption+'&dupablevalue='+u_no;
	if(span==1) {
			check_value[1] = eval("document." + form_name + "." + field + ".value");
	}else{
		for(var i=1;i<=span;i++){
			check_value[i] = eval("document." + form_name + "." + field + i + ".value");
		}
	}
	for(var i=1;i<=span;i++){
		check_url = check_url + "&check_value["+i+"]="+encodeURI(check_value[i]);
	}

	GetAllRequest(field+"_Msg",elm1+check_url,"",form_name);

  return;
}

function CheckDup_org(form_name,field,hname,duptable,dupoption,span,u_no,elm1,elm2,elm3){  //필드 중복 검사
	var check_dup = null;
	var check_value = new Array();
	var check_url ="";
	if(!duptable) duptable="member";
	if(!dupoption) dupoption="";
	if(!span) span="1";
	if(!u_no) u_no="";
	if(!elm1) elm1="/include/popup/dupcheck.php";
	if(!elm2) elm2="351";
	if(!elm3) elm3="276";
	check_url = '?form_name='+form_name+'&field='+field+'&hname='+encodeURI(hname)+'&duptable='+duptable+'&dupoption='+dupoption+'&dukablevalue='+u_no;
	if(span==1) {
			check_value[1] = eval("document." + form_name + "." + field + ".value");
	}else{
		for(var i=1;i<=span;i++){
			check_value[i] = eval("document." + form_name + "." + field + i + ".value");
		}
	}
	for(var i=1;i<=span;i++){
		check_url = check_url + "&check_value["+i+"]="+encodeURI(check_value[i]);
	}
	if ( !check_dup || check_dup.closed ){
		check_dup = window.open(elm1+check_url,'check_dup',PopupCenter(elm2,elm3));
	}else{
		check_dup.location.href = elm1+check_url;
	}
  return;
}

function DupChkDisable(form_name,field){  //중복 검사 체크값 삭제
	dup_check = eval("document." + form_name + "." + field + "_dup_chk");
	dup_check.value = "";
  return;
}

//*** 문자열 조작
function Trim(str) { //공백제거 
	if (str == null || str == "") return ""; 
	return str.replace(/(^\s*)|(\s*$)/g, ""); 
} 

function josa(str,tail) { //조사 붙이기
	var strTemp = str.substr(str.length-1);
	if(strTemp.charCodeAt(0) < 129) {
		pattern = /([aeiou][^aeiouwy]e|mb|ck|ng|l|m|n)$/i;
		return pattern.test(str) ? str + tail.substr(0, 1) : str + tail.substr(1, 1);
	}
	return ((strTemp.charCodeAt(0) - 16) % 28 != 0) ? str + tail.substr(0, 1) : str + tail.substr(1, 1);

}

function checkWord(elm,wordList) { //금지 단어 필터
	var wordList = wordList == null ? /(광고|성인|홍보|섹스|포르노|sex|porno)/ig:eval(wordList);
	var subValue = elm.value;
	if (wordList.test(subValue)) {
		alert("["+RegExp.$1+"]는 차단된 단어입니다."); return false;
	}
	return true;
}

function CommaNum(num) { //숫자에 컴마 붙이기
	var num = String (num);
	num= num.replace(/\,/g,"");
	if (num < 0) { num *= -1; var minus = true}
	else var minus = false
	
	var dotPos = (num+"").split(".")
	var dotU = dotPos[0]
	var dotD = dotPos[1]
	var commaFlag = dotU.length%3

	if(commaFlag) {
		var out = dotU.substring(0, commaFlag) 
		if (dotU.length > 3) out += ","
	}
	else var out = ""

	for(var i=commaFlag; i < dotU.length; i+=3) {
		out += dotU.substring(i, i+3) 
		if( i < dotU.length-3) out += ","
	}

	if(minus) {out = "-" + out;}
	if(dotD) {return out + "." + dotD;}
	else{ return out;}
}

function NoCommaNum(num) { //숫자에 컴마 띠기
	num= num.replace(/\,/g,"");
	return parseInt(num);
}

function email_send(board_name,u_no,check1,check2) { //이메일 암호화
	email_send.src = "email.php?board_name="+board_name+"&u_no="+u_no+"&check1="+check1+"&check2="+check2;
  return true; 
} 

String.prototype.substrkr = function (start,length){
	if (length==0)
		return '';
//	var patten = /[ㄱ-ㅎㅏ-ㅣ가-힣]/; 
	var patten = /[^\x20-\x7F\s]/;
	var str = new String;
	var len = this.length;
	var j=0;
	for (i=0;i<=len-1;i++)
	{
		s = this.substr(i,1);
		t = patten.test(s)
		if (t)
			start-=3;
		if (start <= i) {
			str += s;
			j += (t) ? 3 : 1;
		}
		if (length && length<=j)
			return str;
	}
	return str;
}

function serialize (obj) {
        var idx, len=0, retStr = '';

        switch(typeof(obj)) {
                case 'number':
                        if (parseInt(obj) == obj) retStr = 'i:' + obj + ';';
                        else retStr = 'd:' + obj + ';';
                        break;
                case 'string':
                        retStr = 's:' + obj.length + ':"' + obj + '";'
                        break;
                case 'null':
                        retStr = 'N;';
                        break;
                case 'object':
                        if (obj == null) {
                                retStr = 'N;';
                        } else if (typeof(obj.reverse) == 'function') {
                                retStr = 'a:' + obj.length + ':{';
                                for (idx in obj) {
                                        if (parseInt(idx).toString() == idx) idx = parseInt(idx);
                                        retStr += serialize(idx) + serialize(obj[idx]);
                                }
                                retStr += '}';
                        } else {
                                for (idx in obj) {
                                        if (parseInt(idx).toString() == idx) idx = parseInt(idx);
                                        retStr += serialize(idx) + serialize(obj[idx]);
                                        len++;
                                }
                                retStr = 'a:' + len + ':{' + retStr + '}';
                        }
                        break;
                default:
                        retStr = 'N;';
        }

        return retStr;
}

function unserialize (str) {
	var retVal, Len, Key, Val;
	switch(str.substring(0, 1)) {
		case 'N':
			unserialize.str = str.substring(2);
			return null;
			break;
		case 'd':
			retVal = parseFloat(str.substring(2, str.indexOf(';')));
			unserialize.str = str.substring(str.indexOf(';')+1);
			break;
		case 'i':
			retVal = parseInt(str.substring(2, str.indexOf(';')));
			unserialize.str = str.substring(str.indexOf(';')+1);
			break;
		case 'b':
			retVal = (str.substr(2, 1)==1) ? true : false;
			unserialize.str = str.substring(4);
			break;
		case 's':
			Len = parseInt(str.substring(2, str.indexOf(':', 2)));
			retVal = str.substrkr(4 + Len.toString().length, Len);
			Len2 = retVal.length;
			unserialize.str = str.substring(Len.toString().length + Len2 + 6);
			break;
		case 'a':
			retVal = new Array;
			str = str.substring(str.indexOf('{', 3) + 1);
			while (str.substring(0, 1) != '}') {
				Key = unserialize(str); str = unserialize.str;
				Val = unserialize(str); str = unserialize.str;
				retVal[Key] = Val;
			}
			unserialize.str = str.substring(1);
			break;
		case 'O':
			retVal = new Object;
			str = str.substring(str.indexOf('{', 3) + 1);
			while (str.substring(0, 1) != '}') {
				Key = unserialize(str); str = unserialize.str;
				Val = unserialize(str); str = unserialize.str;
				eval("retVal." + Key + " = Val;");
			}
			unserialize.str = str.substring(1);
			break;
		default:
			unserialize.str = '}';
			alert('error unserialize');
			break;
			
	}
	return retVal;
}



// 이미지의 크기에 따라 새창의 크기가 변경됩니다. 
function image_window(img)
{
	var w = img.tmp_width; 
	var h = img.tmp_height; 
	var winl = (screen.width-w)/2; 
	var wint = (screen.height-h)/3; 

	if (w >= screen.width) { 
		winl = 0; 
		h = (parseInt)(w * (h / w)); 
	} 

	if (h >= screen.height) { 
		wint = 0; 
		w = (parseInt)(h * (w / h)); 
	} 

	var js_url = "<script language='JavaScript1.2'> \n"; 
		js_url += "<!-- \n"; 
		js_url += "var ie=document.all; \n"; 
		js_url += "var nn6=document.getElementById&&!document.all; \n"; 
		js_url += "var isdrag=false; \n"; 
		js_url += "var x,y; \n"; 
		js_url += "var dobj; \n"; 
		js_url += "function movemouse(e) \n"; 
		js_url += "{ \n"; 
		js_url += "  if (isdrag) \n"; 
		js_url += "  { \n"; 
		js_url += "    dobj.style.left = nn6 ? tx + e.clientX - x : tx + event.clientX - x; \n"; 
		js_url += "    dobj.style.top  = nn6 ? ty + e.clientY - y : ty + event.clientY - y; \n"; 
		js_url += "    return false; \n"; 
		js_url += "  } \n"; 
		js_url += "} \n"; 
		js_url += "function selectmouse(e) \n"; 
		js_url += "{ \n"; 
		js_url += "  var fobj      = nn6 ? e.target : event.srcElement; \n"; 
		js_url += "  var topelement = nn6 ? 'HTML' : 'BODY'; \n"; 
		js_url += "  while (fobj.tagName != topelement && fobj.className != 'dragme') \n"; 
		js_url += "  { \n"; 
		js_url += "    fobj = nn6 ? fobj.parentNode : fobj.parentElement; \n"; 
		js_url += "  } \n"; 
		js_url += "  if (fobj.className=='dragme') \n"; 
		js_url += "  { \n"; 
		js_url += "    isdrag = true; \n"; 
		js_url += "    dobj = fobj; \n"; 
		js_url += "    tx = parseInt(dobj.style.left+0); \n"; 
		js_url += "    ty = parseInt(dobj.style.top+0); \n"; 
		js_url += "    x = nn6 ? e.clientX : event.clientX; \n"; 
		js_url += "    y = nn6 ? e.clientY : event.clientY; \n"; 
		js_url += "    document.onmousemove=movemouse; \n"; 
		js_url += "    return false; \n"; 
		js_url += "  } \n"; 
		js_url += "} \n"; 
		js_url += "document.onmousedown=selectmouse; \n"; 
		js_url += "document.onmouseup=new Function('isdrag=false'); \n"; 		
		js_url += "//--> \n"; 
		js_url += "</"+"script> \n"; 
		
		var js_url2 = "<script language='JavaScript1.2'> \n"; 
		js_url2 += "<!-- \n"; 
		js_url2 += "// 레이어 트랜지션\n";
		js_url2 += "function doTrans(obj) {\n";
		js_url2 += "	if(document.all) {\n";
		js_url2 += "\n";
		js_url2 += "		f = new Array();\n";
		js_url2 += "		f[0] = 'Slide(slidestyle=HIDE,Bands=1)';                                // PUSH, SWAP\n";
		js_url2 += "		f[1] = 'Spiral(GridSizeX=8,GridSizeY=8)';\n";
		js_url2 += "		f[2] = 'Stretch(stretchstyle=SPIN)';                                    // HIDE, PUSH\n";
		js_url2 += "		f[3] = 'Strips(motion=leftdown)';                                       // leftup, rightdown, rightup\n";
		js_url2 += "		f[4] = 'Wheel(spokes=10)';                \n";
		js_url2 += "		f[5] = 'Zigzag(GridSizeX=8,GridSizeY=8)';\n";
		js_url2 += "		f[6] = 'Barn(motion=out,orientation=vertical)';                         // horizontal\n";
		js_url2 += "		f[7] = 'Blinds(Bands=10,direction=left)';                               // right, up, down\n";
		js_url2 += "		f[8] = 'Checkerboard(Direction=right,SquaresX=2,SquaresY=2)';           // up, down, left\n";
		js_url2 += "		f[9] = 'Fade(Overlap=1.00)';                                            // 0.75, 0.50\n";
		js_url2 += "		f[10]= 'GradientWipe(GradientSize=0.25,wipestyle=0,motion=forward)';    // style: 0, 1 motion : reverse\n";
		js_url2 += "		f[11]= 'Inset()';\n";
		js_url2 += "		f[12]= 'Iris(irisstyle=PLUS,motion=out)';                               // circle, diamond, cross, square, star\n";
		js_url2 += "		f[13]= 'Pixelate(MaxSquare=50)';\n";
		js_url2 += "		f[14]= 'RadialWipe(wipestyle=CLOCK)';                                   // wedge, radial\n";
		js_url2 += "		f[15]= 'RandomBars()';\n";
		js_url2 += "		f[16]= 'RandomDissolve()';\n";
		js_url2 += "		\n";
		js_url2 += "		date = new Date();\n";
		js_url2 += "		\n";
		js_url2 += "		effect = date.getSeconds() % f.length;\n";
		js_url2 += "		obj.style.filter = 'progid:DXImageTransform.Microsoft.' + f[effect];\n";
		js_url2 += "		obj.filters[0].apply();\n";
		js_url2 += "		obj.style.visibility = 'hidden';\n";
		js_url2 += "		obj.filters[0].play();\n";
		js_url2 += "		setTimeout('window.close();',1000); \n";
		js_url2 += " \n";
		js_url2 += "	} else {\n";
		js_url2 += "	\n";
		js_url2 += "		obj.style.visibility = 'hidden';\n";
		js_url2 += "		setTimeout('window.close();',1000); \n";
			
		js_url2 += "	}\n";
		js_url2 += "}\n";

		js_url2 += "//--> \n"; 
		js_url2 += "</"+"script> \n"; 


	var settings;
	if(w<600)w=600-20;
	if(h<450)h=450-20;
	settings  ='width='+(w+20)+','; 
	settings +='height='+(h+20)+',';
	settings +='top='+wint+','; 
	settings +='left='+winl+','; 
	settings +='scrollbars=1,'; 
	settings +='resizable=yes,'; 
	settings +='status=no'; 


	var win=window.open("","image_window",settings);  
	win.document.open(); 
	win.document.write ("<html><head> \n<meta http-equiv='imagetoolbar' CONTENT='no'> \n<meta http-equiv='content-type' content='text/html; charset=euc-kr'>\n"); 
	var size = "이미지 사이즈 : "+w+" x "+h;
	win.document.write ("<title>"+size+"</title> \n"); 
	win.document.write (js_url2); 
	if(w >= screen.width || h >= screen.height) { 
		win.document.write (js_url); 
		var click = "ondblclick='doTrans(this);'  title=' "+size+" 이미지 사이즈가 화면보다 큽니다.  왼쪽 버튼을 클릭한 후 마우스를 움직여서 보세요.  더블 클릭하면 닫기. '"; 
	} 
	else 
		var click = "onclick='doTrans(this);'  title=' "+size+"  클릭하면 닫힘.. '";  

	win.document.write ("<style>.dragme{position:relative;}</style> \n"); 
	win.document.write ("</head> \n\n"); 
	win.document.write ("<body leftmargin=0 topmargin=0 bgcolor=#dddddd style='cursor:arrow;'> \n"); 
	//win.document.write ("<table width=100% height=100% cellpadding=0 cellspacing=0><tr><td align=center valign=middle><img src='"+img.src+"' width='"+w+"' height='"+h+"' border=0 class='dragme' "+click+"></td></tr></table>");
	//이미지가 크면 height속성없애라.
	win.document.write ("<table width=100% height=100% cellpadding=0 cellspacing=0><tr><td align=center valign=middle><img src='"+img.src+"' width='"+w+"'  border=0 class='dragme'  "+click+" style='cursor:move; FILTER: progid:DXImageTransform.Microsoft.Spiral(GridSizeX=8,GridSizeY=8);' ></td></tr></table>");

	win.document.write ("</body></html>"); 
	win.document.close(); 

	if(parseInt(navigator.appVersion) >= 4){win.window.focus();} 
}


function ImageResize2() {
	var width1 =120;
	var bdclor="#cccccc";
  try {
	 // var iii = document.getElementById("image1"); xx
	var iii= document.all.item("image1");


	if(iii.length!=undefined){
		for(i = 0; i < iii.length; i++) {
		  if( iii[i].name == 'target_resize_image[]' &&  iii[i].width > width1 )  {
			iii[i].tmp_width  = iii[i].width;
			iii[i].tmp_height = iii[i].height;
			iii[i].width = width1;
			iii[i].style.cursor = 'pointer';
			// 스타일에 적용된 이미지의 폭과 높이를 삭제한다
			iii[i].style.width = '';
			iii[i].style.height = '';
			iii[i].style.borderWidth = '1px';
			iii[i].style.borderStyle = 'solid';
			iii[i].style.borderColor = bdclor;
		  }
		}
	}else{
		//alert(iii.name );
		// alert('iii.width='+iii.width+';iii.height='+iii.height+';width1 ='+width1 );

		if( iii.name == 'target_resize_image[]' &&  iii.width > width1 )  {
			iii.tmp_width  = iii.width;
			iii.tmp_height = iii.height;
			iii.width = width1;
			iii.style.borderWidth = '1px';
			iii.style.borderStyle = 'solid';
			iii.style.borderColor = bdclor;
		}
	}
  }
  catch(e) {
  }
}
//window.onload = ImageResize1();
//-->
