| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 | /*Input Mask plugin extensionshttp://github.com/RobinHerbots/jquery.inputmaskCopyright (c) 2010 - 2014 Robin HerbotsLicensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)Version: 0.0.0Optional extensions on the jquery.inputmask base*/(function ($) {    //extra definitions    $.extend($.inputmask.defaults.definitions, {        'A': {            validator: "[A-Za-z]",            cardinality: 1,            casing: "upper" //auto uppercasing        },        '#': {            validator: "[A-Za-z\u0410-\u044F\u0401\u04510-9]",            cardinality: 1,            casing: "upper"        }    });    $.extend($.inputmask.defaults.aliases, {        'url': {            mask: "ir",            placeholder: "",            separator: "",            defaultPrefix: "http://",            regex: {                urlpre1: new RegExp("[fh]"),                urlpre2: new RegExp("(ft|ht)"),                urlpre3: new RegExp("(ftp|htt)"),                urlpre4: new RegExp("(ftp:|http|ftps)"),                urlpre5: new RegExp("(ftp:/|ftps:|http:|https)"),                urlpre6: new RegExp("(ftp://|ftps:/|http:/|https:)"),                urlpre7: new RegExp("(ftp://|ftps://|http://|https:/)"),                urlpre8: new RegExp("(ftp://|ftps://|http://|https://)")            },            definitions: {                'i': {                    validator: function (chrs, buffer, pos, strict, opts) {                        return true;                    },                    cardinality: 8,                    prevalidator: (function () {                        var result = [], prefixLimit = 8;                        for (var i = 0; i < prefixLimit; i++) {                            result[i] = (function () {                                var j = i;                                return {                                    validator: function (chrs, buffer, pos, strict, opts) {                                        if (opts.regex["urlpre" + (j + 1)]) {                                            var tmp = chrs, k;                                            if (((j + 1) - chrs.length) > 0) {                                                tmp = buffer.join('').substring(0, ((j + 1) - chrs.length)) + "" + tmp;                                            }                                            var isValid = opts.regex["urlpre" + (j + 1)].test(tmp);                                            if (!strict && !isValid) {                                                pos = pos - j;                                                for (k = 0; k < opts.defaultPrefix.length; k++) {                                                    buffer[pos] = opts.defaultPrefix[k]; pos++;                                                }                                                for (k = 0; k < tmp.length - 1; k++) {                                                    buffer[pos] = tmp[k]; pos++;                                                }                                                return { "pos": pos };                                            }                                            return isValid;                                        } else {                                            return false;                                        }                                    }, cardinality: j                                };                            })();                        }                        return result;                    })()                },                "r": {                    validator: ".",                    cardinality: 50                }            },            insertMode: false,            autoUnmask: false        },        "ip": { //ip-address mask            mask: ["[[x]y]z.[[x]y]z.[[x]y]z.x[yz]", "[[x]y]z.[[x]y]z.[[x]y]z.[[x]y][z]"],            definitions: {                'x': {                    validator: "[012]",                    cardinality: 1,                    definitionSymbol: "i"                },                'y': {                    validator: function (chrs, buffer, pos, strict, opts) {                        if (pos - 1 > -1 && buffer[pos - 1] != ".")                            chrs = buffer[pos - 1] + chrs;                        else chrs = "0" + chrs;                        return new RegExp("2[0-5]|[01][0-9]").test(chrs);                    },                    cardinality: 1,                    definitionSymbol: "i"                },                'z': {                    validator: function (chrs, buffer, pos, strict, opts) {                        if (pos - 1 > -1 && buffer[pos - 1] != ".") {                            chrs = buffer[pos - 1] + chrs;                            if (pos - 2 > -1 && buffer[pos - 2] != ".") {                                chrs = buffer[pos - 2] + chrs;                            } else chrs = "0" + chrs;                        } else chrs = "00" + chrs;                        return new RegExp("25[0-5]|2[0-4][0-9]|[01][0-9][0-9]").test(chrs);                    },                    cardinality: 1,                    definitionSymbol: "i"                }            }        }    });})(jQuery);
 |