PageSourceSearch

https://edv-riese.de/js/twitterbs/responsive.menubuilder.js?ts=1783871606

js edv-riese.de collected 2026-10-09 03:07:31 UTC 4,411 bytes, 139 lines download raw bytes

1$(document).ready(function() {
2	function responsiveMenu(defaultMenuSelector, aMenuItems) {
3
4
5		//transform the numeric menuitem array to an (assoc) array object
6		function menuArrayToObject(aMenuItems) {
7			var aMenu = [];
8
9			for(var item in aMenuItems) {    
10				var props = [];
11
12				for(var property in aMenuItems[item]) {
13					props.push(aMenuItems[item][property]);
14				}
15
16				aMenu[item] = {
17					label:  props[0],
18					url:    props[1],
19					prop3:  props[2], //???
20					prop4:  props[3], //???
21					prop5:  props[4], //???
22					target: props[5],
23					level:  props[6],
24					prop8:  props[7] //???
25				};
26			}
27
28			return aMenu;
29		}
30
31		//generate menu html
32		function getResponsiveMenuHtml(aMenuItems) {
33			var oMenuItems = menuArrayToObject(aMenuItems),
34			    html = 
35				    '<div id="menu_table_tablet">' + 
36				    '<div class="navbar">' + 
37				    '<div class="navbar-inner">' + 
38				    '<div class="container">' + 
39				    '<a data-target=".navbar-responsive-collapse" data-toggle="collapse" class="btn btn-navbar collapsed">' + 
40				    '<span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span>' + 
41				    '</a><a data-target=".navbar-responsive-collapse" data-toggle="collapse" href="#" class="brand">Menu</a>' + 
42				    '<div class="nav-collapse navbar-responsive-collapse collapse" style="height: 0px;"><ul class="nav">';
43
44			for(var i=0; i <= oMenuItems.length-1; i++) {
45				var item = oMenuItems[i],
46					nextItem = (oMenuItems[i+1]) ? oMenuItems[i+1] : false;
47
48				item.label = item.label.substring(item.level);
49
50				// will have one submenu
51				if(item.level < nextItem.level) {
52					if(nextItem.level > '1'){
53						html += '<li class="dropdown-submenu open">';
54					}else {
55						html += '<li class="dropdown">';
56					}
57
58					html += '<a href="'+item.url+'">'+item.label+'</a>';
59					html += '<a href="#" data-toggle="dropdown" class="dropdown-toggle" style="float: right; position: absolute; top:2px; right:0;" ><b class="caret"></b></a>';
60					html += '<ul class="dropdown-menu">';
61				// in the last submenu item, must close the submenu(s)
62				} else if(item.level > nextItem.level) {
63					html += '<li><a href="'+item.url+'" target="'+item.target+'">'+item.label+'</a></li>';
64					var diff = item.level - nextItem.level;
65					while (diff>0) {
66						html += '</ul></li>';
67						diff--;
68					}
69					
70				} else {
71					html += '<li><a href="'+item.url+'" target="'+item.target+'">'+item.label+'</a></li>';
72				}
73			}
74
75			html += '</ul></div><!-- /.nav-collapse --></div></div><!-- /navbar-inner --></div>';
76			return html;
77		}
78
79		//determine active menu element by comparing page url and menu item href attributes
80		function setActiveNavigationItem() {
81			var path = window.location.pathname;
82			path = path.replace(/\/$/, "");
83			path = decodeURIComponent(path);
84
85			$(".nav a").each(function () {
86				var href = $(this).attr('href');
87				if (path.substring(0, href.length) === href) {
88					$(this).closest('li').addClass('active');
89				}
90			});
91		}
92
93		//insert menu into DOM, after given default menu selector
94		var originalMenu = $(defaultMenuSelector);
95		if(originalMenu.length === 0) {
96			originalMenu = $('.topMenu').parents('div.block');
97		}
98
99		originalMenu.after(getResponsiveMenuHtml(aMenuItems));
100
101		//highlight current menu item / location
102		setActiveNavigationItem();
103
104		//fix submenu dropdowns
105		$('body').on('click', function(e) {
106			$('.dropdown-submenu').removeClass('open').addClass('closed');
107		});
108
109		$('.dropdown-submenu').on('click', function(e) {
110			e.stopPropagation();
111
112			var $this=$(this);
113			var parent=$this.parent().parent();
114
115			if ( $(e.target).parent().hasClass('dropdown-submenu') ) {
116				e.preventDefault();
117			}
118
119			if($this.hasClass('open')) {
120				$this.removeClass('open').addClass('closed');
121			} else if(parent.hasClass('open')) {
122				if($this.hasClass('closed')) {
123					$this.removeClass('closed').addClass('open');
124				}
125			}
126		});
127	}
128
129	if (typeof menuResponsiveItems != "undefined" && menuResponsiveItems.length !== 0) {
130		responsiveMenu('#menu_table', menuResponsiveItems);
131	} else if(typeof menuItemsDropDownMenu !== "undefined" && menuItemsDropDownMenu.length !== 0) {
132		responsiveMenu('#menu_table', menuItemsDropDownMenu);
133	} else if(typeof menuItems !== "undefined") {
134		responsiveMenu('#menu_table', menuItems);
135	} else {
136		//nothing provided an menuItems array to build the response menu!
137		//
138	}
139});

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.