PageSourceSearch

https://www.agroads.com.ar/solucionesdigitales/assets/vimeoplayer/jquery.mb.vimeo_player.js

js agroads.com.ar collected 2026-09-28 08:34:41 UTC 48,484 bytes, 1,038 lines download raw bytes

1/*___________________________________________________________________________________________________________________________________________________
2 _ jquery.mb.components                                                                                                                             _
3 _                                                                                                                                                  _
4 _ file: jquery.mb.vimeo_player.js                                                                                                                   _
5 _ last modified: 26/12/16 15.39                                                                                                                    _
6 _                                                                                                                                                  _
7 _ Open Lab s.r.l., Florence - Italy                                                                                                                _
8 _                                                                                                                                                  _
9 _ email: [email protected]                                                                                                                       _
10 _ site: http://pupunzi.com                                                                                                                         _
11 _       http://open-lab.com                                                                                                                        _
12 _ blog: http://pupunzi.open-lab.com                                                                                                                _
13 _ Q&A:  http://jquery.pupunzi.com                                                                                                                  _
14 _                                                                                                                                                  _
15 _ Licences: MIT, GPL                                                                                                                               _
16 _    http://www.opensource.org/licenses/mit-license.php                                                                                            _
17 _    http://www.gnu.org/licenses/gpl.html                                                                                                          _
18 _                                                                                                                                                  _
19 _ Copyright (c) 2001-2016. Matteo Bicocchi (Pupunzi);                                                                                              _
20 ___________________________________________________________________________________________________________________________________________________*/
21
22var get_vimeo_videoID = function( url ) {
23
24	var videoID;
25	if( url.indexOf( "vimeo.com" ) > 0 ) {
26		videoID = url.substr( url.lastIndexOf( "/" ) + 1, url.length );
27	} else {
28		videoID = url.length > 15 ? null : url;
29	}
30
31	return videoID
32};
33
34
35( function( $ ) {
36	jQuery.vimeo_player = {
37		name: "jquery.mb.vimeo_player",
38		author: "Matteo Bicocchi (pupunzi)",
39		version: "1.0.6",
40		build: "373",
41		defaults: {
42			containment: "body",
43			ratio: "16/9", // "auto", "16/9", "4/3"
44			videoURL: null,
45			startAt: 0,
46			stopAt: 0,
47			autoPlay: true,
48			vol: 50, // 1 to 100
49			addRaster: false,
50			opacity: 1,
51			mute: false,
52			loop: true,
53			showControls: true,
54			show_vimeo_logo: true,
55			stopMovieOnBlur: true,
56			realfullscreen: true,
57			mobileFallbackImage: null,
58			gaTrack: true,
59			optimizeDisplay: true,
60			mask: false,
61			align: "center,center", // top,bottom,left,right
62			onReady: function( player ) {}
63		},
64		/**
65		 *  @fontface icons
66		 *  */
67		controls: {
68			play: "P",
69			pause: "p",
70			mute: "M",
71			unmute: "A",
72			fullscreen: "O",
73			showSite: "R",
74			logo: "V"
75		},
76		buildPlayer: function( options ) {
77
78			var isIframe = function() {
79				var isIfr = false;
80				try {
81					if( self.location.href != top.location.href ) isIfr = true;
82				} catch( e ) {
83					isIfr = true;
84				}
85				return isIfr;
86			};
87
88
89			var script = document.createElement( 'script' );
90			script.src = "https://player.vimeo.com/api/player.js";
91			script.onload = function() {
92				jQuery( document ).trigger( "vimeo_api_loaded" );
93			};
94			document.head.appendChild( script );
95
96			return this.each( function() {
97
98				var vimeo_player = this;
99				var $vimeo_player = jQuery( vimeo_player );
100				vimeo_player.loop = 0;
101				vimeo_player.opt = {};
102				vimeo_player.state = {};
103				vimeo_player.id = vimeo_player.id || "YTP_" + new Date().getTime();
104				$vimeo_player.addClass( "vimeo_player" );
105
106				var property = $vimeo_player.data( "property" ) && typeof $vimeo_player.data( "property" ) == "string" ? eval( '(' + $vimeo_player.data( "property" ) + ')' ) : $vimeo_player.data( "property" );
107
108				jQuery.extend( vimeo_player.opt, jQuery.vimeo_player.defaults, options, property );
109
110				vimeo_player.opt.ratio = vimeo_player.opt.ratio == "auto" ? "16/9" : vimeo_player.opt.ratio;
111
112				if( eval( vimeo_player.opt.loop ) )
113					vimeo_player.opt.loop = 9999;
114
115				vimeo_player.isRetina = ( window.retina || window.devicePixelRatio > 1 );
116
117
118				vimeo_player.canGoFullScreen = !( jQuery.browser.msie || jQuery.browser.opera || isIframe() );
119				if( !vimeo_player.canGoFullScreen ) vimeo_player.opt.realfullscreen = false;
120
121				vimeo_player.isAlone = false;
122				vimeo_player.hasFocus = true;
123
124				vimeo_player.videoID = this.opt.videoURL ? get_vimeo_videoID( this.opt.videoURL ) : $vimeo_player.attr( "href" ) ? get_vimeo_videoID( $vimeo_player.attr( "href" ) ) : false;
125
126				vimeo_player.isSelf = vimeo_player.opt.containment == "self";
127				vimeo_player.opt.containment = vimeo_player.opt.containment == "self" ? jQuery( this ) : jQuery( vimeo_player.opt.containment );
128				vimeo_player.isBackground = vimeo_player.opt.containment.is( "body" );
129
130				if( vimeo_player.isBackground && vimeo_player.backgroundIsInited )
131					return;
132
133				vimeo_player.canPlayOnMobile = vimeo_player.isSelf && jQuery( this ).children().length === 0;
134
135				if( !vimeo_player.isSelf ) {
136					$vimeo_player.hide();
137				}
138
139				var overlay = jQuery( "<div/>" ).css( {
140					position: "absolute",
141					top: 0,
142					left: 0,
143					width: "100%",
144					height: "100%"
145				} ).addClass( "vimeo_player_overlay" );
146
147				if( vimeo_player.isSelf ) {
148					// overlay.on( "click", function() {
149					// 	$vimeo_player.togglePlay();
150					// } )
151				}
152
153				var playerID = "vimeo_player_" + vimeo_player.id;
154
155				var wrapper = jQuery( "<div/>" ).addClass( "vimeo_player_wrapper" ).attr( "id", "vimeo_player_wrapper_" + playerID );
156				wrapper.css( {
157					position: "absolute",
158					zIndex: 0,
159					minWidth: "100%",
160					minHeight: "100%",
161					left: 0,
162					top: 0,
163					overflow: "hidden",
164					opacity: 0
165				} );
166
167				vimeo_player.playerBox = jQuery( "<iframe/>" ).attr( "id", playerID ).addClass( "playerBox" );
168				vimeo_player.playerBox.css( {
169					position: "absolute",
170					zIndex: 0,
171					width: "100%",
172					height: "100%",
173					top: -10,
174					frameBorder: 0,
175					overflow: "hidden",
176					left: 0
177				} ).attr( {
178					src: "https://player.vimeo.com/video/" + vimeo_player.videoID + "?background=1&autopause=0"
179				} );
180
181				if( !jQuery.browser.mobile || vimeo_player.canPlayOnMobile )
182					wrapper.append( vimeo_player.playerBox );
183				else {
184					if( vimeo_player.opt.mobileFallbackImage ) {
185						wrapper.css( {
186							backgroundImage: "url(" + vimeo_player.opt.mobileFallbackImage + ")",
187							backgroundPosition: "center center",
188							backgroundSize: "cover",
189							backgroundRepeat: "no-repeat",
190							opacity: 1
191						} )
192					};
193
194					$vimeo_player.remove();
195					return;
196				}
197
198				vimeo_player.opt.containment.children().not( "script, style" ).each( function() {
199					if( jQuery( this ).css( "position" ) == "static" ) jQuery( this ).css( "position", "relative" );
200				} );
201
202				if( vimeo_player.isBackground ) {
203					jQuery( "body" ).css( {
204						boxSizing: "border-box"
205					} );
206
207					wrapper.css( {
208						position: "fixed",
209						top: 0,
210						left: 0,
211						zIndex: 0
212					} );
213
214				} else if( vimeo_player.opt.containment.css( "position" ) == "static" )
215					vimeo_player.opt.containment.css( {
216						position: "relative"
217					} );
218
219				vimeo_player.opt.containment.prepend( wrapper );
220				vimeo_player.wrapper = wrapper;
221
222				vimeo_player.playerBox.css( {
223					opacity: 1
224				} );
225
226				if( !jQuery.browser.mobile ) {
227					vimeo_player.playerBox.after( overlay );
228					vimeo_player.overlay = overlay;
229				}
230
231				if( !vimeo_player.isBackground ) {
232					overlay.on( "mouseenter", function() {
233						if( vimeo_player.controlBar && vimeo_player.controlBar.length )
234							vimeo_player.controlBar.addClass( "visible" );
235					} ).on( "mouseleave", function() {
236						if( vimeo_player.controlBar && vimeo_player.controlBar.length )
237							vimeo_player.controlBar.removeClass( "visible" );
238					} );
239				}
240
241				jQuery( document ).on( "vimeo_api_loaded", function() {
242
243					vimeo_player.player = new Vimeo.Player( playerID, options );
244					vimeo_player.player.ready().then( function() {
245
246						var VEvent;
247
248						function start() {
249							vimeo_player.isReady = true;
250
251							if( vimeo_player.opt.mute )
252								setTimeout( function() {
253									$vimeo_player.v_mute();
254								}, 1000 );
255
256							if( vimeo_player.opt.showControls )
257								jQuery.vimeo_player.buildControls( vimeo_player );
258
259							if( vimeo_player.opt.autoPlay )
260								setTimeout( function() {
261
262									$vimeo_player.v_play();
263
264									setTimeout( function() {
265										VEvent = jQuery.Event( 'VPStart' );
266										$vimeo_player.trigger( VEvent );
267									}, 1500 )
268
269								}, 100 );
270							else
271								$vimeo_player.v_pause();
272
273							VEvent = jQuery.Event( 'VPReady' );
274							$vimeo_player.trigger( VEvent );
275
276						}
277
278						if( vimeo_player.opt.startAt ) {
279
280							vimeo_player.player.play().then( function() {
281								vimeo_player.player.pause();
282							} );
283
284							$vimeo_player.v_seekTo( vimeo_player.opt.startAt, function() {
285								start()
286							} );
287
288						} else
289							start();
290
291						$vimeo_player.v_optimize_display();
292						jQuery( window ).off( "resize.vimeo_player_" + vimeo_player.id ).on( "resize.vimeo_player_" + vimeo_player.id, function() {
293							$vimeo_player.v_optimize_display();
294						} );
295
296						//PROGRESS
297						vimeo_player.player.on( "progress", function( data ) {
298							console.debug( "progress:: ", data );
299						} );
300
301						//ERROR
302						vimeo_player.player.on( "error", function( data ) {
303							vimeo_player.state = -1;
304							//console.debug( "error:: ", data );
305							// Trigger state events
306							VEvent = jQuery.Event( 'VPError' );
307							VEvent.error = data;
308							$vimeo_player.trigger( VEvent );
309						} );
310
311						//PLAY
312						vimeo_player.player.on( "play", function( data ) {
313							vimeo_player.state = 1;
314							$vimeo_player.trigger( "change_state" );
315
316							if( vimeo_player.controlBar && vimeo_player.controlBar.length )
317								vimeo_player.controlBar.find( ".vimeo_player_pause" ).html( jQuery.vimeo_player.controls.pause );
318
319							if( typeof _gaq != "undefined" && eval( vimeo_player.opt.gaTrack ) ) _gaq.push( [ '_trackEvent', 'vimeo_player', 'Play', vimeo_player.videoID ] );
320							if( typeof ga != "undefined" && eval( vimeo_player.opt.gaTrack ) ) ga( 'send', 'event', 'vimeo_player', 'play', vimeo_player.videoID );
321
322							// Trigger state events
323							VEvent = jQuery.Event( 'VPPlay' );
324							VEvent.error = data;
325							$vimeo_player.trigger( VEvent );
326
327						} );
328
329						//PAUSE
330						vimeo_player.player.on( "pause", function( data ) {
331							vimeo_player.state = 2;
332							$vimeo_player.trigger( "change_state" );
333
334							if( vimeo_player.controlBar && vimeo_player.controlBar.length )
335								vimeo_player.controlBar.find( ".vimeo_player_pause" ).html( jQuery.vimeo_player.controls.play );
336
337							VEvent = jQuery.Event( 'VPPause' );
338							VEvent.time = data;
339							$vimeo_player.trigger( VEvent );
340
341						} );
342
343						//SEEKED
344						vimeo_player.player.on( "seeked", function( data ) {
345							vimeo_player.state = 3;
346							$vimeo_player.trigger( "change_state" )
347						} );
348
349						//ENDED
350						vimeo_player.player.on( "ended", function( data ) {
351							vimeo_player.state = 0;
352							$vimeo_player.trigger( "change_state" );
353
354							VEvent = jQuery.Event( 'VPEnd' );
355							VEvent.time = data;
356							$vimeo_player.trigger( VEvent );
357
358						} );
359
360						//TIME UPDATE
361						vimeo_player.player.on( "timeupdate", function( data ) {
362
363							vimeo_player.duration = data.duration;
364							vimeo_player.percent = data.percent;
365							vimeo_player.seconds = data.seconds;
366
367							vimeo_player.state = 1;
368							vimeo_player.player.getPaused().then( function( paused ) {
369								if( paused )
370									vimeo_player.state = 2;
371							} );
372
373							if( vimeo_player.opt.stopMovieOnBlur ) {
374								if( !document.hasFocus() ) {
375									if( vimeo_player.state == 1 ) {
376										vimeo_player.hasFocus = false;
377										$vimeo_player.v_pause();
378										vimeo_player.document_focus = setInterval( function() {
379											if( document.hasFocus() && !vimeo_player.hasFocus ) {
380												vimeo_player.hasFocus = true;
381												$vimeo_player.v_play();
382												clearInterval( vimeo_player.document_focus );
383											}
384										}, 300 );
385									}
386								}
387							}
388
389							if( vimeo_player.opt.showControls ) {
390								var controls = jQuery( "#controlBar_" + vimeo_player.id );
391								var progressBar = controls.find( ".vimeo_player_pogress" );
392								var loadedBar = controls.find( ".vimeo_player_loaded" );
393								var timeBar = controls.find( ".vimeo_player_seek_bar" );
394								var totW = progressBar.outerWidth();
395								var currentTime = Math.floor( data.seconds );
396								var totalTime = Math.floor( data.duration );
397								var timeW = ( currentTime * totW ) / totalTime;
398								var startLeft = 0;
399								var loadedW = data.percent * 100;
400								loadedBar.css( {
401									left: startLeft,
402									width: loadedW + "%"
403								} );
404								timeBar.css( {
405									left: 0,
406									width: timeW
407								} );
408
409								if( data.duration ) {
410									vimeo_player.controlBar.find( ".vimeo_player_time" ).html( jQuery.vimeo_player.formatTime( data.seconds ) + " / " + jQuery.vimeo_player.formatTime( data.duration ) );
411								} else {
412									vimeo_player.controlBar.find( ".vimeo_player_time" ).html( "-- : -- / -- : --" );
413								}
414							}
415
416							if( vimeo_player.opt.addRaster ) {
417								var classN = vimeo_player.opt.addRaster == "dot" ? "raster-dot" : "raster";
418								vimeo_player.overlay.addClass( vimeo_player.isRetina ? classN + " retina" : classN );
419							} else {
420								vimeo_player.overlay.removeClass( function( index, classNames ) {
421									// change the list into an array
422									var current_classes = classNames.split( " " ),
423										// array of classes which are to be removed
424										classes_to_remove = [];
425									jQuery.each( current_classes, function( index, class_name ) {
426										// if the classname begins with bg add it to the classes_to_remove array
427										if( /raster.*/.test( class_name ) ) {
428											classes_to_remove.push( class_name );
429										}
430									} );
431									classes_to_remove.push( "retina" );
432									// turn the array back into a string
433									return classes_to_remove.join( " " );
434								} )
435							}
436
437							vimeo_player.opt.stopAt = vimeo_player.opt.stopAt > data.duration ? data.duration - 0.6 : vimeo_player.opt.stopAt;
438							var end_time = vimeo_player.opt.stopAt || data.duration - 0.6;
439
440							if( data.seconds >= end_time ) {
441
442								vimeo_player.loop = vimeo_player.loop || 0;
443
444								if( vimeo_player.opt.loop && vimeo_player.loop < vimeo_player.opt.loop ) {
445									$vimeo_player.v_seekTo( vimeo_player.opt.startAt );
446									vimeo_player.loop++;
447
448								} else {
449									$vimeo_player.v_pause();
450									vimeo_player.state = 0;
451									$vimeo_player.trigger( "change_state" );
452								}
453							}
454
455							// Trigger state events
456							VEvent = jQuery.Event( 'VPTime' );
457							VEvent.time = data.seconds;
458							$vimeo_player.trigger( VEvent );
459
460						} );
461
462					} );
463
464					$vimeo_player.on( "change_state", function() {
465						console.debug( "player state:: ", vimeo_player.state );
466
467						if( vimeo_player.state == 0 )
468							vimeo_player.wrapper.fadeOut( 500, function() {
469								$vimeo_player.v_seekTo( 0 );
470							} );
471
472					} )
473				} );
474			} )
475		},
476
477		formatTime: function( s ) {
478			var min = Math.floor( s / 60 );
479			var sec = Math.floor( s - ( 60 * min ) );
480			return( min <= 9 ? "0" + min : min ) + " : " + ( sec <= 9 ? "0" + sec : sec );
481		},
482
483		play: function() {
484			var vimeo_player = this.get( 0 );
485			if( !vimeo_player.isReady )
486				return this;
487
488			vimeo_player.player.play();
489			setTimeout( function() {
490				vimeo_player.wrapper.fadeTo( 1000, vimeo_player.opt.opacity );
491			}, 1000 );
492
493			var controls = jQuery( "#controlBar_" + vimeo_player.id );
494
495			if( controls.length ) {
496				var playBtn = controls.find( ".mb_YTPPvimeo_player_playpause" );
497				playBtn.html( jQuery.vimeo_player.controls.pause );
498			}
499			vimeo_player.state = 1;
500
501			jQuery( vimeo_player ).css( "background-image", "none" );
502			return this;
503		},
504
505		togglePlay: function( callback ) {
506			var vimeo_player = this.get( 0 );
507			if( vimeo_player.state == 1 )
508				this.v_pause();
509			else
510				this.v_play();
511
512			if( typeof callback == "function" )
513				callback( vimeo_player.state );
514
515			return this;
516		},
517
518		pause: function() {
519			var vimeo_player = this.get( 0 );
520			vimeo_player.player.pause();
521			vimeo_player.state = 2;
522			return this;
523		},
524
525		seekTo: function( val, callback ) {
526			var vimeo_player = this.get( 0 );
527
528			var seekTo = vimeo_player.opt.stopAt && ( val >= vimeo_player.opt.stopAt ) ? vimeo_player.opt.stopAt - 0.5 : val;
529
530			vimeo_player.player.setCurrentTime( seekTo ).then( function( data ) {
531				if( typeof callback == "function" )
532					callback( data );
533			} );
534			return this;
535		},
536
537		setVolume: function( val ) {
538
539			var vimeo_player = this.get( 0 );
540
541			console.debug( "setVolume:: ", val );
542			console.debug( "volume:: ", vimeo_player.opt.vol );
543
544			if( !val && !vimeo_player.opt.vol && vimeo_player.isMute )
545				jQuery( vimeo_player ).v_unmute();
546			else if( ( !val && !vimeo_player.isMute ) || ( val && vimeo_player.opt.vol == val ) ) {
547				if( !vimeo_player.isMute )
548					jQuery( vimeo_player ).v_unmute();
549				else
550					jQuery( vimeo_player ).v_mute();
551			} else {
552
553				vimeo_player.opt.vol = val;
554				vimeo_player.player.setVolume( vimeo_player.opt.vol );
555				if( vimeo_player.volumeBar && vimeo_player.volumeBar.length )
556					vimeo_player.volumeBar.updateSliderVal( val * 100 )
557			}
558			return this;
559		},
560
561		toggleVolume: function() {
562			var vimeo_player = this.get( 0 );
563			if( !vimeo_player ) return;
564
565			if( vimeo_player.isMute ) {
566				jQuery( vimeo_player ).v_unmute();
567				return true;
568			} else {
569				jQuery( vimeo_player ).v_mute();
570				return false;
571			}
572		},
573
574		mute: function() {
575			var vimeo_player = this.get( 0 );
576			if( vimeo_player.isMute )
577				return;
578			vimeo_player.isMute = true;
579			vimeo_player.player.setVolume( 0 );
580			if( vimeo_player.volumeBar && vimeo_player.volumeBar.length && vimeo_player.volumeBar.width() > 10 ) {
581				vimeo_player.volumeBar.updateSliderVal( 0 );
582			}
583			var controls = jQuery( "#controlBar_" + vimeo_player.id );
584			var muteBtn = controls.find( ".vimeo_player_muteUnmute" );
585			muteBtn.html( jQuery.vimeo_player.controls.unmute );
586
587			jQuery( vimeo_player ).addClass( "isMuted" );
588
589			if( vimeo_player.volumeBar && vimeo_player.volumeBar.length )
590				vimeo_player.volumeBar.addClass( "muted" );
591
592			return this;
593		},
594
595		unmute: function() {
596			var vimeo_player = this.get( 0 );
597
598			if( !vimeo_player.isMute )
599				return;
600			vimeo_player.isMute = false;
601
602			jQuery( vimeo_player ).v_set_volume( vimeo_player.opt.vol );
603
604			if( vimeo_player.volumeBar && vimeo_player.volumeBar.length ) vimeo_player.volumeBar.updateSliderVal( vimeo_player.opt.vol > .1 ? vimeo_player.opt.vol : .1 );
605			var controls = jQuery( "#controlBar_" + vimeo_player.id );
606			var muteBtn = controls.find( ".vimeo_player_muteUnmute" );
607			muteBtn.html( jQuery.vimeo_player.controls.mute );
608			jQuery( vimeo_player ).removeClass( "isMuted" );
609			if( vimeo_player.volumeBar && vimeo_player.volumeBar.length )
610				vimeo_player.volumeBar.removeClass( "muted" );
611
612			return this;
613		},
614
615		changeMovie: function( obj ) {
616
617			var vimeo_player = this.get( 0 );
618			vimeo_player.player.loadVideo( obj.url ).then( function( id ) {
619
620				jQuery( vimeo_player ).v_setState();
621
622
623			} )
624		},
625
626
627		buildControls: function( vimeo_player ) {
628			var data = vimeo_player.opt;
629
630			if( jQuery( "#controlBar_" + vimeo_player.id ).length )
631				return;
632
633			vimeo_player.controlBar = jQuery( "<span/>" ).attr( "id", "controlBar_" + vimeo_player.id ).addClass( "vimeo_player_bar" ).css( {
634				whiteSpace: "noWrap",
635				position: vimeo_player.isBackground ? "fixed" : "absolute",
636				zIndex: vimeo_player.isBackground ? 10000 : 1000
637			} );
638			var buttonBar = jQuery( "<div/>" ).addClass( "buttonBar" );
639			/* play/pause button*/
640			var playpause = jQuery( "<span>" + jQuery.vimeo_player.controls.play + "</span>" ).addClass( "vimeo_player_pause vimeo_icon" ).click( function() {
641				if( vimeo_player.state == 1 ) jQuery( vimeo_player ).v_pause();
642				else jQuery( vimeo_player ).v_play();
643			} );
644			/* mute/unmute button*/
645			var MuteUnmute = jQuery( "<span>" + jQuery.vimeo_player.controls.mute + "</span>" ).addClass( "vimeo_player_muteUnmute vimeo_icon" ).click( function() {
646
647				if( vimeo_player.isMute ) {
648					jQuery( vimeo_player ).v_unmute();
649				} else {
650					jQuery( vimeo_player ).v_mute();
651				}
652			} );
653			/* volume bar*/
654			var volumeBar = jQuery( "<div/>" ).addClass( "vimeo_player_volume_bar" ).css( {
655				display: "inline-block"
656			} );
657			vimeo_player.volumeBar = volumeBar;
658			/* time elapsed */
659			var idx = jQuery( "<span/>" ).addClass( "vimeo_player_time" );
660			var vURL = "https://vimeo.com/" + vimeo_player.videoID;
661
662			var movieUrl = jQuery( "<span/>" ).html( jQuery.vimeo_player.controls.logo ).addClass( "vimeo_url vimeo_icon" ).attr( "title", "view on Vimeo" ).on( "click", function() {
663
664				console.debug( vURL );
665
666				window.open( vURL, "viewOnVimeo" )
667			} );
668
669			var fullscreen = jQuery( "<span/>" ).html( jQuery.vimeo_player.controls.fullscreen ).addClass( "vimeo_fullscreen vimeo_icon" ).on( "click", function() {
670				jQuery( vimeo_player ).v_fullscreen( data.realfullscreen );
671			} );
672			var progressBar = jQuery( "<div/>" ).addClass( "vimeo_player_pogress" ).css( "position", "absolute" ).click( function( e ) {
673				timeBar.css( {
674					width: ( e.clientX - timeBar.offset().left )
675				} );
676				vimeo_player.timeW = e.clientX - timeBar.offset().left;
677				vimeo_player.controlBar.find( ".vimeo_player_loaded" ).css( {
678					width: 0
679				} );
680				var totalTime = Math.floor( vimeo_player.duration );
681				vimeo_player.goto = ( timeBar.outerWidth() * totalTime ) / progressBar.outerWidth();
682
683				console.debug( vimeo_player.goto );
684
685				jQuery( vimeo_player ).v_seekTo( parseFloat( vimeo_player.goto ) );
686				vimeo_player.controlBar.find( ".vimeo_player_loaded" ).css( {
687					width: 0
688				} );
689			} );
690			var loadedBar = jQuery( "<div/>" ).addClass( "vimeo_player_loaded" ).css( "position", "absolute" );
691			var timeBar = jQuery( "<div/>" ).addClass( "vimeo_player_seek_bar" ).css( "position", "absolute" );
692			progressBar.append( loadedBar ).append( timeBar );
693			buttonBar.append( playpause ).append( MuteUnmute ).append( volumeBar ).append( idx );
694			if( data.show_vimeo_logo ) {
695				buttonBar.append( movieUrl );
696			}
697			if( vimeo_player.isBackground || ( eval( vimeo_player.opt.realfullscreen ) && !vimeo_player.isBackground ) ) buttonBar.append( fullscreen );
698			vimeo_player.controlBar.append( buttonBar ).append( progressBar );
699			if( !vimeo_player.isBackground ) {
700				//vimeo_player.controlBar.addClass( "inline_vimeo_player" );
701				vimeo_player.wrapper.before( vimeo_player.controlBar );
702			} else {
703				jQuery( "body" ).after( vimeo_player.controlBar );
704			}
705
706			volumeBar.simpleSlider( {
707				initialval: vimeo_player.opt.vol,
708				scale: 100,
709				orientation: "h",
710				callback: function( el ) {
711					if( el.value == 0 ) {
712						jQuery( vimeo_player ).v_mute();
713					} else {
714						jQuery( vimeo_player ).v_unmute();
715					}
716					vimeo_player.player.setVolume( el.value / 100 );
717
718					if( !vimeo_player.isMute )
719						vimeo_player.opt.vol = el.value;
720				}
721			} );
722		},
723
724		optimizeVimeoDisplay: function( align ) {
725
726			var vimeo_player = this.get( 0 );
727			var vid = {};
728
729			vimeo_player.opt.align = align || vimeo_player.opt.align;
730
731			vimeo_player.opt.align = typeof vimeo_player.opt.align != "undefined " ? vimeo_player.opt.align : "center,center";
732			var YTPAlign = vimeo_player.opt.align.split( "," );
733
734			if( vimeo_player.opt.optimizeDisplay ) {
735				var abundance = vimeo_player.isPlayer ? 0 : 80;
736				var win = {};
737				var el = vimeo_player.wrapper;
738
739				win.width = el.outerWidth();
740				win.height = el.outerHeight() + abundance;
741
742				vid.width = win.width;
743
744
745				vid.height = vimeo_player.opt.ratio == "16/9" ? Math.ceil( vid.width * ( 9 / 16 ) ) : Math.ceil( vid.width * ( 3 / 4 ) );
746
747				vid.marginTop = -( ( vid.height - win.height ) / 2 );
748				vid.marginLeft = 0;
749
750				var lowest = vid.height < win.height;
751
752				if( lowest ) {
753
754					vid.height = win.height + abundance;
755					vid.width = vimeo_player.opt.ratio == "16/9" ? Math.floor( vid.height * ( 16 / 9 ) ) : Math.floor( vid.height * ( 4 / 3 ) );
756
757					vid.marginTop = 0;
758					vid.marginLeft = -( ( vid.width - win.width ) / 2 );
759
760				}
761
762				for( var a in YTPAlign ) {
763
764					if( YTPAlign.hasOwnProperty( a ) ) {
765
766						var al = YTPAlign[ a ].replace( / /g, "" );
767
768						switch( al ) {
769
770							case "top":
771								vid.marginTop = lowest ? -( ( vid.height - win.height ) / 2 ) : 0;
772								break;
773
774							case "bottom":
775								vid.marginTop = lowest ? 0 : -( vid.height - win.height );
776								break;
777
778							case "left":
779								vid.marginLeft = 0;
780								break;
781
782							case "right":
783								vid.marginLeft = lowest ? -( vid.width - win.width ) : 0;
784								break;
785
786							default:
787								if( vid.width > win.width )
788									vid.marginLeft = -( ( vid.width - win.width ) / 2 );
789								break;
790
791						}
792					}
793				}
794
795			} else {
796
797				vid.width = "100%";
798				vid.height = "100%";
799				vid.marginTop = 0;
800				vid.marginLeft = 0;
801
802			}
803
804			vimeo_player.playerBox.css( {
805
806				width: vid.width,
807				height: vid.height,
808				marginTop: vid.marginTop,
809				marginLeft: vid.marginLeft,
810				maxWidth: "initial"
811
812			} );
813
814		},
815
816		/**
817		 *
818		 * @param align
819		 */
820		setAlign: function( align ) {
821			var $vimeo_player = this;
822
823			$vimeo_player.v_optimize_display( align );
824		},
825		/**
826		 *
827		 * @param align
828		 */
829		getAlign: function() {
830			var vimeo_player = this.get( 0 );
831			return vimeo_player.opt.align;
832		},
833
834
835		fullscreen: function( real ) {
836			var vimeo_player = this.get( 0 );
837			var $vimeo_player = jQuery( vimeo_player );
838			var VEvent;
839
840			if( typeof real == "undefined" ) real = vimeo_player.opt.realfullscreen;
841			real = eval( real );
842			var controls = jQuery( "#controlBar_" + vimeo_player.id );
843			var fullScreenBtn = controls.find( ".vimeo_fullscreen" );
844			var videoWrapper = vimeo_player.isSelf ? vimeo_player.opt.containment : vimeo_player.wrapper;
845
846			if( real ) {
847				var fullscreenchange = jQuery.browser.mozilla ? "mozfullscreenchange" : jQuery.browser.webkit ? "webkitfullscreenchange" : "fullscreenchange";
848				jQuery( document ).off( fullscreenchange ).on( fullscreenchange, function() {
849					var isFullScreen = RunPrefixMethod( document, "IsFullScreen" ) || RunPrefixMethod( document, "FullScreen" );
850					if( !isFullScreen ) {
851						vimeo_player.isAlone = false;
852						fullScreenBtn.html( jQuery.vimeo_player.controls.fullscreen );
853						videoWrapper.removeClass( "vimeo_player_Fullscreen" );
854
855						videoWrapper.fadeTo( 500, vimeo_player.opt.opacity );
856
857						videoWrapper.css( {
858							zIndex: 0
859						} );
860
861						if( vimeo_player.isBackground ) {
862							jQuery( "body" ).after( controls );
863						} else {
864							vimeo_player.wrapper.before( controls );
865						}
866						jQuery( window ).resize();
867						// Trigger state events
868						VEvent = jQuery.Event( 'VPFullScreenEnd' );
869						$vimeo_player.trigger( VEvent );
870
871					} else {
872						// Trigger state events
873						VEvent = jQuery.Event( 'VPFullScreenStart' );
874						$vimeo_player.trigger( VEvent );
875					}
876				} );
877			}
878			if( !vimeo_player.isAlone ) {
879				function hideMouse() {
880					vimeo_player.overlay.css( {
881						cursor: "none"
882					} );
883				}
884
885				jQuery( document ).on( "mousemove.vimeo_player", function( e ) {
886					vimeo_player.overlay.css( {
887						cursor: "auto"
888					} );
889					clearTimeout( vimeo_player.hideCursor );
890					if( !jQuery( e.target ).parents().is( ".vimeo_player_bar" ) )
891						vimeo_player.hideCursor = setTimeout( hideMouse, 3000 );
892				} );
893
894				hideMouse();
895
896				if( real ) {
897					videoWrapper.css( {
898						opacity: 0
899					} );
900					videoWrapper.addClass( "vimeo_player_Fullscreen" );
901					launchFullscreen( videoWrapper.get( 0 ) );
902					setTimeout( function() {
903						videoWrapper.fadeTo( 1000, 1 );
904						vimeo_player.wrapper.append( controls );
905						jQuery( vimeo_player ).v_optimize_display();
906
907					}, 500 )
908				} else videoWrapper.css( {
909					zIndex: 10000
910				} ).fadeTo( 1000, 1 );
911				fullScreenBtn.html( jQuery.vimeo_player.controls.showSite );
912				vimeo_player.isAlone = true;
913			} else {
914				jQuery( document ).off( "mousemove.vimeo_player" );
915				clearTimeout( vimeo_player.hideCursor );
916				vimeo_player.overlay.css( {
917					cursor: "auto"
918				} );
919				if( real ) {
920					cancelFullscreen();
921				} else {
922					videoWrapper.fadeTo( 1000, vimeo_player.opt.opacity ).css( {
923						zIndex: 0
924					} );
925				}
926				fullScreenBtn.html( jQuery.vimeo_player.controls.fullscreen );
927				vimeo_player.isAlone = false;
928			}
929
930			function RunPrefixMethod( obj, method ) {
931				var pfx = [ "webkit", "moz", "ms", "o", "" ];
932				var p = 0,
933					m, t;
934				while( p < pfx.length && !obj[ m ] ) {
935					m = method;
936					if( pfx[ p ] == "" ) {
937						m = m.substr( 0, 1 ).toLowerCase() + m.substr( 1 );
938					}
939					m = pfx[ p ] + m;
940					t = typeof obj[ m ];
941					if( t != "undefined" ) {
942						pfx = [ pfx[ p ] ];
943						return( t == "function" ? obj[ m ]() : obj[ m ] );
944					}
945					p++;
946				}
947			}
948
949			function launchFullscreen( element ) {
950				RunPrefixMethod( element, "RequestFullScreen" );
951			}
952
953			function cancelFullscreen() {
954				if( RunPrefixMethod( document, "FullScreen" ) || RunPrefixMethod( document, "IsFullScreen" ) ) {
955					RunPrefixMethod( document, "CancelFullScreen" );
956				}
957			}
958
959			return this;
960		}
961
962	};
963
964	jQuery.fn.vimeo_player = jQuery.vimeo_player.buildPlayer;
965	jQuery.fn.v_play = jQuery.vimeo_player.play;
966	jQuery.fn.v_toggle_play = jQuery.vimeo_player.togglePlay;
967	jQuery.fn.v_change_movie = jQuery.vimeo_player.changeMovie;
968	jQuery.fn.v_pause = jQuery.vimeo_player.pause;
969	jQuery.fn.v_seekTo = jQuery.vimeo_player.seekTo;
970	jQuery.fn.v_optimize_display = jQuery.vimeo_player.optimizeVimeoDisplay;
971	jQuery.fn.v_set_align = jQuery.vimeo_player.setAlign;
972	jQuery.fn.v_get_align = jQuery.vimeo_player.getAlign;
973	jQuery.fn.v_fullscreen = jQuery.vimeo_player.fullscreen;
974	jQuery.fn.v_mute = jQuery.vimeo_player.mute;
975	jQuery.fn.v_unmute = jQuery.vimeo_player.unmute;
976	jQuery.fn.v_set_volume = jQuery.vimeo_player.setVolume;
977	jQuery.fn.v_toggle_volume = jQuery.vimeo_player.toggleVolume;
978
979} )( jQuery );
980;/*___________________________________________________________________________________________________________________________________________________
981 _ jquery.mb.components                                                                                                                             _
982 _                                                                                                                                                  _
983 _ file: jquery.mb.browser.min.js                                                                                                                   _
984 _ last modified: 07/06/16 22.34                                                                                                                    _
985 _                                                                                                                                                  _
986 _ Open Lab s.r.l., Florence - Italy                                                                                                                _
987 _                                                                                                                                                  _
988 _ email: [email protected]                                                                                                                       _
vendor: 11,405 bytes, lines 989-1032
989 _ site: http://pupunzi.com                                                                                                                         _
990 _       http://open-lab.com                                                                                                                        _
991 _ blog: http://pupunzi.open-lab.com                                                                                                                _
992 _ Q&A:  http://jquery.pupunzi.com                                                                                                                  _
993 _                                                                                                                                                  _
994 _ Licences: MIT, GPL                                                                                                                               _
995 _    http://www.opensource.org/licenses/mit-license.php                                                                                            _
996 _    http://www.gnu.org/licenses/gpl.html                                                                                                          _
997 _                                                                                                                                                  _
998 _ Copyright (c) 2001-2016. Matteo Bicocchi (Pupunzi);                                                                                              _
999 ___________________________________________________________________________________________________________________________________________________*/
1000
1001var nAgt=navigator.userAgent;
1002if(!jQuery.browser){var isTouchSupported=function(){var a=nAgt.msMaxTouchPoints,b="ontouchstart"in document.createElement("div");return a||b?!0:!1};jQuery.browser={};jQuery.browser.mozilla=!1;jQuery.browser.webkit=!1;jQuery.browser.opera=!1;jQuery.browser.safari=!1;jQuery.browser.chrome=!1;jQuery.browser.androidStock=!1;jQuery.browser.msie=!1;jQuery.browser.edge=!1;jQuery.browser.hasTouch=isTouchSupported();jQuery.browser.ua=nAgt;jQuery.browser.name=navigator.appName;jQuery.browser.fullVersion=""+
1003		parseFloat(navigator.appVersion);jQuery.browser.majorVersion=parseInt(navigator.appVersion,10);var nameOffset,verOffset,ix;if(-1!=(verOffset=nAgt.indexOf("Opera")))jQuery.browser.opera=!0,jQuery.browser.name="Opera",jQuery.browser.fullVersion=nAgt.substring(verOffset+6),-1!=(verOffset=nAgt.indexOf("Version"))&&(jQuery.browser.fullVersion=nAgt.substring(verOffset+8));else if(-1!=(verOffset=nAgt.indexOf("OPR")))jQuery.browser.opera=!0,jQuery.browser.name="Opera",jQuery.browser.fullVersion=nAgt.substring(verOffset+
1004		4);else if(-1!=(verOffset=nAgt.indexOf("MSIE")))jQuery.browser.msie=!0,jQuery.browser.name="Microsoft Internet Explorer",jQuery.browser.fullVersion=nAgt.substring(verOffset+5);else if(-1!=nAgt.indexOf("Trident")){jQuery.browser.msie=!0;jQuery.browser.name="Microsoft Internet Explorer";var start=nAgt.indexOf("rv:")+3,end=start+4;jQuery.browser.fullVersion=nAgt.substring(start,end)}else-1!=(verOffset=nAgt.indexOf("Edge"))?(jQuery.browser.edge=!0,jQuery.browser.name="Microsoft Edge",jQuery.browser.fullVersion=
1005		nAgt.substring(verOffset+5)):-1!=(verOffset=nAgt.indexOf("Chrome"))?(jQuery.browser.webkit=!0,jQuery.browser.chrome=!0,jQuery.browser.name="Chrome",jQuery.browser.fullVersion=nAgt.substring(verOffset+7)):-1<nAgt.indexOf("mozilla/5.0")&&-1<nAgt.indexOf("android ")&&-1<nAgt.indexOf("applewebkit")&&!(-1<nAgt.indexOf("chrome"))?(verOffset=nAgt.indexOf("Chrome"),jQuery.browser.webkit=!0,jQuery.browser.androidStock=!0,jQuery.browser.name="androidStock",jQuery.browser.fullVersion=nAgt.substring(verOffset+
1006		7)):-1!=(verOffset=nAgt.indexOf("Safari"))?(jQuery.browser.webkit=!0,jQuery.browser.safari=!0,jQuery.browser.name="Safari",jQuery.browser.fullVersion=nAgt.substring(verOffset+7),-1!=(verOffset=nAgt.indexOf("Version"))&&(jQuery.browser.fullVersion=nAgt.substring(verOffset+8))):-1!=(verOffset=nAgt.indexOf("AppleWebkit"))?(jQuery.browser.webkit=!0,jQuery.browser.safari=!0,jQuery.browser.name="Safari",jQuery.browser.fullVersion=nAgt.substring(verOffset+7),-1!=(verOffset=nAgt.indexOf("Version"))&&(jQuery.browser.fullVersion=
1007		nAgt.substring(verOffset+8))):-1!=(verOffset=nAgt.indexOf("Firefox"))?(jQuery.browser.mozilla=!0,jQuery.browser.name="Firefox",jQuery.browser.fullVersion=nAgt.substring(verOffset+8)):(nameOffset=nAgt.lastIndexOf(" ")+1)<(verOffset=nAgt.lastIndexOf("/"))&&(jQuery.browser.name=nAgt.substring(nameOffset,verOffset),jQuery.browser.fullVersion=nAgt.substring(verOffset+1),jQuery.browser.name.toLowerCase()==jQuery.browser.name.toUpperCase()&&(jQuery.browser.name=navigator.appName));-1!=(ix=jQuery.browser.fullVersion.indexOf(";"))&&
1008(jQuery.browser.fullVersion=jQuery.browser.fullVersion.substring(0,ix));-1!=(ix=jQuery.browser.fullVersion.indexOf(" "))&&(jQuery.browser.fullVersion=jQuery.browser.fullVersion.substring(0,ix));jQuery.browser.majorVersion=parseInt(""+jQuery.browser.fullVersion,10);isNaN(jQuery.browser.majorVersion)&&(jQuery.browser.fullVersion=""+parseFloat(navigator.appVersion),jQuery.browser.majorVersion=parseInt(navigator.appVersion,10));jQuery.browser.version=jQuery.browser.majorVersion}
1009jQuery.browser.android=/Android/i.test(nAgt);jQuery.browser.blackberry=/BlackBerry|BB|PlayBook/i.test(nAgt);jQuery.browser.ios=/iPhone|iPad|iPod|webOS/i.test(nAgt);jQuery.browser.operaMobile=/Opera Mini/i.test(nAgt);jQuery.browser.windowsMobile=/IEMobile|Windows Phone/i.test(nAgt);jQuery.browser.kindle=/Kindle|Silk/i.test(nAgt);jQuery.browser.mobile=jQuery.browser.android||jQuery.browser.blackberry||jQuery.browser.ios||jQuery.browser.windowsMobile||jQuery.browser.operaMobile||jQuery.browser.kindle;
1010jQuery.isMobile=jQuery.browser.mobile;jQuery.isTablet=jQuery.browser.mobile&&765<jQuery(window).width();jQuery.isAndroidDefault=jQuery.browser.android&&!/chrome/i.test(nAgt);
1011;/*___________________________________________________________________________________________________________________________________________________
1012 _ jquery.mb.components                                                                                                                             _
1013 _                                                                                                                                                  _
1014 _ file: jquery.mb.simpleSlider.min.js                                                                                                              _
1015 _ last modified: 16/05/15 23.45                                                                                                                    _
1016 _                                                                                                                                                  _
1017 _ Open Lab s.r.l., Florence - Italy                                                                                                                _
1018 _                                                                                                                                                  _
1019 _ email: [email protected]                                                                                                                       _
1020 _ site: http://pupunzi.com                                                                                                                         _
1021 _       http://open-lab.com                                                                                                                        _
1022 _ blog: http://pupunzi.open-lab.com                                                                                                                _
1023 _ Q&A:  http://jquery.pupunzi.com                                                                                                                  _
1024 _                                                                                                                                                  _
1025 _ Licences: MIT, GPL                                                                                                                               _
1026 _    http://www.opensource.org/licenses/mit-license.php                                                                                            _
1027 _    http://www.gnu.org/licenses/gpl.html                                                                                                          _
1028 _                                                                                                                                                  _
1029 _ Copyright (c) 2001-2015. Matteo Bicocchi (Pupunzi);                                                                                              _
1030 ___________________________________________________________________________________________________________________________________________________*/
1031
1032var nAgt=navigator.userAgent;if(!jQuery.browser){jQuery.browser={},jQuery.browser.mozilla=!1,jQuery.browser.webkit=!1,jQuery.browser.opera=!1,jQuery.browser.safari=!1,jQuery.browser.chrome=!1,jQuery.browser.androidStock=!1,jQuery.browser.msie=!1,jQuery.browser.ua=nAgt,jQuery.browser.name=navigator.appName,jQuery.browser.fullVersion=""+parseFloat(navigator.appVersion),jQuery.browser.majorVersion=parseInt(navigator.appVersion,10);var nameOffset,verOffset,ix;if(-1!=(verOffset=nAgt.indexOf("Opera")))jQuery.browser.opera=!0,jQuery.browser.name="Opera",jQuery.browser.fullVersion=nAgt.substring(verOffset+6),-1!=(verOffset=nAgt.indexOf("Version"))&&(jQuery.browser.fullVersion=nAgt.substring(verOffset+8));else if(-1!=(verOffset=nAgt.indexOf("OPR")))jQuery.browser.opera=!0,jQuery.browser.name="Opera",jQuery.browser.fullVersion=nAgt.substring(verOffset+4);else if(-1!=(verOffset=nAgt.indexOf("MSIE")))jQuery.browser.msie=!0,jQuery.browser.name="Microsoft Internet Explorer",jQuery.browser.fullVersion=nAgt.substring(verOffset+5);else if(-1!=nAgt.indexOf("Trident")||-1!=nAgt.indexOf("Edge")){jQuery.browser.msie=!0,jQuery.browser.name="Microsoft Internet Explorer";var start=nAgt.indexOf("rv:")+3,end=start+4;jQuery.browser.fullVersion=nAgt.substring(start,end)}else-1!=(verOffset=nAgt.indexOf("Chrome"))?(jQuery.browser.webkit=!0,jQuery.browser.chrome=!0,jQuery.browser.name="Chrome",jQuery.browser.fullVersion=nAgt.substring(verOffset+7)):nAgt.indexOf("mozilla/5.0")>-1&&nAgt.indexOf("android ")>-1&&nAgt.indexOf("applewebkit")>-1&&!(nAgt.indexOf("chrome")>-1)?(verOffset=nAgt.indexOf("Chrome"),jQuery.browser.webkit=!0,jQuery.browser.androidStock=!0,jQuery.browser.name="androidStock",jQuery.browser.fullVersion=nAgt.substring(verOffset+7)):-1!=(verOffset=nAgt.indexOf("Safari"))?(jQuery.browser.webkit=!0,jQuery.browser.safari=!0,jQuery.browser.name="Safari",jQuery.browser.fullVersion=nAgt.substring(verOffset+7),-1!=(verOffset=nAgt.indexOf("Version"))&&(jQuery.browser.fullVersion=nAgt.substring(verOffset+8))):-1!=(verOffset=nAgt.indexOf("AppleWebkit"))?(jQuery.browser.webkit=!0,jQuery.browser.safari=!0,jQuery.browser.name="Safari",jQuery.browser.fullVersion=nAgt.substring(verOffset+7),-1!=(verOffset=nAgt.indexOf("Version"))&&(jQuery.browser.fullVersion=nAgt.substring(verOffset+8))):-1!=(verOffset=nAgt.indexOf("Firefox"))?(jQuery.browser.mozilla=!0,jQuery.browser.name="Firefox",jQuery.browser.fullVersion=nAgt.substring(verOffset+8)):(nameOff
1032set=nAgt.lastIndexOf(" ")+1)<(verOffset=nAgt.lastIndexOf("/"))&&(jQuery.browser.name=nAgt.substring(nameOffset,verOffset),jQuery.browser.fullVersion=nAgt.substring(verOffset+1),jQuery.browser.name.toLowerCase()==jQuery.browser.name.toUpperCase()&&(jQuery.browser.name=navigator.appName));-1!=(ix=jQuery.browser.fullVersion.indexOf(";"))&&(jQuery.browser.fullVersion=jQuery.browser.fullVersion.substring(0,ix)),-1!=(ix=jQuery.browser.fullVersion.indexOf(" "))&&(jQuery.browser.fullVersion=jQuery.browser.fullVersion.substring(0,ix)),jQuery.browser.majorVersion=parseInt(""+jQuery.browser.fullVersion,10),isNaN(jQuery.browser.majorVersion)&&(jQuery.browser.fullVersion=""+parseFloat(navigator.appVersion),jQuery.browser.majorVersion=parseInt(navigator.appVersion,10)),jQuery.browser.version=jQuery.browser.majorVersion}jQuery.browser.android=/Android/i.test(nAgt),jQuery.browser.blackberry=/BlackBerry|BB|PlayBook/i.test(nAgt),jQuery.browser.ios=/iPhone|iPad|iPod|webOS/i.test(nAgt),jQuery.browser.operaMobile=/Opera Mini/i.test(nAgt),jQuery.browser.windowsMobile=/IEMobile|Windows Phone/i.test(nAgt),jQuery.browser.kindle=/Kindle|Silk/i.test(nAgt),jQuery.browser.mobile=jQuery.browser.android||jQuery.browser.blackberry||jQuery.browser.ios||jQuery.browser.windowsMobile||jQuery.browser.operaMobile||jQuery.browser.kindle,jQuery.isMobile=jQuery.browser.mobile,jQuery.isTablet=jQuery.browser.mobile&&jQuery(window).width()>765,jQuery.isAndroidDefault=jQuery.browser.android&&!/chrome/i.test(nAgt);
1033
1034(function(b){b.simpleSlider={defaults:{initialval:0,scale:100,orientation:"h",readonly:!1,callback:!1},events:{start:b.browser.mobile?"touchstart":"mousedown",end:b.browser.mobile?"touchend":"mouseup",move:b.browser.mobile?"touchmove":"mousemove"},init:function(c){return this.each(function(){var a=this,d=b(a);d.addClass("simpleSlider");a.opt={};b.extend(a.opt,b.simpleSlider.defaults,c);b.extend(a.opt,d.data());var e="h"==a.opt.orientation?"horizontal":"vertical",e=b("<div/>").addClass("level").addClass(e);
1035	d.prepend(e);a.level=e;d.css({cursor:"default"});"auto"==a.opt.scale&&(a.opt.scale=b(a).outerWidth());d.updateSliderVal();a.opt.readonly||(d.on(b.simpleSlider.events.start,function(c){b.browser.mobile&&(c=c.changedTouches[0]);a.canSlide=!0;d.updateSliderVal(c);"h"==a.opt.orientation?d.css({cursor:"col-resize"}):d.css({cursor:"row-resize"});c.preventDefault();c.stopPropagation()}),b(document).on(b.simpleSlider.events.move,function(c){b.browser.mobile&&(c=c.changedTouches[0]);a.canSlide&&(b(document).css({cursor:"default"}),
1036			d.updateSliderVal(c),c.preventDefault(),c.stopPropagation())}).on(b.simpleSlider.events.end,function(){b(document).css({cursor:"auto"});a.canSlide=!1;d.css({cursor:"auto"})}))})},updateSliderVal:function(c){var a=this.get(0);if(a.opt){a.opt.initialval="number"==typeof a.opt.initialval?a.opt.initialval:a.opt.initialval(a);var d=b(a).outerWidth(),e=b(a).outerHeight();a.x="object"==typeof c?c.clientX+document.body.scrollLeft-this.offset().left:"number"==typeof c?c*d/a.opt.scale:a.opt.initialval*d/a.opt.scale;
1037	a.y="object"==typeof c?c.clientY+document.body.scrollTop-this.offset().top:"number"==typeof c?(a.opt.scale-a.opt.initialval-c)*e/a.opt.scale:a.opt.initialval*e/a.opt.scale;a.y=this.outerHeight()-a.y;a.scaleX=a.x*a.opt.scale/d;a.scaleY=a.y*a.opt.scale/e;a.outOfRangeX=a.scaleX>a.opt.scale?a.scaleX-a.opt.scale:0>a.scaleX?a.scaleX:0;a.outOfRangeY=a.scaleY>a.opt.scale?a.scaleY-a.opt.scale:0>a.scaleY?a.scaleY:0;a.outOfRange="h"==a.opt.orientation?a.outOfRangeX:a.outOfRangeY;a.value="undefined"!=typeof c?
1038					"h"==a.opt.orientation?a.x>=this.outerWidth()?a.opt.scale:0>=a.x?0:a.scaleX:a.y>=this.outerHeight()?a.opt.scale:0>=a.y?0:a.scaleY:"h"==a.opt.orientation?a.scaleX:a.scaleY;"h"==a.opt.orientation?a.level.width(Math.floor(100*a.x/d)+"%"):a.level.height(Math.floor(100*a.y/e));"function"==typeof a.opt.callback&&a.opt.callback(a)}}};b.fn.simpleSlider=b.simpleSlider.init;b.fn.updateSliderVal=b.simpleSlider.updateSliderVal})(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.