PageSourceSearch

https://providers.therapyforblackgirls.com/wp-content/plugins/superfly-menu/js/superfly-menu.js?ver=5.0.35

js therapyforblackgirls.com collected 2026-09-24 08:42:01 UTC 141,408 bytes, 1,750 lines download raw bytes

1var SF_DEBUG = true;
2
3;(function (window) {
4    var transitions = {
5            'transition': 'transitionend',
6            'WebkitTransition': 'webkitTransitionEnd',
7            'MozTransition': 'transitionend',
8            'OTransition': 'otransitionend'
9        },
10        elem = document.createElement('div');
11
12    for (var t in transitions) {
13        if (typeof elem.style[t] !== 'undefined') {
14            window.transitionEnd = transitions[t];
15            break;
16        }
17    }
18    if (!window.transitionEnd) window.transitionEnd = false;
19})(window);
20
21/*! jquery.finger - v0.1.4 - 2015-12-02
22 * https://github.com/ngryman/jquery.finger
23 * Copyright (c) 2015 Nicolas Gryman; Licensed MIT */
24!function (a) {
25    "function" == typeof define && define.amd ? define(["jquery"], a) : a("object" == typeof exports ? require("jquery") : jQuery)
26}(function (a) {
27    function b(c) {
28        c.preventDefault(), a.event.remove(v, "click", b)
29    }
30
31    function c(a, b) {
32        return (q ? b.originalEvent.touches[0] : b)["page" + a.toUpperCase()]
33    }
34
35    function d(c, d, e) {
36        var h = a.Event(d, x);
37        a.event.trigger(h, {originalEvent: c}, c.target), h.isDefaultPrevented() && (~d.indexOf("tap") && !q ? a.event.add(v, "click", b) : c.preventDefault()), e && (a.event.remove(v, t + "." + u, f), a.event.remove(v, s + "." + u, g))
38    }
39
40    function e(e) {
41        var l = e.timeStamp || +new Date;
42        j != l && (j = l, w.x = x.x = c("x", e), w.y = x.y = c("y", e), w.time = l, w.target = e.target, x.orientation = null, x.end = !1, h = !1, i = !1, k = setTimeout(function () {
43            i = !0, d(e, "press")
44        }, y.pressDuration), a.event.add(v, t + "." + u, f), a.event.add(v, s + "." + u, g), y.preventDefault && (e.preventDefault(), a.event.add(v, "click", b)))
45    }
46
47    function f(b) {
48        if (x.x = c("x", b), x.y = c("y", b), x.dx = x.x - w.x, x.dy = x.y - w.y, x.adx = Math.abs(x.dx), x.ady = Math.abs(x.dy), h = x.adx > y.motionThreshold || x.ady > y.motionThreshold) {
49            for (clearTimeout(k), x.orientation || (x.adx > x.ady ? (x.orientation = "horizontal", x.direction = x.dx > 0 ? 1 : -1) : (x.orientation = "vertical", x.direction = x.dy > 0 ? 1 : -1)); b.target && b.target !== w.target;)b.target = b.target.parentNode;
50            return b.target !== w.target ? (b.target = w.target, void g.call(this, a.Event(s + "." + u, b))) : void d(b, "drag")
51        }
52    }
53
54    function g(a) {
55        var b, c = a.timeStamp || +new Date, e = c - w.time;
56        if (clearTimeout(k), h || i || a.target !== w.target)a.target = w.target, e < y.flickDuration && d(a, "flick"), x.end = !0, b = "drag"; else {
57            var f = l === a.target && c - m < y.doubleTapInterval;
58            b = f ? "doubletap" : "tap", l = f ? null : w.target, m = c
59        }
60        d(a, b, !0)
61    }
62
63    var h, i, j, k, l, m, n = navigator.userAgent, o = /chrome/i.exec(n), p = /android/i.exec(n), q = "ontouchstart" in window && !(o && !p), r = q ? "touchstart" : "mousedown", s = q ? "touchend touchcancel" : "mouseup mouseleave", t = q ? "touchmove" : "mousemove", u = "finger", v = a("html")[0], w = {}, x = {}, y = a.Finger = {
64        pressDuration: 300,
65        doubleTapInterval: 300,
66        flickDuration: 150,
67        motionThreshold: 20
68    };
69    return a.event.add(v, r + "." + u, e), a.each("tap doubletap press drag flick".split(" "), function (b, c) {
70        a.fn[c] = function (a) {
71            return a ? this.on(c, a) : this.trigger(c)
72        }
73    }), y
74});
75
76/*jquery.mb.YTPlayer 29-01-2019
77 _ jquery.mb.components
78 _ email: [email protected]
79 _ Copyright (c) 2001-2019. Matteo Bicocchi (Pupunzi);
80 _ blog: http://pupunzi.open-lab.com
81 _ Open Lab s.r.l., Florence - Italy
82 */
83
84var ytp=ytp||{};function onYouTubeIframeAPIReady(){ytp.YTAPIReady||(ytp.YTAPIReady=!0,jQuery(document).trigger("YTAPIReady"))}var getYTPVideoID=function(e){var r,t;return 0<e.indexOf("youtu.be")||0<e.indexOf("youtube.com/embed")?r=(t=0<(r=e.substr(e.lastIndexOf("/")+1,e.length)).indexOf("?list=")?r.substr(r.lastIndexOf("="),r.length):null)?r.substr(0,r.lastIndexOf("?")):r:t=-1<e.indexOf("http")?(r=e.match(/[\\?&]v=([^&#]*)/)[1],0<e.indexOf("list=")?e.match(/[\\?&]list=([^&#]*)/)[1]:null):(r=15<e.length?null:e)?null:e,{videoID:r,playlistID:t}};function iOSversion(){if(/iP(hone|od|ad)/.test(navigator.platform)){var e=navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/);return[parseInt(e[1],10),parseInt(e[2],10),parseInt(e[3]||0,10)]}}!function(jQuery,ytp){jQuery.mbYTPlayer={name:"jquery.mb.YTPlayer",version:"3.2.9",build:"7414",author:"Matteo Bicocchi (pupunzi)",apiKey:"",defaults:{videoURL:null,containment:"body",ratio:"auto",fadeOnStartTime:1500,startAt:0,stopAt:0,autoPlay:!0,coverImage:!1,loop:!0,addRaster:!1,mask:!1,opacity:1,qual
84ity:"default",vol:50,mute:!1,showControls:!0,anchor:"center,center",showAnnotations:!1,cc_load_policy:!1,showYTLogo:!0,useOnMobile:!0,mobileFallbackImage:null,playOnlyIfVisible:!1,onScreenPercentage:30,stopMovieOnBlur:!0,realfullscreen:!0,optimizeDisplay:!0,abundance:.3,gaTrack:!0,remember_last_time:!1,addFilters:!1,onReady:function(e){},onError:function(e,r){}},controls:{play:"P",pause:"p",mute:"M",unmute:"A",onlyYT:"O",showSite:"R",ytLogo:"Y"},controlBar:null,locationProtocol:"https:",defaultFilters:{grayscale:{value:0,unit:"%"},hue_rotate:{value:0,unit:"deg"},invert:{value:0,unit:"%"},opacity:{value:0,unit:"%"},saturate:{value:0,unit:"%"},sepia:{value:0,unit:"%"},brightness:{value:0,unit:"%"},contrast:{value:0,unit:"%"},blur:{value:0,unit:"px"}},buildPlayer:function(options){if(ytp.YTAPIReady||void 0!==window.YT)setTimeout(function(){jQuery(document).trigger("YTAPIReady"),ytp.YTAPIReady=!0},100);else{jQuery("#YTAPI").remove();var tag=jQuery("<script><\/script>").attr({src:jQuery.mbYTPlayer.locationProtocol+"//www.youtube.com/iframe_api?v="+jQuery.mbYTPlayer.version,id:"YTAPI"});jQuery("head").prepend(tag)}function isIframe(){var r=!1;try{self.location.href!=top.location.href&&(r=!0)}catch(e){r=!0}return r}return this.each(function(){var YTPlayer=this,$YTPlayer=jQuery(YTPlayer);$YTPlayer.hide(),YTPlayer.loop=0,YTPlayer.state=0,YTPlayer.filters=jQuery.extend(!0,{},jQuery.mbYTPlayer.defaultFilters),YTPlayer.filtersEnabled=!0,YTPlayer.id=YTPlayer.id||"YTP_"+(new Date).getTime(),$YTPlayer.addClass("mb_YTPlayer");var property=$YTPlayer.data("property")&&"string"==typeof $YTPlayer.data("property")?eval("("+$YTPlayer.data("property")+")"):$YTPlayer.data("property");"object"!=typeof property&&(property={}),YTPlayer.opt=jQuery.extend(!0,{},jQuery.mbYTPlayer.defaults,YTPlayer.opt,options,property),YTPlayer.opt.elementId=YTPlayer.id,0===YTPlayer.opt.vol&&(YTPlayer.opt.vol=1,YTPlayer.opt.mute=!0),YTPlayer.opt.autoPlay&&0==YTPlayer.opt.mute&&jQuery.mbBrowser.chrome&&(jQuery(document).one("mousedown.YTPstart",function(){$YTPlayer.YTPPlay()}),console.info("YTPlayer info: On Webkit browsers you can not autoplay the video if the audio is on.")),YTPlayer.opt.loop&&"boolean"==typeof YTPlayer.opt.loop&&(YTPlayer.opt.loop=9999);var fullScreenAvailable=document.fullscreenEnabled||document.webkitFullscreenEnabled||document.mozFullScreenEnabled||document.msFullscreenEnabled;YTPlayer.opt.realfullscreen=!(isIframe()||!fullScreenAvailable)&&YTPlayer.opt.realfullscreen,YTPlayer.opt.showAnnotations=YTPlayer.opt.showAnnotations?"1":"3",YTPlayer.opt.cc_load_policy=YTPlayer.opt.cc_load_policy?"1":"0",YTPlayer.opt.coverImage=YTPlayer.opt.coverImage||YTPlayer.opt.backgroundImage,jQuery.mbBrowser.msie&&jQuery.mbBrowser.version<9&&(YTPlayer.opt.opacity=1),YTPlayer.opt.containment="self"===YTPlayer.opt.containment?$YTPlayer:jQuery(YTPlayer.opt.containment),YTPlayer.isRetina=window.retina||1<window.devicePixelRatio,YTPlayer.opt.ratio="auto"===YTPlayer.opt.ratio?16/9:YTPlayer.opt.ratio,YTPlayer.opt.ratio=eval(YTPlayer.opt.ratio),YTPlayer.orig_containment_background=YTPlayer.opt.containment.css("background-image"),$YTPlayer.attr("id")||$YTPlayer.attr("id","ytp_"+(new Date).getTime()),YTPlayer.playerID="iframe_"+YTPlayer.id,YTPlayer.isAlone=!1,YTPlayer.hasFocus=!0,YTPlayer.videoID=YTPlayer.opt.videoURL?getYTPVideoID(YTPlayer.opt.videoURL).videoID:!!$YTPlayer.attr("href")&&getYTPVideoID($YTPlayer.attr("href")).videoID,YTPlayer.playlistID=YTPlayer.opt.videoURL?getYTPVideoID(YTPlayer.opt.videoURL).playlistID:!!$YTPlayer.attr("href")&&getYTPVideoID($YTPlayer.attr("href")).playlistID;var start_from_last=0;if(jQuery.mbCookie.get("YTPlayer_start_from"+YTPlayer.videoID)&&(start_from_last=parseFloat(jQuery.mbCookie.get("YTPlayer_start_from"+YTPlayer.videoID))),YTPlayer.opt.remember_last_time&&start_from_last&&(YTPlayer.start_from_last=start_from_last,jQuery.mbCookie.remove("YTPlayer_start_from"+YTPlayer.videoID)),YTPlayer.isPlayer=$YTPlayer.is(YTPlayer.opt.containment),YTPlayer.isBackground=YTPlayer.opt.containment.is("body"),!YTPlayer.isBackground||!ytp.backgroundIsInited){if(YTPlayer.isPlayer&&$YTPlayer.show(),YTPlayer.overlay=jQuery("<div/>").css({position:"absolute",top:0,left:0,width:"100%",height:"100%"}).addClass("YTPOverlay"),YTPlayer.opt.coverImage||"none"!=YTPlayer.orig_containment_background){var bgndURL=YTPlayer.opt.coverImage?"url("+YTPlayer.opt.coverImage+") center center"
84:YTPlayer.orig_containment_background;YTPlayer.opt.containment.css({background:bgndURL,backgroundColor:"#000",backgroundSize:"cover",backgroundRepeat:"no-repeat"})}YTPlayer.wrapper=jQuery("<div/>").attr("id","wrapper_"+YTPlayer.id).css({position:"absolute",zIndex:0,minWidth:"100%",minHeight:"100%",left:0,top:0,overflow:"hidden",opacity:0}).addClass("mbYTP_wrapper"),YTPlayer.isPlayer&&(YTPlayer.inlinePlayButton=jQuery("<div/>").addClass("inlinePlayButton").html(jQuery.mbYTPlayer.controls.play),$YTPlayer.append(YTPlayer.inlinePlayButton),YTPlayer.inlinePlayButton.on("click",function(e){$YTPlayer.YTPPlay(),e.stopPropagation()}),YTPlayer.opt.autoPlay&&YTPlayer.inlinePlayButton.hide(),YTPlayer.overlay.on("click",function(){$YTPlayer.YTPTogglePlay()}).css({cursor:"pointer"}));var playerBox=jQuery("<div/>").attr("id",YTPlayer.playerID).addClass("playerBox");if(playerBox.css({position:"absolute",zIndex:0,width:"100%",height:"100%",top:0,left:0,overflow:"hidden",opacity:1}),YTPlayer.wrapper.append(playerBox),playerBox.after(YTPlayer.overlay),YTPlayer.isPlayer&&(YTPlayer.inlineWrapper=jQuery("<div/>").addClass("inline-YTPlayer"),YTPlayer.inlineWrapper.css({position:"relative",maxWidth:YTPlayer.opt.containment.css("width")}),YTPlayer.opt.containment.css({position:"relative",paddingBottom:"56.25%",overflow:"hidden",height:0}),YTPlayer.opt.containment.wrap(YTPlayer.inlineWrapper)),YTPlayer.opt.containment.children().not("script, style").each(function(){"static"==jQuery(this).css("position")&&jQuery(this).css("position","relative")}),YTPlayer.isBackground?(jQuery("body").css({boxSizing:"border-box"}),YTPlayer.wrapper.css({position:"fixed",top:0,left:0,zIndex:0})):"static"==YTPlayer.opt.containment.css("position")&&(YTPlayer.opt.containment.css({position:"relative"}),$YTPlayer.show()),YTPlayer.opt.containment.prepend(YTPlayer.wrapper),YTPlayer.isBackground||YTPlayer.overlay.on("mouseenter",function(){YTPlayer.controlBar&&YTPlayer.controlBar.length&&YTPlayer.controlBar.addClass("visible")}).on("mouseleave",function(){YTPlayer.controlBar&&YTPlayer.controlBar.length&&YTPlayer.controlBar.removeClass("visible")}),jQuery.mbBrowser.mobile&&!YTPlayer.opt.useOnMobile)return YTPlayer.opt.mobileFallbackImage&&(YTPlayer.wrapper.css({backgroundImage:"url("+YTPlayer.opt.mobileFallbackImage+")",backgroundPosition:"center center",backgroundSize:"cover",backgroundRepeat:"no-repeat",opacity:1}),YTPlayer.wrapper.css({opacity:1})),$YTPlayer;jQuery.mbBrowser.mobile&&YTPlayer.opt.autoPlay&&YTPlayer.opt.useOnMobile&&jQuery("body").one("touchstart",function(){YTPlayer.player.playVideo()}),jQuery(document).one("YTAPIReady",function(){$YTPlayer.trigger("YTAPIReady_"+YTPlayer.id),ytp.YTAPIReady=!0}),YTPlayer.isOnScreen=jQuery.mbYTPlayer.isOnScreen(YTPlayer,YTPlayer.opt.onScreenPercentage),$YTPlayer.one("YTAPIReady_"+YTPlayer.id,function(){var o=this,t=jQuery(o);o.isBackground&&ytp.backgroundIsInited||o.isInit||(o.isBackground&&(ytp.backgroundIsInited=!0),o.opt.autoPlay=void 0===o.opt.autoPlay?!!o.isBackground:o.opt.autoPlay,o.opt.vol=o.opt.vol?o.opt.vol:100,jQuery.mbYTPlayer.getDataFromAPI(o),jQuery(o).on("YTPChanged",function(e){if(!o.isInit){o.isInit=!0;var r={host:'https://www.youtube-nocookie.com',modestbranding:1,autoplay:0,controls:0,showinfo:0,rel:0,enablejsapi:1,version:3,playerapiid:o.playerID,origin:"*",allowfullscreen:!0,wmode:"transparent",iv_load_policy:o.opt.showAnnotations,cc_load_policy:o.opt.cc_load_policy,playsinline:jQuery.mbBrowser.mobile?1:0,html5:document.createElement("video").canPlayType?1:0};new YT.Player(o.playerID,{playerVars:r,host:'https://www.youtube-nocookie.com',events:{onReady:function(e){o.player=e.target,o.player.loadVideoById({videoId:o.videoID.toString(),suggestedQuality:o.opt.quality}),t.trigger("YTPlayerIsReady_"+o.id)},onStateChange:function(e){if("function"==typeof e.target.getPlayerState){var r=e.target.getPlayerState();if(o.preventTrigger||o.isStarting)o.preventTrigger=!1;else{var t;switch(o.state=r,e.data==YT.PlayerState.PLAYING&&e.target.setPlaybackQuality(o.opt.quality),r){case-1:t="YTPUnstarted";break;case 0:t="YTPRealEnd";break;case 1:t="YTPPlay",o.controlBar.length&&o.controlBar.find(".mb_YTPPlayPause").html(jQuery.mbYTPlayer.controls.pause),o.isPlayer&&o.inlinePlayButton.hide(),jQuery(document).off("mousedown.YTPstart");break;case 2:t="YTPPause",o.controlBar.length&&o.controlBar.find(".mb_YTPPlayPause").html(jQuery.mbYTPlayer.controls.play),o.isPlayer&&o.inlinePlayButton.show();break;
84case 3:o.player.setPlaybackQuality(o.opt.quality),t="YTPBuffering",o.controlBar.length&&o.controlBar.find(".mb_YTPPlayPause").html(jQuery.mbYTPlayer.controls.play);break;case 5:t="YTPCued"}var a=jQuery.Event(t);a.time=o.currentTime,jQuery(o).trigger(a)}}},onPlaybackQualityChange:function(e){var r=e.target.getPlaybackQuality(),t=jQuery.Event("YTPQualityChange");t.quality=r,jQuery(o).trigger(t)},onError:function(e){switch("function"==typeof o.opt.onError&&o.opt.onError(t,e),e.data){case 2:console.error("video ID:: "+o.videoID+": The request contains an invalid parameter value. For example, this error occurs if you specify a video ID that does not have 11 characters, or if the video ID contains invalid characters, such as exclamation points or asterisks.");break;case 5:console.error("video ID:: "+o.videoID+": The requested content cannot be played in an HTML5 player or another error related to the HTML5 player has occurred.");break;case 100:console.error("video ID:: "+o.videoID+": The video requested was not found. This error occurs when a video has been removed (for any reason) or has been marked as private.");break;case 101:case 150:console.error("video ID:: "+o.videoID+": The owner of the requested video does not allow it to be played in embedded players.")}o.isList&&jQuery(o).YTPPlayNext()}}}),t.on("YTPlayerIsReady_"+o.id,function(){if(o.isReady)return this;o.playerEl=o.player.getIframe(),jQuery(o.playerEl).unselectable(),t.optimizeDisplay(),jQuery(window).off("resize.YTP_"+o.id).on("resize.YTP_"+o.id,function(){t.optimizeDisplay()}),o.opt.remember_last_time&&jQuery(window).on("unload.YTP_"+o.id,function(){var e=o.player.getCurrentTime();jQuery.mbCookie.set("YTPlayer_start_from"+o.videoID,e,0)}),t.YTPCheckForState()})}}))}),$YTPlayer.off("YTPTime.mask"),jQuery.mbYTPlayer.applyMask(YTPlayer)}})},isOnScreen:function(e,r){r=r||10;var t=e.wrapper,a=jQuery(window).scrollTop(),o=a+jQuery(window).height(),n=t.height()*r/100,i=t.offset().top+n;return t.offset().top+(t.height()-n)<=o&&a<=i},getDataFromAPI:function(n){n.videoData=jQuery.mbStorage.get("YTPlayer_data_"+n.videoID),n.videoData?(setTimeout(function(){n.dataReceived=!0;var e=jQuery.Event("YTPChanged");e.time=n.currentTime,e.videoId=n.videoID,e.opt=n.opt,jQuery(n).trigger(e);var r=jQuery.Event("YTPData");for(var t in r.prop={},n.videoData)r.prop[t]=n.videoData[t];jQuery(n).trigger(r)},n.opt.fadeOnStartTime),n.hasData=!0):jQuery.mbYTPlayer.apiKey?jQuery.getJSON(jQuery.mbYTPlayer.locationProtocol+"//www.googleapis.com/youtube/v3/videos?id="+n.videoID+"&key="+jQuery.mbYTPlayer.apiKey+"&part=snippet",function(e){n.dataReceived=!0;var r,t=jQuery.Event("YTPChanged");t.time=n.currentTime,t.videoId=n.videoID,jQuery(n).trigger(t),e.items[0]?(r=e.items[0].snippet,n.videoData={},n.videoData.id=n.videoID,n.videoData.channelTitle=r.channelTitle,n.videoData.title=r.title,n.videoData.description=r.description.length<400?r.description:r.description.substring(0,400)+" ...",n.videoData.thumb_max=r.thumbnails.maxres?r.thumbnails.maxres.url:null,n.videoData.thumb_high=r.thumbnails.high?r.thumbnails.high.url:null,n.videoData.thumb_medium=r.thumbnails.medium?r.thumbnails.medium.url:null,jQuery.mbStorage.set("YTPlayer_data_"+n.videoID,n.videoData),n.hasData=!0):(n.videoData={},n.hasData=!1);var a=jQuery.Event("YTPData");for(var o in a.prop={},n.videoData)a.prop[o]=n.videoData[o];jQuery(n).trigger(a)}):(setTimeout(function(){var e=jQuery.Event("YTPChanged");e.time=n.currentTime,e.videoId=n.videoID,jQuery(n).trigger(e)},10),n.videoData=null),n.opt.ratio="auto"==n.opt.ratio?16/9:n.opt.ratio,n.isPlayer&&!n.opt.autoPlay&&(n.loading=jQuery("<div/>").addClass("loading").html("Loading").hide(),jQuery(n).append(n.loading),n.loading.fadeIn())},removeStoredData:function(){jQuery.mbStorage.remove()},getVideoData:function(){return this.get(0).videoData},getVideoID:function(){return this.get(0).videoID||!1},getPlaylistID:function(){return this.get(0).playlistID||!1},setVideoQuality:function(e){var r=this.get(0);return jQuery(r).YTPPause(),r.opt.quality=e,r.player.setPlaybackQuality(e),jQuery(r).YTPPlay(),this},getVideoQuality:function(){return this.get(0).player.getPlaybackQuality()},playlist:function(e,r,t){var a=this.get(0);return a.isList=!0,r&&(e=jQuery.shuffle(e)),a.videoID||(a.videos=e,a.videoCounter=1,a.videoLength=e.length,jQuery(a).data("property",e[0]),jQuery(a).YTPlayer()),"function"==typeof t&&jQuery(a).one("YTPChanged",function(){t(a)}),jQuery(a).on("YTPEnd",function(){jQuery(a).YTPPlayNext()}),this},playNext:function(){var e=this.get(0);return e.videoCounter++,e.videoCounter>
84e.videoLength&&(e.videoCounter=1),jQuery(e).YTPPlayIndex(e.videoCounter),this},playPrev:function(){var e=this.get(0);return e.videoCounter--,e.videoCounter<=0&&(e.videoCounter=e.videoLength),jQuery(e).YTPPlayIndex(e.videoCounter),this},playIndex:function(e){var r=this.get(0);r.checkForStartAt&&(clearInterval(r.checkForStartAt),clearInterval(r.getState)),r.videoCounter=e,r.videoCounter>=r.videoLength&&(r.videoCounter=r.videoLength);var t=r.videos[r.videoCounter-1];return jQuery(r).YTPChangeVideo(t),this},changeVideo:function(e){var r=this,t=r.get(0);t.opt.startAt=0,t.opt.stopAt=0,t.opt.mask=!1,t.opt.mute=!0,t.opt.autoPlay=!0,t.opt.addFilters=!1,t.opt.coverImage=!1,t.hasData=!1,t.hasChanged=!0,t.player.loopTime=void 0,e&&jQuery.extend(t.opt,e),t.videoID=getYTPVideoID(t.opt.videoURL).videoID,t.opt.loop&&"boolean"==typeof t.opt.loop&&(t.opt.loop=9999),t.wrapper.css({background:"none"}),jQuery(t.playerEl).CSSAnimate({opacity:0},t.opt.fadeOnStartTime,function(){jQuery.mbYTPlayer.getDataFromAPI(t),r.YTPGetPlayer().loadVideoById({videoId:t.videoID,suggestedQuality:t.opt.quality}),r.YTPPause(),r.optimizeDisplay(),r.YTPCheckForState()});var a=jQuery.Event("YTPChangeVideo");return a.time=t.currentTime,jQuery(t).trigger(a),jQuery.mbYTPlayer.applyMask(t),this},getPlayer:function(){var e=this.get(0);return e.isReady&&e.player||null},playerDestroy:function(){var e=this.get(0);return e.isReady&&(ytp.YTAPIReady=!0,ytp.backgroundIsInited=!1,e.isInit=!1,e.videoID=null,e.isReady=!1,e.wrapper.remove(),jQuery("#controlBar_"+e.id).remove(),clearInterval(e.checkForStartAt),clearInterval(e.getState)),this},fullscreen:function(real){var YTPlayer=this.get(0);void 0===real&&(real=eval(YTPlayer.opt.realfullscreen));var controls=jQuery("#controlBar_"+YTPlayer.id),fullScreenBtn=controls.find(".mb_OnlyYT"),videoWrapper=YTPlayer.isPlayer?YTPlayer.opt.containment:YTPlayer.wrapper;if(real){var fullscreenchange=jQuery.mbBrowser.mozilla?"mozfullscreenchange":jQuery.mbBrowser.webkit?"webkitfullscreenchange":"fullscreenchange";jQuery(document).off(fullscreenchange).on(fullscreenchange,function(){RunPrefixMethod(document,"IsFullScreen")||RunPrefixMethod(document,"FullScreen")?(jQuery(YTPlayer).YTPSetVideoQuality("default"),jQuery(YTPlayer).trigger("YTPFullScreenStart")):(YTPlayer.isAlone=!1,fullScreenBtn.html(jQuery.mbYTPlayer.controls.onlyYT),jQuery(YTPlayer).YTPSetVideoQuality(YTPlayer.opt.quality),videoWrapper.removeClass("YTPFullscreen"),videoWrapper.CSSAnimate({opacity:YTPlayer.opt.opacity},YTPlayer.opt.fadeOnStartTime),videoWrapper.css({zIndex:0}),YTPlayer.isBackground?jQuery("body").after(controls):YTPlayer.wrapper.before(controls),jQuery(window).resize(),jQuery(YTPlayer).trigger("YTPFullScreenEnd"))})}if(YTPlayer.isAlone)jQuery(document).off("mousemove.YTPlayer"),clearTimeout(YTPlayer.hideCursor),YTPlayer.overlay.css({cursor:"auto"}),real?cancelFullscreen():(videoWrapper.CSSAnimate({opacity:YTPlayer.opt.opacity},YTPlayer.opt.fadeOnStartTime),videoWrapper.css({zIndex:0})),fullScreenBtn.html(jQuery.mbYTPlayer.controls.onlyYT),YTPlayer.isAlone=!1;else{function hideMouse(){YTPlayer.overlay.css({cursor:"none"})}jQuery(document).on("mousemove.YTPlayer",function(e){YTPlayer.overlay.css({cursor:"auto"}),clearTimeout(YTPlayer.hideCursor),jQuery(e.target).parents().is(".mb_YTPBar")||(YTPlayer.hideCursor=setTimeout(hideMouse,3e3))}),hideMouse(),real?(videoWrapper.css({opacity:0}),videoWrapper.addClass("YTPFullscreen"),launchFullscreen(videoWrapper.get(0)),setTimeout(function(){videoWrapper.CSSAnimate({opacity:1},2*YTPlayer.opt.fadeOnStartTime),videoWrapper.append(controls),jQuery(YTPlayer).optimizeDisplay(),YTPlayer.player.seekTo(YTPlayer.player.getCurrentTime()+.1,!0)},YTPlayer.opt.fadeOnStartTime)):videoWrapper.css({zIndex:1e4}).CSSAnimate({opacity:1},2*YTPlayer.opt.fadeOnStartTime),fullScreenBtn.html(jQuery.mbYTPlayer.controls.showSite),YTPlayer.isAlone=!0}function RunPrefixMethod(e,r){for(var t,a,o=["webkit","moz","ms","o",""],n=0;n<o.length&&!e[t];){if(t=r,""==o[n]&&(t=t.substr(0,1).toLowerCase()+t.substr(1)),"undefined"!=(a=typeof e[t=o[n]+t]))return o=[o[n]],"function"==a?e[t]():e[t];n++}}function launchFullscreen(e){RunPrefixMethod(e,"RequestFullScreen")}function cancelFullscreen(){(RunPrefixMethod(document,"FullScreen")||RunPrefixMethod(document,"IsFullScreen"))&&RunPrefixMethod(document,"CancelFullScreen")}return this},toggleLoops:function(){var e=this.get(0),r=e.opt;return 1==r.loop?r.loop=0:(r.startAt?e.player.seekTo(r.startAt):e.player.playVideo(),r.loop=1),this},play:function(){var e=this.get(0),r=jQuery(e);return e.isReady&&(setTimeout(function(){r.YTPSetAbundance(e.opt.abundance)},300),e.player.playVideo(),jQuery(e.playerEl).css({opacity:1}),e.wrapper.css({backgroundImage:"none"}),e.wrapper.CSSAnimate({opacity:e.isAlone?1:e.opt.opacity}
84,e.opt.fadeOnStartTime),jQuery("#controlBar_"+e.id).find(".mb_YTPPlayPause").html(jQuery.mbYTPlayer.controls.pause),e.state=1),this},togglePlay:function(e){var r=this.get(0);return r.isReady&&(1==r.state?this.YTPPause():this.YTPPlay(),"function"==typeof e&&e(r.state)),this},stop:function(){var e=this.get(0);return e.isReady&&(jQuery("#controlBar_"+e.id).find(".mb_YTPPlayPause").html(jQuery.mbYTPlayer.controls.play),e.player.stopVideo()),this},pause:function(){var e=this.get(0);return e.isReady&&(e.opt.abundance<.2&&this.YTPSetAbundance(.2),e.player.pauseVideo(),e.state=2),this},seekTo:function(e){var r=this.get(0);return r.isReady&&r.player.seekTo(e,!0),this},setVolume:function(e){var r=this.get(0);return r.isReady&&(r.opt.vol=e,this.YTPUnmute(),r.player.setVolume(r.opt.vol),r.volumeBar&&r.volumeBar.length&&r.volumeBar.updateSliderVal(e)),this},getVolume:function(){var e=this.get(0);return e.isReady?e.player.getVolume():this},toggleVolume:function(){var e=this.get(0);return e.isReady&&(e.isMute?(jQuery.mbBrowser.mobile||this.YTPSetVolume(e.opt.vol),this.YTPUnmute()):this.YTPMute()),this},mute:function(){var e=this.get(0);if(!e.isReady)return this;if(e.isMute)return this;e.player.mute(),e.isMute=!0,e.player.setVolume(0),e.volumeBar&&e.volumeBar.length&&10<e.volumeBar.width()&&e.volumeBar.updateSliderVal(0),jQuery("#controlBar_"+e.id).find(".mb_YTPMuteUnmute").html(jQuery.mbYTPlayer.controls.unmute),jQuery(e).addClass("isMuted"),e.volumeBar&&e.volumeBar.length&&e.volumeBar.addClass("muted");var r=jQuery.Event("YTPMuted");return r.time=e.currentTime,e.preventTrigger||jQuery(e).trigger(r),this},unmute:function(){var e=this.get(0);if(!e.isReady)return this;if(!e.isMute)return this;e.player.unMute(),e.isMute=!1,jQuery(e).YTPSetVolume(e.opt.vol),e.volumeBar&&e.volumeBar.length&&e.volumeBar.updateSliderVal(10<e.opt.vol?e.opt.vol:10),jQuery("#controlBar_"+e.id).find(".mb_YTPMuteUnmute").html(jQuery.mbYTPlayer.controls.mute),jQuery(e).removeClass("isMuted"),e.volumeBar&&e.volumeBar.length&&e.volumeBar.removeClass("muted");var r=jQuery.Event("YTPUnmuted");return r.time=e.currentTime,e.preventTrigger||jQuery(e).trigger(r),this},applyFilter:function(e,r){var t=this.get(0);if(!t.isReady)return this;t.filters[e].value=r,t.filtersEnabled&&this.YTPEnableFilters()},applyFilters:function(e){var r=this,t=r.get(0);if(!t.isReady)return this;if(!t.isReady)return jQuery(t).on("YTPReady",function(){r.YTPApplyFilters(e)}),this;for(var a in e)r.YTPApplyFilter(a,e[a]);r.trigger("YTPFiltersApplied")},toggleFilter:function(e,r){var t=this.get(0);return t.isReady&&(t.filters[e].value?t.filters[e].value=0:t.filters[e].value=r,t.filtersEnabled&&jQuery(t).YTPEnableFilters()),this},toggleFilters:function(e){var r=this.get(0);return r.isReady&&(r.filtersEnabled?(jQuery(r).trigger("YTPDisableFilters"),jQuery(r).YTPDisableFilters()):(jQuery(r).YTPEnableFilters(),jQuery(r).trigger("YTPEnableFilters")),"function"==typeof e&&e(r.filtersEnabled)),this},disableFilters:function(){var e=this.get(0);if(!e.isReady)return this;var r=jQuery(e.playerEl);return r.css("-webkit-filter",""),r.css("filter",""),e.filtersEnabled=!1,this},enableFilters:function(){var e=this.get(0);if(!e.isReady)return this;var r=jQuery(e.playerEl),t="";for(var a in e.filters)e.filters[a].value&&(t+=a.replace("_","-")+"("+e.filters[a].value+e.filters[a].unit+") ");return r.css("-webkit-filter",t),r.css("filter",t),e.filtersEnabled=!0,this},removeFilter:function(e,r){var t=this.get(0);if(!t.isReady)return this;if("function"==typeof e&&(r=e,e=null),e)this.YTPApplyFilter(e,0),"function"==typeof r&&r(e);else{for(var a in t.filters)this.YTPApplyFilter(a,0);"function"==typeof r&&r(a),t.filters=jQuery.extend(!0,{},jQuery.mbYTPlayer.defaultFilters)}var o=jQuery.Event("YTPFiltersApplied");return this.trigger(o),this},getFilters:function(){var e=this.get(0);return e.isReady?e.filters:this},addMask:function(e){var r=this.get(0);if(!r.isReady)return this;e||(e=r.actualMask);var t=jQuery("<img/>").attr("src",e).on("load",function(){r.overlay.CSSAnimate({opacity:0}
84,r.opt.fadeOnStartTime,function(){r.hasMask=!0,t.remove(),r.overlay.css({backgroundImage:"url("+e+")",backgroundRepeat:"no-repeat",backgroundPosition:"center center",backgroundSize:"cover"}),r.overlay.CSSAnimate({opacity:1},r.opt.fadeOnStartTime)})});return this},removeMask:function(){var e=this.get(0);return e.isReady&&e.overlay.CSSAnimate({opacity:0},e.opt.fadeOnStartTime,function(){e.hasMask=!1,e.overlay.css({backgroundImage:"",backgroundRepeat:"",backgroundPosition:"",backgroundSize:""}),e.overlay.CSSAnimate({opacity:1},e.opt.fadeOnStartTime)}),this},applyMask:function(t){var a=jQuery(t);if(!t.isReady)return this;if(a.off("YTPTime.mask"),t.opt.mask)if("string"==typeof t.opt.mask)a.YTPAddMask(t.opt.mask),t.actualMask=t.opt.mask;else if("object"==typeof t.opt.mask){for(var e in t.opt.mask)if(t.opt.mask[e])jQuery("<img/>").attr("src",t.opt.mask[e]);t.opt.mask[0]&&a.YTPAddMask(t.opt.mask[0]),a.on("YTPTime.mask",function(e){for(var r in t.opt.mask)e.time==r&&(t.opt.mask[r]?(a.YTPAddMask(t.opt.mask[r]),t.actualMask=t.opt.mask[r]):a.YTPRemoveMask())})}},toggleMask:function(){var e=this.get(0);if(!e.isReady)return this;var r=jQuery(e);return e.hasMask?r.YTPRemoveMask():r.YTPAddMask(),this},manageProgress:function(){var e=this.get(0),r=jQuery("#controlBar_"+e.id),t=r.find(".mb_YTPProgress"),a=r.find(".mb_YTPLoaded"),o=r.find(".mb_YTPseekbar"),n=t.outerWidth(),i=Math.floor(e.player.getCurrentTime()),l=Math.floor(e.player.getDuration()),s=i*n/l,u=100*e.player.getVideoLoadedFraction();return a.css({left:0,width:u+"%"}),o.css({left:0,width:s}),{totalTime:l,currentTime:i}},buildControls:function(YTPlayer){if(jQuery("#controlBar_"+YTPlayer.id).remove(),YTPlayer.opt.showControls){if(YTPlayer.opt.showYTLogo=YTPlayer.opt.showYTLogo||YTPlayer.opt.printUrl,!jQuery("#controlBar_"+YTPlayer.id).length){YTPlayer.controlBar=jQuery("<div/>").attr("id","controlBar_"+YTPlayer.id).addClass("mb_YTPBar").css({whiteSpace:"noWrap",position:YTPlayer.isBackground?"fixed":"absolute",zIndex:YTPlayer.isBackground?1e4:1e3}).hide().on("click",function(e){e.stopPropagation()});var buttonBar=jQuery("<div/>").addClass("buttonBar"),playpause=jQuery("<span>"+jQuery.mbYTPlayer.controls.play+"</span>").addClass("mb_YTPPlayPause ytpicon").on("click",function(e){e.stopPropagation(),jQuery(YTPlayer).YTPTogglePlay()}),MuteUnmute=jQuery("<span>"+jQuery.mbYTPlayer.controls.mute+"</span>").addClass("mb_YTPMuteUnmute ytpicon").on("click",function(e){e.stopPropagation(),jQuery(YTPlayer).YTPToggleVolume()}),volumeBar=jQuery("<div/>").addClass("mb_YTPVolumeBar").css({display:"inline-block"});YTPlayer.volumeBar=volumeBar;var idx=jQuery("<span/>").addClass("mb_YTPTime"),vURL=YTPlayer.opt.videoURL?YTPlayer.opt.videoURL:"";vURL.indexOf("http")<0&&(vURL=jQuery.mbYTPlayer.locationProtocol+"//www.youtube.com/watch?v="+YTPlayer.opt.videoURL);var movieUrl=jQuery("<span/>").html(jQuery.mbYTPlayer.controls.ytLogo).addClass("mb_YTPUrl ytpicon").attr("title","view on YouTube").on("click",function(){window.open(vURL,"viewOnYT")}),onlyVideo=jQuery("<span/>").html(jQuery.mbYTPlayer.controls.onlyYT).addClass("mb_OnlyYT ytpicon").on("click",function(e){e.stopPropagation(),jQuery(YTPlayer).YTPFullscreen(YTPlayer.opt.realfullscreen)}),progressBar=jQuery("<div/>").addClass("mb_YTPProgress").css("position","absolute").on("click",function(e){e.stopPropagation(),timeBar.css({width:e.clientX-timeBar.offset().left}),YTPlayer.timeW=e.clientX-timeBar.offset().left,YTPlayer.controlBar.find(".mb_YTPLoaded").css({width:0});var r=Math.floor(YTPlayer.player.getDuration());YTPlayer.goto=timeBar.outerWidth()*r/progressBar.outerWidth(),YTPlayer.player.seekTo(parseFloat(YTPlayer.goto),!0),YTPlayer.controlBar.find(".mb_YTPLoaded").css({width:0})}),loadedBar=jQuery("<div/>").addClass("mb_YTPLoaded").css("position","absolute"),timeBar=jQuery("<div/>").addClass("mb_YTPseekbar").css("position","absolute");progressBar.append(loadedBar).append(timeBar),buttonBar.append(playpause).append(MuteUnmute).append(volumeBar).append(idx),YTPlayer.opt.showYTLogo&&buttonBar.append(movieUrl),(YTPlayer.isBackground||eval(YTPlayer.opt.realfullscreen)&&!YTPlayer.isBackgroun
84d)&&buttonBar.append(onlyVideo),YTPlayer.controlBar.append(buttonBar).append(progressBar),YTPlayer.isBackground?jQuery("body").after(YTPlayer.controlBar):(YTPlayer.controlBar.addClass("inlinePlayer"),YTPlayer.wrapper.before(YTPlayer.controlBar)),volumeBar.simpleSlider({initialval:YTPlayer.opt.vol,scale:100,orientation:"h",callback:function(e){0==e.value?jQuery(YTPlayer).YTPMute():jQuery(YTPlayer).YTPUnmute(),YTPlayer.player.setVolume(e.value),YTPlayer.isMute||(YTPlayer.opt.vol=e.value)}})}}else YTPlayer.controlBar=!1},checkForState:function(){var YTPlayer=this.get(0),$YTPlayer=jQuery(YTPlayer);clearInterval(YTPlayer.getState);var interval=100;if(!jQuery.contains(document,YTPlayer))return $YTPlayer.YTPPlayerDestroy(),clearInterval(YTPlayer.getState),void clearInterval(YTPlayer.checkForStartAt);jQuery.mbYTPlayer.checkForStart(YTPlayer),YTPlayer.getState=setInterval(function(){var $YTPlayer=jQuery(YTPlayer);if(YTPlayer.isReady){var prog=jQuery(YTPlayer).YTPManageProgress(),stopAt=YTPlayer.opt.stopAt>YTPlayer.opt.startAt?YTPlayer.opt.stopAt:0;if(stopAt=stopAt<YTPlayer.player.getDuration()?stopAt:0,YTPlayer.currentTime!=prog.currentTime){var YTPEvent=jQuery.Event("YTPTime");YTPEvent.time=YTPlayer.currentTime,jQuery(YTPlayer).trigger(YTPEvent)}if(YTPlayer.currentTime=prog.currentTime,YTPlayer.totalTime=YTPlayer.player.getDuration(),0==YTPlayer.player.getVolume()?$YTPlayer.addClass("isMuted"):$YTPlayer.removeClass("isMuted"),YTPlayer.opt.showControls&&(prog.totalTime?YTPlayer.controlBar.find(".mb_YTPTime").html(jQuery.mbYTPlayer.formatTime(prog.currentTime)+" / "+jQuery.mbYTPlayer.formatTime(prog.totalTime)):YTPlayer.controlBar.find(".mb_YTPTime").html("-- : -- / -- : --")),eval(YTPlayer.opt.stopMovieOnBlur)&&(document.hasFocus()?document.hasFocus()&&!YTPlayer.hasFocus&&-1!=YTPlayer.state&&0!=YTPlayer.state&&(YTPlayer.hasFocus=!0,YTPlayer.preventTrigger=!0,$YTPlayer.YTPPlay()):1==YTPlayer.state&&(YTPlayer.hasFocus=!1,YTPlayer.preventTrigger=!0,$YTPlayer.YTPPause())),YTPlayer.opt.playOnlyIfVisible){var isOnScreen=jQuery.mbYTPlayer.isOnScreen(YTPlayer,YTPlayer.opt.onScreenPercentage);isOnScreen||1!=YTPlayer.state?isOnScreen&&!YTPlayer.isOnScreen&&(YTPlayer.isOnScreen=!0,YTPlayer.player.playVideo()):(YTPlayer.isOnScreen=!1,$YTPlayer.YTPPause())}if(YTPlayer.controlBar.length&&YTPlayer.controlBar.outerWidth()<=400&&!YTPlayer.isCompact?(YTPlayer.controlBar.addClass("compact"),YTPlayer.isCompact=!0,!YTPlayer.isMute&&YTPlayer.volumeBar&&YTPlayer.volumeBar.updateSliderVal(YTPlayer.opt.vol)):YTPlayer.controlBar.length&&400<YTPlayer.controlBar.outerWidth()&&YTPlayer.isCompact&&(YTPlayer.controlBar.removeClass("compact"),YTPlayer.isCompact=!1,!YTPlayer.isMute&&YTPlayer.volumeBar&&YTPlayer.volumeBar.updateSliderVal(YTPlayer.opt.vol)),0<YTPlayer.player.getPlayerState()&&(parseFloat(YTPlayer.player.getDuration()-.5)<YTPlayer.player.getCurrentTime()||0<stopAt&&parseFloat(YTPlayer.player.getCurrentTime())>stopAt)){if(YTPlayer.isEnded)return;if(YTPlayer.isEnded=!0,setTimeout(function(){YTPlayer.isEnded=!1},1e3),YTPlayer.isList){if(!YTPlayer.opt.loop||0<YTPlayer.opt.loop&&YTPlayer.player.loopTime===YTPlayer.opt.loop-1){YTPlayer.player.loopTime=void 0,clearInterval(YTPlayer.getState);var YTPEnd=jQuery.Event("YTPEnd");return YTPEnd.time=YTPlayer.currentTime,void jQuery(YTPlayer).trigger(YTPEnd)}}else if(!YTPlayer.opt.loop||0<YTPlayer.opt.loop&&YTPlayer.player.loopTime===YTPlayer.opt.loop-1){YTPlayer.player.loopTime=void 0,YTPlayer.state=2;var bgndURL=YTPlayer.opt.coverImage?"url("+YTPlayer.opt.coverImage+") center center":YTPlayer.orig_containment_background;return YTPlayer.opt.containment.css({background:bgndURL,backgroundSize:"cover"}),jQuery(YTPlayer).YTPPause(),void YTPlayer.wrapper.CSSAnimate({opacity:0}
84,YTPlayer.opt.fadeOnStartTime,function(){YTPlayer.controlBar.length&&YTPlayer.controlBar.find(".mb_YTPPlayPause").html(jQuery.mbYTPlayer.controls.play);var e=jQuery.Event("YTPEnd");e.time=YTPlayer.currentTime,jQuery(YTPlayer).trigger(e),YTPlayer.player.seekTo(YTPlayer.opt.startAt,!0);var r=YTPlayer.opt.coverImage?"url("+YTPlayer.opt.coverImage+") center center":YTPlayer.orig_containment_background;YTPlayer.opt.containment.css({background:r,backgroundSize:"cover"})})}YTPlayer.player.loopTime=YTPlayer.player.loopTime?++YTPlayer.player.loopTime:1,YTPlayer.opt.startAt=YTPlayer.opt.startAt||1,YTPlayer.preventTrigger=!0,YTPlayer.state=2,YTPlayer.player.seekTo(YTPlayer.opt.startAt,!0)}}},interval)},checkForStart:function(YTPlayer){var $YTPlayer=jQuery(YTPlayer);if(jQuery.contains(document,YTPlayer)){if(jQuery.mbYTPlayer.buildControls(YTPlayer),YTPlayer.overlay)if(YTPlayer.opt.addRaster){var classN="dot"==YTPlayer.opt.addRaster?"raster-dot":"raster";YTPlayer.overlay.addClass(YTPlayer.isRetina?classN+" retina":classN)}else YTPlayer.overlay.removeClass(function(e,r){var t=r.split(" "),a=[];return jQuery.each(t,function(e,r){/raster.*/.test(r)&&a.push(r)}),a.push("retina"),a.join(" ")});YTPlayer.preventTrigger=!0,YTPlayer.state=2,YTPlayer.preventTrigger=!0,YTPlayer.player.mute(),YTPlayer.player.playVideo(),YTPlayer.isStarting=!0;var startAt=YTPlayer.start_from_last?YTPlayer.start_from_last:YTPlayer.opt.startAt?YTPlayer.opt.startAt:1;return YTPlayer.preventTrigger=!0,YTPlayer.checkForStartAt=setInterval(function(){YTPlayer.player.mute(),YTPlayer.player.seekTo(startAt,!0);var canPlayVideo=YTPlayer.player.getVideoLoadedFraction()>=startAt/YTPlayer.player.getDuration();if(0<YTPlayer.player.getDuration()&&YTPlayer.player.getCurrentTime()>=startAt&&canPlayVideo){YTPlayer.start_from_last=null,YTPlayer.preventTrigger=!0,$YTPlayer.YTPPause(),clearInterval(YTPlayer.checkForStartAt),"function"==typeof YTPlayer.opt.onReady&&YTPlayer.opt.onReady(YTPlayer),YTPlayer.isReady=!0,$YTPlayer.YTPRemoveFilter(),YTPlayer.opt.addFilters?$YTPlayer.YTPApplyFilters(YTPlayer.opt.addFilters):$YTPlayer.YTPApplyFilters(),$YTPlayer.YTPEnableFilters();var YTPready=jQuery.Event("YTPReady");if(YTPready.time=YTPlayer.currentTime,$YTPlayer.trigger(YTPready),YTPlayer.state=2,YTPlayer.opt.mute?$YTPlayer.YTPMute():(YTPlayer.player.unMute(),YTPlayer.opt.autoPlay&&console.debug("To make the video 'auto-play' you must mute the audio according with the new vendor policy")),"undefined"!=typeof _gaq&&eval(YTPlayer.opt.gaTrack)?_gaq.push(["_trackEvent","YTPlayer","Play",YTPlayer.hasData?YTPlayer.videoData.title:YTPlayer.videoID.toString()]):"undefined"!=typeof ga&&eval(YTPlayer.opt.gaTrack)&&ga("send","event","YTPlayer","play",YTPlayer.hasData?YTPlayer.videoData.title:YTPlayer.videoID.toString()),YTPlayer.opt.autoPlay){var YTPStart=jQuery.Event("YTPStart");YTPStart.time=YTPlayer.currentTime,jQuery(YTPlayer).trigger(YTPStart),YTPlayer.isStarting=!1,"mac"==jQuery.mbBrowser.os.name&&jQuery.mbBrowser.safari&&jQuery("body").one("mousedown.YTPstart",function(){$YTPlayer.YTPPlay()}),$YTPlayer.YTPPlay()}else YTPlayer.preventTrigger=!0,$YTPlayer.YTPPause(),YTPlayer.start_from_last&&YTPlayer.player.seekTo(startAt,!0),setTimeout(function(){YTPlayer.preventTrigger=!0,$YTPlayer.YTPPause(),YTPlayer.isPlayer||(YTPlayer.opt.coverImage?(YTPlayer.wrapper.css({opacity:0}),setTimeout(function(){var e=YTPlayer.opt.coverImage?"url("+YTPlayer.opt.coverImage+") center center":YTPlayer.orig_containment_background;YTPlayer.wrapper.css({background:e,backgroundSize:"cover",backgroundRepeat:"no-repeat"})},YTPlayer.opt.fadeOnStartTime)):(jQuery(YTPlayer.playerEl).CSSAnimate({opacity:1},YTPlayer.opt.fadeOnStartTime),YTPlayer.wrapper.CSSAnimate({opacity:YTPlayer.isAlone?1:YTPlayer.opt.opacity},YTPlayer.opt.fadeOnStartTime))),YTPlayer.isStarting=!1},500),YTPlayer.controlBar.length&&YTPlayer.controlBar.find(".mb_YTPPlayPause").html(jQuery.mbYTPlayer.controls.play);YTPlayer.isPlayer&&!YTPlayer.opt.autoPlay&&YTPlayer.loading&&YTPlayer.loading.length&&(YTPlayer.loading.html("Ready"),setTimeout(function(){YTPlayer.loading.fadeOut()},100)),YTPlayer.controlBar&&YTPlayer.controlBar.length&&YTPlayer.controlBar.slideDown(1e3)}"mac"==jQuery.mbBrowser.os.name&&jQuery.mbBrowser.safari&&(YTPlayer.player.playVideo(),0<=startAt&&YTPlayer.player.seekTo(startAt,!0))},100),$YTPlayer}$YTPlayer.YTPPlayerDestroy()},getTime:function(){var e=this.get(0);return jQuery.mbYTPlayer.formatTime(e.currentTime)},getTotalTime:function(e){var r=this.get(0);return jQuery.mbYTPlayer.formatTime(r.totalTime)},formatTime:function(e){var r=Math.floor(e/60),t=Math.floor(e-60*r);return(r<=9?"0"+r:r)+" : "+(t<=9?"0"+t:t)},setAnchor:function(e){this.optimizeDisplay(e)},getAnchor:function(){return this.get(0).opt.anchor},setAbundance:function(e,r){var t=this.get(0);return r&&(t.opt.abundance=e),this.optimizeDisplay(t.opt.anchor,e),this},getAbundance:function(){return this.get(0).opt.abundance},setOption:function(e,r){var t=this.get(0);return t.opt[e]=r,this}},jQuery.fn.optimizeDisplay=function(anchor,abundanceX){var YTPlayer=this.get(0),vid={},el=YTPlayer.wrapper,iframe=jQuery(YTPlayer.playerEl);YTPlayer.opt.anchor=anchor||YTPlayer.opt.anchor,YTPlayer.opt.anchor="undefined "!=typeof YTPlayer.opt.anchor?YTPlayer.opt.anchor:"center,center";var YTPAlign=YTPlayer.opt.anchor.split(","),ab=abundanceX||YTPlayer.opt.abundance;if(YTPlayer.opt.optimizeDisplay){var abundance=el.height()*ab,win={};win.width=el.outerWidth(),win.height=el.outerHeight()+abundance,YTPlayer.opt.ratio="auto"===YTPlayer.opt.ratio?16/9:YTPlayer.opt.ratio,YTPlayer.opt.ratio=eval(YTPlayer.opt.ratio),vid.width=win.width+abundance,vid.height=Math.ceil(vid.width/YTPlayer.opt.ratio),vid.marginTop=Math.ceil(-(vid.height-win.height+abundance)/2),vid.marginLeft=-abundance/2;var lowest=vid.height<win.height;for(var a in lowest&&(vid.height=win.height+abundance,vid.width=Math.ceil(vid.height*YTPlayer.opt.ratio),vid.marginTop=-abundance/2,vid.marginLeft=Math.ceil(-(vid.width-win.width)/2)),YTPAlign)if(YTPAlign.hasOwnProperty(a)){var al=YTPAlign[a].replace(/ /g,"");switch(al){case"top":vid.marginTop=-abundance;break;case"bottom":vid.marginTop=Math.ceil(-(vid.height-win.height)-abundance/2);break;case"left":vid.marginLeft=-abundance;break;case"right":vid.marginLeft=Math.ceil(-(vid.width-win.width)+abundance/2)}}}else vid.width="100%",vid.height="100%",vid.marginTop=0,vid.marginLeft=0;iframe.css({width:vid.width,height:vid.height,marginTop:vid.marginTop,marginLeft:vid.marginLeft,maxWidth:"initial"})},jQuery.shuffle=function(e){for(var r=e.slice(),t=r.length,a=t;a--;){var o=parseInt(Math.random()*t),n=r[a];r[a]=r[o],r[o]=n}return r},jQuery.fn.unselectable=function(){return this.each(function(){jQuery(this).css({"-moz-user-select":"none","-webkit-user-select":"none","user-select":"none"}).attr("unselectable","on")})},jQuery.fn.YTPlayer=jQuery.mbYTPlayer.buildPlayer,jQuery.fn.mb_YTPlayer=jQuery.mbYTPlayer.buildPlayer,jQuery.fn.YTPCheckForState=jQuery.mbYTPlayer.checkForState,jQuery.fn.YTPGetPlayer=jQuery.mbYTPlayer.getPlayer,jQuery.fn.YTPGetVideoID=jQuery.mbYTPlayer.getVideoID,jQuery.fn.YTPGetPlaylistID=jQuery.mbYTPlayer.getPlaylistID,jQuery.fn.YTPChangeVideo=jQuery.fn.YTPChangeMovie=jQuery.mbYTPlayer.changeVideo,jQuery.fn.YTPPlayerDestroy=jQuery.mbYTPlayer.playerDe
84stroy,jQuery.fn.YTPPlay=jQuery.mbYTPlayer.play,jQuery.fn.YTPTogglePlay=jQuery.mbYTPlayer.togglePlay,jQuery.fn.YTPStop=jQuery.mbYTPlayer.stop,jQuery.fn.YTPPause=jQuery.mbYTPlayer.pause,jQuery.fn.YTPSeekTo=jQuery.mbYTPlayer.seekTo,jQuery.fn.YTPlaylist=jQuery.mbYTPlayer.playlist,jQuery.fn.YTPPlayNext=jQuery.mbYTPlayer.playNext,jQuery.fn.YTPPlayPrev=jQuery.mbYTPlayer.playPrev,jQuery.fn.YTPPlayIndex=jQuery.mbYTPlayer.playIndex,jQuery.fn.YTPMute=jQuery.mbYTPlayer.mute,jQuery.fn.YTPUnmute=jQuery.mbYTPlayer.unmute,jQuery.fn.YTPToggleVolume=jQuery.mbYTPlayer.toggleVolume,jQuery.fn.YTPSetVolume=jQuery.mbYTPlayer.setVolume,jQuery.fn.YTPGetVolume=jQuery.mbYTPlayer.getVolume,jQuery.fn.YTPGetVideoData=jQuery.mbYTPlayer.getVideoData,jQuery.fn.YTPFullscreen=jQuery.mbYTPlayer.fullscreen,jQuery.fn.YTPToggleLoops=jQuery.mbYTPlayer.toggleLoops,jQuery.fn.YTPManageProgress=jQuery.mbYTPlayer.manageProgress,jQuery.fn.YTPSetVideoQuality=jQuery.mbYTPlayer.setVideoQuality,jQuery.fn.YTPGetVideoQuality=jQuery.mbYTPlayer.getVideoQuality,jQuery.fn.YTPApplyFilter=jQuery.mbYTPlayer.applyFilter,jQuery.fn.YTPApplyFilters=jQuery.mbYTPlayer.applyFilters,jQuery.fn.YTPToggleFilter=jQuery.mbYTPlayer.toggleFilter,jQuery.fn.YTPToggleFilters=jQuery.mbYTPlayer.toggleFilters,jQuery.fn.YTPRemoveFilter=jQuery.mbYTPlayer.removeFilter,jQuery.fn.YTPDisableFilters=jQuery.mbYTPlayer.disableFilters,jQuery.fn.YTPEnableFilters=jQuery.mbYTPlayer.enableFilters,jQuery.fn.YTPGetFilters=jQuery.mbYTPlayer.getFilters,jQuery.fn.YTPGetTime=jQuery.mbYTPlayer.getTime,jQuery.fn.YTPGetTotalTime=jQuery.mbYTPlayer.getTotalTime,jQuery.fn.YTPAddMask=jQuery.mbYTPlayer.addMask,jQuery.fn.YTPRemoveMask=jQuery.mbYTPlayer.removeMask,jQuery.fn.YTPToggleMask=jQuery.mbYTPlayer.toggleMask,jQuery.fn.YTPGetAbundance=jQuery.mbYTPlayer.getAbundance,jQuery.fn.YTPSetAbundance=jQuery.mbYTPlayer.setAbundance,jQuery.fn.YTPSetAnchor=jQuery.mbYTPlayer.setAnchor,jQuery.fn.YTPGetAnchor=jQuery.mbYTPlayer.getAnchor,jQuery.fn.YTPSetOption=jQuery.mbYTPlayer.setOption}(jQuery,ytp);var nAgt=navigator.userAgent;function isTouchSupported(){var e=nAgt.msMaxTouchPoints,r="ontouchstart"in document.createElement("div");return!(!e&&!r)}jQuery.browser=jQuery.browser||{},jQuery.browser.mozilla=!1,jQuery.browser.webkit=!1,jQuery.browser.opera=!1,jQuery.browser.safari=!1,jQuery.browser.chrome=!1,jQuery.browser.androidStock=!1,jQuery.browser.msie=!1,jQuery.browser.edge=!1,jQuery.browser.ua=nAgt;var getOS=function(){var e={version:"Unknown version",name:"Unknown OS"};return-1!=navigator.appVersion.indexOf("Win")&&(e.name="Windows"),-1!=navigator.appVersion.indexOf("Mac")&&0>navigator.appVersion.indexOf("Mobile")&&(e.name="Mac"),-1!=navigator.appVersion.indexOf("Linux")&&(e.name="Linux"),/Mac OS X/.test(nAgt)&&!/Mobile/.test(nAgt)&&(e.version=/Mac OS X ([\._\d]+)/.exec(nAgt)[1],e.version=e.version.replace(/_/g,".").substring(0,5)),/Windows/.test(nAgt)&&(e.version="Unknown.Unknown"),/Windows NT 5.1/.test(nAgt)&&(e.version="5.1"),/Windows NT 6.0/.test(nAgt)&&(e.version="6.0"),/Windows NT 6.1/.test(nAgt)&&(e.version="6.1"),/Windows NT 6.2/.test(nAgt)&&(e.version="6.2"),/Windows NT 10.0/.test(nAgt)&&(e.version="10.0"),/Linux/.test(nAgt)&&/Linux/.test(nAgt)&&(e.version="Unknown.Unknown"),e.name=e.name.toLowerCase(),e.major_version="Unknown",e.minor_version="Unknown","Unknown.Unknown"!=e.version&&(e.major_version=parseFloat(e.version.split(".")[0]),e.minor_version=parseFloat(e.version.split(".")[1])),e},nameOffset,verOffset,ix;if(jQuery.browser.os=getOS(),jQuery.browser.hasTouch=isTouchSupported(),jQuery.browser.name=navigator.appName,jQuery.browser.fullVersion=""+parseFloat(navigator.appVersion),jQuery.browser.majorVersion=parseInt(navigator.appVersion,10),-1!=(verOffset=nAgt.indexOf("Opera")))jQuery.browser.opera=!0,jQuery.browser.name="Opera",jQuery.browser.fullVersion=nAgt.substring(verOffset+6),-1!=(verOffset=nAgt.indexOf("Version"))&&(jQuery.browser.fullVersion=nAgt.substring(verOffset+8));else if(-1!=(verOffset=nAgt.indexOf("OPR")))jQuery.browser.opera=!0,jQuery.browser.name="Opera",jQuery.browser.fullVersion=nAgt.substring(verOffset+4);else if(-1!=(verOffset=nAgt.indexOf("MSIE")))jQuery.browser.msie=!0,jQuery.browser.name="Microsoft Internet Explorer",jQuery.browser.fullVersion=nAgt.substring(verOffset+5);else if(-1!=nAgt.indexOf("Trident")){jQuery.browser.msie=!0,jQuery.browser.name="Microsoft Internet Explorer";var start=nAgt.indexOf("rv:")+3,end=start+4;jQuery.browser.fullVersion=nAgt.substring(start,end)}else-1!=(verOffset=nAgt.indexOf("Edge"))?(jQuery.browser.edge=!0,jQuery.browser.name="Microsoft Edge",jQuery.browser.fullVersion=nAgt.substring(verOffset+5)):-1!=(verOffset=nAgt.indexOf("Chrome"))?(jQuery.browser.webkit=!0,jQuery.browser.chrome=!0,jQuery.browser.name="Chrome",jQuery.browser.fullVersion=nAgt.substring(verOffset+7)):-1<nAgt.indexOf("mozilla/5.0")&&-1<nAgt.indexOf("android ")&&-1<nAgt.indexOf("applewebkit")&&!(-1<nAgt.indexOf("chrome"))?(verOffset=nAgt.indexOf("Chrome"),jQuery.browser.webkit=!0,jQuery.browser.androidStock=!0,jQuery.browser.name="androidStock",jQuery.browser.fullVersion=nAgt.substring(verOffset+7)):-1!=(verOffset=nAgt.indexOf("Safari"))?(jQuery.browser.webkit=!0,jQuery.browser.safari=!0,jQuery.browser.name="Safari",jQuery.browser.fullVersion=nAgt.substring(verOffset+7),-1!=(verOffset=nAgt.indexOf("Version"))&&(jQuery.browser.fullVersion=nAgt.substring(verOffset+8))):-1!=(verOffset=nAgt.indexOf("AppleWebkit"))?(jQuery.browser.webkit=!0,jQuery.browser.safari=!0,jQuery.browser.name="Safari",jQuery.browser.fullVersion=nAgt.substring(verOffset+7),-1!=(verOffset=nAgt.indexOf("Version"))&&(jQuery.browser.fullVersion=nAgt.substring(verOffset+8))):-1!=(verOffset=nAgt.indexOf("Firefox"))?(jQuery.browser.mozilla=!0,jQuery.browser.name="Firefox",jQuery.browser.fullVersion=nAgt.substring(verOffset+8)):(nameOff
84set=nAgt.lastIndexOf(" ")+1)<(verOffset=nAgt.lastIndexOf("/"))&&(jQuery.browser.name=nAgt.substring(nameOffset,verOffset),jQuery.browser.fullVersion=nAgt.substring(verOffset+1),jQuery.browser.name.toLowerCase()==jQuery.browser.name.toUpperCase()&&(jQuery.browser.name=navigator.appName));function uncamel(e){return e.replace(/([A-Z])/g,function(e){return"-"+e.toLowerCase()})}function setUnit(e,r){return"string"!=typeof e||e.match(/^[\-0-9\.]+jQuery/)?""+e+r:e}function setFilter(e,r,t){var a=uncamel(r),o=jQuery.browser.mozilla?"":jQuery.CSS.sfx;e[o+"filter"]=e[o+"filter"]||"",t=setUnit(t>jQuery.CSS.filters[r].max?jQuery.CSS.filters[r].max:t,jQuery.CSS.filters[r].unit),e[o+"filter"]+=a+"("+t+") ",delete e[r]}-1!=(ix=jQuery.browser.fullVersion.indexOf(";"))&&(jQuery.browser.fullVersion=jQuery.browser.fullVersion.substring(0,ix)),-1!=(ix=jQuery.browser.fullVersion.indexOf(" "))&&(jQuery.browser.fullVersion=jQuery.browser.fullVersion.substring(0,ix)),jQuery.browser.majorVersion=parseInt(""+jQuery.browser.fullVersion,10),isNaN(jQuery.browser.majorVersion)&&(jQuery.browser.fullVersion=""+parseFloat(navigator.appVersion),jQuery.browser.majorVersion=parseInt(navigator.appVersion,10)),jQuery.browser.version=jQuery.browser.majorVersion,jQuery.browser.android=/Android/i.test(nAgt),jQuery.browser.blackberry=/BlackBerry|BB|PlayBook/i.test(nAgt),jQuery.browser.ios=/iPhone|iPad|iPod|webOS/i.test(nAgt),jQuery.browser.operaMobile=/Opera Mini/i.test(nAgt),jQuery.browser.windowsMobile=/IEMobile|Windows Phone/i.test(nAgt),jQuery.browser.kindle=/Kindle|Silk/i.test(nAgt),jQuery.browser.mobile=jQuery.browser.android||jQuery.browser.blackberry||jQuery.browser.ios||jQuery.browser.windowsMobile||jQuery.browser.operaMobile||jQuery.browser.kindle,jQuery.isMobile=jQuery.browser.mobile,jQuery.isTablet=jQuery.browser.mobile&&765<jQuery(window).width(),jQuery.isAndroidDefault=jQuery.browser.android&&!/chrome/i.test(nAgt),jQuery.mbBrowser=jQuery.browser,jQuery.browser.versionCompare=function(e,r){if("stringstring"!=typeof e+typeof r)return!1;for(var t=e.split("."),a=r.split("."),o=0,n=Math.max(t.length,a.length);o<n;o++){if(t[o]&&!a[o]&&0<parseInt(t[o])||parseInt(t[o])>parseInt(a[o]))return 1;if(a[o]&&!t[o]&&0<parseInt(a[o])||parseInt(t[o])<parseInt(a[o]))return-1}return 0},jQuery.support.CSStransition=function(){var e=(document.body||document.documentElement).style;return void 0!==e.transition||void 0!==e.WebkitTransition||void 0!==e.MozTransition||void 0!==e.MsTransition||void 0!==e.OTransition}(),jQuery.CSS={name:"mb.CSSAnimate",author:"Matteo Bicocchi",version:"2.0.0",transitionEnd:"transitionEnd",sfx:"",filters:{blur:{min:0,max:100,unit:"px"},brightness:{min:0,max:400,unit:"%"},contrast:{min:0,max:400,unit:"%"},grayscale:{min:0,max:100,unit:"%"},hueRotate:{min:0,max:360,unit:"deg"},invert:{min:0,max:100,unit:"%"},saturate:{min:0,max:400,unit:"%"},sepia:{min:0,max:100,unit:"%"}},normalizeCss:function(e){var r=jQuery.extend(!0,{},e);for(var t in jQuery.browser.webkit||jQuery.browser.opera?jQuery.CSS.sfx="-webkit-":jQuery.browser.mozilla?jQuery.CSS.sfx="-moz-":jQuery.browser.msie&&(jQuery.CSS.sfx="-ms-"),jQuery.CSS.sfx="",r){if("transform"===t&&(r[jQuery.CSS.sfx+"transform"]=r[t],delete r[t]),"transform-origin"===t&&(r[jQuery.CSS.sfx+"transform-origin"]=e[t],delete r[t]),"filter"!==t||jQuery.browser.mozilla||(r[jQuery.CSS.sfx+"filter"]=e[t],delete r[t]),"blur"===t&&setFilter(r,"blur",e[t]),"brightness"===t&&setFilter(r,"brightness",e[t]),"contrast"===t&&setFilter(r,"contrast",e[t]),"grayscale"===t&&setFilter(r,"grayscale",e[t]),"hueRotate"===t&&setFilter(r,"hueRotate",e[t]),"invert"===t&&setFilter(r,"invert",e[t]),"saturate"===t&&setFilter(r,"saturate",e[t]),"sepia"===t&&setFilter(r,"sepia",e[t]),"x"===t){var a=jQuery.CSS.sfx+"transform";r[a]=r[a]||"",r[a]+=" translateX("+setUnit(e[t],"px")+")",delete r[t]}"y"===t&&(r[a=jQuery.CSS.sfx+"transform"]=r[a]||"",r[a]+=" translateY("+setUnit(e[t],"px")+")",delete r[t]),"z"===t&&(r[a=jQuery.CSS.sfx+"transform"]=r[a]||"",r[a]+=" translateZ("+setUnit(e[t],"px")+")",delete r[t]),"rotate"===t&&(r[a=jQuery.CSS.sfx+"transform"]=r[a]||"",r[a]+=" rotate("+setUnit(e[t],"deg")+")",delete r[t]),"rotateX"===t&&(r[a=jQuery.CSS.sfx+"transform"]=r[a]||"",r[a]+=" rotateX("+setUnit(e[t],"deg")+")",delete r[t]),"rotateY"===t&&(r[a=jQuery.CSS.sfx+"transform"]=r[a]||"",r[a]+=" rotateY("+setUnit(e[t],"deg")+")",delete r[t]),"rotateZ"===t&&(r[a=jQuery.CSS.sfx+"transform"]=r[a]||"",r[a]+=" rotateZ("+setUnit(e[t],"deg")+")",delete r[t]),"scale"===t&&(r[a=jQuery.CSS.sfx+"transform"]=r[a]||"",r[a]+=" scale("+setUnit(e[t],"")+")",delete r[t]),"scaleX"===t&&(r[a=jQuery.CSS.sfx+"transform"]=r[a]||"",r[a]+=" scaleX("+setUnit(e[t],"")+")",delete r[t]),"scaleY"===t&&(r[a=jQuery.CSS.sfx+"transform"]=r[a]||"",r[a]+=" scaleY("+setUnit(e[t],"")+")",delete r[t]),"scaleZ"===t&&(r[a=jQuery.CSS.sfx+"transform"]=r[a]||"",r[a]+=" scaleZ("+setUnit(e[t],"")+")",delete r[t]),"skew"===t&&(r[a=jQuery.CSS.sfx+"transform"]=r[a]||"",r[a]+=" skew("+setUnit(e[t],"deg")+")",delete r[t]),"skewX"===t&&(r[a=jQuery.CSS.sfx+"transform"]=r[a]||"",r[a]+=" skewX("+setUnit(e[t],"deg")+")",delete r[t]),"skewY"===t&&(r[a=jQuery.CSS.sfx+"transform"]=r[a]||"",r[a]+=" skewY("+setUnit(e[t],"deg")+")",delete r[t]),"perspective"===t&&(r[a=jQuery.CSS.sfx+"transform"]=r[a]||"",r[a]+=" perspective("+setUnit(e[t],"px")+")",delete r[t])}return r},getProp:function(e){var r,t=[];for(r in e)t.indexOf(r)<0&&t.push(uncamel(r));return t.join(",")},animate:function(l,s,u,y,d){return this.each(function(){function e(){r.called=!0,r.CSSAIsRunning=!1,t.off(jQuery.CSS.transitionEnd+"."+r.id),clearTimeout(r.timeout),t.css(jQuery.CSS.sfx+"transition",""),"function"==typeof d&&d.apply(r),"function"==typeof r.CSSqueue&&(r.CSSqueue(),r.CSSqueue=null)}var r=this,t=jQuery(this);r.id=r.id||"CSSA_"+(new Date).getTime();var a=a||{type:"noEvent"};if(r.CSSAIsRunning&&r.eventType==a.type&&!jQuery.browser.msie&&jQuery.browser.version<=9)r.CSSqueue=function(){t.CSSAnimate(l,s,u,y,d)};else if(r.CSSqueue=null,r.eventType=a.type,0!==t.length&&l){if(l=jQuery.normalizeCss(l),r.CSSAIsRunning=!0,"function"==typeof s&&(d=s,s=jQuery.fx.speeds._default),"function"==typeof u&&(y=u,u=0),"string"==typeof u&&(d=u,u=0),"function"==typeof y&&(d=y,y="cubic-bezier(0.65,0.03,0.36,0.72)"),"string"==typeof s)for(var o in jQuery.fx.speeds){if(s==o){s=jQuery.fx.speeds[o];break}s=jQuery.fx.speeds._default}if(s||(s=jQuery.fx.speeds._default),"string"==typeof d&&(y=d,d=null),jQuery.support.CSStransition){var n={default:"ease",in:"ease-in",out:"ease-out","in-out":"ease-in-out",snap:"cubic-bezier(0,1,.5,1)",easeOutCubic:"cubic-bezier(.215,.61,.355,1)",easeInOutCubic:"cubic-bezier(.645,.045,.355,1)",easeInCirc:"cubic-bezier(.6,.04,.98,.335)",easeOutCirc:"cubic-bezier(.075,.82,.165,1)",easeInOutCirc:"cubic-bezier(.785,.135,.15,.86)",easeInExpo:"cubic-bezier(.95,.05,.795,.035)",easeOutExpo:"cubic-bezier(.19,1,.22,1)",easeInOutExpo:"cubic-bezier(1,0,0,1)",easeInQuad:"cubic-bezier(.55,.085,.68,.53)",easeOutQuad:"cubic-bezier(.25,.46,.45,.94)",easeInOutQuad:"cubic-bezier(.455,.03,.515,.955)",easeInQuart:"cubic-bezier(.895,.03,.685,.22)",easeOutQuart:"cubic-bezier(.165,.84,.44,1)",easeInOutQuart:"cubic-bezier(.77,0,.175,1
84)",easeInQuint:"cubic-bezier(.755,.05,.855,.06)",easeOutQuint:"cubic-bezier(.23,1,.32,1)",easeInOutQuint:"cubic-bezier(.86,0,.07,1)",easeInSine:"cubic-bezier(.47,0,.745,.715)",easeOutSine:"cubic-bezier(.39,.575,.565,1)",easeInOutSine:"cubic-bezier(.445,.05,.55,.95)",easeInBack:"cubic-bezier(.6,-.28,.735,.045)",easeOutBack:"cubic-bezier(.175, .885,.32,1.275)",easeInOutBack:"cubic-bezier(.68,-.55,.265,1.55)"};n[y]&&(y=n[y]),t.off(jQuery.CSS.transitionEnd+"."+r.id),n=jQuery.CSS.getProp(l);var i={};jQuery.extend(i,l),i[jQuery.CSS.sfx+"transition-property"]=n,i[jQuery.CSS.sfx+"transition-duration"]=s+"ms",i[jQuery.CSS.sfx+"transition-delay"]=u+"ms",i[jQuery.CSS.sfx+"transition-timing-function"]=y,setTimeout(function(){t.one(jQuery.CSS.transitionEnd+"."+r.id,e),t.css(i)},1),r.timeout=setTimeout(function(){r.called||!d?(r.called=!1,r.CSSAIsRunning=!1):(t.css(jQuery.CSS.sfx+"transition",""),d.apply(r),r.CSSAIsRunning=!1,"function"==typeof r.CSSqueue&&(r.CSSqueue(),r.CSSqueue=null))},s+u+10)}else{for(n in l)"transform"===n&&delete l[n],"filter"===n&&delete l[n],"transform-origin"===n&&delete l[n],"auto"===l[n]&&delete l[n],"x"===n&&(a=l[n],l[o="left"]=a,delete l[n]),"y"===n&&(a=l[n],l[o="top"]=a,delete l[n]),"-ms-transform"!==n&&"-ms-filter"!==n||delete l[n];t.delay(u).animate(l,s,d)}}})}},jQuery.fn.CSSAnimate=jQuery.CSS.animate,jQuery.normalizeCss=jQuery.CSS.normalizeCss,jQuery.fn.css3=function(t){return this.each(function(){var e=jQuery(this),r=jQuery.normalizeCss(t);e.css(r)})};var nAgt=navigator.userAgent;function isTouchSupported(){var e=nAgt.msMaxTouchPoints,r="ontouchstart"in document.createElement("div");return!(!e&&!r)}jQuery.browser=jQuery.browser||{},jQuery.browser.mozilla=!1,jQuery.browser.webkit=!1,jQuery.browser.opera=!1,jQuery.browser.safari=!1,jQuery.browser.chrome=!1,jQuery.browser.androidStock=!1,jQuery.browser.msie=!1,jQuery.browser.edge=!1,jQuery.browser.ua=nAgt;var getOS=function(){var e={version:"Unknown version",name:"Unknown OS"};return-1!=navigator.appVersion.indexOf("Win")&&(e.name="Windows"),-1!=navigator.appVersion.indexOf("Mac")&&navigator.appVersion.indexOf("Mobile")<0&&(e.name="Mac"),-1!=navigator.appVersion.indexOf("Linux")&&(e.name="Linux"),/Mac OS X/.test(nAgt)&&!/Mobile/.test(nAgt)&&(e.version=/Mac OS X (10|11[\.\_\d]+)/.exec(nAgt)[1],e.version=e.version.replace(/_/g,".").substring(0,5)),/Windows/.test(nAgt)&&(e.version="Unknown.Unknown"),/Windows NT 5.1/.test(nAgt)&&(e.version="5.1"),/Windows NT 6.0/.test(nAgt)&&(e.version="6.0"),/Windows NT 6.1/.test(nAgt)&&(e.version="6.1"),/Windows NT 6.2/.test(nAgt)&&(e.version="6.2"),/Windows NT 10.0/.test(nAgt)&&(e.version="10.0"),/Linux/.test(nAgt)&&/Linux/.test(nAgt)&&(e.version="Unknown.Unknown"),e.name=e.name.toLowerCase(),e.major_version="Unknown",e.minor_version="Unknown","Unknown.Unknown"!=e.version&&(e.major_version=parseFloat(e.version.split(".")[0]),e.minor_version=parseFloat(e.version.split(".")[1])),e},nameOffset,verOffset,ix;if(jQuery.browser.os=getOS(),jQuery.browser.hasTouch=isTouchSupported(),jQuery.browser.name=navigator.appName,jQuery.browser.fullVersion=""+parseFloat(navigator.appVersion),jQuery.browser.majorVersion=parseInt(navigator.appVersion,10),-1!=(verOffset=nAgt.indexOf("Opera")))jQuery.browser.opera=!0,jQuery.browser.name="Opera",jQuery.browser.fullVersion=nAgt.substring(verOffset+6),-1!=(verOffset=nAgt.indexOf("Version"))&&(jQuery.browser.fullVersion=nAgt.substring(verOffset+8));else if(-1!=(verOffset=nAgt.indexOf("OPR")))jQuery.browser.opera=!0,jQuery.browser.name="Opera",jQuery.browser.fullVersion=nAgt.substring(verOffset+4);else if(-1!=(verOffset=nAgt.indexOf("MSIE")))jQuery.browser.msie=!0,jQuery.browser.name="Microsoft Internet Explorer",jQuery.browser.fullVersion=nAgt.substring(verOffset+5);else if(-1!=nAgt.indexOf("Trident")){jQuery.browser.msie=!0,jQuery.browser.name="Microsoft Internet Explorer";var start=nAgt.indexOf("rv:")+3,end=start+4;jQuery.browser.fullVersion=nAgt.substring(start,end)}else-1!=(verOffset=nAgt.indexOf("Edge"))?(jQuery.browser.edge=!0,jQuery.browser.name="Microsoft Edge",jQuery.browser.fullVersion=nAgt.substring(verOffset+5)):-1!=(verOffset=nAgt.indexOf("Chrome"))?(jQuery.browser.webkit=!0,jQuery.browser.chrome=!0,jQuery.browser.name="Chrome",jQuery.browser.fullVersion=nAgt.substring(verOffset+7)):-1<nAgt.indexOf("mozilla/5.0")&&-1<nAgt.indexOf("android ")&&-1<nAgt.indexOf("applewebkit")&&!(-1<nAgt.indexOf("chrome"))?(verOffset=nAgt.indexOf("Chrome"),jQuery.browser.webkit=!0,jQuery.browser.androidStock=!0,jQuery.browser.name="androidStock",jQuery.browser.fullVersion=nAgt.substring(verOffset+7)):-1!=(verOffset=nAgt.indexOf("Safari"))?(jQuery.browser.webkit=!0,jQuery.browser.safari=!0,jQuery.browser.name="Safari",jQuery.browser.fullVersion=nAgt.substring(verOffset+7),-1!=(verOffset=nAgt.indexOf("Version"))&&(jQuery.browser.fullVersion=nAgt.substring(verOffset+8))):-1!=(verOffset=nAgt.indexOf("AppleWebkit"))?(jQuery.browser.webkit=!0,jQuery.browser.safari=!0,jQuery.browser.name="Safari",jQuery.browser.fullVersion=nAgt.substring(verOffset+7),-1!=(verOffset=nAgt.indexOf("Version"))&&(jQuery.browser.fullVersion=nAgt.substring(verOffset+8))):-1!=(verOffset=nAgt.indexOf("Firefox"))?(jQuery.browser.mozilla=!0,jQuery.browser.name="Firefox",jQuery.browser.fullVersion=nAgt.substring(verOffset+8)):(nameOff
84set=nAgt.lastIndexOf(" ")+1)<(verOffset=nAgt.lastIndexOf("/"))&&(jQuery.browser.name=nAgt.substring(nameOffset,verOffset),jQuery.browser.fullVersion=nAgt.substring(verOffset+1),jQuery.browser.name.toLowerCase()==jQuery.browser.name.toUpperCase()&&(jQuery.browser.name=navigator.appName));-1!=(ix=jQuery.browser.fullVersion.indexOf(";"))&&(jQuery.browser.fullVersion=jQuery.browser.fullVersion.substring(0,ix)),-1!=(ix=jQuery.browser.fullVersion.indexOf(" "))&&(jQuery.browser.fullVersion=jQuery.browser.fullVersion.substring(0,ix)),jQuery.browser.majorVersion=parseInt(""+jQuery.browser.fullVersion,10),isNaN(jQuery.browser.majorVersion)&&(jQuery.browser.fullVersion=""+parseFloat(navigator.appVersion),jQuery.browser.majorVersion=parseInt(navigator.appVersion,10)),jQuery.browser.version=jQuery.browser.majorVersion,jQuery.browser.android=/Android/i.test(nAgt),jQuery.browser.blackberry=/BlackBerry|BB|PlayBook/i.test(nAgt),jQuery.browser.ios=/iPhone|iPad|iPod|webOS/i.test(nAgt),jQuery.browser.operaMobile=/Opera Mini/i.test(nAgt),jQuery.browser.windowsMobile=/IEMobile|Windows Phone/i.test(nAgt),jQuery.browser.kindle=/Kindle|Silk/i.test(nAgt),jQuery.browser.mobile=jQuery.browser.android||jQuery.browser.blackberry||jQuery.browser.ios||jQuery.browser.windowsMobile||jQuery.browser.operaMobile||jQuery.browser.kindle,jQuery.isMobile=jQuery.browser.mobile,jQuery.isTablet=jQuery.browser.mobile&&765<jQuery(window).width(),jQuery.isAndroidDefault=jQuery.browser.android&&!/chrome/i.test(nAgt),jQuery.mbBrowser=jQuery.browser,jQuery.browser.versionCompare=function(e,r){if("stringstring"!=typeof e+typeof r)return!1;for(var t=e.split("."),a=r.split("."),o=0,n=Math.max(t.length,a.length);o<n;o++){if(t[o]&&!a[o]&&0<parseInt(t[o])||parseInt(t[o])>parseInt(a[o]))return 1;if(a[o]&&!t[o]&&0<parseInt(a[o])||parseInt(t[o])<parseInt(a[o]))return-1}return 0},function(o){o.simpleSlider={defaults:{initialval:0,scale:100,orientation:"h",readonly:!1,callback:!1},events:{start:o.browser.mobile?"touchstart":"mousedown",end:o.browser.mobile?"touchend":"mouseup",move:o.browser.mobile?"touchmove":"mousemove"},init:function(a){return this.each(function(){var r=this,t=o(r);t.addClass("simpleSlider"),r.opt={},o.extend(r.opt,o.simpleSlider.defaults,a),o.extend(r.opt,t.data());var e="h"==r.opt.orientation?"horizontal":"vertical";e=o("<div/>").addClass("level").addClass(e),t.prepend(e),r.level=e,t.css({cursor:"default"}),"auto"==r.opt.scale&&(r.opt.scale=o(r).outerWidth()),t.updateSliderVal(),r.opt.readonly||(t.on(o.simpleSlider.events.start,function(e){o.browser.mobile&&(e=e.changedTouches[0]),r.canSlide=!0,t.updateSliderVal(e),"h"==r.opt.orientation?t.css({cursor:"col-resize"}):t.css({cursor:"row-resize"}),o.browser.mobile||(e.preventDefault(),e.stopPropagation())}),o(document).on(o.simpleSlider.events.move,function(e){o.browser.mobile&&(e=e.changedTouches[0]),r.canSlide&&(o(document).css({cursor:"default"}),t.updateSliderVal(e),o.browser.mobile||(e.preventDefault(),e.stopPropagation()))}).on(o.simpleSlider.events.end,function(){o(document).css({cursor:"auto"}),r.canSlide=!1,t.css({cursor:"auto"})}))})},updateSliderVal:function(e){var r=this.get(0);if(r.opt){r.opt.initialval="number"==typeof r.opt.initialval?r.opt.initialval:r.opt.initialval(r);var t=o(r).outerWidth(),a=o(r).outerHeight();r.x="object"==typeof e?e.clientX+document.body.scrollLeft-this.offset().left:"number"==typeof e?e*t/r.opt.scale:r.opt.initialval*t/r.opt.scale,r.y="object"==typeof e?e.clientY+document.body.scrollTop-this.offset().top:"number"==typeof e?(r.opt.scale-r.opt.initialval-e)*a/r.opt.scale:r.opt.initialval*a/r.opt.scale,r.y=this.outerHeight()-r.y,r.scaleX=r.x*r.opt.scale/t,r.scaleY=r.y*r.opt.scale/a,r.outOfRangeX=r.scaleX>r.opt.scale?r.scaleX-r.opt.scale:r.scaleX<0?r.scaleX:0,r.outOfRangeY=r.scaleY>r.opt.scale?r.scaleY-r.opt.scale:r.scaleY<0?r.scaleY:0,r.outOfRange="h"==r.opt.orientation?r.outOfRangeX:r.outOfRangeY,r.value=void 0!==e?"h"==r.opt.orientation?r.x>=this.outerWidth()?r.opt.scale:r.x<=0?0:r.scaleX:r.y>=this.outerHeight()?r.opt.scale:r.y<=0?0:r.scaleY:"h"==r.opt.orientation?r.scaleX:r.scaleY,"h"==r.opt.orientation?r.level.width(Math.floor(100*r.x/t)+"%"):r.level.height(Math.floor(100*r.y/a)),"function"==typeof r.opt.callback&&r.opt.callback(r)}}},o.fn.simpleSlider=o.simpleSlider.init,o.fn.updateSliderVal=o.simpleSlider.updateSliderVal}(jQuery),function(r){r.mbCookie={set:function(e,r,t,a){"object"==typeof r&&(r=JSON.stringify(r)),a=a?"; domain="+a:"";var o=new Date,n="";0<t&&(o.setTime(o.getTime()+864e5*t),n="; expires="+o.toGMTString()),document.cookie=e+"="+r+n+"; path=/"+a},get:function(r){r+="=";for(var e=document.cookie.split(";"),t=0;t<e.length;t++){for(var a=e[t];" "==a.charAt(0);)a=a.substring(1,a.length);if(0==a.indexOf(r))try{return JSON.parse(a.substring(r.length,a.length))}catch(e){return a.substring(r.length,a.length)}}return null},remove:function(e){r.mbCookie.set(e,"",-1)}},r.mbStorage={set:function(e,r){"object"==typeof r&&(r=JSON.stringify(r)),localStorage.setItem(e,r)},get:function(r){if(!localStorage[r])return null;try{return JSON.parse(localStorage[r])}catch(e){return localStorage[r]}},remove:function(e){e?localStorage.removeItem(e):localStorage.clear()}}}(jQuery);
85
86;(function ($) {
87	"use strict";
88	
89    var console = window.console && window.SF_DEBUG ? window.console : {
90        log: function () {
91        }
92    }
93    var lh = location.href.replace(/\#.+/, '');
94
95    var triggered = false;
96
97    var set = function (obj, prop, val) {
98        Object.defineProperty(obj, prop, {
99            value: val
100        })
101        return val;
102    };
103
104    $.fn.hasClasses = function (e) {
105        var classes = e.replace(/\s/g, "").split(","),
106            t = this;
107        for (var i in classes) {
108            if ($(t).hasClass(classes[i])) return true;
109        }
110        return false
111    }
112
113    $.fn.addClasses = function (e) {
114        var classes = e.replace(/\s/g, "").split(","),
115            t = this;
116        for (var i in classes) $(t).addClass(classes[i]);
117        return this;
118    };
119	
120	
121	$( document ).one('sfm_doc_body_arrived ready', function () {
122		if ( triggered ) return;
123		else triggered = true;
124		
125		renderMenu();
126	});
127	
128	// on ready
129	$(function () {
130
131		if ( triggered ) return;
132		else triggered = true;
133		
134		renderMenu();
135	});
136
137    // WP customizer preview
138    $( document ).on( 'sfm_preview_full_refresh', function ( event, menuSavedState, savedScrollTop, $defmenu ) {
139
140        var opts = window.SF_Opts;
141
142        renderMenu( $defmenu );
143
144        if ( menuSavedState && menuSavedState === 'open' ) {
145
146            window.LM.showSidebar();
147
148            // scroll to saved state
149            if ( savedScrollTop ) $('.sfm-scroll-main .sfm-scroll').scrollTop( savedScrollTop );
150
151            if ( opts.sidebar_behaviour !== 'always' && opts.sidebar_style !== 'full' ) {
152                $('#sfm-sidebar').trigger( window.transitionEnd ); // to re-attach itemEventHandler for side panels
153            }
154        }
155
156    });
157
158    function renderMenu ( $defmenu ) {
159
160        var $win = $( window );
161        var $html = $( 'html' );
162        var $body = $( 'body' );
163        var originalWrite = document.write;
164        var opts = window.SF_Opts;
165        if ( !$defmenu ) {
166            $defmenu = opts.alt_menu ? $( opts.alt_menu) : $('#sfm-nav');
167        }
168
169        /*document.write = function () {
170            console.log('Superfly plugin debug: using document.write is bad practice and not supported')
171        };*/
172
173        $body.prepend( window.SFM_template );
174        // customizer
175        // $('#sfm-nav').removeAttr('data-customize-partial-id data-customize-partial-type data-customize-partial-placement-context')
176
177        // document.write = originalWrite;
178
179        var execFunc = opts.alt_menu ? $ : setTimeout;
180
181        execFunc( function () {
182
183            var LM = ( function () {
184
185                var isMobile = window.SFM_is_mobile || navigator.maxTouchPoints > 0;
186                var clickTapEvent = ( isMobile ? ( $.mobile  ? 'vclick' : 'tap') : 'click' );
187
188                var eventCancelTimeout, TIMEOUT_CONST = opts.eventsInterval || 350;
189
190                function clickLocked() {
191                    if (eventCancelTimeout) return true;
192                    eventCancelTimeout = setTimeout(function () {
193                        eventCancelTimeout = null;
194                    }, TIMEOUT_CONST);
195                    return false;
196                }
197
198                var $rollback = $('.sfm-rollback');
199                var $sidebar = $('#sfm-sidebar');
200                var $overlay = $('#sfm-overlay-wrapper');
201                var $socialbar = $('.sfm-social', $sidebar);
202                var $custom = $('.sfm-view-level-custom'), customOpened = false;
203                var $cont;
204                var $head = $('.sfm-logo');
205                var sums = [];
206                sums.push(parseInt(opts.width_panel_1));
207                sums.push(sums[0] + parseInt(opts.width_panel_2));
208                sums.push(sums[1] + parseInt(opts.width_panel_3));
209                sums.push(sums[2] + parseInt(opts.width_panel_4));
210
211                if (opts.alt_menu && $defmenu.length) {
212                    $('#sfm-nav').detach();
213                } else {
214                    $defmenu = $('#sfm-nav');
215                }
216
217                opts.$defmenu = $defmenu;
218
219                //
220                if (SF_DEBUG) {
221                    //$defmenu.find('a').attr('target', '_blank')
222                }
223
224                var direction = opts.sidebar_pos;
225                var opposite = direction === 'left' ? 'right' : 'left';
226                var pre = 'sfm';
227
228                var isIE = /msie|trident.*rv\:11\./.test(navigator.userAgent.toLowerCase());
229                var isFF = /firefox/.test(navigator.userAgent.toLowerCase());
230                var transProp = getVendorPropertyName('transform');
231                // var translation = _T.translate((direction === 'left' ? opts.width_panel_1 : -opts.width_panel_1), 0);
232                // var defTranslationStr = _T.toString(_T.translate(0, 0));
233                var htmlMargins = {
234                    top: parseInt($html.css('marginTop')),
235                    bottom: parseInt($html.css('marginBottom'))
236                }
237
238                var subOpeningEvent = 'mouseenter';
239
240                var bbg = $body.css('backgroundImage');
241                var bodyCss;
242                var $bodybg;
243                var $children;
244
245                if ( opts.sidebar_behaviour === 'push' ) {
246
247                    // todo check if this part is still needed
248                    if ( bbg !== 'none' ) {
249
250                        $body.prepend('<div id="sfm-body-bg"></div>');
251                        $bodybg = $('#sfm-body-bg');
252
253                        bodyCss = {
254                            'backgroundColor': $body.css('backgroundColor'),
255                            'backgroundImage': $body.css('backgroundImage'),
256                            'backgroundAttachment': $body.css('backgroundAttachment'),
257                            'backgroundSize': $body.css('backgroundSize'),
258                            'backgroundPosition': $body.css('backgroundPosition'),
259                            'backgroundRepeat': $body.css('backgroundRepeat'),
260                            'backgroundOrigin': $body.css('backgroundOrigin'),
261                            'backgroundClip': $body.css('backgroundClip')
262                        };
263
264                        if (bodyCss.backgroundColor.indexOf('(0, 0, 0, 0') + 1 || bodyCss.backgroundColor.indexOf('transparent') + 1) {
265                            bodyCss.backgroundColor = '#fff';
266                        }
267
268                        $children = $body.children().not('#sfm-body-bg, #sfm-fixed-container, script, style');
269
270                        if ( parseInt($children.first().css('marginTop')) || parseInt($children.last().css('marginBottom') )) {
271                            $body.addClass('sfm-body-float');
272                        }
273
274                        if (bodyCss.backgroundAttachment === 'fixed') {
275                            bodyCss.position = 'fixed';
276                            bodyCss.backgroundAttachment = 'scroll';
277                        }
278
279                        $bodybg.css( bodyCss );
280                        attachStyles('body > * {position: relative} body {overflow-x:hidden!important}');
281                    }
282                }
283
284                var menuOpts = {
285                    search: opts.search,
286                    addHomeLink: opts.addHomeLink === 'yes',
287                    addHomeText: opts.addHomeText || 'Home',
288                    subMenuSupport: opts.subMenuSupport === 'yes' /*&& opts.sidebar_style !== 'full'*/,
289                    subMenuSelector: opts.subMenuSelector,
290                    activeClassSelector: opts.activeClassSelector || '',
291                    allowedTags: 'DIV, NAV, UL, OL, LI, A, P, H1, H2, H3, H4, SPAN, STRONG',
292                    transitionDuration: 300,
293                    extra: opts.menuData
294                }
295                //console.log(menuOpts)
296
297                var Menu = {
298                    unique: 1,
299                    build: function ( $defmenu ) {
300
301                        var $newMenu;
302
303                        $newMenu = $defmenu.clone().removeAttr( "id class" );
304                        $newMenu = this.processDefMenu( $newMenu );
305                        $defmenu.detach();
306
307                        if ( menuOpts.addHomeLink ) {
308                            $newMenu.prepend( '<li><a href="http://' + window.location.hostname + '">' + menuOpts.addHomeText + "</a></li>");
309                        }
310
311                        if ( $newMenu.prop("tagName") === 'UL' ) {
312                            $newMenu.addClass( pre + "-menu-level-0" );
313                        } else {
314                            $newMenu.find( "ul" ).first().addClass( pre + "-menu-level-0" ).siblings( "ul" ).addClass( pre + "-menu-level-0" );
315                        }
316
317                        menuOpts.subMenuSelector && menuOpts.subMenuSupport ? this.buildSubMenus($newMenu) : this.removeSubMenus($newMenu);
318
319                        $newMenu.find( 'a' ).each( function () {
320                            var $t = $( this );
321                            var $li = $t.parent();
322                            if ( !$t.children( 'span' ).length ) $t.wrapInner( $('<span data-index="' + ( $li.index() + 1 ) + '"></span>') );
323                            if ( !menuOpts.subMenuSupport ) return;
324
325                            if ( $li.is('.sfm-has-child-menu') ) {
326                                $t.append( '<ins class="sfm-sm-indicator"><i></i></ins>' )
327                            }
328                        });
329
330                        if ( menuOpts.extra ) this.attachExtraTo( $newMenu.find("[class*=menu-item]") );
331
332                        $newMenu.prependTo('.sfm-nav .sfm-va-middle').show();
333
334                        if (menuOpts.search === 'yes') {
335                            $('.sfm-va-middle').prepend('<form role="search" method="get" class="sfm-search-form" action="' + opts.siteBase + '"><input type="text" class="search-field" placeholder="" value="" name="s"><span></span><input type="submit" class="search-submit" value="Search"></form>');
336                        }
337                        $cont = $("." + pre + "-nav");
338
339                        $newMenu.removeClass(pre + "-has-child-menu").addClass('sfm-menu');
340                    },
341
342                    processDefMenu: function ($menu) {
343
344                        var activeClassSelector = menuOpts.activeClassSelector ? menuOpts.activeClassSelector : "";
345                        var classes = menuOpts.subMenuSelector ? menuOpts.subMenuSelector : "";
346                        var tags = menuOpts.allowedTags.replace(/\s/g, "").split(",");
347                        var $items = $menu.find("[class*=menu-item]");
348
349                        $menu.find('.skip-link, .menu-toggle, a[title*="Skip to content"]').remove();
350
351                        $items.each(function () {
352                            var id = this.id ? this.id.replace('menu-item-', '') : (this.className.match(/menu-item-(\d+):?\b/) ? this.className.match(/menu-item-(\d+):?\b/)[1] : '');
353                            $(this).data('sfm-id', id);
354                        })
355
356                        $menu.find("*").each(function () {
357                            var $t = $(this);
358                            var tag = $t.prop('tagName');
359                            var cls = $t.prop('className');
360
361                            if (tags.indexOf(tag) === -1 || $.trim($t.text()) === "" || $t.is('.uber-close')) {
362                                return $t.remove();
363                            }
364
365                            if ($t.hasClasses(classes)) {
366                                $t.removeAttr("class id").addClass(classe
366s.split(",").join(' '));
367
368                            } else {
369                                if ($t.hasClasses(activeClassSelector)) {
370                                    $t.removeAttr("class id").addClass(pre + "-active-class");
371                                } else {
372                                    $t.removeAttr("class id");
373                                }
374                            }
375
376                            $t.removeAttr("style");
377
378                            if (tag === 'LI') {
379                                $t.addClass('sfm-menu-item-' + $t.data('sfm-id')).attr('tabindex', '-1');
380                            }
381
382                        });
383                        return $menu;
384                    },
385
386                    buildSubMenus: function ($menu) {
387                        var children = menuOpts.subMenuSelector.replace(/\s/g, "").split(",");
388
389                        for (var i = 0, len = children.length; i < len; i++) {
390                            $menu.find("." + children[i]).each(function () {
391                                var $t = $(this);
392                                $t.removeAttr("id class")
393                                    .addClass(pre + "-child-menu ")
394                                    .parent()
395                                    .addClass(pre + "-has-child-menu")
396                            });
397                        }
398
399                        this.detectLevel($menu)
400                    },
401
402                    attachExtraTo: function ($items) {
403                        var data;
404                        var https = location.protocol === 'https:';
405
406                        $items.each(function () {
407                            var $t = $(this);
408                            var id = $t.data('sfm-id');
409                            var data;
410
411                            if ( menuOpts.extra[id] ) {
412
413                                data = deparam(menuOpts.extra[id]);
414
415                                if ( data.hidemob && isMobile ) {
416                                    $t.remove();
417                                    return;
418                                }
419
420                                if ( data.img ) {
421                                    if ( direction == 'right' && opts.sidebar_style == 'skew' ) {
422                                        $t.find('> a').append('<img src="' + ( https ? data.img.replace('http:', 'https:') : data.img ) + '"/>')
423                                    } else {
424                                        $t.find('> a').prepend('<img src="' + ( https ? data.img.replace('http:', 'https:') : data.img ) + '"/>')
425                                    }
426                                } else if ( data.icon ) {
427                                    var style = data.icon_color ? 'color: ' + data.icon_color + ';' : '';
428                                    var icon = data.icon
429                                    var set = LAIconManagerUtil.getSet(icon) ? LAIconManagerUtil.getSet(icon) : 'Font Awesome';
430                                    if (set === '####') {
431                                        icon = LAIconManagerUtil.getIcon(icon)
432                                        if (direction == 'right' && opts.sidebar_style == 'skew') {
433                                            $t.find('> a').append('<i style="background-image:url(' + icon + ')" class="la_icon la_icon_manager_custom">');
434                                        } else {
435                                            $t.find('> a').prepend('<i style="background-image:url(' + icon + ')" class="la_icon la_icon_manager_custom">');
436                                        }
437                                    } else {
438                                        icon = icon.indexOf('fa-') !== -1 ? 'la' + md5('Font Awesome') + '-' + icon.substr(3) : LAIconManagerUtil.getIconClass(icon);
439                                        if (direction == 'right' && opts.sidebar_style == 'skew') {
440                                            $t.find('> a').append('<i style="' + style + '" class="la_icon ' + icon + '">');
441                                        } else {
442                                            $t.find('> a').prepend('<i style="' + style + '" class="la_icon ' + icon + '">');
443                                        }
444                                    }
445                                };
446
447                                if ( data.sline ) {
448                                    $t.find('> a span').append('<br><i class="sfm-sl">
448' + data.sline.replace(/\+/g, ' ') + '</i>');
449                                };
450
451                                if ( data.chapter ) {
452                                    $t.before('<li class="sfm-chapter"><div>' + data.chapter.replace(/\+/g, ' ') + '</div></li>')
453                                };
454
455                                if ( data.tabindex ) {
456                                    $t.attr( 'tabindex', data.tabindex );
457                                };
458
459                                if ( data.content ) {
460                                    if ( !$t.find(".sfm-sm-indicator").length && menuOpts.subMenuSupport ) {
461                                        $t.addClass( pre + '-has-child-menu' );
462                                        $t.find(' > a').append('<ins class="sfm-sm-indicator"><i></i></ins>');
463                                    }
464                                };
465
466                                $t.data('sfm-extra', data);
467
468                                if ( data.width ) {
469                                    $t.attr('data-extra-width', data.width);
470                                }
471
472                                if ( data.bg ) {
473                                    $t.attr('data-bg', data.bg);
474                                }
475
476                                $t.attr('data-sfm-id', id);
477
478                            } else {
479                                return
480                            }
481
482                        })
483
484                    },
485
486                    detectLevel: function ($menu) {
487                        $menu.find("." + pre + "-child-menu").each(function () {
488                            var $t = $(this);
489                            var t = $t.parents("." + pre + "-child-menu").length + 1;
490                            $t.addClass(pre + "-menu-level-" + t);
491
492                            if (!$sidebar.find('.' + pre + '-view-level-' + t).length) $sidebar.append($('<div class="sfm-view ' + pre + '-view-level-' + t + '"></div>'))
493                        })
494                    },
495
496                    removeSubMenus: function ($menu) {
497                        if (!menuOpts.subMenuSupport) {
498
499                            return $menu.children().each(function () {
500                                $(this).find("ul").remove();
501                            });
502                        } else {
503                            var o = menuOpts.subMenuSelector.replace(/\s/g, "").split(",");
504                            for (var l in o) $menu.find("." + o[l]).each(function () {
505                                $(this).remove()
506                            })
507                        }
508                    },
509
510                    toggleActiveClasses: function ($menu) {
511                        $menu.find("." + pre + "-has-child-menu").each(function () {
512                            var $t = $(this);
513                            if ($t.find("*").children("." + pre + "-active-class").length > 0) {
514                                $t.toggleClass(pre + "-child-menu-open");
515                                setTimeout(function () {
516                                    $t.addClass(pre + "-child-menu-open");
517                                    $t.find("." + pre + "-child-menu").first().show()
518                                }, menuOpts.transitionDuration);
519                            }
520                        })
521                    }
522                };
523
524                var currLevel = 0;
525                var cursor;
526                var animTimer;
527                var state = 'hidden';
528                var collapsing = false;
529                var events = 'off';
530                var ww;
531                var wh;
532                var MAX_WIDTH = 0;
533                var dragging = false;
534                var sfmPlayer;
535
536                function init( $defmenu ) {
537
538                    Menu.build( $defmenu );
539
540                    if ( !$sidebar.parent().is('body') ) {
541                        $body.prepend($('#sfm-body-bg, .sfm-rollback, #sfm-sidebar, #sfm-mob-navbar, #sfm-overlay-wrapper'))
542                    }
543
544                    var viewsL = Math.min(1 + $sidebar.find('.sfm-view').length, 4);
545
546                    if ( opts.sub_type === 'flyout' ) {
547                        for (var i = 1; i <= viewsL; i++) {
548                            MAX_WIDTH += parseInt(opts['width_panel_' + i]);
549                        }
550                    } else {
551                        MAX_WIDTH += parseInt(opts['width_panel_1']);
552                    }
553
554                    if ( opts.sidebar_behaviour === 'always' ) {
555                        $sidebar.on('mouseenter ' + clickTapEvent, '.sfm-menu li:not(.sfm-chapter)', itemEventHandler);
556                    }
557                    else if ( opts.sidebar_style === 'full' ) {
558                        // full click
559                        $sidebar.on(clickTapEvent, '.sfm-menu li:not(.sfm-chapter)', itemEventHandler);
560                    }
561                    else {
562                        $sidebar.addClass( 'sfm-fully-hidden');
563                        
564                        // Backup timer ID for transitionEnd fallback
565                        var transitionBackupTimer = null;
566                        var TRANSITION_DURATION = 350; // transition duration + buffer
567                        
568                        // Handler function for sidebar transition completion
569                        function handleSidebarTransition() {
570                            // Clear backup timer if running
571                            if (transitionBackupTimer) {
572                                clearTimeout(transitionBackupTimer);
573                                transitionBackupTimer = null;
574                            }
575                            
576                            if ( $sidebar.is('.sfm-sidebar-exposed') && events === 'off') {
577
578                                $sidebar.on('mouseenter ' + clickTapEvent, '.sfm-menu li:not(.sfm-chapter)', itemEventHandler);
579
580                                events = 'on';
581
582                            } else if ( !$sidebar.is('.sfm-sidebar-exposed') ) {
583
584                                $sidebar.off( 'mouseenter ' + clickTapEvent, '.sfm-menu-level-0 > li, .sfm-view ul > li' ).addClass( 'sfm-fully-hidden' );
585                                events = 'off';
586                                $overlay.css( 'visibility', 'hidden' );
587
588                                if ( opts.sidebar_behaviour === 'push' ) {
589
590                                    //setTimeout(function(){
591                                    var $fixed = $('.sfm-inner-fixed')
592                                    if (!isIE) $fixed.each(unshiftFixed);
593                                    $fixed.removeClass('sfm-inner-fixed');
594                                    //}, 0)
595                                }
596                            }
597                        }
598                        
599                        $sidebar.on( window.transitionEnd, function (e) {
600
601                            if (!$(e.target).is($sidebar)) return;
602                            
603                            handleSidebarTransition();
604                        });
605                        
606                        // Backup timer system - triggers if transitionEnd doesn't fire
607                        // Observe class changes and start backup timer
608                        var sidebarObserver = new MutationObserver(function(mutations) {
609                            mutations.forEach(function(mutation) {
610                                if (mutation.attributeName === 'class') {
611                                    // Start backup timer whenever class changes (transition starts)
612                                    if (transitionBackupTimer) {
613                                        clearTimeout(transitionBackupTimer);
614                                    }
615                                    transitionBackupTimer = setTimeout(function() {
616                                        handleSidebarTransition();
617                                    }, TRANSITION_DURATION);
618                                }
619                            });
620                        });
621                        
622                        sidebarObserver.observe($sidebar[0], { attributes: true, attributeFilter: ['class'] });
623                    }
624
625                    // accessibility events
626                    $sidebar.on( 'keyup', 'a', function ( e ) {
627                        if ( e.keyCode == 13 ) {
628                            // Do something
629                            itemEventHandler( e );
630                        }
631                    } );
632
633                    $body.on( 'keyup', function ( e ) {
634                        if ( state === 'open' && e.keyCode == 27 ) {
635                            // Do something
636                            hideSidebar();
637                        }
638                    } );
639
640
641                    // back to previous level
642                    // if ( opts.sub_type === 'swipe' ) {
643                    $sidebar.on( clickTapEvent, '.sfm-back-parent', backToParentView );
644                    // }
645
646                    $('.sfm-view').mouseenter(function () {
647                        clearTimeout( animTimer );
648                    });
649
650                    // state management
651                    $custom.on( (opts.sub_opening_type === 'hover' /*&& !isMobile*/ && opts.sub_type !== 'dropdown') ? 'mouseenter' : clickTapEvent, function () {
652                        cursor = this;
653                    });
654
655                    if ( opts.opening_type === 'hover' /*&& !isMobile*/ /*&& opts.sidebar_behaviour !== 'always'*/ ) {
656
657                        if (opts.sidebar_behaviour !== 'always') {
658                            $rollback.mouseenter(function (e) {
659                                if (!$(e.relatedTarget).is('.sfm-sidebar-close')) {
660                                    showSidebar()
661                                }
662                            });
663                        }
664
665                        $sidebar.mouseleave(function (e) {
666                            setTimeout(function () {
667                                hideSidebar()
668                            }, 14)
669                        });
670
671                    } else if ( opts.opening_type === 'click' /*|| isMobile */|| opts.sub_type === 'dropdown' ) {
672
673                        if ( opts.sub_opening_type === 'hover' ) {
674                            $sidebar.mouseleave( function (e) {
675                                setTimeout(function () {
676                                    $body.removeClass('sfm-view-pushed-custom sfm-view-pushed-1 sfm-view-pushed-2 sfm-view-pushed-3');
677                                    hideCustom(true);
678                                    $sidebar.find('.sfm-active-item').removeClass('sfm-active-item');
679                                    if (opts.sidebar_behaviour === 'always') {
680                                        setTimeout(function () {
681                                            $overlay.css('visibility', 'hidden')
682                                        }, 400);
683                                    }
684                                }, 250)
685                            });
686                        }
687                    }
688
689                    $('#sfm-overlay').on( clickTapEvent, hideSidebar );
690
691
692                    // these events should be attached only once
693                    if ( opts.togglers && !LM.run ) {
694                        /*
695                         var $togglers = $body.find(opts.togglers);
696                         if ($togglers) {
697
698                         }
699                         */
700                        $body.on( clickTapEvent , opts.togglers, function (e) {
701
702                            // preventing immediate double tap events occurring in some themes
703                            if (clickLocked()) return;
704
705                            e.preventDefault();
706                            e.stopImmediatePropagation();
707                            state === 'hidden' ? showSidebar() : hideSidebar();
708                            return false;
709                        });
710                    }
711
712                    $sidebar.on('click', '.sfm-menu a', function (e) {
713                        // console.log('preventing');
714                        e.preventDefault();
715                    });
716
717                    // these events should be attached only once
718                    if ( !LM.run ) $win.on('resize orientationchange', setSize);
719
720                    $sidebar.on("touchmove", function () {
721                        dragging = true;
722                    });
723
724                    $sidebar.on("touchend", function () {
725                        dragging = false;
726                    });
727
728                    $rollback.find('.sfm-navicon-button').add('#sfm-mob-navbar .sfm-navicon-button, .sfm-sidebar-close').on( clickTapEvent + ' keypress', function (e) {
729                        //e.stopImmediatePropagation();
730
731                        // preventing immediate double tap events occurring in some themes
732                        if (clickLocked()) return;
733
734                        if ( e.type !== clickTapEvent ) {
735                            if ( e.which != 13 ) { // enter
736                                return
737                            }
738                        }
739
740                        if ( state === 'hidden' ) {
741                            showSidebar();
742                            $( this ).addClass("sfm-open");
743                        } else {
744                            hideSidebar();
745                            $( this ).removeClass("sfm-open");
746                        }
747
748                        return false;
749                    });
750
751                    // propagate
752                    $('#sfm-sidebar .sfm-search-form span').on( clickTapEvent, function () {
753                        $( this ).closest('form').trigger('submit')
754                    })
755
756                    if ( isMobile ) {
757                        // todo check if still needed
758                        if (/iPad|iPhone/.test(navigator.userAgent)) {
759                            $sidebar.on('focus', 'input', function (e) {
760                                $body.css('overflowX', 'visible');
761                                $sidebar.css({'position': 'absolute', top: '-62px'})
762                                $(document).scrollTop(0);
763
764                            }).on('blur', 'input', function () {
765                                $sidebar.css('position', '');
766                                $body.css('overflowX', 'hidden');
767                            });
768                        }
769                        attachSwipesHandler();
770                    }
771
772                    populateSocialBarWith( opts.social );
773
774                    // 5.0, wrap for boxes
775                    if ( opts.sidebar_style === 'full' ) {
776                        $sidebar.find('.sfm-social, .sfm-copy').wrapAll( "<div class='sfm-fs-bottom-box'></div>" );
777                    }
778
779                    var behaviour = opts.sidebar_style == 'full' ? 'full' : opts.sidebar_behaviour;
780
781                    var bodyClasses = 'superfly-on sfm-style-' + opts.sidebar_style + ' sfm-sidebar-' + behaviour + ' sfm-toggle-' + opts.opening_type + (opts.blur === 'yes' ? ' sfm-blur' : '');
782                    if ( opts.sidebar_style == 'side' ) bodyClasses += ' sfm-sub-' + opts.sub_type  + ' sfm-sub-mob-' + opts.sub_mob_type
783                    $body.addClass( bodyClasses );
784
785                    if ( !LM.run ) {
786                        $( document ).ajaxComplete(function() {
787                            setTimeout(function(){
788                                if(!$body.is('.superfly-on')) {
789                                    $body.addClass( bodyClasses) ;
790                                }
791                            }, 0);
792                        });
793                    }
794
795                    setTimeout(function () {
796
797                        if ( opts.sidebar_behaviour === 'always' ) {
798                            setTimeout( function () {
799                            
799    setSize();
800                                $sidebar.css('opacity', '1');
801                            }, 300);
802                        } else {
803                            $sidebar.css('opacity', '1');
804
805                            setTimeout( function () {
806                                $sidebar.addClass('sfm-transitions-enabled');
807                            }, 300);
808                        }
809                    }, 0);
810
811                    if ( opts.test_mode === 'yes' ) {
812                        $sidebar.addClass( 'sfm-test-mode' );
813                    }
814
815                    $('.sfm-close').on( clickTapEvent, function () {
816                        $custom.removeClass('sfm-modal');
817                        var css = {'opacity': '', 'visibility': ''};
818                        $custom.css(css);
819                        $custom.find('.sfm-active').removeClass('sfm-active');
820                    })
821
822                    // fix for CF7
823                    $( function(){
824
825                        setTimeout(function(){
826
827                            var $cf7form = $('#sfm-sidebar .wpcf7 form');
828                            if ( !$cf7form.length ) return;
829                            $cf7form.each( function() {
830                                var $form = $( this );
831                                if ( window.wpcf7 ) window.wpcf7.initForm( $form );
832
833                                if ( window.wpcf7 && window.wpcf7.cached ) {
834                                    window.wpcf7.refill( $form );
835                                }
836                            } );
837
838                        },0)
839                    });
840
841                    // fix for comments in customizer
842
843
844                    // video init
845
846                    if ( !LM.run ) {
847
848                        $( document ).on( 'sfm-video-player-ready', function () {
849                            // stop loading animation
850                            console.log(' SF video ready ')
851
852                        })
853
854                        $( document ).on( 'sfm-video-player-error', function () {
855
856                        })
857                    }
858
859                    if ( opts.video_bg && ( opts.video_preload === 'yes'  || opts.sidebar_behaviour === 'always') ) {
860
861                        if ( isMobile && opts.video_mob === 'yes' ) {
862
863                            // disabled on mobiles
864
865                        } else {
866
867                            sfmPlayer = $(".sfm-video").YTPlayer();
868
869                            if ( opts.sidebar_behaviour === 'always' ) {
870
871                                sfmPlayer.YTPPlay();
872
873                            }
874                        }
875
876                    }
877
878                    // LM.init = function () {};
879                    LM.run = true;
880
881                    return this;
882                }
883
884                function hideCustom ( reset ) {
885                    if ( customOpened ) {
886                        var css = { 'opacity': '', 'visibility': '', transProp: '' };
887                        if ( reset ) {
888                            // css[ transProp ] = defTranslationStr;
889                            css[ 'width' ] = '';
890                        }
891                        else {
892                            // css[ transProp ] = $custom.data( 'startPos' ) || defTranslationStr;
893                        }
894                        $custom.css( css )//.data('startPos', '')
895                            .removeClass( function( index, cls ) {
896                                var match = cls.match( /sfm-custom-active-\d+/ );
897                                return match ? match[0] : false;
898                            });
899                        $custom.find('.sfm-active').removeClass('sfm-active');
900                    }
901                }
902
903                function setupFont() {
904                    var wh = window.innerHeight || document.documentElement.offsetHeight || document.documentElement.clientHeight;
905                    var th = wh - $('.sfm-logo').outerHeight() - $('.sfm-social').outerHeight() - 60;
906                    var th = wh - ($('.sfm-logo img').length ? 80 : 0 ) - ($('.sfm-social').children().length ? 85 : 0 ) - 30;
907                    var $links = $sidebar.find('.sfm-nav .sfm-menu li > a');
908                    var num = $links.length;
909                    var space = th / num;
910                    var line = Math.min(space - opts.item_padding * 2, isMobile ? 45 : 65);
911                    $links.css({'fontSize': line, 'lineHeight': space - opts.item_padding + 'px'})
912                    //$links.css('lineHeight', space + 'px')
913                    //console.log('line', th, space, space - opts.item_padding * 2, line)
914                }
915
916                function showSidebar() {
917                    var $children;
918                    var scrollTop, scrollLeft;
919                    if (state !== 'hidden') return;
920
921                    clearTimeout(animTimer);
922                    setSize();
923
924                    $sidebar.addClass('sfm-sidebar-exposed');
925                    $rollback.find('.sfm-navicon-button').add('#sfm-mob-navbar .sfm-navicon-button').addClass('sfm-open');
926                    $overlay.css('visibility', 'visible');
927
928                    $body.addClass('sfm-body-pushed');
929
930                    if ( opts.sidebar_style !== 'full' && opts.sidebar_behaviour !== 'always' ){
931                        $sidebar.removeClass('sfm-fully-hidden');
932                    }
933
934                    if ( opts.sidebar_behaviour === 'push' && opts.sidebar_style != 'full' ) {
935
936                        $children = $body.children().not('[id*=sfm-], script, style');
937
938                        scrollTop = $win.scrollTop();
939                        scrollLeft = $win.scrollLeft();
940
941                        $children.find('*').each(function (i, el) {
942                            findAndShiftFixed(i, el, scrollTop, scrollLeft)
943                        });
944
945                    } else if ( opts.sidebar_style === 'full' ) {
946
947                        setTimeout( function () {
948
949                            $body.addClass( 'sfm-ui-shown' );
950
951                        }, 350);
952
953                    }
954
955                    // video
956
957                    if ( isMobile && opts.video_mob === 'yes' ) {
958
959                        // disabled on mobiles
960
961                    } else {
962
963                        if ( opts.video_bg && opts.video_preload !== 'yes' ) {
964                            if ( sfmPlayer && sfmPlayer.YTPGetPlayer() ) {
965                                sfmPlayer.YTPPlay();
966                            } else {
967                                sfmPlayer = $(".sfm-video").YTPlayer();
968                                window.sfmPlayer = sfmPlayer;
969                            }
970
971                        } else {
972                            if ( sfmPlayer ) sfmPlayer.YTPPlay();
973                        }
974
975                    }
976
977                    $sidebar.removeAttr( 'aria-hidden' );
978
979                    state = 'open';
980
981                    return false;
982                }
983
984                function hideSidebar() {
985
986                    var classes = 'sfm-body-pushed sfm-view-pushed-custom';
987                    clearTimeout( animTimer );
988                    collapsing = true;
989
990                    /*if ( isIE && (opts.sidebar_behaviour === 'push') ) {
991                        $('.sfm-inner-fixed').each(unshiftFixed);
992                    }*/
993
994                    if ( opts.sidebar_behaviour === 'always' || opts.sidebar_style === 'full' ) {
995                        setTimeout(function () {
996                            $overlay.css('visibility', 'hidden')
997                        }, 800);
998                    }
999
1000                    $sidebar.find('.sfm-active-item').removeClass('sfm-active-item');
1001
1002                    hideCustom(true);
1003
1004                    if ( opts.sub_type !== 'swipe' ) {
1005                        classes += ' sfm-view-pushed-1 sfm-view-pushed-2 sfm-view-pushed-3 sfm-view-pushed-4 ';
1006                    }
1007
1008                    $body.removeClass( classes );
1009                    $sidebar.removeClass( 'sfm-sidebar-exposed' )
1010                    $rollback.find('.sfm-navicon-button').add('#sfm-mob-navbar .sfm-navicon-button').removeClass('sfm-open');
1011
1012                    $sidebar.attr( 'aria-hidden', 'true');
1013
1014                    state = 'hidden';
1015
1016                    currLevel = 0;
1017
1018                    if ( sfmPlayer ) sfmPlayer.YTPPause();
1019
1020                    setTimeout( function () {
1021                        collapsing = false;
1022
1023                        if ( opts.sub_type === 'swipe' ) {
1024                            $body.removeClass( 'sfm-view-pushed-1 sfm-view-pushed-2 sfm-view-pushed-3 sfm-view-pushed-4' );
1025                        }
1026
1027                    }, 250)
1028
1029                    setTimeout( function () {
1030
1031                        if ( opts.sidebar_style === 'full' ) {
1032                            $body.removeClass( 'sfm-ui-shown' );
1033                        }
1034
1035                    }, 400)
1036                }
1037
1038                function itemEventHandler (e) {
1039
1040                    // preventing immediate double tap events occurring in some themes
1041                    if (clickLocked()) return;
1042                    e.stopImmediatePropagation();
1043
1044                    var $t = $(this);
1045                    var $tar;
1046                    var _cursor, timer;
1047
1048                    function goToLink() {
1049
1050                        var $a = $t.find('a');
1051                        var hr = $a.prop('href');
1052                        var blank = $a.attr('target') === '_blank';
1053                        var hash = $a.prop('hash');
1054                        var smooth = hash && hash.length > 0 && hr == lh + hash, scrollTop, $el;
1055                        if (smooth) {
1056                            hideSidebar();
1057                            /*if (opts.sidebar_style === 'static') {
1058                             $sidebar.find('.sfm-active-smooth').removeClass('sfm-active-smooth');
1059                             $t.addClass('sfm-active-smooth');
1060                             }*/
1061                            if (hash !== '#') {
1062                                $el = $(hash);
1063                                if (!$el.length) {
1064                                    $el = $('[name="' + hash.replace('#', '') + '"]');
1065                                }
1066                            }
1067                            scrollTop = $el && $el.length ? $el.offset().top : 0;
1068                            $('html, body').stop().animate({
1069                                scrollTop: scrollTop
1070                            }, 600);
1071                        }
1072                        else if (blank) {
1073                            window.open(hr, '_blank');
1074                        } else {
1075                            //hideSidebar();
1076                            if (opts.fade === 'yes') {
1077                                if (hr.indexOf('#') !== -1 && hash === '') {
1078                                    return
1079                                }
1080                                $body.fadeOut(200, function () {
1081                                    hideSidebar();
1082                                    location.href = hr
1083                                });
1084                            } else {
1085                                hideSidebar();
1086                                location.href = hr
1087                            }
1088                        }
1089                    }
1090
1091                    if ( e.type === clickTapEvent ) { // click event
1092
1093                        $tar = $(e.target);
1094                        if ( ( opts.parent_ignore === 'yes' && $t.is('.sfm-has-child-menu ') ) || $tar.closest( '.sfm-sm-indicator').length ) {
1095                            e.preventDefault();
1096                            eventFor($t, e);
1097                        } else {
1098                            goToLink();
1099                        }
1100
1101                    }
1102                    else { // mouseenter
1103                        _cursor = this;
1104
1105                        if ( subOpeningEvent === 'mouseenter') {
1106                            timer = setTimeout(function () {
1107                                if (_cursor === cursor) {
1108                                    eventFor($t, e);
1109                                }
1110                            }, 52);
1111                        } else {
1112                            // ignore hover if submenus set to be opened on click
1113                        }
1114
1115                        cursor = this;
1116                    }
1117
1118
1119                    //e.stopImmediatePropagation();
1120                    //return false
1121                }
1122
1123                function eventFor ( $t, e ) {
1124
1125                    if ( dragging || collapsing ) {
1126                        return;
1127                    }
1128                    // console.log('event for')
1129
1130                    clearTimeout(animTimer);
1131
1132                    var openingLevel = parseInt(( $t.closest('ul').attr('class') || '0' ).match(/\d/)[0]) + 1;
1133                    var $sub, $et;
1134                    var $sibs = $t.siblings('.sfm-active-item'), css;
1135                    var $a = $t.find('a');
1136                    var hr, blank, hash, smooth, scrollTop;
1137                    var _ww = ww;
1138                    var _wh = wh;
1139                    var backHTML = '', $link;
1140                    var startPos, customWidth, calcWidth, customBg, $currCont, classes;
1141
1142                    var customID, allowedWidth;
1143
1144                    hideCustom(openingLevel <= currLevel);
1145
1146                    $sibs.removeClass('sfm-active-item');
1147
1148                    if ( $t.is('.sfm-has-child-menu') ) {
1149                        //console.log('child menu item');
1150                        $sub = $t.children('.sfm-child-menu').first();
1151
1152                        // if ( opts.sub_type === 'swipe' ) {
1153                        $link = $a.eq(0).find('span').clone();
1154                        $link.find('i').remove();
1155                        backHTML += '<a href="#" class="sfm-back-parent"><ins class="sfm-sm-indicator"><i></i></ins><span>' + $link.text() + '</span></a>';
1156                        // }
1157
1158                        if ( $sub.length ) {
1159
1160                            if ( MAX_WIDTH < _ww && /*!isMobile &&*/ opts.sub_type !== 'dropdown' && opts.sidebar_style !== 'full' ) {
1161
1162                                // hiding only next levels relative to clicked
1163                                $body.removeClass( 'sfm-view-pushed-custom sfm-nav-back sfm-view-pushed-' + openingLevel + ' sfm-view-pushed-' + (openingLevel + 1) + ' sfm-view-pushed-' + (openingLevel + 2) );
1164
1165                                if ( !$sidebar.is('.sfm-sidebar-exposed' ) && opts.sidebar_behaviour !== 'always' ) return;
1166
1167                                $( '.sfm-view-level-' + openingLevel ).attr('class',
1168                                    function (i, c) {
1169                                        return c.replace(/(^|\s)sfm-current-\S+/g, '');
1170                                    }).html( '<div class="sfm-scroll-wrapper"><div class="sfm-scroll">' + backHTML + '<ul class="sfm-menu-level-' + openingLevel + ' sfm-menu">' + $sub.html() + '</ul></div></div>' ).addClass('sfm-current-' + $t.data('sfmId'));
1171
1172                                animTimer = setTimeout(function () {
1173                                    $body.addClass('sfm-view-pushed-' + openingLevel + ( openingLevel <= currLevel ? ' sfm-nav-back' : '') );
1174                                    if (opts.sidebar_behaviour === 'always') $overlay.css('visibility', 'visible');
1175                                    currLevel = openingLevel;
1176                                }, 25);
1177
1178                                $t.addClass('sfm-active-item');
1179
1180                            } else {
1181
1182                                // fallback to dropdown for flyouts
1183
1184                                $et = $( e.target );
1185                                hr = $a.attr('href');
1186                                var hash = $a.prop( 'hash' );
1187                                if ( opts.parent_ignore === 'yes' || $et.closest('.sfm-sm-indicator').length || hash === '#' || hr === '#' || hr === '/' ) {
1188
1189                                    if ( !$t.is( '.sfm-submenu-visible' ) ) {
1190                                        console.log('sub', $sub)
1191                                        $t.siblings().filter('.sfm-submenu-visible').removeClass('sfm-submenu-visible').find('> ul').slideUp();
1192                                        $t.addClass('sfm-submenu-visible');
1193                                        $sub.slideDown(
1194                                            { start: function () {
1195                                                    setSize( e, 'contentChanged', $sub);
1196                                                }
1197                                            });
1198                                    } else {
1199                                        if ( $a.length && e.type === clickTapEvent ) {
1200                                            $t.removeClass( 'sfm-submenu-visible' );
1201                                            $sub.slideUp(
1202                                                { complete: function () {
1203                                                    setTimeout( function () {
1204	                                                    setSize(e, 'contentChanged', $sub, 'up');
1205                                                    }, 0);
1206                                                        
1207                                                        // reset focus
1208                                                        if ( document.activeElement ) document.activeElement.blur();
1209                                                    }
1210                                                });
1211                                        }
1212                                    }
1213                                }
1214                            }
1215                        } else {
1216
1217                            // Custom content
1218
1219                            customWidth = $t.attr('data-extra-width') ;
1220                            customBg = $t.attr('data-bg') || '';
1221                            // apply custom width (if any) only for flyout panels, otherwise assign width of sidebar
1222                            calcWidth = opts.sub_type === 'flyout' ? parseInt( customWidth || opts[ 'width_panel_' + ( openingLevel + 1 ) ] ) : opts['width_panel_1'];
1223
1224                            customID = $t.attr('data-sfm-id');
1225                            allowedWidth = opts.sub_type === 'flyout' ? sums[ openingLevel - 1 ] + calcWidth : opts['width_panel_1'];
1226
1227                            // if enough space for flyout and not fullscreen, otherwise popup
1228                            // swipe custom content for dropdown layout
1229                            if ( allowedWidth < _ww && opts.sidebar_style !== 'full' ) {
1230
1231                                // flyout panels
1232                                $currCont = $custom.find('#sfm-cc-' + $t.attr('data-sfm-id'));
1233
1234                                $sibs.removeClass( 'sfm-active-item' );
1235                                $body.removeClass( 'sfm-view-pushed-custom sfm-nav-back sfm-view-pushed-' + openingLevel + ' sfm-view-pushed-' + (openingLevel + 1) + ' sfm-view-pushed-' + (openingLevel + 2) )
1236                                    .addClass('sfm-view-pushed-custom' + ( openingLevel <= currLevel ? ' sfm-nav-back' : ''));
1237
1238                                if ( !$sidebar.is('.sfm-sidebar-exposed') && opts.sidebar_behaviour !== 'always' ) {
1239                                    return;
1240                                }
1241
1242                                if ( opts.sidebar_behaviour === 'always' ) {
1243                                    $overlay.css('visibility', 'visible');
1244                                }
1245
1246                                $t.addClass( 'sfm-active-item' );
1247
1248                                css = {
1249                                    'backgroundColor': customBg,
1250                                    'width': calcWidth
1251                                };
1252
1253                                $custom.css( css ).addClass( 'sfm-custom-active-' + customID );
1254
1255                                // remove back links
1256                                $custom.find( '.sfm-back-parent' ).remove();
1257                                $custom.prepend( $( backHTML ) );
1258
1259                                $custom.find( '.sfm-active' ).removeClass( 'sfm-active' );
1260
1261                                $currCont.width( calcWidth );
1262
1263                                if ( _wh > $currCont.outerHeight() ) {
1264
1265                                    $currCont.addClass('sfm-vert-align sfm-active');
1266
1267                                } else {
1268
1269                                    $currCont.removeClass('sfm-vert-align').addClass('sfm-active');
1270
1271                                }
1272
1273                                setTimeout(function(){
1274                                    // debugger
1275                                    console.log('custom content')
1276                                }, 600)
1277                                customOpened = true;
1278
1279                            } else {
1280                                // open modal for custom content
1281                                $et = $(e.target);
1282
1283                                if ( opts.parent_ignore === 'yes' || $et.closest('.sfm-sm-indicator').length /*|| isMobile*/ || opts.sub_type === 'dropdown' ) {
1284                                    if ( !$t.is( '.sfm-submenu-visible' ) ) {
1285                                        customBg = $t.attr( 'data-bg' );
1286                                        $t.siblings().filter( '.sfm-submenu-visible' ).removeClass( 'sfm-submenu-visible' ).find( '>
1286 ul' ).slideUp()
1287
1288                                        $custom.addClass( 'sfm-modal' );
1289                                        css = {
1290                                            'opacity': 1,
1291                                            'visibility': 'visible',
1292                                            'backgroundColor': customBg/*,
1293                                            'width': _ww*/
1294                                        };
1295                                        $custom.find( '.sfm-active' ).removeClass( 'sfm-active' );
1296                                        $custom.find( '#sfm-cc-' + $t.attr( 'data-sfm-id' ) ).addClass( 'sfm-active' );
1297                                        $custom.css( css );
1298                                    }
1299                                }
1300                            }
1301                        }
1302
1303                    } else {
1304
1305                        if (MAX_WIDTH < _ww + 200) {
1306                            //console.log('siblings', $t.siblings('.sfm-active-item').length)
1307                            $t.siblings('.sfm-active-item').removeClass('sfm-active-item');
1308
1309                            animTimer = setTimeout(function () {
1310                                $body.removeClass( 'sfm-view-pushed-custom sfm-view-pushed-' + openingLevel + ' sfm-view-pushed-' + (openingLevel + 1) + ' sfm-view-pushed-' + (openingLevel + 2) );
1311                            }, 50);
1312                        }
1313
1314                    }
1315
1316                }
1317
1318                function backToParentView ( e ) {
1319                    // preventing immediate double tap events occurring in some themes
1320                    if (clickLocked()) return;
1321                    e.stopImmediatePropagation();
1322                    e.preventDefault();
1323
1324                    var $t = $(this);
1325                    var level = parseInt(( $t.siblings('ul').attr('class') || '0' ).match(/\d/)[0]);
1326
1327                    // back level up
1328                    $body.removeClass('sfm-view-pushed-' + level + ' sfm-view-pushed-custom');
1329
1330                    $sidebar.find( '.sfm-active-item' ).removeClass( 'sfm-active-item' );
1331                    currLevel = level - 1;
1332                }
1333
1334                function setSize( e, contentChanged, $changed, isUp ) {
1335
1336                    // update globals
1337                    wh = document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight : ( window.innerHeight ? window.innerHeight : $win.height() );
1338                    ww = document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth : ( window.innerWidth ? window.innerWidth : $win.width() );
1339
1340                    var margin = parseInt( opts.item_padding ) * 2;
1341	                var $sform = $cont.find('.sfm-search-form');
1342	                var $copy = $sidebar.find('.sfm-copy');
1343
1344                    // caching
1345                    
1346                    setSize.cache = setSize.cache || {
1347                        headerHeight: $head.is(':empty') ? 0 : $head.outerHeight() + 70 + margin,
1348                        footerHeight: ( $socialbar.is(':empty') ? 0 : $socialbar.outerHeight() )  + ( $copy.length ? $copy.outerHeight() : 0 ),
1349                        contentHeight: $cont.find('.sfm-menu').outerHeight() + ( $sform.length ? $sform.outerHeight() : 0 ) + $cont.find('.sfm-widget-area').outerHeight()
1350                    };
1351
1352                    if ( contentChanged ) setSize.cache.contentHeight = ( $changed && !isUp ? $changed.outerHeight() : '' ) + $cont.find('.sfm-menu').outerHeight() + ( $sform.length ? $sform.outerHeight() : 0 );
1353
1354                    var contentHeight = setSize.cache.contentHeight;
1355                    var headerHeight = setSize.cache.headerHeight;
1356                    var footerHeight = setSize.cache.footerHeight;
1357                    var availableSpace = ( wh - contentHeight );
1358                    var classesToAdd = '';
1359                    var classesToRemove = '';
1360                    // console.log('availableSpace', wh, contentHeight , availableSpace)
1361
1362                    if ( availableSpace < ( headerHeight + footerHeight + margin ) /*|| isMobile*/ || opts.sub_type === 'dropdown' ) {
1363
1364                        if ( opts.sidebar_style !== 'full' ) {
1365
1366                            classesToAdd = 'sfm-compact';
1367
1368                            // available space is two halfs, top half for header and bottom half for footer
1369
1370                            if ( availableSpace < headerHeight + footerHeight ) {
1371
1372                                classesToAdd += ' sfm-compact-header sfm-compact-footer';
1373
1374                            } else {
1375
1376                                classesToRemove += ' sfm-compact-header sfm-compact-footer';
1377
1378                            }
1379
1380                        }
1381                    } else {
1382
1383                        classesToRemove = 'sfm-compact sfm-compact-header sfm-compact-footer';
1384
1385                    }
1386
1387                    if ( MAX_WIDTH > ww /*|| isMobile*/ || opts.sub_type === 'dropdown' || opts.sidebar_style === 'full' ) {
1388
1389                        classesToAdd += ' sfm-vertical-nav';
1390                        subOpeningEvent = clickTapEvent;
1391
1392                    } else {
1393
1394                        classesToRemove += ' sfm-vertical-nav';
1395
1396                        if (opts.sub_opening_type === 'hover') {
1397
1398                            subOpeningEvent = 'mouseenter';
1399
1400                        } else {
1401
1402                            subOpeningEvent = clickTapEvent;
1403
1404                        }
1405                    }
1406
1407                    if ( classesToRemove ) $sidebar.removeClass( classesToRemove );
1408                    if ( classesToAdd ) $sidebar.addClass( classesToAdd );
1409
1410                    // deprecated
1411                    // opts.sidebar_style === 'full' && opts.dynamic == 'yes' && setupFont( wh );
1412                }
1413
1414                function findAndShiftFixed( i, el, scrollTop, scrollLeft, bh, wh ) {
1415
1416                    var $t = $(el);
1417                    var $offsetP;
1418                    var t;
1419                    var nu;
1420                    var offset;
1421                    var oLeft;
1422                    var oTop;
1423                    var coords;
1424                    var newCSS;
1425                    var _b;
1426                    var transf;
1427
1428                    if ( $t.css('position') === 'fixed' ) {
1429
1430                        $t.addClass('sfm-inner-fixed');
1431
1432                        /*if (isIE) {
1433
1434                            t = $t.css(transProp);
1435
1436                            if (t !== 'none') {
1437                                $t.data('sfm-old-matrix', t);
1438                                t = _T.fromString(t);
1439                                nu = t.x(translation); // add translation
1440                                $t.css(transProp, _T.toString( nu )).data('sfm-transformed', 1);
1441                            } else {
1442                                $t.css(transProp, _T.toString( translation )/!*, transition: trans + 'transform 0.5s cubic-bezier(0.645, 0.045, 0.355, 1)', transitionDelay: '90ms'*!/).data('sfm-transformed', 1);
1443                            }
1444
1445                        } else { */
1446
1447                        $offsetP = $t;
1448
1449                        while ($offsetP = $offsetP.parent()) {
1450                            transf = $offsetP.css('webkitTransform');
1451                            if ((transf && transf !== 'none') || $offsetP.is('body')) {
1452                                break
1453                            }
1454                        }
1455
1456                        //console.log('offset parent' , $offsetP[0])
1457
1458                        offset = $offsetP.offset();
1459                        oLeft = offset.left;
1460                        oTop = offset.top;
1461                        //if (oTop === htmlMargins.top) oTop = 0;
1462
1463                        if (isFF && $t.is(':visible')) {
1464                            $t.hide().data('sfm-ff-hidden', 1);
1465                        }
1466
1467                        coords = {
1468                            left: $t.css('left'),
1469                            right: $t.css('right'),
1470                            top: $t.css('top'),
1471                            bottom: $t.css('bottom')
1472                        }
1473
1474                        if (isFF && $t.data('sfm-ff-hidden')) $t.show();
1475
1476                        newCSS = {};
1477                        _b = parseInt(coords.bottom);
1478                        _b = isNaN(_b) ? 0 : _b;
1479
1480                        if (coords.left !== 'auto') {
1481                            coords.toChangeHor = 'left';
1482                            newCSS[coords.toChangeHor] = '-=' + (oLeft - scrollLeft);
1483                        } else if (coords.right !== 'auto') {
1484                            coords.toChangeHor = 'right';
1485                            newCSS[coords.toChangeHor] = '-=' + (oLeft - scrollLeft);
1486                        } else {
1487                            coords.toChangeHor = 'left'
1488                        }
1489
1490                        if (coords.top !== 'auto') {
1491                            coords.toChangeVert = 'top';
1492                            newCSS[coords.toChangeVert] = oTop - scrollTop > 0 ? parseInt(coords.top) - (oTop - scrollTop) : parseInt(coords.top) + (scrollTop - oTop);
1493                        } else if (coords.bottom !== 'auto') {
1494                            coords.toChangeVert = 'bottom';
1495                            newCSS[coords.toChangeVert] = $body.height() + htmlMargins.top + htmlMargins.bottom + _b - $win.height() - scrollTop + 'px';
1496                        } else {
1497                            coords.toChangeVert = 'top';
1498                            newCSS[coords.toChangeVert] = scrollTop;
1499                        }
1500
1501                        //							console.log('transf', transProp);
1502                        //							console.log('el', el);
1503                        //							console.log('parent', $offsetP[0]);
1504                        //							console.log('coords', coords);
1505                        //							console.log('newCSS', newCSS);
1506                        //							console.log('offsetTop', oTop);
1507                        //							console.log(scrollTop, scrollLeft);
1508
1509                        $t.css(newCSS).data('sfm-old-pos', coords)
1510                        /*}*/
1511                    }
1512                }
1513
1514                function unshiftFixed(i, el) {
1515                    var $el = $(el);
1516                    var coords;
1517                    var newCss;
1518                    /*if (isIE) {
1519                        if ($el.data('sfm-old-matrix')) {
1520                            $el.css(transProp, $el.data('sfm-old-matrix')).data('sfm-old-matrix', '');
1521                        } else {
1522                            $el.css(transProp, defTranslationStr).data('sfm-transformed', '');
1523                        }
1524                    } else {*/
1525                    coords = $el.data('sfm-old-pos');
1526                    //console.log('coords', coords);
1527                    newCss = {};
1528                    if (coords) {
1529                        newCss[coords.toChangeHor] = coords[coords.toChangeHor];
1530                        newCss[coords.toChangeVert] = coords[coords.toChangeVert];
1531                        if (coords.toChangeVert === 'bottom') newCss['top'] = '';
1532                        $el.css(newCss);
1533                        $el.data('sfm-old-pos', '');
1534                    } else {
1535                        $el.css({left: '', top: '', bottom: '', right: ''})
1536                    }
1537                    /*}*/
1538                }
1539
1540                function populateSocialBarWith( social ) {
1541                    var name, abbr;
1542                    for ( name in social ) {
1543                        if ( social.hasOwnProperty( name )) {
1544                            if ( name === 'skype' ) {
1545                                $('<li class="sfm-icon-' + name + '"><a href="skype:' + social[name] + '?call"><span>Sk.</span></a></li>').appendTo( $socialbar );
1546                            } else if (name === 'email') {
1547                                $('<li class="sfm-icon-' + name + '"><a href="mailto:' + social[name] + '"><span>Em.</span></a></li>').appendTo( $socialbar );
1548                            } else {
1549                                switch ( name ) {
1550                                    case 'facebook':
1551                                        abbr = 'Fb';
1552                                        break;
1553                                    case 'twitter':
1554                                        abbr = 'X';
1555                                        break;
1556                                    case 'dribbble':
1557                                        abbr = 'Dr';
1558                                        break;
1559                                    case 'youtube':
1560                                        abbr = 'Yt';
1561                                        break;
1562                                    case 'linkedin':
1563                                        abbr = 'Li';
1564                                        break;
1565                                    case 'instagram':
1566                                        abbr = 'Ig';
1567                                        break;
1568                                    case 'vimeo':
1569                                        abbr = 'Vi';
1570                                        break;
1571                                    case 'gplus':
1572                                        abbr = 'Gp';
1573                                        break;
1574                                    case 'soundcloud':
1575                                        abbr = 'Sc';
1576                                        break;
1577                                    case 'pinterest':
1578                                        abbr = 'Pt';
1579                                        break;
1580                                    case 'flickr':
1581                                        abbr = 'Fl';
1582                                        break;
1583                                    case 'rss':
1584                                        abbr = 'Rss';
1585                                        break;
1586                                };
1587
1588                                $('<li class="sfm-icon-' + name + '"><a href="' + social[ name ] + '" target="_blank"><span>' + abbr + '.</span></a></li>').appendTo( $socialbar );
1589                            }
1590                        }
1591                    }
1592                }
1593
1594                function attachSwipesHandler() {
1595                    var startX, startY, startTime, moveX, moveY;
1596                    $sidebar.add($overlay).on('touchstart', function (e) {
1597                        if (state === 'open') {
1598                            startTime = (new Date).getTime();
1599                            startX = e.originalEvent.touches[0].pageX;
1600                            startY = e.originalEvent.touches[0].clientY;
1601                        }
1602                    })
1603                        .on('touchmove', function (e) {
1604                            if (state === 'open') {
1605                                moveX = e.originalEvent.touches[0].pageX;
1606                                moveY = e.originalEvent.touches[0].clientY
1607                            }
1608                        })
1609                        .on('touchend', function () {
1610                            if (state === 'open') {
1611                                var swipeDirection = moveX > startX ? "right" : "left";
1612                                var finalY = moveY - startY > 30 || -30 > moveY - startY;
1613                                var finalX = moveX - startX > 60 || -60 > moveX - startX;
1614                                var now = (new Date).getTime();
1615                                if (!(now - startTime > 200 || finalY) && finalX) {
1616                                    switch (swipeDirection) {
1617                                        case "left":
1618                                            "left" === direction ? hideSidebar() : showSidebar();
1619                                            break;
1620                                        case "right":
1621                                            "left" === direction ? showSidebar() : hideSidebar()
1622                                    }
1623                                }
1624                            }
1625                        });
1626                }
1627
1628                function freezeBodyScroll(e) {
1629                    var scrollTo = null;
1630
1631                    if (e.type == 'mousewheel') {
1632                        scrollTo = (e.originalEvent.wheelDelta * -1);
1633                    }
1634                    else if (e.type == 'DOMMouseScroll') {
1635                        scrollTo = 40 * e.originalEvent.detail;
1636                    }
1637
1638                    if (scrollTo) {
1639                        e.preventDefault();
1640                        $(this).scrollTop(scrollTo + $(this).scrollTop());
1641                    }
1642                }
1643
1644                function freezeBody(e) {
1645                    if (e.type == 'mousewheel' || e.type == 'DOMMouseScroll') {
1646                        e.preventDefault()
1647                    }
1648                }
1649
1650                function checkOrientation() {
1651                    var o = window.orientation;
1652                    if (o) {
1653                        if (o != 90 && o != -90) {
1654                            return 'portrait';
1655                        } else {
1656                            return 'landscape';
1657                        }
1658                    } else {
1659                        if ($win.height() > $win.width()) {
1660                            return 'portrait';
1661                        } else {
1662                            return 'landscape';
1663                        }
1664                    }
1665                }
1666
1667                return {
1668                    init: init,
1669                    showSidebar: showSidebar,
1670                    hideSidebar: hideSidebar,
1671                    sfmPlayer: sfmPlayer,
1672                    Menu: Menu,
1673                    setSize: setSize,
1674                    getState: function () {
1675                        return state
1676                    }
1677                }
1678            }());
1679
1680            // main initialization
1681            window.LM = LM.init( $defmenu );
1682
1683        }, 0);
1684
1685    }
1686
1687    function attachStyles(t) {
1688        if (document.body) {
1689            var s = document.createElement('style');
1690            s.type = 'text/css';
1691            if (/WebKit|MSIE/i.test(navigator.userAgent)) {
1692                if (s.styleSheet) {
1693                    s.styleSheet.cssText = t;
1694                } else {
1695                    s.innerText = t;
1696                }
1697            } else {
1698                s.innerHTML = t;
1699            }
1700            document.getElementsByTagName('head')[0].appendChild(s);
1701        } else {
1702            document.write('<style type="text/css">' + t + '</style>');
1703        }
1704    }
1705
1706    function getVendorPropertyName(prop) {
1707
1708        var prefixes = ['Moz', 'Webkit', 'O', 'ms'],
1709            vendorProp, i,
1710            div = document.createElement('div'),
1711            prop_ = prop.charAt(0).toUpperCase() + prop.substr(1);
1712
1713        if (prop in div.style) {
1714            return prop;
1715        }
1716
1717        for (i = 0; i < prefixes.length; ++i) {
1718
1719            vendorProp = prefixes[i] + prop_;
1720
1721            if (vendorProp in div.style) {
1722                return vendorProp;
1723            }
1724
1725        }
1726
1727        // Avoid memory leak in IE.
1728        this.div = null;
1729    };
1730
1731    function deparam(query) {
1732        var pairs, i, keyValuePair, key, value, map = {};
1733        // remove leading question mark if its there
1734        if (query.slice(0, 1) === '?') {
1735            query = query.slice(1);
1736        }
1737        if (query !== '') {
1738            pairs = query.split('&');
1739            for (i = 0; i < pairs.length; i += 1) {
1740                keyValuePair = pairs[i].split('=');
1741                key = decodeURIComponent(keyValuePair[0]);
1742                value = (keyValuePair.length > 1) ? decodeURIComponent(keyValuePair[1]) : undefined;
1743                map[key] = value;
1744            }
1745        }
1746        return map;
1747    }
1748
1749
1750})(window.jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.