PageSourceSearch

https://business.hastingschamber.com/login/

html hastingschamber.com collected 2026-09-29 06:27:07 UTC 27,793 bytes, 526 lines download raw bytes

1
2<!DOCTYPE html>
3<html>
4<!--
5Request for https://www.hastingschamber.com/growthzone-template failed at 1:27 AM 9/29/2026
6ERROR: Page not found - Hastings Area Chamber of Commerce - NE
7Request Headers:
8  x-localrequest=1
9  User-Agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36
10-->
11<head>
12<!-- start injected HTML (CCID=2898) -->
13<!-- page template: https://www.hastingschamber.com/growthzone-template -->
14<title>Login</title>
15<base href="https://www.hastingschamber.com/" />
16<meta name="description" content="Hastings Area Chamber of Commerce - NE is the best place to find a member or business in the Hastings NE area." />
17<link href="https://business.hastingschamber.com/integration/customerdefinedcss?_=0QMZQw2" rel="stylesheet" type="text/css" />
18<!-- link for rss not inserted -->
19<link rel="canonical" href="https://business.hastingschamber.com/login" />
20<!-- end injected HTML -->
21
22    <!-- jQuery first, then Popper.js, then Bootstrap JS -->
23    
23<script src="https://code.jquery.com/jquery-3.7.1.min.js" crossorigin="anonymous"></script>
23
24    
24<script type="text/javascript" src="https://code.jquery.com/ui/1.13.2/jquery-ui.min.js"></script>
vendor: 2 bytes, line 24
24
25<script src="https://business.hastingschamber.com/Content/bundles/SEO4?v=jX-Yo1jNxYBrX6Ffq1gbxQahkKjKjLSiGjCSMnG9UuU1"></script>
25
26    
26<script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/globalize/0.1.1/globalize.min.js"></script>
26
27    
27<script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/globalize/0.1.1/cultures/globalize.culture.en-US.js"></script>
27
28    <!-- Required meta tags -->
29    <meta charset="utf-8">
30    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
31    <link rel="stylesheet" href="https://code.jquery.com/ui/1.13.2/themes/base/jquery-ui.css" type="text/css" media="all" />
32    
32<script type="text/javascript">
33        var MNI = MNI || {};
34        MNI.CurrentCulture = 'en-US';
35        MNI.CultureDateFormat = 'M/d/yyyy';
36        MNI.BaseUrl = 'https://business.hastingschamber.com';
37        MNI.jQuery = jQuery.noConflict(true);
38        MNI.Page = {
39            Domain: 'business.hastingschamber.com',
40            Context: 299,
41            Category: null,
42            Member: null,
43            MemberPagePopup: true
44        };
45        MNI.LayoutPromise = new Promise(function (resolve) {
46            MNI.LayoutResolution = resolve;
47        });
48        MNI.MemberFilterUrl = '';
49    </script>
vendor: 77 bytes, lines 49-52
49
50
51
52    <script src="https://www.google.com/recaptcha/enterprise.js?render=
526LfI_T8rAAAAAMkWHrLP_GfSf3tLy9tKa839wcWa
vendor: 29 bytes, lines 52-53
52" async defer></script>
53    
53<script>
54
55        const SITE_KEY = '6LfI_T8rAAAAAMkWHrLP_GfSf3tLy9tKa839wcWa';
56
57        // Repeatedly check if grecaptcha has been loaded, and call the callback once it's available
58        function waitForGrecaptcha(callback, retries = 10, interval = 1000) {
59            if (typeof grecaptcha !== 'undefined' && grecaptcha.enterprise.execute) {
60                callback();
61            } else if (retries > 0) { 
62                setTimeout(() => {
63                    waitForGrecaptcha(callback, retries - 1, interval);
64                }, interval);
65            } else {
66                console.error("grecaptcha is not available after multiple attempts");
67            }
68        }
69
70        // Copies the solved v2 checkbox token into the given form when the widget's
71        // response field ended up outside it. Customer site templates can re-load the
72        // reCAPTCHA api script, which re-renders the checkbox widget detached from the
73        // form, so its g-recaptcha-response never posts and validation always fails.
74        function setV2ResponseToken($, formElement) {
75            const $form = $(formElement);
76            const inForm = $form.find('[name="g-recaptcha-response"]');
77
78            // Prefer the reCAPTCHA-managed textarea in the target form; otherwise only consider an orphaned textarea
79            // (not inside any <form>) to avoid copying a token from a different form when multiple widgets exist.
80            let token = inForm.filter('textarea').filter(function () { return this.value; }).first().val();
81            if (!token) {
82                token = $('textarea[name="g-recaptcha-response"]').filter(function () { return this.value && $(this).closest('form').length === 0; }).first().val();
83            }
84            if (!token) {
85                return;
86            }
87
88            if (inForm.length > 0) {
89                inForm.val(token);
90            }
91            else {
92                $('<input>', {
93                    type: 'hidden',
94                    name: 'g-recaptcha-response',
95                    value: token
96                }).appendTo(formElement);
97            }
98        }
99
100        // Generates a reCAPTCHA v3 token using grecaptcha.enterprise and injects it into the given form.
101        // If the token input doesn't exist, it creates one. Then it executes the callback with the token.
102        function setReCaptchaToken(formElement, callback, action = 'submit') {
103            grecaptcha.enterprise.ready(function () {
104                grecaptcha.enterprise.execute(SITE_KEY, { action: action }).then(function (token) {
105
106                    MNI.jQuery(function ($) {
107                        let input = $(formElement).find("input[name='g-recaptcha-v3']");
108
109                        if (input.length === 0) {
110                            input = $('<input>', {
111                                type: 'hidden',
112                                name: 'g-recaptcha-v3',
113                                value: token
114                            });
115                            $(formElement).append(input);
116                        }
117                        else
118                            $(input).val(token);
119
120                        setV2ResponseToken($, formElement);
121                        if (typeof callback === 'function') callback(token);
122                    })
123
124                });
125            });
126        }
127
128    </script>
128
129
130
131
132
133<script src="https://business.hastingschamber.com/Content/bundles/MNI?v=34V3-w6z5bLW9Yl7pjO3C5tja0TdKeHFrpRQ0eCPbz81"></script>
133
134
135<script type="text/javascript">
136        MNI.jQuery(function ($)
137        {
138            var ajaxSubmit = true
139            $('#gz-login-loginbox').submit(on_submit);
140
141
142            function on_submit(e)
143            {
144                if (ajaxSubmit)
145                {
146                    var $form = $('form.needs-validation');
147                    var form = $form[0];
148                    e.preventDefault();
149                    if (form.checkValidity() === false)
150                    {
151                        $('#gz-validate-message').removeClass('gz-validation-error').html('');
152                        form.classList.add('was-validated');
153                    }
154                    else
155                    {
156                        waitForGrecaptcha(() => {
157                            setReCaptchaToken($form, () => {
158                                 var waitImage = $('<div id="cm_loading">Processing...<img src="https://business.hastingschamber.com/content/images/ajax-loader.gif" alt="Processing..." /></div>');
159                                 $('#gz-validate-message').removeClass('gz-validation-error').html(waitImage);
160                                 
161                                 var formData = $form.serializeArray();
162                                 var data = {};
163                                $(formData).each(function (index, obj) {
164                                     data[obj.name] = obj.value;
165                                 });
166
167                                 $.ajax(
168                                 {
169                                     url: 'https://hastingsne.chambermaster.com/login/ajaxauthenticate',
170                                     type: 'POST',
171                                     contentType: 'application/json',
172                                     dataType: 'json',
173                                     data: JSON.stringify(data),
174                                     success: function (data)
175                                     {
176                                         if (data.Success)
177                                         {
178                                             ajaxSubmit = false;
179                                             $('#gz-login-loginbox').trigger('submit');
180                                         }
181                                         else
182                                         {
183                                             $('#gz-validate-message').addClass('gz-validation-error').html(data.Message);
184                                         }
185                                     },
186                                     error: function (xhr, status) {
187                                         $('#gz-validate-message').addClass('gz-validation-error').html('An error occurred while attempting to log you in.');
188                                     }
189                            });
190                            },
191                            "memberLogin");
192                        })
193                    }
194                    return false;
195                }
196            }
197        });
198</script>
198
199    <!-- Bootstrap CSS -->
200    <link type="text/css" href="https://business.hastingschamber.com/Content/SEO4/css/bootstrap/bootstrap-ns.min.css" rel="stylesheet" />
201<link href="https://business.hastingschamber.com/Content/SEO4/css/fontawesome/css/fa.bundle?v=ruPA372u21djZ69Q5Ysnch4rq1PR55j8o6h6btgP60M1" rel="stylesheet"/>
202<link href="https://business.hastingschamber.com/Content/SEO4/css/v4-module.bundle?v=qwhSjNuPqeeGP6P-IaHNEkcnGmDy0rKab7USXmcnhsI1" rel="stylesheet"/>
203<meta name="referrer" content="origin" /></head>
204<body>
205    <div id="gzns">
206        
207
208    <div class="container-fluid gz-login-index">
209        <!-- pagetitle and deals buttons row, deals buttons are now removed but leaving div incase we add back in -->
210        <div class="d-flex w-100 gz-pagetitle-dealsbuttons">
211            <div class="flex-grow-1 gz-pagetitle">
212                <h1>Login</h1>
213            </div>
214            
215
216<div class="gz-dealsbuttons"></div>
217
218        </div>
219        <!--intro text for customer. Currently not setup in ISCP for this but if it ever is then we have this div-->
220        
221
222
223<div class="row gz-banner"><div class="col"><div class="mn-banner mn-banner-premier"><div id="mn-banner"><noscript><iframe src="https://business.hastingschamber.com/sponsors/adsframe?context=299&amp;maxWidth=720&amp;maxHeight=90&amp;max=1&amp;rotate=False" width="720" height="90" scrolling="no" frameborder="0" allowtransparency="true" marginwidth="0" marginheight="0"></iframe></noscript></div></div></div></div>
224<script type="text/javascript">
225    var _mnisq=_mnisq||[];
226    _mnisq.push(["domain","business.hastingschamber.com"],["context",299],["max",5],["rotate",1],["maxWidth",720],["maxHeight",90],["create","mn-banner"]);
227    (function(b,d,a,c){b.getElementById(d)||(c=b.getElementsByTagName(a)[0],a=b.createElement(a),a.type="text/javascript",a.async=!0,a.src="https://business.hastingschamber.com/Content/Script/Ads.min.js",c.parentNode.insertBefore(a,c))})(document,"mni-ads-script","script");
228</script>
228
229                <div class="col">
230            <div class="row gz-login-form">
231<form action="https://hastingsne.chambermaster.com/Login/Authenticate" class="needs-validation" id="gz-login-loginbox" method="post" name="formMain" novalidate="novalidate">                    <div class="form-row gz-login-name">
232                        <div class="form-group col-md-6 gz-LoginName">
233                                    <label for="LoginName">
234            Username
235                <span class="gz-form-req" title="Required field"></span>
236            
237        </label>
238<input class="form-control" id="LoginName" name="UserName" placeholder="jsmith" required="" type="text" value="" />    
239        <div class="valid-feedback">
240Looks good!
241        </div>
242        <div class="invalid-feedback">
243Please add your username.
244        </div>
245    
246
247                        </div>
248                    </div>
249                    <div class="form-row gz-login-pw">
250                        <div class="form-group col-md-6 gz-LoginPw">
251                                    <label for="LoginPw">
252            Password
253                <span class="gz-form-req" title="Required field"></span>
254            
255        </label>
256<input class="form-control" id="LoginPw" name="Password" placeholder="•••••••••" required="" type="password" value="" />    
257        <div class="valid-feedback">
258Looks good!
259        </div>
260        <div class="invalid-feedback">
261Please add your password.
262        </div>
263    
264
265                        </div>
266                    </div>
267                    <div class="form-row gz-login-links">
268                        <div class="form-group col-12 gz-LoginLinks">
269                            <div id="Forgot" class="form-text">
270                                <a href="https://business.hastingschamber.com/login/forgotpwd">Forgot your username/password?</a>
271                            </div>
272                                <div id="Create" class="form-text">
273                                    <a href="https://hastingsne.chambermaster.com/CreateAccount">No login created? Sign up now.</a>
274                                </div>
275                        </div>
276                    </div>
277                    <div class="form-row gz-login-submit">
278                        <div class="form-group col">
279                            <button class="btn" type="submit">Sign In</button>
280                        </div>
281                    </div>
282                    <div id="gz-validate-message"></div>
283                    <input type="hidden" name="LoginOrigin" value="https://business.hastingschamber.com/login" />
284                    <input type="hidden" name="AllowExternalLogins" value="false" />
285                    <input type="hidden" name="Destination" />
286</form>            </div>
287        </div>
288
289    <div class="row gz-footer-navigation" role="navigation">
290        <div class="col">
291            <a href="https://business.hastingschamber.com/list/">Business Directory</a>
292            
293            <a href="https://business.hastingschamber.com/events/">Events Calendar</a>
294            <a href="https://business.hastingschamber.com/hotdeals/">Hot Deals</a>
295            
296            
297            <a href="https://business.hastingschamber.com/jobs/">Job Postings</a>
298            <a href="https://business.hastingschamber.com/contact/">Contact Us</a>
299            
300            
301            
302        </div>
303    </div>
304
305    <div class="row gz-footer-logo">
306        <div class="col text-center">
307            <a href="http://www.growthzone.com/" target="_blank">
308                <img alt="GrowthZone - Membership Management Software" src="https://public.chambermaster.com/content/images/powbyCM_100x33.png" border="0">
309            </a>
310        </div>
311    </div>
312    </div>
313
314        
315        <!-- JavaScript for Bootstrap 4 components -->
316        <!-- js to make 4 column layout instead of 3 column when the module page content area is larger than 950, this is to accomodate for full-width templates and templates that have sidebars-->
316
317        
317<script type="text/javascript">
318            (function ($) {
319                $(function () {
320                    var $gzns = $('#gzns');
321                    var $info = $('#gzns').find('.col-sm-6.col-md-4');
322                    if ($gzns.width() > 950) {
323                        $info.addClass('col-lg-3');
324                    }
325
326                    var store = window.localStorage;
327                    var key = "1-list-view";
328                    var printKey = "24-list-view";
329                    $('.gz-view-btn').click(function (e) {
330                        e.preventDefault();
331                        $('.gz-view-btn').removeClass('active');
332                        $(this).addClass('active');
333                        if ($(this).hasClass('gz-list-view')) {
334                            store.setItem(key, true);
335                            store.setItem(printKey, true);
336                            $('.gz-list-card-wrapper').removeClass('col-sm-6 col-md-4').addClass('gz-list-col');
337                        } else {
338                            store.setItem(key, false);
339                            store.setItem(printKey, false);
340                            $('.gz-list-card-wrapper').addClass('col-sm-6 col-md-4').removeClass('gz-list-col');
341                        }
342                    });
343                    
344                    var isListView = store.getItem(key) == null ? MNI.DEFAULT_LISTING : store.getItem(key) == "true";
345                    if (isListView) $('.gz-view-btn.gz-list-view').click();
346                    store.setItem(printKey, isListView);
347                    MNI.LayoutResolution();
348
349                    (function ($modal) {
350                        if ($modal[0]) {
351                            $('#gz-info-contactfriend').on('shown.bs.modal', function (e) {
352                                $modal.css('max-height', $(window).height() + 'px');
353                                $modal.addClass('isLoading');
354                                $.ajax({ url: MNI.BaseUrl + '/inforeq/contactFriend?itemType='+MNI.ITEM_TYPE+'&itemId='+MNI.ITEM_ID })
355                                    .then(function (r) {
356                                        $modal.find('.modal-body')
357                                            .html($.parseHTML(r.Html));
358                                        $modal.removeClass('isLoading');
359                                        $('#gz-info-contactfriend').addClass('in');
360                                        $.getScript("https://www.google.com/recaptcha/api.js");
361                                    });
362                            });
363                            $('#gz-info-contactfriend .send-btn').click(function () {
364                                var $form = $modal.find('form');
365                                $modal.addClass('isLoading');
366                                $.ajax({
367                                    url: $form.attr('action'),
368                                    type: 'POST',
369                                    data: $form.serialize(),
370                                    dataType: 'json'
371                                }).then(function (r) {
372                                    if (r.Success) $('#gz-info-contactfriend').modal('hide');
373                                    else $modal.find('.modal-body').html($.parseHTML(r.Html));
374                                    $.getScript("https://www.google.com/recaptcha/api.js");
375                                    $modal.removeClass('isLoading');
376                                });
377                            });
378                        }
379                    })($('#gz-info-contactfriend .modal-content'));
380
381                    (function ($modal) {
382                        if ($modal[0]) {
383                            $('#gz-info-subscribe').on('shown.bs.modal', function (e) {
384                            $('#gz-info-subscribe .send-btn').show();
385                            $modal.addClass('isLoading');
386                                $.ajax({ url: MNI.SUBSCRIBE_URL })
387                                .then(function (r) {
388                                    $modal.find('.modal-body')
389                                        .html(r);
390
391                                    $modal.removeClass('isLoading');
392                                });
393                            });
394                            $('#gz-info-subscribe .send-btn').click(function () {
395                                var $form = $modal.find('form');
396                                $modal.addClass('isLoading');
397
398                                waitForGrecaptcha(() => {
399                                    setReCaptchaToken($form, () => {
400                                        $.ajax({
401                                            url: $form.attr('action'),
402                                            type: 'POST',
403                                            data: $form.serialize()
404                                        }).then(function (r) {
405                                            if (r.toLowerCase().search('thank you') != -1) {
406                                                $('#gz-info-subscribe .send-btn').hide();
407                                            }
408                                            $modal.find('.modal-body').html(r);
409                                            $modal.removeClass('isLoading');
410                                        });
411                                    }, "hotDealsSubscribe");
412                                })                        
413                            });
414                        }
415                    })($('#gz-info-subscribe .modal-content'));
416
417                    (function ($modal) {
418                        $('#gz-info-calendarformat').on('shown.bs.modal', function (e) {
419                            var backdropElem = "<div class=\"modal-backdrop fade in\" style=\"height: 731px;\" ></div >";
420                            $('#gz-info-calendarformat').addClass('in');                           
421                            if (!($('#gz-info-calendarformat .modal
421-backdrop').length)) {
422                                $('#gz-info-calendarformat').prepend(backdropElem);
423                            }
424                            else {
425                                $('#gz-info-calendarformat .modal-backdrop').addClass('in');
426                            }
427                        });
428                        $('#gz-info-calendarformat').on('hidden.bs.modal', function (e) {
429                            $('#gz-info-calendarformat').removeClass('in');
430                            $('#gz-info-calendarformat .modal-backdrop').remove();
431                        });
432                        if ($modal[0]) {
433                            $('.calendarLink').click(function (e) {
434                                $('#gz-info-calendarformat').modal('hide');
435                            });
436                        }
437                    })($('#gz-info-calendarformat .modal-content'));
438
439                    // Constructs the Find Members type ahead suggestion engine. Tokenizes on the Name item in the remote return object. Case Sensitive usage.
440                    var members = new Bloodhound({
441                        datumTokenizer: Bloodhound.tokenizers.whitespace,
442                        queryTokenizer: Bloodhound.tokenizers.whitespace,
443                        remote: {
444                            url: MNI.BaseUrl + '/list/find?q=%searchTerm',
445                            wildcard: '%searchTerm',
446                            replace: function () {
447                                var q = MNI.BaseUrl + '/list/find?q=' + encodeURIComponent($('.gz-search-keyword').val());
448                                var categoryId = $('#catgId').val();
449                                var quickLinkId = $('#qlId').val();
450                                if (categoryId) {
451                                    q += "&catgId=" + encodeURIComponent(categoryId);
452                                }
453                                if (quickLinkId) {
454                                    q += "&qlid=" + encodeURIComponent(quickLinkId);
455                                }
456                                return q;
457                            }
458                        }
459                    });
460
461                    // Initializing the typeahead using the Bloodhound remote dataset. Display the Name and Type from the dataset via the suggestion template. Case sensitive.
462                    $('.member-typeahead').typeahead({
463                        hint: false,
464                    },
465                        {
466                            display: 'Name',
467                            source: members,
468                            limit: Infinity,
469                            templates: {
470                                suggestion: function (data) { return '<div class="mn-autocomplete"><span class="mn-autocomplete-name">' + data.Name + '</span></br><span class="mn-autocomplete-type">' + data.Type + '</span></div>' }
471                            }
472                    });
473
474                    $('.member-typeahead').on('typeahead:selected', function (evt, item) {
475                        var openInNewWindow = MNI.Page.MemberPagePopup
476                        var doAction = openInNewWindow ? MNI.openNewWindow : MNI.redirectTo;
477
478                        switch (item.ResultType) {
479                            case 1: // AutocompleteSearchResultType.Category
480                                doAction(MNI.Path.Category(item.SlugWithID));
481                                break;
482                            case 2: // AutocompleteSearchResultType.QuickLink
483                                doAction(MNI.Path.QuickLink(item.SlugWithID));
484                                break;
485                            case 3: // AutocompleteSearchResultType.Member
486                                if (item.MemberPageAction == 1) {
487                                    MNI.logHitStat("mbrws", item.ID).then(function () {
488                                        var location = item.WebParticipation < 10 ? MNI.Path.MemberKeywordSearch(item.Name) : MNI.Path.Member(item.SlugWithI
488D);
489                                        doAction(location);
490                                    });
491                                }
492                                else {
493                                    var location = item.WebParticipation < 10 ? MNI.Path.MemberKeywordSearch(item.Name) : MNI.Path.Member(item.SlugWithID);
494                                    doAction(location);
495                                }
496                                break;
497                        }
498                    })
499
500                    $('#category-select').change(function () {
501                        // Store the category ID in a hidden field so the remote fetch can use it when necessary
502                        var categoryId = $('#category-select option:selected').val();
503                        $('#catgId').val(categoryId);
504                        // Don't rely on prior locally cached data when the category is changed.
505                        $('.member-typeahead').typeahead('destroy');
506                        $('.member-typeahead').typeahead({
507                            hint: false,
508                        },
509                            {
510                                display: 'Name',
511                                source: members,
512                                limit: Infinity,
513                                templates: {
514                                    suggestion: function (data) { return '<div class="mn-autocomplete"><span class="mn-autocomplete-name">' + data.Name + '</span></br><span class="mn-autocomplete-type">' + data.Type + '</span></div>' }
515                                }
516                            });
517                    });
518                    MNI.Plugins.AutoComplete.Init('#mn-search-geoip input', { path: '/' + MNI.MemberFilterUrl + '/find-geographic' });
519                });
520            })(MNI.jQuery);
521        </script>
521
522    </div>
523
524</body>
525</html>
526

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.