/*
	Made by Cecil (cecil@hanafos.com)

	Date : 2003-07-22

	Version : 1.5
*/

window.onerror = null;

function cancelfrm(frmname) {
	var frmobj = eval('document.forms[\'' + frmname + '\']');
	frmobj.reset();
	return false;
}

function initializefrm(frmname) {
	var frmobj = eval('document.forms[\'' + frmname + '\']');
	var elements = frmobj.elements;
	
	for (var i=0; i < elements.length; i++) {
		if (elements[i].type != 'hidden') {
			elements[i].focus();
			break;
		}
	}
	return true;
}

function submitfrm(frmname) {
	var frmobj = eval('document.forms[\'' + frmname + '\']');
	var elements = frmobj.elements;
	/*
	if (typeof(customPreValidator) != 'undefined')
	{
		if (!customPreValidator(frmname))
		{
			return false;
		}
	}
	*/

	for (var i = 0;i < elements.length ; i ++ )
	{
		var elementtype = new String(elements[i].type).toLowerCase();
		var hname = null;

		if (typeof(elements[i].getAttribute("exceptiondesc")) != 'undefined'){
			hname = elements[i].getAttribute("exceptiondesc");
		}

		//alert(elementtype);
		//return false;

		// ÅØ½ºÆ® ÇÊµå¿¡ ´ëÇÑ Ã³¸®
		if (elementtype == 'text' || elementtype == 'textarea' || elementtype == 'password' || elementtype == 'file')
		{
		    if (elements[i].getAttribute("required") == null || elements[i].getAttribute("required").toLowerCase() == 'undefined' )
		    {
			    return true;
		    }
									
			//ÇÊ¼ö ÅØ½ºÆ® ÇÊµå¿¡ ´ëÇÑ Ã³¸®
			if (elements[i].getAttribute("required").toLowerCase() == 'true')
			{
				var objReg = new RegExp('^[ \t]*$');
				if (objReg.test(elements[i].value))
				{
					if (hname == null)
					{
						alert('ÇÊ¼ö ÀÔ·Â Ç×¸ñÀ» ÀÔ·ÂÇØ ÁÖ¼¼¿ä.');
					} else {
						if(elementtype == 'file'){
							alert(hname + particleCheck(hname) + ' ¼±ÅÃÇØ ÁÖ¼¼¿ä.');
						}else{
							alert(hname + particleCheck(hname) + ' ÀÔ·ÂÇØ ÁÖ¼¼¿ä.');
						}
					}
					elements[i].focus();
					return false;
				}
			} 

			// ¼ýÀÚ¸¸ ÀÔ·Â¹Þ´Â ÇÊµå¿¡ ´ëÇÑ Ã³¸®
			if (new String(elements[i].getAttribute("validation")).toLowerCase() == 'numeric')
			{
				if (!numericCheck(elements[i].value))
				{
					if (hname == null)
					{
						alert('ÀÌ Ç×¸ñ¿¡´Â ¼ýÀÚ¸¸ ÀÔ·ÂÇØ ÁÖ¼¼¿ä.');
					} 
					else 
					{
						alert(hname + '¿¡´Â ¼ýÀÚ¸¸ ÀÔ·ÂÇØ ÁÖ¼¼¿ä.');
					}
					elements[i].focus();
					elements[i].select();
					return false;
				}
			}

			// ¿µ¹®ÀÚ¿Í ¼ýÀÚ¸¸ ÀÔ·Â¹Þ´Â ÇÊµå¿¡ ´ëÇÑ Ã³¸®
			if (new String(elements[i].getAttribute("validation")).toLowerCase() == 'alphanumeric')
			{
				if (!alphanumericCheck(elements[i].value))
				{
					if (hname == null)
					{
						alert('ÀÌ Ç×¸ñ¿¡´Â ¿µ¹®ÀÚ¿Í ¼ýÀÚ¸¸ ÀÔ·ÂÇØ ÁÖ¼¼¿ä.');
					} 
					else 
					{
						alert(hname + '¿¡´Â ¿µ¹®ÀÚ¿Í ¼ýÀÚ¸¸ ÀÔ·ÂÇØ ÁÖ¼¼¿ä.');
					}
					elements[i].focus();
					elements[i].select();
					return false;
				}
			}

			// ÇÑ±Û¸¸ ÀÔ·Â¹Þ´Â ÇÊµå¿¡ ´ëÇÑ Ã³¸®
			if (new String(elements[i].getAttribute("validation")).toLowerCase() == 'korean')
			{
				if (!koreanCheck(elements[i].value))
				{
					if (hname == null)
					{
						alert('ÀÌ Ç×¸ñ¿¡´Â ÇÑ±Û¸¸ ÀÔ·ÂÇØ ÁÖ¼¼¿ä.');
					} 
					else 
					{
						alert(hname + '¿¡´Â ÇÑ±Û¸¸ ÀÔ·ÂÇØ ÁÖ¼¼¿ä.');
					}
					elements[i].focus();
					elements[i].select();
					return false;
				}
			}

			// ÁÖ¹Îµî·Ï¹øÈ£¿¡ ´ëÇÑ Ã³¸®
			if (new String(elements[i].getAttribute("validation")).toLowerCase() == 'ssn')
			{
				if (typeof(elements[i].next) != 'undefined')
				{
					var nextobj = eval('document.forms[\'' + frmname + '\'].' + elements[i].next);

					if (typeof(nextobj) != 'undefined')
					{

						var objReg = new RegExp('^[ \t]*$');

						if (objReg.test(elements[i].value))
						{
							alert('ÁÖ¹Îµî·Ï¹øÈ£¸¦ ÀÔ·ÂÇØ ÁÖ¼¼¿ä.');
							elements[i].focus();
							return false;

						}

						if (objReg.test(nextobj.value))
						{
							alert('ÁÖ¹Îµî·Ï¹øÈ£¸¦ ÀÔ·ÂÇØ ÁÖ¼¼¿ä.');
							nextobj.focus();
							return false;

						}

						if (!numericCheck(elements[i].value))
						{
							alert('ÁÖ¹Îµî·Ï¹øÈ£¿¡´Â ¼ýÀÚ¸¸ ÀÔ·ÂÇØ ÁÖ¼¼¿ä');
							elements[i].focus();
							elements[i].select();
							return false;
						}

						if (!numericCheck(nextobj.value))
						{
							alert('ÁÖ¹Îµî·Ï¹øÈ£¿¡´Â ¼ýÀÚ¸¸ ÀÔ·ÂÇØ ÁÖ¼¼¿ä');
							nextobj.focus();
							nextobj.select();
							return false;
						}

						if (getLength(elements[i].value) != 6)
						{
							alert('ÁÖ¹Îµî·Ï¹øÈ£ ¾ÕÀÚ¸®´Â 6ÀÚ¸®ÀÔ´Ï´Ù.');
							elements[i].focus();
							elements[i].select();
							return false;
						}

						if (getLength(nextobj.value) != 7)
						{
							alert('ÁÖ¹Îµî·Ï¹øÈ£ µÞÀÚ¸®´Â 7ÀÚ¸®ÀÔ´Ï´Ù.');
							nextobj.focus();
							nextobj.select();
							return false;
						}

						if (!checkSocialNumber(new String(elements[i].value) + new String(nextobj.value)))
						{
							alert('Àß¸øµÈ ÁÖ¹Îµî·Ï¹øÈ£ÀÔ´Ï´Ù.');
							elements[i].focus();
							elements[i].select();
							return false;
						}
					}
				}
			}
            
			//ÀÌ¸ÞÀÏ ÁÖ¼Ò¿¡ ´ëÇÑ Ã³¸®
			if (new String(elements[i].getAttribute("validation")).toLowerCase() == 'email')
			{
			    if (elements[i].value != '')
			    {
				    if (!elements[i].value.emailCheck())
				    {
					    alert('Àß¸øµÈ ÀÌ¸ÞÀÏ ÁÖ¼ÒÀÔ´Ï´Ù.');
					    elements[i].focus();
					    elements[i].select();
					    return false;
				    }
				}
			}

			//ºñ¹Ð¹øÈ£¿¡ ´ëÇÑ Ã³¸®
			if (new String(elements[i].getAttribute("validation")).toLowerCase() == 'password')
			{
				if (typeof(elements[i].next) != 'undefined')
				{
					var nextobj = eval('document.forms[\'' + frmname + '\'].' + elements[i].next);
					if (typeof(nextobj) != 'undefined')
					{
						if (elements[i].value != nextobj.value)
						{
							alert('ÀÔ·ÂÇÏ½Å ºñ¹Ð¹øÈ£°¡ ÀÏÄ¡ÇÏÁö ¾Ê½À´Ï´Ù.');
							elements[i].focus();
							elements[i].select();
							return false;
						}
					}
				}
			}

			//ºñ¹Ð¹øÈ£¿¡ ´ëÇÑ Ã³¸®(¿µ¹®ÀÚ, ¼ýÀÚ¸¸ Çã¿ëÇÒ °æ¿ì)
			if (new String(elements[i].getAttribute("validation")).toLowerCase() == 'alphanumericpassword')
			{
				if (typeof(elements[i].next) != 'undefined')
				{
					if (!alphanumericCheck(elements[i].value))
					{
						alert('ºñ¹Ð¹øÈ£¿¡´Â ¿µ¹®ÀÚ¿Í ¼ýÀÚ¸¸ ÀÔ·ÂÇØ ÁÖ¼¼¿ä.');
						elements[i].focus();
						elements[i].select();
						return false;
					}
					else {
						var nextobj = eval('document.forms[\'' + frmname + '\'].' + elements[i].next);
						if (typeof(nextobj) != 'undefined')
						{
							if (elements[i].value != nextobj.value)
							{
								alert('ÀÔ·ÂÇÏ½Å ºñ¹Ð¹øÈ£°¡ ÀÏÄ¡ÇÏÁö ¾Ê½À´Ï´Ù.');
								elements[i].focus();
								elements[i].select();
								return false;
							}
						}
					}
				}
			}

			//³¯Â¥¿¡ ´ëÇÑ Ã³¸®(¿µ¹®ÀÚ, ¼ýÀÚ¸¸ Çã¿ëÇÒ °æ¿ì)
			if (new String(elements[i].getAttribute("validation")).toLowerCase() == 'date')
			{
				if (typeof(elements[i].value) != 'undefined')
				{
					if (!checkday(elements[i]))
					{
					    if(elements[i].value == '') 
						    alert(hname+'À»(¸¦) ÀÔ·ÂÇØ ÁÖ¼¼¿ä.');
						    
						elements[i].focus();
						elements[i].select();
						return false;
					}
				}
			}
			
			// °íÁ¤ ±æÀÌ¿¡ ´ëÇÑ Ã³¸®
			if (typeof(elements[i].fixed) != 'undefined')
			{
				if (elements[i].value.length != parseInt(elements[i].fixed))
				{
					if (typeof(elements[i].hname) != 'undefined')
					{
						alert(elements[i].hname + particleCheck(elements[i].hname) + ' ' + elements[i].fixed + '±ÛÀÚ·Î ÀÔ·ÂÇØ ÁÖ¼¼¿ä.');
					} else {
						alert('ÀÌ Ç×¸ñÀ» ' + elements[i].fixed + '±ÛÀÚ·Î ÀÔ·ÂÇØ ÁÖ¼¼¿ä.');
					}

					elements[i].focus();
					elements[i].select();
					return false;
				}
			}

			// ±æÀÌ ¹üÀ§¿¡ ´ëÇÑ Ã³¸®
			if (!(typeof(elements[i].max) == 'undefined' && typeof(elements[i].min) == 'undefined'))
			{
				//ÃÖ¼Ò ±ÛÀÚ¼ö Á¦ÇÑ
				if (elements[i].min > elements[i].value.length && typeof(elements[i].max) == 'undefined')
				{
					if (typeof(elements[i].hname) != 'undefined')
					{
						alert(elements[i].hname + particleCheck(elements[i].hname) + ' ' + elements[i].min + '±ÛÀÚ ÀÌ»óÀ¸·Î ÀÔ·ÂÇØ ÁÖ¼¼¿ä.');
					} else {
						alert('ÀÌ Ç×¸ñÀ» ' + elements[i].min + '±ÛÀÚ ÀÌ»óÀ¸·Î ÀÔ·ÂÇØ ÁÖ¼¼¿ä.');
					}

					elements[i].focus();
					elements[i].select();
					return false;
				}

				//ÃÖ´ë ±ÛÀÚ¼ö Á¦ÇÑ
				if (typeof(elements[i].min) == 'undefined' && elements[i].max < elements[i].value.length)
				{
					if (typeof(elements[i].hname) != 'undefined')
					{
						alert(elements[i].hname + particleCheck(elements[i].hname) + ' ' + elements[i].max + '±ÛÀÚ ÀÌÇÏ·Î ÀÔ·ÂÇØ ÁÖ¼¼¿ä.');
					} else {
						alert('ÀÌ Ç×¸ñÀ» ' + elements[i].max + '±ÛÀÚ ÀÌÇÏ·Î ÀÔ·ÂÇØ ÁÖ¼¼¿ä.');
					}
					elements[i].focus();
					elements[i].select();
					return false;
					
				}

				//ÃÖ¼Ò, ÃÖ´ë ±ÛÀÚ¼ö Á¦ÇÑ
				if (typeof(elements[i].max) != 'undefined' && typeof(elements[i].min) != 'undefined')
				{
					if (elements[i].value.length < elements[i].min || elements[i].value.length > elements[i].max)
					{
						if (typeof(elements[i].hname) != 'undefined')
						{
							alert(elements[i].hname + particleCheck(elements[i].hname) + ' ' + elements[i].min + '±ÛÀÚ ÀÌ»ó, ' + elements[i].max + '±ÛÀÚ ÀÌÇÏ·Î ÀÔ·ÂÇØ ÁÖ¼¼¿ä.');
						} else {
							alert('ÀÌ Ç×¸ñÀ» ' + elements[i].min + '±ÛÀÚ ÀÌ»ó, ' + elements[i].max + '±ÛÀÚ ÀÌÇÏ·Î ÀÔ·ÂÇØ ÁÖ¼¼¿ä.');
						}
						elements[i].focus();
						elements[i].select();
						return false;
					}
					
				}
			}
		}
        /*
		// ¶óµð¿À ¹öÆ°¿¡ ´ëÇÑ Ã³¸®
		else if (elementtype == 'radio')
		{
			var radiobuttons = eval('document.forms[\'' + frmname + '\'].' + elements[i].name);
			var allchecked = false;

			if (radiobuttons[0].required)
			{
				for (var r = 0;r < radiobuttons.length ; r++ )
				{
					if (hname == null)
					{
						hname = radiobuttons[r].hname;
					}
					allchecked = allchecked || radiobuttons[r].checked;
				}

				if (!allchecked)
				{
					if (hname != null)
					{
						alert(hname + particleCheck(hname) + ' ¼±ÅÃÇØ ÁÖ¼¼¿ä.');
					}
					else 
					{
						alert('ÇÊ¼ö ¼±ÅÃ »çÇ×À» ¼±ÅÃÇØ ÁÖ¼¼¿ä.');
					}

					radiobuttons[0].focus();
					return false;
				}
			}
			

		}
		// checkbox¿¡ ´ëÇÑ Ã³¸®(Â÷ÈÄÃß°¡ ¿¹Á¤)

		// Select List ¿¡ ´ëÇÑ Ã³¸®
		//return;
		else if(elementtype == 'select-one'){
			var selectlist = eval('document.forms[\'' + frmname + '\'].' + elements[i].name);
			
			//alert(elements[i].getAttribute("required"));
			//return;
			//alert(selectlist);
			//alert(selectlist.required);
			//alert(selectlist.getAttribute("required"));
			//alert(elementtype);
			//alert(hname);
			//return;

			if (selectlist.required)
			{
				if (selectlist.options[selectlist.selectedIndex].value == '')
				{
					if (hname == null)
					{
						alert('ÇÊ¼ö ¼±ÅÃ »çÇ×À» ¼±ÅÃÇØ ÁÖ¼¼¿ä.');
					}
					else
					{
						alert(hname + particleCheck(hname) + ' ¼±ÅÃÇØ ÁÖ¼¼¿ä.');
					}
					selectlist.focus();
					return false;
				}
			}
		}*/
		
	}

	if (typeof(customValidator) != 'undefined')
	{
		if (customValidator(frmname))
		{
			return true;
		}
		else
		{
			return false;
		}
	} else {
		return true;
	}

}

function checkSocialNumber()
{
	var aM = new Array(12);
	var lTemp;
	var iCnt;
	
	// 0. ¿ùº° ³¯Â¥ ¼ö ÃÊ±âÈ­
	aM[0] = 31;
	aM[1] = 29;
	aM[2] = 31;
	aM[3] = 30;
	aM[4] = 31;
	aM[5] = 30;
	aM[6] = 31;
	aM[7] = 31;
	aM[8] = 30;
	aM[9] = 31;
	aM[10] = 30;
	aM[11] = 31;

	var sCode = checkSocialNumber.arguments[0];
	var sMonth = sCode.substr(2,2);
	var sDay = sCode.substr(4,2);
	var sSex = sCode.substr(6,1);
	var sTag = sCode.substr(12,1);

	// 1. ±æÀÌ °Ë»ç
	if (sCode.length != 13)			return false;
	// 2. ¿ù°Ë»ç
	if (sMonth <= 0 || sMonth > 12)		return false;
	// 3. ÀÏ°Ë»ç
	if (sDay <= 0 || aM[sMonth - 1] < sDay)	return false;
	// 4. ¼ºº°°Ë»ç
	if (sSex < 1 || sSex > 4)			return false;
	// 5. µðÁöÆ® °Ë»ç
	lTemp  = (sCode.substr(0, 1) * 2) + (sCode.substr(1, 1) * 3) + (sCode.substr( 2, 1) * 4) + (sCode.substr( 3, 1) * 5);
	lTemp += (sCode.substr(4, 1) * 6) + (sCode.substr(5, 1) * 7) + (sCode.substr( 6, 1) * 8) + (sCode.substr( 7, 1) * 9);
	lTemp += (sCode.substr(8, 1) * 2) + (sCode.substr(9, 1) * 3) + (sCode.substr(10, 1) * 4) + (sCode.substr(11, 1) * 5);
	
	lTemp = ((11 - (lTemp % 11)) % 10);
	if (lTemp != sTag)	return false;
	
	// ÁÖ¹Î¹øÈ£ °Ë»ç ¼º°ø
	return true;
}

function numericCheck(value)
{
	var objReg = new RegExp('[^0-9]');
	if (objReg.test(value))
	{
		return false;
	} else {
		return true;
	}
}

function alphanumericCheck(value)
{
	var objReg = new RegExp('[^0-9a-zA-Z]');

	if (objReg.test(value))
	{
		return false;
	} else {
		return true;
	}
}

function getLength(str)
{
	var strlength = str.length+(escape(str)+"%u").match(/%u/g).length-1;
	return strlength
}

String.prototype.emailCheck = function() {
   return (/\w+([-+.]\w+)*@\w+([-.]\w+)*\.[a-zA-Z]{2,4}$/).test(this.trim());
}

String.prototype.trim = function() {
	return this.replace(/(^\s*)|(\s*$)/g, "");
}

function koreanCheck(str)
{ 
    for (i=0; i<str.length; i++) 
    { 
        var myCode = str.charCodeAt(i); 
        if  (myCode <= 127) {
			return false;
        }
    } 
	return true;
}

function particleCheck(str)
{
	var chosung = new Array();
	var jungsung = new Array();
	var jongsung = new Array();

	if (str.length > 0)
	{
		var letter = str.charAt(str.length - 1);

		var tmpletter = '°¡';
		result = letter.charCodeAt(0) - tmpletter.charCodeAt(0);
		result = result - Math.floor(result / (21*28))*21*28;
		result = result - Math.floor(result / 28)*28;

		if (result != 0)
		{
			particle = 'À»';
		} else {
			particle = '¸¦';
		}

		return particle;

	}

	return;

}

//³¯Â¥ À¯È¿¼ºÃ¼Å©
function checkday(form_name) {
   var str;
   str= eval(form_name).value;
   if (str == "") {
        //alert("½ÃÀÛÀÏÀ» ÀÔ·ÂÇÏ¿© ÁÖ¼¼¿ä !");
		//eval("checkform."+form_name+".focus();")
		return false;
   }else{
		if(str.match(/[0-9/-]+/)!=str)
		{
			alert("³¯Â¥¿¡´Â ¼ýÀÚ¸¸ µË´Ï´Ù !");
			eval(form_name).value = "";
			return false;
		}else{
			var che_year;
		 	var che_month;
		 	var che_day;

          	if(str.length==10){
  		 		che_year  = str.substr(0,4)
  		 		che_month = str.substr(5,2)
  		 		che_day   = str.substr(8,2)
  		 		che_chk1  = str.substr(4,1)
  		 		che_chk2  = str.substr(7,1)

  		    if(che_chk1!="-" || che_chk2 !="-")
  		    {  
  		      alert ("À¯È¿ÇÑ ³¯Â¥°¡ ¾Æ´Õ´Ï´Ù.");
              //eval(form_name+".focus();")
              return false;
              }
  		 		//alert(che_year+"."+che_month+","+che_day);
            if (checkdate(che_year,che_month,che_day) == false) {
              alert ("À¯È¿ÇÑ ³¯Â¥°¡ ¾Æ´Õ´Ï´Ù.");
              //eval(form_name+".focus();")
              return false;
              }
      			} else{
  				alert("10ÀÚ¸®ÀÇ ³¯Â¥·Î ÀÔ·Â ÇÏ¼¼¿ä.");
  				//eval(form_name+".focus();")
  				return false;
  		    	}
        }
        
        return true;
	}
}

function checkdate(v_year,v_month,v_day )
{
	var err=0
	if ( v_year.length != 4) err=1
	if ( v_month.length != 1 &&  v_month.length !=  2 ) err=1
	if ( v_day.length != 1  &&  v_day.length !=  2) err=1

	r_year = eval(v_year) ;
	r_month = eval(v_month);
	r_day = eval(v_day)  ;

	if (r_month<1 || r_month>12) err = 1
	if (r_day<1 || r_day>31) err = 1
	if (r_year<0 ) err = 1

	if (r_month==4 || r_month==6 || r_month==9 || r_month==11)
	{
		if (r_day==31) err=1
	}

	// 2,À±³âÃ¼Å©
	if (r_month==2){
		var g=parseInt(r_year/4)

		if (isNaN(g))
		{
			err=1
		}
		if (r_day>29) err=1
		if (r_day==29 && ((r_year/4)!=parseInt(r_year/4))) err=1
	}

	if (err==1)
	{
		return false
	}
	else
	{
	    return true;
	}
}
