PageSourceSearch

https://www.postgraduate-master.at/js/jquery.main.js

js postgraduate-master.at collected 2026-10-07 23:57:04 UTC 105,902 bytes, 1,849 lines download raw bytes

1jQuery(window).on('load', function() {
2	initOpenClose();
3	initFitVids();
4	initCustomForms();
5	initSlickCarousel();
6	initDotDotDot();
7});
8
9
10// open-close init
11function initOpenClose() {
12	ResponsiveHelper.addRange({
13		'..1023': {
14			on: function() {
15				jQuery('.open-close').openClose({
16					activeClass: 'outer-active',
17					opener: '.outer-opener',
18					slider: '.outer-slide',
19					animSpeed: 400,
20					effect: 'slide'
21				});
22			},
23			off: function() {
24				jQuery('.open-close').openClose('destroy');
25			}
26		}
27	});
28
29	jQuery('.inner-open-close').openClose({
30		activeClass: 'inner-active',
31		opener: '.inner-opener',
32		slider: '.inner-slide',
33		activeClass: 'active',
34		animSpeed: 400,
35		effect: 'none',
36
37		onInit: function(self) {
38			var items = self.holder.find('.sidebar-menu li');
39			var instance = self.holder.data('OpenClose');
40
41			items.each( function() {
42				var item = jQuery(this);
43
44
45				if(item.hasClass(self.options.activeClass) && !(self.holder.hasClass(self.options.activeClass))) {
46					self.showSlide();
47				}
48			});
49
50		}
51	});
52}
53
54// handle flexible video size
55function initFitVids() {
56	jQuery('.video-holder').fitVids();
57}
58
59// initialize custom form elements
60function initCustomForms() {
61	jcf.setOptions('Select', {
62		wrapNative: false,
63		multipleCompactStyle: true
64	});
65	jcf.replaceAll();
66}
67
68// slick init
69function initSlickCarousel() {
70	jQuery('.news-slider').slick({
71		slidesToScroll: 1,
72		slidesToShow: 3,
73		prevArrow: '<button class="slick-prev icon-arrow-left"></button>',
74		nextArrow: '<button class="slick-next icon-arrow-right"></button>',
75		pauseOnHover: false,
76		responsive: [
77		{
78			breakpoint: 768,
79			settings: {
80				slidesToShow: 2
81			}
82		},
83		{
84			breakpoint: 600,
85			settings: {
86				slidesToShow: 1
87			}
88		}
89		]
90	});
91}
92
93function initDotDotDot(){
94	jQuery('.news-content').each(function(){
95		var block = jQuery(this);
96		var lineHeight = parseInt(block.css('line-height'), 10);
97		var rowQuantity = 3;
98
99		block.dotdotdot({
100			height : lineHeight * rowQuantity,
101			after: 'a.read-more'
102		});
103	});
104}
105
106/*
107 * jQuery Open/Close plugin
108 */
109 ;(function($) {
110 	function OpenClose(options) {
111 		this.options = $.extend({
112 			addClassBeforeAnimation: true,
113 			hideOnClickOutside: false,
114 			activeClass: 'active',
115 			opener: '.opener',
116 			slider: '.slide',
117 			animSpeed: 400,
118 			effect: 'fade',
119 			event: 'click'
120 		}, options);
121 		this.init();
122 	}
123 	OpenClose.prototype = {
124 		init: function() {
125 			if (this.options.holder) {
126 				this.findElements();
127 				this.attachEvents();
128 				this.makeCallback('onInit', this);
129 			}
130 		},
131 		findElements: function() {
132 			this.holder = $(this.options.holder);
133 			this.opener = this.holder.find(this.options.opener);
134 			this.slider = this.holder.find(this.options.slider);
135 		},
136 		attachEvents: function() {
137			// add handler
138			var self = this;
139			this.eventHandler = function(e) {
140				e.preventDefault();
141				if (self.slider.hasClass(slideHiddenClass)) {
142					self.showSlide();
143				} else {
144					self.hideSlide();
145				}
146			};
147			self.opener.on(self.options.event, this.eventHandler);
148
149			// hover mode handler
150			if (self.options.event === 'hover') {
151				self.opener.on('mouseenter', function() {
152					if (!self.holder.hasClass(self.options.activeClass)) {
153						self.showSlide();
154					}
155				});
156				self.holder.on('mouseleave', function() {
157					self.hideSlide();
158				});
159			}
160
161			// outside click handler
162			self.outsideClickHandler = function(e) {
163				if (self.options.hideOnClickOutside) {
164					var target = $(e.target);
165					if (!target.is(self.holder) && !target.closest(self.holder).length) {
166						self.hideSlide();
167					}
168				}
169			};
170
171			// set initial styles
172			if (this.holder.hasClass(this.options.activeClass)) {
173				$(document).on('click touchstart', self.outsideClickHandler);
174			} else {
175				this.slider.addClass(slideHiddenClass);
176			}
177		},
178		showSlide: function() {
179			var self = this;
180			if (self.options.addClassBeforeAnimation) {
181				self.holder.addClass(self.options.activeClass);
182			}
183			self.slider.removeClass(slideHiddenClass);
184			$(document).on('click touchstart', self.outsideClickHandler);
185
186			self.makeCallback('animStart', true);
187			toggleEffects[self.options.effect].show({
188				box: self.slider,
189				speed: self.options.animSpeed,
190				complete: function() {
191					if (!self.options.addClassBeforeAnimation) {
192						self.holder.addClass(self.options.activeClass);
193					}
194					self.makeCallback('animEnd', true);
195				}
196			});
197		},
198		hideSlide: function() {
199			var self = this;
200			if (self.options.addClassBeforeAnimation) {
201				self.holder.removeClass(self.options.activeClass);
202			}
203			$(document).off('click touchstart', self.outsideClickHandler);
204
205			self.makeCallback('animStart', false);
206			toggleEffects[self.options.effect].hide({
207				box: self.slider,
208				speed: self.options.animSpeed,
209				complete: function() {
210					if (!self.options.addClassBeforeAnimation) {
211						self.holder.removeClass(self.options.activeClass);
212					}
213					self.slider.addClass(slideHiddenClass);
214					self.makeCallback('animEnd', false);
215				}
216			});
217		},
218		destroy: function() {
219			this.slider.removeClass(slideHiddenClass).css({
220				display: ''
221			});
222			this.opener.off(this.options.event, this.eventHandler);
223			this.holder.removeClass(this.options.activeClass).removeData('OpenClose');
224			$(document).off('click touchstart', this.outsideClickHandler);
225		},
226		makeCallback: function(name) {
227			if (typeof this.options[name] === 'function') {
228				var args = Array.prototype.slice.call(arguments);
229				args.shift();
230				this.options[name].apply(this, args);
231			}
232		}
233	};
234
235	// add stylesheet for slide on DOMReady
236	var slideHiddenClass = 'js-slide-hidden';
237	(function() {
238		var tabStyleSheet = $('<style type="text/css">')[0];
239		var tabStyleRule = '.' + slideHiddenClass;
240		tabStyleRule += '{position:absolute !important;left:-9999px !important;top:-9999px !important;display:block !important}';
241		if (tabStyleSheet.styleSheet) {
242			tabStyleSheet.styleSheet.cssText = tabStyleRule;
243		} else {
244			tabStyleSheet.appendChild(document.createTextNode(tabStyleRule));
245		}
246		$('head').append(tabStyleSheet);
247	}());
248
249	// animation effects
250	var toggleEffects = {
251		slide: {
252			show: function(o) {
253				o.box.stop(true).hide().slideDown(o.speed, o.complete);
254			},
255			hide: function(o) {
256				o.box.stop(true).slideUp(o.speed, o.complete);
257			}
258		},
259		fade: {
260			show: function(o) {
261				o.box.stop(true).hide().fadeIn(o.speed, o.complete);
262			},
263			hide: function(o) {
264				o.box.stop(true).fadeOut(o.speed, o.complete);
265			}
266		},
267		none: {
268			show: function(o) {
269				o.box.hide().show(0, o.complete);
270			},
271			hide: function(o) {
272				o.box.hide(0, o.complete);
273			}
274		}
275	};
276
277	// jQuery plugin interface
278	$.fn.openClose = function(opt) {
279		var args = Array.prototype.slice.call(arguments);
280		var method = args[0];
281
282		return this.each(function() {
283			var $holder = jQuery(this);
284			var instance = $holder.data('OpenClose');
285
286			if (typeof opt === 'object' || typeof opt === 'undefined') {
287				$holder.data('OpenClose', new OpenClose($.extend({
288					holder: this
289				}, opt)));
290			} else if (typeof method === 'string' && instance) {
291				if (typeof instance[method] === 'function') {
292					args.shift();
293					instance[method].apply(instance, args);
294				}
295			}
296		});
297	};
298}(jQuery));
299
300/*
301 * Responsive Layout helper
302 */
303 window.ResponsiveHelper = (function($){
304	// init variables
305	var handlers = [],
306	prevWinWidth,
307	win = $(window),
308	nativeMatchMedia = false;
309
310	// detect match media support
311	if(window.matchMedia) {
312		if(window.Window && window.matchMedia === Window.prototype.matchMedia) {
313			nativeMatchMedia = true;
314		} else if(window.matchMedia.toString().indexOf('native') > -1) {
315			nativeMatchMedia = true;
316		}
317	}
318
319	// prepare resize handler
320	function resizeHandler() {
321		var winWidth = win.width();
322		if(winWidth !== prevWinWidth) {
323			prevWinWidth = winWidth;
324
325			// loop through range groups
326			$.each(handlers, function(index, rangeObject){
327				// disable current active area if needed
328				$.each(rangeObject.data, function(property, item) {
329					if(item.currentActive && !matchRange(item.range[0], item.range[1])) {
330						item.currentActive = false;
331						if(typeof item.disableCallback === 'function') {
332							item.disableCallback();
333						}
334					}
335				});
336
337				// enable areas that match current width
338				$.each(rangeObject.data, function(property, item) {
339					if(!item.currentActive && matchRange(item.range[0], item.range[1])) {
340						// make callback
341						item.currentActive = true;
342						if(typeof item.enableCallback === 'function') {
343							item.enableCallback();
344						}
345					}
346				});
347			});
348		}
349	}
350	win.bind('load resize orientationchange', resizeHandler);
351
352	// test range
353	function matchRange(r1, r2) {
354		var mediaQueryString = '';
355		if(r1 > 0) {
356			mediaQueryString += '(min-width: ' + r1 + 'px)';
357		}
358		if(r2 < Infinity) {
359			mediaQueryString += (mediaQueryString ? ' and ' : '') + '(max-width: ' + r2 + 'px)';
360		}
361		return matchQuery(mediaQueryString, r1, r2);
362	}
363
364	// media query function
365	function matchQuery(query, r1, r2) {
366		if(window.matchMedia && nativeMatchMedia) {
367			return matchMedia(query).matches;
368		} else if(window.styleMedia) {
369			return styleMedia.matchMedium(query);
370		} else if(window.media) {
371			return media.matchMedium(query);
372		} else {
373			return prevWinWidth >= r1 && prevWinWidth <= r2;
374		}
375	}
376
377	// range parser
378	function parseRange(rangeStr) {
379		var rangeData = rangeStr.split('..');
380		var x1 = parseInt(rangeData[0], 10) || -Infinity;
381		var x2 = parseInt(rangeData[1], 10) || Infinity;
382		return [x1, x2].sort(function(a, b){
383			return a - b;
384		});
385	}
386
387	// export public functions
388	return {
389		addRange: function(ranges) {
390			// parse data and add items to collection
391			var result = {data:{}};
392			$.each(ranges, function(property, data){
393				result.data[property] = {
394					range: parseRange(property),
395					enableCallback: data.on,
396					disableCallback: data.off
397				};
398			});
399			handlers.push(result);
400
401			// call resizeHandler to recalculate all events
402			prevWinWidth = null;
403			resizeHandler();
404		}
405	};
406}(jQuery));
407
408/*!
409 * JavaScript Custom Forms
410 *
411 * Copyright 2014-2015 PSD2HTML - http://psd2html.com/jcf
412 * Released under the MIT license (LICENSE.txt)
413 *
414 * Version: 1.1.3
415 */
416 ;(function(root, factory) {
417 	'use strict';
418 	if (typeof define === 'function' && define.amd) {
419 		define(['jquery'], factory);
420 	} else if (typeof exports === 'object') {
421 		module.exports = factory(require('jquery'));
422 	} else {
423 		root.jcf = factory(jQuery);
424 	}
425 }(this, function($) {
426 	'use strict';
427
428	// define version
429	var version = '1.1.3';
430
431	// private variables
432	var customInstances = [];
433
434	// default global options
435	var commonOptions = {
436		optionsKey: 'jcf',
437		dataKey: 'jcf-instance',
438		rtlClass: 'jcf-rtl',
439		focusClass: 'jcf-focus',
440		pressedClass: 'jcf-pressed',
441		disabledClass: 'jcf-disabled',
442		hiddenClass: 'jcf-hidden',
443		resetAppearanceClass: 'jcf-reset-appearance',
444		unselectableClass: 'jcf-unselectable'
445	};
446
447	// detect device type
448	var isTouchDevice = ('ontouchstart' in window) || window.DocumentTouch && document instanceof window.DocumentTouch,
449	isWinPhoneDevice = /Windows Phone/.test(navigator.userAgent);
450	commonOptions.isMobileDevice = !!(isTouchDevice || isWinPhoneDevice);
451	
452	var isIOS = /(iPad|iPhone).*OS ([0-9_]*) .*/.exec(navigator.userAgent);
453	if(isIOS) isIOS = parseFloat(isIOS[2].replace(/_/g, '.'));
454	commonOptions.ios = isIOS;
455
456	// create global stylesheet if custom forms are used
457	var createStyleSheet = function() {
458		var styleTag = $('<style>').appendTo('head'),
459		styleSheet = styleTag.prop('sheet') || styleTag.prop('styleSheet');
460
461		// crossbrowser style handling
462		var addCSSRule = function(selector, rules, index) {
463			if (styleSheet.insertRule) {
464				styleSheet.insertRule(selector + '{' + rules + '}', index);
465			} else {
466				styleSheet.addRule(selector, rules, index);
467			}
468		};
469
470		// add special rules
471		addCSSRule('.' + commonOptions.hiddenClass, 'position:absolute !important;left:-9999px !important;height:1px !important;width:1px !important;margin:0 !important;border-width:0 !important;-webkit-appearance:none;-moz-appearance:none;appearance:none');
472		addCSSRule('.' + commonOptions.rtlClass + ' .' + commonOptions.hiddenClass, 'right:-9999px !important; left: auto !important');
473		addCSSRule('.' + commonOptions.unselectableClass, '-webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; -webkit-tap-highlight-color: rgba(0,0,0,0);');
474		addCSSRule('.' + commonOptions.resetAppearanceClass, 'background: none; border: none; -webkit-appearance: none; appearance: none; opacity: 0; filter: alpha(opacity=0);');
475
476		// detect rtl pages
477		var html = $('html'), body = $('body');
478		if (html.css('direction') === 'rtl' || body.css('direction') === 'rtl') {
479			html.addClass(commonOptions.rtlClass);
480		}
481
482		// handle form reset event
483		html.on('reset', function() {
484			setTimeout(function() {
485				api.refreshAll();
486			}, 0);
487		});
488
489		// mark stylesheet as created
490		commonOptions.styleSheetCreated = true;
491	};
492
493	// simplified pointer events handler
494	(function() {
495		var pointerEventsSupported = navigator.pointerEnabled || navigator.msPointerEnabled,
496		touchEventsSupported = ('ontouchstart' in window) || window.DocumentTouch && document instanceof window.DocumentTouch,
497		eventList, eventMap = {}, eventPrefix = 'jcf-';
498
499		// detect events to attach
500		if (pointerEventsSupported) {
501			eventList = {
502				pointerover: navigator.pointerEnabled ? 'pointerover' : 'MSPointerOver',
503				pointerdown: navigator.pointerEnabled ? 'pointerdown' : 'MSPointerDown',
504				pointermove: navigator.pointerEnabled ? 'pointermove' : 'MSPointerMove',
505				pointerup: navigator.pointerEnabled ? 'pointerup' : 'MSPointerUp'
506			};
507		} else {
508			eventList = {
509				pointerover: 'mouseover',
510				pointerdown: 'mousedown' + (touchEventsSupported ? ' touchstart' : ''),
511				pointermove: 'mousemove' + (touchEventsSupported ? ' touchmove' : ''),
512				pointerup: 'mouseup' + (touchEventsSupported ? ' touchend' : '')
513			};
514		}
515
516		// create event map
517		$.each(eventList, function(targetEventName, fakeEventList) {
518			$.each(fakeEventList.split(' '), function(index, fakeEventName) {
519				eventMap[fakeEventName] = targetEventName;
520			});
521		});
522
523		// jQuery event hooks
524		$.each(eventList, function(eventName, eventHandlers) {
525			eventHandlers = eventHandlers.split(' ');
526			$.event.special[eventPrefix + eventName] = {
527				setup: function() {
528					var self = this;
529					$.each(eventHandlers, function(index, fallbackEvent) {
530						if (self.addEventListener) self.addEventListener(fallbackEvent, fixEvent, commonOptions.isMobileDevice ? {passive: false} : false);
531						else self['on' + fallbackEvent] = fixEvent;
532					});
533				},
534				teardown: function() {
535					var self = this;
536					$.each(eventHandlers, function(index, fallbackEvent) {
537						if (self.addEventListener) self.removeEventListener(fallbackEvent, fixEvent, commonOptions.isMobileDevice ? {passive: false} : false);
538						else self['on' + fallbackEvent] = null;
539					});
540				}
541			};
542		});
543
544		// check that mouse event are not simulated by mobile browsers
545		var lastTouch = null;
546		var mouseEventSimulated = function(e) {
547			var dx = Math.abs(e.pageX - lastTouch.x),
548			dy = Math.abs(e.pageY - lastTouch.y),
549			rangeDistance = 25;
550
551			if (dx <= rangeDistance && dy <= rangeDistance) {
552				return true;
553			}
554		};
555
556		// normalize event
557		var fixEvent = function(e) {
558			var origEvent = e || window.event,
559			touchEventData = null,
560			targetEventName = eventMap[origEvent.type];
561
562			e = $.event.fix(origEvent);
563			e.type = eventPrefix + targetEventName;
564
565			if (origEvent.pointerType) {
566				switch (origEvent.pointerType) {
567					case 2: e.pointerType = 'touch'; break;
568					case 3: e.pointerType = 'pen'; break;
569					case 4: e.pointerType = 'mouse'; break;
570					default: e.pointerType = origEvent.pointerType;
571				}
572			} else {
573				e.pointerType = origEvent.type.substr(0, 5); // "mouse" or "touch" word length
574			}
575
576			if (!e.pageX && !e.pageY) {
577				touchEventData = origEvent.changedTouches ? origEvent.changedTouches[0] : origEvent;
578				e.pageX = touchEventData.pageX;
579				e.pageY = touchEventData.pageY;
580			}
581
582			if (origEvent.type === 'touchend') {
583				lastTouch = { x: e.pageX, y: e.pageY };
584			}
585			if (e.pointerType === 'mouse' && lastTouch && mouseEventSimulated(e)) {
586				return;
587			} else {
588				return ($.event.dispatch || $.event.handle).call(this, e);
589			}
590		};
591	}());
592
593	// custom mousewheel/trackpad handler
594	(function() {
595		var wheelEvents = ('onwheel' in document || document.documentMode >= 9 ? 'wheel' : 'mousewheel DOMMouseScroll').split(' '),
596		shimEventName = 'jcf-mousewheel';
597
598		$.event.special[shimEventName] = {
599			setup: function() {
600				var self = this;
601				$.each(wheelEvents, function(index, fallbackEvent) {
602					if (self.addEventListener) self.addEventListener(fallbackEvent, fixEvent, false);
603					else self['on' + fallbackEvent] = fixEvent;
604				});
605			},
606			teardown: function() {
607				var self = this;
608				$.each(wheelEvents, function(index, fallbackEvent) {
609					if (self.addEventListener) self.removeEventListener(fallbackEvent, fixEvent, false);
610					else self['on' + fallbackEvent] = null;
611				});
612			}
613		};
614
615		var fixEvent = function(e) {
616			var origEvent = e || window.event;
617			e = $.event.fix(origEvent);
618			e.type = shimEventName;
619
620			// old wheel events handler
621			if ('detail'      in origEvent) { e.deltaY = -origEvent.detail;      }
622			if ('wheelDelta'  in origEvent) { e.deltaY = -origEvent.wheelDelta;  }
623			if ('wheelDeltaY' in origEvent) { e.deltaY = -origEvent.wheelDeltaY; }
624			if ('wheelDeltaX' in origEvent) { e.deltaX = -origEvent.wheelDeltaX; }
625
626			// modern wheel event handler
627			if ('deltaY' in origEvent) {
628				e.deltaY = origEvent.deltaY;
629			}
630			if ('deltaX' in origEvent) {
631				e.deltaX = origEvent.deltaX;
632			}
633
634			// handle deltaMode for mouse wheel
635			e.delta = e.deltaY || e.deltaX;
636			if (origEvent.deltaMode === 1) {
637				var lineHeight = 16;
638				e.delta *= lineHeight;
639				e.deltaY *= lineHeight;
640				e.deltaX *= lineHeight;
641			}
642
643			return ($.event.dispatch || $.event.handle).call(this, e);
644		};
645	}());
646
647	// extra module methods
648	var moduleMixin = {
649		// provide function for firing native events
650		fireNativeEvent: function(elements, eventName) {
651			$(elements).each(function() {
652				var element = this, eventObject;
653				if (element.dispatchEvent) {
654					eventObject = document.createEvent('HTMLEvents');
655					eventObject.initEvent(eventName, true, true);
656					element.dispatchEvent(eventObject);
657				} else if (document.createEventObject) {
658					eventObject = document.createEventObject();
659					eventObject.target = element;
660					element.fireEvent('on' + eventName, eventObject);
661				}
662			});
663		},
664		// bind event handlers for module instance (functions beggining with "on")
665		bindHandlers: function() {
666			var self = this;
667			$.each(self, function(propName, propValue) {
668				if (propName.indexOf('on') === 0 && $.isFunction(propValue)) {
669					// dont use $.proxy here because it doesn't create unique handler
670					self[propName] = function() {
671						return propValue.apply(self, arguments);
672					};
673				}
674			});
675		}
676	};
677
678	// public API
679	var api = {
680		version: version,
681		modules: {},
682		getOptions: function() {
683			return $.extend({}, commonOptions);
684		},
685		setOptions: function(moduleName, moduleOptions) {
686			if (arguments.length > 1) {
687				// set module options
688				if (this.modules[moduleName]) {
689					$.extend(this.modules[moduleName].prototype.options, moduleOptions);
690				}
691			} else {
692				// set common options
693				$.extend(commonOptions, moduleName);
694			}
695		},
696		addModule: function(proto) {
697			// add module to list
698			var Module = function(options) {
699				// save instance to collection
700				if (!options.element.data(commonOptions.dataKey)) {
701					options.element.data(commonOptions.dataKey, this);
702				}
703				customInstances.push(this);
704
705				// save options
706				this.options = $.extend({}, commonOptions, this.options, getInlineOptions(options.element), options);
707
708				// bind event handlers to instance
709				this.bindHandlers();
710
711				// call constructor
712				this.init.apply(this, arguments);
713			};
714
715			// parse options from HTML attribute
716			var getInlineOptions = function(element) {
717				var dataOptions = element.data(commonOptions.optionsKey),
718				attrOptions = element.attr(commonOptions.optionsKey);
719
720				if (dataOptions) {
721					return dataOptions;
722				} else if (attrOptions) {
723					try {
724						return $.parseJSON(attrOptions);
725					} catch (e) {
726						// ignore invalid attributes
727					}
728				}
729			};
730
731			// set proto as prototype for new module
732			Module.prototype = proto;
733
734			// add mixin methods to module proto
735			$.extend(proto, moduleMixin);
736			if (proto.plugins) {
737				$.each(proto.plugins, function(pluginName, plugin) {
738					$.extend(plugin.prototype, moduleMixin);
739				});
740			}
741
742			// override destroy method
743			var originalDestroy = Module.prototype.destroy;
744			Module.prototype.destroy = function() {
745				this.options.element.removeData(this.options.dataKey);
746
747				for (var i = customInstances.length - 1; i >= 0; i--) {
748					if (customInstances[i] === this) {
749						customInstances.splice(i, 1);
750						break;
751					}
752				}
753
754				if (originalDestroy) {
755					originalDestroy.apply(this, arguments);
756				}
757			};
758
759			// save module to list
760			this.modules[proto.name] = Module;
761		},
762		getInstance: function(element) {
763			return $(element).data(commonOptions.dataKey);
764		},
765		replace: function(elements, moduleName, customOptions) {
766			var self = this,
767			instance;
768
769			if (!commonOptions.styleSheetCreated) {
770				createStyleSheet();
771			}
772
773			$(elements).each(function() {
774				var moduleOptions,
775				element = $(this);
776
777				instance = element.data(commonOptions.dataKey);
778				if (instance) {
779					instance.refresh();
780				} else {
781					if (!moduleName) {
782						$.each(self.modules, function(currentModuleName, module) {
783							if (module.prototype.matchElement.call(module.prototype, element)) {
784								moduleName = currentModuleName;
785								return false;
786							}
787						});
788					}
789					if (moduleName) {
790						moduleOptions = $.extend({ element: element }, customOptions);
791						instance = new self.modules[moduleName](moduleOptions);
792					}
793				}
794			});
795			return instance;
796		},
797		refresh: function(elements) {
798			$(elements).each(function() {
799				var instance = $(this).data(commonOptions.dataKey);
800				if (instance) {
801					instance.refresh();
802				}
803			});
804		},
805		destroy: function(elements) {
806			$(elements).each(function() {
807				var instance = $(this).data(commonOptions.dataKey);
808				if (instance) {
809					instance.destroy();
810				}
811			});
812		},
813		replaceAll: function(context) {
814			var self = this;
815			$.each(this.modules, function(moduleName, module) {
816				$(module.prototype.selector, context).each(function() {
817					if (this.className.indexOf('jcf-ignore') < 0) {
818						self.replace(this, moduleName);
819					}
820				});
821			});
822		},
823		refreshAll: function(context) {
824			if (context) {
825				$.each(this.modules, function(moduleName, module) {
826					$(module.prototype.selector, context).each(function() {
827						var instance = $(this).data(commonOptions.dataKey);
828						if (instance) {
829							instance.refresh();
830						}
831					});
832				});
833			} else {
834				for (var i = customInstances.length - 1; i >= 0; i--) {
835					customInstances[i].refresh();
836				}
837			}
838		},
839		destroyAll: function(context) {
840			if (context) {
841				$.each(this.modules, function(moduleName, module) {
842					$(module.prototype.selector, context).each(function(index, element) {
843						var instance = $(element).data(commonOptions.dataKey);
844						if (instance) {
845							instance.destroy();
846						}
847					});
848				});
849			} else {
850				while (customInstances.length) {
851					customInstances[0].destroy();
852				}
853			}
854		}
855	};
856
857	// always export API to the global window object
858	window.jcf = api;
859
860	return api;
861})); 
862
863 /*!
864 * JavaScript Custom Forms : Select Module
865 *
866 * Copyright 2014-2015 PSD2HTML - http://psd2html.com/jcf
867 * Released under the MIT license (LICENSE.txt)
868 *
869 * Version: 1.1.3
870 */
871 ;(function($, window) {
872 	'use strict';
873
874 	jcf.addModule({
875 		name: 'Select',
876 		selector: 'select',
877 		options: {
878 			element: null,
879 			multipleCompactStyle: false
880 		},
881 		plugins: {
882 			ListBox: ListBox,
883 			ComboBox: ComboBox,
884 			SelectList: SelectList
885 		},
886 		matchElement: function(element) {
887 			return element.is('select');
888 		},
889 		init: function() {
890 			this.element = $(this.options.element);
891 			this.createInstance();
892 		},
893 		isListBox: function() {
894 			return this.element.is('[size]:not([jcf-size]), [multiple]');
895 		},
896 		createInstance: function() {
897 			if (this.instance) {
898 				this.instance.destroy();
899 			}
900 			if (this.isListBox() && !this.options.multipleCompactStyle) {
901 				this.instance = new ListBox(this.options);
902 			} else {
903 				this.instance = new ComboBox(this.options);
904 			}
905 		},
906 		refresh: function() {
907 			var typeMismatch = (this.isListBox() && this.instance instanceof ComboBox) ||
908 			(!this.isListBox() && this.instance instanceof ListBox);
909
910 			if (typeMismatch) {
911 				this.createInstance();
912 			} else {
913 				this.instance.refresh();
914 			}
915 		},
916 		destroy: function() {
917 			this.instance.destroy();
918 		}
919 	});
920
921	// combobox module
922	function ComboBox(options) {
923		this.options = $.extend({
924			wrapNative: true,
925			wrapNativeOnMobile: true,
926			fakeDropInBody: true,
927			useCustomScroll: true,
928			flipDropToFit: true,
929			maxVisibleItems: 10,
930			fakeAreaStructure: '<span class="jcf-select"><span class="jcf-select-text"></span><span class="jcf-select-opener"></span></span>',
931			fakeDropStructure: '<div class="jcf-select-drop"><div class="jcf-select-drop-content"></div></div>',
932			optionClassPrefix: 'jcf-option-',
933			selectClassPrefix: 'jcf-select-',
934			dropContentSelector: '.jcf-select-drop-content',
935			selectTextSelector: '.jcf-select-text',
936			dropActiveClass: 'jcf-drop-active',
937			flipDropClass: 'jcf-drop-flipped'
938		}, options);
939		this.init();
940	}
941	$.extend(ComboBox.prototype, {
942		init: function() {
943			this.initStructure();
944			this.bindHandlers();
945			this.attachEvents();
946			this.refresh();
947		},
948		initStructure: function() {
949			// prepare structure
950			this.win = $(window);
951			this.doc = $(document);
952			this.realElement = $(this.options.element);
953			this.fakeElement = $(this.options.fakeAreaStructure).insertAfter(this.realElement);
954			this.selectTextContainer = this.fakeElement.find(this.options.selectTextSelector);
955			this.selectText = $('<span></span>').appendTo(this.selectTextContainer);
956			makeUnselectable(this.fakeElement);
957
958			// copy classes from original select
959			this.fakeElement.addClass(getPrefixedClasses(this.realElement.prop('className'), this.options.selectClassPrefix));
960
961			// handle compact multiple style
962			if (this.realElement.prop('multiple')) {
963				this.fakeElement.addClass('jcf-compact-multiple');
964			}
965
966			// detect device type and dropdown behavior
967			if (this.options.isMobileDevice && this.options.wrapNativeOnMobile && !this.options.wrapNative) {
968				this.options.wrapNative = true;
969			}
970
971			if (this.options.wrapNative) {
972				// wrap native select inside fake block
973				this.realElement.prependTo(this.fakeElement).css({
974					position: 'absolute',
975					height: '100%',
976					width: '100%'
977				}).addClass(this.options.resetAppearanceClass);
978			} else {
979				// just hide native select
980				this.realElement.addClass(this.options.hiddenClass);
981				this.fakeElement.attr('title', this.realElement.attr('title'));
982				this.fakeDropTarget = this.options.fakeDropInBody ? $('body') : this.fakeElement;
983			}
984		},
985		attachEvents: function() {
986			// delayed refresh handler
987			var self = this;
988			this.delayedRefresh = function() {
989				setTimeout(function() {
990					self.refresh();
991					if (self.list) {
992						self.list.refresh();
993						self.list.scrollToActiveOption();
994					}
995				}, 1);
996			};
997
998			// native dropdown event handlers
999			if (this.options.wrapNative) {
1000				this.realElement.on({
1001					focus: this.onFocus,
1002					change: this.onChange,
1003					click: this.onChange,
1004					keydown: this.onChange
1005				});
1006			} else {
1007				// custom dropdown event handlers
1008				this.realElement.on({
1009					focus: this.onFocus,
1010					change: this.onChange,
1011					keydown: this.onKeyDown
1012				});
1013				this.fakeElement.on({
1014					'jcf-pointerdown': this.onSelectAreaPress
1015				});
1016			}
1017		},
1018		onKeyDown: function(e) {
1019			if (e.which === 13) {
1020				this.toggleDropdown();
1021			} else if (this.dropActive) {
1022				this.delayedRefresh();
1023			}
1024		},
1025		onChange: function() {
1026			this.refresh();
1027		},
1028		onFocus: function() {
1029			if (!this.pressedFlag || !this.focusedFlag) {
1030				this.fakeElement.addClass(this.options.focusClass);
1031				this.realElement.on('blur', this.onBlur);
1032				this.toggleListMode(true);
1033				this.focusedFlag = true;
1034			}
1035		},
1036		onBlur: function() {
1037			if (!this.pressedFlag) {
1038				this.fakeElement.removeClass(this.options.focusClass);
1039				this.realElement.off('blur', this.onBlur);
1040				this.toggleListMode(false);
1041				this.focusedFlag = false;
1042			}
1043		},
1044		onResize: function() {
1045			if (this.dropActive) {
1046				this.hideDropdown();
1047			}
1048		},
1049		onSelectDropPress: function() {
1050			this.pressedFlag = true;
1051		},
1052		onSelectDropRelease: function(e, pointerEvent) {
1053			this.pressedFlag = false;
1054			if (pointerEvent.pointerType === 'mouse') {
1055				this.realElement.focus();
1056			}
1057		},
1058		onSelectAreaPress: function(e) {
1059			// skip click if drop inside fake element or real select is disabled
1060			var dropClickedInsideFakeElement = !this.options.fakeDropInBody && $(e.target).closest(this.dropdown).length;
1061			if (dropClickedInsideFakeElement || e.button > 1 || this.realElement.is(':disabled')) {
1062				return;
1063			}
1064
1065			// toggle dropdown visibility
1066			this.selectOpenedByEvent = e.pointerType;
1067			this.toggleDropdown();
1068
1069			// misc handlers
1070			if (!this.focusedFlag) {
1071				if (e.pointerType === 'mouse') {
1072					this.realElement.focus();
1073				} else {
1074					this.onFocus(e);
1075				}
1076			}
1077			this.pressedFlag = true;
1078			this.fakeElement.addClass(this.options.pressedClass);
1079			this.doc.on('jcf-pointerup', this.onSelectAreaRelease);
1080		},
1081		onSelectAreaRelease: function(e) {
1082			if (this.focusedFlag && e.pointerType === 'mouse') {
1083				this.realElement.focus();
1084			}
1085			this.pressedFlag = false;
1086			this.fakeElement.removeClass(this.options.pressedClass);
1087			this.doc.off('jcf-pointerup', this.onSelectAreaRelease);
1088		},
1089		onOutsideClick: function(e) {
1090			var target = $(e.target),
1091			clickedInsideSelect = target.closest(this.fakeElement).length || target.closest(this.dropdown).length;
1092
1093			if (!clickedInsideSelect) {
1094				this.hideDropdown();
1095			}
1096		},
1097		onSelect: function() {
1098			this.refresh();
1099
1100			if (this.realElement.prop('multiple')) {
1101				this.repositionDropdown();
1102			} else {
1103				this.hideDropdown();
1104			}
1105
1106			this.fireNativeEvent(this.realElement, 'change');
1107		},
1108		toggleListMode: function(state) {
1109			if (!this.options.wrapNative) {
1110				if (state) {
1111					// temporary change select to list to avoid appearing of native dropdown
1112					this.realElement.attr({
1113						size: 4,
1114						'jcf-size': ''
1115					});
1116				} else {
1117					// restore select from list mode to dropdown select
1118					if (!this.options.wrapNative) {
1119						this.realElement.removeAttr('size jcf-size');
1120					}
1121				}
1122			}
1123		},
1124		createDropdown: function() {
1125			// destroy previous dropdown if needed
1126			if (this.dropdown) {
1127				this.list.destroy();
1128				this.dropdown.remove();
1129			}
1130
1131			// create new drop container
1132			this.dropdown = $(this.options.fakeDropStructure).appendTo(this.fakeDropTarget);
1133			this.dropdown.addClass(getPrefixedClasses(this.realElement.prop('className'), this.options.selectClassPrefix));
1134			makeUnselectable(this.dropdown);
1135
1136			// handle compact multiple style
1137			if (this.realElement.prop('multiple')) {
1138				this.dropdown.addClass('jcf-compact-multiple');
1139			}
1140
1141			// set initial styles for dropdown in body
1142			if (this.options.fakeDropInBody) {
1143				this.dropdown.css({
1144					position: 'absolute',
1145					top: -9999
1146				});
1147			}
1148
1149			// create new select list instance
1150			this.list = new SelectList({
1151				useHoverClass: true,
1152				handleResize: false,
1153				alwaysPreventMouseWheel: true,
1154				maxVisibleItems: this.options.maxVisibleItems,
1155				useCustomScroll: this.options.useCustomScroll,
1156				holder: this.dropdown.find(this.options.dropContentSelector),
1157				multipleSelectWithoutKey: this.realElement.prop('multiple'),
1158				element: this.realElement
1159			});
1160			$(this.list).on({
1161				select: this.onSelect,
1162				press: this.onSelectDropPress,
1163				release: this.onSelectDropRelease
1164			});
1165		},
1166		repositionDropdown: function() {
1167			var selectOffset = this.fakeElement.offset(),
1168			selectWidth = this.fakeElement.outerWidth(),
1169			selectHeight = this.fakeElement.outerHeight(),
1170			dropHeight = this.dropdown.css('width', selectWidth).outerHeight(),
1171			winScrollTop = this.win.scrollTop(),
1172			winHeight = this.win.height(),
1173			calcTop, calcLeft, bodyOffset, needFlipDrop = false;
1174
1175			// check flip drop position
1176			if (selectOffset.top + selectHeight + dropHeight > winScrollTop + winHeight && selectOffset.top - dropHeight > winScrollTop) {
1177				needFlipDrop = true;
1178			}
1179
1180			if (this.options.fakeDropInBody) {
1181				bodyOffset = this.fakeDropTarget.css('position') !== 'static' ? this.fakeDropTarget.offset().top : 0;
1182				if (this.options.flipDropToFit && needFlipDrop) {
1183					// calculate flipped dropdown position
1184					calcLeft = selectOffset.left;
1185					calcTop = selectOffset.top - dropHeight - bodyOffset;
1186				} else {
1187					// calculate default drop position
1188					calcLeft = selectOffset.left;
1189					calcTop = selectOffset.top + selectHeight - bodyOffset;
1190				}
1191
1192				// update drop styles
1193				this.dropdown.css({
1194					width: selectWidth,
1195					left: calcLeft,
1196					top: calcTop
1197				});
1198			}
1199
1200			// refresh flipped class
1201			this.dropdown.add(this.fakeElement).toggleClass(this.options.flipDropClass, this.options.flipDropToFit && needFlipDrop);
1202		},
1203		showDropdown: function() {
1204			// do not show empty custom dropdown
1205			if (!this.realElement.prop('options').length) {
1206				return;
1207			}
1208
1209			// create options list if not created
1210			if (!this.dropdown) {
1211				this.createDropdown();
1212			}
1213
1214			// show dropdown
1215			this.dropActive = true;
1216			this.dropdown.appendTo(this.fakeDropTarget);
1217			this.fakeElement.addClass(this.options.dropActiveClass);
1218			this.refreshSelectedText();
1219			this.repositionDropdown();
1220			this.list.setScrollTop(this.savedScrollTop);
1221			this.list.refresh();
1222
1223			// add temporary event handlers
1224			this.win.on('resize', this.onResize);
1225			this.doc.on('jcf-pointerdown', this.onOutsideClick);
1226		},
1227		hideDropdown: function() {
1228			if (this.dropdown) {
1229				this.savedScrollTop = this.list.getScrollTop();
1230				this.fakeElement.removeClass(this.options.dropActiveClass + ' ' + this.options.flipDropClass);
1231				this.dropdown.removeClass(this.options.flipDropClass).detach();
1232				this.doc.off('jcf-pointerdown', this.onOutsideClick);
1233				this.win.off('resize', this.onResize);
1234				this.dropActive = false;
1235				if (this.selectOpenedByEvent === 'touch') {
1236					this.onBlur();
1237				}
1238			}
1239		},
1240		toggleDropdown: function() {
1241			if (this.dropActive) {
1242				this.hideDropdown();
1243			} else {
1244				this.showDropdown();
1245			}
1246		},
1247		refreshSelectedText: function() {
1248			// redraw selected area
1249			var selectedIndex = this.realElement.prop('selectedIndex'),
1250			selectedOption = this.realElement.prop('options')[selectedIndex],
1251			selectedOptionImage = selectedOption ? selectedOption.getAttribute('data-image') : null,
1252			selectedOptionText = '',
1253			selectedOptionClasses,
1254			self = this;
1255
1256			if (this.realElement.prop('multiple')) {
1257				$.each(this.realElement.prop('options'), function(index, option) {
1258					if (option.selected) {
1259						selectedOptionText += (selectedOptionText ? ', ' : '') + option.innerHTML;
1260					}
1261				});
1262				if (!selectedOptionText) {
1263					selectedOptionText = self.realElement.attr('placeholder') || '';
1264				}
1265				this.selectText.removeAttr('class').html(selectedOptionText);
1266			} else if (!selectedOption) {
1267				if (this.selectImage) {
1268					this.selectImage.hide();
1269				}
1270				this.selectText.removeAttr('class').empty();
1271			} else if (this.currentSelectedText !== selectedOption.innerHTML || this.currentSelectedImage !== selectedOptionImage) {
1272				selectedOptionClasses = getPrefixedClasses(selectedOption.className, this.options.optionClassPrefix);
1273				this.selectText.attr('class', selectedOptionClasses).html(selectedOption.innerHTML);
1274
1275				if (selectedOptionImage) {
1276					if (!this.selectImage) {
1277						this.selectImage = $('<img>').prependTo(this.selectTextContainer).hide();
1278					}
1279					this.selectImage.attr('src', selectedOptionImage).show();
1280				} else if (this.selectImage) {
1281					this.selectImage.hide();
1282				}
1283
1284				this.currentSelectedText = selectedOption.innerHTML;
1285				this.currentSelectedImage = selectedOptionImage;
1286			}
1287		},
1288		refresh: function() {
1289			// refresh fake select visibility
1290			if (this.realElement.prop('style').display === 'none') {
1291				this.fakeElement.hide();
1292			} else {
1293				this.fakeElement.show();
1294			}
1295
1296			// refresh selected text
1297			this.refreshSelectedText();
1298
1299			// handle disabled state
1300			this.fakeElement.toggleClass(this.options.disabledClass, this.realElement.is(':disabled'));
1301		},
1302		destroy: function() {
1303			// restore structure
1304			if (this.options.wrapNative) {
1305				this.realElement.insertBefore(this.fakeElement).css({
1306					position: '',
1307					height: '',
1308					width: ''
1309				}).removeClass(this.options.resetAppearanceClass);
1310			} else {
1311				this.realElement.removeClass(this.options.hiddenClass);
1312				if (this.realElement.is('[jcf-size]')) {
1313					this.realElement.removeAttr('size jcf-size');
1314				}
1315			}
1316
1317			// removing element will also remove its event handlers
1318			this.fakeElement.remove();
1319
1320			// remove other event handlers
1321			this.doc.off('jcf-pointerup', this.onSelectAreaRelease);
1322			this.realElement.off({
1323				focus: this.onFocus
1324			});
1325		}
1326	});
1327
1328	// listbox module
1329	function ListBox(options) {
1330		this.options = $.extend({
1331			wrapNative: true,
1332			useCustomScroll: true,
1333			fakeStructure: '<span class="jcf-list-box"><span class="jcf-list-wrapper"></span></span>',
1334			selectClassPrefix: 'jcf-select-',
1335			listHolder: '.jcf-list-wrapper'
1336		}, options);
1337		this.init();
1338	}
1339	$.extend(ListBox.prototype, {
1340		init: function() {
1341			this.bindHandlers();
1342			this.initStructure();
1343			this.attachEvents();
1344		},
1345		initStructure: function() {
1346			this.realElement = $(this.options.element);
1347			this.fakeElement = $(this.options.fakeStructure).insertAfter(this.realElement);
1348			this.listHolder = this.fakeElement.find(this.options.listHolder);
1349			makeUnselectable(this.fakeElement);
1350
1351			// copy classes from original select
1352			this.fakeElement.addClass(getPrefixedClasses(this.realElement.prop('className'), this.options.selectClassPrefix));
1353			this.realElement.addClass(this.options.hiddenClass);
1354
1355			this.list = new SelectList({
1356				useCustomScroll: this.options.useCustomScroll,
1357				holder: this.listHolder,
1358				selectOnClick: false,
1359				element: this.realElement
1360			});
1361		},
1362		attachEvents: function() {
1363			// delayed refresh handler
1364			var self = this;
1365			this.delayedRefresh = function(e) {
1366				if (e && e.which === 16) {
1367					// ignore SHIFT key
1368					return;
1369				} else {
1370					clearTimeout(self.refreshTimer);
1371					self.refreshTimer = setTimeout(function() {
1372						self.refresh();
1373						self.list.scrollToActiveOption();
1374					}, 1);
1375				}
1376			};
1377
1378			// other event handlers
1379			this.realElement.on({
1380				focus: this.onFocus,
1381				click: this.delayedRefresh,
1382				keydown: this.delayedRefresh
1383			});
1384
1385			// select list event handlers
1386			$(this.list).on({
1387				select: this.onSelect,
1388				press: this.onFakeOptionsPress,
1389				release: this.onFakeOptionsRelease
1390			});
1391		},
1392		onFakeOptionsPress: function(e, pointerEvent) {
1393			this.pressedFlag = true;
1394			if (pointerEvent.pointerType === 'mouse') {
1395				this.realElement.focus();
1396			}
1397		},
1398		onFakeOptionsRelease: function(e, pointerEvent) {
1399			this.pressedFlag = false;
1400			if (pointerEvent.pointerType === 'mouse') {
1401				this.realElement.focus();
1402			}
1403		},
1404		onSelect: function() {
1405			this.fireNativeEvent(this.realElement, 'change');
1406			this.fireNativeEvent(this.realElement, 'click');
1407		},
1408		onFocus: function() {
1409			if (!this.pressedFlag || !this.focusedFlag) {
1410				this.fakeElement.addClass(this.options.focusClass);
1411				this.realElement.on('blur', this.onBlur);
1412				this.focusedFlag = true;
1413			}
1414		},
1415		onBlur: function() {
1416			if (!this.pressedFlag) {
1417				this.fakeElement.removeClass(this.options.focusClass);
1418				this.realElement.off('blur', this.onBlur);
1419				this.focusedFlag = false;
1420			}
1421		},
1422		refresh: function() {
1423			this.fakeElement.toggleClass(this.options.disabledClass, this.realElement.is(':disabled'));
1424			this.list.refresh();
1425		},
1426		destroy: function() {
1427			this.list.destroy();
1428			this.realElement.insertBefore(this.fakeElement).removeClass(this.options.hiddenClass);
1429			this.fakeElement.remove();
1430		}
1431	});
1432
1433	// options list module
1434	function SelectList(options) {
1435		this.options = $.extend({
1436			holder: null,
1437			maxVisibleItems: 10,
1438			selectOnClick: true,
1439			useHoverClass: false,
1440			useCustomScroll: false,
1441			handleResize: true,
1442			multipleSelectWithoutKey: false,
1443			alwaysPreventMouseWheel: false,
1444			indexAttribute: 'data-index',
1445			cloneClassPrefix: 'jcf-option-',
1446			containerStructure: '<span class="jcf-list"><span class="jcf-list-content"></span></span>',
1447			containerSelector: '.jcf-list-content',
1448			captionClass: 'jcf-optgroup-caption',
1449			disabledClass: 'jcf-disabled',
1450			optionClass: 'jcf-option',
1451			groupClass: 'jcf-optgroup',
1452			hoverClass: 'jcf-hover',
1453			selectedClass: 'jcf-selected',
1454			scrollClass: 'jcf-scroll-active'
1455		}, options);
1456		this.init();
1457	}
1458	$.extend(SelectList.prototype, {
1459		init: function() {
1460			this.initStructure();
1461			this.refreshSelectedClass();
1462			this.attachEvents();
1463		},
1464		initStructure: function() {
1465			this.element = $(this.options.element);
1466			this.indexSelector = '[' + this.options.indexAttribute + ']';
1467			this.container = $(this.options.containerStructure).appendTo(this.options.holder);
1468			this.listHolder = this.container.find(this.options.containerSelector);
1469			this.lastClickedIndex = this.element.prop('selectedIndex');
1470			this.rebuildList();
1471		},
1472		attachEvents: function() {
1473			this.bindHandlers();
1474			this.listHolder.on('jcf-pointerdown', this.indexSelector, this.onItemPress);
1475			this.listHolder.on('jcf-pointerdown', this.onPress);
1476
1477			if (this.options.useHoverClass) {
1478				this.listHolder.on('jcf-pointerover', this.indexSelector, this.onHoverItem);
1479			}
1480		},
1481		onPress: function(e) {
1482			$(this).trigger('press', e);
1483			this.listHolder.on('jcf-pointerup', this.onRelease);
1484		},
1485		onRelease: function(e) {
1486			$(this).trigger('release', e);
1487			this.listHolder.off('jcf-pointerup', this.onRelease);
1488		},
1489		onHoverItem: function(e) {
1490			var hoverIndex = parseFloat(e.currentTarget.getAttribute(this.options.indexAttribute));
1491			this.fakeOptions.removeClass(this.options.hoverClass).eq(hoverIndex).addClass(this.options.hoverClass);
1492		},
1493		onItemPress: function(e) {
1494			if (e.pointerType === 'touch' || this.options.selectOnClick) {
1495				// select option after "click"
1496				this.tmpListOffsetTop = this.list.offset().top;
1497				this.listHolder.on('jcf-pointerup', this.indexSelector, this.onItemRelease);
1498			} else {
1499				// select option immediately
1500				this.onSelectItem(e);
1501			}
1502		},
1503		onItemRelease: function(e) {
1504			// remove event handlers and temporary data
1505			this.listHolder.off('jcf-pointerup', this.indexSelector, this.onItemRelease);
1506
1507			// simulate item selection
1508			if (this.tmpListOffsetTop === this.list.offset().top) {
1509				this.listHolder.on('click', this.indexSelector, { savedPointerType: e.pointerType }, this.onSelectItem);
1510			}
1511			delete this.tmpListOffsetTop;
1512		},
1513		onSelectItem: function(e) {
1514			var clickedIndex = parseFloat(e.currentTarget.getAttribute(this.options.indexAttribute)),
1515			pointerType = e.data && e.data.savedPointerType || e.pointerType || 'mouse',
1516			range;
1517
1518			// remove click event handler
1519			this.listHolder.off('click', this.indexSelector, this.onSelectItem);
1520
1521			// ignore clicks on disabled options
1522			if (e.button > 1 || this.realOptions[clickedIndex].disabled) {
1523				return;
1524			}
1525
1526			if (this.element.prop('multiple')) {
1527				if (e.metaKey || e.ctrlKey || pointerType === 'touch' || this.options.multipleSelectWithoutKey) {
1528					// if CTRL/CMD pressed or touch devices - toggle selected option
1529					this.realOptions[clickedIndex].selected = !this.realOptions[clickedIndex].selected;
1530				} else if (e.shiftKey) {
1531					// if SHIFT pressed - update selection
1532					range = [this.lastClickedIndex, clickedIndex].sort(function(a, b) {
1533						return a - b;
1534					});
1535					this.realOptions.each(function(index, option) {
1536						option.selected = (index >= range[0] && index <= range[1]);
1537					});
1538				} else {
1539					// set single selected index
1540					this.element.prop('selectedIndex', clickedIndex);
1541				}
1542			} else {
1543				this.element.prop('selectedIndex', clickedIndex);
1544			}
1545
1546			// save last clicked option
1547			if (!e.shiftKey) {
1548				this.lastClickedIndex = clickedIndex;
1549			}
1550
1551			// refresh classes
1552			this.refreshSelectedClass();
1553
1554			// scroll to active item in desktop browsers
1555			if (pointerType === 'mouse') {
1556				this.scrollToActiveOption();
1557			}
1558
1559			// make callback when item selected
1560			$(this).trigger('select');
1561		},
1562		rebuildList: function() {
1563			// rebuild options
1564			var self = this,
1565			rootElement = this.element[0];
1566
1567			// recursively create fake options
1568			this.storedSelectHTML = rootElement.innerHTML;
1569			this.optionIndex = 0;
1570			this.list = $(this.createOptionsList(rootElement));
1571			this.listHolder.empty().append(this.list);
1572			this.realOptions = this.element.find('option');
1573			this.fakeOptions = this.list.find(this.indexSelector);
1574			this.fakeListItems = this.list.find('.' + this.options.captionClass + ',' + this.indexSelector);
1575			delete this.optionIndex;
1576
1577			// detect max visible items
1578			var maxCount = this.options.maxVisibleItems,
1579			sizeValue = this.element.prop('size');
1580			if (sizeValue > 1 && !this.element.is('[jcf-size]')) {
1581				maxCount = sizeValue;
1582			}
1583
1584			// handle scrollbar
1585			var needScrollBar = this.fakeOptions.length > maxCount;
1586			this.container.toggleClass(this.options.scrollClass, needScrollBar);
1587			if (needScrollBar) {
1588				// change max-height
1589				this.listHolder.css({
1590					maxHeight: this.getOverflowHeight(maxCount),
1591					overflow: 'auto'
1592				});
1593
1594				if (this.options.useCustomScroll && jcf.modules.Scrollable) {
1595					// add custom scrollbar if specified in options
1596					jcf.replace(this.listHolder, 'Scrollable', {
1597						handleResize: this.options.handleResize,
1598						alwaysPreventMouseWheel: this.options.alwaysPreventMouseWheel
1599					});
1600					return;
1601				}
1602			}
1603
1604			// disable edge wheel scrolling
1605			if (this.options.alwaysPreventMouseWheel) {
1606				this.preventWheelHandler = function(e) {
1607					var currentScrollTop = self.listHolder.scrollTop(),
1608					maxScrollTop = self.listHolder.prop('scrollHeight') - self.listHolder.innerHeight();
1609
1610					// check edge cases
1611					if ((currentScrollTop <= 0 && e.deltaY < 0) || (currentScrollTop >= maxScrollTop && e.deltaY > 0)) {
1612						e.preventDefault();
1613					}
1614				};
1615				this.listHolder.on('jcf-mousewheel', this.preventWheelHandler);
1616			}
1617		},
1618		refreshSelectedClass: function() {
1619			var self = this,
1620			selectedItem,
1621			isMultiple = this.element.prop('multiple'),
1622			selectedIndex = this.element.prop('selectedIndex');
1623
1624			if (isMultiple) {
1625				this.realOptions.each(function(index, option) {
1626					self.fakeOptions.eq(index).toggleClass(self.options.selectedClass, !!option.selected);
1627				});
1628			} else {
1629				this.fakeOptions.removeClass(this.options.selectedClass + ' ' + this.options.hoverClass);
1630				selectedItem = this.fakeOptions.eq(selectedIndex).addClass(this.options.selectedClass);
1631				if (this.options.useHoverClass) {
1632					selectedItem.addClass(this.options.hoverClass);
1633				}
1634			}
1635		},
1636		scrollToActiveOption: function() {
1637			// scroll to target option
1638			var targetOffset = this.getActiveOptionOffset();
1639			if (typeof targetOffset === 'number') {
1640				this.listHolder.prop('scrollTop', targetOffset);
1641			}
1642		},
1643		getSelectedIndexRange: function() {
1644			var firstSelected = -1, lastSelected = -1;
1645			this.realOptions.each(function(index, option) {
1646				if (option.selected) {
1647					if (firstSelected < 0) {
1648						firstSelected = index;
1649					}
1650					lastSelected = index;
1651				}
1652			});
1653			return [firstSelected, lastSelected];
1654		},
1655		getChangedSelectedIndex: function() {
1656			var selectedIndex = this.element.prop('selectedIndex'),
1657			targetIndex;
1658
1659			if (this.element.prop('multiple')) {
1660				// multiple selects handling
1661				if (!this.previousRange) {
1662					this.previousRange = [selectedIndex, selectedIndex];
1663				}
1664				this.currentRange = this.getSelectedIndexRange();
1665				targetIndex = this.currentRange[this.currentRange[0] !== this.previousRange[0] ? 0 : 1];
1666				this.previousRange = this.currentRange;
1667				return targetIndex;
1668			} else {
1669				// single choice selects handling
1670				return selectedIndex;
1671			}
1672		},
1673		getActiveOptionOffset: function() {
1674			// calc values
1675			var dropHeight = this.listHolder.height(),
1676			dropScrollTop = this.listHolder.prop('scrollTop'),
1677			currentIndex = this.getChangedSelectedIndex(),
1678			fakeOption = this.fakeOptions.eq(currentIndex),
1679			fakeOptionOffset = fakeOption.offset().top - this.list.offset().top,
1680			fakeOptionHeight = fakeOption.innerHeight();
1681
1682			// scroll list
1683			if (fakeOptionOffset + fakeOptionHeight >= dropScrollTop + dropHeight) {
1684				// scroll down (always scroll to option)
1685				return fakeOptionOffset - dropHeight + fakeOptionHeight;
1686			} else if (fakeOptionOffset < dropScrollTop) {
1687				// scroll up to option
1688				return fakeOptionOffset;
1689			}
1690		},
1691		getOverflowHeight: function(sizeValue) {
1692			var item = this.fakeListItems.eq(sizeValue - 1),
1693			listOffset = this.list.offset().top,
1694			itemOffset = item.offset().top,
1695			itemHeight = item.innerHeight();
1696
1697			return itemOffset + itemHeight - listOffset;
1698		},
1699		getScrollTop: function() {
1700			return this.listHolder.scrollTop();
1701		},
1702		setScrollTop: function(value) {
1703			this.listHolder.scrollTop(value);
1704		},
1705		createOption: function(option) {
1706			var newOption = document.createElement('span');
1707			newOption.className = this.options.optionClass;
1708			newOption.innerHTML = option.innerHTML;
1709			newOption.setAttribute(this.options.indexAttribute, this.optionIndex++);
1710
1711			var optionImage, optionImageSrc = option.getAttribute('data-image');
1712			if (optionImageSrc) {
1713				optionImage = document.createElement('img');
1714				optionImage.src = optionImageSrc;
1715				newOption.insertBefore(optionImage, newOption.childNodes[0]);
1716			}
1717			if (option.disabled) {
1718				newOption.className += ' ' + this.options.disabledClass;
1719			}
1720			if (option.className) {
1721				newOption.className += ' ' + getPrefixedClasses(option.className, this.options.cloneClassPrefix);
1722			}
1723			return newOption;
1724		},
1725		createOptGroup: function(optgroup) {
1726			var optGroupContainer = document.createElement('span'),
1727			optGroupName = optgroup.getAttribute('label'),
1728			optGroupCaption, optGroupList;
1729
1730			// create caption
1731			optGroupCaption = document.createElement('span');
1732			optGroupCaption.className = this.options.captionClass;
1733			optGroupCaption.innerHTML = optGroupName;
1734			optGroupContainer.appendChild(optGroupCaption);
1735
1736			// create list of options
1737			if (optgroup.children.length) {
1738				optGroupList = this.createOptionsList(optgroup);
1739				optGroupContainer.appendChild(optGroupList);
1740			}
1741
1742			optGroupContainer.className = this.options.groupClass;
1743			return optGroupContainer;
1744		},
1745		createOptionContainer: function() {
1746			var optionContainer = document.createElement('li');
1747			return optionContainer;
1748		},
1749		createOptionsList: function(container) {
1750			var self = this,
1751			list = document.createElement('ul');
1752
1753			$.each(container.children, function(index, currentNode) {
1754				var item = self.createOptionContainer(currentNode),
1755				newNode;
1756
1757				switch (currentNode.tagName.toLowerCase()) {
1758					case 'option': newNode = self.createOption(currentNode); break;
1759					case 'optgroup': newNode = self.createOptGroup(currentNode); break;
1760				}
1761				list.appendChild(item).appendChild(newNode);
1762			});
1763			return list;
1764		},
1765		refresh: function() {
1766			// check for select innerHTML changes
1767			if (this.storedSelectHTML !== this.element.prop('innerHTML')) {
1768				this.rebuildList();
1769			}
1770
1771			// refresh custom scrollbar
1772			var scrollInstance = jcf.getInstance(this.listHolder);
1773			if (scrollInstance) {
1774				scrollInstance.refresh();
1775			}
1776
1777			// refresh selectes classes
1778			this.refreshSelectedClass();
1779		},
1780		destroy: function() {
1781			this.listHolder.off('jcf-mousewheel', this.preventWheelHandler);
1782			this.listHolder.off('jcf-pointerdown', this.indexSelector, this.onSelectItem);
1783			this.listHolder.off('jcf-pointerover', this.indexSelector, this.onHoverItem);
1784			this.listHolder.off('jcf-pointerdown', this.onPress);
1785		}
1786	});
1787
1788	// helper functions
1789	var getPrefixedClasses = function(className, prefixToAdd) {
1790		return className ? className.replace(/[\s]*([\S]+)+[\s]*/gi, prefixToAdd + '$1 ') : '';
1791	};
1792	var makeUnselectable = (function() {
1793		var unselectableClass = jcf.getOptions().unselectableClass;
1794		function preventHandler(e) {
1795			e.preventDefault();
1796		}
1797		return function(node) {
1798			node.addClass(unselectableClass).on('selectstart', preventHandler);
1799		};
1800	}());
1801
1802}(jQuery, this));
1803
1804
1805/*!
1806* FitVids 1.0.3
1807*
1808* Copyright 2013, Chris Coyier - http://css-tricks.com + Dave Rupert - http://daverupert.com
1809* Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/
1810* Released under the WTFPL license - http://sam.zoy.org/wtfpl/
1811*
1812* Date: Thu Sept 01 18:00:00 2011 -0500
1813*/
1814;(function(a){a.fn.fitVids=function(b){var c={customSelector:null};if(!document.getElementById("fit-vids-style")){var f=document.createElement("div"),d=document.getElementsByTagName("base")[0]||document.getElementsByTagName("script")[0],e="&shy;<style>.fluid-width-video-wrapper{width:100%;position:relative;padding:0;}.fluid-width-video-wrapper iframe,.fluid-width-video-wrapper object,.fluid-width-video-wrapper embed {position:absolute;top:0;left:0;width:100%;height:100%;}</style>";f.className="fit-vids-style";f.id="fit-vids-style";f.style.display="none";f.innerHTML=e;d.parentNode.insertBefore(f,d)}if(b){a.extend(c,b)}return this.each(function(){var g=["iframe[src*='player.vimeo.com']","iframe[src*='youtube.com']","iframe[src*='youtube-nocookie.com']","iframe[src*='kickstarter.com'][src*='video.html']","object","embed"];if(c.customSelector){g.push(c.customSelector)}var h=a(this).find(g.join(","));h=h.not("object object");h.each(function(){var m=a(this);if(this.tagName.toLowerCase()==="embed"&&m.parent("object").length||m.parent(".fluid-width-video-wrapper").length){return}var i=(this.tagName.toLowerCase()==="object"||(m.attr("height")&&!isNaN(parseInt(m.attr("height"),10))))?parseInt(m.attr("height"),10):m.height(),j=!isNaN(parseInt(m.attr("width"),10))?parseInt(m.attr("width"),10):m.width(),k=i/j;if(!m.attr("id")){var l="fitvid"+Math.floor(Math.random()*999999);m.attr("id",l)}m.wrap('<div class="fluid-width-video-wrapper"></div>').parent(".fluid-width-video-wrapper").css("padding-top",(k*100)+"%");m.removeAttr("height").removeAttr("width")})})}})(window.jQuery||window.Zepto);
1815
1816
1817 /*
1818 *	jQuery dotdotdot 1.8.3
1819 *
1820 *	Copyright (c) Fred Heusschen
1821 *	www.frebsite.nl
1822 *
1823 *	Plugin website:
1824 *	dotdotdot.frebsite.nl
1825 *
1826 *	Licensed under the MIT license.
1827 *	http://en.wikipedia.org/wiki/MIT_License
1828 */
1829!function(t,e){"use strict";function n(t,e,n){var r=t.children(),a=!1;t.empty();for(var i=0,d=r.length;i<d;i++){var l=r.eq(i);if(t.append(l),n&&t.append(n),o(t,e)){l.remove(),a=!0;break}n&&n.detach()}return a}function r(e,n,i,d,l){var s=!1,c="a, table, thead, tbody, tfoot, tr, col, colgroup, object, embed, param, ol, ul, dl, blockquote, select, optgroup, option, textarea, script, style",u="script, .dotdotdot-keep";return e.contents().detach().each(function(){var h=this,f=t(h);if("undefined"==typeof h)return!0;
vendor: 4,864 bytes, line 1829
1829if(f.is(u))e.append(f);else{if(s)return!0;e.append(f),!l||f.is(d.after)||f.find(d.after).length||e[e.is(c)?"after":"append"](l),o(i,d)&&(s=3==h.nodeType?a(f,n,i,d,l):r(f,n,i,d,l)),s||l&&l.detach()}}),n.addClass("is-truncated"),s}function a(e,n,r,a,d){var c=e[0];if(!c)return!1;var h=s(c),f=h.indexOf(" ")!==-1?" ":" ",p="letter"==a.wrap?"":f,g=h.split(p),v=-1,w=-1,m=0,b=g.length-1;if(a.fallbackToLetter&&0===m&&0===b&&(p="",g=h.split(p),b=g.length-1),a.maxLength)h=i(h.trim().substr(0,a.maxLength),a),l(c,h);else{for(;m<=b&&(0!==m||0!==b);){var y=Math.floor((m+b)/2);if(y==w)break;w=y,l(c,g.slice(0,w+1).join(p)+a.ellipsis),r.children().each(function(){t(this).toggle().toggle()}),o(r,a)?(b=w,a.fallbackToLetter&&0===m&&0===b&&(p="",g=g[0].split(p),v=-1,w=-1,m=0,b=g.length-1)):(v=w,m=w)}if(v==-1||1===g.length&&0===g[0].length){var x=e.parent();e.detach();var C=d&&d.closest(x).length?d.length:0;if(x.contents().length>C?c=u(x.contents().eq(-1-C),n):(c=u(x,n,!0),C||x.detach()),c&&(h=i(s(c),a),l(c,h),C&&d)){var T=d.parent();t(c).parent().append(d),t.trim(T.html())||T.remove()}}else h=i(g.slice(0,v+1).join(p),a),l(c,h)}return!0}function o(t,e){return t.innerHeight()>e.maxHeight||e.maxLength&&t.text().trim().length>e.maxLength}function i(e,n){for(;t.inArray(e.slice(-1),n.lastCharacter.remove)>-1;)e=e.slice(0,-1);return t.inArray(e.slice(-1),n.lastCharacter.noEllipsis)<0&&(e+=n.ellipsis),e}function d(t){return{width:t.innerWidth(),height:t.innerHeight()}}function l(t,e){t.innerText?t.innerText=e:t.nodeValue?t.nodeValue=e:t.textContent&&(t.textContent=e)}function s(t){return t.innerText?t.innerText:t.nodeValue?t.nodeValue:t.textContent?t.textContent:""}function c(t){do t=t.previousSibling;while(t&&1!==t.nodeType&&3!==t.nodeType);return t}function u(e,n,r){var a,o=e&&e[0];if(o){if(!r){if(3===o.nodeType)return o;if(t.trim(e.text()))return u(e.contents().last(),n)}for(a=c(o);!a;){if(e=e.parent(),e.is(n)||!e.length)return!1;a=c(e[0])}if(a)return u(t(a),n)}return!1}function h(e,n){return!!e&&("string"==typeof e?(e=t(e,n),!!e.length&&e):!!e.jquery&&e)}function f(t){for(var e=t.innerHeight(),n=["paddingTop","paddingBottom"],r=0,a=n.length;r<a;r++){var o=parseInt(t.css(n[r]),10);isNaN(o)&&(o=0),e-=o}return e}if(!t.fn.dotdotdot){t.fn.dotdotdot=function(e){if(0===this.length)return t.fn.dotdotdot.debug('No element found for "'+this.selector+'".'),this;if(this.length>1)return this.each(function(){t(this).dotdotdot(e)});var a=this,i=a.contents();a.data("dotdotdot")&&a.trigger("destroy.dot"),a.data("dotdotdot-style",a.attr("style")||""),a.css("word-wrap","break-word"),"nowrap"===a.css("white-space")&&a.css("white-space","normal"),a.bind_events=function(){return a.bind("update.dot",function(e,d){switch(a.removeClass("is-truncated"),e.preventDefault(),e.stopPropagation(),typeof l.height){case"number":l.maxHeight=l.height;break;case"function":l.maxHeight=l.height.call(a[0]);break;default:l.maxHeight=f(a)}l.maxHeight+=l.tolerance,"undefined"!=typeof d&&(("string"==typeof d||"nodeType"in d&&1===d.nodeType)&&(d=t("<div />").append(d).contents()),d instanceof t&&(i=d)),g=a.wrapInner('<div class="dotdotdot" />').children(),g.contents().detach().end().append(i.clone(!0)).find("br").replaceWith("  <br />  ").end().css({height:"auto",width:"auto",border:"none",padding:0,margin:0});var c=!1,u=!1;return s.afterElement&&(c=s.afterElement.clone(!0),c.show(),s.afterElement.detach()),o(g,l)&&(u="children"==l.wrap?n(g,l,c):r(g,a,g,l,c)),g.replaceWith(g.contents()),g=null,t.isFunction(l.callback)&&l.callback.call(a[0],u,i),s.isTruncated=u,u}).bind("isTruncated.dot",function(t,e){return t.preventDefault(),t.stopPropagation(),"function"==typeof e&&e.call(a[0],s.isTruncated),s.isTruncated}).bind("originalContent.dot",function(t,e){return t.preventDefault(),t.stopPropagation(),"function"==typeof e&&e.call(a[0],i),i}).bind("destroy.dot",function(t){t.preventDefault(),t.stopPropagation(),a.unwatch().unbind_events().contents().detach().end().append(i).attr("style",a.data("dotdotdot-style")||"").removeClass("is-truncated").data("dotdotdot",!1)}),a},a.unbind_events=function(){return a.unbind(".dot"),a},a.watch=function(){if(a.unwatch(),"window"==l.watch){var e=t(window),n=e.width(),r=e.height();e.bind("resize.dot"+s.dotId,function(){n==e.width()&&r==e.height()&&l.windowResizeFix||(n=e.width(),r=e.height(),u&&clearInterval(u),u=setTimeout(function(){a.trigger("update.dot")},100))})}else c=d(a),u=setInterval(function(){if(a.is(":visible")){var t=d(a);c.width==t.width&&c.height==t.height||(a.trigger("update.dot"),c=t)}},500);return a},a.unwatch=function(){return t(window).unbind("resize.dot"+s.dotId),u&&clearInterval(u),a};var l=t.extend(!0,{},t.fn.dotdotdot.defaults,e),s={},c={},u=null,g=null;return l.lastCharacter.remove instanceof Array||(l.lastCharacter.remove=t.fn.dotdotdot.defaultArrays.lastCharacter.remove),l.lastCharacter.n
vendor: 12,793 bytes, lines 1829-1848
1829oEllipsis instanceof Array||(l.lastCharacter.noEllipsis=t.fn.dotdotdot.defaultArrays.lastCharacter.noEllipsis),s.afterElement=h(l.after,a),s.isTruncated=!1,s.dotId=p++,a.data("dotdotdot",!0).bind_events().trigger("update.dot"),l.watch&&a.watch(),a},t.fn.dotdotdot.defaults={ellipsis:"... ",wrap:"word",fallbackToLetter:!0,lastCharacter:{},tolerance:0,callback:null,after:null,height:null,watch:!1,windowResizeFix:!0,maxLength:null},t.fn.dotdotdot.defaultArrays={lastCharacter:{remove:[" "," ",",",";",".","!","?"],noEllipsis:[]}},t.fn.dotdotdot.debug=function(t){};var p=1,g=t.fn.html;t.fn.html=function(n){return n!=e&&!t.isFunction(n)&&this.data("dotdotdot")?this.trigger("update",[n]):g.apply(this,arguments)};var v=t.fn.text;t.fn.text=function(n){return n!=e&&!t.isFunction(n)&&this.data("dotdotdot")?(n=t("<div />").text(n).html(),this.trigger("update",[n])):v.apply(this,arguments)}}}(jQuery),jQuery(document).ready(function(t){t(".dot-ellipsis").each(function(){var e=t(this).hasClass("dot-resize-update"),n=t(this).hasClass("dot-timer-update"),r=0,a=t(this).attr("class").split(/\s+/);t.each(a,function(t,e){var n=e.match(/^dot-height-(\d+)$/);null!==n&&(r=Number(n[1]))});var o={};n&&(o.watch=!0),e&&(o.watch="window"),r>0&&(o.height=r),t(this).dotdotdot(o)})}),jQuery(window).on("load",function(){jQuery(".dot-ellipsis.dot-load-update").trigger("update.dot")});
1830
1831
1832/*
1833 _ _      _       _
1834 ___| (_) ___| | __  (_)___
1835 / __| | |/ __| |/ /  | / __|
1836 \__ \ | | (__|   < _ | \__ \
1837 |___/_|_|\___|_|\_(_)/ |___/
1838 |__/
1839
1840 Version: 1.6.0
1841 Author: Ken Wheeler
1842 Website: http://kenwheeler.github.io
1843 Docs: http://kenwheeler.github.io/slick
1844 Repo: http://github.com/kenwheeler/slick
1845 Issues: http://github.com/kenwheeler/slick/issues
1846
1847 */
1848 !function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):"undefined"!=typeof exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){"use strict";var b=window.Slick||{};b=function(){function c(c,d){var f,e=this;e.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:a(c),appendDots:a(c),arrows:!0,asNavFor:null,prevArrow:'<button type="button" data-role="none" class="slick-prev" aria-label="Previous" tabindex="0" role="button">Previous</button>',nextArrow:'<button type="button" data-role="none" class="slick-next" aria-label="Next" tabindex="0" role="button">Next</button>',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:"50px",cssEase:"ease",customPaging:function(b,c){return a('<button type="button" data-role="none" role="button" tabindex="0" />').text(c+1)},dots:!1,dotsClass:"slick-dots",draggable:!0,easing:"linear",edgeFriction:.35,fade:!1,focusOnSelect:!1,infinite:!0,initialSlide:0,lazyLoad:"ondemand",mobileFirst:!1,pauseOnHover:!0,pauseOnFocus:!0,pauseOnDotsHover:!1,respondTo:"window",responsive:null,rows:1,rtl:!1,slide:"",slidesPerRow:1,slidesToShow:1,slidesToScroll:1,speed:500,swipe:!0,swipeToSlide:!1,touchMove:!0,touchThreshold:5,useCSS:!0,useTransform:!0,variableWidth:!1,vertical:!1,verticalSwiping:!1,waitForAnimate:!0,zIndex:1e3},e.initials={animating:!1,dragging:!1,autoPlayTimer:null,currentDirection:0,currentLeft:null,currentSlide:0,direction:1,$dots:null,listWidth:null,listHeight:null,loadIndex:0,$nextArrow:null,$prevArrow:null,slideCount:null,slideWidth:null,$slideTrack:null,$slides:null,sliding:!1,slideOffset:0,swipeLeft:null,$list:null,touchObject:{},transformsEnabled:!1,unslicked:!1},a.extend(e,e.initials),e.activeBreakpoint=null,e.animType=null,e.animProp=null,e.breakpoints=[],e.breakpointSettings=[],e.cssTransitions=!1,e.focussed=!1,e.interrupted=!1,e.hidden="hidden",e.paused=!0,e.positionProp=null,e.respondTo=null,e.rowCount=1,e.shouldClick=!0,e.$slider=a(c),e.$slidesCache=null,e.transformType=null,e.transitionType=null,e.visibilityChange="visibilitychange",e.windowWidth=0,e.windowTimer=null,f=a(c).data("slick")||{},e.options=a.extend({},e.defaults,d,f),e.currentSlide=e.options.initialSlide,e.originalSettings=e.options,"undefined"!=typeof document.mozHidden?(e.hidden="mozHidden",e.visibilityChange="mozvisibilitychange"):"undefined"!=typeof document.webkitHidden&&(e.hidden="webkitHidden",e.visibilityChange="webkitvisibilitychange"),e.autoPlay=a.proxy(e.autoPlay,e),e.autoPlayClear=a.proxy(e.autoPlayClear,e),e.autoPlayIterator=a.proxy(e.autoPlayIterator,e),e.changeSlide=a.proxy(e.changeSlide,e),e.clickHandler=a.proxy(e.clickHandler,e),e.selectHandler=a.proxy(e.selectHandler,e),e.setPosition=a.proxy(e.setPosition,e),e.swipeHandler=a.proxy(e.swipeHandler,e),e.dragHandler=a.proxy(e.dragHandler,e),e.keyHandler=a.proxy(e.keyHandler,e),e.instanceUid=b++,e.htmlExpr=/^(?:\s*(<[\w\W]+>)[^>]*)$/,e.registerBreakpoints(),e.init(!0)}var b=0;return c}(),b.prototype.activateADA=function(){var a=this;a.$slideTrack.find(".slick-active").attr({"aria-hidden":"false"}).find("a, input, button, select").attr({tabindex:"0"})},b.prototype.addSlide=b.prototype.slickAdd=function(b,c,d){var e=this;if("boolean"==typeof c)d=c,c=null;else if(0>c||c>=e.slideCount)return!1;e.unload(),"number"==typeof c?0===c&&0===e.$slides.length?a(b).appendTo(e.$slideTrack):d?a(b).insertBefore(e.$slides.eq(c)):a(b).insertAfter(e.$slides.eq(c)):d===!0?a(b).prependTo(e.$slideTrack):a(b).appendTo(e.$slideTrack),e.$slides=e.$slideTrack.children(this.options.slide),e.$slideTrack.children(this.options.slide).detach(),e.$slideTrack.append(e.$slides),e.$slides.each(function(b,c){a(c).attr("data-slick-index",b)}),e.$slidesCache=e.$slides,e.reinit()},b.prototype.animateHeight=function(){var a=this;if(1===a.options.slidesToShow&&a.options.adaptiveHeight===!0&&a.options.vertical===!1){var b=a.$slides.eq(a.currentSlide).outerHeight(!0);a.$list.animate({height:b},a.options.speed)}},b.prototype.animateSlide=function(b,c){var d={},e=this;e.animateHeight(),e.options.rtl===!0&&e.options.vertical===!1&&(b=-b),e.transformsEnabled===!1?e.options.vertical===!1?e.$slideTrack.animate({left:b},e.options.speed,e.options.easing,c):e.$slideTrack.animate({top:b},e.options.speed,e.options.easing,c):e.cssTransitions===!1?(e.options.rtl===!0&&(e.currentLeft=-e.currentLeft),a({animStart:e.currentLeft}).animate({animStart:b},{duration:e.options.speed,easing:e.options.easing,step:function(a){a=Math.ceil(a),e.options.vertical===!1?(d[e.animType]="translate("+a+"px, 0px)",e.$slideTrack.css(d)):(d[e.animType]="translate(0px,"+a+"px)",e.$slideTrack.css(d))},complete:function(){c&&c.call()}})):(e.applyTransition(),b=Math.ceil(b),e.options.vertical===!1?d[e.animType]="translate3d("+b+"px, 0px, 0px)":d[e.animType]="translate3d(0px,"+b+"px, 0px)",e.$slideTrack.css(d),c&&setTimeout(function(){e.disableTransition(),c.call()},e.options.speed))},b.prototype.getNavTarget=function(){var b=this,c=b.options.asNavFor;return c&&null!==c&&(c=a(c).not(b.$slider)),c},b.prototype.asNavFor=function(b){var c=this,d=c.getNavTarget();null!==d&&"object"==typeof d&&d.each(function(){var c=a(this).slick("getSlick");c.unslicked||c.slideHandler(b,!0)})},b.prototype.applyTransition=function(a){var b=this,c={};b.options.fade===!1?c[b.transitionType]=b.transformType+" "+b.options.speed+"ms "+b.options.cssEase:c[b.transitionType]="opacity "+b.options.speed+"ms "+b.options.cssEase,b.options.fade===!1?b.$slideTrack.css(c):b.$slides.eq(a).css(c)},b.prototype.autoPlay=function(){var a=this;a.autoPlayClear(),a.slideCount>a.options.slidesToShow&&(a.autoPlayTimer=setInterval(a.autoPlayIterator,a.options.autoplaySpeed))},b.prototype.autoPlayClear=function(){var a=this;a.autoPlayTimer&&clearInterval(a.autoPlayTimer)},b.prototype.autoPlayIterator=function(){var a=this,b=a.currentSlide+a.options.slidesToScroll;a.paused||a.interrupted||a.focussed||(a.options.infinite===!1&&(1===a.direction&&a.currentSlide+1===a.slideCount-1?a.direction=0:0===a.direction&&(b=a.currentSlide-a.options.slidesToScroll,a.currentSlide-1===0&&(a.direction=1))),a.slideHandler(b))},b.prototype.buildArrows=function(){var b=this;b.options.arrows===!0&&(b.$prevArrow=a(b.options.prevArrow).addClass("slick-arrow"),b.$nextArrow=a(b.options.nextArrow).addClass("slick-arrow"),b.slideCount>b.options.slidesToShow?(b.$prevArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),b.$nextArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),b.htmlExpr.test(b.options.prevArrow)&&b.$prevArrow.prependTo(b.options.appendArrows),b.htmlExpr.test(b.options.nextArrow)&&b.$nextArrow.appendTo(b.options.appendArrows),b.options.infinite!==!0&&b.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true")):b.$prevArrow.add(b.$nextArrow).addClass("slick-hidden").attr({"aria-disabled":"true",tabindex:"-1"}))},b.prototype.buildDots=function(){var c,d,b=this;if(b.options.dots===!0&&b.slideCount>b.options.slidesToShow){for(b.$slider.addClass("slick-dotted"),d=a("<ul />").addClass(b.options.dotsClass),c=0;c<=b.getDotCount();c+=1)d.append(a("<li />").append(b.options.customPaging.call(this,b,c)));b.$dots=d.appendTo(b.options.appendDots),b.$dots.find("li").first().addClass("slick-active").attr("aria-hidden","false")}},b.prototype.buildOut=function(){var b=this;b.$slides=b.$slider.children(b.options.slide+":not(.slick-cloned)").addClass("slick-slide"),b.slideCount=b.$slides.length,b.$slides.each(function(b,c){a(c).attr("data-slick-index",b).data("originalStyling",a(c).attr("style")||"")}),b.$slider.addClass("slick-slider"),b.$slideTrack=0===b.slideCount?a('<div class="slick-track"/>').appendTo(b.$slider):b.$slides.wrapAll('<div class="slick-track"/>').parent(),b.$list=b.$slideTrack.wrap('<div aria-live="polite" class="slick-list"/>').parent(),b.$slideTrack.css("opacity",0),(b.options.centerMode===!0||b.options.swipeToSlide===!0)&&(b.options.slidesToScroll=1),a("img[data-lazy]",b.$slider).not("[src]").addClass("slick-loading"),b.setupInfinite(),b.buildArrows(),b.buildDots(),b.updateDots(),b.setSlideClasses("number"==typeof b.currentSlide?b.currentSlide:0),b.options.draggable===!0&&b.$list.addClass("draggable")},b.prototype.buildRows=function(){var b,c,d,e,f,g,h,a=this;if(e=document.createDocumentFragment(),g=a.$slider.children(),a.options.rows>1){for(h=a.options.slidesPerRow*a.options.rows,f=Math.ceil(g.length/h),b=0;f>b;b++){var i=document.createElement("div");for(c=0;c<a.options.rows;c++){var j=document.createElement("div");for(d=0;d<a.options.slidesPerRow;d++){var k=b*h+(c*a.options.slidesPerRow+d);g.get(k)&&j.appendChild(g.get(k))}i.appendChild(j)}e.appendChild(i)}a.$slider.empty().append(e),a.$slider.children().children().children().css({width:100/a.options.slidesPerRow+"%",display:"inline-block"})}},b.prototype.checkResponsive=function(b,c){var e,f,g,d=this,h=!1,i=d.$slider.width(),j=window.innerWidth||a(window).width();if("window"===d.respondTo?g=j:"slider"===d.respondTo?g=i:"min"===d.respondTo&&(g=Math.min(j,i)),d.options.responsive&&d.options.responsive.length&&null!==d.options.responsive){f=null;for(e in d.breakpoints)d.breakpoints.hasOwnProperty(e)&&(d.originalSettings.mobileFirst===!1?g<d.breakpoints[e]&&(f=d.breakpoints[e]):g>d.breakpoints[e]&&(f=d.breakpoints[e]));null!==f?null!==d.activeBreakpoint?(f!==d.activeBreakpoint||c)&&(d.activeBreakpoint=f,"unslick"===d.breakpointSettings[f]?d.unslick(f):(d.options=a.extend({},d.originalSettings,d.breakpointSettings[f]),b===!0&&(d.currentSlide=d.options.initialSlide),d.refresh(b)),h=f):(d.activeBreakpoint=f,"unslick"===d.breakpointSettings[f]?d.unslick(f):(d.options=a.extend({},d.originalSettings,d.breakpointSettings[f]),b===!0&&(d.currentSlide=d.options.initialSlide),d.refresh(b)),h=f):null!==d.activeBreakpoint&&(d.activeBreakpoint=null,d.options=d.originalSettings,b===!0&&(d.currentSlide=d.options.initialSlide),d.refresh(b),h=f),b||h===!1||d.$slider.trigger("breakpoint",[d,h])}},b.prototype.changeSlide=function(b,c){var f,g,h,d=this,e=a(b.currentTarget);switch(e.is("a")&&b.preventDefault(),e.is("li")||(e=e.closest("li")),h=d.slideCount%d.options.slidesToScroll!==0,f=h?0:(d.slideCount-d.currentSlide)%d.options.slidesToScroll,b.data.message){case"previous":g=0===f?d.options.slidesToScroll:d.options.slidesToShow-f,d.slideCount>d.options.slidesToShow&&d.slideHandler(d.currentSlide-g,!1,c);break;case"next":g=0===f?d.options.slidesToScroll:f,d.slideCount>d.options.slidesToShow&&d.slideHandler(d.currentSlide+g,!1,c);break;case"index":var i=0===b.data.index?0:b.data.index||e.index()*d.options.slidesToScroll;d.slideHandler(d.checkNavigable(i),!1,c),e.children().trigger("focus");break;default:return}},b.prototype.checkNavigable=function(a){var c,d,b=this;if(c=b.getNavigableIndexes(),d=0,a>c[c.length-1])a=c[c.length-1];else for(var e in c){if(a<c[e]){a=d;break}d=c[e]}return a},b.prototype.cleanUpEvents=function(){var b=this;b.options.dots&&null!==b.$dots&&a("li",b.$dots).off("click.slick",b.changeSlide).off("mouseenter.slick",a.proxy(b.interrupt,b,!0)).off("mouseleave.
1848slick",a.proxy(b.interrupt,b,!1)),b.$slider.off("focus.slick blur.slick"),b.options.arrows===!0&&b.slideCount>b.options.slidesToShow&&(b.$prevArrow&&b.$prevArrow.off("click.slick",b.changeSlide),b.$nextArrow&&b.$nextArrow.off("click.slick",b.changeSlide)),b.$list.off("touchstart.slick mousedown.slick",b.swipeHandler),b.$list.off("touchmove.slick mousemove.slick",b.swipeHandler),b.$list.off("touchend.slick mouseup.slick",b.swipeHandler),b.$list.off("touchcancel.slick mouseleave.slick",b.swipeHandler),b.$list.off("click.slick",b.clickHandler),a(document).off(b.visibilityChange,b.visibility),b.cleanUpSlideEvents(),b.options.accessibility===!0&&b.$list.off("keydown.slick",b.keyHandler),b.options.focusOnSelect===!0&&a(b.$slideTrack).children().off("click.slick",b.selectHandler),a(window).off("orientationchange.slick.slick-"+b.instanceUid,b.orientationChange),a(window).off("resize.slick.slick-"+b.instanceUid,b.resize),a("[draggable!=true]",b.$slideTrack).off("dragstart",b.preventDefault),a(window).off("load.slick.slick-"+b.instanceUid,b.setPosition),a(document).off("ready.slick.slick-"+b.instanceUid,b.setPosition)},b.prototype.cleanUpSlideEvents=function(){var b=this;b.$list.off("mouseenter.slick",a.proxy(b.interrupt,b,!0)),b.$list.off("mouseleave.slick",a.proxy(b.interrupt,b,!1))},b.prototype.cleanUpRows=function(){var b,a=this;a.options.rows>1&&(b=a.$slides.children().children(),b.removeAttr("style"),a.$slider.empty().append(b))},b.prototype.clickHandler=function(a){var b=this;b.shouldClick===!1&&(a.stopImmediatePropagation(),a.stopPropagation(),a.preventDefault())},b.prototype.destroy=function(b){var c=this;c.autoPlayClear(),c.touchObject={},c.cleanUpEvents(),a(".slick-cloned",c.$slider).detach(),c.$dots&&c.$dots.remove(),c.$prevArrow&&c.$prevArrow.length&&(c.$prevArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display",""),c.htmlExpr.test(c.options.prevArrow)&&c.$prevArrow.remove()),c.$nextArrow&&c.$nextArrow.length&&(c.$nextArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display",""),c.htmlExpr.test(c.options.nextArrow)&&c.$nextArrow.remove()),c.$slides&&(c.$slides.removeClass("slick-slide slick-active slick-center slick-visible slick-current").removeAttr("aria-hidden").removeAttr("data-slick-index").each(function(){a(this).attr("style",a(this).data("originalStyling"))}),c.$slideTrack.children(this.options.slide).detach(),c.$slideTrack.detach(),c.$list.detach(),c.$slider.append(c.$slides)),c.cleanUpRows(),c.$slider.removeClass("slick-slider"),c.$slider.removeClass("slick-initialized"),c.$slider.removeClass("slick-dotted"),c.unslicked=!0,b||c.$slider.trigger("destroy",[c])},b.prototype.disableTransition=function(a){var b=this,c={};c[b.transitionType]="",b.options.fade===!1?b.$slideTrack.css(c):b.$slides.eq(a).css(c)},b.prototype.fadeSlide=function(a,b){var c=this;c.cssTransitions===!1?(c.$slides.eq(a).css({zIndex:c.options.zIndex}),c.$slides.eq(a).animate({opacity:1},c.options.speed,c.options.easing,b)):(c.applyTransition(a),c.$slides.eq(a).css({opacity:1,zIndex:c.options.zIndex}),b&&setTimeout(function(){c.disableTransition(a),b.call()},c.options.speed))},b.prototype.fadeSlideOut=function(a){var b=this;b.cssTransitions===!1?b.$slides.eq(a).animate({opacity:0,zIndex:b.options.zIndex-2},b.options.speed,b.options.easing):(b.applyTransition(a),b.$slides.eq(a).css({opacity:0,zIndex:b.options.zIndex-2}))},b.prototype.filterSlides=b.prototype.slickFilter=function(a){var b=this;null!==a&&(b.$slidesCache=b.$slides,b.unload(),b.$slideTrack.children(this.options.slide).detach(),b.$slidesCache.filter(a).appendTo(b.$slideTrack),b.reinit())},b.prototype.focusHandler=function(){var b=this;b.$slider.off("focus.slick blur.slick").on("focus.slick blur.slick","*:not(.slick-arrow)",function(c){c.stopImmediatePropagation();var d=a(this);setTimeout(function(){b.options.pauseOnFocus&&(b.focussed=d.is(":focus"),b.autoPlay())},0)})},b.prototype.getCurrent=b.prototype.slickCurrentSlide=function(){var a=this;return a.currentSlide},b.prototype.getDotCount=function(){var a=this,b=0,c=0,d=0;if(a.options.infinite===!0)for(;b<a.slideCount;)++d,b=c+a.options.slidesToScroll,c+=a.options.slidesToScroll<=a.options.slidesToShow?a.options.slidesToScroll:a.options.slidesToShow;else if(a.options.centerMode===!0)d=a.slideCount;else if(a.options.asNavFor)for(;b<a.slideCount;)++d,b=c+a.options.slidesToScroll,c+=a.options.slidesToScroll<=a.options.slidesToShow?a.options.slidesToScroll:a.options.slidesToShow;else d=1+Math.ceil((a.slideCount-a.options.slidesToShow)/a.options.slidesToScroll);return d-1},b.prototype.getLeft=function(a){var c,d,f,b=this,e=0;return b.slideOffset=0,d=b.$slides.first().outerHeight(!0),b.options.infinite===!0?(b.slideCount>b.options.slidesToShow&&(b.slideOffset=b.slideWidth*b.options.slidesToShow*-1,e=d*b.options.slidesToShow*-1),b.slideCount%b.options.slidesToScroll!==0&&a+b.options.slidesToScroll>b.slideCount&&b.slideCount>b.options.slidesToShow&&(a>b.slideCount?(b.slideOffset=(b.options.slidesToShow-(a-b.slideCount))*b.slideWidth*-1,e=(b.options.slidesToShow-(a-b.slideCount))*d*-1):(b.slideOffset=b.slideCount%b.options.slidesToScroll*b.slideWidth*-1,e=b.slideCount%b.options.slidesToScroll*d*-1))):a+b.o
vendor: 4,100 bytes, line 1848
1848ptions.slidesToShow>b.slideCount&&(b.slideOffset=(a+b.options.slidesToShow-b.slideCount)*b.slideWidth,e=(a+b.options.slidesToShow-b.slideCount)*d),b.slideCount<=b.options.slidesToShow&&(b.slideOffset=0,e=0),b.options.centerMode===!0&&b.options.infinite===!0?b.slideOffset+=b.slideWidth*Math.floor(b.options.slidesToShow/2)-b.slideWidth:b.options.centerMode===!0&&(b.slideOffset=0,b.slideOffset+=b.slideWidth*Math.floor(b.options.slidesToShow/2)),c=b.options.vertical===!1?a*b.slideWidth*-1+b.slideOffset:a*d*-1+e,b.options.variableWidth===!0&&(f=b.slideCount<=b.options.slidesToShow||b.options.infinite===!1?b.$slideTrack.children(".slick-slide").eq(a):b.$slideTrack.children(".slick-slide").eq(a+b.options.slidesToShow),c=b.options.rtl===!0?f[0]?-1*(b.$slideTrack.width()-f[0].offsetLeft-f.width()):0:f[0]?-1*f[0].offsetLeft:0,b.options.centerMode===!0&&(f=b.slideCount<=b.options.slidesToShow||b.options.infinite===!1?b.$slideTrack.children(".slick-slide").eq(a):b.$slideTrack.children(".slick-slide").eq(a+b.options.slidesToShow+1),c=b.options.rtl===!0?f[0]?-1*(b.$slideTrack.width()-f[0].offsetLeft-f.width()):0:f[0]?-1*f[0].offsetLeft:0,c+=(b.$list.width()-f.outerWidth())/2)),c},b.prototype.getOption=b.prototype.slickGetOption=function(a){var b=this;return b.options[a]},b.prototype.getNavigableIndexes=function(){var e,a=this,b=0,c=0,d=[];for(a.options.infinite===!1?e=a.slideCount:(b=-1*a.options.slidesToScroll,c=-1*a.options.slidesToScroll,e=2*a.slideCount);e>b;)d.push(b),b=c+a.options.slidesToScroll,c+=a.options.slidesToScroll<=a.options.slidesToShow?a.options.slidesToScroll:a.options.slidesToShow;return d},b.prototype.getSlick=function(){return this},b.prototype.getSlideCount=function(){var c,d,e,b=this;return e=b.options.centerMode===!0?b.slideWidth*Math.floor(b.options.slidesToShow/2):0,b.options.swipeToSlide===!0?(b.$slideTrack.find(".slick-slide").each(function(c,f){return f.offsetLeft-e+a(f).outerWidth()/2>-1*b.swipeLeft?(d=f,!1):void 0}),c=Math.abs(a(d).attr("data-slick-index")-b.currentSlide)||1):b.options.slidesToScroll},b.prototype.goTo=b.prototype.slickGoTo=function(a,b){var c=this;c.changeSlide({data:{message:"index",index:parseInt(a)}},b)},b.prototype.init=function(b){var c=this;a(c.$slider).hasClass("slick-initialized")||(a(c.$slider).addClass("slick-initialized"),c.buildRows(),c.buildOut(),c.setProps(),c.startLoad(),c.loadSlider(),c.initializeEvents(),c.updateArrows(),c.updateDots(),c.checkResponsive(!0),c.focusHandler()),b&&c.$slider.trigger("init",[c]),c.options.accessibility===!0&&c.initADA(),c.options.autoplay&&(c.paused=!1,c.autoPlay())},b.prototype.initADA=function(){var b=this;b.$slides.add(b.$slideTrack.find(".slick-cloned")).attr({"aria-hidden":"true",tabindex:"-1"}).find("a, input, button, select").attr({tabindex:"-1"}),b.$slideTrack.attr("role","listbox"),b.$slides.not(b.$slideTrack.find(".slick-cloned")).each(function(c){a(this).attr({role:"option","aria-describedby":"slick-slide"+b.instanceUid+c})}),null!==b.$dots&&b.$dots.attr("role","tablist").find("li").each(function(c){a(this).attr({role:"presentation","aria-selected":"false","aria-controls":"navigation"+b.instanceUid+c,id:"slick-slide"+b.instanceUid+c})}).first().attr("aria-selected","true").end().find("button").attr("role","button").end().closest("div").attr("role","toolbar"),b.activateADA()},b.prototype.initArrowEvents=function(){var a=this;a.options.arrows===!0&&a.slideCount>a.options.slidesToShow&&(a.$prevArrow.off("click.slick").on("click.slick",{message:"previous"},a.changeSlide),a.$nextArrow.off("click.slick").on("click.slick",{message:"next"},a.changeSlide))},b.prototype.initDotEvents=function(){var b=this;b.options.dots===!0&&b.slideCount>b.options.slidesToShow&&a("li",b.$dots).on("click.slick",{message:"index"},b.changeSlide),b.options.dots===!0&&b.options.pauseOnDotsHover===!0&&a("li",b.$dots).on("mouseenter.slick",a.proxy(b.interrupt,b,!0)).on("mouseleave.slick",a.proxy(b.interrupt,b,!1))},b.prototype.initSlideEvents=function(){var b=this;b.options.pauseOnHover&&(b.$list.on("mouseenter.slick",a.proxy(b.interrupt,b,!0)),b.$list.on("mouseleave.
1848slick",a.proxy(b.interrupt,b,!1)))},b.prototype.initializeEvents=function(){var b=this;b.initArrowEvents(),b.initDotEvents(),b.initSlideEvents(),b.$list.on("touchstart.slick mousedown.slick",{action:"start"},b.swipeHandler),b.$list.on("touchmove.slick mousemove.slick",{action:"move"},b.swipeHandler),b.$list.on("touchend.slick mouseup.slick",{action:"end"},b.swipeHandler),b.$list.on("touchcancel.slick mouseleave.slick",{action:"end"},b.swipeHandler),b.$list.on("click.slick",b.clickHandler),a(document).on(b.visibilityChange,a.proxy(b.visibility,b)),b.options.accessibility===!0&&b.$list.on("keydown.slick",b.keyHandler),b.options.focusOnSelect===!0&&a(b.$slideTrack).children().on("click.slick",b.selectHandler),a(window).on("orientationchange.slick.slick-"+b.instanceUid,a.proxy(b.orientationChange,b)),a(window).on("resize.slick.slick-"+b.instanceUid,a.proxy(b.resize,b)),a("[draggable!=true]",b.$slideTrack).on("dragstart",b.preventDefault),a(window).on("load.slick.slick-"+b.instanceUid,b.setPosition),a(document).on("ready.slick.slick-"+b.instanceUid,b.setPosition)},b.prototype.initUI=function(){var a=this;a.options.arrows===!0&&a.slideCount>a.options.slidesToShow&&(a.$prevArrow.show(),a.$nextArrow.show()),a.options.dots===!0&&a.slideCount>a.options.slidesToShow&&a.$dots.show()},b.prototype.keyHandler=function(a){var b=this;a.target.tagName.match("TEXTAREA|INPUT|SELECT")||(37===a.keyCode&&b.options.accessibility===!0?b.changeSlide({data:{message:b.options.rtl===!0?"next":"previous"}}):39===a.keyCode&&b.options.accessibility===!0&&b.changeSlide({data:{message:b.options.rtl===!0?"previous":"next"}}))},b.prototype.lazyLoad=function(){function g(c){a("img[data-lazy]",c).each(function(){var c=a(this),d=a(this).attr("data-lazy"),e=document.createElement("img");e.onload=function(){c.animate({opacity:0}
vendor: 4,284 bytes, line 1848
1848,100,function(){c.attr("src",d).animate({opacity:1},200,function(){c.removeAttr("data-lazy").removeClass("slick-loading")}),b.$slider.trigger("lazyLoaded",[b,c,d])})},e.onerror=function(){c.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),b.$slider.trigger("lazyLoadError",[b,c,d])},e.src=d})}var c,d,e,f,b=this;b.options.centerMode===!0?b.options.infinite===!0?(e=b.currentSlide+(b.options.slidesToShow/2+1),f=e+b.options.slidesToShow+2):(e=Math.max(0,b.currentSlide-(b.options.slidesToShow/2+1)),f=2+(b.options.slidesToShow/2+1)+b.currentSlide):(e=b.options.infinite?b.options.slidesToShow+b.currentSlide:b.currentSlide,f=Math.ceil(e+b.options.slidesToShow),b.options.fade===!0&&(e>0&&e--,f<=b.slideCount&&f++)),c=b.$slider.find(".slick-slide").slice(e,f),g(c),b.slideCount<=b.options.slidesToShow?(d=b.$slider.find(".slick-slide"),g(d)):b.currentSlide>=b.slideCount-b.options.slidesToShow?(d=b.$slider.find(".slick-cloned").slice(0,b.options.slidesToShow),g(d)):0===b.currentSlide&&(d=b.$slider.find(".slick-cloned").slice(-1*b.options.slidesToShow),g(d))},b.prototype.loadSlider=function(){var a=this;a.setPosition(),a.$slideTrack.css({opacity:1}),a.$slider.removeClass("slick-loading"),a.initUI(),"progressive"===a.options.lazyLoad&&a.progressiveLazyLoad()},b.prototype.next=b.prototype.slickNext=function(){var a=this;a.changeSlide({data:{message:"next"}})},b.prototype.orientationChange=function(){var a=this;a.checkResponsive(),a.setPosition()},b.prototype.pause=b.prototype.slickPause=function(){var a=this;a.autoPlayClear(),a.paused=!0},b.prototype.play=b.prototype.slickPlay=function(){var a=this;a.autoPlay(),a.options.autoplay=!0,a.paused=!1,a.focussed=!1,a.interrupted=!1},b.prototype.postSlide=function(a){var b=this;b.unslicked||(b.$slider.trigger("afterChange",[b,a]),b.animating=!1,b.setPosition(),b.swipeLeft=null,b.options.autoplay&&b.autoPlay(),b.options.accessibility===!0&&b.initADA())},b.prototype.prev=b.prototype.slickPrev=function(){var a=this;a.changeSlide({data:{message:"previous"}})},b.prototype.preventDefault=function(a){a.preventDefault()},b.prototype.progressiveLazyLoad=function(b){b=b||1;var e,f,g,c=this,d=a("img[data-lazy]",c.$slider);d.length?(e=d.first(),f=e.attr("data-lazy"),g=document.createElement("img"),g.onload=function(){e.attr("src",f).removeAttr("data-lazy").removeClass("slick-loading"),c.options.adaptiveHeight===!0&&c.setPosition(),c.$slider.trigger("lazyLoaded",[c,e,f]),c.progressiveLazyLoad()},g.onerror=function(){3>b?setTimeout(function(){c.progressiveLazyLoad(b+1)},500):(e.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),c.$slider.trigger("lazyLoadError",[c,e,f]),c.progressiveLazyLoad())},g.src=f):c.$slider.trigger("allImagesLoaded",[c])},b.prototype.refresh=function(b){var d,e,c=this;e=c.slideCount-c.options.slidesToShow,!c.options.infinite&&c.currentSlide>e&&(c.currentSlide=e),c.slideCount<=c.options.slidesToShow&&(c.currentSlide=0),d=c.currentSlide,c.destroy(!0),a.extend(c,c.initials,{currentSlide:d}),c.init(),b||c.changeSlide({data:{message:"index",index:d}},!1)},b.prototype.registerBreakpoints=function(){var c,d,e,b=this,f=b.options.responsive||null;if("array"===a.type(f)&&f.length){b.respondTo=b.options.respondTo||"window";for(c in f)if(e=b.breakpoints.length-1,d=f[c].breakpoint,f.hasOwnProperty(c)){for(;e>=0;)b.breakpoints[e]&&b.breakpoints[e]===d&&b.breakpoints.splice(e,1),e--;b.breakpoints.push(d),b.breakpointSettings[d]=f[c].settings}b.breakpoints.sort(function(a,c){return b.options.mobileFirst?a-c:c-a})}},b.prototype.reinit=function(){var b=this;b.$slides=b.$slideTrack.children(b.options.slide).addClass("slick-slide"),b.slideCount=b.$slides.length,b.currentSlide>=b.slideCount&&0!==b.currentSlide&&(b.currentSlide=b.currentSlide-b.options.slidesToScroll),b.slideCount<=b.options.slidesToShow&&(b.currentSlide=0),b.registerBreakpoints(),b.setProps(),b.setupInfinite(),b.buildArrows(),b.updateArrows(),b.initArrowEvents(),b.buildDots(),b.updateDots(),b.initDotEvents(),b.cleanUpSlideEvents(),b.initSlideEvents(),b.checkResponsive(!1,!0),b.options.focusOnSelect===!0&&a(b.$slideTrack).children().on("click.slick",b.selectHandler),b.setSlideClasses("number"==typeof b.currentSlide?b.currentSlide:0),b.setPosition(),b.focu
vendor: 2,346 bytes, line 1848
1848sHandler(),b.paused=!b.options.autoplay,b.autoPlay(),b.$slider.trigger("reInit",[b])},b.prototype.resize=function(){var b=this;a(window).width()!==b.windowWidth&&(clearTimeout(b.windowDelay),b.windowDelay=window.setTimeout(function(){b.windowWidth=a(window).width(),b.checkResponsive(),b.unslicked||b.setPosition()},50))},b.prototype.removeSlide=b.prototype.slickRemove=function(a,b,c){var d=this;return"boolean"==typeof a?(b=a,a=b===!0?0:d.slideCount-1):a=b===!0?--a:a,d.slideCount<1||0>a||a>d.slideCount-1?!1:(d.unload(),c===!0?d.$slideTrack.children().remove():d.$slideTrack.children(this.options.slide).eq(a).remove(),d.$slides=d.$slideTrack.children(this.options.slide),d.$slideTrack.children(this.options.slide).detach(),d.$slideTrack.append(d.$slides),d.$slidesCache=d.$slides,void d.reinit())},b.prototype.setCSS=function(a){var d,e,b=this,c={};b.options.rtl===!0&&(a=-a),d="left"==b.positionProp?Math.ceil(a)+"px":"0px",e="top"==b.positionProp?Math.ceil(a)+"px":"0px",c[b.positionProp]=a,b.transformsEnabled===!1?b.$slideTrack.css(c):(c={},b.cssTransitions===!1?(c[b.animType]="translate("+d+", "+e+")",b.$slideTrack.css(c)):(c[b.animType]="translate3d("+d+", "+e+", 0px)",b.$slideTrack.css(c)))},b.prototype.setDimensions=function(){var a=this;a.options.vertical===!1?a.options.centerMode===!0&&a.$list.css({padding:"0px "+a.options.centerPadding}):(a.$list.height(a.$slides.first().outerHeight(!0)*a.options.slidesToShow),a.options.centerMode===!0&&a.$list.css({padding:a.options.centerPadding+" 0px"})),a.listWidth=a.$list.width(),a.listHeight=a.$list.height(),a.options.vertical===!1&&a.options.variableWidth===!1?(a.slideWidth=Math.ceil(a.listWidth/a.options.slidesToShow),a.$slideTrack.width(Math.ceil(a.slideWidth*a.$slideTrack.children(".slick-slide").length))):a.options.variableWidth===!0?a.$slideTrack.width(5e3*a.slideCount):(a.slideWidth=Math.ceil(a.listWidth),a.$slideTrack.height(Math.ceil(a.$slides.first().outerHeight(!0)*a.$slideTrack.children(".slick-slide").length)));var b=a.$slides.first().outerWidth(!0)-a.$slides.first().width();a.options.variableWidth===!1&&a.$slideTrack.children(".slick-slide").width(a.slideWidth-b)},b.prototype.setFade=function(){var c,b=this;b.$slides.each(function(d,e){c=b.slideWidth*d*-1,b.options.rtl===!0?a(e).css({position:"relative",right:c,top:0,zIndex:b.options.zIndex-2,opacity:0}
vendor: 3,180 bytes, lines 1848-1849
1848):a(e).css({position:"relative",left:c,top:0,zIndex:b.options.zIndex-2,opacity:0})}),b.$slides.eq(b.currentSlide).css({zIndex:b.options.zIndex-1,opacity:1})},b.prototype.setHeight=function(){var a=this;if(1===a.options.slidesToShow&&a.options.adaptiveHeight===!0&&a.options.vertical===!1){var b=a.$slides.eq(a.currentSlide).outerHeight(!0);a.$list.css("height",b)}},b.prototype.setOption=b.prototype.slickSetOption=function(){var c,d,e,f,h,b=this,g=!1;if("object"===a.type(arguments[0])?(e=arguments[0],g=arguments[1],h="multiple"):"string"===a.type(arguments[0])&&(e=arguments[0],f=arguments[1],g=arguments[2],"responsive"===arguments[0]&&"array"===a.type(arguments[1])?h="responsive":"undefined"!=typeof arguments[1]&&(h="single")),"single"===h)b.options[e]=f;else if("multiple"===h)a.each(e,function(a,c){b.options[a]=c});else if("responsive"===h)for(d in f)if("array"!==a.type(b.options.responsive))b.options.responsive=[f[d]];else{for(c=b.options.responsive.length-1;c>=0;)b.options.responsive[c].breakpoint===f[d].breakpoint&&b.options.responsive.splice(c,1),c--;b.options.responsive.push(f[d])}g&&(b.unload(),b.reinit())},b.prototype.setPosition=function(){var a=this;a.setDimensions(),a.setHeight(),a.options.fade===!1?a.setCSS(a.getLeft(a.currentSlide)):a.setFade(),a.$slider.trigger("setPosition",[a])},b.prototype.setProps=function(){var a=this,b=document.body.style;a.positionProp=a.options.vertical===!0?"top":"left","top"===a.positionProp?a.$slider.addClass("slick-vertical"):a.$slider.removeClass("slick-vertical"),(void 0!==b.WebkitTransition||void 0!==b.MozTransition||void 0!==b.msTransition)&&a.options.useCSS===!0&&(a.cssTransitions=!0),a.options.fade&&("number"==typeof a.options.zIndex?a.options.zIndex<3&&(a.options.zIndex=3):a.options.zIndex=a.defaults.zIndex),void 0!==b.OTransform&&(a.animType="OTransform",a.transformType="-o-transform",a.transitionType="OTransition",void 0===b.perspectiveProperty&&void 0===b.webkitPerspective&&(a.animType=!1)),void 0!==b.MozTransform&&(a.animType="MozTransform",a.transformType="-moz-transform",a.transitionType="MozTransition",void 0===b.perspectiveProperty&&void 0===b.MozPerspective&&(a.animType=!1)),void 0!==b.webkitTransform&&(a.animType="webkitTransform",a.transformType="-webkit-transform",a.transitionType="webkitTransition",void 0===b.perspectiveProperty&&void 0===b.webkitPerspective&&(a.animType=!1)),void 0!==b.msTransform&&(a.animType="msTransform",a.transformType="-ms-transform",a.transitionType="msTransition",void 0===b.msTransform&&(a.animType=!1)),void 0!==b.transform&&a.animType!==!1&&(a.animType="transform",a.transformType="transform",a.transitionType="transition"),a.transformsEnabled=a.options.useTransform&&null!==a.animType&&a.animType!==!1},b.prototype.setSlideClasses=function(a){var c,d,e,f,b=this;d=b.$slider.find(".slick-slide").removeClass("slick-active slick-center slick-current").attr("aria-hidden","true"),b.$slides.eq(a).addClass("slick-current"),b.options.centerMode===!0?(c=Math.floor(b.options.slidesToShow/2),b.options.infinite===!0&&(a>=c&&a<=b.slideCount-1-c?b.$slides.slice(a-c,a+c+1).addClass("slick-active").attr("aria-hidden","false"):(e=b.options.slidesToShow+a,
1849 	
vendor: 1,607 bytes, line 1849
1849d.slice(e-c+1,e+c+2).addClass("slick-active").attr("aria-hidden","false")),0===a?d.eq(d.length-1-b.options.slidesToShow).addClass("slick-center"):a===b.slideCount-1&&d.eq(b.options.slidesToShow).addClass("slick-center")),b.$slides.eq(a).addClass("slick-center")):a>=0&&a<=b.slideCount-b.options.slidesToShow?b.$slides.slice(a,a+b.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false"):d.length<=b.options.slidesToShow?d.addClass("slick-active").attr("aria-hidden","false"):(f=b.slideCount%b.options.slidesToShow,e=b.options.infinite===!0?b.options.slidesToShow+a:a,b.options.slidesToShow==b.options.slidesToScroll&&b.slideCount-a<b.options.slidesToShow?d.slice(e-(b.options.slidesToShow-f),e+f).addClass("slick-active").attr("aria-hidden","false"):d.slice(e,e+b.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false")),"ondemand"===b.options.lazyLoad&&b.lazyLoad()},b.prototype.setupInfinite=function(){var c,d,e,b=this;if(b.options.fade===!0&&(b.options.centerMode=!1),b.options.infinite===!0&&b.options.fade===!1&&(d=null,b.slideCount>b.options.slidesToShow)){for(e=b.options.centerMode===!0?b.options.slidesToShow+1:b.options.slidesToShow,c=b.slideCount;c>b.slideCount-e;c-=1)d=c-1,a(b.$slides[d]).clone(!0).attr("id","").attr("data-slick-index",d-b.slideCount).prependTo(b.$slideTrack).addClass("slick-cloned");for(c=0;e>c;c+=1)d=c,a(b.$slides[d]).clone(!0).attr("id","").attr("data-slick-index",d+b.slideCount).appendTo(b.$slideTrack).addClass("slick-cloned");b.$slideTrack.find(".slick-cloned").find("[id]").each(function(){a(this).attr("id","")})}},b.prototype.
vendor: 7,880 bytes, line 1849
1849interrupt=function(a){var b=this;a||b.autoPlay(),b.interrupted=a},b.prototype.selectHandler=function(b){var c=this,d=a(b.target).is(".slick-slide")?a(b.target):a(b.target).parents(".slick-slide"),e=parseInt(d.attr("data-slick-index"));return e||(e=0),c.slideCount<=c.options.slidesToShow?(c.setSlideClasses(e),void c.asNavFor(e)):void c.slideHandler(e)},b.prototype.slideHandler=function(a,b,c){var d,e,f,g,j,h=null,i=this;return b=b||!1,i.animating===!0&&i.options.waitForAnimate===!0||i.options.fade===!0&&i.currentSlide===a||i.slideCount<=i.options.slidesToShow?void 0:(b===!1&&i.asNavFor(a),d=a,h=i.getLeft(d),g=i.getLeft(i.currentSlide),i.currentLeft=null===i.swipeLeft?g:i.swipeLeft,i.options.infinite===!1&&i.options.centerMode===!1&&(0>a||a>i.getDotCount()*i.options.slidesToScroll)?void(i.options.fade===!1&&(d=i.currentSlide,c!==!0?i.animateSlide(g,function(){i.postSlide(d)}):i.postSlide(d))):i.options.infinite===!1&&i.options.centerMode===!0&&(0>a||a>i.slideCount-i.options.slidesToScroll)?void(i.options.fade===!1&&(d=i.currentSlide,c!==!0?i.animateSlide(g,function(){i.postSlide(d)}):i.postSlide(d))):(i.options.autoplay&&clearInterval(i.autoPlayTimer),e=0>d?i.slideCount%i.options.slidesToScroll!==0?i.slideCount-i.slideCount%i.options.slidesToScroll:i.slideCount+d:d>=i.slideCount?i.slideCount%i.options.slidesToScroll!==0?0:d-i.slideCount:d,i.animating=!0,i.$slider.trigger("beforeChange",[i,i.currentSlide,e]),f=i.currentSlide,i.currentSlide=e,i.setSlideClasses(i.currentSlide),i.options.asNavFor&&(j=i.getNavTarget(),j=j.slick("getSlick"),j.slideCount<=j.options.slidesToShow&&j.setSlideClasses(i.currentSlide)),i.updateDots(),i.updateArrows(),i.options.fade===!0?(c!==!0?(i.fadeSlideOut(f),i.fadeSlide(e,function(){i.postSlide(e)})):i.postSlide(e),void i.animateHeight()):void(c!==!0?i.animateSlide(h,function(){i.postSlide(e)}):i.postSlide(e))))},b.prototype.startLoad=function(){var a=this;a.options.arrows===!0&&a.slideCount>a.options.slidesToShow&&(a.$prevArrow.hide(),a.$nextArrow.hide()),a.options.dots===!0&&a.slideCount>a.options.slidesToShow&&a.$dots.hide(),a.$slider.addClass("slick-loading")},b.prototype.swipeDirection=function(){var a,b,c,d,e=this;return a=e.touchObject.startX-e.touchObject.curX,b=e.touchObject.startY-e.touchObject.curY,c=Math.atan2(b,a),d=Math.round(180*c/Math.PI),0>d&&(d=360-Math.abs(d)),45>=d&&d>=0?e.options.rtl===!1?"left":"right":360>=d&&d>=315?e.options.rtl===!1?"left":"right":d>=135&&225>=d?e.options.rtl===!1?"right":"left":e.options.verticalSwiping===!0?d>=35&&135>=d?"down":"up":"vertical"},b.prototype.swipeEnd=function(a){var c,d,b=this;if(b.dragging=!1,b.interrupted=!1,b.shouldClick=b.touchObject.swipeLength>10?!1:!0,void 0===b.touchObject.curX)return!1;if(b.touchObject.edgeHit===!0&&b.$slider.trigger("edge",[b,b.swipeDirection()]),b.touchObject.swipeLength>=b.touchObject.minSwipe){switch(d=b.swipeDirection()){case"left":case"down":c=b.options.swipeToSlide?b.checkNavigable(b.currentSlide+b.getSlideCount()):b.currentSlide+b.getSlideCount(),b.currentDirection=0;break;case"right":case"up":c=b.options.swipeToSlide?b.checkNavigable(b.currentSlide-b.getSlideCount()):b.currentSlide-b.getSlideCount(),b.currentDirection=1}"vertical"!=d&&(b.slideHandler(c),b.touchObject={},b.$slider.trigger("swipe",[b,d]))}else b.touchObject.startX!==b.touchObject.curX&&(b.slideHandler(b.currentSlide),b.touchObject={})},b.prototype.swipeHandler=function(a){var b=this;if(!(b.options.swipe===!1||"ontouchend"in document&&b.options.swipe===!1||b.options.draggable===!1&&-1!==a.type.indexOf("mouse")))switch(b.touchObject.fingerCount=a.originalEvent&&void 0!==a.originalEvent.touches?a.originalEvent.touches.length:1,b.touchObject.minSwipe=b.listWidth/b.options.touchThreshold,b.options.verticalSwiping===!0&&(b.touchObject.minSwipe=b.listHeight/b.options.touchThreshold),a.data.action){case"start":b.swipeStart(a);break;case"move":b.swipeMove(a);break;case"end":b.swipeEnd(a)}},b.prototype.swipeMove=function(a){var d,e,f,g,h,b=this;return h=void 0!==a.originalEvent?a.originalEvent.touches:null,!b.dragging||h&&1!==h.length?!1:(d=b.getLeft(b.currentSlide),b.touchObject.curX=void 0!==h?h[0].pageX:a.clientX,b.touchObject.curY=void 0!==h?h[0].pageY:a.clientY,b.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(b.touchObject.curX-b.touchObject.startX,2))),b.options.verticalSwiping===!0&&(b.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(b.touchObject.curY-b.touchObject.startY,2)))),e=b.swipeDirection(),"vertical"!==e?(void 0!==a.originalEvent&&b.touchObject.swipeLength>4&&a.preventDefault(),g=(b.options.rtl===!1?1:-1)*(b.touchObject.curX>b.touchObject.startX?1:-1),b.options.verticalSwiping===!0&&(g=b.touchObject.curY>b.touchObject.startY?1:-1),f=b.touchObject.swipeLength,b.touchObject.edgeHit=!1,b.options.infinite===!1&&(0===b.currentSlide&&"right"===e||b.currentSlide>=b.getDotCount()&&"left"===e)&&(f=b.touchObject.swipeLength*b.options.edgeFriction,b.touchObject.edgeHit=!0),b.options.vertical===!1?b.swipeLeft=d+f*g:b.swipeLeft=d+f*(b.$list.height()/b.listWidth)*g,b.options.verticalSwiping===!0&&(b.swipeLeft=d+f*g),b.options.fade===!0||b.options.touchMove===!1?!1:b.animating===!0?(b.swipeLeft=null,!1):void b.setCSS(b.swipeLeft)):void 0)},b.prototype.swipeStart=function(a){var c,b=this;return b.interrupted=!0,1!==b.touchObject.fingerCount||b.slideCount<=b.options.slidesToShow?(b.touchObject={},!1):(void 0!==a.originalEvent&&void 0!==a.originalEvent.touches&&(c=a.originalEvent.touches[0]),b.touchObject.startX=b.touchObject.curX=void 0!==c?c.pageX:a.clientX,b.touchObject.startY=b.touchObject.curY=void 0!==c?c.pageY:a.clientY,void(b.dragging=!0))},b.prototype.unfilterSlides=b.prototype.slickUnfilter=function(){var a=this;null!==a.$slidesCache&&(a.unload(),a.$slideTrack.children(this.options.slide).detach(),a.$slidesCache.appendTo(a.$slideTrack),a.reinit())},b.prototype.unload=function(){var b=this;a(".slick-cloned",b.$slider).remove(),b.$dots&&b.$dots.remove(),b.$prevArrow&&b.htmlExpr.test(b.options.prevArrow)&&b.$prevArrow.remove(),b.$nextArrow&&b.htmlExpr.test(b.options.nextArrow)&&b.$nextArrow.remove(),b.$slides.removeClass("slick-slide slick-active slick-visible slick-current").attr("aria-hidden","true").css("width","")},b.prototype.unslick=function(a){var b=this;b.$slider.trigger("unslick",[b,a]),b.destroy()},b.prototype.updateArrows=function(){var b,a=this;b=Math.floor(a.options.slidesToShow/2),a.options.arrows===!0&&a.slideCount>a.options.slidesToShow&&!a.options.infinite&&(a.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false"),a.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false"),0===a.currentSlide?(a.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true"),a.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false")):a.currentSlide>=a.slideCount-a.options.slidesToShow&&a.options.centerMode===!1?(a.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true"),a.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")):a.currentSlide>=a.slideCount-1&&a.options.centerMode===!0&&(a.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true"),a.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")))},b.prototype.updateDots=function(){var a=this;null!==a.$dots&&(a.$dots.find("li").removeClass("slick-active").attr("aria-hidden","true"),a.$dots.find("li").eq(Math.floor(a.currentSlide/a.options.slidesToScroll)).addClass("slick-active").attr("aria-hidden","false"))},b.prototype.visibility=function(){var a=this;a.options.autoplay&&(document[a.hidden]?a.interrupted=!0:a.interrupted=!1)},a.fn.slick=function(){var f,g,a=this,c=arguments[0],d=Array.prototype.slice.call(arguments,1),e=a.length;for(f=0;e>f;f++)if("object"==typeof c||"undefined"==typeof c?a[f].slick=new b(a[f],c):g=a[f].slick[c].apply(a[f].slick,d),"undefined"!=typeof g)return g;return a}});

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.