/**************************************
°ÅÄ£¸¶·ç´ÔÀÌ ÀÛ¼ºÇÏ½Ã°í
ÇÏ±ÙÈ£,Æ®·Ð¢â, ÀÌµ¿Ã¶´ÔÀÇ ¼öÁ¤À» °ÅÄ£
Æû ÀÚµ¿ °Ë»ç ÇÁ·Î±×·¥À» ¼öÁ¤ÇÏ¿© »ç¿ëÇÑ °ÍÀÔ´Ï´Ù.
ÀÌ¸ÞÀÏ Ã¼Å©ºÎºÐ°ú ÁÖ¹Î¹øÈ£ Ã¼Å© µî ÇÊ¿äÇÑ °Ë»ç ·ÎÁ÷À»
Ãß°¡ÇÏ¿´½À´Ï´Ù.
¶óÀÌ¼¾½º, ¶Ç´Â ±× ¿ÜÀÇ ¹®Á¦·Î »ç¿ëÁ¦ÇÑÀ» ¿øÇÏ½Ã¸é
joynamu@empal.com À¸·Î ¿¬¶ô ¹Ù¶ø´Ï´Ù.
***************************************/

/***************************************
* ²À FORM¿¡ nameÀ» Á¤ÀÇÇØ ÁØ´Ù!!
* <FORM name="form1" onSubmit="return chkForm(this)">
* input tag¿¡ ´ëÇÑ ¼³¸í
* <input
*	type="text" 	//Ã¼Å©ÇÒ Çü½Ä
*	name="id" 		//³Ñ¾î°¥ÀÌ¸§
*	hname="¾ÆÀÌµð" 	//°æ°íÃ¢¿¡ ³ªÅ¸³¾ ¹®ÀÚ¿­
*	option="regId" 	//¾î¶² Á¤±Ô½ÄÀ¸·Î Ã³¸®ÇÒÁö ¼±¾ð
*	required 		//²À Ã¼Å©¸¦ ¿øÇÏ´Â Ç×¸ñ¿¡ ¼³Á¤
* >
* ±×¿Ü ÇÊ¿äÇÑ attribute ¸¦ ¸¸µé¾î¼­ ¾´´Ù.
***************************************/

var cntSubmit = 0;

function ValidateForm(f,url)
{
	var i,currEl,currEl_pre;
	var forloof;
	var mailtoCnt = 0;
	var maxMailto = 20;		// ÇÑ¹ø¿¡ º¸³¾ ¼ö ÀÖ´Â ¸ÞÀÏ ÁÖ¼ÒÀÇ °³¼ö
	
	if(typeof(f) != "object")
	{
		alert('ÁË¼ÛÇÕ´Ï´Ù. °Ë»çÇÒ Æû °´Ã¼°¡ ¹ß°ßµÇÁö ¾Ê¾Ò½À´Ï´Ù. ÀÛ¾÷À» ÁøÇàÇÒ ¼ö ¾ø½À´Ï´Ù.');	
	}
	
	for(forloof = 0; forloof < f.elements.length; forloof++)
	{
		currEl = f.elements[forloof];

		if(i != 0)
		{
			if(forloof - 1 > 0)
				currEl_pre = f.elements[forloof-1];
		}

		//ÇÊ¼ö Ç×¸ñÀ» Ã¼Å©ÇÑ´Ù.
		if (currEl.getAttribute("required") != null)
		{
			if(currEl.type == "TEXT" || currEl.type == "text" ||
			   currEl.tagName == "SELECT" || currEl.tagName == "select" ||
			   currEl.tagName == "TEXTAREA" || currEl.tagName == "textarea")
			{
				if(!chkText(currEl)) return false;
			}
			else if(currEl.type == "PASSWORD" || currEl.type == "password")
			{
				if(!chkText(currEl)) return false;
			}
			else if(currEl.type == "CHECKBOX" || currEl.type == "checkbox")
			{
				if(!chkCheckbox(f, currEl,currEl.hname)) return false;
			}
			else if(currEl.type == "RADIO" || currEl.type == "radio")
			{
				if(!chkRadio(f, currEl,currEl.hname)) return false;
			}
			else if(currEl.type == "FILE" || currEl.type == "file")
			{
				if(!chkFile(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("checkmailcount") != null && currEl.value.length > 0)
		{
			mailtoCnt += CalCntMailTo(currEl);
		}

		if(mailtoCnt > maxMailto)
		{
			alert('¸ÞÀÏ ¹Þ´Â »ç¶÷ÀÇ ¼ö´Â ' + maxMailto + '¸íÀ¸·Î Á¦ÇÑÇÕ´Ï´Ù.');
			mailtoCnt = 0;
			return false;
		}

		if(currEl.getAttribute("passcheck") != null && currEl.value.length > 0)
		{
			if(currEl_pre.value != currEl.value)
			{
				alert('ºñ¹Ð¹øÈ£°¡ ÀÏÄ¡ÇÏÁö ¾Ê½À´Ï´Ù');
				currEl.focus();
				return false;
			}
		}
		
		//settlementcheck (use : http://mail.blueweb.co.kr/x_addservice_app3_bank.htm)
		if(currEl.getAttribute("settlementcheck") != null && currEl.value.length > 0)
		{
			if(UCheckSettlement(f) == false) return false;
		}
		
		if(currEl.getAttribute("emailcheck") != null && currEl.value.length > 0)
		{
			if(currEl.name != "to" && currEl.name != "cc" && currEl.name != "bcc") {}
			else
			{
				var i;
				var tmp;
				var cnt_arr;
				var arr = new Array();
				var regMail	  =/\<[_a-zA-Z0-9-.]+@[._a-zA-Z0-9-]+\.[a-zA-Z]{2,6}\>$/;
				//var groupMail =/\<#[a-z]+\:[0-9]{18}\>$/;
				var groupMail = /[0-9]{18}$/;
				
				tmp = ChangeChar(currEl.value);

				if(tmp.lastIndexOf(',') == -1)
				{
					if(!groupMail.test(tmp))
					{
						if(tmp.lastIndexOf('<') == -1)
							tmp = '<'+ tmp;
						if(tmp.lastIndexOf('>') == -1)
							tmp = tmp + '>';

						currEl.value = tmp;

						if(!regMail.test(tmp))
						{
							alert(currEl.hname + "\n\nÇ×¸ñÀÇ Çü½ÄÀÌ ¿Ã¹Ù¸£Áö ¾Ê½À´Ï´Ù.");
							currEl.focus();
							return false;
						}
					}
				}
				else
				{
					currEl.value = "";
					arr = tmp.split(',');

					cnt_arr = arr.length;

					for(i=0; i < cnt_arr; i++)
					{
						if(arr[i] == " " || arr[i] == "")
							continue;
						
						if(groupMail.test(arr[i]))
						{
							currEl.value += arr[i];
							if(i != (arr.length - 1)) currEl.value += ",";
							continue;
						}
						
						if(arr[i].lastIndexOf('<') == -1)
							arr[i] = '<'+arr[i];
						if(arr[i].lastIndexOf('>') == -1)
							arr[i] = arr[i] + '>';

						currEl.value += arr[i];

						if(i != (arr.length - 1))
							currEl.value += ",";

						if(!regMail.test(arr[i]))
						{
							alert(currEl.hname + "\n\nÇ×¸ñÀÇ Çü½ÄÀÌ ¿Ã¹Ù¸£Áö ¾Ê½À´Ï´Ù.");
							currEl.value = tmp;
							currEl.focus();
							return false;
						}
					}					
				}
			}
		}

		if(currEl.getAttribute("domaincheck") != null && currEl.value.length > 0)
		{
			var regDomain =/^[a-zA-Z0-9][.a-zA-Z0-9-]+.[a-zA-Z]+$/;

			if(!regDomain.test(currEl.value))
			{
				alert(currEl.hname + "\n\n ÇÑ±Û µµ¸ÞÀÎÀº ¹«·áÀ¥¸ÞÀÏ ½ÅÃ»ÀÌ ºÒ°¡´ÉÇÕ´Ï´Ù.");
				currEl.focus();
				return false;
			}
		}

		if(currEl.getAttribute("jumincheck") != null && currEl.value.length > 0)
		{
			var jumin;
			jumin = currEl_pre.value + currEl.value;

			if(check_juminno(jumin) == false)
			{
				currEl_pre.focus();
				return false;
			}
		}
	}

	f.action = url;

	if(cntSubmit == 0)
	{
		f.submit();
		return false;
		cntSubmit = 1;
	}
}

function SimpleValidateForm(f,rel)
{
	f.action = rel;

	f.submit();
}

function ModeSimpleValidateForm(f,rel,mode_type)
{
	f.action = rel;
	f.mode.value = mode_type;

	f.submit();
}

function ModeValidateForm(f,rel,mode_type)
{
	f.action = rel;
	f.mode.value = mode_type;

	ValidateForm(f,rel);
	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			=/^[\(\)°¡-ÆRa-zA-Z0-9.]*\<[_a-zA-Z0-9-.]+@[._a-zA-Z0-9-]+\.[a-zA-Z]{2,6}\>$/;
	var regMail			=/^[_a-zA-Z0-9-.]+@[._a-zA-Z0-9-]+\.[a-zA-Z]{2,6}$/;
	var regDomain 		=/^[.a-zA-Z0-9-]+.[a-zA-Z]+$/;
	var regDomainOnly	=/^[a-zA-Z0-9-]+$/;
	var regAlpha 		=/^[a-zA-Z]+$/;
	var regHost 		=/^[a-zA-Z-]+$/;
	var regHangul 		=/[°¡-ÆR]/;
	var regHangulEng	=/^[°¡-ÆRa-zA-Z]/;
	var regHangulEng2	=/^[°¡-ÆRa-zA-Z0-9]/;
	var regHangulEngNum =/^[°¡-ÆRa-zA-Z0-9][°¡-ÆRa-zA-Z0-9 ]+$/;
	var regTitle 		=/^[°¡-ÆRa-zA-Z0-9 ]+$/;
	var regHangulOnly 	=/^[°¡-ÆR]*$/;
	var regPass			=/^[a-zA-Z0-9]/;
	var regId 			=/^[a-zA-Z]{1}[.a-zA-Z0-9_-]{1,16}$/;				// id ¿¡ "." Çã¿ë 2003.07.14 16:44  // id 2ÀÚ °¡´É
	var regIdBWM		=/^[a-z0-9]{1}[.a-z0-9_-]{1,16}$/;			// 2005.04.08 ºí·çÀ¥ È¸¿ø ID¿¡ ¼ýÀÚ·Î ½ÃÀÛÀ» Çã¿ëÇÏ°í ÀÖÀ½.
	var regIdMail		=/^[a-z0-9]{1}[.a-zA-Z0-9_-]{1,16}$/;	// 2008.10.17 À¥¸ÞÀÏ Ã¹ ¾ÆÀÌµð ¼ýÀÚ Çã¿ë
	var regDate 		=/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/;
	//var regEmail		==/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/;

	//alert(patten);

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

	return true;
}

function chkText(field, name)
{
	var fieldValue = trim(field.value);
	
	if(fieldValue.length < 1)
	{
		viewMessage(field,"")
		return false;
	}
	return true;
}

function viewMessage(field,msg)
{
	if(msg == "")
		msg = '(¸¦)À» ÀÔ·ÂÇÏÁö ¾ÊÀ¸¼Ì½À´Ï´Ù.\n ¹Ýµå½Ã ÀÔ·ÂÇØÁÖ¼¼¿ä';
	alert(field.hname + msg);
	field.value = '';
	field.focus();
	return false;
}

/*
function chkFile(form, field, name)
{
	fieldname = eval(form.name+'.'+field.name);
	if (fieldname.error != 0){
		viewMessage(field,"");
		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 CalCntMailTo(field)
{

	var i,k,m;
	var str;
	var cnt;
	var stemp = "";
	var tmp = new Array();

	if(field.value == "")
	{
		return 0;
	}
	else
	{
		// ; ¸¦ , ·Î ¹Ù²Ù°í
		str = field.value + ',';
		str = ChangeChar(str);

		m = 0;
		for(i=0; i < str.length ; i++)
		{
			if(str.charAt(i) == ',')
			{
				if(stemp == '' || stemp == "[[:space:]]" || stemp == "") continue;

				tmp[m++] = stemp;
				stemp = "";
				continue;
			}
			else
			{
				if(str.charAt(i) != '' || str.charAt(i) != "")
				{
					//alert('°ª');
					stemp = stemp + str.charAt(i);
				}
			}
		}

		cnt = tmp.length;

		if(tmp[cnt-1] == "")
			cnt = cnt - 1;

		return cnt;
	}
}

function ChangeChar(str)
{
   	var r,re;                    //º¯¼ö¸¦ ¼±¾ðÇÕ´Ï´Ù.

	re = /;/g;
   	r = str.replace(re, ",");    //re ¸¦  ","·Î ¹Ù²ß´Ï´Ù.
   	return r;
}

// ÁÖ¹Î¹øÈ£Ã¼Å©
function check_juminno(juminno)
{

    var jumin1 = juminno.substr(0,6);
    var jumin2 = juminno.substr(6,7);
    var yy     = jumin1.substr(0,2);        // ³âµµ
    var mm     = jumin1.substr(2,2);        // ¿ù
    var dd     = jumin1.substr(4,2);        // ÀÏ
    var genda  = jumin2.substr(0,1);        // ¼ºº°
    var msg, ss, cc;

    // ¼ýÀÚ°¡ ¾Æ´Ñ °ÍÀ» ÀÔ·ÂÇÑ °æ¿ì
    if (!isNumeric(jumin1)) {
            alert("ÁÖ¹Îµî·Ï¹øÈ£ ¾ÕÀÚ¸®¸¦ ¼ýÀÚ·Î ÀÔ·ÂÇÏ¼¼¿ä.");
            return false;
    }
    // ±æÀÌ°¡ 6ÀÌ ¾Æ´Ñ °æ¿ì
    if (jumin1.length != 6) {
            alert("ÁÖ¹Îµî·Ï¹øÈ£ ¾ÕÀÚ¸®¸¦ ´Ù½Ã ÀÔ·ÂÇÏ¼¼¿ä.");
            return false;
    }
    // Ã¹¹øÂ° ÀÚ·á¿¡¼­ ¿¬¿ùÀÏ(YYMMDD) Çü½Ä Áß ±âº» ±¸¼º °Ë»ç
    if (yy < "00" || yy > "99" ||
            mm < "01" || mm > "12" ||
            dd < "01" || dd > "31") {
            alert("ÁÖ¹Îµî·Ï¹øÈ£ ¾ÕÀÚ¸®¸¦ ´Ù½Ã ÀÔ·ÂÇÏ¼¼¿ä.");
            return false;
    }
    // ¼ýÀÚ°¡ ¾Æ´Ñ °ÍÀ» ÀÔ·ÂÇÑ °æ¿ì
    if (!isNumeric(jumin2)) {
            alert("ÁÖ¹Îµî·Ï¹øÈ£ µÞÀÚ¸®¸¦ ¼ýÀÚ·Î ÀÔ·ÂÇÏ¼¼¿ä.");
            return false;
    }
    // ±æÀÌ°¡ 7ÀÌ ¾Æ´Ñ °æ¿ì
    if (jumin2.length != 7) {
            alert("ÁÖ¹Îµî·Ï¹øÈ£¸¦ ´Ù½Ã ÀÔ·ÂÇÏ¼¼¿ä.");
            return false;
    }
    // ¼ºº°ºÎºÐÀÌ 1 ~ 4 °¡ ¾Æ´Ñ °æ¿ì
    if (genda < "1" || genda > "4") {
            alert("ÁÖ¹Îµî·Ï¹øÈ£ µÞÀÚ¸®¸¦ ´Ù½Ã ÀÔ·ÂÇÏ¼¼¿ä.");
            return false;
    }
    // ¿¬µµ °è»ê - 1 ¶Ç´Â 2: 1900³â´ë, 3 ¶Ç´Â 4: 2000³â´ë
    cc = (genda == "1" || genda == "2") ? "19" : "20";
    // Ã¹¹øÂ° ÀÚ·á¿¡¼­ ¿¬¿ùÀÏ(YYMMDD) Çü½Ä Áß ³¯Â¥ Çü½Ä °Ë»ç
    if (isYYYYMMDD(parseInt(cc+yy), parseInt(mm), parseInt(dd)) == false) {
            alert("ÁÖ¹Îµî·Ï¹øÈ£ ¾ÕÀÚ¸®¸¦ ´Ù½Ã ÀÔ·ÂÇÏ¼¼¿ä.");
            return false;
    }
    // Check Digit °Ë»ç
    if (!isSSN(jumin1, jumin2)) {
            alert("ÀÔ·ÂÇÑ ÁÖ¹Îµî·Ï¹øÈ£¸¦ °ËÅäÇÑ ÈÄ, ´Ù½Ã ÀÔ·ÂÇÏ¼¼¿ä.");
            return false;
    }
    return true;
}

// »ç¾÷ÀÚµî·Ï¹øÈ£ Ã¼Å©
function check_busino(vencod) {
        var sum = 0;
        var getlist =new Array(10);
        var chkvalue =new Array("1","3","7","1","3","7","1","3","5");
        for(var i=0; i<10; i++) { getlist[i] = vencod.substring(i, i+1); }
        for(var i=0; i<9; i++) { sum += getlist[i]*chkvalue[i]; }
        sum = sum + parseInt((getlist[8]*5)/10);
        sidliy = sum % 10;
        sidchk = 0;
        if(sidliy != 0) { sidchk = 10 - sidliy; }
        else { sidchk = 0; }
        if(sidchk != getlist[9]) { return false; }
        return true;
}

function isYYYYMMDD(y, m, d) {
        switch (m) {
        case 2:        // 2¿ùÀÇ °æ¿ì
                if (d > 29) return false;
                if (d == 29) {
                        // 2¿ù 29ÀÇ °æ¿ì ´çÇØ°¡ À±³âÀÎÁö¸¦ È®ÀÎ
                        if ((y % 4 != 0) || (y % 100 == 0) && (y % 400 != 0))
                                return false;
                }
                break;
        case 4:        // ÀÛÀº ´ÞÀÇ °æ¿ì
        case 6:
        case 9:
        case 11:
                if (d == 31) return false;
        }
        // Å« ´ÞÀÇ °æ¿ì
        return true;
}
function isNumeric(s) {
        for (i=0; i<s.length; i++) {
                c = s.substr(i, 1);
                if (c < "0" || c > "9") return false;
        }
        return true;
}
function isLeapYear(y) {
        if (y < 100)
        y = y + 1900;
        if ( (y % 4 == 0) && (y % 100 != 0) || (y % 400 == 0) ) {
                return true;
        } else {
                return false;
        }
}
function getNumberOfDate(yy, mm) {
        month = new Array(29,31,28,31,30,31,30,31,31,30,31,30,31);
        if (mm == 2 && isLeapYear(yy)) mm = 0;
        return month[mm];
}
function isSSN(s1, s2) {
        n = 2;
        sum = 0;
        for (i=0; i<s1.length; i++)
                sum += parseInt(s1.substr(i, 1)) * n++;
        for (i=0; i<s2.length-1; i++) {
                sum += parseInt(s2.substr(i, 1)) * n++;
                if (n == 10) n = 2;
        }
        c = 11 - sum % 11;
        if (c == 11) c = 1;
        if (c == 10) c = 0;
        if (c != parseInt(s2.substr(6, 1))) return false;
        else return true;
}

function trim (strSource)
{
	re = /^\s+|\s+$/g;
	return strSource.replace(re, '');
}

function ltrim (strSource)
{
	re = /^\s+/g;
	return strSource.replace(re, '');
}

function rtrim (strSource)
{
	re = /\s+$/g;
	return strSource.replace(re, '');
}