﻿function CheckCodeMelli(source, args) {
    var result = true;
    var natCode = new String();
    natCode = args.Value;
    var _natCode = new Array();
    var _controlDigit;

    if ((natCode == "1111111111") || (natCode == "2222222222") || (natCode == "3333333333") || (natCode == "4444444444") || (natCode == "5555555555") &
        (natCode == "6666666666") || (natCode == "7777777777") || (natCode == "8888888888") || (natCode == "9999999999") || (natCode == "0000000000")) {
        result = false;
        args.IsValid = result;
        return;
    }

    for (var i = 0; i < natCode.length - 1; i++) {
        _natCode[i] = Number(natCode.substring(i, i + 1));
    }
    _controlDigit = Number(natCode.substring(9, 10));

    var sum = 0;
    sum += _natCode[0] * 10;
    sum += _natCode[1] * 9;
    sum += _natCode[2] * 8;
    sum += _natCode[3] * 7;
    sum += _natCode[4] * 6;
    sum += _natCode[5] * 5;
    sum += _natCode[6] * 4;
    sum += _natCode[7] * 3;
    sum += _natCode[8] * 2;

    var mod = 0;
    mod = sum % 11;
    if (mod < 2) {
        if (_controlDigit == mod) {
            result = true;
        }
        else {
            result = false;
        }
    }
    else {
        if (_controlDigit == (11 - mod)) {
            result = true;
        }
        else {
            result = false;
        }
    }

    args.IsValid = result;
}