PageSourceSearch

https://www.borderstates.com/_ui/responsive/common/js/acc.navigation.js

js borderstates.com collected 2026-10-03 21:42:27 UTC 11,485 bytes, 277 lines download raw bytes

1var oDoc = document;
2
3ACC.navigation = {
4
5    _autoload: [
6        "offcanvasNavigation",
7        "myAccountNavigation",
8        "orderToolsNavigation"
9    ],
10
11    offcanvasNavigation: function(){
12
13    	enquire.register("screen and (max-width:"+ ACC.common.encodeHtml(screenSmMax) +")", {
14
15            match : function() {
16
17                $(document).on("click","#productsMenuDrillDown",function(e){
18                    e.preventDefault();
19                    $(".mobileAccountMenu").hide();
20                    $(".mobileUtilityMenu").hide();
21                    $(".js-userAccount-Links").hide();
22                    $(".nav__link--drill__down").css('display','none');
23                    $(".js-enquire-offcanvas-navigation ul.js-offcanvas-links").addClass("active");
24                    $(".js-enquire-offcanvas-navigation .js-enquire-has-sub").removeClass("active");
25                    $(this).parent(".js-enquire-has-sub").addClass("active");
26                });
27
28                 $(document).on("click", "#accountMenuDrillDown", function(e) {
29                    e.preventDefault();
30                    $(".mobileUtilityMenu").hide();
31                    $(".js-userAccount-Links").hide();
32                     $(".nav__link--drill__down").css('display','none');
33                    $(".js-enquire-offcanvas-navigation ul.js-offcanvas-links").addClass("active");
34                    $(".js-enquire-offcanvas-navigation .js-enquire-has-sub").removeClass("active");
35                    $(this).parent(".js-enquire-has-sub").addClass("active");
36                 });
37
38                $(document).on("click",".js-enquire-offcanvas-navigation .js-enquire-sub-close",function(e){
39                    e.preventDefault();
40                    $(".mobileAccountMenu").show();
41                    $(".mobileUtilityMenu").show();
42                    $(".js-userAccount-Links").show();
43                    $(".nav__link--drill__down").css('display','block');
44                    $(".js-enquire-offcanvas-navigation ul.js-offcanvas-links").removeClass("active");
45                    $(".js-enquire-offcanvas-navigation .js-enquire-has-sub").removeClass("active");
46                });
47
48
49
50            },
51
52            unmatch : function() {
53
54                $(".mobileAccountMenu").show();
55                $(".mobileUtilityMenu").show();
56                $(".js-userAccount-Links").show();
57                $(".js-enquire-offcanvas-navigation ul.js-offcanvas-links").removeClass("active");
58                $(".js-enquire-offcanvas-navigation .js-enquire-has-sub").removeClass("active");
59
60                $(document).off("click",".js-enquire-offcanvas-navigation .js-enquire-has-sub > a");
61                $(document).off("click",".js-enquire-offcanvas-navigation .js-enquire-sub-close");
62
63
64            }
65
66
67        });
68
69    },
70
71    myAccountNavigation: function(){
72        //copy the site logo
73        $('.js-mobile-logo').html( $('.js-site-logo a').clone());
74
75        //Add the order form img in the navigation
76        $('.nav-form').append($("<span>").addClass("glyphicon glyphicon-list-alt"));
77
78
79        var aAcctData = [];
80        var sSignBtn = "";
81
82        //my account items
83        var oMyAccountData = $(".accNavComponent");
84
85        //the my Account hook for the desktop
86        var oMMainNavDesktop = $(".js-secondaryNavAccount > ul");
87
88        //offcanvas menu for tablet/mobile
89        var oMainNav = $(".navigation--bottom > ul.nav__links.nav__links--products");
90
91        if(oMyAccountData){
92            var aLinks = oMyAccountData.find("a");
93            for(var i = 0; i < aLinks.length; i++){
94                aAcctData.push({link: aLinks[i].href, text: aLinks[i].title});
95            }
96        }
97
98        var navClose = $("<div>").addClass("close-nav")
99		.append($("<button>").attr("type", "button")
100				.addClass("js-toggle-sm-navigation btn")
101				.append($("<span>").addClass("glyphicon glyphicon-remove")));
102
103        //create Sign In/Sign Out Button
104        if($(".liOffcanvas a") && $(".liOffcanvas a").length > 0){
105        	sSignBtn = $("<li>").addClass("auto liUserSign")
106			.append($("<a>").addClass("userSign")
107					.attr("href", $(".liOffcanvas a")[0].href)
108					.text($(".liOffcanvas a")[0].innerHTML));
109        }
110
111        //create Welcome User + expand/collapse and close button
112        //This is for mobile navigation. Adding html and classes.
113        var oUserInfo = $(".nav__right ul li.logged_in");
114        //Check to see if user is logged in
115        if(oUserInfo && oUserInfo.length === 1)
116        {
117        	var sUserBtn = $("<li>").addClass("auto")
118			.append($("<div>")
119					.addClass("userGroup")
120					.append($("<span>")
121							.addClass("glyphicon glyphicon-user myAcctUserIcon"))
122							.append($("<div>")
123									.addClass("userName")
124									.html(oUserInfo[0].innerHTML)));
125
126            if(aAcctData.length > 0){
127            	$(sUserBtn).find(".userGroup").append($("<a>").addClass("collapsed js-nav-collapse")
128        				.attr("id", "signedInUserOptionsToggle")
129        				.attr("data-toggle", "bsecollapse")
130        				.attr("data-target", ".offcanvasGroup1")
131        				.append($("<span>").addClass("glyphicon glyphicon-chevron-up myAcctExp")));
132            }
133            sUserBtn.append(navClose);
134
135            $('.js-sticky-user-group').html(sUserBtn);
136
137            $('.js-userAccount-Links').append(sSignBtn);
138            $('.js-userAccount-Links').append($("<li>").addClass("auto").append($("<div>").addClass("myAccountLinksContainer js-myAccountLinksContainer")));
139
140
141            //FOR DESKTOP
142            var myAccountHook = $("<div>").addClass("myAccountLinksHeader js-myAccount-toggle")
143			.attr("data-toggle", "bsecollapse")
144			.attr("data-parent", ".nav__right")
145			.text(oMyAccountData.data("title"));
146
147            myAccountHook.insertBefore(oMyAccountData);
148
149            //*For toggling collapse myAccount on Desktop instead of with Bootstrap.js
150            $('.myAccountLinksHeader').click(function () {
151                $(this).toggleClass('show');
152                $(".js-secondaryNavAccount").slideToggle(400);
153                if ( $(this).hasClass('show') ) {
154                    $('.myCompanyLinksHeader').removeClass('show'); // hide the other one
155                    $('.js-secondaryNavCompany').slideUp(400);
156                }
157                return false;
158            });
159
160            //FOR MOBILE
161            //create a My Account Top link for desktop - in case more components come then more parameters need to be passed from the backend
162            var myAccountHook = $("<div>").addClass("sub-nav")
163			.append($("<a>").attr("id", "signedInUserAccountToggle")
164					.addClass("myAccountLinksHeader collapsed js-myAccount-toggle")
165					.attr("data-toggle", "bsecollapse")
166					.attr("data-target", ".offcanvasGroup2")
167					.text(oMyAccountData.data("title"))
168					.append($("<span>").addClass("glyphicon glyphicon-chevron-down myAcctExp")));
169
170            $('.js-myAccountLinksContainer').append(myAccountHook);
171
172            //add UL element for nested collapsing list
173            $('.js-myAccountLinksContainer').append($("<ul>")
174					.attr("data-trigger" ,"#signedInUserAccountToggle")
175					.addClass("offcanvasGroup2 offcanvasNoBorder bsecollapse js-nav-collapse-body subNavList js-myAccount-root sub-nav"));
176
177            //*For toggling collapse on Mobile instead of with Bootstrap.js
178            $('#signedInUserAccountToggle').click(function () {
179                $(this).toggleClass('show');
180                $(".offcanvasGroup2").slideToggle(400);
181                if ( $(this).hasClass('show') ) {
182                    $(this).find('span').removeClass('glyphicon-chevron-down').addClass('glyphicon-chevron-up');
183                    $('#signedInCompanyToggle').removeClass('show'); // hide the other one
184                    $('#signedInCompanyToggle').find('span').removeClass('glyphicon-chevron-up').addClass('glyphicon-chevron-down');
185                    $('.offcanvasGroup3').slideUp(400);
186                }
187                else {
188                    $(this).find('span').removeClass('glyphicon-chevron-up').addClass('glyphicon-chevron-down');
189                }
190            });
191
192            //offcanvas items
193            //TODO Follow up here to see the output of the account data in the offcanvas menu
194            for(var i = aAcctData.length - 1; i >= 0; i--){
195                var oLink = oDoc.createElement("a");
196                oLink.title = aAcctData[i].text;
197                oLink.href = aAcctData[i].link;
198                oLink.innerHTML = ACC.common.encodeHtml(aAcctData[i].text);
199
200                var oListItem = oDoc.createElement("li");
201                oListItem.appendChild(oLink);
202                oListItem = $(oListItem);
203                oListItem.addClass("auto ");
204                $('.js-myAccount-root').append(oListItem);
205            }
206
207        } else {
208        	if(sSignBtn)
209        		{
210        			var navButtons = sSignBtn.append(navClose);
211        			$('.js-sticky-user-group').append(navButtons);
212        		}
213        }
214
215        // //desktop
216        // for(var i = 0; i < aAcctData.length; i++){
217        //     var oLink = oDoc.createElement("a");
218        //     oLink.title = aAcctData[i].text;
219        //     oLink.href = aAcctData[i].link;
220        //     oLink.innerHTML = ACC.common.encodeHtml(aAcctData[i].text);
221        //
222        //     var oListItem = oDoc.createElement("li");
223        //     oListItem.appendChild(oLink);
224        //     oListItem = $(oListItem);
225        //     oListItem.addClass("auto col-md-4");
226        //     oMMainNavDesktop.get(0).appendChild(oListItem.get(0));
227        // }
228        //
229        // //hide and show content areas for desktop
230        // $('.js-secondaryNavAccount').on('shown.bs.bsecollapse', function () {
231        //
232        //     if($('.js-secondaryNavCompany').hasClass('in')){
233        //         $('.js-myCompany-toggle').click();
234        //     }
235        //
236        // });
237        //
238        // $('.js-secondaryNavCompany').on('shown.bs.bsecollapse', function () {
239        //
240        //     if($('.js-secondaryNavAccount').hasClass('in')){
241        //         $('.js-myAccount-toggle').click();
242        //     }
243        //
244        // });
245
246        //change icons for up and down
247        $('.js-nav-collapse-body').on('hidden.bs.bsecollapse', function(e){
248
249            var target = $(e.target);
250            var targetSpanSelector = target.attr('data-trigger') + ' > span';
251            if(target.hasClass('in')) {
252                $(document).find(targetSpanSelector).removeClass('glyphicon-chevron-down').addClass('glyphicon-chevron-up');
253            }
254            else {
255                $(document).find(targetSpanSelector).removeClass('glyphicon-chevron-up').addClass('glyphicon-chevron-down');
256            }
257        });
258
259        $('.js-nav-collapse-body').on('show.bs.bsecollapse', function(e){
260            var target = $(e.target);
261            var targetSpanSelector = target.attr('data-trigger') + ' > span';
262            if(target.hasClass('in')) {
263                $(document).find(targetSpanSelector).removeClass('glyphicon-chevron-up').addClass('glyphicon-chevron-down');
264            }
265            else {
266                $(document).find(targetSpanSelector).removeClass('glyphicon-chevron-down').addClass('glyphicon-chevron-up');
267            }
268        });
269
270    },
271
272    orderToolsNavigation: function(){
273        $('.js-nav-order-tools').on('click', function(e){
274            $(this).toggleClass('js-nav-order-tools--active');
275        });
276    }
277};

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.