PageSourceSearch

https://www.saint-maurice.ch/js/jquery/openbox.js?_v=5

js saint-maurice.ch collected 2026-10-02 11:49:47 UTC 13,411 bytes, 398 lines download raw bytes

1//Fonction pour initialiser tous les liens qui ont pour target "openbox" afin de les ouvrirs en popup (call in $(document).ready)
2//Le onclick permet de définir les parametres, ex: onclick="void('openbox.iframe','width=200,height=300, modal');"
3function openboxInit()
4{
5	//Si je suis déjà en popup (en iframe)
6	if(window.cpCMSMedia == "popup")
7	{	
8		//je met les liens _self en parent car je suis dans une iframe
9		$("a[target='_self'], a:not([target])").each(function(){ $(this).attr("target", "_parent");  });
10	}
11	
12	//Parse les liens
13	$("a[target='openbox']").each(function(){
14		//Recupere et vide le onclick
15		var chaine = $(this).attr("onclick");
16		$(this).attr("onclick", "");
17		
18		//Parse les parametre du onclick
19		var width="";var height=""; var declaredtype=""; var ismodal=false; 
20		if(chaine) //ici c'est une fonction
21		{
22			chaine = chaine.toString().toLowerCase(); //je la transform en text
23			var reg = new RegExp("[ ,'=;\"]+", "g");
24			var tableau=chaine.split(reg);
25			for (var i=0; i<tableau.length; i++) 
26			{
27				if(tableau[i] == "width")
28					width = parseInt(tableau[i+1]);
29				else if(tableau[i] == "height")
30					height = parseInt(tableau[i+1]);
31				else if(tableau[i] == "modal") //REM: ce parametre n'est pas géré dans editeur (sinon peux plus fermer la fenêtre)
32					ismodal = true;
33				else if(tableau[i].indexOf("openbox.")>=0)
34					declaredtype = tableau[i];		 
35			}
36		}	
37		//Met la fancybox
38		$(this).fancybox(openboxDetectParam($(this).attr("href"), width, height, declaredtype, ismodal));
39	});
40	
41	//Ajoute le wmode transparent au iframe pour éviter que le popup passe en dessous (integration youtube par exemple)
42	$("iframe").each(function(){
43		
44		var src = $(this).attr("src");
45		if(src)
46		{
47			if(src.indexOf("?")<0)
48				src += "?"
49			else
50				src += "&amp;"
51				
52			//$(this).attr("src", src+"wmode=transparent"); //cause IE back button failure use instead:
53			$(this).get(0).contentWindow.location.replace(src+"wmode=transparent");
54		}
55	});
56	
57	//Ajoute un effet au image dans les a (mettre la class "noAeffect" sur les liens ou image ou on veut pas l'effet)
58	//GERER EN CSS NOW $("a:not(.noAeffect)").hover( function(){ $(this).find("img:not(.noAeffect)").stop().fadeTo(300, 0.8); }, function(){ $(this).find("img").stop().fadeTo(100, 1.0); });
59}
60
61/*
62Fonction pour ouvrir un élément en popup 
63pType permet de forcer un type d'ouvertur, les valeurs possibles sont:
64openbox.img, openbox.jpg/.jpeg/.gif/.png, openbox.flv, openbox.mp3, openbox.mp4, openbox.swf, openbox.wmv, openbox.mov, openbox.iframe, openbox.inline, openbox.ajax
65*/
66function openbox(pUrl, pWidth, pHeight, pType, pIsModal, pOtherParam)
67{
68	try
69	{
70		$.fancybox.open(openboxDetectParam(pUrl, pWidth, pHeight, pType, pIsModal, pOtherParam));
71	}
72	catch(ex){window.location.reload();}
73}
74
75/*Function qui affecte l'ouverture en popup à l'objet passer en parametre */
76function openboxSet(pObj, pUrl, pWidth, pHeight, pType, pIsModal)
77{
78	if(!pUrl)
79		pUrl = $(pObj).attr("href");
80	$(pObj).fancybox(openboxDetectParam(pUrl, pWidth, pHeight, pType, pIsModal));
81}
82
83/*Fonction qui detect les parametre à utiliser pour la popup en fct de l'url ou du type si celui-ci est forcé*/
84function openboxDetectParam(pUrl, pWidth, pHeight, pType, pIsModal, pOtherParam)
85{
86	var param = new Object(); var autostartvideo=true; var ext;
87	param.animationEffect = 'zoom';
88	param.clickContent= false;
89	param.clickSlide = false;
90	param.clickOutside = false;
91	
92	//Si le type est déclaré je l'utilise, sinon je recupere extension de url
93	if(pType)
94		ext = pType.replace("openbox.", "");
95	else
96	{
97		var a_tmp = pUrl.split(/\?/gi);
98		ext = a_tmp[0];
99		a_tmp = ext.split(/\./gi);
100		if(a_tmp.length==1) 
101			ext = "racc"; //Sans doute un raccourci de chikita
102		else
103			ext = a_tmp[a_tmp.length-1].toLowerCase();
104	}
105	
106	
107	//Set les tailles ou met celle par défaut (560*340 comme la fancybox)
108	if(pWidth)
109		param.width = pWidth;
110	else
111		param.width = 560;
112		
113	if(pHeight)
114		param.height = pHeight;
115	else
116		param.height = 340;
117	
118	//Test selon URL	
119	if(ext=="jpg" || ext=="jpeg" || ext=="png" || ext=="gif" || ext=="img") //openbox.img == pour déclarer facilement un type image
120	{
121		param.type = "image";
122		param.href = pUrl;
123		//Si les tailles sont forcées
124		if(pWidth || pHeight)
125		{
126			var size = openboxSizeToString(pWidth, pHeight);
127			param.content = '<img src="'+ pUrl + '" ' + size + '" style="display:block;"/>';
128		}
129	}
130	else if(ext=="swf")
131	{
132		param.type = "swf";
133		param.href = pUrl;
134	}
135	else if(ext=="flv" || ext == "mp4"|| ext=="mp3")
136	{
137		if(ext=="mp3")
138		{
139			if(!pHeight)
140				param.height=21;	
141		}
142		
143		var autostart = (autostartvideo?"1":"0");
144		var size = openboxSizeToString(param.width, param.height);
145		param.content = '<object id="flvpbox"' + size + 'classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0">' +
146						'<param name="movie" value="/wysiwygPro/media/player.swf" />' +
147						'<param name="flashvars" value="file=' + encodeURIComponent(pUrl) + '&amp;autostart=' + autostart + '&amp;controlbar=bottom&amp;fullscreen=true" />' +
148						'<param name="allowfullscreen" value="true"/>' +
149						'<param name="allowscriptaccess" value="always"/>' +
150						'<param name="wmode" value="transparent" /><embed' + size + 'src="/wysiwygPro/media/player.swf" flashvars="file=' +  encodeURIComponent(pUrl) + '&amp;autostart=' + autostart + '&amp;controlbar=bottom&amp;fullscreen=true" allowfullscreen="true" allowscriptaccess="always" type="application/x-shockwave-flash" wmode="transparent"></embed></object>';
151	}
152	else if(ext=="wmv")	
153	{
154		var autostart = (autostartvideo?"1":"0");
155		var size = openboxSizeToString(param.width, param.height);
156		param.content = '<object' + size + 'classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6" type="application/x-oleobject" title="">' +
157						'<param name="autostart" value="' + autostart + '" />' +
158						'<param name="loop" value="false" />' +
159						'<param name="showcontrols" value="true" />' +
160						'<param name="url" value="' + pUrl + '" />' +
161						'<param name="wmode" value="transparent" /><embed' + size + 'autostart="' + autostart + '" loop="false" showcontrols="true" src="' + pUrl + '" filename="' + pUrl + '" pluginspage="http://www.microsoft.com/Windows/MediaPlayer/" type="application/x-mplayer2" wmode="transparent"></embed></object>';	
162	}
163	else if(ext=="mov")
164	{
165		var autostart = (autostartvideo?"true":"false");
166		var size = openboxSizeToString(param.width, param.height);
167		param.content = '<object' + size + 'classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab">' +
168						'<param name="autoplay" value="' + autostart + '" />' +
169						'<param name="loop" value="false" />' +
170						'<param name="controller" value="true" />' +
171						'<param name="src" value="' + pUrl + '" />' +
172						'<param name="wmode" value="transparent" /><embed ' + size + 'autoplay="' + autostart + '" loop="false" controller="true" src="' + pUrl + '" pluginspage="http://www.apple.com/quicktime/download/" type="video/quicktime" wmode="transparent"></embed></object>';		
173	}
174	else if(ext == "ajax")
175	{
176		param.type="ajax";
177		param.href = pUrl;
178		if(pWidth || pHeight)
179		{
180			param.autoDimensions = false;
181			if(!pWidth)
182				param.width = 'auto';
183			else if(!pHeight)
184				param.height = 'auto';
185		}	
186	}
187	else if((pUrl.indexOf("#")==0 && ext!="iframe") || ext=="inline")
188	{
189		param.type="inline";
190		param.src = pUrl;
191		if(pWidth || pHeight){
192			param.autoDimensions = false;
193	}
194		else{
195			param.width = 'auto';
196			param.height = 'auto';
197		}
198	}
199	else if((pUrl.indexOf("google.")>=0 && pUrl.indexOf("maps")>=0) && ext!="iframe")
200	{					
201		param.type='iframe';
202		param.src = pUrl + "&output=embed";
203	}
204	else if((pUrl.indexOf("youtube.com/")>=0 || pUrl.indexOf("youtu.be/")>=0) && ext!="iframe")
205	{
206		param.type='iframe';
207		var idvideo = '';
208		if(pUrl.indexOf("youtu.be/")>=0) //Si version url abregee
209			{
210			idvideo = pUrl.replace("http://youtu.be/","");
211			idvideo = idvideo.replace("https://youtu.be/","");
212			}
213		else
214		{
215			var m = pUrl.match(/(v|embed)(=|\/)[a-zA-Z0-9_\-]+/gi);
216			if (m && m[0]) 
217				idvideo = m[0].replace(/(v|embed)(=|\/)([a-zA-Z0-9_\-]+)/gi, "$3");
218		}
219			
220		var autostart = (autostartvideo?1:0);
221		param.src= 'https://www.youtube.com/embed/' + idvideo + "?autoplay="+autostart;
222	}
223	else if(pUrl.indexOf("dailymotion.com/")>=0 && ext!="iframe")
224	{
225		param.type='iframe';
226		var idvideo = '';
227		var m = pUrl.match(/video(=|\/)[a-zA-Z0-9\-]+/gi);
228		if (m && m[0]) 
229			idvideo = m[0].replace(/video(=|\/)([a-zA-Z0-9\-]+)/gi, "$2");
230		
231		var autostart = (autostartvideo?1:0);	
232		param.src= 'https://www.dailymotion.com/embed/video/' + idvideo + "?autoPlay="+autostart;
233	}
234	else if(pUrl.indexOf("vimeo.com/")>=0 && ext!="iframe")
235	{
236		param.type='iframe';
237		var idvideo = '';
238		var m = pUrl.match(/vimeo.com(\/video)?(=|\/)[a-zA-Z0-9\-]+/gi);
239		if (m && m[0]) 
240			idvideo = m[0].replace(/vimeo.com(\/video)?(=|\/)([a-zA-Z0-9\-]+)/gi, "$3");
241		
242		var autostart = (autostartvideo?1:0);	
243		param.src= 'https://player.vimeo.com/video/' + idvideo + "?autoplay="+autostart;
244	}
245	else //tous le reste iframe
246	{
247		param.type='iframe';
248		param.src = pUrl;
249		//Si c'est une page interne
250		if(pUrl.indexOf("/")==0 && (ext=="html" || ext=="racc"))
251		{
252			var prefix = (pUrl.indexOf("?")>0?"&":"?"); 
253			param.src = '/noindex' + param.src + prefix + 'media=popup';
254		}
255	}
256	
257	if(pIsModal==true)
258		param.modal=true;
259	else
260		param.smallBtn = true;
261
262	//Affect les autres param si recu en paramètre
263	if(pOtherParam)
264		for(var i in pOtherParam)
265			param[i] = pOtherParam[i];
266		
267	//Retourne les params pour la box	
268	return param;	
269}
270
271//Function pour ouvrir les écrans d'admin en popup. pOtherParam au format json (idem que param ci-dessous)
272function openboxAdmin(pUrl, pOtherParam)
273{
274	try
275	{
276		//Param par défaut pour fenetre admin
277		var param = {'src':pUrl, 'type':'ajax', 'modal':true, baseClass:'fbx-nopadding'};
278
279		//Affect les autres param si recu en paramètre
280		if(pOtherParam)
281			for(var i in pOtherParam)
282				param[i] = pOtherParam[i];
283		//Lance la popup
284		$.fancybox.open(param);
285	}
286	catch(ex){window.location.reload();}
287}
288
289//Function pour ouvrir les écrans d'admin avec HTMLEditor en popup
290/*function openboxAdminEditor(pUrl, pIdEditorCtn, pOtherParam)
291{
292	try
293	{
294		//Param par défaut pour fenetre admin
295		var param = {'content': '<div id="divwproctn"></div>', 'modal':true, baseClass:'nopadding'};
296		
297		//Affect les autres param si recu en paramètre
298		if(pOtherParam)
299			for(var i in pOtherParam)
300				param[i] = pOtherParam[i];
301				
302		//Ouvre un popup avec un div vide
303		$.fancybox.open(param);
304		//Met la rondelle d'attente
305		openboxWait();
306		//Charge l'editeur en ajax et affect au div de la popup
307		$.ajax({
308			type		: "GET",
309			cache	: false,
310			url		: pUrl,
311			success: function(data){
312				//Set l'editeur dans le div
313				$("#divwproctn").append(data);
314				//Reaffecte la largeur
315				$('.fancybox-content').width($("#"+pIdEditorCtn).width());
316				//Recalcul la hauteur et la position
317				openboxResize();
318				//Enleve la rondelle d'attente et affiche le contenu de la popup
319				openboxReady();
320			}
321		});
322	}
323	catch(ex){window.location.reload();}	
324}*/
325
326//Fonction pour creer la chaine html avec les tailles
327function openboxSizeToString(pWidth, pHeight)
328{
329	var size = ' ';
330	if(pWidth)
331		size += 'width="' + pWidth + 'px" ';
332	if(pHeight)
333		size += 'height="' + pHeight + 'px" ';
334	
335	return size;
336}
337
338//Ferme la popup
339function openboxClose()
340{
341	$.fancybox.close();
342}
343
344//Cache le contenu de la popup et met l'image d'attente
345function openboxWait(pbJustShowActivity)
346{
347	var fbxInstance = $.fancybox.getInstance();
348	if(fbxInstance == false)
349	{
350		var param = {'src':'', 'modal':true, baseClass:'fbx-nopadding', opts:{ beforeShow : function( instance, current ) { $('.fancybox-bg').css("opacity", ".5"); }}};
351		$.fancybox.open(param);
352	}
353
354	$.fancybox.getInstance().showLoading();
355	if(pbJustShowActivity!=true)
356		$('.fancybox-content').hide();
357}
358
359//Reaffiche le contenu de la popup et enlève l'image d'attente (contraire de wait)
360function openboxReady(pbJustHideActivity)
361{
362	//Si il y a une fancyboy ouvert j'envoi la fct, sinon je fait rien
363	//if($('.fancybox-loading').css("display")=="block")
364	var fbxInstance = $.fancybox.getInstance();
365	if(fbxInstance != false)
366	{
367		if(pbJustHideActivity!=true)
368			$('.fancybox-content').show();
369		
370		$.fancybox.getInstance().hideLoading();
371	}
372}
373
374//Recalcul la hauteur et la position de la popup
375/*function openboxResize() plus besoin car uniquement pour editeur
376{
377	$.fancybox.resize();
378	$.fancybox.center();
379}*/
380
381//Fonction qui renvoie la largeur et la hauteur du contenu de la popup ouverte
382function openboxGetSize()
383{
384	return {'width':$('.fancybox-content').width(), 'height':$('.fancybox-content').height()};
385}
386
387//Fonction pour éviter le centrage de la fancybox sur des mobiles lorsqu'on ZOOM
388/*(function()
389{
390	var fboxcenter = $.fancybox.center; //recupere la fct de centrage du fancybox et la redéfini
391	$.fancybox.center = function(param){
392		var w = $('#fancybox-wrap').outerWidth(); //recupere la largeur de la box
393		var h = $('#fancybox-wrap').outerHeight();//recupere la hauteur de la box
394		if(w>=window.innerWidth || h>=window.innerHeight) //Si la taille de la box dépasse la taille de l'écran je return
395			return;
396		fboxcenter(param); //Sinon envoi la fct d'origine
397	};
398})();*/

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.