{"version":3,"sources":["jquery.js","bootstrap.min.js","jquery-form-validation.min.js","jquery.beer.js","jquery.lazy.min.js","jquery.magnific-popup.min.js","jquery.selectric.js","jquery.validator.js","lightgallery-all.js","owl.carousel.min.js","plyr.js","scripts.js"],"names":["e","t","M","length","n","x","type","isWindow","nodeType","F","O","each","match","T","R","r","i","acceptData","o","a","s","expando","l","u","cache","c","data","p","pop","guid","toJSON","noop","extend","camelCase","W","isArray","concat","map","split","I","isEmptyObject","cleanData","support","deleteExpando","window","$","replace","P","toLowerCase","getAttribute","B","test","parseJSON","it","ot","at","activeElement","pt","ft","isFunction","grep","call","st","filter","inArray","dt","ht","createDocumentFragment","createElement","Lt","nodeName","firstChild","getElementsByTagName","appendChild","ownerDocument","Ht","find","attr","qt","Et","exec","removeAttribute","_t","_data","Mt","hasData","events","handle","event","add","Ot","noCloneEvent","removeEvent","text","parentNode","outerHTML","html5Clone","innerHTML","trim","Ct","defaultChecked","checked","value","defaultSelected","selected","defaultValue","Ft","querySelectorAll","childNodes","push","merge","Bt","tn","charAt","toUpperCase","slice","en","nn","css","contains","rn","style","display","ln","on","Vt","Math","max","an","Zt","sn","offsetWidth","offsetHeight","Rt","boxSizing","Wt","Yt","boxSizingReliable","parseFloat","Gt","un","Pt","appendTo","documentElement","contentWindow","contentDocument","document","write","close","detach","body","remove","gn","pn","Hn","unshift","qn","dataTypes","jn","_n","ajaxSettings","flatOptions","Mn","contents","shift","mimeType","getResponseHeader","converters","On","responseFields","dataFilter","dataType","state","error","In","XMLHttpRequest","zn","ActiveXObject","Kn","setTimeout","Xn","now","Zn","Qn","er","Gn","Deferred","always","elem","startTime","duration","tweens","run","notifyWith","resolveWith","promise","props","opts","specialEasing","originalProperties","originalOptions","createTween","Tween","easing","stop","this","rejectWith","tr","start","fx","timer","anim","queue","progress","done","complete","fail","cssHooks","expand","nr","f","d","_queueHooks","unqueued","empty","fire","overflow","overflowX","overflowY","inlineBlockNeedsLayout","zoom","shrinkWrapBlocks","Vn","hidden","show","hide","_removeData","end","rr","prototype","init","ir","height","opacity","width","or","defaultView","parentWindow","location","jQuery","h","g","m","indexOf","y","toString","v","hasOwnProperty","b","fn","w","source","C","N","k","E","S","A","j","D","L","H","q","addEventListener","readyState","_","ready","removeEventListener","detachEvent","jquery","constructor","parseHTML","isPlainObject","getElementById","id","context","selector","makeArray","toArray","get","pushStack","prevObject","apply","arguments","first","eq","last","sort","splice","random","noConflict","isReady","readyWait","holdReady","trigger","off","Array","isNumeric","isNaN","isFinite","ownLast","Error","buildFragment","JSON","parse","Function","parseXML","DOMParser","parseFromString","async","loadXML","globalEval","execScript","eval","Object","proxy","access","Date","getTime","swap","attachEvent","frameElement","doScroll","Z","getElementsByClassName","qsa","mt","nt","setAttribute","yt","V","join","kt","z","cacheLength","lt","ut","removeChild","ct","attrHandle","sourceIndex","nextSibling","gt","preFilter","X","U","Q","matches","vt","dir","bt","xt","wt","Nt","Tt","relative","TAG","uniqueSort","getById","ID","rt","needsContext","RegExp","Y","J","G","CLASS","ATTR","PSEUDO","CHILD","bool","K","et","tt","String","fromCharCode","isXML","setDocument","top","attributes","className","createComment","getElementsByName","getAttributeNode","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","sortDetached","specified","detectDuplicates","sortStable","getText","textContent","nodeValue","selectors","createPseudo",">"," ","+","~","lastChild","pseudos","setFilters","not","has","innerText","lang","target","hash","root","focus","hasFocus","href","tabIndex","enabled","disabled","selectedIndex","parent","header","input","button","even","odd","nth","radio","checkbox","file","password","image","submit","reset","filters","compile","expr","unique","isXMLDoc","Callbacks","once","memory","stopOnFalse","disable","lock","locked","fireWith","fired","then","resolve","reject","notify","pipe","when","cssText","getSetAttribute","leadingWhitespace","tbody","htmlSerialize","hrefNormalized","cssFloat","checkOn","optSelected","enctype","cloneNode","pixelPosition","reliableMarginRight","noCloneChecked","optDisabled","radioValue","appendChecked","checkClone","click","change","focusin","backgroundClip","clearCloneStyle","reliableHiddenOffsets","getComputedStyle","marginRight","noData","applet","embed","object","removeData","name","dequeue","delay","speeds","clearTimeout","clearQueue","removeAttr","prop","removeProp","propFix","addClass","removeClass","toggleClass","hasClass","val","valHooks","set","option","select","options","attrHooks","for","class","propHooks","parseInt","setAttributeNode","createAttribute","coords","contenteditable","global","handler","triggered","dispatch","special","delegateType","bindType","origType","namespace","delegateCount","setup","teardown","Event","isTrigger","namespace_re","result","noBubble","isPropagationStopped","preventDefault","isDefaultPrevented","_default","fix","delegateTarget","preDispatch","handlers","currentTarget","isImmediatePropagationStopped","handleObj","stopPropagation","postDispatch","index","fixHooks","mouseHooks","keyHooks","srcElement","metaKey","which","charCode","keyCode","fromElement","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","relatedTarget","toElement","load","blur","beforeunload","originalEvent","returnValue","simulate","isSimulated","defaultPrevented","getPreventDefault","timeStamp","cancelBubble","stopImmediatePropagation","mouseenter","mouseleave","submitBubbles","form","_submit_bubble","changeBubbles","propertyName","_just_changed","focusinBubbles","one","triggerHandler","children","next","prev","is","closest","prevAll","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","sibling","reverse","St","At","legend","area","param","thead","col","td","jt","Dt","optgroup","tfoot","colgroup","caption","th","append","createTextNode","domManip","prepend","insertBefore","before","after","clone","html","replaceWith","src","_evalUrl","prependTo","insertAfter","replaceAll","ajax","url","throws","wrapAll","wrapInner","wrap","unwrap","$t","It","zt","Xt","Ut","Jt","BODY","Qt","position","visibility","Kt","letterSpacing","fontWeight","toggle","cssNumber","columnCount","fillOpacity","lineHeight","order","orphans","widows","zIndex","cssProps","float","getPropertyValue","minWidth","maxWidth","currentStyle","left","runtimeStyle","pixelLeft","$1","visible","margin","padding","border","cn","dn","hn","serialize","serializeArray","encodeURIComponent","traditional","hover","bind","unbind","delegate","undelegate","mn","yn","vn","bn","xn","wn","Tn","Cn","Nn","kn","En","Sn","An","Dn","Ln","responseText","active","lastModified","etag","isLocal","processData","contentType","accepts","*","xml","json","* text","text html","text json","text xml","ajaxSetup","ajaxPrefilter","ajaxTransport","ifModified","status","statusText","statusCode","getAllResponseHeaders","setRequestHeader","overrideMimeType","abort","success","method","crossDomain","hasContent","headers","beforeSend","timeout","send","getJSON","getScript","script","text script","head","scriptCharset","charset","onload","onreadystatechange","Fn","Bn","jsonp","jsonpCallback","Pn","Rn","Wn","$n","xhr","cors","username","open","xhrFields","unload","Un","Yn","Jn","cur","unit","Animation","tweener","prefilter","pos","step","animate","fadeTo","speed","finish","timers","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","old","linear","swing","cos","PI","tick","interval","setInterval","clearInterval","slow","fast","animated","offset","setOffset","getBoundingClientRect","pageYOffset","pageXOffset","using","offsetParent","scrollTo","Height","Width","content","","size","andSelf","module","exports","define","amd","WebkitTransition","MozTransition","OTransition","transition","emulateTransitionEnd","alert","Constructor","$element","DEFAULTS","isLoading","loadingText","setState","resetText","$indicators","paused","sliding","$active","$items","pause","cycle","getActiveIndex","to","slide","direction","carousel","transitioning","$parent","dimension","collapse","keydown","dropdown","$backdrop","isShown","remote","backdrop","keyboard","escape","enforceFocus","hideModal","removeBackdrop","modal","hoverState","animation","placement","template","title","container","getOptions","enter","leave","_options","fixTitle","getDefaults","getDelegateOptions","tip","setContent","getPosition","innerWidth","outerWidth","innerHeight","outerHeight","right","getCalculatedOffset","applyPlacement","$tip","round","replaceArrow","arrow","getTitle","$arrow","validate","enable","toggleEnabled","destroy","tooltip","getContent","popover","process","$body","$scrollElement","offsets","targets","activeTarget","refresh","scrollHeight","activate","scrollspy","element","tab","$window","checkPosition","checkPositionWithEventLoop","affixed","unpin","pinnedOffset","RESET","getPinnedOffset","bottom","affix","offsetBottom","offsetTop","validateForm","undefined","tagName","toLocaleLowerCase","BeerSlider","defineProperty","enumerable","Symbol","toStringTag","__esModule","create","default","self","TypeError","stat","forced","sham","unsafe","version","mode","copyright","enforce","WeakMap","getterFor","configurable","writable","ceil","floor","callee","valueOf","IteratorPrototype","BUGGY_SAFARI_ITERATORS","entries","values","keys","proto","min","getPrototypeOf","BREAK","setImmediate","clearImmediate","MessageChannel","Dispatch","nextTick","port2","port1","onmessage","postMessage","importScripts","clear","Promise","string","charCodeAt","Reflect","ownKeys","getOwnPropertyNames","propertyIsEnumerable","getOwnPropertySymbols","getOwnPropertyDescriptor","1","defineProperties","setPrototypeOf","__proto__","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","kind","Arguments","versions","v8","createEvent","dispatchEvent","PromiseRejectionEvent","finally","notified","reactions","ok","domain","rejection","exit","reason","initEvent","emit","catch","all","race","return","from","MutationObserver","WebKitMutationObserver","navigator","standalone","observe","characterData","console","userAgent","real","allSettled","try","key","prefix","revealContainer","revealElement","range","addElement","aria-label","aria-valuemin","aria-valuemax","aria-valuenow","onImagesLoad","classList","setImgWidth","move","addListeners","Image","onerror","loadingImg","loadedBoth","forEach","devicePixelRatio","combined","throttle","loadedName","appendScroll","defaultImage","placeholder","imageBase","srcsetAttribute","loaderAttribute","_f","handledName","attribute","imageBaseAttribute","autoDestroy","visibleOnly","sizesAttribute","retinaAttribute","effect","effectTime","scrollDirection","threshold","enableThrottle","config","addItems","getItems","update","force","loadAll","chainable","Zepto","Lazy","lazy","beforeLoad","afterLoad","onError","onFinishedAll","media","sizes","srcset","require","ev","callbacks","currTemplate","closeBtn","closeMarkup","tClose","magnificPopup","instance","appVersion","isLowIE","isIE8","isAndroid","isIOS","supportsTransition","probablyMobile","popupsCache","isObj","items","parsed","el","isOpen","updateItemHTML","types","mainEl","defaults","fixedContentPos","closeOnContentClick","closeOnBgClick","showCloseBtn","enableEscapeKey","bgOverlay","_checkIfClose","contentContainer","preloader","tLoading","modules","closeBtnInside","close_replaceWith","alignTop","fixedBgPos","updateSize","wH","_hasScrollBar","_getScrollbarSize","isIE7","mainClass","_addClassToMFP","_lastFocusedEl","_setFocus","_onFocusIn","removalDelay","_close","_removeClassFromMFP","currItem","autoFocusLast","prevHeight","clientWidth","parseEl","markup","appendContent","preloaded","addGroup","mfpEl","_openClick","midClick","ctrlKey","altKey","shiftKey","disableOn","updateStatus","_parseMarkup","scrollbarSize","registerModule","hiddenClass","tNotFound","initInline","getInline","inline","inlineElement","req","settings","cursor","tError","initAjax","getAjax","finished","loadError","titleSrc","verticalFit","initImage","resizeImage","img","_onImageHasSize","hasSize","isCheckingImgSize","imgHidden","findImageSize","naturalWidth","getImage","loaded","alt","img_replaceWith","loading","MozTransform","opener","initZoom","-webkit-backface-visibility","_allowZoom","_getItemToZoom","_getOffset","transform","srcAction","patterns","youtube","vimeo","gmaps","initIframe","getIframe","iframe","substr","lastIndexOf","arrowMarkup","preload","navigateByImgClick","arrows","tPrev","tNext","tCounter","initGallery","gallery","counter","arrowLeft","arrowRight","_preloadTimeout","preloadNearbyImages","goTo","_preloadItem","replaceSrc","ratio","initRetina","retina","max-width","factory","$doc","$win","chars","diacritics","Selectric","_this","multiple","opened","currValue","selectedIdx","highlightedIdx","eventTriggers","utils","isMobile","escapeRegExp","str","replaceDiacritics","format","nextEnabledItem","selectItems","previousEnabledItem","toDash","triggerCallback","scope","elm","func","args","pluginName","arrayToClassname","arr","newArr","item","disableOnMobile","classes","getClassNames","readonly","tabindex","itemsScroll","scroll","wrapper","arrowButtonMarkup","label","outerWrapper","hideSelectWrapper","hideselect","elements","nativeOnMobile","originalTabindex","populate","hiddenChildren","tempshow","originalWidth","responsive","inheritOriginalWidth","unbindEvents","$li","bindEvents","customClass","classesObj","currClass","setLabel","labelBuilder","currentValues","labelMarkup","lookupItems","maxLabelEntries","separator","$options","$justOptions","$selected","currIndex","emptyValue","$elm","optionsGroup","groupDisabled","getItemData","getItemsMarkup","isDisabled","slug","listBuilder","group","grouplabel","getItemMarkup","itemData","itemBuilder","optionsItemBuilder","filteredItemData","openOnHover","closeTimer","hoverIntentTimeout","handleKeys","openOnFocus","searchRegExp","resetStr","keySearchTimeout","highlight","mousedown","isPrevKey","previous","isNextKey","isSelectKey","isOpenKey","idx","isFirstOrLastItem","goToItem","allowWrap","keepMenuOpen","setOptionsDimensions","maxHeight","itemsWidth","wrapperWidth","expandToItemText","finalWidth","isInViewport","winHeight","uiPosX","uiHeight","fitsDown","itemsHeight","fitsAbove","renderAbove","above","detectItemVisibility","$filteredLi","liHeight","liTop","itemsScrollTop","scrollT","itemsInnerHeight","preventWindowScroll","orgEvent","deltaY","detail","wheelDelta","wheelDeltaY","hasSelectedIndex","preserveData","onChange","prependExistingHelpBlock","sniffHtml","preventSubmit","submitError","submitSuccess","semanticallyStrict","autoAdd","helpBlocks","methods","jqBootstrapValidation","builtInValidators","required","message","validatorTypes","number","decimal","shortcut","includeEmpty","blockSubmit","submitting","collectErrors","hasErrors","override","callback","validatorName","lastValue","lastValid","lastFinished","valid","failure","regex","originalName","negative","email","maxlength","minlength","maxchecked","minchecked","thousands","toPrecision","passwordagain","positive","integer","positivenumber","negativenumber","checkone","pattern","a0","$el","dynamic","dynamicEl","lGalleryOn","lgBusy","hideBartimeout","isTouch","slideEndAnimatoin","hideControlOnEnd","selectWithin","$slide","$outer","cssEasing","startClass","backdropDuration","hideBarsDelay","useLeft","closable","loop","escKey","keyPress","controls","mousewheel","getCaptionFromTitleOrAlt","appendSubHtmlTo","subHtmlSelectorRelative","showAfterLoad","nextHtml","prevHtml","iframeMaxWidth","download","appendCounterTo","swipeThreshold","enableSwipe","enableDrag","galleryId","_hash","build","structure","lightGallery","closeGallery","list","subHtmlCont","setTop","doCss","$inner","prevScrollTop","$lGallery","isVideo","html5","dailymotion","vk","addHtml","subHtmlUrl","$currentEle","subHtml","fL","substring","loadContent","rec","_$img","_src","_poster","_srcset","_sizes","_html","_hasPoster","getResponsiveSrc","srcItms","rsWidth","rsSrc","__src","wWidth","poster","_isVideo","videoClass","picturefill","warn","_speed","fromTouch","fromThumb","_prevIndex","_length","_time","downloadUrl","arrowDisable","touchPrev","touchNext","goToNextSlide","_loop","goToPrevSlide","setTranslate","xValue","yValue","touchMove","startCoords","endCoords","distance","abs","touchEnd","isMoved","manageSwipeClass","targetTouches","isDraging","_touchNext","_touchPrev","err","autoplay","progressBar","fourceAutoplay","autoplayControls","appendAutoplayControlsTo","Autoplay","core","fromAuto","canceledOnTouch","fourceAutoplayTemp","startlAuto","cancelAuto","_$progressBar","_$progress","isFullScreen","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","msFullscreenElement","fullScreen","Fullscreen","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","requestFullscreen","msRequestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","exitFullscreen","msExitFullscreen","mozCancelFullScreen","webkitExitFullscreen","fullscreen","pager","Pager","$pagerCont","$pagerOuter","pagerList","thumb","exThumbImage","_$this","prevIndex","thumbnail","animateThumb","currentPagerPosition","thumbWidth","thumbHeight","thumbContHeight","thumbMargin","showThumbByDefault","toogleThumb","pullCaptionUp","enableThumbDrag","enableThumbSwipe","loadYoutubeThumbnail","youtubeThumbSize","loadVimeoThumbnail","vimeoThumbSize","loadDailymotionThumbnail","Thumbnail","$thumbOuter","thumbOuterWidth","thumbTotalWidth","thumbIndex","thumbClickable","toogle","thumbkeyPress","getThumb","thumbImg","vimeoId","vimeoErrorThumbSize","thumbList","$thumb","$this","vimeoVideoId","tempLeft","onHasVideo","loadVideo","videojs","videojsOptions","videoLoaded","autoplayFirstVideo","play","onAferAppendSlide","$videoCont","videoMaxWidth","onBeforeSlide","$videoSlide","youtubePlayer","vimeoPlayer","dailymotionPlayer","vkPlayer","html5Player","$f","api","youtubePlayerParams","vimeoPlayerParams","dailymotionPlayerParams","vkPlayerParams","Video","loadVideoOnclick","noPoster","video","_loadVideo","$tempImg","scale","actualSize","enableZoomAfter","useLeftForZoom","isChrome","Zoom","zoomabletimeout","zoomIcons","scaleVal","_x","_y","$image","offsetX","offsetY","callScale","resetZoom","fromIcon","nw","_scale","tapped","zoomDrag","zoomSwipe","allowX","allowY","distanceX","distanceY","_$el","touchendZoom","minY","maxY","minX","maxX","Hash","oldHash","history","replaceState","pathname","search","_idx","share","facebook","facebookDropdownText","twitter","twitterDropdownText","googlePlus","googlePlusDropdownText","pinterest","pinterestDropdownText","Share","shareHtml","getSahreProps","shareProp","_href","_prop","Defaults","_handlers","_plugins","_supress","_current","_coordinates","_breakpoint","_width","_items","_clones","_mergers","_widths","_invalidated","_pipe","_drag","time","pointer","stage","current","_states","tags","initializing","animating","dragging","Plugins","Workers","initialize","center","rewind","mouseDrag","touchDrag","pullDrag","freeDrag","stagePadding","mergeFit","autoWidth","startPosition","rtl","smartSpeed","fluidSpeed","dragEndSpeed","responsiveRefreshRate","responsiveBaseElement","fallbackEasing","info","nestedItemSelector","itemElement","stageElement","refreshClass","loadedClass","loadingClass","rtlClass","responsiveClass","dragClass","itemClass","stageClass","stageOuterClass","grabClass","Default","Inner","Outer","Type","State","$stage","margin-left","margin-right","toFixed","normalize","padding-left","padding-right","minimum","maximum","coordinates","op","preloadAutoWidthImages","invalidate","registerEventHandlers","viewport","Number","property","optionsLogic","prepare","onThrottledResize","resizeTimer","onResize","onTransitionEnd","onDragStart","onDragEnd","difference","onDragMove","transform3d","suppress","release","mergers","clones","originalTarget","count","onTrigger","register","owl","touches","changedTouches","owlCarousel","_core","_interval","_visible","initialized.owl.carousel","autoRefresh","watch","autoRefreshInterval","AutoRefresh","_loaded","initialized.owl.carousel change.owl.carousel resized.owl.carousel","lazyLoad","background-image","initialized.owl.carousel refreshed.owl.carousel","autoHeight","changed.owl.carousel","loaded.owl.lazy","autoHeightClass","AutoHeight","_videos","_playing","resize.owl.carousel","isInFullScreen","refreshed.owl.carousel","prepared.owl.carousel","fetch","videoHeight","videoWidth","thumbnail_large","framegrab_url","swapping","change.owl.carousel","drag.owl.carousel dragged.owl.carousel translated.owl.carousel","translate.owl.carousel","animateOut","animateIn","Animate","_timeout","_paused","_setAutoPlayInterval","play.owl.autoplay","stop.owl.autoplay","mouseover.owl.autoplay","autoplayHoverPause","mouseleave.owl.autoplay","touchstart.owl.core","touchend.owl.core","autoplayTimeout","autoplaySpeed","_getNextTimeout","_initialized","_pages","_controls","_templates","_overrides","dotsData","dotClass","added.owl.carousel","remove.owl.carousel","draw","nav","navText","navSpeed","navElement","navContainer","navContainerClass","navClass","slideBy","dotsClass","dots","dotsEach","dotsSpeed","dotsContainer","$relative","$previous","$next","$absolute","overides","page","Navigation","_hashes","URLhashListener","WebkitAnimation","MozAnimation","OAnimation","csstransforms","csstransforms3d","csstransitions","cssanimations","plyr","_browserSniff","nameOffset","verOffset","ix","ua","appName","fullVersion","majorVersion","isIE","isFirefox","isSafari","isIos","platform","isIphone","_supportMime","canPlayType","_injectScript","tag","firstScriptTag","_inArray","haystack","needle","_replaceAll","_wrap","child","_remove","_prependChild","_setAttributes","_is","boolean","_insertElement","_getClassname","_toggleClass","_hasClass","_matches","Element","_proxyListener","eventName","userListener","defaultListener","useCapture","_on","_toggleListener","eventList","Node","_event","bubbles","properties","CustomEvent","_toggleState","_getPercentage","_extend","objects","destination","_parseYouTubeId","$2","_parseVimeoId","_fullscreen","supportsFullScreen","requestFullScreen","cancelFullScreen","fullScreenEventName","browserPrefixes","il","Plyr","_triggerEvent","_console","debug","logPrefix","_getIconUrl","iconUrl","absolute","browser","_buildControls","iconPath","iconPrefix","i18n","restart","forward","buffered","tooltips","seek","currentTime","toggleMute","volume","volumeMin","volumeMax","toggleCaptions","toggleFullscreen","_setupFullscreen","supported","full","allowAudio","nativeSupport","fallback","_inFrame","_log","buttons","_focusTrap","_setupCaptions","_getElement","captions","videoContainer","insertAdjacentHTML","usingTextTracks","textTracks","captionSrc","captionExists","tracks","_showCaptions","track","activeCues","_setCaption","getCueAsHTML","currentCaption","lineSeparator","parts","_warn","_seekManualCaptions","_timecodeCommon","tc","tcpair","_subTcSecs","_timecodeMax","tc1","tc2","subcount","storage","captionsEnabled","defaultActive","_getElements","_checkFocus","isFullscreen","tabbables","_insertChildElements","_injectControls","loadSprite","seekTime","querySelector","htmlElement","labels","_findElements","mute","buffer","bar","played","_toggleNativeControls","_toggleStyleHook","_setTitle","frameTitle","_setupStorage","_storage","localStorage","removeItem","getItem","_updateStorage","setItem","stringify","_setupMedia","stopped","ontainer","videoWrapper","_setupEmbed","mediaId","embedId","containers","embedWrapper","YT","_youTubeReady","urls","onYouTubeReadyCallbacks","onYouTubeIframeAPIReady","Vimeo","_vimeoReady","vimeoTimer","soundCloud","SC","soundcloud","soundCloudTimer","_soundcloudReady","_embedReady","_setupInterface","_ready","videoId","Player","playerVars","rel","showinfo","iv_load_policy","cc_load_policy","cc_lang_pref","wmode","modestbranding","disablekb","origin","code","onReady","playVideo","pauseVideo","stopVideo","getDuration","muted","isMuted","getVideoData","buffering","getVideoLoadedFraction","lastBuffered","onStateChange","playing","seeking","getCurrentTime","byline","portrait","seconds","percent","Widget","Events","READY","seekTo","PLAY","PAUSE","PLAY_PROGRESS","currentPosition","LOAD_PROGRESS","loadProgress","FINISH","_play","_pause","_togglePlay","_rewind","_seek","_forward","targetTime","_getDuration","_updateSeekDisplay","setCurrentTime","mediaDuration","_checkPlaying","_toggleControls","_saveScrollPosition","_restoreScrollPosition","_toggleFullscreen","_toggleMute","_setVolume","setVolume","_increaseVolume","volumeStep","_decreaseVolume","_updateVolume","_toggleCaptions","_checkLoading","_updateProgress","pressed","_setProgress","_updateTimeDisplay","secs","mins","hours","displayHours","_displayDuration","displayDuration","_updateSeekTooltip","_timeUpdate","clientRect","hideControls","isEnterFullscreen","_source","_updateSource","getVideoUrl","getCurrentSound","permalink_url","currentSrc","firstSource","sources","crossorigin","_cancelRequests","_destroy","_updatePoster","_controlListeners","togglePlay","hadTabFocus","tabFocus","getFocusElement","focused","getKeyCode","checkTabFocus","nodeList","handleKey","held","inputEvent","keyboardShorcuts","allowed","editable","listeners","inverted","webkitDirectionInvertedFromDevice","deltaX","_mediaListeners","showPosterOnEnd","clickToPlay","ended","disableContextMenu","restore","cleanUp","function","original","replaceChild","controlsMissing","getOriginal","getContainer","getEmbed","getMedia","getType","getVolume","isPaused","toggleControls","basic","isOldIE","audioSupport","videoSupport","hook","players","instances","array","player","log","HTMLElement","params","cancelable","evt","initCustomEvent","loadScript","colBlank","reCalculatePrice","price","goToUri","uri","goToUriBad","goToFB","fbUri","elapsed","FB","ui","link","response","navigation","slideSpeed","paginationSpeed","singleItem","afterAction","resize","keyup","inputIncDec","selectric","masterSlave","btnInc","btnDec","exists","totalPrice","inputs","unitPrice","totalPriceHolder","processState","component","cmp","getSlavesByMaster","master","slavesIds","slaves","slave","disableAllByMaster","Boolean","masterIsAlreadyChecked","masterSiblings","IS_IPAD","IS_IPHONE","IS_IOS","IS_ANDROID","dataLayer","eCategory","eAction","eLabel","eValue"],"mappings":"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","file":"main.js","sourcesContent":["/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license\n//@ sourceMappingURL=jquery-1.10.2.min.map\n*/\n(function(e, t) {\n var n, r, i = typeof t, o = e.location, a = e.document, s = a.documentElement, l = e.jQuery, u = e.$, c = {}, p = [], f = \"1.10.2\", d = p.concat, h = p.push, g = p.slice, m = p.indexOf, y = c.toString, v = c.hasOwnProperty, b = f.trim, x = function(e, t) {\n return new x.fn.init(e, t, r)\n }, w = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source, T = /\\S+/g, C = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, N = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]*))$/, k = /^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/, E = /^[\\],:{}\\s]*$/, S = /(?:^|:|,)(?:\\s*\\[)+/g, A = /\\\\(?:[\"\\\\\\/bfnrt]|u[\\da-fA-F]{4})/g, j = /\"[^\"\\\\\\r\\n]*\"|true|false|null|-?(?:\\d+\\.|)\\d+(?:[eE][+-]?\\d+|)/g, D = /^-ms-/, L = /-([\\da-z])/gi, H = function(e, t) {\n return t.toUpperCase()\n }, q = function(e) {\n (a.addEventListener || \"load\" === e.type || \"complete\" === a.readyState) && (_(), x.ready())\n }, _ = function() {\n a.addEventListener ? (a.removeEventListener(\"DOMContentLoaded\", q, !1), e.removeEventListener(\"load\", q, !1)) : (a.detachEvent(\"onreadystatechange\", q), e.detachEvent(\"onload\", q))\n };\n x.fn = x.prototype = {\n jquery: f,\n constructor: x,\n init: function(e, n, r) {\n var i, o;\n if (!e)\n return this;\n if (\"string\" == typeof e) {\n if (i = \"<\" === e.charAt(0) && \">\" === e.charAt(e.length-1) && e.length >= 3 ? [null, e, null] : N.exec(e), !i ||!i[1] && n)\n return !n || n.jquery ? (n || r).find(e) : this.constructor(n).find(e);\n if (i[1]) {\n if (n = n instanceof x ? n[0] : n, x.merge(this, x.parseHTML(i[1], n && n.nodeType ? n.ownerDocument || n : a, !0)\n ), k.test(i[1]) && x.isPlainObject(n))for (i in n)\n x.isFunction(this[i]) ? this[i](n[i]) : this.attr(i, n[i]);\n return this\n }\n if (o = a.getElementById(i[2]), o && o.parentNode) {\n if (o.id !== i[2])\n return r.find(e);\n this.length = 1, this[0] = o\n }\n return this.context = a, this.selector = e, this\n }\n return e.nodeType ? (this.context = this[0] = e, this.length = 1, this) : x.isFunction(e) ? r.ready(e) : (e.selector !== t && (this.selector = e.selector, this.context = e.context), x.makeArray(e, this))\n },\n selector: \"\",\n length: 0,\n toArray: function() {\n return g.call(this)\n },\n get: function(e) {\n return null == e ? this.toArray() : 0 > e ? this[this.length + e] : this[e]\n },\n pushStack: function(e) {\n var t = x.merge(this.constructor(), e);\n return t.prevObject = this, t.context = this.context, t\n },\n each: function(e, t) {\n return x.each(this, e, t)\n },\n ready: function(e) {\n return x.ready.promise().done(e), this\n },\n slice: function() {\n return this.pushStack(g.apply(this, arguments))\n },\n first: function() {\n return this.eq(0)\n },\n last: function() {\n return this.eq(-1)\n },\n eq: function(e) {\n var t = this.length, n =+ e + (0 > e ? t : 0);\n return this.pushStack(n >= 0 && t > n ? [this[n]] : [])\n },\n map: function(e) {\n return this.pushStack(x.map(this, function(t, n) {\n return e.call(t, n, t)\n }))\n },\n end: function() {\n return this.prevObject || this.constructor(null)\n },\n push: h,\n sort: [].sort,\n splice: [].splice\n }, x.fn.init.prototype = x.fn, x.extend = x.fn.extend = function() {\n var e, n, r, i, o, a, s = arguments[0] || {}, l = 1, u = arguments.length, c=!1;\n for (\"boolean\" == typeof s && (c = s, s = arguments[1] || {}, l = 2), \"object\" == typeof s || x.isFunction(s) || (s = {}), u === l && (s = this, --l);\n u > l;\n l++)if (null != (o = arguments[l]))\n for (i in o)\n e = s[i], r = o[i], s !== r && (c && r && (x.isPlainObject(r) || (n = x.isArray(r))) ? (n ? (n=!1, a = e && x.isArray(e) ? e : []) : a = e && x.isPlainObject(e) ? e : {}, s[i] = x.extend(c, a, r)) : r !== t && (s[i] = r));\n return s\n }, x.extend({\n expando: \"jQuery\" + (f + Math.random()).replace(/\\D/g, \"\"),\n noConflict: function(t) {\n return e.$ === x && (e.$ = u), t && e.jQuery === x && (e.jQuery = l), x\n },\n isReady: !1,\n readyWait: 1,\n holdReady: function(e) {\n e ? x.readyWait++ : x.ready(!0)\n },\n ready: function(e) {\n if (e===!0?!--x.readyWait : !x.isReady) {\n if (!a.body)\n return setTimeout(x.ready);\n x.isReady=!0, e!==!0&&--x.readyWait > 0 || (n.resolveWith(a, [x]), x.fn.trigger && x(a).trigger(\"ready\").off(\"ready\"))\n }\n },\n isFunction: function(e) {\n return \"function\" === x.type(e)\n },\n isArray: Array.isArray || function(e) {\n return \"array\" === x.type(e)\n },\n isWindow: function(e) {\n return null != e && e == e.window\n },\n isNumeric: function(e) {\n return !isNaN(parseFloat(e)) && isFinite(e)\n },\n type: function(e) {\n return null == e ? e + \"\" : \"object\" == typeof e || \"function\" == typeof e ? c[y.call(e)] || \"object\" : typeof e\n },\n isPlainObject: function(e) {\n var n;\n if (!e || \"object\" !== x.type(e) || e.nodeType || x.isWindow(e))\n return !1;\n try {\n if (e.constructor&&!v.call(e, \"constructor\")&&!v.call(e.constructor.prototype, \"isPrototypeOf\"))\n return !1\n } catch (r) {\n return !1\n }\n if (x.support.ownLast)\n for (n in e)\n return v.call(e, n);\n for (n in e);\n return n === t || v.call(e, n)\n },\n isEmptyObject: function(e) {\n var t;\n for (t in e)\n return !1;\n return !0\n },\n error: function(e) {\n throw Error(e)\n },\n parseHTML: function(e, t, n) {\n if (!e || \"string\" != typeof e)\n return null;\n \"boolean\" == typeof t && (n = t, t=!1), t = t || a;\n var r = k.exec(e), i=!n && [];\n return r ? [t.createElement(r[1])] : (r = x.buildFragment([e], t, i), i && x(i).remove(), x.merge([], r.childNodes))\n },\n parseJSON: function(n) {\n return e.JSON && e.JSON.parse ? e.JSON.parse(n) : null === n ? n : \"string\" == typeof n && (n = x.trim(n), n && E.test(n.replace(A, \"@\").replace(j, \"]\").replace(S, \"\"))) ? Function(\"return \" + n)() : (x.error(\"Invalid JSON: \" + n), t)\n },\n parseXML: function(n) {\n var r, i;\n if (!n || \"string\" != typeof n)\n return null;\n try {\n e.DOMParser ? (i = new DOMParser, r = i.parseFromString(n, \"text/xml\")) : (r = new ActiveXObject(\"Microsoft.XMLDOM\"), r.async = \"false\", r.loadXML(n))\n } catch (o) {\n r = t\n }\n return r && r.documentElement&&!r.getElementsByTagName(\"parsererror\").length || x.error(\"Invalid XML: \" + n), r\n },\n noop: function() {},\n globalEval: function(t) {\n t && x.trim(t) && (e.execScript || function(t) {\n e.eval.call(e, t)\n })(t)\n },\n camelCase: function(e) {\n return e.replace(D, \"ms-\").replace(L, H)\n },\n nodeName: function(e, t) {\n return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase()\n },\n each: function(e, t, n) {\n var r, i = 0, o = e.length, a = M(e);\n if (n) {\n if (a) {\n for (; o > i; i++)\n if (r = t.apply(e[i], n), r===!1)\n break\n } else\n for (i in e)\n if (r = t.apply(e[i], n), r===!1)\n break\n } else if (a) {\n for (; o > i; i++)\n if (r = t.call(e[i], i, e[i]), r===!1)\n break\n } else\n for (i in e)\n if (r = t.call(e[i], i, e[i]), r===!1)\n break;\n return e\n },\n trim: b&&!b.call(\"\\ufeff\\u00a0\") ? function(e) {\n return null == e ? \"\" : b.call(e)\n }\n : function(e) {\n return null == e ? \"\" : (e + \"\").replace(C, \"\")\n },\n makeArray: function(e, t) {\n var n = t || [];\n return null != e && (M(Object(e)) ? x.merge(n, \"string\" == typeof e ? [e] : e) : h.call(n, e)), n\n },\n inArray: function(e, t, n) {\n var r;\n if (t) {\n if (m)\n return m.call(t, e, n);\n for (r = t.length, n = n ? 0 > n ? Math.max(0, r + n)\n : n:\n 0;\n r > n;\n n++)if (n in t && t[n] === e)\n return n\n }\n return -1\n },\n merge: function(e, n) {\n var r = n.length, i = e.length, o = 0;\n if (\"number\" == typeof r)\n for (; r > o; o++)\n e[i++] = n[o];\n else\n while (n[o] !== t)\n e[i++] = n[o++];\n return e.length = i, e\n },\n grep: function(e, t, n) {\n var r, i = [], o = 0, a = e.length;\n for (n=!!n; a > o; o++)\n r=!!t(e[o], o), n !== r && i.push(e[o]);\n return i\n },\n map: function(e, t, n) {\n var r, i = 0, o = e.length, a = M(e), s = [];\n if (a)\n for (; o > i; i++)\n r = t(e[i], i, n), null != r && (s[s.length] = r);\n else\n for (i in e)\n r = t(e[i], i, n), null != r && (s[s.length] = r);\n return d.apply([], s)\n },\n guid: 1,\n proxy: function(e, n) {\n var r, i, o;\n return \"string\" == typeof n && (o = e[n], n = e, e = o), x.isFunction(e) ? (r = g.call(arguments, 2), i = function() {\n return e.apply(n || this, r.concat(g.call(arguments)))\n }, i.guid = e.guid = e.guid || x.guid++, i) : t\n },\n access: function(e, n, r, i, o, a, s) {\n var l = 0, u = e.length, c = null == r;\n if (\"object\" === x.type(r)) {\n o=!0;\n for (l in r)\n x.access(e, n, l, r[l], !0, a, s)\n } else if (i !== t && (o=!0, x.isFunction(i) || (s=!0), c && (s ? (n.call(e, i)\n , n = null) : (c = n, n = function(e, t, n) {\n return c.call(x(e), n)\n })), n))for (; u > l; l++)\n n(e[l], r, s ? i : i.call(e[l], l, n(e[l], r)));\n return o ? e : c ? n.call(e) : u ? n(e[0], r) : a\n },\n now: function() {\n return (new Date).getTime()\n },\n swap: function(e, t, n, r) {\n var i, o, a = {};\n for (o in t)\n a[o] = e.style[o], e.style[o] = t[o];\n i = n.apply(e, r || []);\n for (o in t)\n e.style[o] = a[o];\n return i\n }\n }), x.ready.promise = function(t) {\n if (!n)\n if (n = x.Deferred(), \"complete\" === a.readyState)\n setTimeout(x.ready);\n else if (a.addEventListener)\n a.addEventListener(\"DOMContentLoaded\", q, !1), e.addEventListener(\"load\", q, !1);\n else {\n a.attachEvent(\"onreadystatechange\", q), e.attachEvent(\"onload\", q);\n var r=!1;\n try {\n r = null == e.frameElement && a.documentElement\n } catch (i) {}\n r && r.doScroll && function o() {\n if (!x.isReady) {\n try {\n r.doScroll(\"left\")\n } catch (e) {\n return setTimeout(o, 50)\n }\n _(), x.ready()\n }\n }()\n }\n return n.promise(t)\n }, x.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function(e, t) {\n c[\"[object \" + t + \"]\"] = t.toLowerCase()\n });\n function M(e) {\n var t = e.length, n = x.type(e);\n return x.isWindow(e)?!1 : 1 === e.nodeType && t?!0 : \"array\" === n || \"function\" !== n && (0 === t || \"number\" == typeof t && t > 0 && t-1 in e)\n }\n r = x(a), function(e, t) {\n var n, r, i, o, a, s, l, u, c, p, f, d, h, g, m, y, v, b = \"sizzle\" +- new Date, w = e.document, T = 0, C = 0, N = st(), k = st(), E = st(), S=!1, A = function(e, t) {\n return e === t ? (S=!0, 0) : 0\n }, j = typeof t, D = 1<<31, L = {}.hasOwnProperty, H = [], q = H.pop, _ = H.push, M = H.push, O = H.slice, F = H.indexOf || function(e) {\n var t = 0, n = this.length;\n for (; n > t; t++)\n if (this[t] === e)\n return t;\n return -1\n }, B = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\", P = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\", R = \"(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+\", W = R.replace(\"w\", \"w#\"), $ = \"\\\\[\" + P + \"*(\" + R + \")\" + P + \"*(?:([*^$|!~]?=)\" + P + \"*(?:(['\\\"])((?:\\\\\\\\.|[^\\\\\\\\])*?)\\\\3|(\" + W + \")|)|)\" + P + \"*\\\\]\", I = \":(\" + R + \")(?:\\\\(((['\\\"])((?:\\\\\\\\.|[^\\\\\\\\])*?)\\\\3|((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + $.replace(3, 8) + \")*)|.*)\\\\)|)\", z = RegExp(\"^\" + P + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + P + \"+$\", \"g\"), X = RegExp(\"^\" + P + \"*,\" + P + \"*\"), U = RegExp(\"^\" + P + \"*([>+~]|\" + P + \")\" + P + \"*\"), V = RegExp(P + \"*[+~]\"), Y = RegExp(\"=\" + P + \"*([^\\\\]'\\\"]*)\" + P + \"*\\\\]\", \"g\"), J = RegExp(I), G = RegExp(\"^\" + W + \"$\"), Q = {\n ID: RegExp(\"^#(\" + R + \")\"),\n CLASS: RegExp(\"^\\\\.(\" + R + \")\"),\n TAG: RegExp(\"^(\" + R.replace(\"w\", \"w*\") + \")\"),\n ATTR: RegExp(\"^\" + $),\n PSEUDO: RegExp(\"^\" + I),\n CHILD: RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + P + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + P + \"*(?:([+-]|)\" + P + \"*(\\\\d+)|))\" + P + \"*\\\\)|)\", \"i\"),\n bool: RegExp(\"^(?:\" + B + \")$\", \"i\"),\n needsContext: RegExp(\"^\" + P + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + P + \"*((?:-\\\\d)?\\\\d*)\" + P + \"*\\\\)|)(?=[^-]|$)\", \"i\")\n }, K = /^[^{]+\\{\\s*\\[native \\w/, Z = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/, et = /^(?:input|select|textarea|button)$/i, tt = /^h\\d$/i, nt = /'|\\\\/g, rt = RegExp(\"\\\\\\\\([\\\\da-f]{1,6}\" + P + \"?|(\" + P + \")|.)\", \"ig\"), it = function(e, t, n) {\n var r = \"0x\" + t-65536;\n return r !== r || n ? t : 0 > r ? String.fromCharCode(r + 65536) : String.fromCharCode(55296 | r>>10, 56320 | 1023 & r)\n };\n try {\n M.apply(H = O.call(w.childNodes), w.childNodes), H[w.childNodes.length].nodeType\n } catch (ot) {\n M = {\n apply: H.length ? function(e, t) {\n _.apply(e, O.call(t))\n }\n : function(e, t) {\n var n = e.length, r = 0;\n while (e[n++] = t[r++]);\n e.length = n-1\n }\n }\n }\n function at(e, t, n, i) {\n var o, a, s, l, u, c, d, m, y, x;\n if ((t ? t.ownerDocument || t : w) !== f && p(t), t = t || f, n = n || [], !e || \"string\" != typeof e)\n return n;\n if (1 !== (l = t.nodeType) && 9 !== l)\n return [];\n if (h&&!i) {\n if (o = Z.exec(e))\n if (s = o[1]) {\n if (9 === l) {\n if (a = t.getElementById(s), !a ||!a.parentNode)\n return n;\n if (a.id === s)\n return n.push(a), n\n } else if (t.ownerDocument && (a = t.ownerDocument.getElementById(s)) && v(t, a) && a.id === s)\n return n.push(a), n\n } else {\n if (o[2])\n return M.apply(n, t.getElementsByTagName(e)), n;\n if ((s = o[3]) && r.getElementsByClassName && t.getElementsByClassName)\n return M.apply(n, t.getElementsByClassName(s)), n\n }\n if (r.qsa && (!g ||!g.test(e))) {\n if (m = d = b, y = t, x = 9 === l && e, 1 === l && \"object\" !== t.nodeName.toLowerCase()\n ) {\n c = mt(e), (d = t.getAttribute(\"id\")) ? m = d.replace(nt, \"\\\\$&\") : t.setAttribute(\"id\", m), m = \"[id='\" + m + \"'] \", u = c.length;\n while (u--)\n c[u] = m + yt(c[u]);\n y = V.test(e) && t.parentNode || t, x = c.join(\",\")\n }\n if (x)\n try {\n return M.apply(n, y.querySelectorAll(x)), n\n } catch (T) {} finally {\n d || t.removeAttribute(\"id\")\n }\n }\n }\n return kt(e.replace(z, \"$1\"), t, n, i)\n }\n function st() {\n var e = [];\n function t(n, r) {\n return e.push(n += \" \") > o.cacheLength && delete t[e.shift()], t[n] = r\n }\n return t\n }\n function lt(e) {\n return e[b]=!0, e\n }\n function ut(e) {\n var t = f.createElement(\"div\");\n try {\n return !!e(t)\n } catch (n) {\n return !1\n } finally {\n t.parentNode && t.parentNode.removeChild(t), t = null\n }\n }\n function ct(e, t) {\n var n = e.split(\"|\"), r = e.length;\n while (r--)\n o.attrHandle[n[r]] = t\n }\n function pt(e, t) {\n var n = t && e, r = n && 1 === e.nodeType && 1 === t.nodeType && (~t.sourceIndex || D) - (~e.sourceIndex || D);\n if (r)\n return r;\n if (n)\n while (n = n.nextSibling)\n if (n === t)\n return -1;\n return e ? 1 : -1\n }\n function ft(e) {\n return function(t) {\n var n = t.nodeName.toLowerCase();\n return \"input\" === n && t.type === e\n }\n }\n function dt(e) {\n return function(t) {\n var n = t.nodeName.toLowerCase();\n return (\"input\" === n || \"button\" === n) && t.type === e\n }\n }\n function ht(e) {\n return lt(function(t) {\n return t =+ t, lt(function(n, r) {\n var i, o = e([], n.length, t), a = o.length;\n while (a--)\n n[i = o[a]] && (n[i]=!(r[i] = n[i]))\n })\n })\n }\n s = at.isXML = function(e) {\n var t = e && (e.ownerDocument || e).documentElement;\n return t ? \"HTML\" !== t.nodeName : !1\n }, r = at.support = {}, p = at.setDocument = function(e) {\n var n = e ? e.ownerDocument || e: w, i = n.defaultView;\n return n !== f && 9 === n.nodeType && n.documentElement ? (f = n, d = n.documentElement, h=!s(n), i && i.attachEvent && i !== i.top && i.attachEvent(\"onbeforeunload\", function() {\n p()\n }), r.attributes = ut(function(e) {\n return e.className = \"i\", !e.getAttribute(\"className\")\n }), r.getElementsByTagName = ut(function(e) {\n return e.appendChild(n.createComment(\"\")), !e.getElementsByTagName(\"*\").length\n }), r.getElementsByClassName = ut(function(e) {\n return e.innerHTML = \"
\", e.firstChild.className = \"i\", 2 === e.getElementsByClassName(\"i\").length\n }), r.getById = ut(function(e) {\n return d.appendChild(e).id = b, !n.getElementsByName ||!n.getElementsByName(b).length\n }), r.getById ? (o.find.ID = function(e, t) {\n if (typeof t.getElementById !== j && h) {\n var n = t.getElementById(e);\n return n && n.parentNode ? [n] : []\n }\n }, o.filter.ID = function(e) {\n var t = e.replace(rt, it);\n return function(e) {\n return e.getAttribute(\"id\") === t\n }\n }) : (delete o.find.ID, o.filter.ID = function(e) {\n var t = e.replace(rt, it);\n return function(e) {\n var n = typeof e.getAttributeNode !== j && e.getAttributeNode(\"id\");\n return n && n.value === t\n }\n }), o.find.TAG = r.getElementsByTagName ? function(e, n) {\n return typeof n.getElementsByTagName !== j ? n.getElementsByTagName(e) : t\n } : function(e, t) {\n var n, r = [], i = 0, o = t.getElementsByTagName(e);\n if (\"*\" === e) {\n while (n = o[i++])\n 1 === n.nodeType && r.push(n);\n return r\n }\n return o\n }, o.find.CLASS = r.getElementsByClassName && function(e, n) {\n return typeof n.getElementsByClassName !== j && h ? n.getElementsByClassName(e) : t\n }, m = [], g = [], (r.qsa = K.test(n.querySelectorAll)) && (ut(function(e) {\n e.innerHTML = \"\", e.querySelectorAll(\"[selected]\").length || g.push(\"\\\\[\" + P + \"*(?:value|\" + B + \")\"), e.querySelectorAll(\":checked\").length || g.push(\":checked\")\n }), ut(function(e) {\n var t = n.createElement(\"input\");\n t.setAttribute(\"type\", \"hidden\"), e.appendChild(t).setAttribute(\"t\", \"\"), e.querySelectorAll(\"[t^='']\").length && g.push(\"[*^$]=\" + P + \"*(?:''|\\\"\\\")\"), e.querySelectorAll(\":enabled\").length || g.push(\":enabled\", \":disabled\"), e.querySelectorAll(\"*,:x\"), g.push(\",.*:\")\n })), (r.matchesSelector = K.test(y = d.webkitMatchesSelector || d.mozMatchesSelector || d.oMatchesSelector || d.msMatchesSelector)) && ut(function(e) {\n r.disconnectedMatch = y.call(e, \"div\"), y.call(e, \"[s!='']:x\"), m.push(\"!=\", I)\n }), g = g.length && RegExp(g.join(\"|\")), m = m.length && RegExp(m.join(\"|\")), v = K.test(d.contains) || d.compareDocumentPosition ? function(e, t) {\n var n = 9 === e.nodeType ? e.documentElement: e, r = t && t.parentNode;\n return e === r ||!(!r || 1 !== r.nodeType ||!(n.contains ? n.contains(r) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(r)))\n } : function(e, t) {\n if (t)\n while (t = t.parentNode)\n if (t === e)\n return !0;\n return !1\n }, A = d.compareDocumentPosition ? function(e, t) {\n if (e === t)\n return S=!0, 0;\n var i = t.compareDocumentPosition && e.compareDocumentPosition && e.compareDocumentPosition(t);\n return i ? 1 & i ||!r.sortDetached && t.compareDocumentPosition(e) === i ? e === n || v(w, e)?-1 : t === n || v(w, t) ? 1 : c ? F.call(c, e) - F.call(c, t) : 0 : 4 & i?-1 : 1 : e.compareDocumentPosition?-1 : 1\n } : function(e, t) {\n var r, i = 0, o = e.parentNode, a = t.parentNode, s = [e], l = [t];\n if (e === t)\n return S=!0, 0;\n if (!o ||!a)\n return e === n?-1 : t === n ? 1 : o?-1 : a ? 1 : c ? F.call(c, e) - F.call(c, t) : 0;\n if (o === a)\n return pt(e, t);\n r = e;\n while (r = r.parentNode)\n s.unshift(r);\n r = t;\n while (r = r.parentNode)\n l.unshift(r);\n while (s[i] === l[i])\n i++;\n return i ? pt(s[i], l[i]) : s[i] === w?-1 : l[i] === w ? 1 : 0\n }, n) : f\n }, at.matches = function(e, t) {\n return at(e, null, null, t)\n }, at.matchesSelector = function(e, t) {\n if ((e.ownerDocument || e) !== f && p(e), t = t.replace(Y, \"='$1']\")\n , !(!r.matchesSelector ||!h || m && m.test(t) || g && g.test(t)))try {\n var n = y.call(e, t);\n if (n || r.disconnectedMatch || e.document && 11 !== e.document.nodeType)\n return n\n } catch (i) {}\n return at(t, f, null, [e]).length > 0\n }, at.contains = function(e, t) {\n return (e.ownerDocument || e) !== f && p(e), v(e, t)\n }, at.attr = function(e, n) {\n (e.ownerDocument || e) !== f && p(e);\n var i = o.attrHandle[n.toLowerCase()], a = i && L.call(o.attrHandle, n.toLowerCase()) ? i(e, n, !h): t;\n return a === t ? r.attributes ||!h ? e.getAttribute(n) : (a = e.getAttributeNode(n)) && a.specified ? a.value : null : a\n }, at.error = function(e) {\n throw Error(\"Syntax error, unrecognized expression: \" + e)\n }, at.uniqueSort = function(e) {\n var t, n = [], i = 0, o = 0;\n if (S=!r.detectDuplicates, c=!r.sortStable && e.slice(0)\n , e.sort(A), S) {\n while (t = e[o++])\n t === e[o] && (i = n.push(o));\n while (i--)\n e.splice(n[i], 1)\n }\n return e\n }, a = at.getText = function(e) {\n var t, n = \"\", r = 0, i = e.nodeType;\n if (i) {\n if (1 === i || 9 === i || 11 === i) {\n if (\"string\" == typeof e.textContent)\n return e.textContent;\n for (e = e.firstChild; e; e = e.nextSibling)\n n += a(e)\n } else if (3 === i || 4 === i)\n return e.nodeValue\n } else\n for (; t = e[r]; r++)\n n += a(t);\n return n\n }, o = at.selectors = {\n cacheLength: 50,\n createPseudo: lt,\n match: Q,\n attrHandle: {},\n find: {},\n relative: {\n \">\": {\n dir: \"parentNode\",\n first: !0\n },\n \" \": {\n dir: \"parentNode\"\n },\n \"+\": {\n dir: \"previousSibling\",\n first: !0\n },\n \"~\": {\n dir: \"previousSibling\"\n }\n },\n preFilter: {\n ATTR: function(e) {\n return e[1] = e[1].replace(rt, it), e[3] = (e[4] || e[5] || \"\").replace(rt, it), \"~=\" === e[2] && (e[3] = \" \" + e[3] + \" \"), e.slice(0, 4)\n },\n CHILD: function(e) {\n return e[1] = e[1].toLowerCase(), \"nth\" === e[1].slice(0, 3) ? (e[3] || at.error(e[0]), e[4] =+ (e[4] ? e[5] + (e[6] || 1) : 2 * (\"even\" === e[3] || \"odd\" === e[3])), e[5] =+ (e[7] + e[8] || \"odd\" === e[3])) : e[3] && at.error(e[0]), e\n },\n PSEUDO: function(e) {\n var n, r=!e[5] && e[2];\n return Q.CHILD.test(e[0]) ? null : (e[3] && e[4] !== t ? e[2] = e[4] : r && J.test(r) && (n = mt(r, !0)) && (n = r.indexOf(\")\", r.length - n) - r.length) && (e[0] = e[0].slice(0, n), e[2] = r.slice(0, n)), e.slice(0, 3))\n }\n },\n filter: {\n TAG: function(e) {\n var t = e.replace(rt, it).toLowerCase();\n return \"*\" === e ? function() {\n return !0\n } : function(e) {\n return e.nodeName && e.nodeName.toLowerCase() === t\n }\n },\n CLASS: function(e) {\n var t = N[e + \" \"];\n return t || (t = RegExp(\"(^|\" + P + \")\" + e + \"(\" + P + \"|$)\")) && N(e, function(e) {\n return t.test(\"string\" == typeof e.className && e.className || typeof e.getAttribute !== j && e.getAttribute(\"class\") || \"\")\n })\n },\n ATTR: function(e, t, n) {\n return function(r) {\n var i = at.attr(r, e);\n return null == i ? \"!=\" === t : t ? (i += \"\", \"=\" === t ? i === n : \"!=\" === t ? i !== n : \"^=\" === t ? n && 0 === i.indexOf(n) : \"*=\" === t ? n && i.indexOf(n)>-1 : \"$=\" === t ? n && i.slice( - n.length) === n : \"~=\" === t ? (\" \" + i + \" \").indexOf(n)>-1 : \"|=\" === t ? i === n || i.slice(0, n.length + 1) === n + \"-\" : !1) : !0\n }\n },\n CHILD: function(e, t, n, r, i) {\n var o = \"nth\" !== e.slice(0, 3), a = \"last\" !== e.slice(-4), s = \"of-type\" === t;\n return 1 === r && 0 === i ? function(e) {\n return !!e.parentNode\n } : function(t, n, l) {\n var u, c, p, f, d, h, g = o !== a ? \"nextSibling\": \"previousSibling\", m = t.parentNode, y = s && t.nodeName.toLowerCase(), v=!l&&!s;\n if (m) {\n if (o) {\n while (g) {\n p = t;\n while (p = p[g])\n if (s ? p.nodeName.toLowerCase() === y : 1 === p.nodeType)\n return !1;\n h = g = \"only\" === e&&!h && \"nextSibling\"\n }\n return !0\n }\n if (h = [a ? m.firstChild: m.lastChild], a && v) {\n c = m[b] || (m[b] = {}), u = c[e] || [], d = u[0] === T && u[1], f = u[0] === T && u[2], p = d && m.childNodes[d];\n while (p=++d && p && p[g] || (f = d = 0) || h.pop()\n )if (1 === p.nodeType&&++f && p === t) {\n c[e] = [T, d, f];\n break\n }\n } else if (v && (u = (t[b] || (t[b] = {}))[e]) && u[0] === T)\n f = u[1];\n else\n while (p=++d && p && p[g] || (f = d = 0) || h.pop()\n )if ((s ? p.nodeName.toLowerCase() === y : 1 === p.nodeType)&&++f && (v && ((p[b] || (p[b] = {})\n )[e] = [T, f]), p === t))break;\n return f -= i, f === r || 0 === f%r && f / r >= 0\n }\n }\n },\n PSEUDO: function(e, t) {\n var n, r = o.pseudos[e] || o.setFilters[e.toLowerCase()] || at.error(\"unsupported pseudo: \" + e);\n return r[b] ? r(t) : r.length > 1 ? (n = [e, e, \"\", t], o.setFilters.hasOwnProperty(e.toLowerCase()) ? lt(function(e, n) {\n var i, o = r(e, t), a = o.length;\n while (a--)i = F.call(e, o[a]), e[i]=!(n[i] = o[a])\n }) : function(e) {\n return r(e, 0, n)\n }) : r\n }\n },\n pseudos: {\n not: lt(function(e) {\n var t = [], n = [], r = l(e.replace(z, \"$1\"));\n return r[b] ? lt(function(e, t, n, i) {\n var o, a = r(e, null, i, []), s = e.length;\n while (s--)(o = a[s]) && (e[s]=!(t[s] = o))\n }) : function(e, i, o) {\n return t[0] = e, r(t, null, o, n), !n.pop()\n }\n }), has : lt(function(e) {\n return function(t) {\n return at(e, t).length > 0\n }\n }), contains: lt(function(e) {\n return function(t) {\n return (t.textContent || t.innerText || a(t)).indexOf(e)>-1\n }\n }), lang: lt(function(e) {\n return G.test(e || \"\") || at.error(\"unsupported lang: \" + e), e = e.replace(rt, it).toLowerCase(), function(t) {\n var n;\n do\n if (n = h ? t.lang : t.getAttribute(\"xml:lang\") || t.getAttribute(\"lang\"))\n return n = n.toLowerCase(), n === e || 0 === n.indexOf(e + \"-\");\n while ((t = t.parentNode) && 1 === t.nodeType);\n return !1\n }\n }), target: function(t) {\n var n = e.location && e.location.hash;\n return n && n.slice(1) === t.id\n }, root: function(e) {\n return e === d\n }, focus: function(e) {\n return e === f.activeElement && (!f.hasFocus || f.hasFocus())&&!!(e.type || e.href||~e.tabIndex)\n }, enabled: function(e) {\n return e.disabled===!1\n }, disabled: function(e) {\n return e.disabled===!0\n }, checked: function(e) {\n var t = e.nodeName.toLowerCase();\n return \"input\" === t&&!!e.checked || \"option\" === t&&!!e.selected\n }, selected: function(e) {\n return e.parentNode && e.parentNode.selectedIndex, e.selected===!0\n }, empty: function(e) {\n for (e = e.firstChild; e; e = e.nextSibling)\n if (e.nodeName > \"@\" || 3 === e.nodeType || 4 === e.nodeType)\n return !1;\n return !0\n }, parent: function(e) {\n return !o.pseudos.empty(e)\n }, header: function(e) {\n return tt.test(e.nodeName)\n }, input: function(e) {\n return et.test(e.nodeName)\n }, button: function(e) {\n var t = e.nodeName.toLowerCase();\n return \"input\" === t && \"button\" === e.type || \"button\" === t\n }, text: function(e) {\n var t;\n return \"input\" === e.nodeName.toLowerCase() && \"text\" === e.type && (null == (t = e.getAttribute(\"type\")) || t.toLowerCase() === e.type)\n }, first: ht(function() {\n return [0]\n }), last: ht(function(e, t) {\n return [t-1]\n }), eq: ht(function(e, t, n) {\n return [0 > n ? n + t: n]\n }), even: ht(function(e, t) {\n var n = 0;\n for (; t > n; n += 2)\n e.push(n);\n return e\n }), odd: ht(function(e, t) {\n var n = 1;\n for (; t > n; n += 2)\n e.push(n);\n return e\n }), lt: ht(function(e, t, n) {\n var r = 0 > n ? n + t: n;\n for (; --r >= 0;)\n e.push(r);\n return e\n }), gt: ht(function(e, t, n) {\n var r = 0 > n ? n + t: n;\n for (; t>++r;)\n e.push(r);\n return e\n })\n }\n }, o.pseudos.nth = o.pseudos.eq; for (n in{\n radio : !0, checkbox : !0, file : !0, password : !0, image : !0\n })o.pseudos[n] = ft(n);\n for (n in{\n submit: !0,\n reset: !0\n })o.pseudos[n] = dt(n);\n function gt() {}\n gt.prototype = o.filters = o.pseudos, o.setFilters = new gt;\n function mt(e, t) {\n var n, r, i, a, s, l, u, c = k[e + \" \"];\n if (c)\n return t ? 0 : c.slice(0);\n s = e, l = [], u = o.preFilter;\n while (s) {\n (!n || (r = X.exec(s))) && (r && (s = s.slice(r[0].length) || s), l.push(i = [])), n=!1, (r = U.exec(s)) && (n = r.shift(), i.push({\n value : n, type : r[0].replace(z, \" \")\n }), s = s.slice(n.length));\n for (a in o.filter)\n !(r = Q[a].exec(s)) || u[a]&&!(r = u[a](r)) || (n = r.shift(), i.push({\n value : n, type : a, matches : r\n }), s = s.slice(n.length));\n if (!n)\n break\n }\n return t ? s.length : s ? at.error(e) : k(e, l).slice(0)\n }\n function yt(e) {\n var t = 0, n = e.length, r = \"\";\n for (; n > t; t++)\n r += e[t].value;\n return r\n }\n function vt(e, t, n) {\n var r = t.dir, o = n && \"parentNode\" === r, a = C++;\n return t.first ? function(t, n, i) {\n while (t = t[r])\n if (1 === t.nodeType || o)\n return e(t, n, i)\n } : function(t, n, s) {\n var l, u, c, p = T + \" \" + a;\n if (s) {\n while (t = t[r])\n if ((1 === t.nodeType || o) && e(t, n, s))\n return !0\n } else\n while (t = t[r])\n if (1 === t.nodeType || o)\n if (c = t[b] || (t[b] = {}), (u = c[r]) && u[0] === p) {\n if ((l = u[1])===!0 || l === i)\n return l===!0\n } else if (u = c[r] = [p], u[1] = e(t, n, s) || i, u[1]===!0)return !0\n }\n }\n function bt(e) {\n return e.length > 1 ? function(t, n, r) {\n var i = e.length;\n while (i--)\n if (!e[i](t, n, r))\n return !1;\n return !0\n } : e[0]\n }\n function xt(e, t, n, r, i) {\n var o, a = [], s = 0, l = e.length, u = null != t;\n for (; l > s; s++)(o = e[s])\n && (!n || n(o, r, i)) && (a.push(o), u && t.push(s));\n return a\n }\n function wt(e, t, n, r, i, o) {\n return r&&!r[b] && (r = wt(r)), i&&!i[b] && (i = wt(i, o)), lt(function(o, a, s, l) {\n var u, c, p, f = [], d = [], h = a.length, g = o || Nt(t || \"*\", s.nodeType ? [s] : s, []), m=!e ||!o && t ? g : xt(g, f, e, s, l), y = n ? i || (o ? e : h || r) ? [] : a : m;\n if (n && n(m, y, s, l), r) {\n u = xt(y, d), r(u, [], s, l), c = u.length;\n while (c--)(p = u[c]) && (y[d[c]]=!(m[d[c]] = p))\n }\n if (o) {\n if (i || e) {\n if (i) {\n u = [], c = y.length;\n while (c--)(p = y[c]) && u.push(m[c] = p);\n i(null, y = [], u, l)\n }\n c = y.length;\n while (c--)(p = y[c]) && (u = i ? F.call(o, p) : f[c])>-1 && (o[u]=!(a[u] = p))\n }\n } else\n y = xt(y === a ? y.splice(h, y.length) : y), i ? i(null, a, y, l) : M.apply(a, y)\n })\n }\n function Tt(e) {\n var t, n, r, i = e.length, a = o.relative[e[0].type], s = a || o.relative[\" \"], l = a ? 1: 0, c = vt(function(e) {\n return e === t\n }, s, !0), p = vt(function(e) {\n return F.call(t, e)>-1\n }, s, !0), f = [function(e, n, r) {\n return !a && (r || n !== u) || ((t = n).nodeType ? c(e, n, r) : p(e, n, r))\n }\n ];\n for (; i > l; l++)\n if (n = o.relative[e[l].type])\n f = [vt(bt(f), n)];\n else {\n if (n = o.filter[e[l].type].apply(null, e[l].matches), n[b]) {\n for (r=++l; i > r; r++)\n if (o.relative[e[r].type])\n break;\n return wt(l > 1 && bt(f), l > 1 && yt(e.slice(0, l-1).concat({\n value: \" \" === e[l-2].type ? \"*\": \"\"\n })).replace(z, \"$1\"), n, r > l && Tt(e.slice(l, r)), i > r && Tt(e = e.slice(r)), i > r && yt(e))\n }\n f.push(n)\n }\n return bt(f)\n }\n function Ct(e, t) {\n var n = 0, r = t.length > 0, a = e.length > 0, s = function(s, l, c, p, d) {\n var h, g, m, y = [], v = 0, b = \"0\", x = s && [], w = null != d, C = u, N = s || a && o.find.TAG(\"*\", d && l.parentNode || l), k = T += null == C ? 1: Math.random() || .1;\n for (w && (u = l !== f && l, i = n); null != (h = N[b]); b++) {\n if (a && h) {\n g = 0;\n while (m = e[g++])\n if (m(h, l, c)) {\n p.push(h);\n break\n }\n w && (T = k, i=++n)\n }\n r && ((h=!m && h) && v--, s && x.push(h))\n }\n if (v += b, r && b !== v) {\n g = 0;\n while (m = t[g++])\n m(x, y, l, c);\n if (s) {\n if (v > 0)\n while (b--)\n x[b] || y[b] || (y[b] = q.call(p));\n y = xt(y)\n }\n M.apply(p, y), w&&!s && y.length > 0 && v + t.length > 1 && at.uniqueSort(p)\n }\n return w && (T = k, u = C), x\n };\n return r ? lt(s) : s\n }\n l = at.compile = function(e, t) {\n var n, r = [], i = [], o = E[e + \" \"];\n if (!o) {\n t || (t = mt(e)), n = t.length;\n while (n--)\n o = Tt(t[n]), o[b] ? r.push(o) : i.push(o);\n o = E(e, Ct(i, r))\n }\n return o\n };\n function Nt(e, t, n) {\n var r = 0, i = t.length;\n for (; i > r; r++)\n at(e, t[r], n);\n return n\n }\n function kt(e, t, n, i) {\n var a, s, u, c, p, f = mt(e);\n if (!i && 1 === f.length) {\n if (s = f[0] = f[0].slice(0), s.length > 2 && \"ID\" === (u = s[0]).type && r.getById && 9 === t.nodeType && h && o.relative[s[1].type]) {\n if (t = (o.find.ID(u.matches[0].replace(rt, it), t) || [])[0], !t)\n return n;\n e = e.slice(s.shift().value.length)\n }\n a = Q.needsContext.test(e) ? 0 : s.length;\n while (a--) {\n if (u = s[a], o.relative[c = u.type])\n break;\n if ((p = o.find[c]) && (i = p(u.matches[0].replace(rt, it), V.test(s[0].type) && t.parentNode || t))) {\n if (s.splice(a, 1), e = i.length && yt(s)\n , !e)return M.apply(n, i), n;\n break\n }\n }\n }\n return l(e, f)(i, t, !h, n, V.test(e)), n\n }\n r.sortStable = b.split(\"\").sort(A).join(\"\") === b, r.detectDuplicates = S, p(), r.sortDetached = ut(function(e) {\n return 1 & e.compareDocumentPosition(f.createElement(\"div\"))\n }), ut(function(e) {\n return e.innerHTML = \"\", \"#\" === e.firstChild.getAttribute(\"href\")\n }) || ct(\"type|href|height|width\", function(e, n, r) {\n return r ? t : e.getAttribute(n, \"type\" === n.toLowerCase() ? 1 : 2)\n }), r.attributes && ut(function(e) {\n return e.innerHTML = \"\", e.firstChild.setAttribute(\"value\", \"\"), \"\" === e.firstChild.getAttribute(\"value\")\n }) || ct(\"value\", function(e, n, r) {\n return r || \"input\" !== e.nodeName.toLowerCase() ? t : e.defaultValue\n }), ut(function(e) {\n return null == e.getAttribute(\"disabled\")\n }) || ct(B, function(e, n, r) {\n var i;\n return r ? t : (i = e.getAttributeNode(n)) && i.specified ? i.value : e[n]===!0 ? n.toLowerCase() : null\n }), x.find = at, x.expr = at.selectors, x.expr[\":\"] = x.expr.pseudos, x.unique = at.uniqueSort, x.text = at.getText, x.isXMLDoc = at.isXML, x.contains = at.contains\n }(e);\n var O = {};\n function F(e) {\n var t = O[e] = {};\n return x.each(e.match(T) || [], function(e, n) {\n t[n]=!0\n }), t\n }\n x.Callbacks = function(e) {\n e = \"string\" == typeof e ? O[e] || F(e) : x.extend({}, e);\n var n, r, i, o, a, s, l = [], u=!e.once && [], c = function(t) {\n for (r = e.memory && t, i=!0, a = s || 0, s = 0, o = l.length, n=!0; l && o > a; a++)\n if (l[a].apply(t[0], t[1])===!1 && e.stopOnFalse) {\n r=!1;\n break\n }\n n=!1, l && (u ? u.length && c(u.shift()) : r ? l = [] : p.disable())\n }, p = {\n add: function() {\n if (l) {\n var t = l.length;\n (function i(t) {\n x.each(t, function(t, n) {\n var r = x.type(n);\n \"function\" === r ? e.unique && p.has(n) || l.push(n) : n && n.length && \"string\" !== r && i(n)\n })\n })(arguments), n ? o = l.length : r && (s = t, c(r))\n }\n return this\n },\n remove: function() {\n return l && x.each(arguments, function(e, t) {\n var r;\n while ((r = x.inArray(t, l, r))>-1)\n l.splice(r, 1), n && (o >= r && o--, a >= r && a--)\n }), this\n },\n has: function(e) {\n return e ? x.inArray(e, l)>-1 : !(!l ||!l.length)\n },\n empty: function() {\n return l = [], o = 0, this\n },\n disable: function() {\n return l = u = r = t, this\n },\n disabled: function() {\n return !l\n },\n lock: function() {\n return u = t, r || p.disable(), this\n },\n locked: function() {\n return !u\n },\n fireWith: function(e, t) {\n return !l || i&&!u || (t = t || [], t = [e, t.slice ? t.slice() : t], n ? u.push(t) : c(t)), this\n },\n fire: function() {\n return p.fireWith(this, arguments), this\n },\n fired: function() {\n return !!i\n }\n };\n return p\n }, x.extend({\n Deferred: function(e) {\n var t = [[\"resolve\", \"done\", x.Callbacks(\"once memory\"), \"resolved\"], [\"reject\", \"fail\", x.Callbacks(\"once memory\"), \"rejected\"], [\"notify\", \"progress\", x.Callbacks(\"memory\")]], n = \"pending\", r = {\n state: function() {\n return n\n },\n always: function() {\n return i.done(arguments).fail(arguments), this\n },\n then: function() {\n var e = arguments;\n return x.Deferred(function(n) {\n x.each(t, function(t, o) {\n var a = o[0], s = x.isFunction(e[t]) && e[t];\n i[o[1]](function() {\n var e = s && s.apply(this, arguments);\n e && x.isFunction(e.promise) ? e.promise().done(n.resolve).fail(n.reject).progress(n.notify) : n[a + \"With\"](this === r ? n.promise() : this, s ? [e] : arguments)\n })\n }), e = null\n }).promise()\n },\n promise: function(e) {\n return null != e ? x.extend(e, r) : r\n }\n }, i = {};\n return r.pipe = r.then, x.each(t, function(e, o) {\n var a = o[2], s = o[3];\n r[o[1]] = a.add, s && a.add(function() {\n n = s\n }, t[1^e][2].disable, t[2][2].lock), i[o[0]] = function() {\n return i[o[0] + \"With\"](this === i ? r : this, arguments), this\n }, i[o[0] + \"With\"] = a.fireWith\n }), r.promise(i), e && e.call(i, i), i\n },\n when: function(e) {\n var t = 0, n = g.call(arguments), r = n.length, i = 1 !== r || e && x.isFunction(e.promise) ? r: 0, o = 1 === i ? e: x.Deferred(), a = function(e, t, n) {\n return function(r) {\n t[e] = this, n[e] = arguments.length > 1 ? g.call(arguments) : r, n === s ? o.notifyWith(t, n) : --i || o.resolveWith(t, n)\n }\n }, s, l, u;\n if (r > 1)\n for (s = Array(r), l = Array(r)\n , u = Array(r);\n r > t;\n t++)n[t] && x.isFunction(n[t].promise) ? n[t].promise().done(a(t, u, n)).fail(o.reject).progress(a(t, l, s)) : --i;\n return i || o.resolveWith(u, n), o.promise()\n }\n }), x.support = function(t) {\n var n, r, o, s, l, u, c, p, f, d = a.createElement(\"div\");\n if (d.setAttribute(\"className\", \"t\"), d.innerHTML = \"
a\", n = d.getElementsByTagName(\"*\") || [], r = d.getElementsByTagName(\"a\")[0], !r ||!r.style ||!n.length)return t;\n s = a.createElement(\"select\"), u = s.appendChild(a.createElement(\"option\")), o = d.getElementsByTagName(\"input\")[0], r.style.cssText = \"top:1px;float:left;opacity:.5\", t.getSetAttribute = \"t\" !== d.className, t.leadingWhitespace = 3 === d.firstChild.nodeType, t.tbody=!d.getElementsByTagName(\"tbody\").length, t.htmlSerialize=!!d.getElementsByTagName(\"link\").length, t.style = /top/.test(r.getAttribute(\"style\")), t.hrefNormalized = \"/a\" === r.getAttribute(\"href\"), t.opacity = /^0.5/.test(r.style.opacity), t.cssFloat=!!r.style.cssFloat, t.checkOn=!!o.value, t.optSelected = u.selected, t.enctype=!!a.createElement(\"form\").enctype, t.html5Clone = \"<:nav>\" !== a.createElement(\"nav\").cloneNode(!0).outerHTML, t.inlineBlockNeedsLayout=!1, t.shrinkWrapBlocks=!1, t.pixelPosition=!1, t.deleteExpando=!0, t.noCloneEvent=!0, t.reliableMarginRight=!0, t.boxSizingReliable=!0, o.checked=!0, t.noCloneChecked = o.cloneNode(!0).checked, s.disabled=!0, t.optDisabled=!u.disabled;\n try {\n delete d.test\n } catch (h) {\n t.deleteExpando=!1\n }\n o = a.createElement(\"input\"), o.setAttribute(\"value\", \"\"), t.input = \"\" === o.getAttribute(\"value\"), o.value = \"t\", o.setAttribute(\"type\", \"radio\"), t.radioValue = \"t\" === o.value, o.setAttribute(\"checked\", \"t\"), o.setAttribute(\"name\", \"t\"), l = a.createDocumentFragment(), l.appendChild(o), t.appendChecked = o.checked, t.checkClone = l.cloneNode(!0).cloneNode(!0).lastChild.checked, d.attachEvent && (d.attachEvent(\"onclick\", function() {\n t.noCloneEvent=!1\n }), d.cloneNode(!0).click());\n for (f in{\n submit: !0,\n change: !0,\n focusin: !0\n })\n d.setAttribute(c = \"on\" + f, \"t\"), t[f + \"Bubbles\"] = c in e || d.attributes[c].expando===!1;\n d.style.backgroundClip = \"content-box\", d.cloneNode(!0).style.backgroundClip = \"\", t.clearCloneStyle = \"content-box\" === d.style.backgroundClip;\n for (f in x(t))\n break;\n return t.ownLast = \"0\" !== f, x(function() {\n var n, r, o, s = \"padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;\", l = a.getElementsByTagName(\"body\")[0];\n l && (n = a.createElement(\"div\"), n.style.cssText = \"border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px\", l.appendChild(n).appendChild(d), d.innerHTML = \"
t
\", o = d.getElementsByTagName(\"td\"), o[0].style.cssText = \"padding:0;margin:0;border:0;display:none\", p = 0 === o[0].offsetHeight, o[0].style.display = \"\", o[1].style.display = \"none\", t.reliableHiddenOffsets = p && 0 === o[0].offsetHeight, d.innerHTML = \"\", d.style.cssText = \"box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;\", x.swap(l, null != l.style.zoom ? {\n zoom: 1\n } : {}, function() {\n t.boxSizing = 4 === d.offsetWidth\n }), e.getComputedStyle && (t.pixelPosition = \"1%\" !== (e.getComputedStyle(d, null) || {}).top, t.boxSizingReliable = \"4px\" === (e.getComputedStyle(d, null) || {\n width: \"4px\"\n }).width, r = d.appendChild(a.createElement(\"div\")), r.style.cssText = d.style.cssText = s, r.style.marginRight = r.style.width = \"0\", d.style.width = \"1px\", t.reliableMarginRight=!parseFloat((e.getComputedStyle(r, null) || {}).marginRight)), typeof d.style.zoom !== i && (d.innerHTML = \"\", d.style.cssText = s + \"width:1px;padding:1px;display:inline;zoom:1\", t.inlineBlockNeedsLayout = 3 === d.offsetWidth, d.style.display = \"block\", d.innerHTML = \"
\", d.firstChild.style.width = \"5px\", t.shrinkWrapBlocks = 3 !== d.offsetWidth, t.inlineBlockNeedsLayout && (l.style.zoom = 1)), l.removeChild(n), n = d = o = r = null)\n }), n = s = l = u = r = o = null, t\n }({});\n var B = /(?:\\{[\\s\\S]*\\}|\\[[\\s\\S]*\\])$/, P = /([A-Z])/g;\n function R(e, n, r, i) {\n if (x.acceptData(e)) {\n var o, a, s = x.expando, l = e.nodeType, u = l ? x.cache: e, c = l ? e[s]: e[s] && s;\n if (c && u[c] && (i || u[c].data) || r !== t || \"string\" != typeof n)\n return c || (c = l ? e[s] = p.pop() || x.guid++ : s), u[c] || (u[c] = l ? {} : {\n toJSON: x.noop\n }), (\"object\" == typeof n || \"function\" == typeof n) && (i ? u[c] = x.extend(u[c], n) : u[c].data = x.extend(u[c].data, n)), a = u[c], i || (a.data || (a.data = {}), a = a.data), r !== t && (a[x.camelCase(n)] = r), \"string\" == typeof n ? (o = a[n], null == o && (o = a[x.camelCase(n)])) : o = a, o\n }\n }\n function W(e, t, n) {\n if (x.acceptData(e)) {\n var r, i, o = e.nodeType, a = o ? x.cache: e, s = o ? e[x.expando]: x.expando;\n if (a[s]) {\n if (t && (r = n ? a[s] : a[s].data)) {\n x.isArray(t) ? t = t.concat(x.map(t, x.camelCase)) : t in r ? t = [t] : (t = x.camelCase(t), t = t in r ? [t] : t.split(\" \")), i = t.length;\n while (i--)\n delete r[t[i]];\n if (n?!I(r) : !x.isEmptyObject(r)\n )return\n }(n || (delete a[s].data, I(a[s]))) && (o ? x.cleanData([e], !0) : x.support.deleteExpando || a != a.window ? delete a[s] : a[s] = null)\n }\n }\n }\n x.extend({\n cache: {},\n noData: {\n applet: !0,\n embed: !0,\n object: \"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"\n },\n hasData: function(e) {\n return e = e.nodeType ? x.cache[e[x.expando]] : e[x.expando], !!e&&!I(e)\n },\n data: function(e, t, n) {\n return R(e, t, n)\n },\n removeData: function(e, t) {\n return W(e, t)\n },\n _data: function(e, t, n) {\n return R(e, t, n, !0)\n },\n _removeData: function(e, t) {\n return W(e, t, !0)\n },\n acceptData: function(e) {\n if (e.nodeType && 1 !== e.nodeType && 9 !== e.nodeType)\n return !1;\n var t = e.nodeName && x.noData[e.nodeName.toLowerCase()];\n return !t || t!==!0 && e.getAttribute(\"classid\") === t\n }\n }), x.fn.extend({\n data: function(e, n) {\n var r, i, o = null, a = 0, s = this[0];\n if (e === t) {\n if (this.length && (o = x.data(s), 1 === s.nodeType&&!x._data(s, \"parsedAttrs\"))\n ) {\n for (r = s.attributes; r.length > a; a++)\n i = r[a].name, 0 === i.indexOf(\"data-\") && (i = x.camelCase(i.slice(5)), $(s, i, o[i]));\n x._data(s, \"parsedAttrs\", !0)\n }\n return o\n }\n return \"object\" == typeof e ? this.each(function() {\n x.data(this, e)\n }) : arguments.length > 1 ? this.each(function() {\n x.data(this, e, n)\n }) : s ? $(s, e, x.data(s, e)) : null\n },\n removeData: function(e) {\n return this.each(function() {\n x.removeData(this, e)\n })\n }\n });\n function $(e, n, r) {\n if (r === t && 1 === e.nodeType) {\n var i = \"data-\" + n.replace(P, \"-$1\").toLowerCase();\n if (r = e.getAttribute(i), \"string\" == typeof r) {\n try {\n r = \"true\" === r?!0 : \"false\" === r?!1 : \"null\" === r ? null : + r + \"\" === r?+r : B.test(r) ? x.parseJSON(r) : r\n } catch (o) {}\n x.data(e, n, r)\n } else\n r = t\n }\n return r\n }\n function I(e) {\n var t;\n for (t in e)\n if ((\"data\" !== t ||!x.isEmptyObject(e[t])) && \"toJSON\" !== t)\n return !1;\n return !0\n }\n x.extend({\n queue: function(e, n, r) {\n var i;\n return e ? (n = (n || \"fx\") + \"queue\", i = x._data(e, n), r && (!i || x.isArray(r) ? i = x._data(e, n, x.makeArray(r)) : i.push(r)), i || []) : t\n },\n dequeue: function(e, t) {\n t = t || \"fx\";\n var n = x.queue(e, t), r = n.length, i = n.shift(), o = x._queueHooks(e, t), a = function() {\n x.dequeue(e, t)\n };\n \"inprogress\" === i && (i = n.shift(), r--), i && (\"fx\" === t && n.unshift(\"inprogress\"), delete o.stop, i.call(e, a, o)), !r && o && o.empty.fire()\n },\n _queueHooks: function(e, t) {\n var n = t + \"queueHooks\";\n return x._data(e, n) || x._data(e, n, {\n empty: x.Callbacks(\"once memory\").add(function() {\n x._removeData(e, t + \"queue\"), x._removeData(e, n)\n })\n })\n }\n }), x.fn.extend({\n queue: function(e, n) {\n var r = 2;\n return \"string\" != typeof e && (n = e, e = \"fx\", r--), r > arguments.length ? x.queue(this[0], e) : n === t ? this : this.each(function() {\n var t = x.queue(this, e, n);\n x._queueHooks(this, e), \"fx\" === e && \"inprogress\" !== t[0] && x.dequeue(this, e)\n })\n },\n dequeue: function(e) {\n return this.each(function() {\n x.dequeue(this, e)\n })\n },\n delay: function(e, t) {\n return e = x.fx ? x.fx.speeds[e] || e : e, t = t || \"fx\", this.queue(t, function(t, n) {\n var r = setTimeout(t, e);\n n.stop = function() {\n clearTimeout(r)\n }\n })\n },\n clearQueue: function(e) {\n return this.queue(e || \"fx\", [])\n },\n promise: function(e, n) {\n var r, i = 1, o = x.Deferred(), a = this, s = this.length, l = function() {\n --i || o.resolveWith(a, [a])\n };\n \"string\" != typeof e && (n = e, e = t), e = e || \"fx\";\n while (s--)\n r = x._data(a[s], e + \"queueHooks\"), r && r.empty && (i++, r.empty.add(l));\n return l(), o.promise(n)\n }\n });\n var z, X, U = /[\\t\\r\\n\\f]/g, V = /\\r/g, Y = /^(?:input|select|textarea|button|object)$/i, J = /^(?:a|area)$/i, G = /^(?:checked|selected)$/i, Q = x.support.getSetAttribute, K = x.support.input;\n x.fn.extend({\n attr: function(e, t) {\n return x.access(this, x.attr, e, t, arguments.length > 1)\n },\n removeAttr: function(e) {\n return this.each(function() {\n x.removeAttr(this, e)\n })\n },\n prop: function(e, t) {\n return x.access(this, x.prop, e, t, arguments.length > 1)\n },\n removeProp: function(e) {\n return e = x.propFix[e] || e, this.each(function() {\n try {\n this[e] = t, delete this[e]\n } catch (n) {}\n })\n },\n addClass: function(e) {\n var t, n, r, i, o, a = 0, s = this.length, l = \"string\" == typeof e && e;\n if (x.isFunction(e))\n return this.each(function(t) {\n x(this).addClass(e.call(this, t, this.className))\n });\n if (l)\n for (t = (e || \"\").match(T) || []; s > a; a++)\n if (n = this[a], r = 1 === n.nodeType && (n.className ? (\" \" + n.className + \" \").replace(U, \" \")\n : \" \")) {\n o = 0;\n while (i = t[o++])\n 0 > r.indexOf(\" \" + i + \" \") && (r += i + \" \");\n n.className = x.trim(r)\n }\n return this\n },\n removeClass: function(e) {\n var t, n, r, i, o, a = 0, s = this.length, l = 0 === arguments.length || \"string\" == typeof e && e;\n if (x.isFunction(e))\n return this.each(function(t) {\n x(this).removeClass(e.call(this, t, this.className))\n });\n if (l)\n for (t = (e || \"\").match(T) || []; s > a; a++)\n if (n = this[a], r = 1 === n.nodeType && (n.className ? (\" \" + n.className + \" \").replace(U, \" \")\n : \"\")) {\n o = 0;\n while (i = t[o++])\n while (r.indexOf(\" \" + i + \" \") >= 0)\n r = r.replace(\" \" + i + \" \", \" \");\n n.className = e ? x.trim(r) : \"\"\n }\n return this\n },\n toggleClass: function(e, t) {\n var n = typeof e;\n return \"boolean\" == typeof t && \"string\" === n ? t ? this.addClass(e) : this.removeClass(e) : x.isFunction(e) ? this.each(function(n) {\n x(this).toggleClass(e.call(this, n, this.className, t), t)\n }) : this.each(function() {\n if (\"string\" === n) {\n var t, r = 0, o = x(this), a = e.match(T) || [];\n while (t = a[r++])\n o.hasClass(t) ? o.removeClass(t) : o.addClass(t)\n } else (n === i || \"boolean\" === n)\n && (this.className && x._data(this, \"__className__\", this.className), this.className = this.className || e===!1 ? \"\" : x._data(this, \"__className__\") || \"\")\n })\n },\n hasClass: function(e) {\n var t = \" \" + e + \" \", n = 0, r = this.length;\n for (; r > n; n++)\n if (1 === this[n].nodeType && (\" \" + this[n].className + \" \").replace(U, \" \").indexOf(t) >= 0)\n return !0;\n return !1\n },\n val: function(e) {\n var n, r, i, o = this[0];\n {\n if (arguments.length)\n return i = x.isFunction(e), this.each(function(n) {\n var o;\n 1 === this.nodeType && (o = i ? e.call(this, n, x(this).val()) : e, null == o ? o = \"\" : \"number\" == typeof o ? o += \"\" : x.isArray(o) && (o = x.map(o, function(e) {\n return null == e ? \"\" : e + \"\"\n })), r = x.valHooks[this.type] || x.valHooks[this.nodeName.toLowerCase()], r && \"set\"in r && r.set(this, o, \"value\") !== t || (this.value = o))\n });\n if (o)\n return r = x.valHooks[o.type] || x.valHooks[o.nodeName.toLowerCase()], r && \"get\"in r && (n = r.get(o, \"value\")) !== t ? n : (n = o.value, \"string\" == typeof n ? n.replace(V, \"\") : null == n ? \"\" : n)\n }\n }\n }), x.extend({\n valHooks: {\n option: {\n get: function(e) {\n var t = x.find.attr(e, \"value\");\n return null != t ? t : e.text\n }\n },\n select: {\n get: function(e) {\n var t, n, r = e.options, i = e.selectedIndex, o = \"select-one\" === e.type || 0 > i, a = o ? null: [], s = o ? i + 1: r.length, l = 0 > i ? s: o ? i: 0;\n for (; s > l; l++)\n if (n = r[l], !(!n.selected && l !== i || (x.support.optDisabled ? n.disabled : null !== n.getAttribute(\"disabled\")\n ) || n.parentNode.disabled && x.nodeName(n.parentNode, \"optgroup\"))) {\n if (t = x(n).val(), o)\n return t;\n a.push(t)\n }\n return a\n },\n set: function(e, t) {\n var n, r, i = e.options, o = x.makeArray(t), a = i.length;\n while (a--)\n r = i[a], (r.selected = x.inArray(x(r).val(), o) >= 0) && (n=!0);\n return n || (e.selectedIndex =- 1), o\n }\n }\n },\n attr: function(e, n, r) {\n var o, a, s = e.nodeType;\n if (e && 3 !== s && 8 !== s && 2 !== s)\n return typeof e.getAttribute === i ? x.prop(e, n, r) : (1 === s && x.isXMLDoc(e) || (n = n.toLowerCase(), o = x.attrHooks[n] || (x.expr.match.bool.test(n) ? X : z)), r === t ? o && \"get\"in o && null !== (a = o.get(e, n)) ? a : (a = x.find.attr(e, n), null == a ? t : a) : null !== r ? o && \"set\"in o && (a = o.set(e, r, n)) !== t ? a : (e.setAttribute(n, r + \"\"), r) : (x.removeAttr(e, n), t))\n },\n removeAttr: function(e, t) {\n var n, r, i = 0, o = t && t.match(T);\n if (o && 1 === e.nodeType)\n while (n = o[i++])\n r = x.propFix[n] || n, x.expr.match.bool.test(n) ? K && Q ||!G.test(n) ? e[r]=!1 : e[x.camelCase(\"default-\" + n)] = e[r]=!1 : x.attr(e, n, \"\"), e.removeAttribute(Q ? n : r)\n },\n attrHooks: {\n type: {\n set: function(e, t) {\n if (!x.support.radioValue && \"radio\" === t && x.nodeName(e, \"input\")) {\n var n = e.value;\n return e.setAttribute(\"type\", t), n && (e.value = n), t\n }\n }\n }\n },\n propFix: {\n \"for\": \"htmlFor\",\n \"class\": \"className\"\n },\n prop: function(e, n, r) {\n var i, o, a, s = e.nodeType;\n if (e && 3 !== s && 8 !== s && 2 !== s)\n return a = 1 !== s ||!x.isXMLDoc(e), a && (n = x.propFix[n] || n, o = x.propHooks[n]), r !== t ? o && \"set\"in o && (i = o.set(e, r, n)) !== t ? i : e[n] = r : o && \"get\"in o && null !== (i = o.get(e, n)) ? i : e[n]\n },\n propHooks: {\n tabIndex: {\n get: function(e) {\n var t = x.find.attr(e, \"tabindex\");\n return t ? parseInt(t, 10) : Y.test(e.nodeName) || J.test(e.nodeName) && e.href ? 0 : -1\n }\n }\n }\n }), X = {\n set: function(e, t, n) {\n return t===!1 ? x.removeAttr(e, n) : K && Q ||!G.test(n) ? e.setAttribute(!Q && x.propFix[n] || n, n) : e[x.camelCase(\"default-\" + n)] = e[n]=!0, n\n }\n }, x.each(x.expr.match.bool.source.match(/\\w+/g), function(e, n) {\n var r = x.expr.attrHandle[n] || x.find.attr;\n x.expr.attrHandle[n] = K && Q ||!G.test(n) ? function(e, n, i) {\n var o = x.expr.attrHandle[n], a = i ? t: (x.expr.attrHandle[n] = t) != r(e, n, i) ? n.toLowerCase(): null;\n return x.expr.attrHandle[n] = o, a\n } : function(e, n, r) {\n return r ? t : e[x.camelCase(\"default-\" + n)] ? n.toLowerCase() : null\n }\n }), K && Q || (x.attrHooks.value = {\n set: function(e, n, r) {\n return x.nodeName(e, \"input\") ? (e.defaultValue = n, t) : z && z.set(e, n, r)\n }\n }), Q || (z = {\n set: function(e, n, r) {\n var i = e.getAttributeNode(r);\n return i || e.setAttributeNode(i = e.ownerDocument.createAttribute(r)), i.value = n += \"\", \"value\" === r || n === e.getAttribute(r) ? n : t\n }\n }, x.expr.attrHandle.id = x.expr.attrHandle.name = x.expr.attrHandle.coords = function(e, n, r) {\n var i;\n return r ? t : (i = e.getAttributeNode(n)) && \"\" !== i.value ? i.value : null\n }, x.valHooks.button = {\n get: function(e, n) {\n var r = e.getAttributeNode(n);\n return r && r.specified ? r.value : t\n },\n set: z.set\n }, x.attrHooks.contenteditable = {\n set: function(e, t, n) {\n z.set(e, \"\" === t?!1 : t, n)\n }\n }, x.each([\"width\", \"height\"], function(e, n) {\n x.attrHooks[n] = {\n set: function(e, r) {\n return \"\" === r ? (e.setAttribute(n, \"auto\"), r) : t\n }\n }\n })), x.support.hrefNormalized || x.each([\"href\", \"src\"], function(e, t) {\n x.propHooks[t] = {\n get: function(e) {\n return e.getAttribute(t, 4)\n }\n }\n }), x.support.style || (x.attrHooks.style = {\n get: function(e) {\n return e.style.cssText || t\n },\n set: function(e, t) {\n return e.style.cssText = t + \"\"\n }\n }), x.support.optSelected || (x.propHooks.selected = {\n get: function(e) {\n var t = e.parentNode;\n return t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex), null\n }\n }), x.each([\"tabIndex\", \"readOnly\", \"maxLength\", \"cellSpacing\", \"cellPadding\", \"rowSpan\", \"colSpan\", \"useMap\", \"frameBorder\", \"contentEditable\"], function() {\n x.propFix[this.toLowerCase()] = this\n }), x.support.enctype || (x.propFix.enctype = \"encoding\"), x.each([\"radio\", \"checkbox\"], function() {\n x.valHooks[this] = {\n set: function(e, n) {\n return x.isArray(n) ? e.checked = x.inArray(x(e).val(), n) >= 0 : t\n }\n }, x.support.checkOn || (x.valHooks[this].get = function(e) {\n return null === e.getAttribute(\"value\") ? \"on\" : e.value\n })\n });\n var Z = /^(?:input|select|textarea)$/i, et = /^key/, tt = /^(?:mouse|contextmenu)|click/, nt = /^(?:focusinfocus|focusoutblur)$/, rt = /^([^.]*)(?:\\.(.+)|)$/;\n function it() {\n return !0\n }\n function ot() {\n return !1\n }\n function at() {\n try {\n return a.activeElement\n } catch (e) {}\n }\n x.event = {\n global: {},\n add: function(e, n, r, o, a) {\n var s, l, u, c, p, f, d, h, g, m, y, v = x._data(e);\n if (v) {\n r.handler && (c = r, r = c.handler, a = c.selector), r.guid || (r.guid = x.guid++), (l = v.events) || (l = v.events = {}), (f = v.handle) || (f = v.handle = function(e) {\n return typeof x === i || e && x.event.triggered === e.type ? t : x.event.dispatch.apply(f.elem, arguments)\n }, f.elem = e), n = (n || \"\").match(T) || [\"\"], u = n.length;\n while (u--)\n s = rt.exec(n[u]) || [], g = y = s[1], m = (s[2] || \"\").split(\".\").sort(), g && (p = x.event.special[g] || {}, g = (a ? p.delegateType : p.bindType) || g, p = x.event.special[g] || {}, d = x.extend({\n type: g,\n origType: y,\n data: o,\n handler: r,\n guid: r.guid,\n selector: a,\n needsContext: a && x.expr.match.needsContext.test(a),\n namespace: m.join(\".\")\n }, c), (h = l[g]) || (h = l[g] = [], h.delegateCount = 0, p.setup && p.setup.call(e, o, m, f)!==!1 || (e.addEventListener ? e.addEventListener(g, f, !1) : e.attachEvent && e.attachEvent(\"on\" + g, f))), p.add && (p.add.call(e, d), d.handler.guid || (d.handler.guid = r.guid)), a ? h.splice(h.delegateCount++, 0, d) : h.push(d), x.event.global[g]=!0);\n e = null\n }\n },\n remove: function(e, t, n, r, i) {\n var o, a, s, l, u, c, p, f, d, h, g, m = x.hasData(e) && x._data(e);\n if (m && (c = m.events)) {\n t = (t || \"\").match(T) || [\"\"], u = t.length;\n while (u--)\n if (s = rt.exec(t[u]) || [], d = g = s[1], h = (s[2] || \"\").split(\".\").sort()\n , d) {\n p = x.event.special[d] || {}, d = (r ? p.delegateType : p.bindType) || d, f = c[d] || [], s = s[2] && RegExp(\"(^|\\\\.)\" + h.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\"), l = o = f.length;\n while (o--)\n a = f[o], !i && g !== a.origType || n && n.guid !== a.guid || s&&!s.test(a.namespace) || r && r !== a.selector && (\"**\" !== r ||!a.selector) || (f.splice(o, 1), a.selector && f.delegateCount--, p.remove && p.remove.call(e, a));\n l&&!f.length && (p.teardown && p.teardown.call(e, h, m.handle)!==!1 || x.removeEvent(e, d, m.handle), delete c[d])\n } else\n for (d in c)\n x.event.remove(e, d + t[u], n, r, !0);\n x.isEmptyObject(c) && (delete m.handle, x._removeData(e, \"events\"))\n }\n },\n trigger: function(n, r, i, o) {\n var s, l, u, c, p, f, d, h = [i || a], g = v.call(n, \"type\") ? n.type: n, m = v.call(n, \"namespace\") ? n.namespace.split(\".\"): [];\n if (u = f = i = i || a, 3 !== i.nodeType && 8 !== i.nodeType&&!nt.test(g + x.event.triggered) && (g.indexOf(\".\") >= 0 && (m = g.split(\".\"), g = m.shift(), m.sort()\n ), l = 0 > g.indexOf(\":\") && \"on\" + g, n = n[x.expando] ? n : new x.Event(g, \"object\" == typeof n && n), n.isTrigger = o ? 2 : 3, n.namespace = m.join(\".\"), n.namespace_re = n.namespace ? RegExp(\"(^|\\\\.)\" + m.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\") : null, n.result = t, n.target || (n.target = i), r = null == r ? [n] : x.makeArray(r, [n]), p = x.event.special[g] || {}, o ||!p.trigger || p.trigger.apply(i, r)!==!1)) {\n if (!o&&!p.noBubble&&!x.isWindow(i)) {\n for (c = p.delegateType || g, nt.test(c + g)\n || (u = u.parentNode);\n u;\n u = u.parentNode)h.push(u), f = u;\n f === (i.ownerDocument || a) && h.push(f.defaultView || f.parentWindow || e)\n }\n d = 0;\n while ((u = h[d++])&&!n.isPropagationStopped())\n n.type = d > 1 ? c : p.bindType || g, s = (x._data(u, \"events\") || {})[n.type] && x._data(u, \"handle\"), s && s.apply(u, r), s = l && u[l], s && x.acceptData(u) && s.apply && s.apply(u, r)===!1 && n.preventDefault();\n if (n.type = g, !o&&!n.isDefaultPrevented() && (!p._default || p._default.apply(h.pop(), r)===!1) && x.acceptData(i) && l && i[g]&&!x.isWindow(i)\n ) {\n f = i[l], f && (i[l] = null), x.event.triggered = g;\n try {\n i[g]()\n } catch (y) {}\n x.event.triggered = t, f && (i[l] = f)\n }\n return n.result\n }\n },\n dispatch: function(e) {\n e = x.event.fix(e);\n var n, r, i, o, a, s = [], l = g.call(arguments), u = (x._data(this, \"events\") || {})[e.type] || [], c = x.event.special[e.type] || {};\n if (l[0] = e, e.delegateTarget = this, !c.preDispatch || c.preDispatch.call(this, e)!==!1) {\n s = x.event.handlers.call(this, e, u), n = 0;\n while ((o = s[n++])&&!e.isPropagationStopped()) {\n e.currentTarget = o.elem, a = 0;\n while ((i = o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re || e.namespace_re.test(i.namespace)) && (e.handleObj = i, e.data = i.data, r = ((x.event.special[i.origType] || {}).handle || i.handler).apply(o.elem, l), r !== t && (e.result = r)===!1 && (e.preventDefault(), e.stopPropagation()))\n }\n return c.postDispatch && c.postDispatch.call(this, e), e.result\n }\n },\n handlers: function(e, n) {\n var r, i, o, a, s = [], l = n.delegateCount, u = e.target;\n if (l && u.nodeType && (!e.button || \"click\" !== e.type))\n for (; u != this; u = u.parentNode || this)\n if (1 === u.nodeType && (u.disabled!==!0 || \"click\" !== e.type)) {\n for (o = [], a = 0;\n l > a;\n a++)i = n[a], r = i.selector + \" \", o[r] === t && (o[r] = i.needsContext ? x(r, this)\n .index(u) >= 0 : x.find(r, this, null, [u]).length), o[r] && o.push(i);\n o.length && s.push({\n elem: u,\n handlers: o\n })\n }\n return n.length > l && s.push({\n elem: this,\n handlers: n.slice(l)\n }), s\n },\n fix: function(e) {\n if (e[x.expando])\n return e;\n var t, n, r, i = e.type, o = e, s = this.fixHooks[i];\n s || (this.fixHooks[i] = s = tt.test(i) ? this.mouseHooks : et.test(i) ? this.keyHooks : {}), r = s.props ? this.props.concat(s.props) : this.props, e = new x.Event(o), t = r.length;\n while (t--)\n n = r[t], e[n] = o[n];\n return e.target || (e.target = o.srcElement || a), 3 === e.target.nodeType && (e.target = e.target.parentNode), e.metaKey=!!e.metaKey, s.filter ? s.filter(e, o) : e\n },\n props: \"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which\".split(\" \"),\n fixHooks: {},\n keyHooks: {\n props: \"char charCode key keyCode\".split(\" \"),\n filter: function(e, t) {\n return null == e.which && (e.which = null != t.charCode ? t.charCode : t.keyCode), e\n }\n },\n mouseHooks: {\n props: \"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement\".split(\" \"),\n filter: function(e, n) {\n var r, i, o, s = n.button, l = n.fromElement;\n return null == e.pageX && null != n.clientX && (i = e.target.ownerDocument || a, o = i.documentElement, r = i.body, e.pageX = n.clientX + (o && o.scrollLeft || r && r.scrollLeft || 0) - (o && o.clientLeft || r && r.clientLeft || 0), e.pageY = n.clientY + (o && o.scrollTop || r && r.scrollTop || 0) - (o && o.clientTop || r && r.clientTop || 0)), !e.relatedTarget && l && (e.relatedTarget = l === e.target ? n.toElement : l), e.which || s === t || (e.which = 1 & s ? 1 : 2 & s ? 3 : 4 & s ? 2 : 0), e\n }\n },\n special: {\n load: {\n noBubble: !0\n },\n focus: {\n trigger: function() {\n if (this !== at() && this.focus)\n try {\n return this.focus(), !1\n } catch (e) {}\n },\n delegateType: \"focusin\"\n },\n blur: {\n trigger: function() {\n return this === at() && this.blur ? (this.blur(), !1) : t\n },\n delegateType: \"focusout\"\n },\n click: {\n trigger: function() {\n return x.nodeName(this, \"input\") && \"checkbox\" === this.type && this.click ? (this.click(), !1) : t\n },\n _default: function(e) {\n return x.nodeName(e.target, \"a\")\n }\n },\n beforeunload: {\n postDispatch: function(e) {\n e.result !== t && (e.originalEvent.returnValue = e.result)\n }\n }\n },\n simulate: function(e, t, n, r) {\n var i = x.extend(new x.Event, n, {\n type: e,\n isSimulated: !0,\n originalEvent: {}\n });\n r ? x.event.trigger(i, null, t) : x.event.dispatch.call(t, i), i.isDefaultPrevented() && n.preventDefault()\n }\n }, x.removeEvent = a.removeEventListener ? function(e, t, n) {\n e.removeEventListener && e.removeEventListener(t, n, !1)\n } : function(e, t, n) {\n var r = \"on\" + t;\n e.detachEvent && (typeof e[r] === i && (e[r] = null), e.detachEvent(r, n))\n }, x.Event = function(e, n) {\n return this instanceof x.Event ? (e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || e.returnValue===!1 || e.getPreventDefault && e.getPreventDefault() ? it : ot) : this.type = e, n && x.extend(this, n), this.timeStamp = e && e.timeStamp || x.now(), this[x.expando]=!0, t) : new x.Event(e, n)\n }, x.Event.prototype = {\n isDefaultPrevented: ot,\n isPropagationStopped: ot,\n isImmediatePropagationStopped: ot,\n preventDefault: function() {\n var e = this.originalEvent;\n this.isDefaultPrevented = it, e && (e.preventDefault ? e.preventDefault() : e.returnValue=!1)\n },\n stopPropagation: function() {\n var e = this.originalEvent;\n this.isPropagationStopped = it, e && (e.stopPropagation && e.stopPropagation(), e.cancelBubble=!0)\n },\n stopImmediatePropagation: function() {\n this.isImmediatePropagationStopped = it, this.stopPropagation()\n }\n }, x.each({\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\"\n }, function(e, t) {\n x.event.special[e] = {\n delegateType: t,\n bindType: t,\n handle: function(e) {\n var n, r = this, i = e.relatedTarget, o = e.handleObj;\n return (!i || i !== r&&!x.contains(r, i)) && (e.type = o.origType, n = o.handler.apply(this, arguments), e.type = t), n\n }\n }\n }), x.support.submitBubbles || (x.event.special.submit = {\n setup: function() {\n return x.nodeName(this, \"form\")?!1 : (x.event.add(this, \"click._submit keypress._submit\", function(e) {\n var n = e.target, r = x.nodeName(n, \"input\") || x.nodeName(n, \"button\") ? n.form: t;\n r&&!x._data(r, \"submitBubbles\") && (x.event.add(r, \"submit._submit\", function(e) {\n e._submit_bubble=!0\n }), x._data(r, \"submitBubbles\", !0))\n }), t)\n },\n postDispatch: function(e) {\n e._submit_bubble && (delete e._submit_bubble, this.parentNode&&!e.isTrigger && x.event.simulate(\"submit\", this.parentNode, e, !0))\n },\n teardown: function() {\n return x.nodeName(this, \"form\")?!1 : (x.event.remove(this, \"._submit\"), t)\n }\n }), x.support.changeBubbles || (x.event.special.change = {\n setup: function() {\n return Z.test(this.nodeName) ? ((\"checkbox\" === this.type || \"radio\" === this.type) && (x.event.add(this, \"propertychange._change\", function(e) {\n \"checked\" === e.originalEvent.propertyName && (this._just_changed=!0)\n }), x.event.add(this, \"click._change\", function(e) {\n this._just_changed&&!e.isTrigger && (this._just_changed=!1), x.event.simulate(\"change\", this, e, !0)\n })), !1) : (x.event.add(this, \"beforeactivate._change\", function(e) {\n var t = e.target;\n Z.test(t.nodeName)&&!x._data(t, \"changeBubbles\") && (x.event.add(t, \"change._change\", function(e) {\n !this.parentNode || e.isSimulated || e.isTrigger || x.event.simulate(\"change\", this.parentNode, e, !0)\n }), x._data(t, \"changeBubbles\", !0))\n }), t)\n },\n handle: function(e) {\n var n = e.target;\n return this !== n || e.isSimulated || e.isTrigger || \"radio\" !== n.type && \"checkbox\" !== n.type ? e.handleObj.handler.apply(this, arguments) : t\n },\n teardown: function() {\n return x.event.remove(this, \"._change\"), !Z.test(this.nodeName)\n }\n }), x.support.focusinBubbles || x.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function(e, t) {\n var n = 0, r = function(e) {\n x.event.simulate(t, e.target, x.event.fix(e), !0)\n };\n x.event.special[t] = {\n setup: function() {\n 0 === n++&&a.addEventListener(e, r, !0)\n },\n teardown: function() {\n 0===--n && a.removeEventListener(e, r, !0)\n }\n }\n }), x.fn.extend({\n on: function(e, n, r, i, o) {\n var a, s;\n if (\"object\" == typeof e) {\n \"string\" != typeof n && (r = r || n, n = t);\n for (a in e)\n this.on(a, n, r, e[a], o);\n return this\n }\n if (null == r && null == i ? (i = n, r = n = t) : null == i && (\"string\" == typeof n ? (i = r, r = t) : (i = r, r = n, n = t)), i===!1)\n i = ot;\n else if (!i)\n return this;\n return 1 === o && (s = i, i = function(e) {\n return x().off(e), s.apply(this, arguments)\n }, i.guid = s.guid || (s.guid = x.guid++)), this.each(function() {\n x.event.add(this, e, i, r, n)\n })\n },\n one: function(e, t, n, r) {\n return this.on(e, t, n, r, 1)\n },\n off: function(e, n, r) {\n var i, o;\n if (e && e.preventDefault && e.handleObj)\n return i = e.handleObj, x(e.delegateTarget).off(i.namespace ? i.origType + \".\" + i.namespace : i.origType, i.selector, i.handler), this;\n if (\"object\" == typeof e) {\n for (o in e)\n this.off(o, n, e[o]);\n return this\n }\n return (n===!1 || \"function\" == typeof n) && (r = n, n = t), r===!1 && (r = ot), this.each(function() {\n x.event.remove(this, e, r, n)\n })\n },\n trigger: function(e, t) {\n return this.each(function() {\n x.event.trigger(e, t, this)\n })\n },\n triggerHandler: function(e, n) {\n var r = this[0];\n return r ? x.event.trigger(e, n, r, !0) : t\n }\n });\n var st = /^.[^:#\\[\\.,]*$/, lt = /^(?:parents|prev(?:Until|All))/, ut = x.expr.match.needsContext, ct = {\n children: !0,\n contents: !0,\n next: !0,\n prev: !0\n };\n x.fn.extend({\n find: function(e) {\n var t, n = [], r = this, i = r.length;\n if (\"string\" != typeof e)\n return this.pushStack(x(e).filter(function() {\n for (t = 0; i > t; t++)\n if (x.contains(r[t], this))\n return !0\n }));\n for (t = 0; i > t; t++)\n x.find(e, r[t], n);\n return n = this.pushStack(i > 1 ? x.unique(n) : n), n.selector = this.selector ? this.selector + \" \" + e : e, n\n },\n has: function(e) {\n var t, n = x(e, this), r = n.length;\n return this.filter(function() {\n for (t = 0; r > t; t++)\n if (x.contains(this, n[t]))\n return !0\n })\n },\n not: function(e) {\n return this.pushStack(ft(this, e || [], !0))\n },\n filter: function(e) {\n return this.pushStack(ft(this, e || [], !1))\n },\n is: function(e) {\n return !!ft(this, \"string\" == typeof e && ut.test(e) ? x(e) : e || [], !1).length\n },\n closest: function(e, t) {\n var n, r = 0, i = this.length, o = [], a = ut.test(e) || \"string\" != typeof e ? x(e, t || this.context): 0;\n for (; i > r; r++)\n for (n = this[r]; n && n !== t; n = n.parentNode)\n if (11 > n.nodeType && (a ? a.index(n)>-1 : 1 === n.nodeType && x.find.matchesSelector(n, e))) {\n n = o.push(n);\n break\n }\n return this.pushStack(o.length > 1 ? x.unique(o) : o)\n },\n index: function(e) {\n return e ? \"string\" == typeof e ? x.inArray(this[0], x(e)) : x.inArray(e.jquery ? e[0] : e, this) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1\n },\n add: function(e, t) {\n var n = \"string\" == typeof e ? x(e, t): x.makeArray(e && e.nodeType ? [e] : e), r = x.merge(this.get(), n);\n return this.pushStack(x.unique(r))\n },\n addBack: function(e) {\n return this.add(null == e ? this.prevObject : this.prevObject.filter(e))\n }\n });\n function pt(e, t) {\n do\n e = e[t];\n while (e && 1 !== e.nodeType);\n return e\n }\n x.each({\n parent: function(e) {\n var t = e.parentNode;\n return t && 11 !== t.nodeType ? t : null\n },\n parents: function(e) {\n return x.dir(e, \"parentNode\")\n },\n parentsUntil: function(e, t, n) {\n return x.dir(e, \"parentNode\", n)\n },\n next: function(e) {\n return pt(e, \"nextSibling\")\n },\n prev: function(e) {\n return pt(e, \"previousSibling\")\n },\n nextAll: function(e) {\n return x.dir(e, \"nextSibling\")\n },\n prevAll: function(e) {\n return x.dir(e, \"previousSibling\")\n },\n nextUntil: function(e, t, n) {\n return x.dir(e, \"nextSibling\", n)\n },\n prevUntil: function(e, t, n) {\n return x.dir(e, \"previousSibling\", n)\n },\n siblings: function(e) {\n return x.sibling((e.parentNode || {}).firstChild, e)\n },\n children: function(e) {\n return x.sibling(e.firstChild)\n },\n contents: function(e) {\n return x.nodeName(e, \"iframe\") ? e.contentDocument || e.contentWindow.document : x.merge([], e.childNodes)\n }\n }, function(e, t) {\n x.fn[e] = function(n, r) {\n var i = x.map(this, t, n);\n return \"Until\" !== e.slice(-5) && (r = n), r && \"string\" == typeof r && (i = x.filter(r, i)), this.length > 1 && (ct[e] || (i = x.unique(i)), lt.test(e) && (i = i.reverse())), this.pushStack(i)\n }\n }), x.extend({\n filter: function(e, t, n) {\n var r = t[0];\n return n && (e = \":not(\" + e + \")\"), 1 === t.length && 1 === r.nodeType ? x.find.matchesSelector(r, e) ? [r] : [] : x.find.matches(e, x.grep(t, function(e) {\n return 1 === e.nodeType\n }))\n },\n dir: function(e, n, r) {\n var i = [], o = e[n];\n while (o && 9 !== o.nodeType && (r === t || 1 !== o.nodeType ||!x(o).is(r)))\n 1 === o.nodeType && i.push(o), o = o[n];\n return i\n },\n sibling: function(e, t) {\n var n = [];\n for (; e; e = e.nextSibling)\n 1 === e.nodeType && e !== t && n.push(e);\n return n\n }\n });\n function ft(e, t, n) {\n if (x.isFunction(t))\n return x.grep(e, function(e, r) {\n return !!t.call(e, r, e) !== n\n });\n if (t.nodeType)\n return x.grep(e, function(e) {\n return e === t !== n\n });\n if (\"string\" == typeof t) {\n if (st.test(t))\n return x.filter(t, e, n);\n t = x.filter(t, e)\n }\n return x.grep(e, function(e) {\n return x.inArray(e, t) >= 0 !== n\n })\n }\n function dt(e) {\n var t = ht.split(\"|\"), n = e.createDocumentFragment();\n if (n.createElement)\n while (t.length)\n n.createElement(t.pop());\n return n\n }\n var ht = \"abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video\", gt = / jQuery\\d+=\"(?:null|\\d+)\"/g, mt = RegExp(\"<(?:\" + ht + \")[\\\\s/>]\", \"i\"), yt = /^\\s+/, vt = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/gi, bt = /<([\\w:]+)/, xt = /\\s*$/g, At = {\n option: [1, \"\"],\n legend: [1, \"
\", \"
\"],\n area: [1, \"\", \"\"],\n param: [1, \"\", \"\"],\n thead: [1, \"\", \"
\"],\n tr: [2, \"\", \"
\"],\n col: [2, \"\", \"
\"],\n td: [3, \"\", \"
\"],\n _default: x.support.htmlSerialize ? [0, \"\", \"\"]: [1, \"X
\", \"
\"]\n }, jt = dt(a), Dt = jt.appendChild(a.createElement(\"div\"));\n At.optgroup = At.option, At.tbody = At.tfoot = At.colgroup = At.caption = At.thead, At.th = At.td, x.fn.extend({\n text: function(e) {\n return x.access(this, function(e) {\n return e === t ? x.text(this) : this.empty().append((this[0] && this[0].ownerDocument || a).createTextNode(e))\n }, null, e, arguments.length)\n },\n append: function() {\n return this.domManip(arguments, function(e) {\n if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {\n var t = Lt(this, e);\n t.appendChild(e)\n }\n })\n },\n prepend: function() {\n return this.domManip(arguments, function(e) {\n if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {\n var t = Lt(this, e);\n t.insertBefore(e, t.firstChild)\n }\n })\n },\n before: function() {\n return this.domManip(arguments, function(e) {\n this.parentNode && this.parentNode.insertBefore(e, this)\n })\n },\n after: function() {\n return this.domManip(arguments, function(e) {\n this.parentNode && this.parentNode.insertBefore(e, this.nextSibling)\n })\n },\n remove: function(e, t) {\n var n, r = e ? x.filter(e, this): this, i = 0;\n for (; null != (n = r[i]); i++)\n t || 1 !== n.nodeType || x.cleanData(Ft(n)), n.parentNode && (t && x.contains(n.ownerDocument, n) && _t(Ft(n, \"script\")), n.parentNode.removeChild(n));\n return this\n },\n empty: function() {\n var e, t = 0;\n for (; null != (e = this[t]); t++) {\n 1 === e.nodeType && x.cleanData(Ft(e, !1));\n while (e.firstChild)\n e.removeChild(e.firstChild);\n e.options && x.nodeName(e, \"select\") && (e.options.length = 0)\n }\n return this\n },\n clone: function(e, t) {\n return e = null == e?!1 : e, t = null == t ? e : t, this.map(function() {\n return x.clone(this, e, t)\n })\n },\n html: function(e) {\n return x.access(this, function(e) {\n var n = this[0] || {}, r = 0, i = this.length;\n if (e === t)\n return 1 === n.nodeType ? n.innerHTML.replace(gt, \"\") : t;\n if (!(\"string\" != typeof e || Tt.test(e) ||!x.support.htmlSerialize && mt.test(e) ||!x.support.leadingWhitespace && yt.test(e) || At[(bt.exec(e) || [\"\", \"\"])[1].toLowerCase()])) {\n e = e.replace(vt, \"<$1>\");\n try {\n for (; i > r; r++)\n n = this[r] || {}, 1 === n.nodeType && (x.cleanData(Ft(n, !1)), n.innerHTML = e);\n n = 0\n } catch (o) {}\n }\n n && this.empty().append(e)\n }, null, e, arguments.length)\n },\n replaceWith: function() {\n var e = x.map(this, function(e) {\n return [e.nextSibling, e.parentNode]\n }), t = 0;\n return this.domManip(arguments, function(n) {\n var r = e[t++], i = e[t++];\n i && (r && r.parentNode !== i && (r = this.nextSibling), x(this).remove(), i.insertBefore(n, r))\n }, !0), t ? this : this.remove()\n },\n detach: function(e) {\n return this.remove(e, !0)\n },\n domManip: function(e, t, n) {\n e = d.apply([], e);\n var r, i, o, a, s, l, u = 0, c = this.length, p = this, f = c-1, h = e[0], g = x.isFunction(h);\n if (g ||!(1 >= c || \"string\" != typeof h || x.support.checkClone) && Nt.test(h))\n return this.each(function(r) {\n var i = p.eq(r);\n g && (e[0] = h.call(this, r, i.html())), i.domManip(e, t, n)\n });\n if (c && (l = x.buildFragment(e, this[0].ownerDocument, !1, !n && this), r = l.firstChild, 1 === l.childNodes.length && (l = r), r)\n ) {\n for (a = x.map(Ft(l, \"script\"), Ht), o = a.length; c > u; u++)\n i = l, u !== f && (i = x.clone(i, !0, !0), o && x.merge(a, Ft(i, \"script\"))), t.call(this[u], i, u);\n if (o)\n for (s = a[a.length-1].ownerDocument, x.map(a, qt)\n , u = 0;\n o > u;\n u++)i = a[u], kt.test(i.type || \"\")&&!x._data(i, \"globalEval\") && x.contains(s, i) && (i.src ? x._evalUrl(i.src) : x.globalEval((i.text || i.textContent || i.innerHTML || \"\").replace(St, \"\")));\n l = r = null\n }\n return this\n }\n });\n function Lt(e, t) {\n return x.nodeName(e, \"table\") && x.nodeName(1 === t.nodeType ? t : t.firstChild, \"tr\") ? e.getElementsByTagName(\"tbody\")[0] || e.appendChild(e.ownerDocument.createElement(\"tbody\")) : e\n }\n function Ht(e) {\n return e.type = (null !== x.find.attr(e, \"type\")) + \"/\" + e.type, e\n }\n function qt(e) {\n var t = Et.exec(e.type);\n return t ? e.type = t[1] : e.removeAttribute(\"type\"), e\n }\n function _t(e, t) {\n var n, r = 0;\n for (; null != (n = e[r]); r++)\n x._data(n, \"globalEval\", !t || x._data(t[r], \"globalEval\"))\n }\n function Mt(e, t) {\n if (1 === t.nodeType && x.hasData(e)) {\n var n, r, i, o = x._data(e), a = x._data(t, o), s = o.events;\n if (s) {\n delete a.handle, a.events = {};\n for (n in s)\n for (r = 0, i = s[n].length; i > r; r++)\n x.event.add(t, n, s[n][r])\n }\n a.data && (a.data = x.extend({}, a.data))\n }\n }\n function Ot(e, t) {\n var n, r, i;\n if (1 === t.nodeType) {\n if (n = t.nodeName.toLowerCase(), !x.support.noCloneEvent && t[x.expando]) {\n i = x._data(t);\n for (r in i.events)\n x.removeEvent(t, r, i.handle);\n t.removeAttribute(x.expando)\n }\n \"script\" === n && t.text !== e.text ? (Ht(t).text = e.text, qt(t)) : \"object\" === n ? (t.parentNode && (t.outerHTML = e.outerHTML), x.support.html5Clone && e.innerHTML&&!x.trim(t.innerHTML) && (t.innerHTML = e.innerHTML)) : \"input\" === n && Ct.test(e.type) ? (t.defaultChecked = t.checked = e.checked, t.value !== e.value && (t.value = e.value)) : \"option\" === n ? t.defaultSelected = t.selected = e.defaultSelected : (\"input\" === n || \"textarea\" === n) && (t.defaultValue = e.defaultValue)\n }\n }\n x.each({\n appendTo: \"append\",\n prependTo: \"prepend\",\n insertBefore: \"before\",\n insertAfter: \"after\",\n replaceAll: \"replaceWith\"\n }, function(e, t) {\n x.fn[e] = function(e) {\n var n, r = 0, i = [], o = x(e), a = o.length-1;\n for (; a >= r; r++)\n n = r === a ? this : this.clone(!0), x(o[r])[t](n), h.apply(i, n.get());\n return this.pushStack(i)\n }\n });\n function Ft(e, n) {\n var r, o, a = 0, s = typeof e.getElementsByTagName !== i ? e.getElementsByTagName(n || \"*\"): typeof e.querySelectorAll !== i ? e.querySelectorAll(n || \"*\"): t;\n if (!s)\n for (s = [], r = e.childNodes || e;\n null != (o = r[a]); a++)\n !n || x.nodeName(o, n) ? s.push(o) : x.merge(s, Ft(o, n));\n return n === t || n && x.nodeName(e, n) ? x.merge([e], s) : s\n }\n function Bt(e) {\n Ct.test(e.type) && (e.defaultChecked = e.checked)\n }\n x.extend({\n clone: function(e, t, n) {\n var r, i, o, a, s, l = x.contains(e.ownerDocument, e);\n if (x.support.html5Clone || x.isXMLDoc(e) ||!mt.test(\"<\" + e.nodeName + \">\") ? o = e.cloneNode(!0) : (Dt.innerHTML = e.outerHTML, Dt.removeChild(o = Dt.firstChild))\n , !(x.support.noCloneEvent && x.support.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || x.isXMLDoc(e)))for (r = Ft(o), s = Ft(e)\n , a = 0;\n null != (i = s[a]);\n ++a)r[a] && Ot(i, r[a]);\n if (t)\n if (n)\n for (s = s || Ft(e), r = r || Ft(o)\n , a = 0;\n null != (i = s[a]);\n a++)Mt(i, r[a]);\n else\n Mt(e, o);\n return r = Ft(o, \"script\"), r.length > 0 && _t(r, !l && Ft(e, \"script\")), r = s = i = null, o\n },\n buildFragment: function(e, t, n, r) {\n var i, o, a, s, l, u, c, p = e.length, f = dt(t), d = [], h = 0;\n for (; p > h; h++)\n if (o = e[h], o || 0 === o)\n if (\"object\" === x.type(o))\n x.merge(d, o.nodeType ? [o] : o);\n else if (wt.test(o)) {\n s = s || f.appendChild(t.createElement(\"div\")), l = (bt.exec(o) || [\"\", \"\"])[1].toLowerCase(), c = At[l] || At._default, s.innerHTML = c[1] + o.replace(vt, \"<$1>\") + c[2], i = c[0];\n while (i--)\n s = s.lastChild;\n if (!x.support.leadingWhitespace && yt.test(o) && d.push(t.createTextNode(yt.exec(o)[0])), !x.support.tbody) {\n o = \"table\" !== l || xt.test(o) ? \"\" !== c[1] || xt.test(o) ? 0 : s : s.firstChild, i = o && o.childNodes.length;\n while (i--)\n x.nodeName(u = o.childNodes[i], \"tbody\")&&!u.childNodes.length && o.removeChild(u)\n }\n x.merge(d, s.childNodes), s.textContent = \"\";\n while (s.firstChild)\n s.removeChild(s.firstChild);\n s = f.lastChild\n } else\n d.push(t.createTextNode(o));\n s && f.removeChild(s), x.support.appendChecked || x.grep(Ft(d, \"input\"), Bt), h = 0;\n while (o = d[h++])\n if ((!r||-1 === x.inArray(o, r)) && (a = x.contains(o.ownerDocument, o), s = Ft(f.appendChild(o), \"script\")\n , a && _t(s), n)) {\n i = 0;\n while (o = s[i++])\n kt.test(o.type || \"\") && n.push(o)\n }\n return s = null, f\n },\n cleanData: function(e, t) {\n var n, r, o, a, s = 0, l = x.expando, u = x.cache, c = x.support.deleteExpando, f = x.event.special;\n for (; null != (n = e[s]); s++)\n if ((t || x.acceptData(n)) && (o = n[l], a = o && u[o])) {\n if (a.events)\n for (r in a.events)\n f[r] ? x.event.remove(n, r) : x.removeEvent(n, r, a.handle);\n u[o] && (delete u[o], c ? delete n[l] : typeof n.removeAttribute !== i ? n.removeAttribute(l) : n[l] = null, p.push(o))\n }\n },\n _evalUrl: function(e) {\n return x.ajax({\n url: e,\n type: \"GET\",\n dataType: \"script\",\n async: !1,\n global: !1,\n \"throws\": !0\n })\n }\n }), x.fn.extend({\n wrapAll: function(e) {\n if (x.isFunction(e))\n return this.each(function(t) {\n x(this).wrapAll(e.call(this, t))\n });\n if (this[0]) {\n var t = x(e, this[0].ownerDocument).eq(0).clone(!0);\n this[0].parentNode && t.insertBefore(this[0]), t.map(function() {\n var e = this;\n while (e.firstChild && 1 === e.firstChild.nodeType)\n e = e.firstChild;\n return e\n }).append(this)\n }\n return this\n },\n wrapInner: function(e) {\n return x.isFunction(e) ? this.each(function(t) {\n x(this).wrapInner(e.call(this, t))\n }) : this.each(function() {\n var t = x(this), n = t.contents();\n n.length ? n.wrapAll(e) : t.append(e)\n })\n },\n wrap: function(e) {\n var t = x.isFunction(e);\n return this.each(function(n) {\n x(this).wrapAll(t ? e.call(this, n) : e)\n })\n },\n unwrap: function() {\n return this.parent().each(function() {\n x.nodeName(this, \"body\") || x(this).replaceWith(this.childNodes)\n }).end()\n }\n });\n var Pt, Rt, Wt, $t = /alpha\\([^)]*\\)/i, It = /opacity\\s*=\\s*([^)]*)/, zt = /^(top|right|bottom|left)$/, Xt = /^(none|table(?!-c[ea]).+)/, Ut = /^margin/, Vt = RegExp(\"^(\" + w + \")(.*)$\", \"i\"), Yt = RegExp(\"^(\" + w + \")(?!px)[a-z%]+$\", \"i\"), Jt = RegExp(\"^([+-])=(\" + w + \")\", \"i\"), Gt = {\n BODY: \"block\"\n }, Qt = {\n position: \"absolute\",\n visibility: \"hidden\",\n display: \"block\"\n }, Kt = {\n letterSpacing: 0,\n fontWeight: 400\n }, Zt = [\"Top\", \"Right\", \"Bottom\", \"Left\"], en = [\"Webkit\", \"O\", \"Moz\", \"ms\"];\n function tn(e, t) {\n if (t in e)\n return t;\n var n = t.charAt(0).toUpperCase() + t.slice(1), r = t, i = en.length;\n while (i--)\n if (t = en[i] + n, t in e)\n return t;\n return r\n }\n function nn(e, t) {\n return e = t || e, \"none\" === x.css(e, \"display\") ||!x.contains(e.ownerDocument, e)\n }\n function rn(e, t) {\n var n, r, i, o = [], a = 0, s = e.length;\n for (; s > a; a++)\n r = e[a], r.style && (o[a] = x._data(r, \"olddisplay\"), n = r.style.display, t ? (o[a] || \"none\" !== n || (r.style.display = \"\"), \"\" === r.style.display && nn(r) && (o[a] = x._data(r, \"olddisplay\", ln(r.nodeName)))) : o[a] || (i = nn(r), (n && \"none\" !== n ||!i) && x._data(r, \"olddisplay\", i ? n : x.css(r, \"display\"))));\n for (a = 0; s > a; a++)\n r = e[a], r.style && (t && \"none\" !== r.style.display && \"\" !== r.style.display || (r.style.display = t ? o[a] || \"\" : \"none\"));\n return e\n }\n x.fn.extend({\n css: function(e, n) {\n return x.access(this, function(e, n, r) {\n var i, o, a = {}, s = 0;\n if (x.isArray(n)) {\n for (o = Rt(e), i = n.length; i > s; s++)\n a[n[s]] = x.css(e, n[s], !1, o);\n return a\n }\n return r !== t ? x.style(e, n, r) : x.css(e, n)\n }, e, n, arguments.length > 1)\n },\n show: function() {\n return rn(this, !0)\n },\n hide: function() {\n return rn(this)\n },\n toggle: function(e) {\n return \"boolean\" == typeof e ? e ? this.show() : this.hide() : this.each(function() {\n nn(this) ? x(this).show() : x(this).hide()\n })\n }\n }), x.extend({\n cssHooks: {\n opacity: {\n get: function(e, t) {\n if (t) {\n var n = Wt(e, \"opacity\");\n return \"\" === n ? \"1\" : n\n }\n }\n }\n },\n cssNumber: {\n columnCount: !0,\n fillOpacity: !0,\n fontWeight: !0,\n lineHeight: !0,\n opacity: !0,\n order: !0,\n orphans: !0,\n widows: !0,\n zIndex: !0,\n zoom: !0\n },\n cssProps: {\n \"float\": x.support.cssFloat ? \"cssFloat\": \"styleFloat\"\n },\n style: function(e, n, r, i) {\n if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) {\n var o, a, s, l = x.camelCase(n), u = e.style;\n if (n = x.cssProps[l] || (x.cssProps[l] = tn(u, l)), s = x.cssHooks[n] || x.cssHooks[l], r === t)\n return s && \"get\"in s && (o = s.get(e, !1, i)) !== t ? o : u[n];\n if (a = typeof r, \"string\" === a && (o = Jt.exec(r)\n ) && (r = (o[1] + 1) * o[2] + parseFloat(x.css(e, n)), a = \"number\"), !(null == r || \"number\" === a && isNaN(r) || (\"number\" !== a || x.cssNumber[l] || (r += \"px\"), x.support.clearCloneStyle || \"\" !== r || 0 !== n.indexOf(\"background\") || (u[n] = \"inherit\"), s && \"set\"in s && (r = s.set(e, r, i)) === t)))try {\n u[n] = r\n } catch (c) {}\n }\n },\n css: function(e, n, r, i) {\n var o, a, s, l = x.camelCase(n);\n return n = x.cssProps[l] || (x.cssProps[l] = tn(e.style, l)), s = x.cssHooks[n] || x.cssHooks[l], s && \"get\"in s && (a = s.get(e, !0, r)), a === t && (a = Wt(e, n, i)), \"normal\" === a && n in Kt && (a = Kt[n]), \"\" === r || r ? (o = parseFloat(a), r===!0 || x.isNumeric(o) ? o || 0 : a) : a\n }\n }), e.getComputedStyle ? (Rt = function(t) {\n return e.getComputedStyle(t, null)\n }, Wt = function(e, n, r) {\n var i, o, a, s = r || Rt(e), l = s ? s.getPropertyValue(n) || s[n] : t, u = e.style;\n return s && (\"\" !== l || x.contains(e.ownerDocument, e) || (l = x.style(e, n)), Yt.test(l) && Ut.test(n) && (i = u.width, o = u.minWidth, a = u.maxWidth, u.minWidth = u.maxWidth = u.width = l, l = s.width, u.width = i, u.minWidth = o, u.maxWidth = a)), l\n }) : a.documentElement.currentStyle && (Rt = function(e) {\n return e.currentStyle\n }, Wt = function(e, n, r) {\n var i, o, a, s = r || Rt(e), l = s ? s[n]: t, u = e.style;\n return null == l && u && u[n] && (l = u[n]), Yt.test(l)&&!zt.test(n) && (i = u.left, o = e.runtimeStyle, a = o && o.left, a && (o.left = e.currentStyle.left), u.left = \"fontSize\" === n ? \"1em\" : l, l = u.pixelLeft + \"px\", u.left = i, a && (o.left = a)), \"\" === l ? \"auto\" : l\n });\n function on(e, t, n) {\n var r = Vt.exec(t);\n return r ? Math.max(0, r[1] - (n || 0)) + (r[2] || \"px\") : t\n }\n function an(e, t, n, r, i) {\n var o = n === (r ? \"border\" : \"content\") ? 4: \"width\" === t ? 1: 0, a = 0;\n for (; 4 > o; o += 2)\n \"margin\" === n && (a += x.css(e, n + Zt[o], !0, i)), r ? (\"content\" === n && (a -= x.css(e, \"padding\" + Zt[o], !0, i)), \"margin\" !== n && (a -= x.css(e, \"border\" + Zt[o] + \"Width\", !0, i))) : (a += x.css(e, \"padding\" + Zt[o], !0, i), \"padding\" !== n && (a += x.css(e, \"border\" + Zt[o] + \"Width\", !0, i)));\n return a\n }\n function sn(e, t, n) {\n var r=!0, i = \"width\" === t ? e.offsetWidth : e.offsetHeight, o = Rt(e), a = x.support.boxSizing && \"border-box\" === x.css(e, \"boxSizing\", !1, o);\n if (0 >= i || null == i) {\n if (i = Wt(e, t, o), (0 > i || null == i) && (i = e.style[t])\n , Yt.test(i))return i;\n r = a && (x.support.boxSizingReliable || i === e.style[t]), i = parseFloat(i) || 0\n }\n return i + an(e, t, n || (a ? \"border\" : \"content\"), r, o) + \"px\"\n }\n function ln(e) {\n var t = a, n = Gt[e];\n return n || (n = un(e, t), \"none\" !== n && n || (Pt = (Pt || x(\"',srcAction:\"iframe_src\",patterns:{youtube:{index:\"youtube.com\",id:\"v=\",src:\"//www.youtube.com/embed/%id%?autoplay=1\"},vimeo:{index:\"vimeo.com/\",id:\"/\",src:\"//player.vimeo.com/video/%id%?autoplay=1\"},gmaps:{index:\"//maps.google.\",src:\"%id%&output=embed\"}}},proto:{initIframe:function(){b.types.push(P),w(\"BeforeChange\",function(a,b,c){b!==c&&(b===P?R():c===P&&R(!0))}),w(h+\".\"+P,function(){R()})},getIframe:function(c,d){var e=c.src,f=b.st.iframe;a.each(f.patterns,function(){return e.indexOf(this.index)>-1?(this.id&&(e=\"string\"==typeof this.id?e.substr(e.lastIndexOf(this.id)+this.id.length,e.length):this.id.call(this,e)),e=this.src.replace(\"%id%\",e),!1):void 0});var g={};return f.srcAction&&(g[f.srcAction]=e),b._parseMarkup(d,g,c),b.updateStatus(\"ready\"),d}}});var S=function(a){var c=b.items.length;return a>c-1?a-c:0>a?c+a:a},T=function(a,b,c){return a.replace(/%curr%/gi,b+1).replace(/%total%/gi,c)};a.magnificPopup.registerModule(\"gallery\",{options:{enabled:!1,arrowMarkup:'',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:\"Previous (Left arrow key)\",tNext:\"Next (Right arrow key)\",tCounter:\"%curr% of %total%\"},proto:{initGallery:function(){var c=b.st.gallery,e=\".mfp-gallery\";return b.direction=!0,c&&c.enabled?(f+=\" mfp-gallery\",w(m+e,function(){c.navigateByImgClick&&b.wrap.on(\"click\"+e,\".mfp-img\",function(){return b.items.length>1?(b.next(),!1):void 0}),d.on(\"keydown\"+e,function(a){37===a.keyCode?b.prev():39===a.keyCode&&b.next()})}),w(\"UpdateStatus\"+e,function(a,c){c.text&&(c.text=T(c.text,b.currItem.index,b.items.length))}),w(l+e,function(a,d,e,f){var g=b.items.length;e.counter=g>1?T(c.tCounter,f.index,g):\"\"}),w(\"BuildControls\"+e,function(){if(b.items.length>1&&c.arrows&&!b.arrowLeft){var d=c.arrowMarkup,e=b.arrowLeft=a(d.replace(/%title%/gi,c.tPrev).replace(/%dir%/gi,\"left\")).addClass(s),f=b.arrowRight=a(d.replace(/%title%/gi,c.tNext).replace(/%dir%/gi,\"right\")).addClass(s);e.click(function(){b.prev()}),f.click(function(){b.next()}),b.container.append(e.add(f))}}),w(n+e,function(){b._preloadTimeout&&clearTimeout(b._preloadTimeout),b._preloadTimeout=setTimeout(function(){b.preloadNearbyImages(),b._preloadTimeout=null},16)}),void w(h+e,function(){d.off(e),b.wrap.off(\"click\"+e),b.arrowRight=b.arrowLeft=null})):!1},next:function(){b.direction=!0,b.index=S(b.index+1),b.updateItemHTML()},prev:function(){b.direction=!1,b.index=S(b.index-1),b.updateItemHTML()},goTo:function(a){b.direction=a>=b.index,b.index=a,b.updateItemHTML()},preloadNearbyImages:function(){var a,c=b.st.gallery.preload,d=Math.min(c[0],b.items.length),e=Math.min(c[1],b.items.length);for(a=1;a<=(b.direction?e:d);a++)b._preloadItem(b.index+a);for(a=1;a<=(b.direction?d:e);a++)b._preloadItem(b.index-a)},_preloadItem:function(c){if(c=S(c),!b.items[c].preloaded){var d=b.items[c];d.parsed||(d=b.parseEl(c)),y(\"LazyLoad\",d),\"image\"===d.type&&(d.img=a('').on(\"load.mfploader\",function(){d.hasSize=!0}).on(\"error.mfploader\",function(){d.hasSize=!0,d.loadError=!0,y(\"LazyLoadError\",d)}).attr(\"src\",d.src)),d.preloaded=!0}}}});var U=\"retina\";a.magnificPopup.registerModule(U,{options:{replaceSrc:function(a){return a.src.replace(/\\.\\w+$/,function(a){return\"@2x\"+a})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var a=b.st.retina,c=a.ratio;c=isNaN(c)?c():c,c>1&&(w(\"ImageHasSize.\"+U,function(a,b){b.img.css({\"max-width\":b.img[0].naturalWidth/c,width:\"100%\"})}),w(\"ElementParse.\"+U,function(b,d){d.src=a.replaceSrc(d,c)}))}}}}),A()});","(function(factory) {\n /* global define */\n /* istanbul ignore next */\n if ( typeof define === 'function' && define.amd ) {\n define(['jquery'], factory);\n } else if ( typeof module === 'object' && module.exports ) {\n // Node/CommonJS\n module.exports = function( root, jQuery ) {\n if ( jQuery === undefined ) {\n if ( typeof window !== 'undefined' ) {\n jQuery = require('jquery');\n } else {\n jQuery = require('jquery')(root);\n }\n }\n factory(jQuery);\n return jQuery;\n };\n } else {\n // Browser globals\n factory(jQuery);\n }\n}(function($) {\n 'use strict';\n\n var $doc = $(document);\n var $win = $(window);\n\n var pluginName = 'selectric';\n var classList = 'Input Items Open Disabled TempShow HideSelect Wrapper Focus Hover Responsive Above Scroll Group GroupLabel';\n var eventNamespaceSuffix = '.sl';\n\n var chars = ['a', 'e', 'i', 'o', 'u', 'n', 'c', 'y'];\n var diacritics = [\n /[\\xE0-\\xE5]/g, // a\n /[\\xE8-\\xEB]/g, // e\n /[\\xEC-\\xEF]/g, // i\n /[\\xF2-\\xF6]/g, // o\n /[\\xF9-\\xFC]/g, // u\n /[\\xF1]/g, // n\n /[\\xE7]/g, // c\n /[\\xFD-\\xFF]/g // y\n ];\n\n /**\n * Create an instance of Selectric\n *\n * @constructor\n * @param {Node} element - The <select> element\n * @param {object} opts - Options\n */\n var Selectric = function(element, opts) {\n var _this = this;\n\n _this.element = element;\n _this.$element = $(element);\n\n _this.state = {\n multiple : !!_this.$element.attr('multiple'),\n enabled : false,\n opened : false,\n currValue : -1,\n selectedIdx : -1,\n highlightedIdx : -1\n };\n\n _this.eventTriggers = {\n open : _this.open,\n close : _this.close,\n destroy : _this.destroy,\n refresh : _this.refresh,\n init : _this.init\n };\n\n _this.init(opts);\n };\n\n Selectric.prototype = {\n utils: {\n /**\n * Detect mobile browser\n *\n * @return {boolean}\n */\n isMobile: function() {\n return /android|ip(hone|od|ad)/i.test(navigator.userAgent);\n },\n\n /**\n * Escape especial characters in string (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions)\n *\n * @param {string} str - The string to be escaped\n * @return {string} The string with the special characters escaped\n */\n escapeRegExp: function(str) {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'); // $& means the whole matched string\n },\n\n /**\n * Replace diacritics\n *\n * @param {string} str - The string to replace the diacritics\n * @return {string} The string with diacritics replaced with ascii characters\n */\n replaceDiacritics: function(str) {\n var k = diacritics.length;\n\n while (k--) {\n str = str.toLowerCase().replace(diacritics[k], chars[k]);\n }\n\n return str;\n },\n\n /**\n * Format string\n * https://gist.github.com/atesgoral/984375\n *\n * @param {string} f - String to be formated\n * @return {string} String formated\n */\n format: function(f) {\n var a = arguments; // store outer arguments\n return ('' + f) // force format specifier to String\n .replace( // replace tokens in format specifier\n /\\{(?:(\\d+)|(\\w+))\\}/g, // match {token} references\n function(\n s, // the matched string (ignored)\n i, // an argument index\n p // a property name\n ) {\n return p && a[1] // if property name and first argument exist\n ? a[1][p] // return property from first argument\n : a[i]; // assume argument index and return i-th argument\n });\n },\n\n /**\n * Get the next enabled item in the options list.\n *\n * @param {object} selectItems - The options object.\n * @param {number} selected - Index of the currently selected option.\n * @return {object} The next enabled item.\n */\n nextEnabledItem: function(selectItems, selected) {\n while ( selectItems[ selected = (selected + 1) % selectItems.length ].disabled ) {\n // empty\n }\n return selected;\n },\n\n /**\n * Get the previous enabled item in the options list.\n *\n * @param {object} selectItems - The options object.\n * @param {number} selected - Index of the currently selected option.\n * @return {object} The previous enabled item.\n */\n previousEnabledItem: function(selectItems, selected) {\n while ( selectItems[ selected = (selected > 0 ? selected : selectItems.length) - 1 ].disabled ) {\n // empty\n }\n return selected;\n },\n\n /**\n * Transform camelCase string to dash-case.\n *\n * @param {string} str - The camelCased string.\n * @return {string} The string transformed to dash-case.\n */\n toDash: function(str) {\n return str.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\n },\n\n /**\n * Calls the events registered with function name.\n *\n * @param {string} fn - The name of the function.\n * @param {number} scope - Scope that should be set on the function.\n */\n triggerCallback: function(fn, scope) {\n var elm = scope.element;\n var func = scope.options['on' + fn];\n var args = [elm].concat([].slice.call(arguments).slice(1));\n\n if ( $.isFunction(func) ) {\n func.apply(elm, args);\n }\n\n $(elm).trigger(pluginName + '-' + this.toDash(fn), args);\n },\n\n /**\n * Transform array list to concatenated string and remove empty values\n * @param {array} arr - Class list\n * @return {string} Concatenated string\n */\n arrayToClassname: function(arr) {\n var newArr = $.grep(arr, function(item) {\n return !!item;\n });\n\n return $.trim(newArr.join(' '));\n }\n },\n\n /** Initializes */\n init: function(opts) {\n var _this = this;\n\n // Set options\n _this.options = $.extend(true, {}, $.fn[pluginName].defaults, _this.options, opts);\n\n _this.utils.triggerCallback('BeforeInit', _this);\n\n // Preserve data\n _this.destroy(true);\n\n // Disable on mobile browsers\n if ( _this.options.disableOnMobile && _this.utils.isMobile() ) {\n _this.disableOnMobile = true;\n return;\n }\n\n // Get classes\n _this.classes = _this.getClassNames();\n\n // Create elements\n var input = $('', { 'class': _this.classes.input, 'readonly': _this.utils.isMobile() });\n var items = $('
', { 'class': _this.classes.items, 'tabindex': -1 });\n var itemsScroll = $('
', { 'class': _this.classes.scroll });\n var wrapper = $('
', { 'class': _this.classes.prefix, 'html': _this.options.arrowButtonMarkup });\n var label = $('', { 'class': 'label' });\n var outerWrapper = _this.$element.wrap('
').parent().append(wrapper.prepend(label), items, input);\n var hideSelectWrapper = $('
', { 'class': _this.classes.hideselect });\n\n _this.elements = {\n input : input,\n items : items,\n itemsScroll : itemsScroll,\n wrapper : wrapper,\n label : label,\n outerWrapper : outerWrapper\n };\n\n if ( _this.options.nativeOnMobile && _this.utils.isMobile() ) {\n _this.elements.input = undefined;\n hideSelectWrapper.addClass(_this.classes.prefix + '-is-native');\n\n _this.$element.on('change', function() {\n _this.refresh();\n });\n }\n\n _this.$element\n .on(_this.eventTriggers)\n .wrap(hideSelectWrapper);\n\n _this.originalTabindex = _this.$element.prop('tabindex');\n _this.$element.prop('tabindex', -1);\n\n _this.populate();\n _this.activate();\n\n _this.utils.triggerCallback('Init', _this);\n },\n\n /** Activates the plugin */\n activate: function() {\n var _this = this;\n var hiddenChildren = _this.elements.items.closest(':visible').children(':hidden').addClass(_this.classes.tempshow);\n var originalWidth = _this.$element.width();\n\n hiddenChildren.removeClass(_this.classes.tempshow);\n\n _this.utils.triggerCallback('BeforeActivate', _this);\n\n _this.elements.outerWrapper.prop('class',\n _this.utils.arrayToClassname([\n _this.classes.wrapper,\n _this.$element.prop('class').replace(/\\S+/g, _this.classes.prefix + '-$&'),\n _this.options.responsive ? _this.classes.responsive : ''\n ])\n );\n\n if ( _this.options.inheritOriginalWidth && originalWidth > 0 ) {\n _this.elements.outerWrapper.width(originalWidth);\n }\n\n _this.unbindEvents();\n\n if ( !_this.$element.prop('disabled') ) {\n _this.state.enabled = true;\n\n // Not disabled, so... Removing disabled class\n _this.elements.outerWrapper.removeClass(_this.classes.disabled);\n\n // Remove styles from items box\n // Fix incorrect height when refreshed is triggered with fewer options\n _this.$li = _this.elements.items.removeAttr('style').find('li');\n\n _this.bindEvents();\n } else {\n _this.elements.outerWrapper.addClass(_this.classes.disabled);\n\n if ( _this.elements.input ) {\n _this.elements.input.prop('disabled', true);\n }\n }\n\n _this.utils.triggerCallback('Activate', _this);\n },\n\n /**\n * Generate classNames for elements\n *\n * @return {object} Classes object\n */\n getClassNames: function() {\n var _this = this;\n var customClass = _this.options.customClass;\n var classesObj = {};\n\n $.each(classList.split(' '), function(i, currClass) {\n var c = customClass.prefix + currClass;\n classesObj[currClass.toLowerCase()] = customClass.camelCase ? c : _this.utils.toDash(c);\n });\n\n classesObj.prefix = customClass.prefix;\n\n return classesObj;\n },\n\n /** Set the label text */\n setLabel: function() {\n var _this = this;\n var labelBuilder = _this.options.labelBuilder;\n\n if ( _this.state.multiple ) {\n // Make sure currentValues is an array\n var currentValues = $.isArray(_this.state.currValue) ? _this.state.currValue : [_this.state.currValue];\n // I'm not happy with this, but currentValues can be an empty\n // array and we need to fallback to the default option.\n currentValues = currentValues.length === 0 ? [0] : currentValues;\n\n var labelMarkup = $.map(currentValues, function(value) {\n return $.grep(_this.lookupItems, function(item) {\n return item.index === value;\n })[0]; // we don't want nested arrays here\n });\n\n labelMarkup = $.grep(labelMarkup, function(item) {\n // Hide default (please choose) if more then one element were selected.\n // If no option value were given value is set to option text by default\n if ( labelMarkup.length > 1 || labelMarkup.length === 0 ) {\n return $.trim(item.value) !== '';\n }\n return item;\n });\n\n labelMarkup = $.map(labelMarkup, function(item) {\n return $.isFunction(labelBuilder)\n ? labelBuilder(item)\n : _this.utils.format(labelBuilder, item);\n });\n\n // Limit the amount of selected values shown in label\n if ( _this.options.multiple.maxLabelEntries ) {\n if ( labelMarkup.length >= _this.options.multiple.maxLabelEntries + 1 ) {\n labelMarkup = labelMarkup.slice(0, _this.options.multiple.maxLabelEntries);\n labelMarkup.push(\n $.isFunction(labelBuilder)\n ? labelBuilder({ text: '...' })\n : _this.utils.format(labelBuilder, { text: '...' }));\n } else {\n labelMarkup.slice(labelMarkup.length - 1);\n }\n }\n _this.elements.label.html(labelMarkup.join(_this.options.multiple.separator));\n\n } else {\n var currItem = _this.lookupItems[_this.state.currValue];\n\n _this.elements.label.html(\n $.isFunction(labelBuilder)\n ? labelBuilder(currItem)\n : _this.utils.format(labelBuilder, currItem)\n );\n }\n },\n\n /** Get and save the available options */\n populate: function() {\n var _this = this;\n var $options = _this.$element.children();\n var $justOptions = _this.$element.find('option');\n var $selected = $justOptions.filter(':selected');\n var selectedIndex = $justOptions.index($selected);\n var currIndex = 0;\n var emptyValue = (_this.state.multiple ? [] : 0);\n\n if ( $selected.length > 1 && _this.state.multiple ) {\n selectedIndex = [];\n $selected.each(function() {\n selectedIndex.push($(this).index());\n });\n }\n\n _this.state.currValue = (~selectedIndex ? selectedIndex : emptyValue);\n _this.state.selectedIdx = _this.state.currValue;\n _this.state.highlightedIdx = _this.state.currValue;\n _this.items = [];\n _this.lookupItems = [];\n\n if ( $options.length ) {\n // Build options markup\n $options.each(function(i) {\n var $elm = $(this);\n\n if ( $elm.is('optgroup') ) {\n\n var optionsGroup = {\n element : $elm,\n label : $elm.prop('label'),\n groupDisabled : $elm.prop('disabled'),\n items : []\n };\n\n $elm.children().each(function(i) {\n var $elm = $(this);\n\n optionsGroup.items[i] = _this.getItemData(currIndex, $elm, optionsGroup.groupDisabled || $elm.prop('disabled'));\n\n _this.lookupItems[currIndex] = optionsGroup.items[i];\n\n currIndex++;\n });\n\n _this.items[i] = optionsGroup;\n\n } else {\n\n _this.items[i] = _this.getItemData(currIndex, $elm, $elm.prop('disabled'));\n\n _this.lookupItems[currIndex] = _this.items[i];\n\n currIndex++;\n\n }\n });\n\n _this.setLabel();\n _this.elements.items.append( _this.elements.itemsScroll.html( _this.getItemsMarkup(_this.items) ) );\n }\n },\n\n /**\n * Generate items object data\n * @param {integer} index - Current item index\n * @param {node} $elm - Current element node\n * @param {boolean} isDisabled - Current element disabled state\n * @return {object} Item object\n */\n getItemData: function(index, $elm, isDisabled) {\n var _this = this;\n\n return {\n index : index,\n element : $elm,\n value : $elm.val(),\n className : $elm.prop('class'),\n text : $elm.html(),\n slug : $.trim(_this.utils.replaceDiacritics($elm.html())),\n selected : $elm.prop('selected'),\n disabled : isDisabled\n };\n },\n\n /**\n * Generate options markup\n *\n * @param {object} items - Object containing all available options\n * @return {string} HTML for the options box\n */\n getItemsMarkup: function(items) {\n var _this = this;\n var markup = '
    ';\n\n if ( $.isFunction(_this.options.listBuilder) && _this.options.listBuilder ) {\n items = _this.options.listBuilder(items);\n }\n\n $.each(items, function(i, elm) {\n if ( elm.label !== undefined ) {\n\n markup += _this.utils.format('
    • {3}
    • ',\n _this.utils.arrayToClassname([\n _this.classes.group,\n elm.groupDisabled ? 'disabled' : '',\n elm.element.prop('class')\n ]),\n _this.classes.grouplabel,\n elm.element.prop('label')\n );\n\n $.each(elm.items, function(i, elm) {\n markup += _this.getItemMarkup(elm.index, elm);\n });\n\n markup += '
    ';\n\n } else {\n\n markup += _this.getItemMarkup(elm.index, elm);\n\n }\n });\n\n return markup + '
';\n },\n\n /**\n * Generate every option markup\n *\n * @param {number} index - Index of current item\n * @param {object} itemData - Current item\n * @return {string} HTML for the option\n */\n getItemMarkup: function(index, itemData) {\n var _this = this;\n var itemBuilder = _this.options.optionsItemBuilder;\n // limit access to item data to provide a simple interface\n // to most relevant options.\n var filteredItemData = {\n value: itemData.value,\n text : itemData.text,\n slug : itemData.slug,\n index: itemData.index\n };\n\n return _this.utils.format('
  • {3}
  • ',\n index,\n _this.utils.arrayToClassname([\n itemData.className,\n index === _this.items.length - 1 ? 'last' : '',\n itemData.disabled ? 'disabled' : '',\n itemData.selected ? 'selected' : ''\n ]),\n $.isFunction(itemBuilder)\n ? _this.utils.format(itemBuilder(itemData, this.$element, index), itemData)\n : _this.utils.format(itemBuilder, filteredItemData)\n );\n },\n\n /** Remove events on the elements */\n unbindEvents: function() {\n var _this = this;\n\n _this.elements.wrapper\n .add(_this.$element)\n .add(_this.elements.outerWrapper)\n .add(_this.elements.input)\n .off(eventNamespaceSuffix);\n },\n\n /** Bind events on the elements */\n bindEvents: function() {\n var _this = this;\n\n _this.elements.outerWrapper.on('mouseenter' + eventNamespaceSuffix + ' mouseleave' + eventNamespaceSuffix, function(e) {\n $(this).toggleClass(_this.classes.hover, e.type === 'mouseenter');\n\n // Delay close effect when openOnHover is true\n if ( _this.options.openOnHover ) {\n clearTimeout(_this.closeTimer);\n\n if ( e.type === 'mouseleave' ) {\n _this.closeTimer = setTimeout($.proxy(_this.close, _this), _this.options.hoverIntentTimeout);\n } else {\n _this.open();\n }\n }\n });\n\n // Toggle open/close\n _this.elements.wrapper.on('click' + eventNamespaceSuffix, function(e) {\n _this.state.opened ? _this.close() : _this.open(e);\n });\n\n // Translate original element focus event to dummy input.\n // Disabled on mobile devices because the default option list isn't\n // shown due the fact that hidden input gets focused\n if ( !(_this.options.nativeOnMobile && _this.utils.isMobile()) ) {\n _this.$element.on('focus' + eventNamespaceSuffix, function() {\n _this.elements.input.focus();\n });\n\n _this.elements.input\n .prop({ tabindex: _this.originalTabindex, disabled: false })\n .on('keydown' + eventNamespaceSuffix, $.proxy(_this.handleKeys, _this))\n .on('focusin' + eventNamespaceSuffix, function(e) {\n _this.elements.outerWrapper.addClass(_this.classes.focus);\n\n // Prevent the flicker when focusing out and back again in the browser window\n _this.elements.input.one('blur', function() {\n _this.elements.input.blur();\n });\n\n if ( _this.options.openOnFocus && !_this.state.opened ) {\n _this.open(e);\n }\n })\n .on('focusout' + eventNamespaceSuffix, function() {\n _this.elements.outerWrapper.removeClass(_this.classes.focus);\n })\n .on('input propertychange', function() {\n var val = _this.elements.input.val();\n var searchRegExp = new RegExp('^' + _this.utils.escapeRegExp(val), 'i');\n\n // Clear search\n clearTimeout(_this.resetStr);\n _this.resetStr = setTimeout(function() {\n _this.elements.input.val('');\n }, _this.options.keySearchTimeout);\n\n if ( val.length ) {\n // Search in select options\n $.each(_this.items, function(i, elm) {\n if ( !elm.disabled && searchRegExp.test(elm.text) || searchRegExp.test(elm.slug) ) {\n _this.highlight(i);\n return;\n }\n });\n }\n });\n }\n\n _this.$li.on({\n // Prevent blur on Chrome\n mousedown: function(e) {\n e.preventDefault();\n e.stopPropagation();\n },\n click: function() {\n _this.select($(this).data('index'));\n\n // Chrome doesn't close options box if select is wrapped with a label\n // We need to 'return false' to avoid that\n return false;\n }\n });\n },\n\n /**\n * Behavior when keyboard keys is pressed\n *\n * @param {object} e - Event object\n */\n handleKeys: function(e) {\n var _this = this;\n var key = e.which;\n var keys = _this.options.keys;\n\n var isPrevKey = $.inArray(key, keys.previous) > -1;\n var isNextKey = $.inArray(key, keys.next) > -1;\n var isSelectKey = $.inArray(key, keys.select) > -1;\n var isOpenKey = $.inArray(key, keys.open) > -1;\n var idx = _this.state.highlightedIdx;\n var isFirstOrLastItem = (isPrevKey && idx === 0) || (isNextKey && (idx + 1) === _this.items.length);\n var goToItem = 0;\n\n // Enter / Space\n if ( key === 13 || key === 32 ) {\n e.preventDefault();\n }\n\n // If it's a directional key\n if ( isPrevKey || isNextKey ) {\n if ( !_this.options.allowWrap && isFirstOrLastItem ) {\n return;\n }\n\n if ( isPrevKey ) {\n goToItem = _this.utils.previousEnabledItem(_this.lookupItems, idx);\n }\n\n if ( isNextKey ) {\n goToItem = _this.utils.nextEnabledItem(_this.lookupItems, idx);\n }\n\n _this.highlight(goToItem);\n }\n\n // Tab / Enter / ESC\n if ( isSelectKey && _this.state.opened ) {\n _this.select(idx);\n\n if ( !_this.state.multiple || !_this.options.multiple.keepMenuOpen ) {\n _this.close();\n }\n\n return;\n }\n\n // Space / Enter / Left / Up / Right / Down\n if ( isOpenKey && !_this.state.opened ) {\n _this.open();\n }\n },\n\n /** Update the items object */\n refresh: function() {\n var _this = this;\n\n _this.populate();\n _this.activate();\n _this.utils.triggerCallback('Refresh', _this);\n },\n\n /** Set options box width/height */\n setOptionsDimensions: function() {\n var _this = this;\n\n // Calculate options box height\n // Set a temporary class on the hidden parent of the element\n var hiddenChildren = _this.elements.items.closest(':visible').children(':hidden').addClass(_this.classes.tempshow);\n var maxHeight = _this.options.maxHeight;\n var itemsWidth = _this.elements.items.outerWidth();\n var wrapperWidth = _this.elements.wrapper.outerWidth() - (itemsWidth - _this.elements.items.width());\n\n // Set the dimensions, minimum is wrapper width, expand for long items if option is true\n if ( !_this.options.expandToItemText || wrapperWidth > itemsWidth ) {\n _this.finalWidth = wrapperWidth;\n } else {\n // Make sure the scrollbar width is included\n _this.elements.items.css('overflow', 'scroll');\n\n // Set a really long width for _this.elements.outerWrapper\n _this.elements.outerWrapper.width(9e4);\n _this.finalWidth = _this.elements.items.width();\n // Set scroll bar to auto\n _this.elements.items.css('overflow', '');\n _this.elements.outerWrapper.width('');\n }\n\n _this.elements.items.width(_this.finalWidth).height() > maxHeight && _this.elements.items.height(maxHeight);\n\n // Remove the temporary class\n hiddenChildren.removeClass(_this.classes.tempshow);\n },\n\n /** Detect if the options box is inside the window */\n isInViewport: function() {\n var _this = this;\n var scrollTop = $win.scrollTop();\n var winHeight = $win.height();\n var uiPosX = _this.elements.outerWrapper.offset().top;\n var uiHeight = _this.elements.outerWrapper.outerHeight();\n\n var fitsDown = (uiPosX + uiHeight + _this.itemsHeight) <= (scrollTop + winHeight);\n var fitsAbove = (uiPosX - _this.itemsHeight) > scrollTop;\n\n // If it does not fit below, only render it\n // above it fit's there.\n // It's acceptable that the user needs to\n // scroll the viewport to see the cut off UI\n var renderAbove = !fitsDown && fitsAbove;\n\n _this.elements.outerWrapper.toggleClass(_this.classes.above, renderAbove);\n },\n\n /**\n * Detect if currently selected option is visible and scroll the options box to show it\n *\n * @param {Number|Array} index - Index of the selected items\n */\n detectItemVisibility: function(index) {\n var _this = this;\n var $filteredLi = _this.$li.filter('[data-index]');\n\n if ( _this.state.multiple ) {\n // If index is an array, we can assume a multiple select and we\n // want to scroll to the uppermost selected item!\n // Math.min.apply(Math, index) returns the lowest entry in an Array.\n index = ($.isArray(index) && index.length === 0) ? 0 : index;\n index = $.isArray(index) ? Math.min.apply(Math, index) : index;\n }\n\n var liHeight = $filteredLi.eq(index).outerHeight();\n var liTop = $filteredLi[index].offsetTop;\n var itemsScrollTop = _this.elements.itemsScroll.scrollTop();\n var scrollT = liTop + liHeight * 2;\n\n _this.elements.itemsScroll.scrollTop(\n scrollT > itemsScrollTop + _this.itemsHeight ? scrollT - _this.itemsHeight :\n liTop - liHeight < itemsScrollTop ? liTop - liHeight :\n itemsScrollTop\n );\n },\n\n /**\n * Open the select options box\n *\n * @param {Event} e - Event\n */\n open: function(e) {\n var _this = this;\n\n if ( _this.options.nativeOnMobile && _this.utils.isMobile()) {\n return false;\n }\n\n _this.utils.triggerCallback('BeforeOpen', _this);\n\n if ( e ) {\n e.preventDefault();\n if (_this.options.stopPropagation) {\n e.stopPropagation();\n }\n }\n\n if ( _this.state.enabled ) {\n _this.setOptionsDimensions();\n\n // Find any other opened instances of select and close it\n $('.' + _this.classes.hideselect, '.' + _this.classes.open).children()[pluginName]('close');\n\n _this.state.opened = true;\n _this.itemsHeight = _this.elements.items.outerHeight();\n _this.itemsInnerHeight = _this.elements.items.height();\n\n // Toggle options box visibility\n _this.elements.outerWrapper.addClass(_this.classes.open);\n\n // Give dummy input focus\n _this.elements.input.val('');\n if ( e && e.type !== 'focusin' ) {\n _this.elements.input.focus();\n }\n\n // Delayed binds events on Document to make label clicks work\n setTimeout(function() {\n $doc\n .on('click' + eventNamespaceSuffix, $.proxy(_this.close, _this))\n .on('scroll' + eventNamespaceSuffix, $.proxy(_this.isInViewport, _this));\n }, 1);\n\n _this.isInViewport();\n\n // Prevent window scroll when using mouse wheel inside items box\n if ( _this.options.preventWindowScroll ) {\n /* istanbul ignore next */\n $doc.on('mousewheel' + eventNamespaceSuffix + ' DOMMouseScroll' + eventNamespaceSuffix, '.' + _this.classes.scroll, function(e) {\n var orgEvent = e.originalEvent;\n var scrollTop = $(this).scrollTop();\n var deltaY = 0;\n\n if ( 'detail' in orgEvent ) { deltaY = orgEvent.detail * -1; }\n if ( 'wheelDelta' in orgEvent ) { deltaY = orgEvent.wheelDelta; }\n if ( 'wheelDeltaY' in orgEvent ) { deltaY = orgEvent.wheelDeltaY; }\n if ( 'deltaY' in orgEvent ) { deltaY = orgEvent.deltaY * -1; }\n\n if ( scrollTop === (this.scrollHeight - _this.itemsInnerHeight) && deltaY < 0 || scrollTop === 0 && deltaY > 0 ) {\n e.preventDefault();\n }\n });\n }\n\n _this.detectItemVisibility(_this.state.selectedIdx);\n\n _this.highlight(_this.state.multiple ? -1 : _this.state.selectedIdx);\n\n _this.utils.triggerCallback('Open', _this);\n }\n },\n\n /** Close the select options box */\n close: function() {\n var _this = this;\n\n _this.utils.triggerCallback('BeforeClose', _this);\n\n // Remove custom events on document\n $doc.off(eventNamespaceSuffix);\n\n // Remove visible class to hide options box\n _this.elements.outerWrapper.removeClass(_this.classes.open);\n\n _this.state.opened = false;\n\n _this.utils.triggerCallback('Close', _this);\n },\n\n /** Select current option and change the label */\n change: function() {\n var _this = this;\n\n _this.utils.triggerCallback('BeforeChange', _this);\n\n if ( _this.state.multiple ) {\n // Reset old selected\n $.each(_this.lookupItems, function(idx) {\n _this.lookupItems[idx].selected = false;\n _this.$element.find('option').prop('selected', false);\n });\n\n // Set new selected\n $.each(_this.state.selectedIdx, function(idx, value) {\n _this.lookupItems[value].selected = true;\n _this.$element.find('option').eq(value).prop('selected', true);\n });\n\n _this.state.currValue = _this.state.selectedIdx;\n\n _this.setLabel();\n\n _this.utils.triggerCallback('Change', _this);\n } else if ( _this.state.currValue !== _this.state.selectedIdx ) {\n // Apply changed value to original select\n _this.$element\n .prop('selectedIndex', _this.state.currValue = _this.state.selectedIdx)\n .data('value', _this.lookupItems[_this.state.selectedIdx].text);\n\n // Change label text\n _this.setLabel();\n\n _this.utils.triggerCallback('Change', _this);\n }\n },\n\n /**\n * Highlight option\n * @param {number} index - Index of the options that will be highlighted\n */\n highlight: function(index) {\n var _this = this;\n var $filteredLi = _this.$li.filter('[data-index]').removeClass('highlighted');\n\n _this.utils.triggerCallback('BeforeHighlight', _this);\n\n // Parameter index is required and should not be a disabled item\n if ( index === undefined || index === -1 || _this.lookupItems[index].disabled ) {\n return;\n }\n\n $filteredLi\n .eq(_this.state.highlightedIdx = index)\n .addClass('highlighted');\n\n _this.detectItemVisibility(index);\n\n _this.utils.triggerCallback('Highlight', _this);\n },\n\n /**\n * Select option\n *\n * @param {number} index - Index of the option that will be selected\n */\n select: function(index) {\n var _this = this;\n var $filteredLi = _this.$li.filter('[data-index]');\n\n _this.utils.triggerCallback('BeforeSelect', _this, index);\n\n // Parameter index is required and should not be a disabled item\n if ( index === undefined || index === -1 || _this.lookupItems[index].disabled ) {\n return;\n }\n\n if ( _this.state.multiple ) {\n // Make sure selectedIdx is an array\n _this.state.selectedIdx = $.isArray(_this.state.selectedIdx) ? _this.state.selectedIdx : [_this.state.selectedIdx];\n\n var hasSelectedIndex = $.inArray(index, _this.state.selectedIdx);\n if ( hasSelectedIndex !== -1 ) {\n _this.state.selectedIdx.splice(hasSelectedIndex, 1);\n } else {\n _this.state.selectedIdx.push(index);\n }\n\n $filteredLi\n .removeClass('selected')\n .filter(function(index) {\n return $.inArray(index, _this.state.selectedIdx) !== -1;\n })\n .addClass('selected');\n } else {\n $filteredLi\n .removeClass('selected')\n .eq(_this.state.selectedIdx = index)\n .addClass('selected');\n }\n\n if ( !_this.state.multiple || !_this.options.multiple.keepMenuOpen ) {\n _this.close();\n }\n\n _this.change();\n\n _this.utils.triggerCallback('Select', _this, index);\n },\n\n /**\n * Unbind and remove\n *\n * @param {boolean} preserveData - Check if the data on the element should be removed too\n */\n destroy: function(preserveData) {\n var _this = this;\n\n if ( _this.state && _this.state.enabled ) {\n _this.elements.items.add(_this.elements.wrapper).add(_this.elements.input).remove();\n\n if ( !preserveData ) {\n _this.$element.removeData(pluginName).removeData('value');\n }\n\n _this.$element.prop('tabindex', _this.originalTabindex).off(eventNamespaceSuffix).off(_this.eventTriggers).unwrap().unwrap();\n\n _this.state.enabled = false;\n }\n }\n };\n\n // A really lightweight plugin wrapper around the constructor,\n // preventing against multiple instantiations\n $.fn[pluginName] = function(args) {\n return this.each(function() {\n var data = $.data(this, pluginName);\n\n if ( data && !data.disableOnMobile ) {\n (typeof args === 'string' && data[args]) ? data[args]() : data.init(args);\n } else {\n $.data(this, pluginName, new Selectric(this, args));\n }\n });\n };\n\n /**\n * Default plugin options\n *\n * @type {object}\n */\n $.fn[pluginName].defaults = {\n onChange : function(elm) { $(elm).change(); },\n maxHeight : 300,\n keySearchTimeout : 500,\n arrowButtonMarkup : '',\n disableOnMobile : false,\n nativeOnMobile : true,\n openOnFocus : true,\n openOnHover : false,\n hoverIntentTimeout : 500,\n expandToItemText : false,\n responsive : false,\n preventWindowScroll : true,\n inheritOriginalWidth : false,\n allowWrap : true,\n stopPropagation : true,\n optionsItemBuilder : '{text}', // function(itemData, element, index)\n labelBuilder : '{text}', // function(currItem)\n listBuilder : false, // function(items)\n keys : {\n previous : [37, 38], // Left / Up\n next : [39, 40], // Right / Down\n select : [9, 13, 27], // Tab / Enter / Escape\n open : [13, 32, 37, 38, 39, 40], // Enter / Space / Left / Up / Right / Down\n close : [9, 27] // Tab / Escape\n },\n customClass : {\n prefix: pluginName,\n camelCase: false\n },\n multiple : {\n separator: ', ',\n keepMenuOpen: true,\n maxLabelEntries: false\n }\n };\n}));\n","/*! jqBootstrapValidation - v1.3.7 - 2013-05-07\n* http://reactiveraven.github.com/jqBootstrapValidation\n* Copyright (c) 2013 David Godfrey; Licensed MIT */\n(function(e){function s(e){return new RegExp(\"^\"+e+\"$\")}function o(e,t){var n=Array.prototype.slice.call(arguments,2),r=e.split(\".\"),i=r.pop();for(var s=0;s0});u.trigger(\"submit.validation\"),i.trigger(\"validationLostFocus.validation\"),s.each(function(t,n){var i=e(n);if(i.hasClass(\"warning\")||i.hasClass(\"error\"))i.removeClass(\"warning\").addClass(\"error\"),r++}),r?(o.options.preventSubmit&&(t.preventDefault(),t.stopImmediatePropagation()),n.addClass(\"error\"),e.isFunction(o.options.submitError)&&o.options.submitError(n,t,u.jqBootstrapValidation(\"collectErrors\",!0))):(n.removeClass(\"error\"),e.isFunction(o.options.submitSuccess)&&o.options.submitSuccess(n,t))}),this.each(function(){var n=e(this),s=n.parents(\".control-group\").first(),u=s.find(\".help-block\").first(),a=n.parents(\"form\").first(),f=[];!u.length&&o.options.autoAdd&&o.options.autoAdd.helpBlocks&&(u=e('
    '),s.find(\".controls\").append(u),t.push(u[0]));if(o.options.sniffHtml){var l;n.data(\"validationPatternPattern\")&&n.attr(\"pattern\",n.data(\"validationPatternPattern\")),n.attr(\"pattern\")!==undefined&&(l=\"Not in the expected format\",n.data(\"validationPatternMessage\")&&(l=n.data(\"validationPatternMessage\")),n.data(\"validationPatternMessage\",l),n.data(\"validationPatternRegex\",n.attr(\"pattern\")));if(n.attr(\"max\")!==undefined||n.attr(\"aria-valuemax\")!==undefined){var c=n.attr(\"max\")!==undefined?n.attr(\"max\"):n.attr(\"aria-valuemax\");l=\"Too high: Maximum of '\"+c+\"'\",n.data(\"validationMaxMessage\")&&(l=n.data(\"validationMaxMessage\")),n.data(\"validationMaxMessage\",l),n.data(\"validationMaxMax\",c)}if(n.attr(\"min\")!==undefined||n.attr(\"aria-valuemin\")!==undefined){var h=n.attr(\"min\")!==undefined?n.attr(\"min\"):n.attr(\"aria-valuemin\");l=\"Too low: Minimum of '\"+h+\"'\",n.data(\"validationMinMessage\")&&(l=n.data(\"validationMinMessage\")),n.data(\"validationMinMessage\",l),n.data(\"validationMinMin\",h)}n.attr(\"maxlength\")!==undefined&&(l=\"Too long: Maximum of '\"+n.attr(\"maxlength\")+\"' characters\",n.data(\"validationMaxlengthMessage\")&&(l=n.data(\"validationMaxlengthMessage\")),n.data(\"validationMaxlengthMessage\",l),n.data(\"validationMaxlengthMaxlength\",n.attr(\"maxlength\"))),n.attr(\"minlength\")!==undefined&&(l=\"Too short: Minimum of '\"+n.attr(\"minlength\")+\"' characters\",n.data(\"validationMinlengthMessage\")&&(l=n.data(\"validationMinlengthMessage\")),n.data(\"validationMinlengthMessage\",l),n.data(\"validationMinlengthMinlength\",n.attr(\"minlength\")));if(n.attr(\"required\")!==undefined||n.attr(\"aria-required\")!==undefined)l=o.builtInValidators.required.message,n.data(\"validationRequiredMessage\")&&(l=n.data(\"validationRequiredMessage\")),n.data(\"validationRequiredMessage\",l);if(n.attr(\"type\")!==undefined&&n.attr(\"type\").toLowerCase()===\"number\"){l=o.validatorTypes.number.message,n.data(\"validationNumberMessage\")&&(l=n.data(\"validationNumberMessage\")),n.data(\"validationNumberMessage\",l);var p=o.validatorTypes.number.step;n.data(\"validationNumberStep\")&&(p=n.data(\"validationNumberStep\")),n.data(\"validationNumberStep\",p);var d=o.validatorTypes.number.decimal;n.data(\"validationNumberDecimal\")&&(d=n.data(\"validationNumberDecimal\")),n.data(\"validationNumberDecimal\",d)}n.attr(\"type\")!==undefined&&n.attr(\"type\").toLowerCase()===\"email\"&&(l=\"Not a valid email address\",n.data(\"validationEmailMessage\")&&(l=n.data(\"validationEmailMessage\")),n.data(\"validationEmailMessage\",l)),n.attr(\"minchecked\")!==undefined&&(l=\"Not enough options checked; Minimum of '\"+n.attr(\"minchecked\")+\"' required\",n.data(\"validationMincheckedMessage\")&&(l=n.data(\"validationMincheckedMessage\")),n.data(\"validationMincheckedMessage\",l),n.data(\"validationMincheckedMinchecked\",n.attr(\"minchecked\"))),n.attr(\"maxchecked\")!==undefined&&(l=\"Too many options checked; Maximum of '\"+n.attr(\"maxchecked\")+\"' required\",n.data(\"validationMaxcheckedMessage\")&&(l=n.data(\"validationMaxcheckedMessage\")),n.data(\"validationMaxcheckedMessage\",l),n.data(\"validationMaxcheckedMaxchecked\",n.attr(\"maxchecked\")))}n.data(\"validation\")!==undefined&&(f=n.data(\"validation\").split(\",\")),e.each(n.data(),function(e,t){var n=e.replace(/([A-Z])/g,\",$1\").split(\",\");n[0]===\"validation\"&&n[1]&&f.push(n[1])});var v=f,m=[],g=function(e,t){f[e]=r(t)},y=function(t,i){if(n.data(\"validation\"+i+\"Shortcut\")!==undefined)e.each(n.data(\"validation\"+i+\"Shortcut\").split(\",\"),function(e,t){m.push(t)});else if(o.builtInValidators[i.toLowerCase()]){var s=o.builtInValidators[i.toLowerCase()];s.type.toLowerCase()===\"shortcut\"&&e.each(s.shortcut.split(\",\"),function(e,t){t=r(t),m.push(t),f.push(t)})}};do e.each(f,g),f=e.unique(f),m=[],e.each(v,y),v=m;while(v.length>0);var b={};e.each(f,function(t,i){var s=n.data(\"validation\"+i+\"Message\"),u=!!s,a=!1;s||(s=\"'\"+i+\"' validation failed \"),e.each(o.validatorTypes,function(t,o){b[t]===undefined&&(b[t]=[]);if(!a&&n.data(\"validation\"+i+r(o.name))!==undefined){var f=o.init(n,i);u&&(f.message=s),b[t].push(e.extend(!0,{name:r(o.name),message:s},f)),a=!0}});if(!a&&o.builtInValidators[i.toLowerCase()]){var f=e.extend(!0,{},o.builtInValidators[i.toLowerCase()]);u&&(f.message=s);var l=f.type.toLowerCase();l===\"shortcut\"?a=!0:e.each(o.validatorTypes,function(t,s){b[t]===undefined&&(b[t]=[]),!a&&l===t.toLowerCase()&&(n.data(\"validation\"+i+r(s.name),f[s.name.toLowerCase()]),b[l].push(e.extend(f,s.init(n,i))),a=!0)})}a||e.error(\"Cannot find validation info for '\"+i+\"'\")}),u.data(\"original-contents\",u.data(\"original-contents\")?u.data(\"original-contents\"):u.html()),u.data(\"original-role\",u.data(\"original-role\")?u.data(\"original-role\"):u.attr(\"role\")),s.data(\"original-classes\",s.data(\"original-clases\")?s.data(\"original-classes\"):s.attr(\"class\")),n.data(\"original-aria-invalid\",n.data(\"original-aria-invalid\")?n.data(\"original-aria-invalid\"):n.attr(\"aria-invalid\")),n.bind(\"validation.validation\",function(t,r){var s=i(n),u=[];return e.each(b,function(t,i){(s||s.length||r&&r.includeEmpty||!!o.validatorTypes[t].includeEmpty||!!o.validatorTypes[t].blockSubmit&&r&&!!r.submitting)&&e.each(i,function(e,r){o.validatorTypes[t].validate(n,s,r)&&u.push(r.message)})}),u}),n.bind(\"getValidators.validation\",function(){return b});var w=0;e.each(b,function(e,t){w+=t.length}),n.bind(\"getValidatorCount.validation\",function(){return w}),n.bind(\"submit.validation\",function(){return n.triggerHandler(\"change.validation\",{submitting:!0})}),n.bind((o.options.bindEvents.length>0?o.options.bindEvents:[\"keyup\",\"focus\",\"blur\",\"click\",\"keydown\",\"keypress\",\"change\"]).concat([\"revalidate\"]).join(\".validation \")+\".validation\",function(t,r){var f=i(n),l=[];r&&!!r.submitting?s.data(\"jqbvIsSubmitting\",!0):t.type!==\"revalidate\"&&s.data(\"jqbvIsSubmitting\",!1);var c=!!s.data(\"jqbvIsSubmitting\");s.find(\"input,textarea,select\").each(function(t,i){var s=l.length;e.each(e(i).triggerHandler(\"validation.validation\",r),function(e,t){l.push(t)});if(l.length>s)e(i).attr(\"aria-invalid\",\"true\");else{var o=n.data(\"original-aria-invalid\");e(i).attr(\"aria-invalid\",o!==undefined?o:!1)}}),a.find(\"input,select,textarea\").not(n).not('[name=\"'+n.attr(\"name\")+'\"]').trigger(\"validationLostFocus.validation\"),l=e.unique(l.sort()),l.length?(s.removeClass(\"success error warning\").addClass(c?\"error\":\"warning\"),o.options.semanticallyStrict&&l.length===1?u.html(l[0]+(o.options.prependExistingHelpBlock?u.data(\"original-contents\"):\"\")):u.html('
    • '+l.join(\"
    • \")+\"
    \"+(o.options.prependExistingHelpBlock?u.data(\"original-contents\"):\"\"))):(s.removeClass(\"warning error success\"),f.length>0&&s.addClass(\"success\"),u.html(u.data(\"original-contents\"))),t.type===\"blur\"&&s.removeClass(\"success\")}),n.bind(\"validationLostFocus.validation\",function(){s.removeClass(\"success\")})})},destroy:function(){return this.each(function(){var n=e(this),r=n.parents(\".control-group\").first(),i=r.find(\".help-block\").first(),s=n.parents(\"form\").first();n.unbind(\".validation\"),s.unbind(\".validationSubmit\"),i.html(i.data(\"original-contents\")),r.attr(\"class\",r.data(\"original-classes\")),n.attr(\"aria-invalid\",n.data(\"original-aria-invalid\")),i.attr(\"role\",n.data(\"original-role\")),e.inArray(i[0],t)>-1&&i.remove()})},collectErrors:function(t){var n={};return this.each(function(t,r){var i=e(r),s=i.attr(\"name\"),o=i.triggerHandler(\"validation.validation\",{includeEmpty:!0});n[s]=e.extend(!0,o,n[s])}),e.each(n,function(e,t){t.length===0&&delete n[e]}),n},hasErrors:function(){var t=[];return this.find(\"input,select,textarea\").add(this).each(function(n,r){t=t.concat(e(r).triggerHandler(\"getValidators.validation\")?e(r).triggerHandler(\"validation.validation\",{submitting:!0}):[])}),t.length>0},override:function(t){n=e.extend(!0,n,t)}},validatorTypes:{callback:{name:\"callback\",init:function(e,t){var n={validatorName:t,callback:e.data(\"validation\"+t+\"Callback\"),lastValue:e.val(),lastValid:!0,lastFinished:!0},r=\"Not valid\";return e.data(\"validation\"+t+\"Message\")&&(r=e.data(\"validation\"+t+\"Message\")),n.message=r,n},validate:function(e,t,n){if(n.lastValue===t&&n.lastFinished)return!n.lastValid;if(n.lastFinished===!0){n.lastValue=t,n.lastValid=!0,n.lastFinished=!1;var r=n,i=e;o(n.callback,window,e,t,function(t){r.lastValue===t.value&&(r.lastValid=t.valid,t.message&&(r.message=t.message),r.lastFinished=!0,i.data(\"validation\"+r.validatorName+\"Message\",r.message),setTimeout(function(){!e.is(\":focus\")&&e.parents(\"form\").first().data(\"jqbvIsSubmitting\")?i.trigger(\"blur.validation\"):i.trigger(\"revalidate.validation\")},1))})}return!1}},ajax:{name:\"ajax\",init:function(e,t){return{validatorName:t,url:e.data(\"validation\"+t+\"Ajax\"),lastValue:e.val(),lastValid:!0,lastFinished:!0}},validate:function(t,n,r){return\"\"+r.lastValue==\"\"+n&&r.lastFinished===!0?r.lastValid===!1:(r.lastFinished===!0&&(r.lastValue=n,r.lastValid=!0,r.lastFinished=!1,e.ajax({url:r.url,data:\"value=\"+encodeURIComponent(n)+\"&field=\"+t.attr(\"name\"),dataType:\"json\",success:function(e){\"\"+r.lastValue==\"\"+e.value&&(r.lastValid=!!e.valid,e.message&&(r.message=e.message),r.lastFinished=!0,t.data(\"validation\"+r.validatorName+\"Message\",r.message),setTimeout(function(){t.trigger(\"revalidate.validation\")},1))},failure:function(){r.lastValid=!0,r.message=\"ajax call failed\",r.lastFinished=!0,t.data(\"validation\"+r.validatorName+\"Message\",r.message),setTimeout(function(){t.trigger(\"revalidate.validation\")},1)}})),!1)}},regex:{name:\"regex\",init:function(t,n){var r={},i=t.data(\"validation\"+n+\"Regex\");r.regex=s(i),i===undefined&&e.error(\"Can't find regex for '\"+n+\"' validator on '\"+t.attr(\"name\")+\"'\");var o=\"Not in the expected format\";return t.data(\"validation\"+n+\"Message\")&&(o=t.data(\"validation\"+n+\"Message\")),r.message=o,r.originalName=n,r},validate:function(e,t,n){return!n.regex.test(t)&&!n.negative||n.regex.test(t)&&n.negative}},email:{name:\"email\",init:function(e,t){var n={};n.regex=s(\"[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[A-Za-z0-9.-]+\\\\.[A-Za-z]{2,4}\");var r=\"Not a valid email address\";return e.data(\"validation\"+t+\"Message\")&&(r=e.data(\"validation\"+t+\"Message\")),n.message=r,n.originalName=t,n},validate:function(e,t,n){return!n.regex.test(t)&&!n.negative||n.regex.test(t)&&n.negative}},required:{name:\"required\",init:function(e,t){var n=\"Toto pole je povinné\";return e.data(\"validation\"+t+\"Message\")&&(n=e.data(\"validation\"+t+\"Message\")),{message:n,includeEmpty:!0}},validate:function(e,t,n){return!!(t.length===0&&!n.negative||t.length>0&&n.negative)},blockSubmit:!0},match:{name:\"match\",init:function(t,n){var r=t.data(\"validation\"+n+\"Match\"),i=t.parents(\"form\").first(),s=i.find('[name=\"'+r+'\"]').first();s.bind(\"validation.validation\",function(){t.trigger(\"revalidate.validation\",{submitting:!0})});var o={};o.element=s,s.length===0&&e.error(\"Can't find field '\"+r+\"' to match '\"+t.attr(\"name\")+\"' against in '\"+n+\"' validator\");var u=\"Must match\",a=null;return(a=i.find('label[for=\"'+r+'\"]')).length?u+=\" '\"+a.text()+\"'\":(a=s.parents(\".control-group\").first().find(\"label\")).length&&(u+=\" '\"+a.first().text()+\"'\"),t.data(\"validation\"+n+\"Message\")&&(u=t.data(\"validation\"+n+\"Message\")),o.message=u,o},validate:function(e,t,n){return t!==n.element.val()&&!n.negative||t===n.element.val()&&n.negative},blockSubmit:!0,includeEmpty:!0},max:{name:\"max\",init:function(e,t){var n={};return n.max=e.data(\"validation\"+t+\"Max\"),n.message=\"Too high: Maximum of '\"+n.max+\"'\",e.data(\"validation\"+t+\"Message\")&&(n.message=e.data(\"validation\"+t+\"Message\")),n},validate:function(e,t,n){return parseFloat(t,10)>parseFloat(n.max,10)&&!n.negative||parseFloat(t,10)<=parseFloat(n.max,10)&&n.negative}},min:{name:\"min\",init:function(e,t){var n={};return n.min=e.data(\"validation\"+t+\"Min\"),n.message=\"Too low: Minimum of '\"+n.min+\"'\",e.data(\"validation\"+t+\"Message\")&&(n.message=e.data(\"validation\"+t+\"Message\")),n},validate:function(e,t,n){return parseFloat(t)=parseFloat(n.min)&&n.negative}},maxlength:{name:\"maxlength\",init:function(e,t){var n={};return n.maxlength=e.data(\"validation\"+t+\"Maxlength\"),n.message=\"Too long: Maximum of '\"+n.maxlength+\"' characters\",e.data(\"validation\"+t+\"Message\")&&(n.message=e.data(\"validation\"+t+\"Message\")),n},validate:function(e,t,n){return t.length>n.maxlength&&!n.negative||t.length<=n.maxlength&&n.negative}},minlength:{name:\"minlength\",init:function(e,t){var n={};return n.minlength=e.data(\"validation\"+t+\"Minlength\"),n.message=\"Too short: Minimum of '\"+n.minlength+\"' characters\",e.data(\"validation\"+t+\"Message\")&&(n.message=e.data(\"validation\"+t+\"Message\")),n},validate:function(e,t,n){return t.length=n.minlength&&n.negative}},maxchecked:{name:\"maxchecked\",init:function(e,t){var n={},r=e.parents(\"form\").first().find('[name=\"'+e.attr(\"name\")+'\"]');r.bind(\"change.validation click.validation\",function(){e.trigger(\"revalidate.validation\",{includeEmpty:!0})}),n.elements=r,n.maxchecked=e.data(\"validation\"+t+\"Maxchecked\");var i=\"Too many: Max '\"+n.maxchecked+\"' checked\";return e.data(\"validation\"+t+\"Message\")&&(i=e.data(\"validation\"+t+\"Message\")),n.message=i,n},validate:function(e,t,n){return n.elements.filter(\":checked\").length>n.maxchecked&&!n.negative||n.elements.filter(\":checked\").length<=n.maxchecked&&n.negative},blockSubmit:!0},minchecked:{name:\"minchecked\",init:function(e,t){var n={},r=e.parents(\"form\").first().find('[name=\"'+e.attr(\"name\")+'\"]');r.bind(\"change.validation click.validation\",function(){e.trigger(\"revalidate.validation\",{includeEmpty:!0})}),n.elements=r,n.minchecked=e.data(\"validation\"+t+\"Minchecked\");var i=\"Too few: Min '\"+n.minchecked+\"' checked\";return e.data(\"validation\"+t+\"Message\")&&(i=e.data(\"validation\"+t+\"Message\")),n.message=i,n},validate:function(e,t,n){return n.elements.filter(\":checked\").length=n.minchecked&&n.negative},blockSubmit:!0,includeEmpty:!0},number:{name:\"number\",init:function(e,t){var n={};n.step=1,e.attr(\"step\")&&(n.step=e.attr(\"step\")),e.data(\"validation\"+t+\"Step\")&&(n.step=e.data(\"validation\"+t+\"Step\")),n.decimal=\".\",e.data(\"validation\"+t+\"Decimal\")&&(n.decimal=e.data(\"validation\"+t+\"Decimal\")),n.thousands=\"\",e.data(\"validation\"+t+\"Thousands\")&&(n.thousands=e.data(\"validation\"+t+\"Thousands\")),n.regex=s(\"([+-]?\\\\d+(\\\\\"+n.decimal+\"\\\\d+)?)?\"),n.message=\"Must be a number\";var r=e.data(\"validation\"+t+\"Message\");return r&&(n.message=r),n},validate:function(e,t,n){var r=t.replace(n.decimal,\".\").replace(n.thousands,\"\"),i=parseFloat(r),s=parseFloat(n.step);while(s%1!==0)s=parseFloat(s.toPrecision(12))*10,i=parseFloat(i.toPrecision(12))*10;var o=n.regex.test(t),u=parseFloat(i)%parseFloat(s)===0,a=!isNaN(parseFloat(r))&&isFinite(r),f=!(o&&u&&a);return f},message:\"Must be a number\"}},builtInValidators:{email:{name:\"Email\",type:\"email\"},passwordagain:{name:\"Passwordagain\",type:\"match\",match:\"password\",message:\"Does not match the given password\"},positive:{name:\"Positive\",type:\"shortcut\",shortcut:\"number,positivenumber\"},negative:{name:\"Negative\",type:\"shortcut\",shortcut:\"number,negativenumber\"},integer:{name:\"Integer\",type:\"regex\",regex:\"[+-]?\\\\d+\",message:\"No decimal places allowed\"},positivenumber:{name:\"Positivenumber\",type:\"min\",min:0,message:\"Must be a positive number\"},negativenumber:{name:\"Negativenumber\",type:\"max\",max:0,message:\"Must be a negative number\"},required:{name:\"Required\",type:\"required\",message:\"Toto pole je povinné\"},checkone:{name:\"Checkone\",type:\"minchecked\",minchecked:1,message:\"Check at least one option\"},number:{name:\"Number\",type:\"number\",decimal:\".\",step:\"1\"},pattern:{name:\"Pattern\",type:\"regex\",message:\"Not in expected format\"}}},r=function(e){return e.toLowerCase().replace(/(^|\\s)([a-z])/g,function(e,t,n){return t+n.toUpperCase()})},i=function(t){var n=null,r=t.attr(\"type\");if(r===\"checkbox\"){n=t.is(\":checked\")?n:\"\";var i=t.parents(\"form\").first()||t.parents(\".control-group\").first();i&&(n=i.find(\"input[name='\"+t.attr(\"name\")+\"']:checked\").map(function(t,n){return e(n).val()}).toArray().join(\",\"))}else if(r===\"radio\"){n=e('input[name=\"'+t.attr(\"name\")+'\"]:checked').length>0?t.val():\"\";var s=t.parents(\"form\").first()||t.parents(\".control-group\").first();s&&(n=s.find(\"input[name='\"+t.attr(\"name\")+\"']:checked\").map(function(t,n){return e(n).val()}).toArray().join(\",\"))}else n=t.val();return n};e.fn.jqBootstrapValidation=function(t){return n.methods[t]?n.methods[t].apply(this,Array.prototype.slice.call(arguments,1)):typeof t==\"object\"||!t?n.methods.init.apply(this,arguments):(e.error(\"Method \"+t+\" does not exist on jQuery.jqBootstrapValidation\"),null)},e.jqBootstrapValidation=function(t){e(\":input\").not(\"[type=image],[type=submit]\").jqBootstrapValidation.apply(this,arguments)}})(jQuery);\n","/*! lightgallery - v1.6.12 - 2019-02-19\n* http://sachinchoolur.github.io/lightGallery/\n* Copyright (c) 2019 Sachin N; Licensed GPLv3 */\n/*! lightgallery - v1.6.12 - 2019-02-19\n* http://sachinchoolur.github.io/lightGallery/\n* Copyright (c) 2019 Sachin N; Licensed GPLv3 */\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module unless amdModuleId is set\n define(['jquery'], function (a0) {\n return (factory(a0));\n });\n } else if (typeof module === 'object' && module.exports) {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory(require('jquery'));\n } else {\n factory(root[\"jQuery\"]);\n }\n}(this, function ($) {\n\n(function() {\n 'use strict';\n\n var defaults = {\n\n mode: 'lg-slide',\n\n // Ex : 'ease'\n cssEasing: 'ease',\n\n //'for jquery animation'\n easing: 'linear',\n speed: 600,\n height: '100%',\n width: '100%',\n addClass: '',\n startClass: 'lg-start-zoom',\n backdropDuration: 150,\n hideBarsDelay: 6000,\n\n useLeft: false,\n\n closable: true,\n loop: true,\n escKey: true,\n keyPress: true,\n controls: true,\n slideEndAnimatoin: true,\n hideControlOnEnd: false,\n mousewheel: true,\n\n getCaptionFromTitleOrAlt: true,\n\n // .lg-item || '.lg-sub-html'\n appendSubHtmlTo: '.lg-sub-html',\n\n subHtmlSelectorRelative: false,\n\n /**\n * @desc number of preload slides\n * will exicute only after the current slide is fully loaded.\n *\n * @ex you clicked on 4th image and if preload = 1 then 3rd slide and 5th\n * slide will be loaded in the background after the 4th slide is fully loaded..\n * if preload is 2 then 2nd 3rd 5th 6th slides will be preloaded.. ... ...\n *\n */\n preload: 1,\n showAfterLoad: true,\n selector: '',\n selectWithin: '',\n nextHtml: '',\n prevHtml: '',\n\n // 0, 1\n index: false,\n\n iframeMaxWidth: '100%',\n\n download: true,\n counter: true,\n appendCounterTo: '.lg-toolbar',\n\n swipeThreshold: 50,\n enableSwipe: true,\n enableDrag: true,\n\n dynamic: false,\n dynamicEl: [],\n galleryId: 1\n };\n\n function Plugin(element, options) {\n\n // Current lightGallery element\n this.el = element;\n\n // Current jquery element\n this.$el = $(element);\n\n // lightGallery settings\n this.s = $.extend({}, defaults, options);\n\n // When using dynamic mode, ensure dynamicEl is an array\n if (this.s.dynamic && this.s.dynamicEl !== 'undefined' && this.s.dynamicEl.constructor === Array && !this.s.dynamicEl.length) {\n throw ('When using dynamic mode, you must also define dynamicEl as an Array.');\n }\n\n // lightGallery modules\n this.modules = {};\n\n // false when lightgallery complete first slide;\n this.lGalleryOn = false;\n\n this.lgBusy = false;\n\n // Timeout function for hiding controls;\n this.hideBartimeout = false;\n\n // To determine browser supports for touch events;\n this.isTouch = ('ontouchstart' in document.documentElement);\n\n // Disable hideControlOnEnd if sildeEndAnimation is true\n if (this.s.slideEndAnimatoin) {\n this.s.hideControlOnEnd = false;\n }\n\n // Gallery items\n if (this.s.dynamic) {\n this.$items = this.s.dynamicEl;\n } else {\n if (this.s.selector === 'this') {\n this.$items = this.$el;\n } else if (this.s.selector !== '') {\n if (this.s.selectWithin) {\n this.$items = $(this.s.selectWithin).find(this.s.selector);\n } else {\n this.$items = this.$el.find($(this.s.selector));\n }\n } else {\n this.$items = this.$el.children();\n }\n }\n\n // .lg-item\n this.$slide = '';\n\n // .lg-outer\n this.$outer = '';\n\n this.init();\n\n return this;\n }\n\n Plugin.prototype.init = function() {\n\n var _this = this;\n\n // s.preload should not be more than $item.length\n if (_this.s.preload > _this.$items.length) {\n _this.s.preload = _this.$items.length;\n }\n\n // if dynamic option is enabled execute immediately\n var _hash = window.location.hash;\n if (_hash.indexOf('lg=' + this.s.galleryId) > 0) {\n\n _this.index = parseInt(_hash.split('&slide=')[1], 10);\n\n $('body').addClass('lg-from-hash');\n if (!$('body').hasClass('lg-on')) {\n setTimeout(function() {\n _this.build(_this.index);\n });\n\n $('body').addClass('lg-on');\n }\n }\n\n if (_this.s.dynamic) {\n\n _this.$el.trigger('onBeforeOpen.lg');\n\n _this.index = _this.s.index || 0;\n\n // prevent accidental double execution\n if (!$('body').hasClass('lg-on')) {\n setTimeout(function() {\n _this.build(_this.index);\n $('body').addClass('lg-on');\n });\n }\n } else {\n\n // Using different namespace for click because click event should not unbind if selector is same object('this')\n _this.$items.on('click.lgcustom', function(event) {\n\n // For IE8\n try {\n event.preventDefault();\n event.preventDefault();\n } catch (er) {\n event.returnValue = false;\n }\n\n _this.$el.trigger('onBeforeOpen.lg');\n\n _this.index = _this.s.index || _this.$items.index(this);\n\n // prevent accidental double execution\n if (!$('body').hasClass('lg-on')) {\n _this.build(_this.index);\n $('body').addClass('lg-on');\n }\n });\n }\n\n };\n\n Plugin.prototype.build = function(index) {\n\n var _this = this;\n\n _this.structure();\n\n // module constructor\n $.each($.fn.lightGallery.modules, function(key) {\n _this.modules[key] = new $.fn.lightGallery.modules[key](_this.el);\n });\n\n // initiate slide function\n _this.slide(index, false, false, false);\n\n if (_this.s.keyPress) {\n _this.keyPress();\n }\n\n if (_this.$items.length > 1) {\n\n _this.arrow();\n\n setTimeout(function() {\n _this.enableDrag();\n _this.enableSwipe();\n }, 50);\n\n if (_this.s.mousewheel) {\n _this.mousewheel();\n }\n } else {\n _this.$slide.on('click.lg', function() {\n _this.$el.trigger('onSlideClick.lg');\n });\n }\n\n _this.counter();\n\n _this.closeGallery();\n\n _this.$el.trigger('onAfterOpen.lg');\n\n // Hide controllers if mouse doesn't move for some period\n _this.$outer.on('mousemove.lg click.lg touchstart.lg', function() {\n\n _this.$outer.removeClass('lg-hide-items');\n\n clearTimeout(_this.hideBartimeout);\n\n // Timeout will be cleared on each slide movement also\n _this.hideBartimeout = setTimeout(function() {\n _this.$outer.addClass('lg-hide-items');\n }, _this.s.hideBarsDelay);\n\n });\n\n _this.$outer.trigger('mousemove.lg');\n\n };\n\n Plugin.prototype.structure = function() {\n var list = '';\n var controls = '';\n var i = 0;\n var subHtmlCont = '';\n var template;\n var _this = this;\n\n $('body').append('
    ');\n $('.lg-backdrop').css('transition-duration', this.s.backdropDuration + 'ms');\n\n // Create gallery items\n for (i = 0; i < this.$items.length; i++) {\n list += '
    ';\n }\n\n // Create controlls\n if (this.s.controls && this.$items.length > 1) {\n controls = '
    ' +\n '' +\n '' +\n '
    ';\n }\n\n if (this.s.appendSubHtmlTo === '.lg-sub-html') {\n subHtmlCont = '
    ';\n }\n\n template = '
    ' +\n '
    ' +\n '
    ' + list + '
    ' +\n '
    ' +\n '' +\n '
    ' +\n controls +\n subHtmlCont +\n '
    ' +\n '
    ';\n\n $('body').append(template);\n this.$outer = $('.lg-outer');\n this.$slide = this.$outer.find('.lg-item');\n\n if (this.s.useLeft) {\n this.$outer.addClass('lg-use-left');\n\n // Set mode lg-slide if use left is true;\n this.s.mode = 'lg-slide';\n } else {\n this.$outer.addClass('lg-use-css3');\n }\n\n // For fixed height gallery\n _this.setTop();\n $(window).on('resize.lg orientationchange.lg', function() {\n setTimeout(function() {\n _this.setTop();\n }, 100);\n });\n\n // add class lg-current to remove initial transition\n this.$slide.eq(this.index).addClass('lg-current');\n\n // add Class for css support and transition mode\n if (this.doCss()) {\n this.$outer.addClass('lg-css3');\n } else {\n this.$outer.addClass('lg-css');\n\n // Set speed 0 because no animation will happen if browser doesn't support css3\n this.s.speed = 0;\n }\n\n this.$outer.addClass(this.s.mode);\n\n if (this.s.enableDrag && this.$items.length > 1) {\n this.$outer.addClass('lg-grab');\n }\n\n if (this.s.showAfterLoad) {\n this.$outer.addClass('lg-show-after-load');\n }\n\n if (this.doCss()) {\n var $inner = this.$outer.find('.lg-inner');\n $inner.css('transition-timing-function', this.s.cssEasing);\n $inner.css('transition-duration', this.s.speed + 'ms');\n }\n\n setTimeout(function() {\n $('.lg-backdrop').addClass('in');\n });\n\n setTimeout(function() {\n _this.$outer.addClass('lg-visible');\n }, this.s.backdropDuration);\n\n if (this.s.download) {\n this.$outer.find('.lg-toolbar').append('');\n }\n\n // Store the current scroll top value to scroll back after closing the gallery..\n this.prevScrollTop = $(window).scrollTop();\n\n };\n\n // For fixed height gallery\n Plugin.prototype.setTop = function() {\n if (this.s.height !== '100%') {\n var wH = $(window).height();\n var top = (wH - parseInt(this.s.height, 10)) / 2;\n var $lGallery = this.$outer.find('.lg');\n if (wH >= parseInt(this.s.height, 10)) {\n $lGallery.css('top', top + 'px');\n } else {\n $lGallery.css('top', '0px');\n }\n }\n };\n\n // Find css3 support\n Plugin.prototype.doCss = function() {\n // check for css animation support\n var support = function() {\n var transition = ['transition', 'MozTransition', 'WebkitTransition', 'OTransition', 'msTransition', 'KhtmlTransition'];\n var root = document.documentElement;\n var i = 0;\n for (i = 0; i < transition.length; i++) {\n if (transition[i] in root.style) {\n return true;\n }\n }\n };\n\n if (support()) {\n return true;\n }\n\n return false;\n };\n\n /**\n * @desc Check the given src is video\n * @param {String} src\n * @return {Object} video type\n * Ex:{ youtube : [\"//www.youtube.com/watch?v=c0asJgSyxcY\", \"c0asJgSyxcY\"] }\n */\n Plugin.prototype.isVideo = function(src, index) {\n\n var html;\n if (this.s.dynamic) {\n html = this.s.dynamicEl[index].html;\n } else {\n html = this.$items.eq(index).attr('data-html');\n }\n\n if (!src) {\n if(html) {\n return {\n html5: true\n };\n } else {\n console.error('lightGallery :- data-src is not pvovided on slide item ' + (index + 1) + '. Please make sure the selector property is properly configured. More info - http://sachinchoolur.github.io/lightGallery/demos/html-markup.html');\n return false;\n }\n }\n\n var youtube = src.match(/\\/\\/(?:www\\.)?youtu(?:\\.be|be\\.com|be-nocookie\\.com)\\/(?:watch\\?v=|embed\\/)?([a-z0-9\\-\\_\\%]+)/i);\n var vimeo = src.match(/\\/\\/(?:www\\.)?vimeo.com\\/([0-9a-z\\-_]+)/i);\n var dailymotion = src.match(/\\/\\/(?:www\\.)?dai.ly\\/([0-9a-z\\-_]+)/i);\n var vk = src.match(/\\/\\/(?:www\\.)?(?:vk\\.com|vkontakte\\.ru)\\/(?:video_ext\\.php\\?)(.*)/i);\n\n if (youtube) {\n return {\n youtube: youtube\n };\n } else if (vimeo) {\n return {\n vimeo: vimeo\n };\n } else if (dailymotion) {\n return {\n dailymotion: dailymotion\n };\n } else if (vk) {\n return {\n vk: vk\n };\n }\n };\n\n /**\n * @desc Create image counter\n * Ex: 1/10\n */\n Plugin.prototype.counter = function() {\n if (this.s.counter) {\n $(this.s.appendCounterTo).append('
    ' + (parseInt(this.index, 10) + 1) + ' / ' + this.$items.length + '
    ');\n }\n };\n\n /**\n * @desc add sub-html into the slide\n * @param {Number} index - index of the slide\n */\n Plugin.prototype.addHtml = function(index) {\n var subHtml = null;\n var subHtmlUrl;\n var $currentEle;\n if (this.s.dynamic) {\n if (this.s.dynamicEl[index].subHtmlUrl) {\n subHtmlUrl = this.s.dynamicEl[index].subHtmlUrl;\n } else {\n subHtml = this.s.dynamicEl[index].subHtml;\n }\n } else {\n $currentEle = this.$items.eq(index);\n if ($currentEle.attr('data-sub-html-url')) {\n subHtmlUrl = $currentEle.attr('data-sub-html-url');\n } else {\n subHtml = $currentEle.attr('data-sub-html');\n if (this.s.getCaptionFromTitleOrAlt && !subHtml) {\n subHtml = $currentEle.attr('title') || $currentEle.find('img').first().attr('alt');\n }\n }\n }\n\n if (!subHtmlUrl) {\n if (typeof subHtml !== 'undefined' && subHtml !== null) {\n\n // get first letter of subhtml\n // if first letter starts with . or # get the html form the jQuery object\n var fL = subHtml.substring(0, 1);\n if (fL === '.' || fL === '#') {\n if (this.s.subHtmlSelectorRelative && !this.s.dynamic) {\n subHtml = $currentEle.find(subHtml).html();\n } else {\n subHtml = $(subHtml).html();\n }\n }\n } else {\n subHtml = '';\n }\n }\n\n if (this.s.appendSubHtmlTo === '.lg-sub-html') {\n\n if (subHtmlUrl) {\n this.$outer.find(this.s.appendSubHtmlTo).load(subHtmlUrl);\n } else {\n this.$outer.find(this.s.appendSubHtmlTo).html(subHtml);\n }\n\n } else {\n\n if (subHtmlUrl) {\n this.$slide.eq(index).load(subHtmlUrl);\n } else {\n this.$slide.eq(index).append(subHtml);\n }\n }\n\n // Add lg-empty-html class if title doesn't exist\n if (typeof subHtml !== 'undefined' && subHtml !== null) {\n if (subHtml === '') {\n this.$outer.find(this.s.appendSubHtmlTo).addClass('lg-empty-html');\n } else {\n this.$outer.find(this.s.appendSubHtmlTo).removeClass('lg-empty-html');\n }\n }\n\n this.$el.trigger('onAfterAppendSubHtml.lg', [index]);\n };\n\n /**\n * @desc Preload slides\n * @param {Number} index - index of the slide\n */\n Plugin.prototype.preload = function(index) {\n var i = 1;\n var j = 1;\n for (i = 1; i <= this.s.preload; i++) {\n if (i >= this.$items.length - index) {\n break;\n }\n\n this.loadContent(index + i, false, 0);\n }\n\n for (j = 1; j <= this.s.preload; j++) {\n if (index - j < 0) {\n break;\n }\n\n this.loadContent(index - j, false, 0);\n }\n };\n\n /**\n * @desc Load slide content into slide.\n * @param {Number} index - index of the slide.\n * @param {Boolean} rec - if true call loadcontent() function again.\n * @param {Boolean} delay - delay for adding complete class. it is 0 except first time.\n */\n Plugin.prototype.loadContent = function(index, rec, delay) {\n\n var _this = this;\n var _hasPoster = false;\n var _$img;\n var _src;\n var _poster;\n var _srcset;\n var _sizes;\n var _html;\n var getResponsiveSrc = function(srcItms) {\n var rsWidth = [];\n var rsSrc = [];\n for (var i = 0; i < srcItms.length; i++) {\n var __src = srcItms[i].split(' ');\n\n // Manage empty space\n if (__src[0] === '') {\n __src.splice(0, 1);\n }\n\n rsSrc.push(__src[0]);\n rsWidth.push(__src[1]);\n }\n\n var wWidth = $(window).width();\n for (var j = 0; j < rsWidth.length; j++) {\n if (parseInt(rsWidth[j], 10) > wWidth) {\n _src = rsSrc[j];\n break;\n }\n }\n };\n\n if (_this.s.dynamic) {\n\n if (_this.s.dynamicEl[index].poster) {\n _hasPoster = true;\n _poster = _this.s.dynamicEl[index].poster;\n }\n\n _html = _this.s.dynamicEl[index].html;\n _src = _this.s.dynamicEl[index].src;\n\n if (_this.s.dynamicEl[index].responsive) {\n var srcDyItms = _this.s.dynamicEl[index].responsive.split(',');\n getResponsiveSrc(srcDyItms);\n }\n\n _srcset = _this.s.dynamicEl[index].srcset;\n _sizes = _this.s.dynamicEl[index].sizes;\n\n } else {\n\n if (_this.$items.eq(index).attr('data-poster')) {\n _hasPoster = true;\n _poster = _this.$items.eq(index).attr('data-poster');\n }\n\n _html = _this.$items.eq(index).attr('data-html');\n _src = _this.$items.eq(index).attr('href') || _this.$items.eq(index).attr('data-src');\n\n if (_this.$items.eq(index).attr('data-responsive')) {\n var srcItms = _this.$items.eq(index).attr('data-responsive').split(',');\n getResponsiveSrc(srcItms);\n }\n\n _srcset = _this.$items.eq(index).attr('data-srcset');\n _sizes = _this.$items.eq(index).attr('data-sizes');\n\n }\n\n //if (_src || _srcset || _sizes || _poster) {\n\n var iframe = false;\n if (_this.s.dynamic) {\n if (_this.s.dynamicEl[index].iframe) {\n iframe = true;\n }\n } else {\n if (_this.$items.eq(index).attr('data-iframe') === 'true') {\n iframe = true;\n }\n }\n\n var _isVideo = _this.isVideo(_src, index);\n if (!_this.$slide.eq(index).hasClass('lg-loaded')) {\n if (iframe) {\n _this.$slide.eq(index).prepend('
    ');\n } else if (_hasPoster) {\n var videoClass = '';\n if (_isVideo && _isVideo.youtube) {\n videoClass = 'lg-has-youtube';\n } else if (_isVideo && _isVideo.vimeo) {\n videoClass = 'lg-has-vimeo';\n } else {\n videoClass = 'lg-has-html5';\n }\n\n _this.$slide.eq(index).prepend('
    ');\n\n } else if (_isVideo) {\n _this.$slide.eq(index).prepend('
    ');\n _this.$el.trigger('hasVideo.lg', [index, _src, _html]);\n } else {\n _this.$slide.eq(index).prepend('
    ');\n }\n\n _this.$el.trigger('onAferAppendSlide.lg', [index]);\n\n _$img = _this.$slide.eq(index).find('.lg-object');\n if (_sizes) {\n _$img.attr('sizes', _sizes);\n }\n\n if (_srcset) {\n _$img.attr('srcset', _srcset);\n try {\n picturefill({\n elements: [_$img[0]]\n });\n } catch (e) {\n console.warn('lightGallery :- If you want srcset to be supported for older browser please include picturefil version 2 javascript library in your document.');\n }\n }\n\n if (this.s.appendSubHtmlTo !== '.lg-sub-html') {\n _this.addHtml(index);\n }\n\n _this.$slide.eq(index).addClass('lg-loaded');\n }\n\n _this.$slide.eq(index).find('.lg-object').on('load.lg error.lg', function() {\n\n // For first time add some delay for displaying the start animation.\n var _speed = 0;\n\n // Do not change the delay value because it is required for zoom plugin.\n // If gallery opened from direct url (hash) speed value should be 0\n if (delay && !$('body').hasClass('lg-from-hash')) {\n _speed = delay;\n }\n\n setTimeout(function() {\n _this.$slide.eq(index).addClass('lg-complete');\n _this.$el.trigger('onSlideItemLoad.lg', [index, delay || 0]);\n }, _speed);\n\n });\n\n // @todo check load state for html5 videos\n if (_isVideo && _isVideo.html5 && !_hasPoster) {\n _this.$slide.eq(index).addClass('lg-complete');\n }\n\n if (rec === true) {\n if (!_this.$slide.eq(index).hasClass('lg-complete')) {\n _this.$slide.eq(index).find('.lg-object').on('load.lg error.lg', function() {\n _this.preload(index);\n });\n } else {\n _this.preload(index);\n }\n }\n\n //}\n };\n\n /**\n * @desc slide function for lightgallery\n ** Slide() gets call on start\n ** ** Set lg.on true once slide() function gets called.\n ** Call loadContent() on slide() function inside setTimeout\n ** ** On first slide we do not want any animation like slide of fade\n ** ** So on first slide( if lg.on if false that is first slide) loadContent() should start loading immediately\n ** ** Else loadContent() should wait for the transition to complete.\n ** ** So set timeout s.speed + 50\n <=> ** loadContent() will load slide content in to the particular slide\n ** ** It has recursion (rec) parameter. if rec === true loadContent() will call preload() function.\n ** ** preload will execute only when the previous slide is fully loaded (images iframe)\n ** ** avoid simultaneous image load\n <=> ** Preload() will check for s.preload value and call loadContent() again accoring to preload value\n ** loadContent() <====> Preload();\n\n * @param {Number} index - index of the slide\n * @param {Boolean} fromTouch - true if slide function called via touch event or mouse drag\n * @param {Boolean} fromThumb - true if slide function called via thumbnail click\n * @param {String} direction - Direction of the slide(next/prev)\n */\n Plugin.prototype.slide = function(index, fromTouch, fromThumb, direction) {\n\n var _prevIndex = this.$outer.find('.lg-current').index();\n var _this = this;\n\n // Prevent if multiple call\n // Required for hsh plugin\n if (_this.lGalleryOn && (_prevIndex === index)) {\n return;\n }\n\n var _length = this.$slide.length;\n var _time = _this.lGalleryOn ? this.s.speed : 0;\n\n if (!_this.lgBusy) {\n\n if (this.s.download) {\n var _src;\n if (_this.s.dynamic) {\n _src = _this.s.dynamicEl[index].downloadUrl !== false && (_this.s.dynamicEl[index].downloadUrl || _this.s.dynamicEl[index].src);\n } else {\n _src = _this.$items.eq(index).attr('data-download-url') !== 'false' && (_this.$items.eq(index).attr('data-download-url') || _this.$items.eq(index).attr('href') || _this.$items.eq(index).attr('data-src'));\n\n }\n\n if (_src) {\n $('#lg-download').attr('href', _src);\n _this.$outer.removeClass('lg-hide-download');\n } else {\n _this.$outer.addClass('lg-hide-download');\n }\n }\n\n this.$el.trigger('onBeforeSlide.lg', [_prevIndex, index, fromTouch, fromThumb]);\n\n _this.lgBusy = true;\n\n clearTimeout(_this.hideBartimeout);\n\n // Add title if this.s.appendSubHtmlTo === lg-sub-html\n if (this.s.appendSubHtmlTo === '.lg-sub-html') {\n\n // wait for slide animation to complete\n setTimeout(function() {\n _this.addHtml(index);\n }, _time);\n }\n\n this.arrowDisable(index);\n\n if (!direction) {\n if (index < _prevIndex) {\n direction = 'prev';\n } else if (index > _prevIndex) {\n direction = 'next';\n }\n }\n\n if (!fromTouch) {\n\n // remove all transitions\n _this.$outer.addClass('lg-no-trans');\n\n this.$slide.removeClass('lg-prev-slide lg-next-slide');\n\n if (direction === 'prev') {\n\n //prevslide\n this.$slide.eq(index).addClass('lg-prev-slide');\n this.$slide.eq(_prevIndex).addClass('lg-next-slide');\n } else {\n\n // next slide\n this.$slide.eq(index).addClass('lg-next-slide');\n this.$slide.eq(_prevIndex).addClass('lg-prev-slide');\n }\n\n // give 50 ms for browser to add/remove class\n setTimeout(function() {\n _this.$slide.removeClass('lg-current');\n\n //_this.$slide.eq(_prevIndex).removeClass('lg-current');\n _this.$slide.eq(index).addClass('lg-current');\n\n // reset all transitions\n _this.$outer.removeClass('lg-no-trans');\n }, 50);\n } else {\n\n this.$slide.removeClass('lg-prev-slide lg-current lg-next-slide');\n var touchPrev;\n var touchNext;\n if (_length > 2) {\n touchPrev = index - 1;\n touchNext = index + 1;\n\n if ((index === 0) && (_prevIndex === _length - 1)) {\n\n // next slide\n touchNext = 0;\n touchPrev = _length - 1;\n } else if ((index === _length - 1) && (_prevIndex === 0)) {\n\n // prev slide\n touchNext = 0;\n touchPrev = _length - 1;\n }\n\n } else {\n touchPrev = 0;\n touchNext = 1;\n }\n\n if (direction === 'prev') {\n _this.$slide.eq(touchNext).addClass('lg-next-slide');\n } else {\n _this.$slide.eq(touchPrev).addClass('lg-prev-slide');\n }\n\n _this.$slide.eq(index).addClass('lg-current');\n }\n\n if (_this.lGalleryOn) {\n setTimeout(function() {\n _this.loadContent(index, true, 0);\n }, this.s.speed + 50);\n\n setTimeout(function() {\n _this.lgBusy = false;\n _this.$el.trigger('onAfterSlide.lg', [_prevIndex, index, fromTouch, fromThumb]);\n }, this.s.speed);\n\n } else {\n _this.loadContent(index, true, _this.s.backdropDuration);\n\n _this.lgBusy = false;\n _this.$el.trigger('onAfterSlide.lg', [_prevIndex, index, fromTouch, fromThumb]);\n }\n\n _this.lGalleryOn = true;\n\n if (this.s.counter) {\n $('#lg-counter-current').text(index + 1);\n }\n\n }\n _this.index = index;\n\n };\n\n /**\n * @desc Go to next slide\n * @param {Boolean} fromTouch - true if slide function called via touch event\n */\n Plugin.prototype.goToNextSlide = function(fromTouch) {\n var _this = this;\n var _loop = _this.s.loop;\n if (fromTouch && _this.$slide.length < 3) {\n _loop = false;\n }\n\n if (!_this.lgBusy) {\n if ((_this.index + 1) < _this.$slide.length) {\n _this.index++;\n _this.$el.trigger('onBeforeNextSlide.lg', [_this.index]);\n _this.slide(_this.index, fromTouch, false, 'next');\n } else {\n if (_loop) {\n _this.index = 0;\n _this.$el.trigger('onBeforeNextSlide.lg', [_this.index]);\n _this.slide(_this.index, fromTouch, false, 'next');\n } else if (_this.s.slideEndAnimatoin && !fromTouch) {\n _this.$outer.addClass('lg-right-end');\n setTimeout(function() {\n _this.$outer.removeClass('lg-right-end');\n }, 400);\n }\n }\n }\n };\n\n /**\n * @desc Go to previous slide\n * @param {Boolean} fromTouch - true if slide function called via touch event\n */\n Plugin.prototype.goToPrevSlide = function(fromTouch) {\n var _this = this;\n var _loop = _this.s.loop;\n if (fromTouch && _this.$slide.length < 3) {\n _loop = false;\n }\n\n if (!_this.lgBusy) {\n if (_this.index > 0) {\n _this.index--;\n _this.$el.trigger('onBeforePrevSlide.lg', [_this.index, fromTouch]);\n _this.slide(_this.index, fromTouch, false, 'prev');\n } else {\n if (_loop) {\n _this.index = _this.$items.length - 1;\n _this.$el.trigger('onBeforePrevSlide.lg', [_this.index, fromTouch]);\n _this.slide(_this.index, fromTouch, false, 'prev');\n } else if (_this.s.slideEndAnimatoin && !fromTouch) {\n _this.$outer.addClass('lg-left-end');\n setTimeout(function() {\n _this.$outer.removeClass('lg-left-end');\n }, 400);\n }\n }\n }\n };\n\n Plugin.prototype.keyPress = function() {\n var _this = this;\n if (this.$items.length > 1) {\n $(window).on('keyup.lg', function(e) {\n if (_this.$items.length > 1) {\n if (e.keyCode === 37) {\n e.preventDefault();\n _this.goToPrevSlide();\n }\n\n if (e.keyCode === 39) {\n e.preventDefault();\n _this.goToNextSlide();\n }\n }\n });\n }\n\n $(window).on('keydown.lg', function(e) {\n if (_this.s.escKey === true && e.keyCode === 27) {\n e.preventDefault();\n if (!_this.$outer.hasClass('lg-thumb-open')) {\n _this.destroy();\n } else {\n _this.$outer.removeClass('lg-thumb-open');\n }\n }\n });\n };\n\n Plugin.prototype.arrow = function() {\n var _this = this;\n this.$outer.find('.lg-prev').on('click.lg', function() {\n _this.goToPrevSlide();\n });\n\n this.$outer.find('.lg-next').on('click.lg', function() {\n _this.goToNextSlide();\n });\n };\n\n Plugin.prototype.arrowDisable = function(index) {\n\n // Disable arrows if s.hideControlOnEnd is true\n if (!this.s.loop && this.s.hideControlOnEnd) {\n if ((index + 1) < this.$slide.length) {\n this.$outer.find('.lg-next').removeAttr('disabled').removeClass('disabled');\n } else {\n this.$outer.find('.lg-next').attr('disabled', 'disabled').addClass('disabled');\n }\n\n if (index > 0) {\n this.$outer.find('.lg-prev').removeAttr('disabled').removeClass('disabled');\n } else {\n this.$outer.find('.lg-prev').attr('disabled', 'disabled').addClass('disabled');\n }\n }\n };\n\n Plugin.prototype.setTranslate = function($el, xValue, yValue) {\n // jQuery supports Automatic CSS prefixing since jQuery 1.8.0\n if (this.s.useLeft) {\n $el.css('left', xValue);\n } else {\n $el.css({\n transform: 'translate3d(' + (xValue) + 'px, ' + yValue + 'px, 0px)'\n });\n }\n };\n\n Plugin.prototype.touchMove = function(startCoords, endCoords) {\n\n var distance = endCoords - startCoords;\n\n if (Math.abs(distance) > 15) {\n // reset opacity and transition duration\n this.$outer.addClass('lg-dragging');\n\n // move current slide\n this.setTranslate(this.$slide.eq(this.index), distance, 0);\n\n // move next and prev slide with current slide\n this.setTranslate($('.lg-prev-slide'), -this.$slide.eq(this.index).width() + distance, 0);\n this.setTranslate($('.lg-next-slide'), this.$slide.eq(this.index).width() + distance, 0);\n }\n };\n\n Plugin.prototype.touchEnd = function(distance) {\n var _this = this;\n\n // keep slide animation for any mode while dragg/swipe\n if (_this.s.mode !== 'lg-slide') {\n _this.$outer.addClass('lg-slide');\n }\n\n this.$slide.not('.lg-current, .lg-prev-slide, .lg-next-slide').css('opacity', '0');\n\n // set transition duration\n setTimeout(function() {\n _this.$outer.removeClass('lg-dragging');\n if ((distance < 0) && (Math.abs(distance) > _this.s.swipeThreshold)) {\n _this.goToNextSlide(true);\n } else if ((distance > 0) && (Math.abs(distance) > _this.s.swipeThreshold)) {\n _this.goToPrevSlide(true);\n } else if (Math.abs(distance) < 5) {\n\n // Trigger click if distance is less than 5 pix\n _this.$el.trigger('onSlideClick.lg');\n }\n\n _this.$slide.removeAttr('style');\n });\n\n // remove slide class once drag/swipe is completed if mode is not slide\n setTimeout(function() {\n if (!_this.$outer.hasClass('lg-dragging') && _this.s.mode !== 'lg-slide') {\n _this.$outer.removeClass('lg-slide');\n }\n }, _this.s.speed + 100);\n\n };\n\n Plugin.prototype.enableSwipe = function() {\n var _this = this;\n var startCoords = 0;\n var endCoords = 0;\n var isMoved = false;\n\n if (_this.s.enableSwipe && _this.doCss()) {\n\n _this.$slide.on('touchstart.lg', function(e) {\n if (!_this.$outer.hasClass('lg-zoomed') && !_this.lgBusy) {\n e.preventDefault();\n _this.manageSwipeClass();\n startCoords = e.originalEvent.targetTouches[0].pageX;\n }\n });\n\n _this.$slide.on('touchmove.lg', function(e) {\n if (!_this.$outer.hasClass('lg-zoomed')) {\n e.preventDefault();\n endCoords = e.originalEvent.targetTouches[0].pageX;\n _this.touchMove(startCoords, endCoords);\n isMoved = true;\n }\n });\n\n _this.$slide.on('touchend.lg', function() {\n if (!_this.$outer.hasClass('lg-zoomed')) {\n if (isMoved) {\n isMoved = false;\n _this.touchEnd(endCoords - startCoords);\n } else {\n _this.$el.trigger('onSlideClick.lg');\n }\n }\n });\n }\n\n };\n\n Plugin.prototype.enableDrag = function() {\n var _this = this;\n var startCoords = 0;\n var endCoords = 0;\n var isDraging = false;\n var isMoved = false;\n if (_this.s.enableDrag && _this.doCss()) {\n _this.$slide.on('mousedown.lg', function(e) {\n if (!_this.$outer.hasClass('lg-zoomed') && !_this.lgBusy && !$(e.target).text().trim()) {\n e.preventDefault();\n _this.manageSwipeClass();\n startCoords = e.pageX;\n isDraging = true;\n\n // ** Fix for webkit cursor issue https://code.google.com/p/chromium/issues/detail?id=26723\n _this.$outer.scrollLeft += 1;\n _this.$outer.scrollLeft -= 1;\n\n // *\n\n _this.$outer.removeClass('lg-grab').addClass('lg-grabbing');\n\n _this.$el.trigger('onDragstart.lg');\n }\n });\n\n $(window).on('mousemove.lg', function(e) {\n if (isDraging) {\n isMoved = true;\n endCoords = e.pageX;\n _this.touchMove(startCoords, endCoords);\n _this.$el.trigger('onDragmove.lg');\n }\n });\n\n $(window).on('mouseup.lg', function(e) {\n if (isMoved) {\n isMoved = false;\n _this.touchEnd(endCoords - startCoords);\n _this.$el.trigger('onDragend.lg');\n } else if ($(e.target).hasClass('lg-object') || $(e.target).hasClass('lg-video-play')) {\n _this.$el.trigger('onSlideClick.lg');\n }\n\n // Prevent execution on click\n if (isDraging) {\n isDraging = false;\n _this.$outer.removeClass('lg-grabbing').addClass('lg-grab');\n }\n });\n\n }\n };\n\n Plugin.prototype.manageSwipeClass = function() {\n var _touchNext = this.index + 1;\n var _touchPrev = this.index - 1;\n if (this.s.loop && this.$slide.length > 2) {\n if (this.index === 0) {\n _touchPrev = this.$slide.length - 1;\n } else if (this.index === this.$slide.length - 1) {\n _touchNext = 0;\n }\n }\n\n this.$slide.removeClass('lg-next-slide lg-prev-slide');\n if (_touchPrev > -1) {\n this.$slide.eq(_touchPrev).addClass('lg-prev-slide');\n }\n\n this.$slide.eq(_touchNext).addClass('lg-next-slide');\n };\n\n Plugin.prototype.mousewheel = function() {\n var _this = this;\n _this.$outer.on('mousewheel.lg', function(e) {\n\n if (!e.deltaY) {\n return;\n }\n\n if (e.deltaY > 0) {\n _this.goToPrevSlide();\n } else {\n _this.goToNextSlide();\n }\n\n e.preventDefault();\n });\n\n };\n\n Plugin.prototype.closeGallery = function() {\n\n var _this = this;\n var mousedown = false;\n this.$outer.find('.lg-close').on('click.lg', function() {\n _this.destroy();\n });\n\n if (_this.s.closable) {\n\n // If you drag the slide and release outside gallery gets close on chrome\n // for preventing this check mousedown and mouseup happened on .lg-item or lg-outer\n _this.$outer.on('mousedown.lg', function(e) {\n\n if ($(e.target).is('.lg-outer') || $(e.target).is('.lg-item ') || $(e.target).is('.lg-img-wrap')) {\n mousedown = true;\n } else {\n mousedown = false;\n }\n\n });\n \n _this.$outer.on('mousemove.lg', function() {\n mousedown = false;\n });\n\n _this.$outer.on('mouseup.lg', function(e) {\n\n if ($(e.target).is('.lg-outer') || $(e.target).is('.lg-item ') || $(e.target).is('.lg-img-wrap') && mousedown) {\n if (!_this.$outer.hasClass('lg-dragging')) {\n _this.destroy();\n }\n }\n\n });\n\n }\n\n };\n\n Plugin.prototype.destroy = function(d) {\n\n var _this = this;\n\n if (!d) {\n _this.$el.trigger('onBeforeClose.lg');\n $(window).scrollTop(_this.prevScrollTop);\n }\n\n\n /**\n * if d is false or undefined destroy will only close the gallery\n * plugins instance remains with the element\n *\n * if d is true destroy will completely remove the plugin\n */\n\n if (d) {\n if (!_this.s.dynamic) {\n // only when not using dynamic mode is $items a jquery collection\n this.$items.off('click.lg click.lgcustom');\n }\n\n $.removeData(_this.el, 'lightGallery');\n }\n\n // Unbind all events added by lightGallery\n this.$el.off('.lg.tm');\n\n // Distroy all lightGallery modules\n $.each($.fn.lightGallery.modules, function(key) {\n if (_this.modules[key]) {\n _this.modules[key].destroy();\n }\n });\n\n this.lGalleryOn = false;\n\n clearTimeout(_this.hideBartimeout);\n this.hideBartimeout = false;\n $(window).off('.lg');\n $('body').removeClass('lg-on lg-from-hash');\n\n if (_this.$outer) {\n _this.$outer.removeClass('lg-visible');\n }\n\n $('.lg-backdrop').removeClass('in');\n\n setTimeout(function() {\n if (_this.$outer) {\n _this.$outer.remove();\n }\n\n $('.lg-backdrop').remove();\n\n if (!d) {\n _this.$el.trigger('onCloseAfter.lg');\n }\n\n }, _this.s.backdropDuration + 50);\n };\n\n $.fn.lightGallery = function(options) {\n return this.each(function() {\n if (!$.data(this, 'lightGallery')) {\n $.data(this, 'lightGallery', new Plugin(this, options));\n } else {\n try {\n $(this).data('lightGallery').init();\n } catch (err) {\n console.error('lightGallery has not initiated properly');\n }\n }\n });\n };\n\n $.fn.lightGallery.modules = {};\n\n})();\n\n\n}));\n\n/*! lg-autoplay - v1.0.4 - 2017-03-28\n* http://sachinchoolur.github.io/lightGallery\n* Copyright (c) 2017 Sachin N; Licensed GPLv3 */\n\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module unless amdModuleId is set\n define(['jquery'], function (a0) {\n return (factory(a0));\n });\n } else if (typeof exports === 'object') {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory(require('jquery'));\n } else {\n factory(jQuery);\n }\n}(this, function ($) {\n\n\n(function() {\n\n 'use strict';\n\n var defaults = {\n autoplay: false,\n pause: 5000,\n progressBar: true,\n fourceAutoplay: false,\n autoplayControls: true,\n appendAutoplayControlsTo: '.lg-toolbar'\n };\n\n /**\n * Creates the autoplay plugin.\n * @param {object} element - lightGallery element\n */\n var Autoplay = function(element) {\n\n this.core = $(element).data('lightGallery');\n\n this.$el = $(element);\n\n // Execute only if items are above 1\n if (this.core.$items.length < 2) {\n return false;\n }\n\n this.core.s = $.extend({}, defaults, this.core.s);\n this.interval = false;\n\n // Identify if slide happened from autoplay\n this.fromAuto = true;\n\n // Identify if autoplay canceled from touch/drag\n this.canceledOnTouch = false;\n\n // save fourceautoplay value\n this.fourceAutoplayTemp = this.core.s.fourceAutoplay;\n\n // do not allow progress bar if browser does not support css3 transitions\n if (!this.core.doCss()) {\n this.core.s.progressBar = false;\n }\n\n this.init();\n\n return this;\n };\n\n Autoplay.prototype.init = function() {\n var _this = this;\n\n // append autoplay controls\n if (_this.core.s.autoplayControls) {\n _this.controls();\n }\n\n // Create progress bar\n if (_this.core.s.progressBar) {\n _this.core.$outer.find('.lg').append('
    ');\n }\n\n // set progress\n _this.progress();\n\n // Start autoplay\n if (_this.core.s.autoplay) {\n _this.$el.one('onSlideItemLoad.lg.tm', function() {\n _this.startlAuto();\n });\n }\n\n // cancel interval on touchstart and dragstart\n _this.$el.on('onDragstart.lg.tm touchstart.lg.tm', function() {\n if (_this.interval) {\n _this.cancelAuto();\n _this.canceledOnTouch = true;\n }\n });\n\n // restore autoplay if autoplay canceled from touchstart / dragstart\n _this.$el.on('onDragend.lg.tm touchend.lg.tm onSlideClick.lg.tm', function() {\n if (!_this.interval && _this.canceledOnTouch) {\n _this.startlAuto();\n _this.canceledOnTouch = false;\n }\n });\n\n };\n\n Autoplay.prototype.progress = function() {\n\n var _this = this;\n var _$progressBar;\n var _$progress;\n\n _this.$el.on('onBeforeSlide.lg.tm', function() {\n\n // start progress bar animation\n if (_this.core.s.progressBar && _this.fromAuto) {\n _$progressBar = _this.core.$outer.find('.lg-progress-bar');\n _$progress = _this.core.$outer.find('.lg-progress');\n if (_this.interval) {\n _$progress.removeAttr('style');\n _$progressBar.removeClass('lg-start');\n setTimeout(function() {\n _$progress.css('transition', 'width ' + (_this.core.s.speed + _this.core.s.pause) + 'ms ease 0s');\n _$progressBar.addClass('lg-start');\n }, 20);\n }\n }\n\n // Remove setinterval if slide is triggered manually and fourceautoplay is false\n if (!_this.fromAuto && !_this.core.s.fourceAutoplay) {\n _this.cancelAuto();\n }\n\n _this.fromAuto = false;\n\n });\n };\n\n // Manage autoplay via play/stop buttons\n Autoplay.prototype.controls = function() {\n var _this = this;\n var _html = '';\n\n // Append autoplay controls\n $(this.core.s.appendAutoplayControlsTo).append(_html);\n\n _this.core.$outer.find('.lg-autoplay-button').on('click.lg', function() {\n if ($(_this.core.$outer).hasClass('lg-show-autoplay')) {\n _this.cancelAuto();\n _this.core.s.fourceAutoplay = false;\n } else {\n if (!_this.interval) {\n _this.startlAuto();\n _this.core.s.fourceAutoplay = _this.fourceAutoplayTemp;\n }\n }\n });\n };\n\n // Autostart gallery\n Autoplay.prototype.startlAuto = function() {\n var _this = this;\n\n _this.core.$outer.find('.lg-progress').css('transition', 'width ' + (_this.core.s.speed + _this.core.s.pause) + 'ms ease 0s');\n _this.core.$outer.addClass('lg-show-autoplay');\n _this.core.$outer.find('.lg-progress-bar').addClass('lg-start');\n\n _this.interval = setInterval(function() {\n if (_this.core.index + 1 < _this.core.$items.length) {\n _this.core.index++;\n } else {\n _this.core.index = 0;\n }\n\n _this.fromAuto = true;\n _this.core.slide(_this.core.index, false, false, 'next');\n }, _this.core.s.speed + _this.core.s.pause);\n };\n\n // cancel Autostart\n Autoplay.prototype.cancelAuto = function() {\n clearInterval(this.interval);\n this.interval = false;\n this.core.$outer.find('.lg-progress').removeAttr('style');\n this.core.$outer.removeClass('lg-show-autoplay');\n this.core.$outer.find('.lg-progress-bar').removeClass('lg-start');\n };\n\n Autoplay.prototype.destroy = function() {\n\n this.cancelAuto();\n this.core.$outer.find('.lg-progress-bar').remove();\n };\n\n $.fn.lightGallery.modules.autoplay = Autoplay;\n\n})();\n\n\n}));\n\n/*! lg-fullscreen - v1.1.0 - 2019-02-19\n* http://sachinchoolur.github.io/lightGallery\n* Copyright (c) 2019 Sachin N; Licensed GPLv3 */\n\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module unless amdModuleId is set\n define(['jquery'], function (a0) {\n return (factory(a0));\n });\n } else if (typeof module === 'object' && module.exports) {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory(require('jquery'));\n } else {\n factory(root[\"jQuery\"]);\n }\n}(this, function ($) {\n\n(function() {\n\n 'use strict';\n\n var defaults = {\n fullScreen: true\n };\n\n function isFullScreen() {\n return (\n document.fullscreenElement ||\n document.mozFullScreenElement ||\n document.webkitFullscreenElement ||\n document.msFullscreenElement\n );\n }\n\n var Fullscreen = function(element) {\n\n // get lightGallery core plugin data\n this.core = $(element).data('lightGallery');\n\n this.$el = $(element);\n\n // extend module defalut settings with lightGallery core settings\n this.core.s = $.extend({}, defaults, this.core.s);\n\n this.init();\n\n return this;\n };\n\n Fullscreen.prototype.init = function() {\n var fullScreen = '';\n if (this.core.s.fullScreen) {\n\n // check for fullscreen browser support\n if (!document.fullscreenEnabled && !document.webkitFullscreenEnabled &&\n !document.mozFullScreenEnabled && !document.msFullscreenEnabled) {\n return;\n } else {\n fullScreen = '';\n this.core.$outer.find('.lg-toolbar').append(fullScreen);\n this.fullScreen();\n }\n }\n };\n\n Fullscreen.prototype.requestFullscreen = function() {\n var el = document.documentElement;\n if (el.requestFullscreen) {\n el.requestFullscreen();\n } else if (el.msRequestFullscreen) {\n el.msRequestFullscreen();\n } else if (el.mozRequestFullScreen) {\n el.mozRequestFullScreen();\n } else if (el.webkitRequestFullscreen) {\n el.webkitRequestFullscreen();\n }\n };\n\n Fullscreen.prototype.exitFullscreen = function() {\n if (document.exitFullscreen) {\n document.exitFullscreen();\n } else if (document.msExitFullscreen) {\n document.msExitFullscreen();\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen();\n } else if (document.webkitExitFullscreen) {\n document.webkitExitFullscreen();\n }\n };\n\n // https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Using_full_screen_mode\n Fullscreen.prototype.fullScreen = function() {\n var _this = this;\n\n $(document).on('fullscreenchange.lg webkitfullscreenchange.lg mozfullscreenchange.lg MSFullscreenChange.lg', function() {\n _this.core.$outer.toggleClass('lg-fullscreen-on');\n });\n\n this.core.$outer.find('.lg-fullscreen').on('click.lg', function() {\n if (isFullScreen()) {\n _this.exitFullscreen();\n } else {\n _this.requestFullscreen();\n }\n });\n\n };\n\n Fullscreen.prototype.destroy = function() {\n\n // exit from fullscreen if activated\n if(isFullScreen()) {\n this.exitFullscreen();\n }\n\n $(document).off('fullscreenchange.lg webkitfullscreenchange.lg mozfullscreenchange.lg MSFullscreenChange.lg');\n };\n\n $.fn.lightGallery.modules.fullscreen = Fullscreen;\n\n})();\n\n}));\n\n/*! lg-pager - v1.0.2 - 2017-01-22\n* http://sachinchoolur.github.io/lightGallery\n* Copyright (c) 2017 Sachin N; Licensed GPLv3 */\n\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module unless amdModuleId is set\n define(['jquery'], function (a0) {\n return (factory(a0));\n });\n } else if (typeof exports === 'object') {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory(require('jquery'));\n } else {\n factory(jQuery);\n }\n}(this, function ($) {\n\n(function() {\n\n 'use strict';\n\n var defaults = {\n pager: false\n };\n\n var Pager = function(element) {\n\n this.core = $(element).data('lightGallery');\n\n this.$el = $(element);\n this.core.s = $.extend({}, defaults, this.core.s);\n if (this.core.s.pager && this.core.$items.length > 1) {\n this.init();\n }\n\n return this;\n };\n\n Pager.prototype.init = function() {\n var _this = this;\n var pagerList = '';\n var $pagerCont;\n var $pagerOuter;\n var timeout;\n\n _this.core.$outer.find('.lg').append('
    ');\n\n if (_this.core.s.dynamic) {\n for (var i = 0; i < _this.core.s.dynamicEl.length; i++) {\n pagerList += '
    ';\n }\n } else {\n _this.core.$items.each(function() {\n\n if (!_this.core.s.exThumbImage) {\n pagerList += '
    ';\n } else {\n pagerList += '
    ';\n }\n\n });\n }\n\n $pagerOuter = _this.core.$outer.find('.lg-pager-outer');\n\n $pagerOuter.html(pagerList);\n\n $pagerCont = _this.core.$outer.find('.lg-pager-cont');\n $pagerCont.on('click.lg touchend.lg', function() {\n var _$this = $(this);\n _this.core.index = _$this.index();\n _this.core.slide(_this.core.index, false, true, false);\n });\n\n $pagerOuter.on('mouseover.lg', function() {\n clearTimeout(timeout);\n $pagerOuter.addClass('lg-pager-hover');\n });\n\n $pagerOuter.on('mouseout.lg', function() {\n timeout = setTimeout(function() {\n $pagerOuter.removeClass('lg-pager-hover');\n });\n });\n\n _this.core.$el.on('onBeforeSlide.lg.tm', function(e, prevIndex, index) {\n $pagerCont.removeClass('lg-pager-active');\n $pagerCont.eq(index).addClass('lg-pager-active');\n });\n\n };\n\n Pager.prototype.destroy = function() {\n\n };\n\n $.fn.lightGallery.modules.pager = Pager;\n\n})();\n\n\n}));\n\n/*! lg-thumbnail - v1.1.0 - 2017-08-08\n* http://sachinchoolur.github.io/lightGallery\n* Copyright (c) 2017 Sachin N; Licensed GPLv3 */\n\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module unless amdModuleId is set\n define(['jquery'], function (a0) {\n return (factory(a0));\n });\n } else if (typeof exports === 'object') {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory(require('jquery'));\n } else {\n factory(jQuery);\n }\n}(this, function ($) {\n\n(function() {\n\n 'use strict';\n\n var defaults = {\n thumbnail: true,\n\n animateThumb: true,\n currentPagerPosition: 'middle',\n\n thumbWidth: 100,\n thumbHeight: '80px',\n thumbContHeight: 100,\n thumbMargin: 5,\n\n exThumbImage: false,\n showThumbByDefault: true,\n toogleThumb: true,\n pullCaptionUp: true,\n\n enableThumbDrag: true,\n enableThumbSwipe: true,\n swipeThreshold: 50,\n\n loadYoutubeThumbnail: true,\n youtubeThumbSize: 1,\n\n loadVimeoThumbnail: true,\n vimeoThumbSize: 'thumbnail_small',\n\n loadDailymotionThumbnail: true\n };\n\n var Thumbnail = function(element) {\n\n // get lightGallery core plugin data\n this.core = $(element).data('lightGallery');\n\n // extend module default settings with lightGallery core settings\n this.core.s = $.extend({}, defaults, this.core.s);\n\n this.$el = $(element);\n this.$thumbOuter = null;\n this.thumbOuterWidth = 0;\n this.thumbTotalWidth = (this.core.$items.length * (this.core.s.thumbWidth + this.core.s.thumbMargin));\n this.thumbIndex = this.core.index;\n\n if (this.core.s.animateThumb) {\n this.core.s.thumbHeight = '100%';\n }\n\n // Thumbnail animation value\n this.left = 0;\n\n this.init();\n\n return this;\n };\n\n Thumbnail.prototype.init = function() {\n var _this = this;\n if (this.core.s.thumbnail && this.core.$items.length > 1) {\n if (this.core.s.showThumbByDefault) {\n setTimeout(function(){\n _this.core.$outer.addClass('lg-thumb-open');\n }, 700);\n }\n\n if (this.core.s.pullCaptionUp) {\n this.core.$outer.addClass('lg-pull-caption-up');\n }\n\n this.build();\n if (this.core.s.animateThumb && this.core.doCss()) {\n if (this.core.s.enableThumbDrag) {\n this.enableThumbDrag();\n }\n\n if (this.core.s.enableThumbSwipe) {\n this.enableThumbSwipe();\n }\n\n this.thumbClickable = false;\n } else {\n this.thumbClickable = true;\n }\n\n this.toogle();\n this.thumbkeyPress();\n }\n };\n\n Thumbnail.prototype.build = function() {\n var _this = this;\n var thumbList = '';\n var vimeoErrorThumbSize = '';\n var $thumb;\n var html = '
    ' +\n '
    ' +\n '
    ' +\n '
    ';\n\n switch (this.core.s.vimeoThumbSize) {\n case 'thumbnail_large':\n vimeoErrorThumbSize = '640';\n break;\n case 'thumbnail_medium':\n vimeoErrorThumbSize = '200x150';\n break;\n case 'thumbnail_small':\n vimeoErrorThumbSize = '100x75';\n }\n\n _this.core.$outer.addClass('lg-has-thumb');\n\n _this.core.$outer.find('.lg').append(html);\n\n _this.$thumbOuter = _this.core.$outer.find('.lg-thumb-outer');\n _this.thumbOuterWidth = _this.$thumbOuter.width();\n\n if (_this.core.s.animateThumb) {\n _this.core.$outer.find('.lg-thumb').css({\n width: _this.thumbTotalWidth + 'px',\n position: 'relative'\n });\n }\n\n if (this.core.s.animateThumb) {\n _this.$thumbOuter.css('height', _this.core.s.thumbContHeight + 'px');\n }\n\n function getThumb(src, thumb, index) {\n var isVideo = _this.core.isVideo(src, index) || {};\n var thumbImg;\n var vimeoId = '';\n\n if (isVideo.youtube || isVideo.vimeo || isVideo.dailymotion) {\n if (isVideo.youtube) {\n if (_this.core.s.loadYoutubeThumbnail) {\n thumbImg = '//img.youtube.com/vi/' + isVideo.youtube[1] + '/' + _this.core.s.youtubeThumbSize + '.jpg';\n } else {\n thumbImg = thumb;\n }\n } else if (isVideo.vimeo) {\n if (_this.core.s.loadVimeoThumbnail) {\n thumbImg = '//i.vimeocdn.com/video/error_' + vimeoErrorThumbSize + '.jpg';\n vimeoId = isVideo.vimeo[1];\n } else {\n thumbImg = thumb;\n }\n } else if (isVideo.dailymotion) {\n if (_this.core.s.loadDailymotionThumbnail) {\n thumbImg = '//www.dailymotion.com/thumbnail/video/' + isVideo.dailymotion[1];\n } else {\n thumbImg = thumb;\n }\n }\n } else {\n thumbImg = thumb;\n }\n\n thumbList += '
    ';\n vimeoId = '';\n }\n\n if (_this.core.s.dynamic) {\n for (var i = 0; i < _this.core.s.dynamicEl.length; i++) {\n getThumb(_this.core.s.dynamicEl[i].src, _this.core.s.dynamicEl[i].thumb, i);\n }\n } else {\n _this.core.$items.each(function(i) {\n\n if (!_this.core.s.exThumbImage) {\n getThumb($(this).attr('href') || $(this).attr('data-src'), $(this).find('img').attr('src'), i);\n } else {\n getThumb($(this).attr('href') || $(this).attr('data-src'), $(this).attr(_this.core.s.exThumbImage), i);\n }\n\n });\n }\n\n _this.core.$outer.find('.lg-thumb').html(thumbList);\n\n $thumb = _this.core.$outer.find('.lg-thumb-item');\n\n // Load vimeo thumbnails\n $thumb.each(function() {\n var $this = $(this);\n var vimeoVideoId = $this.attr('data-vimeo-id');\n\n if (vimeoVideoId) {\n $.getJSON('//www.vimeo.com/api/v2/video/' + vimeoVideoId + '.json?callback=?', {\n format: 'json'\n }, function(data) {\n $this.find('img').attr('src', data[0][_this.core.s.vimeoThumbSize]);\n });\n }\n });\n\n // manage active class for thumbnail\n $thumb.eq(_this.core.index).addClass('active');\n _this.core.$el.on('onBeforeSlide.lg.tm', function() {\n $thumb.removeClass('active');\n $thumb.eq(_this.core.index).addClass('active');\n });\n\n $thumb.on('click.lg touchend.lg', function() {\n var _$this = $(this);\n setTimeout(function() {\n\n // In IE9 and bellow touch does not support\n // Go to slide if browser does not support css transitions\n if ((_this.thumbClickable && !_this.core.lgBusy) || !_this.core.doCss()) {\n _this.core.index = _$this.index();\n _this.core.slide(_this.core.index, false, true, false);\n }\n }, 50);\n });\n\n _this.core.$el.on('onBeforeSlide.lg.tm', function() {\n _this.animateThumb(_this.core.index);\n });\n\n $(window).on('resize.lg.thumb orientationchange.lg.thumb', function() {\n setTimeout(function() {\n _this.animateThumb(_this.core.index);\n _this.thumbOuterWidth = _this.$thumbOuter.width();\n }, 200);\n });\n\n };\n\n Thumbnail.prototype.setTranslate = function(value) {\n // jQuery supports Automatic CSS prefixing since jQuery 1.8.0\n this.core.$outer.find('.lg-thumb').css({\n transform: 'translate3d(-' + (value) + 'px, 0px, 0px)'\n });\n };\n\n Thumbnail.prototype.animateThumb = function(index) {\n var $thumb = this.core.$outer.find('.lg-thumb');\n if (this.core.s.animateThumb) {\n var position;\n switch (this.core.s.currentPagerPosition) {\n case 'left':\n position = 0;\n break;\n case 'middle':\n position = (this.thumbOuterWidth / 2) - (this.core.s.thumbWidth / 2);\n break;\n case 'right':\n position = this.thumbOuterWidth - this.core.s.thumbWidth;\n }\n this.left = ((this.core.s.thumbWidth + this.core.s.thumbMargin) * index - 1) - position;\n if (this.left > (this.thumbTotalWidth - this.thumbOuterWidth)) {\n this.left = this.thumbTotalWidth - this.thumbOuterWidth;\n }\n\n if (this.left < 0) {\n this.left = 0;\n }\n\n if (this.core.lGalleryOn) {\n if (!$thumb.hasClass('on')) {\n this.core.$outer.find('.lg-thumb').css('transition-duration', this.core.s.speed + 'ms');\n }\n\n if (!this.core.doCss()) {\n $thumb.animate({\n left: -this.left + 'px'\n }, this.core.s.speed);\n }\n } else {\n if (!this.core.doCss()) {\n $thumb.css('left', -this.left + 'px');\n }\n }\n\n this.setTranslate(this.left);\n\n }\n };\n\n // Enable thumbnail dragging and swiping\n Thumbnail.prototype.enableThumbDrag = function() {\n\n var _this = this;\n var startCoords = 0;\n var endCoords = 0;\n var isDraging = false;\n var isMoved = false;\n var tempLeft = 0;\n\n _this.$thumbOuter.addClass('lg-grab');\n\n _this.core.$outer.find('.lg-thumb').on('mousedown.lg.thumb', function(e) {\n if (_this.thumbTotalWidth > _this.thumbOuterWidth) {\n // execute only on .lg-object\n e.preventDefault();\n startCoords = e.pageX;\n isDraging = true;\n\n // ** Fix for webkit cursor issue https://code.google.com/p/chromium/issues/detail?id=26723\n _this.core.$outer.scrollLeft += 1;\n _this.core.$outer.scrollLeft -= 1;\n\n // *\n _this.thumbClickable = false;\n _this.$thumbOuter.removeClass('lg-grab').addClass('lg-grabbing');\n }\n });\n\n $(window).on('mousemove.lg.thumb', function(e) {\n if (isDraging) {\n tempLeft = _this.left;\n isMoved = true;\n endCoords = e.pageX;\n\n _this.$thumbOuter.addClass('lg-dragging');\n\n tempLeft = tempLeft - (endCoords - startCoords);\n\n if (tempLeft > (_this.thumbTotalWidth - _this.thumbOuterWidth)) {\n tempLeft = _this.thumbTotalWidth - _this.thumbOuterWidth;\n }\n\n if (tempLeft < 0) {\n tempLeft = 0;\n }\n\n // move current slide\n _this.setTranslate(tempLeft);\n\n }\n });\n\n $(window).on('mouseup.lg.thumb', function() {\n if (isMoved) {\n isMoved = false;\n _this.$thumbOuter.removeClass('lg-dragging');\n\n _this.left = tempLeft;\n\n if (Math.abs(endCoords - startCoords) < _this.core.s.swipeThreshold) {\n _this.thumbClickable = true;\n }\n\n } else {\n _this.thumbClickable = true;\n }\n\n if (isDraging) {\n isDraging = false;\n _this.$thumbOuter.removeClass('lg-grabbing').addClass('lg-grab');\n }\n });\n\n };\n\n Thumbnail.prototype.enableThumbSwipe = function() {\n var _this = this;\n var startCoords = 0;\n var endCoords = 0;\n var isMoved = false;\n var tempLeft = 0;\n\n _this.core.$outer.find('.lg-thumb').on('touchstart.lg', function(e) {\n if (_this.thumbTotalWidth > _this.thumbOuterWidth) {\n e.preventDefault();\n startCoords = e.originalEvent.targetTouches[0].pageX;\n _this.thumbClickable = false;\n }\n });\n\n _this.core.$outer.find('.lg-thumb').on('touchmove.lg', function(e) {\n if (_this.thumbTotalWidth > _this.thumbOuterWidth) {\n e.preventDefault();\n endCoords = e.originalEvent.targetTouches[0].pageX;\n isMoved = true;\n\n _this.$thumbOuter.addClass('lg-dragging');\n\n tempLeft = _this.left;\n\n tempLeft = tempLeft - (endCoords - startCoords);\n\n if (tempLeft > (_this.thumbTotalWidth - _this.thumbOuterWidth)) {\n tempLeft = _this.thumbTotalWidth - _this.thumbOuterWidth;\n }\n\n if (tempLeft < 0) {\n tempLeft = 0;\n }\n\n // move current slide\n _this.setTranslate(tempLeft);\n\n }\n });\n\n _this.core.$outer.find('.lg-thumb').on('touchend.lg', function() {\n if (_this.thumbTotalWidth > _this.thumbOuterWidth) {\n\n if (isMoved) {\n isMoved = false;\n _this.$thumbOuter.removeClass('lg-dragging');\n if (Math.abs(endCoords - startCoords) < _this.core.s.swipeThreshold) {\n _this.thumbClickable = true;\n }\n\n _this.left = tempLeft;\n } else {\n _this.thumbClickable = true;\n }\n } else {\n _this.thumbClickable = true;\n }\n });\n\n };\n\n Thumbnail.prototype.toogle = function() {\n var _this = this;\n if (_this.core.s.toogleThumb) {\n _this.core.$outer.addClass('lg-can-toggle');\n _this.$thumbOuter.append('');\n _this.core.$outer.find('.lg-toogle-thumb').on('click.lg', function() {\n _this.core.$outer.toggleClass('lg-thumb-open');\n });\n }\n };\n\n Thumbnail.prototype.thumbkeyPress = function() {\n var _this = this;\n $(window).on('keydown.lg.thumb', function(e) {\n if (e.keyCode === 38) {\n e.preventDefault();\n _this.core.$outer.addClass('lg-thumb-open');\n } else if (e.keyCode === 40) {\n e.preventDefault();\n _this.core.$outer.removeClass('lg-thumb-open');\n }\n });\n };\n\n Thumbnail.prototype.destroy = function() {\n if (this.core.s.thumbnail && this.core.$items.length > 1) {\n $(window).off('resize.lg.thumb orientationchange.lg.thumb keydown.lg.thumb');\n this.$thumbOuter.remove();\n this.core.$outer.removeClass('lg-has-thumb');\n }\n };\n\n $.fn.lightGallery.modules.Thumbnail = Thumbnail;\n\n})();\n\n}));\n\n/*! lg-video - v1.2.2 - 2018-05-01\n* http://sachinchoolur.github.io/lightGallery\n* Copyright (c) 2018 Sachin N; Licensed GPLv3 */\n\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module unless amdModuleId is set\n define(['jquery'], function (a0) {\n return (factory(a0));\n });\n } else if (typeof module === 'object' && module.exports) {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory(require('jquery'));\n } else {\n factory(root[\"jQuery\"]);\n }\n}(this, function ($) {\n\n(function() {\n \n 'use strict';\n \n var defaults = {\n videoMaxWidth: '855px',\n\n autoplayFirstVideo: true,\n\n youtubePlayerParams: false,\n vimeoPlayerParams: false,\n dailymotionPlayerParams: false,\n vkPlayerParams: false,\n\n videojs: false,\n videojsOptions: {}\n };\n \n var Video = function(element) {\n \n this.core = $(element).data('lightGallery');\n \n this.$el = $(element);\n this.core.s = $.extend({}, defaults, this.core.s);\n this.videoLoaded = false;\n \n this.init();\n \n return this;\n };\n \n Video.prototype.init = function() {\n var _this = this;\n \n // Event triggered when video url found without poster\n _this.core.$el.on('hasVideo.lg.tm', onHasVideo.bind(this));\n \n // Set max width for video\n _this.core.$el.on('onAferAppendSlide.lg.tm', onAferAppendSlide.bind(this));\n \n if (_this.core.doCss() && (_this.core.$items.length > 1) && (_this.core.s.enableSwipe || _this.core.s.enableDrag)) {\n _this.core.$el.on('onSlideClick.lg.tm', function() {\n var $el = _this.core.$slide.eq(_this.core.index);\n _this.loadVideoOnclick($el);\n });\n } else {\n \n // For IE 9 and bellow\n _this.core.$slide.on('click.lg', function() {\n _this.loadVideoOnclick($(this));\n });\n }\n \n _this.core.$el.on('onBeforeSlide.lg.tm', onBeforeSlide.bind(this));\n \n _this.core.$el.on('onAfterSlide.lg.tm', function(event, prevIndex) {\n _this.core.$slide.eq(prevIndex).removeClass('lg-video-playing');\n });\n \n if (_this.core.s.autoplayFirstVideo) {\n _this.core.$el.on('onAferAppendSlide.lg.tm', function (e, index) {\n if (!_this.core.lGalleryOn) {\n var $el = _this.core.$slide.eq(index);\n setTimeout(function () {\n _this.loadVideoOnclick($el);\n }, 100);\n }\n });\n }\n };\n \n Video.prototype.loadVideo = function(src, addClass, noPoster, index, html) {\n var video = '';\n var autoplay = 1;\n var a = '';\n var isVideo = this.core.isVideo(src, index) || {};\n \n // Enable autoplay based on setting for first video if poster doesn't exist\n if (noPoster) {\n if (this.videoLoaded) {\n autoplay = 0;\n } else {\n autoplay = this.core.s.autoplayFirstVideo ? 1 : 0;\n }\n }\n \n if (isVideo.youtube) {\n \n a = '?wmode=opaque&autoplay=' + autoplay + '&enablejsapi=1';\n if (this.core.s.youtubePlayerParams) {\n a = a + '&' + $.param(this.core.s.youtubePlayerParams);\n }\n \n video = '';\n \n } else if (isVideo.vimeo) {\n \n a = '?autoplay=' + autoplay + '&api=1';\n if (this.core.s.vimeoPlayerParams) {\n a = a + '&' + $.param(this.core.s.vimeoPlayerParams);\n }\n \n video = '';\n \n } else if (isVideo.dailymotion) {\n \n a = '?wmode=opaque&autoplay=' + autoplay + '&api=postMessage';\n if (this.core.s.dailymotionPlayerParams) {\n a = a + '&' + $.param(this.core.s.dailymotionPlayerParams);\n }\n \n video = '';\n \n } else if (isVideo.html5) {\n var fL = html.substring(0, 1);\n if (fL === '.' || fL === '#') {\n html = $(html).html();\n }\n \n video = html;\n \n } else if (isVideo.vk) {\n \n a = '&autoplay=' + autoplay;\n if (this.core.s.vkPlayerParams) {\n a = a + '&' + $.param(this.core.s.vkPlayerParams);\n }\n \n video = '';\n \n }\n \n return video;\n };\n\n Video.prototype.loadVideoOnclick = function($el){\n\n var _this = this;\n // check slide has poster\n if ($el.find('.lg-object').hasClass('lg-has-poster') && $el.find('.lg-object').is(':visible')) {\n\n // check already video element present\n if (!$el.hasClass('lg-has-video')) {\n\n $el.addClass('lg-video-playing lg-has-video');\n\n var _src;\n var _html;\n var _loadVideo = function(_src, _html) {\n\n $el.find('.lg-video').append(_this.loadVideo(_src, '', false, _this.core.index, _html));\n\n if (_html) {\n if (_this.core.s.videojs) {\n try {\n videojs(_this.core.$slide.eq(_this.core.index).find('.lg-html5').get(0), _this.core.s.videojsOptions, function() {\n this.play();\n });\n } catch (e) {\n console.error('Make sure you have included videojs');\n }\n } else {\n _this.core.$slide.eq(_this.core.index).find('.lg-html5').get(0).play();\n }\n }\n\n };\n\n if (_this.core.s.dynamic) {\n\n _src = _this.core.s.dynamicEl[_this.core.index].src;\n _html = _this.core.s.dynamicEl[_this.core.index].html;\n\n _loadVideo(_src, _html);\n\n } else {\n\n _src = _this.core.$items.eq(_this.core.index).attr('href') || _this.core.$items.eq(_this.core.index).attr('data-src');\n _html = _this.core.$items.eq(_this.core.index).attr('data-html');\n\n _loadVideo(_src, _html);\n\n }\n\n var $tempImg = $el.find('.lg-object');\n $el.find('.lg-video').append($tempImg);\n\n // @todo loading icon for html5 videos also\n // for showing the loading indicator while loading video\n if (!$el.find('.lg-video-object').hasClass('lg-html5')) {\n $el.removeClass('lg-complete');\n $el.find('.lg-video-object').on('load.lg error.lg', function() {\n $el.addClass('lg-complete');\n });\n }\n\n } else {\n\n var youtubePlayer = $el.find('.lg-youtube').get(0);\n var vimeoPlayer = $el.find('.lg-vimeo').get(0);\n var dailymotionPlayer = $el.find('.lg-dailymotion').get(0);\n var html5Player = $el.find('.lg-html5').get(0);\n if (youtubePlayer) {\n youtubePlayer.contentWindow.postMessage('{\"event\":\"command\",\"func\":\"playVideo\",\"args\":\"\"}', '*');\n } else if (vimeoPlayer) {\n try {\n $f(vimeoPlayer).api('play');\n } catch (e) {\n console.error('Make sure you have included froogaloop2 js');\n }\n } else if (dailymotionPlayer) {\n dailymotionPlayer.contentWindow.postMessage('play', '*');\n\n } else if (html5Player) {\n if (_this.core.s.videojs) {\n try {\n videojs(html5Player).play();\n } catch (e) {\n console.error('Make sure you have included videojs');\n }\n } else {\n html5Player.play();\n }\n }\n\n $el.addClass('lg-video-playing');\n\n }\n }\n };\n \n Video.prototype.destroy = function() {\n this.videoLoaded = false;\n };\n\n function onHasVideo(event, index, src, html) {\n /*jshint validthis:true */\n var _this = this;\n _this.core.$slide.eq(index).find('.lg-video').append(_this.loadVideo(src, 'lg-object', true, index, html));\n if (html) {\n if (_this.core.s.videojs) {\n try {\n videojs(_this.core.$slide.eq(index).find('.lg-html5').get(0), _this.core.s.videojsOptions, function() {\n if (!_this.videoLoaded && _this.core.s.autoplayFirstVideo) {\n this.play();\n }\n });\n } catch (e) {\n console.error('Make sure you have included videojs');\n }\n } else {\n if(!_this.videoLoaded && _this.core.s.autoplayFirstVideo) {\n _this.core.$slide.eq(index).find('.lg-html5').get(0).play();\n }\n }\n }\n }\n\n function onAferAppendSlide(event, index) {\n /*jshint validthis:true */\n var $videoCont = this.core.$slide.eq(index).find('.lg-video-cont');\n if (!$videoCont.hasClass('lg-has-iframe')) {\n $videoCont.css('max-width', this.core.s.videoMaxWidth);\n this.videoLoaded = true;\n }\n }\n\n function onBeforeSlide(event, prevIndex, index) {\n /*jshint validthis:true */\n var _this = this;\n\n var $videoSlide = _this.core.$slide.eq(prevIndex);\n var youtubePlayer = $videoSlide.find('.lg-youtube').get(0);\n var vimeoPlayer = $videoSlide.find('.lg-vimeo').get(0);\n var dailymotionPlayer = $videoSlide.find('.lg-dailymotion').get(0);\n var vkPlayer = $videoSlide.find('.lg-vk').get(0);\n var html5Player = $videoSlide.find('.lg-html5').get(0);\n if (youtubePlayer) {\n youtubePlayer.contentWindow.postMessage('{\"event\":\"command\",\"func\":\"pauseVideo\",\"args\":\"\"}', '*');\n } else if (vimeoPlayer) {\n try {\n $f(vimeoPlayer).api('pause');\n } catch (e) {\n console.error('Make sure you have included froogaloop2 js');\n }\n } else if (dailymotionPlayer) {\n dailymotionPlayer.contentWindow.postMessage('pause', '*');\n\n } else if (html5Player) {\n if (_this.core.s.videojs) {\n try {\n videojs(html5Player).pause();\n } catch (e) {\n console.error('Make sure you have included videojs');\n }\n } else {\n html5Player.pause();\n }\n } if (vkPlayer) {\n $(vkPlayer).attr('src', $(vkPlayer).attr('src').replace('&autoplay', '&noplay'));\n }\n\n var _src;\n if (_this.core.s.dynamic) {\n _src = _this.core.s.dynamicEl[index].src;\n } else {\n _src = _this.core.$items.eq(index).attr('href') || _this.core.$items.eq(index).attr('data-src');\n\n }\n\n var _isVideo = _this.core.isVideo(_src, index) || {};\n if (_isVideo.youtube || _isVideo.vimeo || _isVideo.dailymotion || _isVideo.vk) {\n _this.core.$outer.addClass('lg-hide-download');\n }\n\n }\n \n $.fn.lightGallery.modules.video = Video;\n \n })();\n\n}));\n\n/*! lg-zoom - v1.1.0 - 2017-08-08\n* http://sachinchoolur.github.io/lightGallery\n* Copyright (c) 2017 Sachin N; Licensed GPLv3 */\n\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module unless amdModuleId is set\n define(['jquery'], function (a0) {\n return (factory(a0));\n });\n } else if (typeof exports === 'object') {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory(require('jquery'));\n } else {\n factory(jQuery);\n }\n}(this, function ($) {\n\n(function() {\n\n 'use strict';\n\n var getUseLeft = function() {\n var useLeft = false;\n var isChrome = navigator.userAgent.match(/Chrom(e|ium)\\/([0-9]+)\\./);\n if (isChrome && parseInt(isChrome[2], 10) < 54) {\n useLeft = true;\n }\n\n return useLeft;\n };\n\n var defaults = {\n scale: 1,\n zoom: true,\n actualSize: true,\n enableZoomAfter: 300,\n useLeftForZoom: getUseLeft()\n };\n\n var Zoom = function(element) {\n\n this.core = $(element).data('lightGallery');\n\n this.core.s = $.extend({}, defaults, this.core.s);\n\n if (this.core.s.zoom && this.core.doCss()) {\n this.init();\n\n // Store the zoomable timeout value just to clear it while closing\n this.zoomabletimeout = false;\n\n // Set the initial value center\n this.pageX = $(window).width() / 2;\n this.pageY = ($(window).height() / 2) + $(window).scrollTop();\n }\n\n return this;\n };\n\n Zoom.prototype.init = function() {\n\n var _this = this;\n var zoomIcons = '';\n\n if (_this.core.s.actualSize) {\n zoomIcons += '';\n }\n\n if (_this.core.s.useLeftForZoom) {\n _this.core.$outer.addClass('lg-use-left-for-zoom');\n } else {\n _this.core.$outer.addClass('lg-use-transition-for-zoom');\n }\n\n this.core.$outer.find('.lg-toolbar').append(zoomIcons);\n\n // Add zoomable class\n _this.core.$el.on('onSlideItemLoad.lg.tm.zoom', function(event, index, delay) {\n\n // delay will be 0 except first time\n var _speed = _this.core.s.enableZoomAfter + delay;\n\n // set _speed value 0 if gallery opened from direct url and if it is first slide\n if ($('body').hasClass('lg-from-hash') && delay) {\n\n // will execute only once\n _speed = 0;\n } else {\n\n // Remove lg-from-hash to enable starting animation.\n $('body').removeClass('lg-from-hash');\n }\n\n _this.zoomabletimeout = setTimeout(function() {\n _this.core.$slide.eq(index).addClass('lg-zoomable');\n }, _speed + 30);\n });\n\n var scale = 1;\n /**\n * @desc Image zoom\n * Translate the wrap and scale the image to get better user experience\n *\n * @param {String} scaleVal - Zoom decrement/increment value\n */\n var zoom = function(scaleVal) {\n\n var $image = _this.core.$outer.find('.lg-current .lg-image');\n var _x;\n var _y;\n\n // Find offset manually to avoid issue after zoom\n var offsetX = ($(window).width() - $image.prop('offsetWidth')) / 2;\n var offsetY = (($(window).height() - $image.prop('offsetHeight')) / 2) + $(window).scrollTop();\n\n _x = _this.pageX - offsetX;\n _y = _this.pageY - offsetY;\n\n var x = (scaleVal - 1) * (_x);\n var y = (scaleVal - 1) * (_y);\n\n $image.css('transform', 'scale3d(' + scaleVal + ', ' + scaleVal + ', 1)').attr('data-scale', scaleVal);\n\n if (_this.core.s.useLeftForZoom) {\n $image.parent().css({\n left: -x + 'px',\n top: -y + 'px'\n }).attr('data-x', x).attr('data-y', y);\n } else {\n $image.parent().css('transform', 'translate3d(-' + x + 'px, -' + y + 'px, 0)').attr('data-x', x).attr('data-y', y);\n }\n };\n\n var callScale = function() {\n if (scale > 1) {\n _this.core.$outer.addClass('lg-zoomed');\n } else {\n _this.resetZoom();\n }\n\n if (scale < 1) {\n scale = 1;\n }\n\n zoom(scale);\n };\n\n var actualSize = function(event, $image, index, fromIcon) {\n var w = $image.prop('offsetWidth');\n var nw;\n if (_this.core.s.dynamic) {\n nw = _this.core.s.dynamicEl[index].width || $image[0].naturalWidth || w;\n } else {\n nw = _this.core.$items.eq(index).attr('data-width') || $image[0].naturalWidth || w;\n }\n\n var _scale;\n\n if (_this.core.$outer.hasClass('lg-zoomed')) {\n scale = 1;\n } else {\n if (nw > w) {\n _scale = nw / w;\n scale = _scale || 2;\n }\n }\n\n if (fromIcon) {\n _this.pageX = $(window).width() / 2;\n _this.pageY = ($(window).height() / 2) + $(window).scrollTop();\n } else {\n _this.pageX = event.pageX || event.originalEvent.targetTouches[0].pageX;\n _this.pageY = event.pageY || event.originalEvent.targetTouches[0].pageY;\n }\n\n callScale();\n setTimeout(function() {\n _this.core.$outer.removeClass('lg-grabbing').addClass('lg-grab');\n }, 10);\n };\n\n var tapped = false;\n\n // event triggered after appending slide content\n _this.core.$el.on('onAferAppendSlide.lg.tm.zoom', function(event, index) {\n\n // Get the current element\n var $image = _this.core.$slide.eq(index).find('.lg-image');\n\n $image.on('dblclick', function(event) {\n actualSize(event, $image, index);\n });\n\n $image.on('touchstart', function(event) {\n if (!tapped) {\n tapped = setTimeout(function() {\n tapped = null;\n }, 300);\n } else {\n clearTimeout(tapped);\n tapped = null;\n actualSize(event, $image, index);\n }\n\n event.preventDefault();\n });\n\n });\n\n // Update zoom on resize and orientationchange\n $(window).on('resize.lg.zoom scroll.lg.zoom orientationchange.lg.zoom', function() {\n _this.pageX = $(window).width() / 2;\n _this.pageY = ($(window).height() / 2) + $(window).scrollTop();\n zoom(scale);\n });\n\n $('#lg-zoom-out').on('click.lg', function() {\n if (_this.core.$outer.find('.lg-current .lg-image').length) {\n scale -= _this.core.s.scale;\n callScale();\n }\n });\n\n $('#lg-zoom-in').on('click.lg', function() {\n if (_this.core.$outer.find('.lg-current .lg-image').length) {\n scale += _this.core.s.scale;\n callScale();\n }\n });\n\n $('#lg-actual-size').on('click.lg', function(event) {\n actualSize(event, _this.core.$slide.eq(_this.core.index).find('.lg-image'), _this.core.index, true);\n });\n\n // Reset zoom on slide change\n _this.core.$el.on('onBeforeSlide.lg.tm', function() {\n scale = 1;\n _this.resetZoom();\n });\n\n // Drag option after zoom\n _this.zoomDrag();\n\n _this.zoomSwipe();\n\n };\n\n // Reset zoom effect\n Zoom.prototype.resetZoom = function() {\n this.core.$outer.removeClass('lg-zoomed');\n this.core.$slide.find('.lg-img-wrap').removeAttr('style data-x data-y');\n this.core.$slide.find('.lg-image').removeAttr('style data-scale');\n\n // Reset pagx pagy values to center\n this.pageX = $(window).width() / 2;\n this.pageY = ($(window).height() / 2) + $(window).scrollTop();\n };\n\n Zoom.prototype.zoomSwipe = function() {\n var _this = this;\n var startCoords = {};\n var endCoords = {};\n var isMoved = false;\n\n // Allow x direction drag\n var allowX = false;\n\n // Allow Y direction drag\n var allowY = false;\n\n _this.core.$slide.on('touchstart.lg', function(e) {\n\n if (_this.core.$outer.hasClass('lg-zoomed')) {\n var $image = _this.core.$slide.eq(_this.core.index).find('.lg-object');\n\n allowY = $image.prop('offsetHeight') * $image.attr('data-scale') > _this.core.$outer.find('.lg').height();\n allowX = $image.prop('offsetWidth') * $image.attr('data-scale') > _this.core.$outer.find('.lg').width();\n if ((allowX || allowY)) {\n e.preventDefault();\n startCoords = {\n x: e.originalEvent.targetTouches[0].pageX,\n y: e.originalEvent.targetTouches[0].pageY\n };\n }\n }\n\n });\n\n _this.core.$slide.on('touchmove.lg', function(e) {\n\n if (_this.core.$outer.hasClass('lg-zoomed')) {\n\n var _$el = _this.core.$slide.eq(_this.core.index).find('.lg-img-wrap');\n var distanceX;\n var distanceY;\n\n e.preventDefault();\n isMoved = true;\n\n endCoords = {\n x: e.originalEvent.targetTouches[0].pageX,\n y: e.originalEvent.targetTouches[0].pageY\n };\n\n // reset opacity and transition duration\n _this.core.$outer.addClass('lg-zoom-dragging');\n\n if (allowY) {\n distanceY = (-Math.abs(_$el.attr('data-y'))) + (endCoords.y - startCoords.y);\n } else {\n distanceY = -Math.abs(_$el.attr('data-y'));\n }\n\n if (allowX) {\n distanceX = (-Math.abs(_$el.attr('data-x'))) + (endCoords.x - startCoords.x);\n } else {\n distanceX = -Math.abs(_$el.attr('data-x'));\n }\n\n if ((Math.abs(endCoords.x - startCoords.x) > 15) || (Math.abs(endCoords.y - startCoords.y) > 15)) {\n\n if (_this.core.s.useLeftForZoom) {\n _$el.css({\n left: distanceX + 'px',\n top: distanceY + 'px'\n });\n } else {\n _$el.css('transform', 'translate3d(' + distanceX + 'px, ' + distanceY + 'px, 0)');\n }\n }\n\n }\n\n });\n\n _this.core.$slide.on('touchend.lg', function() {\n if (_this.core.$outer.hasClass('lg-zoomed')) {\n if (isMoved) {\n isMoved = false;\n _this.core.$outer.removeClass('lg-zoom-dragging');\n _this.touchendZoom(startCoords, endCoords, allowX, allowY);\n\n }\n }\n });\n\n };\n\n Zoom.prototype.zoomDrag = function() {\n\n var _this = this;\n var startCoords = {};\n var endCoords = {};\n var isDraging = false;\n var isMoved = false;\n\n // Allow x direction drag\n var allowX = false;\n\n // Allow Y direction drag\n var allowY = false;\n\n _this.core.$slide.on('mousedown.lg.zoom', function(e) {\n\n // execute only on .lg-object\n var $image = _this.core.$slide.eq(_this.core.index).find('.lg-object');\n\n allowY = $image.prop('offsetHeight') * $image.attr('data-scale') > _this.core.$outer.find('.lg').height();\n allowX = $image.prop('offsetWidth') * $image.attr('data-scale') > _this.core.$outer.find('.lg').width();\n\n if (_this.core.$outer.hasClass('lg-zoomed')) {\n if ($(e.target).hasClass('lg-object') && (allowX || allowY)) {\n e.preventDefault();\n startCoords = {\n x: e.pageX,\n y: e.pageY\n };\n\n isDraging = true;\n\n // ** Fix for webkit cursor issue https://code.google.com/p/chromium/issues/detail?id=26723\n _this.core.$outer.scrollLeft += 1;\n _this.core.$outer.scrollLeft -= 1;\n\n _this.core.$outer.removeClass('lg-grab').addClass('lg-grabbing');\n }\n }\n });\n\n $(window).on('mousemove.lg.zoom', function(e) {\n if (isDraging) {\n var _$el = _this.core.$slide.eq(_this.core.index).find('.lg-img-wrap');\n var distanceX;\n var distanceY;\n\n isMoved = true;\n endCoords = {\n x: e.pageX,\n y: e.pageY\n };\n\n // reset opacity and transition duration\n _this.core.$outer.addClass('lg-zoom-dragging');\n\n if (allowY) {\n distanceY = (-Math.abs(_$el.attr('data-y'))) + (endCoords.y - startCoords.y);\n } else {\n distanceY = -Math.abs(_$el.attr('data-y'));\n }\n\n if (allowX) {\n distanceX = (-Math.abs(_$el.attr('data-x'))) + (endCoords.x - startCoords.x);\n } else {\n distanceX = -Math.abs(_$el.attr('data-x'));\n }\n\n if (_this.core.s.useLeftForZoom) {\n _$el.css({\n left: distanceX + 'px',\n top: distanceY + 'px'\n });\n } else {\n _$el.css('transform', 'translate3d(' + distanceX + 'px, ' + distanceY + 'px, 0)');\n }\n }\n });\n\n $(window).on('mouseup.lg.zoom', function(e) {\n\n if (isDraging) {\n isDraging = false;\n _this.core.$outer.removeClass('lg-zoom-dragging');\n\n // Fix for chrome mouse move on click\n if (isMoved && ((startCoords.x !== endCoords.x) || (startCoords.y !== endCoords.y))) {\n endCoords = {\n x: e.pageX,\n y: e.pageY\n };\n _this.touchendZoom(startCoords, endCoords, allowX, allowY);\n\n }\n\n isMoved = false;\n }\n\n _this.core.$outer.removeClass('lg-grabbing').addClass('lg-grab');\n\n });\n };\n\n Zoom.prototype.touchendZoom = function(startCoords, endCoords, allowX, allowY) {\n\n var _this = this;\n var _$el = _this.core.$slide.eq(_this.core.index).find('.lg-img-wrap');\n var $image = _this.core.$slide.eq(_this.core.index).find('.lg-object');\n var distanceX = (-Math.abs(_$el.attr('data-x'))) + (endCoords.x - startCoords.x);\n var distanceY = (-Math.abs(_$el.attr('data-y'))) + (endCoords.y - startCoords.y);\n var minY = (_this.core.$outer.find('.lg').height() - $image.prop('offsetHeight')) / 2;\n var maxY = Math.abs(($image.prop('offsetHeight') * Math.abs($image.attr('data-scale'))) - _this.core.$outer.find('.lg').height() + minY);\n var minX = (_this.core.$outer.find('.lg').width() - $image.prop('offsetWidth')) / 2;\n var maxX = Math.abs(($image.prop('offsetWidth') * Math.abs($image.attr('data-scale'))) - _this.core.$outer.find('.lg').width() + minX);\n\n if ((Math.abs(endCoords.x - startCoords.x) > 15) || (Math.abs(endCoords.y - startCoords.y) > 15)) {\n if (allowY) {\n if (distanceY <= -maxY) {\n distanceY = -maxY;\n } else if (distanceY >= -minY) {\n distanceY = -minY;\n }\n }\n\n if (allowX) {\n if (distanceX <= -maxX) {\n distanceX = -maxX;\n } else if (distanceX >= -minX) {\n distanceX = -minX;\n }\n }\n\n if (allowY) {\n _$el.attr('data-y', Math.abs(distanceY));\n } else {\n distanceY = -Math.abs(_$el.attr('data-y'));\n }\n\n if (allowX) {\n _$el.attr('data-x', Math.abs(distanceX));\n } else {\n distanceX = -Math.abs(_$el.attr('data-x'));\n }\n\n if (_this.core.s.useLeftForZoom) {\n _$el.css({\n left: distanceX + 'px',\n top: distanceY + 'px'\n });\n } else {\n _$el.css('transform', 'translate3d(' + distanceX + 'px, ' + distanceY + 'px, 0)');\n }\n\n }\n };\n\n Zoom.prototype.destroy = function() {\n\n var _this = this;\n\n // Unbind all events added by lightGallery zoom plugin\n _this.core.$el.off('.lg.zoom');\n $(window).off('.lg.zoom');\n _this.core.$slide.off('.lg.zoom');\n _this.core.$el.off('.lg.tm.zoom');\n _this.resetZoom();\n clearTimeout(_this.zoomabletimeout);\n _this.zoomabletimeout = false;\n };\n\n $.fn.lightGallery.modules.zoom = Zoom;\n\n})();\n\n\n}));\n\n/*! lg-hash - v1.0.4 - 2017-12-20\n* http://sachinchoolur.github.io/lightGallery\n* Copyright (c) 2017 Sachin N; Licensed GPLv3 */\n\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module unless amdModuleId is set\n define(['jquery'], function (a0) {\n return (factory(a0));\n });\n } else if (typeof exports === 'object') {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory(require('jquery'));\n } else {\n factory(jQuery);\n }\n}(this, function ($) {\n\n(function() {\n\n 'use strict';\n\n var defaults = {\n hash: true\n };\n\n var Hash = function(element) {\n\n this.core = $(element).data('lightGallery');\n\n this.core.s = $.extend({}, defaults, this.core.s);\n\n if (this.core.s.hash) {\n this.oldHash = window.location.hash;\n this.init();\n }\n\n return this;\n };\n\n Hash.prototype.init = function() {\n var _this = this;\n var _hash;\n\n // Change hash value on after each slide transition\n _this.core.$el.on('onAfterSlide.lg.tm', function(event, prevIndex, index) {\n if (history.replaceState) {\n history.replaceState(null, null, window.location.pathname + window.location.search + '#lg=' + _this.core.s.galleryId + '&slide=' + index);\n } else {\n window.location.hash = 'lg=' + _this.core.s.galleryId + '&slide=' + index;\n }\n });\n\n // Listen hash change and change the slide according to slide value\n $(window).on('hashchange.lg.hash', function() {\n _hash = window.location.hash;\n var _idx = parseInt(_hash.split('&slide=')[1], 10);\n\n // it galleryId doesn't exist in the url close the gallery\n if ((_hash.indexOf('lg=' + _this.core.s.galleryId) > -1)) {\n _this.core.slide(_idx, false, false);\n } else if (_this.core.lGalleryOn) {\n _this.core.destroy();\n }\n\n });\n };\n\n Hash.prototype.destroy = function() {\n\n if (!this.core.s.hash) {\n return;\n }\n\n // Reset to old hash value\n if (this.oldHash && this.oldHash.indexOf('lg=' + this.core.s.galleryId) < 0) {\n if (history.replaceState) {\n history.replaceState(null, null, this.oldHash);\n } else {\n window.location.hash = this.oldHash;\n }\n } else {\n if (history.replaceState) {\n history.replaceState(null, document.title, window.location.pathname + window.location.search);\n } else {\n window.location.hash = '';\n }\n }\n\n this.core.$el.off('.lg.hash');\n\n };\n\n $.fn.lightGallery.modules.hash = Hash;\n\n})();\n\n\n}));\n\n/*! lg-share - v1.1.0 - 2017-10-03\n* http://sachinchoolur.github.io/lightGallery\n* Copyright (c) 2017 Sachin N; Licensed GPLv3 */\n\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module unless amdModuleId is set\n define(['jquery'], function (a0) {\n return (factory(a0));\n });\n } else if (typeof exports === 'object') {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory(require('jquery'));\n } else {\n factory(jQuery);\n }\n}(this, function ($) {\n\n(function() {\n\n 'use strict';\n\n var defaults = {\n share: true,\n facebook: true,\n facebookDropdownText: 'Facebook',\n twitter: true,\n twitterDropdownText: 'Twitter',\n googlePlus: true,\n googlePlusDropdownText: 'GooglePlus',\n pinterest: true,\n pinterestDropdownText: 'Pinterest'\n };\n\n var Share = function(element) {\n\n this.core = $(element).data('lightGallery');\n\n this.core.s = $.extend({}, defaults, this.core.s);\n if (this.core.s.share) {\n this.init();\n }\n\n return this;\n };\n\n Share.prototype.init = function() {\n var _this = this;\n var shareHtml = '' +\n '';\n\n this.core.$outer.find('.lg-toolbar').append(shareHtml);\n this.core.$outer.find('.lg').append('
    ');\n $('#lg-share').on('click.lg', function(){\n _this.core.$outer.toggleClass('lg-dropdown-active');\n });\n\n $('#lg-dropdown-overlay').on('click.lg', function(){\n _this.core.$outer.removeClass('lg-dropdown-active');\n });\n\n _this.core.$el.on('onAfterSlide.lg.tm', function(event, prevIndex, index) {\n\n setTimeout(function() {\n\n $('#lg-share-facebook').attr('href', 'https://www.facebook.com/sharer/sharer.php?u=' + (encodeURIComponent(_this.getSahreProps(index, 'facebookShareUrl') || window.location.href)));\n\n $('#lg-share-twitter').attr('href', 'https://twitter.com/intent/tweet?text=' + _this.getSahreProps(index, 'tweetText') + '&url=' + (encodeURIComponent(_this.getSahreProps(index, 'twitterShareUrl') || window.location.href)));\n\n $('#lg-share-googleplus').attr('href', 'https://plus.google.com/share?url=' + (encodeURIComponent(_this.getSahreProps(index, 'googleplusShareUrl') || window.location.href)));\n\n $('#lg-share-pinterest').attr('href', 'http://www.pinterest.com/pin/create/button/?url=' + (encodeURIComponent(_this.getSahreProps(index, 'pinterestShareUrl') || window.location.href)) + '&media=' + encodeURIComponent(_this.getSahreProps(index, 'src')) + '&description=' + _this.getSahreProps(index, 'pinterestText'));\n\n }, 100);\n });\n };\n\n Share.prototype.getSahreProps = function(index, prop){\n var shareProp = '';\n if(this.core.s.dynamic) {\n shareProp = this.core.s.dynamicEl[index][prop];\n } else {\n var _href = this.core.$items.eq(index).attr('href');\n var _prop = this.core.$items.eq(index).data(prop);\n shareProp = prop === 'src' ? _href || _prop : _prop;\n }\n return shareProp;\n };\n\n Share.prototype.destroy = function() {\n\n };\n\n $.fn.lightGallery.modules.share = Share;\n\n})();\n\n\n\n}));\n","/**\n * Owl Carousel v2.2.1\n * Copyright 2013-2017 David Deutsch\n * Licensed under ()\n */\n!function(a,b,c,d){function e(b,c){this.settings=null,this.options=a.extend({},e.Defaults,c),this.$element=a(b),this._handlers={},this._plugins={},this._supress={},this._current=null,this._speed=null,this._coordinates=[],this._breakpoint=null,this._width=null,this._items=[],this._clones=[],this._mergers=[],this._widths=[],this._invalidated={},this._pipe=[],this._drag={time:null,target:null,pointer:null,stage:{start:null,current:null},direction:null},this._states={current:{},tags:{initializing:[\"busy\"],animating:[\"busy\"],dragging:[\"interacting\"]}},a.each([\"onResize\",\"onThrottledResize\"],a.proxy(function(b,c){this._handlers[c]=a.proxy(this[c],this)},this)),a.each(e.Plugins,a.proxy(function(a,b){this._plugins[a.charAt(0).toLowerCase()+a.slice(1)]=new b(this)},this)),a.each(e.Workers,a.proxy(function(b,c){this._pipe.push({filter:c.filter,run:a.proxy(c.run,this)})},this)),this.setup(),this.initialize()}e.Defaults={items:3,loop:!1,center:!1,rewind:!1,mouseDrag:!0,touchDrag:!0,pullDrag:!0,freeDrag:!1,margin:0,stagePadding:0,merge:!1,mergeFit:!0,autoWidth:!1,startPosition:0,rtl:!1,smartSpeed:250,fluidSpeed:!1,dragEndSpeed:!1,responsive:{},responsiveRefreshRate:200,responsiveBaseElement:b,fallbackEasing:\"swing\",info:!1,nestedItemSelector:!1,itemElement:\"div\",stageElement:\"div\",refreshClass:\"owl-refresh\",loadedClass:\"owl-loaded\",loadingClass:\"owl-loading\",rtlClass:\"owl-rtl\",responsiveClass:\"owl-responsive\",dragClass:\"owl-drag\",itemClass:\"owl-item\",stageClass:\"owl-stage\",stageOuterClass:\"owl-stage-outer\",grabClass:\"owl-grab\"},e.Width={Default:\"default\",Inner:\"inner\",Outer:\"outer\"},e.Type={Event:\"event\",State:\"state\"},e.Plugins={},e.Workers=[{filter:[\"width\",\"settings\"],run:function(){this._width=this.$element.width()}},{filter:[\"width\",\"items\",\"settings\"],run:function(a){a.current=this._items&&this._items[this.relative(this._current)]}},{filter:[\"items\",\"settings\"],run:function(){this.$stage.children(\".cloned\").remove()}},{filter:[\"width\",\"items\",\"settings\"],run:function(a){var b=this.settings.margin||\"\",c=!this.settings.autoWidth,d=this.settings.rtl,e={width:\"auto\",\"margin-left\":d?b:\"\",\"margin-right\":d?\"\":b};!c&&this.$stage.children().css(e),a.css=e}},{filter:[\"width\",\"items\",\"settings\"],run:function(a){var b=(this.width()/this.settings.items).toFixed(3)-this.settings.margin,c=null,d=this._items.length,e=!this.settings.autoWidth,f=[];for(a.items={merge:!1,width:b};d--;)c=this._mergers[d],c=this.settings.mergeFit&&Math.min(c,this.settings.items)||c,a.items.merge=c>1||a.items.merge,f[d]=e?b*c:this._items[d].width();this._widths=f}},{filter:[\"items\",\"settings\"],run:function(){var b=[],c=this._items,d=this.settings,e=Math.max(2*d.items,4),f=2*Math.ceil(c.length/2),g=d.loop&&c.length?d.rewind?e:Math.max(e,f):0,h=\"\",i=\"\";for(g/=2;g--;)b.push(this.normalize(b.length/2,!0)),h+=c[b[b.length-1]][0].outerHTML,b.push(this.normalize(c.length-1-(b.length-1)/2,!0)),i=c[b[b.length-1]][0].outerHTML+i;this._clones=b,a(h).addClass(\"cloned\").appendTo(this.$stage),a(i).addClass(\"cloned\").prependTo(this.$stage)}},{filter:[\"width\",\"items\",\"settings\"],run:function(){for(var a=this.settings.rtl?1:-1,b=this._clones.length+this._items.length,c=-1,d=0,e=0,f=[];++c\",h)||this.op(b,\"<\",g)&&this.op(b,\">\",h))&&i.push(c);this.$stage.children(\".active\").removeClass(\"active\"),this.$stage.children(\":eq(\"+i.join(\"), :eq(\")+\")\").addClass(\"active\"),this.settings.center&&(this.$stage.children(\".center\").removeClass(\"center\"),this.$stage.children().eq(this.current()).addClass(\"center\"))}}],e.prototype.initialize=function(){if(this.enter(\"initializing\"),this.trigger(\"initialize\"),this.$element.toggleClass(this.settings.rtlClass,this.settings.rtl),this.settings.autoWidth&&!this.is(\"pre-loading\")){var b,c,e;b=this.$element.find(\"img\"),c=this.settings.nestedItemSelector?\".\"+this.settings.nestedItemSelector:d,e=this.$element.children(c).width(),b.length&&e<=0&&this.preloadAutoWidthImages(b)}this.$element.addClass(this.options.loadingClass),this.$stage=a(\"<\"+this.settings.stageElement+' class=\"'+this.settings.stageClass+'\"/>').wrap('
    '),this.$element.append(this.$stage.parent()),this.replace(this.$element.children().not(this.$stage.parent())),this.$element.is(\":visible\")?this.refresh():this.invalidate(\"width\"),this.$element.removeClass(this.options.loadingClass).addClass(this.options.loadedClass),this.registerEventHandlers(),this.leave(\"initializing\"),this.trigger(\"initialized\")},e.prototype.setup=function(){var b=this.viewport(),c=this.options.responsive,d=-1,e=null;c?(a.each(c,function(a){a<=b&&a>d&&(d=Number(a))}),e=a.extend({},this.options,c[d]),\"function\"==typeof e.stagePadding&&(e.stagePadding=e.stagePadding()),delete e.responsive,e.responsiveClass&&this.$element.attr(\"class\",this.$element.attr(\"class\").replace(new RegExp(\"(\"+this.options.responsiveClass+\"-)\\\\S+\\\\s\",\"g\"),\"$1\"+d))):e=a.extend({},this.options),this.trigger(\"change\",{property:{name:\"settings\",value:e}}),this._breakpoint=d,this.settings=e,this.invalidate(\"settings\"),this.trigger(\"changed\",{property:{name:\"settings\",value:this.settings}})},e.prototype.optionsLogic=function(){this.settings.autoWidth&&(this.settings.stagePadding=!1,this.settings.merge=!1)},e.prototype.prepare=function(b){var c=this.trigger(\"prepare\",{content:b});return c.data||(c.data=a(\"<\"+this.settings.itemElement+\"/>\").addClass(this.options.itemClass).append(b)),this.trigger(\"prepared\",{content:c.data}),c.data},e.prototype.update=function(){for(var b=0,c=this._pipe.length,d=a.proxy(function(a){return this[a]},this._invalidated),e={};b0)&&this._pipe[b].run(e),b++;this._invalidated={},!this.is(\"valid\")&&this.enter(\"valid\")},e.prototype.width=function(a){switch(a=a||e.Width.Default){case e.Width.Inner:case e.Width.Outer:return this._width;default:return this._width-2*this.settings.stagePadding+this.settings.margin}},e.prototype.refresh=function(){this.enter(\"refreshing\"),this.trigger(\"refresh\"),this.setup(),this.optionsLogic(),this.$element.addClass(this.options.refreshClass),this.update(),this.$element.removeClass(this.options.refreshClass),this.leave(\"refreshing\"),this.trigger(\"refreshed\")},e.prototype.onThrottledResize=function(){b.clearTimeout(this.resizeTimer),this.resizeTimer=b.setTimeout(this._handlers.onResize,this.settings.responsiveRefreshRate)},e.prototype.onResize=function(){return!!this._items.length&&(this._width!==this.$element.width()&&(!!this.$element.is(\":visible\")&&(this.enter(\"resizing\"),this.trigger(\"resize\").isDefaultPrevented()?(this.leave(\"resizing\"),!1):(this.invalidate(\"width\"),this.refresh(),this.leave(\"resizing\"),void this.trigger(\"resized\")))))},e.prototype.registerEventHandlers=function(){a.support.transition&&this.$stage.on(a.support.transition.end+\".owl.core\",a.proxy(this.onTransitionEnd,this)),this.settings.responsive!==!1&&this.on(b,\"resize\",this._handlers.onThrottledResize),this.settings.mouseDrag&&(this.$element.addClass(this.options.dragClass),this.$stage.on(\"mousedown.owl.core\",a.proxy(this.onDragStart,this)),this.$stage.on(\"dragstart.owl.core selectstart.owl.core\",function(){return!1})),this.settings.touchDrag&&(this.$stage.on(\"touchstart.owl.core\",a.proxy(this.onDragStart,this)),this.$stage.on(\"touchcancel.owl.core\",a.proxy(this.onDragEnd,this)))},e.prototype.onDragStart=function(b){var d=null;3!==b.which&&(a.support.transform?(d=this.$stage.css(\"transform\").replace(/.*\\(|\\)| /g,\"\").split(\",\"),d={x:d[16===d.length?12:4],y:d[16===d.length?13:5]}):(d=this.$stage.position(),d={x:this.settings.rtl?d.left+this.$stage.width()-this.width()+this.settings.margin:d.left,y:d.top}),this.is(\"animating\")&&(a.support.transform?this.animate(d.x):this.$stage.stop(),this.invalidate(\"position\")),this.$element.toggleClass(this.options.grabClass,\"mousedown\"===b.type),this.speed(0),this._drag.time=(new Date).getTime(),this._drag.target=a(b.target),this._drag.stage.start=d,this._drag.stage.current=d,this._drag.pointer=this.pointer(b),a(c).on(\"mouseup.owl.core touchend.owl.core\",a.proxy(this.onDragEnd,this)),a(c).one(\"mousemove.owl.core touchmove.owl.core\",a.proxy(function(b){var d=this.difference(this._drag.pointer,this.pointer(b));a(c).on(\"mousemove.owl.core touchmove.owl.core\",a.proxy(this.onDragMove,this)),Math.abs(d.x)0^this.settings.rtl?\"left\":\"right\";a(c).off(\".owl.core\"),this.$element.removeClass(this.options.grabClass),(0!==d.x&&this.is(\"dragging\")||!this.is(\"valid\"))&&(this.speed(this.settings.dragEndSpeed||this.settings.smartSpeed),this.current(this.closest(e.x,0!==d.x?f:this._drag.direction)),this.invalidate(\"position\"),this.update(),this._drag.direction=f,(Math.abs(d.x)>3||(new Date).getTime()-this._drag.time>300)&&this._drag.target.one(\"click.owl.core\",function(){return!1})),this.is(\"dragging\")&&(this.leave(\"dragging\"),this.trigger(\"dragged\"))},e.prototype.closest=function(b,c){var d=-1,e=30,f=this.width(),g=this.coordinates();return this.settings.freeDrag||a.each(g,a.proxy(function(a,h){return\"left\"===c&&b>h-e&&bh-f-e&&b\",g[a+1]||h-f)&&(d=\"left\"===c?a+1:a),d===-1},this)),this.settings.loop||(this.op(b,\">\",g[this.minimum()])?d=b=this.minimum():this.op(b,\"<\",g[this.maximum()])&&(d=b=this.maximum())),d},e.prototype.animate=function(b){var c=this.speed()>0;this.is(\"animating\")&&this.onTransitionEnd(),c&&(this.enter(\"animating\"),this.trigger(\"translate\")),a.support.transform3d&&a.support.transition?this.$stage.css({transform:\"translate3d(\"+b+\"px,0px,0px)\",transition:this.speed()/1e3+\"s\"}):c?this.$stage.animate({left:b+\"px\"},this.speed(),this.settings.fallbackEasing,a.proxy(this.onTransitionEnd,this)):this.$stage.css({left:b+\"px\"})},e.prototype.is=function(a){return this._states.current[a]&&this._states.current[a]>0},e.prototype.current=function(a){if(a===d)return this._current;if(0===this._items.length)return d;if(a=this.normalize(a),this._current!==a){var b=this.trigger(\"change\",{property:{name:\"position\",value:a}});b.data!==d&&(a=this.normalize(b.data)),this._current=a,this.invalidate(\"position\"),this.trigger(\"changed\",{property:{name:\"position\",value:this._current}})}return this._current},e.prototype.invalidate=function(b){return\"string\"===a.type(b)&&(this._invalidated[b]=!0,this.is(\"valid\")&&this.leave(\"valid\")),a.map(this._invalidated,function(a,b){return b})},e.prototype.reset=function(a){a=this.normalize(a),a!==d&&(this._speed=0,this._current=a,this.suppress([\"translate\",\"translated\"]),this.animate(this.coordinates(a)),this.release([\"translate\",\"translated\"]))},e.prototype.normalize=function(a,b){var c=this._items.length,e=b?0:this._clones.length;return!this.isNumeric(a)||c<1?a=d:(a<0||a>=c+e)&&(a=((a-e/2)%c+c)%c+e/2),a},e.prototype.relative=function(a){return a-=this._clones.length/2,this.normalize(a,!0)},e.prototype.maximum=function(a){var b,c,d,e=this.settings,f=this._coordinates.length;if(e.loop)f=this._clones.length/2+this._items.length-1;else if(e.autoWidth||e.merge){for(b=this._items.length,c=this._items[--b].width(),d=this.$element.width();b--&&(c+=this._items[b].width()+this.settings.margin,!(c>d)););f=b+1}else f=e.center?this._items.length-1:this._items.length-e.items;return a&&(f-=this._clones.length/2),Math.max(f,0)},e.prototype.minimum=function(a){return a?0:this._clones.length/2},e.prototype.items=function(a){return a===d?this._items.slice():(a=this.normalize(a,!0),this._items[a])},e.prototype.mergers=function(a){return a===d?this._mergers.slice():(a=this.normalize(a,!0),this._mergers[a])},e.prototype.clones=function(b){var c=this._clones.length/2,e=c+this._items.length,f=function(a){return a%2===0?e+a/2:c-(a+1)/2};return b===d?a.map(this._clones,function(a,b){return f(b)}):a.map(this._clones,function(a,c){return a===b?f(c):null})},e.prototype.speed=function(a){return a!==d&&(this._speed=a),this._speed},e.prototype.coordinates=function(b){var c,e=1,f=b-1;return b===d?a.map(this._coordinates,a.proxy(function(a,b){return this.coordinates(b)},this)):(this.settings.center?(this.settings.rtl&&(e=-1,f=b+1),c=this._coordinates[b],c+=(this.width()-c+(this._coordinates[f]||0))/2*e):c=this._coordinates[f]||0,c=Math.ceil(c))},e.prototype.duration=function(a,b,c){return 0===c?0:Math.min(Math.max(Math.abs(b-a),1),6)*Math.abs(c||this.settings.smartSpeed)},e.prototype.to=function(a,b){var c=this.current(),d=null,e=a-this.relative(c),f=(e>0)-(e<0),g=this._items.length,h=this.minimum(),i=this.maximum();this.settings.loop?(!this.settings.rewind&&Math.abs(e)>g/2&&(e+=f*-1*g),a=c+e,d=((a-h)%g+g)%g+h,d!==a&&d-e<=i&&d-e>0&&(c=d-e,a=d,this.reset(c))):this.settings.rewind?(i+=1,a=(a%i+i)%i):a=Math.max(h,Math.min(i,a)),this.speed(this.duration(c,a,b)),this.current(a),this.$element.is(\":visible\")&&this.update()},e.prototype.next=function(a){a=a||!1,this.to(this.relative(this.current())+1,a)},e.prototype.prev=function(a){a=a||!1,this.to(this.relative(this.current())-1,a)},e.prototype.onTransitionEnd=function(a){if(a!==d&&(a.stopPropagation(),(a.target||a.srcElement||a.originalTarget)!==this.$stage.get(0)))return!1;this.leave(\"animating\"),this.trigger(\"translated\")},e.prototype.viewport=function(){var d;return this.options.responsiveBaseElement!==b?d=a(this.options.responsiveBaseElement).width():b.innerWidth?d=b.innerWidth:c.documentElement&&c.documentElement.clientWidth?d=c.documentElement.clientWidth:console.warn(\"Can not detect viewport width.\"),d},e.prototype.replace=function(b){this.$stage.empty(),this._items=[],b&&(b=b instanceof jQuery?b:a(b)),this.settings.nestedItemSelector&&(b=b.find(\".\"+this.settings.nestedItemSelector)),b.filter(function(){return 1===this.nodeType}).each(a.proxy(function(a,b){b=this.prepare(b),this.$stage.append(b),this._items.push(b),this._mergers.push(1*b.find(\"[data-merge]\").addBack(\"[data-merge]\").attr(\"data-merge\")||1)},this)),this.reset(this.isNumeric(this.settings.startPosition)?this.settings.startPosition:0),this.invalidate(\"items\")},e.prototype.add=function(b,c){var e=this.relative(this._current);c=c===d?this._items.length:this.normalize(c,!0),b=b instanceof jQuery?b:a(b),this.trigger(\"add\",{content:b,position:c}),b=this.prepare(b),0===this._items.length||c===this._items.length?(0===this._items.length&&this.$stage.append(b),0!==this._items.length&&this._items[c-1].after(b),this._items.push(b),this._mergers.push(1*b.find(\"[data-merge]\").addBack(\"[data-merge]\").attr(\"data-merge\")||1)):(this._items[c].before(b),this._items.splice(c,0,b),this._mergers.splice(c,0,1*b.find(\"[data-merge]\").addBack(\"[data-merge]\").attr(\"data-merge\")||1)),this._items[e]&&this.reset(this._items[e].index()),this.invalidate(\"items\"),this.trigger(\"added\",{content:b,position:c})},e.prototype.remove=function(a){a=this.normalize(a,!0),a!==d&&(this.trigger(\"remove\",{content:this._items[a],position:a}),this._items[a].remove(),this._items.splice(a,1),this._mergers.splice(a,1),this.invalidate(\"items\"),this.trigger(\"removed\",{content:null,position:a}))},e.prototype.preloadAutoWidthImages=function(b){b.each(a.proxy(function(b,c){this.enter(\"pre-loading\"),c=a(c),a(new Image).one(\"load\",a.proxy(function(a){c.attr(\"src\",a.target.src),c.css(\"opacity\",1),this.leave(\"pre-loading\"),!this.is(\"pre-loading\")&&!this.is(\"initializing\")&&this.refresh()},this)).attr(\"src\",c.attr(\"src\")||c.attr(\"data-src\")||c.attr(\"data-src-retina\"))},this))},e.prototype.destroy=function(){this.$element.off(\".owl.core\"),this.$stage.off(\".owl.core\"),a(c).off(\".owl.core\"),this.settings.responsive!==!1&&(b.clearTimeout(this.resizeTimer),this.off(b,\"resize\",this._handlers.onThrottledResize));for(var d in this._plugins)this._plugins[d].destroy();this.$stage.children(\".cloned\").remove(),this.$stage.unwrap(),this.$stage.children().contents().unwrap(),this.$stage.children().unwrap(),this.$element.removeClass(this.options.refreshClass).removeClass(this.options.loadingClass).removeClass(this.options.loadedClass).removeClass(this.options.rtlClass).removeClass(this.options.dragClass).removeClass(this.options.grabClass).attr(\"class\",this.$element.attr(\"class\").replace(new RegExp(this.options.responsiveClass+\"-\\\\S+\\\\s\",\"g\"),\"\")).removeData(\"owl.carousel\")},e.prototype.op=function(a,b,c){var d=this.settings.rtl;switch(b){case\"<\":return d?a>c:a\":return d?ac;case\">=\":return d?a<=c:a>=c;case\"<=\":return d?a>=c:a<=c}},e.prototype.on=function(a,b,c,d){a.addEventListener?a.addEventListener(b,c,d):a.attachEvent&&a.attachEvent(\"on\"+b,c)},e.prototype.off=function(a,b,c,d){a.removeEventListener?a.removeEventListener(b,c,d):a.detachEvent&&a.detachEvent(\"on\"+b,c)},e.prototype.trigger=function(b,c,d,f,g){var h={item:{count:this._items.length,index:this.current()}},i=a.camelCase(a.grep([\"on\",b,d],function(a){return a}).join(\"-\").toLowerCase()),j=a.Event([b,\"owl\",d||\"carousel\"].join(\".\").toLowerCase(),a.extend({relatedTarget:this},h,c));return this._supress[b]||(a.each(this._plugins,function(a,b){b.onTrigger&&b.onTrigger(j)}),this.register({type:e.Type.Event,name:b}),this.$element.trigger(j),this.settings&&\"function\"==typeof this.settings[i]&&this.settings[i].call(this,j)),j},e.prototype.enter=function(b){a.each([b].concat(this._states.tags[b]||[]),a.proxy(function(a,b){this._states.current[b]===d&&(this._states.current[b]=0),this._states.current[b]++},this))},e.prototype.leave=function(b){a.each([b].concat(this._states.tags[b]||[]),a.proxy(function(a,b){this._states.current[b]--},this))},e.prototype.register=function(b){if(b.type===e.Type.Event){if(a.event.special[b.name]||(a.event.special[b.name]={}),!a.event.special[b.name].owl){var c=a.event.special[b.name]._default;a.event.special[b.name]._default=function(a){return!c||!c.apply||a.namespace&&a.namespace.indexOf(\"owl\")!==-1?a.namespace&&a.namespace.indexOf(\"owl\")>-1:c.apply(this,arguments)},a.event.special[b.name].owl=!0}}else b.type===e.Type.State&&(this._states.tags[b.name]?this._states.tags[b.name]=this._states.tags[b.name].concat(b.tags):this._states.tags[b.name]=b.tags,this._states.tags[b.name]=a.grep(this._states.tags[b.name],a.proxy(function(c,d){return a.inArray(c,this._states.tags[b.name])===d},this)))},e.prototype.suppress=function(b){a.each(b,a.proxy(function(a,b){this._supress[b]=!0},this))},e.prototype.release=function(b){a.each(b,a.proxy(function(a,b){delete this._supress[b]},this))},e.prototype.pointer=function(a){var c={x:null,y:null};return a=a.originalEvent||a||b.event,a=a.touches&&a.touches.length?a.touches[0]:a.changedTouches&&a.changedTouches.length?a.changedTouches[0]:a,a.pageX?(c.x=a.pageX,c.y=a.pageY):(c.x=a.clientX,c.y=a.clientY),c},e.prototype.isNumeric=function(a){return!isNaN(parseFloat(a))},e.prototype.difference=function(a,b){return{x:a.x-b.x,y:a.y-b.y}},a.fn.owlCarousel=function(b){var c=Array.prototype.slice.call(arguments,1);return this.each(function(){var d=a(this),f=d.data(\"owl.carousel\");f||(f=new e(this,\"object\"==typeof b&&b),d.data(\"owl.carousel\",f),a.each([\"next\",\"prev\",\"to\",\"destroy\",\"refresh\",\"replace\",\"add\",\"remove\"],function(b,c){f.register({type:e.Type.Event,name:c}),f.$element.on(c+\".owl.carousel.core\",a.proxy(function(a){a.namespace&&a.relatedTarget!==this&&(this.suppress([c]),f[c].apply(this,[].slice.call(arguments,1)),this.release([c]))},f))})),\"string\"==typeof b&&\"_\"!==b.charAt(0)&&f[b].apply(f,c)})},a.fn.owlCarousel.Constructor=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._interval=null,this._visible=null,this._handlers={\"initialized.owl.carousel\":a.proxy(function(a){a.namespace&&this._core.settings.autoRefresh&&this.watch()},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers)};e.Defaults={autoRefresh:!0,autoRefreshInterval:500},e.prototype.watch=function(){this._interval||(this._visible=this._core.$element.is(\":visible\"),this._interval=b.setInterval(a.proxy(this.refresh,this),this._core.settings.autoRefreshInterval))},e.prototype.refresh=function(){this._core.$element.is(\":visible\")!==this._visible&&(this._visible=!this._visible,this._core.$element.toggleClass(\"owl-hidden\",!this._visible),this._visible&&this._core.invalidate(\"width\")&&this._core.refresh())},e.prototype.destroy=function(){var a,c;b.clearInterval(this._interval);for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(c in Object.getOwnPropertyNames(this))\"function\"!=typeof this[c]&&(this[c]=null)},a.fn.owlCarousel.Constructor.Plugins.AutoRefresh=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._loaded=[],this._handlers={\"initialized.owl.carousel change.owl.carousel resized.owl.carousel\":a.proxy(function(b){if(b.namespace&&this._core.settings&&this._core.settings.lazyLoad&&(b.property&&\"position\"==b.property.name||\"initialized\"==b.type))for(var c=this._core.settings,e=c.center&&Math.ceil(c.items/2)||c.items,f=c.center&&e*-1||0,g=(b.property&&b.property.value!==d?b.property.value:this._core.current())+f,h=this._core.clones().length,i=a.proxy(function(a,b){this.load(b)},this);f++-1||(e.each(a.proxy(function(c,d){var e,f=a(d),g=b.devicePixelRatio>1&&f.attr(\"data-src-retina\")||f.attr(\"data-src\");this._core.trigger(\"load\",{element:f,url:g},\"lazy\"),f.is(\"img\")?f.one(\"load.owl.lazy\",a.proxy(function(){f.css(\"opacity\",1),this._core.trigger(\"loaded\",{element:f,url:g},\"lazy\")},this)).attr(\"src\",g):(e=new Image,e.onload=a.proxy(function(){f.css({\"background-image\":'url(\"'+g+'\")',opacity:\"1\"}),this._core.trigger(\"loaded\",{element:f,url:g},\"lazy\")},this),e.src=g)},this)),this._loaded.push(d.get(0)))},e.prototype.destroy=function(){var a,b;for(a in this.handlers)this._core.$element.off(a,this.handlers[a]);for(b in Object.getOwnPropertyNames(this))\"function\"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Lazy=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._handlers={\"initialized.owl.carousel refreshed.owl.carousel\":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&this.update()},this),\"changed.owl.carousel\":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&\"position\"==a.property.name&&this.update()},this),\"loaded.owl.lazy\":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&a.element.closest(\".\"+this._core.settings.itemClass).index()===this._core.current()&&this.update()},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers)};e.Defaults={autoHeight:!1,autoHeightClass:\"owl-height\"},e.prototype.update=function(){var b=this._core._current,c=b+this._core.settings.items,d=this._core.$stage.children().toArray().slice(b,c),e=[],f=0;a.each(d,function(b,c){e.push(a(c).height())}),f=Math.max.apply(null,e),this._core.$stage.parent().height(f).addClass(this._core.settings.autoHeightClass)},e.prototype.destroy=function(){var a,b;for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))\"function\"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.AutoHeight=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._videos={},this._playing=null,this._handlers={\"initialized.owl.carousel\":a.proxy(function(a){a.namespace&&this._core.register({type:\"state\",name:\"playing\",tags:[\"interacting\"]})},this),\"resize.owl.carousel\":a.proxy(function(a){a.namespace&&this._core.settings.video&&this.isInFullScreen()&&a.preventDefault()},this),\"refreshed.owl.carousel\":a.proxy(function(a){a.namespace&&this._core.is(\"resizing\")&&this._core.$stage.find(\".cloned .owl-video-frame\").remove()},this),\"changed.owl.carousel\":a.proxy(function(a){a.namespace&&\"position\"===a.property.name&&this._playing&&this.stop()},this),\"prepared.owl.carousel\":a.proxy(function(b){if(b.namespace){var c=a(b.content).find(\".owl-video\");c.length&&(c.css(\"display\",\"none\"),this.fetch(c,a(b.content)))}},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers),this._core.$element.on(\"click.owl.video\",\".owl-video-play-icon\",a.proxy(function(a){this.play(a)},this))};e.Defaults={video:!1,videoHeight:!1,videoWidth:!1},e.prototype.fetch=function(a,b){var c=function(){return a.attr(\"data-vimeo-id\")?\"vimeo\":a.attr(\"data-vzaar-id\")?\"vzaar\":\"youtube\"}(),d=a.attr(\"data-vimeo-id\")||a.attr(\"data-youtube-id\")||a.attr(\"data-vzaar-id\"),e=a.attr(\"data-width\")||this._core.settings.videoWidth,f=a.attr(\"data-height\")||this._core.settings.videoHeight,g=a.attr(\"href\");if(!g)throw new Error(\"Missing video URL.\");if(d=g.match(/(http:|https:|)\\/\\/(player.|www.|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+)?/),d[3].indexOf(\"youtu\")>-1)c=\"youtube\";else if(d[3].indexOf(\"vimeo\")>-1)c=\"vimeo\";else{if(!(d[3].indexOf(\"vzaar\")>-1))throw new Error(\"Video URL not supported.\");c=\"vzaar\"}d=d[6],this._videos[g]={type:c,id:d,width:e,height:f},b.attr(\"data-video\",g),this.thumbnail(a,this._videos[g])},e.prototype.thumbnail=function(b,c){var d,e,f,g=c.width&&c.height?'style=\"width:'+c.width+\"px;height:\"+c.height+'px;\"':\"\",h=b.find(\"img\"),i=\"src\",j=\"\",k=this._core.settings,l=function(a){e='
    ',d=k.lazyLoad?'
    ':'
    ',b.after(d),b.after(e)};if(b.wrap('
    \"),this._core.settings.lazyLoad&&(i=\"data-src\",j=\"owl-lazy\"),h.length)return l(h.attr(i)),h.remove(),!1;\"youtube\"===c.type?(f=\"//img.youtube.com/vi/\"+c.id+\"/hqdefault.jpg\",l(f)):\"vimeo\"===c.type?a.ajax({type:\"GET\",url:\"//vimeo.com/api/v2/video/\"+c.id+\".json\",jsonp:\"callback\",dataType:\"jsonp\",success:function(a){f=a[0].thumbnail_large,l(f)}}):\"vzaar\"===c.type&&a.ajax({type:\"GET\",url:\"//vzaar.com/api/videos/\"+c.id+\".json\",jsonp:\"callback\",dataType:\"jsonp\",success:function(a){f=a.framegrab_url,l(f)}})},e.prototype.stop=function(){this._core.trigger(\"stop\",null,\"video\"),this._playing.find(\".owl-video-frame\").remove(),this._playing.removeClass(\"owl-video-playing\"),this._playing=null,this._core.leave(\"playing\"),this._core.trigger(\"stopped\",null,\"video\")},e.prototype.play=function(b){var c,d=a(b.target),e=d.closest(\".\"+this._core.settings.itemClass),f=this._videos[e.attr(\"data-video\")],g=f.width||\"100%\",h=f.height||this._core.$stage.height();this._playing||(this._core.enter(\"playing\"),this._core.trigger(\"play\",null,\"video\"),e=this._core.items(this._core.relative(e.index())),this._core.reset(e.index()),\"youtube\"===f.type?c='':\"vimeo\"===f.type?c='':\"vzaar\"===f.type&&(c=''),a('
    '+c+\"
    \").insertAfter(e.find(\".owl-video\")),this._playing=e.addClass(\"owl-video-playing\"))},e.prototype.isInFullScreen=function(){var b=c.fullscreenElement||c.mozFullScreenElement||c.webkitFullscreenElement;return b&&a(b).parent().hasClass(\"owl-video-frame\")},e.prototype.destroy=function(){var a,b;this._core.$element.off(\"click.owl.video\");for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))\"function\"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Video=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this.core=b,this.core.options=a.extend({},e.Defaults,this.core.options),this.swapping=!0,this.previous=d,this.next=d,this.handlers={\"change.owl.carousel\":a.proxy(function(a){a.namespace&&\"position\"==a.property.name&&(this.previous=this.core.current(),this.next=a.property.value)},this),\"drag.owl.carousel dragged.owl.carousel translated.owl.carousel\":a.proxy(function(a){a.namespace&&(this.swapping=\"translated\"==a.type)},this),\"translate.owl.carousel\":a.proxy(function(a){a.namespace&&this.swapping&&(this.core.options.animateOut||this.core.options.animateIn)&&this.swap()},this)},this.core.$element.on(this.handlers)};e.Defaults={animateOut:!1,animateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&a.support.animation&&a.support.transition){this.core.speed(0);var b,c=a.proxy(this.clear,this),d=this.core.$stage.children().eq(this.previous),e=this.core.$stage.children().eq(this.next),f=this.core.settings.animateIn,g=this.core.settings.animateOut;this.core.current()!==this.previous&&(g&&(b=this.core.coordinates(this.previous)-this.core.coordinates(this.next),d.one(a.support.animation.end,c).css({left:b+\"px\"}).addClass(\"animated owl-animated-out\").addClass(g)),f&&e.one(a.support.animation.end,c).addClass(\"animated owl-animated-in\").addClass(f))}},e.prototype.clear=function(b){a(b.target).css({left:\"\"}).removeClass(\"animated owl-animated-out owl-animated-in\").removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut),this.core.onTransitionEnd()},e.prototype.destroy=function(){var a,b;for(a in this.handlers)this.core.$element.off(a,this.handlers[a]);for(b in Object.getOwnPropertyNames(this))\"function\"!=typeof this[b]&&(this[b]=null)},\na.fn.owlCarousel.Constructor.Plugins.Animate=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._timeout=null,this._paused=!1,this._handlers={\"changed.owl.carousel\":a.proxy(function(a){a.namespace&&\"settings\"===a.property.name?this._core.settings.autoplay?this.play():this.stop():a.namespace&&\"position\"===a.property.name&&this._core.settings.autoplay&&this._setAutoPlayInterval()},this),\"initialized.owl.carousel\":a.proxy(function(a){a.namespace&&this._core.settings.autoplay&&this.play()},this),\"play.owl.autoplay\":a.proxy(function(a,b,c){a.namespace&&this.play(b,c)},this),\"stop.owl.autoplay\":a.proxy(function(a){a.namespace&&this.stop()},this),\"mouseover.owl.autoplay\":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is(\"rotating\")&&this.pause()},this),\"mouseleave.owl.autoplay\":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is(\"rotating\")&&this.play()},this),\"touchstart.owl.core\":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is(\"rotating\")&&this.pause()},this),\"touchend.owl.core\":a.proxy(function(){this._core.settings.autoplayHoverPause&&this.play()},this)},this._core.$element.on(this._handlers),this._core.options=a.extend({},e.Defaults,this._core.options)};e.Defaults={autoplay:!1,autoplayTimeout:5e3,autoplayHoverPause:!1,autoplaySpeed:!1},e.prototype.play=function(a,b){this._paused=!1,this._core.is(\"rotating\")||(this._core.enter(\"rotating\"),this._setAutoPlayInterval())},e.prototype._getNextTimeout=function(d,e){return this._timeout&&b.clearTimeout(this._timeout),b.setTimeout(a.proxy(function(){this._paused||this._core.is(\"busy\")||this._core.is(\"interacting\")||c.hidden||this._core.next(e||this._core.settings.autoplaySpeed)},this),d||this._core.settings.autoplayTimeout)},e.prototype._setAutoPlayInterval=function(){this._timeout=this._getNextTimeout()},e.prototype.stop=function(){this._core.is(\"rotating\")&&(b.clearTimeout(this._timeout),this._core.leave(\"rotating\"))},e.prototype.pause=function(){this._core.is(\"rotating\")&&(this._paused=!0)},e.prototype.destroy=function(){var a,b;this.stop();for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))\"function\"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.autoplay=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){\"use strict\";var e=function(b){this._core=b,this._initialized=!1,this._pages=[],this._controls={},this._templates=[],this.$element=this._core.$element,this._overrides={next:this._core.next,prev:this._core.prev,to:this._core.to},this._handlers={\"prepared.owl.carousel\":a.proxy(function(b){b.namespace&&this._core.settings.dotsData&&this._templates.push('
    '+a(b.content).find(\"[data-dot]\").addBack(\"[data-dot]\").attr(\"data-dot\")+\"
    \")},this),\"added.owl.carousel\":a.proxy(function(a){a.namespace&&this._core.settings.dotsData&&this._templates.splice(a.position,0,this._templates.pop())},this),\"remove.owl.carousel\":a.proxy(function(a){a.namespace&&this._core.settings.dotsData&&this._templates.splice(a.position,1)},this),\"changed.owl.carousel\":a.proxy(function(a){a.namespace&&\"position\"==a.property.name&&this.draw()},this),\"initialized.owl.carousel\":a.proxy(function(a){a.namespace&&!this._initialized&&(this._core.trigger(\"initialize\",null,\"navigation\"),this.initialize(),this.update(),this.draw(),this._initialized=!0,this._core.trigger(\"initialized\",null,\"navigation\"))},this),\"refreshed.owl.carousel\":a.proxy(function(a){a.namespace&&this._initialized&&(this._core.trigger(\"refresh\",null,\"navigation\"),this.update(),this.draw(),this._core.trigger(\"refreshed\",null,\"navigation\"))},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this.$element.on(this._handlers)};e.Defaults={nav:!1,navText:[\"prev\",\"next\"],navSpeed:!1,navElement:\"div\",navContainer:!1,navContainerClass:\"owl-nav\",navClass:[\"owl-prev\",\"owl-next\"],slideBy:1,dotClass:\"owl-dot\",dotsClass:\"owl-dots\",dots:!0,dotsEach:!1,dotsData:!1,dotsSpeed:!1,dotsContainer:!1},e.prototype.initialize=function(){var b,c=this._core.settings;this._controls.$relative=(c.navContainer?a(c.navContainer):a(\"
    \").addClass(c.navContainerClass).appendTo(this.$element)).addClass(\"disabled\"),this._controls.$previous=a(\"<\"+c.navElement+\">\").addClass(c.navClass[0]).html(c.navText[0]).prependTo(this._controls.$relative).on(\"click\",a.proxy(function(a){this.prev(c.navSpeed)},this)),this._controls.$next=a(\"<\"+c.navElement+\">\").addClass(c.navClass[1]).html(c.navText[1]).appendTo(this._controls.$relative).on(\"click\",a.proxy(function(a){this.next(c.navSpeed)},this)),c.dotsData||(this._templates=[a(\"
    \").addClass(c.dotClass).append(a(\"\")).prop(\"outerHTML\")]),this._controls.$absolute=(c.dotsContainer?a(c.dotsContainer):a(\"
    \").addClass(c.dotsClass).appendTo(this.$element)).addClass(\"disabled\"),this._controls.$absolute.on(\"click\",\"div\",a.proxy(function(b){var d=a(b.target).parent().is(this._controls.$absolute)?a(b.target).index():a(b.target).parent().index();b.preventDefault(),this.to(d,c.dotsSpeed)},this));for(b in this._overrides)this._core[b]=a.proxy(this[b],this)},e.prototype.destroy=function(){var a,b,c,d;for(a in this._handlers)this.$element.off(a,this._handlers[a]);for(b in this._controls)this._controls[b].remove();for(d in this.overides)this._core[d]=this._overrides[d];for(c in Object.getOwnPropertyNames(this))\"function\"!=typeof this[c]&&(this[c]=null)},e.prototype.update=function(){var a,b,c,d=this._core.clones().length/2,e=d+this._core.items().length,f=this._core.maximum(!0),g=this._core.settings,h=g.center||g.autoWidth||g.dotsData?1:g.dotsEach||g.items;if(\"page\"!==g.slideBy&&(g.slideBy=Math.min(g.slideBy,g.items)),g.dots||\"page\"==g.slideBy)for(this._pages=[],a=d,b=0,c=0;a=h||0===b){if(this._pages.push({start:Math.min(f,a-d),end:a-d+h-1}),Math.min(f,a-d)===f)break;b=0,++c}b+=this._core.mergers(this._core.relative(a))}},e.prototype.draw=function(){var b,c=this._core.settings,d=this._core.items().length<=c.items,e=this._core.relative(this._core.current()),f=c.loop||c.rewind;this._controls.$relative.toggleClass(\"disabled\",!c.nav||d),c.nav&&(this._controls.$previous.toggleClass(\"disabled\",!f&&e<=this._core.minimum(!0)),this._controls.$next.toggleClass(\"disabled\",!f&&e>=this._core.maximum(!0))),this._controls.$absolute.toggleClass(\"disabled\",!c.dots||d),c.dots&&(b=this._pages.length-this._controls.$absolute.children().length,c.dotsData&&0!==b?this._controls.$absolute.html(this._templates.join(\"\")):b>0?this._controls.$absolute.append(new Array(b+1).join(this._templates[0])):b<0&&this._controls.$absolute.children().slice(b).remove(),this._controls.$absolute.find(\".active\").removeClass(\"active\"),this._controls.$absolute.children().eq(a.inArray(this.current(),this._pages)).addClass(\"active\"))},e.prototype.onTrigger=function(b){var c=this._core.settings;b.page={index:a.inArray(this.current(),this._pages),count:this._pages.length,size:c&&(c.center||c.autoWidth||c.dotsData?1:c.dotsEach||c.items)}},e.prototype.current=function(){var b=this._core.relative(this._core.current());return a.grep(this._pages,a.proxy(function(a,c){return a.start<=b&&a.end>=b},this)).pop()},e.prototype.getPosition=function(b){var c,d,e=this._core.settings;return\"page\"==e.slideBy?(c=a.inArray(this.current(),this._pages),d=this._pages.length,b?++c:--c,c=this._pages[(c%d+d)%d].start):(c=this._core.relative(this._core.current()),d=this._core.items().length,b?c+=e.slideBy:c-=e.slideBy),c},e.prototype.next=function(b){a.proxy(this._overrides.to,this._core)(this.getPosition(!0),b)},e.prototype.prev=function(b){a.proxy(this._overrides.to,this._core)(this.getPosition(!1),b)},e.prototype.to=function(b,c,d){var e;!d&&this._pages.length?(e=this._pages.length,a.proxy(this._overrides.to,this._core)(this._pages[(b%e+e)%e].start,c)):a.proxy(this._overrides.to,this._core)(b,c)},a.fn.owlCarousel.Constructor.Plugins.Navigation=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){\"use strict\";var e=function(c){this._core=c,this._hashes={},this.$element=this._core.$element,this._handlers={\"initialized.owl.carousel\":a.proxy(function(c){c.namespace&&\"URLHash\"===this._core.settings.startPosition&&a(b).trigger(\"hashchange.owl.navigation\")},this),\"prepared.owl.carousel\":a.proxy(function(b){if(b.namespace){var c=a(b.content).find(\"[data-hash]\").addBack(\"[data-hash]\").attr(\"data-hash\");if(!c)return;this._hashes[c]=b.content}},this),\"changed.owl.carousel\":a.proxy(function(c){if(c.namespace&&\"position\"===c.property.name){var d=this._core.items(this._core.relative(this._core.current())),e=a.map(this._hashes,function(a,b){return a===d?b:null}).join();if(!e||b.location.hash.slice(1)===e)return;b.location.hash=e}},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this.$element.on(this._handlers),a(b).on(\"hashchange.owl.navigation\",a.proxy(function(a){var c=b.location.hash.substring(1),e=this._core.$stage.children(),f=this._hashes[c]&&e.index(this._hashes[c]);f!==d&&f!==this._core.current()&&this._core.to(this._core.relative(f),!1,!0)},this))};e.Defaults={URLhashListener:!1},e.prototype.destroy=function(){var c,d;a(b).off(\"hashchange.owl.navigation\");for(c in this._handlers)this._core.$element.off(c,this._handlers[c]);for(d in Object.getOwnPropertyNames(this))\"function\"!=typeof this[d]&&(this[d]=null)},a.fn.owlCarousel.Constructor.Plugins.Hash=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){function e(b,c){var e=!1,f=b.charAt(0).toUpperCase()+b.slice(1);return a.each((b+\" \"+h.join(f+\" \")+f).split(\" \"),function(a,b){if(g[b]!==d)return e=!c||b,!1}),e}function f(a){return e(a,!0)}var g=a(\"\").get(0).style,h=\"Webkit Moz O ms\".split(\" \"),i={transition:{end:{WebkitTransition:\"webkitTransitionEnd\",MozTransition:\"transitionend\",OTransition:\"oTransitionEnd\",transition:\"transitionend\"}},animation:{end:{WebkitAnimation:\"webkitAnimationEnd\",MozAnimation:\"animationend\",OAnimation:\"oAnimationEnd\",animation:\"animationend\"}}},j={csstransforms:function(){return!!e(\"transform\")},csstransforms3d:function(){return!!e(\"perspective\")},csstransitions:function(){return!!e(\"transition\")},cssanimations:function(){return!!e(\"animation\")}};j.csstransitions()&&(a.support.transition=new String(f(\"transition\")),a.support.transition.end=i.transition.end[a.support.transition]),j.cssanimations()&&(a.support.animation=new String(f(\"animation\")),a.support.animation.end=i.animation.end[a.support.animation]),j.csstransforms()&&(a.support.transform=new String(f(\"transform\")),a.support.transform3d=j.csstransforms3d())}(window.Zepto||window.jQuery,window,document);","// ==========================================================================\n// Plyr\n// plyr.js v2.0.11\n// https://github.com/selz/plyr\n// License: The MIT License (MIT)\n// ==========================================================================\n// Credits: http://paypal.github.io/accessible-html5-video-player/\n// ==========================================================================\n\n;(function(root, factory) {\n 'use strict';\n /*global define,module*/\n\n if (typeof module === 'object' && typeof module.exports === 'object') {\n // Node, CommonJS-like\n module.exports = factory(root, document);\n } else if (typeof define === 'function' && define.amd) {\n // AMD\n define([], function () { return factory(root, document); });\n } else {\n // Browser globals (root is window)\n root.plyr = factory(root, document);\n }\n}(typeof window !== 'undefined' ? window : this, function(window, document) {\n 'use strict';\n\n // Globals\n var fullscreen,\n scroll = { x: 0, y: 0 },\n\n // Default config\n defaults = {\n enabled: true,\n debug: false,\n autoplay: false,\n loop: false,\n seekTime: 10,\n volume: 10,\n volumeMin: 0,\n volumeMax: 10,\n volumeStep: 1,\n duration: null,\n displayDuration: true,\n loadSprite: true,\n iconPrefix: 'plyr',\n iconUrl: 'https://cdn.plyr.io/2.0.11/plyr.svg',\n clickToPlay: true,\n hideControls: true,\n showPosterOnEnd: false,\n disableContextMenu: true,\n keyboardShorcuts: {\n focused: true,\n global: false\n },\n tooltips: {\n controls: false,\n seek: true\n },\n selectors: {\n html5: 'video, audio',\n embed: '[data-type]',\n editable: 'input, textarea, select, [contenteditable]',\n container: '.plyr',\n controls: {\n container: null,\n wrapper: '.plyr__controls'\n },\n labels: '[data-plyr]',\n buttons: {\n seek: '[data-plyr=\"seek\"]',\n play: '[data-plyr=\"play\"]',\n pause: '[data-plyr=\"pause\"]',\n restart: '[data-plyr=\"restart\"]',\n rewind: '[data-plyr=\"rewind\"]',\n forward: '[data-plyr=\"fast-forward\"]',\n mute: '[data-plyr=\"mute\"]',\n captions: '[data-plyr=\"captions\"]',\n fullscreen: '[data-plyr=\"fullscreen\"]'\n },\n volume: {\n input: '[data-plyr=\"volume\"]',\n display: '.plyr__volume--display'\n },\n progress: {\n container: '.plyr__progress',\n buffer: '.plyr__progress--buffer',\n played: '.plyr__progress--played'\n },\n captions: '.plyr__captions',\n currentTime: '.plyr__time--current',\n duration: '.plyr__time--duration'\n },\n classes: {\n setup: 'plyr--setup',\n ready: 'plyr--ready',\n videoWrapper: 'plyr__video-wrapper',\n embedWrapper: 'plyr__video-embed',\n type: 'plyr--{0}',\n stopped: 'plyr--stopped',\n playing: 'plyr--playing',\n muted: 'plyr--muted',\n loading: 'plyr--loading',\n hover: 'plyr--hover',\n tooltip: 'plyr__tooltip',\n hidden: 'plyr__sr-only',\n hideControls: 'plyr--hide-controls',\n isIos: 'plyr--is-ios',\n isTouch: 'plyr--is-touch',\n captions: {\n enabled: 'plyr--captions-enabled',\n active: 'plyr--captions-active'\n },\n fullscreen: {\n enabled: 'plyr--fullscreen-enabled',\n active: 'plyr--fullscreen-active'\n },\n tabFocus: 'tab-focus'\n },\n captions: {\n defaultActive: false\n },\n fullscreen: {\n enabled: true,\n fallback: true,\n allowAudio: false\n },\n storage: {\n enabled: true,\n key: 'plyr'\n },\n controls: ['play-large', 'play', 'progress', 'current-time', 'mute', 'volume', 'captions', 'fullscreen'],\n i18n: {\n restart: 'Restart',\n rewind: 'Rewind {seektime} secs',\n play: 'Play',\n pause: 'Pause',\n forward: 'Forward {seektime} secs',\n played: 'played',\n buffered: 'buffered',\n currentTime: 'Current time',\n duration: 'Duration',\n volume: 'Volume',\n toggleMute: 'Toggle Mute',\n toggleCaptions: 'Toggle Captions',\n toggleFullscreen: 'Toggle Fullscreen',\n frameTitle: 'Player for {title}'\n },\n types: {\n embed: ['youtube', 'vimeo', 'soundcloud'],\n html5: ['video', 'audio']\n },\n // URLs\n urls: {\n vimeo: {\n api: 'https://player.vimeo.com/api/player.js',\n },\n youtube: {\n api: 'https://www.youtube.com/iframe_api'\n },\n soundcloud: {\n api: 'https://w.soundcloud.com/player/api.js'\n }\n },\n // Custom control listeners\n listeners: {\n seek: null,\n play: null,\n pause: null,\n restart: null,\n rewind: null,\n forward: null,\n mute: null,\n volume: null,\n captions: null,\n fullscreen: null\n },\n // Events to watch on HTML5 media elements\n events: ['ready', 'ended', 'progress', 'stalled', 'playing', 'waiting', 'canplay', 'canplaythrough', 'loadstart', 'loadeddata', 'loadedmetadata', 'timeupdate', 'volumechange', 'play', 'pause', 'error', 'seeking', 'seeked', 'emptied'],\n // Logging\n logPrefix: '[Plyr]'\n };\n\n // Credits: http://paypal.github.io/accessible-html5-video-player/\n // Unfortunately, due to mixed support, UA sniffing is required\n function _browserSniff() {\n var ua = navigator.userAgent,\n name = navigator.appName,\n fullVersion = '' + parseFloat(navigator.appVersion),\n majorVersion = parseInt(navigator.appVersion, 10),\n nameOffset,\n verOffset,\n ix,\n isIE = false,\n isFirefox = false,\n isChrome = false,\n isSafari = false;\n\n if ((navigator.appVersion.indexOf('Windows NT') !== -1) && (navigator.appVersion.indexOf('rv:11') !== -1)) {\n // MSIE 11\n isIE = true;\n name = 'IE';\n fullVersion = '11';\n } else if ((verOffset = ua.indexOf('MSIE')) !== -1) {\n // MSIE\n isIE = true;\n name = 'IE';\n fullVersion = ua.substring(verOffset + 5);\n } else if ((verOffset = ua.indexOf('Chrome')) !== -1) {\n // Chrome\n isChrome = true;\n name = 'Chrome';\n fullVersion = ua.substring(verOffset + 7);\n } else if ((verOffset = ua.indexOf('Safari')) !== -1) {\n // Safari\n isSafari = true;\n name = 'Safari';\n fullVersion = ua.substring(verOffset + 7);\n if ((verOffset = ua.indexOf('Version')) !== -1) {\n fullVersion = ua.substring(verOffset + 8);\n }\n } else if ((verOffset = ua.indexOf('Firefox')) !== -1) {\n // Firefox\n isFirefox = true;\n name = 'Firefox';\n fullVersion = ua.substring(verOffset + 8);\n } else if ((nameOffset = ua.lastIndexOf(' ') + 1) < (verOffset = ua.lastIndexOf('/'))) {\n // In most other browsers, 'name/version' is at the end of userAgent\n name = ua.substring(nameOffset,verOffset);\n fullVersion = ua.substring(verOffset + 1);\n\n if (name.toLowerCase() === name.toUpperCase()) {\n name = navigator.appName;\n }\n }\n\n // Trim the fullVersion string at semicolon/space if present\n if ((ix = fullVersion.indexOf(';')) !== -1) {\n fullVersion = fullVersion.substring(0, ix);\n }\n if ((ix = fullVersion.indexOf(' ')) !== -1) {\n fullVersion = fullVersion.substring(0, ix);\n }\n\n // Get major version\n majorVersion = parseInt('' + fullVersion, 10);\n if (isNaN(majorVersion)) {\n fullVersion = '' + parseFloat(navigator.appVersion);\n majorVersion = parseInt(navigator.appVersion, 10);\n }\n\n // Return data\n return {\n name: name,\n version: majorVersion,\n isIE: isIE,\n isFirefox: isFirefox,\n isChrome: isChrome,\n isSafari: isSafari,\n isIos: /(iPad|iPhone|iPod)/g.test(navigator.platform),\n isIphone: /(iPhone|iPod)/g.test(navigator.userAgent),\n isTouch: 'ontouchstart' in document.documentElement\n };\n }\n\n // Check for mime type support against a player instance\n // Credits: http://diveintohtml5.info/everything.html\n // Related: http://www.leanbackplyr.com/test/h5mt.html\n function _supportMime(plyr, mimeType) {\n var media = plyr.media;\n\n if (plyr.type === 'video') {\n // Check type\n switch (mimeType) {\n case 'video/webm': return !!(media.canPlayType && media.canPlayType('video/webm; codecs=\"vp8, vorbis\"').replace(/no/, ''));\n case 'video/mp4': return !!(media.canPlayType && media.canPlayType('video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"').replace(/no/, ''));\n case 'video/ogg': return !!(media.canPlayType && media.canPlayType('video/ogg; codecs=\"theora\"').replace(/no/, ''));\n }\n } else if (plyr.type === 'audio') {\n // Check type\n switch (mimeType) {\n case 'audio/mpeg': return !!(media.canPlayType && media.canPlayType('audio/mpeg;').replace(/no/, ''));\n case 'audio/ogg': return !!(media.canPlayType && media.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/no/, ''));\n case 'audio/wav': return !!(media.canPlayType && media.canPlayType('audio/wav; codecs=\"1\"').replace(/no/, ''));\n }\n }\n\n // If we got this far, we're stuffed\n return false;\n }\n\n // Inject a script\n function _injectScript(source) {\n if (document.querySelectorAll('script[src=\"' + source + '\"]').length) {\n return;\n }\n\n var tag = document.createElement('script');\n tag.src = source;\n var firstScriptTag = document.getElementsByTagName('script')[0];\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n }\n\n // Element exists in an array\n function _inArray(haystack, needle) {\n return Array.prototype.indexOf && (haystack.indexOf(needle) !== -1);\n }\n\n // Replace all\n function _replaceAll(string, find, replace) {\n return string.replace(new RegExp(find.replace(/([.*+?\\^=!:${}()|\\[\\]\\/\\\\])/g, '\\\\$1'), 'g'), replace);\n }\n\n // Wrap an element\n function _wrap(elements, wrapper) {\n // Convert `elements` to an array, if necessary.\n if (!elements.length) {\n elements = [elements];\n }\n\n // Loops backwards to prevent having to clone the wrapper on the\n // first element (see `child` below).\n for (var i = elements.length - 1; i >= 0; i--) {\n var child = (i > 0) ? wrapper.cloneNode(true) : wrapper;\n var element = elements[i];\n\n // Cache the current parent and sibling.\n var parent = element.parentNode;\n var sibling = element.nextSibling;\n\n // Wrap the element (is automatically removed from its current\n // parent).\n child.appendChild(element);\n\n // If the element had a sibling, insert the wrapper before\n // the sibling to maintain the HTML structure; otherwise, just\n // append it to the parent.\n if (sibling) {\n parent.insertBefore(child, sibling);\n } else {\n parent.appendChild(child);\n }\n\n return child;\n }\n }\n\n // Unwrap an element\n // http://plainjs.com/javascript/manipulation/unwrap-a-dom-element-35/\n /*function _unwrap(wrapper) {\n // Get the element's parent node\n var parent = wrapper.parentNode;\n\n // Move all children out of the element\n while (wrapper.firstChild) {\n parent.insertBefore(wrapper.firstChild, wrapper);\n }\n\n // Remove the empty element\n parent.removeChild(wrapper);\n }*/\n\n // Remove an element\n function _remove(element) {\n if (!element) {\n return;\n }\n element.parentNode.removeChild(element);\n }\n\n // Prepend child\n function _prependChild(parent, element) {\n parent.insertBefore(element, parent.firstChild);\n }\n\n // Set attributes\n function _setAttributes(element, attributes) {\n for (var key in attributes) {\n element.setAttribute(key, (_is.boolean(attributes[key]) && attributes[key]) ? '' : attributes[key]);\n }\n }\n\n // Insert a HTML element\n function _insertElement(type, parent, attributes) {\n // Create a new \n var element = document.createElement(type);\n\n // Set all passed attributes\n _setAttributes(element, attributes);\n\n // Inject the new element\n _prependChild(parent, element);\n }\n\n // Get a classname from selector\n function _getClassname(selector) {\n return selector.replace('.', '');\n }\n\n // Toggle class on an element\n function _toggleClass(element, className, state) {\n if (element) {\n if (element.classList) {\n element.classList[state ? 'add' : 'remove'](className);\n } else {\n var name = (' ' + element.className + ' ').replace(/\\s+/g, ' ').replace(' ' + className + ' ', '');\n element.className = name + (state ? ' ' + className : '');\n }\n }\n }\n\n // Has class name\n function _hasClass(element, className) {\n if (element) {\n if (element.classList) {\n return element.classList.contains(className);\n } else {\n return new RegExp('(\\\\s|^)' + className + '(\\\\s|$)').test(element.className);\n }\n }\n return false;\n }\n\n // Element matches selector\n function _matches(element, selector) {\n var p = Element.prototype;\n\n var f = p.matches || p.webkitMatchesSelector || p.mozMatchesSelector || p.msMatchesSelector || function(s) {\n return [].indexOf.call(document.querySelectorAll(s), this) !== -1;\n };\n\n return f.call(element, selector);\n }\n\n // Bind along with custom handler\n function _proxyListener(element, eventName, userListener, defaultListener, useCapture) {\n _on(element, eventName, function(event) {\n if (userListener) {\n userListener.apply(element, [event]);\n }\n defaultListener.apply(element, [event]);\n }, useCapture);\n }\n\n // Toggle event listener\n function _toggleListener(element, events, callback, toggle, useCapture) {\n var eventList = events.split(' ');\n\n // Whether the listener is a capturing listener or not\n // Default to false\n if (!_is.boolean(useCapture)) {\n useCapture = false;\n }\n\n // If a nodelist is passed, call itself on each node\n if (element instanceof NodeList) {\n for (var x = 0; x < element.length; x++) {\n if (element[x] instanceof Node) {\n _toggleListener(element[x], arguments[1], arguments[2], arguments[3]);\n }\n }\n return;\n }\n\n // If a single node is passed, bind the event listener\n for (var i = 0; i < eventList.length; i++) {\n element[toggle ? 'addEventListener' : 'removeEventListener'](eventList[i], callback, useCapture);\n }\n }\n\n // Bind event\n function _on(element, events, callback, useCapture) {\n if (element) {\n _toggleListener(element, events, callback, true, useCapture);\n }\n }\n\n // Unbind event\n /*function _off(element, events, callback, useCapture) {\n if (element) {\n _toggleListener(element, events, callback, false, useCapture);\n }\n }*/\n\n // Trigger event\n function _event(element, type, bubbles, properties) {\n // Bail if no element\n if (!element || !type) {\n return;\n }\n\n // Default bubbles to false\n if (!_is.boolean(bubbles)) {\n bubbles = false;\n }\n\n // Create and dispatch the event\n var event = new CustomEvent(type, {\n bubbles: bubbles,\n detail: properties\n });\n\n // Dispatch the event\n element.dispatchEvent(event);\n }\n\n // Toggle aria-pressed state on a toggle button\n // http://www.ssbbartgroup.com/blog/how-not-to-misuse-aria-states-properties-and-roles\n function _toggleState(target, state) {\n // Bail if no target\n if (!target) {\n return;\n }\n\n // Get state\n state = (_is.boolean(state) ? state : !target.getAttribute('aria-pressed'));\n\n // Set the attribute on target\n target.setAttribute('aria-pressed', state);\n\n return state;\n }\n\n // Get percentage\n function _getPercentage(current, max) {\n if (current === 0 || max === 0 || isNaN(current) || isNaN(max)) {\n return 0;\n }\n return ((current / max) * 100).toFixed(2);\n }\n\n // Deep extend/merge destination object with N more objects\n // http://andrewdupont.net/2009/08/28/deep-extending-objects-in-javascript/\n // Removed call to arguments.callee (used explicit function name instead)\n function _extend() {\n // Get arguments\n var objects = arguments;\n\n // Bail if nothing to merge\n if (!objects.length) {\n return;\n }\n\n // Return first if specified but nothing to merge\n if (objects.length === 1) {\n return objects[0];\n }\n\n // First object is the destination\n var destination = Array.prototype.shift.call(objects),\n length = objects.length;\n\n // Loop through all objects to merge\n for (var i = 0; i < length; i++) {\n var source = objects[i];\n\n for (var property in source) {\n if (source[property] && source[property].constructor && source[property].constructor === Object) {\n destination[property] = destination[property] || {};\n _extend(destination[property], source[property]);\n } else {\n destination[property] = source[property];\n }\n }\n }\n\n return destination;\n }\n\n // Check variable types\n var _is = {\n object: function(input) {\n return input !== null && typeof(input) === 'object';\n },\n array: function(input) {\n return input !== null && (typeof(input) === 'object' && input.constructor === Array);\n },\n number: function(input) {\n return input !== null && (typeof(input) === 'number' && !isNaN(input - 0) || (typeof input === 'object' && input.constructor === Number));\n },\n string: function(input) {\n return input !== null && (typeof input === 'string' || (typeof input === 'object' && input.constructor === String));\n },\n boolean: function(input) {\n return input !== null && typeof input === 'boolean';\n },\n nodeList: function(input) {\n return input !== null && input instanceof NodeList;\n },\n htmlElement: function(input) {\n return input !== null && input instanceof HTMLElement;\n },\n function: function(input) {\n return input !== null && typeof input === 'function';\n },\n undefined: function(input) {\n return input !== null && typeof input === 'undefined';\n }\n };\n\n // Parse YouTube ID from url\n function _parseYouTubeId(url) {\n var regex = /^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=)([^#\\&\\?]*).*/;\n return (url.match(regex)) ? RegExp.$2 : url;\n }\n\n // Parse Vimeo ID from url\n function _parseVimeoId(url) {\n var regex = /^.*(vimeo.com\\/|video\\/)(\\d+).*/;\n return (url.match(regex)) ? RegExp.$2 : url;\n }\n\n // Fullscreen API\n function _fullscreen() {\n var fullscreen = {\n supportsFullScreen: false,\n isFullScreen: function() { return false; },\n requestFullScreen: function() {},\n cancelFullScreen: function() {},\n fullScreenEventName: '',\n element: null,\n prefix: ''\n },\n browserPrefixes = 'webkit o moz ms khtml'.split(' ');\n\n // Check for native support\n if (!_is.undefined(document.cancelFullScreen)) {\n fullscreen.supportsFullScreen = true;\n } else {\n // Check for fullscreen support by vendor prefix\n for (var i = 0, il = browserPrefixes.length; i < il; i++ ) {\n fullscreen.prefix = browserPrefixes[i];\n\n if (!_is.undefined(document[fullscreen.prefix + 'CancelFullScreen'])) {\n fullscreen.supportsFullScreen = true;\n break;\n } else if (!_is.undefined(document.msExitFullscreen) && document.msFullscreenEnabled) {\n // Special case for MS (when isn't it?)\n fullscreen.prefix = 'ms';\n fullscreen.supportsFullScreen = true;\n break;\n }\n }\n }\n\n // Update methods to do something useful\n if (fullscreen.supportsFullScreen) {\n // Yet again Microsoft awesomeness,\n // Sometimes the prefix is 'ms', sometimes 'MS' to keep you on your toes\n fullscreen.fullScreenEventName = (fullscreen.prefix === 'ms' ? 'MSFullscreenChange' : fullscreen.prefix + 'fullscreenchange');\n\n fullscreen.isFullScreen = function(element) {\n if (_is.undefined(element)) {\n element = document.body;\n }\n switch (this.prefix) {\n case '':\n return document.fullscreenElement === element;\n case 'moz':\n return document.mozFullScreenElement === element;\n default:\n return document[this.prefix + 'FullscreenElement'] === element;\n }\n };\n fullscreen.requestFullScreen = function(element) {\n if (_is.undefined(element)) {\n element = document.body;\n }\n return (this.prefix === '') ? element.requestFullScreen() : element[this.prefix + (this.prefix === 'ms' ? 'RequestFullscreen' : 'RequestFullScreen')]();\n };\n fullscreen.cancelFullScreen = function() {\n return (this.prefix === '') ? document.cancelFullScreen() : document[this.prefix + (this.prefix === 'ms' ? 'ExitFullscreen' : 'CancelFullScreen')]();\n };\n fullscreen.element = function() {\n return (this.prefix === '') ? document.fullscreenElement : document[this.prefix + 'FullscreenElement'];\n };\n }\n\n return fullscreen;\n }\n\n // Local storage\n var _storage = {\n supported: (function() {\n if (!('localStorage' in window)) {\n return false;\n }\n\n // Try to use it (it might be disabled, e.g. user is in private/porn mode)\n // see: https://github.com/Selz/plyr/issues/131\n try {\n // Add test item\n window.localStorage.setItem('___test', 'OK');\n\n // Get the test item\n var result = window.localStorage.getItem('___test');\n\n // Clean up\n window.localStorage.removeItem('___test');\n\n // Check if value matches\n return (result === 'OK');\n }\n catch (e) {\n return false;\n }\n\n return false;\n })()\n };\n\n // Player instance\n function Plyr(media, config) {\n var plyr = this,\n timers = {},\n api;\n\n // Set media\n plyr.media = media;\n var original = media.cloneNode(true);\n\n // Trigger events, with plyr instance passed\n function _triggerEvent(element, type, bubbles, properties) {\n _event(element, type, bubbles, _extend({}, properties, {\n plyr: api\n }));\n }\n\n // Debugging\n function _console(type, args) {\n if (config.debug && window.console) {\n args = Array.prototype.slice.call(args);\n\n if (_is.string(config.logPrefix) && config.logPrefix.length) {\n args.unshift(config.logPrefix);\n }\n\n console[type].apply(console, args);\n }\n }\n var _log = function() { _console('log', arguments) },\n _warn = function() { _console('warn', arguments) };\n\n // Log config options\n _log('Config', config);\n\n // Get icon URL\n function _getIconUrl() {\n return {\n url: config.iconUrl,\n absolute: (config.iconUrl.indexOf(\"http\") === 0) || plyr.browser.isIE\n };\n }\n\n // Build the default HTML\n function _buildControls() {\n // Create html array\n var html = [],\n iconUrl = _getIconUrl(),\n iconPath = (!iconUrl.absolute ? iconUrl.url : '') + '#' + config.iconPrefix;\n\n // Larger overlaid play button\n if (_inArray(config.controls, 'play-large')) {\n html.push(\n ''\n );\n }\n\n html.push('
    ');\n\n // Restart button\n if (_inArray(config.controls, 'restart')) {\n html.push(\n ''\n );\n }\n\n // Rewind button\n if (_inArray(config.controls, 'rewind')) {\n html.push(\n ''\n );\n }\n\n // Play Pause button\n // TODO: This should be a toggle button really?\n if (_inArray(config.controls, 'play')) {\n html.push(\n '',\n ''\n );\n }\n\n // Fast forward button\n if (_inArray(config.controls, 'fast-forward')) {\n html.push(\n ''\n );\n }\n\n // Progress\n if (_inArray(config.controls, 'progress')) {\n // Create progress\n html.push('',\n '',\n '',\n '',\n '',\n '0% ' + config.i18n.buffered,\n '');\n\n // Seek tooltip\n if (config.tooltips.seek) {\n html.push('00:00');\n }\n\n // Close\n html.push('');\n }\n\n // Media current time display\n if (_inArray(config.controls, 'current-time')) {\n html.push(\n '',\n '' + config.i18n.currentTime + '',\n '00:00',\n ''\n );\n }\n\n // Media duration display\n if (_inArray(config.controls, 'duration')) {\n html.push(\n '',\n '' + config.i18n.duration + '',\n '00:00',\n ''\n );\n }\n\n // Toggle mute button\n if (_inArray(config.controls, 'mute')) {\n html.push(\n ''\n );\n }\n\n // Volume range control\n if (_inArray(config.controls, 'volume')) {\n html.push(\n '',\n '',\n '',\n '',\n ''\n );\n }\n\n // Toggle captions button\n if (_inArray(config.controls, 'captions')) {\n html.push(\n ''\n );\n }\n\n // Toggle fullscreen button\n if (_inArray(config.controls, 'fullscreen')) {\n html.push(\n ''\n );\n }\n\n // Close everything\n html.push('
    ');\n\n return html.join('');\n }\n\n // Setup fullscreen\n function _setupFullscreen() {\n if (!plyr.supported.full) {\n return;\n }\n\n if ((plyr.type !== 'audio' || config.fullscreen.allowAudio) && config.fullscreen.enabled) {\n // Check for native support\n var nativeSupport = fullscreen.supportsFullScreen;\n\n if (nativeSupport || (config.fullscreen.fallback && !_inFrame())) {\n _log((nativeSupport ? 'Native' : 'Fallback') + ' fullscreen enabled');\n\n // Add styling hook\n _toggleClass(plyr.container, config.classes.fullscreen.enabled, true);\n } else {\n _log('Fullscreen not supported and fallback disabled');\n }\n\n // Toggle state\n if (plyr.buttons && plyr.buttons.fullscreen) {\n _toggleState(plyr.buttons.fullscreen, false);\n }\n\n // Setup focus trap\n _focusTrap();\n }\n }\n\n // Setup captions\n function _setupCaptions() {\n // Bail if not HTML5 video\n if (plyr.type !== 'video') {\n return;\n }\n\n // Inject the container\n if (!_getElement(config.selectors.captions)) {\n plyr.videoContainer.insertAdjacentHTML('afterbegin', '
    ');\n }\n\n // Determine if HTML5 textTracks is supported\n plyr.usingTextTracks = false;\n if (plyr.media.textTracks) {\n plyr.usingTextTracks = true;\n }\n\n // Get URL of caption file if exists\n var captionSrc = '',\n kind,\n children = plyr.media.childNodes;\n\n for (var i = 0; i < children.length; i++) {\n if (children[i].nodeName.toLowerCase() === 'track') {\n kind = children[i].kind;\n if (kind === 'captions' || kind === 'subtitles') {\n captionSrc = children[i].getAttribute('src');\n }\n }\n }\n\n // Record if caption file exists or not\n plyr.captionExists = true;\n if (captionSrc === '') {\n plyr.captionExists = false;\n _log('No caption track found');\n } else {\n _log('Caption track found; URI: ' + captionSrc);\n }\n\n // If no caption file exists, hide container for caption text\n if (!plyr.captionExists) {\n _toggleClass(plyr.container, config.classes.captions.enabled);\n } else {\n // Turn off native caption rendering to avoid double captions\n // This doesn't seem to work in Safari 7+, so the elements are removed from the dom below\n var tracks = plyr.media.textTracks;\n for (var x = 0; x < tracks.length; x++) {\n tracks[x].mode = 'hidden';\n }\n\n // Enable UI\n _showCaptions(plyr);\n\n // Disable unsupported browsers than report false positive\n // Firefox bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1033144\n if ((plyr.browser.isIE && plyr.browser.version >= 10) ||\n (plyr.browser.isFirefox && plyr.browser.version >= 31)) {\n\n // Debugging\n _log('Detected browser with known TextTrack issues - using manual fallback');\n\n // Set to false so skips to 'manual' captioning\n plyr.usingTextTracks = false;\n }\n\n // Rendering caption tracks\n // Native support required - http://caniuse.com/webvtt\n if (plyr.usingTextTracks) {\n _log('TextTracks supported');\n\n for (var y = 0; y < tracks.length; y++) {\n var track = tracks[y];\n\n if (track.kind === 'captions' || track.kind === 'subtitles') {\n _on(track, 'cuechange', function() {\n // Display a cue, if there is one\n if (this.activeCues[0] && 'text' in this.activeCues[0]) {\n _setCaption(this.activeCues[0].getCueAsHTML());\n } else {\n _setCaption();\n }\n });\n }\n }\n } else {\n // Caption tracks not natively supported\n _log('TextTracks not supported so rendering captions manually');\n\n // Render captions from array at appropriate time\n plyr.currentCaption = '';\n plyr.captions = [];\n\n if (captionSrc !== '') {\n // Create XMLHttpRequest Object\n var xhr = new XMLHttpRequest();\n\n xhr.onreadystatechange = function() {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n var captions = [],\n caption,\n req = xhr.responseText;\n\n //According to webvtt spec, line terminator consists of one of the following\n // CRLF (U+000D U+000A), LF (U+000A) or CR (U+000D)\n var lineSeparator = '\\r\\n';\n if(req.indexOf(lineSeparator+lineSeparator) === -1) {\n if(req.indexOf('\\r\\r') !== -1){\n lineSeparator = '\\r';\n } else {\n lineSeparator = '\\n';\n }\n }\n\n captions = req.split(lineSeparator+lineSeparator);\n\n for (var r = 0; r < captions.length; r++) {\n caption = captions[r];\n plyr.captions[r] = [];\n\n // Get the parts of the captions\n var parts = caption.split(lineSeparator),\n index = 0;\n\n // Incase caption numbers are added\n if (parts[index].indexOf(\":\") === -1) {\n index = 1;\n }\n\n plyr.captions[r] = [parts[index], parts[index + 1]];\n }\n\n // Remove first element ('VTT')\n plyr.captions.shift();\n\n _log('Successfully loaded the caption file via AJAX');\n } else {\n _warn(config.logPrefix + 'There was a problem loading the caption file via AJAX');\n }\n }\n };\n\n xhr.open('get', captionSrc, true);\n\n xhr.send();\n }\n }\n }\n }\n\n // Set the current caption\n function _setCaption(caption) {\n /* jshint unused:false */\n var container = _getElement(config.selectors.captions),\n content = document.createElement('span');\n\n // Empty the container\n container.innerHTML = '';\n\n // Default to empty\n if (_is.undefined(caption)) {\n caption = '';\n }\n\n // Set the span content\n if (_is.string(caption)) {\n content.innerHTML = caption.trim();\n } else {\n content.appendChild(caption);\n }\n\n // Set new caption text\n container.appendChild(content);\n\n // Force redraw (for Safari)\n var redraw = container.offsetHeight;\n }\n\n // Captions functions\n // Seek the manual caption time and update UI\n function _seekManualCaptions(time) {\n // Utilities for caption time codes\n function _timecodeCommon(tc, pos) {\n var tcpair = [];\n tcpair = tc.split(' --> ');\n for(var i = 0; i < tcpair.length; i++) {\n // WebVTT allows for extra meta data after the timestamp line\n // So get rid of this if it exists\n tcpair[i] = tcpair[i].replace(/(\\d+:\\d+:\\d+\\.\\d+).*/, \"$1\");\n }\n return _subTcSecs(tcpair[pos]);\n }\n function _timecodeMin(tc) {\n return _timecodeCommon(tc, 0);\n }\n function _timecodeMax(tc) {\n return _timecodeCommon(tc, 1);\n }\n function _subTcSecs(tc) {\n if (tc === null || tc === undefined) {\n return 0;\n } else {\n var tc1 = [],\n tc2 = [],\n seconds;\n tc1 = tc.split(',');\n tc2 = tc1[0].split(':');\n seconds = Math.floor(tc2[0]*60*60) + Math.floor(tc2[1]*60) + Math.floor(tc2[2]);\n return seconds;\n }\n }\n\n // If it's not video, or we're using textTracks, bail.\n if (plyr.usingTextTracks || plyr.type !== 'video' || !plyr.supported.full) {\n return;\n }\n\n // Reset subcount\n plyr.subcount = 0;\n\n // Check time is a number, if not use currentTime\n // IE has a bug where currentTime doesn't go to 0\n // https://twitter.com/Sam_Potts/status/573715746506731521\n time = _is.number(time) ? time : plyr.media.currentTime;\n\n // If there's no subs available, bail\n if (!plyr.captions[plyr.subcount]) {\n return;\n }\n\n while (_timecodeMax(plyr.captions[plyr.subcount][0]) < time.toFixed(1)) {\n plyr.subcount++;\n if (plyr.subcount > plyr.captions.length - 1) {\n plyr.subcount = plyr.captions.length - 1;\n break;\n }\n }\n\n // Check if the next caption is in the current time range\n if (plyr.media.currentTime.toFixed(1) >= _timecodeMin(plyr.captions[plyr.subcount][0]) &&\n plyr.media.currentTime.toFixed(1) <= _timecodeMax(plyr.captions[plyr.subcount][0])) {\n plyr.currentCaption = plyr.captions[plyr.subcount][1];\n\n // Render the caption\n _setCaption(plyr.currentCaption);\n } else {\n _setCaption();\n }\n }\n\n // Display captions container and button (for initialization)\n function _showCaptions() {\n // If there's no caption toggle, bail\n if (!plyr.buttons.captions) {\n return;\n }\n\n _toggleClass(plyr.container, config.classes.captions.enabled, true);\n\n // Try to load the value from storage\n var active = plyr.storage.captionsEnabled;\n\n // Otherwise fall back to the default config\n if (!_is.boolean(active)) {\n active = config.captions.defaultActive;\n }\n\n if (active) {\n _toggleClass(plyr.container, config.classes.captions.active, true);\n _toggleState(plyr.buttons.captions, true);\n }\n }\n\n // Find all elements\n function _getElements(selector) {\n return plyr.container.querySelectorAll(selector);\n }\n\n // Find a single element\n function _getElement(selector) {\n return _getElements(selector)[0];\n }\n\n // Determine if we're in an iframe\n function _inFrame() {\n try {\n return window.self !== window.top;\n }\n catch (e) {\n return true;\n }\n }\n\n // Trap focus inside container\n function _focusTrap() {\n var tabbables = _getElements('input:not([disabled]), button:not([disabled])'),\n first = tabbables[0],\n last = tabbables[tabbables.length - 1];\n\n function _checkFocus(event) {\n // If it is TAB\n if (event.which === 9 && plyr.isFullscreen) {\n if (event.target === last && !event.shiftKey) {\n // Move focus to first element that can be tabbed if Shift isn't used\n event.preventDefault();\n first.focus();\n } else if (event.target === first && event.shiftKey) {\n // Move focus to last element that can be tabbed if Shift is used\n event.preventDefault();\n last.focus();\n }\n }\n }\n\n // Bind the handler\n _on(plyr.container, 'keydown', _checkFocus);\n }\n\n // Add elements to HTML5 media (source, tracks, etc)\n function _insertChildElements(type, attributes) {\n if (_is.string(attributes)) {\n _insertElement(type, plyr.media, { src: attributes });\n } else if (attributes.constructor === Array) {\n for (var i = attributes.length - 1; i >= 0; i--) {\n _insertElement(type, plyr.media, attributes[i]);\n }\n }\n }\n\n // Insert controls\n function _injectControls() {\n // Sprite\n if (config.loadSprite) {\n var iconUrl = _getIconUrl();\n\n // Only load external sprite using AJAX\n if (iconUrl.absolute) {\n _log('AJAX loading absolute SVG sprite' + (plyr.browser.isIE ? ' (due to IE)' : ''));\n loadSprite(iconUrl.url, \"sprite-plyr\");\n } else {\n _log('Sprite will be used as external resource directly');\n }\n }\n\n // Make a copy of the html\n var html = config.html;\n\n // Insert custom video controls\n _log('Injecting custom controls');\n\n // If no controls are specified, create default\n if (!html) {\n html = _buildControls();\n }\n\n // Replace seek time instances\n html = _replaceAll(html, '{seektime}', config.seekTime);\n\n // Replace all id references with random numbers\n html = _replaceAll(html, '{id}', Math.floor(Math.random() * (10000)));\n\n // Controls container\n var target;\n\n // Inject to custom location\n if (_is.string(config.selectors.controls.container)) {\n target = document.querySelector(config.selectors.controls.container);\n }\n\n // Inject into the container by default\n if (!_is.htmlElement(target)) {\n target = plyr.container\n }\n\n // Inject controls HTML\n target.insertAdjacentHTML('beforeend', html);\n\n // Setup tooltips\n if (config.tooltips.controls) {\n var labels = _getElements([config.selectors.controls.wrapper, ' ', config.selectors.labels, ' .', config.classes.hidden].join(''));\n\n for (var i = labels.length - 1; i >= 0; i--) {\n var label = labels[i];\n\n _toggleClass(label, config.classes.hidden, false);\n _toggleClass(label, config.classes.tooltip, true);\n }\n }\n }\n\n // Find the UI controls and store references\n function _findElements() {\n try {\n plyr.controls = _getElement(config.selectors.controls.wrapper);\n\n // Buttons\n plyr.buttons = {};\n plyr.buttons.seek = _getElement(config.selectors.buttons.seek);\n plyr.buttons.play = _getElements(config.selectors.buttons.play);\n plyr.buttons.pause = _getElement(config.selectors.buttons.pause);\n plyr.buttons.restart = _getElement(config.selectors.buttons.restart);\n plyr.buttons.rewind = _getElement(config.selectors.buttons.rewind);\n plyr.buttons.forward = _getElement(config.selectors.buttons.forward);\n plyr.buttons.fullscreen = _getElement(config.selectors.buttons.fullscreen);\n\n // Inputs\n plyr.buttons.mute = _getElement(config.selectors.buttons.mute);\n plyr.buttons.captions = _getElement(config.selectors.buttons.captions);\n\n // Progress\n plyr.progress = {};\n plyr.progress.container = _getElement(config.selectors.progress.container);\n\n // Progress - Buffering\n plyr.progress.buffer = {};\n plyr.progress.buffer.bar = _getElement(config.selectors.progress.buffer);\n plyr.progress.buffer.text = plyr.progress.buffer.bar && plyr.progress.buffer.bar.getElementsByTagName('span')[0];\n\n // Progress - Played\n plyr.progress.played = _getElement(config.selectors.progress.played);\n\n // Seek tooltip\n plyr.progress.tooltip = plyr.progress.container && plyr.progress.container.querySelector('.' + config.classes.tooltip);\n\n // Volume\n plyr.volume = {};\n plyr.volume.input = _getElement(config.selectors.volume.input);\n plyr.volume.display = _getElement(config.selectors.volume.display);\n\n // Timing\n plyr.duration = _getElement(config.selectors.duration);\n plyr.currentTime = _getElement(config.selectors.currentTime);\n plyr.seekTime = _getElements(config.selectors.seekTime);\n\n return true;\n }\n catch(e) {\n _warn('It looks like there is a problem with your controls HTML');\n\n // Restore native video controls\n _toggleNativeControls(true);\n\n return false;\n }\n }\n\n // Toggle style hook\n function _toggleStyleHook() {\n _toggleClass(plyr.container, config.selectors.container.replace('.', ''), plyr.supported.full);\n }\n\n // Toggle native controls\n function _toggleNativeControls(toggle) {\n if (toggle && _inArray(config.types.html5, plyr.type)) {\n plyr.media.setAttribute('controls', '');\n } else {\n plyr.media.removeAttribute('controls');\n }\n }\n\n // Setup aria attribute for play and iframe title\n function _setTitle(iframe) {\n // Find the current text\n var label = config.i18n.play;\n\n // If there's a media title set, use that for the label\n if (_is.string(config.title) && config.title.length) {\n label += ', ' + config.title;\n\n // Set container label\n plyr.container.setAttribute('aria-label', config.title);\n }\n\n // If there's a play button, set label\n if (plyr.supported.full && plyr.buttons.play) {\n for (var i = plyr.buttons.play.length - 1; i >= 0; i--) {\n plyr.buttons.play[i].setAttribute('aria-label', label);\n }\n }\n\n // Set iframe title\n // https://github.com/Selz/plyr/issues/124\n if (_is.htmlElement(iframe)) {\n iframe.setAttribute('title', config.i18n.frameTitle.replace('{title}', config.title));\n }\n }\n\n // Setup localStorage\n function _setupStorage() {\n var value = null;\n plyr.storage = {};\n\n // Bail if we don't have localStorage support or it's disabled\n if (!_storage.supported || !config.storage.enabled) {\n return;\n }\n\n // Clean up old volume\n // https://github.com/Selz/plyr/issues/171\n window.localStorage.removeItem('plyr-volume');\n\n // load value from the current key\n value = window.localStorage.getItem(config.storage.key);\n\n if (!value) {\n // Key wasn't set (or had been cleared), move along\n return;\n } else if (/^\\d+(\\.\\d+)?$/.test(value)) {\n // If value is a number, it's probably volume from an older\n // version of plyr. See: https://github.com/Selz/plyr/pull/313\n // Update the key to be JSON\n _updateStorage({volume: parseFloat(value)});\n } else {\n // Assume it's JSON from this or a later version of plyr\n plyr.storage = JSON.parse(value);\n }\n }\n\n // Save a value back to local storage\n function _updateStorage(value) {\n // Bail if we don't have localStorage support or it's disabled\n if (!_storage.supported || !config.storage.enabled) {\n return;\n }\n\n // Update the working copy of the values\n _extend(plyr.storage, value);\n\n // Update storage\n window.localStorage.setItem(config.storage.key, JSON.stringify(plyr.storage));\n }\n\n // Setup media\n function _setupMedia() {\n // If there's no media, bail\n if (!plyr.media) {\n _warn('No media element found!');\n return;\n }\n\n if (plyr.supported.full) {\n // Add type class\n _toggleClass(plyr.container, config.classes.type.replace('{0}', plyr.type), true);\n\n // Add video class for embeds\n // This will require changes if audio embeds are added\n if (_inArray(config.types.embed, plyr.type)) {\n _toggleClass(plyr.container, config.classes.type.replace('{0}', 'video'), true);\n }\n\n // If there's no autoplay attribute, assume the video is stopped and add state class\n _toggleClass(plyr.container, config.classes.stopped, config.autoplay);\n\n // Add iOS class\n _toggleClass(plyr.ontainer, config.classes.isIos, plyr.browser.isIos);\n\n // Add touch class\n _toggleClass(plyr.container, config.classes.isTouch, plyr.browser.isTouch);\n\n // Inject the player wrapper\n if (plyr.type === 'video') {\n // Create the wrapper div\n var wrapper = document.createElement('div');\n wrapper.setAttribute('class', config.classes.videoWrapper);\n\n // Wrap the video in a container\n _wrap(plyr.media, wrapper);\n\n // Cache the container\n plyr.videoContainer = wrapper;\n }\n }\n\n // Embeds\n if (_inArray(config.types.embed, plyr.type)) {\n _setupEmbed();\n }\n }\n\n // Setup YouTube/Vimeo\n function _setupEmbed() {\n var container = document.createElement('div'),\n mediaId,\n id = plyr.type + '-' + Math.floor(Math.random() * (10000));\n\n // Parse IDs from URLs if supplied\n switch (plyr.type) {\n case 'youtube':\n mediaId = _parseYouTubeId(plyr.embedId);\n break;\n\n case 'vimeo':\n mediaId = _parseVimeoId(plyr.embedId);\n break;\n\n default:\n mediaId = plyr.embedId;\n }\n\n // Remove old containers\n var containers = _getElements('[id^=\"' + plyr.type + '-\"]');\n for (var i = containers.length - 1; i >= 0; i--) {\n _remove(containers[i]);\n }\n\n // Add embed class for responsive\n _toggleClass(plyr.media, config.classes.videoWrapper, true);\n _toggleClass(plyr.media, config.classes.embedWrapper, true);\n\n if (plyr.type === 'youtube') {\n // Create the YouTube container\n plyr.media.appendChild(container);\n\n // Set ID\n container.setAttribute('id', id);\n\n // Setup API\n if (_is.object(window.YT)) {\n _youTubeReady(mediaId, container);\n } else {\n // Load the API\n _injectScript(config.urls.youtube.api);\n\n // Setup callback for the API\n window.onYouTubeReadyCallbacks = window.onYouTubeReadyCallbacks || [];\n\n // Add to queue\n window.onYouTubeReadyCallbacks.push(function() { _youTubeReady(mediaId, container); });\n\n // Set callback to process queue\n window.onYouTubeIframeAPIReady = function () {\n window.onYouTubeReadyCallbacks.forEach(function(callback) { callback(); });\n };\n }\n } else if (plyr.type === 'vimeo') {\n // Vimeo needs an extra div to hide controls on desktop (which has full support)\n if (plyr.supported.full) {\n plyr.media.appendChild(container);\n } else {\n container = plyr.media;\n }\n\n // Set ID\n container.setAttribute('id', id);\n\n // Load the API if not already\n if (!_is.object(window.Vimeo)) {\n _injectScript(config.urls.vimeo.api);\n\n // Wait for fragaloop load\n var vimeoTimer = window.setInterval(function() {\n if (_is.object(window.Vimeo)) {\n window.clearInterval(vimeoTimer);\n _vimeoReady(mediaId, container);\n }\n }, 50);\n } else {\n _vimeoReady(mediaId, container);\n }\n } else if (plyr.type === 'soundcloud') {\n // TODO: Currently unsupported and undocumented\n // Inject the iframe\n var soundCloud = document.createElement('iframe');\n\n // Watch for iframe load\n soundCloud.loaded = false;\n _on(soundCloud, 'load', function() { soundCloud.loaded = true; });\n\n _setAttributes(soundCloud, {\n 'src': 'https://w.soundcloud.com/player/?url=https://api.soundcloud.com/tracks/' + mediaId,\n 'id': id\n });\n\n container.appendChild(soundCloud);\n plyr.media.appendChild(container);\n\n // Load the API if not already\n if (!window.SC) {\n _injectScript(config.urls.soundcloud.api);\n }\n\n // Wait for SC load\n var soundCloudTimer = window.setInterval(function() {\n if (window.SC && soundCloud.loaded) {\n window.clearInterval(soundCloudTimer);\n _soundcloudReady.call(soundCloud);\n }\n }, 50);\n }\n }\n\n // When embeds are ready\n function _embedReady() {\n // Setup the UI and call ready if full support\n if (plyr.supported.full) {\n _setupInterface();\n _ready();\n }\n\n // Set title\n _setTitle(_getElement('iframe'));\n }\n\n // Handle YouTube API ready\n function _youTubeReady(videoId, container) {\n // Setup instance\n // https://developers.google.com/youtube/iframe_api_reference\n plyr.embed = new window.YT.Player(container.id, {\n videoId: videoId,\n playerVars: {\n autoplay: (config.autoplay ? 1 : 0),\n controls: (plyr.supported.full ? 0 : 1),\n rel: 0,\n showinfo: 0,\n iv_load_policy: 3,\n cc_load_policy: (config.captions.defaultActive ? 1 : 0),\n cc_lang_pref: 'en',\n wmode: 'transparent',\n modestbranding: 1,\n disablekb: 1,\n origin: '*' // https://code.google.com/p/gdata-issues/issues/detail?id=5788#c45\n },\n events: {\n 'onError': function(event) {\n _triggerEvent(plyr.container, 'error', true, {\n code: event.data,\n embed: event.target\n });\n },\n 'onReady': function(event) {\n // Get the instance\n var instance = event.target;\n\n // Create a faux HTML5 API using the YouTube API\n plyr.media.play = function() {\n instance.playVideo();\n plyr.media.paused = false;\n };\n plyr.media.pause = function() {\n instance.pauseVideo();\n plyr.media.paused = true;\n };\n plyr.media.stop = function() {\n instance.stopVideo();\n plyr.media.paused = true;\n };\n plyr.media.duration = instance.getDuration();\n plyr.media.paused = true;\n plyr.media.currentTime = 0;\n plyr.media.muted = instance.isMuted();\n\n // Set title\n config.title = instance.getVideoData().title;\n\n // Set the tabindex\n if (plyr.supported.full) {\n plyr.media.querySelector('iframe').setAttribute('tabindex', '-1');\n }\n\n // Update UI\n _embedReady();\n\n // Trigger timeupdate\n _triggerEvent(plyr.media, 'timeupdate');\n\n // Trigger timeupdate\n _triggerEvent(plyr.media, 'durationchange');\n\n // Reset timer\n window.clearInterval(timers.buffering);\n\n // Setup buffering\n timers.buffering = window.setInterval(function() {\n // Get loaded % from YouTube\n plyr.media.buffered = instance.getVideoLoadedFraction();\n\n // Trigger progress only when we actually buffer something\n if (plyr.media.lastBuffered === null || plyr.media.lastBuffered < plyr.media.buffered) {\n _triggerEvent(plyr.media, 'progress');\n }\n\n // Set last buffer point\n plyr.media.lastBuffered = plyr.media.buffered;\n\n // Bail if we're at 100%\n if (plyr.media.buffered === 1) {\n window.clearInterval(timers.buffering);\n\n // Trigger event\n _triggerEvent(plyr.media, 'canplaythrough');\n }\n }, 200);\n },\n 'onStateChange': function(event) {\n // Get the instance\n var instance = event.target;\n\n // Reset timer\n window.clearInterval(timers.playing);\n\n // Handle events\n // -1 Unstarted\n // 0 Ended\n // 1 Playing\n // 2 Paused\n // 3 Buffering\n // 5 Video cued\n switch (event.data) {\n case 0:\n plyr.media.paused = true;\n _triggerEvent(plyr.media, 'ended');\n break;\n\n case 1:\n plyr.media.paused = false;\n\n // If we were seeking, fire seeked event\n if (plyr.media.seeking) {\n _triggerEvent(plyr.media, 'seeked');\n }\n\n plyr.media.seeking = false;\n _triggerEvent(plyr.media, 'play');\n _triggerEvent(plyr.media, 'playing');\n\n // Poll to get playback progress\n timers.playing = window.setInterval(function() {\n // Set the current time\n plyr.media.currentTime = instance.getCurrentTime();\n\n // Trigger timeupdate\n _triggerEvent(plyr.media, 'timeupdate');\n }, 100);\n\n // Check duration again due to YouTube bug\n // https://github.com/Selz/plyr/issues/374\n // https://code.google.com/p/gdata-issues/issues/detail?id=8690\n if (plyr.media.duration !== instance.getDuration()) {\n plyr.media.duration = instance.getDuration();\n _triggerEvent(plyr.media, 'durationchange');\n }\n\n break;\n\n case 2:\n plyr.media.paused = true;\n _triggerEvent(plyr.media, 'pause');\n break;\n }\n\n _triggerEvent(plyr.container, 'statechange', false, {\n code: event.data\n });\n }\n }\n });\n }\n\n // Vimeo ready\n function _vimeoReady(mediaId, container) {\n // Setup instance\n // https://github.com/vimeo/player.js\n plyr.embed = new window.Vimeo.Player(container, {\n id: parseInt(mediaId),\n loop: config.loop,\n autoplay: config.autoplay,\n byline: false,\n portrait: false,\n title: false\n });\n\n // Create a faux HTML5 API using the Vimeo API\n plyr.media.play = function() {\n plyr.embed.play();\n plyr.media.paused = false;\n };\n plyr.media.pause = function() {\n plyr.embed.pause();\n plyr.media.paused = true;\n };\n plyr.media.stop = function() {\n plyr.embed.stop();\n plyr.media.paused = true;\n };\n\n plyr.media.paused = true;\n plyr.media.currentTime = 0;\n\n // Update UI\n _embedReady();\n\n plyr.embed.getCurrentTime().then(function(value) {\n plyr.media.currentTime = value;\n\n // Trigger timeupdate\n _triggerEvent(plyr.media, 'timeupdate');\n });\n\n plyr.embed.getDuration().then(function(value) {\n plyr.media.duration = value;\n\n // Trigger timeupdate\n _triggerEvent(plyr.media, 'durationchange');\n });\n\n // TODO: Captions\n /*if (config.captions.defaultActive) {\n plyr.embed.enableTextTrack('en');\n }*/\n\n plyr.embed.on('loaded', function() {\n // Fix keyboard focus issues\n // https://github.com/Selz/plyr/issues/317\n if (_is.htmlElement(plyr.embed.element) && plyr.supported.full) {\n plyr.embed.element.setAttribute('tabindex', '-1');\n }\n });\n\n plyr.embed.on('play', function() {\n plyr.media.paused = false;\n _triggerEvent(plyr.media, 'play');\n _triggerEvent(plyr.media, 'playing');\n });\n\n plyr.embed.on('pause', function() {\n plyr.media.paused = true;\n _triggerEvent(plyr.media, 'pause');\n });\n\n plyr.embed.on('timeupdate', function(data) {\n plyr.media.seeking = false;\n plyr.media.currentTime = data.seconds;\n _triggerEvent(plyr.media, 'timeupdate');\n });\n\n plyr.embed.on('progress', function(data) {\n plyr.media.buffered = data.percent;\n _triggerEvent(plyr.media, 'progress');\n\n if (parseInt(data.percent) === 1) {\n // Trigger event\n _triggerEvent(plyr.media, 'canplaythrough');\n }\n });\n\n plyr.embed.on('seeked', function() {\n plyr.media.seeking = false;\n _triggerEvent(plyr.media, 'seeked');\n _triggerEvent(plyr.media, 'play');\n });\n\n plyr.embed.on('ended', function() {\n plyr.media.paused = true;\n _triggerEvent(plyr.media, 'ended');\n });\n }\n\n // Soundcloud ready\n function _soundcloudReady() {\n /* jshint validthis: true */\n plyr.embed = window.SC.Widget(this);\n\n // Setup on ready\n plyr.embed.bind(window.SC.Widget.Events.READY, function() {\n // Create a faux HTML5 API using the Soundcloud API\n plyr.media.play = function() {\n plyr.embed.play();\n plyr.media.paused = false;\n };\n plyr.media.pause = function() {\n plyr.embed.pause();\n plyr.media.paused = true;\n };\n plyr.media.stop = function() {\n plyr.embed.seekTo(0);\n plyr.embed.pause();\n plyr.media.paused = true;\n };\n\n plyr.media.paused = true;\n plyr.media.currentTime = 0;\n\n plyr.embed.getDuration(function(value) {\n plyr.media.duration = value/1000;\n\n // Update UI\n _embedReady();\n });\n\n plyr.embed.getPosition(function(value) {\n plyr.media.currentTime = value;\n\n // Trigger timeupdate\n _triggerEvent(plyr.media, 'timeupdate');\n });\n\n plyr.embed.bind(window.SC.Widget.Events.PLAY, function() {\n plyr.media.paused = false;\n _triggerEvent(plyr.media, 'play');\n _triggerEvent(plyr.media, 'playing');\n });\n\n plyr.embed.bind(window.SC.Widget.Events.PAUSE, function() {\n plyr.media.paused = true;\n _triggerEvent(plyr.media, 'pause');\n });\n\n plyr.embed.bind(window.SC.Widget.Events.PLAY_PROGRESS, function(data) {\n plyr.media.seeking = false;\n plyr.media.currentTime = data.currentPosition/1000;\n _triggerEvent(plyr.media, 'timeupdate');\n });\n\n plyr.embed.bind(window.SC.Widget.Events.LOAD_PROGRESS, function(data) {\n plyr.media.buffered = data.loadProgress;\n _triggerEvent(plyr.media, 'progress');\n\n if (parseInt(data.loadProgress) === 1) {\n // Trigger event\n _triggerEvent(plyr.media, 'canplaythrough');\n }\n });\n\n plyr.embed.bind(window.SC.Widget.Events.FINISH, function() {\n plyr.media.paused = true;\n _triggerEvent(plyr.media, 'ended');\n });\n });\n }\n\n // Play media\n function _play() {\n if ('play' in plyr.media) {\n plyr.media.play();\n }\n }\n\n // Pause media\n function _pause() {\n if ('pause' in plyr.media) {\n plyr.media.pause();\n }\n }\n\n // Toggle playback\n function _togglePlay(toggle) {\n // True toggle\n if (!_is.boolean(toggle)) {\n toggle = plyr.media.paused;\n }\n\n if (toggle) {\n _play();\n } else {\n _pause();\n }\n\n return toggle;\n }\n\n // Rewind\n function _rewind(seekTime) {\n // Use default if needed\n if (!_is.number(seekTime)) {\n seekTime = config.seekTime;\n }\n _seek(plyr.media.currentTime - seekTime);\n }\n\n // Fast forward\n function _forward(seekTime) {\n // Use default if needed\n if (!_is.number(seekTime)) {\n seekTime = config.seekTime;\n }\n _seek(plyr.media.currentTime + seekTime);\n }\n\n // Seek to time\n // The input parameter can be an event or a number\n function _seek(input) {\n var targetTime = 0,\n paused = plyr.media.paused,\n duration = _getDuration();\n\n if (_is.number(input)) {\n targetTime = input;\n } else if (_is.object(input) && _inArray(['input', 'change'], input.type)) {\n // It's the seek slider\n // Seek to the selected time\n targetTime = ((input.target.value / input.target.max) * duration);\n }\n\n // Normalise targetTime\n if (targetTime < 0) {\n targetTime = 0;\n } else if (targetTime > duration) {\n targetTime = duration;\n }\n\n // Update seek range and progress\n _updateSeekDisplay(targetTime);\n\n // Set the current time\n // Try/catch incase the media isn't set and we're calling seek() from source() and IE moans\n try {\n plyr.media.currentTime = targetTime.toFixed(4);\n }\n catch(e) {}\n\n // Embeds\n if (_inArray(config.types.embed, plyr.type)) {\n switch(plyr.type) {\n case 'youtube':\n plyr.embed.seekTo(targetTime);\n break;\n\n case 'vimeo':\n // Round to nearest second for vimeo\n plyr.embed.setCurrentTime(targetTime.toFixed(0));\n break;\n\n case 'soundcloud':\n plyr.embed.seekTo(targetTime * 1000);\n break;\n }\n\n if (paused) {\n _pause();\n }\n\n // Trigger timeupdate\n _triggerEvent(plyr.media, 'timeupdate');\n\n // Set seeking flag\n plyr.media.seeking = true;\n\n // Trigger seeking\n _triggerEvent(plyr.media, 'seeking');\n }\n\n // Logging\n _log('Seeking to ' + plyr.media.currentTime + ' seconds');\n\n // Special handling for 'manual' captions\n _seekManualCaptions(targetTime);\n }\n\n // Get the duration (or custom if set)\n function _getDuration() {\n // It should be a number, but parse it just incase\n var duration = parseInt(config.duration),\n\n // True duration\n mediaDuration = 0;\n\n // Only if duration available\n if (plyr.media.duration !== null && !isNaN(plyr.media.duration)) {\n mediaDuration = plyr.media.duration;\n }\n\n // If custom duration is funky, use regular duration\n return (isNaN(duration) ? mediaDuration : duration);\n }\n\n // Check playing state\n function _checkPlaying() {\n _toggleClass(plyr.container, config.classes.playing, !plyr.media.paused);\n\n _toggleClass(plyr.container, config.classes.stopped, plyr.media.paused);\n\n _toggleControls(plyr.media.paused);\n }\n\n // Save scroll position\n function _saveScrollPosition() {\n scroll = {\n x: window.pageXOffset || 0,\n y: window.pageYOffset || 0\n };\n }\n\n // Restore scroll position\n function _restoreScrollPosition() {\n window.scrollTo(scroll.x, scroll.y);\n }\n\n // Toggle fullscreen\n function _toggleFullscreen(event) {\n // Check for native support\n var nativeSupport = fullscreen.supportsFullScreen;\n\n if (nativeSupport) {\n // If it's a fullscreen change event, update the UI\n if (event && event.type === fullscreen.fullScreenEventName) {\n plyr.isFullscreen = fullscreen.isFullScreen(plyr.container);\n } else {\n // Else it's a user request to enter or exit\n if (!fullscreen.isFullScreen(plyr.container)) {\n // Save scroll position\n _saveScrollPosition();\n\n // Request full screen\n fullscreen.requestFullScreen(plyr.container);\n } else {\n // Bail from fullscreen\n fullscreen.cancelFullScreen();\n }\n\n // Check if we're actually full screen (it could fail)\n plyr.isFullscreen = fullscreen.isFullScreen(plyr.container);\n\n return;\n }\n } else {\n // Otherwise, it's a simple toggle\n plyr.isFullscreen = !plyr.isFullscreen;\n\n // Bind/unbind escape key\n document.body.style.overflow = plyr.isFullscreen ? 'hidden' : '';\n }\n\n // Set class hook\n _toggleClass(plyr.container, config.classes.fullscreen.active, plyr.isFullscreen);\n\n // Trap focus\n _focusTrap(plyr.isFullscreen);\n\n // Set button state\n if (plyr.buttons && plyr.buttons.fullscreen) {\n _toggleState(plyr.buttons.fullscreen, plyr.isFullscreen);\n }\n\n // Trigger an event\n _triggerEvent(plyr.container, plyr.isFullscreen ? 'enterfullscreen' : 'exitfullscreen', true);\n\n // Restore scroll position\n if (!plyr.isFullscreen && nativeSupport) {\n _restoreScrollPosition();\n }\n }\n\n // Mute\n function _toggleMute(muted) {\n // If the method is called without parameter, toggle based on current value\n if (!_is.boolean(muted)) {\n muted = !plyr.media.muted;\n }\n\n // Set button state\n _toggleState(plyr.buttons.mute, muted);\n\n // Set mute on the player\n plyr.media.muted = muted;\n\n // If volume is 0 after unmuting, set to default\n if (plyr.media.volume === 0) {\n _setVolume(config.volume);\n }\n\n // Embeds\n if (_inArray(config.types.embed, plyr.type)) {\n // YouTube\n switch(plyr.type) {\n case 'youtube':\n plyr.embed[plyr.media.muted ? 'mute' : 'unMute']();\n break;\n\n case 'vimeo':\n case 'soundcloud':\n plyr.embed.setVolume(plyr.media.muted ? 0 : parseFloat(config.volume / config.volumeMax));\n break;\n }\n\n // Trigger volumechange for embeds\n _triggerEvent(plyr.media, 'volumechange');\n }\n }\n\n // Set volume\n function _setVolume(volume) {\n var max = config.volumeMax,\n min = config.volumeMin;\n\n // Load volume from storage if no value specified\n if (_is.undefined(volume)) {\n volume = plyr.storage.volume;\n }\n\n // Use config if all else fails\n if (volume === null || isNaN(volume)) {\n volume = config.volume;\n }\n\n // Maximum is volumeMax\n if (volume > max) {\n volume = max;\n }\n // Minimum is volumeMin\n if (volume < min) {\n volume = min;\n }\n\n // Set the player volume\n plyr.media.volume = parseFloat(volume / max);\n\n // Set the display\n if (plyr.volume.display) {\n plyr.volume.display.value = volume;\n }\n\n // Embeds\n if (_inArray(config.types.embed, plyr.type)) {\n switch(plyr.type) {\n case 'youtube':\n plyr.embed.setVolume(plyr.media.volume * 100);\n break;\n\n case 'vimeo':\n case 'soundcloud':\n plyr.embed.setVolume(plyr.media.volume);\n break;\n }\n\n // Trigger volumechange for embeds\n _triggerEvent(plyr.media, 'volumechange');\n }\n\n // Toggle muted state\n if (volume === 0) {\n plyr.media.muted = true;\n } else if (plyr.media.muted && volume > 0) {\n _toggleMute();\n }\n }\n\n // Increase volume\n function _increaseVolume(step) {\n var volume = plyr.media.muted ? 0 : (plyr.media.volume * config.volumeMax);\n\n if (!_is.number(step)) {\n step = config.volumeStep;\n }\n\n _setVolume(volume + step);\n }\n\n // Decrease volume\n function _decreaseVolume(step) {\n var volume = plyr.media.muted ? 0 : (plyr.media.volume * config.volumeMax);\n\n if (!_is.number(step)) {\n step = config.volumeStep;\n }\n\n _setVolume(volume - step);\n }\n\n // Update volume UI and storage\n function _updateVolume() {\n // Get the current volume\n var volume = plyr.media.muted ? 0 : (plyr.media.volume * config.volumeMax);\n\n // Update the if present\n if (plyr.supported.full) {\n if (plyr.volume.input) {\n plyr.volume.input.value = volume;\n }\n if (plyr.volume.display) {\n plyr.volume.display.value = volume;\n }\n }\n\n // Update the volume in storage\n _updateStorage({volume: volume});\n\n // Toggle class if muted\n _toggleClass(plyr.container, config.classes.muted, (volume === 0));\n\n // Update checkbox for mute state\n if (plyr.supported.full && plyr.buttons.mute) {\n _toggleState(plyr.buttons.mute, (volume === 0));\n }\n }\n\n // Toggle captions\n function _toggleCaptions(show) {\n // If there's no full support, or there's no caption toggle\n if (!plyr.supported.full || !plyr.buttons.captions) {\n return;\n }\n\n // If the method is called without parameter, toggle based on current value\n if (!_is.boolean(show)) {\n show = (plyr.container.className.indexOf(config.classes.captions.active) === -1);\n }\n\n // Set global\n plyr.captionsEnabled = show;\n\n // Toggle state\n _toggleState(plyr.buttons.captions, plyr.captionsEnabled);\n\n // Add class hook\n _toggleClass(plyr.container, config.classes.captions.active, plyr.captionsEnabled);\n\n // Trigger an event\n _triggerEvent(plyr.container, plyr.captionsEnabled ? 'captionsenabled' : 'captionsdisabled', true);\n\n // Save captions state to localStorage\n _updateStorage({captionsEnabled: plyr.captionsEnabled});\n }\n\n // Check if media is loading\n function _checkLoading(event) {\n var loading = (event.type === 'waiting');\n\n // Clear timer\n clearTimeout(timers.loading);\n\n // Timer to prevent flicker when seeking\n timers.loading = setTimeout(function() {\n // Toggle container class hook\n _toggleClass(plyr.container, config.classes.loading, loading);\n\n // Show controls if loading, hide if done\n _toggleControls(loading);\n }, (loading ? 250 : 0));\n }\n\n // Update elements\n function _updateProgress(event) {\n if (!plyr.supported.full) {\n return;\n }\n\n var progress = plyr.progress.played,\n value = 0,\n duration = _getDuration();\n\n if (event) {\n switch (event.type) {\n // Video playing\n case 'timeupdate':\n case 'seeking':\n if (plyr.controls.pressed) {\n return;\n }\n\n value = _getPercentage(plyr.media.currentTime, duration);\n\n // Set seek range value only if it's a 'natural' time event\n if (event.type === 'timeupdate' && plyr.buttons.seek) {\n plyr.buttons.seek.value = value;\n }\n\n break;\n\n // Check buffer status\n case 'playing':\n case 'progress':\n progress = plyr.progress.buffer;\n value = (function() {\n var buffered = plyr.media.buffered;\n\n if (buffered && buffered.length) {\n // HTML5\n return _getPercentage(buffered.end(0), duration);\n } else if (_is.number(buffered)) {\n // YouTube returns between 0 and 1\n return (buffered * 100);\n }\n\n return 0;\n })();\n\n break;\n }\n }\n\n // Set values\n _setProgress(progress, value);\n }\n\n // Set value\n function _setProgress(progress, value) {\n if (!plyr.supported.full) {\n return;\n }\n\n // Default to 0\n if (_is.undefined(value)) {\n value = 0;\n }\n // Default to buffer or bail\n if (_is.undefined(progress)) {\n if (plyr.progress && plyr.progress.buffer) {\n progress = plyr.progress.buffer;\n } else {\n return;\n }\n }\n\n // One progress element passed\n if (_is.htmlElement(progress)) {\n progress.value = value;\n } else if (progress) {\n // Object of progress + text element\n if (progress.bar) {\n progress.bar.value = value;\n }\n if (progress.text) {\n progress.text.innerHTML = value;\n }\n }\n }\n\n // Update the displayed time\n function _updateTimeDisplay(time, element) {\n // Bail if there's no duration display\n if (!element) {\n return;\n }\n\n // Fallback to 0\n if (isNaN(time)) {\n time = 0;\n }\n\n plyr.secs = parseInt(time % 60);\n plyr.mins = parseInt((time / 60) % 60);\n plyr.hours = parseInt(((time / 60) / 60) % 60);\n\n // Do we need to display hours?\n var displayHours = (parseInt(((_getDuration() / 60) / 60) % 60) > 0);\n\n // Ensure it's two digits. For example, 03 rather than 3.\n plyr.secs = ('0' + plyr.secs).slice(-2);\n plyr.mins = ('0' + plyr.mins).slice(-2);\n\n // Render\n element.innerHTML = (displayHours ? plyr.hours + ':' : '') + plyr.mins + ':' + plyr.secs;\n }\n\n // Show the duration on metadataloaded\n function _displayDuration() {\n if (!plyr.supported.full) {\n return;\n }\n\n // Determine duration\n var duration = _getDuration() || 0;\n\n // If there's only one time display, display duration there\n if (!plyr.duration && config.displayDuration && plyr.media.paused) {\n _updateTimeDisplay(duration, plyr.currentTime);\n }\n\n // If there's a duration element, update content\n if (plyr.duration) {\n _updateTimeDisplay(duration, plyr.duration);\n }\n\n // Update the tooltip (if visible)\n _updateSeekTooltip();\n }\n\n // Handle time change event\n function _timeUpdate(event) {\n // Duration\n _updateTimeDisplay(plyr.media.currentTime, plyr.currentTime);\n\n // Ignore updates while seeking\n if (event && event.type === 'timeupdate' && plyr.media.seeking) {\n return;\n }\n\n // Playing progress\n _updateProgress(event);\n }\n\n // Update seek range and progress\n function _updateSeekDisplay(time) {\n // Default to 0\n if (!_is.number(time)) {\n time = 0;\n }\n\n var duration = _getDuration(),\n value = _getPercentage(time, duration);\n\n // Update progress\n if (plyr.progress && plyr.progress.played) {\n plyr.progress.played.value = value;\n }\n\n // Update seek range input\n if (plyr.buttons && plyr.buttons.seek) {\n plyr.buttons.seek.value = value;\n }\n }\n\n // Update hover tooltip for seeking\n function _updateSeekTooltip(event) {\n var duration = _getDuration();\n\n // Bail if setting not true\n if (!config.tooltips.seek || !plyr.progress.container || duration === 0) {\n return;\n }\n\n // Calculate percentage\n var clientRect = plyr.progress.container.getBoundingClientRect(),\n percent = 0,\n visible = config.classes.tooltip + '--visible';\n\n // Determine percentage, if already visible\n if (!event) {\n if (_hasClass(plyr.progress.tooltip, visible)) {\n percent = plyr.progress.tooltip.style.left.replace('%', '');\n } else {\n return;\n }\n } else {\n percent = ((100 / clientRect.width) * (event.pageX - clientRect.left));\n }\n\n // Set bounds\n if (percent < 0) {\n percent = 0;\n } else if (percent > 100) {\n percent = 100;\n }\n\n // Display the time a click would seek to\n _updateTimeDisplay(((duration / 100) * percent), plyr.progress.tooltip);\n\n // Set position\n plyr.progress.tooltip.style.left = percent + \"%\";\n\n // Show/hide the tooltip\n // If the event is a moues in/out and percentage is inside bounds\n if (event && _inArray(['mouseenter', 'mouseleave'], event.type)) {\n _toggleClass(plyr.progress.tooltip, visible, (event.type === 'mouseenter'));\n }\n }\n\n // Show the player controls in fullscreen mode\n function _toggleControls(toggle) {\n // Don't hide if config says not to, it's audio, or not ready or loading\n if (!config.hideControls || plyr.type === 'audio') {\n return;\n }\n\n var delay = 0,\n isEnterFullscreen = false,\n show = toggle,\n loading = _hasClass(plyr.container, config.classes.loading);\n\n // Default to false if no boolean\n if (!_is.boolean(toggle)) {\n if (toggle && toggle.type) {\n // Is the enter fullscreen event\n isEnterFullscreen = (toggle.type === 'enterfullscreen');\n\n // Whether to show controls\n show = _inArray(['mousemove', 'touchstart', 'mouseenter', 'focus'], toggle.type);\n\n // Delay hiding on move events\n if (_inArray(['mousemove', 'touchmove'], toggle.type)) {\n delay = 2000;\n }\n\n // Delay a little more for keyboard users\n if (toggle.type === 'focus') {\n delay = 3000;\n }\n } else {\n show = _hasClass(plyr.container, config.classes.hideControls);\n }\n }\n\n // Clear timer every movement\n window.clearTimeout(timers.hover);\n\n // If the mouse is not over the controls, set a timeout to hide them\n if (show || plyr.media.paused || loading) {\n _toggleClass(plyr.container, config.classes.hideControls, false);\n\n // Always show controls when paused or if touch\n if (plyr.media.paused || loading) {\n return;\n }\n\n // Delay for hiding on touch\n if (plyr.browser.isTouch) {\n delay = 3000;\n }\n }\n\n // If toggle is false or if we're playing (regardless of toggle),\n // then set the timer to hide the controls\n if (!show || !plyr.media.paused) {\n timers.hover = window.setTimeout(function() {\n // If the mouse is over the controls (and not entering fullscreen), bail\n if ((plyr.controls.pressed || plyr.controls.hover) && !isEnterFullscreen) {\n return;\n }\n\n _toggleClass(plyr.container, config.classes.hideControls, true);\n }, delay);\n }\n }\n\n // Add common function to retrieve media source\n function _source(source) {\n // If not null or undefined, parse it\n if (!_is.undefined(source)) {\n _updateSource(source);\n return;\n }\n\n // Return the current source\n var url;\n switch(plyr.type) {\n case 'youtube':\n url = plyr.embed.getVideoUrl();\n break;\n\n case 'vimeo':\n plyr.embed.getVideoUrl.then(function (value) {\n url = value;\n });\n break;\n\n case 'soundcloud':\n plyr.embed.getCurrentSound(function(object) {\n url = object.permalink_url;\n });\n break;\n\n default:\n url = plyr.media.currentSrc;\n break;\n }\n\n return url || '';\n }\n\n // Update source\n // Sources are not checked for support so be careful\n function _updateSource(source) {\n if (!_is.object(source) || !('sources' in source) || !source.sources.length) {\n _warn('Invalid source format');\n return;\n }\n\n // Remove ready class hook\n _toggleClass(plyr.container, config.classes.ready, false);\n\n // Pause playback\n _pause();\n\n // Update seek range and progress\n _updateSeekDisplay();\n\n // Reset buffer progress\n _setProgress();\n\n // Cancel current network requests\n _cancelRequests();\n\n // Setup new source\n function setup() {\n // Remove embed object\n plyr.embed = null;\n\n // Remove the old media\n _remove(plyr.media);\n\n // Remove video container\n if (plyr.type === 'video' && plyr.videoContainer) {\n _remove(plyr.videoContainer);\n }\n\n // Reset class name\n if (plyr.container) {\n plyr.container.removeAttribute('class');\n }\n\n // Set the type\n if ('type' in source) {\n plyr.type = source.type;\n\n // Get child type for video (it might be an embed)\n if (plyr.type === 'video') {\n var firstSource = source.sources[0];\n\n if ('type' in firstSource && _inArray(config.types.embed, firstSource.type)) {\n plyr.type = firstSource.type;\n }\n }\n }\n\n // Check for support\n plyr.supported = supported(plyr.type);\n\n // Create new markup\n switch(plyr.type) {\n case 'video':\n plyr.media = document.createElement('video');\n break;\n\n case 'audio':\n plyr.media = document.createElement('audio');\n break;\n\n case 'youtube':\n case 'vimeo':\n case 'soundcloud':\n plyr.media = document.createElement('div');\n plyr.embedId = source.sources[0].src;\n break;\n }\n\n // Inject the new element\n _prependChild(plyr.container, plyr.media);\n\n // Autoplay the new source?\n if (_is.boolean(source.autoplay)) {\n config.autoplay = source.autoplay;\n }\n\n // Set attributes for audio and video\n if (_inArray(config.types.html5, plyr.type)) {\n if (config.crossorigin) {\n plyr.media.setAttribute('crossorigin', '');\n }\n if (config.autoplay) {\n plyr.media.setAttribute('autoplay', '');\n }\n if ('poster' in source) {\n plyr.media.setAttribute('poster', source.poster);\n }\n if (config.loop) {\n plyr.media.setAttribute('loop', '');\n }\n }\n\n // Restore class hooks\n _toggleClass(plyr.container, config.classes.fullscreen.active, plyr.isFullscreen);\n _toggleClass(plyr.container, config.classes.captions.active, plyr.captionsEnabled);\n _toggleStyleHook();\n\n // Set new sources for html5\n if (_inArray(config.types.html5, plyr.type)) {\n _insertChildElements('source', source.sources);\n }\n\n // Set up from scratch\n _setupMedia();\n\n // HTML5 stuff\n if (_inArray(config.types.html5, plyr.type)) {\n // Setup captions\n if ('tracks' in source) {\n _insertChildElements('track', source.tracks);\n }\n\n // Load HTML5 sources\n plyr.media.load();\n }\n\n // If HTML5 or embed but not fully supported, setupInterface and call ready now\n if (_inArray(config.types.html5, plyr.type) || (_inArray(config.types.embed, plyr.type) && !plyr.supported.full)) {\n // Setup interface\n _setupInterface();\n\n // Call ready\n _ready();\n }\n\n // Set aria title and iframe title\n config.title = source.title;\n _setTitle();\n }\n\n // Destroy instance adn wait for callback\n // Vimeo throws a wobbly if you don't wait\n _destroy(setup, false);\n }\n\n // Update poster\n function _updatePoster(source) {\n if (plyr.type === 'video') {\n plyr.media.setAttribute('poster', source);\n }\n }\n\n // Listen for control events\n function _controlListeners() {\n // IE doesn't support input event, so we fallback to change\n var inputEvent = (plyr.browser.isIE ? 'change' : 'input');\n\n // Click play/pause helper\n function togglePlay() {\n var play = _togglePlay();\n\n // Determine which buttons\n var trigger = plyr.buttons[play ? 'play' : 'pause'],\n target = plyr.buttons[play ? 'pause' : 'play'];\n\n // Get the last play button to account for the large play button\n if (target && target.length > 1) {\n target = target[target.length - 1];\n } else {\n target = target[0];\n }\n\n // Setup focus and tab focus\n if (target) {\n var hadTabFocus = _hasClass(trigger, config.classes.tabFocus);\n\n setTimeout(function() {\n target.focus();\n\n if (hadTabFocus) {\n _toggleClass(trigger, config.classes.tabFocus, false);\n _toggleClass(target, config.classes.tabFocus, true);\n }\n }, 100);\n }\n }\n\n // Get the focused element\n function getFocusElement() {\n var focused = document.activeElement;\n\n if (!focused || focused === document.body) {\n focused = null;\n } else {\n focused = document.querySelector(':focus');\n }\n\n return focused;\n }\n\n // Get the key code for an event\n function getKeyCode(event) {\n return event.keyCode ? event.keyCode : event.which;\n }\n\n // Detect tab focus\n function checkTabFocus(focused) {\n for (var button in plyr.buttons) {\n var element = plyr.buttons[button];\n\n if (_is.nodeList(element)) {\n for (var i = 0; i < element.length; i++) {\n _toggleClass(element[i], config.classes.tabFocus, (element[i] === focused));\n }\n } else {\n _toggleClass(element, config.classes.tabFocus, (element === focused));\n }\n }\n }\n\n // Keyboard shortcuts\n if (config.keyboardShorcuts.focused) {\n var last = null;\n\n // Handle global presses\n if (config.keyboardShorcuts.global) {\n _on(window, 'keydown keyup', function(event) {\n var code = getKeyCode(event),\n focused = getFocusElement(),\n allowed = [48,49,50,51,52,53,54,56,57,75,77,70,67],\n count = get().length;\n\n // Only handle global key press if there's only one player\n // and the key is in the allowed keys\n // and if the focused element is not editable (e.g. text input)\n // and any that accept key input http://webaim.org/techniques/keyboard/\n if (count === 1 && _inArray(allowed, code) && (!_is.htmlElement(focused) || !_matches(focused, config.selectors.editable))) {\n handleKey(event);\n }\n });\n }\n\n // Handle presses on focused\n _on(plyr.container, 'keydown keyup', handleKey);\n }\n\n function handleKey(event) {\n var code = getKeyCode(event),\n pressed = event.type === 'keydown',\n held = pressed && code === last;\n\n // If the event is bubbled from the media element\n // Firefox doesn't get the keycode for whatever reason\n if (!_is.number(code)) {\n return;\n }\n\n // Seek by the number keys\n function seekByKey() {\n // Get current duration\n var duration = plyr.media.duration;\n\n // Bail if we have no duration set\n if (!_is.number(duration)) {\n return;\n }\n\n // Divide the max duration into 10th's and times by the number value\n _seek((duration / 10) * (code - 48));\n }\n\n // Handle the key on keydown\n // Reset on keyup\n if (pressed) {\n // Which keycodes should we prevent default\n var preventDefault = [48,49,50,51,52,53,54,56,57,32,75,38,40,77,39,37,70,67];\n\n // If the code is found prevent default (e.g. prevent scrolling for arrows)\n if (_inArray(preventDefault, code)) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n switch(code) {\n // 0-9\n case 48:\n case 49:\n case 50:\n case 51:\n case 52:\n case 53:\n case 54:\n case 55:\n case 56:\n case 57: if (!held) { seekByKey(); } break;\n // Space and K key\n case 32:\n case 75: if (!held) { _togglePlay(); } break;\n // Arrow up\n case 38: _increaseVolume(); break;\n // Arrow down\n case 40: _decreaseVolume(); break;\n // M key\n case 77: if (!held) { _toggleMute() } break;\n // Arrow forward\n case 39: _forward(); break;\n // Arrow back\n case 37: _rewind(); break;\n // F key\n case 70: _toggleFullscreen(); break;\n // C key\n case 67: if (!held) { _toggleCaptions(); } break;\n }\n\n // Escape is handle natively when in full screen\n // So we only need to worry about non native\n if (!fullscreen.supportsFullScreen && plyr.isFullscreen && code === 27) {\n _toggleFullscreen();\n }\n\n // Store last code for next cycle\n last = code;\n } else {\n last = null;\n }\n }\n\n // Focus/tab management\n _on(window, 'keyup', function(event) {\n var code = getKeyCode(event),\n focused = getFocusElement();\n\n if (code === 9) {\n checkTabFocus(focused);\n }\n });\n _on(document.body, 'click', function() {\n _toggleClass(_getElement('.' + config.classes.tabFocus), config.classes.tabFocus, false);\n });\n for (var button in plyr.buttons) {\n var element = plyr.buttons[button];\n\n _on(element, 'blur', function() {\n _toggleClass(element, 'tab-focus', false);\n });\n }\n\n // Play\n _proxyListener(plyr.buttons.play, 'click', config.listeners.play, togglePlay);\n\n // Pause\n _proxyListener(plyr.buttons.pause, 'click', config.listeners.pause, togglePlay);\n\n // Restart\n _proxyListener(plyr.buttons.restart, 'click', config.listeners.restart, _seek);\n\n // Rewind\n _proxyListener(plyr.buttons.rewind, 'click', config.listeners.rewind, _rewind);\n\n // Fast forward\n _proxyListener(plyr.buttons.forward, 'click', config.listeners.forward, _forward);\n\n // Seek\n _proxyListener(plyr.buttons.seek, inputEvent, config.listeners.seek, _seek);\n\n // Set volume\n _proxyListener(plyr.volume.input, inputEvent, config.listeners.volume, function() {\n _setVolume(plyr.volume.input.value);\n });\n\n // Mute\n _proxyListener(plyr.buttons.mute, 'click', config.listeners.mute, _toggleMute);\n\n // Fullscreen\n _proxyListener(plyr.buttons.fullscreen, 'click', config.listeners.fullscreen, _toggleFullscreen);\n\n // Handle user exiting fullscreen by escaping etc\n if (fullscreen.supportsFullScreen) {\n _on(document, fullscreen.fullScreenEventName, _toggleFullscreen);\n }\n\n // Captions\n _on(plyr.buttons.captions, 'click', _toggleCaptions);\n\n // Seek tooltip\n _on(plyr.progress.container, 'mouseenter mouseleave mousemove', _updateSeekTooltip);\n\n // Toggle controls visibility based on mouse movement\n if (config.hideControls) {\n // Toggle controls on mouse events and entering fullscreen\n _on(plyr.container, 'mouseenter mouseleave mousemove touchstart touchend touchcancel touchmove enterfullscreen', _toggleControls);\n\n // Watch for cursor over controls so they don't hide when trying to interact\n _on(plyr.controls, 'mouseenter mouseleave', function(event) {\n plyr.controls.hover = event.type === 'mouseenter';\n });\n\n // Watch for cursor over controls so they don't hide when trying to interact\n _on(plyr.controls, 'mousedown mouseup touchstart touchend touchcancel', function(event) {\n plyr.controls.pressed = _inArray(['mousedown', 'touchstart'], event.type);\n });\n\n // Focus in/out on controls\n _on(plyr.controls, 'focus blur', _toggleControls, true);\n }\n\n // Adjust volume on scroll\n _on(plyr.volume.input, 'wheel', function(event) {\n event.preventDefault();\n\n // Detect \"natural\" scroll - suppored on OS X Safari only\n // Other browsers on OS X will be inverted until support improves\n var inverted = event.webkitDirectionInvertedFromDevice,\n step = (config.volumeStep / 5);\n\n // Scroll down (or up on natural) to decrease\n if (event.deltaY < 0 || event.deltaX > 0) {\n if (inverted) {\n _decreaseVolume(step);\n } else {\n _increaseVolume(step);\n }\n }\n\n // Scroll up (or down on natural) to increase\n if (event.deltaY > 0 || event.deltaX < 0) {\n if (inverted) {\n _increaseVolume(step);\n } else {\n _decreaseVolume(step);\n }\n }\n });\n }\n\n // Listen for media events\n function _mediaListeners() {\n // Time change on media\n _on(plyr.media, 'timeupdate seeking', _timeUpdate);\n\n // Update manual captions\n _on(plyr.media, 'timeupdate', _seekManualCaptions);\n\n // Display duration\n _on(plyr.media, 'durationchange loadedmetadata', _displayDuration);\n\n // Handle the media finishing\n _on(plyr.media, 'ended', function() {\n // Show poster on end\n if (plyr.type === 'video' && config.showPosterOnEnd) {\n // Clear\n if (plyr.type === 'video') {\n _setCaption();\n }\n\n // Restart\n _seek();\n\n // Re-load media\n plyr.media.load();\n }\n });\n\n // Check for buffer progress\n _on(plyr.media, 'progress playing', _updateProgress);\n\n // Handle native mute\n _on(plyr.media, 'volumechange', _updateVolume);\n\n // Handle native play/pause\n _on(plyr.media, 'play pause ended', _checkPlaying);\n\n // Loading\n _on(plyr.media, 'waiting canplay seeked', _checkLoading);\n\n // Click video\n if (config.clickToPlay && plyr.type !== 'audio') {\n // Re-fetch the wrapper\n var wrapper = _getElement('.' + config.classes.videoWrapper);\n\n // Bail if there's no wrapper (this should never happen)\n if (!wrapper) {\n return;\n }\n\n // Set cursor\n wrapper.style.cursor = \"pointer\";\n\n // On click play, pause ore restart\n _on(wrapper, 'click', function() {\n // Touch devices will just show controls (if we're hiding controls)\n if (config.hideControls && plyr.browser.isTouch && !plyr.media.paused) {\n return;\n }\n\n if (plyr.media.paused) {\n _play();\n } else if (plyr.media.ended) {\n _seek();\n _play();\n } else {\n _pause();\n }\n });\n }\n\n // Disable right click\n if (config.disableContextMenu) {\n _on(plyr.media, 'contextmenu', function(event) { event.preventDefault(); });\n }\n\n // Proxy events to container\n // Bubble up key events for Edge\n _on(plyr.media, config.events.concat(['keyup', 'keydown']).join(' '), function(event) {\n _triggerEvent(plyr.container, event.type, true);\n });\n }\n\n // Cancel current network requests\n // See https://github.com/Selz/plyr/issues/174\n function _cancelRequests() {\n if (!_inArray(config.types.html5, plyr.type)) {\n return;\n }\n\n // Remove child sources\n var sources = plyr.media.querySelectorAll('source');\n for (var i = 0; i < sources.length; i++) {\n _remove(sources[i]);\n }\n\n // Set blank video src attribute\n // This is to prevent a MEDIA_ERR_SRC_NOT_SUPPORTED error\n // Info: http://stackoverflow.com/questions/32231579/how-to-properly-dispose-of-an-html5-video-and-close-socket-or-connection\n plyr.media.setAttribute('src', 'https://cdn.selz.com/plyr/blank.mp4');\n\n // Load the new empty source\n // This will cancel existing requests\n // See https://github.com/Selz/plyr/issues/174\n plyr.media.load();\n\n // Debugging\n _log('Cancelled network requests');\n }\n\n // Destroy an instance\n // Event listeners are removed when elements are removed\n // http://stackoverflow.com/questions/12528049/if-a-dom-element-is-removed-are-its-listeners-also-removed-from-memory\n function _destroy(callback, restore) {\n // Bail if the element is not initialized\n if (!plyr.init) {\n return null;\n }\n\n // Type specific stuff\n switch (plyr.type) {\n case 'youtube':\n // Clear timers\n window.clearInterval(timers.buffering);\n window.clearInterval(timers.playing);\n\n // Destroy YouTube API\n plyr.embed.destroy();\n\n // Clean up\n cleanUp();\n\n break;\n\n case 'vimeo':\n // Destroy Vimeo API\n // then clean up (wait, to prevent postmessage errors)\n plyr.embed.unload().then(cleanUp);\n\n // Vimeo does not always return\n timers.cleanUp = window.setTimeout(cleanUp, 200);\n\n break;\n\n case 'video':\n case 'audio':\n // Restore native video controls\n _toggleNativeControls(true);\n\n // Clean up\n cleanUp();\n\n break;\n }\n\n function cleanUp() {\n clearTimeout(timers.cleanUp);\n\n // Default to restore original element\n if (!_is.boolean(restore)) {\n restore = true;\n }\n\n // Callback\n if (_is.function(callback)) {\n callback.call(original);\n }\n\n // Bail if we don't need to restore the original element\n if (!restore) {\n return;\n }\n\n // Remove init flag\n plyr.init = false;\n\n // Replace the container with the original element provided\n plyr.container.parentNode.replaceChild(original, plyr.container);\n\n // Allow overflow (set on fullscreen)\n document.body.style.overflow = '';\n\n // Event\n _triggerEvent(original, 'destroyed', true);\n }\n }\n\n // Setup a player\n function _init() {\n // Bail if the element is initialized\n if (plyr.init) {\n return null;\n }\n\n // Setup the fullscreen api\n fullscreen = _fullscreen();\n\n // Sniff out the browser\n plyr.browser = _browserSniff();\n\n // Bail if nothing to setup\n if (!_is.htmlElement(plyr.media)) {\n return;\n }\n\n // Load saved settings from localStorage\n _setupStorage();\n\n // Set media type based on tag or data attribute\n // Supported: video, audio, vimeo, youtube\n var tagName = media.tagName.toLowerCase();\n if (tagName === 'div') {\n plyr.type = media.getAttribute('data-type');\n plyr.embedId = media.getAttribute('data-video-id');\n\n // Clean up\n media.removeAttribute('data-type');\n media.removeAttribute('data-video-id');\n } else {\n plyr.type = tagName;\n config.crossorigin = (media.getAttribute('crossorigin') !== null);\n config.autoplay = (config.autoplay || (media.getAttribute('autoplay') !== null));\n config.loop = (config.loop || (media.getAttribute('loop') !== null));\n }\n\n // Check for support\n plyr.supported = supported(plyr.type);\n\n // If no native support, bail\n if (!plyr.supported.basic) {\n return;\n }\n\n // Wrap media\n plyr.container = _wrap(media, document.createElement('div'));\n\n // Allow focus to be captured\n plyr.container.setAttribute('tabindex', 0);\n\n // Add style hook\n _toggleStyleHook();\n\n // Debug info\n _log('' + plyr.browser.name + ' ' + plyr.browser.version);\n\n // Setup media\n _setupMedia();\n\n // Setup interface\n // If embed but not fully supported, setupInterface (to avoid flash of controls) and call ready now\n if (_inArray(config.types.html5, plyr.type) || (_inArray(config.types.embed, plyr.type) && !plyr.supported.full)) {\n // Setup UI\n _setupInterface();\n\n // Call ready\n _ready();\n\n // Set title on button and frame\n _setTitle();\n }\n\n // Successful setup\n plyr.init = true;\n }\n\n // Setup the UI\n function _setupInterface() {\n // Don't setup interface if no support\n if (!plyr.supported.full) {\n _warn('Basic support only', plyr.type);\n\n // Remove controls\n _remove(_getElement(config.selectors.controls.wrapper));\n\n // Remove large play\n _remove(_getElement(config.selectors.buttons.play));\n\n // Restore native controls\n _toggleNativeControls(true);\n\n // Bail\n return;\n }\n\n // Inject custom controls if not present\n var controlsMissing = !_getElements(config.selectors.controls.wrapper).length;\n if (controlsMissing) {\n // Inject custom controls\n _injectControls();\n }\n\n // Find the elements\n if (!_findElements()) {\n return;\n }\n\n // If the controls are injected, re-bind listeners for controls\n if (controlsMissing) {\n _controlListeners();\n }\n\n // Media element listeners\n _mediaListeners();\n\n // Remove native controls\n _toggleNativeControls();\n\n // Setup fullscreen\n _setupFullscreen();\n\n // Captions\n _setupCaptions();\n\n // Set volume\n _setVolume();\n _updateVolume();\n\n // Reset time display\n _timeUpdate();\n\n // Update the UI\n _checkPlaying();\n }\n\n api = {\n getOriginal: function() { return original; },\n getContainer: function() { return plyr.container },\n getEmbed: function() { return plyr.embed; },\n getMedia: function() { return plyr.media; },\n getType: function() { return plyr.type; },\n getDuration: _getDuration,\n getCurrentTime: function() { return plyr.media.currentTime; },\n getVolume: function() { return plyr.media.volume; },\n isMuted: function() { return plyr.media.muted; },\n isReady: function() { return _hasClass(plyr.container, config.classes.ready); },\n isLoading: function() { return _hasClass(plyr.container, config.classes.loading); },\n isPaused: function() { return plyr.media.paused; },\n on: function(event, callback) { _on(plyr.container, event, callback); return this; },\n play: _play,\n pause: _pause,\n stop: function() { _pause(); _seek(); },\n restart: _seek,\n rewind: _rewind,\n forward: _forward,\n seek: _seek,\n source: _source,\n poster: _updatePoster,\n setVolume: _setVolume,\n togglePlay: _togglePlay,\n toggleMute: _toggleMute,\n toggleCaptions: _toggleCaptions,\n toggleFullscreen: _toggleFullscreen,\n toggleControls: _toggleControls,\n isFullscreen: function() { return plyr.isFullscreen || false; },\n support: function(mimeType) { return _supportMime(plyr, mimeType); },\n destroy: _destroy\n };\n\n // Everything done\n function _ready() {\n // Ready event at end of execution stack\n window.setTimeout(function() {\n _triggerEvent(plyr.media, 'ready');\n }, 0);\n\n // Set class hook on media element\n _toggleClass(plyr.media, defaults.classes.setup, true);\n\n // Set container class for ready\n _toggleClass(plyr.container, config.classes.ready, true);\n\n // Store a refernce to instance\n plyr.media.plyr = api;\n\n // Autoplay\n if (config.autoplay) {\n _play();\n }\n }\n\n // Initialize instance\n _init();\n\n // If init failed, return null\n if (!plyr.init) {\n return null;\n }\n\n return api;\n }\n\n // Load a sprite\n function loadSprite(url, id) {\n var x = new XMLHttpRequest();\n\n // If the id is set and sprite exists, bail\n if (_is.string(id) && _is.htmlElement(document.querySelector('#' + id))) {\n return;\n }\n\n // Create placeholder (to prevent loading twice)\n var container = document.createElement('div');\n container.setAttribute('hidden', '');\n if (_is.string(id)) {\n container.setAttribute('id', id);\n }\n document.body.insertBefore(container, document.body.childNodes[0]);\n\n // Check for CORS support\n if ('withCredentials' in x) {\n x.open('GET', url, true);\n } else {\n return;\n }\n\n // Inject hidden div with sprite on load\n x.onload = function() {\n container.innerHTML = x.responseText;\n }\n\n x.send();\n }\n\n // Check for support\n function supported(type) {\n var browser = _browserSniff(),\n isOldIE = (browser.isIE && browser.version <= 9),\n isIos = browser.isIos,\n isIphone = browser.isIphone,\n audioSupport = !!document.createElement('audio').canPlayType,\n videoSupport = !!document.createElement('video').canPlayType,\n basic = false,\n full = false;\n\n switch (type) {\n case 'video':\n basic = videoSupport;\n full = (basic && (!isOldIE && !isIphone));\n break;\n\n case 'audio':\n basic = audioSupport;\n full = (basic && !isOldIE);\n break;\n\n // Vimeo does not seem to be supported on iOS via API\n // Issue raised https://github.com/vimeo/player.js/issues/87\n case 'vimeo':\n basic = true;\n full = (!isOldIE && !isIos);\n break;\n\n case 'youtube':\n basic = true;\n full = (!isOldIE && !isIos);\n\n // YouTube seems to work on iOS 10+ on iPad\n if (isIos && !isIphone && browser.version >= 10) {\n full = true;\n }\n\n break;\n\n case 'soundcloud':\n basic = true;\n full = (!isOldIE && !isIphone);\n break;\n\n default:\n basic = (audioSupport && videoSupport);\n full = (basic && !isOldIE);\n }\n\n return {\n basic: basic,\n full: full\n };\n }\n\n // Setup function\n function setup(targets, options) {\n // Get the players\n var players = [],\n instances = [],\n selector = [defaults.selectors.html5, defaults.selectors.embed].join(',');\n\n // Select the elements\n if (_is.string(targets)) {\n // String selector passed\n targets = document.querySelectorAll(targets);\n } else if (_is.htmlElement(targets)) {\n // Single HTMLElement passed\n targets = [targets];\n } else if (!_is.nodeList(targets) && !_is.array(targets) && !_is.string(targets)) {\n // No selector passed, possibly options as first argument\n // If options are the first argument\n if (_is.undefined(options) && _is.object(targets)) {\n options = targets;\n }\n\n // Use default selector\n targets = document.querySelectorAll(selector);\n }\n\n // Convert NodeList to array\n if (_is.nodeList(targets)) {\n targets = Array.prototype.slice.call(targets);\n }\n\n // Bail if disabled or no basic support\n // You may want to disable certain UAs etc\n if (!supported().basic || !targets.length) {\n return false;\n }\n\n // Add to container list\n function add(target, media) {\n if (!_hasClass(media, defaults.classes.hook)) {\n players.push({\n // Always wrap in a
    for styling\n //container: _wrap(media, document.createElement('div')),\n // Could be a container or the media itself\n target: target,\n // This should be the