PageSourceSearch

https://shop.bgs.ac.uk/Resources/Shop/js/AllPages.js

js bgs.ac.uk collected 2026-09-24 08:30:33 UTC 5,822 bytes, 174 lines download raw bytes

1// all.pages.js
2
3var shopAP={};
4
5shopAP.init=function(){
6    shopAP.setupNav();
7    shopAP.setupEvents();
8    shopAP.highlightNav();
9    shopAP.mobilify();
10    return true;
11    };
12
13shopAP.mobilify = function()
14{
15    if($(window).innerWidth() < 800)
16    {
17        var basketTxt = 'Basket';
18        var menuTxt = 'Browse';
19        if($('body').hasClass('config'))
20        {
21            basketTxt = 'Configuration';
22        }
23        $('aside').addClass('hide');
24        $('nav').addClass('hide');
25        if($('body').hasClass('secure'))
26        {
27            menuTxt = 'Order progress';
28        }
29        else
30        {
31            $('header').after('<button id="basketBtn">'+basketTxt+'</button>');
32            $('#basketBtn').click(function(e) {
33                if($('aside').hasClass('hide'))
34                {
35                    $('#basketBtn').addClass('redBtn');
36                    $('#menuBtn').removeClass('redBtn');
37                    $('aside').addClass('show').removeClass('hide');
38                    $('nav').addClass('hide').removeClass('show');
39                }
40                else
41                {
42                    $('#basketBtn').removeClass('redBtn');
43                    $('aside').addClass('hide').removeClass('show');
44                }
45            });
46        }
47        $('header').after('<button id="menuBtn">'+menuTxt+'</button>');
48        $('#menuBtn').click(function(e) {
49            if($('nav').hasClass('hide'))
50            {
51                $('#menuBtn').addClass('redBtn');
52                $('#basketBtn').removeClass('redBtn');
53                $('nav').addClass('show').removeClass('hide');
54                $('aside').addClass('hide').removeClass('show');
55            }
56            else
57            {
58                $('#menuBtn').removeClass('redBtn');
59                $('nav').addClass('hide').removeClass('show');
60            }
61        });
62    }
63    return;
64}
65
66shopAP.setupEvents=function(){
67    $("nav>article>ul.navList").on('click','img',shopAP.navImgClick);
68    return true;
69    };
70
71shopAP.setupNav=function(){
72    $('nav>article>ul.navList>li ul').hide();
73    $('nav>article>ul.navList>li').addClass('closed');
74    $('nav>article>ul.navList>li>img').attr('src','/Resources/Shop/img/ui/small/plus.png');
75    $('nav>article>ul.navList li.gotChildren').addClass('closed');
76    $('nav>article>ul.navList li.gotChildren>img').attr('src','/Resources/Shop/img/ui/small/plus.png');
77    return true;
78    };
79
80shopAP.highlightNav=function(){
81    var navType=$('#navType').val();
82    var navHighlight=$('#navHighlight').val();
83    switch(navType){
84        case 'Department':  shopAP.clickNav(navHighlight); break;
85        case 'Category':    shopAP.clickNav(navHighlight); break;
86        case 'Product':     shopAP.clickNavProduct(navHighlight); break;
87        case 'Default':     shopAP.highlightLink(navHighlight); break;
88        case 'Include':     shopAP.highlightLink(navHighlight); break;
89        case 'Info':        shopAP.highlightLink(navHighlight); break;
90        case 'Search':      shopAP.highlightSearch(navHighlight); break;
91        case 'Secure':      break;
92        case 'SitePlan':    break;
93        case '':            break;
94        // ...
95        default:
96            // alert(navType + ':' + navHighlight + '?');
97            break;
98        };
99    return true;
100    };
101
102shopAP.highlightSearch=function(navHighlight){
103    // alert('highlightSearch' + navHighlight);
104    return true;
105    };
106
107shopAP.highlightLink=function(navHighlight){
108    var aSel='';
109    switch(navHighlight.toUpperCase()){
110        case 'HOME': aSel='a[href="/Shop/Home"]'; break;
111        case 'CONTACT': aSel='a[href="/Shop/Contact"]'; break;
112        case 'HELP': aSel='a[href="/Shop/Help"]'; break;
113        case 'PRIVACY': aSel='a[href="/Shop/Privacy"]'; break;
114        case 'TERMS': aSel='a[href="/Shop/Terms"]'; break;
115        // nothing to highlight!
116        case 'SITEPLAN': break;
117        case 'CATEGORIES': break;
118        case 'PRODUCTS': break;
119        case 'BASKET': break;
120        default:
121            // alert('highlightLink:' + navHighlight.toUpperCase());
122            break;
123        };
124    if(aSel.length > 0){$(aSel).addClass('highlight');};
125    return true;
126    };
127
128shopAP.clickNavProduct=function(navHighlight){
129    var navArr=navHighlight.split(',');
130    var navDept=navArr[0];
131    var pathArr=navArr.slice(0,navArr.length - 1);
132    var pathHighlight=pathArr.join(',');
133    shopAP.clickNav(pathHighlight);
134    return true;
135    };
136
137shopAP.clickNav=function(navHighlight){
138    var toggles=navHighlight.split(',');
139    var t=0;
140    var toggleSel='';
141    var toggleElem={};
142    for(t=0;t < toggles.length;t++){
143        toggleSel='#toggle_' + toggles[t];
144        $(toggleSel).click();
145        };
146    toggleSel='#toggle_' + toggles[toggles.length - 1];
147    toggleElem=$(toggleSel);
148    if(toggleElem.length === 0){
149        toggleSel='#toggle_' + toggles[toggles.length - 2];
150        toggleElem=$(toggleSel);
151        };
152    toggleElem.closest('li').addClass('highlight');
153    return true;
154    };
155
156shopAP.navImgClick=function(evt){
157    var li=$(evt.target).closest('li');
158    if(li.hasClass('closed')){
159        li.removeClass('closed').addClass('open');
160        li.children('img').attr('src','/Resources/Shop/img/ui/small/minus.png');
161        li.children('ul').show();
162        return true;
163        };
164    if(li.hasClass('open')){
165        li.removeClass('open').addClass('closed');
166        li.children('img').attr('src','/Resources/Shop/img/ui/small/plus.png');
167        li.children('ul').hide();
168        return true;
169        };
170    return false;
171    };
172
173// fire initialisation onDomReady
174$(document).ready(shopAP.init);

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.