// ¿¡·¯¸Þ½ÃÁö Æ÷¸ä Á¤ÀÇ
var NO_BLANK="{name+À»¸¦} ÀÔ·ÂÇØÁÖ½Ê½Ã¿ä.";
var NO_SELECT="{name+À»¸¦} ¼±ÅÃÇØÁÖ½Ê½Ã¿ä.";
var NO_VALID="{name+À»¸¦} ¹Ù¸£°Ô ÀÔ·ÂÇØÁÖ½Ê½Ã¿ä.";

// ½ºÆ®¸µ °´Ã¼¿¡ ¸Þ¼Òµå Ãß°¡
String.prototype.trim=function(str) {
	str=this!=window?this:str; 
	return str.replace(/^\s+/g,'').replace(/\s+$/g,'');
}

String.prototype.hasFinalConsonant=function(str) {
	str=this!=window?this:str; 
	var strTemp=str.substr(str.length-1);
	return ((strTemp.charCodeAt(0)-16)%28!=0);
}

function josa(str,tail) {
	return (str.hasFinalConsonant())?tail.substring(0,1):tail.substring(1,2);
}

function checkIt(form) {
	for(i=0; i<form.elements.length; i++) {
		var el=form.elements[i];
		el.value=el.value.trim();

		// ÇÊ¼öÀÔ·Â °Ë»ç
		if(el.getAttribute("REQUIRED")!=null&&el.value=="") {
			if(el.type=="text"||el.type=="textarea"||el.type=="password") return doError(el,NO_BLANK);
			else return doError(el,NO_SELECT);
		}

		// Á¶°ÇºÎÀÔ·Â °Ë»ç(Å¸ÄÏÀÌ °ø¹éÀÌ ¾Æ´Ï¸é ÀÔ·Â)
		if(el.getAttribute("EMPTY")!=null&&el.value=="") {
			var obj=eval("form."+el.getAttribute("EMPTY"));
			if((obj.type!="checkbox"&&obj.type!="radio"&&obj.value!="")||obj.checked==true||obj.selected==true) {
				if(el.type=="text"||el.type=="textarea"||el.type=="password") return doError(el,NO_BLANK);
				else return doError(el,NO_SELECT);
			}
		}

		// Á¶°ÇºÎÀÔ·Â °Ë»ç(Å¸ÄÏÀÌ °ø¹éÀÌ¸é ÀÔ·Â)
		if(el.getAttribute("FULL")!=null&&el.value=="") {
			var obj=eval("form."+el.getAttribute("FULL"));
			if(obj.value==""||obj.checked==false||obj.selected==false) {
				if(el.type=="text"||el.type=="textarea"||el.type=="password") return doError(el,NO_BLANK);
				else return doError(el,NO_SELECT);
			}
		}

		// ÅØ½ºÆ®ÀÔ·Â¾ç½Ä ºñ±³ °Ë»ç
		if(el.getAttribute("COMPARE")!=null&&el.value!="") {
			var obj=eval("form."+el.getAttribute("COMPARE"));
			if(obj.value!=el.value) return doError(el,"{name+ÀÌ°¡} ÀÏÄ¡ÇÏÁö ¾Ê½À´Ï´Ù.","del");
		}

		// ÃÖ´ëÀÔ·Â ¹ÙÀÌÆ®¼ö °Ë»ç
		if(el.getAttribute("MAXBYTE")!=null&&el.value!="") {
			var len=0;
				for(j=0; j<el.value.length; j++) {
				var str=el.value.charAt(j);
				len+=(str.charCodeAt()>128)?2:1
			}
			if(len>parseInt(el.getAttribute("MAXBYTE"))) {
				maxbyte=el.getAttribute("MAXBYTE");
				return doError(el,"{name+Àº´Â} ¿µ¹®"+maxbyte+"ÀÚ, ÇÑ±Û"+maxbyte/2+"ÀÚ ¹Ì¸¸ ÀÔ´Ï´Ù.","del");
			}
		}

		// ÃÖ¼ÒÀÔ·Â ¹ÙÀÌÆ®¼ö °Ë»ç
		if(el.getAttribute("MINBYTE")!=null&&el.value!="") {
			var len=0;
				for(j=0; j<el.value.length; j++) {
				var str=el.value.charAt(j);
				len+=(str.charCodeAt()>128)?2:1
			}
			if(len<parseInt(el.getAttribute("MINBYTE"))) {
				minbyte=el.getAttribute("MINBYTE");
				return doError(el,"{name+Àº´Â} ¿µ¹®"+minbyte+"ÀÚ, ÇÑ±Û"+minbyte/2+"ÀÚ ÀÌ»ó ÀÔ´Ï´Ù.","del");
			}
		}

		// Æ¯¼ö ÆÐÅÏ °Ë»ç
		if(el.getAttribute("OPTION")!=null&&el.value!="") {
			if(!funcs[el.getAttribute("OPTION")](el)) return false;
		}

		// ÀÌ¹ÌÁö °¡·ÎÅ©±â °Ë»ç
		if(el.getAttribute("IMGSIZE")!=null&&el.value!="") {
			image=new Image();
			image.src=el.value;

			if(isNaN(el.getAttribute("IMGSIZE"))) var imgsize=eval("form."+el.getAttribute("IMGSIZE")).value;
			else var imgsize=el.getAttribute("IMGSIZE");

			if(image.width<imgsize) {
				return doError(el,"{name} °¡·ÎÅ©±â´Â "+imgsize+"ÇÈ¼¿ ÀÌ»ó ÀÔ´Ï´Ù.");
			}
		}
	}

	// ÁøÇà»óÅÂÇ¥½Ã(°ªÀÌ ¾øÀ¸¸é ½ÇÇà)
	var args=checkIt.arguments;
	var args=!args[1]?0:args[1];

	if(!args) {
		MakeFrame();

		objFrame.style.left=(document.body.clientWidth+document.body.scrollLeft-220)/2;
		objFrame.style.top=(document.body.clientHeight+document.body.scrollTop-100)/2;
		objFrame.style.visibility="visible";

		doc=idFrame.document;
		doc.open();

tags="<html>"
+"<head>"
+"<style>"
+" body,table{border:none; margin:0px; overflow:hidden;}"
+"</style>"
+"</head>"
+"<body onload=\"parent.ResizeWindow();\">"
+"<img src=\"../../images/loading.gif\">"
+"</body>"
+"</html>"

		doc.write(tags);
		doc.close();
	}

	return true;
}

// ¿¡·¯Ç¥½Ã
function doError(el,type,action) {
	var pattern=/{([a-zA-Z0-9_]+)\+?([°¡-ÆR]{2})?}/;
	var name=(hname=el.getAttribute("HNAME"))?hname:el.getAttribute("NAME");
	pattern.exec(type);
	var tail=(RegExp.$2)?josa(eval(RegExp.$1),RegExp.$2):"";
	alert(type.replace(pattern,eval(RegExp.$1)+tail));

	if(action=="sel") el.select();
	else if(action=="del") el.value=el.defaultValue;
	else if(action=="reset") form.reset();

	if(typeof(el)!="undefined") el.focus();

	return false;
}

// Æ¯¼ö ÆÐÅÏ °Ë»ç ÇÔ¼ö
var funcs=new Array();
funcs['numchar']=isValidNumchar;
funcs['number']=isNumeric;
funcs['hangul']=hasHangul;
funcs['engonly']=alphaOnly;
funcs['email']=isValidEmail;
funcs['phone']=isValidPhone;
funcs['jumin']=isValidJumin;
funcs['bizno']=isValidBizNo;
funcs['movie']=isValidMovie;
funcs['image']=isValidImage;
funcs['special']=isValidSpecial;
funcs['ymd']=isValidYmd;

// ¿µ¹®,¼ýÀÚ °Ë»ç
function isValidNumchar(el) {
	var pattern=/^[a-zA-Z0-9_]+$/;
	return (pattern.test(el.value))?true:doError(el,"{name+Àº´Â} ¿µ¹®,¼ýÀÚ¸¸ ÀÔ·ÂÇØÁÖ½Ê½Ã¿ä.","del");
}

// ¼ýÀÚ °Ë»ç
function isNumeric(el) {
	//var pattern=/^[0-9]+$/; //Á¤¼ö
	var pattern=/^[,0-9]+(.[0-9]+)?$/; //½Ç¼ö(¼Ò¼öÁ¡Æ÷ÇÔ)
	return (pattern.test(el.value))?true:doError(el,"{name+Àº´Â} ¹Ýµå½Ã ¼ýÀÚ·Î¸¸ ÀÔ·ÂÇØÁÖ½Ê½Ã¿ä.","del");
}

// ÇÑ±Û °Ë»ç
function hasHangul(el) {
	var pattern=/^[ ¤¡-¤¾¤¿-¤Ó°¡-ÆR]+$/;
	return (pattern.test(el.value))?true:doError(el,"{name+Àº´Â} ¹Ýµå½Ã ÇÑ±Û¸¸ ÀÔ·ÂÇØÁÖ½Ê½Ã¿ä.","del");
}

// ¿µ¹® °Ë»ç
function alphaOnly(el) {
	var pattern=/^[a-zA-Z]+$/;
	return (pattern.test(el.value))?true:doError(el,"{name+Àº´Â} ¹Ýµå½Ã ¿µ¹®¸¸ ÀÔ·ÂÇØÁÖ½Ê½Ã¿ä.","del");
}

// ÀÌ¸ÞÀÏ °Ë»ç
function isValidEmail(el) {
	var pattern=/^[_a-zA-Z0-9-\.]+@[\.a-zA-Z0-9-]+\.[a-zA-Z]+$/;
	return (pattern.test(el.value))?true:doError(el,NO_VALID,"del");
}

// ÀüÈ­¹øÈ£ °Ë»ç
function isValidPhone(el) {
	var pattern1=/^(0[2-6][1-5]?)-?([0-9]{3,4})-?([0-9]{3,4})$/;
	var pattern2=/^(01[016789])-?([0-9]{3,4})-?([0-9]{3,4})$/;

	if(pattern1.exec(el.value)) {
		el.value=RegExp.$1+"-"+RegExp.$2+"-"+RegExp.$3;
		return true;
	}
	else if(pattern2.exec(el.value)) {
		el.value=RegExp.$1+"-"+RegExp.$2+"-"+RegExp.$3;
		return true;
	}
	else return doError(el,NO_VALID,"del");
}

// ÁÖ¹Î¹øÈ£ °Ë»ç
function isValidJumin(el) {
	var pattern=/^([0-9]{6})-?([0-9]{7})$/;
	if(!pattern.test(el.value)) return doError(el,NO_VALID,"del"); 

	var sum=0;
	var num=RegExp.$1+RegExp.$2;
	var last=num.charCodeAt(12)-0x30;
	var bases="234567892345";
	for(var i=0; i<12; i++) {
		if(isNaN(num.substring(i,i+1))) return doError(el,NO_VALID);
		 sum+=(num.charCodeAt(i)-0x30)*(bases.charCodeAt(i)-0x30);
	}
	var mod=sum%11;
	return ((11-mod)%10==last)?true:doError(el,NO_VALID,"del");
}

// »ç¾÷ÀÚµî·Ï¹øÈ£ °Ë»ç
function isValidBizNo(el) {
	var pattern=/^([0-9]{3})-?([0-9]{2})-?([0-9]{5})$/;
	if(!pattern.test(el.value)) return doError(el,NO_VALID,"del");

	var num=RegExp.$1+RegExp.$2+RegExp.$3;
	var cVal=0;
	for(var i=0; i<8; i++) {
		var cKeyNum=parseInt(((_tmp=i%3)==0)?1:(_tmp==1)?3:7);
		cVal+=(parseFloat(num.substring(i,i+1))*cKeyNum)%10;
	}
	var li_temp=parseFloat(num.substring(i,i+1))*5+'0';
	cVal+=parseFloat(li_temp.substring(0,1))+parseFloat(li_temp.substring(1,2));
	return (parseInt(num.substring(9,10))==10-(cVal%10)%10)?true:doError(el,NO_VALID,"del");
}

// µ¿¿µ»ó °Ë»ç
function isValidMovie(el) {
	var pattern=/(.mpg|.mpeg|.asf|.avi|.wmv|.mov|.flv)/i;
	return (pattern.test(el.value))?true:doError(el,"{name+Àº´Â} MPG, ASF, AVI, WMV, MOV, FLVÆÄÀÏ¸¸ ÀÔ·Â°¡´ÉÇÕ´Ï´Ù.");
}

// ÀÌ¹ÌÁö °Ë»ç
function isValidImage(el) {
	var pattern=/(.jpg|.jpeg|.gif|.bmp|.png)/i;
	return (pattern.test(el.value))?true:doError(el,"{name+Àº´Â} JPG, GIF, BMP, PNGÆÄÀÏ¸¸ ÀÔ·Â°¡´ÉÇÕ´Ï´Ù.");
}

// Æ¯¼ö¹®ÀÚ °Ë»ç
function isValidSpecial(el) {
	var pattern=/[^~|=&,'"]+$/;
	return (pattern.test(el.value))?true:doError(el,"{name}¿¡ Æ¯¼ö¹®ÀÚ ¶Ç´Â ÀÎ¿ëºÎÈ£°¡ Æ÷ÇÔµÇ¾î ÀÖ½À´Ï´Ù.","del");
}

// ³¯Â¥ Çü½Ä °Ë»ç
function isValidYmd(el) {
	var pattern=/^([0-9]{4})-?([0-9]{2})-?([0-9]{2})$/;
	if(!pattern.test(el.value)) return doError(el,NO_VALID,"del");

	var tYear=RegExp.$1;
	var tMonth=RegExp.$2;
	var tDay=RegExp.$3;
	var tDate=new Date(tYear,tMonth-1,tDay);

	return (tDate.getFullYear()==tYear&&tDate.getMonth()+1==tMonth&&tDate.getDate()==tDay)?true:doError(el,NO_VALID,"del");
}