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].hname) != 'undefined')
		{
			hname = elements[i].hname;
		}

		// ÅØ½ºÆ® ÇÊµå¿¡ ´ëÇÑ Ã³¸®
		if (elementtype == 'text' || elementtype == 'textarea' || elementtype == 'password')
		{
			//ÇÊ¼ö ÅØ½ºÆ® ÇÊµå¿¡ ´ëÇÑ Ã³¸®
			if (elements[i].required)
			{
				var objReg = new RegExp('^[ \t]*$');
				if (objReg.test(elements[i].value))
				{
					if (hname == null)
					{
						alert('ÇÊ¼ö ÀÔ·Â Ç×¸ñÀ» ÀÔ·ÂÇØ ÁÖ¼¼¿ä.');
					} else {
						alert(hname + particleCheck(elements[i].hname) + ' ÀÔ·ÂÇØ ÁÖ¼¼¿ä.');
					}
					elements[i].focus();
					return false;
				}
			} 

			// ¼ýÀÚ¸¸ ÀÔ·Â¹Þ´Â ÇÊµå¿¡ ´ëÇÑ Ã³¸®
			if (new String(elements[i].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].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].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].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].validation).toLowerCase() == 'email')
			{
				if (!emailCheck(elements[i].value))
				{
					alert('Àß¸øµÈ ÀÌ¸ÞÀÏ ÁÖ¼ÒÀÔ´Ï´Ù.');
					elements[i].focus();
					elements[i].select();
					return false;
				}
			}

			//ºñ¹Ð¹øÈ£¿¡ ´ëÇÑ Ã³¸®
			if (new String(elements[i].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].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 (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 (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;
					}
					
				}

				//ÃÖ¼Ò ±ÛÀÚ¼ö Á¦ÇÑ
				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;
					
				}
			}
		}

		// ¶óµð¿À ¹öÆ°¿¡ ´ëÇÑ Ã³¸®
		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;
				}
			}

		}

		// Select List ¿¡ ´ëÇÑ Ã³¸®
		else if (elementtype == 'select-one')
		{
			var selectlist = eval('document.forms[\'' + frmname + '\'].' + elements[i].name);
			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
}

function emailCheck(str) {
  // regular expression Áö¿ø ¿©ºÎ Á¡°Ë
	var supported = 0;
	if (window.RegExp) {
		var tempStr = "a";
		var tempReg = new RegExp(tempStr);
		if (tempReg.test(tempStr)) supported = 1;
	}
	if (!supported) 
		return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
		
	var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
	var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
	return (!r1.test(str) && r2.test(str));
}

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 isEmpty( data )
{
	   for ( var i = 0 ; i < data.length ; i++ )
	   {
	      if ( data.substring( i, i+1 ) != " " )
	         return false;
	   }
	   return true;
}
