PageSourceSearch

http://techno35.ru/design/auto/js/top_menu_lvl2.js

js techno35.ru collected 2026-10-04 23:56:25 UTC 5,865 bytes, 143 lines download raw bytes

1function RePositionSubMenu()
2{
3	$('.submenu').each(function(index1){
4		var want_c1 = "";
5		var want_c2 = "";
6		var want_c3 = "";
7		if($(this).children('.element_in_menu').length>0)
8		{
9			$(this).children('.columnehen2_1').each(function(index2){
10				want_c1 = want_c1 + $(this)[0].outerHTML;
11			});
12			$(this).children('.columnehen2_2').each(function(index2){
13				want_c2 = want_c2 + $(this)[0].outerHTML;
14			});
15			want_c3 = $(this).children('.element_in_menu')[0].outerHTML;
16			$(this).children('.element_in_menu').addClass('remove_me_from_menu');
17			$('.submenu:eq('+index1+')').append('<table border="0" cellpadding="0" cellspacing="0" class="js-table"><tr><td class="c1" valign="top">'+want_c1+'</td><td class="c2" valign="top">'+want_c2+'</td><td><div class="scissors"><div class="scissors-dashed"></div></div></td><td class="c3 c3element_in_menu" valign="top">'+want_c3+'</td></tr></table>');
18			$('.submenu:eq('+index1+')').show();
19			$('div.scissors').css('height', $('.submenu:eq('+index1+')').children('.js-table').outerHeight(true) );
20			$('.submenu:eq('+index1+')').hide();
21		} else {
22			$(this).children('.column_1').each(function(index2){
23				want_c1 = want_c1 + $(this)[0].outerHTML;
24			});
25			$(this).children('.column_2').each(function(index2){
26				want_c2 = want_c2 + $(this)[0].outerHTML;
27			});
28			$(this).children('.column_3').each(function(index2){
29				want_c3 = want_c3 + $(this)[0].outerHTML;
30			});
31			$('.submenu:eq('+index1+')').append('<table border="0" cellpadding="0" cellspacing="0" class="js-table"><tr><td class="c1" valign="top">'+want_c1+'</td><td class="c2" valign="top">'+want_c2+'</td><td class="c3" valign="top">'+want_c3+'</td></tr></table>');
32		}
33		$('.submenu:eq('+index1+')').children('.sblock').wrapAll("<div class='remove_me_from_menu'></div>");
34	});
35	$('.remove_me_from_menu').remove();
36	CheckMoreItemsOnResize();
37}
38
39function CheckMoreItems()
40{
41	$('.top_menu_lvl2').css('overflow', 'visible');
42	
43	var idealTop = $('.top_menu_lvl2 .vis:first').offset().top;
44	var badTop = $('.top_menu_lvl2 .vis:last').offset().top;
45	if(idealTop!=badTop)
46	{
47		var menuLastGoodIndex = 0;
48		$('.top_menu_lvl2 .vis').each(function(index) {
49			if(parseInt($(this).offset().top)==parseInt(idealTop))
50			{
51				menuLastGoodIndex = index;
52			}
53		});
54		var html = '<li class="moremenu"><a class="moremenu-a" href="#"><span> &nbsp; &nbsp; &nbsp; </span></a>';
55		var html = html + '<div class="moremenu-sub"><div class="moremenu-title"><span> &nbsp; &nbsp; &nbsp; </span></div>';
56		$('.top_menu_lvl2 .vis:gt('+(menuLastGoodIndex)+')').each(function(index){
57			html = html + '<a class="moremenu-link" href="'+$(this).children('a.first').attr('href')+'">'+$(this).find('span.first').html()+'</a>';
58		});
59		html = html + '</div></li>';
60		$('.top_menu_lvl2 .vis:gt('+(menuLastGoodIndex)+')').wrapAll("<li class='moremenulinks'></li>");
61		$('.moremenulinks').hide();
62		$('.top_menu_lvl2').append( html );
63	}
64	
65	// reposition submenu
66	RePositionSubMenu();
67}
68
69function CheckMoreItemsOnResize()
70{
71	/* hider part */
72	CheckMoreItemsOnResizeHider();
73	
74	/* shower part */
75	if($('.vis_deadlink').length>0)
76		CheckMoreItemsOnResizeShower();
77}
78function CheckMoreItemsOnResizeHider()
79{
80	var lastVisLeft = $('.top_menu_lvl2').children('.vis:last').offset().left;
81	var lastVisWidth = $('.top_menu_lvl2').children('.vis:last').outerWidth();
82	var moremenuLeft = $('.top_menu_lvl2').children('.moremenu').offset().left;
83	if((lastVisLeft+lastVisWidth)>(moremenuLeft-30))
84	{
85		var link = $('.top_menu_lvl2').children('.vis:last').children('a').attr('href');
86		var text = $('.top_menu_lvl2').children('.vis:last').children('a').children('span').html();
87		var newLink = '<a class="moremenu-link" href="' + link + '">
87' + text + '</a>';
88		$('.moremenu-title').after( newLink );
89		$('.top_menu_lvl2').children('.vis:last').addClass('vis_deadlink').removeClass('vis').hide();
90	}
91}
92function CheckMoreItemsOnResizeShower()
93{
94	var firstDeadWidth = $('.top_menu_lvl2').children('.vis_deadlink:first').outerWidth();
95	var lastVisLeft = $('.top_menu_lvl2').children('.vis:last').offset().left;
96	var lastVisWidth = $('.top_menu_lvl2').children('.vis:last').outerWidth();
97	var moremenuLeft = $('.top_menu_lvl2').children('.moremenu').offset().left;
98	if((moremenuLeft-lastVisLeft-lastVisWidth)>(firstDeadWidth+30))
99	{
100		var link = $('.top_menu_lvl2').children('.vis_deadlink:first').children('a').attr('href');
101		$('.moremenu-sub').find('a[href="'+link+'"]').remove();
102		$('.top_menu_lvl2').children('.vis_deadlink:first').addClass('vis').removeClass('vis_deadlink').removeAttr('style');
103	}
104}
105
106$(document).ready(function(){
107	$('.vis').bind('mouseenter',function(){
108		$(this).children('.submenu').show();
109		$(this).addClass('vis-hovered');
110		if($(this).children('.submenu').length>0)
111		{
112			var offsleft1 = $('.top_menu_lvl2').offset().left + $('.top_menu_lvl2').outerWidth();
113			var offsleft2 = $(this).children('.submenu').offset().left + $(this).children('.submenu').outerWidth();
114			if((offsleft2-1)>offsleft1)
115			{
116				$(this).children('.submenu').css('left','-'+(offsleft2-offsleft1)+'px');
117				var titleOffset = $(this).offset().left-$(this).children('.submenu').children('.sblock-title').offset().left-1;
118				$(this).children('.submenu').children('.sblock-title').css('left', (titleOffset-1)+'px' );
119				$(this).children('.submenu').addClass('already_moved');
120			}
121		}
122	});
123	$('.vis').bind('mouseleave',function(){
124		$(this).children('.submenu').hide();
125		$(this).removeClass('vis-hovered');
126	});
127	
128	/* more links */
129	$('.moremenu').live('mouseenter',function(){
130		$(this).children('.moremenu-sub').show();
131		$(this).addClass('moremenu-hovered');
132	});
133	$('.moremenu').live('mouseleave',function(){
134		$(this).children('.moremenu-sub').hide();
135		$(this).removeClass('moremenu-hovered');
136	});
137	
138	CheckMoreItems();
139	
140	$(window).resize(function(){
141		CheckMoreItemsOnResize();
142	});
143});

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.