PageSourceSearch

https://www.mascarilha.pt/templates/js/menu_mobile.js

js mascarilha.pt collected 2026-09-26 12:52:31 UTC 14,755 bytes, 361 lines download raw bytes

1app.controller("menuMobileController", function($scope, $http, $rootScope, $sce){
2	$rootScope.menu_mobile = {
3		open: false
4	}
5
6	$rootScope.header.icon_menu_mobile.changeIcon = false;
7
8	$scope.createMobileMenu = function(menu) {
9		let _cm = this;
10
11		_cm.formatValues = function(value){
12			value.link_name_formater = $sce.trustAsHtml(value.link_name);
13
14			var link_name_prefix = (value.sublevel == 4 || value.sublevel == 54) ? JSVarsMenuMobile.expressions[231] : JSVarsMenuMobile.expressions[579];
15			value.link_name_cat_formater = $sce.trustAsHtml(link_name_prefix + " " + value.link_name);
16
17			value.custom_url = (value.without_click == 1) ? '' : value.url;
18			return value;
19		}
20
21		_cm.findChilds = function(menu){
22			menu.childs_sub = 0;
23			menu.imageCatalog_count = 0;
24			angular.forEach(menu.childs, function(value, key){
25				menu.childs[key] = _cm.formatValues(value);
26				if(menu.childs.length > 0)
27					menu.childs_sub = 1;
28
29				menu.childs_sub2 = 0;
30				if(value.childs.length > 0){
31					menu.childs_sub2 = 1;
32					menu.childs[key] =_cm.findChilds(menu.childs[key]);
33					menu.imageCatalog_count = $(menu.imageCatalog).length;
34				}
35		    });
36		    return menu;
37		}
38
39		angular.forEach(menu, function(value, key){
40			menu[key] = _cm.formatValues(value);
41			menu[key].childs_sub = 0;
42			if(value.childs.length > 0) menu[key] =_cm.findChilds(menu[key]);
43	    });
44
45	    return menu;
46	}
47
48	$scope.menuMobile = $scope.createMobileMenu($.parseJSON(sys_menu));
49
50	setTimeout(function(){
51		$(".mobile-menu").addClass("loaded");
52		$scope.positionMenuSelected();
53
54		//const menumobileLozad = lozad(".rdc-lozad-menu-mobile");
55		//menumobileLozad.observe();
56	}, 600);
57	var translateX = 100;
58	var indexMenu = 0;
59	var indexMenu2 = 0;
60	var indexMenu3 = 0;
61	var indexMenu4 = 0;
62	$scope.positionMenuSelected = function(){
63		
64		if($(".mobile-nav-item.sel").length > 0) {
65			var menuSel = $(".mobile-nav-item.hasSub.sel").first();
66			indexMenu = menuSel.data("menuindex");
67			var size = $("#mobile-holder > div").length;
68
69			if($(".mobile-nav-item-2.sel").length > 0) {
70				if($(".mobile-nav-item-2.hasSub").hasClass('sel').length == 0 || $(".mobile-nav-item-2.hasSub").hasClass('sel').length == undefined){
71					var menuSel2 = $(".mobile-nav-item-2.sel").first();
72					indexMenu2 = menuSel2.data("menuindex");
73				}else{
74					var menuSel2 = $(".mobile-nav-item-2.hasSub.sel").first();
75					indexMenu2 = menuSel2.data("submenuindex");
76				}
77				if(indexMenu2 != undefined)
78					translateX = translateX / size;
79			}
80			
81			if($(".mobile-nav-item-3.sel").length > 0) {
82				if($(".mobile-nav-item-3.hasSub").hasClass('sel').length == 0 || $(".mobile-nav-item-3.hasSub").hasClass('sel').length == undefined){
83					var menuSel3 = $(".mobile-nav-item-3.sel").first();
84					indexMenu3 = menuSel3.data("submenuindex");
85				}else{
86					var menuSel3 = $(".mobile-nav-item-3.hasSub.sel").first();
87					indexMenu3 = menuSel3.data("submenuindex-second");
88				}
89				if(indexMenu3 != undefined)
90					translateX = translateX + translateX;
91			}
92			
93			if($(".mobile-nav-item-4.sel").length > 0) {
94
95				if($(".mobile-nav-item-4.hasSub").hasClass('sel').length == 0 || $(".mobile-nav-item-4.hasSub").hasClass('sel').length == undefined){
96					if($(".mobile-nav-item-4.sel").length>1){
97						var menuSel4 = $(".mobile-nav-item-4.sel").last();
98					}
99					else{
100						var menuSel4 = $(".mobile-nav-item-4.sel").first();
101					}
102					indexMenu4 = menuSel4.data("submenuindex-second");
103				}else{
104					var menuSel4 = $(".mobile-nav-item-4.hasSub.sel").first();
105					indexMenu4 = menuSel4.data("submenuindex-third");
106				}
107				
108				translateX = translateX + (100 / size);
109			}
110
111			if(menuSel.data("menuindex") != undefined) {
112				$(".mobile-main-submenu-group, .mobile-menu-sub").addClass("hidden");
113				$(".mobile-main-submenu-group[data-menuindex="+indexMenu+"]").removeClass("hidden");
114				$(".mobile-main-submenu-group[data-menuindex="+indexMenu+"] .mobile-menu-sub:not([data-submenuindex])").removeClass("hidden");
115				
116				if(menuSel2 != undefined){
117					if(indexMenu2 != undefined){
118						
119						if(menuSel2.parent().hasClass('list-name')){
120							$(".mobile-main-submenu-group, .mobile-menu-sub").addClass("hidden");
121							$(".mobile-main-submenu-group[data-menuindex="+indexMenu+"]").removeClass("hidden");
122							$(".mobile-main-submenu-group[data-menuindex="+indexMenu+"]").parent().removeClass("hidden");
123							$(".mobile-main-submenu-group[data-menuindex="+indexMenu+"] .mobile-menu-sub:not([data-submenuindex])").removeClass("hidden");
124						}else{
125							$(".mobile-main-submenu-group, .mobile-menu-sub").addClass("hidden");
126							$(".mobile-main-submenu-group[data-menuindex="+indexMenu+"][data-menuindex-second="+indexMenu2+"]").removeClass("hidden");
127							$(".mobile-main-submenu-group[data-menuindex="+indexMenu+"][data-menuindex-second="+indexMenu2+"]").parent().removeClass("hidden");
128							$(".mobile-main-submenu-group[data-menuindex="+indexMenu+"][data-menuindex-second="+indexMenu2+"] .mobile-menu-sub:not([data-submenuindex])").removeClass("hidden");
129						}
130						
131					}
132				}
133
134				if(menuSel3 != undefined){
135					if(indexMenu3 != undefined){
136						$(".mobile-main-submenu-group, .mobile-menu-sub").addClass("hidden");
137						$(".mobile-main-submenu-group[data-menuindex="+indexMenu+"_"+indexMenu3+"]").removeClass("hidden");
138						$(".mobile-main-submenu-group[data-menuindex="+indexMenu+"_"+indexMenu3+"]").parent().removeClass("hidden");
139						$(".mobile-main-submenu-group[data-menuindex="+indexMenu+"_"+indexMenu3+"] .mobile-menu-sub:not([data-submenuindex])").removeClass("hidden");
140						
141					}
142				}
143				if(menuSel4 != undefined){
144					if(indexMenu4 != undefined){
145						$(".mobile-main-submenu-group, .mobile-menu-sub").addClass("hidden");
146						$(".mobile-main-submenu-group[data-menuindex="+indexMenu+"_"+indexMenu3+"_"+indexMenu4+"]").removeClass("hidden");
147						$(".mobile-main-submenu-group[data-menuindex="+indexMenu+"_"+indexMenu3+"_"+indexMenu4+"]").parent().removeClass("hidden");
148						$(".mobile-main-submenu-group[data-menuindex="+indexMenu+"_"+indexMenu3+"_"+indexMenu4+"] .mobile-menu-sub:not([data-submenuindex])").removeClass("hidden");
149						
150					}
151				}
152				
153				$('#mobile-holder').addClass("disableTransitionDuration").css('transform', 'translateX(-'+translateX+'%)');
154			}
155
156			setTimeout(function(){
157				$('#mobile-holder').removeClass("disableTransitionDuration");
158			}, 50);
159		}
160	}
161
162	$rootScope.openMobileMenu = function(){
163		$rootScope.header.headroom.enable = $rootScope.menu_mobile.open;
164		$rootScope.menu_mobile.open = !$rootScope.menu_mobile.open;
165
166		if($rootScope.menu_mobile.open) {
167			lockWindowScroll.lock();
168			$('body').addClass('menu-mobile-opened show-containerSite');
169			if(window.innerWidth >= 768) {
170				$("#containerSite-mask").addClass("overlay");
171			}
172
173			if(window.innerWidth >= 768 && window.innerWidth < 1200) {
174				if($(window).scrollTop() > 0) {
175					if($('body').hasClass('headerCampaignVisibleTopHeader') && $(window).scrollTop() < 36 || $('body').hasClass('bannerWelc
175omeGiftVisible') && $(window).scrollTop() < 40) {
176						$(window).scrollTop(0);
177					}
178				}
179			}
180			
181			setTimeout(function(){
182				$("#containerSite-mask, .slideout-menu").addClass('open-menu-css-animation');
183			});
184
185			if(window.innerWidth < 768) {
186				setTimeout(function(){
187					$('#containerSite').addClass('overlay');
188				}, 250);
189			}
190
191			$('.rdc-lozad-menu-mobile').each(function(){
192				$(this).attr('src', $(this).attr('data-src'));
193			});
194			$('.rdc-lozad-menu-mobile').removeClass('rdc-lozad-menu-mobile');
195
196		} else {
197			if(window.innerWidth < 768) {
198				$('#containerSite').removeClass('overlay');
199			}
200			$("#containerSite-mask, .slideout-menu").removeClass('open-menu-css-animation');
201			setTimeout(function(){
202				$("#containerSite-mask").removeClass("overlay");
203				$('body').removeClass('menu-mobile-opened show-containerSite');
204			}, 250);
205			lockWindowScroll.unlock();
206		}
207	}
208
209	$("#containerSite-mask").on("click", function(ev){
210		ev.stopPropagation();
211		setTimeout(function(){
212			$rootScope.openMobileMenu();
213			$rootScope.$digest();
214		});
215	});
216	$('#mobile-holder').on("click", '.mobile-nav-item.hasSub, .mobile-nav-item-2.hasSub, .mobile-nav-item-3.hasSub, .mobile-nav-item-4.hasSub', function(ev) {
217		ev.preventDefault();
218		if($(this).hasClass('mobile-accordion-item')) {
219			var accordionContainer = $(this).closest('.mobile-accordion-wrapper');
220	        if ($(this).hasClass('active')) {
221	            $('.mobile-accordion-item', accordionContainer).removeClass('active sel');
222	            $('.mobile-accordion-group', accordionContainer).stop(true, true).slideUp('normal');
223	            $('.rdc-icon-arrowup', accordionContainer).addClass('rdc-icon-arrowdown').removeClass('rdc-icon-arrowup');
224				
225	        } else {
226				
227	            $('.mobile-accordion-item', accordionContainer).removeClass('active sel');
228	            $('.mobile-accordion-item .rdc-icon-arrowup', accordionContainer).removeClass('rdc-icon-arrowup').addClass('rdc-icon-arrowdown');
229	            $('.mobile-accordion-group', accordionContainer).slideUp('normal');
230	            $(this).addClass('active sel');
231	            this2 = $(this).closest('.mobile-menu-group');
232	            $('.rdc-icon-arrowdown', this2).addClass('rdc-icon-arrowup').removeClass('rdc-icon-arrowdown');
233	            $('.mobile-accordion-group', this2).stop(true, true).slideDown('normal');
234	        }
235		} else {
236			var menuindex = $(this).data("menuindex");
237			var menuindex_second = $(this).data("submenuindex");
238			var submenuindex = $(this).data("submenuindex-second");
239			var submenuindex_second = $(this).data("submenuindex-third");
240
241			indexMenu = menuindex;
242			indexMenu2 = menuindex_second;
243			indexMenu3 = submenuindex;
244			indexMenu4 = submenuindex_second;
245
246			translateX = 100 / $("#mobile-holder > div").length;
247			if(menuindex != undefined) {
248				$(".mobile-main-submenu-group, .mobile-menu-sub").addClass("hidden");
249				$(".mobile-main-submenu-group[data-menuindex="+menuindex+"]").removeClass("hidden");
250				$(".mobile-main-submenu-group[data-menuindex="+menuindex+"] > .mobile-menu-sub:not([data-submenuindex])").removeClass("hidden");
251				$('.mobile-menu-sub-scroll').scrollTop(0);
252
253				if(menuindex_second != undefined) {
254					$(".mobile-main-submenu-group[data-menuindex="+menuindex+"_"+menuindex_second+"]").removeClass("hidden");
255					$(".mobile-main-submenu-group[data-menuindex="+menuindex+"_"+menuindex_second+"] > .mobile-menu-sub:not([data-submenuindex])").removeClass("hidden");
256					translateX = translateX + 100 / $("#mobile-holder > div").length;
257				}
258				
259				if(submenuindex != undefined) {
260
261					$(".mobile-main-submenu-group[data-menuindex="+menuindex+"_"+menuindex_second+"_"+submenuindex+"]").removeClass("hidden");
262					$(".mobile-main-submenu-group[data-menuindex="+menuindex+"_"+menuindex_second+"_"+submenuindex+"] > .mobile-menu-sub:not([data-submenuindex])").removeClass("hidden");
263					translateX = translateX + 100 / $("#mobile-holder > div").length;
264				}
265				
266				$('#mobile-holder').css('transform', 'translateX(-'+translateX+'%)');
267			}
268		}
269	});
270
271	$('#mobile-main-menu-sub,#mobile-main-menu-sub-second,#mobile-main-menu-sub-third').on("click", '.return', function(ev) {
272		var parents = $("#mobile-holder > div").length;
273		var size = 100 / parents;
274		var _parent = $(this).closest('.menu-sub');
275		translateX = translateX - size;
276
277		$('.mobile-menu-group .mobile-nav-item').removeClass('sel'); //added new
278		$(".mobile-menu-sub .mobile-nav-item.sel").removeClass("sel");
279
280		if(indexMenu != undefined  && indexMenu2 != undefined) {
281			$(".mobile-main-submenu-group[data-menuindex="+indexMenu+"]").removeClass("hidden");
282			$(".mobile-main-submenu-group[data-menuindex="+indexMenu+"] > .mobile-menu-sub:not([data-submenuindex])").removeClass("hidden");
283
284		}
285
286		if(indexMenu2 != undefined  && indexMenu3 != undefined) {
287			$(".mobile-main-submenu-group[data-menuindex="+indexMenu+"]").removeClass("hidden");
288			$(".mobile-main-submenu-group[data-menuindex="+indexMenu+"] > .mobile-menu-sub:not([data-submenuindex])").removeClass("hidden");
289
290		}
291		
292		if(indexMenu3 != undefined && indexMenu4 != undefined) {
293			$(".mobile-main-submenu-group[data-menuindex="+indexMenu2+"_"+indexMenu4+"]").removeClass("hidden");
294			$(".mobile-main-submenu-group[data-menuindex="+indexMenu2+"_"+indexMenu4+"] > .mobile-menu-sub:not([data-submenuindex])").removeClass("hidden");
295		}
296		
297		$('#mobile-holder').css('transform', 'translateX(-'+translateX+'%)');
298		setTimeout(function(){
299			$(".mobile-main-submenu-group", _parent).addClass("hidden");
300			$(".mobile-menu-sub", _parent).addClass("hidden");
301		}, 200);
302	});
303
304	var reloadmenu_progress = false
305	$scope.reloadmenu = function() {
306		if(reloadmenu_progress) return;
307		reloadmenu_progress = true;
308
309		$('body').removeClass('menu-mobile-opened show-containerSite');
310		$("#containerSite").removeClass("overlay");
311		$("#containerSite-mask").removeClass("overlay").css("padding-top", 0);
312		$(".mobile-menu").removeClass("visible");
313		$('#menu, #mobile-holder, #mobile-main-menu').addClass("disableTransitionDuration");
314		$('#mobile-holder, #mobile-main-menu').addClass("disableTransitionDuration").css('transform', 'translateX(0)');
315
316		if($rootScope.menu_mobile.open) {
317			$rootScope.openMobileMenu();
318			$rootScope.$digest();
319		}
320
321		setTimeout(function(){
322			$scope.positionMenuSelected();
323			$(".disableTransitionDuration").removeClass("disableTransitionDuration");
324			reloadmenu_progress = false;
325		}, 100);
326	}
327
328	$scope.submitCountryMobile = function(elem) {
329		let form 	= $(elem.currentTarget);
330		let lang 	= $('#lg-mobile').val();
331		let cid 	= $('#country-mobile').val();
332		let code 	= $('#lg-mobile option:selected').attr("data-code");
333		form.find("[type=submit]").addClass("loader");
334		$.get('/api/api.php/setLang/'+lang+'/'+cid).done(function() {
335			location = JSVarsMenuMobile.shop.sLocation;
336		});
337	}
338
339	$('#country-mobile').on('change', function(){
340		var field = $(this);
341		var form = field.closest('form');
342		var flag = $('option:selected', field).attr('data-code');
343		var lg = $('option:selected', field).attr('data-lg');
344		$(field).parents('.select').css('background-image', 'url('+JSVarsMenuMobile.shop.CDN+'plugins/system/sysimgs/flags/'+flag+'.png');
345		if(lg != '') $('#lg', form).val(lg);
346	})
347
348	/*if((navigator.appVersion.indexOf("Win")!=-1) || (navigator.appVersion.indexOf("Mac")!=-1)) {
349		$(window).resize(function(){
350			$scope.reloadmenu();
351		});
352	} else {
353		window.matchMedia('(orientation: landscape)').addListener(function(m){
354			$scope.reloadmenu();
355		});
356	}*/
357});
358
359$(".search-mobile form[name='frm_search']").on("submit", function(){
360	if($(".search-mobile input[name='term']").val() == "" || $(".search-mobile input[name='term']").val().length < 2){return false;}
361});

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.