PageSourceSearch

https://arenamarble.com/wp-content/uploads/ac_assets/uc_compact_image_theme/ug-theme-compact.js?ver=2.0.17

js arenamarble.com collected 2026-10-07 05:47:29 UTC 9,736 bytes, 461 lines download raw bytes

1
2if(typeof g_ugFunctions != "undefined")
3	g_ugFunctions.registerTheme("compact");
4else 
5	jQuery(document).ready(function(){g_ugFunctions.registerTheme("compact")});
6
7
8/**
9 * Grid gallery theme
10 */
11function UGTheme_compact(){
12
13	var t = this;
14	var g_gallery = new UniteGalleryMain(), g_objGallery, g_objects, g_objWrapper; 
15	var g_objSlider;
16	var g_functions = new UGFunctions();
17	var g_objPanel = new UGStripPanel();
18	
19	//theme options
20	var g_options = {
21			theme_load_slider:true,					//true, false - load the slider
22			theme_load_panel:true,					//true, false - load the thumbs grid panel
23			theme_panel_position: "bottom",			//top, bottom, left, right - thumbs panel position
24			theme_hide_panel_under_width: 480		//hide panel under certain browser width, if null, don't hide
25	};
26	
27	//global defaults
28	var g_defaults = {
29			slider_controls_always_on:true,
30			slider_enable_text_panel:false,
31			slider_vertical_scroll_ondrag: true,
32			strippanel_enable_buttons:false			
33	};
34	
35	
36	//special defaults for left side panel position
37	var g_defaults_left = {
38		slider_enable_text_panel:true,
39		slider_zoompanel_align_hor: "right",
40		slider_fullscreen_button_align_hor: "right",
41		slider_play_button_align_hor: "right",
42		slider_zoompanel_offset_vert: 9,
43		slider_zoompanel_offset_hor: 11,
44		slider_play_button_offset_hor: 88,
45		slider_play_button_offset_vert: 8,
46		slider_fullscreen_button_offset_hor: 52,
47		slider_fullscreen_button_offset_vert: 9,
48		slider_progress_indicator_align_hor: "right",
49		slider_progress_indicator_offset_vert: 36,	
50		slider_progress_indicator_offset_hor: 63			
51	}
52	
53	//special defaults for right side panel position
54	var g_defaults_right = {
55		slider_enable_text_panel:true,
56		slider_zoompanel_offset_vert: 9,
57		slider_zoompanel_offset_hor: 11,
58		slider_play_button_offset_hor: 88,
59		slider_play_button_offset_vert: 8,
60		slider_fullscreen_button_offset_hor: 52,
61		slider_fullscreen_button_offset_vert: 9,
62		
63		slider_progress_indicator_align_hor: "left",
64		slider_progress_indicator_offset_vert: 36,	
65		slider_progress_indicator_offset_hor: 63	
66		
67	}
68	
69	//special defaults for bottom panel position
70	var g_defaults_bottom = {
71		
72		slider_zoompanel_align_hor: "right",
73		slider_zoompanel_offset_vert: 10,
74		
75		slider_progress_indicator_align_hor: "left",
76		slider_progress_indicator_offset_vert: 36,	
77		slider_progress_indicator_offset_hor: 16	
78	}
79	
80	//special defaults for top panel position
81	var g_defaults_top = {
82		slider_zoompanel_align_vert: "bottom",
83		slider_zoompanel_offset_vert: 10,
84		
85		slider_play_button_align_hor: "right",
86		slider_play_button_align_vert: "bottom",
87		
88		slider_fullscreen_button_align_vert: "bottom",	
89		slider_fullscreen_button_align_hor: "right",
90		
91		slider_progress_indicator_align_vert: "bottom",
92		slider_progress_indicator_offset_vert: 40
93	}
94	
95	
96	//temp variables
97	var g_temp = {
98		isVertical: false,
99		isMobileModeWasEnabled: false
100	};
101	
102	
103	/**
104	 * Init the theme
105	 */
106	function initTheme(gallery, customOptions){
107		
108		g_gallery = gallery;
109		
110		g_options = jQuery.extend(g_options, customOptions);
111				
112		modifyOptions(customOptions);
113		
114		//set gallery options
115		g_gallery.setOptions(g_options);
116				
117		//include gallery elements
118		if(g_options.theme_load_panel == true){
119			g_objPanel.init(gallery, g_options);
120			g_objPanel.setOrientation(g_options.theme_panel_position);
121			
122		}else
123			g_objPanel = null;
124		
125		if(g_options.theme_load_slider == true)
126			g_gallery.initSlider(g_options);
127		
128		g_objects = gallery.getObjects();
129		
130		//get some objects for local use
131		g_objGallery = jQuery(gallery);		
132		g_objWrapper = g_objects.g_objWrapper;
133		
134		if(g_options.theme_load_slider == true)
135			g_objSlider = g_objects.g_objSlider;
136		
137	}
138	
139	
140	/**
141	 * modify options
142	 */
143	function modifyOptions(customOptions){
144				
145		g_options = jQuery.extend(g_options, g_defaults);
146		
147		if(g_options.theme_load_panel == true){
148			
149			switch(g_options.theme_panel_position){
150				case "left":
151				case "right":
152					g_temp.isVertical = true;
153					g_options.strippanel_vertical_type = true;
154				break;
155			}
156		}
157		
158		
159		switch(g_options.theme_panel_position){
160			case "left":
161				g_options = jQuery.extend(g_options, g_defaults_left);				
162			break;
163			case "right":
164				g_options = jQuery.extend(g_options, g_defaults_right);				
165			break;
166			case "top":
167				g_options = jQuery.extend(g_options, g_defaults_top);
168			break;
169			case "bottom":
170				g_options = jQuery.extend(g_options, g_defaults_bottom);
171			break;
172		}
173		
174		g_options = jQuery.extend(g_options, customOptions);
175		
176	}
177	
178	
179	/**
180	 * init all the theme's elements and set them to their places 
181	 * according gallery's dimentions.
182	 * this function should work on resize too.
183	 */
184	function initAndPlaceElements(){
185		
186		//place objects:
187		if(g_objPanel){
188			initThumbsPanel();
189			placeThumbsPanel();
190		}
191		
192		if(g_objSlider){
193			g_objSlider.run();
194			placeSlider();
195		}
196		
197	}
198	
199	
200	/**
201	 * run the theme
202	 */
203	function runTheme(){
204		
205		setHtml();
206		
207		initAndPlaceElements();
208		
209		initEvents();
210	}
211	
212	
213	/**
214	 * set gallery html elements
215	 */
216	function setHtml(){
217		
218		//add html elements
219		g_objWrapper.addClass("ug-theme-grid");
220		
221		//set panel html
222		if(g_objPanel)
223			g_objPanel.setHtml();
224			
225		//set slider html
226		if(g_objSlider)
227			g_objSlider.setHtml();
228		
229	}
230	
231	
232	/**
233	 * init size of the thumbs panel
234	 */
235	function initThumbsPanel(){
236		
237		//set size:
238		var objGallerySize = g_gallery.getSize();
239			
240		if(g_temp.isVertical == false)			
241			g_objPanel.setWidth(objGallerySize.width);
242		else
243			g_objPanel.setHeight(objGallerySize.height);
244		
245		g_objPanel.run();
246	}
247	
248	
249	
250	/**
251	 * place thumbs panel according the settings
252	 */
253	function placeThumbsPanel(){
254		
255		var isNeedToHide = isPanelNeedToHide();
256		var isHidden = g_objPanel.isPanelClosed();		
257		
258		var objPanelElement = g_objPanel.getElement();
259		var posVert = "bottom";
260		var posHor = "left";
261		
262		var showClosed = (isNeedToHide || isHidden);
263			
264		if(showClosed){
265			var hiddenDest = g_objPanel.getClosedPanelDest();
266			var originalPos =  g_functions.getElementRelativePos(objPanelElement, g_options.theme_panel_position);
267			g_objPanel.setClosedState(originalPos);
268		}else{
269			g_objPanel.setOpenedState();
270		}
271		
272		switch(g_options.theme_panel_position){
273			case "right":
274			case "left":
275				posHor = g_options.theme_panel_position;
276				if(showClosed)
277					posHor = hiddenDest;
278				
279			break;		
280			case "top":
281			case "bottom":				
282				posVert = g_options.theme_panel_position;
283				if(showClosed)
284					posVert = hiddenDest;
285			break;
286			default:
287				throw new Error("Wrong panel position: " + g_options.theme_panel_position);
288			break;
289		}
290		
291		g_functions.placeElement(objPanelElement, posHor, posVert, 0, 0);
292	} 
293	
294	
295	
296	/**
297	 * place the slider according the thumbs panel size and position
298	 */
299	function placeSlider(){
300		
301		//g_objPanel
302		var gallerySize = g_functions.getElementSize(g_objWrapper);
303		
304		var sliderWidth = gallerySize.width;
305		var sliderHeight = gallerySize.height;
306		var sliderTop = 0;
307		var sliderLeft = 0;
308		
309		if(g_objPanel){
310			
311			var panelSize = g_objPanel.getSize();
312			
313			switch(g_options.theme_panel_position){
314				case "left":
315					sliderLeft = panelSize.right;
316					sliderWidth = gallerySize.width - panelSize.right;	
317				break;
318				case "right":
319					sliderWidth = panelSize.left;					
320				break;
321				case "top":
322					sliderHeight = gallerySize.height - panelSize.bottom;
323					sliderTop = panelSize.bottom;
324				break;
325				case "bottom":
326					sliderHeight = panelSize.top;
327				break;
328			}
329			
330		}
331		
332		g_objSlider.setSize(sliderWidth, sliderHeight);
333		g_objSlider.setPosition(sliderLeft, sliderTop);
334	}
335
336	/**
337	 * check if need to hide the panel according the options.
338	 */
339	function isPanelNeedToHide(){
340		
341		if(!g_options.theme_hide_panel_under_width)
342			return(false);
343		
344		var windowWidth = jQuery(window).width();
345		var hidePanelValue = g_options.theme_hide_panel_under_width;
346		
347		if(windowWidth <= hidePanelValue)
348			return(true);
349			
350		return(false);
351	}
352
353	
354	/**
355	 * check if need to hide or show panel according the theme_hide_panel_under_width option
356	 */
357	function checkHidePanel(){
358		
359		//check hide panel:
360		if(!g_options.theme_hide_panel_under_width)
361			return(false);
362		
363			var needToHide = isPanelNeedToHide();
364			
365			if(needToHide == true){
366				g_objPanel.closePanel(true);
367				g_temp.isMobileModeWasEnabled = true;
368			}
369			else{
370				if(g_temp.isMobileModeWasEnabled == true){
371					g_objPanel.openPanel(true);
372					g_temp.isMobileModeWasEnabled = false;
373				}
374			}
375	}
376	
377	
378	/**
379	 * on gallery size change - resize the theme.
380	 */
381	function onSizeChange(){
382		
383		initAndPlaceElements();
384				
385		if(g_objPanel)
386			checkHidePanel();
387		
388	}
389	
390	
391	/**
392	 * on panel move event
393	 */
394	function onPanelMove(){
395		
396		placeSlider();
397	}
398
399	
400	/**
401	 * before items request: hide items, show preloader
402	 */
403	function onBeforeReqestItems(){
404	
405		g_gallery.showDisabledOverlay();
406	
407	}
408		
409	
410	/**
411	 * init buttons functionality and events
412	 */
413	function initEvents(){
414						
415		g_objGallery.on(g_gallery.events.SIZE_CHANGE,onSizeChange);
416		g_objGallery.on(g_gallery.events.GALLERY_BEFORE_REQUEST_ITEMS, onBeforeReqestItems);
417		
418		if(g_objPanel){
419			jQuery(g_objPanel).on(g_objPanel.events.FINISH_MOVE, onPanelMove);
420		}
421		
422	}
423	
424	
425	/**
426	 * destroy the theme
427	 */
428	this.destroy = function(){
429		
430		g_objGallery.off(g_gallery.events.SIZE_CHANGE);
431		g_objGallery.off(g_gallery.events.GALLERY_BEFORE_REQUEST_ITEMS);
432		
433		if(g_objPanel)
434			jQuery(g_objPanel).off(g_objPanel.events.FINISH_MOVE);
435		
436		g_objPanel.destroy();
437		g_objSlider.destroy();
438		
439	}
440	
441	
442	/**
443	 * run the theme setting
444	 */
445	this.run = function(){
446		
447		runTheme();
448	}
449	
450	
451	/**
452	 * init 
453	 */
454	this.init = function(gallery, customOptions){
455				
456		initTheme(gallery, customOptions);
457	}
458	
459	
460}
461

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.