{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/a2hs.js/index.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./app/javascript/packs/application.js","webpack:///./app/javascript/src/bootstrap.js","webpack:///./app/javascript/src/jquery.stickit.min.js","webpack:///./app/javascript/src/imagesloaded.pkgd.min.js","webpack:///./app/javascript/src/owl.carousel.js","webpack:///./app/javascript/src/jquery.mask.min.js","webpack:///external \"jQuery\"","webpack:///./app/javascript/src/script.js","webpack:///./app/javascript/src/init.js","webpack:///(webpack)/buildin/module.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","settings","arguments","length","undefined","backgroundColor","padding","shadowColor","shadowSize","fontFamily","color","fontSize","brandName","logoImage","htmlContent","concat","iOS","test","window","navigator","userAgent","toLowerCase","standalone","localStorage","a2hs_message","div","document","createElement","style","innerHTML","setAttribute","onclick","event","preventDefault","setItem","querySelector","remove","head","appendChild","body","_typeof","iterator","obj","constructor","this","Rails","linkClickSelector","buttonClickSelector","selector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","ref","content","cspNonce","Element","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","element","getData","setData","$","Array","slice","querySelectorAll","csrfParam","csrfToken","meta","CSRFProtection","xhr","token","setRequestHeader","refreshCSRFTokens","param","forEach","input","CustomEvent","fire","params","evt","createEvent","initCustomEvent","bubbles","cancelable","detail","Event","result","defaultPrevented","data","dispatchEvent","stopEverything","e","target","stopPropagation","stopImmediatePropagation","delegate","eventType","handler","addEventListener","parentNode","AcceptHeaders","createXHR","prepareOptions","processResponse","text","html","xml","json","script","ajax","options","response","responseText","getResponseHeader","Math","floor","status","success","statusText","error","complete","beforeSend","readyState","XMLHttpRequest","OPENED","send","url","location","href","type","toUpperCase","indexOf","dataType","accept","done","open","crossDomain","withCredentials","onreadystatechange","DONE","parser","match","JSON","parse","removeChild","DOMParser","replace","parseFromString","isCrossDomain","originAnchor","urlAnchor","protocol","host","toArray","serializeElement","additionalParam","inputs","elements","disabled","option","selected","push","checked","map","encodeURIComponent","join","formElements","form","filter","el","allowAction","handleConfirm","confirm","message","answer","callback","getAttribute","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","originalText","removeEventListener","handleMethod","formContent","link","method","action","display","click","isRemote","handleRemote","button","enctype","FormData","append","args","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","metaKey","ctrlKey","jQuery","rails","Error","ajaxPrefilter","originalOptions","start","_rails_loaded","setTimeout","require","version","fn","jquery","split","emulateTransitionEnd","duration","called","$el","one","trigger","support","transition","end","transEndEventNames","WebkitTransition","MozTransition","OTransition","transitionEnd","special","bsTransitionEnd","bindType","delegateType","handle","is","handleObj","apply","dismiss","Alert","on","close","VERSION","TRANSITION_DURATION","$this","attr","$parent","removeElement","detach","closest","isDefaultPrevented","removeClass","hasClass","old","alert","each","Constructor","noConflict","Button","$element","extend","DEFAULTS","isLoading","Plugin","toggle","setState","loadingText","state","val","resetText","proxy","addClass","removeAttr","changed","$input","find","prop","toggleClass","$btn","Carousel","$indicators","paused","sliding","interval","$active","$items","keyboard","keydown","pause","documentElement","cycle","slide","to","wrap","tagName","which","prev","next","clearInterval","setInterval","getItemIndex","item","parent","children","index","getItemForDirection","direction","active","activeIndex","itemIndex","eq","pos","that","$next","isCycling","relatedTarget","slideEvent","$nextIndicator","slidEvent","offsetWidth","carousel","clickHandler","$target","slideIndex","$carousel","Collapse","$trigger","id","transitioning","getParent","addAriaAndCollapsedClass","getTargetFromTrigger","dimension","show","activesData","actives","startEvent","scrollSize","camelCase","hide","offsetHeight","isOpen","collapse","Dropdown","clearMenus","contains","isActive","insertAfter","dropdown","Modal","$body","$dialog","$backdrop","isShown","originalBodyPad","scrollbarWidth","ignoreBackdropClick","remote","load","_relatedTarget","BACKDROP_TRANSITION_DURATION","backdrop","checkScrollbar","setScrollbar","escape","resize","appendTo","scrollTop","adjustDialog","enforceFocus","off","hideModal","has","handleUpdate","resetAdjustments","resetScrollbar","removeBackdrop","animate","doAnimate","currentTarget","focus","callbackRemove","modalIsOverflowing","scrollHeight","clientHeight","css","paddingLeft","bodyIsOverflowing","paddingRight","fullWindowWidth","innerWidth","documentElementRect","getBoundingClientRect","right","abs","left","clientWidth","measureScrollbar","bodyPad","parseInt","scrollDiv","className","modal","showEvent","Tooltip","enabled","timeout","hoverState","inState","init","animation","placement","template","title","delay","container","viewport","getOptions","$viewport","isFunction","hover","triggers","eventIn","eventOut","enter","leave","_options","fixTitle","getDefaults","getDelegateOptions","defaults","self","tip","clearTimeout","isInStateTrue","hasContent","inDom","ownerDocument","$tip","tipId","getUID","setContent","autoToken","autoPlace","top","getPosition","actualWidth","actualHeight","orgPlacement","viewportDim","bottom","width","calculatedOffset","getCalculatedOffset","applyPlacement","prevHoverState","offset","height","marginTop","marginLeft","isNaN","setOffset","using","props","round","delta","getViewportAdjustedDelta","isVertical","arrowDelta","arrowOffsetPosition","replaceArrow","arrow","getTitle","$e","isBody","elRect","elOffset","scroll","outerDims","viewportPadding","viewportDimensions","topEdgeOffset","bottomEdgeOffset","leftEdgeOffset","rightEdgeOffset","prefix","random","getElementById","$arrow","enable","disable","toggleEnabled","destroy","removeData","tooltip","Popover","getContent","popover","ScrollSpy","$scrollElement","offsets","targets","activeTarget","process","refresh","getScrollHeight","max","offsetMethod","offsetBase","isWindow","$href","sort","a","b","maxScroll","activate","clear","parents","parentsUntil","scrollspy","$spy","Tab","$ul","$previous","hideEvent","tab","Affix","checkPosition","checkPositionWithEventLoop","affixed","unpin","pinnedOffset","RESET","getState","offsetTop","offsetBottom","position","targetHeight","initializing","colliderTop","getPinnedOffset","affix","affixType","g","h","u","f","Date","isArray","optionList","defaultZIndex","updateOptions","lastY","offsetY","stick","None","spacer","cssText","bound","precalculate","store","innerHeight","k","q","v","MutationObserver","StickScope","Parent","Document","Fixed","Absolute","expr","charAt","screenMinWidth","screenMaxWidth","updateCss","extraHeight","zIndex","getZIndex","getActiveOptionsKey","activeKey","getActiveOptions","scope","reset","locate","overflowScrolling","origStyle","restore","extraWidth","margin","border","baseTop","basePadding","baseParentOffset","setAbsolute","setFixed","updateScroll","min","outerHeight","w","stickit","inArray","ready","observe","attributes","childList","characterData","subtree","listener","EventEmitter","getListeners","_getEvents","flattenListeners","getListenersAsObject","addListener","once","addOnceListener","defineEvent","defineEvents","removeListener","splice","addListeners","manipulateListeners","removeListeners","RegExp","removeEvent","_events","removeAllListeners","emitEvent","_getOnceReturnValue","emit","setOnceReturnValue","_onceReturnValue","srcElement","attachEvent","handleEvent","detachEvent","define","unbind","getImages","jqDeferred","Deferred","check","img","src","console","toString","images","nodeName","addImage","nodeType","debug","log","progress","hasAnyBroken","isLoaded","notify","isComplete","imagesLoaded","promise","isConfirmed","naturalWidth","isChecked","Image","onload","unbindProxyEvents","onerror","Owl","Defaults","_handlers","_plugins","_supress","_current","_speed","_coordinates","_breakpoint","_width","_items","_clones","_mergers","_widths","_invalidated","_pipe","_drag","time","pointer","stage","current","_states","tags","Plugins","plugin","Workers","priority","worker","run","setup","initialize","items","loop","center","rewind","mouseDrag","touchDrag","pullDrag","freeDrag","stagePadding","merge","mergeFit","autoWidth","startPosition","rtl","smartSpeed","fluidSpeed","dragEndSpeed","responsive","responsiveRefreshRate","responsiveBaseElement","fallbackEasing","info","nestedItemSelector","itemElement","stageElement","refreshClass","loadedClass","loadingClass","rtlClass","responsiveClass","dragClass","itemClass","stageClass","stageOuterClass","grabClass","Width","Default","Inner","Outer","Type","State","cache","relative","$stage","grid","toFixed","widths","clones","view","size","ceil","repeat","prepend","normalize","outerHTML","prependTo","previous","coordinates","minimum","maximum","inner","outer","begin","op","imgs","nestedSelector","preloadAutoWidthImages","not","invalidate","registerEventHandlers","overwrites","breakpoint","Number","optionsLogic","prepare","update","all","grep","onThrottledResize","resizeTimer","onResize","onTransitionEnd","onDragStart","onDragEnd","transform","x","y","stop","speed","getTime","difference","onDragMove","pull","coordinate","transform3d","part","suppress","release","isNumeric","j","boundary","mergers","odd","even","multiplier","newPosition","from","factor","revert","distance","originalTarget","empty","andSelf","add","after","before","unwrap","contents","capture","namespace","count","onTrigger","register","owl","_default","tag","events","originalEvent","touches","changedTouches","pageX","pageY","clientX","clientY","number","parseFloat","first","second","owlCarousel","Zepto","AutoRefresh","_core","_interval","_visible","autoRefresh","watch","autoRefreshInterval","getOwnPropertyNames","Lazy","_loaded","lazyLoad","$item","$elements","image","devicePixelRatio","handlers","AutoHeight","autoHeight","autoHeightClass","maxheight","visible","heights","Video","_videos","_playing","video","isInFullScreen","fetch","play","videoHeight","videoWidth","thumbnail","tnLink","path","dimensions","customTn","srcType","lazyClass","jsonp","thumbnail_large","framegrab_url","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","Animate","core","swapping","animateOut","animateIn","swap","incoming","outgoing","Autoplay","_timeout","_paused","autoplay","_setAutoPlayInterval","autoplayHoverPause","autoplayTimeout","autoplaySpeed","_getNextTimeout","hidden","Navigation","_initialized","_pages","_controls","_templates","_overrides","dotsData","dotClass","addBack","pop","draw","nav","navText","navSpeed","navElement","navContainer","navContainerClass","navClass","slideBy","dotsClass","dots","dotsEach","dotsSpeed","dotsContainer","override","$relative","$absolute","control","overides","lower","upper","page","successor","standard","Hash","_hashes","hash","substring","URLhashListener","prefixes","WebkitAnimation","MozAnimation","OAnimation","tests","prefixed","String","invalid","getCaret","selection","selectionStart","appVersion","createRange","moveStart","setCaret","setSelectionRange","createTextRange","moveEnd","select","behaviour","keyup","triggerHandler","selectOnFocus","clearIfNotMatch","getRegexMask","translation","pattern","optional","recursive","digit","destroyEvents","getMCharsBeforeCount","caretPos","keyCode","byPassKeys","getMasked","callbacks","reverse","fallback","mask","getCleanVal","jMaskGlobals","placeholder","maskWatchers","A","z","stringify","watchInterval","watchInputs","unmask","cleanVal","applyDataMask","maskElements","dataMaskAttr","dataMask","watchDataMask","0","9","S","scrolling","frameborder","fadeOut","formMessages","submit","formData","serialize","fail","styledMap","google","maps","StyledMapType","stylers","saturation","featureType","elementType","lightness","visibility","$latlng","LatLng","$mapOptions","zoom","panControl","zoomControl","scaleControl","mapTypeControl","scrollwheel","mapTypeControlOptions","mapTypeIds","MapTypeId","ROADMAP","Map","mapTypes","set","setMapTypeId","Marker","initGmap","fadeIn","openShareWindow","shosPoState","FB","ui","via","mini","summary","source","post","email","slideUp","AddToHomeScreen","serviceWorker","then","registration","installing","waiting","registrationError","webpackPolyfill","deprecate","paths"],"mappings":"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","file":"packs/js/application-f7b94ceec31475754c37.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 2);\n","/**\n * Vic Shóstak \n * Copyright (c) 2019 True web artisans https://1wa.co\n * http://opensource.org/licenses/MIT The MIT License (MIT)\n *\n * a2hs.js v0.4.5 at 13/05/2019\n *\n * Add to Home Screen\n *\n * A useful modern JavaScript solution for adding a progressive\n * web application (PWA) to the home screen of your mobile\n * iOS device.\n *\n * @param settings Initial settings.\n * @return {HTMLElement}\n *\n * @example\n * import AddToHomeScreen from \"a2hs.js\";\n * AddToHomeScreen({\n * brandName: \"Demo\",\n * fontFamily: \"Tahoma, sans-serif\",\n * backgroundColor: \"red\",\n * color: \"white\"\n * });\n */\nvar AddToHomeScreen = function AddToHomeScreen() {\n var settings = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Container styles\n var backgroundColor = settings.backgroundColor || \"#f9f9f9\";\n var padding = settings.padding || \"10px\";\n var shadowColor = settings.shadowColor || \"#e9e9e9\";\n var shadowSize = settings.shadowSize || \"10px\"; // Content styles\n\n var fontFamily = settings.fontFamily || \"-apple-system, sans-serif\";\n var color = settings.color || \"#5d5d5d\";\n var fontSize = settings.fontSize || \"0.9rem\"; // Content\n\n var brandName = settings.brandName || \"\";\n var logoImage = settings.logoImage || \"\\n \\n \\n \\n \\n \\n \";\n var htmlContent = settings.htmlContent || \"Install \".concat(brandName, \" web app on your iOS device: tap share and Add to Home Screen \\u2193\"); // Define iOS User-Agent variable\n\n var iOS = /iphone|ipad|ipod/.test(window.navigator.userAgent.toLowerCase()); // Define standalone mode variable\n\n var standalone = \"standalone\" in window.navigator && window.navigator.standalone; // Check localStorage before render a2hs container\n\n if (iOS && !standalone && !window.localStorage.a2hs_message) {\n // Define container variable\n var div = document.createElement(\"div\"); // Define style variable\n\n var style = document.createElement(\"style\"); // Create styles\n\n style.innerHTML = \"\\n .a2hs__container {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n position: fixed;\\n box-sizing: border-box;\\n box-shadow: \".concat(shadowColor, \" 0 0 \").concat(shadowSize, \";\\n background-color: \").concat(backgroundColor, \";\\n padding: \").concat(padding, \";\\n width: 100%;\\n bottom: 0;\\n right: 0;\\n left: 0;\\n }\\n .a2hs__container .a2hs__logo {\\n padding: \").concat(padding, \";\\n }\\n .a2hs__container .a2hs__text {\\n font-family: \").concat(fontFamily, \";\\n font-size: \").concat(fontSize, \";\\n color: \").concat(color, \";\\n }\"); // Create message\n\n div.innerHTML = \"
\".concat(logoImage, \"
\\n
\").concat(htmlContent, \"
\"); // Add class to container\n\n div.setAttribute(\"class\", \"a2hs__container\"); // Add onClick function\n\n div.onclick = function (event) {\n // Prevent default click\n event.preventDefault(); // Hide a2hs_message\n\n window.localStorage.setItem(\"a2hs_message\", \"hide\"); // Remove a2hs container from DOM\n\n document.querySelector(\".a2hs__container\").remove();\n }; // Render elements\n\n\n document.head.appendChild(style);\n document.body.appendChild(div);\n }\n};\n\nmodule.exports = AddToHomeScreen;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/master/actionview/app/assets/javascripts\nReleased under the MIT license\n */\n;\n(function () {\n var context = this;\n (function () {\n (function () {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form',\n formInputClickSelector: 'form input[type=submit], form input[type=image], form button[type=submit], form button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n }).call(this);\n }).call(context);\n var Rails = context.Rails;\n (function () {\n (function () {\n var nonce;\n nonce = null;\n\n Rails.loadCSPNonce = function () {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n\n Rails.cspNonce = function () {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n }).call(this);\n (function () {\n var expando, m;\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n Rails.matches = function (element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n\n expando = '_ujsData';\n\n Rails.getData = function (element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n\n Rails.setData = function (element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n\n return element[expando][key] = value;\n };\n\n Rails.$ = function (selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n }).call(this);\n (function () {\n var $, csrfParam, csrfToken;\n $ = Rails.$;\n\n csrfToken = Rails.csrfToken = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n\n csrfParam = Rails.csrfParam = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n\n Rails.CSRFProtection = function (xhr) {\n var token;\n token = csrfToken();\n\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n\n Rails.refreshCSRFTokens = function () {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n\n if (token != null && param != null) {\n return $('form input[name=\"' + param + '\"]').forEach(function (input) {\n return input.value = token;\n });\n }\n };\n }).call(this);\n (function () {\n var CustomEvent, fire, matches, preventDefault;\n matches = Rails.matches;\n CustomEvent = window.CustomEvent;\n\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function CustomEvent(event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n\n CustomEvent.prototype.preventDefault = function () {\n var result;\n result = preventDefault.call(this);\n\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function get() {\n return true;\n }\n });\n }\n\n return result;\n };\n }\n\n fire = Rails.fire = function (obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n\n Rails.stopEverything = function (e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n\n Rails.delegate = function (element, selector, eventType, handler) {\n return element.addEventListener(eventType, function (e) {\n var target;\n target = e.target;\n\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n }).call(this);\n (function () {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n\n Rails.ajax = function (options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function () {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n\n if (options.beforeSend != null && !options.beforeSend(xhr, options)) {\n return false;\n }\n\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n\n prepareOptions = function prepareOptions(options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n\n options.accept = AcceptHeaders[options.dataType];\n\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n\n return options;\n };\n\n createXHR = function createXHR(options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n CSRFProtection(xhr);\n }\n\n xhr.withCredentials = !!options.withCredentials;\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n\n return xhr;\n };\n\n processResponse = function processResponse(response, type) {\n var parser, script;\n\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n\n return response;\n };\n\n Rails.href = function (element) {\n return element.href;\n };\n\n Rails.isCrossDomain = function (url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n\n try {\n urlAnchor.href = url;\n return !((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host || originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host);\n } catch (error) {\n e = error;\n return true;\n }\n };\n }).call(this);\n (function () {\n var matches, toArray;\n matches = Rails.matches;\n\n toArray = function toArray(e) {\n return Array.prototype.slice.call(e);\n };\n\n Rails.serializeElement = function (element, additionalParam) {\n var inputs, params;\n inputs = [element];\n\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n\n params = [];\n inputs.forEach(function (input) {\n if (!input.name || input.disabled) {\n return;\n }\n\n if (matches(input, 'fieldset[disabled] *')) {\n return;\n }\n\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function (option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n\n if (additionalParam) {\n params.push(additionalParam);\n }\n\n return params.map(function (param) {\n if (param.name != null) {\n return encodeURIComponent(param.name) + \"=\" + encodeURIComponent(param.value);\n } else {\n return param;\n }\n }).join('&');\n };\n\n Rails.formElements = function (form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function (el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n }).call(this);\n (function () {\n var allowAction, fire, stopEverything;\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n\n Rails.handleConfirm = function (e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n\n Rails.confirm = function (message, element) {\n return confirm(message);\n };\n\n allowAction = function allowAction(element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n\n if (!message) {\n return true;\n }\n\n answer = false;\n\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n\n callback = fire(element, 'confirm:complete', [answer]);\n }\n\n return answer && callback;\n };\n }).call(this);\n (function () {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n\n Rails.handleDisabledElement = function (e) {\n var element;\n element = this;\n\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n\n Rails.enableElement = function (e) {\n var element;\n\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n\n element = e.target;\n } else {\n element = e;\n }\n\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n\n Rails.disableElement = function (e) {\n var element;\n element = e instanceof Event ? e.target : e;\n\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n\n disableLinkElement = function disableLinkElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n\n enableLinkElement = function enableLinkElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n\n disableFormElements = function disableFormElements(form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n\n disableFormElement = function disableFormElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n\n enableFormElements = function enableFormElements(form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n\n enableFormElement = function enableFormElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n\n setData(element, 'ujs:enable-with', null);\n }\n\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n\n isXhrRedirect = function isXhrRedirect(event) {\n var ref, xhr;\n xhr = (ref = event.detail) != null ? ref[0] : void 0;\n return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n };\n }).call(this);\n (function () {\n var stopEverything;\n stopEverything = Rails.stopEverything;\n\n Rails.handleMethod = function (e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n\n if (!method) {\n return;\n }\n\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"\";\n\n if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n formContent += \"\";\n }\n\n formContent += '';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n }).call(this);\n (function () {\n var ajax,\n fire,\n getData,\n isCrossDomain,\n isRemote,\n matches,\n serializeElement,\n setData,\n stopEverything,\n slice = [].slice;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n\n isRemote = function isRemote(element) {\n var value;\n value = element.getAttribute('data-remote');\n return value != null && value !== 'false';\n };\n\n Rails.handleRemote = function (e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n\n if (!isRemote(element)) {\n return true;\n }\n\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function beforeSend(xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function success() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function error() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function complete() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: withCredentials != null && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n\n Rails.formSubmitButtonClick = function (e) {\n var button, form;\n button = this;\n form = button.form;\n\n if (!form) {\n return;\n }\n\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n\n Rails.preventInsignificantClick = function (e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = e.button != null && e.button !== 0;\n\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n }).call(this);\n (function () {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n\n if (typeof jQuery !== \"undefined\" && jQuery !== null && jQuery.ajax != null) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n\n Rails.start = function () {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n\n window.addEventListener('pageshow', function () {\n $(Rails.formEnableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function (e) {\n return setTimeout(function () {\n return disableElement(e);\n }, 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n }).call(this);\n }).call(this);\n\n if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);","// Uncomment to copy all static images under ../images to the output folder and reference\n// them with the image_pack_tag helper in views (e.g <%= image_pack_tag 'rails.png' %>)\n// or the `imagePath` JavaScript helper below.\n//\n// const images = require.context('../images', true)\n// const imagePath = (name) => images(name, true)\n\nrequire('../src/bootstrap.js')\nrequire('../src/jquery.stickit.min.js')\nrequire('../src/imagesloaded.pkgd.min.js')\nrequire('../src/owl.carousel.js')\nrequire('../src/jquery.mask.min.js')\nrequire('../src/script.js')\nrequire('../src/init.js')\n\nimport Rails from \"@rails/ujs\"\nRails.start()\n","/*!\n * Bootstrap v3.3.6 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under the MIT license\n */\n\nif (typeof jQuery === 'undefined') {\n throw new Error('Bootstrap\\'s JavaScript requires jQuery')\n}\n\n+function ($) {\n 'use strict';\n var version = $.fn.jquery.split(' ')[0].split('.')\n if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 2)) {\n throw new Error('Bootstrap\\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3')\n }\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: transition.js v3.3.6\n * http://getbootstrap.com/javascript/#transitions\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)\n // ============================================================\n\n function transitionEnd() {\n var el = document.createElement('bootstrap')\n\n var transEndEventNames = {\n WebkitTransition : 'webkitTransitionEnd',\n MozTransition : 'transitionend',\n OTransition : 'oTransitionEnd otransitionend',\n transition : 'transitionend'\n }\n\n for (var name in transEndEventNames) {\n if (el.style[name] !== undefined) {\n return { end: transEndEventNames[name] }\n }\n }\n\n return false // explicit for ie8 ( ._.)\n }\n\n // http://blog.alexmaccaw.com/css-transitions\n $.fn.emulateTransitionEnd = function (duration) {\n var called = false\n var $el = this\n $(this).one('bsTransitionEnd', function () { called = true })\n var callback = function () { if (!called) $($el).trigger($.support.transition.end) }\n setTimeout(callback, duration)\n return this\n }\n\n $(function () {\n $.support.transition = transitionEnd()\n\n if (!$.support.transition) return\n\n $.event.special.bsTransitionEnd = {\n bindType: $.support.transition.end,\n delegateType: $.support.transition.end,\n handle: function (e) {\n if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)\n }\n }\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: alert.js v3.3.6\n * http://getbootstrap.com/javascript/#alerts\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // ALERT CLASS DEFINITION\n // ======================\n\n var dismiss = '[data-dismiss=\"alert\"]'\n var Alert = function (el) {\n $(el).on('click', dismiss, this.close)\n }\n\n Alert.VERSION = '3.3.6'\n\n Alert.TRANSITION_DURATION = 150\n\n Alert.prototype.close = function (e) {\n var $this = $(this)\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n var $parent = $(selector)\n\n if (e) e.preventDefault()\n\n if (!$parent.length) {\n $parent = $this.closest('.alert')\n }\n\n $parent.trigger(e = $.Event('close.bs.alert'))\n\n if (e.isDefaultPrevented()) return\n\n $parent.removeClass('in')\n\n function removeElement() {\n // detach from parent, fire event then clean up data\n $parent.detach().trigger('closed.bs.alert').remove()\n }\n\n $.support.transition && $parent.hasClass('fade') ?\n $parent\n .one('bsTransitionEnd', removeElement)\n .emulateTransitionEnd(Alert.TRANSITION_DURATION) :\n removeElement()\n }\n\n\n // ALERT PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.alert')\n\n if (!data) $this.data('bs.alert', (data = new Alert(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.alert\n\n $.fn.alert = Plugin\n $.fn.alert.Constructor = Alert\n\n\n // ALERT NO CONFLICT\n // =================\n\n $.fn.alert.noConflict = function () {\n $.fn.alert = old\n return this\n }\n\n\n // ALERT DATA-API\n // ==============\n\n $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: button.js v3.3.6\n * http://getbootstrap.com/javascript/#buttons\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // BUTTON PUBLIC CLASS DEFINITION\n // ==============================\n\n var Button = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Button.DEFAULTS, options)\n this.isLoading = false\n }\n\n Button.VERSION = '3.3.6'\n\n Button.DEFAULTS = {\n loadingText: 'loading...'\n }\n\n Button.prototype.setState = function (state) {\n var d = 'disabled'\n var $el = this.$element\n var val = $el.is('input') ? 'val' : 'html'\n var data = $el.data()\n\n state += 'Text'\n\n if (data.resetText == null) $el.data('resetText', $el[val]())\n\n // push to event loop to allow forms to submit\n setTimeout($.proxy(function () {\n $el[val](data[state] == null ? this.options[state] : data[state])\n\n if (state == 'loadingText') {\n this.isLoading = true\n $el.addClass(d).attr(d, d)\n } else if (this.isLoading) {\n this.isLoading = false\n $el.removeClass(d).removeAttr(d)\n }\n }, this), 0)\n }\n\n Button.prototype.toggle = function () {\n var changed = true\n var $parent = this.$element.closest('[data-toggle=\"buttons\"]')\n\n if ($parent.length) {\n var $input = this.$element.find('input')\n if ($input.prop('type') == 'radio') {\n if ($input.prop('checked')) changed = false\n $parent.find('.active').removeClass('active')\n this.$element.addClass('active')\n } else if ($input.prop('type') == 'checkbox') {\n if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false\n this.$element.toggleClass('active')\n }\n $input.prop('checked', this.$element.hasClass('active'))\n if (changed) $input.trigger('change')\n } else {\n this.$element.attr('aria-pressed', !this.$element.hasClass('active'))\n this.$element.toggleClass('active')\n }\n }\n\n\n // BUTTON PLUGIN DEFINITION\n // ========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.button')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.button', (data = new Button(this, options)))\n\n if (option == 'toggle') data.toggle()\n else if (option) data.setState(option)\n })\n }\n\n var old = $.fn.button\n\n $.fn.button = Plugin\n $.fn.button.Constructor = Button\n\n\n // BUTTON NO CONFLICT\n // ==================\n\n $.fn.button.noConflict = function () {\n $.fn.button = old\n return this\n }\n\n\n // BUTTON DATA-API\n // ===============\n\n $(document)\n .on('click.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n var $btn = $(e.target)\n if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')\n Plugin.call($btn, 'toggle')\n if (!($(e.target).is('input[type=\"radio\"]') || $(e.target).is('input[type=\"checkbox\"]'))) e.preventDefault()\n })\n .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: carousel.js v3.3.6\n * http://getbootstrap.com/javascript/#carousel\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CAROUSEL CLASS DEFINITION\n // =========================\n\n var Carousel = function (element, options) {\n this.$element = $(element)\n this.$indicators = this.$element.find('.carousel-indicators')\n this.options = options\n this.paused = null\n this.sliding = null\n this.interval = null\n this.$active = null\n this.$items = null\n\n this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))\n\n this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element\n .on('mouseenter.bs.carousel', $.proxy(this.pause, this))\n .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))\n }\n\n Carousel.VERSION = '3.3.6'\n\n Carousel.TRANSITION_DURATION = 600\n\n Carousel.DEFAULTS = {\n interval: 5000,\n pause: 'hover',\n wrap: true,\n keyboard: true\n }\n\n Carousel.prototype.keydown = function (e) {\n if (/input|textarea/i.test(e.target.tagName)) return\n switch (e.which) {\n case 37: this.prev(); break\n case 39: this.next(); break\n default: return\n }\n\n e.preventDefault()\n }\n\n Carousel.prototype.cycle = function (e) {\n e || (this.paused = false)\n\n this.interval && clearInterval(this.interval)\n\n this.options.interval\n && !this.paused\n && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))\n\n return this\n }\n\n Carousel.prototype.getItemIndex = function (item) {\n this.$items = item.parent().children('.item')\n return this.$items.index(item || this.$active)\n }\n\n Carousel.prototype.getItemForDirection = function (direction, active) {\n var activeIndex = this.getItemIndex(active)\n var willWrap = (direction == 'prev' && activeIndex === 0)\n || (direction == 'next' && activeIndex == (this.$items.length - 1))\n if (willWrap && !this.options.wrap) return active\n var delta = direction == 'prev' ? -1 : 1\n var itemIndex = (activeIndex + delta) % this.$items.length\n return this.$items.eq(itemIndex)\n }\n\n Carousel.prototype.to = function (pos) {\n var that = this\n var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))\n\n if (pos > (this.$items.length - 1) || pos < 0) return\n\n if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, \"slid\"\n if (activeIndex == pos) return this.pause().cycle()\n\n return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))\n }\n\n Carousel.prototype.pause = function (e) {\n e || (this.paused = true)\n\n if (this.$element.find('.next, .prev').length && $.support.transition) {\n this.$element.trigger($.support.transition.end)\n this.cycle(true)\n }\n\n this.interval = clearInterval(this.interval)\n\n return this\n }\n\n Carousel.prototype.next = function () {\n if (this.sliding) return\n return this.slide('next')\n }\n\n Carousel.prototype.prev = function () {\n if (this.sliding) return\n return this.slide('prev')\n }\n\n Carousel.prototype.slide = function (type, next) {\n var $active = this.$element.find('.item.active')\n var $next = next || this.getItemForDirection(type, $active)\n var isCycling = this.interval\n var direction = type == 'next' ? 'left' : 'right'\n var that = this\n\n if ($next.hasClass('active')) return (this.sliding = false)\n\n var relatedTarget = $next[0]\n var slideEvent = $.Event('slide.bs.carousel', {\n relatedTarget: relatedTarget,\n direction: direction\n })\n this.$element.trigger(slideEvent)\n if (slideEvent.isDefaultPrevented()) return\n\n this.sliding = true\n\n isCycling && this.pause()\n\n if (this.$indicators.length) {\n this.$indicators.find('.active').removeClass('active')\n var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])\n $nextIndicator && $nextIndicator.addClass('active')\n }\n\n var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, \"slid\"\n if ($.support.transition && this.$element.hasClass('slide')) {\n $next.addClass(type)\n $next[0].offsetWidth // force reflow\n $active.addClass(direction)\n $next.addClass(direction)\n $active\n .one('bsTransitionEnd', function () {\n $next.removeClass([type, direction].join(' ')).addClass('active')\n $active.removeClass(['active', direction].join(' '))\n that.sliding = false\n setTimeout(function () {\n that.$element.trigger(slidEvent)\n }, 0)\n })\n .emulateTransitionEnd(Carousel.TRANSITION_DURATION)\n } else {\n $active.removeClass('active')\n $next.addClass('active')\n this.sliding = false\n this.$element.trigger(slidEvent)\n }\n\n isCycling && this.cycle()\n\n return this\n }\n\n\n // CAROUSEL PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.carousel')\n var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)\n var action = typeof option == 'string' ? option : options.slide\n\n if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))\n if (typeof option == 'number') data.to(option)\n else if (action) data[action]()\n else if (options.interval) data.pause().cycle()\n })\n }\n\n var old = $.fn.carousel\n\n $.fn.carousel = Plugin\n $.fn.carousel.Constructor = Carousel\n\n\n // CAROUSEL NO CONFLICT\n // ====================\n\n $.fn.carousel.noConflict = function () {\n $.fn.carousel = old\n return this\n }\n\n\n // CAROUSEL DATA-API\n // =================\n\n var clickHandler = function (e) {\n var href\n var $this = $(this)\n var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '')) // strip for ie7\n if (!$target.hasClass('carousel')) return\n var options = $.extend({}, $target.data(), $this.data())\n var slideIndex = $this.attr('data-slide-to')\n if (slideIndex) options.interval = false\n\n Plugin.call($target, options)\n\n if (slideIndex) {\n $target.data('bs.carousel').to(slideIndex)\n }\n\n e.preventDefault()\n }\n\n $(document)\n .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)\n .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)\n\n $(window).on('load', function () {\n $('[data-ride=\"carousel\"]').each(function () {\n var $carousel = $(this)\n Plugin.call($carousel, $carousel.data())\n })\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: collapse.js v3.3.6\n * http://getbootstrap.com/javascript/#collapse\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // COLLAPSE PUBLIC CLASS DEFINITION\n // ================================\n\n var Collapse = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Collapse.DEFAULTS, options)\n this.$trigger = $('[data-toggle=\"collapse\"][href=\"#' + element.id + '\"],' +\n '[data-toggle=\"collapse\"][data-target=\"#' + element.id + '\"]')\n this.transitioning = null\n\n if (this.options.parent) {\n this.$parent = this.getParent()\n } else {\n this.addAriaAndCollapsedClass(this.$element, this.$trigger)\n }\n\n if (this.options.toggle) this.toggle()\n }\n\n Collapse.VERSION = '3.3.6'\n\n Collapse.TRANSITION_DURATION = 350\n\n Collapse.DEFAULTS = {\n toggle: true\n }\n\n Collapse.prototype.dimension = function () {\n var hasWidth = this.$element.hasClass('width')\n return hasWidth ? 'width' : 'height'\n }\n\n Collapse.prototype.show = function () {\n if (this.transitioning || this.$element.hasClass('in')) return\n\n var activesData\n var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')\n\n if (actives && actives.length) {\n activesData = actives.data('bs.collapse')\n if (activesData && activesData.transitioning) return\n }\n\n var startEvent = $.Event('show.bs.collapse')\n this.$element.trigger(startEvent)\n if (startEvent.isDefaultPrevented()) return\n\n if (actives && actives.length) {\n Plugin.call(actives, 'hide')\n activesData || actives.data('bs.collapse', null)\n }\n\n var dimension = this.dimension()\n\n this.$element\n .removeClass('collapse')\n .addClass('collapsing')[dimension](0)\n .attr('aria-expanded', true)\n\n this.$trigger\n .removeClass('collapsed')\n .attr('aria-expanded', true)\n\n this.transitioning = 1\n\n var complete = function () {\n this.$element\n .removeClass('collapsing')\n .addClass('collapse in')[dimension]('')\n this.transitioning = 0\n this.$element\n .trigger('shown.bs.collapse')\n }\n\n if (!$.support.transition) return complete.call(this)\n\n var scrollSize = $.camelCase(['scroll', dimension].join('-'))\n\n this.$element\n .one('bsTransitionEnd', $.proxy(complete, this))\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])\n }\n\n Collapse.prototype.hide = function () {\n if (this.transitioning || !this.$element.hasClass('in')) return\n\n var startEvent = $.Event('hide.bs.collapse')\n this.$element.trigger(startEvent)\n if (startEvent.isDefaultPrevented()) return\n\n var dimension = this.dimension()\n\n this.$element[dimension](this.$element[dimension]())[0].offsetHeight\n\n this.$element\n .addClass('collapsing')\n .removeClass('collapse in')\n .attr('aria-expanded', false)\n\n this.$trigger\n .addClass('collapsed')\n .attr('aria-expanded', false)\n\n this.transitioning = 1\n\n var complete = function () {\n this.transitioning = 0\n this.$element\n .removeClass('collapsing')\n .addClass('collapse')\n .trigger('hidden.bs.collapse')\n }\n\n if (!$.support.transition) return complete.call(this)\n\n this.$element\n [dimension](0)\n .one('bsTransitionEnd', $.proxy(complete, this))\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)\n }\n\n Collapse.prototype.toggle = function () {\n this[this.$element.hasClass('in') ? 'hide' : 'show']()\n }\n\n Collapse.prototype.getParent = function () {\n return $(this.options.parent)\n .find('[data-toggle=\"collapse\"][data-parent=\"' + this.options.parent + '\"]')\n .each($.proxy(function (i, element) {\n var $element = $(element)\n this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)\n }, this))\n .end()\n }\n\n Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {\n var isOpen = $element.hasClass('in')\n\n $element.attr('aria-expanded', isOpen)\n $trigger\n .toggleClass('collapsed', !isOpen)\n .attr('aria-expanded', isOpen)\n }\n\n function getTargetFromTrigger($trigger) {\n var href\n var target = $trigger.attr('data-target')\n || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\n\n return $(target)\n }\n\n\n // COLLAPSE PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.collapse')\n var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false\n if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.collapse\n\n $.fn.collapse = Plugin\n $.fn.collapse.Constructor = Collapse\n\n\n // COLLAPSE NO CONFLICT\n // ====================\n\n $.fn.collapse.noConflict = function () {\n $.fn.collapse = old\n return this\n }\n\n\n // COLLAPSE DATA-API\n // =================\n\n $(document).on('click.bs.collapse.data-api', '[data-toggle=\"collapse\"]', function (e) {\n var $this = $(this)\n\n if (!$this.attr('data-target')) e.preventDefault()\n\n var $target = getTargetFromTrigger($this)\n var data = $target.data('bs.collapse')\n var option = data ? 'toggle' : $this.data()\n\n Plugin.call($target, option)\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: dropdown.js v3.3.6\n * http://getbootstrap.com/javascript/#dropdowns\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // DROPDOWN CLASS DEFINITION\n // =========================\n\n var backdrop = '.dropdown-backdrop'\n var toggle = '[data-toggle=\"dropdown\"]'\n var Dropdown = function (element) {\n $(element).on('click.bs.dropdown', this.toggle)\n }\n\n Dropdown.VERSION = '3.3.6'\n\n function getParent($this) {\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n var $parent = selector && $(selector)\n\n return $parent && $parent.length ? $parent : $this.parent()\n }\n\n function clearMenus(e) {\n if (e && e.which === 3) return\n $(backdrop).remove()\n $(toggle).each(function () {\n var $this = $(this)\n var $parent = getParent($this)\n var relatedTarget = { relatedTarget: this }\n\n if (!$parent.hasClass('open')) return\n\n if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return\n\n $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this.attr('aria-expanded', 'false')\n $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget))\n })\n }\n\n Dropdown.prototype.toggle = function (e) {\n var $this = $(this)\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n clearMenus()\n\n if (!isActive) {\n if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {\n // if mobile we use a backdrop because click events don't delegate\n $(document.createElement('div'))\n .addClass('dropdown-backdrop')\n .insertAfter($(this))\n .on('click', clearMenus)\n }\n\n var relatedTarget = { relatedTarget: this }\n $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this\n .trigger('focus')\n .attr('aria-expanded', 'true')\n\n $parent\n .toggleClass('open')\n .trigger($.Event('shown.bs.dropdown', relatedTarget))\n }\n\n return false\n }\n\n Dropdown.prototype.keydown = function (e) {\n if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return\n\n var $this = $(this)\n\n e.preventDefault()\n e.stopPropagation()\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n if (!isActive && e.which != 27 || isActive && e.which == 27) {\n if (e.which == 27) $parent.find(toggle).trigger('focus')\n return $this.trigger('click')\n }\n\n var desc = ' li:not(.disabled):visible a'\n var $items = $parent.find('.dropdown-menu' + desc)\n\n if (!$items.length) return\n\n var index = $items.index(e.target)\n\n if (e.which == 38 && index > 0) index-- // up\n if (e.which == 40 && index < $items.length - 1) index++ // down\n if (!~index) index = 0\n\n $items.eq(index).trigger('focus')\n }\n\n\n // DROPDOWN PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.dropdown')\n\n if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.dropdown\n\n $.fn.dropdown = Plugin\n $.fn.dropdown.Constructor = Dropdown\n\n\n // DROPDOWN NO CONFLICT\n // ====================\n\n $.fn.dropdown.noConflict = function () {\n $.fn.dropdown = old\n return this\n }\n\n\n // APPLY TO STANDARD DROPDOWN ELEMENTS\n // ===================================\n\n $(document)\n .on('click.bs.dropdown.data-api', clearMenus)\n .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })\n .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)\n .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)\n .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: modal.js v3.3.6\n * http://getbootstrap.com/javascript/#modals\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // MODAL CLASS DEFINITION\n // ======================\n\n var Modal = function (element, options) {\n this.options = options\n this.$body = $(document.body)\n this.$element = $(element)\n this.$dialog = this.$element.find('.modal-dialog')\n this.$backdrop = null\n this.isShown = null\n this.originalBodyPad = null\n this.scrollbarWidth = 0\n this.ignoreBackdropClick = false\n\n if (this.options.remote) {\n this.$element\n .find('.modal-content')\n .load(this.options.remote, $.proxy(function () {\n this.$element.trigger('loaded.bs.modal')\n }, this))\n }\n }\n\n Modal.VERSION = '3.3.6'\n\n Modal.TRANSITION_DURATION = 300\n Modal.BACKDROP_TRANSITION_DURATION = 150\n\n Modal.DEFAULTS = {\n backdrop: true,\n keyboard: true,\n show: true\n }\n\n Modal.prototype.toggle = function (_relatedTarget) {\n return this.isShown ? this.hide() : this.show(_relatedTarget)\n }\n\n Modal.prototype.show = function (_relatedTarget) {\n var that = this\n var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })\n\n this.$element.trigger(e)\n\n if (this.isShown || e.isDefaultPrevented()) return\n\n this.isShown = true\n\n this.checkScrollbar()\n this.setScrollbar()\n this.$body.addClass('modal-open')\n\n this.escape()\n this.resize()\n\n this.$element.on('click.dismiss.bs.modal', '[data-dismiss=\"modal\"]', $.proxy(this.hide, this))\n\n this.$dialog.on('mousedown.dismiss.bs.modal', function () {\n that.$element.one('mouseup.dismiss.bs.modal', function (e) {\n if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true\n })\n })\n\n this.backdrop(function () {\n var transition = $.support.transition && that.$element.hasClass('fade')\n\n if (!that.$element.parent().length) {\n that.$element.appendTo(that.$body) // don't move modals dom position\n }\n\n that.$element\n .show()\n .scrollTop(0)\n\n that.adjustDialog()\n\n if (transition) {\n that.$element[0].offsetWidth // force reflow\n }\n\n that.$element.addClass('in')\n\n that.enforceFocus()\n\n var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })\n\n transition ?\n that.$dialog // wait for modal to slide in\n .one('bsTransitionEnd', function () {\n that.$element.trigger('focus').trigger(e)\n })\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n that.$element.trigger('focus').trigger(e)\n })\n }\n\n Modal.prototype.hide = function (e) {\n if (e) e.preventDefault()\n\n e = $.Event('hide.bs.modal')\n\n this.$element.trigger(e)\n\n if (!this.isShown || e.isDefaultPrevented()) return\n\n this.isShown = false\n\n this.escape()\n this.resize()\n\n $(document).off('focusin.bs.modal')\n\n this.$element\n .removeClass('in')\n .off('click.dismiss.bs.modal')\n .off('mouseup.dismiss.bs.modal')\n\n this.$dialog.off('mousedown.dismiss.bs.modal')\n\n $.support.transition && this.$element.hasClass('fade') ?\n this.$element\n .one('bsTransitionEnd', $.proxy(this.hideModal, this))\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n this.hideModal()\n }\n\n Modal.prototype.enforceFocus = function () {\n $(document)\n .off('focusin.bs.modal') // guard against infinite focus loop\n .on('focusin.bs.modal', $.proxy(function (e) {\n if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {\n this.$element.trigger('focus')\n }\n }, this))\n }\n\n Modal.prototype.escape = function () {\n if (this.isShown && this.options.keyboard) {\n this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {\n e.which == 27 && this.hide()\n }, this))\n } else if (!this.isShown) {\n this.$element.off('keydown.dismiss.bs.modal')\n }\n }\n\n Modal.prototype.resize = function () {\n if (this.isShown) {\n $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))\n } else {\n $(window).off('resize.bs.modal')\n }\n }\n\n Modal.prototype.hideModal = function () {\n var that = this\n this.$element.hide()\n this.backdrop(function () {\n that.$body.removeClass('modal-open')\n that.resetAdjustments()\n that.resetScrollbar()\n that.$element.trigger('hidden.bs.modal')\n })\n }\n\n Modal.prototype.removeBackdrop = function () {\n this.$backdrop && this.$backdrop.remove()\n this.$backdrop = null\n }\n\n Modal.prototype.backdrop = function (callback) {\n var that = this\n var animate = this.$element.hasClass('fade') ? 'fade' : ''\n\n if (this.isShown && this.options.backdrop) {\n var doAnimate = $.support.transition && animate\n\n this.$backdrop = $(document.createElement('div'))\n .addClass('modal-backdrop ' + animate)\n .appendTo(this.$body)\n\n this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {\n if (this.ignoreBackdropClick) {\n this.ignoreBackdropClick = false\n return\n }\n if (e.target !== e.currentTarget) return\n this.options.backdrop == 'static'\n ? this.$element[0].focus()\n : this.hide()\n }, this))\n\n if (doAnimate) this.$backdrop[0].offsetWidth // force reflow\n\n this.$backdrop.addClass('in')\n\n if (!callback) return\n\n doAnimate ?\n this.$backdrop\n .one('bsTransitionEnd', callback)\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n callback()\n\n } else if (!this.isShown && this.$backdrop) {\n this.$backdrop.removeClass('in')\n\n var callbackRemove = function () {\n that.removeBackdrop()\n callback && callback()\n }\n $.support.transition && this.$element.hasClass('fade') ?\n this.$backdrop\n .one('bsTransitionEnd', callbackRemove)\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n callbackRemove()\n\n } else if (callback) {\n callback()\n }\n }\n\n // these following methods are used to handle overflowing modals\n\n Modal.prototype.handleUpdate = function () {\n this.adjustDialog()\n }\n\n Modal.prototype.adjustDialog = function () {\n var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight\n\n this.$element.css({\n paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',\n paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''\n })\n }\n\n Modal.prototype.resetAdjustments = function () {\n this.$element.css({\n paddingLeft: '',\n paddingRight: ''\n })\n }\n\n Modal.prototype.checkScrollbar = function () {\n var fullWindowWidth = window.innerWidth\n if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8\n var documentElementRect = document.documentElement.getBoundingClientRect()\n fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)\n }\n this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth\n this.scrollbarWidth = this.measureScrollbar()\n }\n\n Modal.prototype.setScrollbar = function () {\n var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)\n this.originalBodyPad = document.body.style.paddingRight || ''\n if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)\n }\n\n Modal.prototype.resetScrollbar = function () {\n this.$body.css('padding-right', this.originalBodyPad)\n }\n\n Modal.prototype.measureScrollbar = function () { // thx walsh\n var scrollDiv = document.createElement('div')\n scrollDiv.className = 'modal-scrollbar-measure'\n this.$body.append(scrollDiv)\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth\n this.$body[0].removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n\n // MODAL PLUGIN DEFINITION\n // =======================\n\n function Plugin(option, _relatedTarget) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.modal')\n var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n if (!data) $this.data('bs.modal', (data = new Modal(this, options)))\n if (typeof option == 'string') data[option](_relatedTarget)\n else if (options.show) data.show(_relatedTarget)\n })\n }\n\n var old = $.fn.modal\n\n $.fn.modal = Plugin\n $.fn.modal.Constructor = Modal\n\n\n // MODAL NO CONFLICT\n // =================\n\n $.fn.modal.noConflict = function () {\n $.fn.modal = old\n return this\n }\n\n\n // MODAL DATA-API\n // ==============\n\n $(document).on('click.bs.modal.data-api', '[data-toggle=\"modal\"]', function (e) {\n var $this = $(this)\n var href = $this.attr('href')\n var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\\s]+$)/, ''))) // strip for ie7\n var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())\n\n if ($this.is('a')) e.preventDefault()\n\n $target.one('show.bs.modal', function (showEvent) {\n if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown\n $target.one('hidden.bs.modal', function () {\n $this.is(':visible') && $this.trigger('focus')\n })\n })\n Plugin.call($target, option, this)\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: tooltip.js v3.3.6\n * http://getbootstrap.com/javascript/#tooltip\n * Inspired by the original jQuery.tipsy by Jason Frame\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // TOOLTIP PUBLIC CLASS DEFINITION\n // ===============================\n\n var Tooltip = function (element, options) {\n this.type = null\n this.options = null\n this.enabled = null\n this.timeout = null\n this.hoverState = null\n this.$element = null\n this.inState = null\n\n this.init('tooltip', element, options)\n }\n\n Tooltip.VERSION = '3.3.6'\n\n Tooltip.TRANSITION_DURATION = 150\n\n Tooltip.DEFAULTS = {\n animation: true,\n placement: 'top',\n selector: false,\n template: '
',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n container: false,\n viewport: {\n selector: 'body',\n padding: 0\n }\n }\n\n Tooltip.prototype.init = function (type, element, options) {\n this.enabled = true\n this.type = type\n this.$element = $(element)\n this.options = this.getOptions(options)\n this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))\n this.inState = { click: false, hover: false, focus: false }\n\n if (this.$element[0] instanceof document.constructor && !this.options.selector) {\n throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')\n }\n\n var triggers = this.options.trigger.split(' ')\n\n for (var i = triggers.length; i--;) {\n var trigger = triggers[i]\n\n if (trigger == 'click') {\n this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))\n } else if (trigger != 'manual') {\n var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'\n var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'\n\n this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))\n this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))\n }\n }\n\n this.options.selector ?\n (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :\n this.fixTitle()\n }\n\n Tooltip.prototype.getDefaults = function () {\n return Tooltip.DEFAULTS\n }\n\n Tooltip.prototype.getOptions = function (options) {\n options = $.extend({}, this.getDefaults(), this.$element.data(), options)\n\n if (options.delay && typeof options.delay == 'number') {\n options.delay = {\n show: options.delay,\n hide: options.delay\n }\n }\n\n return options\n }\n\n Tooltip.prototype.getDelegateOptions = function () {\n var options = {}\n var defaults = this.getDefaults()\n\n this._options && $.each(this._options, function (key, value) {\n if (defaults[key] != value) options[key] = value\n })\n\n return options\n }\n\n Tooltip.prototype.enter = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true\n }\n\n if (self.tip().hasClass('in') || self.hoverState == 'in') {\n self.hoverState = 'in'\n return\n }\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'in'\n\n if (!self.options.delay || !self.options.delay.show) return self.show()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'in') self.show()\n }, self.options.delay.show)\n }\n\n Tooltip.prototype.isInStateTrue = function () {\n for (var key in this.inState) {\n if (this.inState[key]) return true\n }\n\n return false\n }\n\n Tooltip.prototype.leave = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false\n }\n\n if (self.isInStateTrue()) return\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'out'\n\n if (!self.options.delay || !self.options.delay.hide) return self.hide()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'out') self.hide()\n }, self.options.delay.hide)\n }\n\n Tooltip.prototype.show = function () {\n var e = $.Event('show.bs.' + this.type)\n\n if (this.hasContent() && this.enabled) {\n this.$element.trigger(e)\n\n var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])\n if (e.isDefaultPrevented() || !inDom) return\n var that = this\n\n var $tip = this.tip()\n\n var tipId = this.getUID(this.type)\n\n this.setContent()\n $tip.attr('id', tipId)\n this.$element.attr('aria-describedby', tipId)\n\n if (this.options.animation) $tip.addClass('fade')\n\n var placement = typeof this.options.placement == 'function' ?\n this.options.placement.call(this, $tip[0], this.$element[0]) :\n this.options.placement\n\n var autoToken = /\\s?auto?\\s?/i\n var autoPlace = autoToken.test(placement)\n if (autoPlace) placement = placement.replace(autoToken, '') || 'top'\n\n $tip\n .detach()\n .css({ top: 0, left: 0, display: 'block' })\n .addClass(placement)\n .data('bs.' + this.type, this)\n\n this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)\n this.$element.trigger('inserted.bs.' + this.type)\n\n var pos = this.getPosition()\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (autoPlace) {\n var orgPlacement = placement\n var viewportDim = this.getPosition(this.$viewport)\n\n placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' :\n placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' :\n placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' :\n placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' :\n placement\n\n $tip\n .removeClass(orgPlacement)\n .addClass(placement)\n }\n\n var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)\n\n this.applyPlacement(calculatedOffset, placement)\n\n var complete = function () {\n var prevHoverState = that.hoverState\n that.$element.trigger('shown.bs.' + that.type)\n that.hoverState = null\n\n if (prevHoverState == 'out') that.leave(that)\n }\n\n $.support.transition && this.$tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n }\n }\n\n Tooltip.prototype.applyPlacement = function (offset, placement) {\n var $tip = this.tip()\n var width = $tip[0].offsetWidth\n var height = $tip[0].offsetHeight\n\n // manually read margins because getBoundingClientRect includes difference\n var marginTop = parseInt($tip.css('margin-top'), 10)\n var marginLeft = parseInt($tip.css('margin-left'), 10)\n\n // we must check for NaN for ie 8/9\n if (isNaN(marginTop)) marginTop = 0\n if (isNaN(marginLeft)) marginLeft = 0\n\n offset.top += marginTop\n offset.left += marginLeft\n\n // $.fn.offset doesn't round pixel values\n // so we use setOffset directly with our own function B-0\n $.offset.setOffset($tip[0], $.extend({\n using: function (props) {\n $tip.css({\n top: Math.round(props.top),\n left: Math.round(props.left)\n })\n }\n }, offset), 0)\n\n $tip.addClass('in')\n\n // check to see if placing tip in new offset caused the tip to resize itself\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (placement == 'top' && actualHeight != height) {\n offset.top = offset.top + height - actualHeight\n }\n\n var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)\n\n if (delta.left) offset.left += delta.left\n else offset.top += delta.top\n\n var isVertical = /top|bottom/.test(placement)\n var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight\n var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'\n\n $tip.offset(offset)\n this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)\n }\n\n Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {\n this.arrow()\n .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\n .css(isVertical ? 'top' : 'left', '')\n }\n\n Tooltip.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n\n $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)\n $tip.removeClass('fade in top bottom left right')\n }\n\n Tooltip.prototype.hide = function (callback) {\n var that = this\n var $tip = $(this.$tip)\n var e = $.Event('hide.bs.' + this.type)\n\n function complete() {\n if (that.hoverState != 'in') $tip.detach()\n that.$element\n .removeAttr('aria-describedby')\n .trigger('hidden.bs.' + that.type)\n callback && callback()\n }\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n $tip.removeClass('in')\n\n $.support.transition && $tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n\n this.hoverState = null\n\n return this\n }\n\n Tooltip.prototype.fixTitle = function () {\n var $e = this.$element\n if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {\n $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')\n }\n }\n\n Tooltip.prototype.hasContent = function () {\n return this.getTitle()\n }\n\n Tooltip.prototype.getPosition = function ($element) {\n $element = $element || this.$element\n\n var el = $element[0]\n var isBody = el.tagName == 'BODY'\n\n var elRect = el.getBoundingClientRect()\n if (elRect.width == null) {\n // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\n elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })\n }\n var elOffset = isBody ? { top: 0, left: 0 } : $element.offset()\n var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }\n var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null\n\n return $.extend({}, elRect, scroll, outerDims, elOffset)\n }\n\n Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {\n return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :\n /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }\n\n }\n\n Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {\n var delta = { top: 0, left: 0 }\n if (!this.$viewport) return delta\n\n var viewportPadding = this.options.viewport && this.options.viewport.padding || 0\n var viewportDimensions = this.getPosition(this.$viewport)\n\n if (/right|left/.test(placement)) {\n var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll\n var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight\n if (topEdgeOffset < viewportDimensions.top) { // top overflow\n delta.top = viewportDimensions.top - topEdgeOffset\n } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\n delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset\n }\n } else {\n var leftEdgeOffset = pos.left - viewportPadding\n var rightEdgeOffset = pos.left + viewportPadding + actualWidth\n if (leftEdgeOffset < viewportDimensions.left) { // left overflow\n delta.left = viewportDimensions.left - leftEdgeOffset\n } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow\n delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset\n }\n }\n\n return delta\n }\n\n Tooltip.prototype.getTitle = function () {\n var title\n var $e = this.$element\n var o = this.options\n\n title = $e.attr('data-original-title')\n || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)\n\n return title\n }\n\n Tooltip.prototype.getUID = function (prefix) {\n do prefix += ~~(Math.random() * 1000000)\n while (document.getElementById(prefix))\n return prefix\n }\n\n Tooltip.prototype.tip = function () {\n if (!this.$tip) {\n this.$tip = $(this.options.template)\n if (this.$tip.length != 1) {\n throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')\n }\n }\n return this.$tip\n }\n\n Tooltip.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))\n }\n\n Tooltip.prototype.enable = function () {\n this.enabled = true\n }\n\n Tooltip.prototype.disable = function () {\n this.enabled = false\n }\n\n Tooltip.prototype.toggleEnabled = function () {\n this.enabled = !this.enabled\n }\n\n Tooltip.prototype.toggle = function (e) {\n var self = this\n if (e) {\n self = $(e.currentTarget).data('bs.' + this.type)\n if (!self) {\n self = new this.constructor(e.currentTarget, this.getDelegateOptions())\n $(e.currentTarget).data('bs.' + this.type, self)\n }\n }\n\n if (e) {\n self.inState.click = !self.inState.click\n if (self.isInStateTrue()) self.enter(self)\n else self.leave(self)\n } else {\n self.tip().hasClass('in') ? self.leave(self) : self.enter(self)\n }\n }\n\n Tooltip.prototype.destroy = function () {\n var that = this\n clearTimeout(this.timeout)\n this.hide(function () {\n that.$element.off('.' + that.type).removeData('bs.' + that.type)\n if (that.$tip) {\n that.$tip.detach()\n }\n that.$tip = null\n that.$arrow = null\n that.$viewport = null\n })\n }\n\n\n // TOOLTIP PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tooltip')\n var options = typeof option == 'object' && option\n\n if (!data && /destroy|hide/.test(option)) return\n if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tooltip\n\n $.fn.tooltip = Plugin\n $.fn.tooltip.Constructor = Tooltip\n\n\n // TOOLTIP NO CONFLICT\n // ===================\n\n $.fn.tooltip.noConflict = function () {\n $.fn.tooltip = old\n return this\n }\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: popover.js v3.3.6\n * http://getbootstrap.com/javascript/#popovers\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // POPOVER PUBLIC CLASS DEFINITION\n // ===============================\n\n var Popover = function (element, options) {\n this.init('popover', element, options)\n }\n\n if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')\n\n Popover.VERSION = '3.3.6'\n\n Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '

'\n })\n\n\n // NOTE: POPOVER EXTENDS tooltip.js\n // ================================\n\n Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)\n\n Popover.prototype.constructor = Popover\n\n Popover.prototype.getDefaults = function () {\n return Popover.DEFAULTS\n }\n\n Popover.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n var content = this.getContent()\n\n $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)\n $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events\n this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'\n ](content)\n\n $tip.removeClass('fade top bottom left right in')\n\n // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do\n // this manually by checking the contents.\n if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()\n }\n\n Popover.prototype.hasContent = function () {\n return this.getTitle() || this.getContent()\n }\n\n Popover.prototype.getContent = function () {\n var $e = this.$element\n var o = this.options\n\n return $e.attr('data-content')\n || (typeof o.content == 'function' ?\n o.content.call($e[0]) :\n o.content)\n }\n\n Popover.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.arrow'))\n }\n\n\n // POPOVER PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.popover')\n var options = typeof option == 'object' && option\n\n if (!data && /destroy|hide/.test(option)) return\n if (!data) $this.data('bs.popover', (data = new Popover(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.popover\n\n $.fn.popover = Plugin\n $.fn.popover.Constructor = Popover\n\n\n // POPOVER NO CONFLICT\n // ===================\n\n $.fn.popover.noConflict = function () {\n $.fn.popover = old\n return this\n }\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: scrollspy.js v3.3.6\n * http://getbootstrap.com/javascript/#scrollspy\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // SCROLLSPY CLASS DEFINITION\n // ==========================\n\n function ScrollSpy(element, options) {\n this.$body = $(document.body)\n this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)\n this.options = $.extend({}, ScrollSpy.DEFAULTS, options)\n this.selector = (this.options.target || '') + ' .nav li > a'\n this.offsets = []\n this.targets = []\n this.activeTarget = null\n this.scrollHeight = 0\n\n this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))\n this.refresh()\n this.process()\n }\n\n ScrollSpy.VERSION = '3.3.6'\n\n ScrollSpy.DEFAULTS = {\n offset: 10\n }\n\n ScrollSpy.prototype.getScrollHeight = function () {\n return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)\n }\n\n ScrollSpy.prototype.refresh = function () {\n var that = this\n var offsetMethod = 'offset'\n var offsetBase = 0\n\n this.offsets = []\n this.targets = []\n this.scrollHeight = this.getScrollHeight()\n\n if (!$.isWindow(this.$scrollElement[0])) {\n offsetMethod = 'position'\n offsetBase = this.$scrollElement.scrollTop()\n }\n\n this.$body\n .find(this.selector)\n .map(function () {\n var $el = $(this)\n var href = $el.data('target') || $el.attr('href')\n var $href = /^#./.test(href) && $(href)\n\n return ($href\n && $href.length\n && $href.is(':visible')\n && [[$href[offsetMethod]().top + offsetBase, href]]) || null\n })\n .sort(function (a, b) { return a[0] - b[0] })\n .each(function () {\n that.offsets.push(this[0])\n that.targets.push(this[1])\n })\n }\n\n ScrollSpy.prototype.process = function () {\n var scrollTop = this.$scrollElement.scrollTop() + this.options.offset\n var scrollHeight = this.getScrollHeight()\n var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()\n var offsets = this.offsets\n var targets = this.targets\n var activeTarget = this.activeTarget\n var i\n\n if (this.scrollHeight != scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)\n }\n\n if (activeTarget && scrollTop < offsets[0]) {\n this.activeTarget = null\n return this.clear()\n }\n\n for (i = offsets.length; i--;) {\n activeTarget != targets[i]\n && scrollTop >= offsets[i]\n && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])\n && this.activate(targets[i])\n }\n }\n\n ScrollSpy.prototype.activate = function (target) {\n this.activeTarget = target\n\n this.clear()\n\n var selector = this.selector +\n '[data-target=\"' + target + '\"],' +\n this.selector + '[href=\"' + target + '\"]'\n\n var active = $(selector)\n .parents('li')\n .addClass('active')\n\n if (active.parent('.dropdown-menu').length) {\n active = active\n .closest('li.dropdown')\n .addClass('active')\n }\n\n active.trigger('activate.bs.scrollspy')\n }\n\n ScrollSpy.prototype.clear = function () {\n $(this.selector)\n .parentsUntil(this.options.target, '.active')\n .removeClass('active')\n }\n\n\n // SCROLLSPY PLUGIN DEFINITION\n // ===========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.scrollspy')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.scrollspy\n\n $.fn.scrollspy = Plugin\n $.fn.scrollspy.Constructor = ScrollSpy\n\n\n // SCROLLSPY NO CONFLICT\n // =====================\n\n $.fn.scrollspy.noConflict = function () {\n $.fn.scrollspy = old\n return this\n }\n\n\n // SCROLLSPY DATA-API\n // ==================\n\n $(window).on('load.bs.scrollspy.data-api', function () {\n $('[data-spy=\"scroll\"]').each(function () {\n var $spy = $(this)\n Plugin.call($spy, $spy.data())\n })\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: tab.js v3.3.6\n * http://getbootstrap.com/javascript/#tabs\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // TAB CLASS DEFINITION\n // ====================\n\n var Tab = function (element) {\n // jscs:disable requireDollarBeforejQueryAssignment\n this.element = $(element)\n // jscs:enable requireDollarBeforejQueryAssignment\n }\n\n Tab.VERSION = '3.3.6'\n\n Tab.TRANSITION_DURATION = 150\n\n Tab.prototype.show = function () {\n var $this = this.element\n var $ul = $this.closest('ul:not(.dropdown-menu)')\n var selector = $this.data('target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n if ($this.parent('li').hasClass('active')) return\n\n var $previous = $ul.find('.active:last a')\n var hideEvent = $.Event('hide.bs.tab', {\n relatedTarget: $this[0]\n })\n var showEvent = $.Event('show.bs.tab', {\n relatedTarget: $previous[0]\n })\n\n $previous.trigger(hideEvent)\n $this.trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return\n\n var $target = $(selector)\n\n this.activate($this.closest('li'), $ul)\n this.activate($target, $target.parent(), function () {\n $previous.trigger({\n type: 'hidden.bs.tab',\n relatedTarget: $this[0]\n })\n $this.trigger({\n type: 'shown.bs.tab',\n relatedTarget: $previous[0]\n })\n })\n }\n\n Tab.prototype.activate = function (element, container, callback) {\n var $active = container.find('> .active')\n var transition = callback\n && $.support.transition\n && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)\n\n function next() {\n $active\n .removeClass('active')\n .find('> .dropdown-menu > .active')\n .removeClass('active')\n .end()\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', false)\n\n element\n .addClass('active')\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', true)\n\n if (transition) {\n element[0].offsetWidth // reflow for transition\n element.addClass('in')\n } else {\n element.removeClass('fade')\n }\n\n if (element.parent('.dropdown-menu').length) {\n element\n .closest('li.dropdown')\n .addClass('active')\n .end()\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', true)\n }\n\n callback && callback()\n }\n\n $active.length && transition ?\n $active\n .one('bsTransitionEnd', next)\n .emulateTransitionEnd(Tab.TRANSITION_DURATION) :\n next()\n\n $active.removeClass('in')\n }\n\n\n // TAB PLUGIN DEFINITION\n // =====================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tab')\n\n if (!data) $this.data('bs.tab', (data = new Tab(this)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tab\n\n $.fn.tab = Plugin\n $.fn.tab.Constructor = Tab\n\n\n // TAB NO CONFLICT\n // ===============\n\n $.fn.tab.noConflict = function () {\n $.fn.tab = old\n return this\n }\n\n\n // TAB DATA-API\n // ============\n\n var clickHandler = function (e) {\n e.preventDefault()\n Plugin.call($(this), 'show')\n }\n\n $(document)\n .on('click.bs.tab.data-api', '[data-toggle=\"tab\"]', clickHandler)\n .on('click.bs.tab.data-api', '[data-toggle=\"pill\"]', clickHandler)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: affix.js v3.3.6\n * http://getbootstrap.com/javascript/#affix\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // AFFIX CLASS DEFINITION\n // ======================\n\n var Affix = function (element, options) {\n this.options = $.extend({}, Affix.DEFAULTS, options)\n\n this.$target = $(this.options.target)\n .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))\n .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))\n\n this.$element = $(element)\n this.affixed = null\n this.unpin = null\n this.pinnedOffset = null\n\n this.checkPosition()\n }\n\n Affix.VERSION = '3.3.6'\n\n Affix.RESET = 'affix affix-top affix-bottom'\n\n Affix.DEFAULTS = {\n offset: 0,\n target: window\n }\n\n Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {\n var scrollTop = this.$target.scrollTop()\n var position = this.$element.offset()\n var targetHeight = this.$target.height()\n\n if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false\n\n if (this.affixed == 'bottom') {\n if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'\n return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'\n }\n\n var initializing = this.affixed == null\n var colliderTop = initializing ? scrollTop : position.top\n var colliderHeight = initializing ? targetHeight : height\n\n if (offsetTop != null && scrollTop <= offsetTop) return 'top'\n if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'\n\n return false\n }\n\n Affix.prototype.getPinnedOffset = function () {\n if (this.pinnedOffset) return this.pinnedOffset\n this.$element.removeClass(Affix.RESET).addClass('affix')\n var scrollTop = this.$target.scrollTop()\n var position = this.$element.offset()\n return (this.pinnedOffset = position.top - scrollTop)\n }\n\n Affix.prototype.checkPositionWithEventLoop = function () {\n setTimeout($.proxy(this.checkPosition, this), 1)\n }\n\n Affix.prototype.checkPosition = function () {\n if (!this.$element.is(':visible')) return\n\n var height = this.$element.height()\n var offset = this.options.offset\n var offsetTop = offset.top\n var offsetBottom = offset.bottom\n var scrollHeight = Math.max($(document).height(), $(document.body).height())\n\n if (typeof offset != 'object') offsetBottom = offsetTop = offset\n if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)\n if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)\n\n var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)\n\n if (this.affixed != affix) {\n if (this.unpin != null) this.$element.css('top', '')\n\n var affixType = 'affix' + (affix ? '-' + affix : '')\n var e = $.Event(affixType + '.bs.affix')\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n this.affixed = affix\n this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null\n\n this.$element\n .removeClass(Affix.RESET)\n .addClass(affixType)\n .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')\n }\n\n if (affix == 'bottom') {\n this.$element.offset({\n top: scrollHeight - height - offsetBottom\n })\n }\n }\n\n\n // AFFIX PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.affix')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.affix', (data = new Affix(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.affix\n\n $.fn.affix = Plugin\n $.fn.affix.Constructor = Affix\n\n\n // AFFIX NO CONFLICT\n // =================\n\n $.fn.affix.noConflict = function () {\n $.fn.affix = old\n return this\n }\n\n\n // AFFIX DATA-API\n // ==============\n\n $(window).on('load', function () {\n $('[data-spy=\"affix\"]').each(function () {\n var $spy = $(this)\n var data = $spy.data()\n\n data.offset = data.offset || {}\n\n if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom\n if (data.offsetTop != null) data.offset.top = data.offsetTop\n\n Plugin.call($spy, data)\n })\n })\n\n}(jQuery);\n","/**\n * [jQuery-stickit]{@link https://github.com/emn178/jquery-stickit}\n *\n * @version 0.2.6\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2014-2016\n * @license MIT\n */\n(function(d,g,h){function u(a){var b=0,e;return function(){var c=this,d=arguments,f=function(){b=new Date;a.apply(c,d)};e&&(clearTimeout(e),e=null);var g=new Date-b;10\");this.spacer[0].id=a.id;this.spacer[0].className=a.className;this.spacer[0].style.cssText=a.style.cssText;this.spacer.addClass(\"jquery-stickit-spacer\");this.spacer[0].style.cssText+=\";visibility: hidden !important;display: none !important\";this.spacer.insertAfter(this.element);\"static\"==this.element.parent().css(\"position\")&&this.element.parent().css(\"position\",\"relative\");\"auto\"==this.element.css(\"will-change\")&&this.element.css(\"will-change\",\n\"transform\");\"none\"==e?this.element.css(\"transform\",\"translateZ(0)\"):-1==e.indexOf(\"matrix3d\")&&this.element.css(\"transform\",this.element.css(\"transform\")+\" translateZ(0)\");this.bound();this.precalculate();this.store()}function n(){p=g.innerHeight||h.documentElement.clientHeight;k=g.innerWidth||h.documentElement.clientWidth;d(\":jquery-stickit\").each(function(){d(this).data(\"jquery-stickit\").resize()})}var q=-1!=navigator.userAgent.indexOf(\"MSIE 7.0\"),r=q?-2:0,v=void 0!==g.MutationObserver,l=g.StickScope=\n{Parent:0,Document:1},f={None:0,Fixed:1,Absolute:2},t=!1;d.expr[\":\"][\"jquery-stickit\"]=function(a){return!!d(a).data(\"jquery-stickit\")};c.prototype.trigger=function(a){var b=\"on\"+a.charAt(0).toUpperCase()+a.slice(1);this.options[b]&&this.options[b].call(this.element);this.element.trigger(\"stickit:\"+a)};c.prototype.isActive=function(a){return(void 0===a.screenMinWidth||k>=a.screenMinWidth)&&(void 0===a.screenMaxWidth||k<=a.screenMaxWidth)};c.prototype.updateCss=function(a){this.element.hasClass(this.options.className)&&\na.className!=this.options.className&&this.element.removeClass(this.options.className).addClass(a.className);var b={};this.stick==f.Absolute?this.options.extraHeight!=a.extraHeight&&(b.bottom=-this.options.extraHeight+\"px\"):this.options.top!=a.top&&(b.top=a.top+this.offsetY+\"px\");this.options.zIndex!=a.zIndex&&(b.zIndex=this.getZIndex(a));this.element.css(b)};c.prototype.updateOptions=function(){var a=this.getActiveOptionsKey();if(this.activeKey!=a){this.activeKey=a;var b=this.getActiveOptions();this.options&&\n(a?this.stick!=f.None&&(b.scope==this.options.scope?this.updateCss(b):(this.reset(),setTimeout(this.locate.bind(this)))):this.reset());this.options=b;this.zIndex=this.getZIndex(b)}};c.prototype.getZIndex=function(a){return void 0===a.zIndex?this.defaultZIndex:a.zIndex};c.prototype.getActiveOptionsKey=function(){for(var a=[],b=0;bc.outerHeight(!1)+this.basePadding&&this.setFixed(e+r,a.bottom,-this.offsetHeight));break;default:a=c[0].getBoundingClientRect(),b=a.top-this.baseTop,0<=b||(b=c.parent()[0].getBoundingClientRect(),d.height(c.height()),d.show(),e=a.left-this.margin.left,this.options.scope==l.Document?this.setFixed(e,a.bottom,0):b.bottom+\nthis.baseParentOffset<=c.outerHeight(!1)+this.basePadding?this.setAbsolute(this.element.position().left):this.setFixed(e+r,a.bottom,0),d.width()||d.width(c.width()))}}};c.prototype.resize=function(){this.updateOptions();this.bound();this.precalculate();if(this.stick!=f.None){var a=this.element,b=this.spacer;a.width(b.width());b.height(a.height());this.stick==f.Fixed&&(b=this.spacer[0].getBoundingClientRect().left-this.margin.left,a.css(\"left\",b+\"px\"))}this.locate()};c.prototype.destroy=function(){this.reset();\nthis.spacer.remove();this.element.removeData(\"jquery-stickit\")};var p,k,m=function(){d(\":jquery-stickit\").each(function(){d(this).data(\"jquery-stickit\").locate()})},w=[\"destroy\"];d.fn.stickit=function(a,b){\"string\"==typeof a?-1!=d.inArray(a,w)&&this.each(function(){var c=d(this).data(\"jquery-stickit\");c&&c[a].apply(c,b)}):(t||(t=!0,n(),d(h).ready(function(){d(g).bind(\"resize\",n).bind(\"scroll\",m);d(h.body).on(\"animationend webkitAnimationEnd oAnimationEnd transitionend webkitTransitionEnd oTransitionEnd\",\nm)}),v&&(new MutationObserver(u(m))).observe(h,{attributes:!0,childList:!0,characterData:!0,subtree:!0})),b=d.isArray(a)?a:Array.prototype.slice.call(arguments,0),this.each(function(){var a=new c(this,b);d(this).data(\"jquery-stickit\",a);a.locate()}));return this}})(jQuery,window,document);\n","/*!\n * imagesLoaded PACKAGED v3.1.8\n * JavaScript is all like \"You images are done yet or what?\"\n * MIT License\n */\n\n(function(){function e(){}function t(e,t){for(var n=e.length;n--;)if(e[n].listener===t)return n;return-1}function n(e){return function(){return this[e].apply(this,arguments)}}var i=e.prototype,r=this,o=r.EventEmitter;i.getListeners=function(e){var t,n,i=this._getEvents();if(\"object\"==typeof e){t={};for(n in i)i.hasOwnProperty(n)&&e.test(n)&&(t[n]=i[n])}else t=i[e]||(i[e]=[]);return t},i.flattenListeners=function(e){var t,n=[];for(t=0;e.length>t;t+=1)n.push(e[t].listener);return n},i.getListenersAsObject=function(e){var t,n=this.getListeners(e);return n instanceof Array&&(t={},t[e]=n),t||n},i.addListener=function(e,n){var i,r=this.getListenersAsObject(e),o=\"object\"==typeof n;for(i in r)r.hasOwnProperty(i)&&-1===t(r[i],n)&&r[i].push(o?n:{listener:n,once:!1});return this},i.on=n(\"addListener\"),i.addOnceListener=function(e,t){return this.addListener(e,{listener:t,once:!0})},i.once=n(\"addOnceListener\"),i.defineEvent=function(e){return this.getListeners(e),this},i.defineEvents=function(e){for(var t=0;e.length>t;t+=1)this.defineEvent(e[t]);return this},i.removeListener=function(e,n){var i,r,o=this.getListenersAsObject(e);for(r in o)o.hasOwnProperty(r)&&(i=t(o[r],n),-1!==i&&o[r].splice(i,1));return this},i.off=n(\"removeListener\"),i.addListeners=function(e,t){return this.manipulateListeners(!1,e,t)},i.removeListeners=function(e,t){return this.manipulateListeners(!0,e,t)},i.manipulateListeners=function(e,t,n){var i,r,o=e?this.removeListener:this.addListener,s=e?this.removeListeners:this.addListeners;if(\"object\"!=typeof t||t instanceof RegExp)for(i=n.length;i--;)o.call(this,t,n[i]);else for(i in t)t.hasOwnProperty(i)&&(r=t[i])&&(\"function\"==typeof r?o.call(this,i,r):s.call(this,i,r));return this},i.removeEvent=function(e){var t,n=typeof e,i=this._getEvents();if(\"string\"===n)delete i[e];else if(\"object\"===n)for(t in i)i.hasOwnProperty(t)&&e.test(t)&&delete i[t];else delete this._events;return this},i.removeAllListeners=n(\"removeEvent\"),i.emitEvent=function(e,t){var n,i,r,o,s=this.getListenersAsObject(e);for(r in s)if(s.hasOwnProperty(r))for(i=s[r].length;i--;)n=s[r][i],n.once===!0&&this.removeListener(e,n.listener),o=n.listener.apply(this,t||[]),o===this._getOnceReturnValue()&&this.removeListener(e,n.listener);return this},i.trigger=n(\"emitEvent\"),i.emit=function(e){var t=Array.prototype.slice.call(arguments,1);return this.emitEvent(e,t)},i.setOnceReturnValue=function(e){return this._onceReturnValue=e,this},i._getOnceReturnValue=function(){return this.hasOwnProperty(\"_onceReturnValue\")?this._onceReturnValue:!0},i._getEvents=function(){return this._events||(this._events={})},e.noConflict=function(){return r.EventEmitter=o,e},\"function\"==typeof define&&define.amd?define(\"eventEmitter/EventEmitter\",[],function(){return e}):\"object\"==typeof module&&module.exports?module.exports=e:this.EventEmitter=e}).call(this),function(e){function t(t){var n=e.event;return n.target=n.target||n.srcElement||t,n}var n=document.documentElement,i=function(){};n.addEventListener?i=function(e,t,n){e.addEventListener(t,n,!1)}:n.attachEvent&&(i=function(e,n,i){e[n+i]=i.handleEvent?function(){var n=t(e);i.handleEvent.call(i,n)}:function(){var n=t(e);i.call(e,n)},e.attachEvent(\"on\"+n,e[n+i])});var r=function(){};n.removeEventListener?r=function(e,t,n){e.removeEventListener(t,n,!1)}:n.detachEvent&&(r=function(e,t,n){e.detachEvent(\"on\"+t,e[t+n]);try{delete e[t+n]}catch(i){e[t+n]=void 0}});var o={bind:i,unbind:r};\"function\"==typeof define&&define.amd?define(\"eventie/eventie\",o):e.eventie=o}(this),function(e,t){\"function\"==typeof define&&define.amd?define([\"eventEmitter/EventEmitter\",\"eventie/eventie\"],function(n,i){return t(e,n,i)}):\"object\"==typeof exports?module.exports=t(e,require(\"wolfy87-eventemitter\"),require(\"eventie\")):e.imagesLoaded=t(e,e.EventEmitter,e.eventie)}(window,function(e,t,n){function i(e,t){for(var n in t)e[n]=t[n];return e}function r(e){return\"[object Array]\"===d.call(e)}function o(e){var t=[];if(r(e))t=e;else if(\"number\"==typeof e.length)for(var n=0,i=e.length;i>n;n++)t.push(e[n]);else t.push(e);return t}function s(e,t,n){if(!(this instanceof s))return new s(e,t);\"string\"==typeof e&&(e=document.querySelectorAll(e)),this.elements=o(e),this.options=i({},this.options),\"function\"==typeof t?n=t:i(this.options,t),n&&this.on(\"always\",n),this.getImages(),a&&(this.jqDeferred=new a.Deferred);var r=this;setTimeout(function(){r.check()})}function f(e){this.img=e}function c(e){this.src=e,v[e]=this}var a=e.jQuery,u=e.console,h=u!==void 0,d=Object.prototype.toString;s.prototype=new t,s.prototype.options={},s.prototype.getImages=function(){this.images=[];for(var e=0,t=this.elements.length;t>e;e++){var n=this.elements[e];\"IMG\"===n.nodeName&&this.addImage(n);var i=n.nodeType;if(i&&(1===i||9===i||11===i))for(var r=n.querySelectorAll(\"img\"),o=0,s=r.length;s>o;o++){var f=r[o];this.addImage(f)}}},s.prototype.addImage=function(e){var t=new f(e);this.images.push(t)},s.prototype.check=function(){function e(e,r){return t.options.debug&&h&&u.log(\"confirm\",e,r),t.progress(e),n++,n===i&&t.complete(),!0}var t=this,n=0,i=this.images.length;if(this.hasAnyBroken=!1,!i)return this.complete(),void 0;for(var r=0;i>r;r++){var o=this.images[r];o.on(\"confirm\",e),o.check()}},s.prototype.progress=function(e){this.hasAnyBroken=this.hasAnyBroken||!e.isLoaded;var t=this;setTimeout(function(){t.emit(\"progress\",t,e),t.jqDeferred&&t.jqDeferred.notify&&t.jqDeferred.notify(t,e)})},s.prototype.complete=function(){var e=this.hasAnyBroken?\"fail\":\"done\";this.isComplete=!0;var t=this;setTimeout(function(){if(t.emit(e,t),t.emit(\"always\",t),t.jqDeferred){var n=t.hasAnyBroken?\"reject\":\"resolve\";t.jqDeferred[n](t)}})},a&&(a.fn.imagesLoaded=function(e,t){var n=new s(this,e,t);return n.jqDeferred.promise(a(this))}),f.prototype=new t,f.prototype.check=function(){var e=v[this.img.src]||new c(this.img.src);if(e.isConfirmed)return this.confirm(e.isLoaded,\"cached was confirmed\"),void 0;if(this.img.complete&&void 0!==this.img.naturalWidth)return this.confirm(0!==this.img.naturalWidth,\"naturalWidth\"),void 0;var t=this;e.on(\"confirm\",function(e,n){return t.confirm(e.isLoaded,n),!0}),e.check()},f.prototype.confirm=function(e,t){this.isLoaded=e,this.emit(\"confirm\",this,t)};var v={};return c.prototype=new t,c.prototype.check=function(){if(!this.isChecked){var e=new Image;n.bind(e,\"load\",this),n.bind(e,\"error\",this),e.src=this.src,this.isChecked=!0}},c.prototype.handleEvent=function(e){var t=\"on\"+e.type;this[t]&&this[t](e)},c.prototype.onload=function(e){this.confirm(!0,\"onload\"),this.unbindProxyEvents(e)},c.prototype.onerror=function(e){this.confirm(!1,\"onerror\"),this.unbindProxyEvents(e)},c.prototype.confirm=function(e,t){this.isConfirmed=!0,this.isLoaded=e,this.emit(\"confirm\",this,t)},c.prototype.unbindProxyEvents=function(e){n.unbind(e.target,\"load\",this),n.unbind(e.target,\"error\",this)},s});","/**\n * Owl Carousel v2.1.0\n * Copyright 2013-2016 David Deutsch\n * Licensed under MIT (https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE)\n */\n/**\n * Owl carousel\n * @version 2.1.0\n * @author Bartosz Wojciechowski\n * @author David Deutsch\n * @license The MIT License (MIT)\n * @todo Lazy Load Icon\n * @todo prevent animationend bubling\n * @todo itemsScaleUp\n * @todo Test Zepto\n * @todo stagePadding calculate wrong active classes\n */\n;(function($, window, document, undefined) {\n\n\t/**\n\t * Creates a carousel.\n\t * @class The Owl Carousel.\n\t * @public\n\t * @param {HTMLElement|jQuery} element - The element to create the carousel for.\n\t * @param {Object} [options] - The options\n\t */\n\tfunction Owl(element, options) {\n\n\t\t/**\n\t\t * Current settings for the carousel.\n\t\t * @public\n\t\t */\n\t\tthis.settings = null;\n\n\t\t/**\n\t\t * Current options set by the caller including defaults.\n\t\t * @public\n\t\t */\n\t\tthis.options = $.extend({}, Owl.Defaults, options);\n\n\t\t/**\n\t\t * Plugin element.\n\t\t * @public\n\t\t */\n\t\tthis.$element = $(element);\n\n\t\t/**\n\t\t * Proxied event handlers.\n\t\t * @protected\n\t\t */\n\t\tthis._handlers = {};\n\n\t\t/**\n\t\t * References to the running plugins of this carousel.\n\t\t * @protected\n\t\t */\n\t\tthis._plugins = {};\n\n\t\t/**\n\t\t * Currently suppressed events to prevent them from beeing retriggered.\n\t\t * @protected\n\t\t */\n\t\tthis._supress = {};\n\n\t\t/**\n\t\t * Absolute current position.\n\t\t * @protected\n\t\t */\n\t\tthis._current = null;\n\n\t\t/**\n\t\t * Animation speed in milliseconds.\n\t\t * @protected\n\t\t */\n\t\tthis._speed = null;\n\n\t\t/**\n\t\t * Coordinates of all items in pixel.\n\t\t * @todo The name of this member is missleading.\n\t\t * @protected\n\t\t */\n\t\tthis._coordinates = [];\n\n\t\t/**\n\t\t * Current breakpoint.\n\t\t * @todo Real media queries would be nice.\n\t\t * @protected\n\t\t */\n\t\tthis._breakpoint = null;\n\n\t\t/**\n\t\t * Current width of the plugin element.\n\t\t */\n\t\tthis._width = null;\n\n\t\t/**\n\t\t * All real items.\n\t\t * @protected\n\t\t */\n\t\tthis._items = [];\n\n\t\t/**\n\t\t * All cloned items.\n\t\t * @protected\n\t\t */\n\t\tthis._clones = [];\n\n\t\t/**\n\t\t * Merge values of all items.\n\t\t * @todo Maybe this could be part of a plugin.\n\t\t * @protected\n\t\t */\n\t\tthis._mergers = [];\n\n\t\t/**\n\t\t * Widths of all items.\n\t\t */\n\t\tthis._widths = [];\n\n\t\t/**\n\t\t * Invalidated parts within the update process.\n\t\t * @protected\n\t\t */\n\t\tthis._invalidated = {};\n\n\t\t/**\n\t\t * Ordered list of workers for the update process.\n\t\t * @protected\n\t\t */\n\t\tthis._pipe = [];\n\n\t\t/**\n\t\t * Current state information for the drag operation.\n\t\t * @todo #261\n\t\t * @protected\n\t\t */\n\t\tthis._drag = {\n\t\t\ttime: null,\n\t\t\ttarget: null,\n\t\t\tpointer: null,\n\t\t\tstage: {\n\t\t\t\tstart: null,\n\t\t\t\tcurrent: null\n\t\t\t},\n\t\t\tdirection: null\n\t\t};\n\n\t\t/**\n\t\t * Current state information and their tags.\n\t\t * @type {Object}\n\t\t * @protected\n\t\t */\n\t\tthis._states = {\n\t\t\tcurrent: {},\n\t\t\ttags: {\n\t\t\t\t'initializing': [ 'busy' ],\n\t\t\t\t'animating': [ 'busy' ],\n\t\t\t\t'dragging': [ 'interacting' ]\n\t\t\t}\n\t\t};\n\n\t\t$.each([ 'onResize', 'onThrottledResize' ], $.proxy(function(i, handler) {\n\t\t\tthis._handlers[handler] = $.proxy(this[handler], this);\n\t\t}, this));\n\n\t\t$.each(Owl.Plugins, $.proxy(function(key, plugin) {\n\t\t\tthis._plugins[key.charAt(0).toLowerCase() + key.slice(1)]\n\t\t\t\t= new plugin(this);\n\t\t}, this));\n\n\t\t$.each(Owl.Workers, $.proxy(function(priority, worker) {\n\t\t\tthis._pipe.push({\n\t\t\t\t'filter': worker.filter,\n\t\t\t\t'run': $.proxy(worker.run, this)\n\t\t\t});\n\t\t}, this));\n\n\t\tthis.setup();\n\t\tthis.initialize();\n\t}\n\n\t/**\n\t * Default options for the carousel.\n\t * @public\n\t */\n\tOwl.Defaults = {\n\t\titems: 3,\n\t\tloop: false,\n\t\tcenter: false,\n\t\trewind: false,\n\n\t\tmouseDrag: true,\n\t\ttouchDrag: true,\n\t\tpullDrag: true,\n\t\tfreeDrag: false,\n\n\t\tmargin: 0,\n\t\tstagePadding: 0,\n\n\t\tmerge: false,\n\t\tmergeFit: true,\n\t\tautoWidth: false,\n\n\t\tstartPosition: 0,\n\t\trtl: false,\n\n\t\tsmartSpeed: 250,\n\t\tfluidSpeed: false,\n\t\tdragEndSpeed: false,\n\n\t\tresponsive: {},\n\t\tresponsiveRefreshRate: 200,\n\t\tresponsiveBaseElement: window,\n\n\t\tfallbackEasing: 'swing',\n\n\t\tinfo: false,\n\n\t\tnestedItemSelector: false,\n\t\titemElement: 'div',\n\t\tstageElement: 'div',\n\n\t\trefreshClass: 'owl-refresh',\n\t\tloadedClass: 'owl-loaded',\n\t\tloadingClass: 'owl-loading',\n\t\trtlClass: 'owl-rtl',\n\t\tresponsiveClass: 'owl-responsive',\n\t\tdragClass: 'owl-drag',\n\t\titemClass: 'owl-item',\n\t\tstageClass: 'owl-stage',\n\t\tstageOuterClass: 'owl-stage-outer',\n\t\tgrabClass: 'owl-grab'\n\t};\n\n\t/**\n\t * Enumeration for width.\n\t * @public\n\t * @readonly\n\t * @enum {String}\n\t */\n\tOwl.Width = {\n\t\tDefault: 'default',\n\t\tInner: 'inner',\n\t\tOuter: 'outer'\n\t};\n\n\t/**\n\t * Enumeration for types.\n\t * @public\n\t * @readonly\n\t * @enum {String}\n\t */\n\tOwl.Type = {\n\t\tEvent: 'event',\n\t\tState: 'state'\n\t};\n\n\t/**\n\t * Contains all registered plugins.\n\t * @public\n\t */\n\tOwl.Plugins = {};\n\n\t/**\n\t * List of workers involved in the update process.\n\t */\n\tOwl.Workers = [ {\n\t\tfilter: [ 'width', 'settings' ],\n\t\trun: function() {\n\t\t\tthis._width = this.$element.width();\n\t\t}\n\t}, {\n\t\tfilter: [ 'width', 'items', 'settings' ],\n\t\trun: function(cache) {\n\t\t\tcache.current = this._items && this._items[this.relative(this._current)];\n\t\t}\n\t}, {\n\t\tfilter: [ 'items', 'settings' ],\n\t\trun: function() {\n\t\t\tthis.$stage.children('.cloned').remove();\n\t\t}\n\t}, {\n\t\tfilter: [ 'width', 'items', 'settings' ],\n\t\trun: function(cache) {\n\t\t\tvar margin = this.settings.margin || '',\n\t\t\t\tgrid = !this.settings.autoWidth,\n\t\t\t\trtl = this.settings.rtl,\n\t\t\t\tcss = {\n\t\t\t\t\t'width': 'auto',\n\t\t\t\t\t'margin-left': rtl ? margin : '',\n\t\t\t\t\t'margin-right': rtl ? '' : margin\n\t\t\t\t};\n\n\t\t\t!grid && this.$stage.children().css(css);\n\n\t\t\tcache.css = css;\n\t\t}\n\t}, {\n\t\tfilter: [ 'width', 'items', 'settings' ],\n\t\trun: function(cache) {\n\t\t\tvar width = (this.width() / this.settings.items).toFixed(3) - this.settings.margin,\n\t\t\t\tmerge = null,\n\t\t\t\titerator = this._items.length,\n\t\t\t\tgrid = !this.settings.autoWidth,\n\t\t\t\twidths = [];\n\n\t\t\tcache.items = {\n\t\t\t\tmerge: false,\n\t\t\t\twidth: width\n\t\t\t};\n\n\t\t\twhile (iterator--) {\n\t\t\t\tmerge = this._mergers[iterator];\n\t\t\t\tmerge = this.settings.mergeFit && Math.min(merge, this.settings.items) || merge;\n\n\t\t\t\tcache.items.merge = merge > 1 || cache.items.merge;\n\n\t\t\t\twidths[iterator] = !grid ? this._items[iterator].width() : width * merge;\n\t\t\t}\n\n\t\t\tthis._widths = widths;\n\t\t}\n\t}, {\n\t\tfilter: [ 'items', 'settings' ],\n\t\trun: function() {\n\t\t\tvar clones = [],\n\t\t\t\titems = this._items,\n\t\t\t\tsettings = this.settings,\n\t\t\t\tview = Math.max(settings.items * 2, 4),\n\t\t\t\tsize = Math.ceil(items.length / 2) * 2,\n\t\t\t\trepeat = settings.loop && items.length ? settings.rewind ? view : Math.max(view, size) : 0,\n\t\t\t\tappend = '',\n\t\t\t\tprepend = '';\n\n\t\t\trepeat /= 2;\n\n\t\t\twhile (repeat--) {\n\t\t\t\tclones.push(this.normalize(clones.length / 2, true));\n\t\t\t\tappend = append + items[clones[clones.length - 1]][0].outerHTML;\n\t\t\t\tclones.push(this.normalize(items.length - 1 - (clones.length - 1) / 2, true));\n\t\t\t\tprepend = items[clones[clones.length - 1]][0].outerHTML + prepend;\n\t\t\t}\n\n\t\t\tthis._clones = clones;\n\n\t\t\t$(append).addClass('cloned').appendTo(this.$stage);\n\t\t\t$(prepend).addClass('cloned').prependTo(this.$stage);\n\t\t}\n\t}, {\n\t\tfilter: [ 'width', 'items', 'settings' ],\n\t\trun: function() {\n\t\t\tvar rtl = this.settings.rtl ? 1 : -1,\n\t\t\t\tsize = this._clones.length + this._items.length,\n\t\t\t\titerator = -1,\n\t\t\t\tprevious = 0,\n\t\t\t\tcurrent = 0,\n\t\t\t\tcoordinates = [];\n\n\t\t\twhile (++iterator < size) {\n\t\t\t\tprevious = coordinates[iterator - 1] || 0;\n\t\t\t\tcurrent = this._widths[this.relative(iterator)] + this.settings.margin;\n\t\t\t\tcoordinates.push(previous + current * rtl);\n\t\t\t}\n\n\t\t\tthis._coordinates = coordinates;\n\t\t}\n\t}, {\n\t\tfilter: [ 'width', 'items', 'settings' ],\n\t\trun: function() {\n\t\t\tvar padding = this.settings.stagePadding,\n\t\t\t\tcoordinates = this._coordinates,\n\t\t\t\tcss = {\n\t\t\t\t\t'width': Math.ceil(Math.abs(coordinates[coordinates.length - 1])) + padding * 2,\n\t\t\t\t\t'padding-left': padding || '',\n\t\t\t\t\t'padding-right': padding || ''\n\t\t\t\t};\n\n\t\t\tthis.$stage.css(css);\n\t\t}\n\t}, {\n\t\tfilter: [ 'width', 'items', 'settings' ],\n\t\trun: function(cache) {\n\t\t\tvar iterator = this._coordinates.length,\n\t\t\t\tgrid = !this.settings.autoWidth,\n\t\t\t\titems = this.$stage.children();\n\n\t\t\tif (grid && cache.items.merge) {\n\t\t\t\twhile (iterator--) {\n\t\t\t\t\tcache.css.width = this._widths[this.relative(iterator)];\n\t\t\t\t\titems.eq(iterator).css(cache.css);\n\t\t\t\t}\n\t\t\t} else if (grid) {\n\t\t\t\tcache.css.width = cache.items.width;\n\t\t\t\titems.css(cache.css);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tfilter: [ 'items' ],\n\t\trun: function() {\n\t\t\tthis._coordinates.length < 1 && this.$stage.removeAttr('style');\n\t\t}\n\t}, {\n\t\tfilter: [ 'width', 'items', 'settings' ],\n\t\trun: function(cache) {\n\t\t\tcache.current = cache.current ? this.$stage.children().index(cache.current) : 0;\n\t\t\tcache.current = Math.max(this.minimum(), Math.min(this.maximum(), cache.current));\n\t\t\tthis.reset(cache.current);\n\t\t}\n\t}, {\n\t\tfilter: [ 'position' ],\n\t\trun: function() {\n\t\t\tthis.animate(this.coordinates(this._current));\n\t\t}\n\t}, {\n\t\tfilter: [ 'width', 'position', 'items', 'settings' ],\n\t\trun: function() {\n\t\t\tvar rtl = this.settings.rtl ? 1 : -1,\n\t\t\t\tpadding = this.settings.stagePadding * 2,\n\t\t\t\tbegin = this.coordinates(this.current()) + padding,\n\t\t\t\tend = begin + this.width() * rtl,\n\t\t\t\tinner, outer, matches = [], i, n;\n\n\t\t\tfor (i = 0, n = this._coordinates.length; i < n; i++) {\n\t\t\t\tinner = this._coordinates[i - 1] || 0;\n\t\t\t\touter = Math.abs(this._coordinates[i]) + padding * rtl;\n\n\t\t\t\tif ((this.op(inner, '<=', begin) && (this.op(inner, '>', end)))\n\t\t\t\t\t|| (this.op(outer, '<', begin) && this.op(outer, '>', end))) {\n\t\t\t\t\tmatches.push(i);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.$stage.children('.active').removeClass('active');\n\t\t\tthis.$stage.children(':eq(' + matches.join('), :eq(') + ')').addClass('active');\n\n\t\t\tif (this.settings.center) {\n\t\t\t\tthis.$stage.children('.center').removeClass('center');\n\t\t\t\tthis.$stage.children().eq(this.current()).addClass('center');\n\t\t\t}\n\t\t}\n\t} ];\n\n\t/**\n\t * Initializes the carousel.\n\t * @protected\n\t */\n\tOwl.prototype.initialize = function() {\n\t\tthis.enter('initializing');\n\t\tthis.trigger('initialize');\n\n\t\tthis.$element.toggleClass(this.settings.rtlClass, this.settings.rtl);\n\n\t\tif (this.settings.autoWidth && !this.is('pre-loading')) {\n\t\t\tvar imgs, nestedSelector, width;\n\t\t\timgs = this.$element.find('img');\n\t\t\tnestedSelector = this.settings.nestedItemSelector ? '.' + this.settings.nestedItemSelector : undefined;\n\t\t\twidth = this.$element.children(nestedSelector).width();\n\n\t\t\tif (imgs.length && width <= 0) {\n\t\t\t\tthis.preloadAutoWidthImages(imgs);\n\t\t\t}\n\t\t}\n\n\t\tthis.$element.addClass(this.options.loadingClass);\n\n\t\t// create stage\n\t\tthis.$stage = $('<' + this.settings.stageElement + ' class=\"' + this.settings.stageClass + '\"/>')\n\t\t\t.wrap('
');\n\n\t\t// append stage\n\t\tthis.$element.append(this.$stage.parent());\n\n\t\t// append content\n\t\tthis.replace(this.$element.children().not(this.$stage.parent()));\n\n\t\t// check visibility\n\t\tif (this.$element.is(':visible')) {\n\t\t\t// update view\n\t\t\tthis.refresh();\n\t\t} else {\n\t\t\t// invalidate width\n\t\t\tthis.invalidate('width');\n\t\t}\n\n\t\tthis.$element\n\t\t\t.removeClass(this.options.loadingClass)\n\t\t\t.addClass(this.options.loadedClass);\n\n\t\t// register event handlers\n\t\tthis.registerEventHandlers();\n\n\t\tthis.leave('initializing');\n\t\tthis.trigger('initialized');\n\t};\n\n\t/**\n\t * Setups the current settings.\n\t * @todo Remove responsive classes. Why should adaptive designs be brought into IE8?\n\t * @todo Support for media queries by using `matchMedia` would be nice.\n\t * @public\n\t */\n\tOwl.prototype.setup = function() {\n\t\tvar viewport = this.viewport(),\n\t\t\toverwrites = this.options.responsive,\n\t\t\tmatch = -1,\n\t\t\tsettings = null;\n\n\t\tif (!overwrites) {\n\t\t\tsettings = $.extend({}, this.options);\n\t\t} else {\n\t\t\t$.each(overwrites, function(breakpoint) {\n\t\t\t\tif (breakpoint <= viewport && breakpoint > match) {\n\t\t\t\t\tmatch = Number(breakpoint);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tsettings = $.extend({}, this.options, overwrites[match]);\n\t\t\tdelete settings.responsive;\n\n\t\t\t// responsive class\n\t\t\tif (settings.responsiveClass) {\n\t\t\t\tthis.$element.attr('class',\n\t\t\t\t\tthis.$element.attr('class').replace(new RegExp('(' + this.options.responsiveClass + '-)\\\\S+\\\\s', 'g'), '$1' + match)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (this.settings === null || this._breakpoint !== match) {\n\t\t\tthis.trigger('change', { property: { name: 'settings', value: settings } });\n\t\t\tthis._breakpoint = match;\n\t\t\tthis.settings = settings;\n\t\t\tthis.invalidate('settings');\n\t\t\tthis.trigger('changed', { property: { name: 'settings', value: this.settings } });\n\t\t}\n\t};\n\n\t/**\n\t * Updates option logic if necessery.\n\t * @protected\n\t */\n\tOwl.prototype.optionsLogic = function() {\n\t\tif (this.settings.autoWidth) {\n\t\t\tthis.settings.stagePadding = false;\n\t\t\tthis.settings.merge = false;\n\t\t}\n\t};\n\n\t/**\n\t * Prepares an item before add.\n\t * @todo Rename event parameter `content` to `item`.\n\t * @protected\n\t * @returns {jQuery|HTMLElement} - The item container.\n\t */\n\tOwl.prototype.prepare = function(item) {\n\t\tvar event = this.trigger('prepare', { content: item });\n\n\t\tif (!event.data) {\n\t\t\tevent.data = $('<' + this.settings.itemElement + '/>')\n\t\t\t\t.addClass(this.options.itemClass).append(item)\n\t\t}\n\n\t\tthis.trigger('prepared', { content: event.data });\n\n\t\treturn event.data;\n\t};\n\n\t/**\n\t * Updates the view.\n\t * @public\n\t */\n\tOwl.prototype.update = function() {\n\t\tvar i = 0,\n\t\t\tn = this._pipe.length,\n\t\t\tfilter = $.proxy(function(p) { return this[p] }, this._invalidated),\n\t\t\tcache = {};\n\n\t\twhile (i < n) {\n\t\t\tif (this._invalidated.all || $.grep(this._pipe[i].filter, filter).length > 0) {\n\t\t\t\tthis._pipe[i].run(cache);\n\t\t\t}\n\t\t\ti++;\n\t\t}\n\n\t\tthis._invalidated = {};\n\n\t\t!this.is('valid') && this.enter('valid');\n\t};\n\n\t/**\n\t * Gets the width of the view.\n\t * @public\n\t * @param {Owl.Width} [dimension=Owl.Width.Default] - The dimension to return.\n\t * @returns {Number} - The width of the view in pixel.\n\t */\n\tOwl.prototype.width = function(dimension) {\n\t\tdimension = dimension || Owl.Width.Default;\n\t\tswitch (dimension) {\n\t\t\tcase Owl.Width.Inner:\n\t\t\tcase Owl.Width.Outer:\n\t\t\t\treturn this._width;\n\t\t\tdefault:\n\t\t\t\treturn this._width - this.settings.stagePadding * 2 + this.settings.margin;\n\t\t}\n\t};\n\n\t/**\n\t * Refreshes the carousel primarily for adaptive purposes.\n\t * @public\n\t */\n\tOwl.prototype.refresh = function() {\n\t\tthis.enter('refreshing');\n\t\tthis.trigger('refresh');\n\n\t\tthis.setup();\n\n\t\tthis.optionsLogic();\n\n\t\tthis.$element.addClass(this.options.refreshClass);\n\n\t\tthis.update();\n\n\t\tthis.$element.removeClass(this.options.refreshClass);\n\n\t\tthis.leave('refreshing');\n\t\tthis.trigger('refreshed');\n\t};\n\n\t/**\n\t * Checks window `resize` event.\n\t * @protected\n\t */\n\tOwl.prototype.onThrottledResize = function() {\n\t\twindow.clearTimeout(this.resizeTimer);\n\t\tthis.resizeTimer = window.setTimeout(this._handlers.onResize, this.settings.responsiveRefreshRate);\n\t};\n\n\t/**\n\t * Checks window `resize` event.\n\t * @protected\n\t */\n\tOwl.prototype.onResize = function() {\n\t\tif (!this._items.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (this._width === this.$element.width()) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (!this.$element.is(':visible')) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.enter('resizing');\n\n\t\tif (this.trigger('resize').isDefaultPrevented()) {\n\t\t\tthis.leave('resizing');\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.invalidate('width');\n\n\t\tthis.refresh();\n\n\t\tthis.leave('resizing');\n\t\tthis.trigger('resized');\n\t};\n\n\t/**\n\t * Registers event handlers.\n\t * @todo Check `msPointerEnabled`\n\t * @todo #261\n\t * @protected\n\t */\n\tOwl.prototype.registerEventHandlers = function() {\n\t\tif ($.support.transition) {\n\t\t\tthis.$stage.on($.support.transition.end + '.owl.core', $.proxy(this.onTransitionEnd, this));\n\t\t}\n\n\t\tif (this.settings.responsive !== false) {\n\t\t\tthis.on(window, 'resize', this._handlers.onThrottledResize);\n\t\t}\n\n\t\tif (this.settings.mouseDrag) {\n\t\t\tthis.$element.addClass(this.options.dragClass);\n\t\t\tthis.$stage.on('mousedown.owl.core', $.proxy(this.onDragStart, this));\n\t\t\tthis.$stage.on('dragstart.owl.core selectstart.owl.core', function() { return false });\n\t\t}\n\n\t\tif (this.settings.touchDrag){\n\t\t\tthis.$stage.on('touchstart.owl.core', $.proxy(this.onDragStart, this));\n\t\t\tthis.$stage.on('touchcancel.owl.core', $.proxy(this.onDragEnd, this));\n\t\t}\n\t};\n\n\t/**\n\t * Handles `touchstart` and `mousedown` events.\n\t * @todo Horizontal swipe threshold as option\n\t * @todo #261\n\t * @protected\n\t * @param {Event} event - The event arguments.\n\t */\n\tOwl.prototype.onDragStart = function(event) {\n\t\tvar stage = null;\n\n\t\tif (event.which === 3) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ($.support.transform) {\n\t\t\tstage = this.$stage.css('transform').replace(/.*\\(|\\)| /g, '').split(',');\n\t\t\tstage = {\n\t\t\t\tx: stage[stage.length === 16 ? 12 : 4],\n\t\t\t\ty: stage[stage.length === 16 ? 13 : 5]\n\t\t\t};\n\t\t} else {\n\t\t\tstage = this.$stage.position();\n\t\t\tstage = {\n\t\t\t\tx: this.settings.rtl ?\n\t\t\t\t\tstage.left + this.$stage.width() - this.width() + this.settings.margin :\n\t\t\t\t\tstage.left,\n\t\t\t\ty: stage.top\n\t\t\t};\n\t\t}\n\n\t\tif (this.is('animating')) {\n\t\t\t$.support.transform ? this.animate(stage.x) : this.$stage.stop()\n\t\t\tthis.invalidate('position');\n\t\t}\n\n\t\tthis.$element.toggleClass(this.options.grabClass, event.type === 'mousedown');\n\n\t\tthis.speed(0);\n\n\t\tthis._drag.time = new Date().getTime();\n\t\tthis._drag.target = $(event.target);\n\t\tthis._drag.stage.start = stage;\n\t\tthis._drag.stage.current = stage;\n\t\tthis._drag.pointer = this.pointer(event);\n\n\t\t$(document).on('mouseup.owl.core touchend.owl.core', $.proxy(this.onDragEnd, this));\n\n\t\t$(document).one('mousemove.owl.core touchmove.owl.core', $.proxy(function(event) {\n\t\t\tvar delta = this.difference(this._drag.pointer, this.pointer(event));\n\n\t\t\t$(document).on('mousemove.owl.core touchmove.owl.core', $.proxy(this.onDragMove, this));\n\n\t\t\tif (Math.abs(delta.x) < Math.abs(delta.y) && this.is('valid')) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tevent.preventDefault();\n\n\t\t\tthis.enter('dragging');\n\t\t\tthis.trigger('drag');\n\t\t}, this));\n\t};\n\n\t/**\n\t * Handles the `touchmove` and `mousemove` events.\n\t * @todo #261\n\t * @protected\n\t * @param {Event} event - The event arguments.\n\t */\n\tOwl.prototype.onDragMove = function(event) {\n\t\tvar minimum = null,\n\t\t\tmaximum = null,\n\t\t\tpull = null,\n\t\t\tdelta = this.difference(this._drag.pointer, this.pointer(event)),\n\t\t\tstage = this.difference(this._drag.stage.start, delta);\n\n\t\tif (!this.is('dragging')) {\n\t\t\treturn;\n\t\t}\n\n\t\tevent.preventDefault();\n\n\t\tif (this.settings.loop) {\n\t\t\tminimum = this.coordinates(this.minimum());\n\t\t\tmaximum = this.coordinates(this.maximum() + 1) - minimum;\n\t\t\tstage.x = (((stage.x - minimum) % maximum + maximum) % maximum) + minimum;\n\t\t} else {\n\t\t\tminimum = this.settings.rtl ? this.coordinates(this.maximum()) : this.coordinates(this.minimum());\n\t\t\tmaximum = this.settings.rtl ? this.coordinates(this.minimum()) : this.coordinates(this.maximum());\n\t\t\tpull = this.settings.pullDrag ? -1 * delta.x / 5 : 0;\n\t\t\tstage.x = Math.max(Math.min(stage.x, minimum + pull), maximum + pull);\n\t\t}\n\n\t\tthis._drag.stage.current = stage;\n\n\t\tthis.animate(stage.x);\n\t};\n\n\t/**\n\t * Handles the `touchend` and `mouseup` events.\n\t * @todo #261\n\t * @todo Threshold for click event\n\t * @protected\n\t * @param {Event} event - The event arguments.\n\t */\n\tOwl.prototype.onDragEnd = function(event) {\n\t\tvar delta = this.difference(this._drag.pointer, this.pointer(event)),\n\t\t\tstage = this._drag.stage.current,\n\t\t\tdirection = delta.x > 0 ^ this.settings.rtl ? 'left' : 'right';\n\n\t\t$(document).off('.owl.core');\n\n\t\tthis.$element.removeClass(this.options.grabClass);\n\n\t\tif (delta.x !== 0 && this.is('dragging') || !this.is('valid')) {\n\t\t\tthis.speed(this.settings.dragEndSpeed || this.settings.smartSpeed);\n\t\t\tthis.current(this.closest(stage.x, delta.x !== 0 ? direction : this._drag.direction));\n\t\t\tthis.invalidate('position');\n\t\t\tthis.update();\n\n\t\t\tthis._drag.direction = direction;\n\n\t\t\tif (Math.abs(delta.x) > 3 || new Date().getTime() - this._drag.time > 300) {\n\t\t\t\tthis._drag.target.one('click.owl.core', function() { return false; });\n\t\t\t}\n\t\t}\n\n\t\tif (!this.is('dragging')) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.leave('dragging');\n\t\tthis.trigger('dragged');\n\t};\n\n\t/**\n\t * Gets absolute position of the closest item for a coordinate.\n\t * @todo Setting `freeDrag` makes `closest` not reusable. See #165.\n\t * @protected\n\t * @param {Number} coordinate - The coordinate in pixel.\n\t * @param {String} direction - The direction to check for the closest item. Ether `left` or `right`.\n\t * @return {Number} - The absolute position of the closest item.\n\t */\n\tOwl.prototype.closest = function(coordinate, direction) {\n\t\tvar position = -1,\n\t\t\tpull = 30,\n\t\t\twidth = this.width(),\n\t\t\tcoordinates = this.coordinates();\n\n\t\tif (!this.settings.freeDrag) {\n\t\t\t// check closest item\n\t\t\t$.each(coordinates, $.proxy(function(index, value) {\n\t\t\t\t// on a left pull, check on current index\n\t\t\t\tif (direction === 'left' && coordinate > value - pull && coordinate < value + pull) {\n\t\t\t\t\tposition = index;\n\t\t\t\t// on a right pull, check on previous index\n\t\t\t\t// to do so, subtract width from value and set position = index + 1\n\t\t\t\t} else if (direction === 'right' && coordinate > value - width - pull && coordinate < value - width + pull) {\n\t\t\t\t\tposition = index + 1;\n\t\t\t\t} else if (this.op(coordinate, '<', value)\n\t\t\t\t\t&& this.op(coordinate, '>', coordinates[index + 1] || value - width)) {\n\t\t\t\t\tposition = direction === 'left' ? index + 1 : index;\n\t\t\t\t}\n\t\t\t\treturn position === -1;\n\t\t\t}, this));\n\t\t}\n\n\t\tif (!this.settings.loop) {\n\t\t\t// non loop boundries\n\t\t\tif (this.op(coordinate, '>', coordinates[this.minimum()])) {\n\t\t\t\tposition = coordinate = this.minimum();\n\t\t\t} else if (this.op(coordinate, '<', coordinates[this.maximum()])) {\n\t\t\t\tposition = coordinate = this.maximum();\n\t\t\t}\n\t\t}\n\n\t\treturn position;\n\t};\n\n\t/**\n\t * Animates the stage.\n\t * @todo #270\n\t * @public\n\t * @param {Number} coordinate - The coordinate in pixels.\n\t */\n\tOwl.prototype.animate = function(coordinate) {\n\t\tvar animate = this.speed() > 0;\n\n\t\tthis.is('animating') && this.onTransitionEnd();\n\n\t\tif (animate) {\n\t\t\tthis.enter('animating');\n\t\t\tthis.trigger('translate');\n\t\t}\n\n\t\tif ($.support.transform3d && $.support.transition) {\n\t\t\tthis.$stage.css({\n\t\t\t\ttransform: 'translate3d(' + coordinate + 'px,0px,0px)',\n\t\t\t\ttransition: (this.speed() / 1000) + 's'\n\t\t\t});\n\t\t} else if (animate) {\n\t\t\tthis.$stage.animate({\n\t\t\t\tleft: coordinate + 'px'\n\t\t\t}, this.speed(), this.settings.fallbackEasing, $.proxy(this.onTransitionEnd, this));\n\t\t} else {\n\t\t\tthis.$stage.css({\n\t\t\t\tleft: coordinate + 'px'\n\t\t\t});\n\t\t}\n\t};\n\n\t/**\n\t * Checks whether the carousel is in a specific state or not.\n\t * @param {String} state - The state to check.\n\t * @returns {Boolean} - The flag which indicates if the carousel is busy.\n\t */\n\tOwl.prototype.is = function(state) {\n\t\treturn this._states.current[state] && this._states.current[state] > 0;\n\t};\n\n\t/**\n\t * Sets the absolute position of the current item.\n\t * @public\n\t * @param {Number} [position] - The new absolute position or nothing to leave it unchanged.\n\t * @returns {Number} - The absolute position of the current item.\n\t */\n\tOwl.prototype.current = function(position) {\n\t\tif (position === undefined) {\n\t\t\treturn this._current;\n\t\t}\n\n\t\tif (this._items.length === 0) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tposition = this.normalize(position);\n\n\t\tif (this._current !== position) {\n\t\t\tvar event = this.trigger('change', { property: { name: 'position', value: position } });\n\n\t\t\tif (event.data !== undefined) {\n\t\t\t\tposition = this.normalize(event.data);\n\t\t\t}\n\n\t\t\tthis._current = position;\n\n\t\t\tthis.invalidate('position');\n\n\t\t\tthis.trigger('changed', { property: { name: 'position', value: this._current } });\n\t\t}\n\n\t\treturn this._current;\n\t};\n\n\t/**\n\t * Invalidates the given part of the update routine.\n\t * @param {String} [part] - The part to invalidate.\n\t * @returns {Array.} - The invalidated parts.\n\t */\n\tOwl.prototype.invalidate = function(part) {\n\t\tif ($.type(part) === 'string') {\n\t\t\tthis._invalidated[part] = true;\n\t\t\tthis.is('valid') && this.leave('valid');\n\t\t}\n\t\treturn $.map(this._invalidated, function(v, i) { return i });\n\t};\n\n\t/**\n\t * Resets the absolute position of the current item.\n\t * @public\n\t * @param {Number} position - The absolute position of the new item.\n\t */\n\tOwl.prototype.reset = function(position) {\n\t\tposition = this.normalize(position);\n\n\t\tif (position === undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._speed = 0;\n\t\tthis._current = position;\n\n\t\tthis.suppress([ 'translate', 'translated' ]);\n\n\t\tthis.animate(this.coordinates(position));\n\n\t\tthis.release([ 'translate', 'translated' ]);\n\t};\n\n\t/**\n\t * Normalizes an absolute or a relative position of an item.\n\t * @public\n\t * @param {Number} position - The absolute or relative position to normalize.\n\t * @param {Boolean} [relative=false] - Whether the given position is relative or not.\n\t * @returns {Number} - The normalized position.\n\t */\n\tOwl.prototype.normalize = function(position, relative) {\n\t\tvar n = this._items.length,\n\t\t\tm = relative ? 0 : this._clones.length;\n\n\t\tif (!this.isNumeric(position) || n < 1) {\n\t\t\tposition = undefined;\n\t\t} else if (position < 0 || position >= n + m) {\n\t\t\tposition = ((position - m / 2) % n + n) % n + m / 2;\n\t\t}\n\n\t\treturn position;\n\t};\n\n\t/**\n\t * Converts an absolute position of an item into a relative one.\n\t * @public\n\t * @param {Number} position - The absolute position to convert.\n\t * @returns {Number} - The converted position.\n\t */\n\tOwl.prototype.relative = function(position) {\n\t\tposition -= this._clones.length / 2;\n\t\treturn this.normalize(position, true);\n\t};\n\n\t/**\n\t * Gets the maximum position for the current item.\n\t * @public\n\t * @param {Boolean} [relative=false] - Whether to return an absolute position or a relative position.\n\t * @returns {Number}\n\t */\n\tOwl.prototype.maximum = function(relative) {\n\t\tvar settings = this.settings,\n\t\t\tmaximum = this._coordinates.length,\n\t\t\tboundary = Math.abs(this._coordinates[maximum - 1]) - this._width,\n\t\t\ti = -1, j;\n\n\t\tif (settings.loop) {\n\t\t\tmaximum = this._clones.length / 2 + this._items.length - 1;\n\t\t} else if (settings.autoWidth || settings.merge) {\n\t\t\t// binary search\n\t\t\twhile (maximum - i > 1) {\n\t\t\t\tMath.abs(this._coordinates[j = maximum + i >> 1]) < boundary\n\t\t\t\t\t? i = j : maximum = j;\n\t\t\t}\n\t\t} else if (settings.center) {\n\t\t\tmaximum = this._items.length - 1;\n\t\t} else {\n\t\t\tmaximum = this._items.length - settings.items;\n\t\t}\n\n\t\tif (relative) {\n\t\t\tmaximum -= this._clones.length / 2;\n\t\t}\n\n\t\treturn Math.max(maximum, 0);\n\t};\n\n\t/**\n\t * Gets the minimum position for the current item.\n\t * @public\n\t * @param {Boolean} [relative=false] - Whether to return an absolute position or a relative position.\n\t * @returns {Number}\n\t */\n\tOwl.prototype.minimum = function(relative) {\n\t\treturn relative ? 0 : this._clones.length / 2;\n\t};\n\n\t/**\n\t * Gets an item at the specified relative position.\n\t * @public\n\t * @param {Number} [position] - The relative position of the item.\n\t * @return {jQuery|Array.} - The item at the given position or all items if no position was given.\n\t */\n\tOwl.prototype.items = function(position) {\n\t\tif (position === undefined) {\n\t\t\treturn this._items.slice();\n\t\t}\n\n\t\tposition = this.normalize(position, true);\n\t\treturn this._items[position];\n\t};\n\n\t/**\n\t * Gets an item at the specified relative position.\n\t * @public\n\t * @param {Number} [position] - The relative position of the item.\n\t * @return {jQuery|Array.} - The item at the given position or all items if no position was given.\n\t */\n\tOwl.prototype.mergers = function(position) {\n\t\tif (position === undefined) {\n\t\t\treturn this._mergers.slice();\n\t\t}\n\n\t\tposition = this.normalize(position, true);\n\t\treturn this._mergers[position];\n\t};\n\n\t/**\n\t * Gets the absolute positions of clones for an item.\n\t * @public\n\t * @param {Number} [position] - The relative position of the item.\n\t * @returns {Array.} - The absolute positions of clones for the item or all if no position was given.\n\t */\n\tOwl.prototype.clones = function(position) {\n\t\tvar odd = this._clones.length / 2,\n\t\t\teven = odd + this._items.length,\n\t\t\tmap = function(index) { return index % 2 === 0 ? even + index / 2 : odd - (index + 1) / 2 };\n\n\t\tif (position === undefined) {\n\t\t\treturn $.map(this._clones, function(v, i) { return map(i) });\n\t\t}\n\n\t\treturn $.map(this._clones, function(v, i) { return v === position ? map(i) : null });\n\t};\n\n\t/**\n\t * Sets the current animation speed.\n\t * @public\n\t * @param {Number} [speed] - The animation speed in milliseconds or nothing to leave it unchanged.\n\t * @returns {Number} - The current animation speed in milliseconds.\n\t */\n\tOwl.prototype.speed = function(speed) {\n\t\tif (speed !== undefined) {\n\t\t\tthis._speed = speed;\n\t\t}\n\n\t\treturn this._speed;\n\t};\n\n\t/**\n\t * Gets the coordinate of an item.\n\t * @todo The name of this method is missleanding.\n\t * @public\n\t * @param {Number} position - The absolute position of the item within `minimum()` and `maximum()`.\n\t * @returns {Number|Array.} - The coordinate of the item in pixel or all coordinates.\n\t */\n\tOwl.prototype.coordinates = function(position) {\n\t\tvar multiplier = 1,\n\t\t\tnewPosition = position - 1,\n\t\t\tcoordinate;\n\n\t\tif (position === undefined) {\n\t\t\treturn $.map(this._coordinates, $.proxy(function(coordinate, index) {\n\t\t\t\treturn this.coordinates(index);\n\t\t\t}, this));\n\t\t}\n\n\t\tif (this.settings.center) {\n\t\t\tif (this.settings.rtl) {\n\t\t\t\tmultiplier = -1;\n\t\t\t\tnewPosition = position + 1;\n\t\t\t}\n\n\t\t\tcoordinate = this._coordinates[position];\n\t\t\tcoordinate += (this.width() - coordinate + (this._coordinates[newPosition] || 0)) / 2 * multiplier;\n\t\t} else {\n\t\t\tcoordinate = this._coordinates[newPosition] || 0;\n\t\t}\n\n\t\tcoordinate = Math.ceil(coordinate);\n\n\t\treturn coordinate;\n\t};\n\n\t/**\n\t * Calculates the speed for a translation.\n\t * @protected\n\t * @param {Number} from - The absolute position of the start item.\n\t * @param {Number} to - The absolute position of the target item.\n\t * @param {Number} [factor=undefined] - The time factor in milliseconds.\n\t * @returns {Number} - The time in milliseconds for the translation.\n\t */\n\tOwl.prototype.duration = function(from, to, factor) {\n\t\tif (factor === 0) {\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn Math.min(Math.max(Math.abs(to - from), 1), 6) * Math.abs((factor || this.settings.smartSpeed));\n\t};\n\n\t/**\n\t * Slides to the specified item.\n\t * @public\n\t * @param {Number} position - The position of the item.\n\t * @param {Number} [speed] - The time in milliseconds for the transition.\n\t */\n\tOwl.prototype.to = function(position, speed) {\n\t\tvar current = this.current(),\n\t\t\trevert = null,\n\t\t\tdistance = position - this.relative(current),\n\t\t\tdirection = (distance > 0) - (distance < 0),\n\t\t\titems = this._items.length,\n\t\t\tminimum = this.minimum(),\n\t\t\tmaximum = this.maximum();\n\n\t\tif (this.settings.loop) {\n\t\t\tif (!this.settings.rewind && Math.abs(distance) > items / 2) {\n\t\t\t\tdistance += direction * -1 * items;\n\t\t\t}\n\n\t\t\tposition = current + distance;\n\t\t\trevert = ((position - minimum) % items + items) % items + minimum;\n\n\t\t\tif (revert !== position && revert - distance <= maximum && revert - distance > 0) {\n\t\t\t\tcurrent = revert - distance;\n\t\t\t\tposition = revert;\n\t\t\t\tthis.reset(current);\n\t\t\t}\n\t\t} else if (this.settings.rewind) {\n\t\t\tmaximum += 1;\n\t\t\tposition = (position % maximum + maximum) % maximum;\n\t\t} else {\n\t\t\tposition = Math.max(minimum, Math.min(maximum, position));\n\t\t}\n\n\t\tthis.speed(this.duration(current, position, speed));\n\t\tthis.current(position);\n\n\t\tif (this.$element.is(':visible')) {\n\t\t\tthis.update();\n\t\t}\n\t};\n\n\t/**\n\t * Slides to the next item.\n\t * @public\n\t * @param {Number} [speed] - The time in milliseconds for the transition.\n\t */\n\tOwl.prototype.next = function(speed) {\n\t\tspeed = speed || false;\n\t\tthis.to(this.relative(this.current()) + 1, speed);\n\t};\n\n\t/**\n\t * Slides to the previous item.\n\t * @public\n\t * @param {Number} [speed] - The time in milliseconds for the transition.\n\t */\n\tOwl.prototype.prev = function(speed) {\n\t\tspeed = speed || false;\n\t\tthis.to(this.relative(this.current()) - 1, speed);\n\t};\n\n\t/**\n\t * Handles the end of an animation.\n\t * @protected\n\t * @param {Event} event - The event arguments.\n\t */\n\tOwl.prototype.onTransitionEnd = function(event) {\n\n\t\t// if css2 animation then event object is undefined\n\t\tif (event !== undefined) {\n\t\t\tevent.stopPropagation();\n\n\t\t\t// Catch only owl-stage transitionEnd event\n\t\t\tif ((event.target || event.srcElement || event.originalTarget) !== this.$stage.get(0)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tthis.leave('animating');\n\t\tthis.trigger('translated');\n\t};\n\n\t/**\n\t * Gets viewport width.\n\t * @protected\n\t * @return {Number} - The width in pixel.\n\t */\n\tOwl.prototype.viewport = function() {\n\t\tvar width;\n\t\tif (this.options.responsiveBaseElement !== window) {\n\t\t\twidth = $(this.options.responsiveBaseElement).width();\n\t\t} else if (window.innerWidth) {\n\t\t\twidth = window.innerWidth;\n\t\t} else if (document.documentElement && document.documentElement.clientWidth) {\n\t\t\twidth = document.documentElement.clientWidth;\n\t\t} else {\n\t\t\tthrow 'Can not detect viewport width.';\n\t\t}\n\t\treturn width;\n\t};\n\n\t/**\n\t * Replaces the current content.\n\t * @public\n\t * @param {HTMLElement|jQuery|String} content - The new content.\n\t */\n\tOwl.prototype.replace = function(content) {\n\t\tthis.$stage.empty();\n\t\tthis._items = [];\n\n\t\tif (content) {\n\t\t\tcontent = (content instanceof jQuery) ? content : $(content);\n\t\t}\n\n\t\tif (this.settings.nestedItemSelector) {\n\t\t\tcontent = content.find('.' + this.settings.nestedItemSelector);\n\t\t}\n\n\t\tcontent.filter(function() {\n\t\t\treturn this.nodeType === 1;\n\t\t}).each($.proxy(function(index, item) {\n\t\t\titem = this.prepare(item);\n\t\t\tthis.$stage.append(item);\n\t\t\tthis._items.push(item);\n\t\t\tthis._mergers.push(item.find('[data-merge]').andSelf('[data-merge]').attr('data-merge') * 1 || 1);\n\t\t}, this));\n\n\t\tthis.reset(this.isNumeric(this.settings.startPosition) ? this.settings.startPosition : 0);\n\n\t\tthis.invalidate('items');\n\t};\n\n\t/**\n\t * Adds an item.\n\t * @todo Use `item` instead of `content` for the event arguments.\n\t * @public\n\t * @param {HTMLElement|jQuery|String} content - The item content to add.\n\t * @param {Number} [position] - The relative position at which to insert the item otherwise the item will be added to the end.\n\t */\n\tOwl.prototype.add = function(content, position) {\n\t\tvar current = this.relative(this._current);\n\n\t\tposition = position === undefined ? this._items.length : this.normalize(position, true);\n\t\tcontent = content instanceof jQuery ? content : $(content);\n\n\t\tthis.trigger('add', { content: content, position: position });\n\n\t\tcontent = this.prepare(content);\n\n\t\tif (this._items.length === 0 || position === this._items.length) {\n\t\t\tthis._items.length === 0 && this.$stage.append(content);\n\t\t\tthis._items.length !== 0 && this._items[position - 1].after(content);\n\t\t\tthis._items.push(content);\n\t\t\tthis._mergers.push(content.find('[data-merge]').andSelf('[data-merge]').attr('data-merge') * 1 || 1);\n\t\t} else {\n\t\t\tthis._items[position].before(content);\n\t\t\tthis._items.splice(position, 0, content);\n\t\t\tthis._mergers.splice(position, 0, content.find('[data-merge]').andSelf('[data-merge]').attr('data-merge') * 1 || 1);\n\t\t}\n\n\t\tthis._items[current] && this.reset(this._items[current].index());\n\n\t\tthis.invalidate('items');\n\n\t\tthis.trigger('added', { content: content, position: position });\n\t};\n\n\t/**\n\t * Removes an item by its position.\n\t * @todo Use `item` instead of `content` for the event arguments.\n\t * @public\n\t * @param {Number} position - The relative position of the item to remove.\n\t */\n\tOwl.prototype.remove = function(position) {\n\t\tposition = this.normalize(position, true);\n\n\t\tif (position === undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.trigger('remove', { content: this._items[position], position: position });\n\n\t\tthis._items[position].remove();\n\t\tthis._items.splice(position, 1);\n\t\tthis._mergers.splice(position, 1);\n\n\t\tthis.invalidate('items');\n\n\t\tthis.trigger('removed', { content: null, position: position });\n\t};\n\n\t/**\n\t * Preloads images with auto width.\n\t * @todo Replace by a more generic approach\n\t * @protected\n\t */\n\tOwl.prototype.preloadAutoWidthImages = function(images) {\n\t\timages.each($.proxy(function(i, element) {\n\t\t\tthis.enter('pre-loading');\n\t\t\telement = $(element);\n\t\t\t$(new Image()).one('load', $.proxy(function(e) {\n\t\t\t\telement.attr('src', e.target.src);\n\t\t\t\telement.css('opacity', 1);\n\t\t\t\tthis.leave('pre-loading');\n\t\t\t\t!this.is('pre-loading') && !this.is('initializing') && this.refresh();\n\t\t\t}, this)).attr('src', element.attr('src') || element.attr('data-src') || element.attr('data-src-retina'));\n\t\t}, this));\n\t};\n\n\t/**\n\t * Destroys the carousel.\n\t * @public\n\t */\n\tOwl.prototype.destroy = function() {\n\n\t\tthis.$element.off('.owl.core');\n\t\tthis.$stage.off('.owl.core');\n\t\t$(document).off('.owl.core');\n\n\t\tif (this.settings.responsive !== false) {\n\t\t\twindow.clearTimeout(this.resizeTimer);\n\t\t\tthis.off(window, 'resize', this._handlers.onThrottledResize);\n\t\t}\n\n\t\tfor (var i in this._plugins) {\n\t\t\tthis._plugins[i].destroy();\n\t\t}\n\n\t\tthis.$stage.children('.cloned').remove();\n\n\t\tthis.$stage.unwrap();\n\t\tthis.$stage.children().contents().unwrap();\n\t\tthis.$stage.children().unwrap();\n\n\t\tthis.$element\n\t\t\t.removeClass(this.options.refreshClass)\n\t\t\t.removeClass(this.options.loadingClass)\n\t\t\t.removeClass(this.options.loadedClass)\n\t\t\t.removeClass(this.options.rtlClass)\n\t\t\t.removeClass(this.options.dragClass)\n\t\t\t.removeClass(this.options.grabClass)\n\t\t\t.attr('class', this.$element.attr('class').replace(new RegExp(this.options.responsiveClass + '-\\\\S+\\\\s', 'g'), ''))\n\t\t\t.removeData('owl.carousel');\n\t};\n\n\t/**\n\t * Operators to calculate right-to-left and left-to-right.\n\t * @protected\n\t * @param {Number} [a] - The left side operand.\n\t * @param {String} [o] - The operator.\n\t * @param {Number} [b] - The right side operand.\n\t */\n\tOwl.prototype.op = function(a, o, b) {\n\t\tvar rtl = this.settings.rtl;\n\t\tswitch (o) {\n\t\t\tcase '<':\n\t\t\t\treturn rtl ? a > b : a < b;\n\t\t\tcase '>':\n\t\t\t\treturn rtl ? a < b : a > b;\n\t\t\tcase '>=':\n\t\t\t\treturn rtl ? a <= b : a >= b;\n\t\t\tcase '<=':\n\t\t\t\treturn rtl ? a >= b : a <= b;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\t/**\n\t * Attaches to an internal event.\n\t * @protected\n\t * @param {HTMLElement} element - The event source.\n\t * @param {String} event - The event name.\n\t * @param {Function} listener - The event handler to attach.\n\t * @param {Boolean} capture - Wether the event should be handled at the capturing phase or not.\n\t */\n\tOwl.prototype.on = function(element, event, listener, capture) {\n\t\tif (element.addEventListener) {\n\t\t\telement.addEventListener(event, listener, capture);\n\t\t} else if (element.attachEvent) {\n\t\t\telement.attachEvent('on' + event, listener);\n\t\t}\n\t};\n\n\t/**\n\t * Detaches from an internal event.\n\t * @protected\n\t * @param {HTMLElement} element - The event source.\n\t * @param {String} event - The event name.\n\t * @param {Function} listener - The attached event handler to detach.\n\t * @param {Boolean} capture - Wether the attached event handler was registered as a capturing listener or not.\n\t */\n\tOwl.prototype.off = function(element, event, listener, capture) {\n\t\tif (element.removeEventListener) {\n\t\t\telement.removeEventListener(event, listener, capture);\n\t\t} else if (element.detachEvent) {\n\t\t\telement.detachEvent('on' + event, listener);\n\t\t}\n\t};\n\n\t/**\n\t * Triggers a public event.\n\t * @todo Remove `status`, `relatedTarget` should be used instead.\n\t * @protected\n\t * @param {String} name - The event name.\n\t * @param {*} [data=null] - The event data.\n\t * @param {String} [namespace=carousel] - The event namespace.\n\t * @param {String} [state] - The state which is associated with the event.\n\t * @param {Boolean} [enter=false] - Indicates if the call enters the specified state or not.\n\t * @returns {Event} - The event arguments.\n\t */\n\tOwl.prototype.trigger = function(name, data, namespace, state, enter) {\n\t\tvar status = {\n\t\t\titem: { count: this._items.length, index: this.current() }\n\t\t}, handler = $.camelCase(\n\t\t\t$.grep([ 'on', name, namespace ], function(v) { return v })\n\t\t\t\t.join('-').toLowerCase()\n\t\t), event = $.Event(\n\t\t\t[ name, 'owl', namespace || 'carousel' ].join('.').toLowerCase(),\n\t\t\t$.extend({ relatedTarget: this }, status, data)\n\t\t);\n\n\t\tif (!this._supress[name]) {\n\t\t\t$.each(this._plugins, function(name, plugin) {\n\t\t\t\tif (plugin.onTrigger) {\n\t\t\t\t\tplugin.onTrigger(event);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.register({ type: Owl.Type.Event, name: name });\n\t\t\tthis.$element.trigger(event);\n\n\t\t\tif (this.settings && typeof this.settings[handler] === 'function') {\n\t\t\t\tthis.settings[handler].call(this, event);\n\t\t\t}\n\t\t}\n\n\t\treturn event;\n\t};\n\n\t/**\n\t * Enters a state.\n\t * @param name - The state name.\n\t */\n\tOwl.prototype.enter = function(name) {\n\t\t$.each([ name ].concat(this._states.tags[name] || []), $.proxy(function(i, name) {\n\t\t\tif (this._states.current[name] === undefined) {\n\t\t\t\tthis._states.current[name] = 0;\n\t\t\t}\n\n\t\t\tthis._states.current[name]++;\n\t\t}, this));\n\t};\n\n\t/**\n\t * Leaves a state.\n\t * @param name - The state name.\n\t */\n\tOwl.prototype.leave = function(name) {\n\t\t$.each([ name ].concat(this._states.tags[name] || []), $.proxy(function(i, name) {\n\t\t\tthis._states.current[name]--;\n\t\t}, this));\n\t};\n\n\t/**\n\t * Registers an event or state.\n\t * @public\n\t * @param {Object} object - The event or state to register.\n\t */\n\tOwl.prototype.register = function(object) {\n\t\tif (object.type === Owl.Type.Event) {\n\t\t\tif (!$.event.special[object.name]) {\n\t\t\t\t$.event.special[object.name] = {};\n\t\t\t}\n\n\t\t\tif (!$.event.special[object.name].owl) {\n\t\t\t\tvar _default = $.event.special[object.name]._default;\n\t\t\t\t$.event.special[object.name]._default = function(e) {\n\t\t\t\t\tif (_default && _default.apply && (!e.namespace || e.namespace.indexOf('owl') === -1)) {\n\t\t\t\t\t\treturn _default.apply(this, arguments);\n\t\t\t\t\t}\n\t\t\t\t\treturn e.namespace && e.namespace.indexOf('owl') > -1;\n\t\t\t\t};\n\t\t\t\t$.event.special[object.name].owl = true;\n\t\t\t}\n\t\t} else if (object.type === Owl.Type.State) {\n\t\t\tif (!this._states.tags[object.name]) {\n\t\t\t\tthis._states.tags[object.name] = object.tags;\n\t\t\t} else {\n\t\t\t\tthis._states.tags[object.name] = this._states.tags[object.name].concat(object.tags);\n\t\t\t}\n\n\t\t\tthis._states.tags[object.name] = $.grep(this._states.tags[object.name], $.proxy(function(tag, i) {\n\t\t\t\treturn $.inArray(tag, this._states.tags[object.name]) === i;\n\t\t\t}, this));\n\t\t}\n\t};\n\n\t/**\n\t * Suppresses events.\n\t * @protected\n\t * @param {Array.} events - The events to suppress.\n\t */\n\tOwl.prototype.suppress = function(events) {\n\t\t$.each(events, $.proxy(function(index, event) {\n\t\t\tthis._supress[event] = true;\n\t\t}, this));\n\t};\n\n\t/**\n\t * Releases suppressed events.\n\t * @protected\n\t * @param {Array.} events - The events to release.\n\t */\n\tOwl.prototype.release = function(events) {\n\t\t$.each(events, $.proxy(function(index, event) {\n\t\t\tdelete this._supress[event];\n\t\t}, this));\n\t};\n\n\t/**\n\t * Gets unified pointer coordinates from event.\n\t * @todo #261\n\t * @protected\n\t * @param {Event} - The `mousedown` or `touchstart` event.\n\t * @returns {Object} - Contains `x` and `y` coordinates of current pointer position.\n\t */\n\tOwl.prototype.pointer = function(event) {\n\t\tvar result = { x: null, y: null };\n\n\t\tevent = event.originalEvent || event || window.event;\n\n\t\tevent = event.touches && event.touches.length ?\n\t\t\tevent.touches[0] : event.changedTouches && event.changedTouches.length ?\n\t\t\t\tevent.changedTouches[0] : event;\n\n\t\tif (event.pageX) {\n\t\t\tresult.x = event.pageX;\n\t\t\tresult.y = event.pageY;\n\t\t} else {\n\t\t\tresult.x = event.clientX;\n\t\t\tresult.y = event.clientY;\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t/**\n\t * Determines if the input is a Number or something that can be coerced to a Number\n\t * @protected\n\t * @param {Number|String|Object|Array|Boolean|RegExp|Function|Symbol} - The input to be tested\n\t * @returns {Boolean} - An indication if the input is a Number or can be coerced to a Number\n\t */\n\tOwl.prototype.isNumeric = function(number) {\n\t\treturn !isNaN(parseFloat(number));\n\t};\n\n\t/**\n\t * Gets the difference of two vectors.\n\t * @todo #261\n\t * @protected\n\t * @param {Object} - The first vector.\n\t * @param {Object} - The second vector.\n\t * @returns {Object} - The difference.\n\t */\n\tOwl.prototype.difference = function(first, second) {\n\t\treturn {\n\t\t\tx: first.x - second.x,\n\t\t\ty: first.y - second.y\n\t\t};\n\t};\n\n\t/**\n\t * The jQuery Plugin for the Owl Carousel\n\t * @todo Navigation plugin `next` and `prev`\n\t * @public\n\t */\n\t$.fn.owlCarousel = function(option) {\n\t\tvar args = Array.prototype.slice.call(arguments, 1);\n\n\t\treturn this.each(function() {\n\t\t\tvar $this = $(this),\n\t\t\t\tdata = $this.data('owl.carousel');\n\n\t\t\tif (!data) {\n\t\t\t\tdata = new Owl(this, typeof option == 'object' && option);\n\t\t\t\t$this.data('owl.carousel', data);\n\n\t\t\t\t$.each([\n\t\t\t\t\t'next', 'prev', 'to', 'destroy', 'refresh', 'replace', 'add', 'remove'\n\t\t\t\t], function(i, event) {\n\t\t\t\t\tdata.register({ type: Owl.Type.Event, name: event });\n\t\t\t\t\tdata.$element.on(event + '.owl.carousel.core', $.proxy(function(e) {\n\t\t\t\t\t\tif (e.namespace && e.relatedTarget !== this) {\n\t\t\t\t\t\t\tthis.suppress([ event ]);\n\t\t\t\t\t\t\tdata[event].apply(this, [].slice.call(arguments, 1));\n\t\t\t\t\t\t\tthis.release([ event ]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, data));\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (typeof option == 'string' && option.charAt(0) !== '_') {\n\t\t\t\tdata[option].apply(data, args);\n\t\t\t}\n\t\t});\n\t};\n\n\t/**\n\t * The constructor for the jQuery Plugin\n\t * @public\n\t */\n\t$.fn.owlCarousel.Constructor = Owl;\n\n})(window.Zepto || window.jQuery, window, document);\n\n/**\n * AutoRefresh Plugin\n * @version 2.1.0\n * @author Artus Kolanowski\n * @author David Deutsch\n * @license The MIT License (MIT)\n */\n;(function($, window, document, undefined) {\n\n\t/**\n\t * Creates the auto refresh plugin.\n\t * @class The Auto Refresh Plugin\n\t * @param {Owl} carousel - The Owl Carousel\n\t */\n\tvar AutoRefresh = function(carousel) {\n\t\t/**\n\t\t * Reference to the core.\n\t\t * @protected\n\t\t * @type {Owl}\n\t\t */\n\t\tthis._core = carousel;\n\n\t\t/**\n\t\t * Refresh interval.\n\t\t * @protected\n\t\t * @type {number}\n\t\t */\n\t\tthis._interval = null;\n\n\t\t/**\n\t\t * Whether the element is currently visible or not.\n\t\t * @protected\n\t\t * @type {Boolean}\n\t\t */\n\t\tthis._visible = null;\n\n\t\t/**\n\t\t * All event handlers.\n\t\t * @protected\n\t\t * @type {Object}\n\t\t */\n\t\tthis._handlers = {\n\t\t\t'initialized.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && this._core.settings.autoRefresh) {\n\t\t\t\t\tthis.watch();\n\t\t\t\t}\n\t\t\t}, this)\n\t\t};\n\n\t\t// set default options\n\t\tthis._core.options = $.extend({}, AutoRefresh.Defaults, this._core.options);\n\n\t\t// register event handlers\n\t\tthis._core.$element.on(this._handlers);\n\t};\n\n\t/**\n\t * Default options.\n\t * @public\n\t */\n\tAutoRefresh.Defaults = {\n\t\tautoRefresh: true,\n\t\tautoRefreshInterval: 500\n\t};\n\n\t/**\n\t * Watches the element.\n\t */\n\tAutoRefresh.prototype.watch = function() {\n\t\tif (this._interval) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._visible = this._core.$element.is(':visible');\n\t\tthis._interval = window.setInterval($.proxy(this.refresh, this), this._core.settings.autoRefreshInterval);\n\t};\n\n\t/**\n\t * Refreshes the element.\n\t */\n\tAutoRefresh.prototype.refresh = function() {\n\t\tif (this._core.$element.is(':visible') === this._visible) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._visible = !this._visible;\n\n\t\tthis._core.$element.toggleClass('owl-hidden', !this._visible);\n\n\t\tthis._visible && (this._core.invalidate('width') && this._core.refresh());\n\t};\n\n\t/**\n\t * Destroys the plugin.\n\t */\n\tAutoRefresh.prototype.destroy = function() {\n\t\tvar handler, property;\n\n\t\twindow.clearInterval(this._interval);\n\n\t\tfor (handler in this._handlers) {\n\t\t\tthis._core.$element.off(handler, this._handlers[handler]);\n\t\t}\n\t\tfor (property in Object.getOwnPropertyNames(this)) {\n\t\t\ttypeof this[property] != 'function' && (this[property] = null);\n\t\t}\n\t};\n\n\t$.fn.owlCarousel.Constructor.Plugins.AutoRefresh = AutoRefresh;\n\n})(window.Zepto || window.jQuery, window, document);\n\n/**\n * Lazy Plugin\n * @version 2.1.0\n * @author Bartosz Wojciechowski\n * @author David Deutsch\n * @license The MIT License (MIT)\n */\n;(function($, window, document, undefined) {\n\n\t/**\n\t * Creates the lazy plugin.\n\t * @class The Lazy Plugin\n\t * @param {Owl} carousel - The Owl Carousel\n\t */\n\tvar Lazy = function(carousel) {\n\n\t\t/**\n\t\t * Reference to the core.\n\t\t * @protected\n\t\t * @type {Owl}\n\t\t */\n\t\tthis._core = carousel;\n\n\t\t/**\n\t\t * Already loaded items.\n\t\t * @protected\n\t\t * @type {Array.}\n\t\t */\n\t\tthis._loaded = [];\n\n\t\t/**\n\t\t * Event handlers.\n\t\t * @protected\n\t\t * @type {Object}\n\t\t */\n\t\tthis._handlers = {\n\t\t\t'initialized.owl.carousel change.owl.carousel resized.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (!e.namespace) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!this._core.settings || !this._core.settings.lazyLoad) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ((e.property && e.property.name == 'position') || e.type == 'initialized') {\n\t\t\t\t\tvar settings = this._core.settings,\n\t\t\t\t\t\tn = (settings.center && Math.ceil(settings.items / 2) || settings.items),\n\t\t\t\t\t\ti = ((settings.center && n * -1) || 0),\n\t\t\t\t\t\tposition = (e.property && e.property.value !== undefined ? e.property.value : this._core.current()) + i,\n\t\t\t\t\t\tclones = this._core.clones().length,\n\t\t\t\t\t\tload = $.proxy(function(i, v) { this.load(v) }, this);\n\n\t\t\t\t\twhile (i++ < n) {\n\t\t\t\t\t\tthis.load(clones / 2 + this._core.relative(position));\n\t\t\t\t\t\tclones && $.each(this._core.clones(this._core.relative(position)), load);\n\t\t\t\t\t\tposition++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, this)\n\t\t};\n\n\t\t// set the default options\n\t\tthis._core.options = $.extend({}, Lazy.Defaults, this._core.options);\n\n\t\t// register event handler\n\t\tthis._core.$element.on(this._handlers);\n\t};\n\n\t/**\n\t * Default options.\n\t * @public\n\t */\n\tLazy.Defaults = {\n\t\tlazyLoad: false\n\t};\n\n\t/**\n\t * Loads all resources of an item at the specified position.\n\t * @param {Number} position - The absolute position of the item.\n\t * @protected\n\t */\n\tLazy.prototype.load = function(position) {\n\t\tvar $item = this._core.$stage.children().eq(position),\n\t\t\t$elements = $item && $item.find('.owl-lazy');\n\n\t\tif (!$elements || $.inArray($item.get(0), this._loaded) > -1) {\n\t\t\treturn;\n\t\t}\n\n\t\t$elements.each($.proxy(function(index, element) {\n\t\t\tvar $element = $(element), image,\n\t\t\t\turl = (window.devicePixelRatio > 1 && $element.attr('data-src-retina')) || $element.attr('data-src');\n\n\t\t\tthis._core.trigger('load', { element: $element, url: url }, 'lazy');\n\n\t\t\tif ($element.is('img')) {\n\t\t\t\t$element.one('load.owl.lazy', $.proxy(function() {\n\t\t\t\t\t$element.css('opacity', 1);\n\t\t\t\t\tthis._core.trigger('loaded', { element: $element, url: url }, 'lazy');\n\t\t\t\t}, this)).attr('src', url);\n\t\t\t} else {\n\t\t\t\timage = new Image();\n\t\t\t\timage.onload = $.proxy(function() {\n\t\t\t\t\t$element.css({\n\t\t\t\t\t\t'background-image': 'url(' + url + ')',\n\t\t\t\t\t\t'opacity': '1'\n\t\t\t\t\t});\n\t\t\t\t\tthis._core.trigger('loaded', { element: $element, url: url }, 'lazy');\n\t\t\t\t}, this);\n\t\t\t\timage.src = url;\n\t\t\t}\n\t\t}, this));\n\n\t\tthis._loaded.push($item.get(0));\n\t};\n\n\t/**\n\t * Destroys the plugin.\n\t * @public\n\t */\n\tLazy.prototype.destroy = function() {\n\t\tvar handler, property;\n\n\t\tfor (handler in this.handlers) {\n\t\t\tthis._core.$element.off(handler, this.handlers[handler]);\n\t\t}\n\t\tfor (property in Object.getOwnPropertyNames(this)) {\n\t\t\ttypeof this[property] != 'function' && (this[property] = null);\n\t\t}\n\t};\n\n\t$.fn.owlCarousel.Constructor.Plugins.Lazy = Lazy;\n\n})(window.Zepto || window.jQuery, window, document);\n\n/**\n * AutoHeight Plugin\n * @version 2.1.0\n * @author Bartosz Wojciechowski\n * @author David Deutsch\n * @license The MIT License (MIT)\n */\n;(function($, window, document, undefined) {\n\n\t/**\n\t * Creates the auto height plugin.\n\t * @class The Auto Height Plugin\n\t * @param {Owl} carousel - The Owl Carousel\n\t */\n\tvar AutoHeight = function(carousel) {\n\t\t/**\n\t\t * Reference to the core.\n\t\t * @protected\n\t\t * @type {Owl}\n\t\t */\n\t\tthis._core = carousel;\n\n\t\t/**\n\t\t * All event handlers.\n\t\t * @protected\n\t\t * @type {Object}\n\t\t */\n\t\tthis._handlers = {\n\t\t\t'initialized.owl.carousel refreshed.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && this._core.settings.autoHeight) {\n\t\t\t\t\tthis.update();\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'changed.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && this._core.settings.autoHeight && e.property.name == 'position'){\n\t\t\t\t\tthis.update();\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'loaded.owl.lazy': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && this._core.settings.autoHeight\n\t\t\t\t\t&& e.element.closest('.' + this._core.settings.itemClass).index() === this._core.current()) {\n\t\t\t\t\tthis.update();\n\t\t\t\t}\n\t\t\t}, this)\n\t\t};\n\n\t\t// set default options\n\t\tthis._core.options = $.extend({}, AutoHeight.Defaults, this._core.options);\n\n\t\t// register event handlers\n\t\tthis._core.$element.on(this._handlers);\n\t};\n\n\t/**\n\t * Default options.\n\t * @public\n\t */\n\tAutoHeight.Defaults = {\n\t\tautoHeight: false,\n\t\tautoHeightClass: 'owl-height'\n\t};\n\n\t/**\n\t * Updates the view.\n\t */\n\tAutoHeight.prototype.update = function() {\n\t\tvar start = this._core._current,\n\t\t\tend = start + this._core.settings.items,\n\t\t\tvisible = this._core.$stage.children().toArray().slice(start, end),\n\t\t\theights = [],\n\t\t\tmaxheight = 0;\n\n\t\t$.each(visible, function(index, item) {\n\t\t\theights.push($(item).height());\n\t\t});\n\n\t\tmaxheight = Math.max.apply(null, heights);\n\n\t\tthis._core.$stage.parent()\n\t\t\t.height(maxheight)\n\t\t\t.addClass(this._core.settings.autoHeightClass);\n\t};\n\n\tAutoHeight.prototype.destroy = function() {\n\t\tvar handler, property;\n\n\t\tfor (handler in this._handlers) {\n\t\t\tthis._core.$element.off(handler, this._handlers[handler]);\n\t\t}\n\t\tfor (property in Object.getOwnPropertyNames(this)) {\n\t\t\ttypeof this[property] != 'function' && (this[property] = null);\n\t\t}\n\t};\n\n\t$.fn.owlCarousel.Constructor.Plugins.AutoHeight = AutoHeight;\n\n})(window.Zepto || window.jQuery, window, document);\n\n/**\n * Video Plugin\n * @version 2.1.0\n * @author Bartosz Wojciechowski\n * @author David Deutsch\n * @license The MIT License (MIT)\n */\n;(function($, window, document, undefined) {\n\n\t/**\n\t * Creates the video plugin.\n\t * @class The Video Plugin\n\t * @param {Owl} carousel - The Owl Carousel\n\t */\n\tvar Video = function(carousel) {\n\t\t/**\n\t\t * Reference to the core.\n\t\t * @protected\n\t\t * @type {Owl}\n\t\t */\n\t\tthis._core = carousel;\n\n\t\t/**\n\t\t * Cache all video URLs.\n\t\t * @protected\n\t\t * @type {Object}\n\t\t */\n\t\tthis._videos = {};\n\n\t\t/**\n\t\t * Current playing item.\n\t\t * @protected\n\t\t * @type {jQuery}\n\t\t */\n\t\tthis._playing = null;\n\n\t\t/**\n\t\t * All event handlers.\n\t\t * @todo The cloned content removale is too late\n\t\t * @protected\n\t\t * @type {Object}\n\t\t */\n\t\tthis._handlers = {\n\t\t\t'initialized.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace) {\n\t\t\t\t\tthis._core.register({ type: 'state', name: 'playing', tags: [ 'interacting' ] });\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'resize.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && this._core.settings.video && this.isInFullScreen()) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'refreshed.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && this._core.is('resizing')) {\n\t\t\t\t\tthis._core.$stage.find('.cloned .owl-video-frame').remove();\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'changed.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && e.property.name === 'position' && this._playing) {\n\t\t\t\t\tthis.stop();\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'prepared.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (!e.namespace) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar $element = $(e.content).find('.owl-video');\n\n\t\t\t\tif ($element.length) {\n\t\t\t\t\t$element.css('display', 'none');\n\t\t\t\t\tthis.fetch($element, $(e.content));\n\t\t\t\t}\n\t\t\t}, this)\n\t\t};\n\n\t\t// set default options\n\t\tthis._core.options = $.extend({}, Video.Defaults, this._core.options);\n\n\t\t// register event handlers\n\t\tthis._core.$element.on(this._handlers);\n\n\t\tthis._core.$element.on('click.owl.video', '.owl-video-play-icon', $.proxy(function(e) {\n\t\t\tthis.play(e);\n\t\t}, this));\n\t};\n\n\t/**\n\t * Default options.\n\t * @public\n\t */\n\tVideo.Defaults = {\n\t\tvideo: false,\n\t\tvideoHeight: false,\n\t\tvideoWidth: false\n\t};\n\n\t/**\n\t * Gets the video ID and the type (YouTube/Vimeo/vzaar only).\n\t * @protected\n\t * @param {jQuery} target - The target containing the video data.\n\t * @param {jQuery} item - The item containing the video.\n\t */\n\tVideo.prototype.fetch = function(target, item) {\n\t\t\tvar type = (function() {\n\t\t\t\t\tif (target.attr('data-vimeo-id')) {\n\t\t\t\t\t\treturn 'vimeo';\n\t\t\t\t\t} else if (target.attr('data-vzaar-id')) {\n\t\t\t\t\t\treturn 'vzaar'\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn 'youtube';\n\t\t\t\t\t}\n\t\t\t\t})(),\n\t\t\t\tid = target.attr('data-vimeo-id') || target.attr('data-youtube-id') || target.attr('data-vzaar-id'),\n\t\t\t\twidth = target.attr('data-width') || this._core.settings.videoWidth,\n\t\t\t\theight = target.attr('data-height') || this._core.settings.videoHeight,\n\t\t\t\turl = target.attr('href');\n\n\t\tif (url) {\n\n\t\t\t/*\n\t\t\t\t\tParses the id's out of the following urls (and probably more):\n\t\t\t\t\thttps://www.youtube.com/watch?v=:id\n\t\t\t\t\thttps://youtu.be/:id\n\t\t\t\t\thttps://vimeo.com/:id\n\t\t\t\t\thttps://vimeo.com/channels/:channel/:id\n\t\t\t\t\thttps://vimeo.com/groups/:group/videos/:id\n\t\t\t\t\thttps://app.vzaar.com/videos/:id\n\n\t\t\t\t\tVisual example: http://regexper.com/#(http%3A%7Chttps%3A%7C)%5C%2F%5C%2F(player.%7Cwww.%7Capp.)%3F(vimeo%5C.com%7Cyoutu(be%5C.com%7C%5C.be%7Cbe%5C.googleapis%5C.com)%7Cvzaar%5C.com)%5C%2F(video%5C%2F%7Cvideos%5C%2F%7Cembed%5C%2F%7Cchannels%5C%2F.%2B%5C%2F%7Cgroups%5C%2F.%2B%5C%2F%7Cwatch%5C%3Fv%3D%7Cv%5C%2F)%3F(%5BA-Za-z0-9._%25-%5D*)(%5C%26%5CS%2B)%3F\n\t\t\t*/\n\n\t\t\tid = url.match(/(http:|https:|)\\/\\/(player.|www.|app.)?(vimeo\\.com|youtu(be\\.com|\\.be|be\\.googleapis\\.com)|vzaar\\.com)\\/(video\\/|videos\\/|embed\\/|channels\\/.+\\/|groups\\/.+\\/|watch\\?v=|v\\/)?([A-Za-z0-9._%-]*)(\\&\\S+)?/);\n\n\t\t\tif (id[3].indexOf('youtu') > -1) {\n\t\t\t\ttype = 'youtube';\n\t\t\t} else if (id[3].indexOf('vimeo') > -1) {\n\t\t\t\ttype = 'vimeo';\n\t\t\t} else if (id[3].indexOf('vzaar') > -1) {\n\t\t\t\ttype = 'vzaar';\n\t\t\t} else {\n\t\t\t\tthrow new Error('Video URL not supported.');\n\t\t\t}\n\t\t\tid = id[6];\n\t\t} else {\n\t\t\tthrow new Error('Missing video URL.');\n\t\t}\n\n\t\tthis._videos[url] = {\n\t\t\ttype: type,\n\t\t\tid: id,\n\t\t\twidth: width,\n\t\t\theight: height\n\t\t};\n\n\t\titem.attr('data-video', url);\n\n\t\tthis.thumbnail(target, this._videos[url]);\n\t};\n\n\t/**\n\t * Creates video thumbnail.\n\t * @protected\n\t * @param {jQuery} target - The target containing the video data.\n\t * @param {Object} info - The video info object.\n\t * @see `fetch`\n\t */\n\tVideo.prototype.thumbnail = function(target, video) {\n\t\tvar tnLink,\n\t\t\ticon,\n\t\t\tpath,\n\t\t\tdimensions = video.width && video.height ? 'style=\"width:' + video.width + 'px;height:' + video.height + 'px;\"' : '',\n\t\t\tcustomTn = target.find('img'),\n\t\t\tsrcType = 'src',\n\t\t\tlazyClass = '',\n\t\t\tsettings = this._core.settings,\n\t\t\tcreate = function(path) {\n\t\t\t\ticon = '
';\n\n\t\t\t\tif (settings.lazyLoad) {\n\t\t\t\t\ttnLink = '
';\n\t\t\t\t} else {\n\t\t\t\t\ttnLink = '
';\n\t\t\t\t}\n\t\t\t\ttarget.after(tnLink);\n\t\t\t\ttarget.after(icon);\n\t\t\t};\n\n\t\t// wrap video content into owl-video-wrapper div\n\t\ttarget.wrap('
');\n\n\t\tif (this._core.settings.lazyLoad) {\n\t\t\tsrcType = 'data-src';\n\t\t\tlazyClass = 'owl-lazy';\n\t\t}\n\n\t\t// custom thumbnail\n\t\tif (customTn.length) {\n\t\t\tcreate(customTn.attr(srcType));\n\t\t\tcustomTn.remove();\n\t\t\treturn false;\n\t\t}\n\n\t\tif (video.type === 'youtube') {\n\t\t\tpath = \"//img.youtube.com/vi/\" + video.id + \"/hqdefault.jpg\";\n\t\t\tcreate(path);\n\t\t} else if (video.type === 'vimeo') {\n\t\t\t$.ajax({\n\t\t\t\ttype: 'GET',\n\t\t\t\turl: '//vimeo.com/api/v2/video/' + video.id + '.json',\n\t\t\t\tjsonp: 'callback',\n\t\t\t\tdataType: 'jsonp',\n\t\t\t\tsuccess: function(data) {\n\t\t\t\t\tpath = data[0].thumbnail_large;\n\t\t\t\t\tcreate(path);\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (video.type === 'vzaar') {\n\t\t\t$.ajax({\n\t\t\t\ttype: 'GET',\n\t\t\t\turl: '//vzaar.com/api/videos/' + video.id + '.json',\n\t\t\t\tjsonp: 'callback',\n\t\t\t\tdataType: 'jsonp',\n\t\t\t\tsuccess: function(data) {\n\t\t\t\t\tpath = data.framegrab_url;\n\t\t\t\t\tcreate(path);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n\n\t/**\n\t * Stops the current video.\n\t * @public\n\t */\n\tVideo.prototype.stop = function() {\n\t\tthis._core.trigger('stop', null, 'video');\n\t\tthis._playing.find('.owl-video-frame').remove();\n\t\tthis._playing.removeClass('owl-video-playing');\n\t\tthis._playing = null;\n\t\tthis._core.leave('playing');\n\t\tthis._core.trigger('stopped', null, 'video');\n\t};\n\n\t/**\n\t * Starts the current video.\n\t * @public\n\t * @param {Event} event - The event arguments.\n\t */\n\tVideo.prototype.play = function(event) {\n\t\tvar target = $(event.target),\n\t\t\titem = target.closest('.' + this._core.settings.itemClass),\n\t\t\tvideo = this._videos[item.attr('data-video')],\n\t\t\twidth = video.width || '100%',\n\t\t\theight = video.height || this._core.$stage.height(),\n\t\t\thtml;\n\n\t\tif (this._playing) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._core.enter('playing');\n\t\tthis._core.trigger('play', null, 'video');\n\n\t\titem = this._core.items(this._core.relative(item.index()));\n\n\t\tthis._core.reset(item.index());\n\n\t\tif (video.type === 'youtube') {\n\t\t\thtml = '';\n\t\t} else if (video.type === 'vimeo') {\n\t\t\thtml = '';\n\t\t} else if (video.type === 'vzaar') {\n\t\t\thtml = '';\n\t\t}\n\n\t\t$('
' + html + '
').insertAfter(item.find('.owl-video'));\n\n\t\tthis._playing = item.addClass('owl-video-playing');\n\t};\n\n\t/**\n\t * Checks whether an video is currently in full screen mode or not.\n\t * @todo Bad style because looks like a readonly method but changes members.\n\t * @protected\n\t * @returns {Boolean}\n\t */\n\tVideo.prototype.isInFullScreen = function() {\n\t\tvar element = document.fullscreenElement || document.mozFullScreenElement ||\n\t\t\t\tdocument.webkitFullscreenElement;\n\n\t\treturn element && $(element).parent().hasClass('owl-video-frame');\n\t};\n\n\t/**\n\t * Destroys the plugin.\n\t */\n\tVideo.prototype.destroy = function() {\n\t\tvar handler, property;\n\n\t\tthis._core.$element.off('click.owl.video');\n\n\t\tfor (handler in this._handlers) {\n\t\t\tthis._core.$element.off(handler, this._handlers[handler]);\n\t\t}\n\t\tfor (property in Object.getOwnPropertyNames(this)) {\n\t\t\ttypeof this[property] != 'function' && (this[property] = null);\n\t\t}\n\t};\n\n\t$.fn.owlCarousel.Constructor.Plugins.Video = Video;\n\n})(window.Zepto || window.jQuery, window, document);\n\n/**\n * Animate Plugin\n * @version 2.1.0\n * @author Bartosz Wojciechowski\n * @author David Deutsch\n * @license The MIT License (MIT)\n */\n;(function($, window, document, undefined) {\n\n\t/**\n\t * Creates the animate plugin.\n\t * @class The Navigation Plugin\n\t * @param {Owl} scope - The Owl Carousel\n\t */\n\tvar Animate = function(scope) {\n\t\tthis.core = scope;\n\t\tthis.core.options = $.extend({}, Animate.Defaults, this.core.options);\n\t\tthis.swapping = true;\n\t\tthis.previous = undefined;\n\t\tthis.next = undefined;\n\n\t\tthis.handlers = {\n\t\t\t'change.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && e.property.name == 'position') {\n\t\t\t\t\tthis.previous = this.core.current();\n\t\t\t\t\tthis.next = e.property.value;\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'drag.owl.carousel dragged.owl.carousel translated.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace) {\n\t\t\t\t\tthis.swapping = e.type == 'translated';\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'translate.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && this.swapping && (this.core.options.animateOut || this.core.options.animateIn)) {\n\t\t\t\t\tthis.swap();\n\t\t\t\t}\n\t\t\t}, this)\n\t\t};\n\n\t\tthis.core.$element.on(this.handlers);\n\t};\n\n\t/**\n\t * Default options.\n\t * @public\n\t */\n\tAnimate.Defaults = {\n\t\tanimateOut: false,\n\t\tanimateIn: false\n\t};\n\n\t/**\n\t * Toggles the animation classes whenever an translations starts.\n\t * @protected\n\t * @returns {Boolean|undefined}\n\t */\n\tAnimate.prototype.swap = function() {\n\n\t\tif (this.core.settings.items !== 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!$.support.animation || !$.support.transition) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.core.speed(0);\n\n\t\tvar left,\n\t\t\tclear = $.proxy(this.clear, this),\n\t\t\tprevious = this.core.$stage.children().eq(this.previous),\n\t\t\tnext = this.core.$stage.children().eq(this.next),\n\t\t\tincoming = this.core.settings.animateIn,\n\t\t\toutgoing = this.core.settings.animateOut;\n\n\t\tif (this.core.current() === this.previous) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (outgoing) {\n\t\t\tleft = this.core.coordinates(this.previous) - this.core.coordinates(this.next);\n\t\t\tprevious.one($.support.animation.end, clear)\n\t\t\t\t.css( { 'left': left + 'px' } )\n\t\t\t\t.addClass('animated owl-animated-out')\n\t\t\t\t.addClass(outgoing);\n\t\t}\n\n\t\tif (incoming) {\n\t\t\tnext.one($.support.animation.end, clear)\n\t\t\t\t.addClass('animated owl-animated-in')\n\t\t\t\t.addClass(incoming);\n\t\t}\n\t};\n\n\tAnimate.prototype.clear = function(e) {\n\t\t$(e.target).css( { 'left': '' } )\n\t\t\t.removeClass('animated owl-animated-out owl-animated-in')\n\t\t\t.removeClass(this.core.settings.animateIn)\n\t\t\t.removeClass(this.core.settings.animateOut);\n\t\tthis.core.onTransitionEnd();\n\t};\n\n\t/**\n\t * Destroys the plugin.\n\t * @public\n\t */\n\tAnimate.prototype.destroy = function() {\n\t\tvar handler, property;\n\n\t\tfor (handler in this.handlers) {\n\t\t\tthis.core.$element.off(handler, this.handlers[handler]);\n\t\t}\n\t\tfor (property in Object.getOwnPropertyNames(this)) {\n\t\t\ttypeof this[property] != 'function' && (this[property] = null);\n\t\t}\n\t};\n\n\t$.fn.owlCarousel.Constructor.Plugins.Animate = Animate;\n\n})(window.Zepto || window.jQuery, window, document);\n\n/**\n * Autoplay Plugin\n * @version 2.1.0\n * @author Bartosz Wojciechowski\n * @author Artus Kolanowski\n * @author David Deutsch\n * @license The MIT License (MIT)\n */\n;(function($, window, document, undefined) {\n\n\t/**\n\t * Creates the autoplay plugin.\n\t * @class The Autoplay Plugin\n\t * @param {Owl} scope - The Owl Carousel\n\t */\n\tvar Autoplay = function(carousel) {\n\t\t/**\n\t\t * Reference to the core.\n\t\t * @protected\n\t\t * @type {Owl}\n\t\t */\n\t\tthis._core = carousel;\n\n\t\t/**\n\t\t * The autoplay timeout.\n\t\t * @type {Timeout}\n\t\t */\n\t\tthis._timeout = null;\n\n\t\t/**\n\t\t * Indicates whenever the autoplay is paused.\n\t\t * @type {Boolean}\n\t\t */\n\t\tthis._paused = false;\n\n\t\t/**\n\t\t * All event handlers.\n\t\t * @protected\n\t\t * @type {Object}\n\t\t */\n\t\tthis._handlers = {\n\t\t\t'changed.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && e.property.name === 'settings') {\n\t\t\t\t\tif (this._core.settings.autoplay) {\n\t\t\t\t\t\tthis.play();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.stop();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.namespace && e.property.name === 'position') {\n\t\t\t\t\t//console.log('play?', e);\n\t\t\t\t\tif (this._core.settings.autoplay) {\n\t\t\t\t\t\tthis._setAutoPlayInterval();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'initialized.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && this._core.settings.autoplay) {\n\t\t\t\t\tthis.play();\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'play.owl.autoplay': $.proxy(function(e, t, s) {\n\t\t\t\tif (e.namespace) {\n\t\t\t\t\tthis.play(t, s);\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'stop.owl.autoplay': $.proxy(function(e) {\n\t\t\t\tif (e.namespace) {\n\t\t\t\t\tthis.stop();\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'mouseover.owl.autoplay': $.proxy(function() {\n\t\t\t\tif (this._core.settings.autoplayHoverPause && this._core.is('rotating')) {\n\t\t\t\t\tthis.pause();\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'mouseleave.owl.autoplay': $.proxy(function() {\n\t\t\t\tif (this._core.settings.autoplayHoverPause && this._core.is('rotating')) {\n\t\t\t\t\tthis.play();\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'touchstart.owl.core': $.proxy(function() {\n\t\t\t\tif (this._core.settings.autoplayHoverPause && this._core.is('rotating')) {\n\t\t\t\t\tthis.pause();\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'touchend.owl.core': $.proxy(function() {\n\t\t\t\tif (this._core.settings.autoplayHoverPause) {\n\t\t\t\t\tthis.play();\n\t\t\t\t}\n\t\t\t}, this)\n\t\t};\n\n\t\t// register event handlers\n\t\tthis._core.$element.on(this._handlers);\n\n\t\t// set default options\n\t\tthis._core.options = $.extend({}, Autoplay.Defaults, this._core.options);\n\t};\n\n\t/**\n\t * Default options.\n\t * @public\n\t */\n\tAutoplay.Defaults = {\n\t\tautoplay: false,\n\t\tautoplayTimeout: 5000,\n\t\tautoplayHoverPause: false,\n\t\tautoplaySpeed: false\n\t};\n\n\t/**\n\t * Starts the autoplay.\n\t * @public\n\t * @param {Number} [timeout] - The interval before the next animation starts.\n\t * @param {Number} [speed] - The animation speed for the animations.\n\t */\n\tAutoplay.prototype.play = function(timeout, speed) {\n\t\tthis._paused = false;\n\n\t\tif (this._core.is('rotating')) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._core.enter('rotating');\n\n\t\tthis._setAutoPlayInterval();\n\t};\n\n\t/**\n\t * Gets a new timeout\n\t * @private\n\t * @param {Number} [timeout] - The interval before the next animation starts.\n\t * @param {Number} [speed] - The animation speed for the animations.\n\t * @return {Timeout}\n\t */\n\tAutoplay.prototype._getNextTimeout = function(timeout, speed) {\n\t\tif ( this._timeout ) {\n\t\t\twindow.clearTimeout(this._timeout);\n\t\t}\n\t\treturn window.setTimeout($.proxy(function() {\n\t\t\tif (this._paused || this._core.is('busy') || this._core.is('interacting') || document.hidden) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis._core.next(speed || this._core.settings.autoplaySpeed);\n\t\t}, this), timeout || this._core.settings.autoplayTimeout);\n\t};\n\n\t/**\n\t * Sets autoplay in motion.\n\t * @private\n\t */\n\tAutoplay.prototype._setAutoPlayInterval = function() {\n\t\tthis._timeout = this._getNextTimeout();\n\t};\n\n\t/**\n\t * Stops the autoplay.\n\t * @public\n\t */\n\tAutoplay.prototype.stop = function() {\n\t\tif (!this._core.is('rotating')) {\n\t\t\treturn;\n\t\t}\n\n\t\twindow.clearTimeout(this._timeout);\n\t\tthis._core.leave('rotating');\n\t};\n\n\t/**\n\t * Stops the autoplay.\n\t * @public\n\t */\n\tAutoplay.prototype.pause = function() {\n\t\tif (!this._core.is('rotating')) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._paused = true;\n\t};\n\n\t/**\n\t * Destroys the plugin.\n\t */\n\tAutoplay.prototype.destroy = function() {\n\t\tvar handler, property;\n\n\t\tthis.stop();\n\n\t\tfor (handler in this._handlers) {\n\t\t\tthis._core.$element.off(handler, this._handlers[handler]);\n\t\t}\n\t\tfor (property in Object.getOwnPropertyNames(this)) {\n\t\t\ttypeof this[property] != 'function' && (this[property] = null);\n\t\t}\n\t};\n\n\t$.fn.owlCarousel.Constructor.Plugins.autoplay = Autoplay;\n\n})(window.Zepto || window.jQuery, window, document);\n\n/**\n * Navigation Plugin\n * @version 2.1.0\n * @author Artus Kolanowski\n * @author David Deutsch\n * @license The MIT License (MIT)\n */\n;(function($, window, document, undefined) {\n\t'use strict';\n\n\t/**\n\t * Creates the navigation plugin.\n\t * @class The Navigation Plugin\n\t * @param {Owl} carousel - The Owl Carousel.\n\t */\n\tvar Navigation = function(carousel) {\n\t\t/**\n\t\t * Reference to the core.\n\t\t * @protected\n\t\t * @type {Owl}\n\t\t */\n\t\tthis._core = carousel;\n\n\t\t/**\n\t\t * Indicates whether the plugin is initialized or not.\n\t\t * @protected\n\t\t * @type {Boolean}\n\t\t */\n\t\tthis._initialized = false;\n\n\t\t/**\n\t\t * The current paging indexes.\n\t\t * @protected\n\t\t * @type {Array}\n\t\t */\n\t\tthis._pages = [];\n\n\t\t/**\n\t\t * All DOM elements of the user interface.\n\t\t * @protected\n\t\t * @type {Object}\n\t\t */\n\t\tthis._controls = {};\n\n\t\t/**\n\t\t * Markup for an indicator.\n\t\t * @protected\n\t\t * @type {Array.}\n\t\t */\n\t\tthis._templates = [];\n\n\t\t/**\n\t\t * The carousel element.\n\t\t * @type {jQuery}\n\t\t */\n\t\tthis.$element = this._core.$element;\n\n\t\t/**\n\t\t * Overridden methods of the carousel.\n\t\t * @protected\n\t\t * @type {Object}\n\t\t */\n\t\tthis._overrides = {\n\t\t\tnext: this._core.next,\n\t\t\tprev: this._core.prev,\n\t\t\tto: this._core.to\n\t\t};\n\n\t\t/**\n\t\t * All event handlers.\n\t\t * @protected\n\t\t * @type {Object}\n\t\t */\n\t\tthis._handlers = {\n\t\t\t'prepared.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && this._core.settings.dotsData) {\n\t\t\t\t\tthis._templates.push('
' +\n\t\t\t\t\t\t$(e.content).find('[data-dot]').addBack('[data-dot]').attr('data-dot') + '
');\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'added.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && this._core.settings.dotsData) {\n\t\t\t\t\tthis._templates.splice(e.position, 0, this._templates.pop());\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'remove.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && this._core.settings.dotsData) {\n\t\t\t\t\tthis._templates.splice(e.position, 1);\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'changed.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && e.property.name == 'position') {\n\t\t\t\t\tthis.draw();\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'initialized.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && !this._initialized) {\n\t\t\t\t\tthis._core.trigger('initialize', null, 'navigation');\n\t\t\t\t\tthis.initialize();\n\t\t\t\t\tthis.update();\n\t\t\t\t\tthis.draw();\n\t\t\t\t\tthis._initialized = true;\n\t\t\t\t\tthis._core.trigger('initialized', null, 'navigation');\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'refreshed.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && this._initialized) {\n\t\t\t\t\tthis._core.trigger('refresh', null, 'navigation');\n\t\t\t\t\tthis.update();\n\t\t\t\t\tthis.draw();\n\t\t\t\t\tthis._core.trigger('refreshed', null, 'navigation');\n\t\t\t\t}\n\t\t\t}, this)\n\t\t};\n\n\t\t// set default options\n\t\tthis._core.options = $.extend({}, Navigation.Defaults, this._core.options);\n\n\t\t// register event handlers\n\t\tthis.$element.on(this._handlers);\n\t};\n\n\t/**\n\t * Default options.\n\t * @public\n\t * @todo Rename `slideBy` to `navBy`\n\t */\n\tNavigation.Defaults = {\n\t\tnav: false,\n\t\tnavText: [ 'prev', 'next' ],\n\t\tnavSpeed: false,\n\t\tnavElement: 'div',\n\t\tnavContainer: false,\n\t\tnavContainerClass: 'owl-nav',\n\t\tnavClass: [ 'owl-prev', 'owl-next' ],\n\t\tslideBy: 1,\n\t\tdotClass: 'owl-dot',\n\t\tdotsClass: 'owl-dots',\n\t\tdots: true,\n\t\tdotsEach: false,\n\t\tdotsData: false,\n\t\tdotsSpeed: false,\n\t\tdotsContainer: false\n\t};\n\n\t/**\n\t * Initializes the layout of the plugin and extends the carousel.\n\t * @protected\n\t */\n\tNavigation.prototype.initialize = function() {\n\t\tvar override,\n\t\t\tsettings = this._core.settings;\n\n\t\t// create DOM structure for relative navigation\n\t\tthis._controls.$relative = (settings.navContainer ? $(settings.navContainer)\n\t\t\t: $('
').addClass(settings.navContainerClass).appendTo(this.$element)).addClass('disabled');\n\n\t\tthis._controls.$previous = $('<' + settings.navElement + '>')\n\t\t\t.addClass(settings.navClass[0])\n\t\t\t.html(settings.navText[0])\n\t\t\t.prependTo(this._controls.$relative)\n\t\t\t.on('click', $.proxy(function(e) {\n\t\t\t\tthis.prev(settings.navSpeed);\n\t\t\t}, this));\n\t\tthis._controls.$next = $('<' + settings.navElement + '>')\n\t\t\t.addClass(settings.navClass[1])\n\t\t\t.html(settings.navText[1])\n\t\t\t.appendTo(this._controls.$relative)\n\t\t\t.on('click', $.proxy(function(e) {\n\t\t\t\tthis.next(settings.navSpeed);\n\t\t\t}, this));\n\n\t\t// create DOM structure for absolute navigation\n\t\tif (!settings.dotsData) {\n\t\t\tthis._templates = [ $('
')\n\t\t\t\t.addClass(settings.dotClass)\n\t\t\t\t.append($(''))\n\t\t\t\t.prop('outerHTML') ];\n\t\t}\n\n\t\tthis._controls.$absolute = (settings.dotsContainer ? $(settings.dotsContainer)\n\t\t\t: $('
').addClass(settings.dotsClass).appendTo(this.$element)).addClass('disabled');\n\n\t\tthis._controls.$absolute.on('click', 'div', $.proxy(function(e) {\n\t\t\tvar index = $(e.target).parent().is(this._controls.$absolute)\n\t\t\t\t? $(e.target).index() : $(e.target).parent().index();\n\n\t\t\te.preventDefault();\n\n\t\t\tthis.to(index, settings.dotsSpeed);\n\t\t}, this));\n\n\t\t// override public methods of the carousel\n\t\tfor (override in this._overrides) {\n\t\t\tthis._core[override] = $.proxy(this[override], this);\n\t\t}\n\t};\n\n\t/**\n\t * Destroys the plugin.\n\t * @protected\n\t */\n\tNavigation.prototype.destroy = function() {\n\t\tvar handler, control, property, override;\n\n\t\tfor (handler in this._handlers) {\n\t\t\tthis.$element.off(handler, this._handlers[handler]);\n\t\t}\n\t\tfor (control in this._controls) {\n\t\t\tthis._controls[control].remove();\n\t\t}\n\t\tfor (override in this.overides) {\n\t\t\tthis._core[override] = this._overrides[override];\n\t\t}\n\t\tfor (property in Object.getOwnPropertyNames(this)) {\n\t\t\ttypeof this[property] != 'function' && (this[property] = null);\n\t\t}\n\t};\n\n\t/**\n\t * Updates the internal state.\n\t * @protected\n\t */\n\tNavigation.prototype.update = function() {\n\t\tvar i, j, k,\n\t\t\tlower = this._core.clones().length / 2,\n\t\t\tupper = lower + this._core.items().length,\n\t\t\tmaximum = this._core.maximum(true),\n\t\t\tsettings = this._core.settings,\n\t\t\tsize = settings.center || settings.autoWidth || settings.dotsData\n\t\t\t\t? 1 : settings.dotsEach || settings.items;\n\n\t\tif (settings.slideBy !== 'page') {\n\t\t\tsettings.slideBy = Math.min(settings.slideBy, settings.items);\n\t\t}\n\n\t\tif (settings.dots || settings.slideBy == 'page') {\n\t\t\tthis._pages = [];\n\n\t\t\tfor (i = lower, j = 0, k = 0; i < upper; i++) {\n\t\t\t\tif (j >= size || j === 0) {\n\t\t\t\t\tthis._pages.push({\n\t\t\t\t\t\tstart: Math.min(maximum, i - lower),\n\t\t\t\t\t\tend: i - lower + size - 1\n\t\t\t\t\t});\n\t\t\t\t\tif (Math.min(maximum, i - lower) === maximum) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tj = 0, ++k;\n\t\t\t\t}\n\t\t\t\tj += this._core.mergers(this._core.relative(i));\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * Draws the user interface.\n\t * @todo The option `dotsData` wont work.\n\t * @protected\n\t */\n\tNavigation.prototype.draw = function() {\n\t\tvar difference,\n\t\t\tsettings = this._core.settings,\n\t\t\tdisabled = this._core.items().length <= settings.items,\n\t\t\tindex = this._core.relative(this._core.current()),\n\t\t\tloop = settings.loop || settings.rewind;\n\n\t\tthis._controls.$relative.toggleClass('disabled', !settings.nav || disabled);\n\n\t\tif (settings.nav) {\n\t\t\tthis._controls.$previous.toggleClass('disabled', !loop && index <= this._core.minimum(true));\n\t\t\tthis._controls.$next.toggleClass('disabled', !loop && index >= this._core.maximum(true));\n\t\t}\n\n\t\tthis._controls.$absolute.toggleClass('disabled', !settings.dots || disabled);\n\n\t\tif (settings.dots) {\n\t\t\tdifference = this._pages.length - this._controls.$absolute.children().length;\n\n\t\t\tif (settings.dotsData && difference !== 0) {\n\t\t\t\tthis._controls.$absolute.html(this._templates.join(''));\n\t\t\t} else if (difference > 0) {\n\t\t\t\tthis._controls.$absolute.append(new Array(difference + 1).join(this._templates[0]));\n\t\t\t} else if (difference < 0) {\n\t\t\t\tthis._controls.$absolute.children().slice(difference).remove();\n\t\t\t}\n\n\t\t\tthis._controls.$absolute.find('.active').removeClass('active');\n\t\t\tthis._controls.$absolute.children().eq($.inArray(this.current(), this._pages)).addClass('active');\n\t\t}\n\t};\n\n\t/**\n\t * Extends event data.\n\t * @protected\n\t * @param {Event} event - The event object which gets thrown.\n\t */\n\tNavigation.prototype.onTrigger = function(event) {\n\t\tvar settings = this._core.settings;\n\n\t\tevent.page = {\n\t\t\tindex: $.inArray(this.current(), this._pages),\n\t\t\tcount: this._pages.length,\n\t\t\tsize: settings && (settings.center || settings.autoWidth || settings.dotsData\n\t\t\t\t? 1 : settings.dotsEach || settings.items)\n\t\t};\n\t};\n\n\t/**\n\t * Gets the current page position of the carousel.\n\t * @protected\n\t * @returns {Number}\n\t */\n\tNavigation.prototype.current = function() {\n\t\tvar current = this._core.relative(this._core.current());\n\t\treturn $.grep(this._pages, $.proxy(function(page, index) {\n\t\t\treturn page.start <= current && page.end >= current;\n\t\t}, this)).pop();\n\t};\n\n\t/**\n\t * Gets the current succesor/predecessor position.\n\t * @protected\n\t * @returns {Number}\n\t */\n\tNavigation.prototype.getPosition = function(successor) {\n\t\tvar position, length,\n\t\t\tsettings = this._core.settings;\n\n\t\tif (settings.slideBy == 'page') {\n\t\t\tposition = $.inArray(this.current(), this._pages);\n\t\t\tlength = this._pages.length;\n\t\t\tsuccessor ? ++position : --position;\n\t\t\tposition = this._pages[((position % length) + length) % length].start;\n\t\t} else {\n\t\t\tposition = this._core.relative(this._core.current());\n\t\t\tlength = this._core.items().length;\n\t\t\tsuccessor ? position += settings.slideBy : position -= settings.slideBy;\n\t\t}\n\n\t\treturn position;\n\t};\n\n\t/**\n\t * Slides to the next item or page.\n\t * @public\n\t * @param {Number} [speed=false] - The time in milliseconds for the transition.\n\t */\n\tNavigation.prototype.next = function(speed) {\n\t\t$.proxy(this._overrides.to, this._core)(this.getPosition(true), speed);\n\t};\n\n\t/**\n\t * Slides to the previous item or page.\n\t * @public\n\t * @param {Number} [speed=false] - The time in milliseconds for the transition.\n\t */\n\tNavigation.prototype.prev = function(speed) {\n\t\t$.proxy(this._overrides.to, this._core)(this.getPosition(false), speed);\n\t};\n\n\t/**\n\t * Slides to the specified item or page.\n\t * @public\n\t * @param {Number} position - The position of the item or page.\n\t * @param {Number} [speed] - The time in milliseconds for the transition.\n\t * @param {Boolean} [standard=false] - Whether to use the standard behaviour or not.\n\t */\n\tNavigation.prototype.to = function(position, speed, standard) {\n\t\tvar length;\n\n\t\tif (!standard && this._pages.length) {\n\t\t\tlength = this._pages.length;\n\t\t\t$.proxy(this._overrides.to, this._core)(this._pages[((position % length) + length) % length].start, speed);\n\t\t} else {\n\t\t\t$.proxy(this._overrides.to, this._core)(position, speed);\n\t\t}\n\t};\n\n\t$.fn.owlCarousel.Constructor.Plugins.Navigation = Navigation;\n\n})(window.Zepto || window.jQuery, window, document);\n\n/**\n * Hash Plugin\n * @version 2.1.0\n * @author Artus Kolanowski\n * @author David Deutsch\n * @license The MIT License (MIT)\n */\n;(function($, window, document, undefined) {\n\t'use strict';\n\n\t/**\n\t * Creates the hash plugin.\n\t * @class The Hash Plugin\n\t * @param {Owl} carousel - The Owl Carousel\n\t */\n\tvar Hash = function(carousel) {\n\t\t/**\n\t\t * Reference to the core.\n\t\t * @protected\n\t\t * @type {Owl}\n\t\t */\n\t\tthis._core = carousel;\n\n\t\t/**\n\t\t * Hash index for the items.\n\t\t * @protected\n\t\t * @type {Object}\n\t\t */\n\t\tthis._hashes = {};\n\n\t\t/**\n\t\t * The carousel element.\n\t\t * @type {jQuery}\n\t\t */\n\t\tthis.$element = this._core.$element;\n\n\t\t/**\n\t\t * All event handlers.\n\t\t * @protected\n\t\t * @type {Object}\n\t\t */\n\t\tthis._handlers = {\n\t\t\t'initialized.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && this._core.settings.startPosition === 'URLHash') {\n\t\t\t\t\t$(window).trigger('hashchange.owl.navigation');\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'prepared.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace) {\n\t\t\t\t\tvar hash = $(e.content).find('[data-hash]').addBack('[data-hash]').attr('data-hash');\n\n\t\t\t\t\tif (!hash) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis._hashes[hash] = e.content;\n\t\t\t\t}\n\t\t\t}, this),\n\t\t\t'changed.owl.carousel': $.proxy(function(e) {\n\t\t\t\tif (e.namespace && e.property.name === 'position') {\n\t\t\t\t\tvar current = this._core.items(this._core.relative(this._core.current())),\n\t\t\t\t\t\thash = $.map(this._hashes, function(item, hash) {\n\t\t\t\t\t\t\treturn item === current ? hash : null;\n\t\t\t\t\t\t}).join();\n\n\t\t\t\t\tif (!hash || window.location.hash.slice(1) === hash) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\twindow.location.hash = hash;\n\t\t\t\t}\n\t\t\t}, this)\n\t\t};\n\n\t\t// set default options\n\t\tthis._core.options = $.extend({}, Hash.Defaults, this._core.options);\n\n\t\t// register the event handlers\n\t\tthis.$element.on(this._handlers);\n\n\t\t// register event listener for hash navigation\n\t\t$(window).on('hashchange.owl.navigation', $.proxy(function(e) {\n\t\t\tvar hash = window.location.hash.substring(1),\n\t\t\t\titems = this._core.$stage.children(),\n\t\t\t\tposition = this._hashes[hash] && items.index(this._hashes[hash]);\n\n\t\t\tif (position === undefined || position === this._core.current()) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._core.to(this._core.relative(position), false, true);\n\t\t}, this));\n\t};\n\n\t/**\n\t * Default options.\n\t * @public\n\t */\n\tHash.Defaults = {\n\t\tURLhashListener: false\n\t};\n\n\t/**\n\t * Destroys the plugin.\n\t * @public\n\t */\n\tHash.prototype.destroy = function() {\n\t\tvar handler, property;\n\n\t\t$(window).off('hashchange.owl.navigation');\n\n\t\tfor (handler in this._handlers) {\n\t\t\tthis._core.$element.off(handler, this._handlers[handler]);\n\t\t}\n\t\tfor (property in Object.getOwnPropertyNames(this)) {\n\t\t\ttypeof this[property] != 'function' && (this[property] = null);\n\t\t}\n\t};\n\n\t$.fn.owlCarousel.Constructor.Plugins.Hash = Hash;\n\n})(window.Zepto || window.jQuery, window, document);\n\n/**\n * Support Plugin\n *\n * @version 2.1.0\n * @author Vivid Planet Software GmbH\n * @author Artus Kolanowski\n * @author David Deutsch\n * @license The MIT License (MIT)\n */\n;(function($, window, document, undefined) {\n\n\tvar style = $('').get(0).style,\n\t\tprefixes = 'Webkit Moz O ms'.split(' '),\n\t\tevents = {\n\t\t\ttransition: {\n\t\t\t\tend: {\n\t\t\t\t\tWebkitTransition: 'webkitTransitionEnd',\n\t\t\t\t\tMozTransition: 'transitionend',\n\t\t\t\t\tOTransition: 'oTransitionEnd',\n\t\t\t\t\ttransition: 'transitionend'\n\t\t\t\t}\n\t\t\t},\n\t\t\tanimation: {\n\t\t\t\tend: {\n\t\t\t\t\tWebkitAnimation: 'webkitAnimationEnd',\n\t\t\t\t\tMozAnimation: 'animationend',\n\t\t\t\t\tOAnimation: 'oAnimationEnd',\n\t\t\t\t\tanimation: 'animationend'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\ttests = {\n\t\t\tcsstransforms: function() {\n\t\t\t\treturn !!test('transform');\n\t\t\t},\n\t\t\tcsstransforms3d: function() {\n\t\t\t\treturn !!test('perspective');\n\t\t\t},\n\t\t\tcsstransitions: function() {\n\t\t\t\treturn !!test('transition');\n\t\t\t},\n\t\t\tcssanimations: function() {\n\t\t\t\treturn !!test('animation');\n\t\t\t}\n\t\t};\n\n\tfunction test(property, prefixed) {\n\t\tvar result = false,\n\t\t\tupper = property.charAt(0).toUpperCase() + property.slice(1);\n\n\t\t$.each((property + ' ' + prefixes.join(upper + ' ') + upper).split(' '), function(i, property) {\n\t\t\tif (style[property] !== undefined) {\n\t\t\t\tresult = prefixed ? property : true;\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\n\t\treturn result;\n\t}\n\n\tfunction prefixed(property) {\n\t\treturn test(property, true);\n\t}\n\n\tif (tests.csstransitions()) {\n\t\t/* jshint -W053 */\n\t\t$.support.transition = new String(prefixed('transition'))\n\t\t$.support.transition.end = events.transition.end[ $.support.transition ];\n\t}\n\n\tif (tests.cssanimations()) {\n\t\t/* jshint -W053 */\n\t\t$.support.animation = new String(prefixed('animation'))\n\t\t$.support.animation.end = events.animation.end[ $.support.animation ];\n\t}\n\n\tif (tests.csstransforms()) {\n\t\t/* jshint -W053 */\n\t\t$.support.transform = new String(prefixed('transform'));\n\t\t$.support.transform3d = tests.csstransforms3d();\n\t}\n\n})(window.Zepto || window.jQuery, window, document);\n","// jQuery Mask Plugin v1.11.4\n// github.com/igorescobar/jQuery-Mask-Plugin\n(function(b){\"function\"===typeof define&&define.amd?define([\"jquery\"],b):\"object\"===typeof exports?module.exports=b(require(\"jquery\")):b(jQuery||Zepto)})(function(b){var y=function(a,d,e){a=b(a);var g=this,k=a.val(),l;d=\"function\"===typeof d?d(a.val(),void 0,a,e):d;var c={invalid:[],getCaret:function(){try{var q,v=0,b=a.get(0),f=document.selection,c=b.selectionStart;if(f&&-1===navigator.appVersion.indexOf(\"MSIE 10\"))q=f.createRange(),q.moveStart(\"character\",a.is(\"input\")?-a.val().length:-a.text().length),\nv=q.text.length;else if(c||\"0\"===c)v=c;return v}catch(d){}},setCaret:function(q){try{if(a.is(\":focus\")){var b,c=a.get(0);c.setSelectionRange?c.setSelectionRange(q,q):c.createTextRange&&(b=c.createTextRange(),b.collapse(!0),b.moveEnd(\"character\",q),b.moveStart(\"character\",q),b.select())}}catch(f){}},events:function(){a.on(\"keyup.mask\",c.behaviour).on(\"paste.mask drop.mask\",function(){setTimeout(function(){a.keydown().keyup()},100)}).on(\"change.mask\",function(){a.data(\"changed\",!0)}).on(\"blur.mask\",\nfunction(){k===a.val()||a.data(\"changed\")||a.triggerHandler(\"change\");a.data(\"changed\",!1)}).on(\"keydown.mask, blur.mask\",function(){k=a.val()}).on(\"focus.mask\",function(a){!0===e.selectOnFocus&&b(a.target).select()}).on(\"focusout.mask\",function(){e.clearIfNotMatch&&!l.test(c.val())&&c.val(\"\")})},getRegexMask:function(){for(var a=[],b,c,f,e,h=0;h