/**

Form Validator
(URL:http://www.tek-tips.com/gfaqs.cfm/lev2/4/lev3/32/pid/216/fid/1165 ÂüÁ¶)

1. ¹Ýµå½Ã ÆûÀº ´ÙÀ½ÀÇ ÇüÅÂ¸¦ °¡Á®¾ß ÇÑ´Ù.

<FORM name="foo" id="foo" onSubmit="return validate(foo)">
foo¿Í °°ÀÌ µ¿ÀÏÇÑ ÀÌ¸§À¸·Î Ç¥±âÇÑ´Ù.

2. °¢ ÀÏ·¯¸ÕÆ®´Â ´ÙÀ½ÀÇ ÇüÅÂ¸¦ °¡Á®¾ß ÇÑ´Ù.

<input type="xxx" inputname="foo2" VALIDATOR="[zipPat|emailPat|notEmptyPat|numberPat|pwPat|currentPat|timePat]">
Pat(ÆÐÅÏ)Àº ÇâÈÄ ´õ Ãß°¡µÉ ¼ö ÀÖ´Ù. foo2´Â ÀÏ·¯¸ÕÆ®ÀÇ ÁöÁ¤ÀÌ¸§ÀÌ´Ù.

*/

var PatternsDict = new Object();

PatternsDict.zipPat = /\d{3}(-\d{3})?/;  // ¿ìÆí¹øÈ£ Ã¼Å©
PatternsDict.emailPat = /.*@.*\..*/;  // ÀÌ¸ÞÀÏÁÖ¼Ò Ã¼Å©
PatternsDict.notEmptyPat = /.{1,}/;  // ¹Ýµå½Ã ¹º°¡ ÀÔ·ÂµÇ¾î¾ß ÇÕ´Ï´Ù.
PatternsDict.numberPat = /\d/;  // ¼ýÀÚ¸¸ °¡´ÉÇÕ´Ï´Ù.
PatternsDict.idPat = /^[a-z][a-z0-9]{2,14}$/;  // 3¿¡¼­ 15°³ÀÇ ¾ËÆÄºª, ¼ýÀÚ
PatternsDict.pwPat = /^[a-zA-Z0-9]{4,10}$/;  // 4¿¡¼­ 10°³ÀÇ ¾ËÆÄºª, ¼ýÀÚ
PatternsDict.currencyPat = /\$\d{1,3}(,\d{3})*\.\d{2}/;  // ÅëÈ­(µ·)ÄÞ¸¶
PatternsDict.datePat = /^\d{4}-\d{2}-\d{2}$/;  // ½Ã°£Ã¼Å©
PatternsDict.timePat = /^([1-9]|1[0-2]):[0-5]\d$/;  // ½Ã°£Ã¼Å©
PatternsDict.phonePat = /^[-0-9~]{8,}$/;    // ÀüÈ­¹øÈ£
PatternsDict.imagePat = /\.(gif|jpg|png)$/i;  // ÀÌ¹ÌÁö ÆÄÀÏ
PatternsDict.videoPat = /\\[ -_\.\'\"()\[\]#a-z0-9]*\.(wmv|avi|asf|mpg)$/i;  // µ¿¿µ»ó ÆÄÀÏ

function getValidateMessage(str)
{
    return str + " Ç×¸ñÀ» È®ÀÎÇØ ÁÖ½Ê½Ã¿À.";
}

function validateObj(obj)
{
    var readName, len1, len2;

    if (obj.disabled)
        return true;

    if (obj.inputname)
        readName = obj.inputname.replace(/_/g, " ");

    if (obj.VALIDATOR)
    {
        var v = obj.VALIDATOR;
        var gotIt = false;
        if (v == 'radio')
            gotIt = (getRadioButtonValue(obj.form.elements[obj.name]) != null);
        else if (v == 'func')
            gotIt = eval(obj.func.replace(/this/g,'obj'));
        else
            gotIt = PatternsDict[v].exec(obj.value);

        if (!gotIt)
        {
            var returnStr = obj.message;
            if (!returnStr)
                returnStr = getValidateMessage(readName);
            else
                returnStr = returnStr.replace(/\\n/g, "\n");

            alert(returnStr);
            if (obj.type != 'hidden')
                obj.focus();
            return false;
        }
    }

    if (obj.minlength)
    {
        len1 = parseInt(obj.minlength);
        len2 = lengthb(obj.value)
        if (len2 < len1)
        {
            alert(readName + ' Ç×¸ñÀº ' + len1 + ' ±ÛÀÚ ÀÌ»óÀ¸·Î ÇØÁÖ¼¼¿ä. (' + len2 + ')');
            obj.focus();
            return false;
        }
    }

    if (obj.maxLength)
        len1 = obj.maxLength;
    else if (obj.maxlength)
        len1 = parseInt(obj.maxlength);
    else
        len1 = null;

    if (len1)
    {
        len2 = lengthb(obj.value)
        if (len2 > len1)
        {
            alert(readName + ' Ç×¸ñÀº ' + len1 + ' ±ÛÀÚ ÀÌÇÏ·Î ÇØÁÖ¼¼¿ä. (' + len2 + ')');
            obj.focus();
            return false;
        }
    }

    return true;
}

function validateForm(objForm)
{
    for (var i = 0; i < objForm.elements.length; i++)
    {
        if (!validateObj(objForm.elements[i]))
            return false;
    }
    return true;
}

function submitValidateForm(objForm, actionUrl)
{
  if (validateForm(objForm))
  {
    if (actionUrl)
      objForm.action = actionUrl;
    objForm.submit();
  }
}


//ÁÖ¹Î¹øÈ£ÀÎÁõ *********************
function isValidJuminNumber(jumin1,jumin2)
{
    if (jumin1.length != 6 && jumin2.length != 7)
        return false;

    var sum = 0;
    sum += jumin1.charAt(0)*2;
    sum += jumin1.charAt(1)*3;
    sum += jumin1.charAt(2)*4;
    sum += jumin1.charAt(3)*5;
    sum += jumin1.charAt(4)*6;
    sum += jumin1.charAt(5)*7;
    sum += jumin2.charAt(0)*8;
    sum += jumin2.charAt(1)*9;
    sum += jumin2.charAt(2)*2;
    sum += jumin2.charAt(3)*3;
    sum += jumin2.charAt(4)*4;
    sum += jumin2.charAt(5)*5;

    if (jumin2.charAt(0) == '1' || jumin2.charAt(0)  == '2' || jumin2.charAt(0) == '3' || jumin2.charAt(0) == '4')
        check = (11 - sum % 11) % 10; // ÁÖ¹Îµî·Ï¹øÈ£
    else
        check = ((11 - sum % 11) % 10 + 2) % 10; // ¿Ü±¹ÀÎµî·Ï¹øÈ£

    return (jumin2.charAt(6) == check);
}

