PageSourceSearch

https://matsumoto.ed.jp/wp-content/themes/insp_para/framework/js/p…y.pixelentity.videoPlayer.js?ver=1561346633

js matsumoto.ed.jp collected 2026-10-05 09:39:32 UTC 8,096 bytes, 382 lines download raw bytes

1(function ($) {
2	/*jslint undef: false, browser: true, devel: false, eqeqeq: false, bitwise: false, white: false, plusplus: false, regexp: false, nomen: false */ 
3	/*global jQuery,setTimeout,projekktor,location,setInterval,YT,clearInterval */
4
5	$.pixelentity = $.pixelentity || {version: '1.0.0'};
6	
7	function getInfo(url,formats,poster,size) {
8		var result, type, id, i,w = false,h = false;
9		
10		url = url ? url : "";
11		
12		for (var filter in types) {
13			if (typeof filter === "string" ) {
14				result = url.match(types[filter]);
15				if (result && result.length > 0) {
16					type = filter;
17					id = result[2];
18					if (!poster) {
19						poster = posters[type] ? posters[type].replace("$ID",id) : "";						
20					}
21					break;
22				}	
23				
24			}
25		}
26		
27		// no know source found, see if local video
28		if (!id) {
29			var src = url.match(local);
30			if (src) {
31				type = "local";
32				id = [src[0]];
33				if (formats) {
34					formats = formats.split(",");
35					for (i=0;i<formats.length;i++) {
36						id.push(src[1]+formats[i]);
37					}
38				}
39			} else {
40				id = false;
41			}
42		}
43		
44		if (size) {
45			var token = size.split(/x| |,/);
46			w = parseInt(token[0],10) || 0;
47			h = parseInt(token[1],10) || 0;
48		}
49		
50		return {
51			video: id,
52			videoType: type,
53			videoPoster: poster,
54			videoW : w,
55			videoH : h
56			
57		};
58	}
59
60	
61	$.pixelentity.videoplayer = {	
62		conf: { 
63			autoPlay: false,
64			responsive: false,
65			api: false
66		},
67		getInfo: getInfo
68	};
69	
70	var instances = [];
71	
72	var types = {
73			vidly: /http:\/\/(vid.ly)\/([\w|\-]+)/i,
74			youtube: /http:\/\/(www.youtube.com\/watch\?v=|youtube.com\/watch\?v=|youtu.be\/)([\w|\-]+)/i,
75			vimeo: /http:\/\/(vimeo\.com|www\.vimeo\.com)\/([\w|\-]+)/i
76		};
77	
78	var posters = {
79			vidly: "http://cf.cdn.vid.ly/$ID/poster.jpg",
80			youtube: "http://img.youtube.com/vi/$ID/0.jpg",
81			vimeo: "http://vimeo.com/api/v2/video/$ID.json?callback=?"
82		};
83	
84	var local = /(.+[^w])(mp4|webm|ogv)$/i;
85	
86	function PeVideoPlayer(target, conf) {
87		var preview,w,h,type,id,poster;
88		var container;
89		var player = false;
90		var instanceID;
91		
92		
93		
94		function start() {
95			var info = getInfo(target[0].href,target.attr("data-formats"),target.attr("data-poster"),target.attr("data-size"));
96			
97			if (info.video) {
98				id = info.video;
99				type = info.videoType;
100				poster = info.videoPoster;
101			} else {
102				return;
103			}
104			
105			if (info.videoW !== false) {
106				target.css({
107					width: info.videoW,
108					height: info.videoH
109				});
110			}
111			
112			/*
113			for (var filter in types) {
114				if (typeof filter === "string" ) {
115					result = url.match(types[filter]);
116					if (result && result.length > 0) {
117						type = filter;
118						id = result[2];
119						poster = posters[type] ? posters[type].replace("$ID",id) : "";
120						break;
121					}	
122					
123				}
124			}
125			
126			// no know source found, see if local video
127			if (!id) {
128				var src = url.match(local);
129				if (src) {
130					type = "local";
131					id = [src[0]];
132					var formats = target.attr("data-formats");
133					if (formats) {
134						formats = formats.split(",");
135						for (i=0;i<formats.length;i++) {
136							id.push(src[1]+formats[i]);
137						}
138					}
139				} else {
140					return;
141				}
142			}
143			
144			if (target.attr("data-size")) {
145				var token = target.attr("data-size").split(/x| |,/);
146				w = parseInt(token[0],10) || 0;
147				h = parseInt(token[1],10) || 0;
148				target.css({
149					width: w,
150					height: h
151				});
152			}*/
153			
154			
155			w = info.videoW || target.width();
156			h = info.videoH || target.height();
157			
158			var icon = $('<span class="largePlay"></span>');
159			
160			if (conf.responsive) {
161				
162				container = $("<div/>").fadeTo(0,0);
163				
164				target
165					.append(icon)
166					.removeAttr("href")
167					.append(container)
168					.wrap('<div class="videoWrapper sixteenBYnine '+info.videoType+'"></div>');
169				
170				if (target.attr("data-target") != "flare") {
171					target
172						.addClass("peActiveWidget")
173						.bind("enable.pixelentity ",enable)
174						.bind("disable.pixelentity ",disable)
175						.bind("click",play);
176				}
177				
178			} else {
179				target
180					.append(icon)
181					.wrap('<div style="position: relative; overflow: hidden"></div>')
182					.addClass("peActiveWidget")
183					.bind("enable.pixelentity ",enable)
184					.bind("disable.pixelentity ",disable)
185					.bind("click",play);
186				
187				icon.css({
188					left: (w-icon.width()) >> 1,
189					top: (h-icon.height()) >> 1
190				});
191				
192				container = $("<div/>").css({
193					"position": "absolute",
194					"z-index": 2,
195					"display": "none",
196					"width": w+"px",
197					"height": h+"px"
198				});
199				
200				target.parent().prepend(container);
201				
202			}
203			
204			
205			
206			var img = target.children("img:eq(0)");
207			
208			if (img.length > 0) {
209				preview = img;
210				poster = img.attr("src");
211				posterLoaded();
212			} else if (target.attr("data-poster")) {
213				poster = target.attr("data-poster");
214				if (conf.responsive) {
215					target.parent().addClass("customCover");
216				}
217				getPoster();
218			} else if (poster) {
219				if (type == "vimeo") {
220					$.getJSON(poster,vimeoPosterUrlLoaded);
221				} else {
222					getPoster();
223				}
224			} 
225			
226			if (($.pixelentity.browser.mobile && target.attr("data-autoplay") != "disabled") || conf.autoPlay) {
227				enable();
228			}
229			
230		} 
231		
232		function vimeoPosterUrlLoaded(data) {
233			poster = (data && data[0] && data[0].thumbnail_large) || false;
234			if (poster) {
235				getPoster();
236			}
237		}
238		
239		function getPoster() {
240			preview = $("<img/>");
241			preview.fadeTo(0,0).css("opacity",0).attr("data-src",poster);
242			target.append(preview);
243			$.pixelentity.preloader.load(preview,posterLoaded);
244		}
245		
246		function posterLoaded() {
247			
248			if (conf.responsive) {
249				//preview.width("100%").height("100%").fadeTo(300,1);
250				preview.width("100%").fadeTo(300,1);
251				/*
252				if (preview.closest("bw-images")) {
253					preview.peBlackAndWhite();
254				}
255				*/
256				return;
257			}
258			
259			var iw = preview[0].width || preview.width();
260			var ih = preview[0].height || preview.height();
261		
262			var scaler = $.pixelentity.Geom.getScaler(
263				"fillmax",
264				"center",
265				"center",
266				w,
267				h,
268				iw,
269				ih
270				
271			);
272			
273			preview.transform(scaler.ratio,scaler.offset.w,scaler.offset.h,w,h,true);
274			preview.fadeTo(300,1);
275		}
276		
277		function play(e) {
278			if (player) {
279				return false;
280			}
281			
282			if (!$.pixelentity.browser.mobile) {
283				for (var i=0;i<instances.length;i++) {
284					if (i != instanceID) {
285						instances[i].disable();
286					}
287				}
288			}
289			
290			container.show().fadeTo(0,0);
291			player = container.peVideo({
292				api: true,
293				useVideoTag: conf.responsive && $.pixelentity.browser.mobile,
294				//useVideoTag: true,
295				width: conf.responsive ? "100%" : w,
296				height: conf.responsive ? "100%" : h,
297				type    : type,
298				videoId : id,
299				poster:poster,
300				hd: true,
301				autoPlay:true,
302				loop:true
303			});
304			player.one("video_ready.pixelentity",show);
305			
306			target.trigger("play");
307			// for testing
308			//setTimeout(disable,3000);
309			
310			return false;
311		}
312		
313		function show() {
314			container.fadeTo(500,1);
315		}
316		
317		function stop() {
318		}
319		
320		function enable() {
321			if (!player && ($.pixelentity.browser.mobile || conf.autoPlay)) {
322				play();
323			}
324		}
325		
326		function disable() {
327			if (player) {
328				if (player.destroy) {
329					player.destroy();
330				}
331				player = false;
332				container.empty().fadeTo(0,0).hide();
333			}
334		}
335		
336		
337		$.extend(this, {
338			enable: enable,
339			disable: disable,
340			destroy: function() {
341				if (player && player.destroy) {
342					player.destroy();
343				}
344				player = undefined;
345				instances.splice(instanceID,1);
346				target.data("peVideoPlayer", null);
347				target = undefined;
348				
349			}
350		});
351		
352		instanceID = instances.length;
353		instances.push(this);
354				
355		start();
356		
357		
358	}
359	
360	// jQuery plugin implementation
361	$.fn.peVideoPlayer = function(conf) {
362		// return existing instance
363		
364		var api = this.data("peVideoPlayer");
365		
366		if (api) { 
367			return api; 
368		}
369
370		conf = $.extend(true, {}, $.pixelentity.videoplayer.conf, conf);
371		
372		// install kb for each entry in jQuery object
373		this.each(function() {
374			api = new PeVideoPlayer($(this), conf);
375			$(this).data("peVideoPlayer", api); 
376		});
377		
378		return conf.api ? api: this;		 
379	};
380	
381		
382}(jQuery));

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.