PageSourceSearch

https://lionheartsw.com/static/js/jquery.main1882.js?d-0K98ONRI8

js lionheartsw.com collected 2026-10-02 05:35:09 UTC 100,769 bytes, 1,455 lines download raw bytes

1// page init
2jQuery(function(){
3	initSlideShow();
4	initResponsiveGallery();
5	initOwlCarousel();
6	initSameHeight();
7});
8
9// OwlCarousel init
10function initOwlCarousel() {
11	var owl = jQuery('.owl-carousel');
12	owl.owlCarousel({
13	    items:3,
14	    loop:true,
15	    margin:38,
16	    autoplay:true,
17	    autoplayTimeout:10000,
18	    responsiveClass:true,
19	    autoplayHoverPause:true,
20	      responsive: {
21          0: {
22            items: 1
23          },
24          600: {
25            items: 2
26          },
27          1000: {
28            items: 3
29          }
30        }
31	})
32}
33
34// align blocks height
35function initSameHeight() {
36	jQuery('.news-holder').sameHeight({
37		elements: '.news-box',
38		flexible: true,
39		multiLine: true,
40		biggestHeight: true
41	});
42	jQuery('.sameheight-box').sameHeight({
43		elements: '.sameheight',
44		flexible: true,
45		multiLine: true,
46		biggestHeight: true
47	});
48}
49
50
51// fade gallery init
52function initSlideShow() {
53	jQuery('div.slideshow').fadeGallery({
54		slides: 'div.slide',
55		btnPrev: 'a.btn-prev',
56		btnNext: 'a.btn-next',
57		generatePagination: '.pagination',
58		event: 'click',
59		useSwipe: true,
60		autoRotation: true,
61		autoHeight: true,
62		switchTime: 3000,
63		animSpeed: 500
64	});
65}
66
67// responsive gallery init
68function initResponsiveGallery() {
69	jQuery('.cycle-gallery').multiSlideCyclicGalery({
70		mask: '.mask',
71		slideset: '.slideset',
72		slides: '.slide',
73		btnPrev: '.btn-prev',
74		btnNext: '.btn-next',
75		handleTouch: true,
76		animSpeed: 1000,
77		slidesToScroll: 1,
78		visibleSlides: 3,
79		onInit: function() {
80			var self = this;
81			ResponsiveHelper.addRange({
82				'..767': {
83					on: function() {
84						self.options.slidesToScroll = 1;
85						self.options.visibleSlides = 2;
86						self.resizeSlides();
87					}
88				}
89			});
90		}
91	});
92}
93
94
95/*
96 * jQuery SlideShow plugin
97 */
98;(function($){
99	function FadeGallery(options) {
100		this.options = $.extend({
101			slides: 'ul.slideset > li',
102			activeClass:'active',
103			disabledClass:'disabled',
104			btnPrev: 'a.btn-prev',
105			btnNext: 'a.btn-next',
106			generatePagination: false,
107			pagerList: '<ul>',
108			pagerListItem: '<li><a href="#"></a></li>',
109			pagerListItemText: 'a',
110			pagerLinks: '.pagination li',
111			currentNumber: 'span.current-num',
112			totalNumber: 'span.total-num',
113			btnPlay: '.btn-play',
114			btnPause: '.btn-pause',
115			btnPlayPause: '.btn-play-pause',
116			galleryReadyClass: 'gallery-js-ready',
117			autorotationActiveClass: 'autorotation-active',
118			autorotationDisabledClass: 'autorotation-disabled',
119			autorotationStopAfterClick: false,
120			circularRotation: true,
121			switchSimultaneously: true,
122			disableWhileAnimating: false,
123			disableFadeIE: false,
124			autoRotation: false,
125			pauseOnHover: true,
126			autoHeight: false,
127			useSwipe: false,
128			swipeThreshold: 15,
129			switchTime: 4000,
130			animSpeed: 600,
131			event:'click'
132		}, options);
133		this.init();
134	}
135	FadeGallery.prototype = {
136		init: function() {
137			if(this.options.holder) {
138				this.findElements();
139				this.attachEvents();
140				this.refreshState(true);
141				this.autoRotate();
142				this.makeCallback('onInit', this);
143			}
144		},
145		findElements: function() {
146			// control elements
147			this.gallery = $(this.options.holder).addClass(this.options.galleryReadyClass);
148			this.slides = this.gallery.find(this.options.slides);
149			this.slidesHolder = this.slides.eq(0).parent();
150			this.stepsCount = this.slides.length;
151			this.btnPrev = this.gallery.find(this.options.btnPrev);
152			this.btnNext = this.gallery.find(this.options.btnNext);
153			this.currentIndex = 0;
154
155			// disable fade effect in old IE
156			if(this.options.disableFadeIE && !$.support.opacity) {
157				this.options.animSpeed = 0;
158			}
159
160			// create gallery pagination
161			if(typeof this.options.generatePagination === 'string') {
162				this.pagerHolder = this.gallery.find(this.options.generatePagination).empty();
163				this.pagerList = $(this.options.pagerList).appendTo(this.pagerHolder);
164				for(var i = 0; i < this.stepsCount; i++) {
165					$(this.options.pagerListItem).appendTo(this.pagerList).find(this.options.pagerListItemText).text(i+1);
166				}
167				this.pagerLinks = this.pagerList.children();
168			} else {
169				this.pagerLinks = this.gallery.find(this.options.pagerLinks);
170			}
171
172			// get start index
173			var activeSlide = this.slides.filter('.'+this.options.activeClass);
174			if(activeSlide.length) {
175				this.currentIndex = this.slides.index(activeSlide);
176			}
177			this.prevIndex = this.currentIndex;
178
179			// autorotation control buttons
180			this.btnPlay = this.gallery.find(this.options.btnPlay);
181			this.btnPause = this.gallery.find(this.options.btnPause);
182			this.btnPlayPause = this.gallery.find(this.options.btnPlayPause);
183
184			// misc elements
185			this.curNum = this.gallery.find(this.options.currentNumber);
186			this.allNum = this.gallery.find(this.options.totalNumber);
187
188			// handle flexible layout
189			this.slides.css({display:'block',opacity:0}
189).eq(this.currentIndex).css({
190				opacity:''
191			});
192		},
193		attachEvents: function() {
194			var self = this;
195
196			// flexible layout handler
197			this.resizeHandler = function() {
198				self.onWindowResize();
199			};
200			$(window).bind('load resize orientationchange', this.resizeHandler);
201
202			if(this.btnPrev.length) {
203				this.btnPrevHandler = function(e){
204					e.preventDefault();
205					self.prevSlide();
206					if(self.options.autorotationStopAfterClick) {
207						self.stopRotation();
208					}
209				};
210				this.btnPrev.bind(this.options.event, this.btnPrevHandler);
211			}
212			if(this.btnNext.length) {
213				this.btnNextHandler = function(e) {
214					e.preventDefault();
215					self.nextSlide();
216					if(self.options.autorotationStopAfterClick) {
217						self.stopRotation();
218					}
219				};
220				this.btnNext.bind(this.options.event, this.btnNextHandler);
221			}
222			if(this.pagerLinks.length) {
223				this.pagerLinksHandler = function(e) {
224					e.preventDefault();
225					self.numSlide(self.pagerLinks.index(e.currentTarget));
226					if(self.options.autorotationStopAfterClick) {
227						self.stopRotation();
228					}
229				};
230				this.pagerLinks.bind(self.options.event, this.pagerLinksHandler);
231			}
232
233			// autorotation buttons handler
234			if(this.btnPlay.length) {
235				this.btnPlayHandler = function(e) {
236					e.preventDefault();
237					self.startRotation();
238				};
239				this.btnPlay.bind(this.options.event, this.btnPlayHandler);
240			}
241			if(this.btnPause.length) {
242				this.btnPauseHandler = function(e) {
243					e.preventDefault();
244					self.stopRotation();
245				};
246				this.btnPause.bind(this.options.event, this.btnPauseHandler);
247			}
248			if(this.btnPlayPause.length) {
249				this.btnPlayPauseHandler = function(e){
250					e.preventDefault();
251					if(!self.gallery.hasClass(self.options.autorotationActiveClass)) {
252						self.startRotation();
253					} else {
254						self.stopRotation();
255					}
256				};
257				this.btnPlayPause.bind(this.options.event, this.btnPlayPauseHandler);
258			}
259
260			// swipe gestures handler
261			if(this.options.useSwipe && window.Hammer && isTouchDevice) {
262				this.swipeHandler = new Hammer.Manager(this.gallery[0]);
263				this.swipeHandler.add(new Hammer.Swipe({
264					direction: Hammer.DIRECTION_HORIZONTAL,
265					threshold: self.options.swipeThreshold
266				}));
267				this.swipeHandler.on('swipeleft', function() {
268					self.nextSlide();
269				}).on('swiperight', function() {
270					self.prevSlide();
271				});
272			}
273
274			// pause on hover handling
275			if(this.options.pauseOnHover) {
276				this.hoverHandler = function() {
277					if(self.options.autoRotation) {
278						self.galleryHover = true;
279						self.pauseRotation();
280					}
281				};
282				this.leaveHandler = function() {
283					if(self.options.autoRotation) {
284						self.galleryHover = false;
285						self.resumeRotation();
286					}
287				};
288				this.gallery.bind({mouseenter: this.hoverHandler, mouseleave: this.leaveHandler});
289			}
290		},
291		onWindowResize: function(){
292			if(this.options.autoHeight) {
293				this.slidesHolder.css({height: this.slides.eq(this.currentIndex).outerHeight(true) });
294			}
295		},
296		prevSlide: function() {
297			if(!(this.options.disableWhileAnimating && this.galleryAnimating)) {
298				this.prevIndex = this.currentIndex;
299				if(this.currentIndex > 0) {
300					this.currentIndex--;
301					this.switchSlide();
302				} else if(this.options.circularRotation) {
303					this.currentIndex = this.stepsCount - 1;
304					this.switchSlide();
305				}
306			}
307		},
308		nextSlide: function(fromAutoRotation) {
309			if(!(this.options.disableWhileAnimating && this.galleryAnimating)) {
310				this.prevIndex = this.currentIndex;
311				if(this.currentIndex < this.stepsCount - 1) {
312					this.currentIndex++;
313					this.switchSlide();
314				} else if(this.options.circularRotation || fromAutoRotation === true) {
315					this.currentIndex = 0;
316					this.switchSlide();
317				}
318			}
319		},
320		numSlide: function(c) {
321			if(this.currentIndex != c) {
322				this.prevIndex = this.currentIndex;
323				this.currentIndex = c;
324				this.switchSlide();
325			}
326		},
327		switchSlide: function() {
328			var self = this;
329			if(this.slides.length > 1) {
330				this.galleryAnimating = true;
331				if(!this.options.animSpeed) {
332					this.slides.eq(this.prevIndex).css({opacity:0}
332);
333				} else {
334					this.slides.eq(this.prevIndex).stop().animate({opacity:0},{duration: this.options.animSpeed});
335				}
336
337				this.switchNext = function() {
338					if(!self.options.animSpeed) {
339						self.slides.eq(self.currentIndex).css({opacity:''});
340					} else {
341						self.slides.eq(self.currentIndex).stop().animate({opacity:1},{duration: self.options.animSpeed});
342					}
343					clearTimeout(this.nextTimer);
344					this.nextTimer = setTimeout(function() {
345						self.slides.eq(self.currentIndex).css({opacity:''});
346						self.galleryAnimating = false;
347						self.autoRotate();
348
349						// onchange callback
350						self.makeCallback('onChange', self);
351					}, self.options.animSpeed);
352				};
353
354				if(this.options.switchSimultaneously) {
355					self.switchNext();
356				} else {
357					clearTimeout(this.switchTimer);
358					this.switchTimer = setTimeout(function(){
359						self.switchNext();
360					}, this.options.animSpeed);
361				}
362				this.refreshState();
363
364				// onchange callback
365				this.makeCallback('onBeforeChange', this);
366			}
367		},
368		refreshState: function(initial) {
369			this.slides.removeClass(this.options.activeClass).eq(this.currentIndex).addClass(this.options.activeClass);
370			this.pagerLinks.removeClass(this.options.activeClass).eq(this.currentIndex).addClass(this.options.activeClass);
371			this.curNum.html(this.currentIndex+1);
372			this.allNum.html(this.stepsCount);
373
374			// initial refresh
375			if(this.options.autoHeight) {
376				if(initial) {
377					this.slidesHolder.css({height: this.slides.eq(this.currentIndex).outerHeight(true) });
378				} else {
379					this.slidesHolder.stop().animate({height: this.slides.eq(this.currentIndex).outerHeight(true)}, {duration: this.options.animSpeed});
380				}
381			}
382
383			// disabled state
384			if(!this.options.circularRotation) {
385				this.btnPrev.add(this.btnNext).removeClass(this.options.disabledClass);
386				if(this.currentIndex === 0) this.btnPrev.addClass(this.options.disabledClass);
387				if(this.currentIndex === this.stepsCount - 1) this.btnNext.addClass(this.options.disabledClass);
388			}
389
390			// add class if not enough slides
391			this.gallery.toggleClass('not-enough-slides', this.stepsCount === 1);
392		},
393		startRotation: function() {
394			this.options.autoRotation = true;
395			this.galleryHover = false;
396			this.autoRotationStopped = false;
397			this.resumeRotation();
398		},
399		stopRotation: function() {
400			this.galleryHover = true;
401			this.autoRotationStopped = true;
402			this.pauseRotation();
403		},
404		pauseRotation: function() {
405			this.gallery.addClass(this.options.autorotationDisabledClass);
406			this.gallery.removeClass(this.options.autorotationActiveClass);
407			clearTimeout(this.timer);
408		},
409		resumeRotation: function() {
410			if(!this.autoRotationStopped) {
411				this.gallery.addClass(this.options.autorotationActiveClass);
412				this.gallery.removeClass(this.options.autorotationDisabledClass);
413				this.autoRotate();
414			}
415		},
416		autoRotate: function() {
417			var self = this;
418			clearTimeout(this.timer);
419			if(this.options.autoRotation && !this.galleryHover && !this.autoRotationStopped) {
420				this.gallery.addClass(this.options.autorotationActiveClass);
421				this.timer = setTimeout(function(){
422					self.nextSlide(true);
423				}, this.options.switchTime);
424			} else {
425				this.pauseRotation();
426			}
427		},
428		makeCallback: function(name) {
429			if(typeof this.options[name] === 'function') {
430				var args = Array.prototype.slice.call(arguments);
431				args.shift();
432				this.options[name].apply(this, args);
433			}
434		},
435		destroy: function() {
436			// navigation buttons handler
437			this.btnPrev.unbind(this.options.event, this.btnPrevHandler);
438			this.btnNext.unbind(this.options.event, this.btnNextHandler);
439			this.pagerLinks.unbind(this.options.event, this.pagerLinksHandler);
440			$(window).unbind('load resize orientationchange', this.resizeHandler);
441
442			// remove autorotation handlers
443			this.stopRotation();
444			this.btnPlay.unbind(this.options.event, this.btnPlayHandler);
445			this.btnPause.unbind(this.options.event, this.btnPauseHandler);
446			this.btnPlayPause.unbind(this.options.event, this.btnPlayPauseHandler);
447			this.gallery.unbind('mouseenter', this.hoverHandler);
448			this.gallery.unbind('mouseleave', this.leaveHandler);
449
450			// remove swipe handler if used
451			if(this.swipeHandler) {
452				this.swipeHandler.destroy();
453			}
454			if(typeof this.options.generatePagination === 'string') {
455				this.pagerHolder.empty();
456			}
457
458			// remove unneeded classes and styles
459			var unneededClasses = [this.options.galleryReadyClass, this.options.autorotationActiveClass, this.options.autorotationDisabledClass];
460			this.gallery.removeClass(unneededClasses.join(' '));
461			this.slidesHolder.add(this.slides).removeAttr('style');
462		}
463	};
464
465	// detect device type
466	var isTouchDevice = /Windows Phone/.test(navigator.userAgent) || ('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch;
467
468	// jquery plugin
469	$.fn.fadeGallery = function(opt){
470		return this.each(function(){
471			$(this).data('FadeGallery', new FadeGallery($.extend(opt,{holder:this})));
472		});
473	};
474}(jQuery));
475
476// responsive gallery init
477function initResponsiveGallery() {
478	jQuery('.cycle-gallery').multiSlideCyclicGalery({
479		mask: '.mask',
480		slideset: '.slideset',
481		slides: '.slide',
482		btnPrev: '.btn-prev',
483		btnNext: '.btn-next',
484		handleTouch: true,
485		animSpeed: 1000,
486		slidesToScroll: 3,
487		visibleSlides: 6,
488		onInit: function() {
489			var self = this;
490			ResponsiveHelper.addRange({
491				'..767': {
492					on: function() {
493						self.options.slidesToScroll = 1;
494						self.options.visibleSlides = 2;
495						self.resizeSlides();
496					}
497				},
498				'768..1023': {
499					on: function() {
500						self.options.slidesToScroll = 1;
501						self.options.visibleSlides = 3;
502						self.resizeSlides();
503					}
504				},
505				'1024..': {
506					on: function() {
507						self.options.slidesToScroll = 1;
508						self.options.visibleSlides = 4;
509						self.resizeSlides();
510					}
511				}
512			});
513		}
514	});
515	jQuery('.cycle-gallery-1').multiSlideCyclicGalery({
516		mask: '.mask',
517		slideset: '.slideset',
518		slides: '.slide',
519		btnPrev: '.btn-prev',
520		btnNext: '.btn-next',
521		generatePagination: '.pagination',
522		handleTouch: true,
523		animSpeed: 1000,
524		slidesToScroll: 1,
525		visibleSlides: 1,
526		autoRotation: true,
527		onInit: function() {
528			var self = this;
529			ResponsiveHelper.addRange({
530				'..767': {
531					on: function() {
532						self.options.slidesToScroll = 1;
533						self.options.visibleSlides = 1;
534						self.resizeSlides();
535					}
536				},
537				'768..1023': {
538					on: function() {
539						self.options.slidesToScroll = 1;
540						self.options.visibleSlides = 1;
541						self.resizeSlides();
542					}
543				},
544				'1024..': {
545					on: function() {
546						self.options.slidesToScroll = 1;
547						self.options.visibleSlides = 1;
548						self.resizeSlides();
549					}
550				}
551			});
552		}
553	});
554}
555
556/*
557 * Responsive Layout helper
558 */
559ResponsiveHelper = (function($) {
560	// init variables
561	var handlers = [],
562		prevWinWidth,
563		win = $(window),
564		nativeMatchMedia = false;
565
566	// detect match media support
567	if (window.matchMedia) {
568		if (window.Window && window.matchMedia === Window.prototype.matchMedia) {
569			nativeMatchMedia = true;
570		} else if (window.matchMedia.toString().indexOf('native') > -1) {
571			nativeMatchMedia = true;
572		}
573	}
574
575	// prepare resize handler
576	function resizeHandler() {
577		var winWidth = win.width();
578		if (winWidth !== prevWinWidth) {
579			prevWinWidth = winWidth;
580
581			// loop through range groups
582			$.each(handlers, function(index, rangeObject) {
583				// disable current active area if needed
584				$.each(rangeObject.data, function(property, item) {
585					if (item.currentActive && !matchRange(item.range[0], item.range[1])) {
586						item.currentActive = false;
587						if (typeof item.disableCallback === 'function') {
588							item.disableCallback();
589						}
590					}
591				});
592
593				// enable areas that match current width
594				$.each(rangeObject.data, function(property, item) {
595					if (!item.currentActive && matchRange(item.range[0], item.range[1])) {
596						// make callback
597						item.currentActive = true;
598						if (typeof item.enableCallback === 'function') {
599							item.enableCallback();
600						}
601					}
602				});
603			});
604		}
605	}
606	win.bind('load resize orientationchange', resizeHandler);
607
608	// test range
609	function matchRange(r1, r2) {
610		var mediaQueryString = '';
611		if (r1 > 0) {
612			mediaQueryString += '(min-width: ' + r1 + 'px)';
613		}
614		if (r2 < Infinity) {
615			mediaQueryString += (mediaQueryString ? ' and ' : '') + '(max-width: ' + r2 + 'px)';
616		}
617		return matchQuery(mediaQueryString, r1, r2);
618	}
619
620	// media query function
621	function matchQuery(query, r1, r2) {
622		if (window.matchMedia && nativeMatchMedia) {
623			return matchMedia(query).matches;
624		} else if (window.styleMedia) {
625			return styleMedia.matchMedium(query);
626		} else if (window.media) {
627			return media.matchMedium(query);
628		} else {
629			return prevWinWidth >= r1 && prevWinWidth <= r2;
630		}
631	}
632
633	// range parser
634	function parseRange(rangeStr) {
635		var rangeData = rangeStr.split('..');
636		var x1 = parseInt(rangeData[0], 10) || -Infinity;
637		var x2 = parseInt(rangeData[1], 10) || Infinity;
638		return [x1, x2].sort(function(a, b) {
639			return a - b;
640		});
641	}
642
643	// export public functions
644	return {
645		addRange: function(ranges) {
646			// parse data and add items to collection
647			var result = { data:{}};
648			$.each(ranges, function(property, data) {
649				result.data[property] = {
650					range: parseRange(property),
651					enableCallback: data.on,
652					disableCallback: data.off
653				};
654			});
655			handlers.push(result);
656
657			// call resizeHandler to recalculate all events
658			prevWinWidth = null;
659			resizeHandler();
660		}
661	};
662}(jQuery));
663
664
665;(function($) {
666	function MultiSlideCyclicGalery(options) {
667		this.options = $.extend({
668			mask: '.mask',
669			slideset: '.slideset',
670			slides: '.slide',
671			btnPrev: '.prev',
672			btnNext: '.next',
673			activeClass: 'active',
674			galleryReadyClass: 'gallery-js-ready',
675			currentNumber: '.current-num',
676			totalNumber: '.total-num',
677			pagerItems: '.pagination li',
678			generatePagination: false,
679			pagerList: '<ul>',
680			pagerListItem: '<li><a href="#"></a></li>',
681			pagerListItemText: 'a',
682			animSpeed: 500,
683			switchTime: 3000,
684			event: 'click',
685			autoRotation: false,
686			swipeThreshold: 15,
687			handleTouch: false,
688			slidesToScroll: 5,
689			visibleSlides: 5
690		}, options);
691		this.init();
692	}
693	MultiSlideCyclicGalery.prototype = {
694		init: function() {
695			if (this.options.holder) {
696				this.findElements();
697				this.resizeSlides();
698				this.refrestCounter();
699				this.attachEvents();
700				this.startRotation();
701				this.makeCallback('onInit', this);
702			}
703		},
704		findElements: function() {
705			// control elements
706			this.gallery = $(this.options.holder).addClass(this.options.galleryReadyClass);
707			this.mask = this.gallery.find(this.options.mask);
708			this.currentNumber = this.gallery.find(this.options.currentNumber);
709			this.totalNumber = this.gallery.find(this.options.totalNumber);
710			this.slideset = this.gallery.find(this.options.slideset);
711			this.slides = this.slideset.find(this.options.slides);
712			this.btnPrev = this.gallery.find(this.options.btnPrev);
713			this.btnNext = this.gallery.find(this.options.btnNext);
714			this.direction = 1;
715			this.galleryAnimating = false;
716			this.isDestroy = false;
717			if (this.totalNumber.length) {
718				this.totalNumber.text(this.slides.length);
719			}
720
721			this.slides.eq(0).addClass(this.options.activeClass);
722			this.currentIndex = 0;
723			// create gallery pagination
724			if (typeof this.options.generatePagination === 'string') {
725				this.pagerItems = $();
726				this.buildPagination();
727			} else {
728				this.pagerItems = this.gallery.find(this.options.pagerItems);
729				this.attachPaginationEvents();
730			}
731		},
732		attachEvents: function() {
733			var self = this;
734
735			// previous and next button handlers
736			if (this.btnPrev.length) {
737				this.prevSlideHandler = function(e) {
738					e.preventDefault();
739					self.prevSlide();
740				};
741				this.btnPrev.on(this.options.event, this.prevSlideHandler);
742			}
743			if (this.btnNext.length) {
744				this.nextSlideHandler = function(e) {
745					e.preventDefault();
746					self.nextSlide();
747				};
748				this.btnNext.on(this.options.event, this.nextSlideHandler);
749			}
750
751			this.resizeHandler = function() {
752				if (!this.isDestroy) {
753					self.resizeSlides();
754					self.sliderWidth();
755					self.stopRotation();
756					self.startRotation();
757				}
758			};
759
760			$(window).on('resize orientationchange load', this.resizeHandler);
761
762			// swipe event handling
763			if (isTouchDevice) {
764				// enable hardware acceleration
765				if (this.options.useTranslate3D) {
766					this.slideset.css({
767						'-webkit-transform': 'translate3d(0px, 0px, 0px)'
768					});
769				}
770
771				// swipe gestures
772				if (this.options.handleTouch && window.Hammer) {
773					this.swipeHandler = new Hammer.Manager(this.gallery[0]);
774					this.swipeHandler.add(new Hammer.Pan({
775						direction: Hammer.DIRECTION_HORIZONTAL,
776						threshold: self.options.swipeThreshold
777					}));
778
779					this.swipeHandler.on('panend', function(e) {
780						if (e.distance > self.options.swipeThreshold) {
781							if (e.offsetDirection === Hammer.DIRECTION_RIGHT) {
782								self.nextSlide();
783							} else {
784								self.prevSlide();
785							}
786						} else {
787							self.switchSlide();
788						}
789					});
790				}
791			}
792		},
793		buildPagination: function() {
794			if (typeof this.options.generatePagination === 'string') {
795				if (!this.pagerHolder) {
796					this.pagerHolder = this.gallery.find(this.options.generatePagination);
797				}
798				if (this.pagerHolder.length) {
799					this.pagerHolder.empty();
800					this.pagerList = $(this.options.pagerList).appendTo(this.pagerHolder);
801					for (var i = 0; i < this.slides.length; i++) {
802						$(this.options.pagerListItem).appendTo(this.pagerList).find(this.options.pagerListItemText).text(i + 1);
803					}
804					this.pagerItems = this.pagerList.children();
805					this.pagerItems.eq(this.slides.filter('.' + this.options.activeClass).index()).addClass(this.options.activeClass);
806					this.attachPaginationEvents();
807				}
808			}
809		},
810		attachPaginationEvents: function() {
811			var self = this;
812			self.pagerItems.each(function(i) {
813				var item = jQuery(this);
814				item.find('a').on('click', function(e) {
815					e.preventDefault();
816					self.pagerItems.removeClass(self.options.activeClass);
817					item.addClass(self.options.activeClass);
818					self.index = i;
819					self.slideTo(i);
820				});
821			});
822		},
823		resizeSlides: function() {
824			var sidesOffset = this.slides.eq(0).outerWidth(true) - this.slides.eq(0).outerWidth();
825
826			this.slides.css({
827				width: this.mask.outerWidth() / this.options.visibleSlides - sidesOffset
828			});
829		},
830		refrestCounter: function() {
831			var leftOffset = Infinity;
832			var num = 0;
833
834			this.slides.each(function(i) {
835				var slide = $(this);
836				var slideOffset = slide.offset().left;
837
838				if (slideOffset < leftOffset) {
839					leftOffset = slideOffset;
840					num = i + 1;
841				}
842			});
843
844			if (this.currentNumber.length) {
845				this.currentNumber.text(num);
846			}
847		},
848		sliderWidth: function() {
849			this.slideset.css({
850				width: this.getStepOffset()
851			});
852		},
853		getStepOffset: function() {
854			var sliderWidth = 0;
855
856			this.slides.each(function() {
857				var slide = jQuery(this);
858
859				sliderWidth += slide.outerWidth(true);
860			});
861			return sliderWidth + 10;
862		},
863		prevSlide: function() {
864			if (!this.galleryAnimating) {
865				this.galleryAnimating = true;
866				this.direction = -1;
867				if (this.currentIndex > 0){
868					this.currentIndex--;
869				} else {
870					this.currentIndex = this.slides.length - 1;
871				}
872				this.switchSlide();
873			}
874		},
875		nextSlide: function() {
876			if (!this.galleryAnimating) {
877				this.galleryAnimating = true;
878				this.direction = 1;
879				if (this.currentIndex < this.slides.length - 1){
880					this.currentIndex++;
881				} else {
882					this.currentIndex = 0;
883				}
884				this.switchSlide();
885			}
886		},
887		slideTo: function(i) {
888			if (this.currentIndex != i && !this.isAnimating){
889				if (this.currentIndex > i){
890					this.direction = -1;
891				} else {
892					this.direction = 1;
893				}
894				this.prevIndex = this.currentIndex;
895				this.currentIndex = i;
896				this.switchSlide();
897			}
898		},
899		getAppendedSlides: function() {
900			var slides = this.slideset.find(this.options.slides);
901			var currSlides = $();
902			var self = this;
903			var slidesLength = slides.length;
904
905
906			slides.each(function(i) {
907				var slide = jQuery(this);
908
909				if (self.direction > 0) {
910					if (i < self.options.slidesToScroll) {
911						currSlides = currSlides.add(slide);
912					}
913				} else {
914					if (i >= slidesLength - self.options.slidesToScroll) {
915						currSlides = currSlides.add(slide);
916					}
917				}
918			});
919
920			return currSlides;
921		},
922		switchSlide: function() {
923			var self = this;
924			var appendedSlides = this.getAppendedSlides();
925			var animDistance = this.mask.outerWidth() / this.options.visibleSlides * this.options.slidesToScroll;
926
927			if (this.direction > 0) {
928				this.slideset.animate({
929					marginLeft: -animDistance
930				}, {
931					duration: this.options.animSpeed,
932					complete: function() {
933						self.pagerItems.removeClass(self.options.activeClass);
934						self.pagerItems.eq(self.currentIndex).addClass(self.options.activeClass);
935						appendedSlides.appendTo(self.slideset);
936						self.slideset.css({
937							marginLeft: ''
938						});
939						self.refrestCounter();
940						self.galleryAnimating = false;
941						self.startRotation();
942					}
943				});
944			} else {
945				appendedSlides.prependTo(this.slideset);
946				this.slideset.css({
947					marginLeft: -animDistance
948				});
949				this.slideset.animate({
950					marginLeft: 0
951				}, {
952					duration: this.options.animSpeed,
953					complete: function() {
954						self.refrestCounter();
955						self.galleryAnimating = false;
956						self.startRotation();
957					}
958				});
959			}
960		},
961		startRotation: function() {
962			var self = this;
963			clearTimeout(this.timer);
964			if (this.options.autoRotation) {
965				this.timer = setTimeout(function() {
966					self.nextSlide(true);
967				}, this.options.switchTime);
968			}
969		},
970		stopRotation: function() {
971			clearTimeout(this.timer);
972		},
973		makeCallback: function(name) {
974			if (typeof this.options[name] === 'function') {
975				var args = Array.prototype.slice.call(arguments);
976				args.shift();
977				this.options[name].apply(this, args);
978			}
979		},
980		destroy: function() {
981			// destroy handler
982			this.isDestroy = true;
983			this.btnPrev.off(this.options.event, this.prevSlideHandler);
984			this.btnNext.off(this.options.event, this.nextSlideHandler);
985			$(window).off('resize orientationchange load', this.resizeHandler);
986			// autorotation handlers
987			this.stopRotation();
988
989			// remove inline styles, classes
990			this.gallery.removeClass(this.options.galleryReadyClass);
991			this.slides.removeClass(this.options.activeClass);
992
993			this.slideset.add(this.slides).removeAttr('style');
994		}
995	};
996
997	// detect device type
998	var isTouchDevice = /Windows Phone/.test(navigator.userAgent) || ('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch;
999
1000	// jquery plugin
1001	$.fn.multiSlideCyclicGalery = function(opt) {
1002		return this.each(function() {
1003			$(this).data('MultiSlideCyclicGalery', new MultiSlideCyclicGalery($.extend(opt, {
1004				holder: this
1005			})));
1006		});
1007	};
1008}(jQuery));
1009
1010
1011/*
1012 * jQuery SameHeight plugin
1013 */
1014;(function($){
1015	$.fn.sameHeight = function(opt) {
1016		var options = $.extend({
1017			skipClass: 'same-height-ignore',
1018			leftEdgeClass: 'same-height-left',
1019			rightEdgeClass: 'same-height-right',
1020			elements: '>*',
1021			flexible: false,
1022			multiLine: false,
1023			useMinHeight: false,
1024			biggestHeight: false
1025		},opt);
1026		return this.each(function(){
1027			var holder = $(this), postResizeTimer, ignoreResize;
1028			var elements = holder.find(options.elements).not('.' + options.skipClass);
1029			if(!elements.length) return;
1030
1031			// resize handler
1032			function doResize() {
1033				elements.css(options.useMinHeight && supportMinHeight ? 'minHeight' : 'height', '');
1034				if(options.multiLine) {
1035					// resize elements row by row
1036					resizeElementsByRows(elements, options);
1037				} else {
1038					// resize elements by holder
1039					resizeElements(elements, holder, options);
1040				}
1041			}
1042			doResize();
1043
1044			// handle flexible layout / font resize
1045			var delayedResizeHandler = function() {
1046				if(!ignoreResize) {
1047					ignoreResize = true;
1048					doResize();
1049					clearTimeout(postResizeTimer);
1050					postResizeTimer = setTimeout(function() {
1051						doResize();
1052						setTimeout(function(){
1053							ignoreResize = false;
1054						}, 10);
1055					}, 100);
1056				}
1057			};
1058
1059			// handle flexible/responsive layout
1060			if(options.flexible) {
1061				$(window).bind('resize orientationchange fontresize', delayedResizeHandler);
1062			}
1063
1064			// handle complete page load including images and fonts
1065			$(window).bind('load', delayedResizeHandler);
1066		});
1067	};
1068
1069	// detect css min-height support
1070	var supportMinHeight = typeof document.documentElement.style.maxHeight !== 'undefined';
1071
1072	// get elements by rows
1073	function resizeElementsByRows(boxes, options) {
1074		var currentRow = $(), maxHeight, maxCalcHeight = 0, firstOffset = boxes.eq(0).offset().top;
1075		boxes.each(function(ind){
1076			var curItem = $(this);
1077			if(curItem.offset().top === firstOffset) {
1078				currentRow = currentRow.add(this);
1079			} else {
1080				maxHeight = getMaxHeight(currentRow);
1081				maxCalcHeight = Math.max(maxCalcHeight, resizeElements(currentRow, maxHeight, options));
1082				currentRow = curItem;
1083				firstOffset = curItem.offset().top;
1084			}
1085		});
1086		if(currentRow.length) {
1087			maxHeight = getMaxHeight(currentRow);
1088			maxCalcHeight = Math.max(maxCalcHeight, resizeElements(currentRow, maxHeight, options));
1089		}
1090		if(options.biggestHeight) {
1091			boxes.css(options.useMinHeight && supportMinHeight ? 'minHeight' : 'height', maxCalcHeight);
1092		}
1093	}
1094
1095	// calculate max element height
1096	function getMaxHeight(boxes) {
1097		var maxHeight = 0;
1098		boxes.each(function(){
1099			maxHeight = Math.max(maxHeight, $(this).outerHeight());
1100		});
1101		return maxHeight;
1102	}
1103
1104	// resize helper function
1105	function resizeElements(boxes, parent, options) {
1106		var calcHeight;
1107		var parentHeight = typeof parent === 'number' ? parent : parent.height();
1108		boxes.removeClass(options.leftEdgeClass).removeClass(options.rightEdgeClass).each(function(i){
1109			var element = $(this);
1110			var depthDiffHeight = 0;
1111			var isBorderBox = element.css('boxSizing') === 'border-box' || element.css('-moz-box-sizing') === 'border-box' || element.css('-webkit-box-sizing') === 'border-box';
1112
1113			if(typeof parent !== 'number') {
1114				element.parents().each(function(){
1115					var tmpParent = $(this);
1116					if(parent.is(this)) {
1117						return false;
1118					} else {
1119						depthDiffHeight += tmpParent.outerHeight() - tmpParent.height();
1120					}
1121				});
1122			}
1123			calcHeight = parentHeight - depthDiffHeight;
1124			calcHeight -= isBorderBox ? 0 : element.outerHeight() - element.height();
1125
1126			if(calcHeight > 0) {
1127				element.css(options.useMinHeight && supportMinHeight ? 'minHeight' : 'height', calcHeight);
1128			}
1129		});
1130		boxes.filter(':first').addClass(options.leftEdgeClass);
1131		boxes.filter(':last').addClass(options.rightEdgeClass);
1132		return calcHeight;
1133	}
1134}(jQuery));
1135
1136/*
1137 * jQuery FontResize Event
1138 */
1139jQuery.onFontResize = (function($) {
1140	$(function() {
1141		var randomID = 'font-resize-frame-' + Math.floor(Math.random() * 1000);
1142		var resizeFrame = $('<iframe>').attr('id', randomID).addClass('font-resize-helper');
1143
1144		// required styles
1145		resizeFrame.css({
1146			width: '100em',
1147			height: '10px',
1148			position: 'absolute',
1149			borderWidth: 0,
1150			top: '-9999px',
1151			left: '-9999px'
1152		}).appendTo('body');
1153
1154		// use native IE resize event if possible
1155		if (window.attachEvent && !window.addEventListener) {
1156			resizeFrame.bind('resize', function () {
1157				$.onFontResize.trigger(resizeFrame[0].offsetWidth / 100);
1158			});
1159		}
1160		// use script inside the iframe to detect resize for other browsers
1161		else {
1162			var doc = resizeFrame[0].contentWindow.document;
1163			doc.open();
1164			doc.write('<scri' + 'pt>window.onload = function(){var em = parent.jQuery("#' + randomID + '")[0];window.onresize = function(){if(parent.jQuery.onFontResize){parent.jQuery.onFontResize.trigger(em.offsetWidth / 100);}}};</scri' + 'pt>');
1165			doc.close();
1166		}
1167		jQuery.onFontResize.initialSize = resizeFrame[0].offsetWidth / 100;
1168	});
1169	return {
1170		// public method, so it can be called from within the iframe
1171		trigger: function (em) {
1172			$(window).trigger("fontresize", [em]);
1173		}
1174	};
1175}(jQuery));
1176
1177
1178// placeholder class
1179;(function(){
1180	var placeholderCollection = [];
1181	PlaceholderInput = function() {
1182		this.options = {
1183			element:null,
1184			showUntilTyping:false,
1185			wrapWithElement:false,
1186			getParentByClass:false,
1187			showPasswordBullets:false,
1188			placeholderAttr:'value',
1189			inputFocusClass:'focus',
1190			inputActiveClass:'text-active',
1191			parentFocusClass:'parent-focus',
1192			parentActiveClass:'parent-active',
1193			labelFocusClass:'label-focus',
1194			labelActiveClass:'label-active',
1195			fakeElementClass:'input-placeholder-text'
1196		};
1197		placeholderCollection.push(this);
1198		this.init.apply(this,arguments);
1199	};
1200	PlaceholderInput.refreshAllInputs = function(except) {
1201		for(var i = 0; i < placeholderCollection.length; i++) {
1202			if(except !== placeholderCollection[i]) {
1203				placeholderCollection[i].refreshState();
1204			}
1205		}
1206	};
1207	PlaceholderInput.replaceByOptions = function(opt) {
1208		var inputs = [].concat(
1209			convertToArray(document.getElementsByTagName('input')),
1210			convertToArray(document.getElementsByTagName('textarea'))
1211		);
1212		for(var i = 0; i < inputs.length; i++) {
1213			if(inputs[i].className.indexOf(opt.skipClass) < 0) {
1214				var inputType = getInputType(inputs[i]);
1215				var placeholderValue = inputs[i].getAttribute('placeholder');
1216				if(opt.focusOnly || (opt.clearInputs && (inputType === 'text' || inputType === 'email' || placeholderValue)) ||
1217					(opt.clearTextareas && inputType === 'textarea') ||
1218					(opt.clearPasswords && inputType === 'password')
1219				) {
1220					new PlaceholderInput({
1221						element:inputs[i],
1222						focusOnly: opt.focusOnly,
1223						wrapWithElement:opt.wrapWithElement,
1224						showUntilTyping:opt.showUntilTyping,
1225						getParentByClass:opt.getParentByClass,
1226						showPasswordBullets:opt.showPasswordBullets,
1227						placeholderAttr: placeholderValue ? 'placeholder' : opt.placeholderAttr
1228					});
1229				}
1230			}
1231		}
1232	};
1233	PlaceholderInput.prototype = {
1234		init: function(opt) {
1235			this.setOptions(opt);
1236			if(this.element && this.element.PlaceholderInst) {
1237				this.element.PlaceholderInst.refreshClasses();
1238			} else {
1239				this.element.PlaceholderInst = this;
1240				if(this.elementType !== 'radio' || this.elementType !== 'checkbox' || this.elementType !== 'file') {
1241					this.initElements();
1242					this.attachEvents();
1243					this.refreshClasses();
1244				}
1245			}
1246		},
1247		setOptions: function(opt) {
1248			for(var p in opt) {
1249				if(opt.hasOwnProperty(p)) {
1250					this.options[p] = opt[p];
1251				}
1252			}
1253			if(this.options.element) {
1254				this.element = this.options.element;
1255				this.elementType = getInputType(this.element);
1256				if(this.options.focusOnly) {
1257					this.wrapWithElement = false;
1258				} else {
1259					if(this.elementType === 'password' && this.options.showPasswordBullets && !this.options.showUntilTyping) {
1260						this.wrapWithElement = false;
1261					} else {
1262						this.wrapWithElement = this.elementType === 'password' || this.options.showUntilTyping ? true : this.options.wrapWithElement;
1263					}
1264				}
1265				this.setPlaceholderValue(this.options.placeholderAttr);
1266			}
1267		},
1268		setPlaceholderValue: function(attr) {
1269			this.origValue = (attr === 'value' ? this.element.defaultValue : (this.element.getAttribute(attr) || ''));
1270			if(this.options.placeholderAttr !== 'value') {
1271				this.element.removeAttribute(this.options.placeholderAttr);
1272			}
1273		},
1274		initElements: function() {
1275			// create fake element if needed
1276			if(this.wrapWithElement) {
1277				this.fakeElement = document.createElement('span');
1278				this.fakeElement.className = this.options.fakeElementClass;
1279				this.fakeElement.innerHTML += this.origValue;
1280				this.fakeElement.style.color = getStyle(this.element, 'color');
1281				this.fakeElement.style.position = 'absolute';
1282				this.element.parentNode.insertBefore(this.fakeElement, this.element);
1283				
1284				if(this.element.value === this.origValue || !this.element.value) {
1285					this.element.value = '';
1286					this.togglePlaceholderText(true);
1287				} else {
1288					this.togglePlaceholderText(false);
1289				}
1290			} else if(!this.element.value && this.origValue.length) {
1291				this.element.value = this.origValue;
1292			}
1293			// get input label
1294			if(this.element.id) {
1295				this.labels = document.getElementsByTagName('label');
1296				for(var i = 0; i < this.labels.length; i++) {
1297					if(this.labels[i].htmlFor === this.element.id) {
1298						this.labelFor = this.labels[i];
1299						break;
1300					}
1301				}
1302			}
1303			// get parent node (or parentNode by className)
1304			this.elementParent = this.element.parentNode;
1305			if(typeof this.options.getParentByClass === 'string') {
1306				var el = this.element;
1307				while(el.parentNode) {
1308					if(hasClass(el.parentNode, this.options.getParentByClass)) {
1309						this.elementParent = el.parentNode;
1310						break;
1311					} else {
1312						el = el.parentNode;
1313					}
1314				}
1315			}
1316		},
1317		attachEvents: function() {
1318			this.element.onfocus = bindScope(this.focusHandler, this);
1319			this.element.onblur = bindScope(this.blurHandler, this);
1320			if(this.options.showUntilTyping) {
1321				this.element.onkeydown = bindScope(this.typingHandler, this);
1322				this.element.onpaste = bindScope(this.typingHandler, this);
1323			}
1324			if(this.wrapWithElement) this.fakeElement.onclick = bindScope(this.focusSetter, this);
1325		},
1326		togglePlaceholderText: function(state) {
1327			if(!this.element.readOnly && !this.options.focusOnly) {
1328				if(this.wrapWithElement) {
1329					this.fakeElement.style.display = state ? '' : 'none';
1330				} else {
1331					this.element.value = state ? this.origValue : '';
1332				}
1333			}
1334		},
1335		focusSetter: function() {
1336			this.element.focus();
1337		},
1338		focusHandler: function() {
1339			clearInterval(this.checkerInterval);
1340			this.checkerInterval = setInterval(bindScope(this.intervalHandler,this), 1);
1341			this.focused = true;
1342			if(!this.element.value.length || this.element.value === this.origValue) {
1343				if(!this.options.showUntilTyping) {
1344					this.togglePlaceholderText(false);
1345				}
1346			}
1347			this.refreshClasses();
1348		},
1349		blurHandler: function() {
1350			clearInterval(this.checkerInterval);
1351			this.focused = false;
1352			if(!this.element.value.length || this.element.value === this.origValue) {
1353				this.togglePlaceholderText(true);
1354			}
1355			this.refreshClasses();
1356			PlaceholderInput.refreshAllInputs(this);
1357		},
1358		typingHandler: function() {
1359			setTimeout(bindScope(function(){
1360				if(this.element.value.length) {
1361					this.togglePlaceholderText(false);
1362					this.refreshClasses();
1363				}
1364			},this), 10);
1365		},
1366		intervalHandler: function() {
1367			if(typeof this.tmpValue === 'undefined') {
1368				this.tmpValue = this.element.value;
1369			}
1370			if(this.tmpValue != this.element.value) {
1371				PlaceholderInput.refreshAllInputs(this);
1372			}
1373		},
1374		refreshState: function() {
1375			if(this.wrapWithElement) {
1376				if(this.element.value.length && this.element.value !== this.origValue) {
1377					this.togglePlaceholderText(false);
1378				} else if(!this.element.value.length) {
1379					this.togglePlaceholderText(true);
1380				}
1381			}
1382			this.refreshClasses();
1383		},
1384		refreshClasses: function() {
1385			this.textActive = this.focused || (this.element.value.length && this.element.value !== this.origValue);
1386			this.setStateClass(this.element, this.options.inputFocusClass,this.focused);
1387			this.setStateClass(this.elementParent, this.options.parentFocusClass,this.focused);
1388			this.setStateClass(this.labelFor, this.options.labelFocusClass,this.focused);
1389			this.setStateClass(this.element, this.options.inputActiveClass, this.textActive);
1390			this.setStateClass(this.elementParent, this.options.parentActiveClass, this.textActive);
1391			this.setStateClass(this.labelFor, this.options.labelActiveClass, this.textActive);
1392		},
1393		setStateClass: function(el,cls,state) {
1394			if(!el) return; else if(state) addClass(el,cls); else removeClass(el,cls);
1395		}
1396	};
1397	
1398	// utility functions
1399	function convertToArray(collection) {
1400		var arr = [];
1401		for (var i = 0, ref = arr.length = collection.length; i < ref; i++) {
1402			arr[i] = collection[i];
1403		}
1404		return arr;
1405	}
1406	function getInputType(input) {
1407		return (input.type ? input.type : input.tagName).toLowerCase();
1408	}
1409	function hasClass(el,cls) {
1410		return el.className ? el.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)')) : false;
1411	}
1412	function addClass(el,cls) {
1413		if (!hasClass(el,cls)) el.className += " "+cls;
1414	}
1415	function removeClass(el,cls) {
1416		if (hasClass(el,cls)) {el.className=el.className.replace(new RegExp('(\\s|^)'+cls+'(\\s|$)'),' ');}
1417	}
1418	function bindScope(f, scope) {
1419		return function() {return f.apply(scope, arguments);};
1420	}
1421	function getStyle(el, prop) {
1422		if (document.defaultView && document.defaultView.getComputedStyle) {
1423			return document.defaultView.getComputedStyle(el, null)[prop];
1424		} else if (el.currentStyle) {
1425			return el.currentStyle[prop];
1426		} else {
1427			return el.style[prop];
1428		}
1429	}
1430}());
1431
1432
1433/**
1434 * Owl carousel
1435 * @version 2.0.0
1436 * @author Bartosz Wojciechowski
1437 * @license The MIT License (MIT)
1438 * @todo Lazy Load Icon
1439 * @todo prevent animationend bubling
1440 * @todo itemsScaleUp
1441 * @todo Test Zepto
1442 * @todo stagePadding calculate wrong active classes
1443 */
1444!function(a,b,c,d){function e(b,c){this.settings=null,this.options=a.extend({},e.Defaults,c),this.$element=a(b),this.drag=a.extend({},m),this.state=a.extend({},n),this.e=a.extend({},o),this._plugins={},this._supress={},this._current=null,this._speed=null,this._coordinates=[],this._breakpoint=null,this._width=null,this._items=[],this._clones=[],this._mergers=[],this._invalidated={},this._pipe=[],a.each(e.Plugins,a.proxy(function(a,b){this._plugins[a[0].toLowerCase()+a.slice(1)]=new b(this)},this)),a.each(e.Pipe,a.proxy(function(b,c){this._pipe.push({filter:c.filter,run:a.proxy(c.run,this)})},this)),this.setup(),this.initialize()}function f(a){if(a.touches!==d)return{x:a.touches[0].pageX,y:a.touches[0].pageY};if(a.touches===d){if(a.pageX!==d)return{x:a.pageX,y:a.pageY};if(a.pageX===d)return{x:a.clientX,y:a.clientY}}}function g(a){var b,d,e=c.createElement("div"),f=a;for(b in f)if(d=f[b],"undefined"!=typeof e.style[d])return e=null,[d,b];return[!1]}function h(){return g(["transition","WebkitTransition","MozTransition","OTransition"])[1]}function i(){return g(["transform","WebkitTransform","MozTransform","OTransform","msTransform"])[0]}function j(){return g(["perspective","webkitPerspective","MozPerspective","OPerspective","MsPerspective"])[0]}function k(){return"ontouchstart"in b||!!navigator.msMaxTouchPoints}function l(){return b.navigator.msPointerEnabled}var m,n,o;m={start:0,startX:0,startY:0,current:0,currentX:0,currentY:0,offsetX:0,offsetY:0,distance:null,startTime:0,endTime:0,updatedX:0,targetEl:null},n={isTouch:!1,isScrolling:!1,isSwiping:!1,direction:!1,inMotion:!1},o={_onDragStart:null,_onDragMove:null,_onDragEnd:null,_transitionEnd:null,_resizer:null,_responsiveCall:null,_goToLoop:null,_checkVisibile:null},e.Defaults={items:3,loop:!1,center:!1,mouseDrag:!0,touchDrag:!0,pullDrag:!0,freeDrag:!1,margin:0,stagePadding:0,merge:!1,mergeFit:!0,autoWidth:!1,startPosition:0,rtl:!1,smartSpeed:250,fluidSpeed:!1,dragEndSpeed:!1,responsive:{},responsiveRefreshRate:200,responsiveBaseElement:b,responsiveClass:!1,fallbackEasing:"swing",info:!1,nestedItemSelector:!1,itemElement:"div",stageElement:"div",themeClass:"owl-theme",baseClass:"owl-carousel",itemClass:"owl-item",centerClass:"center",activeClass:"active"},e.Width={Default:"default",Inner:"inner",Outer:"outer"},e.Plugins={},e.Pipe=[{filter:["width","items","settings"],run:function(a){a.current=this._items&&this._items[this.relative(this._current)]}},{filter:["items","settings"],run:function(){var a=this._clones,b=this.$stage.children(".cloned");(b.length!==a.length||!this.settings.loop&&a.length>0)&&(this.$stage.children(".cloned").remove(),this._clones=[])}},{filter:["items","settings"],run:function(){var a,b,c=this._clones,d=this._items,e=this.settings.loop?c.length-Math.max(2*this.settings.items,4):0;for(a=0,b=Math.abs(e/2);b>a;a++)e>0?(this.$stage.children().eq(d.length+c.length-1).remove(),c.pop(),this.$stage.children().eq(0).remove(),c.pop()):(c.push(c.length/2),this.$stage.append(d[c[c.length-1]].clone().addClass("cloned")),c.push(d.length-1-(c.length-1)/2),this.$stage.prepend(d[c[c.length-1]].clone().addClass("cloned")))}},{filter:["width","items","settings"],run:function(){var a,b,c,d=this.settings.rtl?1:-1,e=(this.width()/this.settings.items).toFixed(3),f=0;for(this._coordinates=[],b=0,c=this._clones.length+this._items.length;c>b;b++)a=this._mergers[this.relative(b)],a=this.settings.mergeFit&&Math.min(a,this.settings.items)||a,f+=(this.settings.autoWidth?this._items[this.relative(b)].width()+this.settings.margin:e*a)*d,this._coordinates.push(f)}},{filter:["width","items","settings"],run:function(){var b,c,d=(this.width()/this.settings.items).toFixed(3),e={width:Math.abs(this._coordinates[this._coordinates.length-1])+2*this.settings.stagePadding,"padding-left":this.settings.stagePadding||"","padding-right":this.settings.stagePadding||""};if(this.$stage.css(e),e={width:this.settings.autoWidth?"auto":d-this.settings.margin},e[this.settings.rtl?"margin-left":"margin-right"]=this.settings.margin,!this.settings.autoWidth&&a.grep(this._mergers,function(a){return a>1}).length>0)for(b=0,c=this._coordinates.length;c>b;b++)e.width=Math.abs(this._coordinates[b])-Math.abs(this._coordinates[b-1]||0)-this.settings.margin,this.$stage.children().eq(b).css(e);else this.$stage.children().css(e)}},{filter:["width","items","settings"],run:function(a){a.current&&this.reset(this.$stage.children().index(a.current))}},{filter:["position"],run:function(){this.animate(this.coordinates(this._current))}},{filter:["width","position","items","settings"],run:function(){var a,b,c,d,e=this.settings.rtl?1:-1,f=2*this.settings.stagePadding,g=this.coordinates(this.current())+f,h=g+this.width()*e,i=[];for(c=0,d=this._coordinates.length;d>c;c++)a=this._coordinates[c-1]||0,b=Math.abs(this._coordinates[c])+f*e,(this.op(a,"<=",g)&&this.op(a,">",h)||this.op(b,"<",g)&&this.op(b,">",h))&&i.push(c);this.$stage.children("."+this.settings.activeClass).removeClass(this.settings.activeClass),this.$stage.children(":eq("+i.join("), :eq(")+")").addClass(this.settings.activeClass),this.settings.center&&(this.$stage.children("."+this.settings.centerClass).removeClass(this.settings.centerClass),this.$stage.children().eq(this.current()).addClass(this.settings.centerClass))}}],e.prototype.initialize=function(){if(this.trigger("initialize"),this.$element.addClass(this.settings.baseClass).addClass(this.settings.themeClass).toggleClass("owl-rtl",this.settings.rtl),this.browserSupport(),this.settings.autoWidth&&this.state.imagesLoaded!==!0){var b,c,e;if(b=this.$element.find("img"),c=this.settings.nestedItemSelector?"."+this.settings.nestedItemSelector:d,e=this.$element.children(c).width(),b.length&&0>=e)return this.preloadAutoWidthImages(b),!1}this.$element.addClass("owl-loading"),this.$stage=a("<"+this.settings.stageElement+' class="owl-stage"/>').wrap('<div class="owl-stage-outer">'),this.$element.append(this.$stage.parent()),this.replace(this.$element.children().not(this.$stage.parent())),this._width=this.$element.width(),this.refresh(),this.$element.removeClass("owl-loading").addClass("owl-loaded"),this.eventsCall(),this.internalEvents(),this.addTriggerableEvents(),this.trigger("initialized")},e.prototype.setup=function(){var b=this.viewport(),c=this.options.responsive,d=-1,e=null;c?(a.each(c,function(a){b>=a&&a>
1444d&&(d=Number(a))}),e=a.extend({},this.options,c[d]),delete e.responsive,e.responsiveClass&&this.$element.attr("class",function(a,b){return b.replace(/\b owl-responsive-\S+/g,"")}).addClass("owl-responsive-"+d)):e=a.extend({},this.options),(null===this.settings||this._breakpoint!==d)&&(this.trigger("change",{property:{name:"settings",value:e}}),this._breakpoint=d,this.settings=e,this.invalidate("settings"),this.trigger("changed",{property:{name:"settings",value:this.settings}}))},e.prototype.optionsLogic=function(){this.$element.toggleClass("owl-center",this.settings.center),this.settings.loop&&this._items.length<this.settings.items&&(this.settings.loop=!1),this.settings.autoWidth&&(this.settings.stagePadding=!1,this.settings.merge=!1)},e.prototype.prepare=function(b){var c=this.trigger("prepare",{content:b});return c.data||(c.data=a("<"+this.settings.itemElement+"/>").addClass(this.settings.itemClass).append(b)),this.trigger("prepared",{content:c.data}),c.data},e.prototype.update=function(){for(var b=0,c=this._pipe.length,d=a.proxy(function(a){return this[a]},this._invalidated),e={};c>b;)(this._invalidated.all||a.grep(this._pipe[b].filter,d).length>0)&&this._pipe[b].run(e),b++;this._invalidated={}},e.prototype.width=function(a){switch(a=a||e.Width.Default){case e.Width.Inner:case e.Width.Outer:return this._width;default:return this._width-2*this.settings.stagePadding+this.settings.margin}},e.prototype.refresh=function(){if(0===this._items.length)return!1;(new Date).getTime();this.trigger("refresh"),this.setup(),this.optionsLogic(),this.$stage.addClass("owl-refresh"),this.update(),this.$stage.removeClass("owl-refresh"),this.state.orientation=b.orientation,this.watchVisibility(),this.trigger("refreshed")},e.prototype.eventsCall=function(){this.e._onDragStart=a.proxy(function(a){this.onDragStart(a)},this),this.e._onDragMove=a.proxy(function(a){this.onDragMove(a)},this),this.e._onDragEnd=a.proxy(function(a){this.onDragEnd(a)},this),this.e._onResize=a.proxy(function(a){this.onResize(a)},this),this.e._transitionEnd=a.proxy(function(a){this.transitionEnd(a)},this),this.e._preventClick=a.proxy(function(a){this.preventClick(a)},this)},e.prototype.onThrottledResize=function(){b.clearTimeout(this.resizeTimer),this.resizeTimer=b.setTimeout(this.e._onResize,this.settings.responsiveRefreshRate)},e.prototype.onResize=function(){return this._items.length?this._width===this.$element.width()?!1:this.trigger("resize").isDefaultPrevented()?!1:(this._width=this.$element.width(),this.invalidate("width"),this.refresh(),void this.trigger("resized")):!1},e.prototype.eventsRouter=function(a){var b=a.type;"mousedown"===b||"touchstart"===b?this.onDragStart(a):"mousemove"===b||"touchmove"===b?this.onDragMove(a):"mouseup"===b||"touchend"===b?this.onDragEnd(a):"touchcancel"===b&&this.onDragEnd(a)},e.prototype.internalEvents=function(){var c=(k(),l());this.settings.mouseDrag?(this.$stage.on("mousedown",a.proxy(function(a){this.eventsRouter(a)},this)),this.$stage.on("dragstart",function(){return!1}),this.$stage.get(0).onselectstart=function(){return!1}):this.$element.addClass("owl-text-select-on"),this.settings.touchDrag&&!c&&this.$stage.on("touchstart touchcancel",a.proxy(function(a){this.eventsRouter(a)},this)),this.transitionEndVendor&&this.on(this.$stage.get(0),this.transitionEndVendor,this.e._transitionEnd,!1),this.settings.responsive!==!1&&this.on(b,"resize",a.proxy(this.onThrottledResize,this))},e.prototype.onDragStart=function(d){var e,g,h,i;if(e=d.originalEvent||d||b.event,3===e.which||this.state.isTouch)return!1;if("mousedown"===e.type&&this.$stage.addClass("owl-grab"),this.trigger("drag"),this.drag.startTime=(new Date).getTime(),this.speed(0),this.state.isTouch=!0,this.state.isScrolling=!1,this.state.isSwiping=!1,this.drag.distance=0,g=f(e).x,h=f(e).y,this.drag.offsetX=this.$stage.position().left,this.drag.offsetY=this.$stage.position().top,this.settings.rtl&&(this.drag.offsetX=this.$stage.position().left+this.$stage.width()-this.width()+this.settings.margin),this.state.inMotion&&this.support3d)i=this.getTransformProperty(),this.drag.offsetX=i,this.animate(i),this.state.inMotion=!0;else if(this.state.inMotion&&!this.support3d)return this.state.inMotion=!1,!1;this.drag.startX=g-this.drag.offsetX,this.drag.startY=h-this.drag.offsetY,this.drag.start=g-this.drag.startX,this.drag.targetEl=e.target||e.srcElement,this.drag.updatedX=this.drag.start,("IMG"===this.drag.targetEl.tagName||"A"===this.drag.targetEl.tagName)&&(this.drag.targetEl.draggable=!1),a(c).on("mousemove.owl.dragEvents mouseup.owl.dragEvents touchmove.owl.dragEvents touchend.owl.dragEvents",a.proxy(function(a){this.eventsRouter(a)},this))},e.prototype.onDragMove=function(a){var c,e,g,h,i,j;this.state.isTouch&&(this.state.isScrolling||(c=a.originalEvent||a||b.event,e=f(c).x,g=f(c).y,this.drag.currentX=e-this.drag.startX,this.drag.currentY=g-this.drag.startY,this.drag.distance=this.drag.currentX-this.drag.offsetX,this.drag.distance<0?this.state.direction=this.settings.rtl?"right":"left":this.drag.distance>0&&(this.state.direction=this.settings.rtl?"left":"right"),this.settings.loop?this.op(this.drag.currentX,">",this.coordinates(this.minimum()))&&"right"===this.state.direction?this.drag.currentX-=(this.settings.center&&this.coordinates(0))-this.coordinates(this._items.length):this.op(this.drag.currentX,"<",this.coordinates(this.maximum()))&&"left"===this.state.direction&&(this.drag.currentX+=(this.settings.center&&this.coordinates(0))-this.coordinates(this._items.length)):(h=this.coordinates(this.settings.rtl?this.maximum():this.minimum()),i=this.coordinates(this.settings.rtl?this.minimum():this.maximum()),j=this.settings.pullDrag?this.drag.distance/5:0,this.drag.currentX=Math.max(Math.min(this.drag.currentX,h+j),i+j)),(this.drag.distance>8||this.drag.distance<-8)&&(c.preventDefault!==d?c.preventDefault():c.returnValue=!1,this.state.isSwiping=!0),this.drag.updatedX=this.drag.currentX,(this.drag.currentY>16||this.drag.currentY<-16)&&this.state.isSwiping===!1&&(this.state.isScrolling=!0,this.drag.updatedX=this.drag.start),this.animate(this.drag.updatedX)))},e.prototype.onDragEnd=function(b){var d,e,f;if(this.state.isTouch){if("mouseup"===b.type&&this.$stage.removeClass("owl-grab"),this.trigger("dragged"),this.drag.targetEl.removeAttribute("draggable"),this.state.isTouch=!1,this.state.isScrolling=!1,this.state.isSwiping=!1,0===this.drag.distance&&this.state.inMotion!==!0)return this.state.inMotion=!1,!1;this.drag.endTime=(new Date).getTime(),d=this.drag.endTime-this.drag.startTime,e=Math.abs(this.drag.distance),(e>3||d>300)&&this.removeClick(this.drag.targetEl),f=this.closest(this.drag.updatedX),this.speed(this.settings.dragEndSpeed||this.settings.smartSpeed),this.current(f),this.invalidate("position"),this.update(),this.settings.pullDrag||this.drag.updatedX!==this.coordinates(f)||this.transitionEnd(),this.drag.distance=0,a(c).off(".owl.dragEvents")}},e.prototype.removeClick=function(c){this.drag.targetEl=c,a(c).on("click.preventClick",this.e._preventClick),b.setTimeout(function(){a(c).off("click.preventClick")},300)},e.prototype.preventClick=function(b){b.preventDefault?b.preventDefault():b.returnValue=!1,b.stopPropagation&&b.stopPropagation(),a(b.target).off("click.preventClick")},e.prototype.getTransformProperty=function(){var a,c;return a=b.getComputedStyle(this.$stage.get(0),null).getPropertyValue(this.vendorName+"transform"),a=a.replace(/matrix(3d)?\(|\)/g,"").split(","),c=16===a.length,c!==!0?a[4]:a[12]},e.prototype.closest=function(b){var c=-1,d=30,e=this.width(),f=this.coordinates();return this.settings.freeDrag||a.each(f,a.proxy(function(a,g){return b>g-d&&g+d>b?c=a:this.op(b,"<",g)&&this.op(b,">",f[a+1]||g-e)&&(c="left"===this.state.direction?a+1:a),-1===c},this)),this.settings.loop||(this.op(b,">",f[this.minimum()])?c=b=this.minimum():this.op(b,"<",f[this.maximum()])&&(c=b=this.maximum())),c},e.prototype.animate=function(b){this.trigger("translate"),this.state.inMotion=this.speed()>0,this.support3d?this.$stage.css({transform:"translate3d("+b+"px,0px, 0px)",transition:this.speed()/1e3+"s"}):this.state.isTouch?this.$stage.css({left:b+"px"}):this.$stage.animate({left:b},this.speed()/1e3,this.settings.fallbackEasing,a.proxy(function(){this.state.inMotion&&this.transitionEnd()},this))}
1444,e.prototype.current=function(a){if(a===d)return this._current;if(0===this._items.length)return d;if(a=this.normalize(a),this._current!==a){var b=this.trigger("change",{property:{name:"position",value:a}});b.data!==d&&(a=this.normalize(b.data)),this._current=a,this.invalidate("position"),this.trigger("changed",{property:{name:"position",value:this._current}})}return this._current},e.prototype.invalidate=function(a){this._invalidated[a]=!0},e.prototype.reset=function(a){a=this.normalize(a),a!==d&&(this._speed=0,this._current=a,this.suppress(["translate","translated"]),this.animate(this.coordinates(a)),this.release(["translate","translated"]))},e.prototype.normalize=function(b,c){var e=c?this._items.length:this._items.length+this._clones.length;return!a.isNumeric(b)||1>e?d:b=this._clones.length?(b%e+e)%e:Math.max(this.minimum(c),Math.min(this.maximum(c),b))},e.prototype.relative=function(a){return a=this.normalize(a),a-=this._clones.length/2,this.normalize(a,!0)},e.prototype.maximum=function(a){var b,c,d,e=0,f=this.settings;if(a)return this._items.length-1;if(!f.loop&&f.center)b=this._items.length-1;else if(f.loop||f.center)if(f.loop||f.center)b=this._items.length+f.items;else{if(!f.autoWidth&&!f.merge)throw"Can not detect maximum absolute position.";for(revert=f.rtl?1:-1,c=this.$stage.width()-this.$element.width();(d=this.coordinates(e))&&!(d*revert>=c);)b=++e}else b=this._items.length-f.items;return b},e.prototype.minimum=function(a){return a?0:this._clones.length/2},e.prototype.items=function(a){return a===d?this._items.slice():(a=this.normalize(a,!0),this._items[a])},e.prototype.mergers=function(a){return a===d?this._mergers.slice():(a=this.normalize(a,!0),this._mergers[a])},e.prototype.clones=function(b){var c=this._clones.length/2,e=c+this._items.length,f=function(a){return a%2===0?e+a/2:c-(a+1)/2};return b===d?a.map(this._clones,function(a,b){return f(b)}):a.map(this._clones,function(a,c){return a===b?f(c):null})},e.prototype.speed=function(a){return a!==d&&(this._speed=a),this._speed},e.prototype.coordinates=function(b){var c=null;return b===d?a.map(this._coordinates,a.proxy(function(a,b){return this.coordinates(b)},this)):(this.settings.center?(c=this._coordinates[b],c+=(this.width()-c+(this._coordinates[b-1]||0))/2*(this.settings.rtl?-1:1)):c=this._coordinates[b-1]||0,c)},e.prototype.duration=function(a,b,c){return Math.min(Math.max(Math.abs(b-a),1),6)*Math.abs(c||this.settings.smartSpeed)},e.prototype.to=function(c,d){if(this.settings.loop){var e=c-this.relative(this.current()),f=this.current(),g=this.current(),h=this.current()+e,i=0>g-h?!0:!1,j=this._clones.length+this._items.length;h<this.settings.items&&i===!1?(f=g+this._items.length,this.reset(f)):h>=j-this.settings.items&&i===!0&&(f=g-this._items.length,this.reset(f)),b.clearTimeout(this.e._goToLoop),this.e._goToLoop=b.setTimeout(a.proxy(function(){this.speed(this.duration(this.current(),f+e,d)),this.current(f+e),this.update()},this),30)}else this.speed(this.duration(this.current(),c,d)),this.current(c),this.update()},e.prototype.next=function(a){a=a||!1,this.to(this.relative(this.current())+1,a)},e.prototype.prev=function(a){a=a||!1,this.to(this.relative(this.current())-1,a)},e.prototype.transitionEnd=function(a){return a!==d&&(a.stopPropagation(),(a.target||a.srcElement||a.originalTarget)!==this.$stage.get(0))?!1:(this.state.inMotion=!1,void this.trigger("translated"))},e.prototype.viewport=function(){var d;if(this.options.responsiveBaseElement!==b)d=a(this.options.responsiveBaseElement).width();else if(b.innerWidth)d=b.innerWidth;else{if(!c.documentElement||!c.documentElement.clientWidth)throw"Can not detect viewport width.";d=c.documentElement.clientWidth}return d},e.prototype.replace=function(b){this.$stage.empty(),this._items=[],b&&(b=b instanceof jQuery?b:a(b)),this.settings.nestedItemSelector&&(b=b.find("."+this.settings.nestedItemSelector)),b.filter(function(){return 1===this.nodeType}).each(a.proxy(function(a,b){b=this.prepare(b),this.$stage.append(b),this._items.push(b),this._mergers.push(1*b.find("[data-merge]").andSelf("[data-merge]").attr("data-merge")||1)},this)),this.reset(a.isNumeric(this.settings.startPosition)?this.settings.startPosition:0),this.invalidate("items")},e.prototype.add=function(a,b){b=b===d?this._items.length:this.normalize(b,!0),this.trigger("add",{content:a,position:b}),0===this._items.length||b===this._items.length?(this.$stage.append(a),this._items.push(a),this._mergers.push(1*a.find("[data-merge]").andSelf("[data-merge]").attr("data-merge")||1)):(this._items[b].before(a),this._items.splice(b,0,a),this._mergers.splice(b,0,1*a.find("[data-merge]").andSelf("[data-merge]").attr("data-merge")||1)),this.invalidate("items"),this.trigger("added",{content:a,position:b})},e.prototype.remove=function(a){a=this.normalize(a,!0),a!==d&&(this.trigger("remove",{content:this._items[a],position:a}),this._items[a].remove(),this._items.splice(a,1),this._mergers.splice(a,1),this.invalidate("items"),this.trigger("removed",{content:null,position:a}))},e.prototype.addTriggerableEvents=function(){var b=a.proxy(function(b,c){return a.proxy(function(a){a.relatedTarget!==this&&(this.suppress([c]),b.apply(this,[].slice.call(arguments,1
1444)),this.release([c]))},this)},this);a.each({next:this.next,prev:this.prev,to:this.to,destroy:this.destroy,refresh:this.refresh,replace:this.replace,add:this.add,remove:this.remove},a.proxy(function(a,c){this.$element.on(a+".owl.carousel",b(c,a+".owl.carousel"))},this))},e.prototype.watchVisibility=function(){function c(a){return a.offsetWidth>0&&a.offsetHeight>0}function d(){c(this.$element.get(0))&&(this.$element.removeClass("owl-hidden"),this.refresh(),b.clearInterval(this.e._checkVisibile))}c(this.$element.get(0))||(this.$element.addClass("owl-hidden"),b.clearInterval(this.e._checkVisibile),this.e._checkVisibile=b.setInterval(a.proxy(d,this),500))},e.prototype.preloadAutoWidthImages=function(b){var c,d,e,f;c=0,d=this,b.each(function(g,h){e=a(h),f=new Image,f.onload=function(){c++,e.attr("src",f.src),e.css("opacity",1),c>=b.length&&(d.state.imagesLoaded=!0,d.initialize())},f.src=e.attr("src")||e.attr("data-src")||e.attr("data-src-retina")})},e.prototype.destroy=function(){this.$element.hasClass(this.settings.themeClass)&&this.$element.removeClass(this.settings.themeClass),this.settings.responsive!==!1&&a(b).off("resize.owl.carousel"),this.transitionEndVendor&&this.off(this.$stage.get(0),this.transitionEndVendor,this.e._transitionEnd);for(var d in this._plugins)this._plugins[d].destroy();(this.settings.mouseDrag||this.settings.touchDrag)&&(this.$stage.off("mousedown touchstart touchcancel"),a(c).off(".owl.dragEvents"),this.$stage.get(0).onselectstart=function(){},this.$stage.off("dragstart",function(){return!1})),this.$element.off(".owl"),this.$stage.children(".cloned").remove(),this.e=null,this.$element.removeData("owlCarousel"),this.$stage.children().contents().unwrap(),this.$stage.children().unwrap(),this.$stage.unwrap()},e.prototype.op=function(a,b,c){var d=this.settings.rtl;switch(b){case"<":return d?a>c:c>a;case">":return d?c>a:a>c;case">=":return d?c>=a:a>=c;case"<=":return d?a>=c:c>=a}},e.prototype.on=function(a,b,c,d){a.addEventListener?a.addEventListener(b,c,d):a.attachEvent&&a.attachEvent("on"+b,c)},e.prototype.off=function(a,b,c,d){a.removeEventListener?a.removeEventListener(b,c,d):a.detachEvent&&a.detachEvent("on"+b,c)},e.prototype.trigger=function(b,c,d){var e={item:{count:this._items.length,index:this.current()}},f=a.camelCase(a.grep(["on",b,d],function(a){return a}).join("-").toLowerCase()),g=a.Event([b,"owl",d||"carousel"].join(".").toLowerCase(),a.extend({relatedTarget:this},e,c));return this._supress[b]||(a.each(this._plugins,function(a,b){b.onTrigger&&b.onTrigger(g)}),this.$element.trigger(g),this.settings&&"function"==typeof this.settings[f]&&this.settings[f].apply(this,g)),g},e.prototype.suppress=function(b){a.each(b,a.proxy(function(a,b){this._supress[b]=!0},this))},e.prototype.release=function(b){a.each(b,a.proxy(function(a,b){delete this._supress[b]},this))},e.prototype.browserSupport=function(){if(this.support3d=j(),this.support3d){this.transformVendor=i();var a=["transitionend","webkitTransitionEnd","transitionend","oTransitionEnd"];this.transitionEndVendor=a[h()],this.vendorName=this.transformVendor.replace(/Transform/i,""),this.vendorName=""!==this.vendorName?"-"+this.vendorName.toLowerCase()+"-":""}this.state.orientation=b.orientation},a.fn.owlCarousel=function(b){return this.each(function(){a(this).data("owlCarousel")||a(this).data("owlCarousel",new e(this,b))})},a.fn.owlCarousel.Constructor=e}(window.Zepto||window.jQuery,window,document),function(a,b){var c=function(b){this._core=b,this._loaded=[],this._handlers={"initialized.owl.carousel change.owl.carousel":a.proxy(function(b){if(b.namespace&&this._core.settings&&this._core.settings.lazyLoad&&(b.property&&"position"==b.property.name||"initialized"==b.type))for(var c=this._core.settings,d=c.center&&Math.ceil(c.items/2)||c.items,e=c.center&&-1*d||0,f=(b.property&&b.property.value||this._core.current())+e,g=this._core.clones().length,h=a.proxy(function(a,b){this.load(b)},this);e++<d;)this.load(g/2+this._core.relative(f)),g&&a.each(this._core.clones(this._core.relative(f++)),h)},this)},this._core.options=a.extend({},c.Defaults,this._core.options),this._core.$element.on(this._handlers)};c.Defaults={lazyLoad:!1},c.prototype.load=function(c){var d=this._core.$stage.children().eq(c),e=d&&d.find(".owl-lazy");!e||a.inArray(d.get(0),this._loaded)>-1||(e.each(a.proxy(function(c,d){var e,f=a(d),g=b.devicePixelRatio>1&&f.attr("data-src-retina")||f.attr("data-src");this._core.trigger("load",{element:f,url:g},"lazy"),f.is("img")?f.one("load.owl.lazy",a.proxy(function(){f.css("opacity",1),this._core.trigger("loaded",{element:f,url:g},"lazy")},this)).attr("src",g):(e=new Image,e.onload=a.proxy(function(){f.css({"background-image":"url("+g+")",opacity:"1"}),this._core.trigger("loaded",{element:f,url:g},"lazy")},this),e.src=g)},this)),this._loaded.push(d.get(0)))},c.prototype.destroy=function(){var a,b;for(a in this.handlers)this._core.$element.off(a,this.handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Lazy=c}(window.Zepto||window.jQuery,window,document),function(a){var b=function(c){this._core=c,this._handlers={"initialized.owl.carousel":
1444a.proxy(function(){this._core.settings.autoHeight&&this.update()},this),"changed.owl.carousel":a.proxy(function(a){this._core.settings.autoHeight&&"position"==a.property.name&&this.update()},this),"loaded.owl.lazy":a.proxy(function(a){this._core.settings.autoHeight&&a.element.closest("."+this._core.settings.itemClass)===this._core.$stage.children().eq(this._core.current())&&this.update()},this)},this._core.options=a.extend({},b.Defaults,this._core.options),this._core.$element.on(this._handlers)};b.Defaults={autoHeight:!1,autoHeightClass:"owl-height"},b.prototype.update=function(){this._core.$stage.parent().height(this._core.$stage.children().eq(this._core.current()).height()).addClass(this._core.settings.autoHeightClass)},b.prototype.destroy=function(){var a,b;for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.AutoHeight=b}(window.Zepto||window.jQuery,window,document),function(a,b,c){var d=function(b){this._core=b,this._videos={},this._playing=null,this._fullscreen=!1,this._handlers={"resize.owl.carousel":a.proxy(function(a){this._core.settings.video&&!this.isInFullScreen()&&a.preventDefault()},this),"refresh.owl.carousel changed.owl.carousel":a.proxy(function(){this._playing&&this.stop()},this),"prepared.owl.carousel":a.proxy(function(b){var c=a(b.content).find(".owl-video");c.length&&(c.css("display","none"),this.fetch(c,a(b.content)))},this)},this._core.options=a.extend({},d.Defaults,this._core.options),this._core.$element.on(this._handlers),this._core.$element.on("click.owl.video",".owl-video-play-icon",a.proxy(function(a){this.play(a)},this))};d.Defaults={video:!1,videoHeight:!1,videoWidth:!1},d.prototype.fetch=function(a,b){var c=a.attr("data-vimeo-id")?"vimeo":"youtube",d=a.attr("data-vimeo-id")||a.attr("data-youtube-id"),e=a.attr("data-width")||this._core.settings.videoWidth,f=a.attr("data-height")||this._core.settings.videoHeight,g=a.attr("href");if(!g)throw new Error("Missing video URL.");if(d=g.match(/(http:|https:|)\/\/(player.|www.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com))\/(video\/|embed\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/),d[3].indexOf("youtu")>-1)c="youtube";else{if(!(d[3].indexOf("vimeo")>-1))throw new Error("Video URL not supported.");c="vimeo"}d=d[6],this._videos[g]={type:c,id:d,width:e,height:f},b.attr("data-video",g),this.thumbnail(a,this._videos[g])},d.prototype.thumbnail=function(b,c){var d,e,f,g=c.width&&c.height?'style="width:'+c.width+"px;height:"+c.height+'px;"':"",h=b.find("img"),i="src",j="",k=this._core.settings,l=function(a){e='<div class="owl-video-play-icon"></div>',d=k.lazyLoad?'<div class="owl-video-tn '+j+'" '+i+'="'+a+'"></div>':'<div class="owl-video-tn" style="opacity:1;background-image:url('+a+')"></div>',b.after(d),b.after(e)};return b.wrap('<div class="owl-video-wrapper"'+g+"></div>"),this._core.settings.lazyLoad&&(i="data-src",j="owl-lazy"),h.length?(l(h.attr(i)),h.remove(),!1):void("youtube"===c.type?(f="http://img.youtube.com/vi/"+c.id+"/hqdefault.jpg",l(f)):"vimeo"===c.type&&a.ajax({type:"GET",url:"http://vimeo.com/api/v2/video/"+c.id+".json",jsonp:"callback",dataType:"jsonp",success:function(a){f=a[0].thumbnail_large,l(f)}}))},d.prototype.stop=function(){this._core.trigger("stop",null,"video"),this._playing.find(".owl-video-frame").remove(),this._playing.removeClass("owl-video-playing"),this._playing=null},d.prototype.play=function(b){this._core.trigger("play",null,"video"),this._playing&&this.stop();var c,d,e=a(b.target||b.srcElement),f=e.closest("."+this._core.settings.itemClass),g=this._videos[f.attr("data-video")],h=g.width||"100%",i=g.height||this._core.$stage.height();"youtube"===g.type?c='<iframe width="'+h+'" height="'+i+'" src="http://www.youtube.com/embed/'+g.id+"?autoplay=1&v="+g.id+'" frameborder="0" allowfullscreen></iframe>':"vimeo"===g.type&&(c='<iframe src="http://player.vimeo.com/video/'+g.id+'?autoplay=1" width="'+h+'" height="'+i+'" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>'),f.addClass("owl-video-playing"),this._playing=f,d=a('<div style="height:'+i+"px; width:"+h+'px" class="owl-video-frame">'+c+"</div>"),e.after(d)},d.prototype.isInFullScreen=function(){var d=c.fullscreenElement||c.mozFullScreenElement||c.webkitFullscreenElement;return d&&a(d).parent().hasClass("owl-video-frame")&&(this._core.speed(0),this._fullscreen=!0),d&&this._fullscreen&&this._playing?!1:this._fullscreen?(this._fullscreen=!1,!1):this._playing&&this._core.state.orientation!==b.orientation?(this._core.state.orientation=b.orientation,!1):!0},d.prototype.destroy=function(){var a,b;this._core.$element.off("click.owl.video");for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Video=d}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this.core=b,this.core.options=a.extend({},e.Defaults,this.core.options),this.swapping=!0,this.previous=d,this.next=d,this.handlers={"change.owl.carousel":
1444a.proxy(function(a){"position"==a.property.name&&(this.previous=this.core.current(),this.next=a.property.value)},this),"drag.owl.carousel dragged.owl.carousel translated.owl.carousel":a.proxy(function(a){this.swapping="translated"==a.type},this),"translate.owl.carousel":a.proxy(function(){this.swapping&&(this.core.options.animateOut||this.core.options.animateIn)&&this.swap()},this)},this.core.$element.on(this.handlers)};e.Defaults={animateOut:!1,animateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&this.core.support3d){this.core.speed(0);var b,c=a.proxy(this.clear,this),d=this.core.$stage.children().eq(this.previous),e=this.core.$stage.children().eq(this.next),f=this.core.settings.animateIn,g=this.core.settings.animateOut;this.core.current()!==this.previous&&(g&&(b=this.core.coordinates(this.previous)-this.core.coordinates(this.next),d.css({left:b+"px"}).addClass("animated owl-animated-out").addClass(g).one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",c)),f&&e.addClass("animated owl-animated-in").addClass(f).one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",c))}},e.prototype.clear=function(b){a(b.target).css({left:""}).removeClass("animated owl-animated-out owl-animated-in").removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut),this.core.transitionEnd()},e.prototype.destroy=function(){var a,b;for(a in this.handlers)this.core.$element.off(a,this.handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Animate=e}(window.Zepto||window.jQuery,window,document),function(a,b,c){var d=function(b){this.core=b,this.core.options=a.extend({},d.Defaults,this.core.options),this.handlers={"translated.owl.carousel refreshed.owl.carousel":a.proxy(function(){this.autoplay()
1445},this),"play.owl.autoplay":a.proxy(function(a,b,c){this.play(b,c)},this),"stop.owl.autoplay":a.proxy(function(){this.stop()},this),"mouseover.owl.autoplay":a.proxy(function(){this.core.settings.autoplayHoverPause&&this.pause()},this),"mouseleave.owl.autoplay":a.proxy(function(){this.core.settings.autoplayHoverPause&&this.autoplay()},this)},this.core.$element.on(this.handlers)};d.Defaults={autoplay:!1,autoplayTimeout:5e3,autoplayHoverPause:!1,autoplaySpeed:!1},d.prototype.autoplay=function(){this.core.settings.autoplay&&!this.core.state.videoPlay?(b.clearInterval(this.interval),this.interval=b.setInterval(a.proxy(function(){this.play()},this),this.core.settings.autoplayTimeout)):b.clearInterval(this.interval)},d.prototype.play=function(){return c.hidden===!0||this.core.state.isTouch||this.core.state.isScrolling||this.core.state.isSwiping||this.core.state.inMotion?void 0:this.core.settings.autoplay===!1?void b.clearInterval(this.interval):void this.core.next(this.core.settings.autoplaySpeed)},d.prototype.stop=function(){b.clearInterval(this.interval)},d.prototype.pause=function(){b.clearInterval(this.interval)},d.prototype.destroy=function(){var a,c;b.clearInterval(this.interval);for(a in this.handlers)this.core.$element.off(a,this.handlers[a]);for(c in Object.getOwnPropertyNames(this))"function"!=typeof this[c]&&(this[c]=null)},a.fn.owlCarousel.Constructor.Plugins.autoplay=d}(window.Zepto||window.jQuery,window,document),function(a){"use strict";var b=function(c){this._core=c,this._initialized=!1,this._pages=[],this._controls={},this._templates=[],this.$element=this._core.$element,this._overrides={next:this._core.next,prev:this._core.prev,to:this._core.to},this._handlers={"prepared.owl.carousel":a.proxy(function(b){this._core.settings.dotsData&&this._templates.push(a(b.content).find("[data-dot]").andSelf("[data-dot]").attr("data-dot"))},this),"add.owl.carousel":a.proxy(function(b){this._core.settings.dotsData&&this._templates.splice(b.position,0,a(b.content).find("[data-dot]").andSelf("[data-dot]").attr("data-dot"))},this),"remove.owl.carousel prepared.owl.carousel":a.proxy(function(a){this._core.settings.dotsData&&this._templates.splice(a.position,1)}
1445,this),"change.owl.carousel":a.proxy(function(a){if("position"==a.property.name&&!this._core.state.revert&&!this._core.settings.loop&&this._core.settings.navRewind){var b=this._core.current(),c=this._core.maximum(),d=this._core.minimum();a.data=a.property.value>c?b>=c?d:c:a.property.value<d?c:a.property.value}},this),"changed.owl.carousel":a.proxy(function(a){"position"==a.property.name&&this.draw()},this),"refreshed.owl.carousel":a.proxy(function(){this._initialized||(this.initialize(),this._initialized=!0),this._core.trigger("refresh",null,"navigation"),this.update(),this.draw(),this._core.trigger("refreshed",null,"navigation")},this)},this._core.options=a.extend({},b.Defaults,this._core.options),this.$element.on(this._handlers)};b.Defaults={nav:!1,navRewind:!0,navText:["prev","next"],navSpeed:!1,navElement:"div",navContainer:!1,navContainerClass:"owl-nav",navClass:["owl-prev","owl-next"],slideBy:1,dotClass:"owl-dot",dotsClass:"owl-dots",dots:!0,dotsEach:!1,dotData:!1,dotsSpeed:!1,dotsContainer:!1,controlsClass:"owl-control
1445s"},b.prototype.initialize=function(){var b,c,d=this._core.settings;d.dotsData||(this._templates=[a("<div>").addClass(d.dotClass).append(a("<span>")).prop("outerHTML")]),d.navContainer&&d.dotsContainer||(this._controls.$container=a("<div>").addClass(d.controlsClass).appendTo(this.$element)),this._controls.$indicators=d.dotsContainer?a(d.dotsContainer):a("<div>").hide().addClass(d.dotsClass).appendTo(this._controls.$container),this._controls.$indicators.on("click","div",a.proxy(function(b){var c=a(b.target).parent().is(this._controls.$indicators)?a(b.target).index():a(b.target).parent().index();b.preventDefault(),this.to(c,d.dotsSpeed)},this)),b=d.navContainer?a(d.navContainer):a("<div>").addClass(d.navContainerClass).prependTo(this._controls.$container),this._controls.$next=a("<"+d.navElement+">"),this._controls.$previous=this._controls.$next.clone(),this._controls.$previous.addClass(d.navClass[0]).html(d.navText[0]).hide().prependTo(b).on("click",a.proxy(function(){this.prev(d.navSpeed)},this)),this._controls.$next.addClass(d.navClass[1]).html(d.navText[1]).hide().appendTo(b).on("click",a.proxy(function(){this.next(d.navSpeed)},this));for(c in this._overrides)this._core[c]=a.proxy(this[c],this)},b.prototype.destroy=function(){var a,b,c,d;for(a in this._handlers)this.$element.off(a,this._handlers[a]);for(b in this._controls)this._controls[b].remove();for(d in this.overides)this._core[d]=this._overrides[d];for(c in Object.getOwnPropertyNames(this))"function"!=typeof this[c]&&(this[c]=null)},b.prototype.update=function(){var a,b,c,d=this._core.settings,e=this._core.clones().length/2,f=e+this._core.items().length,g=d.center||d.autoWidth||d.dotData?1:d.dotsEach||d.items;if("page"!==d.slideBy&&(d.slideBy=Math.min(d.slideBy,d.items)),d.dots||"page"==d.slideBy)for(this._pages=[],a=e,b=0,c=0;f>a;a++)(b>=g||0===b)&&(this._pages.push({start:a-e,end:a-e+g-1}),b=0,++c),b+=this._core.mergers(this._core.relative(a))},b.prototype.draw=function(){var b,c,d="",e=this._core.settings,f=(this._core.$stage.children(),this._core.relative(this._core.current()));if(!e.nav||e.loop||e.navRewind||(this._controls.$previous.toggleClass("disabled",0>=f),this._controls.$next.toggleClass("disabled",f>=this._core.maximum())),this._controls.$previous.toggle(e.nav),this._controls.$next.toggle(e.nav),e.dots){if(b=this._pages.length-this._controls.$indicators.children().length,e.dotData&&0!==b){for(c=0;c<this._controls.$indicators.children().length;c++)d+=this._templates[this._core.relative(c)];this._controls.$indicators.html(d)}else b>0?(d=new Array(b+1).join(this._templates[0]),this._controls.$indicators.append(d)):0>b&&this._controls.$indicators.children().slice(b).remove();this._controls.$indicators.find(".active").removeClass("active"),this._controls.$indicators.children().eq(a.inArray(this.current(),this._pages)).addClass("active")}this._controls.$indicators.toggle(e.dots)},b.prototype.onTrigger=function(b){var c=this._core.settings;b.page={index:a.inArray(this.current(),this._pages),count:this._pages.length,size:c&&(c.center||c.autoWidth||c.dotData?1:c.dotsEach||c.items)}},b.prototype.current=function(){var b=this._core.relative(this._core.current());return a.grep(this._pages,function(a){return a.start<=b&&a.end>=b}).pop()},b.prototype.getPosition=function(b){var c,d,e=this._core.settings;return"page"==e.slideBy?(c=a.inArray(this.current(),this._pages),d=this._pages.length,b?++c:--c,c=this._pages[(c%d+d)%d].start):(c=this._core.relative(this._core.current()),d=this._core.items().length,b?c+=e.slideBy:c-=e.slideBy),c},b.prototype.next=function(b){a.proxy(this._overrides.to,this._core)(this.getPosition(!0),b)},b.prototype.prev=function(b){a.proxy(this._overrides.to,this._core)(this.getPosition(!1),b)},b.prototype.to=function(b,c,d){var e;d?a.proxy(this._overrides.to,this._core)(b,c):(e=this._pages.length,a.proxy(this._overrides.to,this._core)(this._pages[(b%e+e)%e].start,c))},a.fn.owlCarousel.Constructor.Plugins.Navigation=b}(window.Zepto||window.jQuery,window,document),function(a,b){"use strict";var c=function(d){this._core=d,this._hashes={},this.$element=this._core.$element,this._handlers={"initialized.owl.carousel":
vendor: 1,105 bytes, lines 1445-1454
1445a.proxy(function(){"URLHash"==this._core.settings.startPosition&&a(b).trigger("hashchange.owl.navigation")},this),"prepared.owl.carousel":a.proxy(function(b){var c=a(b.content).find("[data-hash]").andSelf("[data-hash]").attr("data-hash");this._hashes[c]=b.content},this)},this._core.options=a.extend({},c.Defaults,this._core.options),this.$element.on(this._handlers),a(b).on("hashchange.owl.navigation",a.proxy(function(){var a=b.location.hash.substring(1),c=this._core.$stage.children(),d=this._hashes[a]&&c.index(this._hashes[a])||0;return a?void this._core.to(d,!1,!0):!1},this))};c.Defaults={URLhashListener:!1},c.prototype.destroy=function(){var c,d;a(b).off("hashchange.owl.navigation");for(c in this._handlers)this._core.$element.off(c,this._handlers[c]);for(d in Object.getOwnPropertyNames(this))"function"!=typeof this[d]&&(this[d]=null)},a.fn.owlCarousel.Constructor.Plugins.Hash=c}(window.Zepto||window.jQuery,window,document);
1446
1447
1448
1449/*! Hammer.JS - v2.0.4 - 2014-09-28
1450 * http://hammerjs.github.io/
1451 *
1452 * Copyright (c) 2014 Jorik Tangelder;
1453 * Licensed under the MIT license */
1454if(Object.create){
vendor: 18,177 bytes, line 1454
1454!function(a,b,c,d){"use strict";function e(a,b,c){return setTimeout(k(a,c),b)}function f(a,b,c){return Array.isArray(a)?(g(a,c[b],c),!0):!1}function g(a,b,c){var e;if(a)if(a.forEach)a.forEach(b,c);else if(a.length!==d)for(e=0;e<a.length;)b.call(c,a[e],e,a),e++;else for(e in a)a.hasOwnProperty(e)&&b.call(c,a[e],e,a)}function h(a,b,c){for(var e=Object.keys(b),f=0;f<e.length;)(!c||c&&a[e[f]]===d)&&(a[e[f]]=b[e[f]]),f++;return a}function i(a,b){return h(a,b,!0)}function j(a,b,c){var d,e=b.prototype;d=a.prototype=Object.create(e),d.constructor=a,d._super=e,c&&h(d,c)}function k(a,b){return function(){return a.apply(b,arguments)}}function l(a,b){return typeof a==kb?a.apply(b?b[0]||d:d,b):a}function m(a,b){return a===d?b:a}function n(a,b,c){g(r(b),function(b){a.addEventListener(b,c,!1)})}function o(a,b,c){g(r(b),function(b){a.removeEventListener(b,c,!1)})}function p(a,b){for(;a;){if(a==b)return!0;a=a.parentNode}return!1}function q(a,b){return a.indexOf(b)>-1}function r(a){return a.trim().split(/\s+/g)}function s(a,b,c){if(a.indexOf&&!c)return a.indexOf(b);for(var d=0;d<a.length;){if(c&&a[d][c]==b||!c&&a[d]===b)return d;d++}return-1}function t(a){return Array.prototype.slice.call(a,0)}function u(a,b,c){for(var d=[],e=[],f=0;f<a.length;){var g=b?a[f][b]:a[f];s(e,g)<0&&d.push(a[f]),e[f]=g,f++}return c&&(d=b?d.sort(function(a,c){return a[b]>c[b]}):d.sort()),d}function v(a,b){for(var c,e,f=b[0].toUpperCase()+b.slice(1),g=0;g<ib.length;){if(c=ib[g],e=c?c+f:b,e in a)return e;g++}return d}function w(){return ob++}function x(a){var b=a.ownerDocument;return b.defaultView||b.parentWindow}function y(a,b){var c=this;this.manager=a,this.callback=b,this.element=a.element,this.target=a.options.inputTarget,this.domHandler=function(b){l(a.options.enable,[a])&&c.handler(b)},this.init()}function z(a){var b,c=a.options.inputClass;return new(b=c?c:rb?N:sb?Q:qb?S:M)(a,A)}function A(a,b,c){var d=c.pointers.length,e=c.changedPointers.length,f=b&yb&&d-e===0,g=b&(Ab|Bb)&&d-e===0;c.isFirst=!!f,c.isFinal=!!g,f&&(a.session={}),c.eventType=b,B(a,c),a.emit("hammer.input",c),a.recognize(c),a.session.prevInput=c}function B(a,b){var c=a.session,d=b.pointers,e=d.length;c.firstInput||(c.firstInput=E(b)),e>1&&!c.firstMultiple?c.firstMultiple=E(b):1===e&&(c.firstMultiple=!1);var f=c.firstInput,g=c.firstMultiple,h=g?g.center:f.center,i=b.center=F(d);b.timeStamp=nb(),b.deltaTime=b.timeStamp-f.timeStamp,b.angle=J(h,i),b.distance=I(h,i),C(c,b),b.offsetDirection=H(b.deltaX,b.deltaY),b.scale=g?L(g.pointers,d):1,b.rotation=g?K(g.pointers,d):0,D(c,b);var j=a.element;p(b.srcEvent.target,j)&&(j=b.srcEvent.target),b.target=j}function C(a,b){var c=b.center,d=a.offsetDelta||{},e=a.prevDelta||{},f=a.prevInput||{};(b.eventType===yb||f.eventType===Ab)&&(e=a.prevDelta={x:f.deltaX||0,y:f.deltaY||0},d=a.offsetDelta={x:c.x,y:c.y}),b.deltaX=e.x+(c.x-d.x),b.deltaY=e.y+(c.y-d.y)}function D(a,b){var c,e,f,g,h=a.lastInterval||b,i=b.timeStamp-h.timeStamp;if(b.eventType!=Bb&&(i>xb||h.velocity===d)){var j=h.deltaX-b.deltaX,k=h.deltaY-b.deltaY,l=G(i,j,k);e=l.x,f=l.y,c=mb(l.x)>mb(l.y)?l.x:l.y,g=H(j,k),a.lastInterval=b}else c=h.velocity,e=h.velocityX,f=h.velocityY,g=h.direction;b.velocity=c,b.velocityX=e,b.velocityY=f,b.direction=g}function E(a){for(var b=[],c=0;c<a.pointers.length;)b[c]={clientX:lb(a.pointers[c].clientX),clientY:lb(a.pointers[c].clientY)},c++;return{timeStamp:nb(),pointers:b,center:F(b),deltaX:a.deltaX,deltaY:a.deltaY}}function F(a){var b=a.length;if(1===b)return{x:lb(a[0].clientX),y:lb(a[0].clientY)};for(var c=0,d=0,e=0;b>e;)c+=a[e].clientX,d+=a[e].clientY,e++;return{x:lb(c/b),y:lb(d/b)}}function G(a,b,c){return{x:b/a||0,y:c/a||0}}function H(a,b){return a===b?Cb:mb(a)>=mb(b)?a>0?Db:Eb:b>0?Fb:Gb}function I(a,b,c){c||(c=Kb);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return Math.sqrt(d*d+e*e)}function J(a,b,c){c||(c=Kb);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*Math.atan2(e,d)/Math.PI}function K(a,b){return J(b[1],b[0],Lb)-J(a[1],a[0],Lb)}function L(a,b){return I(b[0],b[1],Lb)/I(a[0],a[1],Lb)}function M(){this.evEl=Nb,this.evWin=Ob,this.allow=!0,this.pressed=!1,y.apply(this,arguments)}function N(){this.evEl=Rb,this.evWin=Sb,y.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function O(){this.evTarget=Ub,this.evWin=Vb,this.started=!1,y.apply(this,arguments)}function P(a,b){var c=t(a.touches),d=t(a.changedTouches);return b&(Ab|Bb)&&(c=u(c.concat(d),"identifier",!0)),[c,d]}function Q(){this.evTarget=Xb,this.targetIds={},y.apply(this,arguments)}function R(a,b){var c=t(a.touches),d=this.targetIds;if(b&(yb|zb)&&1===c.length)return d[c[0].identifier]=!0,[c,c];var e,f,g=t(a.changedTouches),h=[],i=this.target;if(f=c.filter(function(a){return p(a.target,i)}),b===yb)for(e=0;e<f.length;)d[f[e].identifier]=!0,e++;for(e=0;e<g.length;)d[g[e].identifier]&&h.push(g[e]),b&(Ab|Bb)&&delete d[g[e].identifier],e++;return h.length?[u(f.concat(h),"identifier",!0),h]:void 0}function S(){y.apply(this,arguments);var a=k(this.handler,this);this.touch=new Q(this.manager,a),this.mouse=new M(this.manager,a)}function T(a,b){this.manager=a,this.set(b)}function U(a){if(q(a,bc))return bc;var b=q(a,cc),c=q(a,dc);return b&&c?cc+" "+dc:b||c?b?cc:dc:q(a,ac)?ac:_b}function V(a){this.id=w(),this.manager=null,this.options=i(a||{},this.defaults),this.options.enable=m(this.options.enable,!0),this.state=ec,this.simultaneous={},this.requireFail=[]}function W(a){return a&jc?"cancel":a&hc?"end":a&gc?"move":a&fc?"start":""}function X(a){return a==Gb?"down":a==Fb?"up":a==Db?"left":a==Eb?"right":""}function Y(a,b){var c=b.manager;return c?c.get(a):a}function Z(){V.apply(this,arguments)}function $(){Z.apply(this,arguments),this.pX=null,this.pY=null}function _(){Z.apply(this,arguments)}function ab(){V.apply(this,arguments),this._timer=null,this._input=null}function bb(){Z.apply(this,arguments)}function cb(){Z.apply(this,arguments)}function db(){V.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function eb(a,b){return b=b||{},b.recognizers=m(b.recognizers,eb.defaults.preset),new fb(a,b)}function fb(a,b){b=b||{},this.options=i(b,eb.defaults),this.options.inputTarget=this.options.inputTarget||a,this.handlers={},this.session={},this.recognizers=[],this.element=a,this.input=z(this),this.touchAction=new T(this,this.options.touchAction),gb(this,!0),g(b.recognizers,function(a){var b=this.add(new a[0](a[1]));a[2]&&b.recognizeWith(a[2]),a[3]&&b.requireFailure(a[3])},this)}function gb(a,b){var c=a.element;g(a.options.cssProps,function(a,d){c.style[v(c.style,d)]=b?a:""})}function hb(a,c){var d=b.createEvent("Event");d.initEvent(a,!0,!0),d.gesture=c,c.target.dispatchEvent(d)}var ib=["","webkit","moz","MS","ms","o"],jb=b.createElement("div"),kb="function",lb=Math.round,mb=Math.abs,nb=Date.now,ob=1,pb=/mobile|tablet|ip(ad|hone|od)|android/i,qb="ontouchstart"in a,rb=v(a,"PointerEvent")!==d,sb=qb&&pb.test(navigator.userAgent),tb="touch",ub="pen",vb="mouse",wb="kinect",xb=25,yb=1,zb=2,Ab=4,Bb=8,Cb=1,Db=2,Eb=4,Fb=8,Gb=16,Hb=Db|Eb,Ib=Fb|Gb,Jb=Hb|Ib,Kb=["x","y"],Lb=["clientX","clientY"];y.prototype={handler:function(){},init:function(){this.evEl&&n(this.element,this.evEl,this.domHandler),this.evTarget&&n(this.target,this.evTarget,this.domHandler),this.evWin&&n(x(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&o(this.element,this.evEl,this.domHandler),this.evTarget&&o(this.target,this.evTarget,this.domHandler),this.evWin&&o(x(this.element),this.evWin,this.domHandler)}};var Mb={mousedown:yb,mousemove:zb,mouseup:Ab},Nb="mousedown",Ob="mousemove mouseup";j(M,y,{handler:function(a){var b=Mb[a.type];b&yb&&0===a.button&&(this.pressed=!0),b&zb&&1!==a.which&&(b=Ab),this.pressed&&this.allow&&(b&Ab&&(this.pressed=!1),this.callback(this.manager,b,{pointers:[a],changedPointers:[a],pointerType:vb,srcEvent:a}))}});var Pb={pointerdown:yb,pointermove:zb,pointerup:Ab,pointercancel:Bb,pointerout:Bb},Qb={2:tb,3:ub,4:vb,5:wb},Rb="pointerdown",Sb="pointermove pointerup pointercancel";a.MSPointerEvent&&(Rb="MSPointerDown",Sb="MSPointerMove MSPointerUp MSPointerCancel"),j(N,y,{handler:function(a){var b=this.store,c=!1,d=a.type.toLowerCase().replace("ms",""),e=Pb[d],f=Qb[a.pointerType]||a.pointerType,g=f==tb,h=s(b,a.pointerId,"pointerId");e&yb&&(0===a.button||g)?0>h&&(b.push(a),h=b.length-1):e&(Ab|Bb)&&(c=!0),0>h||(b[h]=a,this.callback(this.manager,e,{pointers:b,changedPointers:[a],pointerType:f,srcEvent:a}),c&&b.splice(h,1))}});var Tb={touchstart:yb,touchmove:zb,touchend:Ab,touchcancel:Bb},Ub="touchstart",Vb="touchstart touchmove touchend touchcancel";j(O,y,{handler:function(a){var b=Tb[a.type];if(b===yb&&(this.started=!0),this.started){var c=P.call(this,a,b);b&(Ab|Bb)&&c[0].length-c[1].length===0&&(this.started=!1),this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:tb,srcEvent:a})}}});var Wb={touchstart:yb,touchmove:zb,touchend:Ab,touchcancel:Bb},Xb="touchstart touchmove touchend touchcancel";j(Q,y,{handler:function(a){var b=Wb[a.type],c=R.call(this,a,b);c&&this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:tb,srcEvent:a})}}),j(S,y,{handler:function(a,b,c){var d=c.pointerType==tb,e=c.pointerType==vb;if(d)this.mouse.allow=!1;else if(e&&!this.mouse.allow)return;b&(Ab|Bb)&&(this.mouse.allow=!0),this.callback(a,b,c)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var Yb=v(jb.style,"touchAction"),Zb=Yb!==d,$b="compute",_b="auto",ac="manipulation",bc="none",cc="pan-x",dc="pan-y";T.prototype={set:function(a){a==$b&&(a=this.compute()),Zb&&(this.manager.element.style[Yb]=a),this.actions=a.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var a=[];return g(this.manager.recognizers,function(b){l(b.options.enable,[b])&&(a=a.concat(b.getTouchAction()))}),U(a.join(" "))},preventDefaults:function(a){if(!Zb){var b=a.srcEvent,c=a.offsetDirection;if(this.manager.session.prevented)return void b.preventDefault();var d=this.actions,e=q(d,bc),f=q(d,dc),g=q(d,cc);return e||f&&c&Hb||g&&c&Ib?this.preventSrc(b):void 0}},preventSrc:function(a){this.manager.session.prevented=!0,a.preventDefault()}};var ec=1,fc=2,gc=4,hc=8,ic=hc,jc=16,kc=32;V.prototype={defaults:{},set:function(a){return h(this.options,a),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(a){if(f(a,"recognizeWith",this))return this;var b=this.simultaneous;return a=Y(a,this),b[a.id]||(b[a.id]=a,a.recognizeWith(this)),this},dropRecognizeWith:function(a){return f(a,"dropRecognizeWith",this)?this:(a=Y(a,this),delete this.simultaneous[a.id],this)},requireFailure:function(a){if(f(a,"requireFailure",this))return this;var b=this.requireFail;return a=Y(a,this),-1===s(b,a)&&(b.push(a),a.requireFailure(this)),this},dropRequireFailure:function(a){if(f(a,"dropRequireFailure",this))return this;a=Y(a,this);var b=s(this.requireFail,a);return b>-1&&this.requireFail.splice(b,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(a){return!!this.simultaneous[a.id]},emit:function(a){function b(b){c.manager.emit(c.options.event+(b?W(d):""),a)}var c=this,d=this.state;hc>d&&b(!0),b(),d>=hc&&b(!0)},tryEmit:function(a){return this.canEmit()?this.emit(a):void(this.state=kc)},canEmit:function(){for(var a=0;a<this.requireFail.length;){if(!(this.requireFail[a].state&(kc|ec)))return!1;a++}return!0},recognize:function(a){var b=h({},a);return l(this.options.enable,[this,b])?(this.state&(ic|jc|kc)&&(this.state=ec),this.state=this.process(b),void(this.state&(fc|gc|hc|jc)&&this.tryEmit(b))):(this.reset(),void(this.state=kc))},process:function(){},getTouchAction:function(){},reset:function(){}},j(Z,V,{defaults:{pointers:1},attrTest:function(a){var b=this.options.pointers;return 0===b||a.pointers.length===b},process:function(a){var b=this.state,c=a.eventType,d=b&(fc|gc),e=this.attrTest(a);return d&&(c&Bb||!e)?b|jc:d||e?c&Ab?b|hc:b&fc?b|gc:fc:kc}}),j($,Z,{defaults:{event:"pan",threshold:10,pointers:1,direction:Jb},getTouchAction:function(){var a=this.options.direction,b=[];return a&Hb&&b.push(dc),a&Ib&&b.push(cc),b},directionTest:function(a){var b=this.options,c=!0,d=a.distance,e=a.direction,f=a.deltaX,g=a.deltaY;return e&b.direction||(b.direction&Hb?(e=0===f?Cb:0>f?Db:Eb,c=f!=this.pX,d=Math.abs(a.deltaX)):(e=0===g?Cb:0>g?Fb:Gb,c=g!=this.pY,d=Math.abs(a.deltaY))),a.direction=e,c&&d>b.threshold&&e&b.direction},attrTest:function(a){return Z.prototype.attrTest.call(this,a)&&(this.state&fc||!(this.state&fc)&&this.directionTest(a))},emit:function(a){this.pX=a.deltaX,this.pY=a.deltaY;var b=X(a.direction);b&&this.manager.emit(this.options.event+b,a),this._super.emit.call(this,a)}}),j(_,Z,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[bc]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.scale-1)>this.options.threshold||this.state&fc)},emit:function(a){if(this._super.emit.call(this,a),1!==a.scale){var b=a.scale<1?"in":"out";this.manager.emit(this.options.event+b,a)}}}),j(ab,V,{defaults:{event:"press",pointers:1,time:500,threshold:5},getTouchAction:function(){return[_b]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,f=a.deltaTime>b.time;if(this._input=a,!d||!c||a.eventType&(Ab|Bb)&&!f)this.reset();else if(a.eventType&yb)this.reset(),this._timer=e(function(){this.state=ic,this.tryEmit()},b.time,this);else if(a.eventType&Ab)return ic;return kc},reset:function(){clearTimeout(this._timer)},emit:function(a){this.state===ic&&(a&&a.eventType&Ab?this.manager.emit(this.options.event+"up",a):(this._input.timeStamp=nb(),this.manager.emit(this.options.event,this._input)))}}),j(bb,Z,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[bc]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.rotation)>this.options.threshold||this.state&fc)}}),j(cb,Z,{defaults:{event:"swipe",threshold:10,velocity:.65,direction:Hb|Ib,pointers:1},getTouchAction:function(){return $.prototype.getTouchAction.call(this)},attrTest:function(a){var b,c=this.options.direction;return c&(Hb|Ib)?b=a.velocity:c&Hb?b=a.velocityX:c&Ib&&(b=a.velocityY),this._super.attrTest.call(this,a)&&c&a.direction&&a.distance>this.options.threshold&&mb(b)>this.options.velocity&&a.eventType&Ab},emit:function(a){var b=X(a.direction);b&&this.manager.emit(this.options.event+b,a),this.manager.emit(this.options.event,a)}}),j(db,V,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:2,posThreshold:10},getTouchAction:function(){return[ac]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,f=a.deltaTime<b.time;if(this.reset(),a.eventType&yb&&0===this.count)return this.failTimeout();if(d&&f&&c){if(a.eventType!=Ab)return this.failTimeout();var g=this.pTime?a.timeStamp-this.pTime<b.interval:!0,h=!this.pCenter||I(this.pCenter,a.center)<b.posThreshold;this.pTime=a.timeStamp,this.pCenter=a.center,h&&g?this.count+=1:this.count=1,this._input=a;var i=this.count%b.taps;if(0===i)return this.hasRequireFailures()?(this._timer=e(function(){this.state=ic,this.tryEmit()},b.interval,this),fc):ic}return kc},failTimeout:function(){return this._timer=e(function(){this.state=kc},this.options.interval,this),kc},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==ic&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),eb.VERSION="2.0.4",eb.defaults={domEvents:!1,touchAction:$b,enable:!0,inputTarget:null,inputClass:null,preset:[[bb,{enable:!1}],[_,{enable:!1},["rotate"]],[cb,{direction:Hb}],[$,{direction:Hb},["swipe"]],[db],[db,{event:"doubletap",taps:2},["tap"]],[ab]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};var lc=1,mc=2;fb.prototype={set:function(a){return h(this.options,a),a.touchAction&&this.touchAction.update(),a.inputTarget&&(this.input.destroy(),this.input.target=a.inputTarget,this.input.init()),this},stop:function(a){this.session.stopped=a?mc:lc},recognize:function(a){var b=this.session;if(!b.stopped){this.touchAction.preventDefaults(a);var c,d=this.recognizers,e=b.curRecognizer;(!e||e&&e.state&ic)&&(e=b.curRecognizer=null);for(var f=0;f<d.length;)c=d[f],b.stopped===mc||e&&c!=e&&!c.canRecognizeWith(e)?c.reset():c.recognize(a),!e&&c.state&(fc|gc|hc)&&(e=b.curRecognizer=c),f++}},get:function(a){if(a instanceof V)return a;for(var b=this.recognizers,c=0;c<b.length;c++)if(b[c].options.event==a)return b[c];return null},add:function(a){if(f(a,"add",this))return this;var b=this.get(a.options.event);return b&&this.remove(b),this.recognizers.push(a),a.manager=this,this.touchAction.update(),a},remove:function(a){if(f(a,"remove",this))return this;var b=this.recognizers;return a=this.get(a),b.splice(s(b,a),1),this.touchAction.update(),this},on:function(a,b){var c=this.handlers;return g(r(a),function(a){c[a]=c[a]||[],c[a].push(b)}),this},off:function(a,b){var c=this.handlers;return g(r(a),function(a){b?c[a].splice(s(c[a],b),1):delete c[a]}),this},emit:function(a,b){this.options.domEvents&&hb(a,b);var c=this.handlers[a]&&this.handlers[a].slice();if(c&&c.length){b.type=a,b.preventDefault=function(){b.srcEvent.preventDefault()};for(var d=0;d<c.length;)c[d](b),d++}},destroy:function(){this.element&&gb(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},h(eb,{INPUT_START:yb,INPUT_MOVE:zb,INPUT_END:Ab,INPUT_CANCEL:Bb,STATE_POSSIBLE:ec,STATE_BEGAN:fc,STATE_CHANGED:gc,STATE_ENDED:hc,STATE_RECOGNIZED:ic,STATE_CANCELLED:jc,STATE_FAILED:kc,DIRECTION_NONE:Cb,DIRECTION_LEFT:Db,DIRECTION_RIGHT:Eb,DIRECTION_UP:Fb,DIRECTION_DOWN:Gb,DIRECTION_HORIZONTAL:Hb,DIRECTION_VERTICAL:Ib,DIRECTION_ALL:Jb,Manager:fb,Input:y,TouchAction:T,TouchInput:Q,MouseInput:M,PointerEventInput:N,TouchMouseInput:S,SingleTouchInput:O,Recognizer:V,AttrRecognizer:Z,Tap:db,Pan:$,Swipe:cb,Pinch:_,Rotate:bb,Press:ab,on:n,off:o,each:g,merge:i,extend:h,inherit:j,bindFn:k,prefixed:v}),typeof define==kb&&define.amd?define(function(){return eb}):"undefined"!=typeof module&&module.exports?module.exports=eb:a[c]=eb}(window,document,"Hammer");
1454}
1455

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.