
/**
 * @preserve
 * Project: Bootstrap Hover Dropdown
 * Author: Cameron Spear
 * Version: v2.0.11
 * Contributors: Mattia Larentis
 * Dependencies: Bootstrap's Dropdown plugin, jQuery
 * Description: A simple plugin to enable Bootstrap dropdowns to active on hover and provide a nice user experience.
 * License: MIT
 * Homepage: http://cameronspear.com/blog/bootstrap-dropdown-on-hover-plugin/
 */
;(function ($, window, undefined) {
    // outside the scope of the jQuery plugin to
    // keep track of all dropdowns
    var $allDropdowns = $();

    // if instantlyCloseOthers is true, then it will instantly
    // shut other nav items when a new one is hovered over
    $.fn.dropdownHover = function (options) {
        // don't do anything if touch is supported
        // (plugin causes some issues on mobile)
        if('ontouchstart' in document) return this; // don't want to affect chaining

        // the element we really care about
        // is the dropdown-toggle's parent
        $allDropdowns = $allDropdowns.add(this.parent());

        return this.each(function () {
            var $this = $(this),
                $parent = $this.parent(),
                defaults = {
                    delay: 500,
                    instantlyCloseOthers: true
                },
                data = {
                    delay: $(this).data('delay'),
                    instantlyCloseOthers: $(this).data('close-others')
                },
                showEvent   = 'show.bs.dropdown',
                hideEvent   = 'hide.bs.dropdown',
                // shownEvent  = 'shown.bs.dropdown',
                // hiddenEvent = 'hidden.bs.dropdown',
                settings = $.extend(true, {}, defaults, options, data),
                timeout;

            $parent.hover(function (event) {
                // so a neighbor can't open the dropdown
                if(!$parent.hasClass('open') && !$this.is(event.target)) {
                    // stop this event, stop executing any code
                    // in this callback but continue to propagate
                    return true;
                }

                openDropdown(event);
            }, function () {
                timeout = window.setTimeout(function () {
                    $parent.removeClass('open');
                    $this.trigger(hideEvent);
                }, settings.delay);
            });

            // this helps with button groups!
            $this.hover(function (event) {
                // this helps prevent a double event from firing.
                // see https://github.com/CWSpear/bootstrap-hover-dropdown/issues/55
                if(!$parent.hasClass('open') && !$parent.is(event.target)) {
                    // stop this event, stop executing any code
                    // in this callback but continue to propagate
                    return true;
                }

                openDropdown(event);
            });

            // handle submenus
            $parent.find('.dropdown-submenu').each(function (){
                var $this = $(this);
                var subTimeout;
                $this.hover(function () {
                    window.clearTimeout(subTimeout);
                    $this.children('.dropdown-menu').show();
                    // always close submenu siblings instantly
                    $this.siblings().children('.dropdown-menu').hide();
                }, function () {
                    var $submenu = $this.children('.dropdown-menu');
                    subTimeout = window.setTimeout(function () {
                        $submenu.hide();
                    }, settings.delay);
                });
            });

            function openDropdown(event) {
                $allDropdowns.find(':focus').blur();

                if(settings.instantlyCloseOthers === true)
                    $allDropdowns.removeClass('open');

                window.clearTimeout(timeout);
                $parent.addClass('open');
                $this.trigger(showEvent);
            }
        });
    };

    $(document).ready(function () {
        // apply dropdownHover to all elements with the data-hover="dropdown" attribute
        $('[data-hover="dropdown"]').dropdownHover();
    });
})(jQuery, this);

/*!
 * JavaScript Cookie v2.1.0
 * https://github.com/js-cookie/js-cookie
 *
 * Copyright 2006, 2015 Klaus Hartl & Fagner Brack
 * Released under the MIT license
 */
(function (factory) {
	if (typeof define === 'function' && define.amd) {
		define(factory);
	} else if (typeof exports === 'object') {
		module.exports = factory();
	} else {
		var _OldCookies = window.Cookies;
		var api = window.Cookies = factory();
		api.noConflict = function () {
			window.Cookies = _OldCookies;
			return api;
		};
	}
}(function () {
	function extend () {
		var i = 0;
		var result = {};
		for (; i < arguments.length; i++) {
			var attributes = arguments[ i ];
			for (var key in attributes) {
				result[key] = attributes[key];
			}
		}
		return result;
	}

	function init (converter) {
		function api (key, value, attributes) {
			var result;

			// Write

			if (arguments.length > 1) {
				attributes = extend({
					path: '/'
				}, api.defaults, attributes);

				if (typeof attributes.expires === 'number') {
					var expires = new Date();
					expires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5);
					attributes.expires = expires;
				}

				try {
					result = JSON.stringify(value);
					if (/^[\{\[]/.test(result)) {
						value = result;
					}
				} catch (e) {}

				if (!converter.write) {
					value = encodeURIComponent(String(value))
						.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);
				} else {
					value = converter.write(value, key);
				}

				key = encodeURIComponent(String(key));
				key = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent);
				key = key.replace(/[\(\)]/g, escape);

				return (document.cookie = [
					key, '=', value,
					attributes.expires && '; expires=' + attributes.expires.toUTCString(), // use expires attribute, max-age is not supported by IE
					attributes.path    && '; path=' + attributes.path,
					attributes.domain  && '; domain=' + attributes.domain,
					attributes.secure ? '; secure' : ''
				].join(''));
			}

			// Read

			if (!key) {
				result = {};
			}

			// To prevent the for loop in the first place assign an empty array
			// in case there are no cookies at all. Also prevents odd result when
			// calling "get()"
			var cookies = document.cookie ? document.cookie.split('; ') : [];
			var rdecode = /(%[0-9A-Z]{2})+/g;
			var i = 0;

			for (; i < cookies.length; i++) {
				var parts = cookies[i].split('=');
				var name = parts[0].replace(rdecode, decodeURIComponent);
				var cookie = parts.slice(1).join('=');

				if (cookie.charAt(0) === '"') {
					cookie = cookie.slice(1, -1);
				}

				try {
					cookie = converter.read ?
						converter.read(cookie, name) : converter(cookie, name) ||
					cookie.replace(rdecode, decodeURIComponent);

					if (this.json) {
						try {
							cookie = JSON.parse(cookie);
						} catch (e) {}
					}

					if (key === name) {
						result = cookie;
						break;
					}

					if (!key) {
						result[name] = cookie;
					}
				} catch (e) {}
			}

			return result;
		}

		api.get = api.set = api;
		api.getJSON = function () {
			return api.apply({
				json: true
			}, [].slice.call(arguments));
		};
		api.defaults = {};

		api.remove = function (key, attributes) {
			api(key, '', extend(attributes, {
				expires: -1
			}));
		};

		api.withConverter = init;

		return api;
	}

	return init(function () {});
}));
/*!
 * enquire.js v2.1.5 - Awesome Media Queries in JavaScript
 * Copyright (c) 2017 Nick Williams - http://wicky.nillia.ms/enquire.js
 * License: MIT */

!function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var b;b="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,b.enquire=a()}}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c?c:a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b,c){function d(a,b){this.query=a,this.isUnconditional=b,this.handlers=[],this.mql=matchMedia(a);var c=this;this.listener=function(a){c.mql=a.currentTarget||a,c.assess()},this.mql.addListener(this.listener)}var e=a(3),f=a(4).each;d.prototype={constuctor:d,addHandler:function(a){var b=new e(a);this.handlers.push(b),this.matches()&&b.on()},removeHandler:function(a){var b=this.handlers;f(b,function(c,d){if(c.equals(a))return c.destroy(),!b.splice(d,1)})},matches:function(){return this.mql.matches||this.isUnconditional},clear:function(){f(this.handlers,function(a){a.destroy()}),this.mql.removeListener(this.listener),this.handlers.length=0},assess:function(){var a=this.matches()?"on":"off";f(this.handlers,function(b){b[a]()})}},b.exports=d},{3:3,4:4}],2:[function(a,b,c){function d(){if(!matchMedia)throw new Error("matchMedia not present, legacy browsers require a polyfill");this.queries={},this.browserIsIncapable=!matchMedia("only all").matches}var e=a(1),f=a(4),g=f.each,h=f.isFunction,i=f.isArray;d.prototype={constructor:d,register:function(a,b,c){var d=this.queries,f=c&&this.browserIsIncapable;return d[a]||(d[a]=new e(a,f)),h(b)&&(b={match:b}),i(b)||(b=[b]),g(b,function(b){h(b)&&(b={match:b}),d[a].addHandler(b)}),this},unregister:function(a,b){var c=this.queries[a];return c&&(b?c.removeHandler(b):(c.clear(),delete this.queries[a])),this}},b.exports=d},{1:1,4:4}],3:[function(a,b,c){function d(a){this.options=a,!a.deferSetup&&this.setup()}d.prototype={constructor:d,setup:function(){this.options.setup&&this.options.setup(),this.initialised=!0},on:function(){!this.initialised&&this.setup(),this.options.match&&this.options.match()},off:function(){this.options.unmatch&&this.options.unmatch()},destroy:function(){this.options.destroy?this.options.destroy():this.off()},equals:function(a){return this.options===a||this.options.match===a}},b.exports=d},{}],4:[function(a,b,c){function d(a,b){var c=0,d=a.length;for(c;c<d&&b(a[c],c)!==!1;c++);}function e(a){return"[object Array]"===Object.prototype.toString.apply(a)}function f(a){return"function"==typeof a}b.exports={isFunction:f,isArray:e,each:d}},{}],5:[function(a,b,c){var d=a(2);b.exports=new d},{2:2}]},{},[5])(5)});
/*
 * jQuery FlexSlider v2.2.2
 * Copyright 2012 WooThemes
 * Contributing Author: Tyler Smith
 */
;
(function ($) {
	//FlexSlider: Object Instance
	$.flexslider = function(el, options) {
		var slider = $(el);
		// making variables public
		slider.vars = $.extend({}, $.flexslider.defaults, options);
		var namespace = slider.vars.namespace,
			msGesture = window.navigator && window.navigator.msPointerEnabled && window.MSGesture,
			touch = (( "ontouchstart" in window ) || msGesture || window.DocumentTouch && document instanceof DocumentTouch) && slider.vars.touch,
			// depricating this idea, as devices are being released with both of these events
			//eventType = (touch) ? "touchend" : "click",
			eventType = "click touchend MSPointerUp keyup",
			watchedEvent = "",
			watchedEventClearTimer,
			vertical = slider.vars.direction === "vertical",
			reverse = slider.vars.reverse,
			carousel = (slider.vars.itemWidth > 0),
			fade = slider.vars.animation === "fade",
			asNav = slider.vars.asNavFor !== "",
			methods = {},
			focused = true;
		// Store a reference to the slider object
		$.data(el, "flexslider", slider);
		// Private slider methods
		methods = {
			init: function() {
				slider.animating = false;
				// Get current slide and make sure it is a number
				slider.currentSlide = parseInt( ( slider.vars.startAt ? slider.vars.startAt : 0), 10 );
				if ( isNaN( slider.currentSlide ) ) slider.currentSlide = 0;
				slider.animatingTo = slider.currentSlide;
				slider.atEnd = (slider.currentSlide === 0 || slider.currentSlide === slider.last);
				slider.containerSelector = slider.vars.selector.substr(0,slider.vars.selector.search(' '));
				slider.slides = $(slider.vars.selector, slider);
				slider.container = $(slider.containerSelector, slider);
				slider.count = slider.slides.length;
				// SYNC:
				slider.syncExists = $(slider.vars.sync).length > 0;
				// SLIDE:
				if (slider.vars.animation === "slide") slider.vars.animation = "swing";
				slider.prop = (vertical) ? "top" : "marginLeft";
				slider.args = {};
				// SLIDESHOW:
				slider.manualPause = false;
				slider.stopped = false;
				//PAUSE WHEN INVISIBLE
				slider.started = false;
				slider.startTimeout = null;
				// TOUCH/USECSS:
				slider.transitions = !slider.vars.video && !fade && slider.vars.useCSS && (function() {
						var obj = document.createElement('div'),
							props = ['perspectiveProperty', 'WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective'];
						for (var i in props) {
							if ( obj.style[ props[i] ] !== undefined ) {
								slider.pfx = props[i].replace('Perspective','').toLowerCase();
								slider.prop = "-" + slider.pfx + "-transform";
								return true;
							}
						}
						return false;
					}());
				slider.ensureAnimationEnd = '';
				// CONTROLSCONTAINER:
				if (slider.vars.controlsContainer !== "") slider.controlsContainer = $(slider.vars.controlsContainer).length > 0 && $(slider.vars.controlsContainer);
				// MANUAL:
				if (slider.vars.manualControls !== "") slider.manualControls = $(slider.vars.manualControls).length > 0 && $(slider.vars.manualControls);
				// RANDOMIZE:
				if (slider.vars.randomize) {
					slider.slides.sort(function() { return (Math.round(Math.random())-0.5); });
					slider.container.empty().append(slider.slides);
				}
				slider.doMath();
				// INIT
				slider.setup("init");
				// CONTROLNAV:
				if (slider.vars.controlNav) methods.controlNav.setup();
				// DIRECTIONNAV:
				if (slider.vars.directionNav) methods.directionNav.setup();
				// KEYBOARD:
				if (slider.vars.keyboard && ($(slider.containerSelector).length === 1 || slider.vars.multipleKeyboard)) {
					$(document).bind('keyup', function(event) {
						var keycode = event.keyCode;
						if (!slider.animating && (keycode === 39 || keycode === 37)) {
							var target = (keycode === 39) ? slider.getTarget('next') :
								(keycode === 37) ? slider.getTarget('prev') : false;
							slider.flexAnimate(target, slider.vars.pauseOnAction);
						}
					});
				}
				// MOUSEWHEEL:
				if (slider.vars.mousewheel) {
					slider.bind('mousewheel', function(event, delta, deltaX, deltaY) {
						event.preventDefault();
						var target = (delta < 0) ? slider.getTarget('next') : slider.getTarget('prev');
						slider.flexAnimate(target, slider.vars.pauseOnAction);
					});
				}
				// PAUSEPLAY
				if (slider.vars.pausePlay) methods.pausePlay.setup();
				//PAUSE WHEN INVISIBLE
				if (slider.vars.slideshow && slider.vars.pauseInvisible) methods.pauseInvisible.init();
				// SLIDSESHOW
				if (slider.vars.slideshow) {
					if (slider.vars.pauseOnHover) {
						slider.hover(function() {
							if (!slider.manualPlay && !slider.manualPause) slider.pause();
						}, function() {
							if (!slider.manualPause && !slider.manualPlay && !slider.stopped) slider.play();
						});
					}
					// initialize animation
					//If we're visible, or we don't use PageVisibility API
					if(!slider.vars.pauseInvisible || !methods.pauseInvisible.isHidden()) {
						(slider.vars.initDelay > 0) ? slider.startTimeout = setTimeout(slider.play, slider.vars.initDelay) : slider.play();
					}
				}
				// ASNAV:
				if (asNav) methods.asNav.setup();
				// TOUCH
				if (touch && slider.vars.touch) methods.touch();
				// FADE&&SMOOTHHEIGHT || SLIDE:
				if (!fade || (fade && slider.vars.smoothHeight)) $(window).bind("resize orientationchange focus", methods.resize);
				slider.find("img").attr("draggable", "false");
				// API: start() Callback
				setTimeout(function(){
					slider.vars.start(slider);
				}, 200);
			},
			asNav: {
				setup: function() {
					slider.asNav = true;
					slider.animatingTo = Math.floor(slider.currentSlide/slider.move);
					slider.currentItem = slider.currentSlide;
					slider.slides.removeClass(namespace + "active-slide").eq(slider.currentItem).addClass(namespace + "active-slide");
					if(!msGesture){
						slider.slides.on(eventType, function(e){
							e.preventDefault();
							var $slide = $(this),
								target = $slide.index();
							var posFromLeft = $slide.offset().left - $(slider).scrollLeft(); // Find position of slide relative to left of slider container
							if( posFromLeft <= 0 && $slide.hasClass( namespace + 'active-slide' ) ) {
								slider.flexAnimate(slider.getTarget("prev"), true);
							} else if (!$(slider.vars.asNavFor).data('flexslider').animating && !$slide.hasClass(namespace + "active-slide")) {
								slider.direction = (slider.currentItem < target) ? "next" : "prev";
								slider.flexAnimate(target, slider.vars.pauseOnAction, false, true, true);
							}
						});
					}else{
						el._slider = slider;
						slider.slides.each(function (){
							var that = this;
							that._gesture = new MSGesture();
							that._gesture.target = that;
							that.addEventListener("MSPointerDown", function (e){
								e.preventDefault();
								if(e.currentTarget._gesture)
									e.currentTarget._gesture.addPointer(e.pointerId);
							}, false);
							that.addEventListener("MSGestureTap", function (e){
								e.preventDefault();
								var $slide = $(this),
									target = $slide.index();
								if (!$(slider.vars.asNavFor).data('flexslider').animating && !$slide.hasClass('active')) {
									slider.direction = (slider.currentItem < target) ? "next" : "prev";
									slider.flexAnimate(target, slider.vars.pauseOnAction, false, true, true);
								}
							});
						});
					}
				}
			},
			controlNav: {
				setup: function() {
					if (!slider.manualControls) {
						methods.controlNav.setupPaging();
					} else { // MANUALCONTROLS:
						methods.controlNav.setupManual();
					}
				},
				setupPaging: function() {
					var type = (slider.vars.controlNav === "thumbnails") ? 'control-thumbs' : 'control-paging',
						j = 1,
						item,
						slide;
					slider.controlNavScaffold = $('<ol class="'+ namespace + 'control-nav ' + namespace + type + '"></ol>');
					if (slider.pagingCount > 1) {
						for (var i = 0; i < slider.pagingCount; i++) {
							slide = slider.slides.eq(i);
							item = (slider.vars.controlNav === "thumbnails") ? '<img src="' + slide.attr( 'data-thumb' ) + '"/>' : '<a>' + j + '</a>';
							if ( 'thumbnails' === slider.vars.controlNav && true === slider.vars.thumbCaptions ) {
								var captn = slide.attr( 'data-thumbcaption' );
								if ( '' != captn && undefined != captn ) item += '<span class="' + namespace + 'caption">' + captn + '</span>';
							}
							slider.controlNavScaffold.append('<li>' + item + '</li>');
							j++;
						}
					}
					// CONTROLSCONTAINER:
					(slider.controlsContainer) ? $(slider.controlsContainer).append(slider.controlNavScaffold) : slider.append(slider.controlNavScaffold);
					methods.controlNav.set();
					methods.controlNav.active();
					slider.controlNavScaffold.delegate('a, img', eventType, function(event) {
						event.preventDefault();
						if (watchedEvent === "" || watchedEvent === event.type) {
							var $this = $(this),
								target = slider.controlNav.index($this);
							if (!$this.hasClass(namespace + 'active')) {
								slider.direction = (target > slider.currentSlide) ? "next" : "prev";
								slider.flexAnimate(target, slider.vars.pauseOnAction);
							}
						}
						// setup flags to prevent event duplication
						if (watchedEvent === "") {
							watchedEvent = event.type;
						}
						methods.setToClearWatchedEvent();
					});
				},
				setupManual: function() {
					slider.controlNav = slider.manualControls;
					methods.controlNav.active();
					slider.controlNav.bind(eventType, function(event) {
						event.preventDefault();
						if (watchedEvent === "" || watchedEvent === event.type) {
							var $this = $(this),
								target = slider.controlNav.index($this);
							if (!$this.hasClass(namespace + 'active')) {
								(target > slider.currentSlide) ? slider.direction = "next" : slider.direction = "prev";
								slider.flexAnimate(target, slider.vars.pauseOnAction);
							}
						}
						// setup flags to prevent event duplication
						if (watchedEvent === "") {
							watchedEvent = event.type;
						}
						methods.setToClearWatchedEvent();
					});
				},
				set: function() {
					var selector = (slider.vars.controlNav === "thumbnails") ? 'img' : 'a';
					slider.controlNav = $('.' + namespace + 'control-nav li ' + selector, (slider.controlsContainer) ? slider.controlsContainer : slider);
				},
				active: function() {
					slider.controlNav.removeClass(namespace + "active").eq(slider.animatingTo).addClass(namespace + "active");
				},
				update: function(action, pos) {
					if (slider.pagingCount > 1 && action === "add") {
						slider.controlNavScaffold.append($('<li><a>' + slider.count + '</a></li>'));
					} else if (slider.pagingCount === 1) {
						slider.controlNavScaffold.find('li').remove();
					} else {
						slider.controlNav.eq(pos).closest('li').remove();
					}
					methods.controlNav.set();
					(slider.pagingCount > 1 && slider.pagingCount !== slider.controlNav.length) ? slider.update(pos, action) : methods.controlNav.active();
				}
			},
			directionNav: {
				setup: function() {
					var directionNavScaffold = $('<ul class="' + namespace + 'direction-nav"><li><a class="' + namespace + 'prev" href="#">' + slider.vars.prevText + '</a></li><li><a class="' + namespace + 'next" href="#">' + slider.vars.nextText + '</a></li></ul>');
					// CONTROLSCONTAINER:
					if (slider.controlsContainer) {
						$(slider.controlsContainer).append(directionNavScaffold);
						slider.directionNav = $('.' + namespace + 'direction-nav li a', slider.controlsContainer);
					} else {
						slider.append(directionNavScaffold);
						slider.directionNav = $('.' + namespace + 'direction-nav li a', slider);
					}
					methods.directionNav.update();
					slider.directionNav.bind(eventType, function(event) {
						event.preventDefault();
						var target;
						if (watchedEvent === "" || watchedEvent === event.type) {
							target = ($(this).hasClass(namespace + 'next')) ? slider.getTarget('next') : slider.getTarget('prev');
							slider.flexAnimate(target, slider.vars.pauseOnAction);
						}
						// setup flags to prevent event duplication
						if (watchedEvent === "") {
							watchedEvent = event.type;
						}
						methods.setToClearWatchedEvent();
					});
				},
				update: function() {
					var disabledClass = namespace + 'disabled';
					if (slider.pagingCount === 1) {
						slider.directionNav.addClass(disabledClass).attr('tabindex', '-1');
					} else if (!slider.vars.animationLoop) {
						if (slider.animatingTo === 0) {
							slider.directionNav.removeClass(disabledClass).filter('.' + namespace + "prev").addClass(disabledClass).attr('tabindex', '-1');
						} else if (slider.animatingTo === slider.last) {
							slider.directionNav.removeClass(disabledClass).filter('.' + namespace + "next").addClass(disabledClass).attr('tabindex', '-1');
						} else {
							slider.directionNav.removeClass(disabledClass).removeAttr('tabindex');
						}
					} else {
						slider.directionNav.removeClass(disabledClass).removeAttr('tabindex');
					}
				}
			},
			pausePlay: {
				setup: function() {
					var pausePlayScaffold = $('<div class="' + namespace + 'pauseplay"><a></a></div>');
					// CONTROLSCONTAINER:
					if (slider.controlsContainer) {
						slider.controlsContainer.append(pausePlayScaffold);
						slider.pausePlay = $('.' + namespace + 'pauseplay a', slider.controlsContainer);
					} else {
						slider.append(pausePlayScaffold);
						slider.pausePlay = $('.' + namespace + 'pauseplay a', slider);
					}
					methods.pausePlay.update((slider.vars.slideshow) ? namespace + 'pause' : namespace + 'play');
					slider.pausePlay.bind(eventType, function(event) {
						event.preventDefault();
						if (watchedEvent === "" || watchedEvent === event.type) {
							if ($(this).hasClass(namespace + 'pause')) {
								slider.manualPause = true;
								slider.manualPlay = false;
								slider.pause();
							} else {
								slider.manualPause = false;
								slider.manualPlay = true;
								slider.play();
							}
						}
						// setup flags to prevent event duplication
						if (watchedEvent === "") {
							watchedEvent = event.type;
						}
						methods.setToClearWatchedEvent();
					});
				},
				update: function(state) {
					(state === "play") ? slider.pausePlay.removeClass(namespace + 'pause').addClass(namespace + 'play').html(slider.vars.playText) : slider.pausePlay.removeClass(namespace + 'play').addClass(namespace + 'pause').html(slider.vars.pauseText);
				}
			},
			touch: function() {
				var startX,
					startY,
					offset,
					cwidth,
					dx,
					startT,
					scrolling = false,
					localX = 0,
					localY = 0,
					accDx = 0;
				if(!msGesture){
					el.addEventListener('touchstart', onTouchStart, false);
					function onTouchStart(e) {
						if (slider.animating) {
							e.preventDefault();
						} else if ( ( window.navigator.msPointerEnabled ) || e.touches.length === 1 ) {
							slider.pause();
							// CAROUSEL:
							cwidth = (vertical) ? slider.h : slider. w;
							startT = Number(new Date());
							// CAROUSEL:
							// Local vars for X and Y points.
							localX = e.touches[0].pageX;
							localY = e.touches[0].pageY;
							offset = (carousel && reverse && slider.animatingTo === slider.last) ? 0 :
								(carousel && reverse) ? slider.limit - (((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo) :
									(carousel && slider.currentSlide === slider.last) ? slider.limit :
										(carousel) ? ((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.currentSlide :
											(reverse) ? (slider.last - slider.currentSlide + slider.cloneOffset) * cwidth : (slider.currentSlide + slider.cloneOffset) * cwidth;
							startX = (vertical) ? localY : localX;
							startY = (vertical) ? localX : localY;
							el.addEventListener('touchmove', onTouchMove, false);
							el.addEventListener('touchend', onTouchEnd, false);
						}
					}
					function onTouchMove(e) {
						// Local vars for X and Y points.
						localX = e.touches[0].pageX;
						localY = e.touches[0].pageY;
						dx = (vertical) ? startX - localY : startX - localX;
						scrolling = (vertical) ? (Math.abs(dx) < Math.abs(localX - startY)) : (Math.abs(dx) < Math.abs(localY - startY));
						var fxms = 500;
						if ( ! scrolling || Number( new Date() ) - startT > fxms ) {
							e.preventDefault();
							if (!fade && slider.transitions) {
								if (!slider.vars.animationLoop) {
									dx = dx/((slider.currentSlide === 0 && dx < 0 || slider.currentSlide === slider.last && dx > 0) ? (Math.abs(dx)/cwidth+2) : 1);
								}
								slider.setProps(offset + dx, "setTouch");
							}
						}
					}
					function onTouchEnd(e) {
						// finish the touch by undoing the touch session
						el.removeEventListener('touchmove', onTouchMove, false);
						if (slider.animatingTo === slider.currentSlide && !scrolling && !(dx === null)) {
							var updateDx = (reverse) ? -dx : dx,
								target = (updateDx > 0) ? slider.getTarget('next') : slider.getTarget('prev');
							if (slider.canAdvance(target) && (Number(new Date()) - startT < 550 && Math.abs(updateDx) > 50 || Math.abs(updateDx) > cwidth/2)) {
								slider.flexAnimate(target, slider.vars.pauseOnAction);
							} else {
								if (!fade) slider.flexAnimate(slider.currentSlide, slider.vars.pauseOnAction, true);
							}
						}
						el.removeEventListener('touchend', onTouchEnd, false);
						startX = null;
						startY = null;
						dx = null;
						offset = null;
					}
				}else{
					el.style.msTouchAction = "none";
					el._gesture = new MSGesture();
					el._gesture.target = el;
					el.addEventListener("MSPointerDown", onMSPointerDown, false);
					el._slider = slider;
					el.addEventListener("MSGestureChange", onMSGestureChange, false);
					el.addEventListener("MSGestureEnd", onMSGestureEnd, false);
					function onMSPointerDown(e){
						e.stopPropagation();
						if (slider.animating) {
							e.preventDefault();
						}else{
							slider.pause();
							el._gesture.addPointer(e.pointerId);
							accDx = 0;
							cwidth = (vertical) ? slider.h : slider. w;
							startT = Number(new Date());
							// CAROUSEL:
							offset = (carousel && reverse && slider.animatingTo === slider.last) ? 0 :
								(carousel && reverse) ? slider.limit - (((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo) :
									(carousel && slider.currentSlide === slider.last) ? slider.limit :
										(carousel) ? ((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.currentSlide :
											(reverse) ? (slider.last - slider.currentSlide + slider.cloneOffset) * cwidth : (slider.currentSlide + slider.cloneOffset) * cwidth;
						}
					}
					function onMSGestureChange(e) {
						e.stopPropagation();
						var slider = e.target._slider;
						if(!slider){
							return;
						}
						var transX = -e.translationX,
							transY = -e.translationY;
						//Accumulate translations.
						accDx = accDx + ((vertical) ? transY : transX);
						dx = accDx;
						scrolling = (vertical) ? (Math.abs(accDx) < Math.abs(-transX)) : (Math.abs(accDx) < Math.abs(-transY));
						if(e.detail === e.MSGESTURE_FLAG_INERTIA){
							setImmediate(function (){
								el._gesture.stop();
							});
							return;
						}
						if (!scrolling || Number(new Date()) - startT > 500) {
							e.preventDefault();
							if (!fade && slider.transitions) {
								if (!slider.vars.animationLoop) {
									dx = accDx / ((slider.currentSlide === 0 && accDx < 0 || slider.currentSlide === slider.last && accDx > 0) ? (Math.abs(accDx) / cwidth + 2) : 1);
								}
								slider.setProps(offset + dx, "setTouch");
							}
						}
					}
					function onMSGestureEnd(e) {
						e.stopPropagation();
						var slider = e.target._slider;
						if(!slider){
							return;
						}
						if (slider.animatingTo === slider.currentSlide && !scrolling && !(dx === null)) {
							var updateDx = (reverse) ? -dx : dx,
								target = (updateDx > 0) ? slider.getTarget('next') : slider.getTarget('prev');
							if (slider.canAdvance(target) && (Number(new Date()) - startT < 550 && Math.abs(updateDx) > 50 || Math.abs(updateDx) > cwidth/2)) {
								slider.flexAnimate(target, slider.vars.pauseOnAction);
							} else {
								if (!fade) slider.flexAnimate(slider.currentSlide, slider.vars.pauseOnAction, true);
							}
						}
						startX = null;
						startY = null;
						dx = null;
						offset = null;
						accDx = 0;
					}
				}
			},
			resize: function() {
				if (!slider.animating && slider.is(':visible')) {
					if (!carousel) slider.doMath();
					if (fade) {
						// SMOOTH HEIGHT:
						methods.smoothHeight();
					} else if (carousel) { //CAROUSEL:
						slider.slides.width(slider.computedW);
						slider.update(slider.pagingCount);
						slider.setProps();
					}
					else if (vertical) { //VERTICAL:
						slider.viewport.height(slider.h);
						slider.setProps(slider.h, "setTotal");
					} else {
						// SMOOTH HEIGHT:
						if (slider.vars.smoothHeight) methods.smoothHeight();
						slider.newSlides.width(slider.computedW);
						slider.setProps(slider.computedW, "setTotal");
					}
				}
			},
			smoothHeight: function(dur) {
				if (!vertical || fade) {
					var $obj = (fade) ? slider : slider.viewport;
					(dur) ? $obj.animate({"height": slider.slides.eq(slider.animatingTo).height()}, dur) : $obj.height(slider.slides.eq(slider.animatingTo).height());
				}
			},
			sync: function(action) {
				var $obj = $(slider.vars.sync).data("flexslider"),
					target = slider.animatingTo;
				switch (action) {
					case "animate": $obj.flexAnimate(target, slider.vars.pauseOnAction, false, true); break;
					case "play": if (!$obj.playing && !$obj.asNav) { $obj.play(); } break;
					case "pause": $obj.pause(); break;
				}
			},
			uniqueID: function($clone) {
				// Append _clone to current level and children elements with id attributes
				$clone.filter( '[id]' ).add($clone.find( '[id]' )).each(function() {
					var $this = $(this);
					$this.attr( 'id', $this.attr( 'id' ) + '_clone' );
				});
				return $clone;
			},
			pauseInvisible: {
				visProp: null,
				init: function() {
					var prefixes = ['webkit','moz','ms','o'];
					if ('hidden' in document) return 'hidden';
					for (var i = 0; i < prefixes.length; i++) {
						if ((prefixes[i] + 'Hidden') in document)
							methods.pauseInvisible.visProp = prefixes[i] + 'Hidden';
					}
					if (methods.pauseInvisible.visProp) {
						var evtname = methods.pauseInvisible.visProp.replace(/[H|h]idden/,'') + 'visibilitychange';
						document.addEventListener(evtname, function() {
							if (methods.pauseInvisible.isHidden()) {
								if(slider.startTimeout) clearTimeout(slider.startTimeout); //If clock is ticking, stop timer and prevent from starting while invisible
								else slider.pause(); //Or just pause
							}
							else {
								if(slider.started) slider.play(); //Initiated before, just play
								else (slider.vars.initDelay > 0) ? setTimeout(slider.play, slider.vars.initDelay) : slider.play(); //Didn't init before: simply init or wait for it
							}
						});
					}
				},
				isHidden: function() {
					return document[methods.pauseInvisible.visProp] || false;
				}
			},
			setToClearWatchedEvent: function() {
				clearTimeout(watchedEventClearTimer);
				watchedEventClearTimer = setTimeout(function() {
					watchedEvent = "";
				}, 3000);
			}
		};
		// public methods
		slider.flexAnimate = function(target, pause, override, withSync, fromNav) {
			if (!slider.vars.animationLoop && target !== slider.currentSlide) {
				slider.direction = (target > slider.currentSlide) ? "next" : "prev";
			}
			if (asNav && slider.pagingCount === 1) slider.direction = (slider.currentItem < target) ? "next" : "prev";
			if (!slider.animating && (slider.canAdvance(target, fromNav) || override) && slider.is(":visible")) {
				if (asNav && withSync) {
					var master = $(slider.vars.asNavFor).data('flexslider');
					slider.atEnd = target === 0 || target === slider.count - 1;
					master.flexAnimate(target, true, false, true, fromNav);
					slider.direction = (slider.currentItem < target) ? "next" : "prev";
					master.direction = slider.direction;
					if (Math.ceil((target + 1)/slider.visible) - 1 !== slider.currentSlide && target !== 0) {
						slider.currentItem = target;
						slider.slides.removeClass(namespace + "active-slide").eq(target).addClass(namespace + "active-slide");
						target = Math.floor(target/slider.visible);
					} else {
						slider.currentItem = target;
						slider.slides.removeClass(namespace + "active-slide").eq(target).addClass(namespace + "active-slide");
						return false;
					}
				}
				slider.animating = true;
				slider.animatingTo = target;
				// SLIDESHOW:
				if (pause) slider.pause();
				// API: before() animation Callback
				slider.vars.before(slider);
				// SYNC:
				if (slider.syncExists && !fromNav) methods.sync("animate");
				// CONTROLNAV
				if (slider.vars.controlNav) methods.controlNav.active();
				// !CAROUSEL:
				// CANDIDATE: slide active class (for add/remove slide)
				if (!carousel) slider.slides.removeClass(namespace + 'active-slide').eq(target).addClass(namespace + 'active-slide');
				// INFINITE LOOP:
				// CANDIDATE: atEnd
				slider.atEnd = target === 0 || target === slider.last;
				// DIRECTIONNAV:
				if (slider.vars.directionNav) methods.directionNav.update();
				if (target === slider.last) {
					// API: end() of cycle Callback
					slider.vars.end(slider);
					// SLIDESHOW && !INFINITE LOOP:
					if (!slider.vars.animationLoop) slider.pause();
				}
				// SLIDE:
				if (!fade) {
					var dimension = (vertical) ? slider.slides.filter(':first').height() : slider.computedW,
						margin, slideString, calcNext;
					// INFINITE LOOP / REVERSE:
					if (carousel) {
						//margin = (slider.vars.itemWidth > slider.w) ? slider.vars.itemMargin * 2 : slider.vars.itemMargin;
						margin = slider.vars.itemMargin;
						calcNext = ((slider.itemW + margin) * slider.move) * slider.animatingTo;
						slideString = (calcNext > slider.limit && slider.visible !== 1) ? slider.limit : calcNext;
					} else if (slider.currentSlide === 0 && target === slider.count - 1 && slider.vars.animationLoop && slider.direction !== "next") {
						slideString = (reverse) ? (slider.count + slider.cloneOffset) * dimension : 0;
					} else if (slider.currentSlide === slider.last && target === 0 && slider.vars.animationLoop && slider.direction !== "prev") {
						slideString = (reverse) ? 0 : (slider.count + 1) * dimension;
					} else {
						slideString = (reverse) ? ((slider.count - 1) - target + slider.cloneOffset) * dimension : (target + slider.cloneOffset) * dimension;
					}
					slider.setProps(slideString, "", slider.vars.animationSpeed);
					if (slider.transitions) {
						if (!slider.vars.animationLoop || !slider.atEnd) {
							slider.animating = false;
							slider.currentSlide = slider.animatingTo;
						}

						// Unbind previous transitionEnd events and re-bind new transitionEnd event
						slider.container.unbind("webkitTransitionEnd transitionend");
						slider.container.bind("webkitTransitionEnd transitionend", function() {
							clearTimeout(slider.ensureAnimationEnd);
							slider.wrapup(dimension);
						});
						// Insurance for the ever-so-fickle transitionEnd event
						clearTimeout(slider.ensureAnimationEnd);
						slider.ensureAnimationEnd = setTimeout(function() {
							slider.wrapup(dimension);
						}, slider.vars.animationSpeed + 100);
					} else {
						slider.container.animate(slider.args, slider.vars.animationSpeed, slider.vars.easing, function(){
							slider.wrapup(dimension);
						});
					}
				} else { // FADE:
					if (!touch) {
						//slider.slides.eq(slider.currentSlide).fadeOut(slider.vars.animationSpeed, slider.vars.easing);
						//slider.slides.eq(target).fadeIn(slider.vars.animationSpeed, slider.vars.easing, slider.wrapup);
						slider.slides.eq(slider.currentSlide).css({"zIndex": 1}).animate({"opacity": 0}, slider.vars.animationSpeed, slider.vars.easing);
						slider.slides.eq(target).css({"zIndex": 2}).animate({"opacity": 1}, slider.vars.animationSpeed, slider.vars.easing, slider.wrapup);
					} else {
						slider.slides.eq(slider.currentSlide).css({ "opacity": 0, "zIndex": 1 });
						slider.slides.eq(target).css({ "opacity": 1, "zIndex": 2 });
						slider.wrapup(dimension);
					}
				}
				// SMOOTH HEIGHT:
				if (slider.vars.smoothHeight) methods.smoothHeight(slider.vars.animationSpeed);
			}
		};
		slider.wrapup = function(dimension) {
			// SLIDE:
			if (!fade && !carousel) {
				if (slider.currentSlide === 0 && slider.animatingTo === slider.last && slider.vars.animationLoop) {
					slider.setProps(dimension, "jumpEnd");
				} else if (slider.currentSlide === slider.last && slider.animatingTo === 0 && slider.vars.animationLoop) {
					slider.setProps(dimension, "jumpStart");
				}
			}
			slider.animating = false;
			slider.currentSlide = slider.animatingTo;
			// API: after() animation Callback
			slider.vars.after(slider);
		};
		// SLIDESHOW:
		slider.animateSlides = function() {
			if (!slider.animating && focused ) slider.flexAnimate(slider.getTarget("next"));
		};
		// SLIDESHOW:
		slider.pause = function() {
			clearInterval(slider.animatedSlides);
			slider.animatedSlides = null;
			slider.playing = false;
			// PAUSEPLAY:
			if (slider.vars.pausePlay) methods.pausePlay.update("play");
			// SYNC:
			if (slider.syncExists) methods.sync("pause");
		};
		// SLIDESHOW:
		slider.play = function() {
			if (slider.playing) clearInterval(slider.animatedSlides);
			slider.animatedSlides = slider.animatedSlides || setInterval(slider.animateSlides, slider.vars.slideshowSpeed);
			slider.started = slider.playing = true;
			// PAUSEPLAY:
			if (slider.vars.pausePlay) methods.pausePlay.update("pause");
			// SYNC:
			if (slider.syncExists) methods.sync("play");
		};
		// STOP:
		slider.stop = function () {
			slider.pause();
			slider.stopped = true;
		};
		slider.canAdvance = function(target, fromNav) {
			// ASNAV:
			var last = (asNav) ? slider.pagingCount - 1 : slider.last;
			return (fromNav) ? true :
				(asNav && slider.currentItem === slider.count - 1 && target === 0 && slider.direction === "prev") ? true :
					(asNav && slider.currentItem === 0 && target === slider.pagingCount - 1 && slider.direction !== "next") ? false :
						(target === slider.currentSlide && !asNav) ? false :
							(slider.vars.animationLoop) ? true :
								(slider.atEnd && slider.currentSlide === 0 && target === last && slider.direction !== "next") ? false :
									(slider.atEnd && slider.currentSlide === last && target === 0 && slider.direction === "next") ? false :
										true;
		};
		slider.getTarget = function(dir) {
			slider.direction = dir;
			if (dir === "next") {
				return (slider.currentSlide === slider.last) ? 0 : slider.currentSlide + 1;
			} else {
				return (slider.currentSlide === 0) ? slider.last : slider.currentSlide - 1;
			}
		};
		// SLIDE:
		slider.setProps = function(pos, special, dur) {
			var target = (function() {
				var posCheck = (pos) ? pos : ((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo,
					posCalc = (function() {
						if (carousel) {
							return (special === "setTouch") ? pos :
								(reverse && slider.animatingTo === slider.last) ? 0 :
									(reverse) ? slider.limit - (((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo) :
										(slider.animatingTo === slider.last) ? slider.limit : posCheck;
						} else {
							switch (special) {
								case "setTotal": return (reverse) ? ((slider.count - 1) - slider.currentSlide + slider.cloneOffset) * pos : (slider.currentSlide + slider.cloneOffset) * pos;
								case "setTouch": return (reverse) ? pos : pos;
								case "jumpEnd": return (reverse) ? pos : slider.count * pos;
								case "jumpStart": return (reverse) ? slider.count * pos : pos;
								default: return pos;
							}
						}
					}());
				return (posCalc * -1) + "px";
			}());
			if (slider.transitions) {
				target = (vertical) ? "translate3d(0," + target + ",0)" : "translate3d(" + target + ",0,0)";
				dur = (dur !== undefined) ? (dur/1000) + "s" : "0s";
				slider.container.css("-" + slider.pfx + "-transition-duration", dur);
				slider.container.css("transition-duration", dur);
			}
			slider.args[slider.prop] = target;
			if (slider.transitions || dur === undefined) slider.container.css(slider.args);
			slider.container.css('transform',target);
		};
		slider.setup = function(type) {
			// SLIDE:
			if (!fade) {
				var sliderOffset, arr;
				if (type === "init") {
					slider.viewport = $('<div class="' + namespace + 'viewport"></div>').css({"overflow": "hidden", "position": "relative"}).appendTo(slider).append(slider.container);
					// INFINITE LOOP:
					slider.cloneCount = 0;
					slider.cloneOffset = 0;
					// REVERSE:
					if (reverse) {
						arr = $.makeArray(slider.slides).reverse();
						slider.slides = $(arr);
						slider.container.empty().append(slider.slides);
					}
				}
				// INFINITE LOOP && !CAROUSEL:
				if (slider.vars.animationLoop && !carousel) {
					slider.cloneCount = 2;
					slider.cloneOffset = 1;
					// clear out old clones
					if (type !== "init") slider.container.find('.clone').remove();
					slider.container.append(methods.uniqueID(slider.slides.first().clone().addClass('clone')).attr('aria-hidden', 'true'))
						.prepend(methods.uniqueID(slider.slides.last().clone().addClass('clone')).attr('aria-hidden', 'true'));
				}
				slider.newSlides = $(slider.vars.selector, slider);
				sliderOffset = (reverse) ? slider.count - 1 - slider.currentSlide + slider.cloneOffset : slider.currentSlide + slider.cloneOffset;
				// VERTICAL:
				if (vertical && !carousel) {
					slider.container.height((slider.count + slider.cloneCount) * 200 + "%").css("position", "absolute").width("100%");
					setTimeout(function(){
						slider.newSlides.css({"display": "block"});
						slider.doMath();
						slider.viewport.height(slider.h);
						slider.setProps(sliderOffset * slider.h, "init");
					}, (type === "init") ? 100 : 0);
				} else {
					slider.container.width((slider.count + slider.cloneCount) * 200 + "%");
					slider.setProps(sliderOffset * slider.computedW, "init");
					setTimeout(function(){
						slider.doMath();
						slider.newSlides.css({"width": slider.computedW, "float": "left", "display": "block"});
						// SMOOTH HEIGHT:
						if (slider.vars.smoothHeight) methods.smoothHeight();
					}, (type === "init") ? 100 : 0);
				}
			} else { // FADE:
				slider.slides.css({"width": "100%", "float": "left", "marginRight": "-100%", "position": "relative"});
				if (type === "init") {
					if (!touch) {
						//slider.slides.eq(slider.currentSlide).fadeIn(slider.vars.animationSpeed, slider.vars.easing);
						if (slider.vars.fadeFirstSlide == false) {
							slider.slides.css({ "opacity": 0, "display": "block", "zIndex": 1 }).eq(slider.currentSlide).css({"zIndex": 2}).css({"opacity": 1});
						} else {
							slider.slides.css({ "opacity": 0, "display": "block", "zIndex": 1 }).eq(slider.currentSlide).css({"zIndex": 2}).animate({"opacity": 1},slider.vars.animationSpeed,slider.vars.easing);
						}
					} else {
						slider.slides.css({ "opacity": 0, "display": "block", "webkitTransition": "opacity " + slider.vars.animationSpeed / 1000 + "s ease", "zIndex": 1 }).eq(slider.currentSlide).css({ "opacity": 1, "zIndex": 2});
					}
				}
				// SMOOTH HEIGHT:
				if (slider.vars.smoothHeight) methods.smoothHeight();
			}
			// !CAROUSEL:
			// CANDIDATE: active slide
			if (!carousel) slider.slides.removeClass(namespace + "active-slide").eq(slider.currentSlide).addClass(namespace + "active-slide");
			//FlexSlider: init() Callback
			slider.vars.init(slider);
		};
		slider.doMath = function() {
			var slide = slider.slides.first(),
				slideMargin = slider.vars.itemMargin,
				minItems = slider.vars.minItems,
				maxItems = slider.vars.maxItems;
			slider.w = (slider.viewport===undefined) ? slider.width() : slider.viewport.width();
			slider.h = slide.height();
			slider.boxPadding = slide.outerWidth() - slide.width();
			// CAROUSEL:
			if (carousel) {
				slider.itemT = slider.vars.itemWidth + slideMargin;
				slider.minW = (minItems) ? minItems * slider.itemT : slider.w;
				slider.maxW = (maxItems) ? (maxItems * slider.itemT) - slideMargin : slider.w;
				slider.itemW = (slider.minW > slider.w) ? (slider.w - (slideMargin * (minItems - 1)))/minItems :
					(slider.maxW < slider.w) ? (slider.w - (slideMargin * (maxItems - 1)))/maxItems :
						(slider.vars.itemWidth > slider.w) ? slider.w : slider.vars.itemWidth;
				slider.visible = Math.floor(slider.w/(slider.itemW));
				slider.move = (slider.vars.move > 0 && slider.vars.move < slider.visible ) ? slider.vars.move : slider.visible;
				slider.pagingCount = Math.ceil(((slider.count - slider.visible)/slider.move) + 1);
				slider.last =  slider.pagingCount - 1;
				slider.limit = (slider.pagingCount === 1) ? 0 :
					(slider.vars.itemWidth > slider.w) ? (slider.itemW * (slider.count - 1)) + (slideMargin * (slider.count - 1)) : ((slider.itemW + slideMargin) * slider.count) - slider.w - slideMargin;
			} else {
				slider.itemW = slider.w;
				slider.pagingCount = slider.count;
				slider.last = slider.count - 1;
			}
			slider.computedW = slider.itemW - slider.boxPadding;
		};
		slider.update = function(pos, action) {
			slider.doMath();
			// update currentSlide and slider.animatingTo if necessary
			if (!carousel) {
				if (pos < slider.currentSlide) {
					slider.currentSlide += 1;
				} else if (pos <= slider.currentSlide && pos !== 0) {
					slider.currentSlide -= 1;
				}
				slider.animatingTo = slider.currentSlide;
			}
			// update controlNav
			if (slider.vars.controlNav && !slider.manualControls) {
				if ((action === "add" && !carousel) || slider.pagingCount > slider.controlNav.length) {
					methods.controlNav.update("add");
				} else if ((action === "remove" && !carousel) || slider.pagingCount < slider.controlNav.length) {
					if (carousel && slider.currentSlide > slider.last) {
						slider.currentSlide -= 1;
						slider.animatingTo -= 1;
					}
					methods.controlNav.update("remove", slider.last);
				}
			}
			// update directionNav
			if (slider.vars.directionNav) methods.directionNav.update();
		};
		slider.addSlide = function(obj, pos) {
			var $obj = $(obj);
			slider.count += 1;
			slider.last = slider.count - 1;
			// append new slide
			if (vertical && reverse) {
				(pos !== undefined) ? slider.slides.eq(slider.count - pos).after($obj) : slider.container.prepend($obj);
			} else {
				(pos !== undefined) ? slider.slides.eq(pos).before($obj) : slider.container.append($obj);
			}
			// update currentSlide, animatingTo, controlNav, and directionNav
			slider.update(pos, "add");
			// update slider.slides
			slider.slides = $(slider.vars.selector + ':not(.clone)', slider);
			// re-setup the slider to accomdate new slide
			slider.setup();
			//FlexSlider: added() Callback
			slider.vars.added(slider);
		};
		slider.removeSlide = function(obj) {
			var pos = (isNaN(obj)) ? slider.slides.index($(obj)) : obj;
			// update count
			slider.count -= 1;
			slider.last = slider.count - 1;
			// remove slide
			if (isNaN(obj)) {
				$(obj, slider.slides).remove();
			} else {
				(vertical && reverse) ? slider.slides.eq(slider.last).remove() : slider.slides.eq(obj).remove();
			}
			// update currentSlide, animatingTo, controlNav, and directionNav
			slider.doMath();
			slider.update(pos, "remove");
			// update slider.slides
			slider.slides = $(slider.vars.selector + ':not(.clone)', slider);
			// re-setup the slider to accomdate new slide
			slider.setup();
			// FlexSlider: removed() Callback
			slider.vars.removed(slider);
		};
		//FlexSlider: Initialize
		methods.init();
	};
	// Ensure the slider isn't focussed if the window loses focus.
	$( window ).blur( function ( e ) {
		focused = false;
	}).focus( function ( e ) {
		focused = true;
	});
	//FlexSlider: Default Settings
	$.flexslider.defaults = {
		namespace: "flex-",             //{NEW} String: Prefix string attached to the class of every element generated by the plugin
		selector: ".slides > li",       //{NEW} Selector: Must match a simple pattern. '{container} > {slide}' -- Ignore pattern at your own peril
		animation: "fade",              //String: Select your animation type, "fade" or "slide"
		easing: "swing",                //{NEW} String: Determines the easing method used in jQuery transitions. jQuery easing plugin is supported!
		direction: "horizontal",        //String: Select the sliding direction, "horizontal" or "vertical"
		reverse: false,                 //{NEW} Boolean: Reverse the animation direction
		animationLoop: true,            //Boolean: Should the animation loop? If false, directionNav will received "disable" classes at either end
		smoothHeight: false,            //{NEW} Boolean: Allow height of the slider to animate smoothly in horizontal mode
		startAt: 0,                     //Integer: The slide that the slider should start on. Array notation (0 = first slide)
		slideshow: true,                //Boolean: Animate slider automatically
		slideshowSpeed: 7000,           //Integer: Set the speed of the slideshow cycling, in milliseconds
		animationSpeed: 600,            //Integer: Set the speed of animations, in milliseconds
		initDelay: 0,                   //{NEW} Integer: Set an initialization delay, in milliseconds
		randomize: false,               //Boolean: Randomize slide order
		fadeFirstSlide: true,           //Boolean: Fade in the first slide when animation type is "fade"
		thumbCaptions: false,           //Boolean: Whether or not to put captions on thumbnails when using the "thumbnails" controlNav.
		// Usability features
		pauseOnAction: true,            //Boolean: Pause the slideshow when interacting with control elements, highly recommended.
		pauseOnHover: true,            //Boolean: Pause the slideshow when hovering over slider, then resume when no longer hovering
		pauseInvisible: true,   		//{NEW} Boolean: Pause the slideshow when tab is invisible, resume when visible. Provides better UX, lower CPU usage.
		useCSS: true,                   //{NEW} Boolean: Slider will use CSS3 transitions if available
		touch: true,                    //{NEW} Boolean: Allow touch swipe navigation of the slider on touch-enabled devices
		video: false,                   //{NEW} Boolean: If using video in the slider, will prevent CSS3 3D Transforms to avoid graphical glitches
		// Primary Controls
		controlNav: true,               //Boolean: Create navigation for paging control of each slide? Note: Leave true for manualControls usage
		directionNav: true,             //Boolean: Create navigation for previous/next navigation? (true/false)
		prevText: "Previous",           //String: Set the text for the "previous" directionNav item
		nextText: "Next",               //String: Set the text for the "next" directionNav item
		// Secondary Navigation
		keyboard: true,                 //Boolean: Allow slider navigating via keyboard left/right keys
		multipleKeyboard: false,        //{NEW} Boolean: Allow keyboard navigation to affect multiple sliders. Default behavior cuts out keyboard navigation with more than one slider present.
		mousewheel: false,              //{UPDATED} Boolean: Requires jquery.mousewheel.js (https://github.com/brandonaaron/jquery-mousewheel) - Allows slider navigating via mousewheel
		pausePlay: false,               //Boolean: Create pause/play dynamic element
		pauseText: "Pause",             //String: Set the text for the "pause" pausePlay item
		playText: "Play",               //String: Set the text for the "play" pausePlay item
		// Special properties
		controlsContainer: "",          //{UPDATED} jQuery Object/Selector: Declare which container the navigation elements should be appended too. Default container is the FlexSlider element. Example use would be $(".flexslider-container"). Property is ignored if given element is not found.
		manualControls: "",             //{UPDATED} jQuery Object/Selector: Declare custom control navigation. Examples would be $(".flex-control-nav li") or "#tabs-nav li img", etc. The number of elements in your controlNav should match the number of slides/tabs.
		sync: "",                       //{NEW} Selector: Mirror the actions performed on this slider with another slider. Use with care.
		asNavFor: "",                   //{NEW} Selector: Internal property exposed for turning the slider into a thumbnail navigation for another slider
		// Carousel Options
		itemWidth: 0,                   //{NEW} Integer: Box-model width of individual carousel items, including horizontal borders and padding.
		itemMargin: 0,                  //{NEW} Integer: Margin between carousel items.
		minItems: 1,                    //{NEW} Integer: Minimum number of carousel items that should be visible. Items will resize fluidly when below this.
		maxItems: 0,                    //{NEW} Integer: Maxmimum number of carousel items that should be visible. Items will resize fluidly when above this limit.
		move: 0,                        //{NEW} Integer: Number of carousel items that should move on animation. If 0, slider will move all visible items.
		allowOneSlide: true,           //{NEW} Boolean: Whether or not to allow a slider comprised of a single slide
		// Callback API
		start: function(){},            //Callback: function(slider) - Fires when the slider loads the first slide
		before: function(){},           //Callback: function(slider) - Fires asynchronously with each slider animation
		after: function(){},            //Callback: function(slider) - Fires after each slider animation completes
		end: function(){},              //Callback: function(slider) - Fires when the slider reaches the last slide (asynchronous)
		added: function(){},            //{NEW} Callback: function(slider) - Fires after a slide is added
		removed: function(){},           //{NEW} Callback: function(slider) - Fires after a slide is removed
		init: function() {}             //{NEW} Callback: function(slider) - Fires after the slider is initially setup
	};
	//FlexSlider: Plugin Function
	$.fn.flexslider = function(options) {
		if (options === undefined) options = {};
		if (typeof options === "object") {
			return this.each(function() {
				var $this = $(this),
					selector = (options.selector) ? options.selector : ".slides > li",
					$slides = $this.find(selector);
				if ( ( $slides.length === 1 && options.allowOneSlide === true ) || $slides.length === 0 ) {
					$slides.fadeIn(400);
					if (options.start) options.start($this);
				} else if ($this.data('flexslider') === undefined) {
					new $.flexslider(this, options);
				}
			});
		} else {
			// Helper strings to quickly perform functions on the slider
			var $slider = $(this).data('flexslider');
			switch (options) {
				case "play": $slider.play(); break;
				case "pause": $slider.pause(); break;
				case "stop": $slider.stop(); break;
				case "next": $slider.flexAnimate($slider.getTarget("next"), true); break;
				case "prev":
				case "previous": $slider.flexAnimate($slider.getTarget("prev"), true); break;
				default: if (typeof options === "number") $slider.flexAnimate(options, true);
			}
		}
	};
})(jQuery);
(function (a) {
	if (typeof define === "function" && define.amd && define.amd.jQuery) {
		define(["jquery"], a)
	} else {
		a(jQuery)
	}
}(function (f) {
	var p = "left", o = "right", e = "up", x = "down", c = "in", z = "out", m = "none", s = "auto", l = "swipe", t = "pinch", A = "tap", j = "doubletap", b = "longtap", y = "hold", D = "horizontal", u = "vertical", i = "all", r = 10, g = "start", k = "move", h = "end", q = "cancel", a = "ontouchstart" in window, v = window.navigator.msPointerEnabled && !window.navigator.pointerEnabled, d = window.navigator.pointerEnabled || window.navigator.msPointerEnabled, B = "TouchSwipe";
	var n = {
		fingers: 1,
		threshold: 75,
		cancelThreshold: null,
		pinchThreshold: 20,
		maxTimeThreshold: null,
		fingerReleaseThreshold: 250,
		longTapThreshold: 500,
		doubleTapThreshold: 200,
		swipe: null,
		swipeLeft: null,
		swipeRight: null,
		swipeUp: null,
		swipeDown: null,
		swipeStatus: null,
		pinchIn: null,
		pinchOut: null,
		pinchStatus: null,
		click: null,
		tap: null,
		doubleTap: null,
		longTap: null,
		hold: null,
		triggerOnTouchEnd: true,
		triggerOnTouchLeave: false,
		allowPageScroll: "auto",
		fallbackToMouseEvents: true,
		excludedElements: "label, button, input, select, textarea, a, .noSwipe",
		preventDefaultEvents: true
	};
	f.fn.swipe = function (G) {
		var F = f(this), E = F.data(B);
		if (E && typeof G === "string") {
			if (E[G]) {
				return E[G].apply(this, Array.prototype.slice.call(arguments, 1))
			} else {
				f.error("Method " + G + " does not exist on jQuery.swipe")
			}
		} else {
			if (!E && (typeof G === "object" || !G)) {
				return w.apply(this, arguments)
			}
		}
		return F
	};
	f.fn.swipe.defaults = n;
	f.fn.swipe.phases = {PHASE_START: g, PHASE_MOVE: k, PHASE_END: h, PHASE_CANCEL: q};
	f.fn.swipe.directions = {LEFT: p, RIGHT: o, UP: e, DOWN: x, IN: c, OUT: z};
	f.fn.swipe.pageScroll = {NONE: m, HORIZONTAL: D, VERTICAL: u, AUTO: s};
	f.fn.swipe.fingers = {ONE: 1, TWO: 2, THREE: 3, ALL: i};
	function w(E) {
		if (E && (E.allowPageScroll === undefined && (E.swipe !== undefined || E.swipeStatus !== undefined))) {
			E.allowPageScroll = m
		}
		if (E.click !== undefined && E.tap === undefined) {
			E.tap = E.click
		}
		if (!E) {
			E = {}
		}
		E = f.extend({}, f.fn.swipe.defaults, E);
		return this.each(function () {
			var G = f(this);
			var F = G.data(B);
			if (!F) {
				F = new C(this, E);
				G.data(B, F)
			}
		})
	}

	function C(a4, av) {
		var az = (a || d || !av.fallbackToMouseEvents), J = az ? (d ? (v ? "MSPointerDown" : "pointerdown") : "touchstart") : "mousedown", ay = az ? (d ? (v ? "MSPointerMove" : "pointermove") : "touchmove") : "mousemove", U = az ? (d ? (v ? "MSPointerUp" : "pointerup") : "touchend") : "mouseup", S = az ? null : "mouseleave", aD = (d ? (v ? "MSPointerCancel" : "pointercancel") : "touchcancel");
		var ag = 0, aP = null, ab = 0, a1 = 0, aZ = 0, G = 1, aq = 0, aJ = 0, M = null;
		var aR = f(a4);
		var Z = "start";
		var W = 0;
		var aQ = null;
		var T = 0, a2 = 0, a5 = 0, ad = 0, N = 0;
		var aW = null, af = null;
		try {
			aR.bind(J, aN);
			aR.bind(aD, a9)
		} catch (ak) {
			f.error("events not supported " + J + "," + aD + " on jQuery.swipe")
		}
		this.enable = function () {
			aR.bind(J, aN);
			aR.bind(aD, a9);
			return aR
		};
		this.disable = function () {
			aK();
			return aR
		};
		this.destroy = function () {
			aK();
			aR.data(B, null);
			aR = null
		};
		this.option = function (bc, bb) {
			if (av[bc] !== undefined) {
				if (bb === undefined) {
					return av[bc]
				} else {
					av[bc] = bb
				}
			} else {
				f.error("Option " + bc + " does not exist on jQuery.swipe.options")
			}
			return null
		};
		function aN(bd) {
			if (aB()) {
				return
			}
			if (f(bd.target).closest(av.excludedElements, aR).length > 0) {
				return
			}
			var be = bd.originalEvent ? bd.originalEvent : bd;
			var bc, bb = a ? be.touches[0] : be;
			Z = g;
			if (a) {
				W = be.touches.length
			} else {
				bd.preventDefault()
			}
			ag = 0;
			aP = null;
			aJ = null;
			ab = 0;
			a1 = 0;
			aZ = 0;
			G = 1;
			aq = 0;
			aQ = aj();
			M = aa();
			R();
			if (!a || (W === av.fingers || av.fingers === i) || aX()) {
				ai(0, bb);
				T = at();
				if (W == 2) {
					ai(1, be.touches[1]);
					a1 = aZ = au(aQ[0].start, aQ[1].start)
				}
				if (av.swipeStatus || av.pinchStatus) {
					bc = O(be, Z)
				}
			} else {
				bc = false
			}
			if (bc === false) {
				Z = q;
				O(be, Z);
				return bc
			} else {
				if (av.hold) {
					af = setTimeout(f.proxy(function () {
						aR.trigger("hold", [be.target]);
						if (av.hold) {
							bc = av.hold.call(aR, be, be.target)
						}
					}, this), av.longTapThreshold)
				}
				ao(true)
			}
			return null
		}

		function a3(be) {
			var bh = be.originalEvent ? be.originalEvent : be;
			if (Z === h || Z === q || am()) {
				return
			}
			var bd, bc = a ? bh.touches[0] : bh;
			var bf = aH(bc);
			a2 = at();
			if (a) {
				W = bh.touches.length
			}
			if (av.hold) {
				clearTimeout(af)
			}
			Z = k;
			if (W == 2) {
				if (a1 == 0) {
					ai(1, bh.touches[1]);
					a1 = aZ = au(aQ[0].start, aQ[1].start)
				} else {
					aH(bh.touches[1]);
					aZ = au(aQ[0].end, aQ[1].end);
					aJ = ar(aQ[0].end, aQ[1].end)
				}
				G = a7(a1, aZ);
				aq = Math.abs(a1 - aZ)
			}
			if ((W === av.fingers || av.fingers === i) || !a || aX()) {
				aP = aL(bf.start, bf.end);
				al(be, aP);
				ag = aS(bf.start, bf.end);
				ab = aM();
				aI(aP, ag);
				if (av.swipeStatus || av.pinchStatus) {
					bd = O(bh, Z)
				}
				if (!av.triggerOnTouchEnd || av.triggerOnTouchLeave) {
					var bb = true;
					if (av.triggerOnTouchLeave) {
						var bg = aY(this);
						bb = E(bf.end, bg)
					}
					if (!av.triggerOnTouchEnd && bb) {
						Z = aC(k)
					} else {
						if (av.triggerOnTouchLeave && !bb) {
							Z = aC(h)
						}
					}
					if (Z == q || Z == h) {
						O(bh, Z)
					}
				}
			} else {
				Z = q;
				O(bh, Z)
			}
			if (bd === false) {
				Z = q;
				O(bh, Z)
			}
		}

		function L(bb) {
			var bc = bb.originalEvent;
			if (a) {
				if (bc.touches.length > 0) {
					F();
					return true
				}
			}
			if (am()) {
				W = ad
			}
			a2 = at();
			ab = aM();
			if (ba() || !an()) {
				Z = q;
				O(bc, Z)
			} else {
				if (av.triggerOnTouchEnd || (av.triggerOnTouchEnd == false && Z === k)) {
					bb.preventDefault();
					Z = h;
					O(bc, Z)
				} else {
					if (!av.triggerOnTouchEnd && a6()) {
						Z = h;
						aF(bc, Z, A)
					} else {
						if (Z === k) {
							Z = q;
							O(bc, Z)
						}
					}
				}
			}
			ao(false);
			return null
		}

		function a9() {
			W = 0;
			a2 = 0;
			T = 0;
			a1 = 0;
			aZ = 0;
			G = 1;
			R();
			ao(false)
		}

		function K(bb) {
			var bc = bb.originalEvent;
			if (av.triggerOnTouchLeave) {
				Z = aC(h);
				O(bc, Z)
			}
		}

		function aK() {
			aR.unbind(J, aN);
			aR.unbind(aD, a9);
			aR.unbind(ay, a3);
			aR.unbind(U, L);
			if (S) {
				aR.unbind(S, K)
			}
			ao(false)
		}

		function aC(bf) {
			var be = bf;
			var bd = aA();
			var bc = an();
			var bb = ba();
			if (!bd || bb) {
				be = q
			} else {
				if (bc && bf == k && (!av.triggerOnTouchEnd || av.triggerOnTouchLeave)) {
					be = h
				} else {
					if (!bc && bf == h && av.triggerOnTouchLeave) {
						be = q
					}
				}
			}
			return be
		}

		function O(bd, bb) {
			var bc = undefined;
			if ((I() || V()) || (P() || aX())) {
				if (I() || V()) {
					bc = aF(bd, bb, l)
				}
				if ((P() || aX()) && bc !== false) {
					bc = aF(bd, bb, t)
				}
			} else {
				if (aG() && bc !== false) {
					bc = aF(bd, bb, j)
				} else {
					if (ap() && bc !== false) {
						bc = aF(bd, bb, b)
					} else {
						if (ah() && bc !== false) {
							bc = aF(bd, bb, A)
						}
					}
				}
			}
			if (bb === q) {
				a9(bd)
			}
			if (bb === h) {
				if (a) {
					if (bd.touches.length == 0) {
						a9(bd)
					}
				} else {
					a9(bd)
				}
			}
			return bc
		}

		function aF(be, bb, bd) {
			var bc = undefined;
			if (bd == l) {
				aR.trigger("swipeStatus", [bb, aP || null, ag || 0, ab || 0, W, aQ]);
				if (av.swipeStatus) {
					bc = av.swipeStatus.call(aR, be, bb, aP || null, ag || 0, ab || 0, W, aQ);
					if (bc === false) {
						return false
					}
				}
				if (bb == h && aV()) {
					aR.trigger("swipe", [aP, ag, ab, W, aQ]);
					if (av.swipe) {
						bc = av.swipe.call(aR, be, aP, ag, ab, W, aQ);
						if (bc === false) {
							return false
						}
					}
					switch (aP) {
						case p:
							aR.trigger("swipeLeft", [aP, ag, ab, W, aQ]);
							if (av.swipeLeft) {
								bc = av.swipeLeft.call(aR, be, aP, ag, ab, W, aQ)
							}
							break;
						case o:
							aR.trigger("swipeRight", [aP, ag, ab, W, aQ]);
							if (av.swipeRight) {
								bc = av.swipeRight.call(aR, be, aP, ag, ab, W, aQ)
							}
							break;
						case e:
							aR.trigger("swipeUp", [aP, ag, ab, W, aQ]);
							if (av.swipeUp) {
								bc = av.swipeUp.call(aR, be, aP, ag, ab, W, aQ)
							}
							break;
						case x:
							aR.trigger("swipeDown", [aP, ag, ab, W, aQ]);
							if (av.swipeDown) {
								bc = av.swipeDown.call(aR, be, aP, ag, ab, W, aQ)
							}
							break
					}
				}
			}
			if (bd == t) {
				aR.trigger("pinchStatus", [bb, aJ || null, aq || 0, ab || 0, W, G, aQ]);
				if (av.pinchStatus) {
					bc = av.pinchStatus.call(aR, be, bb, aJ || null, aq || 0, ab || 0, W, G, aQ);
					if (bc === false) {
						return false
					}
				}
				if (bb == h && a8()) {
					switch (aJ) {
						case c:
							aR.trigger("pinchIn", [aJ || null, aq || 0, ab || 0, W, G, aQ]);
							if (av.pinchIn) {
								bc = av.pinchIn.call(aR, be, aJ || null, aq || 0, ab || 0, W, G, aQ)
							}
							break;
						case z:
							aR.trigger("pinchOut", [aJ || null, aq || 0, ab || 0, W, G, aQ]);
							if (av.pinchOut) {
								bc = av.pinchOut.call(aR, be, aJ || null, aq || 0, ab || 0, W, G, aQ)
							}
							break
					}
				}
			}
			if (bd == A) {
				if (bb === q || bb === h) {
					clearTimeout(aW);
					clearTimeout(af);
					if (Y() && !H()) {
						N = at();
						aW = setTimeout(f.proxy(function () {
							N = null;
							aR.trigger("tap", [be.target]);
							if (av.tap) {
								bc = av.tap.call(aR, be, be.target)
							}
						}, this), av.doubleTapThreshold)
					} else {
						N = null;
						aR.trigger("tap", [be.target]);
						if (av.tap) {
							bc = av.tap.call(aR, be, be.target)
						}
					}
				}
			} else {
				if (bd == j) {
					if (bb === q || bb === h) {
						clearTimeout(aW);
						N = null;
						aR.trigger("doubletap", [be.target]);
						if (av.doubleTap) {
							bc = av.doubleTap.call(aR, be, be.target)
						}
					}
				} else {
					if (bd == b) {
						if (bb === q || bb === h) {
							clearTimeout(aW);
							N = null;
							aR.trigger("longtap", [be.target]);
							if (av.longTap) {
								bc = av.longTap.call(aR, be, be.target)
							}
						}
					}
				}
			}
			return bc
		}

		function an() {
			var bb = true;
			if (av.threshold !== null) {
				bb = ag >= av.threshold
			}
			return bb
		}

		function ba() {
			var bb = false;
			if (av.cancelThreshold !== null && aP !== null) {
				bb = (aT(aP) - ag) >= av.cancelThreshold
			}
			return bb
		}

		function ae() {
			if (av.pinchThreshold !== null) {
				return aq >= av.pinchThreshold
			}
			return true
		}

		function aA() {
			var bb;
			if (av.maxTimeThreshold) {
				if (ab >= av.maxTimeThreshold) {
					bb = false
				} else {
					bb = true
				}
			} else {
				bb = true
			}
			return bb
		}

		function al(bb, bc) {
			if (av.preventDefaultEvents === false) {
				return
			}
			if (av.allowPageScroll === m) {
				bb.preventDefault()
			} else {
				var bd = av.allowPageScroll === s;
				switch (bc) {
					case p:
						if ((av.swipeLeft && bd) || (!bd && av.allowPageScroll != D)) {
							bb.preventDefault()
						}
						break;
					case o:
						if ((av.swipeRight && bd) || (!bd && av.allowPageScroll != D)) {
							bb.preventDefault()
						}
						break;
					case e:
						if ((av.swipeUp && bd) || (!bd && av.allowPageScroll != u)) {
							bb.preventDefault()
						}
						break;
					case x:
						if ((av.swipeDown && bd) || (!bd && av.allowPageScroll != u)) {
							bb.preventDefault()
						}
						break
				}
			}
		}

		function a8() {
			var bc = aO();
			var bb = X();
			var bd = ae();
			return bc && bb && bd
		}

		function aX() {
			return !!(av.pinchStatus || av.pinchIn || av.pinchOut)
		}

		function P() {
			return !!(a8() && aX())
		}

		function aV() {
			var be = aA();
			var bg = an();
			var bd = aO();
			var bb = X();
			var bc = ba();
			var bf = !bc && bb && bd && bg && be;
			return bf
		}

		function V() {
			return !!(av.swipe || av.swipeStatus || av.swipeLeft || av.swipeRight || av.swipeUp || av.swipeDown)
		}

		function I() {
			return !!(aV() && V())
		}

		function aO() {
			return ((W === av.fingers || av.fingers === i) || !a)
		}

		function X() {
			return aQ[0].end.x !== 0
		}

		function a6() {
			return !!(av.tap)
		}

		function Y() {
			return !!(av.doubleTap)
		}

		function aU() {
			return !!(av.longTap)
		}

		function Q() {
			if (N == null) {
				return false
			}
			var bb = at();
			return (Y() && ((bb - N) <= av.doubleTapThreshold))
		}

		function H() {
			return Q()
		}

		function ax() {
			return ((W === 1 || !a) && (isNaN(ag) || ag < av.threshold))
		}

		function a0() {
			return ((ab > av.longTapThreshold) && (ag < r))
		}

		function ah() {
			return !!(ax() && a6())
		}

		function aG() {
			return !!(Q() && Y())
		}

		function ap() {
			return !!(a0() && aU())
		}

		function F() {
			a5 = at();
			ad = event.touches.length + 1
		}

		function R() {
			a5 = 0;
			ad = 0
		}

		function am() {
			var bb = false;
			if (a5) {
				var bc = at() - a5;
				if (bc <= av.fingerReleaseThreshold) {
					bb = true
				}
			}
			return bb
		}

		function aB() {
			return !!(aR.data(B + "_intouch") === true)
		}

		function ao(bb) {
			if (bb === true) {
				aR.bind(ay, a3);
				aR.bind(U, L);
				if (S) {
					aR.bind(S, K)
				}
			} else {
				aR.unbind(ay, a3, false);
				aR.unbind(U, L, false);
				if (S) {
					aR.unbind(S, K, false)
				}
			}
			aR.data(B + "_intouch", bb === true)
		}

		function ai(bc, bb) {
			var bd = bb.identifier !== undefined ? bb.identifier : 0;
			aQ[bc].identifier = bd;
			aQ[bc].start.x = aQ[bc].end.x = bb.pageX || bb.clientX;
			aQ[bc].start.y = aQ[bc].end.y = bb.pageY || bb.clientY;
			return aQ[bc]
		}

		function aH(bb) {
			var bd = bb.identifier !== undefined ? bb.identifier : 0;
			var bc = ac(bd);
			bc.end.x = bb.pageX || bb.clientX;
			bc.end.y = bb.pageY || bb.clientY;
			return bc
		}

		function ac(bc) {
			for (var bb = 0; bb < aQ.length; bb++) {
				if (aQ[bb].identifier == bc) {
					return aQ[bb]
				}
			}
		}

		function aj() {
			var bb = [];
			for (var bc = 0; bc <= 5; bc++) {
				bb.push({start: {x: 0, y: 0}, end: {x: 0, y: 0}, identifier: 0})
			}
			return bb
		}

		function aI(bb, bc) {
			bc = Math.max(bc, aT(bb));
			M[bb].distance = bc
		}

		function aT(bb) {
			if (M[bb]) {
				return M[bb].distance
			}
			return undefined
		}

		function aa() {
			var bb = {};
			bb[p] = aw(p);
			bb[o] = aw(o);
			bb[e] = aw(e);
			bb[x] = aw(x);
			return bb
		}

		function aw(bb) {
			return {direction: bb, distance: 0}
		}

		function aM() {
			return a2 - T
		}

		function au(be, bd) {
			var bc = Math.abs(be.x - bd.x);
			var bb = Math.abs(be.y - bd.y);
			return Math.round(Math.sqrt(bc * bc + bb * bb))
		}

		function a7(bb, bc) {
			var bd = (bc / bb) * 1;
			return bd.toFixed(2)
		}

		function ar() {
			if (G < 1) {
				return z
			} else {
				return c
			}
		}

		function aS(bc, bb) {
			return Math.round(Math.sqrt(Math.pow(bb.x - bc.x, 2) + Math.pow(bb.y - bc.y, 2)))
		}

		function aE(be, bc) {
			var bb = be.x - bc.x;
			var bg = bc.y - be.y;
			var bd = Math.atan2(bg, bb);
			var bf = Math.round(bd * 180 / Math.PI);
			if (bf < 0) {
				bf = 360 - Math.abs(bf)
			}
			return bf
		}

		function aL(bc, bb) {
			var bd = aE(bc, bb);
			if ((bd <= 45) && (bd >= 0)) {
				return p
			} else {
				if ((bd <= 360) && (bd >= 315)) {
					return p
				} else {
					if ((bd >= 135) && (bd <= 225)) {
						return o
					} else {
						if ((bd > 45) && (bd < 135)) {
							return x
						} else {
							return e
						}
					}
				}
			}
		}

		function at() {
			var bb = new Date();
			return bb.getTime()
		}

		function aY(bb) {
			bb = f(bb);
			var bd = bb.offset();
			var bc = {left: bd.left, right: bd.left + bb.outerWidth(), top: bd.top, bottom: bd.top + bb.outerHeight()};
			return bc
		}

		function E(bb, bc) {
			return (bb.x > bc.left && bb.x < bc.right && bb.y > bc.top && bb.y < bc.bottom)
		}
	}
}));
$(document).ready(function () {
	$('#slider-1').liquidSlider({
		autoHeight: false,
		minHeight: 0,
		continuous: true,
		autoSlide: true,
		autoSlideInterval: 5000,
		forceAutoSlide: false,
		pauseOnHover: true,
		dynamicArrows: false,
		dynamicArrowsGraphical: false,
		hoverArrows: false,
		hideArrowsWhenMobile: true,
		dynamicTabs: true,
		dynamicTabsHtml: true,
		includeTitle: true,
		panelTitleSelector: '.header h2',
		dynamicTabsAlign: 'bottom',
		dynamicTabsPosition: 'bottom',
		navElementTag: 'div',
		keyboardNavigation: true,
		preloader: true,
		responsive: true,
		mobileNavigation: false,
		slideEaseFunction: 'animate.css',
		animateIn: "fadeIn",
		animateOut: "fadeOut",
		slideEaseDuration: 500,
		fadeInDuration: 500,
		fadeOutDuration: 500
	});
});
/*
 *  Liquid Slider 2.3.9
 *  Copyright 2012 Kevin Batdorf
 *  http://liquidslider.com
 *  MIT license
 */
"function" != typeof Object.create && (Object.create = function (a) {
	"use strict";
	function b() {
	}

	return b.prototype = a, new b
}), function (a, b, c, d) {
	"use strict";
	a.fn.liquidSlider = function (b) {
		return this.each(function () {
			var c = Object.create(LiquidSlider);
			c.init(b, this), a.data(this, "liquidSlider", c)
		})
	}, a.fn.liquidSlider.options = {
		autoHeight: !0,
		minHeight: 0,
		heightEaseDuration: 1500,
		heightEaseFunction: "easeInOutExpo",
		slideEaseDuration: 1500,
		slideEaseFunction: "easeInOutExpo",
		slideEaseFunctionFallback: "swing",
		animateIn: "bounceInRight",
		animateOut: "bounceOutRight",
		continuous: !0,
		fadeInDuration: 500,
		fadeOutDuration: 500,
		autoSlide: !1,
		autoSlideDirection: "right",
		autoSlideInterval: 6e3,
		forceAutoSlide: !1,
		pauseOnHover: !1,
		dynamicArrows: !0,
		dynamicArrowsGraphical: !0,
		dynamicArrowLeftText: "&#171; left",
		dynamicArrowRightText: "right &#187;",
		hideSideArrows: !1,
		hideSideArrowsDuration: 750,
		hoverArrows: !0,
		hoverArrowDuration: 250,
		dynamicTabs: !0,
		dynamicTabsHtml: !0,
		includeTitle: !0,
		panelTitleSelector: ".title",
		dynamicTabsAlign: "left",
		dynamicTabsPosition: "top",
		navElementTag: "div",
		firstPanelToLoad: 1,
		hashLinking: !1,
		hashTitleSelector: ".title",
		keyboardNavigation: !1,
		leftKey: 39,
		rightKey: 37,
		panelKeys: {1: 49, 2: 50, 3: 51, 4: 52},
		responsive: !0,
		mobileNavigation: !0,
		mobileNavDefaultText: "Menu",
		mobileUIThreshold: 0,
		hideArrowsWhenMobile: !0,
		hideArrowsThreshold: 0,
		useCSSMaxWidth: 3e3,
		preload: function () {
			var a = this;
			jQuery(b).bind("load", function () {
				a.finalize()
			})
		},
		onload: function () {
		},
		pretransition: function () {
			this.transition()
		},
		callback: function () {
		},
		preloader: !1,
		swipe: !0,
		swipeArgs: d
	}
}(jQuery, window, document);
var LiquidSlider = {};
LiquidSlider.init = function (a, b) {
	var c = this;
	c.elem = b, c.$elem = jQuery(b), jQuery(".no-js").removeClass("no-js"), c.sliderId = "#" + c.$elem.attr("id"), c.$sliderId = jQuery(c.sliderId), c.options = jQuery.extend({}, jQuery.fn.liquidSlider.options, a), c.pSign = c.options.responsive ? "%" : "px", c.determineAnimationType(), c.options.responsive || (c.options.mobileNavigation = !1, c.options.hideArrowsWhenMobile = !1), "animate.css" === c.options.slideEaseFunction && (c.useCSS ? (c.options.continuous = !1, c.animateCSS = !0) : c.options.slideEaseFunction = c.options.slideEaseFunctionFallback), c.build(), c.events(), !c.options.responsive && c.options.dynamicArrows && c.$sliderWrap.width(c.$sliderId.outerWidth(!0) + c.leftArrow.outerWidth(!0) + c.rightArrow.outerWidth(!0)), c.loaded = !0, c.options.preload.call(c)
}, LiquidSlider.build = function () {
	var a, b = this;
	"ls-wrapper" !== b.$sliderId.parent().attr("class") && b.$sliderId.wrap('<div id="' + b.$elem.attr("id") + '-wrapper" class="ls-wrapper"></div>'), b.$sliderWrap = jQuery(b.sliderId + "-wrapper"), b.options.preloader && b.addPreloader(), jQuery(b.sliderId).children().addClass(b.$elem.attr("id") + "-panel ls-panel"), b.panelClass = b.sliderId + " ." + b.$elem.attr("id") + "-panel:not(.clone)", b.$panelClass = jQuery(b.panelClass), b.$panelClass.wrapAll('<div class="panel-container"></div>'), b.$panelClass.wrapInner('<div class="panel-wrapper"></div>'), b.panelContainer = b.$panelClass.parent(), b.$panelContainer = b.panelContainer, b.options.hashLinking && b.buildHashTags(), "fade" === b.options.slideEaseFunction && (b.$panelClass.addClass("fade"), b.options.continuous = !1, b.fade = !0), b.options.dynamicTabs ? b.addNavigation() : b.options.mobileNavigation = !1, b.options.dynamicArrows ? b.addArrows() : (b.options.hoverArrows = !1, b.options.hideSideArrows = !1, b.options.hideArrowsWhenMobile = !1), a = b.$leftArrow && "absolute" === b.$leftArrow.css("position") ? 0 : 1, b.totalSliderWidth = b.$sliderId.outerWidth(!0) + jQuery(b.$leftArrow).outerWidth(!0) * a + jQuery(b.$rightArrow).outerWidth(!0) * a, jQuery(b.$sliderWrap).css("width", b.totalSliderWidth), b.options.dynamicTabs && b.alignNavigation(), b.options.hideSideArrows && (b.options.continuous = !1), b.options.continuous && (b.$panelContainer.prepend(b.$panelContainer.children().last().clone().addClass("clone")), b.$panelContainer.append(b.$panelContainer.children().eq(1).clone().addClass("clone")));
	var c = b.options.continuous ? 2 : 0;
	b.panelCount = jQuery(b.panelClass).length, b.panelCountTotal = b.fade ? 1 : b.panelCount + c, b.panelWidth = jQuery(b.panelClass).outerWidth(), b.totalWidth = b.panelCountTotal * b.panelWidth, jQuery(b.sliderId + " .panel-container").css("width", b.totalWidth), b.slideDistance = b.options.responsive ? 100 : jQuery(b.sliderId).outerWidth(), b.useCSS && b.options.responsive && (b.totalWidth = 100 * b.panelCountTotal, b.slideDistance = 100 / b.panelCountTotal), b.options.responsive && b.makeResponsive(), b.prepareTransition(b.getFirstPanel(), !0), b.updateClass()
}, LiquidSlider.determineAnimationType = function () {
	var a = this, b = "animation", c = "", d = "Webkit Moz O ms Khtml".split(" "), e = "", f = 0;
	if (a.useCSS = !1, a.elem.style.animationName && (a.useCSS = !0), a.useCSS === !1)for (f = 0; f < d.length; f++)if (void 0 !== a.elem.style[d[f] + "AnimationName"]) {
		e = d[f], b = e + "Animation", c = "-" + e.toLowerCase() + "-", a.useCSS = !0;
		break
	}
	document.documentElement.clientWidth > a.options.useCSSMaxWidth && (a.useCSS = !1)
}, LiquidSlider.configureCSSTransitions = function (a, b) {
	var c, d, e, f, g = this;
	g.easing = {
		easeOutCubic: "cubic-bezier(.215,.61,.355,1)",
		easeInOutCubic: "cubic-bezier(.645,.045,.355,1)",
		easeInCirc: "cubic-bezier(.6,.04,.98,.335)",
		easeOutCirc: "cubic-bezier(.075,.82,.165,1)",
		easeInOutCirc: "cubic-bezier(.785,.135,.15,.86)",
		easeInExpo: "cubic-bezier(.95,.05,.795,.035)",
		easeOutExpo: "cubic-bezier(.19,1,.22,1)",
		easeInOutExpo: "cubic-bezier(1,0,0,1)",
		easeInQuad: "cubic-bezier(.55,.085,.68,.53)",
		easeOutQuad: "cubic-bezier(.25,.46,.45,.94)",
		easeInOutQuad: "cubic-bezier(.455,.03,.515,.955)",
		easeInQuart: "cubic-bezier(.895,.03,.685,.22)",
		easeOutQuart: "cubic-bezier(.165,.84,.44,1)",
		easeInOutQuart: "cubic-bezier(.77,0,.175,1)",
		easeInQuint: "cubic-bezier(.755,.05,.855,.06)",
		easeOutQuint: "cubic-bezier(.23,1,.32,1)",
		easeInOutQuint: "cubic-bezier(.86,0,.07,1)",
		easeInSine: "cubic-bezier(.47,0,.745,.715)",
		easeOutSine: "cubic-bezier(.39,.575,.565,1)",
		easeInOutSine: "cubic-bezier(.445,.05,.55,.95)",
		easeInBack: "cubic-bezier(.6,-.28,.735,.045)",
		easeOutBack: "cubic-bezier(.175,.885,.32,1.275)",
		easeInOutBack: "cubic-bezier(.68,-.55,.265,1.55)"
	}, e = g.easing[g.options.slideEaseFunction] || g.options.slideEaseFunction, f = g.easing[g.options.heightEaseFunction] || g.options.heightEaseFunction, g.useCSS && (c = "all " + (a || g.options.slideEaseDuration) + "ms " + e, d = "all " + (b || g.options.heightEaseDuration) + "ms " + f, jQuery(g.panelContainer).css({
		"-webkit-transition": c,
		"-moz-transition": c,
		"-ms-transition": c,
		"-o-transition": c,
		transition: c
	}), g.options.autoHeight && g.$sliderId.css({
		"-webkit-transition": d,
		"-moz-transition": d,
		"-ms-transition": d,
		"-o-transition": d,
		transition: d
	}))
}, LiquidSlider.transitionFade = function () {
	var a = this;
	jQuery(a.panelClass).eq(a.nextPanel).fadeTo(a.options.fadeInDuration, 1).css("z-index", 1), jQuery(a.panelClass).eq(a.prevPanel).fadeTo(a.options.fadeOutDuration, 0).css("z-index", 0), a.callback(a.options.callback, !0)
}, LiquidSlider.hover = function () {
	var a = this;
	a.$sliderWrap.hover(function () {
		a.options.hoverArrows && a.hideShowArrows(a.options.fadeInDuration, !0, !0, !1), a.options.pauseOnHover && clearTimeout(a.autoSlideTimeout)
	}, function () {
		a.options.hoverArrows && a.hideShowArrows(a.options.fadeOutnDuration, !0, !1, !0), a.options.pauseOnHover && a.options.autoSlide && a.startAutoSlide(!0)
	})
}, LiquidSlider.events = function () {
	var a = this;
	a.options.dynamicArrows && a.registerArrows(), a.options.dynamicTabs && a.registerNav(), a.options.swipe && a.registerTouch(), a.options.keyboardNavigation && a.registerKeyboard(), a.$sliderWrap.find("*").on("click", function () {
		a.options.forceAutoSlide ? a.startAutoSlide(!0) : a.options.autoSlide && a.stopAutoSlide()
	}), a.hover()
}, LiquidSlider.setNextPanel = function (a) {
	var b = this;
	a !== b.nextPanel && (b.prevPanel = b.nextPanel, b.loaded && ("number" == typeof a ? b.nextPanel = a : (b.nextPanel += ~~("right" === a) || -1, b.options.continuous || (b.nextPanel = b.nextPanel < 0 ? b.panelCount - 1 : b.nextPanel % b.panelCount)), b.fade || b.animateCSS ? b.prepareTransition(b.nextPanel) : b.verifyPanel()))
}, LiquidSlider.getFirstPanel = function () {
	var a, b = this;
	return b.options.hashLinking && (a = jQuery.inArray(b.convertRegex(window.location.hash), b.hashLinks), -1 === a && (a = 0)), a ? a : b.options.firstPanelToLoad - 1
}, LiquidSlider.getFromPanel = function (a, b) {
	var c = this;
	return c.convertRegex(c.$panelClass.find(a).eq(b).text())
}, LiquidSlider.convertRegex = function (a) {
	return jQuery.trim(a).replace(/[^\w -]+/g, "").replace(/ +/g, "-").toLowerCase()
}, LiquidSlider.updateClass = function (a) {
	var b = this;
	b.options.dynamicTabs && jQuery(b.$sliderWrap).find("> .ls-nav .tab" + b.sanitizeNumber(b.nextPanel)).addClass("current").siblings().removeClass("current"), b.$panelClass.eq(b.sanitizeNumber(b.nextPanel) - 1).addClass("currentPanel").siblings().removeClass("currentPanel"), b.$clones = jQuery(b.sliderId + " .clone"), !b.options.continuous || -1 !== b.nextPanel && b.nextPanel !== b.panelCount ? b.$clones.removeClass("currentPanel") : b.$clones.addClass("currentPanel"), a && ($(".ls-current").removeClass("ls-current"), a.addClass("ls-current"))
}, LiquidSlider.sanitizeNumber = function (a) {
	var b = this;
	switch (!0) {
		case a >= b.panelCount:
			return 1;
		case-1 >= a:
			return b.panelCount;
		default:
			return a + 1
	}
}, LiquidSlider.finalize = function () {
	var a = this, b = a.options.autoHeight ? a.getHeight() : a.getHeighestPanel(a.nextPanel);
	a.options.autoHeight && a.adjustHeight(!0, b), a.options.autoSlide && a.autoSlide(), a.options.preloader && a.removePreloader(), a.onload()
}, LiquidSlider.callback = function (a, b) {
	var c = this;
	a && c.loaded && (c.useCSS && "undefined" != typeof b ? jQuery(".panel-container").one("webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend", function () {
		a.call(c)
	}) : setTimeout(function () {
		a.call(c)
	}, c.options.slideEaseDuration + 50))
}, LiquidSlider.onload = function () {
	var a = this;
	a.options.onload.call(a)
}, LiquidSlider.prepareTransition = function (a, b, c, d) {
	var e = this;
	e.nextPanel = a || 0, c || e.pretransition(e.options.pretransition), e.noAnimation = b, e.noPosttransition = d, !e.loaded || c ? e.transition() : e.options.pretransition.call(e)
}, LiquidSlider.pretransition = function () {
	var a = this;
	a.options.hashLinking && a.updateHashTags(), a.options.mobileNavigation && a.dropdownSelect.val("tab" + (a.nextPanel + 1)), a.options.hideSideArrows && a.hideShowArrows(), a.updateClass()
}, LiquidSlider.getTransitionMargin = function () {
	var a = this;
	return -(a.nextPanel * a.slideDistance) - a.slideDistance * ~~a.options.continuous
}, LiquidSlider.transition = function () {
	var a = this, b = a.getTransitionMargin();
	if (a.animateCSS && a.loaded)return a.transitionOutAnimateCSS(), !1;
	if (b + a.pSign !== a.panelContainer.css("margin-left") || -100 !== b)switch (a.options.autoHeight && !a.animateCSS && a.adjustHeight(!0, a.getHeight()), !0) {
		case a.fade:
			a.transitionFade();
			break;
		case a.animateCSS:
			a.transitionInAnimateCSS(b);
			break;
		case a.useCSS:
			a.transitionCSS(b, a.noAnimation);
			break;
		default:
			a.transitionjQuery(b, a.noAnimation)
	}
	a.noPosttransition || a.callback(a.options.callback)
}, LiquidSlider.transitionOutAnimateCSS = function () {
	var a = this;
	jQuery(a.panelClass).removeClass(a.options.animateIn + " animated"), jQuery(a.panelClass).eq(a.prevPanel).addClass("animated " + a.options.animateOut), a.callback(a.transitionInAnimateCSS, void 0)
}, LiquidSlider.transitionInAnimateCSS = function () {
	var a = this;
	a.options.autoHeight && a.adjustHeight(!1, a.getHeight()), a.transitionCSS(a.getTransitionMargin(), !a.loaded), jQuery(a.panelClass).removeClass(a.options.animateOut + " animated"), jQuery(a.panelClass).eq(a.nextPanel).addClass("animated " + a.options.animateIn), a.callback(a.options.callback, void 0)
}, LiquidSlider.transitionCSS = function (a, b) {
	var c = this;
	b && c.configureCSSTransitions("0", "0"), c.panelContainer.css({
		"-webkit-transform": "translate3d(" + a + c.pSign + ", 0, 0)",
		"-moz-transform": "translate3d(" + a + c.pSign + ", 0, 0)",
		"-ms-transform": "translate3d(" + a + c.pSign + ", 0, 0)",
		"-o-transform": "translate3d(" + a + c.pSign + ", 0, 0)",
		transform: "translate3d(" + a + c.pSign + ", 0, 0)"
	}), b ? c.callback(function () {
		c.configureCSSTransitions()
	}) : c.configureCSSTransitions()
}, LiquidSlider.transitionjQuery = function (a, b) {
	var c = this;
	b ? c.panelContainer.css("margin-left", a + c.pSign) : c.panelContainer.animate({"margin-left": a + c.pSign}, {
		easing: jQuery.easing.hasOwnProperty(c.options.slideEaseFunction) ? c.options.slideEaseFunction : c.options.slideEaseFunctionFallback,
		duration: c.options.slideEaseDuration,
		queue: !1
	})
}, LiquidSlider.getHeight = function (a) {
	var b = this;
	return a = a || b.$panelClass.eq(b.sanitizeNumber(b.nextPanel) - 1).outerHeight(!0), a = a < b.options.minHeight ? b.options.minHeight : a
}, LiquidSlider.getHeighestPanel = function () {
	var a, b = this, c = 0;
	return b.$panelClass.each(function () {
		a = jQuery(this).outerHeight(!0), c = a > c ? a : c
	}), b.options.autoHeight ? c : void 0
}, LiquidSlider.verifyPanel = function () {
	var a = this, b = !1;
	if (a.options.continuous)switch (!0) {
		case a.nextPanel > a.panelCount:
			a.nextPanel = a.panelCount, a.setNextPanel(a.panelCount);
			break;
		case a.nextPanel < -1:
			a.nextPanel = -1, a.setNextPanel(-1);
			break;
		case b || a.nextPanel === a.panelCount || -1 === a.nextPanel:
			a.prepareTransition(a.nextPanel), a.updateClass(), clearTimeout(c);
			var c = setTimeout(function () {
				a.nextPanel === a.panelCount ? a.prepareTransition(0, !0, !0, !0) : -1 === a.nextPanel && a.prepareTransition(a.panelCount - 1, !0, !0, !0)
			}, a.options.slideEaseDuration + 50);
			break;
		default:
			b = !0, a.prepareTransition(a.nextPanel)
	} else a.nextPanel === a.panelCount ? a.nextPanel = 0 : -1 === a.nextPanel && (a.nextPanel = a.panelCount - 1), a.prepareTransition(a.nextPanel)
}, LiquidSlider.addNavigation = function (a) {
	var b = this, c = "<" + b.options.navElementTag + ' class="ls-nav"><ul id="' + b.$elem.attr("id") + '-nav-ul"></ul></' + b.options.navElementTag + ">";
	if ("bottom" === b.options.dynamicTabsPosition ? b.$sliderId.after(c) : b.$sliderId.before(c), b.options.mobileNavigation) {
		var d = b.options.mobileNavDefaultText ? '<option disabled="disabled" selected="selected">' + b.options.mobileNavDefaultText + "</option>" : null, e = '<div class="ls-select-box"><select id="' + b.$elem.attr("id") + '-nav-select" name="navigation">' + d + "</select></div>";
		b.navigation = jQuery(b.sliderId + "-nav-ul").before(e), b.dropdown = jQuery(b.sliderId + "-wrapper .ls-select-box"), b.dropdownSelect = jQuery(b.sliderId + "-nav-select"), jQuery.each(b.$elem.find(b.options.panelTitleSelector), function (a) {
			jQuery(b.$sliderWrap).find(".ls-select-box select").append('<option value="tab' + (a + 1) + '">' + jQuery(this).text() + "</option>")
		})
	}
	jQuery.each(b.$elem.find(b.options.panelTitleSelector), function (c) {
		jQuery(b.$sliderWrap).find(".ls-nav ul").append('<li class="tab' + (c + 1) + '"><a class="' + (a || "") + '" href="#' + (c + 1) + '">' + b.getNavInsides(this) + "</a></li>"), b.options.includeTitle || jQuery(this).remove()
	})
}, LiquidSlider.getNavInsides = function (a) {
	return this.options.dynamicTabsHtml ? jQuery(a).html() : jQuery(a).text()
}, LiquidSlider.alignNavigation = function () {
	var a = this, b = a.options.dynamicArrowsGraphical ? "-arrow" : "";
	"center" !== a.options.dynamicTabsAlign && (a.options.responsive || jQuery(a.$sliderWrap).find(".ls-nav ul").css("margin-" + a.options.dynamicTabsAlign, jQuery(a.$sliderWrap).find(".ls-nav-" + a.options.dynamicTabsAlign + b).outerWidth(!0) + parseInt(a.$sliderId.css("margin-" + a.options.dynamicTabsAlign), 10)), jQuery(a.$sliderWrap).find(".ls-nav ul").css("float", a.options.dynamicTabsAlign)), a.totalNavWidth = jQuery(a.$sliderWrap).find(".ls-nav ul").outerWidth(!0), "center" === a.options.dynamicTabsAlign && (a.totalNavWidth = 0, jQuery(a.$sliderWrap).find(".ls-nav li a").each(function () {
		a.totalNavWidth += jQuery(this).outerWidth(!0)
	}), jQuery(a.$sliderWrap).find(".ls-nav ul").css("width", a.totalNavWidth + 1))
}, LiquidSlider.registerNav = function () {
	var a = this;
	a.$sliderWrap.find("[class^=ls-nav] li").on("click", function (b) {
		return b.preventDefault(), a.setNextPanel(parseInt(jQuery(this).attr("class").split("tab")[1], 10) - 1), !1
	})
}, LiquidSlider.addArrows = function (a) {
	var b = this, c = b.options.dynamicArrowsGraphical ? "-arrow " : " ";
	b.$sliderWrap.addClass("arrows"), b.options.dynamicArrowsGraphical && (b.options.dynamicArrowLeftText = "", b.options.dynamicArrowRightText = ""), b.$sliderId.before('<div class="ls-nav-left' + c + (a || "") + '"><a href="#">' + b.options.dynamicArrowLeftText + "</a></div>"), b.$sliderId.after('<div class="ls-nav-right' + c + (a || "") + '"><a href="#">' + b.options.dynamicArrowRightText + "</a></div>"), b.leftArrow = jQuery(b.sliderId + "-wrapper [class^=ls-nav-left]").css("visibility", "hidden").addClass("ls-hidden"), b.rightArrow = jQuery(b.sliderId + "-wrapper [class^=ls-nav-right]").css("visibility", "hidden").addClass("ls-hidden"), b.options.hoverArrows || b.hideShowArrows(void 0, !0, !0, !1)
}, LiquidSlider.hideShowArrows = function (a, b, c, d) {
	var e = this, f = "undefined" != typeof a ? a : e.options.fadeOutDuration, g = "undefined" != typeof a ? a : e.options.fadeInDuration, h = b ? "visible" : "hidden";
	c || !d && 1 !== e.sanitizeNumber(e.nextPanel) ? (c || e.leftArrow.hasClass("ls-hidden")) && e.leftArrow.stop().css("visibility", "visible").fadeTo(g, 1).removeClass("ls-hidden") : e.leftArrow.stop().fadeTo(f, 0, function () {
		jQuery(this).css("visibility", h).addClass("ls-hidden")
	}), c || !d && e.sanitizeNumber(e.nextPanel) !== e.panelCount ? (c || e.rightArrow.hasClass("ls-hidden")) && e.rightArrow.stop().css("visibility", "visible").fadeTo(g, 1).removeClass("ls-hidden") : e.rightArrow.stop().fadeTo(f, 0, function () {
		jQuery(this).css("visibility", h).addClass("ls-hidden")
	})
}, LiquidSlider.registerArrows = function () {
	var a = this;
	jQuery(a.$sliderWrap.find("[class^=ls-nav-]")).on("click", function (b) {
		b.preventDefault(), a.setNextPanel(jQuery(this).attr("class").split(" ")[0].split("-")[2])
	})
}, LiquidSlider.adjustHeight = function (a, b, c, d) {
	var e = this;
	return a || e.useCSS ? (a && e.configureCSSTransitions("0", "0"), e.$sliderId.height(b), void(a && e.configureCSSTransitions())) : void e.$sliderId.animate({height: b + "px"}, {
		easing: jQuery.easing.hasOwnProperty(c || e.options.heightEaseFunction) ? c || e.options.heightEaseFunction : e.options.slideEaseFunctionFallback,
		duration: d || e.options.heightEaseDuration,
		queue: !1
	})
}, LiquidSlider.autoSlide = function () {
	var a = this;
	a.options.autoSlideInterval < a.options.slideEaseDuration && (a.options.autoSlideInterval = a.options.slideEaseDuration > a.options.heightEaseDuration ? a.options.slideEaseDuration : a.options.heightEaseDuration), a.autoSlideTimeout = document.hasFocus() ? setTimeout(function () {
		a.setNextPanel(a.options.autoSlideDirection), a.autoSlide()
	}, a.options.autoSlideInterval) : void 0, jQuery(window).on("focus", function () {
		a.startAutoSlide(!0)
	}), jQuery(window).on("blur", function () {
		a.stopAutoSlide()
	})
}, LiquidSlider.stopAutoSlide = function () {
	var a = this;
	a.options.autoSlide = !1, clearTimeout(a.autoSlideTimeout)
}, LiquidSlider.startAutoSlide = function (a) {
	var b = this;
	b.options.autoSlide = !0, a || b.setNextPanel(b.options.autoSlideDirection), b.autoSlide(clearTimeout(b.autoSlideTimeout))
}, LiquidSlider.buildHashTags = function () {
	var a = this;
	a.hashLinks = [], jQuery(a.panelClass + " " + a.options.hashTitleSelector).each(function () {
		a.hashLinks.push(a.convertRegex($(this).text()))
	})
}, LiquidSlider.updateHashTags = function () {
	var a = this;
	window.location.hash = a.hashLinks[a.sanitizeNumber(a.nextPanel) - 1]
}, LiquidSlider.registerKeyboard = function () {
	var a = this;
	jQuery(document).keydown(function (b) {
		var c = b.keyCode || b.which;
		"textarea" !== b.target.type && "textbox" !== b.target.type && (a.options.forceAutoSlide || jQuery(this).trigger("click"), c === a.options.leftKey && a.setNextPanel("right"), c === a.options.rightKey && a.setNextPanel("left"), jQuery.each(a.options.panelKeys, function (b, d) {
			c === d && a.setNextPanel(b - 1)
		}))
	})
}, LiquidSlider.addPreloader = function () {
	var a = this;
	jQuery(a.sliderId + "-wrapper").append('<div class="ls-preloader"></div>')
}, LiquidSlider.removePreloader = function () {
	var a = this;
	jQuery(a.sliderId + "-wrapper .ls-preloader").fadeTo("slow", 0, function () {
		jQuery(this).remove()
	})
}, LiquidSlider.makeResponsive = function () {
	var a = this;
	jQuery(a.sliderId + "-wrapper").addClass("ls-responsive").css({
		"max-width": jQuery(a.sliderId + " .ls-panel:first-child").width(),
		width: "100%"
	}), jQuery(a.sliderId + " .panel-container").css("width", 100 * a.panelCountTotal + a.pSign), jQuery(a.sliderId + " .ls-panel").css("width", 100 / a.panelCountTotal + a.pSign), jQuery(a.sliderId + " .ls-panel").css("width", jQuery(a.sliderId).outerWidth(!0)), a.options.hideArrowsWhenMobile && (a.leftWrapperPadding = jQuery(a.sliderId + "-wrapper").css("padding-left"), a.rightWrapperPadding = a.$sliderWrap.css("padding-right")), a.responsiveEvents(), jQuery(window).bind("resize orientationchange", function () {
		a.responsiveEvents(), clearTimeout(a.resizingTimeout), a.resizingTimeout = setTimeout(function () {
			var b = a.options.autoHeight ? a.getHeight() : a.getHeighestPanel(a.nextPanel);
			a.adjustHeight(!1, b), jQuery(a.sliderId + " .ls-panel").css("width", jQuery(a.sliderId).outerWidth(!0))
		}, 500)
	})
}, LiquidSlider.responsiveEvents = function () {
	var a = this, b = a.options.hideArrowsThreshold || a.options.mobileUIThreshold || a.totalNavWidth + 10;
	a.$sliderId.outerWidth() < b ? (a.options.mobileNavigation && (a.navigation.css("display", "none"), a.dropdown.css("display", "block"), a.dropdownSelect.css("display", "block"), jQuery(a.sliderId + "-nav-select").val(a.options.mobileNavDefaultText)), a.options.dynamicArrows && (a.options.hideArrowsWhenMobile ? (a.leftArrow.remove().length = 0, a.rightArrow.remove().length = 0) : a.options.dynamicArrowsGraphical || (a.leftArrow.css("margin-" + a.options.dynamicTabsPosition, "0"), a.rightArrow.css("margin-" + a.options.dynamicTabsPosition, "0")))) : (a.options.mobileNavigation && (a.navigation.css("display", "block"), a.dropdown.css("display", "none"), a.dropdownSelect.css("display", "none")), a.options.dynamicArrows && (!a.options.hideArrowsWhenMobile || a.leftArrow.length && a.rightArrow.length ? !a.options.dynamicArrowsGraphical && a.options.mobileNavigation && (a.leftArrow.css("margin-" + a.options.dynamicTabsPosition, a.navigation.css("height")), a.rightArrow.css("margin-" + a.options.dynamicTabsPosition, a.navigation.css("height"))) : (a.addArrows(), a.registerArrows()))), jQuery(a.sliderId + "-wrapper").css("width", "100%"), a.loaded && jQuery(a.sliderId + " .ls-panel").width(100 / a.panelCountTotal + a.pSign), a.options.mobileNavigation && a.dropdownSelect.change(function () {
		a.setNextPanel(parseInt(jQuery(this).val().split("tab")[1], 10) - 1)
	})
}, LiquidSlider.registerTouch = function () {
	var a = this, b = a.options.swipeArgs || {
			fallbackToMouseEvents: !1,
			allowPageScroll: "vertical",
			swipe: function (b, c) {
				return "up" === c || "down" === c ? !1 : (a.swipeDir = "left" === c ? "right" : "left", void a.setNextPanel(a.swipeDir))
			}
		};
	jQuery(a.sliderId + " .ls-panel").swipe(b)
};

			// decrypt helper function
		function decryptCharcode(n,start,end,offset) {
			n = n + offset;
			if (offset > 0 && n > end) {
				n = start + (n - end - 1);
			} else if (offset < 0 && n < start) {
				n = end - (start - n - 1);
			}
			return String.fromCharCode(n);
		}
			// decrypt string
		function decryptString(enc,offset) {
			var dec = "";
			var len = enc.length;
			for(var i=0; i < len; i++) {
				var n = enc.charCodeAt(i);
				if (n >= 0x2B && n <= 0x3A) {
					dec += decryptCharcode(n,0x2B,0x3A,offset);	// 0-9 . , - + / :
				} else if (n >= 0x40 && n <= 0x5A) {
					dec += decryptCharcode(n,0x40,0x5A,offset);	// A-Z @
				} else if (n >= 0x61 && n <= 0x7A) {
					dec += decryptCharcode(n,0x61,0x7A,offset);	// a-z
				} else {
					dec += enc.charAt(i);
				}
			}
			return dec;
		}
			// decrypt spam-protected emails
		function linkTo_UnCryptMailto(s) {
			location.href = decryptString(s,-1);
		}
		