PageSourceSearch

https://dunlaoghairegolfclub.ie/CMSScripts/skmmenu.js?639257960819938382

js dunlaoghairegolfclub.ie collected 2026-10-08 06:28:33 UTC 13,768 bytes, 444 lines download raw bytes

1//Region Global Variables
2var skm_SelectedMenuStyleInfos=new Object();
3var skm_UnselectedMenuStyleInfos=new Object();
4var skm_MenuFadeDelays=new Object();
5var skm_clockValue=0;
6var skm_ticker;
7var skm_highlightTopMenus=new Object();
8var skm_images=new Array();
9var skm_OpenMenuItems = new Array();
10//var skm_previousMenu;
11//EndRegion
12//Region Methods to hook up a menu to the global variables
13function skm_registerMenu(menuID, selectedStyleInfo, unselectedStyleInfo, menuFadeDelay, highlightTopMenu){
14	skm_SelectedMenuStyleInfos[menuID]=selectedStyleInfo;
15	skm_UnselectedMenuStyleInfos[menuID]=unselectedStyleInfo;
16	skm_MenuFadeDelays[menuID]=menuFadeDelay;
17	skm_highlightTopMenus[menuID]=highlightTopMenu;
18}
19//Region The methods and contructor of the skm_styleInfo object.
20function skm_applyStyleInfoToElement(element){
21	element.style.backgroundColor=this.backgroundColor;
22	element.style.borderColor=this.borderColor;
23	element.style.borderStyle=this.borderStyle;
24	element.style.borderWidth=this.borderWidth;
25	element.style.color=this.color;
26	if (this.fontFamily!='')
27		element.style.fontFamily=this.fontFamily;
28	element.style.fontSize=this.fontSize;
29	element.style.fontStyle=this.fontStyle;
30	element.style.fontWeight=this.fontWeight;
31	if (this.className!='')
32		element.style.className=this.className;
33}
34function skm_styleInfo(backgroundColor,borderColor,borderStyle,borderWidth,color,fontFamily,fontSize,fontStyle,fontWeight,className){
35	this.backgroundColor=backgroundColor;
36	this.borderColor=borderColor;
37	this.borderStyle=borderStyle;
38	this.borderWidth=borderWidth;
39	this.color=color;
40	this.fontFamily=fontFamily;
41	this.fontSize=fontSize;
42	this.fontStyle=fontStyle;
43	this.fontWeight=fontWeight;
44	this.className=className;
45	this.applyToElement=skm_applyStyleInfoToElement;
46}
47
48function getPropertyValueFromCss(className, propertyName)
49{
50    var toReturn = null;
51    
52	if (document.styleSheets) {	
53    for (var i = 0; i < document.styleSheets.length; i++)
54    {
55        var cssRules = null;
56        
57        try {
58            // IE
59            if (document.styleSheets[i].rules) {
60                cssRules = document.styleSheets[i].rules;
61            }
62            // Mozilla and others
63            else if (document.styleSheets[i].cssRules) {
64                cssRules = document.styleSheets[i].cssRules;
65            }        
66        }
67        catch(err)
68        {
69        }
70        
71        if (cssRules != null) {
72            for (var j = 0; j < cssRules.length; j++) {
73                if (cssRules[j].selectorText == ("." + className) && cssRules[j].style[propertyName] != null)
74                {
75                    toReturn = cssRules[j].style[propertyName];
76                }
77            }
78        }
79    }
80    }
81    return toReturn;
82}
83
84//Region MouseEventHandlers
85function skm_mousedOverMenu(menuID,elem,parent,displayedVertically,imageSource, leftImage, rightImage, overStyle, browser, uniqueId, rtl){
86	skm_stopTick();
87	skm_closeSubMenus(elem);
88	
89
90	
91	var childID=elem.id+"-subMenu";  // Display child menu if needed
92	if (document.getElementById(childID)!=null){  // make the child menu visible and specify that its position is specified in absolute coordinates
93
94		child = document.getElementById(childID);
95		if (child.style)
96		{
97			child = child.style;
98		}	
99		child.display='block';
100		child.position='absolute';
101
102		// get width of CMSMenu from css stylesheet
103		var tableWidth = getPropertyValueFromCss(document.getElementById(childID).className, "width");
104		if (tableWidth != null)
105		{
106			child.width = tableWidth;
107		}
108
109		skm_OpenMenuItems = skm_OpenMenuItems.concat(childID);
110		if (displayedVertically){ // Set the child menu's left and top attributes according to the menu's offsets
111			child.left=(skm_getAscendingLefts(parent)+parent.offsetWidth) + 'px';
112			
113			if (rtl)
114			{
115			    child.left=(skm_getAscendingLefts(parent)-document.getElementById(childID).offsetWidth) + 'px';
116			}
117			
118			child.top=skm_getAscendingTops(elem) + 'px';
119			
120			var visibleWidth=parseInt(window.outerWidth?window.outerWidth-9:document.body.clientWidth,10);						
121			if ( (parseInt(skm_getElementLeft(document.getElementById(childID)),10) + parseInt(document.getElementById(childID).offsetWidth,10))>visibleWidth) {				
122				//document.getElementById(childID).style.backgroundColor='red';				
123				var oldpos = document.getElementById(childID).offsetLeft;
124				var width = parseInt(document.getElementById(childID).offsetWidth,10);
125				var newpos = oldpos - parent.offsetWidth - width;
126				child.left = newpos + 'px';
127				/* due to incorrect movement when not defined width in css stylesheet, it is important to move new submenu
128				(displayed on the left from actual submenu) UNDER actual submenu. Otherwise some items from actual submenu
129				may be not visible. */
130				child.zIndex = skm_getElemZIndex(parent) - 1;
131			} else {
132				child.zIndex = skm_getElemZIndex(parent) + 10;
133			}
134		}else{  // Set the child menu's left and top attributes according to the menu's offsets		
135			child.left=skm_getAscendingLefts(elem) + 'px';	
136			child.top=(skm_getAscendingTops(parent)+parent.offsetHeight) + 'px';
137			if (document.getElementById(childID).offsetWidth<elem.offsetWidth)
138			{
139				child.width=elem.offsetWidth + 'px';			
140		    }
141		    else
142		    {
143		        if (rtl){
144		        child.left = skm_getAscendingLefts(elem) - (document.getElementById(childID).offsetWidth - elem.offsetWidth) + 'px';
145		        }
146		    }
147		}
148	}
149	if (skm_SelectedMenuStyleInfos[menuID] != null) skm_SelectedMenuStyleInfos[menuID].applyToElement(elem);
150	if (skm_highlightTopMenus[menuID]){
151		var eId=elem.id+'';
152		while (eId.indexOf('-subMenu')>=0){
153			eId=eId.substring(0, eId.lastIndexOf('-subMenu'));
154			skm_SelectedMenuStyleInfos[menuID].applyToElement(document.getElementById(eId));
155		}
156	}	
157
158	var index = 0;
159	
160	if (leftImage!='')
161	{
162	    var i=elem.getElementsByTagName("img")[index];
163	    if (i != null)
164	    {
165	        i.src=leftImage;
166	        index++;
167	    }
168	}
169	
170	
171	if (imageSource!=''){
172	    var i=elem.getElementsByTagName("img")[index];
173	    if (i != null)
174	    {
175	        i.src=imageSource;
176	        index++;
177	        }
178	}
179	
180	if (rightImage!='')
181	{
182	    var i=elem.getElementsByTagName("img")[index];
183	    if (i != null)
184	    {
185	        i.src=rightImage;
186	        index++;
187	    }
188	}
189	
190	if (overStyle != '')
191	{
192	    if (browser == 'IE') 
193	    {
194
195	        if (document.styleSheets.length == 0)
196	        {
197	            document.createStyleSheet('extrastyle.css');  
198	        }
199    	    document.styleSheets[0].addRule(".OverClass_skm_Menu_CMS" + uniqueId, overStyle);
200	    }
201	    else
202	    {
203	        if (elem.attributes['style'] != null)
204	        {
205	    	    elem.attributes['style'].value =  overStyle + elem.attributes['style'].value;		
206    	    }
207	        else
208	        {
209	            elem.attributes['style'].value =  overStyle;
210	        }
211    	}
212	}
213}
214
215function skm_mousedOverClickToOpen(menuID,elem,parent,imageSource){
216	skm_stopTick();
217	if (skm_SelectedMenuStyleInfos[menuID] != null) skm_SelectedMenuStyleInfos[menuID].applyToElement(elem);
218	if (skm_highlightTopMenus[menuID]){
219		var eId=elem.id+'';
220		while (eId.indexOf('-subMenu')>=0){
221			eId=eId.substring(0, eId.lastIndexOf('-subMenu'));
222			skm_SelectedMenuStyleInfos[menuID].applyToElement(document.getElementById(eId));
223		}
224	}	
225	if (imageSource!=''){
226		setimage(elem,imageSource);
227	}
228}
229
230function skm_getElemZIndex(elem)
231{
232	if (elem == null)
233	{
234		return -1;
235	} else if (elem.style.zIndex == undefined){
236		return 100;
237	} else {
238		return elem.style.zIndex;
239	}		
240}
241
242function skm_mousedOverSpacer(menuID,elem,parent){
243	skm_stopTick();
244}
245
246function skm_mousedOutMenu(menuID,elem,imageSource,cssClass, defaultStyle, browser, uniqueId, leftImage, rightImage){
247	if (document.getElementById('lastSelectedItemID_' + menuID) != null)
248		{
249		if (document.getElementById('lastSelectedItemID_' + menuID).value == elem.id)	
250			{
251			  return;
252			}
253		}
254		
255		
256	skm_doTick(menuID);
257	if (skm_UnselectedMenuStyleInfos[menuID] != null) skm_UnselectedMenuStyleInfos[menuID].applyToElement(elem);
258	if (skm_highlightTopMenus[menuID]){
259		var eId=elem.id+'';
260		while (eId.indexOf('-subMenu')>=0){
261			eId=eId.substring(0, eId.lastIndexOf('-subMenu'));
262			skm_UnselectedMenuStyleInfos[menuID].applyToElement(document.getElementById(eId));
263		}
264	}
265	
266	settd(elem,cssClass);
267    var index = 0;
268	
269	if (leftImage!='')
270	{
271	    var i=elem.getElementsByTagName("img")[index];
272	    if (i != null)
273	    {
274	    i.src=leftImage;
275	    index++;
276	    }
277	}
278	
279	if (imageSource!=''){
280	    var i=elem.getElementsByTagName("img")[index];
281	    if (i != null)
282	    {
283	        i.src=imageSource;
284	        index++;
285	    }
286	}
287	
288	if (rightImage!='')
289	{
290	    var i=elem.getElementsByTagName("img")[index];
291	    if (i != null)
292	    {
293	        i.src=rightImage;
294	     index++;
295	     }
296	}
297	
298	
299	if (defaultStyle != '')
300	{
301	    if (browser == 'IE')
302	    {
303	        if (uniqueId != '')
304	        {
305	            if (document.styleSheets.length == 0)
306	            {
307	                document.createStyleSheet('extrastyle.css');  
308	            }
309   	            document.styleSheets[0].addRule(".OverOut_skm_Menu_CMS_" + uniqueId, defaultStyle);
310 	        }
311        }
312	    else
313	    {
314	            if (elem.attributes['style'] != null)
315	            {
316	                elem.attributes['style'].value =  defaultStyle + elem.attributes['style'].value;
317	            }
318	            else
319	            { 
320	                elem.attributes['style'].value =  defaultStyle;
321	            }
322    	}
323}
324}
325
326function skm_mousedOutSpacer(menuID, elem){
327	skm_doTick(menuID);
328}
329
330//Region Utility Functions
331function skm_closeSubMenus(parent){
332	if (skm_OpenMenuItems == "undefined") return;
333	for (var i=skm_OpenMenuItems.length-1; i>-1;i--) {
334		if (parent.id.indexOf(skm_OpenMenuItems[i]) != 0) {
335			if (document.getElementById(skm_OpenMenuItems[i]) != null) {
336				document.getElementById(skm_OpenMenuItems[i]).style.display = 'none';
337				skm_shimSetVisibility(false, skm_OpenMenuItems[i]);			
338				skm_OpenMenuItems = new Array().concat(skm_OpenMenuItems.slice(0,i), skm_OpenMenuItems.slice(i+1));
339			}
340  		} 
341	}
342}
343function skm_shimSetVisibility(makevisible, tableid){
344	var tblRef=document.getElementById(tableid);
345	var IfrRef=document.getElementById('shim'+tableid);
346	if (tblRef!=null && IfrRef!=null){
347		if(makevisible){
348			IfrRef.style.width=tblRef.offsetWidth;
349			IfrRef.style.height=tblRef.offsetHeight;
350			IfrRef.style.top=tblRef.style.top;
351			IfrRef.style.left=tblRef.style.left;
352			IfrRef.style.zIndex=tblRef.style.zIndex-1;
353			IfrRef.style.display="block";
354		}else{
355			IfrRef.style.display="none";
356		}
357	}
358}
359function skm_IsSubMenu(id){
360	if (skm_subMenuIDs == "undefined") return false;
361	for (var i=0;i<skm_subMenuIDs.length;i++)
362	  if (id==skm_subMenuIDs[i]) return true;
363	return false;
364}
365function skm_getAscendingLefts(elem){
366	if (elem==null)
367		return 0;
368	else
369	{
370		var elemPosition = getPropertyValueFromCss(elem.className,'position');
371		if (!elemPosition) {
372			elemPosition = elem.style.position;
373		}		
374		if ((elemPosition=='absolute' || elemPosition=='relative') && !skm_IsSubMenu(elem.id)) return 0;
375		var x = elem.offsetLeft+skm_getAscendingLefts(elem.offsetParent);
376		return x;
377	}
378}
379function skm_getElementLeft(elem)
380{
381	if (elem==null)
382	{
383		return 0;
384	} else {
385		return elem.offsetLeft + skm_getElementLeft(elem.offsetParent);
386	}	
387}
388function skm_getAscendingTops(elem){
389	if (elem==null)
390		return 0;
391	else {	
392		var elemPosition = getPropertyValueFromCss(elem.className,'position');
393		if (!elemPosition) {
394			elemPosition = elem.style.position;
395		}
396		var parent = skm_getAscendingTops(elem.offsetParent);		
397		if ((elemPosition=='absolute' || elemPosition=='relative') && !skm_IsSubMenu(elem.id)) return 0;
398		return elem.offsetTop + parent;
399	}
400}
401//Region Fade Functions
402function skm_doTick(menuID){
403	if (skm_clockValue>=skm_MenuFadeDelays[menuID]){
404		skm_stopTick();
405		skm_closeSubMenus(document.getElementById(menuID));
406	} else {
407		skm_clockValue++;
408		skm_ticker=setTimeout("skm_doTick('"+menuID+"');", 500);
409	}
410}
411function skm_stopTick(){
412	skm_clockValue=0;
413	clearTimeout(skm_ticker);
414}
415function preloadimages(){
416	for (i=0;i<preloadimages.arguments.length;i++){
417		skm_images[i]=new Image();
418		skm_images[i].src=preloadimages.arguments[i];
419	}
420}
421function setimage(elem,imageSource){
422	var i=elem.getElementsByTagName("img")[0];
423	i.src=imageSource;
424}
425function settd(elem,styleName){
426	elem.className=styleName;
427		
428}
429function skm_selectNewItem(menuID, elem, imageSource, normalImageSource, className, normalClassName){
430	if (document.getElementById('lastSelectedItemID_' + menuID).value != elem.id)
431	{	  
432	  //set original values
433	  setimage(document.getElementById(document.getElementById('lastSelectedItemID_' + menuID).value), document.getElementById('lastSelectedItemNormalImageSource_' + menuID).value);			
434	  settd(document.getElementById(document.getElementById('lastSelectedItemID_' + menuID).value), document.getElementById('lastSelectedItemNormalClassName_' + menuID).value);
435	  //store values
436	  document.getElementById('lastSelectedItemID_' + menuID).value = elem.id;
437	  document.getElementById('lastSelectedItemNormalImageSource_' + menuID).value = normalImageSource;
438	  document.getElementById('lastSelectedItemNormalClassName_' + menuID).value = normalClassName;
439	  //set new values
440	  setimage(elem, imageSource);				  
441	  settd(elem, className);
442	}
443}
444//-->

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.