//REQUIRED jquery.js and formatdate.js
/*

6 digit number - 7 digit number
 
example, 700419-1338814  (male who is born in 1970/04/19)
                540716-1067424   (male)
                630407-2052429  (female)              
 
first  6 numbers is birthday in format:  yymmdd
next 7 numbers      
  	 1st character :  1 = male, 2 = female
  	 6th character :  not allowed zero (1~9 only)
    	 7th digit        :  check digit
 
* check digit rule
 
example : 640713-1018433 

Multiply (2,3,4,5,6,7,8,9,2,3,4,5) each number as shown below EXCEPT last digit, which in example is 3

6 4 0 7 1 3 1 0 1 8 4 3 
x x x x x x x x x x x x 
2 3 4 5 6 7 8 9 2 3 4 5 
-----------------------
+ + + + + + + + + + + + 

and make the sum
 (6*2)+(4*3)+(0*4)+(7*5)+(1*6)+(3*7)+(1*8)+(0*9)+(1*2)
+(8*3)+(4*4)+(3*5) = 151 


After then, divide the sum by 11 so therefore 151/11 =13.7272…
 
The quotient is 13 with a remainder of 8.

The last step is: to subtract the remainder, in example case 8 from 11, which is 11 - 8 = 3
 
Last digit shall be 3.
*/
	//these must be set in page where control for validation is places. 
	//if idCardNumberPrefix - value in idCardNumber is checked only
    var idCardNumberPrefix = ""; //tbIDCardNumberPrefix.ClientID -> ID of prefix texbox where yymmdd is stored
    var idCardNumber = ""; //tbIDCardNumber.ClientID - ID of textbox for 2nd part from Korean Number
    var idDateFiled = ""; //datetimeBithday.DateTextBox.ClientID - ID of textbox with date
    var idSexFiled = ""; //chkSex.ClientID
    var dtFormatString = ""; // System.Globalization.DateTimeFormatInfo) System.Threading.Thread.CurrentThread.CurrentCulture.GetFormat (typeof(System.Globalization.DateTimeFormatInfo))).ShortDatePattern
    var idKoreanNumberValidator = "";
    function KoreanSocialNumberValidateInPage() {
        $("#imgCardIDExistsKR").hide();
        if ($("#" + idCardNumber).attr("id") != idCardNumber) return;
        if  ((idKoreanNumberValidator != "") && ($("#"+idKoreanNumberValidator).length>0))
            ValidatorValidate(document.getElementById(idKoreanNumberValidator))
        else
            $("#" + idCardNumber).trigger("change");
    }

    function populateIDCardNumber() {
        if ($("#" + idCardNumber).attr("id") != idCardNumber) return;
        if ($("#" + idDateFiled).attr("disabled")) return;
        var sd = $("#" + idDateFiled).val();
        if ((sd == "") || (sd == dtFormatString)) {
            $("#" + idCardNumberPrefix).val("");
            return;
        }
        //fix with BG format dd.mm.gggg 'g.'
        if (dtFormatString.indexOf("'") > 0) {
            dtFormatString = dtFormatString.substring(0, dtFormatString.indexOf("'"));
        }
        dtFormatString = dtFormatString.replace(/\s/g, "");
        var d = new Date(getDateFromFormat(sd, dtFormatString));
        var soc_number = "";
        if  (isDate(sd,dtFormatString) && (!isNaN(d))) {
            var soc_numberY = d.getFullYear().toString();
            soc_numberY = soc_numberY.substr(soc_numberY.length - 2, 2);
            var soc_numberM = (d.getMonth() + 1);
            soc_numberM = ((soc_numberM < 10) ? "0" : "") + soc_numberM;
            var soc_numberD = (d.getDate());
            soc_numberD = ((soc_numberD < 10) ? "0" : "") + soc_numberD;
            soc_number = soc_numberY + soc_numberM + soc_numberD
        }
        $("#" + idCardNumberPrefix).val(soc_number);
        KoreanSocialNumberValidateInPage();
    }

    $(document).ready(function() {
        if (idCardNumber != "") {
            if ($("#" + idCardNumber).attr("id") == idCardNumber) {
                $("#" + idDateFiled).change(populateIDCardNumber);
                $("#" + idCardNumberPrefix).attr("readonly", true)
                $(".rbStyled,[value='rbMale'],[value='rbFemale']").click(function() {
                    KoreanSocialNumberValidateInPage();
                });
                if (idDateFiled != "") $("#" + idDateFiled).change(populateIDCardNumber);
                if (idSexFiled != "") {
                    $("#" + idSexFiled + "_0").click(populateIDCardNumber);
                    $("#" + idSexFiled + "_1").click(populateIDCardNumber);
                }
                populateIDCardNumber();
            }
        }
    });


    function IDCardNum(evt) {
        var e = evt;
        if (window.event) { // IE
            var charCode = e.keyCode;
        } else if (e.which) { // Safari 4, Firefox 3.0.4
            var charCode = e.which
        }
        if (charCode > 31 && (charCode < 48 || charCode > 57))
            return false;
        return true;
    }



