PageSourceSearch

https://www.fofia.org/modules/forms/js/form.js?v=1784230730

js fofia.org collected 2026-10-05 07:45:15 UTC 11,691 bytes, 149 lines download raw bytes

1// jQuery Mask Plugin v1.13.3
2// github.com/igorescobar/jQuery-Mask-Plugin
3"use strict";!function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof exports?module.exports=t(require("jquery")):t(jQuery||Zepto)}(function(t){var a=function(a,e,n){a=t(a);var r,s=this,o=a.val();e="function"==typeof e?e(a.val(),void 0,a,n):e;var i={invalid:[],getCaret:function(){try{var t,e=0,n=a.get(0),r=document.selection,s=n.selectionStart;return r&&-1===navigator.appVersion.indexOf("MSIE 10")?(t=r.createRange(),t.moveStart("character",a.is("input")?-a.val().length:-a.text().length),e=t.text.length):(s||"0"===s)&&(e=s),e}catch(o){}},setCaret:function(t){try{if(a.is(":focus")){var e,n=a.get(0);n.setSelectionRange?n.setSelectionRange(t,t):n.createTextRange&&(e=n.createTextRange(),e.collapse(!0),e.moveEnd("character",t),e.moveStart("character",t),e.select())}}catch(r){}},events:function(){a.on("input.mask keyup.mask",i.behaviour).on("paste.mask drop.mask",function(){setTimeout(function(){a.keydown().keyup()},100)}).on("change.mask",function(){a.data("changed",!0)}).on("blur.mask",function(){o===a.val()||a.data("changed")||a.triggerHandler("change"),a.data("changed",!1)}).on("blur.mask",function(){o=a.val()}).on("focus.mask",function(a){n.selectOnFocus===!0&&t(a.target).select()}).on("focusout.mask",function(){n.clearIfNotMatch&&!r.test(i.val())&&i.val("")})},getRegexMask:function(){for(var t,a,n,r,o,i,c=[],l=0;l<e.length;l++)t=s.translation[e.charAt(l)],t?(a=t.pattern.toString().replace(/.{1}$|^.{1}/g,""),n=t.optional,r=t.recursive,r?(c.push(e.charAt(l)),o={digit:e.charAt(l),pattern:a}):c.push(n||r?a+"?":a)):c.push(e.charAt(l).replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"));return i=c.join(""),o&&(i=i.replace(new RegExp("("+o.digit+"(.*"+o.digit+")?)"),"($1)?").replace(new RegExp(o.digit,"g"),o.pattern)),new RegExp(i)},destroyEvents:function(){a.off(["input","keydown","keyup","paste","drop","blur","focusout",""].join(".mask "))},val:function(t){var e,n=a.is("input"),r=n?"val":"text";return arguments.length>0?(a[r]()!==t&&a[r](t),e=a):e=a[r](),e},getMCharsBeforeCount:function(t,a){for(var n=0,r=0,o=e.length;o>r&&t>r;r++)s.translation[e.charAt(r)]||(t=a?t+1:t,n++);return n},caretPos:function(t,a,n,r){var o=s.translation[e.charAt(Math.min(t-1,e.length-1))];return o?Math.min(t+n-a-r,n):i.caretPos(t+1,a,n,r)},behaviour:function(a){a=a||window.event,i.invalid=[];var e=a.keyCode||a.which;if(-1===t.inArray(e,s.byPassKeys)){var n=i.getCaret(),r=i.val(),o=r.length,c=o>n,l=i.getMasked(),u=l.length,h=i.getMCharsBeforeCount(u-1)-i.getMCharsBeforeCount(o-1);return i.val(l),!c||65===e&&a.ctrlKey||(8!==e&&46!==e&&(n=i.caretPos(n,o,u,h)),i.setCaret(n)),i.callbacks(a)}},getMasked:function(t){var a,r,o=[],c=i.val(),l=0,u=e.length,h=0,f=c.length,v=1,p="push",d=-1;for(n.reverse?(p="unshift",v=-1,a=0,l=u-1,h=f-1,r=function(){return l>-1&&h>-1}):(a=u-1,r=function(){return u>l&&f>h});r();){var k=e.charAt(l),g=c.charAt(h),m=s.translation[k];m?(g.match(m.pattern)?(o[p](g),m.recursive&&(-1===d?d=l:l===a&&(l=d-v),a===d&&(l-=v)),l+=v):m.optional?(l+=v,h-=v):m.fallback?(o[p](m.fallback),l+=v,h-=v):i.invalid.push({p:h,v:g,e:m.pattern}),h+=v):(t||o[p](k),g===k&&(h+=v),l+=v)}var y=e.charAt(a);return u!==f+1||s.translation[y]||o.push(y),o.join("")},callbacks:function(t){var r=i.val(),s=r!==o,c=[r,t,a,n],l=function(t,a,e){"function"==typeof n[t]&&a&&n[t].apply(this,e)};l("onChange",s===!0,c),l("onKeyPress",s===!0,c),l("onComplete",r.length===e.length,c),l("onInvalid",i.invalid.length>0,[r,t,a,i.invalid,n])}};s.mask=e,s.options=n,s.remove=function(){var t=i.getCaret();return i.destroyEvents(),i.val(s.getCleanVal()),i.setCaret(t-i.getMCharsBeforeCount(t)),a},s.getCleanVal=function(){return i.getMasked(!0)},s.init=function(e){if(e=e||!1,n=n||{},s.byPassKeys=t.jMaskGlobals.byPassKeys,s.translation=t.jMaskGlobals.translation,s.translation=t.extend({},s.translation,n.translation),s=t.extend(!0,{},s,n),r=i.getRegexMask(),e===!1){n.placeholder&&a.attr("placeholder",n.placeholder),"oninput"in t("input")[0]==!1&&"on"===a.attr("autocomplete")&&a.attr("autocomplete","off"),i.destroyEvents(),i.events();var o=i.getCaret();i.val(i.getMasked()),i.setCaret(o+i.getMCharsBeforeCount(o,!0))}else i.events(),i.val(i.getMasked())},s.init(!a.is("input"))};t.maskWatchers={};var e=function(){var e=t(this),r={},s="data-mask-",o=e.attr("data-mask");return e.attr(s+"reverse")&&(r.reverse=!0),e.attr(s+"clearifnotmatch")&&(r.clearIfNotMatch=!0),"true"===e.attr(s+"selectonfocus")&&(r.selectOnFocus=!0),n(e,o,r)?e.data("mask",new a(this,o,r)):void 0},n=function(a,e,n){n=n||{};var r=t(a).data("mask"),s=JSON.stringify,o=t(a).val()||t(a).text();try{return"function"==typeof e&&(e=e(o)),"object"!=typeof r||s(r.options)!==s(n)||r.mask!==e}catch(i){}};t.fn.mask=function(e,r){r=r||{};var s=this.selector,o=t.jMaskGlobals,i=t.jMaskGlobals.watchInterval,c=function(){return n(this,e,r)?t(this).data("mask",new a(this,e,r)):void 0};return t(this).each(c),s&&""!==s&&o.watchInputs&&(clearInterval(t.maskWatchers[s]),t.maskWatchers[s]=setInterval(function(){t(document).find(s).each(c)},i)),this},t.fn.unmask=function(){return clearInterval(t.maskWatchers[this.selector]),delete t.maskWatchers[this.selector],this.each(function(){var a=t(this).data("mask");a&&a.remove().removeData("mask")})},t.fn.cleanVal=function(){return this.data("mask").getCleanVal()},t.applyDataMask=function(a){a=a||t.jMaskGlobals.maskElements;var n=a instanceof t?a:t(a);n.filter(t.jMaskGlobals.dataMaskAttr).each(e)};var r={maskElements:"input,td,span,div",dataMaskAttr:"*[data-mask]",dataMask:!0,watchInterval:300,watchInputs:!0,watchDataMask:!1,byPassKeys:[9,16,17,18,36,37,38,39,40,91],translation:{0:{pattern:/\d/},9:{pattern:/\d/,optional:!0},"#":{pattern:/\d/,recursive:!0},A:{pattern:/[a-zA-Z0-9]/},S:{pattern:/[a-zA-Z]/}}};t.jMaskGlobals=t.jMaskGlobals||{},r=t.jMaskGlobals=t.extend(!0,{},r,t.jMaskGlobals),r.dataMask&&t.applyDataMask(),setInterval(function(){t.jMaskGlobals.watchDataMask&&t.applyDataMask()},r.watchInterval)});
4
5$(function() {
6    $('input[type=tel]').mask('(000) 000-0000');
7    $('.zip-mask').mask('00000-0000');
8    $('.birthDatePicker, .datePicker').mask('00/00/0000');
9    $('.ssn-mask').mask('000-00-0000');
10
11    $('input[type=number], .numberMask').mask('###', {'translation': {'#': {pattern: /[0-9]/}}});
12    $('.money-mask').mask('##############', {'translation': {'#': {pattern: /[0-9,$.]/}}});
13
14    //Date Picker
15    $(".birthDatePicker").datepicker( {
16        dateFormat: "mm/dd/yy",
17        changeYear: true,
18        changeMonth: true,
19        yearRange: "c-100:+0",
20        showAnim: 'slideDown'
21    });
22
23    //Date Picker
24    $(".datePicker").datepicker( {
25        dateFormat: "mm/dd/yy",
26        showAnim: 'slideDown'
27    });
28
29    // Mask Password
30    var retrieveValue=function(){var a=$(this),e=a.data("value");e&&a.val(e)},hideValue=function(){var a=$(this);a.data("value",a.val()),a.val(a.val().replace(/\d/g,"*"))};$(".ssn-mask").focus(retrieveValue),$(".ssn-mask").blur(hideValue);
31
32    $("input[type='submit']").click(function (event) {
33        event.preventDefault();
34        var myform = '#' + $(this).closest("form").attr('id');
35        var hcaptchaVal = $(myform + ' [name=h-captcha-response]').val();
36        if (hcaptchaVal === "") {
37            alert("Please complete the captcha before continuing.");
38        } else {
39            var buttonVal = $(this).val();
40            $(this).val('PROCESSING ....');
41            $(this).attr('disabled', 'disabled');
42            $(myform).parsley({excluded: "input[type=button], input[type=submit], input[type=reset], input[type=hidden], input:hidden, textarea[type=hidden], textarea:hidden"});
43            if($(myform).parsley().isValid()) {
44                $('.ssn-mask').each(function(event) {
45                    retrieveValue.call($(this), event);
46                })
47                $(myform).submit();
48            }
49            else {
50                $(this).val(buttonVal);
51                $(this).removeAttr('disabled');
52                $(myform).parsley().validate();
53            }
54        }
55
56    });
57
58    $('.next').on('click', function (e) {
59        e.preventDefault();
60        var myformId = '#' + $(this).closest("form").attr('id'), current = $(this).data('currentBlock'),next = $(this).data('nextBlock');
61        // only validate going forward. If current group is invalid, do not go further
62        // .parsley().validate() returns validation result AND show errors
63        if (next > current){
64            if (false === $(myformId).parsley().validate('block' + current)){
65                return;
66            }
67        }
68        // validation confirmed. go to next step.
69        $('.block' + current).hide();
70        $('.block' + next).show();
71        window.scrollTo(0,0);
72    });
73
74    $("#optOther").on("click", function() {
75        if ($(this).is(":checked")) {
76            $("#specify").slideDown();
77            $("#mtxSpecify").addClass("required");
78        } else {
79            $("#specify").slideUp();
80            $("#mtxSpecify").removeClass("required");
81        }
82    });
83
84    $("input[type=radio]").on("click", function() {
85        if ($(this).attr("name") == "Convicted or on Registry" && $(this).val() == "Y") {
86            $("#registry").slideDown();
87            $("#mtxRegistry").addClass("required");
88        } else if ($(this).attr("name") == "Convicted or on Registry" && $(this).val() == "N") {
89            $("#registry").slideUp();
90            $("#mtxRegistry").removeClass("required");
91        }
92    });
93});
94
95// AUTO FILL BY ENTERING THE ZIP
96function checkZip(zipCode, form, zipId) {
97    var zip = zipCode;
98    var lat;
99    var lng;
100    var geocoder = new google.maps.Geocoder();
101    geocoder.geocode({ 'address': zip }, function (results, status) {
102        if (status == google.maps.GeocoderStatus.OK) {
103            geocoder.geocode({'latLng': results[0].geometry.location}, function(results, status) {
104                if (status == google.maps.GeocoderStatus.OK) {
105                    if (results[1]) {
106                        var loc = getCityState(results);
107                        var cityState = loc.split(',');
108                        if(form == 'contact-form') {
109                            document.getElementById('txtCity').value = cityState[0];
110                            document.getElementById('cboState').value = cityState[1];
111                            document.getElementById('contact1').focus();
112                        }
113                        else if (form == 'board-application-form') {
114                            document.getElementById('txtWCity').value = cityState[0];
115                            document.getElementById('cboWState').value = cityState[1];
116                        }
117                        else {
118                            document.getElementById('txtCity').value = cityState[0];
119                            document.getElementById('cboState').value = cityState[1];
120                            document.getElementById('contact1').focus();
121                        }
122                    }
123                }
124            });
125        }
126    });
127}
128
129function getCityState(results) {
130    var a = results[0].address_components;
131    var city, state, i;
132    for(i = 0; i <  a.length; ++i) {
133        var t = a[i].types;
134        if(compIsType(t, 'administrative_area_level_1'))
135            state = a[i].short_name; //store the state
136        else if(compIsType(t, 'locality'))
137            city = a[i].long_name; //store the city
138    }
139    return (city + ',' + state)
140}
141
142function compIsType(t, s) {
143    var z;
144    for(z = 0; z < t.length; ++z)
145        if(t[z] == s)
146        return true;
147    return false;
148}
149// END OF AUTO FILL BY ENTERING THE ZIP

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.