Robin Herbots 12 年 前
コミット
0642c72515

+ 1 - 1
build.properties

@@ -7,7 +7,7 @@ distdir = dist
 
 
 build.major = 2
 build.major = 2
 build.minor = 2
 build.minor = 2
-build.revision = 57
+build.revision = 58
 
 
 target = jquery.inputmask.bundle.js
 target = jquery.inputmask.bundle.js
 target.min = jquery.inputmask.bundle.min.js
 target.min = jquery.inputmask.bundle.min.js

+ 1 - 1
component.json

@@ -1,6 +1,6 @@
 {
 {
     "name": "jquery.inputmask",
     "name": "jquery.inputmask",
-    "version": "2.2.57",
+    "version": "2.2.58",
     "main": "./dist/jquery.inputmask.bundle.js",
     "main": "./dist/jquery.inputmask.bundle.js",
     "dependencies": {
     "dependencies": {
         "jquery": ">=1.5"
         "jquery": ">=1.5"

BIN
dist/jQuery.InputMask.2.2.57.nupkg


BIN
dist/jQuery.InputMask.2.2.58.nupkg


+ 111 - 111
dist/jquery.inputmask.bundle.js

@@ -3,7 +3,7 @@
 * http://github.com/RobinHerbots/jquery.inputmask
 * http://github.com/RobinHerbots/jquery.inputmask
 * Copyright (c) 2010 - 2013 Robin Herbots
 * Copyright (c) 2010 - 2013 Robin Herbots
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-* Version: 2.2.57
+* Version: 2.2.58
 */
 */
 
 
 (function ($) {
 (function ($) {
@@ -642,8 +642,8 @@
                     var ml = getMaskLength();
                     var ml = getMaskLength();
                     $.each(inputValue, function (ndx, charCode) {
                     $.each(inputValue, function (ndx, charCode) {
                         var index = isRTL ? (opts.numericInput ? ml : ml - ndx) : ndx;
                         var index = isRTL ? (opts.numericInput ? ml : ml - ndx) : ndx;
-                        if (isMask(isRTL ? index - 1 : index)
-                        || (strict !== true && charCode != getBufferElement(getActiveBufferTemplate(), isRTL ? index - 1 : index, true))) {
+                        if ((strict && isMask(isRTL ? index - 1 : index))
+                        || $.inArray(charCode, getActiveBufferTemplate().slice(getActiveMaskSet()["lastValidPosition"] + 1, getActiveMaskSet()["p"])) == -1) {
                             $(input).trigger("keypress", [true, charCode.charCodeAt(0), writeOut, strict, index, isRTL]);
                             $(input).trigger("keypress", [true, charCode.charCodeAt(0), writeOut, strict, index, isRTL]);
                         }
                         }
                     });
                     });
@@ -812,7 +812,7 @@
                     $input.unbind(".inputmask");
                     $input.unbind(".inputmask");
                     $input.removeClass('focus.inputmask');
                     $input.removeClass('focus.inputmask');
                     //bind events
                     //bind events
-                    $input.closest('form').bind("submit", function() { //trigger change on submit if any
+                    $input.closest('form').bind("submit", function () { //trigger change on submit if any
                         if ($input[0]._valueGet() != getActiveMaskSet()["undoBuffer"]) {
                         if ($input[0]._valueGet() != getActiveMaskSet()["undoBuffer"]) {
                             $input.change();
                             $input.change();
                         }
                         }
@@ -1305,7 +1305,7 @@
                                 var isSelection = (pos.end - pos.begin) > 1 || ((pos.end - pos.begin) == 1 && opts.insertMode);
                                 var isSelection = (pos.end - pos.begin) > 1 || ((pos.end - pos.begin) == 1 && opts.insertMode);
                                 if (isSelection) {
                                 if (isSelection) {
                                     var initialIndex = activeMasksetIndex, redetermineLVP = false;
                                     var initialIndex = activeMasksetIndex, redetermineLVP = false;
-                                    $.each(masksets, function(ndx, lmnt) {
+                                    $.each(masksets, function (ndx, lmnt) {
                                         activeMasksetIndex = ndx;
                                         activeMasksetIndex = ndx;
                                         getActiveMaskSet()["undoBuffer"] = getActiveBuffer().join(''); //init undobuffer for recovery when not valid
                                         getActiveMaskSet()["undoBuffer"] = getActiveBuffer().join(''); //init undobuffer for recovery when not valid
                                         var posend = pos.end < getMaskLength() ? pos.end : getMaskLength();
                                         var posend = pos.end < getMaskLength() ? pos.end : getMaskLength();
@@ -1329,7 +1329,7 @@
                                         activeMasksetIndex = initialIndex;
                                         activeMasksetIndex = initialIndex;
                                         checkVal(input, false, true, getActiveBuffer());
                                         checkVal(input, false, true, getActiveBuffer());
                                         if (!opts.insertMode) { //preserve some space
                                         if (!opts.insertMode) { //preserve some space
-                                            $.each(masksets, function(ndx, lmnt) {
+                                            $.each(masksets, function (ndx, lmnt) {
                                                 activeMasksetIndex = ndx;
                                                 activeMasksetIndex = ndx;
                                                 isRTL ? shiftL(0, posend) : shiftR(pos.begin, ml, getPlaceHolder(pos.begin), true);
                                                 isRTL ? shiftL(0, posend) : shiftR(pos.begin, ml, getPlaceHolder(pos.begin), true);
                                                 getActiveMaskSet()["lastValidPosition"] = isRTL ? seekPrevious(getActiveMaskSet()["lastValidPosition"]) : seekNext(getActiveMaskSet()["lastValidPosition"]);
                                                 getActiveMaskSet()["lastValidPosition"] = isRTL ? seekPrevious(getActiveMaskSet()["lastValidPosition"]) : seekNext(getActiveMaskSet()["lastValidPosition"]);
@@ -1340,130 +1340,130 @@
                                 }
                                 }
 
 
                                 if (isRTL) {
                                 if (isRTL) {
-                                        var p = seekPrevious(pos.end);
-                                        results = isValid(p, c, strict, isRTL);
-                                        if (strict === true) results = [{ "activeMasksetIndex": activeMasksetIndex, "result": results }];
-                                        $.each(results, function (index, result) {
-                                            activeMasksetIndex = result["activeMasksetIndex"];
-                                            getActiveMaskSet()["writeOutBuffer"] = true;
-                                            var np = result["result"];
-                                            if (np !== false) {
-                                                var refresh = false, buffer = getActiveBuffer();
-                                                if (np !== true) {
-                                                    refresh = np["refresh"]; //only rewrite buffer from isValid
-                                                    p = np.pos != undefined ? np.pos : p; //set new position from isValid
-                                                    c = np.c != undefined ? np.c : c; //set new char from isValid
-                                                }
-                                                if (refresh !== true) {
-                                                    var maskL = getMaskLength(); //update masklength to include possible groupSeparator offset
-                                                    var firstMaskPos = seekNext(-1), firstUnmaskedPosition = firstMaskPos;
-                                                    if (opts.insertMode == true) {
-                                                        if (getActiveMaskSet()['greedy'] == true) {
-                                                            var bfrClone = buffer.slice();
-                                                            while (getBufferElement(bfrClone, firstUnmaskedPosition, true) != getPlaceHolder(firstUnmaskedPosition) && firstUnmaskedPosition <= p) {
-                                                                firstUnmaskedPosition = firstUnmaskedPosition == maskL ? (maskL + 1) : seekNext(firstUnmaskedPosition);
-                                                            }
-                                                        }
-                                                        if (firstUnmaskedPosition <= p && (getActiveMaskSet()['greedy'] || (buffer.length < maskL || getBufferElement(buffer, p) == getPlaceHolder(p)))) {
-                                                            if (buffer[firstMaskPos] != getPlaceHolder(firstMaskPos) && buffer.length < maskL) {
-                                                                var offset = prepareBuffer(buffer, -1, isRTL);
-                                                                if ((isSelection ? pos.begin : pos.end) != 0) p = p + offset;
-                                                                maskL = buffer.length;
-                                                            }
-                                                            shiftL(firstUnmaskedPosition, p, c);
-                                                        } else getActiveMaskSet()["writeOutBuffer"] = false;
-                                                    } else setBufferElement(buffer, p, c, true, isRTL);
-                                                }
-                                                getActiveMaskSet()["p"] = p;
+                                    var p = seekPrevious(pos.end);
+                                    results = isValid(p, c, strict, isRTL);
+                                    if (strict === true) results = [{ "activeMasksetIndex": activeMasksetIndex, "result": results }];
+                                    $.each(results, function (index, result) {
+                                        activeMasksetIndex = result["activeMasksetIndex"];
+                                        getActiveMaskSet()["writeOutBuffer"] = true;
+                                        var np = result["result"];
+                                        if (np !== false) {
+                                            var refresh = false, buffer = getActiveBuffer();
+                                            if (np !== true) {
+                                                refresh = np["refresh"]; //only rewrite buffer from isValid
+                                                p = np.pos != undefined ? np.pos : p; //set new position from isValid
+                                                c = np.c != undefined ? np.c : c; //set new char from isValid
                                             }
                                             }
-                                        });
-                                    } else {
-                                        var p = seekNext(pos.begin - 1);
-                                        results = isValid(p, c, strict, isRTL);
-                                        if (strict === true) results = [{ "activeMasksetIndex": activeMasksetIndex, "result": results }];
-                                        $.each(results, function (index, result) {
-                                            activeMasksetIndex = result["activeMasksetIndex"];
-                                            getActiveMaskSet()["writeOutBuffer"] = true;
-                                            var np = result["result"];
-                                            if (np !== false) {
-                                                var refresh = false, buffer = getActiveBuffer();
-                                                if (np !== true) {
-                                                    refresh = np["refresh"]; //only rewrite buffer from isValid
-                                                    p = np.pos != undefined ? np.pos : p; //set new position from isValid
-                                                    c = np.c != undefined ? np.c : c; //set new char from isValid
-                                                }
-                                                if (refresh !== true) {
-                                                    if (opts.insertMode == true) {
-                                                        var lastUnmaskedPosition = getMaskLength();
+                                            if (refresh !== true) {
+                                                var maskL = getMaskLength(); //update masklength to include possible groupSeparator offset
+                                                var firstMaskPos = seekNext(-1), firstUnmaskedPosition = firstMaskPos;
+                                                if (opts.insertMode == true) {
+                                                    if (getActiveMaskSet()['greedy'] == true) {
                                                         var bfrClone = buffer.slice();
                                                         var bfrClone = buffer.slice();
-                                                        while (getBufferElement(bfrClone, lastUnmaskedPosition, true) != getPlaceHolder(lastUnmaskedPosition) && lastUnmaskedPosition >= p) {
-                                                            lastUnmaskedPosition = lastUnmaskedPosition == 0 ? -1 : seekPrevious(lastUnmaskedPosition);
+                                                        while (getBufferElement(bfrClone, firstUnmaskedPosition, true) != getPlaceHolder(firstUnmaskedPosition) && firstUnmaskedPosition <= p) {
+                                                            firstUnmaskedPosition = firstUnmaskedPosition == maskL ? (maskL + 1) : seekNext(firstUnmaskedPosition);
                                                         }
                                                         }
-                                                        if (lastUnmaskedPosition >= p)
-                                                            shiftR(p, buffer.length, c);
-                                                        else getActiveMaskSet()["writeOutBuffer"] = false;
-                                                    } else setBufferElement(buffer, p, c, true, isRTL);
-                                                }
-                                                getActiveMaskSet()["p"] = seekNext(p);
+                                                    }
+                                                    if (firstUnmaskedPosition <= p && (getActiveMaskSet()['greedy'] || (buffer.length < maskL || getBufferElement(buffer, p) == getPlaceHolder(p)))) {
+                                                        if (buffer[firstMaskPos] != getPlaceHolder(firstMaskPos) && buffer.length < maskL) {
+                                                            var offset = prepareBuffer(buffer, -1, isRTL);
+                                                            if ((isSelection ? pos.begin : pos.end) != 0) p = p + offset;
+                                                            maskL = buffer.length;
+                                                        }
+                                                        shiftL(firstUnmaskedPosition, p, c);
+                                                    } else getActiveMaskSet()["writeOutBuffer"] = false;
+                                                } else setBufferElement(buffer, p, c, true, isRTL);
                                             }
                                             }
-                                        });
-                                    }
-
-                                    if (strict !== true) determineActiveMasksetIndex(isRTL);
-                                    if (writeOut !== false) {
-                                        $.each(results, function (ndx, rslt) {
-                                            if (rslt["activeMasksetIndex"] == activeMasksetIndex) {
-                                                result = rslt;
-                                                return false;
+                                            getActiveMaskSet()["p"] = p;
+                                        }
+                                    });
+                                } else {
+                                    var p = seekNext(pos.begin - 1);
+                                    results = isValid(p, c, strict, isRTL);
+                                    if (strict === true) results = [{ "activeMasksetIndex": activeMasksetIndex, "result": results }];
+                                    $.each(results, function (index, result) {
+                                        activeMasksetIndex = result["activeMasksetIndex"];
+                                        getActiveMaskSet()["writeOutBuffer"] = true;
+                                        var np = result["result"];
+                                        if (np !== false) {
+                                            var refresh = false, buffer = getActiveBuffer();
+                                            if (np !== true) {
+                                                refresh = np["refresh"]; //only rewrite buffer from isValid
+                                                p = np.pos != undefined ? np.pos : p; //set new position from isValid
+                                                c = np.c != undefined ? np.c : c; //set new char from isValid
                                             }
                                             }
-                                        });
-                                        if (result != undefined) {
-                                            var self = this;
-                                            setTimeout(function () { opts.onKeyValidation.call(self, result["result"], opts); }, 0);
-                                            if (getActiveMaskSet()["writeOutBuffer"] && result["result"] !== false) {
-                                                var buffer = getActiveBuffer();
-                                                writeBuffer(input, buffer, checkval ? undefined : (opts.numericInput ? seekNext(getActiveMaskSet()["p"]) : getActiveMaskSet()["p"]));
-                                                setTimeout(function () { //timeout needed for IE
-                                                    if (isComplete(buffer))
-                                                        $input.trigger("complete");
-                                                }, 0);
-                                            } else {
-                                                getActiveMaskSet()["buffer"] = getActiveMaskSet()["undoBuffer"].split('');
+                                            if (refresh !== true) {
+                                                if (opts.insertMode == true) {
+                                                    var lastUnmaskedPosition = getMaskLength();
+                                                    var bfrClone = buffer.slice();
+                                                    while (getBufferElement(bfrClone, lastUnmaskedPosition, true) != getPlaceHolder(lastUnmaskedPosition) && lastUnmaskedPosition >= p) {
+                                                        lastUnmaskedPosition = lastUnmaskedPosition == 0 ? -1 : seekPrevious(lastUnmaskedPosition);
+                                                    }
+                                                    if (lastUnmaskedPosition >= p)
+                                                        shiftR(p, buffer.length, c);
+                                                    else getActiveMaskSet()["writeOutBuffer"] = false;
+                                                } else setBufferElement(buffer, p, c, true, isRTL);
                                             }
                                             }
+                                            getActiveMaskSet()["p"] = seekNext(p);
                                         }
                                         }
-                                    }
+                                    });
+                                }
 
 
-                                    if (opts.showTooltip) { //update tooltip
-                                        $input.prop("title", getActiveMaskSet()["mask"]);
+                                if (strict !== true) determineActiveMasksetIndex(isRTL);
+                                if (writeOut !== false) {
+                                    $.each(results, function (ndx, rslt) {
+                                        if (rslt["activeMasksetIndex"] == activeMasksetIndex) {
+                                            result = rslt;
+                                            return false;
+                                        }
+                                    });
+                                    if (result != undefined) {
+                                        var self = this;
+                                        setTimeout(function () { opts.onKeyValidation.call(self, result["result"], opts); }, 0);
+                                        if (getActiveMaskSet()["writeOutBuffer"] && result["result"] !== false) {
+                                            var buffer = getActiveBuffer();
+                                            writeBuffer(input, buffer, checkval ? undefined : (opts.numericInput ? seekNext(getActiveMaskSet()["p"]) : getActiveMaskSet()["p"]));
+                                            setTimeout(function () { //timeout needed for IE
+                                                if (isComplete(buffer))
+                                                    $input.trigger("complete");
+                                            }, 0);
+                                        } else {
+                                            getActiveMaskSet()["buffer"] = getActiveMaskSet()["undoBuffer"].split('');
+                                        }
                                     }
                                     }
-                                    e.preventDefault();
                                 }
                                 }
+
+                                if (opts.showTooltip) { //update tooltip
+                                    $input.prop("title", getActiveMaskSet()["mask"]);
+                                }
+                                e.preventDefault();
                             }
                             }
                         }
                         }
+                    }
 
 
-                        function keyupEvent(e) {
-                            var $input = $(this), input = this, k = e.keyCode, buffer = getActiveBuffer();
-                            opts.onKeyUp.call(this, e, buffer, opts); //extra stuff to execute on keyup
-                            if (k == opts.keyCode.TAB && $input.hasClass('focus.inputmask') && input._valueGet().length == 0 && opts.showMaskOnFocus) {
-                                buffer = getActiveBufferTemplate().slice();
-                                writeBuffer(input, buffer);
-                                if (!isRTL) caret(input, 0);
-                                getActiveMaskSet()["undoBuffer"] = input._valueGet();
-                            }
+                    function keyupEvent(e) {
+                        var $input = $(this), input = this, k = e.keyCode, buffer = getActiveBuffer();
+                        opts.onKeyUp.call(this, e, buffer, opts); //extra stuff to execute on keyup
+                        if (k == opts.keyCode.TAB && $input.hasClass('focus.inputmask') && input._valueGet().length == 0 && opts.showMaskOnFocus) {
+                            buffer = getActiveBufferTemplate().slice();
+                            writeBuffer(input, buffer);
+                            if (!isRTL) caret(input, 0);
+                            getActiveMaskSet()["undoBuffer"] = input._valueGet();
                         }
                         }
-                    };
-                    return this;
+                    }
                 };
                 };
                 return this;
                 return this;
             };
             };
-        }
-    })(jQuery);
+            return this;
+        };
+    }
+})(jQuery);
 /*
 /*
 Input Mask plugin extensions
 Input Mask plugin extensions
 http://github.com/RobinHerbots/jquery.inputmask
 http://github.com/RobinHerbots/jquery.inputmask
 Copyright (c) 2010 - 2013 Robin Herbots
 Copyright (c) 2010 - 2013 Robin Herbots
 Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
 Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-Version: 2.2.57
+Version: 2.2.58
 
 
 Optional extensions on the jquery.inputmask base
 Optional extensions on the jquery.inputmask base
 */
 */
@@ -1565,7 +1565,7 @@ Input Mask plugin extensions
 http://github.com/RobinHerbots/jquery.inputmask
 http://github.com/RobinHerbots/jquery.inputmask
 Copyright (c) 2010 - 2012 Robin Herbots
 Copyright (c) 2010 - 2012 Robin Herbots
 Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
 Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-Version: 2.2.57
+Version: 2.2.58
 
 
 Optional extensions on the jquery.inputmask base
 Optional extensions on the jquery.inputmask base
 */
 */
@@ -2034,7 +2034,7 @@ Input Mask plugin extensions
 http://github.com/RobinHerbots/jquery.inputmask
 http://github.com/RobinHerbots/jquery.inputmask
 Copyright (c) 2010 - 2013 Robin Herbots
 Copyright (c) 2010 - 2013 Robin Herbots
 Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
 Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-Version: 2.2.57
+Version: 2.2.58
 
 
 Optional extensions on the jquery.inputmask base
 Optional extensions on the jquery.inputmask base
 */
 */
@@ -2197,7 +2197,7 @@ Input Mask plugin extensions
 http://github.com/RobinHerbots/jquery.inputmask
 http://github.com/RobinHerbots/jquery.inputmask
 Copyright (c) 2010 - 2013 Robin Herbots
 Copyright (c) 2010 - 2013 Robin Herbots
 Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
 Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-Version: 2.2.57
+Version: 2.2.58
 
 
 Regex extensions on the jquery.inputmask base
 Regex extensions on the jquery.inputmask base
 Allows for using regular expressions as a mask
 Allows for using regular expressions as a mask

ファイルの差分が大きいため隠しています
+ 40 - 40
dist/jquery.inputmask.bundle.min.js


ファイルの差分が大きいため隠しています
+ 37 - 37
dist/min/jquery.inputmask.js


+ 1 - 1
jquery.inputmask.jquery.json

@@ -8,7 +8,7 @@
 		"inputmask",
 		"inputmask",
 		"mask"
 		"mask"
     ],
     ],
-    "version": "2.2.57",
+    "version": "2.2.58",
     "author": {
     "author": {
         "name": "Robin Herbots",
         "name": "Robin Herbots",
         "url": "http://github.com/RobinHerbots/jquery.inputmask"
         "url": "http://github.com/RobinHerbots/jquery.inputmask"

+ 106 - 106
js/jquery.inputmask.js

@@ -642,8 +642,8 @@
                     var ml = getMaskLength();
                     var ml = getMaskLength();
                     $.each(inputValue, function (ndx, charCode) {
                     $.each(inputValue, function (ndx, charCode) {
                         var index = isRTL ? (opts.numericInput ? ml : ml - ndx) : ndx;
                         var index = isRTL ? (opts.numericInput ? ml : ml - ndx) : ndx;
-                        if (isMask(isRTL ? index - 1 : index)
-                        || (strict !== true && charCode != getBufferElement(getActiveBufferTemplate(), isRTL ? index - 1 : index, true))) {
+                        if ((strict && isMask(isRTL ? index - 1 : index))
+                        || $.inArray(charCode, getActiveBufferTemplate().slice(getActiveMaskSet()["lastValidPosition"] + 1, getActiveMaskSet()["p"])) == -1) {
                             $(input).trigger("keypress", [true, charCode.charCodeAt(0), writeOut, strict, index, isRTL]);
                             $(input).trigger("keypress", [true, charCode.charCodeAt(0), writeOut, strict, index, isRTL]);
                         }
                         }
                     });
                     });
@@ -812,7 +812,7 @@
                     $input.unbind(".inputmask");
                     $input.unbind(".inputmask");
                     $input.removeClass('focus.inputmask');
                     $input.removeClass('focus.inputmask');
                     //bind events
                     //bind events
-                    $input.closest('form').bind("submit", function() { //trigger change on submit if any
+                    $input.closest('form').bind("submit", function () { //trigger change on submit if any
                         if ($input[0]._valueGet() != getActiveMaskSet()["undoBuffer"]) {
                         if ($input[0]._valueGet() != getActiveMaskSet()["undoBuffer"]) {
                             $input.change();
                             $input.change();
                         }
                         }
@@ -1305,7 +1305,7 @@
                                 var isSelection = (pos.end - pos.begin) > 1 || ((pos.end - pos.begin) == 1 && opts.insertMode);
                                 var isSelection = (pos.end - pos.begin) > 1 || ((pos.end - pos.begin) == 1 && opts.insertMode);
                                 if (isSelection) {
                                 if (isSelection) {
                                     var initialIndex = activeMasksetIndex, redetermineLVP = false;
                                     var initialIndex = activeMasksetIndex, redetermineLVP = false;
-                                    $.each(masksets, function(ndx, lmnt) {
+                                    $.each(masksets, function (ndx, lmnt) {
                                         activeMasksetIndex = ndx;
                                         activeMasksetIndex = ndx;
                                         getActiveMaskSet()["undoBuffer"] = getActiveBuffer().join(''); //init undobuffer for recovery when not valid
                                         getActiveMaskSet()["undoBuffer"] = getActiveBuffer().join(''); //init undobuffer for recovery when not valid
                                         var posend = pos.end < getMaskLength() ? pos.end : getMaskLength();
                                         var posend = pos.end < getMaskLength() ? pos.end : getMaskLength();
@@ -1329,7 +1329,7 @@
                                         activeMasksetIndex = initialIndex;
                                         activeMasksetIndex = initialIndex;
                                         checkVal(input, false, true, getActiveBuffer());
                                         checkVal(input, false, true, getActiveBuffer());
                                         if (!opts.insertMode) { //preserve some space
                                         if (!opts.insertMode) { //preserve some space
-                                            $.each(masksets, function(ndx, lmnt) {
+                                            $.each(masksets, function (ndx, lmnt) {
                                                 activeMasksetIndex = ndx;
                                                 activeMasksetIndex = ndx;
                                                 isRTL ? shiftL(0, posend) : shiftR(pos.begin, ml, getPlaceHolder(pos.begin), true);
                                                 isRTL ? shiftL(0, posend) : shiftR(pos.begin, ml, getPlaceHolder(pos.begin), true);
                                                 getActiveMaskSet()["lastValidPosition"] = isRTL ? seekPrevious(getActiveMaskSet()["lastValidPosition"]) : seekNext(getActiveMaskSet()["lastValidPosition"]);
                                                 getActiveMaskSet()["lastValidPosition"] = isRTL ? seekPrevious(getActiveMaskSet()["lastValidPosition"]) : seekNext(getActiveMaskSet()["lastValidPosition"]);
@@ -1340,121 +1340,121 @@
                                 }
                                 }
 
 
                                 if (isRTL) {
                                 if (isRTL) {
-                                        var p = seekPrevious(pos.end);
-                                        results = isValid(p, c, strict, isRTL);
-                                        if (strict === true) results = [{ "activeMasksetIndex": activeMasksetIndex, "result": results }];
-                                        $.each(results, function (index, result) {
-                                            activeMasksetIndex = result["activeMasksetIndex"];
-                                            getActiveMaskSet()["writeOutBuffer"] = true;
-                                            var np = result["result"];
-                                            if (np !== false) {
-                                                var refresh = false, buffer = getActiveBuffer();
-                                                if (np !== true) {
-                                                    refresh = np["refresh"]; //only rewrite buffer from isValid
-                                                    p = np.pos != undefined ? np.pos : p; //set new position from isValid
-                                                    c = np.c != undefined ? np.c : c; //set new char from isValid
-                                                }
-                                                if (refresh !== true) {
-                                                    var maskL = getMaskLength(); //update masklength to include possible groupSeparator offset
-                                                    var firstMaskPos = seekNext(-1), firstUnmaskedPosition = firstMaskPos;
-                                                    if (opts.insertMode == true) {
-                                                        if (getActiveMaskSet()['greedy'] == true) {
-                                                            var bfrClone = buffer.slice();
-                                                            while (getBufferElement(bfrClone, firstUnmaskedPosition, true) != getPlaceHolder(firstUnmaskedPosition) && firstUnmaskedPosition <= p) {
-                                                                firstUnmaskedPosition = firstUnmaskedPosition == maskL ? (maskL + 1) : seekNext(firstUnmaskedPosition);
-                                                            }
-                                                        }
-                                                        if (firstUnmaskedPosition <= p && (getActiveMaskSet()['greedy'] || (buffer.length < maskL || getBufferElement(buffer, p) == getPlaceHolder(p)))) {
-                                                            if (buffer[firstMaskPos] != getPlaceHolder(firstMaskPos) && buffer.length < maskL) {
-                                                                var offset = prepareBuffer(buffer, -1, isRTL);
-                                                                if ((isSelection ? pos.begin : pos.end) != 0) p = p + offset;
-                                                                maskL = buffer.length;
-                                                            }
-                                                            shiftL(firstUnmaskedPosition, p, c);
-                                                        } else getActiveMaskSet()["writeOutBuffer"] = false;
-                                                    } else setBufferElement(buffer, p, c, true, isRTL);
-                                                }
-                                                getActiveMaskSet()["p"] = p;
+                                    var p = seekPrevious(pos.end);
+                                    results = isValid(p, c, strict, isRTL);
+                                    if (strict === true) results = [{ "activeMasksetIndex": activeMasksetIndex, "result": results }];
+                                    $.each(results, function (index, result) {
+                                        activeMasksetIndex = result["activeMasksetIndex"];
+                                        getActiveMaskSet()["writeOutBuffer"] = true;
+                                        var np = result["result"];
+                                        if (np !== false) {
+                                            var refresh = false, buffer = getActiveBuffer();
+                                            if (np !== true) {
+                                                refresh = np["refresh"]; //only rewrite buffer from isValid
+                                                p = np.pos != undefined ? np.pos : p; //set new position from isValid
+                                                c = np.c != undefined ? np.c : c; //set new char from isValid
                                             }
                                             }
-                                        });
-                                    } else {
-                                        var p = seekNext(pos.begin - 1);
-                                        results = isValid(p, c, strict, isRTL);
-                                        if (strict === true) results = [{ "activeMasksetIndex": activeMasksetIndex, "result": results }];
-                                        $.each(results, function (index, result) {
-                                            activeMasksetIndex = result["activeMasksetIndex"];
-                                            getActiveMaskSet()["writeOutBuffer"] = true;
-                                            var np = result["result"];
-                                            if (np !== false) {
-                                                var refresh = false, buffer = getActiveBuffer();
-                                                if (np !== true) {
-                                                    refresh = np["refresh"]; //only rewrite buffer from isValid
-                                                    p = np.pos != undefined ? np.pos : p; //set new position from isValid
-                                                    c = np.c != undefined ? np.c : c; //set new char from isValid
-                                                }
-                                                if (refresh !== true) {
-                                                    if (opts.insertMode == true) {
-                                                        var lastUnmaskedPosition = getMaskLength();
+                                            if (refresh !== true) {
+                                                var maskL = getMaskLength(); //update masklength to include possible groupSeparator offset
+                                                var firstMaskPos = seekNext(-1), firstUnmaskedPosition = firstMaskPos;
+                                                if (opts.insertMode == true) {
+                                                    if (getActiveMaskSet()['greedy'] == true) {
                                                         var bfrClone = buffer.slice();
                                                         var bfrClone = buffer.slice();
-                                                        while (getBufferElement(bfrClone, lastUnmaskedPosition, true) != getPlaceHolder(lastUnmaskedPosition) && lastUnmaskedPosition >= p) {
-                                                            lastUnmaskedPosition = lastUnmaskedPosition == 0 ? -1 : seekPrevious(lastUnmaskedPosition);
+                                                        while (getBufferElement(bfrClone, firstUnmaskedPosition, true) != getPlaceHolder(firstUnmaskedPosition) && firstUnmaskedPosition <= p) {
+                                                            firstUnmaskedPosition = firstUnmaskedPosition == maskL ? (maskL + 1) : seekNext(firstUnmaskedPosition);
                                                         }
                                                         }
-                                                        if (lastUnmaskedPosition >= p)
-                                                            shiftR(p, buffer.length, c);
-                                                        else getActiveMaskSet()["writeOutBuffer"] = false;
-                                                    } else setBufferElement(buffer, p, c, true, isRTL);
-                                                }
-                                                getActiveMaskSet()["p"] = seekNext(p);
+                                                    }
+                                                    if (firstUnmaskedPosition <= p && (getActiveMaskSet()['greedy'] || (buffer.length < maskL || getBufferElement(buffer, p) == getPlaceHolder(p)))) {
+                                                        if (buffer[firstMaskPos] != getPlaceHolder(firstMaskPos) && buffer.length < maskL) {
+                                                            var offset = prepareBuffer(buffer, -1, isRTL);
+                                                            if ((isSelection ? pos.begin : pos.end) != 0) p = p + offset;
+                                                            maskL = buffer.length;
+                                                        }
+                                                        shiftL(firstUnmaskedPosition, p, c);
+                                                    } else getActiveMaskSet()["writeOutBuffer"] = false;
+                                                } else setBufferElement(buffer, p, c, true, isRTL);
                                             }
                                             }
-                                        });
-                                    }
-
-                                    if (strict !== true) determineActiveMasksetIndex(isRTL);
-                                    if (writeOut !== false) {
-                                        $.each(results, function (ndx, rslt) {
-                                            if (rslt["activeMasksetIndex"] == activeMasksetIndex) {
-                                                result = rslt;
-                                                return false;
+                                            getActiveMaskSet()["p"] = p;
+                                        }
+                                    });
+                                } else {
+                                    var p = seekNext(pos.begin - 1);
+                                    results = isValid(p, c, strict, isRTL);
+                                    if (strict === true) results = [{ "activeMasksetIndex": activeMasksetIndex, "result": results }];
+                                    $.each(results, function (index, result) {
+                                        activeMasksetIndex = result["activeMasksetIndex"];
+                                        getActiveMaskSet()["writeOutBuffer"] = true;
+                                        var np = result["result"];
+                                        if (np !== false) {
+                                            var refresh = false, buffer = getActiveBuffer();
+                                            if (np !== true) {
+                                                refresh = np["refresh"]; //only rewrite buffer from isValid
+                                                p = np.pos != undefined ? np.pos : p; //set new position from isValid
+                                                c = np.c != undefined ? np.c : c; //set new char from isValid
                                             }
                                             }
-                                        });
-                                        if (result != undefined) {
-                                            var self = this;
-                                            setTimeout(function () { opts.onKeyValidation.call(self, result["result"], opts); }, 0);
-                                            if (getActiveMaskSet()["writeOutBuffer"] && result["result"] !== false) {
-                                                var buffer = getActiveBuffer();
-                                                writeBuffer(input, buffer, checkval ? undefined : (opts.numericInput ? seekNext(getActiveMaskSet()["p"]) : getActiveMaskSet()["p"]));
-                                                setTimeout(function () { //timeout needed for IE
-                                                    if (isComplete(buffer))
-                                                        $input.trigger("complete");
-                                                }, 0);
-                                            } else {
-                                                getActiveMaskSet()["buffer"] = getActiveMaskSet()["undoBuffer"].split('');
+                                            if (refresh !== true) {
+                                                if (opts.insertMode == true) {
+                                                    var lastUnmaskedPosition = getMaskLength();
+                                                    var bfrClone = buffer.slice();
+                                                    while (getBufferElement(bfrClone, lastUnmaskedPosition, true) != getPlaceHolder(lastUnmaskedPosition) && lastUnmaskedPosition >= p) {
+                                                        lastUnmaskedPosition = lastUnmaskedPosition == 0 ? -1 : seekPrevious(lastUnmaskedPosition);
+                                                    }
+                                                    if (lastUnmaskedPosition >= p)
+                                                        shiftR(p, buffer.length, c);
+                                                    else getActiveMaskSet()["writeOutBuffer"] = false;
+                                                } else setBufferElement(buffer, p, c, true, isRTL);
                                             }
                                             }
+                                            getActiveMaskSet()["p"] = seekNext(p);
                                         }
                                         }
-                                    }
+                                    });
+                                }
 
 
-                                    if (opts.showTooltip) { //update tooltip
-                                        $input.prop("title", getActiveMaskSet()["mask"]);
+                                if (strict !== true) determineActiveMasksetIndex(isRTL);
+                                if (writeOut !== false) {
+                                    $.each(results, function (ndx, rslt) {
+                                        if (rslt["activeMasksetIndex"] == activeMasksetIndex) {
+                                            result = rslt;
+                                            return false;
+                                        }
+                                    });
+                                    if (result != undefined) {
+                                        var self = this;
+                                        setTimeout(function () { opts.onKeyValidation.call(self, result["result"], opts); }, 0);
+                                        if (getActiveMaskSet()["writeOutBuffer"] && result["result"] !== false) {
+                                            var buffer = getActiveBuffer();
+                                            writeBuffer(input, buffer, checkval ? undefined : (opts.numericInput ? seekNext(getActiveMaskSet()["p"]) : getActiveMaskSet()["p"]));
+                                            setTimeout(function () { //timeout needed for IE
+                                                if (isComplete(buffer))
+                                                    $input.trigger("complete");
+                                            }, 0);
+                                        } else {
+                                            getActiveMaskSet()["buffer"] = getActiveMaskSet()["undoBuffer"].split('');
+                                        }
                                     }
                                     }
-                                    e.preventDefault();
                                 }
                                 }
+
+                                if (opts.showTooltip) { //update tooltip
+                                    $input.prop("title", getActiveMaskSet()["mask"]);
+                                }
+                                e.preventDefault();
                             }
                             }
                         }
                         }
+                    }
 
 
-                        function keyupEvent(e) {
-                            var $input = $(this), input = this, k = e.keyCode, buffer = getActiveBuffer();
-                            opts.onKeyUp.call(this, e, buffer, opts); //extra stuff to execute on keyup
-                            if (k == opts.keyCode.TAB && $input.hasClass('focus.inputmask') && input._valueGet().length == 0 && opts.showMaskOnFocus) {
-                                buffer = getActiveBufferTemplate().slice();
-                                writeBuffer(input, buffer);
-                                if (!isRTL) caret(input, 0);
-                                getActiveMaskSet()["undoBuffer"] = input._valueGet();
-                            }
+                    function keyupEvent(e) {
+                        var $input = $(this), input = this, k = e.keyCode, buffer = getActiveBuffer();
+                        opts.onKeyUp.call(this, e, buffer, opts); //extra stuff to execute on keyup
+                        if (k == opts.keyCode.TAB && $input.hasClass('focus.inputmask') && input._valueGet().length == 0 && opts.showMaskOnFocus) {
+                            buffer = getActiveBufferTemplate().slice();
+                            writeBuffer(input, buffer);
+                            if (!isRTL) caret(input, 0);
+                            getActiveMaskSet()["undoBuffer"] = input._valueGet();
                         }
                         }
-                    };
-                    return this;
+                    }
                 };
                 };
                 return this;
                 return this;
             };
             };
-        }
-    })(jQuery);
+            return this;
+        };
+    }
+})(jQuery);