PageSourceSearch

https://castings.plc.uk/scripts/owner/core/Sidepanel.js?d=2

js castings.plc.uk collected 2026-10-07 01:17:49 UTC 5,014 bytes, 156 lines download raw bytes

1_sidePanel = {
2
3    //=== Side panel behaviour
4    initializeSidePanelBehaviour: function ()
5    {
6        // Detects relevent elements
7        var html = $('html');
8        var body = $('body');
9        var sidePanel = $('#side-panel');
10        var sidePanelTrigger = $('#side-panel-trigger');
11        var sidePanelExitTrigger = $("#side-panel-exit-trigger");
12
13        // Side panel trigger behaviour
14        sidePanelTrigger.click(function (e)
15        {
16            // Prevents default action
17            e.preventDefault();
18
19            // Checks if side panel is active
20            if (sidePanel.hasClass('active'))
21            {
22                // Calls the open side panel behaviour function
23                _sidePanel.closeSidePanelBehaviour();
24                html.removeClass('no-scrolling');
25                body.removeClass('no-scrolling');
26            }            
27            else
28            {
29                // Calls the close side panel behaviour function
30                _sidePanel.openSidePanelBehaviour();
31                sidePanelTrigger.addClass('active');
32                html.addClass('no-scrolling');
33                body.addClass('no-scrolling');
34               
35            }
36        });
37
38        // Side panel exit trigger behaviour
39        sidePanelExitTrigger.click(function (e)
40        {
41            // Prevents default action
42            e.preventDefault();
43
44            // Checks if side panel is active
45            if (sidePanel.hasClass('active'))
46            {
47                // Calls the close side panel behaviour function
48                _sidePanel.closeSidePanelBehaviour();
49                
50            }
51        });
52
53        // Body click behaviour
54        body.click(function (e)
55        {
56            // Checks if the side panel is active
57            if (sidePanel.hasClass('active')) 
58            {
59                // Checks if the target of the click isn't the side panel or trigger container or any descending elements
60                if (!sidePanelTrigger.is(e.target) && sidePanelTrigger.has(e.target).length === 0 && !sidePanel.is(e.target) && sidePanel.has(e.target).length === 0) {
61
62                    // Calls the close side panel behaviour function
63                    _sidePanel.closeSidePanelBehaviour();
64                }
65            }
66        });
67    }
68
69
70    //=== Open side panel behaviour
71    , openSidePanelBehaviour: function ()
72    {
73        // Detects relevent elements
74        var sidePanel = $('#side-panel');
75        var sidePanelTrigger = $('#side-panel-trigger');
76
77        // Adds an active class to the relevent elements
78        sidePanel.addClass('active');
79        sidePanelTrigger.addClass('active');  
80    }
81
82
83    //== Close side panel behaviour
84    , closeSidePanelBehaviour: function ()
85    {
86        // Detects relevent elements
87        var sidePanel = $('#side-panel');
88        var sidePanelTrigger = $('#side-panel-trigger');
89
90        // Removes the active class to the relevent elements
91        sidePanel.removeClass('active');
92        
93        sidePanelTrigger.removeClass('active');
94    }
95};
96
97// Initialiser
98$(document).ready(function () {
99    _sidePanel.initializeSidePanelBehaviour();
100});
101
102_navigationSlide = {
103    init: function(){
104        var mobileNav = $('#mobile-navigation');
105        var nav = $('#accordion-navigation');
106        var levels = nav.find('.has-child');
107        var back = $('.back');
108        
109        
110        levels.each(function(){
111            var level = $(this);
112            var link = level.find('.transition-trigger');
113            var list = level.find('.sub-menu');
114        
115        link.click(function(){
116            console.log(list);
117           if(level.hasClass('level-1')){
118                mobileNav.removeClass('active-level-2');
119               mobileNav.addClass('active-level-1');
120               
121               list.addClass('showList');
122           }
123           else if(level.hasClass('level-2')){
124               mobileNav.removeClass('active-level-1');
125               mobileNav.addClass('active-level-2');
126               
127               list.removeClass('showList');
128               
129               list.addClass('showListLevel2');
130           }
131            
132            });
133            
134            back.click(function(){
135                var level = $(this).attr('data-page-level');
136                if(level==="2")
137                {
138                    list.removeClass('showList');
139                    mobileNav.removeClass('active-level-1');
140                }
141                if(level==="3")
142                {
143                    list.removeClass('showListLevel2');
144                    mobileNav.addClass('active-level-1');
145                    mobileNav.removeClass('active-level-2');
146                }
147                
148            });
149        });
150        
151    }
152    
153}
154$(document).ready(function () {
155    _navigationSlide.init();
156});

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.