PageSourceSearch

https://inventivodesign.com/js/lightbox.js?v=1.5.4b

js inventivodesign.com collected 2026-10-06 12:34:49 UTC 15,564 bytes, 395 lines download raw bytes

1/******************************************************************************************************
2 *                                             SPIME START 
3 ******************************************************************************************************/
4var LightBox = {};
5
6/******************************************************************************************************
7 *                                               MAIN
8 *                                  called from body onLoad func    
9 ******************************************************************************************************/
10
11LightBox.initLinks = function(holder){
12	//Only in viewer mode
13	if(typeof window["EditorHelper"] == "undefined"){
14		var links;
15		if (holder){
16			links = holder.find("a[data-link-type='LIGHTBOX']");
17		}else{
18			links = $("a[data-link-type='LIGHTBOX']");
19		}
20		links.each(function(){
21			var currentLink = $(this);
22			currentLink.removeAttr("href");
23			currentLink.removeAttr("target");
24			currentLink.addClass("clickable");
25			//blocking media widgets to show lightbox
26			if (currentLink.closest(".item-box").find("[data-menu-name='PREVIEW_RAW']").length > 0 && currentLink.is(".image-link")){
27				currentLink.remove();
28			}
29			currentLink.unbind("click").bind("click",function(e){
30				e.stopPropagation();
31				//blocking media widgets to show lightbox
32				if (currentLink.closest(".item-box").find("[data-menu-name='PREVIEW_RAW']").length > 0){
33					e.preventDefault();
34					return false;
35				}
36				LightBox.itemClick($(this).closest(".item-content"));
37				return false;
38			});
39		});
40		
41		var registerLinks ;
42		if (holder){
43			registerLinks = holder.find("a[href^='register://'] , a[href^='registers://']");
44		}else{
45			registerLinks = $("a[href^='register://'], a[href^='registers://']");
46		}
47		if (registerLinks.length > 0){
48			if (typeof XPRSTranslator == "undefined"){
49				$("<script/>").attr("src", XPRSHelper.getServerPath() + "/translation_js").appendTo("head");
50				$("<script/>").attr("src", XPRSHelper.getServerPath() + "/js/lib/jquery.cookie.min.js").appendTo("head");
51				var loginWrapper = $("<div/>").attr("id","lightbox-menus-holder").css({"height":"100%","width": "100%","position":"fixed","top": "0px","left": "0px","display": "table","background-color": "rgba(0,0,0,0.1)","z-index":"99999999"}).hide();
52				$("body").append(loginWrapper);
53				loginWrapper.load(XPRSHelper.getServerPath() +  "/login?form_only=true")
54			}
55		}
56		registerLinks.each(function(){
57			var currentLink = $(this);
58			currentLink.attr("data-href",currentLink.attr("href").replace("register://","http://").replace("registers://","https://"));
59			currentLink.removeAttr("href");
60			currentLink.removeAttr("target");
61			currentLink.addClass("clickable");
62			currentLink.unbind("click").bind("click",function(e){
63				e.stopPropagation();
64				XPRSHelper.invokeLogin(function(){
65					location.href = currentLink.attr("data-href");
66				  },"register");
67				return false;
68			});
69		});
70
71	}
72};
73
74
75LightBox.itemClick = function(currentItem){
76	var imageSrc = currentItem.attr("data-bgimg");
77	var videoSrc = "";
78	var videoFrame = currentItem.find(".video-frame");
79	if (videoFrame.length > 0){
80		//var videoFrame = currentItem.find(".video-frame");
81		if (videoFrame.length > 0){
82			videoSrc = videoFrame.attr("src");
83		}
84	}
85	if (imageSrc == ""){
86		//no image
87		return;
88	}
89	
90	var title = currentItem.find(".preview-title");
91	var subtitle = currentItem.find(".preview-subtitle");
92	
93	var currentHolder = currentItem.closest(".item-box");
94	var itemSiblings = currentHolder.siblings(".sub.item-box").not(":has([data-menu-name='PREVIEW_RAW'])");
95	if (itemSiblings.length > 0){
96		itemSiblings = itemSiblings.add(currentHolder);
97	}
98	var lightboxWrapper = $(".light-box-wrapper");
99	var closeBtn = lightboxWrapper.find(".close-lightbox-btn");
100	closeBtn.unbind("click").bind("click",function(e){
101		e.stopPropagation();
102		//remove the video before closing
103		$(".light-box-wrapper").find("iframe").remove();
104		$(".light-box-wrapper").hide();
105	});
106	var stripe = currentHolder.closest(".master.item-box");
107	var downloadBtn = lightboxWrapper.find(".download-gallery-btn");
108	if (stripe.find(".container").attr("data-allow-download") == "true"){
109		downloadBtn.show();
110		downloadBtn.unbind("click").bind("click",function(e){
111			e.stopPropagation();
112			location.href = XPRSHelper.getStaticServerPath() + "/download_gallery?vbid=" + stripe.attr("id");
113		});
114	}else{
115		downloadBtn.hide();
116	}
117	
118	//Close lightbox when clicking outside the image
119	lightboxWrapper.unbind("click").bind("click",function(e){
120			e.stopPropagation();
121			//remove the video before closing
122			$(".light-box-wrapper").find("iframe").remove();
123			$(".light-box-wrapper").hide();
124	});
125	
126	
127	var lightboxImageHolder = lightboxWrapper.find(".light-box-image-holder");
128	var lightboxImage = lightboxImageHolder.find(".light-box-image");
129	
130	//Catch the click (do not close when clicking on the image
131	lightboxImage.unbind("click").bind("click",function(e){
132		e.stopPropagation();
133	});
134	
135	var textWrapper = lightboxWrapper.find(".lightbox-text-wrapper");
136	var textHolder = textWrapper.find(".lightbox-text-holder");
137	var titleHolder = textWrapper.find(".lightbox-title").text(title.text());
138	var subtitleHolder = textWrapper.find(".lightbox-subtitle").text(subtitle.text());
139	var imageOrigHeight = currentItem.attr("data-orig-thumb-height");
140	var imageOrigWidth = currentItem.attr("data-orig-thumb-width");
141	var newWidth = parseInt(imageOrigWidth);
142	if (isNaN(newWidth)){
143		newWidth = 1600;
144	}else{
145		newWidth = Math.min(parseInt(imageOrigWidth),1600)
146	}
147	var imageId = currentItem.attr("data-vbid");
148	lightboxImage.find("iframe").remove();
149	if (videoSrc != ""){
150		lightboxImage.attr("data-videosrc",videoSrc);
151		var videoIframe = $("<iframe />").css({"width":"100%","height":"100%","border":"none"}).attr("src",videoSrc);
152		lightboxImage.append(videoIframe);
153		lightboxImage.css("background-image","");
154	}else{
155		if(!currentHolder.closest(".master.item-box").is(".showing-feed")){
156			lightboxImage.css("background-image","url('"+ imageSrc + "=s" + newWidth +"')");
157		}else{
158			lightboxImage.css("background-image","url('"+ imageSrc + "')");
159		}
160		lightboxImage.attr("data-orig-thumb-height",imageOrigHeight);
161		lightboxImage.attr("data-orig-thumb-width",imageOrigWidth);
162	}
163	
164	//lightboxImage.attr("data-orig-thumb-height",imageOrigHeight);
165	//lightboxImage.attr("data-orig-thumb-width",imageOrigWidth);
166	
167	lightboxImage.attr("data-vbid",imageId);
168	//titleHolder.css({"color":title.css("color"),"text-shadow":title.css("text-shadow"),"font-family":title.css("font-family")});
169	//subtitleHolder.css({"color":subtitle.css("color"),"text-shadow":subtitle.css("text-shadow"),"font-family":subtitle.css("font-family")});
170	titleHolder.css({"font-family":title.css("font-family"),"text-align":title.css("text-align")});
171	if (title.css("text-align") == "center"){
172		titleHolder.css({"margin-left":"auto","margin-right":"auto"});
173	}else if (title.css("text-align") == "right"){
174		titleHolder.css({"margin-left":"auto","margin-right":""});
175	}else{
176		titleHolder.css({"margin-left":"","margin-right":""});
177	}
178	subtitleHolder.css({"font-family":subtitle.css("font-family"),"text-align":subtitle.css("text-align")});
179	if (subtitle.css("text-align") == "center"){
180		subtitle.css({"margin-left":"auto","margin-right":"auto"});
181	}else if (subtitle.css("text-align") == "right"){
182		subtitle.css({"margin-left":"auto","margin-right":""});
183	}else{
184		subtitle.css({"margin-left":"","margin-right":""});
185	}
186	lightboxWrapper.show();
187	setTimeout(function(){
188		XPRSHelper.onCssTransitionFinish(lightboxImage,function(){
189			textHolder.css("opacity","1");
190			closeBtn.css("opacity","1");
191			LightBox.arrange();
192		});
193		
194	},0);
195	LightBox.addPagination(textHolder,lightboxWrapper,itemSiblings);
196};
197
198LightBox.arrange = function(){
199	var lightboxWrapper = $(".light-box-wrapper");
200	var offset = (typeof window["EditorHelper"] == "undefined") ? 0 : 50;
201	if (lightboxWrapper.is(":visible")){
202		var lightboxImageHolder = lightboxWrapper.find(".light-box-image-holder");
203		var lightboxImage = lightboxImageHolder.find(".light-box-image");
204		var lightboxTextWrapper = lightboxWrapper.find(".lightbox-text-wrapper");
205		var deviceWidth = $(".main-page").width();
206		var deviceHeight = Math.min($(window).height(),$(".main-page").height()) - offset;//$(".main-page").height() - lightboxTextWrapper.height();
207
208		var borderWidth = deviceWidth* 0.1;
209		var borderHeight = deviceHeight* 0.2;
210		var imageOrigHeight = lightboxImage.attr("data-orig-thumb-height");
211		var imageOrigWidth = lightboxImage.attr("data-orig-thumb-width");
212		lightboxImage.css({"width":deviceWidth - borderWidth,"height":deviceHeight - borderHeight,"max-width":imageOrigWidth + "px","max-height":imageOrigHeight+ "px"});
213	}
214};
215
216LightBox.addPagination = function(paginatorHolder,wrapper,items){
217	var paginator = wrapper.find("#paginator");
218	paginator.empty();
219	var lightboxWrapper = $(".light-box-wrapper");
220	var lightboxImageHolder = lightboxWrapper.find(".light-box-image-holder");
221	var lightboxImage = lightboxImageHolder.find(".light-box-image");
222	items.each(function(){
223		var currentHolder = $(this);
224		var currentItem = currentHolder.find(".item-content");
225		
226		var videoSrc = "";
227		var videoFrame = currentItem.find(".video-frame");
228		if (videoFrame.length > 0){
229			//var videoFrame = currentItem.find(".video-frame");
230			if (videoFrame.length > 0){
231				videoSrc = videoFrame.attr("src");
232			}else{
233				return;
234			}
235		}
236		var imageOrigHeight = currentItem.attr("data-orig-thumb-height");
237		var imageOrigWidth = currentItem.attr("data-orig-thumb-width");
238		var newWidth = parseInt(imageOrigWidth);
239		if (isNaN(parseInt(newWidth))){
240			newWidth = 1600;
241		}else{
242			newWidth = Math.min(parseInt(imageOrigWidth),1600)
243		}
244		var imageSrc = currentItem.attr("data-bgimg");
245		
246		if (imageSrc == ""){
247			return;
248		}else if(!currentHolder.closest(".master.item-box").is(".showing-feed")){
249			imageSrc += "=s" + newWidth;
250		}
251		var imageId = currentItem.attr("data-vbid");
252		var title = currentItem.find(".preview-title").text();
253		var subtitle = currentItem.find(".preview-subtitle").text();
254		var pageNavigator = $("<div />").addClass("page-navigator");
255		if (videoSrc != ""){
256			pageNavigator.attr("data-videosrc",videoSrc);
257		}else{
258			pageNavigator.attr("data-bgimg",imageSrc);
259			pageNavigator.attr("data-orig-thumb-height",imageOrigHeight);
260			pageNavigator.attr("data-orig-thumb-width",imageOrigWidth);
261		}
262		pageNavigator.attr("data-title",title);
263		pageNavigator.attr("data-subtitle",subtitle);
264		pageNavigator.attr("data-vbid",imageId);
265		
266		
267		pageNavigator.unbind("click").bind("click",function(){
268			var currentPaginator = $(this);
269			lightboxImage.find("iframe").remove();
270			if (currentPaginator.attr("data-videosrc")){
271				var videoIframe = $("<iframe />").css({"width":"100%","height":"100%","border":"none"}).attr("src",currentPaginator.attr("data-videosrc"));
272				lightboxImage.append(videoIframe);
273				lightboxImage.css("background-image","");
274			}else{
275				lightboxImage.css("background-image","url('"+ currentPaginator.attr("data-bgimg") +"')");
276				lightboxImage.attr("data-orig-thumb-height",imageOrigHeight);
277				lightboxImage.attr("data-orig-thumb-width",imageOrigWidth);
278			}
279			
280			
281			lightboxImage.attr("data-vbid",imageId);
282			wrapper.find(".lightbox-title").text(currentPaginator.attr("data-title"));
283			wrapper.find(".lightbox-subtitle").text(currentPaginator.attr("data-subtitle"));
284			setTimeout(function(){
285				LightBox.arrange();
286			},0);
287		});
288		paginator.append(pageNavigator);
289	});
290	
291	if (items.length > 1){
292		lightboxWrapper.find(".lightbox-arrow").show();
293		lightboxWrapper.find(".lightbox-arrow").unbind("click").bind("click",function(e){
294			e.stopPropagation();
295			lightboxImage.find("iframe").remove();
296			var currentShownId = lightboxImage.attr("data-vbid");
297			var relevantPaginationHolder = paginator.find(".page-navigator[data-vbid='"+ currentShownId +"']");
298			var currentPaginator = relevantPaginationHolder.next();
299			if ($(this).hasClass("lightbox-left")){
300				currentPaginator = relevantPaginationHolder.prev();
301			}
302			if (currentPaginator.length == 0){
303				currentPaginator = relevantPaginationHolder.siblings().first(); 
304				if ($(this).hasClass("lightbox-left")){
305					currentPaginator = relevantPaginationHolder.siblings().last(); 
306				}
307			}
308			if (currentPaginator.attr("data-videosrc")){
309				var videoIframe = $("<iframe />").css({"width":"100%","height":"100%","border":"none"}).attr("src",currentPaginator.attr("data-videosrc"));
310				lightboxImage.append(videoIframe);
311				lightboxImage.css("background-image","");
312			}else{
313				lightboxImage.css("background-image","url('"+ currentPaginator.attr("data-bgimg") +"')");
314				lightboxImage.attr("data-orig-thumb-height",currentPaginator.attr("data-orig-thumb-height"));
315				lightboxImage.attr("data-orig-thumb-width",currentPaginator.attr("data-orig-thumb-width"));
316			}
317			lightboxImage.attr("data-vbid",currentPaginator.attr("data-vbid"));
318			wrapper.find(".lightbox-title").text(currentPaginator.attr("data-title"));
319			wrapper.find(".lightbox-subtitle").text(currentPaginator.attr("data-subtitle"));
320			setTimeout(function(){
321				LightBox.arrange();
322			},0);
323			
324		});
325
326		lightboxWrapper.unbind("swipeleft").bind("swipeleft",function(){
327			LightBox.changePic("left");
328		});
329		
330		lightboxWrapper.unbind("swiperight").bind("swiperight",function(){
331			LightBox.changePic("right");
332		});
333
334		lightboxWrapper.unbind("keyup").bind("keyup", function(e){
335			if(e.keyCode == 37) { // left
336				LightBox.changePic("left");
337			  }
338			  else if(e.keyCode == 39) { // right
339				LightBox.changePic("right");
340			  }else if (e.keyCode === 27){
341				lightboxWrapper.find("iframe").remove();
342				lightboxWrapper.hide();
343			  }
344		});
345
346		lightboxWrapper.focus();
347
348
349	}else{
350		lightboxWrapper.find(".lightbox-arrow").hide();
351	}
352};
353
354LightBox.changePic = function(dir){
355	var lightboxWrapper = $(".light-box-wrapper");
356	var lightboxImageHolder = lightboxWrapper.find(".light-box-image-holder");
357	var lightboxImage = lightboxImageHolder.find(".light-box-image");
358	var paginator = lightboxWrapper.find("#paginator");
359
360
361	lightboxImage.find("iframe").remove();
362	var currentShownId = lightboxImage.attr("data-vbid");
363	var relevantPaginationHolder = paginator.find(".page-navigator[data-vbid='"+ currentShownId +"']");
364	var currentPaginator = relevantPaginationHolder.next();
365	if (dir == "left"){
366		currentPaginator = relevantPaginationHolder.prev();
367	}
368	if (currentPaginator.length == 0){
369		currentPaginator = relevantPaginationHolder.siblings().first(); 
370		if (dir == "left"){
371			currentPaginator = relevantPaginationHolder.siblings().last(); 
372		}
373	}
374	if (currentPaginator.attr("data-videosrc")){
375		var videoIframe = $("<iframe />").css({"width":"100%","height":"100%","border":"none"}).attr("src",currentPaginator.attr("data-videosrc"));
376		lightboxImage.append(videoIframe);
377		lightboxImage.css("background-image","");
378	}else{
379		lightboxImage.css("background-image","url('"+ currentPaginator.attr("data-bgimg") +"')");
380		lightboxImage.attr("data-orig-thumb-height",currentPaginator.attr("data-orig-thumb-height"));
381		lightboxImage.attr("data-orig-thumb-width",currentPaginator.attr("data-orig-thumb-width"));
382	}
383	lightboxImage.attr("data-vbid",currentPaginator.attr("data-vbid"));
384	lightboxWrapper.find(".lightbox-title").text(currentPaginator.attr("data-title"));
385	lightboxWrapper.find(".lightbox-subtitle").text(currentPaginator.attr("data-subtitle"));
386	setTimeout(function(){
387		LightBox.arrange();
388	},0);
389}
390
391
392
393
394
395

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.