PageSourceSearch

http://www.ascg.co.me/onama/vertikalna-files/scasno2.js

js ascg.co.me collected 2026-10-02 22:49:46 UTC 20,088 bytes, 668 lines download raw bytes

1vbasno2n=xppr('asno2_0.png');vbasno2o=xppr('asno2_1.png');vbusno2n=xppr('usno2_0.png');vbusno2o=xppr('usno2_1.png');vbcsno2n=xppr('csno2_0.png');vbcsno2o=xppr('csno2_1.png');vbdsno2n=xppr('dsno2_0.png');vbdsno2o=xppr('dsno2_1.png');vbbsno2n=xppr('bsno2_0.png');vbbsno2o=xppr('bsno2_1.png');vbssno2n=xppr('ssno2_0.png');vbssno2o=xppr('ssno2_1.png');vb3sno2n=xppr('3sno2_0.png');vb3sno2o=xppr('3sno2_1.png');vbrsno2n=xppr('rsno2_0.png');vbrsno2o=xppr('rsno2_1.png');vb6sno2n=xppr('6sno2_0.png');vb6sno2o=xppr('6sno2_1.png');vb2sno2n=xppr('2sno2_0.png');vb2sno2o=xppr('2sno2_1.png');vbtsno2n=xppr('tsno2_0.png');vbtsno2o=xppr('tsno2_1.png');vbpsno2n=xppr('psno2_0.png');vbpsno2o=xppr('psno2_1.png');vbosno2n=xppr('osno2_0.png');vbosno2o=xppr('osno2_1.png');vbwsno2n=xppr('wsno2_0.png');vbwsno2o=xppr('wsno2_1.png');vb4sno2n=xppr('4sno2_0.png');vb4sno2o=xppr('4sno2_1.png');vb5sno2n=xppr('5sno2_0.png');vb5sno2o=xppr('5sno2_1.png');vb7sno2n=xppr('7sno2_0.png');vb7sno2o=xppr('7sno2_1.png');vb8sno2n=xppr('8sno2_0.png');vb8sno2o=xppr('8sno2_1.png');vb9sno2n=xppr('9sno2_0.png');vb9sno2o=xppr('9sno2_1.png');vbnsno2n=xppr('nsno2_0.png');vbnsno2o=xppr('nsno2_1.png');var arrowChar='»';/*
2 *==============================================================================
3 *
4 *     Copyright (c) 2007-2009, by Vista-buttons.com
5 *     Version 2.1.2i
6 *     http://vista-buttons.com
7 *
8 *==============================================================================
9 * 
10 * todo:
11 * - item move into anchor
12 * - item over using css
13 * - item base on li structure
14 *
15 * variables:
16 *   @btIdPref
17 *   @pItem
18 *   @ulIdPref
19 *   @frameSubmenu
20 *
21 */
22 
23 
24var btIdPref='vb';
25
26function xppr(im) {
27	var i=new Image();
28	i.src=vbImgPath+'bt'+im;
29	return i;
30};
31
32function xpe(id) {
33	x=id.substring(0,id.length-1);
34	if(document[btIdPref+x])document[btIdPref+x].src=eval(btIdPref+id+'.src');
35};
36
37
38/*
39*	Vista buttons engine functions
40*/ 
41function vistaButtons(params){
42	// init global vars
43	var xobtn = null; // curent element text identifier curent
44	var menuContId = 'xpMenuCont';
45	var ulIdPref='vbUL_';
46	
47	
48	//Detect browser
49	var isDOM=document.getElementById; //DOM1 browser (MSIE 5+, Netscape 6, Opera 5+)
50	var isOp=isO5=window.opera && isDOM; //Opera 5+
51	var isOp7=isOp && document.readyState; //Opera 7+
52	var isIE=document.all && document.all.item && !isOp; //Microsoft Internet Explorer 4+
53	var isMz=isDOM && navigator.appName=="Netscape"; //Mozilla or Netscape 6.*
54
55
56	
57	/*
58	 *  vistabuttons engine and global object
59	 */
60	
61	/* create new menu and insert it to page */
62	document.write('<div id="' + menuContId + '" ></div>');
63	var menuCont = document.getElementById(menuContId);
64		
65	var ULs = document.getElementsByTagName('UL');
66	for (var i=0, cnt=ULs.length; i<cnt; i++)
67		if (ULs[i].id
68		&& (ULs[i].id.substring(0, ulIdPref.length)==ulIdPref) // if is xp UL
69		&& !(
70			(ULs[i].parentNode)
71			&& (ULs[i].parentNode.parentNode)
72			&& (ULs[i].parentNode.parentNode.id.substring(0, ulIdPref.length)==ulIdPref)
73			)
74		)
75		{
76			// hide vista-buttons link
77			var A=document.getElementById(ULs[i].id+'a');
78			if (A) A.style.display='none';
79		
80			createMenu(ULs[i], 0, 0, params, menuCont);
81			ULs[i].style.display = 'none';
82		};
83		
84	
85
86	/*
87	 * create menu
88	 * structure:	<div - menu >
89	 *			<table>
90	 *				<tr - item>
91	 *					<td - for icon><img></td>
92	 *					<td - for label><a></a></td>
93	 *					<td - for arrow><img></td>
94	 *				</tr>
95		 *				...
96	 *			</table>
97	 *		</div>
98	 * @ulParent - main parent of menu UL
99	 * @iParent - parent item
100	 * @level - level
101	 */
102	function createMenu(ulParent, iParent, level, params, owner){
103	
104		// create menu obj
105		var oMenu = document.createElement((params.subFrame?'table':'div'));
106		owner.appendChild(oMenu);
107		if (oMenu.tagName == 'TABLE') oMenu.cellSpacing = 0; // set even if don't need in concert
108		
109		
110		// assign menu content and crate a frame if need
111		var oMenuCont;
112		if (params.subFrame)
113			for (var i=0; i<3; i++){
114				var row = oMenu.insertRow(-1);
115				for (var j=0; j<3; j++){
116					var cell = row.insertCell(-1);
117					if (i==1 && j==1) oMenuCont = cell
118					else cell.className = 'imgFrame'+i+j;
119				}
120			}
121		else
122			oMenuCont = (oMenu.tagName == 'DIV')? oMenu: oMenu.insertRow(-1).insertCell(-1);
123		
124		oMenuCont.className = 'subContent';
125		
126		
127		var oTable = document.createElement('table');
128		oMenuCont.appendChild(oTable);
129
130		oMenu.id = ulParent.id + 'tbl';
131		oMenu.className = ulParent.className; // inherite style from menu definition with ul
132		//oTable.style.visibility = 'hidden';
133		oMenu.style.position = 'absolute'; // set here without fail
134		oMenu.xpItems = [];		/* submenu items list */
135		oMenu.iParent = iParent;
136		oMenu.level = level;
137		
138		oMenu.style.zIndex = 9 + oMenu.level;
139		oTable.cellSpacing = 0;
140
141		// set menu events and metods
142		oMenu.onmouseover = function (){
143			xpStopTimeOut(this);
144		};
145		oMenu.onmouseout = function (){
146			xpStartTimeOut(xpShownMenu)
147		};
148		oMenu.xpClearMenuMark = function(){
149			for (var j = 0; j < this.xpItems.length; j++){
150				p = this.xpItems[j];
151				if (p.tagName == 'TR') {
152					p.className = p.className.replace('over','');
153					if (p.className.indexOf('popup')<0)	p.clrOverImg();
154				}
155			};
156		};
157		
158		oMenu.smShown = 0;
159		
160		/* create items  - organizing circle for LI */
161		for (var i=0, cntLI=ulParent.childNodes.length; i<cntLI; i++){
162			var oLI = ulParent.childNodes[i];
163			if (oLI.tagName != 'LI') continue;
164			
165			
166			/* 
167			*	create menu item
168			*/
169			
170			// create item base
171			var oItem = oTable.insertRow(-1);
172			
173					
174			// parse LI content 
175			// <img src="icon">     <a> Item Label </a>     <img src="arrow">     <ul></ul>
176			var InnerAnchor = 0;
177			oItem.Img = null;
178			oItem.ImgOver = null;
179			var InnerUl = 0;
180			oItem.ImgArrow = null;
181			oItem.ImgArrowOver = null;
182
183			// parse LI content
184			for (var j=0; j < oLI.childNodes.length; j++)
185				if (oLI.childNodes[j].tagName == 'A') InnerAnchor = oLI.childNodes[j];
186				else if (oLI.childNodes[j].tagName == 'IMG'){
187					if (!InnerAnchor){
188						if (!oItem.Img) oItem.Img = oLI.childNodes[j];
189						else oItem.ImgOver = oLI.childNodes[j]
190					}
191					else {
192						if(!oItem.ImgArrow) oItem.ImgArrow = oLI.childNodes[j];
193						else oItem.ImgArrowOver = oLI.childNodes[j]
194					}
195				}
196				else if (oLI.childNodes[j].tagName == 'UL') InnerUl = oLI.childNodes[j];
197				else if (oLI.childNodes[j].tagName == 'DIV'){
198					for (var k=0; k<oLI.childNodes[j].childNodes.length; k++)
199						if (oLI.childNodes[j].childNodes[k].tagName=='UL') InnerUl = oLI.childNodes[j].childNodes[k];
200				}
201
202
203			if (InnerAnchor || InnerUl || oItem.ImgArrow){ // it is not a separator
204
205				var oItemCont = oItem;
206				oItem.className = oLI.className;
207				oItem.menu = oMenu;		
208				oItem.setPopup = function(){
209					this.className +=  ' popup';
210				};
211				oItem.clrPopup = function(){
212					this.className = this.className.replace('popup','');
213					if (this.className.indexOf('over')<0) this.clrOverImg();
214				};
215				oItem.clrOverImg = function(){
216					if (this.Img) this.Img.style.display = 'inline';
217					if (this.ImgOver) this.ImgOver.style.display = 'none';
218					if (this.ImgArrow) this.ImgArrow.style.display = 'inline';
219					if (this.ImgArrowOver) this.ImgArrowOver.style.display = 'none'
220				};
221			
222				// create item content
223				var oTDIMG = oItemCont.insertCell(-1);
224				var oTDLabel = oItemCont.insertCell(-1);
225				var oTDArrow = oItemCont.insertCell(-1);
226				
227				oTDIMG.style.borderRightWidth = '0px';
228				oTDLabel.style.borderRightWidth = '0px';
229				oTDLabel.style.borderLeftWidth = '0px';
230				oTDArrow.style.borderLeftWidth = '0px';
231				oTDIMG.style.paddingRight = '4px';
232				oTDLabel.style.paddingRight = '4px';
233				oTDLabel.style.paddingLeft = '4px';
234				oTDArrow.style.paddingLeft = '4px';
235
236				if (oItem.Img) oTDIMG.appendChild(oItem.Img);
237				else oTDIMG.innerHTML = '&nbsp;';
238				if (oItem.ImgOver) {
239					oItem.ImgOver.style.display = 'none';
240					oTDIMG.appendChild(oItem.ImgOver);
241				};
242
243				// create anchor with link execution
244				if (InnerAnchor){
245					var newText = document.createElement('SPAN');
246					newText.innerHTML = InnerAnchor.innerHTML;
247
248					if (InnerAnchor.href.indexOf('.pdf')>=0 && document.all)
249						oTDLabel.appendChild(newText)
250					else{
251						oTDLabel.appendChild(InnerAnchor);
252						
253						// off standart click 
254						InnerAnchor.onclick = function(){
255							return false;
256						};
257					};
258					
259					oItem.linkHref = InnerAnchor.href;
260					oItem.linkTarget = InnerAnchor.target;
261					
262					/* add item to menu info */
263					with(oMenu) xpItems[xpItems.length] = oItem;
264					
265					// define my click handle event
266					oItem.onclick = function(){
267						if (this.linkHref)
268							open(this.linkHref, (this.linkTarget? this.linkTarget :"_self"));
269					}
270				}
271				else oTDLabel.innerHTML = '&nbsp;';
272
273				// set item events
274				oItem.onmouseover = function (){
275					// clear other mark
276					this.menu.xpClearMenuMark();
277					this.className += ' over';// mark this item
278					if (this.ImgOver){
279						this.Img.style.display = 'none';
280						this.ImgOver.style.display = 'inline';
281					};
282					if (this.ImgArrowOver){
283						this.ImgArrow.style.display = 'none';
284						this.ImgArrowOver.style.display = 'inline';
285					};
286
287					if (this.smPopup) xpshowmenu(this.smPopup, 1, this); // show new menu
288					else xpStartTimeOut(this.menu.smShown); // hide bug
289				};
290				oItem.onmouseout = function (){
291					this.menu.xpClearMenuMark();
292				};
293
294				// define submenu
295				if (InnerUl){
296					// set event for over
297					oTDArrow.className = 'arrow';
298					if (oItem.ImgArrow){ 
299						oTDArrow.appendChild(oItem.ImgArrow);
300						if (oItem.ImgArrowOver){
301							oItem.ImgArrowOver.style.display = 'none';
302							oTDArrow.appendChild(oItem.ImgArrowOver)
303						}
304					}
305					else {
306						if (typeof(arrowChar)!='undefined' && arrowChar){
307							oTDArrow.appendChild(document.createElement('a'));
308							oTDArrow.lastChild.innerHTML = arrowChar;
309						}
310						else oTDArrow.innerHTML = '&nbsp;';
311					};
312
313					oItem.smPopup = createMenu(InnerUl, oItem, level + 1, params, owner);
314				}
315				else oTDArrow.innerHTML = '&nbsp;';
316			}
317			else{ // add a separator
318				oItem.className = 'separator';
319				var oTD = oItem.insertCell(-1);
320				oTD.colSpan = 3;
321				
322				oTD.innerHTML = '<div></div>';
323			}
324
325		}
326
327		return oMenu;
328	};
329
330
331
332	function xpDef(){
333	  for(var i=0; i<arguments.length; ++i){if(typeof(arguments[i])=='undefined') return false;}
334	  return true;
335	};
336
337
338	function xpClientSize(){
339	
340		var x=0,y=0,w=0,h=0,doc=document,win=window;
341
342		var cond = (!doc.compatMode || doc.compatMode == 'CSS1Compat') /*&& !win.opera */&& doc.documentElement;
343		// height
344		if(cond && doc.documentElement.clientHeight) h=doc.documentElement.clientHeight;
345		else if(doc.body && doc.body.clientHeight) h=doc.body.clientHeight;
346		else if(xpDef(win.innerWidth,win.innerHeight,doc.width)) {
347			h=win.innerHeight;
348			if(doc.width>win.innerWidth) h-=16;
349		};
350		//width
351		if(cond && doc.documentElement.clientWidth) w=doc.documentElement.clientWidth;
352		else if(doc.body && doc.body.clientWidth) w=doc.body.clientWidth;
353		else if(xDef(win.innerWidth,win.innerHeight,doc.height)) {
354			w=win.innerWidth;
355			if(doc.height>win.innerHeight) w-=16;
356		}
357
358		if(doc.documentElement && doc.documentElement.scrollLeft) x=doc.documentElement.scrollLeft;
359		else if(doc.body && xpDef(doc.body.scrollLeft)) x=doc.body.scrollLeft;
360
361		if(doc.documentElement && doc.documentElement.scrollTop) y=doc.documentElement.scrollTop;
362		else if(doc.body && xpDef(doc.body.scrollTop)) y=doc.body.scrollTop;
363		
364		return {x:x,y:y,w:w,h:h};
365	};
366
367
368
369	function xpObjectSize(o){
370		var w = (isOp&&!isOp7) ? o.style.pixelWidth  : document.layers ? o.clip.width /* Netscape 4.*/ : o.offsetWidth;
371		var h = (isOp&&!isOp7) ? o.style.pixelHeight : document.layers ? o.clip.height/* Netscape 4.*/ : o.offsetHeight;
372		return {x:w, y:h};
373	};
374
375
376
377	/*
378	 * calc absolute coordinates of specified object
379	 */
380	function xppos(obj){
381		var l=0, t=0;
382		while (obj) //  && obj.tagName!='BODY'
383		{
384			l += obj.offsetLeft;
385			t += obj.offsetTop;
386		
387			// some browser not right set offsetParent
388			//		if (obj.style && obj.style.position=='absolute') break;// this is a fix but not constant
389			
390			obj = obj.offsetParent;
391		};	
392
393		// fix special for opera
394		if (document.body) with (document){
395			if (body.leftMargin) l -= body.leftMargin;
396			if (body.topMargin) t -= body.topMargin
397		}
398
399		return {x: l, y: t};
400	};
401
402
403
404	/* show menu item
405	 * ind - part of object identifier
406	 * @isVertical - previous menu is vertical
407	 * @iParent - object created events identifier - this is about a anchor or previous menu item
408	 */
409	var xpshow = window.xpshow = function(ind, isVertical, iParent){
410		xpshowmenu(ulIdPref+ind+'tbl', isVertical, iParent);
411	}
412
413	function xpshowmenu(menu, isVertical, iParent)
414	{
415		menu = get(menu);
416		if (!menu) return;
417		
418		// already showing?
419		if (menu.style.visibility == 'visible'){
420			xpStopTimeOut(menu);
421			return;
422		};
423		
424		// hide previous menu in this level
425		if (iParent && iParent.menu)
426			xphide(iParent.menu.smShown);
427		if (!menu.level && (xpShownMenu != menu))
428			xphide(xpShownMenu);
429
430		// it saves button main menu
431		if (!menu.level) xobtn = menu.id.replace(ulIdPref,'').replace('tbl','');
432
433		// Parent - parent menu item
434		var parentObj =  (iParent.tagName == 'A')? iParent.parentNode: iParent;
435
436		var pos = xppos(parentObj); // parent coordinate
437		if (iParent && iParent.menu){
438			pos.x -= iParent.menu['scrollLeft'] || 0;
439			pos.y -= iParent.menu['scrollTop'] || 0;
440		};
441		var size = xpObjectSize(parentObj);
442
443		menu.xpMenuX = 1; // menu open direction
444		menu.xpMenuDx = 1; // menu open  offset
445		if (menu.level > 0){
446			// inherit direction from previous level
447			menu.xpMenuX = menu.iParent.menu.xpMenuX;
448			menu.xpMenuDx = menu.iParent.menu.xpMenuDx;
449		};
450		
451		// initialize property
452		menu.style.overflow = 'visible';
453		menu.style.height = 'auto';
454		menu.style.width = 'auto';
455
456		// fix bug position for some document structure
457		menu.style.left = '0px';
458		menu.style.top = '0px';
459		var parentAbs = xppos(menu);
460
461		// detect window size
462		var WinSize = xpClientSize();
463		var menuSize = xpObjectSize(menu);
464
465		// calc and init Y coordinate
466		var CalcedPos = xpCalcMenuPos(WinSize.y, WinSize.h, pos.y, size.y, menuSize.y, menu.xpMenuDx, isVertical);
467
468		menu.xpMenuDx = CalcedPos.align;
469
470		// fix scrollbar bug for opera
471		if (isOp && !menu.OrigWidth) menu.OrigWidth = menu.clientWidth;//menu.clientWidth;
472
473
474		// size was changed - resize height, open scroll, correct width for scrollbar
475		if (CalcedPos.size < menuSize.y){
476			//xpsm.style.overflowY = 'auto';
477			menu.style.overflow = 'auto';
478			//menu.style.overflow = 'visible';
479			if (isIE) menu.style.overflowX = 'visible';
480			if (isIE) menu.style.width = menu.offsetWidth + 17 + 'px';
481			else if (isMz) menu.style.magrinRight = 20;
482
483			menu.style.height = CalcedPos.size + 'px';
484			menu.scrollTop  = 0;
485			menu.scrollLeft = 0;
486
487			// fix scrollbar bug for opera
488			if (isOp) menu.style.width = menu.OrigWidth + 'px';
489		};
490
491		menu.style.top = CalcedPos.xy - parentAbs.y + 'px';
492
493		// calc and init X coorinate
494		menuSize = xpObjectSize(menu);
495		CalcedPos = xpCalcMenuPos(WinSize.x, WinSize.w, pos.x, size.x, menuSize.x, menu.xpMenuX, !isVertical);
496		menu.xpMenuX = CalcedPos.align;
497		if (CalcedPos.size < menuSize.x)// size was changed
498			if (menu.xpMenuX > 0)
499				CalcedPos.xy -= (menuSize.x - CalcedPos.size); // covered
500		menu.style.left = CalcedPos.xy - parentAbs.x + 'px';
501
502		menu.style.visibility = 'visible';
503
504		if (!menu.level) xpShownMenu = menu
505		else {
506			iParent.menu.smShown = menu;
507			iParent.setPopup();
508		}
509		
510	};
511
512	
513	
514
515	/*
516	 calc menu pos for one coordinate 
517	 use size of menu, parent object and screen, menu direction and parent menu orientation
518	 screenSize - size of screen
519	 parentXY, parentSize - position and size of parent menu
520	 size - size of selected menu
521	 align = +1(right, bottom), 0(center), -1(left, top)  - direction of menu
522	 oHoriz  = 0(vertical), 1(horizontal) - orientation of parent menu
523	*/
524	function xpCalcMenuPos(screenXY, screenSize, parentXY, parentSize, size, align, oHoriz){
525		var xy = parentXY;
526		var newSize = size;
527		var newAlign = align;
528		var space = 5; // space to document borders
529		
530		if ((align == 0) && (!oHoriz)) align = 1; //center may be only for horizontal orientation
531		
532		if (!oHoriz) {// VERTICAL
533			// |------<--------->)<---parent--->(<---------->---------|
534			// check the place for the future menu and correct orientation
535			if	(((newAlign >= 0) && (parentXY + parentSize + size > screenSize + screenXY - space)) // don't go in screen from the algin
536								|| ((newAlign < 0) && (parentXY - size < space))){
537				// correct direction about most of place
538				if (parentXY - screenXY > screenSize + screenXY - (parentXY + parentSize)) newAlign = -1; else newAlign = 1;
539			};
540			// set coordinate and size
541			if (newAlign >= 0){
542				xy = parentXY + parentSize;
543				if (screenSize + screenXY - space - xy < newSize) newSize = screenSize + screenXY  - space - xy;
544			}
545			else {
546				xy = parentXY - newSize;
547				if (xy - screenXY < space){
548					xy = space + screenXY;
549					newSize = parentXY - space - screenXY;
550				}
551			}
552		}
553		else {
554			// --------------- <---parent---> -------------------
555			//                      (<------------------------>--------|
556			//   |-----<--------------------->)
557			// if menu not go in screen
558			if (newSize > screenSize - 2*space) {
559				xy = space + screenXY;
560				newSize = screenSize - 2*space;
561			}
562			else{
563				// calc
564				xy = parentXY + parentSize/2 - newSize/2 + newAlign * (newSize/2 - parentSize/2);
565
566				// correct
567				if (xy < space + screenXY){
568					newAlign = 1;
569					xy = space + screenXY;
570				}
571				if (xy + size > screenSize  + screenXY - space){
572					newAlign = -1;
573					xy -= xy + newSize - (screenSize  + screenXY - space);
574				}
575			}
576		};
577
578		return {xy: xy, size: newSize, align: newAlign};
579	};
580	
581	
582	function get(o){
583		return (typeof o == 'string')? document.getElementById(o): o
584	}
585	
586
587	/*
588	 * hide submenu
589	 * @menu
590	 */
591	function xphide(menu){
592		menu = get(menu);
593		if (!menu || menu.style.visibility != 'visible') return;
594
595		// hide child
596		xphide(menu.smShown);
597		
598		// off cursor selection
599		menu.xpClearMenuMark();
600
601		// hide the menu
602		menu.style.visibility = 'hidden';
603
604		// if all submenu close, then change button icon
605		if (menu.level == 0){
606			xpe(xobtn + 'n');//???????????
607		}
608
609		menu.smShown = 0;
610		if (menu.iParent) menu.iParent.clrPopup();
611
612		// clear to hide timeout
613		if (menu.hideTimer){
614			clearTimeout(menu.hideTimer);
615			menu.hideTimer = null;
616		}
617	};
618	window.xphide = xphide;
619	
620	
621
622	// on mouse out from menu
623	window.xpsmout = function(sender){
624		if (!sender) return;
625		// set time out
626		xpStartTimeOut(xpShownMenu)
627	};
628	
629
630	// on mouse over menu
631	window.xpsmover = function(menu)
632	{
633		xpStopTimeOut(menu);
634	};
635
636
637	/*
638	*	clear Time out for all parent and this menu 
639	*	run in submenu engine context
640	*/
641	function xpStopTimeOut(menu){
642		for( var o = menu; o; o = o.iParent? o.iParent.menu: 0)
643			if (o.hideTimer)
644				o.hideTimer = clearTimeout(o.hideTimer);
645	};
646
647	
648	/*
649	 * 	 start hide timer for this menu and all its submenu 
650	 */
651	function xpStartTimeOut(menu){
652		if (menu) {
653			if (!menu.hideTimer) 
654				menu.hideTimer = setTimeout( function (){ xphide(menu) } , 300);
655			xpStartTimeOut(menu.smShown)
656		}
657	}
658
659
660};// end of menu component
661
662var xpShownMenu = 0; // curent open menu tread
663
664new vistaButtons({
665	subFrame: 0
666});
667
668

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.