/************************************** 
* ±â´É: °øÅë ¶óÀÌºê·¯¸® 
* ÀÛ¼ºÀÏ: 2002-07-04 
* ÀÛ¼ºÀÚ: °ÅÄ£¸¶·ç 
* ¼öÁ¤: ÇÏ±ÙÈ£ 
* 2Â÷¼öÁ¤ : Æ®·Ð¢â 
* 2Â÷¼öÁ¤ÀÏ : 2002-09-09
* 3Â÷¼öÁ¤ : ÀÌµ¿Ã¶
* 3Â÷¼öÁ¤ÀÏ : 2002-12-24
* 4Â÷¼öÁ¤ : saree
* 5Â÷¼öÁ¤ : ÀÌµ¿Ã¶
***************************************
* ²À FORM¿¡ nameÀ» Á¤ÀÇÇØ ÁØ´Ù!!
* <FORM name="form1" onSubmit="return chkForm(this)">
* input tag¿¡ ´ëÇÑ ¼³¸í 
* <input 
*	type="text" //Ã¼Å©ÇÒ Çü½Ä 
*	name="id" //³Ñ¾î°¥ÀÌ¸§ 
*	hname="¾ÆÀÌµð" //°æ°íÃ¢¿¡ ³ªÅ¸³¾ ¹®ÀÚ¿­ 
*	option="regId" //¾î¶² Á¤±Ô½ÄÀ¸·Î Ã³¸®ÇÒÁö ¼±¾ð 
*	required //²À Ã¼Å©¸¦ ¿øÇÏ´Â Ç×¸ñ¿¡ ¼³Á¤ 
*   lengthchk="20" // ±Û ±æÀÌ Á¦ÇÑ
* > 
***************************************/

function chkForm(f)
{ 
	var i,currEl;

	for(i = 0; i < f.elements.length; i++){ 
		currEl = f.elements[i]; 
		//ÇÊ¼ö Ç×¸ñÀ» Ã¼Å©ÇÑ´Ù.  
		if (currEl.getAttribute("notnull") != null) { 
			if(currEl.type.toLowerCase() == "text" || 
				currEl.type.toLowerCase() == "password" ||
				currEl.tagName.toLowerCase() == "select" || 
				currEl.tagName.toLowerCase() == "textarea"){ 
				if(!chkText(currEl,currEl.hname)) return false; 

			} else if(currEl.type.toLowerCase() == "checkbox"){ 
				if(!chkCheckbox(currEl,currEl.hname)) return false; 

			} else if(currEl.type.toLowerCase() == "radio"){ 
				if(!chkRadio(f, currEl,currEl.hname)) return false; 

			}
		}
		// ÀÔ·Â ÆäÅÏÀ» Ã¼Å©ÇÑ´Ù.
		if(currEl.getAttribute("option") != null && currEl.value.length > 0){ 
			if(!chkPatten(currEl,currEl.option,currEl.hname)) return false; 
		}
		// ±æÀÌÁ¦ÇÑÀ» Ã¼Å©ÇÑ´Ù.
		if(currEl.getAttribute("lengthchkMax") != null && currEl.value.length > 0){ 
			if(!chkLengthMax(currEl,currEl.lengthchkMax,currEl.hname)) return false; 
		} 
		// ±æÀÌÁ¦ÇÑÀ» Ã¼Å©ÇÑ´Ù.
		if(currEl.getAttribute("lengthchkMin") != null && currEl.value.length > 0){ 
			if(!chkLengthMin(currEl,currEl.lengthchkMin,currEl.hname)) return false; 
		} 
	}
} 

function chkPatten(field,patten,name)
{ 
	var regNum =/^[0-9]+$/; 
	var regPhone =/^[0-9]{2,3}-[0-9]{3,4}-[0-9]{4}$/; 
//	var regMail =/^[\w-]+(?:\.[\w-]+)*@(?:[\w-]+\.)+[a-zA-Z]{2,7}$/; 
//	var regHttp =/^http:\/\/(?:[\w-]+\.)+[a-zA-Z]{2,7}$/; 
//	var regDomain =/^(?:[\w-]+\.)+[a-zA-Z]{2,7}$/; 
	var regAlpha =/^[a-zA-Z]+$/; 
	var regHost =/^[a-zA-Z-]+$/; 
	var regHangul =/[°¡-ÆR]/; 
	var regHangulEng =/[°¡-ÆRa-zA-Z]/; 
	var regHangulOnly =/^[°¡-ÆR]*$/; 
	var regId =/^[a-zA-Z]{1}[a-zA-Z0-9_-]{3,14}$/; 
	var regDate =/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/; 
	var regJpeg =/(.jpg|.jpeg|.JPG|.JPEG)$/;
	var regImg =/(.jpg|.jpeg|.JPG|.JPEG|.gif|.GIF)$/;

	patten = eval(patten); 
	if(!patten.test(field.value)){ 
		alert(name + "\n\nÇ×¸ñÀÇ Çü½ÄÀÌ ¿Ã¹Ù¸£Áö ¾Ê½À´Ï´Ù."); 
		field.focus(); 
		return false; 
	} 
	return true; 
} 

//-- ¹®ÀÚ¿­ ±æÀÌ °Ë»ç
function getLength(str) {
	return (str.length + (escape(str) + "/%u").match(/%u/g).length-1);
}
function chkLengthMax(field,length,name)
{
	if(getLength(field.value) > length){ 
		alert(name + "\n\n±ÛÀÚÁ¦ÇÑ ¿µ¹®,¼ýÀÚ "+length+"ÀÚ , ÇÑ±Û "+(length/2)+"ÀÚ ÀÌÇÏ ÀÔ·ÂÁ¦ÇÑ ÀÔ´Ï´Ù."); 
		field.focus(); 
		return false; 
	} 
	return true; 
}

function chkLengthMin(field,length,name)
{
	if(getLength(field.value) < length){ 
		alert(name + "\n\n±ÛÀÚÁ¦ÇÑ ¿µ¹®,¼ýÀÚ "+length+"ÀÚ , ÇÑ±Û "+(length/2)+"ÀÚ ÀÌ»ó ÀÔ·ÂÁ¦ÇÑ ÀÔ´Ï´Ù."); 
		field.focus(); 
		return false; 
	} 
	return true; 
}

function chkText(field, name)
{
	if(field.value.length < 1){ 
		alert(name); 
		field.focus(); 
		return false; 
	} 
	return true; 
}

function chkCheckbox(field, name)
{
	if (!field.checked){
		alert(name); 
		field.focus(); 
		return false; 
	}
	return true; 
}

function chkRadio(form, field, name)
{
	fieldname = eval(form.name+'.'+field.name);
	for (i=0;i<fieldname.length;i++) {
		if (fieldname[i].checked)
			return true; 
	}
	alert(name); 
	field.focus(); 
	return false; 
}