var showMsg='';
function chkForm(f)
{ 
       var i,currEl;
		//
       for(i = 0; i < f.elements.length; i++){ 
              currEl = f.elements[i]; 
              //ÇÊ¼ö Ç×¸ñÀ» Ã¼Å©ÇÑ´Ù.  
              if (currEl.getAttribute("required") != null)
              { 
                     if(currEl.type.toUpperCase() == "TEXT" || currEl.tagName.toUpperCase() == "SELECT" || currEl.tagName.toUpperCase() == "TEXTAREA" ||currEl.type.toUpperCase() == "PASSWORD")
                     { 
                            if(!chkText(currEl,currEl.msg)) return false; 

                     } else if(currEl.type.toUpperCase() == "CHECKBOX"){ 
                            if(!chkCheckbox(f, currEl,currEl.msg)) return false; 

                     } else if(currEl.type.toUpperCase() == "RADIO"){ 
                            if(!chkRadio(f, currEl,currEl.msg)) return false; 

                     }
              }
              // ÀÔ·Â ÆäÅÏÀ» Ã¼Å©ÇÑ´Ù.
              if(currEl.getAttribute("validator") != null && currEl.value.length > 0){ 
                     if(!chkPatten(currEl,currEl.validator,currEl.msg)) return false; 
              } 
              // ±æÀÌÁ¦ÇÑÀ» Ã¼Å©ÇÑ´Ù./
              if(currEl.getAttribute("lengthchk") != null && currEl.value.length > 0){ 
                     if(!chkLength(currEl,currEl.lengthchk,currEl.msg)) return false; 
              } 
       }
	   return true;
} 

function chkPatten(field,patten,name)
{ 
       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,15}$/;
	   var regAlphaNum=/^[_a-zA-Z0-9]+$/;
	   var onlyregAlphaNum=/^[a-zA-Z0-9]+$/;
       var regDate =/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/; 
	   var regIp = /([1]\d\d|[2]([0-4][0-9]|5[0-5])|[1-9][0-9]|[0-9]){1}(\.([1]\d\d|[2]([0-4][0-9]|5[0-5])|[1-9][0-9]|[0-9])){3}/gi;
       var regMac = /^[0-9a-fA-F]{2}$/;
	   var regCustNo=  /^([0-9]{6})-?([1-3]{1}[0-9]{6})$/;					//ÁÖ¹Î¹øÈ£	
	   var regBizNo=/^([0-9]{3})-?([0-7]{1}[0-9]{1})-?([0-9]{4})$/;			//»ç¾÷ÀÚ¹øÈ£	 	
	   var regBizNoWts=/^([0-9]{3})-?([0-9]{2})-?([0-9]{5})$/;				//wts »ç¾÷ÀÚ¹øÈ£	 	
	   var regCustNo1= /^[0-9]{6}$/;										//ÁÖ¹Î¹øÈ£ ¾ÕÀÚ¸®
	   var regCustNo2= /^[1-3]{1}[0-9]{6}$/;								//ÁÖ¹Î¹øÈ£ µÞÀÚ¸®
	   var regBizNo1=/^[0-9]{3}$/;											//»ç¾÷ÀÚ¹øÈ£ ¾ÕÀÚ¸®
	   var regBizNo2=/^([0-9]{1}[1-9]{1}|[1-9]{1}[0-9]{1})$/;				//»ç¾÷ÀÚ¹øÈ£ Áß°£ÀÚ¸®
	   var regBizNo3=/^([0-9]{3}[1-9]{1}|[1-9]{1}[0-9]{3}|[0-9]{1}[1-9]{1}[0-9]{2}|[0-9]{2}[1-9]{1}[0-9]{1})$/;	//»ç¾÷ÀÚ¹øÈ£ ³¡ÀÚ¸®
	   var regPhone1 =/^(02|[0]{1}[3-7]{1}[0-9]{1})$/;						//ÀüÈ­¹øÈ£ ¾ÕÀÚ¸®
	   var regPhone2 =/^[0-9]{3,4}$/;										//ÀüÈ­¹øÈ£ Áß°£ÀÚ¸®
	   var regPhone3 =/^[0-9]{4}$/;											//ÀüÈ­¹øÈ£ ³¡ÀÚ¸®
	   var regHdPhone1=/^(01)(0|1|6|7|8|9|)$/;								//ÈÞ´ëÆù¹øÈ£ ¾ÕÀÚ¸®
	   var regHdPhone2=/^[0-9]{3,4}$/;										//ÈÞ´ëÆù¹øÈ£ Áß°£ÀÚ¸®
	   var regHdPhone3=/^[0-9]{4}$/;										//ÈÞ´ëÆù¹øÈ£ ³¡ÀÚ¸®
	   
	   //var regPrime=/^([0-9]+)(.[0-9]+)$/;                         // ¼Ò¼ö Ã¼Å© ?
	   
	   
	   //setMessage(patten);
	   
		switch (patten) {
			case "regNum":				showMsg     = "¼ýÀÚ¸¸ ÀÔ·ÂÇÏ½Ê½Ã¿À.";					
				break
			case "regPhone":			showMsg     = "ÀüÈ­¹øÈ£°¡ À¯È¿ÇÏÁö ¾Ê½À´Ï´Ù.";					
				break
			case "regMail":				showMsg     = "ÀÌ¸ÞÀÏ ÁÖ¼Ò°¡ À¯È¿ÇÏÁö ¾Ê½À´Ï´Ù.";					
				break
			case "regDomain":			showMsg     = "µµ¸ÞÀÎÀÌ À¯È¿ÇÏÁö ¾Ê½À´Ï´Ù.";					
				break
			case "regAlpha":			showMsg     = "¿µ¹®ÀÚ¸¸ ÀÔ·ÂÇÏ½Ê½Ã¿À.";					
				break
			case "regAlphaNum":			showMsg     = "¿µ¹®ÀÚ¿Í ¼ýÀÚ¸¸ ÀÔ·ÂÇÏ½Ê½Ã¿À.";					
				break
			case "onlyregAlphaNum":		showMsg 	= "¿µ¹®ÀÚ¿Í ¼ýÀÚ¸¸ ÀÔ·ÂÇÏ½Ê½Ã¿À.";					
				break
			case "regHost":				showMsg     = "host¸íÀÌ À¯È¿ÇÏÁö ¾Ê½À´Ï´Ù.";					
				break
//			case "regHangul":			showMsg     = "ÇÑ±Û¸¸ ÀÔ·ÂÇÏ½Ê½Ã¿À";					
//				break	
//			case "regHangulEng":		showMsg     = "¿µ¹®ÀÚ ¶Ç´Â ÇÑ±Û¸¸ ÀÔ·ÂÇÏ½Ê½Ã¿À.";				
//				break
//			case "regHangulOnly":		showMsg     = "ÇÑ±Û¸¸ ÀÔ·ÂÇÏ½Ê½Ã¿À";					
//				break
			case "regId":				showMsg     = "¾ÆÀÌµð°¡ Çü½Ä¿¡ ¸ÂÁö ¾Ê½À´Ï´Ù.";				
				break
//			case "regDate":				showMsg     = "µî·ÏÀÏÀÌ Çü½Ä¿¡ ¸ÂÁö ¾Ê½À´Ï´Ù.";					
//				break
			case "regDate":				showMsg     = "³¯Â¥°¡  Çü½Ä¿¡ ¸ÂÁö ¾Ê½À´Ï´Ù.";					
				break
			case "regIp":				showMsg     = "¾ÆÀÌÇÇ°¡ Çü½Ä¿¡ ¸ÂÁö ¾Ê½À´Ï´Ù.";					
				break
			case "regMac":				showMsg     = "MAC ADDRESS°¡ Çü½Ä¿¡ ¸ÂÁö ¾Ê½À´Ï´Ù.(¼ýÀÚ 0~9, ¿µ¹®ÀÚ a~f)";	
				break	
			case "regCustNo":			showMsg     = "ÁÖ¹Îµî·Ï¹øÈ£°¡ Çü½Ä¿¡ ¸ÂÁö ¾Ê½À´Ï´Ù.";					
				break
			case "regBizNo":			showMsg     = "»ç¾÷ÀÚµî·Ï¹øÈ£°¡ Çü½Ä¿¡ ¸ÂÁö ¾Ê½À´Ï´Ù.";	
				break	
			case "regCustNo1":			showMsg     = "ÁÖ¹Îµî·Ï¹øÈ£°¡ Çü½Ä¿¡ ¸ÂÁö ¾Ê½À´Ï´Ù.";					
				break
			case "regCustNo2":			showMsg     = "ÁÖ¹Îµî·Ï¹øÈ£°¡ Çü½Ä¿¡ ¸ÂÁö ¾Ê½À´Ï´Ù.";					
				break
			case "regBizNo1":			showMsg     = "»ç¾÷ÀÚµî·Ï¹øÈ£°¡ Çü½Ä¿¡ ¸ÂÁö ¾Ê½À´Ï´Ù.";					
				break
			case "regBizNo2":			showMsg     = "»ç¾÷ÀÚµî·Ï¹øÈ£°¡ Çü½Ä¿¡ ¸ÂÁö ¾Ê½À´Ï´Ù.";					
				break
			case "regBizNo3":			showMsg     = "»ç¾÷ÀÚµî·Ï¹øÈ£°¡ Çü½Ä¿¡ ¸ÂÁö ¾Ê½À´Ï´Ù.";					
				break
			case "regPhone1":			showMsg     = "ÀüÈ­¹øÈ£°¡ À¯È¿ÇÏÁö ¾Ê½À´Ï´Ù.";					
				break
			case "regPhone2":			showMsg     = "ÀüÈ­¹øÈ£°¡ À¯È¿ÇÏÁö ¾Ê½À´Ï´Ù.";					
				break
			case "regPhone3":			showMsg     = "ÀüÈ­¹øÈ£°¡ À¯È¿ÇÏÁö ¾Ê½À´Ï´Ù.";					
				break
			case "regHdPhone1":			showMsg     = "ÈÞ´ëÆù¹øÈ£°¡ À¯È¿ÇÏÁö ¾Ê½À´Ï´Ù.";					
				break
			case "regHdPhone2":			showMsg     = "ÈÞ´ëÆù¹øÈ£°¡ À¯È¿ÇÏÁö ¾Ê½À´Ï´Ù.";					
				break
			case "regHdPhone3":			showMsg     = "ÈÞ´ëÆù¹øÈ£°¡ À¯È¿ÇÏÁö ¾Ê½À´Ï´Ù.";					
				break
			case "regBizNoWts":			showMsg     = "»ç¾÷ÀÚµî·Ï¹øÈ£°¡ Çü½Ä¿¡ ¸ÂÁö ¾Ê½À´Ï´Ù.";	
				break		
		//	case "regPrime":			showMsg     = "¼ýÀÚ¿Í ¼Ò¼ýÁ¡¸¸ »ç¿ë°¡´ÉÇÕ´Ï´Ù.";	
		//		break	
			
		}


	   patten = eval(patten); 

	   
       if(patten == regIp) {
		    
			if(field.value.match(regIp) != field.value) {
				alert(showMsg); 
				field.focus(); 
				return false;
			}
			if(field.value.length >= 2) {
				if('12' != field.value.substring(0,2)) {
					alert('IP´Â 12. À¸·Î ½ÃÀÛÇØ¾ß ÇÕ´Ï´Ù.');
					field.focus(); 
					return false;
				}
			}
	   }
	   else if(!patten.test(field.value)){ 
              alert(showMsg); 
              field.focus(); 
              return false; 
       }
	   
       return true; 
}
//-- ¹®ÀÚ¿­ ±æÀÌ °Ë»ç
function getLength(str) {
       return (str.length + (escape(str) + "/%u").match(/%u/g).length-1);
}
function chkLength(field,length,name)
{
       if(getLength(field.value) > length){        			
              alert(name + "  ¿µ¹®,¼ýÀÚ "+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(form, field, name)
{
       fieldname = eval(form.name+'.'+field.name);
       if (!fieldname.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; 
} 
/*
function excharcheck(value) {
	
	ID = /^[°¡-ÈþA-Za-z0-9]+$/;
	if (!ID.test(value)) {
		return false;
	}else
		return true;
}
*/
function setMessage(vType) {
	
	switch (vType) {
		case "regNum":				showMsg     = "¼ýÀÚ¸¸ ÀÔ·ÂÇÏ½Ê½Ã¿À.";					
			break
		case "regPhone":			showMsg     = "ÀüÈ­¹øÈ£°¡ À¯È¿ÇÏÁö ¾Ê½À´Ï´Ù.";					
			break
		case "regMail":				showMsg     = "ÀÌ¸ÞÀÏ ÁÖ¼Ò°¡ À¯È¿ÇÏÁö ¾Ê½À´Ï´Ù.";					
			break
		case "regDomain":			showMsg     = "µµ¸ÞÀÎÀÌ À¯È¿ÇÏÁö ¾Ê½À´Ï´Ù.";					
			break
		case "regAlpha":			showMsg     = "¿µ¹®ÀÚ¸¸ ÀÔ·ÂÇÏ½Ê½Ã¿À.";					
			break
		case "regAlphaNum":			showMsg     = "¿µ¹®ÀÚ¿Í ¼ýÀÚ¸¸ ÀÔ·ÂÇÏ½Ê½Ã¿À.";					
				break
		case "onlyregAlphaNum":		showMsg 	= "¿µ¹®ÀÚ¿Í ¼ýÀÚ¸¸ ÀÔ·ÂÇÏ½Ê½Ã¿À.";	
				break
		case "regHost":				showMsg     = "host¸íÀÌ À¯È¿ÇÏÁö ¾Ê½À´Ï´Ù.";					
			break
//		case "regHangul":			showMsg     = "ÇÑ±Û¸¸ ÀÔ·ÂÇÏ½Ê½Ã¿À";					
//			break	
//		case "regHangulEng":		showMsg     = "¿µ¹®ÀÚ ¶Ç´Â ÇÑ±Û¸¸ ÀÔ·ÂÇÏ½Ê½Ã¿À.";				
//			break
//		case "regHangulOnly":		showMsg     = "ÇÑ±Û¸¸ ÀÔ·ÂÇÏ½Ê½Ã¿À";					
//			break
		case "regId":				showMsg     = "¾ÆÀÌµð°¡ Çü½Ä¿¡ ¸ÂÁö ¾Ê½À´Ï´Ù.";				
			break
		case "regDate":				showMsg     = "µî·ÏÀÏÀÌ Çü½Ä¿¡ ¸ÂÁö ¾Ê½À´Ï´Ù.";					
			break
		case "regMac":				showMsg     = "¾ÆÀÌÇÇ°¡ Çü½Ä¿¡ ¸ÂÁö ¾Ê½À´Ï´Ù.";					
			break	
		case "regCustNo":			showMsg     = "ÁÖ¹Îµî·Ï¹øÈ£°¡ Çü½Ä¿¡ ¸ÂÁö ¾Ê½À´Ï´Ù.";					
			break
		case "regBizNo":			showMsg     = "»ç¾÷ÀÚ¹øÈ£°¡ Çü½Ä¿¡ ¸ÂÁö ¾Ê½À´Ï´Ù.";	
			break	
		case "regCustNo1":			showMsg     = "ÁÖ¹Îµî·Ï¹øÈ£°¡ Çü½Ä¿¡ ¸ÂÁö ¾Ê½À´Ï´Ù.";					
			break
		case "regCustNo2":			showMsg     = "ÁÖ¹Îµî·Ï¹øÈ£°¡ Çü½Ä¿¡ ¸ÂÁö ¾Ê½À´Ï´Ù.";					
			break
		case "regBizNo1":			showMsg     = "»ç¾÷ÀÚµî·Ï¹øÈ£°¡ Çü½Ä¿¡ ¸ÂÁö ¾Ê½À´Ï´Ù.";					
			break
		case "regBizNo2":			showMsg     = "»ç¾÷ÀÚµî·Ï¹øÈ£°¡ Çü½Ä¿¡ ¸ÂÁö ¾Ê½À´Ï´Ù.";					
			break
		case "regBizNo3":			showMsg     = "»ç¾÷ÀÚµî·Ï¹øÈ£°¡ Çü½Ä¿¡ ¸ÂÁö ¾Ê½À´Ï´Ù.";					
			break
		case "regPhone1":			showMsg     = "ÀüÈ­¹øÈ£°¡ À¯È¿ÇÏÁö ¾Ê½À´Ï´Ù.";					
			break
		case "regPhone2":			showMsg     = "ÀüÈ­¹øÈ£°¡ À¯È¿ÇÏÁö ¾Ê½À´Ï´Ù.";					
			break
		case "regPhone3":			showMsg     = "ÀüÈ­¹øÈ£°¡ À¯È¿ÇÏÁö ¾Ê½À´Ï´Ù.";					
			break
		case "regHdPhone1":			showMsg     = "ÈÞ´ëÆù¹øÈ£°¡ À¯È¿ÇÏÁö ¾Ê½À´Ï´Ù.";					
			break
		case "regHdPhone2":			showMsg     = "ÈÞ´ëÆù¹øÈ£°¡ À¯È¿ÇÏÁö ¾Ê½À´Ï´Ù.";					
			break
		case "regHdPhone3":			showMsg     = "ÈÞ´ëÆù¹øÈ£°¡ À¯È¿ÇÏÁö ¾Ê½À´Ï´Ù.";					
			break
	}
}


function EmailCheck (emailStr) {
	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	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("Email ÁÖ¼ÒÀÇ Çü½ÄÀÌ ¸íÈ®ÇÏÁö ¾Ê½À´Ï´Ù.");
		return false;
	}

	var user   = matchArray[1];
	var domain = matchArray[2];

	if (user.length < 2) {
		alert("ÀÌ¿ëÀÚ ID´Â ÃÖ¼Ò 2¹®ÀÚ ÀÌ»óÀÔ´Ï´Ù.");
		return false;
	}

	if (domain.length < 4) {
		alert("Domain ÀÌ¸§Àº ÃÖ¼Ò 4¹®ÀÚ ÀÌ»óÀÔ´Ï´Ù.");
		return false;
	}

	for (i=0; i<user.length; i++) {

		if (user.charCodeAt(i) > 127) {
			alert("ÀÌ¿ëÀÚ ID¿¡ À¯È¿ÇÏÁö ¾ÊÀº ¹®ÀÚ°¡ ÀÖ½À´Ï´Ù.");
			return false;
	   }
	}

	for (i=0; i<domain.length; i++) {
		if (domain.charCodeAt(i) > 127) {
			alert("Domain ÀÌ¸§¿¡ À¯È¿ÇÏÁö ¾ÊÀº ¹®ÀÚ°¡ ÀÖ½À´Ï´Ù.");
			return false;
	   }
	}

	if (user.match(userPat) == null) {
		alert("Email ÁÖ¼ÒÀÇ Çü½ÄÀÌ ¸íÈ®ÇÏÁö ¾Ê½À´Ï´Ù.");
		return false;
	}

	var IPArray = domain.match(ipDomainPat);

	if (IPArray != null) {

		for (var i=1;i<=4;i++) {
			if (IPArray[i] > 255) {
				alert("DomainÀÇ IP°¡ ¸íÈ®ÇÏÁö ¾Ê½À´Ï´Ù.");
				return false;
	   		}
		}
		return true;
	}

	var atomPat = new RegExp("^" + atom + "$");
	var domArr  = domain.split(".");
	var len     = domArr.length;

	for (i=0;i<len;i++) {
		if (domArr[i].search(atomPat) == -1) {
			alert("Domain ÀÌ¸§ÀÌ Á¤È®ÇÏÁö ¾Ê½À´Ï´Ù.");
			return false;
	   }
	}

	if (domArr[domArr.length-1].length != 2 &&
		domArr[domArr.length-1].search(knownDomsPat) == -1) {
		alert("Email ÁÖ¼Ò´Â ¾Ë·ÁÁø Domain ÀÌ¸§ÀÌ³ª, 2¹®ÀÚ ÀÌ»óÀÇ ±¹°¡Domain(kr,jp,cn..) ÀÌ¸§À¸·Î ³¡³ª¾ß ÇÕ´Ï´Ù.");
		return false;
	}

	if (len < 2) {
		alert("Domain Çü½ÄÀÌ ¸íÈ®ÇÏÁö ¾Ê½À´Ï´Ù.");
		return false;
	}

	return true;
}
