! function(t) {
    var e = function(i) {
        var s = this;
        this.init = function() {
            var a;
            return TweenLite.ticker.useRAF(!1), this.props_obj = i, this.listeners = {
                events_ar: []
            }, this.mustHaveHolderDiv_bl = !1, this.instanceName_str = this.props_obj.instanceName, s.props_obj.gridType ? (s.gridType_str = s.props_obj.gridType || "dynamicvertical", s.gridType_str = String(s.gridType_str).toLowerCase(), (a = "dynamicvertical" == s.gridType_str || "dynamichorizontal" == s.gridType_str || "classicvertical" == s.gridType_str || "classichorizontal" == s.gridType_str || "masonryvertical" == s.gridType_str || "masonryhorizontal" == s.gridType_str || "flexiblevertical" == s.gridType_str || "flexiblehorizontal" == s.gridType_str) ? this.props_obj.instanceName ? t[this.instanceName_str] ? void alert("FWDUGP instance name " + this.instanceName_str + " is already defined and contains a different instance reference, set a different instance name.") : (t[this.instanceName_str] = this, this.props_obj ? !this.props_obj.parentId && this.mustHaveHolderDiv_bl ? void alert("Property parentId is not defined in the FWDUGP constructor, self property represents the div id into which the megazoom is added as a child!") : this.mustHaveHolderDiv_bl && !FWDRLUtils.getChildById(s.props_obj.parentId) ? void alert("FWDUGP parent div is not found, please make sure that the div exsists and the id is correct! " + s.props_obj.parentId) : (this.displayType = this.props_obj.displayType || e.RESPONSIVE, this.displayType = this.displayType.toLowerCase(), s.displayType.toLowerCase() != e.RESPONSIVE && s.displayType.toLowerCase() != e.FULL_SCREEN && s.displayType.toLowerCase() != e.FLUID_WIDTH && s.displayType.toLowerCase() != e.AFTER_PARENT && (this.displayType = e.RESPONSIVE), this.body = document.getElementsByTagName("body")[0], this.displayType == e.FULL_SCREEN ? this.stageContainer = s.body : this.stageContainer = FWDRLUtils.getChildById(this.props_obj.parentId), this.customContextMenu, this.info_do, this.main_do, this.preloader_do, this.menu_do, this.thumbnailManager_do, this.lighBox_do, this.rect, this.backgroundColor_str = this.props_obj.backgroundColor || "transparent", this.lightBoxBackgroundColor_str = this.props_obj.lightMainBoxBackgroundColor || "transparent", this.zIndex = parseInt(i.zIndex) || 0, this.stageWidth = 0, this.stageHeight = 0, this.pageXOffset = t.pageXOffset, this.pageYOffset = t.pageYOffset, this.catId_ar = -1, this.maxWidth = this.props_obj.maxWidth || 640, this.maxHeight = this.props_obj.maxHeight || 380, this.thumbnailsVOffset = this.props_obj.thumbnailsVerticalOffset || 0, this.resizeHandlerId1_to, this.resizeHandlerId2_to, this.scrollEndId_to, this.orientationChangeId_to, this.isVerticalType_bl = !0, this.isDataLoaded_bl = !1, this.autoScale_bl = "yes" == this.props_obj.autoScale ? !0 : !1, this.showFullScreenButton_bl = "yes" == this.props_obj.showFullScreenButton ? !0 : !1, this.orintationChanceComplete_bl = !0, this.isMobile_bl = FWDRLUtils.isMobile, this.hasPointerEvent_bl = FWDRLUtils.hasPointerEvent, this.isReady_bl = !1, this.setupMainDo(), this.setupData(), void this.setupInfo()) : void alert("FWDUGP constructor properties object is not defined!")) : void alert("FWDUGP instance name is required please make sure that the instanceName parameter exsists and it's value is uinique.") : void alert("FWDUGP grid type value is not valid!")) : void alert("FWDUGP grid type is required please make sure that the gridType parameter is defined in the contructor function!")
        }, this.setupMainDo = function() {
            this.main_do = new FWDRLDisplayObject("div", "relative"), this.main_do.getStyle().webkitTapHighlightColor = "rgba(0, 0, 0, 0)", this.main_do.getStyle().webkitFocusRingColor = "rgba(0, 0, 0, 0)", this.main_do.getStyle().width = "100%", this.main_do.getStyle().height = "100%", (!FWDRLUtils.isMobile || FWDRLUtils.isMobile && FWDRLUtils.hasPointerEvent) && this.main_do.setSelectable(!1), "dynamichorizontal" == s.gridType_str || "classichorizontal" == s.gridType_str || "masonryhorizontal" == s.gridType_str || "flexiblehorizontal" == s.gridType_str ? (this.main_do.getStyle().msTouchAction = "none", this.displayType == e.FULL_SCREEN || this.displayType == e.FLUID_WIDTH ? (this.main_do.getStyle().position = "absolute", this.stageContainer.appendChild(this.main_do.screen), this.main_do.getStyle().zIndex = s.zIndex) : this.stageContainer.appendChild(this.main_do.screen)) : this.stageContainer.appendChild(this.main_do.screen), this.stageContainer.style.overflow = "hidden", this.startResizeHandler()
        }, this.setupInfo = function() {
            FWDRLInfo.setPrototype(), this.info_do = new FWDRLInfo(s, s.data.warningIconPath_str)
        }, this.startResizeHandler = function() {
            t.addEventListener ? (t.addEventListener("resize", s.onResizeHandler), t.addEventListener("scroll", s.onScrollHandler)) : t.attachEvent && (t.attachEvent("onresize", s.onResizeHandler), t.attachEvent("onscroll", s.onScrollHandler)), s.resizeHandler(), s.resizeHandlerId2_to = setTimeout(function() {
                s.resizeHandler(), s.positionPreloader()
            }, 400)
        }, this.onResizeHandler = function(t) {
            clearTimeout(s.resizeHandlerId2_to), s.resizeHandlerId2_to = setTimeout(function() {
                s.resizeHandler()
            }, 100)
        }, s.onScrollHandler = function(t) {
            s.scrollOffsets = FWDRLUtils.getScrollOffsets(), s.thumbnailManager_do && (e.globalY = s.thumbnailManager_do.getGlobalY())
        }, this.resizeHandler = function() {
            s.scrollOffsets = FWDRLUtils.getScrollOffsets();
            var t, i = FWDRLUtils.getViewportSize(),
                a = 0;
            e.viewportHeight = i.h, s.pageXOffset = s.scrollOffsets.x, s.pageYOffset = s.scrollOffsets.y, "dynamicvertical" == s.gridType_str || "classicvertical" == s.gridType_str || "masonryvertical" == s.gridType_str || "flexiblevertical" == s.gridType_str ? (s.stageWidth = s.stageContainer.offsetWidth, s.main_do.setWidth(s.stageWidth), s.globalX = s.main_do.getGlobalX(), s.globalY = s.main_do.getGlobalY(), clearTimeout(s.resizeGridId_to), s.resizeGridId_to = setTimeout(function() {
                s.menu_do && s.menu_do.isShowed_bl && s.menu_do.resizeAndPosition(s.stageWidth), s.thumbnailManager_do && (s.thumbnailManager_do.resizeAndPosition(), e.globalY = s.thumbnailManager_do.getGlobalY()), s.setFinalSize()
            }, 100)) : ("dynamichorizontal" == s.gridType_str || "classichorizontal" == s.gridType_str || "masonryhorizontal" == s.gridType_str || "flexiblehorizontal" == s.gridType_str) && (s.menu_do && s.menu_do.isShowed_bl && (s.stageHeight = s.menu_do.h), s.isFullScreen_bl || s.displayType == e.FULL_SCREEN ? (s.main_do.setX(s.scrollOffsets.x), s.main_do.setY(s.scrollOffsets.y), s.stageWidth = i.w, s.stageHeight = i.h, s.main_do.setWidth(s.stageWidth), s.main_do.setHeight(s.stageHeight)) : s.displayType == e.FLUID_WIDTH ? (s.stageWidth = i.w, s.stageHeight = i.h, s.autoScale_bl ? (t = Math.min(s.stageWidth / s.maxWidth, 1), s.stageHeight = Math.min(parseInt(t * s.maxHeight), s.maxHeight), s.stageHeight < 500 && (s.stageHeight = 500), s.stageContainer.style.height = s.stageHeight + "px") : (s.stageHeight = s.maxHeight, s.stageContainer.style.height = s.stageHeight + "px"), s.menu_do && (s.menu_do.isShowed_bl ? (s.menu_do.resizeAndPosition(s.stageWidth), a = s.menu_do.h) : (s.menu_do.resizeAndPosition(0), a = 0)), s.main_do.setX(s.pageXOffset), s.main_do.setY(Math.round(s.stageContainer.getBoundingClientRect().top + s.pageYOffset)), s.main_do.setWidth(s.stageWidth), s.main_do.setHeight(s.stageHeight), s.stageContainer.style.height = s.stageHeight + "px") : s.displayType == e.RESPONSIVE ? (s.stageContainer.style.width = "100%", s.stageContainer.offsetWidth > s.maxWidth && (s.stageContainer.style.width = s.maxWidth + "px"), s.stageWidth = s.stageContainer.offsetWidth, s.menu_do && (s.menu_do.isShowed_bl ? (s.menu_do.resizeAndPosition(s.stageWidth), a = s.menu_do.h) : (s.menu_do.resizeAndPosition(0), a = 0)), s.autoScale_bl ? s.stageHeight = parseInt(s.maxHeight * (s.stageWidth / s.maxWidth)) + 2 * s.thumbnailsVOffset : s.stageHeight = s.maxHeight, s.main_do.setX(0), s.main_do.setY(0), s.stageHeight += a, s.isDataLoaded_bl || (s.stageHeight = 150), s.main_do.setWidth(s.stageWidth), s.main_do.setHeight(s.stageHeight), s.stageContainer.style.height = s.stageHeight + "px") : s.displayType == e.AFTER_PARENT ? (s.stageWidth = s.stageContainer.offsetWidth, s.stageHeight = s.stageContainer.offsetHeight, s.menu_do && (s.menu_do.isShowed_bl ? (s.menu_do.resizeAndPosition(s.stageWidth), a = s.menu_do.h) : (s.menu_do.resizeAndPosition(0), a = 0)), s.main_do.setWidth(s.stageWidth), s.main_do.setHeight(s.stageHeight)) : (s.main_do.setX(0), s.main_do.setY(0), s.stageWidth = i.w, s.stageHeight = i.h)), s.menu_do && (s.menu_do.isShowed_bl ? s.menu_do.resizeAndPosition(s.stageWidth) : s.menu_do.setHeight(0)), s.thumbnailManager_do && s.thumbnailManager_do.resizeAndPosition(), s.fullScreenButton_do && s.positionFullScreenButton()
        }, this.setFinalSize = function() {
            s.stageWidth = s.stageContainer.offsetWidth, s.isReady_bl ? s.stageHeight = 0 : (s.stageHeight = 84, s.main_do.setHeight(s.stageHeight)), s.menu_do && (s.menu_do.isShowed_bl ? s.stageHeight = s.menu_do.h : s.menu_do.setHeight(0)), s.thumbnailManager_do && (s.stageHeight += s.thumbnailManager_do.totalHeight), s.main_do && s.prevStageHeight != s.stageHeight && s.main_do.setWidth(s.stageWidth), s.prevStageHeight = s.stageHeight
        }, this.setupContextMenu = function() {
            this.customContextMenu_do = new FWDRLContextMenu(this.main_do, s.data.rightClickContextMenu_str)
        }, this.setupData = function() {
            FWDUGPData.setPrototype(), this.data = new FWDUGPData(this.props_obj, this), this.data.addListener(FWDUGPData.PRELOADER_LOAD_DONE, this.onPreloaderLoadDone), this.data.addListener(FWDUGPData.LIGHBOX_CLOSE_BUTTON_LOADED, this.onLightBoxCloseButtonLoadDone), this.data.addListener(FWDUGPData.LOAD_ERROR, this.dataLoadError), this.data.addListener(FWDUGPData.LOAD_DONE, this.dataLoadComplete)
        }, this.onLightBoxCloseButtonLoadDone = function() {}, this.onPreloaderLoadDone = function() {
            s.setupPreloader(), s.positionPreloader(), s.resizeHandler()
        }, this.dataLoadError = function(t, e) {
            s.main_do.addChild(s.info_do), s.info_do.showText(t.text)
        }, this.dataLoadComplete = function(t) {
            s.isReady_bl = !0, s.main_do.getStyle().height = "100%", s.catId_ar = s.data.startAtCategory, s.setupLightBox(), s.data.showMenu_bl && s.setupMenu(), s.main_do.addChild(s.preloader_do), s.isMobile_bl || s.setupContextMenu(), s.setupThumbanilsManager(), s.showFullScreenButton_bl && s.setupFullScreenButton(), s.isDataLoaded_bl = !0, s.resizeHandler(), s.preloader_do.hide(!0), setTimeout(s.resizeHandler, 200), s.dispatchEvent(e.READY)
        }, this.setupPreloader = function() {
            FWDRLPreloader.setPrototype(), this.preloader_do = new FWDRLPreloader(this.data.mainPreloader_img, 38, 38, 30, 36), this.preloader_do.addListener(FWDRLPreloader.HIDE_COMPLETE, this.onPreloaderHideCompleteHandler), this.preloader_do.show(!0), this.main_do.addChild(this.preloader_do)
        }, this.positionPreloader = function() {
            this.preloader_do && 0 != s.stageHeight && (this.preloader_do.setX(parseInt((this.stageWidth - this.preloader_do.w) / 2)), this.preloader_do.setY(parseInt((this.stageHeight - this.preloader_do.h) / 2)))
        }, this.onPreloaderHideCompleteHandler = function() {
            s.main_do.removeChild(s.preloader_do)
        }, this.setupMenu = function() {
            FWDUGPMenu.setPrototype(), this.menu_do = new FWDUGPMenu(s.data, s), this.menu_do.addListener(FWDUGPMenu.MOUSE_UP, this.menuOnMouseUpHandler), this.main_do.addChild(this.menu_do), this.menu_do.addListener(FWDUGPMenu.SEARCH, this.searchHandler)
        }, this.menuOnMouseUpHandler = function(t) {
            s.updateCategory(t.id)
        }, this.searchHandler = function(t) {
            s.thumbnailManager_do.search(t.searchValue)
        }, this.setupThumbanilsManager = function(t) {
            "dynamicvertical" == s.gridType_str ? (s.data.isVerticalType_bl = !0, FWDUGPVerticalThumbnailsManager.setPrototype(), this.thumbnailManager_do = new FWDUGPVerticalThumbnailsManager(this.data, this), this.thumbnailManager_do.addListener(FWDUGPVerticalThumbnailsManager.CATEGORY_UPDATE, this.onTMCategoryUpdate), this.thumbnailManager_do.addListener(FWDUGPVerticalThumbnailsManager.OPEN_LIGHTBOX, this.openLightbox)) : "dynamichorizontal" == s.gridType_str ? (s.data.isVerticalType_bl = !1, FWDUGPHorizontalThumbnailsManager.setPrototype(), this.thumbnailManager_do = new FWDUGPHorizontalThumbnailsManager(this.data, this), this.thumbnailManager_do.addListener(FWDUGPHorizontalThumbnailsManager.CATEGORY_UPDATE, this.onTMCategoryUpdate), this.thumbnailManager_do.addListener(FWDUGPHorizontalThumbnailsManager.OPEN_LIGHTBOX, this.openLightbox)) : "classicvertical" == s.gridType_str ? (s.data.isVerticalType_bl = !0, FWDUGPClassicVerticalThumbnailsManager.setPrototype(), this.thumbnailManager_do = new FWDUGPClassicVerticalThumbnailsManager(this.data, this), this.thumbnailManager_do.addListener(FWDUGPClassicVerticalThumbnailsManager.CATEGORY_UPDATE, this.onTMCategoryUpdate), this.thumbnailManager_do.addListener(FWDUGPClassicVerticalThumbnailsManager.OPEN_LIGHTBOX, this.openLightbox)) : "classichorizontal" == s.gridType_str ? (s.data.isVerticalType_bl = !1, FWDUGPClassicHorizontalThumbnailsManager.setPrototype(), this.thumbnailManager_do = new FWDUGPClassicHorizontalThumbnailsManager(this.data, this), this.thumbnailManager_do.addListener(FWDUGPClassicHorizontalThumbnailsManager.CATEGORY_UPDATE, this.onTMCategoryUpdate), this.thumbnailManager_do.addListener(FWDUGPClassicHorizontalThumbnailsManager.OPEN_LIGHTBOX, this.openLightbox)) : "masonryvertical" == s.gridType_str ? (s.data.isVerticalType_bl = !0, FWDUGPMasonryVerticalThumbnailsManager.setPrototype(), this.thumbnailManager_do = new FWDUGPMasonryVerticalThumbnailsManager(this.data, this), this.thumbnailManager_do.addListener(FWDUGPMasonryVerticalThumbnailsManager.CATEGORY_UPDATE, this.onTMCategoryUpdate), this.thumbnailManager_do.addListener(FWDUGPMasonryVerticalThumbnailsManager.OPEN_LIGHTBOX, this.openLightbox)) : "masonryhorizontal" == s.gridType_str ? (s.data.isVerticalType_bl = !1, FWDUGPMasonryHorizontalThumbnailsManager.setPrototype(), this.thumbnailManager_do = new FWDUGPMasonryHorizontalThumbnailsManager(this.data, this), this.thumbnailManager_do.addListener(FWDUGPMasonryHorizontalThumbnailsManager.CATEGORY_UPDATE, this.onTMCategoryUpdate), this.thumbnailManager_do.addListener(FWDUGPMasonryHorizontalThumbnailsManager.OPEN_LIGHTBOX, this.openLightbox)) : "flexiblevertical" == s.gridType_str ? (s.data.isVerticalType_bl = !0, FWDUGPFlexibleVerticalThumbnailsManager.setPrototype(), this.thumbnailManager_do = new FWDUGPFlexibleVerticalThumbnailsManager(this.data, this), this.thumbnailManager_do.addListener(FWDUGPFlexibleVerticalThumbnailsManager.CATEGORY_UPDATE, this.onTMCategoryUpdate), this.thumbnailManager_do.addListener(FWDUGPFlexibleVerticalThumbnailsManager.OPEN_LIGHTBOX, this.openLightbox)) : "flexiblehorizontal" == s.gridType_str && (s.data.isVerticalType_bl = !1, FWDUGPFlexibleHorizontalThumbnailsManager.setPrototype(), this.thumbnailManager_do = new FWDUGPFlexibleHorizontalThumbnailsManager(this.data, this), this.thumbnailManager_do.addListener(FWDUGPFlexibleHorizontalThumbnailsManager.CATEGORY_UPDATE, this.onTMCategoryUpdate), this.thumbnailManager_do.addListener(FWDUGPFlexibleHorizontalThumbnailsManager.OPEN_LIGHTBOX, this.openLightbox)), this.main_do.addChild(this.thumbnailManager_do), e.globalY = s.thumbnailManager_do.getGlobalY()
        }, this.onThumbsManagerLoadError = function(t) {
            s.main_do.addChild(s.info_do), s.info_do.showText(t.text)
        }, this.onTMCategoryUpdate = function(t) {}, this.openLightbox = function(e) {
            t.rlobj_curObj = s.data.lightboxPlaylist_ar, FWDRL.show("rlobj_curObj", e.id), t.rlobj_curObj = null
        }, this.setupLightBox = function() {
            new FWDRL({
                mainFolderPath: s.data.mainFolderPath_str,
                skinPath: s.data.lightboxSkinPath_str,
                facebookAppId: s.data.facebookAppId_str,
                rightClickContextMenu: s.data.rightClickContextMenu_str,
                buttonsAlignment: s.data.buttonsAlignment_str,
                useDeepLinking: "no",
                useAsModal: s.data.useAsModal_str,
                slideShowAutoPlay: s.data.slideShowAutoPlay_str,
                addKeyboardSupport: s.data.addKeyboardSupport_str,
                showCloseButton: s.data.showCloseButton_str,
                showShareButton: "no",
                showZoomButton: s.data.showZoomButton_str,
                showSlideShowButton: "no",
                showSlideShowAnimation: s.data.showSlideShowAnimation_str,
                showNextAndPrevButtons: s.data.showNextAndPrevButtons_str,
                showNextAndPrevButtonsOnMobile: s.data.showNextAndPrevButtonsOnMobile_str,
                buttonsHideDelay: s.data.buttonsHideDelay,
                slideShowDelay: s.data.slideShowDelay,
                defaultItemWidth: s.data.defaultItemWidth,
                defaultItemHeight: s.data.defaultItemHeight,
                itemOffsetHeight: s.data.itemOffsetHeight,
                spaceBetweenButtons: s.data.spaceBetweenButtons,
                buttonsOffsetIn: s.data.buttonsOffsetIn,
                buttonsOffsetOut: s.data.buttonsOffsetOut,
                itemBorderSize: s.data.itemBorderSize,
                itemBorderRadius: s.data.itemBorderRadius,
                backgroundOpacity: s.data.backgroundOpacity,
                itemBoxShadow: s.data.itemBoxShadow_str,
                itemBackgroundColor: "transperant",
                itemBorderColor: s.data.itemBorderColor_str,
                backgroundColor: s.data.lightboxBackgroundColor,
                showThumbnails: "no",
                showThumbnailsHideOrShowButton: "yes",
                showThumbnailsByDefault: "yes",
                showThumbnailsOverlay: "yes",
                showThumbnailsSmallIcon: "yes",
                thumbnailsHoverEffect: "scale",
                thumbnailsImageHeight: 80,
                thumbnailsBorderSize: 4,
                thumbnailsBorderRadius: 0,
                spaceBetweenThumbnailsAndItem: 0,
                thumbnailsOffsetBottom: 0,
                spaceBetweenThumbnails: 2,
                thumbnailsOverlayOpacity: .6,
                thumbnailsOverlayColor: "#FFFFFF",
                thumbnailsBorderNormalColor: "#FFFFFF",
                thumbnailsBorderSelectedColor: "#FFFFFF",
                showDescriptionButton: "no",
                showDescriptionByDefault: "no",
                descriptionWindowAnimationType: s.data.descriptionWindowAnimationType_str,
                descriptionWindowPosition: "bottom",
                descriptionWindowBackgroundColor: s.data.descriptionWindowBackgroundColor_str,
                descriptionWindowBackgroundOpacity: s.data.descriptionWindowBackgroundOpacity,
                useVideo: "yes",
                useAudio: "yes",
                videoShowFullScreenButton: s.data.videoShowFullScreenButton_str,
                addVideoKeyboardSupport: "yes",
                nextVideoOrAudioAutoPlay: s.data.nextVideoOrAudioAutoPlay_str,
                videoAutoPlay: "no",
                videoLoop: s.data.videoLoop_str,
                audioAutoPlay: s.data.audioAutoPlay_str,
                audioLoop: s.data.audioLoop_str,
                videoControllerHideDelay: 3,
                videoControllerHeight: 41,
                audioControllerHeight: 44,
                startSpaceBetweenButtons: 7,
                vdSpaceBetweenButtons: 9,
                mainScrubberOffestTop: 14,
                scrubbersOffsetWidth: 1,
                audioScrubbersOffestTotalWidth: 4,
                timeOffsetLeftWidth: 5,
                timeOffsetRightWidth: 3,
                volumeScrubberWidth: 80,
                volumeScrubberOffsetRightWidth: 0,
                videoControllerBackgroundColor: s.data.videoControllerBackgroundColor_str,
                videoPosterBackgroundColor: s.data.videoPosterBackgroundColor_str,
                videoPosterBackgroundColor: s.data.videoPosterBackgroundColor_str,
                audioControllerBackgroundColor: s.data.audioControllerBackgroundColor_str,
                timeColor: s.data.timeColor_str
            }), FWDRL.addListener(FWDRL.SHOW_START, s.RLShowStart), FWDRL.addListener(FWDRL.SHOW_COMPLETE, s.RLShowComplete), FWDRL.addListener(FWDRL.HIDE_START, s.RLHideStart), FWDRL.addListener(FWDRL.HIDE_COMPLETE, s.RLhideComplete)
        }, this.RLShowStart = function() {
            s.dispatchEvent(e.LIGHTBOX_SHOW_START)
        }, this.RLShowComplete = function() {
            s.dispatchEvent(e.LIGHTBOX_SHOW_COMPLETE)
        }, this.RLHideStart = function() {
            s.dispatchEvent(e.LIGHTBOX_HIDE_START)
        }, this.RLhideComplete = function() {
            s.dispatchEvent(e.LIGHTBOX_HIDE_COMPLETE)
        }, this.addListener = function(t, e) {
            if (void 0 == t) throw Error("type is required.");
            if ("object" == typeof t) throw Error("type must be of type String.");
            if ("function" != typeof e) throw Error("listener must be of type Function.");
            var i = {};
            i.type = t, i.listener = e, i.target = this, this.listeners.events_ar.push(i)
        }, this.dispatchEvent = function(t, e) {
            if (null != this.listeners) {
                if (void 0 == t) throw Error("type is required.");
                if ("object" == typeof t) throw Error("type must be of type String.");
                for (var i = 0, s = this.listeners.events_ar.length; s > i; i++)
                    if (this.listeners.events_ar[i].target === this && this.listeners.events_ar[i].type === t) {
                        if (e)
                            for (var a in e) this.listeners.events_ar[i][a] = e[a];
                        this.listeners.events_ar[i].listener.call(this, this.listeners.events_ar[i])
                    }
            }
        }, this.removeListener = function(t, e) {
            if (void 0 == t) throw Error("type is required.");
            if ("object" == typeof t) throw Error("type must be of type String.");
            if ("function" != typeof e) throw Error("listener must be of type Function." + t);
            for (var i = 0, s = this.listeners.events_ar.length; s > i; i++)
                if (this.listeners.events_ar[i].target === this && this.listeners.events_ar[i].type === t && this.listeners.events_ar[i].listener === e) {
                    this.listeners.events_ar.splice(i, 1);
                    break
                }
        }, this.setupFullScreenButton = function() {
            FWDRLComplexButton.setPrototype(), s.fullScreenButton_do = new FWDRLComplexButton(s.data.fullScreenN_img, s.data.fullScreenSPath_str, s.data.normalScreenN_img, s.data.normalScreenSPath_str, !0), s.fullScreenButton_do.addListener(FWDRLComplexButton.MOUSE_UP, s.fullScreenUpHandler), s.main_do.addChild(s.fullScreenButton_do), document.addEventListener && (document.addEventListener("fullscreenchange", s.onFullScreenChange), document.addEventListener("mozfullscreenchange", s.onFullScreenChange), document.addEventListener("webkitfullscreenchange", s.onFullScreenChange))
        }, this.fullScreenUpHandler = function(t) {
            1 == s.fullScreenButton_do.currentState ? s.goFullScreen() : s.goNormalScreen()
        }, this.onFullScreenChange = function(t) {
            document.fullScreen || document.mozFullScreen || document.webkitIsFullScreen || document.msieFullScreen ? (s.fullScreenButton_do.isFullScreen_bl = !0, s.isFullScreen_bl = !0) : (s.fullScreenButton_do.isFullScreen_bl = !1, s.goNormalScreen(), s.fullScreenButton_do.setButtonState(1))
        }, this.positionFullScreenButton = function() {
            this.showFullScreenButton_bl ? (s.fullScreenButton_do.setX(this.stageWidth - this.fullScreenButton_do.w - 10), s.fullScreenButton_do.setY(this.stageHeight - this.fullScreenButton_do.h - 10)) : s.fullScreenButton_do.setY(-200)
        }, this.goFullScreen = function() {
            var t = FWDRLUtils.getScrollOffsets();
            s.lastScrollX = t.x, s.lastScrollY = t.y, document.documentElement.requestFullScreen ? document.documentElement.requestFullScreen() : document.documentElement.mozRequestFullScreen ? document.documentElement.mozRequestFullScreen() : document.documentElement.webkitRequestFullScreen ? document.documentElement.webkitRequestFullScreen() : document.documentElement.msieRequestFullScreen && document.documentElement.msieRequestFullScreen(), s.main_do.getStyle().position = "absolute", s.body.style.overflow = "hidden", document.documentElement.style.overflow = "hidden", document.documentElement.appendChild(s.main_do.screen), s.isMobile_bl && s.disableMoveOnFullScreen(), s.main_do.getStyle().zIndex = 2147483646, s.fullScreenButton_do.isFullScreen_bl = !0, s.fullScreenButton_do.setButtonState(0), s.isFullScreen_bl = !0;
            try {
                this.thumbnailManager_do.deactivateDragScrollBar()
            } catch (e) {}
            this.resizeHandler()
        }, this.goNormalScreen = function() {
            if (s.isFullScreen_bl) {
                document.cancelFullScreen ? document.cancelFullScreen() : document.mozCancelFullScreen ? document.mozCancelFullScreen() : document.webkitCancelFullScreen ? document.webkitCancelFullScreen() : document.msieCancelFullScreen && document.msieCancelFullScreen(), s.fullScreenButton_do.isFullScreen_bl = !1, s.fullScreenButton_do.setButtonState(1), s.isFullScreen_bl = !1, s.isMobile_bl && s.removeDisableMoveOnFullScreen();
                try {
                    this.thumbnailManager_do.deactivateDragScrollBar()
                } catch (t) {}
                s.addMainDoToTheOriginalParent(), s.resizeHandler()
            }
        }, this.addMainDoToTheOriginalParent = function() {
            FWDRLUtils.isIE7 && s.displayType == e.FULL_SCREEN ? (document.documentElement.style.overflow = "auto", s.body.style.overflow = "auto") : s.displayType != e.FULL_SCREEN && (FWDRLUtils.isIE7 ? (document.documentElement.style.overflow = "auto", s.body.style.overflow = "visible") : (document.documentElement.style.overflow = "visible", s.body.style.overflow = "visible")), this.displayType == e.FULL_SCREEN ? FWDRLUtils.isIE7 ? s.body.appendChild(s.main_do.screen) : document.documentElement.appendChild(this.main_do.screen) : s.displayType == e.FLUID_WIDTH ? (FWDRLUtils.isIE7 ? s.body.appendChild(s.main_do.screen) : document.documentElement.appendChild(s.main_do.screen), s.resizeHandler(!0)) : (s.main_do.getStyle().position = "relative", s.stageContainer.appendChild(s.main_do.screen));
            try {
                this.thumbnailManager_do.deactivateDragScrollBar()
            } catch (i) {}
            s.main_do.getStyle().zIndex = s.zIndex, s.main_do.setX(0), s.main_do.setY(0), s.resizeHandler(!0), t.scrollTo(s.lastScrollX, s.lastScrollY)
        }, this.disableMoveOnFullScreen = function(e) {
            t.addEventListener("touchmove", s.onDisableMove)
        }, this.removeDisableMoveOnFullScreen = function(e) {
            t.removeEventListener("touchmove", s.onDisableMove)
        }, this.onDisableMove = function(t) {
            t.preventDefault()
        }, this.updateCategory = function(t) {
            this.isReady_bl && (this.catId_ar = t, s.thumbnailManager_do.updateCategory(this.catId_ar), setTimeout(function() {
                s.dispatchEvent(e.CATEGORY_UPDATE)
            }, 50))
        }, this.getCategoryName = function(t) {
            return this.isReady_bl ? this.data.categories_ar : void 0
        }, this.getCategoryId = function() {
            return this.catId_ar
        }, this.updateSize = function() {
            !s.isReady_bl, s.resizeHandler()
        }, this.init()
    };
    e.READY = "ready", e.LIGHTBOX_SHOW_START = "showStart", e.LIGHTBOX_SHOW_COMPLETE = "showComplete", e.LIGHTBOX_HIDE_START = "hideStart", e.LIGHTBOX_HIDE_COMPLETE = "hideComplete", e.CATEGORY_UPDATE = "categoryUpdate", e.FULL_SCREEN = "fullscreen", e.LIGHTBOX = "lightbox", e.RESPONSIVE = "responsive", e.FLUID_WIDTH = "fluidwidth", e.AFTER_PARENT = "afterparent", e.IFRAME = "iframe", e.IMAGE = "image", e.FLASH = "flash", e.AUDIO = "audio", e.VIDEO = "video", e.VIMEO = "vimeo", e.YOUTUBE = "youtube", e.MAPS = "maps", e.LINK = "link", e.NONE = "none", FWDIGP = void 0, t.FWDUGP = e
}(window),
function(t) {
    var e = function(s, a) {
        var o = this;
        e.prototype;
        this.sourcePlaylist_ar = s.playlist_ar.playlistItems, this.originalDataThumbnails_ar = [], this.dataThumbnails_ar = [], this.tempPlaylist_ar, this.rowHeights_ar = [], this.loadMoreCatsData_ar = [], this.catId_ar = s.startAtCategory_ar, this.loadMoreButton_do, this.curDataThumbnail, this.thumbnailLoadingType_str = "loadMoreOnScroll", this.handGrabPath_str = s.handGrabPath_str, this.handMovePath_str = s.handMovePath_str, this.currentThumbnailsFinalX = 0, this.totalLoadedThumbnails = 0, this.loadMoreButtonOffsetLeft = s.loadMoreButtonOffsetTop, this.loadMoreButtonOffsetRight = s.loadMoreButtonOffsetBottom, this.thumbnailsPerSet = 1000, this.thumbsHOffset = s.thumbnailsHorizontalOffset, this.thumbsVOffset = s.thumbnailsVerticalOffset, this.offsetTotalHeight = 0, this.maxH = 0, this.thumbOffsetY = 0, this.catId = s.startAtCategory, this.stageWidth = 0, this.prevStageWidth = 0, this.thumbnailMaxWidth = s.thumbnailMaxWidth, this.thumbnailMaxHeight = s.thumbnailMaxHeight, this.leftWidth = 0, this.thumbWidth, this.thumbHeight, this.thumbsHSpace = s.horizontalSpaceBetweenThumbnails, this.thumbsVSpace = s.verticalSpaceBetweenThumbnails, this.countLoadedThumbs = 0, this.borderSize = s.thumbnailBorderSize, this.totalThumbnails = this.sourcePlaylist_ar.length, this.tempTotalThumbnails = this.sourcePlaylist_ar.length, this.totalOriginalThumbnails = this.sourcePlaylist_ar.length, this.globalX = 0, this.globalY = 0, this.leftHeight = 0, this.vx = 0, this.vx2 = 0, this.friction = .9, this.searchValue = "", this.catChanging_to, this.arangeFaterTweenId_to, this.updateSearch_to, this.isMobileScrollBarRunning_bl = !1, this.isDragging_bl = !1, this.isLoadAtTheEnd_bl = !1, this.isLoadMoreButtonShowed_bl = !0, this.isCatChanging_bl = !1, this.isFirstThumbnailLoaded_bl = !1, this.centerNoSearchFoundLabelWithMenu_bl = s.centerNoSearchFoundLabelWithMenu_bl, this.firstThumbnailShowed_bl = !1, this.animateParent_bl = s.animateParent_bl, this.addMouseWheelSupport_bl = s.addMouseWheelSupport_bl, this.isVerticalType_bl = s.isVerticalType_bl, this.isLoadingMore_bl = !1, this.showAllCategories_bl = s.showAllCategories_bl, this.totalCats = this.showAllCategories_bl ? s.categories_ar.length - 1 : s.categories_ar.length, this.isMobile_bl = FWDRLUtils.isMobile, this.init = function() {
            this.setOverflow("visible"), this.thumbnailsHolder_do = new FWDRLDisplayObject("div"), this.thumbnailsHolder_do.setOverflow("visible"), this.setBkColor(a.backgroundColor_str), this.setupThumbnailsData(), "loadmorewithbutton" == o.thumbnailLoadingType_str && this.setupLoadMoreButton(), this.addMouseWheelSupport_bl && !this.isMobile_bl && this.addMouseWheelSupport(), this.filterCategories(), this.startGetMousePosition(), this.setupDragScrollbar(), this.addChild(this.thumbnailsHolder_do), this.setupNoSearch(), o.isMobile_bl || (o.screen.style.cursor = "url(" + o.handGrabPath_str + "), default", o.dumy_do = new FWDRLDisplayObject("div"), FWDRLUtils.isIE && (o.dumy_do.setBkColor("#FF0000"), o.dumy_do.setAlpha(1e-4)), o.dumy_do.screen.style.cursor = "url(" + o.handMovePath_str + "), default", o.addChild(o.dumy_do))
        }, this.resizeAndPosition = function() {
            this.stageWidth = a.stageWidth, a.menu_do ? this.stageHeight = a.stageHeight - a.menu_do.h : this.stageHeight = a.stageHeight, this.thumbnailsFinalX = this.thumbnailsHolder_do.getX(), this.setDataForResize(), this.positionThumbnailsAndMain(), this.centerThumbnails(!0), this.positionNoSearchLabel(), this.setWidth(this.stageWidth), this.setHeight(this.stageHeight)
        }, this.startGetMousePosition = function() {
            t.addEventListener ? (o.isMobile_bl || t.addEventListener("touchstart", this.getMousePosition), t.addEventListener("mousemove", this.getMousePosition)) : document.attachEvent && document.attachEvent("onmousemove", this.getMousePosition)
        }, this.getMousePosition = function(t) {
            var e = FWDRLUtils.getViewportMouseCoordinates(t);
            o.globalX = e.screenX, o.globalY = e.screenY
        }, this.setupThumbnailsData = function() {
            for (var t, e = [], i = 0; i < this.totalThumbnails; i++) t = {}, t.thumbnail = void 0, t.id = i, t.catId = this.sourcePlaylist_ar[i].catId, this.originalDataThumbnails_ar[i] = t, this.dataThumbnails_ar[i] = t;
            for (var i = 0; i < this.totalCats; i++) e[i] = 0;
            for (var i = 0; i < this.totalThumbnails; i++) e[this.dataThumbnails_ar[i].catId]++;
            for (var i = 0; i < this.totalCats; i++) t = {}, t.loaded = 0, t.limit = 0, t.total = e[i], t.isSelected = !1, this.loadMoreCatsData_ar[i] = t
        }, this.search = function(t) {
            o.searchValue = t, clearTimeout(o.updateSearch_to), o.updateSearch_to = setTimeout(function() {
                o.filterCategories()
            }, 200)
        }, this.getThumbnail = function(t, e) {
            var i = {};
            return i.parent = this, i.id = e, i.catId = t, i.presetType_str = s.presetType_str, i.backgroundColor_str = s.thumbnailBackgroundColor_str, i.borderNormalColor_str = this.sourcePlaylist_ar[e].thumbnailBorderNormalColor || s.thumbnailBorderNormalColor_str, i.borderSelectedColor_str = this.sourcePlaylist_ar[e].thumbnailBorderSelectedColor || s.thumbnailBorderSelectedColor_str, i.borderSize = s.thumbnailBorderSize, i.borderRadius = s.thumbnailBorderRadius, i.thumbnailOverlayColor_str = this.sourcePlaylist_ar[e].thumbnailOverlayColor || s.thumbnailOverlayColor_str, i.thumbnailOverlayOpacity = s.thumbnailOverlayOpacity, i.spaceBetweenTextAndIcons = s.spaceBetweenTextAndIcons, i.extraButtonUrl_str = this.sourcePlaylist_ar[e].extraButtonUrl_str, i.extraButtonUrlTarget_str = this.sourcePlaylist_ar[e].extraButtonUrlTarget_str, i.thumbIconPathN_str = this.sourcePlaylist_ar[e].thumbIconPathN_str, i.thumbIconPathS_str = this.sourcePlaylist_ar[e].thumbIconPathS_str, i.thumbnailIconWidth = s.thumbnailIconWidth, i.thumbnailIconHeight = s.thumbnailIconHeight, i.linkIconPathN_str = s.linkIconPathN_str, i.linkIconPathS_str = s.linkIconPathS_str, i.spaceBetweenThumbanilIcons = s.spaceBetweenThumbanilIcons, i.hideAndShowTransitionType_str = s.hideAndShowTransitionType_str, i.textVerticalAlign_str = s.textVerticalAlign_str, i.imageTransitionDirection_str = s.imageTransitionDirection_str, i.thumbanilBoxShadow_str = s.thumbanilBoxShadow_str, i.textAnimType_str = s.textAnimType_str, i.disableThumbnails_bl = s.disableThumbnails_bl, i.useIconButtons_bl = s.useIconButtons_bl, i.alt_str = this.sourcePlaylist_ar[e].alt_str, i.linkUrl_str = this.sourcePlaylist_ar[e].url, i.linkTarget_str = this.sourcePlaylist_ar[e].target, i.contentOffsetY = s.contentOffsetY, i.buttonsOffest = s.buttonsOffestY, i.isVerticalType_bl = this.isVerticalType_bl, i.isDisabled_bl = this.sourcePlaylist_ar[e].disabled_bl, i.htmlContent1_str = this.sourcePlaylist_ar[e].htmlContent1_str, i.htmlContent2_str = this.sourcePlaylist_ar[e].htmlContent2_str, FWDUGPThumbnail.setPrototype(), thumbnail = new FWDUGPThumbnail(i), thumbnail.addListener(FWDUGPThumbnail.MOUSE_UP, this.thumbanilOnMouseUpHandler), this.thumbnailsHolder_do.addChild(thumbnail), thumbnail
        }, this.thumbanilOnMouseUpHandler = function(i) {
            for (var a = i.id, n = i.id, l = i.extraButton ? "extraButtonLink" : o.sourcePlaylist_ar[a].type_str, r = 0; r < o.totalOriginalThumbnails; r++) n > r && (o.sourcePlaylist_ar[r].type_str == FWDUGP.NONE || o.sourcePlaylist_ar[r].type_str == FWDUGP.LINK) && (a -= 1);
            "extraButtonLink" == l ? s.isPintrest_bl ? PDK.pin(o.sourcePlaylist_ar[i.id].thumbnailPath_str, o.sourcePlaylist_ar[i.id].rawDescription_str, o.sourcePlaylist_ar[i.id].pinLInk_str, function() {}) : t.open(o.dataThumbnails_ar[i.id].thumbnail.extraButtonUrl_str, o.dataThumbnails_ar[i.id].thumbnail.extraButtonUrlTarget_str) : "link" == l ? t.open(o.dataThumbnails_ar[i.id].thumbnail.linkUrl_str, o.dataThumbnails_ar[i.id].thumbnail.linkTarget_str) : o.dispatchEvent(e.OPEN_LIGHTBOX, {
                id: a
            })
        }, this.updateCategory = function(t) {
            this.catId_ar != t && (this.catId_ar = t, this.thumbnailsFinalX = this.thumbnailsHolder_do.getX(), this.deactivateDragScrollBar(), this.filterCategories(), this.positionThumbnailsAndMain(), this.dispatchEvent(e.CATEGORY_UPDATE))
        }, this.stopToLoadImage = function() {
            clearTimeout(this.loadThumbnailId_to), o.image_img && (o.image_img.onerror = null,
                o.image_img.onload = null)
        }, this.startToLoadImage = function(t) {
            o.image_img = new Image, o.image_img.onerror = o.onImageLoadErrorHandler, o.image_img.onload = o.onImageLoadHandler, o.image_img.src = t
        }, this.loadThumbImage = function() {
            var t;
            o.stopToLoadImage();
            for (var e = 0; e < o.totalCats; e++)
                if (o.loadMoreCatsData_ar[e].isSelected && o.loadMoreCatsData_ar[e].loaded < o.loadMoreCatsData_ar[e].limit) {
                    t = e;
                    break
                }
            for (var e = 0; e < o.tempTotalThumbnails && (o.curDataThumbnail = o.tempPlaylist_ar[e], o.curDataThumbnail.catId != t || o.curDataThumbnail.thumbnail); e++);
            o.startToLoadImage(o.sourcePlaylist_ar[o.curDataThumbnail.id].thumbnailPath_str)
        }, this.onImageLoadErrorHandler = function(t) {
            var i = "Thumbnail image can't be loaded, probably the path is incorrect <font color='#FFFFFF'>" + o.sourcePlaylist_ar[o.curDataThumbnail.id].thumbnailPath_str + "</font>";
            o.dispatchEvent(e.ERROR, {
                text: i
            })
        }, this.onImageLoadHandler = function(t) {
            var e = o.getThumbnail(o.curDataThumbnail.catId, o.curDataThumbnail.id);
            o.loadMoreCatsData_ar[o.curDataThumbnail.catId].loaded++, o.curDataThumbnail.thumbnail = e, o.originalDataThumbnails_ar[o.curDataThumbnail.id].thumbnail = e, e.hasImg_bl = !0, e.originalWidth = o.image_img.width, e.originalHeight = o.image_img.height, e.addImage(o.image_img), o.countLoadedThumbs++, o.isFirstThumbnailLoaded_bl || setTimeout(function() {
                o.firstThumbnailShowed_bl = !0
            }, 200), o.updateCurThumbnails(), o.positionThumbnailsAndMain(), o.centerThumbnails(!0)
        }, this.updateCatsLimits = function() {
            var t = o.thumbnailsPerSet,
                e = 0;
            if (this.showAllCategories_bl && 0 == this.catId_ar[0]) {
                if (0 == this.loadMoreCatsData_ar[0].limit)
                    for (; t > 0 && e < this.totalCats;) this.loadMoreCatsData_ar[e].limit + t > this.loadMoreCatsData_ar[e].total ? (t -= this.loadMoreCatsData_ar[e].total - this.loadMoreCatsData_ar[e].limit, this.loadMoreCatsData_ar[e].limit = this.loadMoreCatsData_ar[e].total) : (this.loadMoreCatsData_ar[e].limit += t, t = 0), e++
            } else
                for (var i = 0; i < this.totalCats; i++) this.loadMoreCatsData_ar[i].isSelected && this.loadMoreCatsData_ar[i].limit < this.thumbnailsPerSet && (this.loadMoreCatsData_ar[i].limit = Math.min(this.loadMoreCatsData_ar[i].total, this.thumbnailsPerSet));
            this.totalThumbnailsLimit = 0;
            for (var i = 0; i < this.totalCats; i++) this.loadMoreCatsData_ar[i].isSelected && (this.totalThumbnailsLimit += this.loadMoreCatsData_ar[i].limit)
        }, this.allowToLoadMoreThumbnails = function() {
            return this.totalLoadedThumbnails == this.totalThumbnailsLimit && this.totalLoadedThumbnails < this.tempTotalThumbnails ? !0 : !1
        }, this.loadMore = function() {
            for (var t = o.thumbnailsPerSet, e = 0; t > 0 && e < o.totalCats;) o.loadMoreCatsData_ar[e].isSelected && (o.loadMoreCatsData_ar[e].limit + t > o.loadMoreCatsData_ar[e].total ? (t -= o.loadMoreCatsData_ar[e].total - o.loadMoreCatsData_ar[e].limit, o.loadMoreCatsData_ar[e].limit = o.loadMoreCatsData_ar[e].total) : (o.loadMoreCatsData_ar[e].limit += t, t = 0)), e++;
            this.totalThumbnailsLimit = 0;
            for (var i = 0; i < this.totalCats; i++) this.loadMoreCatsData_ar[i].isSelected && (this.totalThumbnailsLimit += this.loadMoreCatsData_ar[i].limit);
            o.isLoadingMore_bl = !0, o.deactivateDragScrollBar(), o.loadThumbImage()
        }, this.updateCatsData = function() {
            var t, e, i = [],
                s = [];
            o.loadMoreCatsData_ar = [];
            for (var a = 0; a < o.totalCats; a++) i[a] = 0, s[a] = 0;
            for (var a = 0; a < o.totalThumbnails; a++) t = o.dataThumbnails_ar[a], i[t.catId]++, t.thumbnail && s[t.catId]++;
            for (var a = 0; a < o.totalCats; a++) e = {}, e.loaded = s[a], e.limit = s[a], e.total = i[a], e.isSelected = !1, o.loadMoreCatsData_ar[a] = e
        }, this.filterCategories = function() {
            var t, e, i = 0;
            this.tempPlaylist_ar = [], this.playlist_ar = [], this.dataThumbnails_ar = [], o.stopToLoadImage();
            for (var s = 0; s < o.sourcePlaylist_ar.length; s++) t = o.originalDataThumbnails_ar[s], -1 != o.sourcePlaylist_ar[s].titleText_str.toLowerCase().indexOf(o.searchValue) ? o.dataThumbnails_ar.push(t) : t.thumbnail && t.thumbnail.hide(!0);
            if (o.totalThumbnails = o.dataThumbnails_ar.length, this.updateCatsData(), this.showAllCategories_bl && (i = 1), this.showAllCategories_bl && 0 == o.catId_ar[0]) {
                for (s = 0; s < this.totalThumbnails; s++) t = this.dataThumbnails_ar[s], this.tempPlaylist_ar.push(t), t.thumbnail && (this.playlist_ar.push(t), t.thumbnail.show(!0));
                for (var s = 0; s < this.totalCats; s++) this.loadMoreCatsData_ar[s].isSelected = !0
            } else
                for (s = 0; s < this.totalThumbnails; s++) {
                    t = this.dataThumbnails_ar[s], e = !1;
                    for (var a = 0; a < this.totalCats; a++) t.catId == o.catId_ar[a] - i && (this.tempPlaylist_ar.push(t), t.thumbnail && this.playlist_ar.push(t), this.loadMoreCatsData_ar[o.catId_ar[a] - i].isSelected = !0, e = !0);
                    e ? t.thumbnail && t.thumbnail.show(!0) : t.thumbnail && t.thumbnail.hide(!0)
                }
            this.tempTotalThumbnails = this.tempPlaylist_ar.length, this.totalLoadedThumbnails = this.playlist_ar.length, 0 == this.tempTotalThumbnails ? this.showNoSearch() : this.hideNoSearch(), this.updateCatsLimits(), this.totalLoadedThumbnails < this.totalThumbnailsLimit ? (clearTimeout(this.loadThumbnailId_to), this.loadThumbnailId_to = setTimeout(this.loadThumbImage, 300)) : (o.updateCurThumbnails(), o.positionThumbnailsAndMain(), o.centerThumbnails(!0), "loadmoreonscroll" == o.thumbnailLoadingType_str && o.stageWidth > o.totalWidth && o.allowToLoadMoreThumbnails() && o.loadMore()), "loadmorewithbutton" == o.thumbnailLoadingType_str && this.hideOrShowLoadMoreButton()
        }, this.updateCurThumbnails = function() {
            var t, e = 0;
            if (this.playlist_ar = [], this.showAllCategories_bl && (e = 1), this.showAllCategories_bl && 0 == o.catId_ar[0])
                for (i = 0; i < this.totalThumbnails; i++) t = this.dataThumbnails_ar[i], t.thumbnail && this.playlist_ar.push(t);
            else
                for (i = 0; i < this.totalThumbnails; i++) {
                    t = this.dataThumbnails_ar[i];
                    for (var s = 0; s < this.totalCats; s++) t.catId == o.catId_ar[s] - e && t.thumbnail && this.playlist_ar.push(t)
                }
            this.totalLoadedThumbnails = this.playlist_ar.length, this.totalLoadedThumbnails < this.totalThumbnailsLimit ? (clearTimeout(this.loadThumbnailId_to), this.loadThumbnailId_to = setTimeout(this.loadThumbImage, 10)) : (o.isLoadingMore_bl = !1, "loadmoreonscroll" == o.thumbnailLoadingType_str && o.stageWidth > o.totalWidth && o.allowToLoadMoreThumbnails() && o.loadMore()), "loadmorewithbutton" == o.thumbnailLoadingType_str && this.hideOrShowLoadMoreButton()
        }, this.setDataForResize = function() {
            if (this.stageWidth) {
                this.totalRows = Math.ceil((this.stageHeight - 2 * this.thumbsVOffset + this.thumbsVSpace) / (this.thumbnailMaxHeight + 2 * this.borderSize + this.thumbsVSpace)), this.thumbHeight = Math.floor((this.stageHeight - 2 * this.thumbsVOffset + this.thumbsVSpace - this.totalRows * (this.thumbsVSpace + 2 * this.borderSize)) / this.totalRows), this.thumbWidth = Math.floor(this.thumbHeight * (this.thumbnailMaxWidth / this.thumbnailMaxHeight));
                var t = this.totalRows * (this.thumbHeight + 2 * this.borderSize + this.thumbsVSpace) - this.thumbsVSpace;
                this.leftHeight = this.stageHeight - 2 * this.thumbsVOffset - t, this.prevStageWidth = this.stageWidth
            }
        }, this.positionThumbnailsAndMain = function() {
            this.positionThumbnails(), this.positionLoadMoreButton(), this.totalWidth += this.offsetTotalWidth
        }, this.positionThumbnails = function() {
            for (var t, e, i, s, a, n, l = 0; l < o.totalLoadedThumbnails; l++) a = o.playlist_ar[l].thumbnail, i = o.thumbWidth + 2 * o.borderSize, s = o.thumbHeight + 2 * o.borderSize, o.leftHeight > 0 && l % o.totalRows < o.leftHeight && s++, t = Math.floor(l / o.totalRows) * (i + o.thumbsHSpace) + o.thumbsHOffset, l % o.totalRows == 0 ? (n = o.thumbsVOffset, e = o.thumbsVOffset) : e = n, n += s + o.thumbsVSpace, a.finalW = i, a.finalH = s, a.finalX = t, a.finalY = e, a.resizeAndPosition();
            a ? o.totalWidth = t + i + o.thumbsHOffset : o.totalWidth = 0
        }, this.setupNoSearch = function() {
            this.noSearch_do = new FWDRLDisplayObject("div"), this.noSearch_do.setOverflow("visible"), this.noSearch_do.setDisplay("inline-block"), this.noSearch_do.getStyle().fontSmoothing = "antialiased", this.noSearch_do.getStyle().webkitFontSmoothing = "antialiased", this.noSearch_do.getStyle().textRendering = "optimizeLegibility", this.noSearch_do.getStyle().whiteSpace = "nowrap", this.noSearch_do.setBackfaceVisibility(), this.noSearch_do.getStyle().padding = "", this.noSearch_do.getStyle().margin = "", this.noSearch_do.screen.className = s.searchNotFoundClassName_str, this.noSearch_do.hasTransform3d_bl = !1, this.noSearch_do.hasTransform2d_bl = !1, this.noSearch_do.setAlpha(0), this.noSearch_do.setInnerHTML(s.searchNotFoundLabel_str), this.addChild(this.noSearch_do), setTimeout(function() {
                o.noSearch_do.w = o.noSearch_do.getWidth(), o.noSearch_do.h = o.noSearch_do.getHeight(), o.removeChild(o.noSearch_do)
            }, 70)
        }, this.showNoSearch = function() {
            this.isNoSearchFoundShowed_bl || (this.isNoSearchFoundShowed_bl = !0, this.addChild(this.noSearch_do), this.positionNoSearchLabel(), FWDRLTweenMax.killTweensOf(this.noSearch_do), FWDRLTweenMax.to(this.noSearch_do, .1, {
                alpha: 1,
                yoyo: !0,
                repeat: 8
            }))
        }, this.hideNoSearch = function() {
            this.isNoSearchFoundShowed_bl && (this.isNoSearchFoundShowed_bl = !1, FWDRLTweenMax.killTweensOf(this.noSearch_do), FWDRLTweenMax.to(this.noSearch_do, .1, {
                alpha: 0,
                onComplete: function() {
                    o.removeChild(o.noSearch_do)
                }
            }))
        }, this.positionNoSearchLabel = function() {
            this.isNoSearchFoundShowed_bl && (this.noSearch_do.setX(parseInt((this.stageWidth - this.noSearch_do.w) / 2)), a.menu_do.isShowed_bl && this.centerNoSearchFoundLabelWithMenu_bl ? this.noSearch_do.setY(parseInt((this.stageHeight - a.menu_do.menuOffsetBottom - this.noSearch_do.h) / 2)) : this.noSearch_do.setY(parseInt((this.stageHeight - this.noSearch_do.h) / 2)))
        }, this.setupLoadMoreButton = function() {
            FWDUGPMenuButton.setPrototype(), o.loadMoreButton_do = new FWDUGPMenuButton(s.loadMoreButtonLabel_str, s.loadMoreButtonBackgroundNormalClassName_str, s.loadMoreButtonBackgroundSelectedClassName_str, s.loadMoreButtonTextNormalClassName_str, s.loadMoreButtonTextSeectedClassName_str), this.loadMoreButton_do.setLabel(s.loadMoreButtonLabel_str), this.loadMoreButton_do.getStyle().zIndex = 20, this.loadMoreButton_do.addListener(FWDUGPMenuButton.MOUSE_UP, this.loadMoreButtonOnMouseUpHandler), this.hideLoadMoreButton(), this.thumbnailsHolder_do.addChild(this.loadMoreButton_do)
        }, this.loadMoreButtonOnMouseUpHandler = function() {
            o.hideLoadMoreButton(), o.loadMore()
        }, this.hideLoadMoreButton = function() {
            this.loadMoreButton_do && this.isLoadMoreButtonShowed_bl && (this.isLoadMoreButtonShowed_bl = !1, this.loadMoreButton_do.setVisible(!1))
        }, this.showLoadMoreButton = function() {
            this.loadMoreButton_do && !this.isLoadMoreButtonShowed_bl && (this.isLoadMoreButtonShowed_bl = !0, this.loadMoreButton_do.setVisible(!0), this.isMobile_bl || (this.loadMoreButton_do.setAlpha(0), FWDRLTweenMax.to(this.loadMoreButton_do, .6, {
                alpha: 1
            })), this.positionLoadMoreButton())
        }, this.hideOrShowLoadMoreButton = function() {
            o.allowToLoadMoreThumbnails() ? o.showLoadMoreButton() : o.hideLoadMoreButton()
        }, this.positionLoadMoreButton = function() {
            return this.isLoadMoreButtonShowed_bl && this.loadMoreButton_do ? (this.isMobile_bl || 0 == this.loadMoreButton_do.alpha ? (this.loadMoreButton_do.setX(this.totalWidth + this.loadMoreButtonOffsetLeft), this.loadMoreButton_do.setY(parseInt((this.stageHeight - this.loadMoreButton_do.h) / 2))) : FWDRLTweenMax.to(this.loadMoreButton_do, .5, {
                x: parseInt(this.totalWidth + this.loadMoreButtonOffsetLeft),
                y: parseInt((this.stageHeight - this.loadMoreButton_do.h) / 2)
            }), void(this.offsetTotalWidth = this.loadMoreButtonOffsetLeft + this.loadMoreButtonOffsetRight + this.loadMoreButton_do.w)) : void(this.offsetTotalWidth = 0)
        }, this.centerThumbnails = function(t) {
            o.currentThumbnailsFinalX = o.thumbnailsFinalX, o.isMobileScrollBarRunning_bl || o.isDragging_bl || (o.stageWidth >= o.totalWidth ? o.thumbnailsFinalX = Math.round((o.stageWidth - o.totalWidth) / 2) : o.thumbnailsFinalX > 0 ? o.thumbnailsFinalX = 0 : o.thumbnailsFinalX < o.stageWidth - o.totalWidth && (o.isLoadingMore_bl || (o.thumbnailsFinalX = o.stageWidth - o.totalWidth)), FWDRLTweenMax.killTweensOf(o.thumbnailsHolder_do), t ? FWDRLTweenMax.to(o.thumbnailsHolder_do, .3, {
                x: o.thumbnailsFinalX
            }) : o.thumbnailsHolder_do.setX(o.thumbnailsFinalX))
        }, o.addMouseWheelSupport = function() {
            o.screen.addEventListener ? (o.screen.addEventListener("mousewheel", o.mouseWheelDragHandler), o.screen.addEventListener("DOMMouseScroll", o.mouseWheelDragHandler)) : o.screen.attachEvent && o.screen.attachEvent("onmousewheel", o.mouseWheelDragHandler)
        }, o.removeMouseWheelSupport = function() {
            o.screen.removeEventListener ? (o.screen.removeEventListener("mousewheel", o.mouseWheelDragHandler), o.screen.removeEventListener("DOMMouseScroll", o.mouseWheelDragHandler)) : o.screen.detachEvent && o.screen.detachEvent("onmousewheel", o.mouseWheelDragHandler)
        }, o.mouseWheelDragHandler = function(t) {
            var e;
            if (!(o.totalWidth <= o.stageWidth || o.isDragging_bl)) {
                var e = t.detail || t.wheelDelta;
                return t.wheelDelta && (e *= -1), e > 0 ? o.vx -= 10 : 0 > e && (o.vx += 10), o.isMobileScrollBarRunning_bl || o.activateDragScrollBar(), t.preventDefault ? void t.preventDefault() : !1
            }
        }, this.setupDragScrollbar = function() {
            o.isMobile_bl ? o.hasPointerEvent_bl ? o.screen.addEventListener("MSPointerDown", o.mobileScrBarStartHandler) : o.screen.addEventListener("touchstart", o.mobileScrBarStartTest) : o.screen.addEventListener ? o.screen.addEventListener("mousedown", o.mobileScrBarStartHandler) : o.screen.attachEvent && o.screen.attachEvent("onmousedown", o.mobileScrBarStartHandler)
        }, this.mobileScrBarStartTest = function(e) {
            var i = FWDRLUtils.getViewportMouseCoordinates(e);
            o.lastPressedX = i.screenX, o.lastPressedY = i.screenY, t.addEventListener("touchmove", o.mobileScrBarMoveTest)
        }, this.mobileScrBarMoveTest = function(e) {
            if (1 == e.touches.length) {
                var i = FWDRLUtils.getViewportMouseCoordinates(e);
                o.mouseX = i.screenX, o.mouseY = i.screenY;
                var s = Math.atan2(o.mouseY - o.lastPressedY, o.mouseX - o.lastPressedX),
                    n = 180 * Math.abs(s) / Math.PI;
                n > 120 || 60 > n || a.isFullScreen_bl ? (e.preventDefault(), o.mobileScrBarStartHandler(e), t.removeEventListener("touchmove", o.mobileScrBarMoveTest)) : (o.disableThumbClick_bl = !0, t.addEventListener("touchend", o.mobileScrBarEndTest))
            }
        }, this.mobileScrBarEndTest = function(e) {
            t.removeEventListener("touchmove", o.mobileScrBarMoveTest), t.removeEventListener("touchend", o.mobileScrBarEndTest)
        }, this.mobileScrBarStartHandler = function(e) {
            if (!(o.stageWidth > o.totalWidth)) {
                e.preventDefault && e.preventDefault();
                var i = FWDRLUtils.getViewportMouseCoordinates(e);
                o.stageWidth < o.totalWidth && (o.isDragging_bl = !0, o.lastPressedX = i.screenX, o.setOnceDumySizeOnMove_bl = !0, o.vx = 0, o.thumbnailsFinalX = o.thumbnailsHolder_do.getX(), clearTimeout(o.disableThumbClickDelayId_to), o.activateDragScrollBar()), o.isMobile_bl ? o.hasPointerEvent_bl ? (t.addEventListener("MSPointerUp", o.mobileScrBarEndHandler), t.addEventListener("MSPointerMove", o.mobileScrBarMoveHandler)) : (t.addEventListener("touchend", o.mobileScrBarEndHandler), t.addEventListener("touchmove", o.mobileScrBarMoveHandler)) : t.addEventListener ? (t.addEventListener("mouseup", o.mobileScrBarEndHandler), t.addEventListener("mousemove", o.mobileScrBarMoveHandler)) : document.attachEvent && (document.attachEvent("onmouseup", o.mobileScrBarEndHandler), document.attachEvent("onmousemove", o.mobileScrBarMoveHandler))
            }
        }, this.mobileScrBarMoveHandler = function(t) {
            if (t.preventDefault && t.preventDefault(), !(o.stageWidth > o.totalWidth)) {
                var e = FWDRLUtils.getViewportMouseCoordinates(t);
                if (e.screenX != o.lastPressedX) {
                    var i = e.screenX - o.lastPressedX;
                    o.disableThumbClick_bl = !0, (o.setOnceDumySizeOnMove_bl && !o.isMobile_bl || o.setOnceDumySizeOnMove_bl && o.hasPointerEvent_bl) && (o.dumy_do.setWidth(o.stageWidth), o.dumy_do.setHeight(o.stageHeight), o.curThumbnail_do && o.curThumbnail_do.hideContent(), o.curSelectedThumbnail_do, o.setOnceDumySizeOnMove_bl = !1), o.thumbnailsFinalX += i, o.thumbnailsFinalX = Math.round(o.thumbnailsFinalX), !o.ieOldMoveTest_bl && FWDRLUtils.isIE ? (clearInterval(o.ieOldMoveTestId_int), o.ieOldMoveTestId_int = setInterval(o.updateThumbnailsPosition, 16), o.ieOldMoveTest_bl = !0) : FWDRLUtils.isIE || o.thumbnailsHolder_do.setX(o.thumbnailsFinalX), o.lastPressedX = e.screenX, o.vx = 2 * i
                }
            }
        }, this.updateThumbnailsPosition = function() {
            o.thumbnailsHolder_do.setX(o.thumbnailsFinalX)
        }, this.mobileScrBarEndHandler = function(e) {
            clearInterval(o.ieOldMoveTestId_int), o.ieOldMoveTest_bl = !1, o.isDragging_bl = !1, o.disableThumbClickDelayId_to = setTimeout(function() {
                o.disableThumbClick_bl = !1
            }, 100), (!o.isMobile_bl || o.hasPointerEvent_bl) && (o.dumy_do.setWidth(0), o.dumy_do.setHeight(0)), o.isMobile_bl ? o.hasPointerEvent_bl ? (t.removeEventListener("MSPointerUp", o.mobileScrBarEndHandler), t.removeEventListener("MSPointerMove", o.mobileScrBarMoveHandler)) : (t.removeEventListener("touchend", o.mobileScrBarEndHandler), t.removeEventListener("touchmove", o.mobileScrBarMoveHandler)) : t.removeEventListener ? (t.removeEventListener("mouseup", o.mobileScrBarEndHandler), t.removeEventListener("mousemove", o.mobileScrBarMoveHandler)) : document.detachEvent && (document.detachEvent("onmouseup", o.mobileScrBarEndHandler), document.detachEvent("onmousemove", o.mobileScrBarMoveHandler))
        }, this.updateMobileScrollBar = function() {
            o.isDragging_bl || (o.stageWidth <= o.totalWidth && (o.vx *= o.friction, o.thumbnailsFinalX += o.vx, o.thumbnailsFinalX > 0 ? (o.vx2 = .3 * (0 - o.thumbnailsFinalX), o.vx *= o.friction, o.thumbnailsFinalX += o.vx2) : o.thumbnailsFinalX < o.stageWidth - o.totalWidth && (o.vx2 = .3 * (o.stageWidth - o.totalWidth - o.thumbnailsFinalX), o.vx *= o.friction, o.thumbnailsFinalX += o.vx2), o.thumbnailsFinalX < o.stageWidth - o.totalWidth && "loadmoreonscroll" == o.thumbnailLoadingType_str && !o.isLoadingMore_bl && o.allowToLoadMoreThumbnails() && (clearTimeout(this.loadInifiniteId_to), this.loadInifiniteId_to = setTimeout(function() {
                o.loadMore()
            }, 500))), Math.abs(o.vx) < .01 && o.deactivateDragScrollBar(), o.thumbnailsHolder_do.setX(Math.round(o.thumbnailsFinalX))), o.stageWidth > o.totalWidth && o.deactivateDragScrollBar()
        }, this.activateDragScrollBar = function() {
            o.stageWidth > o.totalWidth || o.isMobileScrollBarRunning_bl || (o.isMobileScrollBarRunning_bl = !0, FWDRLTweenMax.killTweensOf(o.thumbnailsHolder_do), clearInterval(o.updateMobileScrollBarId_int), o.updateMobileScrollBarId_int = setInterval(o.updateMobileScrollBar, 16))
        }, this.deactivateDragScrollBar = function() {
            o.isMobileScrollBarRunning_bl = !1, o.vx = o.vx2 = 0, clearInterval(o.updateMobileScrollBarId_int), t.removeEventListener && t.removeEventListener("touchmove", o.mobileScrBarMoveTest)
        }, this.init()
    };
    e.setPrototype = function() {
        e.prototype = new FWDRLDisplayObject("div", "relative")
    }, e.OPEN_LIGHTBOX = "openLightbox", e.CATEGORY_UPDATE = "categoryUpdate", e.ERROR = "error", e.prototype = null, t.FWDUGPClassicHorizontalThumbnailsManager = e
}(window),
function(t) {
    var e = function(s, a) {
        var o = this;
        e.prototype;
        this.sourcePlaylist_ar = s.playlist_ar.playlistItems, this.originalDataThumbnails_ar = [], this.dataThumbnails_ar = [], this.tempPlaylist_ar, this.columnHeights_ar = [], this.loadMoreCatsData_ar = [], this.catId_ar = s.startAtCategory_ar, this.loadMoreButton_do, this.curDataThumbnail, this.thumbnailLoadingType_str = s.thumbnailLoadingType_str, this.totalLoadedThumbnails = 0, this.loadMoreButtonOffsetTop = s.loadMoreButtonOffsetTop, this.loadMoreButtonOffsetBottom = s.loadMoreButtonOffsetBottom, this.thumbnailsPerSet = s.howManyThumbnailsToDisplayPerSet, this.thumbsHOffset = s.thumbnailsHorizontalOffset, this.thumbsVOffset = s.thumbnailsVerticalOffset, this.offsetTotalHeight = 0, this.maxH = 0, this.thumbOffsetX = 0, this.catId = s.startAtCategory, this.stageWidth = 0, this.prevStageWidth = 0, this.thumbnailMaxWidth = s.thumbnailMaxWidth, this.thumbnailMaxHeight = s.thumbnailMaxHeight, this.leftWidth = 0, this.thumbWidth, this.thumbHeight, this.thumbsHSpace = s.horizontalSpaceBetweenThumbnails, this.thumbsVSpace = s.verticalSpaceBetweenThumbnails, this.countLoadedThumbs = 0, this.borderSize = s.thumbnailBorderSize, this.totalThumbnails = this.sourcePlaylist_ar.length, this.tempTotalThumbnails = this.sourcePlaylist_ar.length, this.totalOriginalThumbnails = this.sourcePlaylist_ar.length, this.globalX = 0, this.globalY = 0, this.searchValue = "", this.catChanging_to, this.arangeFaterTweenId_to, this.updateSearch_to, this.centerWithMenu_bl = s.centerNoSearchFoundLabelWithMenu_bl, this.isLoadAtTheEnd_bl = !1, this.isLoadMoreButtonShowed_bl = !0, this.isCatChanging_bl = !1, this.isFirstThumbnailLoaded_bl = !1, this.firstThumbnailShowed_bl = !1, this.animateParent_bl = s.animateParent_bl, this.hasExtraText_bl = s.hasExtraText_bl, this.isVerticalType_bl = s.isVerticalType_bl, this.hasSearchResult_bl = !0, this.showAllCategories_bl = s.showAllCategories_bl, this.totalCats = this.showAllCategories_bl ? s.categories_ar.length - 1 : s.categories_ar.length, this.isMobile_bl = FWDRLUtils.isMobile, this.init = function() {
            this.setOverflow("visible"), this.setBkColor(a.backgroundColor_str), this.setupThumbnailsData(), "loadmorewithbutton" == o.thumbnailLoadingType_str ? this.setupLoadMoreButton() : "loadmoreonscroll" == this.thumbnailLoadingType_str && this.setupLoadMoreOnScroll(), this.filterCategories(), this.startGetMousePosition(), this.setupNoSearch()
        }, this.resizeAndPosition = function() {
            o.stageWidth = a.stageWidth, o.setDataForResize(), o.positionThumbnailsAndMain()
        }, this.startGetMousePosition = function() {
            t.addEventListener ? (o.isMobile_bl || t.addEventListener("touchstart", this.getMousePosition), t.addEventListener("mousemove", this.getMousePosition)) : document.attachEvent && document.attachEvent("onmousemove", this.getMousePosition)
        }, this.getMousePosition = function(t) {
            var e = FWDRLUtils.getViewportMouseCoordinates(t);
            o.isMobile_bl || (o.globalX = e.screenX, o.globalY = e.screenY)
        }, this.setupThumbnailsData = function() {
            for (var t, e = [], i = 0; i < this.totalThumbnails; i++) t = {}, t.thumbnail = void 0, t.id = i, t.catId = this.sourcePlaylist_ar[i].catId, this.originalDataThumbnails_ar[i] = t, this.dataThumbnails_ar[i] = t;
            for (var i = 0; i < this.totalCats; i++) e[i] = 0;
            for (var i = 0; i < this.totalThumbnails; i++) e[this.dataThumbnails_ar[i].catId]++;
            for (var i = 0; i < this.totalCats; i++) t = {}, t.loaded = 0, t.limit = 0, t.total = e[i], t.isSelected = !1, this.loadMoreCatsData_ar[i] = t
        }, this.search = function(t) {
            o.searchValue = t, clearTimeout(o.updateSearch_to), o.updateSearch_to = setTimeout(function() {
                o.filterCategories()
            }, 200)
        }, this.getThumbnail = function(t, e) {
            var i = {};
            return i.parent = this, i.id = e, i.catId = t, i.presetType_str = s.presetType_str, i.backgroundColor_str = s.thumbnailBackgroundColor_str, i.borderNormalColor_str = this.sourcePlaylist_ar[e].thumbnailBorderNormalColor || s.thumbnailBorderNormalColor_str, i.borderSelectedColor_str = this.sourcePlaylist_ar[e].thumbnailBorderSelectedColor || s.thumbnailBorderSelectedColor_str, i.borderSize = s.thumbnailBorderSize, i.borderRadius = s.thumbnailBorderRadius, i.thumbnailOverlayColor_str = this.sourcePlaylist_ar[e].thumbnailOverlayColor || s.thumbnailOverlayColor_str, i.thumbnailOverlayOpacity = s.thumbnailOverlayOpacity, i.spaceBetweenTextAndIcons = s.spaceBetweenTextAndIcons, i.extraButtonUrl_str = this.sourcePlaylist_ar[e].extraButtonUrl_str, i.extraButtonUrlTarget_str = this.sourcePlaylist_ar[e].extraButtonUrlTarget_str, i.thumbIconPathN_str = this.sourcePlaylist_ar[e].thumbIconPathN_str, i.thumbIconPathS_str = this.sourcePlaylist_ar[e].thumbIconPathS_str, i.thumbnailIconWidth = s.thumbnailIconWidth, i.thumbnailIconHeight = s.thumbnailIconHeight, i.linkIconPathN_str = s.linkIconPathN_str, i.linkIconPathS_str = s.linkIconPathS_str, i.spaceBetweenThumbanilIcons = s.spaceBetweenThumbanilIcons, i.hideAndShowTransitionType_str = s.hideAndShowTransitionType_str, i.textVerticalAlign_str = s.textVerticalAlign_str, i.imageTransitionDirection_str = s.imageTransitionDirection_str, i.thumbanilBoxShadow_str = s.thumbanilBoxShadow_str, i.textAnimType_str = s.textAnimType_str, i.disableThumbnails_bl = s.disableThumbnails_bl, i.useIconButtons_bl = s.useIconButtons_bl, i.alt_str = this.sourcePlaylist_ar[e].alt_str, i.linkUrl_str = this.sourcePlaylist_ar[e].url, i.linkTarget_str = this.sourcePlaylist_ar[e].target, i.contentOffsetY = s.contentOffsetY, i.buttonsOffest = s.buttonsOffestY, i.isVerticalType_bl = s.isVerticalType_bl, i.isDisabled_bl = this.sourcePlaylist_ar[e].disabled_bl, i.htmlContent1_str = this.sourcePlaylist_ar[e].htmlContent1_str, i.htmlContent2_str = this.sourcePlaylist_ar[e].htmlContent2_str, i.htmlExtraContent_str = this.sourcePlaylist_ar[e].htmlExtraContent_str, FWDUGPThumbnail.setPrototype(), thumbnail = new FWDUGPThumbnail(i), thumbnail.addListener(FWDUGPThumbnail.MOUSE_UP, this.thumbanilOnMouseUpHandler), this.addChild(thumbnail), thumbnail
        }, this.thumbanilOnMouseUpHandler = function(i) {
            for (var a = i.id, n = i.id, l = i.extraButton ? "extraButtonLink" : o.sourcePlaylist_ar[a].type_str, r = 0; r < o.totalOriginalThumbnails; r++) n > r && (o.sourcePlaylist_ar[r].type_str == FWDUGP.NONE || o.sourcePlaylist_ar[r].type_str == FWDUGP.LINK) && (a -= 1);
            "extraButtonLink" == l ? s.isPintrest_bl ? PDK.pin(o.sourcePlaylist_ar[i.id].thumbnailPath_str, o.sourcePlaylist_ar[i.id].rawDescription_str, o.sourcePlaylist_ar[i.id].pinLInk_str, function() {}) : t.open(o.dataThumbnails_ar[i.id].thumbnail.extraButtonUrl_str, o.dataThumbnails_ar[i.id].thumbnail.extraButtonUrlTarget_str) : "link" == l ? t.open(o.dataThumbnails_ar[i.id].thumbnail.linkUrl_str, o.dataThumbnails_ar[i.id].thumbnail.linkTarget_str) : o.dispatchEvent(e.OPEN_LIGHTBOX, {
                id: a
            })
        }, this.updateCategory = function(t) {
            this.catId_ar != t && (this.catId_ar = t, this.filterCategories(), this.positionThumbnailsAndMain(), this.dispatchEvent(e.CATEGORY_UPDATE))
        }, this.stopToLoadImage = function() {
            clearTimeout(this.loadThumbnailId_to), o.image_img && (o.image_img.onerror = null, o.image_img.onload = null)
        }, this.startToLoadImage = function(t) {
            o.image_img = new Image, o.image_img.onerror = o.onImageLoadErrorHandler, o.image_img.onload = o.onImageLoadHandler, o.image_img.src = t
        }, this.loadThumbImage = function() {
            var t;
            o.stopToLoadImage();
            for (var e = 0; e < o.totalCats; e++)
                if (o.loadMoreCatsData_ar[e].isSelected && o.loadMoreCatsData_ar[e].loaded < o.loadMoreCatsData_ar[e].limit) {
                    t = e;
                    break
                }
            for (var e = 0; e < o.tempTotalThumbnails && (o.curDataThumbnail = o.tempPlaylist_ar[e], o.curDataThumbnail.catId != t || o.curDataThumbnail.thumbnail); e++);
            o.startToLoadImage(o.sourcePlaylist_ar[o.curDataThumbnail.id].thumbnailPath_str)
        }, this.onImageLoadErrorHandler = function(t) {
            var i = "Thumbnail image can't be loaded, probably the path is incorrect <font color='#FFFFFF'>" + o.sourcePlaylist_ar[o.curDataThumbnail.id].thumbnailPath_str + "</font>";
            o.dispatchEvent(e.ERROR, {
                text: i
            })
        }, this.onImageLoadHandler = function(t) {
            var e = o.getThumbnail(o.curDataThumbnail.catId, o.curDataThumbnail.id);
            o.loadMoreCatsData_ar[o.curDataThumbnail.catId].loaded++, o.curDataThumbnail.thumbnail = e, o.originalDataThumbnails_ar[o.curDataThumbnail.id].thumbnail = e, e.hasImg_bl = !0, e.originalWidth = o.image_img.width, e.originalHeight = o.image_img.height, e.addImage(o.image_img), o.countLoadedThumbs++, o.isFirstThumbnailLoaded_bl || setTimeout(function() {
                o.firstThumbnailShowed_bl = !0
            }, 200), o.updateCurThumbnails(), o.positionThumbnailsAndMain()
        }, this.updateCatsLimits = function() {
            var t = o.thumbnailsPerSet,
                e = 0;
            if (this.showAllCategories_bl && 0 == this.catId_ar[0]) {
                if (0 == this.loadMoreCatsData_ar[0].limit)
                    for (; t > 0 && e < this.totalCats;) this.loadMoreCatsData_ar[e].limit + t > this.loadMoreCatsData_ar[e].total ? (t -= this.loadMoreCatsData_ar[e].total - this.loadMoreCatsData_ar[e].limit, this.loadMoreCatsData_ar[e].limit = this.loadMoreCatsData_ar[e].total) : (this.loadMoreCatsData_ar[e].limit += t, t = 0), e++
            } else
                for (var i = 0; i < this.totalCats; i++) this.loadMoreCatsData_ar[i].isSelected && this.loadMoreCatsData_ar[i].limit < this.thumbnailsPerSet && (this.loadMoreCatsData_ar[i].limit = Math.min(this.loadMoreCatsData_ar[i].total, this.thumbnailsPerSet));
            this.totalThumbnailsLimit = 0;
            for (var i = 0; i < this.totalCats; i++) this.loadMoreCatsData_ar[i].isSelected && (this.totalThumbnailsLimit += this.loadMoreCatsData_ar[i].limit)
        }, this.allowToLoadMoreThumbnails = function() {
            return this.totalLoadedThumbnails == this.totalThumbnailsLimit && this.totalLoadedThumbnails < this.tempTotalThumbnails ? !0 : !1
        }, this.loadMore = function() {
            for (var t = o.thumbnailsPerSet, e = 0; t > 0 && e < o.totalCats;) o.loadMoreCatsData_ar[e].isSelected && (o.loadMoreCatsData_ar[e].limit + t > o.loadMoreCatsData_ar[e].total ? (t -= o.loadMoreCatsData_ar[e].total - o.loadMoreCatsData_ar[e].limit, o.loadMoreCatsData_ar[e].limit = o.loadMoreCatsData_ar[e].total) : (o.loadMoreCatsData_ar[e].limit += t, t = 0)), e++;
            this.totalThumbnailsLimit = 0;
            for (var i = 0; i < this.totalCats; i++) this.loadMoreCatsData_ar[i].isSelected && (this.totalThumbnailsLimit += this.loadMoreCatsData_ar[i].limit);
            o.loadThumbImage()
        }, this.updateCatsData = function() {
            var t, e, i = [],
                s = [];
            o.loadMoreCatsData_ar = [];
            for (var a = 0; a < o.totalCats; a++) i[a] = 0, s[a] = 0;
            for (var a = 0; a < o.totalThumbnails; a++) t = o.dataThumbnails_ar[a], i[t.catId]++, t.thumbnail && s[t.catId]++;
            for (var a = 0; a < o.totalCats; a++) e = {}, e.loaded = s[a], e.limit = s[a], e.total = i[a], e.isSelected = !1, o.loadMoreCatsData_ar[a] = e
        }, this.filterCategories = function() {
            var t, e, i = 0;
            this.tempPlaylist_ar = [], this.playlist_ar = [], this.dataThumbnails_ar = [], o.stopToLoadImage();
            for (var s = 0; s < o.sourcePlaylist_ar.length; s++) t = o.originalDataThumbnails_ar[s], -1 != o.sourcePlaylist_ar[s].titleText_str.toLowerCase().indexOf(o.searchValue) ? o.dataThumbnails_ar.push(t) : t.thumbnail && t.thumbnail.hide(!0);
            if (o.totalThumbnails = o.dataThumbnails_ar.length, this.updateCatsData(), this.showAllCategories_bl && (i = 1), this.showAllCategories_bl && 0 == o.catId_ar[0]) {
                for (s = 0; s < this.totalThumbnails; s++) t = this.dataThumbnails_ar[s], this.tempPlaylist_ar.push(t), t.thumbnail && (this.playlist_ar.push(t), t.thumbnail.show(!0));
                for (var s = 0; s < this.totalCats; s++) this.loadMoreCatsData_ar[s].isSelected = !0
            } else
                for (s = 0; s < this.totalThumbnails; s++) {
                    t = this.dataThumbnails_ar[s], e = !1;
                    for (var a = 0; a < this.totalCats; a++) t.catId == o.catId_ar[a] - i && (this.tempPlaylist_ar.push(t), t.thumbnail && this.playlist_ar.push(t), this.loadMoreCatsData_ar[o.catId_ar[a] - i].isSelected = !0, e = !0);
                    e ? t.thumbnail && t.thumbnail.show(!0) : t.thumbnail && t.thumbnail.hide(!0)
                }
            this.tempTotalThumbnails = this.tempPlaylist_ar.length, this.totalLoadedThumbnails = this.playlist_ar.length, 0 == this.tempTotalThumbnails ? (this.hasSearchResult_bl = !1, this.showNoSearch()) : (this.hasSearchResult_bl = !0, this.hideNoSearch()), this.updateCatsLimits(), this.totalLoadedThumbnails < this.totalThumbnailsLimit ? (clearTimeout(this.loadThumbnailId_to), this.loadThumbnailId_to = setTimeout(this.loadThumbImage, 300)) : (o.updateCurThumbnails(), o.positionThumbnailsAndMain()), "loadmorewithbutton" == o.thumbnailLoadingType_str && this.hideOrShowLoadMoreButton()
        }, this.updateCurThumbnails = function() {
            var t, e = 0;
            if (this.playlist_ar = [], this.showAllCategories_bl && (e = 1), this.showAllCategories_bl && 0 == o.catId_ar[0])
                for (i = 0; i < this.totalThumbnails; i++) t = this.dataThumbnails_ar[i], t.thumbnail && this.playlist_ar.push(t);
            else
                for (i = 0; i < this.totalThumbnails; i++) {
                    t = this.dataThumbnails_ar[i];
                    for (var s = 0; s < this.totalCats; s++) t.catId == o.catId_ar[s] - e && t.thumbnail && this.playlist_ar.push(t)
                }
            this.totalLoadedThumbnails = this.playlist_ar.length, this.totalLoadedThumbnails < this.totalThumbnailsLimit && (clearTimeout(this.loadThumbnailId_to), this.hasExtraText_bl ? this.loadThumbnailId_to = setTimeout(this.loadThumbImage, 53) : this.loadThumbnailId_to = setTimeout(this.loadThumbImage, 10)), "loadmorewithbutton" == o.thumbnailLoadingType_str ? this.hideOrShowLoadMoreButton() : "loadmoreonscroll" == this.thumbnailLoadingType_str && this.loadInfinite()
        }, this.setDataForResize = function() {
            if (this.stageWidth) {
                this.totalColumns = Math.ceil((this.stageWidth - 2 * this.thumbsHOffset + this.thumbsHSpace) / (this.thumbnailMaxWidth + 2 * this.borderSize + this.thumbsHSpace)), this.thumbWidth = Math.floor((this.stageWidth - 2 * this.thumbsHOffset + this.thumbsHSpace - this.totalColumns * (this.thumbsHSpace + 2 * this.borderSize)) / this.totalColumns), this.thumbHeight = Math.floor(this.thumbWidth * (this.thumbnailMaxHeight / this.thumbnailMaxWidth));
                var t = this.totalColumns * (this.thumbWidth + 2 * this.borderSize + this.thumbsHSpace) - this.thumbsHSpace;
                this.leftWidth = this.stageWidth - 2 * this.thumbsHOffset - t, this.prevStageWidth = this.stageWidth
            }
        }, this.positionThumbnailsAndMain = function() {
            this.hasExtraText_bl ? (o.setThumbsExtraTextWidth(), clearTimeout(this.resizeWithExtraContentId_to), this.resizeWithExtraContentId_to = setTimeout(function() {
                o.positionThumbnailWithExtraContent(), o.setFinalSize()
            }, 51)) : (this.positionThumbnails(), this.setFinalSize())
        }, this.setFinalSize = function() {
            o.positionLoadMoreButton(), o.totalHeight += o.offsetTotalHeight, o.hasSearchResult_bl || (o.totalHeight = o.thumbHeight, o.positionNoSearchLabel()), o.prevTotalHeight != o.totalHeight && (o.firstThumbnailShowed_bl && o.animateParent_bl && !o.isMobile_bl ? (FWDRLTweenMax.to(o, .7, {
                h: o.totalHeight,
                ease: Quart.easeOut
            }), clearTimeout(o.arangeFaterTweenId_to), o.arangeFaterTweenId_to = setTimeout(function() {
                o.stageWidth != a.stageContainer.offsetWidth && a.onResizeHandler()
            }, 700)) : o.setHeight(o.totalHeight)), a.setFinalSize(), a.stageWidth = a.stageContainer.offsetWidth, o.prevTotalHeight = o.totalHeight, o.stageWidth != a.stageWidth && a.onResizeHandler()
        }, this.positionThumbnails = function() {
            for (var t, e, i, s, a, n, l = 0; l < o.totalLoadedThumbnails; l++) a = o.playlist_ar[l].thumbnail, i = o.thumbWidth + 2 * o.borderSize, s = o.thumbHeight + 2 * o.borderSize, o.leftWidth > 0 && l % o.totalColumns < o.leftWidth && i++, e = Math.floor(l / o.totalColumns) * (s + o.thumbsVSpace) + o.thumbsVOffset, l % o.totalColumns == 0 ? (n = o.thumbsHOffset, t = o.thumbsHOffset) : t = n, n += i + o.thumbsHSpace, a.finalW = i, a.finalH = s, a.finalX = t,
                a.finalY = e, a.resizeAndPosition();
            a ? o.totalHeight = e + s + o.thumbsVOffset : o.totalHeight = 0
        }, this.setThumbsExtraTextWidth = function() {
            for (var t, e, i = 0; i < o.totalLoadedThumbnails; i++) e = o.playlist_ar[i].thumbnail, t = o.thumbWidth + 2 * o.borderSize, o.leftWidth > 0 && i % o.totalColumns < o.leftWidth && t++, e.hasExtraText_bl && e.textHolder_do.setWidth(t - 2 * o.borderSize)
        }, this.positionThumbnailWithExtraContent = function() {
            for (var t, e, i, s, a, n, l = 0, r = o.thumbsVOffset, h = 0; h < o.totalLoadedThumbnails; h++) a = o.playlist_ar[h].thumbnail, a.hasExtraText_bl && (a.addToHeight = a.text3_do.getHeight()), i = o.thumbWidth + 2 * o.borderSize, s = o.thumbHeight + 2 * o.borderSize, o.leftWidth > 0 && h % o.totalColumns < o.leftWidth && i++, 0 != h && h % o.totalColumns == 0 && (r += s + l + o.thumbsVSpace), a.addToHeight > l && (l = a.addToHeight), h % o.totalColumns == 0 ? (n = o.thumbsHOffset, t = o.thumbsHOffset, h < o.totalLoadedThumbnails - 1 && (l = 0)) : t = n, e = r, n += i + o.thumbsHSpace, a.finalW = i, a.finalH = s + a.addToHeight, a.finalX = t, a.finalY = e, a.resizeAndPosition();
            a ? o.totalHeight = e + s + l + o.thumbsVOffset : o.totalHeight = 0
        }, this.setupNoSearch = function() {
            this.noSearch_do = new FWDRLDisplayObject("div"), this.noSearch_do.setOverflow("visible"), this.noSearch_do.setDisplay("inline-block"), this.noSearch_do.getStyle().fontSmoothing = "antialiased", this.noSearch_do.getStyle().webkitFontSmoothing = "antialiased", this.noSearch_do.getStyle().textRendering = "optimizeLegibility", this.noSearch_do.getStyle().whiteSpace = "nowrap", this.noSearch_do.setBackfaceVisibility(), this.noSearch_do.getStyle().padding = "", this.noSearch_do.getStyle().margin = "", this.noSearch_do.screen.className = s.searchNotFoundClassName_str, this.noSearch_do.hasTransform3d_bl = !1, this.noSearch_do.hasTransform2d_bl = !1, this.noSearch_do.setAlpha(0), this.noSearch_do.setInnerHTML(s.searchNotFoundLabel_str), this.addChild(this.noSearch_do), setTimeout(function() {
                o.noSearch_do.w = o.noSearch_do.getWidth(), o.noSearch_do.h = o.noSearch_do.getHeight(), o.removeChild(o.noSearch_do)
            }, 70)
        }, this.showNoSearch = function() {
            this.isNoSearchFoundShowed_bl || (this.isNoSearchFoundShowed_bl = !0, this.addChild(this.noSearch_do), this.positionNoSearchLabel(), FWDRLTweenMax.killTweensOf(this.noSearch_do), FWDRLTweenMax.to(this.noSearch_do, .1, {
                alpha: 1,
                yoyo: !0,
                repeat: 8
            }))
        }, this.hideNoSearch = function() {
            this.isNoSearchFoundShowed_bl && (this.isNoSearchFoundShowed_bl = !1, FWDRLTweenMax.killTweensOf(this.noSearch_do), FWDRLTweenMax.to(this.noSearch_do, .1, {
                alpha: 0,
                onComplete: function() {
                    o.removeChild(o.noSearch_do)
                }
            }))
        }, this.positionNoSearchLabel = function() {
            this.isNoSearchFoundShowed_bl && (this.noSearch_do.setX(parseInt((this.stageWidth - this.noSearch_do.w) / 2)), a.menu_do.isShowed_bl && this.centerWithMenu_bl ? this.noSearch_do.setY(parseInt((this.totalHeight - a.menu_do.menuOffsetBottom - this.noSearch_do.h) / 2)) : this.noSearch_do.setY(parseInt((this.totalHeight - this.noSearch_do.h) / 2)))
        }, this.setupLoadMoreButton = function() {
            FWDUGPMenuButton.setPrototype(), o.loadMoreButton_do = new FWDUGPMenuButton(s.loadMoreButtonLabel_str, s.loadMoreButtonBackgroundNormalClassName_str, s.loadMoreButtonBackgroundSelectedClassName_str, s.loadMoreButtonTextNormalClassName_str, s.loadMoreButtonTextSeectedClassName_str), this.loadMoreButton_do.setLabel(s.loadMoreButtonLabel_str), this.loadMoreButton_do.getStyle().zIndex = 20, this.loadMoreButton_do.addListener(FWDUGPMenuButton.MOUSE_UP, this.loadMoreButtonOnMouseUpHandler), this.hideLoadMoreButton(), this.addChild(this.loadMoreButton_do)
        }, this.loadMoreButtonOnMouseUpHandler = function() {
            o.hideLoadMoreButton(), o.loadMore()
        }, this.hideLoadMoreButton = function() {
            this.loadMoreButton_do && this.isLoadMoreButtonShowed_bl && (this.isLoadMoreButtonShowed_bl = !1, this.loadMoreButton_do.setVisible(!1))
        }, this.showLoadMoreButton = function() {
            this.loadMoreButton_do && !this.isLoadMoreButtonShowed_bl && (this.isLoadMoreButtonShowed_bl = !0, this.loadMoreButton_do.setVisible(!0), this.isMobile_bl || (this.loadMoreButton_do.setAlpha(0), FWDRLTweenMax.to(this.loadMoreButton_do, .6, {
                alpha: 1
            })), this.positionLoadMoreButton())
        }, this.hideOrShowLoadMoreButton = function() {
            o.allowToLoadMoreThumbnails() ? o.showLoadMoreButton() : o.hideLoadMoreButton()
        }, this.positionLoadMoreButton = function() {
            return this.isLoadMoreButtonShowed_bl && this.loadMoreButton_do ? (this.isMobile_bl || 0 == this.loadMoreButton_do.alpha ? (this.loadMoreButton_do.setX(parseInt((this.stageWidth - this.loadMoreButton_do.w) / 2)), this.loadMoreButton_do.setY(this.totalHeight + this.loadMoreButtonOffsetTop)) : FWDRLTweenMax.to(this.loadMoreButton_do, .5, {
                x: parseInt((this.stageWidth - this.loadMoreButton_do.w) / 2),
                y: parseInt(this.totalHeight + this.loadMoreButtonOffsetTop)
            }), void(this.offsetTotalHeight = this.loadMoreButtonOffsetTop + this.loadMoreButtonOffsetBottom + this.loadMoreButton_do.h)) : void(this.offsetTotalHeight = 0)
        }, this.setupLoadMoreOnScroll = function() {
            t.addEventListener ? t.addEventListener("scroll", this.onScrollHandler) : t.attachEvent && t.attachEvent("onscroll", this.onScrollHandler)
        }, this.onScrollHandler = function() {
            o.loadInfinite(), o.totalLoadedThumbnails == o.totalThumbnails && (t.removeEventListener ? t.removeEventListener("scroll", this.onScrollHandler) : t.detachEvent && t.detachEvent("onscroll", this.onScrollHandler))
        }, this.loadInfinite = function() {
            if (this.allowToLoadMoreThumbnails()) {
                var t = this.playlist_ar[this.playlist_ar.length - 1].thumbnail;
                clearTimeout(this.loadInifiniteId_to), this.loadInifiniteId_to = setTimeout(function() {
                    t.getGlobalY() + t.finalH < FWDRLUtils.getViewportSize().h && o.loadMore()
                }, 500)
            }
        }, this.init()
    };
    e.setPrototype = function() {
        e.prototype = new FWDRLDisplayObject("div", "relative")
    }, e.OPEN_LIGHTBOX = "openLightbox", e.CATEGORY_UPDATE = "categoryUpdate", e.ERROR = "error", e.prototype = null, t.FWDUGPClassicVerticalThumbnailsManager = e
}(window),
function(window) {
    var FWDUGPData = function(props, parent) {
        var self = this,
            prototype = FWDUGPData.prototype;
        this.props_obj = props, this.rootElement_el = null, this.graphicsPaths_ar = [], this.skinPaths_ar = [], this.playlist_ar = [], this.lightboxPlaylist_ar = [], this.categories_ar = [], this.parsedPlaylist_ar = [], this.youtubeData_ar, this.backgroundColor_str, this.thumbnailOverlayBackgroundColor_str, this.lightBoxInfoWindowBackgroundColor_str, this.lightBoxItemBorderColor_str, this.lightBoxItemBackgroundColor_str, this.grabIconPath_str, this.handIconPath_str, this.imageIconPath_str, this.videoIconPath_str, this.linkIconPath_str, this.mainFolderPath_str, this.gridSkinPath_str, this.rightClickContextMenu_str, this.selectLabel_str, this.allCategoriesLabel_str, this.accessToken_str, this.scClientId_str = "a123083c52a6b06985421d33038e033a", this.totalPlaylists, this.startAtCategory, this.thumbnailMaxWidth, this.thumbnailMaxHeight, this.thumbnailOverlayOpacity, this.countLoadedGraphics = 0, this.totalGraphics, this.totalItems, this.lightBoxInfoWindowBackgroundOpacity, this.lightBoxBackgroundOpacity, this.lightBoxBorderSize, this.lightBoxSlideShowDelay, this.countLoadedSkinImages = 0, this.youtubeLoadId = 0, this.nextPageToken_str = 0, this.parseDelayId_to, this.loadImageId_to, this.isYoutube_bl, this.showLightBoxZoomButton_bl, this.showLightBoxInfoButton_bl, this.showLighBoxSlideShowButton_bl, this.addLightBoxKeyboardSupport_bl, this.showLighBoxNextAndPrevButtons_bl, this.showContextMenu_bl, this.disableThumbnailsInteractivity_bl, this.isPlaylistDispatchingError_bl, this.isMobile_bl = FWDRLUtils.isMobile, this.showHelpScreen_bl, this.init = function() {
            self.parseProperties()
        }, this.parseProperties = function() {
            var t;
            if (self.mainFolderPath_str = self.props_obj.mainFolderPath, !self.mainFolderPath_str) return void setTimeout(function() {
                null != self && (t = "The <font color='#FF0000'>mainFolderPath</font> property is not defined in the constructor function!", self.dispatchEvent(FWDRLData.LOAD_ERROR, {
                    text: t
                }))
            }, 50);
            if (self.mainFolderPath_str.lastIndexOf("/") + 1 != self.mainFolderPath_str.length && (self.mainFolderPath_str += "/"), self.gridSkinPath_str = self.props_obj.gridSkinPath, !self.gridSkinPath_str) return void setTimeout(function() {
                null != self && (t = "The <font color='#FF0000'>gridSkinPath</font> property is not defined in the constructor function!", self.dispatchEvent(FWDRLData.LOAD_ERROR, {
                    text: t
                }))
            }, 50);
            if (self.gridSkinPath_str.lastIndexOf("/") + 1 != self.gridSkinPath_str.length && (self.gridSkinPath_str += "/"), self.gridSkinPath_str = self.mainFolderPath_str + self.gridSkinPath_str, self.lightboxSkinPath_str = self.props_obj.lightboxSkinPath, !self.gridSkinPath_str) return void setTimeout(function() {
                null != self && (t = "The <font color='#FF0000'>lightboxSkinPath</font> property is not defined in the constructor function!", self.dispatchEvent(FWDRLData.LOAD_ERROR, {
                    text: t
                }))
            }, 50);
            self.rightClickContextMenu_str = self.props_obj.rightClickContextMenu || "developer", e = "developer" == self.rightClickContextMenu_str || "disabled" == self.rightClickContextMenu_str || "default" == self.rightClickContextMenu_str, e || (self.rightClickContextMenu_str = "developer"), self.handIconPath_str = self.gridSkinPath_str + "hand.cur", self.grabIconPath_str = self.gridSkinPath_str + "grab.cur", self.comboBoxPosition_str = self.props_obj.comboBoxPosition || "topright", self.comboBoxPosition_str = self.comboBoxPosition_str.toLowerCase(), e = "topright" == self.comboBoxPosition_str.toLowerCase() || "topleft" == self.comboBoxPosition_str.toLowerCase(), e || (self.comboBoxPosition_str = "topright"), self.buttonsAlignment_str = self.props_obj.buttonsAlignment || "in";
            var e = "in" == self.buttonsAlignment_str || "out" == self.buttonsAlignment_str;
            e || (self.buttonsAlignment_str = "in"), self.thumbnailLoadingType_str = String(self.props_obj.thumbnailLoadingType).toLowerCase() || "default";
            var e = "loadmorewithbutton" == self.thumbnailLoadingType_str || "loadmoreonscroll" == self.thumbnailLoadingType_str || "default" == self.thumbnailLoadingType_str;
            e || (self.thumbnailLoadingType_str = "default"), self.hideAndShowTransitionType_str = String(self.props_obj.hideAndShowTransitionType).toLowerCase() || "scale";
            var e = "scale" == self.hideAndShowTransitionType_str || "opacity" == self.hideAndShowTransitionType_str || "rotation" == self.hideAndShowTransitionType_str || "none" == self.hideAndShowTransitionType_str;
            e || (self.hideAndShowTransitionType_str = "scale"), FWDRLUtils.hasTransform2d || (self.hideAndShowTransitionType_str = "none"), self.textVerticalAlign_str = String(self.props_obj.textVerticalAlign).toLowerCase() || "center";
            var e = "center" == self.textVerticalAlign_str || "top" == self.textVerticalAlign_str || "bottom" == self.textVerticalAlign_str;
            e || (self.textVerticalAlign_str = "center"), self.imageTransitionDirection_str = String(self.props_obj.curtainRevealDirection).toLowerCase() || "top";
            var e = "top" == self.imageTransitionDirection_str || "bottom" == self.imageTransitionDirection_str || "left" == self.imageTransitionDirection_str || "right" == self.imageTransitionDirection_str;
            e || (self.imageTransitionDirection_str = "top"), self.menuPosition_str = String(self.props_obj.menuPosition).toLowerCase() || "center";
            var e = "center" == self.menuPosition_str || "left" == self.menuPosition_str || "right" == self.menuPosition_str;
            e || (self.menuPosition_str = "center"), self.textAnimType_str = String(self.props_obj.textAnimationType).toLowerCase() || "opacity";
            var e = "opacity" == self.textAnimType_str || "scale" == self.textAnimType_str || "scalerandom" == self.textAnimType_str || "largescale" == self.textAnimType_str;
            self.menuType_str = String(self.props_obj.menuType).toLowerCase() || "list";
            var e = "list" == self.menuType_str || "combobox" == self.menuType_str;
            if (e || (self.menuType_str = "list"), self.warningIconPath_str = self.gridSkinPath_str + "warning.png", self.searchLabel_str = self.props_obj.searchLabel, self.searchClassName_str = self.props_obj.searchClassName, self.searchClassName_str = "searchClassName", self.searchNotFoundClassName_str = "searchNotFound", self.searchNotFoundLabel_str = self.props_obj.searchNotFoundLabel, self.comboboxSelectorLabel_str = self.props_obj.comboboxSelectorLabel, self.ytbTitleClassName_str = self.props_obj.ytbTitleClassName, self.ytbDescriptionClassName_str = self.props_obj.ytbDescriptionClassName, self.comboboxArrowNormalColor_str = self.props_obj.comboboxArrowNormalColor || "#000000", self.comboboxArrowSelectedColor_str = self.props_obj.comboboxArrowSelectedColor || "#000000", self.showYtbTitle_bl = "yes" == self.props_obj.showYtbTitle ? !0 : !1, self.showSearchButton_bl = "yes" == self.props_obj.showSearchBox ? !0 : !1, self.showYtbDescription_bl = "yes" == self.props_obj.showYtbDescription ? !0 : !1, self.centerNoSearchFoundLabelWithMenu_bl = "no" == self.props_obj.centerNoSearchFoundLabelWithMenu ? !1 : !0, self.ytbTitleMaxLength = parseInt(self.props_obj.ytbTitleMaxLength), self.facebookTitleClassName_str = self.props_obj.facebookTitleClassName, self.facebookDescriptionClassName_str = self.props_obj.facebookDescriptionClassName, self.showFacebookTitle_bl = "yes" == self.props_obj.showFacebookTitle ? !0 : !1, self.showFacebookDescription_bl = "yes" == self.props_obj.showFacebookDescription ? !0 : !1, self.facebookTitleMaxLength = parseInt(self.props_obj.facebookTitleMaxLength), self.soundCloudTitleClassName_str = self.props_obj.soundCloudTitleClassName, self.soundCloudTrackClassName_str = self.props_obj.soundCloudTrackClassName, self.showSoundCloudUserName_bl = "yes" == self.props_obj.showSoundCloudTitle ? !0 : !1, self.showSoundCloudTrack_bl = "yes" == self.props_obj.showSoundCloudTrack ? !0 : !1, self.pintrestDescriptionClassName_str = self.props_obj.pintrestDescriptionClassName, self.showPintrestDescription_bl = "yes" == self.props_obj.showPintrestDescription ? !0 : !1, self.showPinButton_bl = "yes" == self.props_obj.usePinIconButton ? !0 : !1, self.flickrAPIKey_str = self.props_obj.flickrAppId, self.flickrTitleClassName_str = self.props_obj.flickrTitleClassName, self.showFlickrkDescription_bl = "yes" == self.props_obj.showFlickrDescription ? !0 : !1, self.flickrTitleMaxLength = parseInt(self.props_obj.flickrDescriptionMaxLength), ("classicvertical" == parent.gridType_str || "masonryvertical" == parent.gridType_str || "flexiblevertical" == parent.gridType_str) && (self.showAsExtraText_bl = "yes" == self.props_obj.showAsExtraText ? !0 : !1), FWDRLUtils.hasTransform2d || (e = !1), self.thumbanilBoxShadow_str = self.props_obj.thumbanilBoxShadow || "none", self.presetType_str = String(self.props_obj.preset).toLowerCase(), "3d" != self.presetType_str || FWDRLUtils.hasTransform3d || (self.presetType_str = "movetext"), self.allCategoriesLabel_str = self.props_obj.allCategoriesLabel, self.slideShowAutoPlay_str = self.props_obj.slideShowAutoPlay, self.addKeyboardSupport_str = self.props_obj.addKeyboardSupport, self.showCloseButton_str = self.props_obj.showCloseButton, self.showShareButton_str = self.props_obj.showShareButton, self.showZoomButton_str = self.props_obj.showZoomButton, self.showSlideShowButton_str = self.props_obj.showSlideShowButton, self.showSlideShowAnimation_str = self.props_obj.showSlideShowAnimation, self.showNextAndPrevButtons_str = self.props_obj.showNextAndPrevButtons, self.showNextAndPrevButtonsOnMobile_str = self.props_obj.showNextAndPrevButtonsOnMobile, self.itemBoxShadow_str = self.props_obj.itemBoxShadow, self.itemBackgroundColor_str = self.props_obj.itemBackgroundColor, self.itemBorderColor_str = self.props_obj.itemBorderColor, self.backgroundColor_str = self.props_obj.lightboxBackgroundColor, self.showDescriptionButton_str = self.props_obj.showDescriptionButton, self.showDescriptionByDefault_str = self.props_obj.showDescriptionByDefault, self.descriptionWindowAnimationType_str = self.props_obj.descriptionWindowAnimationType, self.descriptionWindowPosition_str = self.props_obj.descriptionWindowPosition, self.useAsModal_str = self.props_obj.useAsModal, self.descriptionWindowBackgroundColor_str = self.props_obj.descriptionWindowBackgroundColor, self.descriptionWindowBackgroundOpacity = self.props_obj.descriptionWindowBackgroundOpacity, self.useVideo_str = self.props_obj.useVideo, self.useAudio_str = self.props_obj.useAudio, self.videoShowFullScreenButton_str = self.props_obj.videoShowFullScreenButton, self.nextVideoOrAudioAutoPlay_str = self.props_obj.nextVideoOrAudioAutoPlay, self.videoAutoPlay_str = self.props_obj.videoAutoPlay, self.videoLoop_str = self.props_obj.videoLoop, self.audioAutoPlay_str = self.props_obj.audioAutoPlay, self.audioLoop_str = self.props_obj.audioLoop, self.videoControllerBackgroundColor_str = self.props_obj.videoControllerBackgroundColor, self.videoPosterBackgroundColor_str = self.props_obj.videoPosterBackgroundColor, self.videoPosterBackgroundColor_str = self.props_obj.videoPosterBackgroundColor, self.audioControllerBackgroundColor_str = self.props_obj.audioControllerBackgroundColor, self.timeColor_str = self.props_obj.timeColor, self.facebookAppId_str = self.props_obj.facebookAppId, self.backgroundColor_str = self.props_obj.backgroundColor || "transparent", self.lightBoxInfoWindowBackgroundColor_str = self.props_obj.lightBoxInfoWindowBackgroundColor || "transparent", self.thumbnailBorderNormalColor_str = self.props_obj.thumbnailBorderNormalColor || "#000000", self.thumbnailBorderSelectedColor_str = self.props_obj.thumbnailBorderSelectedColor || "#000000", self.thumbnailBackgroundColor_str = self.props_obj.thumbnailBackgroundColor || "transparent", self.thumbnailOverlayColor_str = self.props_obj.thumbnailOverlayColor || "transparent", self.loadMoreButtonLabel_str = self.props_obj.loadMoreButtonLabel || "not defined", self.comboboxSelectorBackgroundNormalClassName_str = self.props_obj.comboboxSelectorBackgroundNormalClassName || "", self.comboboxSelectorBackgroundNormalClassName_str = "UGPMenuButtonBackgroundNormal", self.comboboxSelectorBackgroundSelectedClassName_str = self.props_obj.comboboxSelectorBackgroundSelectedClassName || "", self.comboboxSelectorBackgroundSelectedClassName_str = "UGPMenuButtonBackgroundSelected", self.comboboxSelectorTextNormalClassName_str = self.props_obj.comboboxSelectorTextNormalClassName || "", self.comboboxSelectorTextNormalClassName_str = "UGPMenuButtonTextNormal", self.comboboxSelectorTextSeectedClassName_str = self.props_obj.comboboxSelectorTextSeectedClassName || "", self.comboboxSelectorTextSeectedClassName_str = "UGPMenuButtonTextSelected", self.menuBackgroundClass_str = self.props_obj.menuBackgroundClassName || "", self.menuBackgroundClass_str = "UGPMenuBackground", self.menuButtonBackgroundNormalClassName_str = self.props_obj.menuButtonBackgroundNormalClassName || "", self.menuButtonBackgroundNormalClassName_str = "UGPMenuButtonBackgroundNormal", self.menuButtonBackgroundSelectedClassName_str = self.props_obj.menuButtonBackgroundSelectedClassName || "", self.menuButtonBackgroundSelectedClassName_str = "UGPMenuButtonBackgroundSelected", self.menuButtonTextNormalClassName_str = self.props_obj.menuButtonTextNormalClassName || "", self.menuButtonTextNormalClassName_str = "UGPMenuButtonTextNormal", self.menuButtonTextSeectedClassName_str = self.props_obj.menuButtonTextSeectedClassName || "", self.menuButtonTextSeectedClassName_str = "UGPMenuButtonTextSelected", self.menuButtonsSpacersClassName_str = self.props_obj.menuButtonsSpacersClassName || "", self.menuButtonsSpacersClassName_str = "UGPMenuButtonsSpacers", self.loadMoreButtonBackgroundNormalClassName_str = self.props_obj.loadMoreButtonBackgroundNormalClassName || "", self.loadMoreButtonBackgroundNormalClassName_str = "UGPLoadMoreButtonBackgroundNormal", self.loadMoreButtonBackgroundSelectedClassName_str = self.props_obj.loadMoreButtonBackgroundSelectedClassName || "", self.loadMoreButtonBackgroundSelectedClassName_str = "UGPLoadMoreButtonBackgroundSelected", self.loadMoreButtonTextNormalClassName_str = self.props_obj.loadMoreButtonTextNormalClassName || "", self.loadMoreButtonTextNormalClassName_str = "UGPLoadMoreButtonTextNormal", self.loadMoreButtonTextSeectedClassName_str = self.props_obj.loadMoreButtonTextSeectedClassName || "", self.loadMoreButtonTextSeectedClassName_str = "UGPLoadMoreButtonTextSelected", self.loadMoreButtonOffsetTop = self.props_obj.loadMoreButtonOffsetTop || 0, self.loadMoreButtonOffsetLeft = self.props_obj.loadMoreButtonOffsetLeft || 0, self.loadMoreButtonOffsetRight = self.props_obj.loadMoreButtonOffsetRight || 0, self.loadMoreButtonOffsetBottom = self.props_obj.loadMoreButtonOffsetBottom || 0, self.loadMoreButtonBorderSize = self.props_obj.loadMoreButtonBorderSize || 0, self.loadMoreButtonBorderRadius = self.props_obj.loadMoreButtonBorderRadius || 0, self.thumbnailMaxWidth = self.props_obj.thumbnailMaxWidth || 400, self.thumbnailMaxWidth < 20 && (self.thumbnailMaxWidth = 20), self.thumbnailMaxHeight = self.props_obj.thumbnailMaxHeight || 300, self.thumbnailMaxHeight < 20 && (self.thumbnailMaxHeight = 20), self.thumbnailOverlayOpacity = void 0 == self.props_obj.thumbnailOverlayOpacity ? 1 : self.props_obj.thumbnailOverlayOpacity, self.spaceBetweenThumbanilIcons = self.props_obj.spaceBetweenThumbanilIcons || 5, self.spaceBetweenTextAndIcons = self.props_obj.spaceBetweenTextAndIcons || 0, self.howManyThumbnailsToDisplayPerSet = parseInt(self.props_obj.howManyThumbnailsToDisplayPerSet) || 2, self.howManyThumbnailsToDisplayPerSet < 2 && (self.howManyThumbnailsToDisplayPerSet = 2), "default" == self.thumbnailLoadingType_str && (self.howManyThumbnailsToDisplayPerSet = 1e3), self.menuMaxWidth = self.props_obj.menuMaxWidth || 500, self.menuOffsetTop = self.props_obj.menuOffsetTop || 0, self.menuButtonsSapcerLeftAndRight = self.props_obj.menuButtonsSapcerLeftAndRight || 0, self.menuOffsetBottom = self.props_obj.menuOffsetBottom || 0, self.horizontalSpaceBetweenMenuButtons = self.props_obj.horizontalSpaceBetweenMenuButtons || 0, self.verticalSpaceBetweenMenuButtons = self.props_obj.verticalSpaceBetweenMenuButtons || 0, self.menuButtonSpacerWidth = self.props_obj.menuButtonSpacerWidth || 0, self.menuButtonSpacerHeight = self.props_obj.menuButtonSpacerHeight || 0, self.thumbnailBorderSize = self.props_obj.thumbnailBorderSize || 0, self.thumbnailBorderRadius = self.props_obj.thumbnailBorderRadius || 0, self.loadMoreButtonOffsetTop = self.props_obj.loadMoreButtonOffsetTop || 0, self.loadMoreButtonOffsetBottom = self.props_obj.loadMoreButtonOffsetBottom || 0, self.lightBoxBackgroundColor_str = self.props_obj.lightBoxBackgroundColor || "transparent", self.lightBoxInfoWindowBackgroundOpacity = self.props_obj.lightBoxInfoWindowBackgroundOpacity || 1, self.lightBoxBackgroundOpacity = self.props_obj.lightBoxInfoWindowBackgroundOpacity || 1, self.lightBoxMainBackgroundOpacity = self.props_obj.lightBoxMainBackgroundOpacity || 1, self.lightBoxItemBorderColor_str = self.props_obj.lightBoxItemBorderColor || "transparent", self.lightBoxItemBackgroundColor_str = self.props_obj.lightBoxItemBackgroundColor || "transparent", self.buttonsOffestY = 0, self.contentOffsetY = 0, self.lightBoxBorderSize = self.props_obj.lightBoxBorderSize || 0, self.lightBoxSlideShowDelay = 1e3 * self.props_obj.lightBoxSlideShowDelay || 3e3, self.startAtCategory_ar = [parseInt(self.props_obj.startAtCategory)], self.buttonsHideDelay = self.props_obj.buttonsHideDelay, self.slideShowDelay = self.props_obj.slideShowDelay, self.defaultItemWidth = self.props_obj.defaultItemWidth, self.defaultItemHeight = self.props_obj.defaultItemHeight, self.itemOffsetHeight = self.props_obj.itemOffsetHeight, self.spaceBetweenButtons = self.props_obj.spaceBetweenButtons, self.buttonsOffsetIn = self.props_obj.buttonsOffsetIn, self.buttonsOffsetOut = self.props_obj.buttonsOffsetOut, self.itemBorderSize = self.props_obj.itemBorderSize || 0, self.itemBorderRadius = self.props_obj.itemBorderRadius || 0, self.thumbnailIconWidth = self.props_obj.thumbnailIconWidth || 20, self.thumbnailIconHeight = self.props_obj.thumbnailIconHeight || 0, self.backgroundOpacity = self.props_obj.backgroundOpacity, self.horizontalSpaceBetweenThumbnails = self.props_obj.horizontalSpaceBetweenThumbnails || 0, self.verticalSpaceBetweenThumbnails = self.props_obj.verticalSpaceBetweenThumbnails || 0, self.thumbnailsHorizontalOffset = self.props_obj.thumbnailsHorizontalOffset || 0, self.thumbnailsVerticalOffset = self.props_obj.thumbnailsVerticalOffset || 0, self.useIconButtons_bl = self.props_obj.useIconButtons, self.useIconButtons_bl = "yes" == self.useIconButtons_bl ? !0 : !1, self.inverseButtonsIcons_bl = self.props_obj.inverseButtonsIcons, self.inverseButtonsIcons_bl = "yes" == self.inverseButtonsIcons_bl ? !0 : !1, self.inverseButtonsIcons_bl ? (self.linkIconPathN_str = self.gridSkinPath_str + "link-icon-with-background.png", self.linkIconPathS_str = self.gridSkinPath_str + "link-icon.png") : (self.linkIconPathN_str = self.gridSkinPath_str + "link-icon.png", self.linkIconPathS_str = self.gridSkinPath_str + "link-icon-with-background.png"), self.disableThumbnailsInteractivity_bl = self.props_obj.disableThumbnailsInteractivity, self.disableThumbnailsInteractivity_bl = "yes" == self.disableThumbnailsInteractivity_bl ? !0 : !1, self.disableThumbnails_bl = self.props_obj.disableThumbnails, self.disableThumbnails_bl = "no" == self.disableThumbnails_bl ? !1 : !0, self.addMouseWheelSupport_bl = self.props_obj.addMouseWheelSupport, self.addMouseWheelSupport_bl = "yes" == self.addMouseWheelSupport_bl ? !0 : !1, self.addLightBoxKeyboardSupport_bl = self.props_obj.addLightBoxKeyboardSupport, self.addLightBoxKeyboardSupport_bl = "no" == self.addLightBoxKeyboardSupport_bl ? !1 : !0, self.showLighBoxNextAndPrevButtons_bl = self.props_obj.showLightBoxNextAndPrevButtons, self.showLighBoxNextAndPrevButtons_bl = "no" == self.showLighBoxNextAndPrevButtons_bl ? !1 : !0, self.showLightBoxZoomButton_bl = self.props_obj.showLightBoxZoomButton, self.showLightBoxZoomButton_bl = "no" == self.showLightBoxZoomButton_bl ? !1 : !0, self.showLightBoxInfoButton_bl = self.props_obj.showLightBoxInfoButton, self.showLightBoxInfoButton_bl = "no" == self.showLightBoxInfoButton_bl ? !1 : !0, self.showLighBoxSlideShowButton_bl = self.props_obj.showLighBoxSlideShowButton, self.showLighBoxSlideShowButton_bl = "no" == self.showLighBoxSlideShowButton_bl ? !1 : !0, self.showAllCategories_bl = "yes", self.showAllCategories_bl = "yes" == self.showAllCategories_bl ? !0 : !1, self.keepThumbnailsOriginalSizeOnGridStart_bl = self.props_obj.keepThumbnailsOriginalSizeOnGridStart, self.keepThumbnailsOriginalSizeOnGridStart_bl = "yes" == self.keepThumbnailsOriginalSizeOnGridStart_bl ? !0 : !1, self.randomizeCategories_bl = self.props_obj.randomizeCategories, self.randomizeCategories_bl = "yes" == self.randomizeCategories_bl ? !0 : !1, self.animateParent_bl = self.props_obj.animateParent, self.animateParent_bl = "yes" == self.animateParent_bl ? !0 : !1, self.showMenu_bl = "no", self.showMenu_bl = "yes" == self.showMenu_bl ? !0 : !1, self.showMenuButtonsSpacers_bl = self.props_obj.showMenuButtonsSpacers, self.showMenuButtonsSpacers_bl = "yes" == self.showMenuButtonsSpacers_bl ? !0 : !1, self.multipleCategorySelection_bl = self.props_obj.multipleCategorySelection, self.multipleCategorySelection_bl = "yes" == self.multipleCategorySelection_bl ? !0 : !1, self.showTotalThumbnailsPerCategory_bl = self.props_obj.showTotalThumbnailsPerCategory, self.showTotalThumbnailsPerCategory_bl = "yes" == self.showTotalThumbnailsPerCategory_bl ? !0 : !1, self.scaleImage_bl = "no" == self.scaleImage ? !1 : !0, self.playListElement = FWDRLUtils.getChildById(self.props_obj.playlistId), !self.playListElement) return void self.playlistErrorHandler();
            self.allPlaylists_ar = FWDRLUtils.getChildren(self.playListElement), self.totalPlaylists = self.allPlaylists_ar.length, self.totalPlaylists <= 1 && (self.showAllCategories_bl = !1);
            for (var i = 0; i < self.totalPlaylists; i++) FWDRLUtils.getAttributeValue(self.allPlaylists_ar[i], "data-soundcloud-url") ? self.isSoundcloud_bl = !0 : FWDRLUtils.getAttributeValue(self.allPlaylists_ar[i], "data-youtube-playlist-url") ? self.isYoutube_bl = !0 : FWDRLUtils.getAttributeValue(self.allPlaylists_ar[i], "data-facebook-album-url") ? self.isFacebook_bl = !0 : FWDRLUtils.getAttributeValue(self.allPlaylists_ar[i], "data-pintrest-board-url") ? self.isPintrest_bl = !0 : FWDRLUtils.getAttributeValue(self.allPlaylists_ar[i], "data-flickr-album-url") && (self.isFlickr_bl = !0);
            if (self.isSoundcloud_bl) {
                self.soundCloudData_ar = [], self.soundCloudLoadId = 0;
                for (var i = 0; i < self.totalPlaylists; i++) {
                    var s = self.allPlaylists_ar[i];
                    FWDRLUtils.getAttributeValue(s, "data-soundcloud-url") && (self.soundCloudData_ar[i] = FWDRLUtils.getAttributeValue(s, "data-soundcloud-url")), self.categories_ar[i] = FWDRLUtils.getAttributeValue(self.allPlaylists_ar[i], "data-category-name")
                }
                FWDUGPData.isSoundCloud_bl = !0
            } else if (self.isYoutube_bl) {
                self.youtubeData_ar = [], self.youtubeLoadId = 0;
                for (var i = 0; i < self.totalPlaylists; i++) {
                    var s = self.allPlaylists_ar[i];
                    if (FWDRLUtils.getAttributeValue(s, "data-youtube-playlist-url")) {
                        var a = FWDRLUtils.getAttributeValue(s, "data-youtube-playlist-url").match(/list=([^&]+)/i)[1];
                        self.youtubeData_ar[i] = a
                    }
                    self.categories_ar[i] = FWDRLUtils.getAttributeValue(self.allPlaylists_ar[i], "data-category-name")
                }
            } else if (self.isFacebook_bl) {
                self.facebookData_ar = [], self.facebookLoadId = 0, self.isAPIReady_bl = !1;
                for (var i = 0; i < self.totalPlaylists; i++) {
                    var a, s = self.allPlaylists_ar[i];
                    FWDRLUtils.getAttributeValue(s, "data-facebook-album-url") && (a = FWDRLUtils.getAttributeValue(s, "data-facebook-album-url"), self.facebookData_ar[i] = String(a.match(/[\.][0-9]*[\.|&]/i)[0]).replace(/\.|&/g, "")), self.categories_ar[i] = FWDRLUtils.getAttributeValue(self.allPlaylists_ar[i], "data-category-name")
                }
                FWDUGPData.isFaceBook_bl = !0
            } else if (self.isPintrest_bl) {
                FWDUGPData.isPintrest_bl = !0, self.pinterestData_ar = [], self.pintrestLoadId = 0, self.countPN = 0, self.isAPIReady_bl = !1, self.showPinButton_bl && (window.pAsyncInit = function() {
                    PDK.init({
                        appId: "nada",
                        cookie: !0
                    })
                }, function(t, e, i) {
                    var s, a = t.getElementsByTagName(e)[0];
                    t.getElementById(i) || (s = t.createElement(e), s.id = i, s.src = "//assets.pinterest.com/sdk/sdk.js", a.parentNode.insertBefore(s, a))
                }(document, "script", "pinterest-jssdk")), self.inverseButtonsIcons_bl ? (self.linkIconPathN_str = self.gridSkinPath_str + "pin-icon-with-background.png", self.linkIconPathS_str = self.gridSkinPath_str + "pin-icon.png") : (self.linkIconPathN_str = self.gridSkinPath_str + "pin-icon.png", self.linkIconPathS_str = self.gridSkinPath_str + "pin-icon-with-background.png");
                for (var i = 0; i < self.totalPlaylists; i++) {
                    var a, s = self.allPlaylists_ar[i];
                    FWDRLUtils.getAttributeValue(s, "data-pintrest-board-url") && (a = FWDRLUtils.getAttributeValue(s, "data-pintrest-board-url"), self.pinterestData_ar[i] = "https://api.pinterest.com/v3/pidgets/boards/" + String(a.match(/pinterest[^\/]+\/(.+)/i)[1]) + "pins"), self.categories_ar[i] = FWDRLUtils.getAttributeValue(self.allPlaylists_ar[i], "data-category-name")
                }
            } else if (self.isFlickr_bl) {
                FWDUGPData.isFlickr_bl = !0, self.flickrData_ar = [], self.flickrLoadId = 0, self.isAPIReady_bl = !1;
                for (var i = 0; i < self.totalPlaylists; i++) {
                    var a, s = self.allPlaylists_ar[i];
                    FWDRLUtils.getAttributeValue(s, "data-flickr-album-url") && (a = FWDRLUtils.getAttributeValue(s, "data-flickr-album-url"), self.flickrData_ar[i] = String(a.match(/[^\/]+$/i))), self.categories_ar[i] = FWDRLUtils.getAttributeValue(self.allPlaylists_ar[i], "data-category-name")
                }
            }
            self.isFacebook_bl || self.setupFacebook(), self.prepareSiknForLoading()
        }, this.loadPlaylist = function() {
            if (self.isFlickr_bl) self.loadFlickrPlaylist();
            else if (self.isSoundcloud_bl) self.loadSoundCloudPlaylist();
            else if (self.isYoutube_bl) self.loadYoutubePlaylist();
            else if (self.isPintrest_bl) self.loadPintrestPlaylist();
            else if (self.isFacebook_bl) {
                if (!self.accessToken_str) return void self.loadAccessFacebookAccessToken();
                self.loadFacebookPlaylist()
            } else self.loadHTMLPlaylist(self.allPlaylists_ar), self.loadSkin()
        }, this.stopToLoadPlaylist = function() {
            clearTimeout(self.JSONPRequestTimeoutId_to);
            try {
                self.scs_el.src = null, document.documentElement.removeChild(self.scs_el), self.scs_el = null
            } catch (t) {}
            if (null != self.xhr) {
                try {
                    self.xhr.abort()
                } catch (t) {}
                self.xhr.onreadystatechange = null, self.xhr.onerror = null, self.xhr = null
            }
        }, this.loadFlickrPlaylist = function() {
            if (!self.isPlaylistDispatchingError_bl) {
                if (self.flickrUrl_str = self.flickrData_ar[self.flickrLoadId], self.stopToLoadPlaylist(), url = "https://api.flickr.com/services/rest/?method=flickr.photosets.getPhotos&api_key=" + self.flickrAPIKey_str + "&photoset_id=" + self.flickrUrl_str + "&format=json&jsoncallback=" + parent.instanceName_str + ".data.parseflickrPlaylist", null == self.scs_el) try {
                    self.scs_el = document.createElement("script"), self.scs_el.src = url, self.scs_el.id = parent.instanceName_str + ".data.parseflickrPlaylist", document.documentElement.appendChild(self.scs_el)
                } catch (t) {}
                self.JSONPRequestTimeoutId_to = setTimeout(self.playlistErrorHandler, 8e3)
            }
        }, this.parseflickrPlaylist = function(t) {
            if (!self.isPlaylistDispatchingError_bl) {
                if (self.stopToLoadPlaylist(), "fail" == t.stat) return self.playlistErrorHandler(), void(console && console.log(t));
                self.flickrObject_ar = [], self.lightboxParsedPlaylist_ar = [];
                for (var e = 0; e < t.photoset.photo.length; e++) self.flickrObject_ar.push(t.photoset.photo[e]);
                for (var i, s, a = self.flickrObject_ar.length, e = 0; a > e; e++) {
                    var o = {};
                    if (i = self.flickrObject_ar[e], o.catId = self.flickrLoadId, o.url = "http://farm" + i.farm + ".staticflickr.com/" + i.server + "/" + i.id + "_" + i.secret + "_b.jpg", o.thumbnailPath_str = "http://farm" + i.farm + ".staticflickr.com/" + i.server + "/" + i.id + "_" + i.secret + "_n.jpg", self.showFlickrkDescription_bl && i.title && (s = i.title.length > self.flickrTitleMaxLength ? i.title.substr(0, self.flickrTitleMaxLength) + " ..." : i.title, o.htmlContent1_str = "<div class='" + self.flickrTitleClassName_str + "'>" + s + "</div>",
                            o.rawDescription_str = i.description, "animtext" == self.presetType_str && !self.showAsExtraText_bl)) {
                        var n, l, r, h = s,
                            d = String(o.htmlContent1_str).match(/<[^<>]*>/)[0],
                            u = String(o.htmlContent1_str).match(/<[^<>]*>/g)[1];
                        o.animText_ar = [], o.htmlContent1_str = h.replace(/(^[\s]+|[\s]+$)/g, ""), l = d, n = o.htmlContent1_str.split("");
                        for (var c = 0; c < n.length; c++) r = " " == n[c] ? "&nbsp" : n[c], l += "<div style='position:relative;display:inline-block;'>" + r + "</div>";
                        l += u, o.htmlContent1_str = l
                    }
                    self.showAsExtraText_bl && (o.htmlExtraContent_str = o.htmlContent1_str, o.htmlContent1_str = void 0, self.hasExtraText_bl = !0), o.titleText_str = s, o.type_str = FWDUGP.IMAGE, o.iconType_str = FWDUGP.IMAGE, self.inverseButtonsIcons_bl ? (o.thumbIconPathN_str = self.gridSkinPath_str + "image-icon-with-background.png", o.thumbIconPathS_str = self.gridSkinPath_str + "image-icon.png") : (o.thumbIconPathN_str = self.gridSkinPath_str + "image-icon.png", o.thumbIconPathS_str = self.gridSkinPath_str + "image-icon-with-background.png"), self.parsedPlaylist_ar.push(o)
                }
                self.flickrLoadId++, self.flickrLoadId < self.totalPlaylists ? self.loadPlaylist() : (self.finalizePlaylist(), self.loadSkin())
            }
        }, this.loadPintrestPlaylist = function() {
            if (!self.isPlaylistDispatchingError_bl) {
                if (self.pinterestUrl_str = self.pinterestData_ar[self.pintrestLoadId], self.stopToLoadPlaylist(), url = self.pinterestUrl_str + "?callback=" + parent.instanceName_str + ".data.parsePintrestPlaylist", null == self.scs_el) try {
                    self.scs_el = document.createElement("script"), self.scs_el.src = url, self.scs_el.id = parent.instanceName_str + ".data.parsePintrestPlaylist", document.documentElement.appendChild(self.scs_el)
                } catch (t) {}
                self.JSONPRequestTimeoutId_to = setTimeout(self.playlistErrorHandler, 8e3)
            }
        }, this.parsePintrestPlaylist = function(t) {
            if (!self.isPlaylistDispatchingError_bl) {
                if (self.stopToLoadPlaylist(), "failure" == t.status) return self.playlistErrorHandler(), void(console && console.log(t));
                self.pintrestObject_ar = [], self.lightboxParsedPlaylist_ar = [];
                for (var e = 0; e < t.data.pins.length; e++) self.pintrestObject_ar.push(t.data.pins[e]);
                for (var i, s = self.pintrestObject_ar.length, a = "", e = 0; s > e; e++) {
                    var o = {};
                    if (i = self.pintrestObject_ar[e], o.catId = self.pintrestLoadId, o.url = "https://www.pinterest.com/pin/" + i.id, o.thumbnailPath_str = i.images["237x"].url, o.pinLInk_str = i.link, self.showPinButton_bl && (o.extraButtonUrl_str = "pinterest"), self.showPintrestDescription_bl && i.description && " " != i.description && (i.description && (a = i.description), o.htmlContent1_str = "<div class='" + self.pintrestDescriptionClassName_str + "'>" + i.description + "</div>", o.rawDescription_str = i.description, "animtext" == self.presetType_str && !self.showAsExtraText_bl)) {
                        var n, l, r, h = a,
                            d = String(o.htmlContent1_str).match(/<[^<>]*>/)[0],
                            u = String(o.htmlContent1_str).match(/<[^<>]*>/g)[1];
                        o.animText_ar = [], o.htmlContent1_str = h.replace(/(^[\s]+|[\s]+$)/g, ""), l = d, n = o.htmlContent1_str.split("");
                        for (var c = 0; c < n.length; c++) r = " " == n[c] ? "&nbsp" : n[c], l += "<div style='position:relative;display:inline-block;'>" + r + "</div>";
                        l += u, o.htmlContent1_str = l
                    }
                    self.showAsExtraText_bl && (o.htmlExtraContent_str = o.htmlContent1_str, o.htmlContent1_str = void 0, self.hasExtraText_bl = !0), o.titleText_str = a, o.type_str = FWDUGP.LINK, o.iconType_str = FWDUGP.IMAGE, self.inverseButtonsIcons_bl ? (o.thumbIconPathN_str = self.gridSkinPath_str + "image-icon-with-background.png", o.thumbIconPathS_str = self.gridSkinPath_str + "image-icon.png") : (o.thumbIconPathN_str = self.gridSkinPath_str + "image-icon.png", o.thumbIconPathS_str = self.gridSkinPath_str + "image-icon-with-background.png"), self.parsedPlaylist_ar.push(o)
                }
                self.pintrestLoadId++, self.pintrestLoadId < self.totalPlaylists ? self.loadPlaylist() : (self.finalizePlaylist(), self.loadSkin())
            }
        }, this.loadSoundCloudPlaylist = function() {
            if (!self.isPlaylistDispatchingError_bl) {
                if (self.soundCloundUrl_str = self.soundCloudData_ar[self.soundCloudLoadId], self.stopToLoadPlaylist(), -1 != self.soundCloundUrl_str.indexOf("likes") && (self.soundCloundUrl_str = self.soundCloundUrl_str.replace(/\/likes$/, "/favorites")), -1 == self.soundCloundUrl_str.indexOf("api.soundcloud.") ? url = "http://api.soundcloud.com/resolve?format=json&url=" + self.soundCloundUrl_str + "&limit=100&client_id=" + self.scClientId_str + "&callback=" + parent.instanceName_str + ".data.parseSoundCloudPlaylist" : url = self.sourceURL_str + "?format=json&client_id=" + self.scClientId_str + "&limit=100&callback=" + parent.instanceName_str + ".data.parseSoundCloudPlaylist", null == self.scs_el) try {
                    self.scs_el = document.createElement("script"), self.scs_el.src = url, self.scs_el.id = parent.instanceName_str + ".data.parseSoundCloud", document.documentElement.appendChild(self.scs_el)
                } catch (t) {}
                self.JSONPRequestTimeoutId_to = setTimeout(self.playlistErrorHandler, 8e3)
            }
        }, this.parseSoundCloudPlaylist = function(t) {
            if (!self.isPlaylistDispatchingError_bl) {
                if (self.stopToLoadPlaylist(), t.tracks) t = t.tracks;
                else {
                    if (!t.length) return void self.dispatchEvent(FWDUGPData.LOAD_ERROR, {
                        text: "Please provide a playlist or tracks URL : <font color='#FF0000'>" + self.soundCloundUrl_str + "</font>."
                    });
                    t = t
                }
                self.soundCloudObject_ar = [], self.lightboxParsedPlaylist_ar = [];
                for (var e = 0; e < t.length; e++) self.soundCloudObject_ar.push(t[e]);
                for (var i, s, a = self.soundCloudObject_ar.length, e = 0; a > e; e++) {
                    var o = {};
                    if (i = self.soundCloudObject_ar[e], o.catId = self.soundCloudLoadId, o.url = i.stream_url + "?consumer_key=" + self.scClientId_str, o.thumbnailPath_str = String(i.artwork_url).replace(/large/, "t300x300"), (self.showSoundCloudUserName_bl || self.showSoundCloudTrack_bl) && (s = i.user.username + " - " + i.title, "animtext" == self.presetType_str && self.showSoundCloudUserName_bl && !self.showAsExtraText_bl ? o.htmlContent1_str = "<div class='" + self.soundCloudTitleClassName_str + "'>" + i.user.username + " - " + i.title + "</div>" : self.presetType_str && (o.htmlContent1_str = "<div class='" + self.soundCloudTitleClassName_str + "'>" + i.user.username + "</div><div class='" + self.soundCloudTrackClassName_str + "'>" + i.title + "</div>"), "animtext" == self.presetType_str && !self.showAsExtraText_bl)) {
                        var n, l, r, h = s,
                            d = String(o.htmlContent1_str).match(/<[^<>]*>/)[0],
                            u = String(o.htmlContent1_str).match(/<[^<>]*>/g)[1];
                        o.animText_ar = [], o.htmlContent1_str = h.replace(/(^[\s]+|[\s]+$)/g, ""), l = d, n = o.htmlContent1_str.split("");
                        for (var c = 0; c < n.length; c++) r = " " == n[c] ? "&nbsp" : n[c], l += "<div style='position:relative;display:inline-block;'>" + r + "</div>";
                        l += u, o.htmlContent1_str = l
                    }
                    self.showAsExtraText_bl && (o.htmlExtraContent_str = o.htmlContent1_str, o.htmlContent1_str = void 0, self.hasExtraText_bl = !0), o.titleText_str = s, o.type_str = FWDUGP.AUDIO, o.iconType_str = FWDUGP.AUDIO, self.inverseButtonsIcons_bl ? (o.thumbIconPathN_str = self.gridSkinPath_str + "audio-icon-with-background.png", o.thumbIconPathS_str = self.gridSkinPath_str + "audio-icon.png") : (o.thumbIconPathN_str = self.gridSkinPath_str + "audio-icon.png", o.thumbIconPathS_str = self.gridSkinPath_str + "audio-icon-with-background.png"), self.parsedPlaylist_ar.push(o)
                }
                self.soundCloudLoadId++, self.soundCloudLoadId < self.totalPlaylists ? self.loadPlaylist() : (self.finalizePlaylist(), self.loadSkin())
            }
        }, this.setupFacebook = function() {
            return "file:" == document.location.protocol && self.isFacebook_bl ? (self.isPlaylistDispatchingError_bl = !0, void(showLoadPlaylistErrorId_to = setTimeout(function() {
                self.dispatchEvent(FWDUGPData.LOAD_ERROR, {
                    text: "Please test online, is not possible to view Facebook albums local."
                }), self.isPlaylistDispatchingError_bl = !1
            }, 50))) : (FWDRLFacebookShare.setPrototype(), self.facebookShare = new FWDRLFacebookShare(self.facebookAppId_str), void(self.isFacebook_bl && (self.facebookShare.addListener(FWDRLFacebookShare.API_READY, self.facebookAPIReadyHandler), self.facebookShare.addListener(FWDRLFacebookShare.API_ERROR, self.facebookAPIErrorHandler))))
        }, this.facebookAPIReadyHandler = function(t) {
            self.loadAccessFacebookAccessToken()
        }, this.loadAccessFacebookAccessToken = function() {
            self.stopToLoadPlaylist(), self.sourceURL_str = self.mainFolderPath_str + "facebook_access_token.txt", self.xhr = new XMLHttpRequest, self.xhr.onreadystatechange = self.facebookTokenOnLoadoadHandler, self.xhr.onerror = self.facebookAPIErrorHandler;
            try {
                self.xhr.open("get", self.sourceURL_str + "?rand=" + parseInt(99999999 * Math.random()), !0), self.xhr.send()
            } catch (t) {
                var e = t;
                t && t.message && (e = t.message), self.facebookAPIErrorHandler()
            }
        }, this.facebookTokenOnLoadoadHandler = function(e) {
            var response;
            4 == self.xhr.readyState && (404 == self.xhr.status ? self.dispatchEvent(FWDUGPData.LOAD_ERROR, {
                text: "Facebook token path is not found: <font color='#FF0000'>" + self.sourceURL_str + "</font>"
            }) : 408 == self.xhr.status ? self.dispatchEvent(FWDUGPData.LOAD_ERROR, {
                text: "Loadiong Facebook token file request load timeout!"
            }) : 200 == self.xhr.status && (response = window.JSON ? JSON.parse(self.xhr.responseText) : eval("(" + self.xhr.responseText + ")"), self.accessToken_str = response.access_token, self.loadPlaylist()))
        }, this.facebookAPIErrorHandler = function(t) {
            try {
                window.console && console.log(t), window.console && console.log(t.message)
            } catch (t) {}
            self.dispatchEvent(FWDUGPData.LOAD_ERROR, {
                text: "Error loading file : <font color='#FFFFFF'>" + self.sourceURL_str + "</font>. Make sure the path is correct"
            })
        }, this.loadFacebookPlaylist = function() {
            FB.api("/" + self.facebookData_ar[self.facebookLoadId] + "?access_token=" + self.accessToken_str, "GET", {
                fields: "photos.limit(100){images,created_time,name}"
            }, function(t) {
                t && self.parseFacebookPlaylist(t)
            })
        }, this.parseFacebookPlaylist = function(t) {
            if (!self.isPlaylistDispatchingError_bl) {
                if (self.stopToLoadPlaylist(), t.error) return self.playlistErrorHandler(), void(console && console.dir(t));
                self.facebookObject_ar = [], self.lightboxParsedPlaylist_ar = [];
                for (var e = 0; e < t.photos.data.length; e++) self.facebookObject_ar.push(t.photos.data[e]);
                for (var i, s, a = self.facebookObject_ar.length, e = 0; a > e; e++) {
                    var o = {};
                    i = self.facebookObject_ar[e], o.catId = self.facebookLoadId, o.url = i.images[0].source, o.thumbnailPath_str = i.images[i.images.length - 1].source;
                    for (var n = i.images.length - 1; n >= 0; n--)
                        if (parseInt(i.images[n].width) > 200 && parseInt(i.images[n].width) < 500) {
                            o.thumbnailPath_str = i.images[n].source;
                            break
                        }
                    if (self.showFacebookTitle_bl && i.name && (i.name.length > self.facebookTitleMaxLength ? (s = i.name.substr(0, self.facebookTitleMaxLength) + " ...", o.htmlContent1_str = "<div class='" + self.facebookTitleClassName_str + "'>" + s + "</div>") : (s = i.name, o.htmlContent1_str = "<div class='" + self.facebookTitleClassName_str + "'>" + s + "</div>"), "animtext" == self.presetType_str)) {
                        var l, r, h, d = s,
                            u = String(o.htmlContent1_str).match(/<[^<>]*>/)[0],
                            c = String(o.htmlContent1_str).match(/<[^<>]*>/g)[1];
                        o.animText_ar = [], o.htmlContent1_str = d.replace(/(^[\s]+|[\s]+$)/g, ""), r = u, l = o.htmlContent1_str.split("");
                        for (var _ = 0; _ < l.length; _++) h = " " == l[_] ? "&nbsp" : l[_], r += "<div style='position:relative;display:inline-block;'>" + h + "</div>";
                        r += c, o.htmlContent1_str = r
                    }
                    self.showFacebookDescription_bl && i.name && (o.description = "<p class='" + self.facebookDescriptionClassName_str + "'>" + i.name + "</p>", o.descriptionText = String(i.name).substr(0, self.facebookTitleMaxLength)), o.titleText_str = s, o.iconType_str = FWDUGP.IMAGE, self.inverseButtonsIcons_bl ? (o.thumbIconPathN_str = self.gridSkinPath_str + "image-icon-with-background.png", o.thumbIconPathS_str = self.gridSkinPath_str + "image-icon.png") : (o.thumbIconPathN_str = self.gridSkinPath_str + "image-icon.png", o.thumbIconPathS_str = self.gridSkinPath_str + "image-icon-with-background.png"), self.parsedPlaylist_ar.push(o)
                }
                self.facebookLoadId++, self.facebookLoadId < self.totalPlaylists ? self.loadFacebookPlaylist() : (self.finalizePlaylist(), self.loadSkin())
            }
        }, this.loadYoutubePlaylist = function() {
            if (self.youtubeUrl_str = self.youtubeData_ar[self.youtubeLoadId], self.nextPageToken_str ? self.sourceURL_str = "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&pageToken=" + self.nextPageToken_str + "&playlistId=" + self.youtubeUrl_str + "&key=AIzaSyAlyhJ-C5POyo4hofPh3b7ECAxWy6t6lyg&maxResults=50&callback=" + parent.instanceName_str + ".data.parseYoutubePlaylist" : (self.youtubeObject_ar = [], self.lightboxParsedPlaylist_ar = [], self.sourceURL_str = "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&playlistId=" + self.youtubeUrl_str + "&key=AIzaSyAlyhJ-C5POyo4hofPh3b7ECAxWy6t6lyg&maxResults=50&callback=" + parent.instanceName_str + ".data.parseYoutubePlaylist"), null == self.scs_el) try {
                self.scs_el = document.createElement("script"), self.scs_el.src = self.sourceURL_str, self.scs_el.id = parent.instanceName_str + ".data.parseYoutubePlaylist", document.documentElement.appendChild(self.scs_el)
            } catch (t) {}
            self.JSONPRequestTimeoutId_to = setTimeout(self.playlistErrorHandler, 6e3)
        }, this.parseYoutubePlaylist = function(t) {
            if (!self.isPlaylistDispatchingError_bl) {
                if (self.stopToLoadPlaylist(), t.error) return self.playlistErrorHandler(), void(console && console.dir(t));
                for (var e = 0; e < t.items.length; e++) self.youtubeObject_ar.push(t.items[e]);
                if (t.nextPageToken) return self.nextPageToken_str = t.nextPageToken, void self.loadYoutubePlaylist();
                for (var i, s, a = self.youtubeObject_ar.length, e = 0; a > e; e++) {
                    var o = {};
                    if (i = self.youtubeObject_ar[e], i.snippet.thumbnails) {
                        if (o.catId = self.youtubeLoadId, o.url = "https://www.youtube.com/watch?v=" + i.snippet.resourceId.videoId, o.thumbnailPath_str = i.snippet.thumbnails.medium.url, self.showYtbTitle_bl && (i.snippet.title.length > self.ytbTitleMaxLength ? (s = i.snippet.title.substr(0, self.ytbTitleMaxLength) + " ...", o.htmlContent1_str = "<div class='" + self.ytbTitleClassName_str + "'>" + s + "</div>") : (s = i.snippet.title, o.htmlContent1_str = "<div class='" + self.ytbTitleClassName_str + "'>" + s + "</div>"), "animtext" == self.presetType_str)) {
                            var n, l, r, h = s,
                                d = String(o.htmlContent1_str).match(/<[^<>]*>/)[0],
                                u = String(o.htmlContent1_str).match(/<[^<>]*>/g)[1];
                            o.animText_ar = [], o.htmlContent1_str = h.replace(/(^[\s]+|[\s]+$)/g, ""), l = d, n = o.htmlContent1_str.split("");
                            for (var c = 0; c < n.length; c++) r = " " == n[c] ? "&nbsp" : n[c], l += "<div style='position:relative;display:inline-block;'>" + r + "</div>";
                            l += u, o.htmlContent1_str = l
                        }
                        self.showYtbDescription_bl && (o.description = "<p class='" + self.ytbDescriptionClassName_str + "'>" + i.snippet.description + "</p>", o.descriptionText = String(i.snippet.description).substr(0, self.ytbTitleMaxLength)), o.titleText_str = s, o.iconType_str = FWDUGP.YOUTUBE, self.inverseButtonsIcons_bl ? (o.thumbIconPathN_str = self.gridSkinPath_str + "youtube-icon-with-background.png", o.thumbIconPathS_str = self.gridSkinPath_str + "youtube-icon.png") : (o.thumbIconPathN_str = self.gridSkinPath_str + "youtube-icon.png", o.thumbIconPathS_str = self.gridSkinPath_str + "youtube-icon-with-background.png"), self.parsedPlaylist_ar.push(o)
                    }
                }
                self.youtubeLoadId++, self.youtubeLoadId < self.totalPlaylists ? (self.nextPageToken_str = void 0, self.loadYoutubePlaylist()) : (self.finalizePlaylist(), self.loadSkin())
            }
        }, this.playlistErrorHandler = function() {
            var t;
            t = self.isFlickr_bl ? "Error loading Flickr album! - <font color='#FF0000'>" + self.flickrData_ar[self.flickrLoadId] + "</font>" : self.isSoundcloud_bl ? "Error loading Soundcloud playlist! - <font color='#FF0000'>" + self.soundCloudData_ar[self.soundCloudLoadId] + "</font>" : self.isFacebook_bl ? "Error loading Facebook playlist! - <font color='#FF0000'>" + self.facebookData_ar[self.facebookLoadId] + "</font>" : self.isYoutube_bl ? "Error loading Youtube playlist! - <font color='#FF0000'>" + self.youtubeData_ar[self.youtubeLoadId] + "</font>" : self.isPintrest_bl ? "Error loading Pintrest playlist! - <font color='#FF0000'>" + self.pinterestData_ar[self.pintrestLoadId] + "</font>" : "Playlist div with the id! - <font color='#FF0000'>" + self.props_obj.playlistId + "</font> doesn't exists.", self.stopToLoadPlaylist(), self.isPlaylistDispatchingError_bl = !0, showLoadPlaylistErrorId_to = setTimeout(function() {
                self.dispatchEvent(FWDUGPData.LOAD_ERROR, {
                    text: t
                }), self.isPlaylistDispatchingError_bl = !1
            }, 50)
        }, this.loadHTMLPlaylist = function(t) {
            var e;
            self.parsedPlaylist_ar = [], self.lightboxParsedPlaylist_ar = [];
            for (var i, s, a, o, n = 0; n < self.totalPlaylists; n++) {
                e = FWDRLUtils.getChildren(t[n]), i = e.length, s = n, a = 0;
                for (var l = 0; i > l; l++) {
                    var r = {},
                        h = e[l];
                    if (o = "", a = l, !FWDRLUtils.hasAttribute(h, "data-url")) return errorMessage_str = "Attribute <font color='#FF0000'>data-url</font> is not found in the playlist at position nr: <font color='#FF0000'>" + l + "</font>.", void self.dispatchEvent(FWDUGPData.LOAD_ERROR, {
                        text: errorMessage_str
                    });
                    r.catId = n, r.url = String(FWDRLUtils.getAttributeValue(h, "data-url")), r.target = FWDRLUtils.getAttributeValue(h, "data-target") || "_blank", r.posterPath = FWDRLUtils.getAttributeValue(h, "data-poster-path"), r.type_str = FWDRLUtils.getAttributeValue(h, "data-url"), r.width = FWDRLUtils.getAttributeValue(h, "data-width"), r.height = FWDRLUtils.getAttributeValue(h, "data-height"), r.extraButtonUrl_str = FWDRLUtils.getAttributeValue(h, "data-extra-button-url"), r.extraButtonUrlTarget_str = FWDRLUtils.getAttributeValue(h, "data-extra-button-target") || "_blank", r.disabled_bl = "none" == r.url ? !0 : !1, r.thumbnailBorderNormalColor = FWDRLUtils.getAttributeValue(h, "data-thumbnail-border-normal-color"), r.thumbnailBorderSelectedColor = FWDRLUtils.getAttributeValue(h, "data-thumbnail-border-selected-color"), r.thumbnailOverlayColor = FWDRLUtils.getAttributeValue(h, "data-thumbnail-overlay-color");
                    for (var d, u = FWDRLUtils.getChildren(h), c = !1, _ = 0; _ < u.length; _++) {
                        if (d = u[_], FWDRLUtils.hasAttribute(d, "src") && (c = !0, r.thumbnailPath_str = FWDRLUtils.getAttributeValue(d, "src"), r.alt_str = FWDRLUtils.getAttributeValue(d, "alt") || ""), FWDRLUtils.hasAttribute(d, "data-lightbox-desc") && (r.description = d.innerHTML, r.descriptionText = d.innerText), FWDRLUtils.hasAttribute(d, "data-thumbnail-content1")) {
                            if ("animtext" == self.presetType_str) {
                                var m, b, f, p = d.innerText || d.textContent,
                                    g = String(d.innerHTML).match(/<[^<>]*>/)[0],
                                    T = String(d.innerHTML).match(/<[^<>]*>/g)[1];
                                r.animText_ar = [], r.htmlContent1_str = p.replace(/(^[\s]+|[\s]+$)/g, ""), b = g, m = r.htmlContent1_str.split("");
                                for (var S = 0; S < m.length; S++) f = " " == m[S] ? "&nbsp" : m[S], b += "<div style='position:relative;display:inline-block;'>" + f + "</div>";
                                b += T, r.htmlContent1_str = b
                            } else r.htmlContent1_str = d.innerHTML;
                            o += d.innerText || d.textContent
                        }
                        FWDRLUtils.hasAttribute(d, "data-thumbnail-content2") && (r.htmlContent2_str = d.innerHTML, o += d.innerText || d.textContent), FWDRLUtils.hasAttribute(d, "data-thumbnail-extra-content") && (r.htmlExtraContent_str = d.innerHTML, o += d.innerText || d.textContent, self.hasExtraText_bl = !0), r.titleText_str = o
                    }
                    if (!c) return errorMessage_str = "Thumbnail image is not found at category: <font color='#FF0000'>" + (s + 1) + "</font> at position nr: <font color='#FF0000'>" + (a + 1) + "</font>", void self.dispatchEvent(FWDUGPData.LOAD_ERROR, {
                        text: errorMessage_str
                    });
                    if (/none/i.test(r.type_str) ? (r.iconType_str = FWDUGP.NONE, r.type_str = FWDUGP.NONE, r.thumbIconPathN_str = void 0, r.thumbIconPathS_str = void 0) : /\.jpg|\.jpeg|\.png/i.test(r.type_str) ? (r.iconType_str = FWDUGP.IMAGE, r.type_str = FWDUGP.IMAGE, self.inverseButtonsIcons_bl ? (r.thumbIconPathN_str = self.gridSkinPath_str + "image-icon-with-background.png", r.thumbIconPathS_str = self.gridSkinPath_str + "image-icon.png") : (r.thumbIconPathN_str = self.gridSkinPath_str + "image-icon.png", r.thumbIconPathS_str = self.gridSkinPath_str + "image-icon-with-background.png"), r.width = void 0, r.height = void 0) : /\.mp4/i.test(r.type_str) ? (r.iconType_str = FWDUGP.VIDEO, r.type_str = FWDUGP.VIDEO, self.inverseButtonsIcons_bl ? (r.thumbIconPathN_str = self.gridSkinPath_str + "video-icon-with-background.png", r.thumbIconPathS_str = self.gridSkinPath_str + "video-icon.png") : (r.thumbIconPathN_str = self.gridSkinPath_str + "video-icon.png", r.thumbIconPathS_str = self.gridSkinPath_str + "video-icon-with-background.png")) : /\.mp3/i.test(r.type_str) ? (r.type_str = FWDUGP.AUDIO, r.iconType_str = FWDUGP.AUDIO, self.inverseButtonsIcons_bl ? (r.thumbIconPathN_str = self.gridSkinPath_str + "audio-icon-with-background.png", r.thumbIconPathS_str = self.gridSkinPath_str + "audio-icon.png") : (r.thumbIconPathN_str = self.gridSkinPath_str + "audio-icon.png", r.thumbIconPathS_str = self.gridSkinPath_str + "audio-icon-with-background.png")) : /\.swf/i.test(r.type_str) ? (r.type_str = FWDUGP.FLASH, r.iconType_str = FWDUGP.FLASH, self.inverseButtonsIcons_bl ? (r.thumbIconPathN_str = self.gridSkinPath_str + "flash-icon-with-background.png", r.thumbIconPathS_str = self.gridSkinPath_str + "flash-icon.png") : (r.thumbIconPathN_str = self.gridSkinPath_str + "flash-icon.png", r.thumbIconPathS_str = self.gridSkinPath_str + "flash-icon-with-background.png")) : /youtube\.|vimeo\./i.test(r.type_str) ? (-1 != r.type_str.indexOf("youtube.") ? (r.iconType_str = FWDUGP.YOUTUBE, self.inverseButtonsIcons_bl ? (r.thumbIconPathN_str = self.gridSkinPath_str + "youtube-icon-with-background.png", r.thumbIconPathS_str = self.gridSkinPath_str + "youtube-icon.png") : (r.thumbIconPathN_str = self.gridSkinPath_str + "youtube-icon.png", r.thumbIconPathS_str = self.gridSkinPath_str + "youtube-icon-with-background.png")) : (r.iconType_str = FWDUGP.VIMEO, self.inverseButtonsIcons_bl ? (r.thumbIconPathN_str = self.gridSkinPath_str + "vimeo-icon-with-background.png", r.thumbIconPathS_str = self.gridSkinPath_str + "vimeo-icon.png") : (r.thumbIconPathN_str = self.gridSkinPath_str + "vimeo-icon.png", r.thumbIconPathS_str = self.gridSkinPath_str + "vimeo-icon-with-background.png")), r.type_str = FWDUGP.IFRAME) : /link:/i.test(r.type_str) ? (r.url = r.url.substr(5), r.target = r.target, r.iconType_str = FWDUGP.LINK, self.inverseButtonsIcons_bl ? (r.thumbIconPathN_str = self.gridSkinPath_str + "link-icon-with-background.png", r.thumbIconPathS_str = self.gridSkinPath_str + "link-icon.png") : (r.thumbIconPathN_str = self.gridSkinPath_str + "link-icon.png", r.thumbIconPathS_str = self.gridSkinPath_str + "link-icon-with-background.png"), r.type_str = FWDUGP.LINK) : (-1 != r.type_str.indexOf("google.") ? (r.iconType_str = FWDUGP.MAPS, self.inverseButtonsIcons_bl ? (r.thumbIconPathN_str = self.gridSkinPath_str + "maps-icon-with-background.png", r.thumbIconPathS_str = self.gridSkinPath_str + "maps-icon.png") : (r.thumbIconPathN_str = self.gridSkinPath_str + "maps-icon.png", r.thumbIconPathS_str = self.gridSkinPath_str + "maps-icon-with-background.png")) : (r.iconType_str = FWDUGP.IFRAME, self.inverseButtonsIcons_bl ? (r.thumbIconPathN_str = self.gridSkinPath_str + "iframe-icon-with-background.png", r.thumbIconPathS_str = self.gridSkinPath_str + "iframe-icon.png") : (r.thumbIconPathN_str = self.gridSkinPath_str + "iframe-icon.png", r.thumbIconPathS_str = self.gridSkinPath_str + "iframe-icon-with-background.png")), r.type_str = FWDUGP.IFRAME), r.type_str == FWDUGP.IMAGE_TYPE || r.type_str == FWDUGP.VIDEO_TYPE) {
                        var y = encodeURI(r.url.substr(0, r.url.lastIndexOf("/") + 1)),
                            M = encodeURIComponent(r.url.substr(r.url.lastIndexOf("/") + 1));
                        r.url = y + M
                    }
                    self.parsedPlaylist_ar.push(r)
                }
                self.categories_ar[n] = FWDRLUtils.getAttributeValue(t[n], "data-category-name")
            }
            self.finalizePlaylist();
            try {
                self.playListElement.parentNode.removeChild(self.playListElement)
            } catch (v) {}
        }, this.finalizePlaylist = function() {
            var t = [];
            self.playlist_ar = {
                playlistItems: self.parsedPlaylist_ar
            }, self.randomizeCategories_bl && (self.playlist_ar.playlistItems = FWDRLUtils.randomizeArray(self.playlist_ar.playlistItems));
            for (var e = 0; e < self.playlist_ar.playlistItems.length; e++) self.playlist_ar.playlistItems[e].type_str != FWDUGP.LINK && self.playlist_ar.playlistItems[e].type_str != FWDUGP.NONE && t.push(self.playlist_ar.playlistItems[e]);
            self.showAllCategories_bl && self.categories_ar.splice(0, 0, self.allCategoriesLabel_str), self.catsLength_ar = [];
            for (var e = 0; e < self.categories_ar.length; e++) self.catsLength_ar[e] = 0;
            for (var e = 0; e < self.playlist_ar.playlistItems.length; e++) self.showAllCategories_bl ? (self.catsLength_ar[0]++, self.catsLength_ar[self.playlist_ar.playlistItems[e].catId + 1]++) : self.catsLength_ar[self.playlist_ar.playlistItems[e].catId]++;
            self.lightboxPlaylist_ar = {
                playlistItems: t
            }
        }, this.prepareSiknForLoading = function() {
            self.mainPreloader_img = new Image, self.mainPreloader_img.onerror = self.onSkinLoadErrorHandler, self.mainPreloader_img.onload = self.onPreloaderLoadHandler, self.mainPreloader_img.src = self.gridSkinPath_str + "preloader.png", self.skinPaths_ar = [{
                img: self.fullScreenN_img = new Image,
                src: self.gridSkinPath_str + "full-screen-normal.png"
            }, {
                img: self.normalScreenN_img = new Image,
                src: self.gridSkinPath_str + "normal-screen-normal.png"
            }], self.fullScreenSPath_str = self.gridSkinPath_str + "full-screen-selected.png", self.normalScreenSPath_str = self.gridSkinPath_str + "normal-screen-selected.png", self.loadMoreSPath_str = self.gridSkinPath_str + "load-more-button-over.png", self.handGrabPath_str = self.gridSkinPath_str + "handgrab.cur", self.handMovePath_str = self.gridSkinPath_str + "handmove.cur", self.totalGraphics = self.skinPaths_ar.length
        }, this.onPreloaderLoadHandler = function() {
            setTimeout(function() {
                self.dispatchEvent(FWDUGPData.PRELOADER_LOAD_DONE), self.isFacebook_bl ? self.setupFacebook(!0) : self.loadPlaylist()
            }, 50)
        }, self.loadSkin = function() {
            for (var t, e, i = 0; i < self.totalGraphics; i++) t = self.skinPaths_ar[i].img, e = self.skinPaths_ar[i].src, t.onload = self.onSkinLoadHandler, t.onerror = self.onSkinLoadErrorHandler, t.src = e
        }, this.onSkinLoadHandler = function(t) {
            self.countLoadedSkinImages++, self.countLoadedSkinImages == self.totalGraphics && setTimeout(function() {
                self.dispatchEvent(FWDUGPData.LOAD_DONE)
            }, 50)
        }, self.onSkinLoadErrorHandler = function(t) {
            FWDRLUtils.isIEAndLessThen9 ? message = "Graphics image not found!" : message = "The skin graphics with label <font color='#FF0000'>" + t.target.src + "</font> can't be loaded, check path!", window.console && console.log(t);
            var e = {
                text: message
            };
            setTimeout(function() {
                self.dispatchEvent(FWDUGPData.LOAD_ERROR, e)
            }, 50)
        }, this.init()
    };
    FWDUGPData.setPrototype = function() {
        FWDUGPData.prototype = new FWDRLEventDispatcher
    }, FWDUGPData.isSoundCloud_bl = !1, FWDUGPData.isFaceBook_bl = !1, FWDUGPData.prototype = null, FWDUGPData.PRELOADER_LOAD_DONE = "onPreloaderLoadDone", FWDUGPData.LOAD_DONE = "onLoadDone", FWDUGPData.LOAD_ERROR = "onLoadError", FWDUGPData.LIGHBOX_CLOSE_BUTTON_LOADED = "onLightBoxCloseButtonLoadDone", window.FWDUGPData = FWDUGPData
}(window),
function(t) {
    var e = function(t, e, i, s) {
        this.listeners = {
            events_ar: []
        };
        var a = this;
        if ("div" != t && "img" != t && "canvas" != t) throw Error("Type is not valid! " + t);
        this.type = t, this.children_ar = [], this.style, this.screen, this.numChildren, this.transform, this.position = e || "absolute", this.overflow = i || "hidden", this.display = s || "block", this.visible = !0, this.buttonMode, this.x = 0, this.y = 0, this.z = 0, this.angleX = 0, this.angleY = 0, this.angleZ = 0, this.perspective = 0, this.zIndex = 0, this.scale = 1, this.w = 0, this.h = 0, this.rect, this.alpha = 1, this.innerHTML = "", this.opacityType = "", this.isHtml5_bl = !1, this.hasTransform3d_bl = !0, this.hasTransform2d_bl = !0, this.init = function() {
            this.setScreen()
        }, this.getTransform = function() {
            for (var t, e = ["transform", "msTransform", "WebkitTransform", "MozTransform", "OTransform"]; t = e.shift();)
                if ("undefined" != typeof this.screen.style[t]) return t;
            return !1
        }, this.getOpacityType = function() {
            var t;
            return t = "undefined" != typeof this.screen.style.opacity ? "opacity" : "filter"
        }, this.setScreen = function(t) {
            "img" == this.type && t ? (this.screen = t, this.setMainProperties()) : (this.screen = document.createElement(this.type), this.setMainProperties())
        }, this.setMainProperties = function() {
            this.transform = this.getTransform(), this.setPosition(this.position), this.setOverflow(this.overflow), this.opacityType = this.getOpacityType(), "opacity" == this.opacityType && (this.isHtml5_bl = !0), "filter" == a.opacityType && (a.screen.style.filter = "inherit"), this.screen.style.left = "0px", this.screen.style.top = "0px", this.screen.style.margin = "0px", this.screen.style.padding = "0px", this.screen.style.maxWidth = "none", this.screen.style.maxHeight = "none", this.screen.style.border = "none", this.screen.style.lineHeight = "1", this.screen.style.backgroundColor = "transparent", this.screen.style.backfaceVisibility = "hidden", this.screen.style.webkitBackfaceVisibility = "hidden", this.screen.style.MozBackfaceVisibility = "hidden", "img" == t && (this.setWidth(this.screen.width), this.setHeight(this.screen.height), this.screen.onmousedown = function(t) {
                return !1
            })
        }, a.setBackfaceVisibility = function() {
            a.screen.style.backfaceVisibility = "visible", a.screen.style.webkitBackfaceVisibility = "visible", a.screen.style.MozBackfaceVisibility = "visible"
        }, a.removeBackfaceVisibility = function() {
            a.screen.style.backfaceVisibility = "hidden", a.screen.style.webkitBackfaceVisibility = "hidden", a.screen.style.MozBackfaceVisibility = "hidden"
        }, this.setSelectable = function(t) {
            if (!t) {
                try {
                    this.screen.style.userSelect = "none"
                } catch (e) {}
                try {
                    this.screen.style.MozUserSelect = "none"
                } catch (e) {}
                try {
                    this.screen.style.webkitUserSelect = "none"
                } catch (e) {}
                try {
                    this.screen.style.khtmlUserSelect = "none"
                } catch (e) {}
                try {
                    this.screen.style.oUserSelect = "none"
                } catch (e) {}
                try {
                    this.screen.style.msUserSelect = "none"
                } catch (e) {}
                try {
                    this.screen.msUserSelect = "none"
                } catch (e) {}
                this.screen.ondragstart = function(t) {
                    return !1
                }, this.screen.onselectstart = function() {
                    return !1
                }, this.screen.style.webkitTouchCallout = "none"
            }
        }, this.getScreen = function() {
            return a.screen
        }, this.setVisible = function(t) {
            this.visible = t, 1 == this.visible ? this.screen.style.visibility = "visible" : this.screen.style.visibility = "hidden"
        }, this.getVisible = function() {
            return this.visible
        }, this.setResizableSizeAfterParent = function() {
            this.screen.style.width = "100%", this.screen.style.height = "100%"
        }, this.getStyle = function() {
            return this.screen.style
        }, this.setOverflow = function(t) {
            a.overflow = t, a.screen.style.overflow = a.overflow
        }, this.setPosition = function(t) {
            a.position = t, a.screen.style.position = a.position
        }, this.setDisplay = function(t) {
            this.display = t, this.screen.style.display = this.display
        }, this.setButtonMode = function(t) {
            this.buttonMode = t, 1 == this.buttonMode ? this.screen.style.cursor = "pointer" : this.screen.style.cursor = "default"
        }, this.setBkColor = function(t) {
            a.screen.style.backgroundColor = t
        }, this.setInnerHTML = function(t) {
            a.innerHTML = t, a.screen.innerHTML = a.innerHTML
        }, this.getInnerHTML = function() {
            return a.innerHTML
        }, this.getRect = function() {
            return a.screen.getBoundingClientRect()
        }, this.setAlpha = function(t) {
            a.alpha = t, "opacity" == a.opacityType ? a.screen.style.opacity = a.alpha : "filter" == a.opacityType && (a.screen.style.filter = "alpha(opacity=" + 100 * a.alpha + ")", a.screen.style.filter = "progid:DXImageTransform.Microsoft.Alpha(Opacity=" + Math.round(100 * a.alpha) + ")")
        }, this.getAlpha = function() {
            return a.alpha
        }, this.getRect = function() {
            return this.screen.getBoundingClientRect()
        }, this.getGlobalX = function() {
            return this.getRect().left
        }, this.getGlobalY = function() {
            return this.getRect().top
        }, this.setX = function(t) {
            a.x = t, a.hasTransform3d_bl ? a.screen.style[a.transform] = "translate3d(" + a.x + "px," + a.y + "px," + a.z + "px) rotateX(" + a.angleX + "deg) rotateY(" + a.angleY + "deg) rotateZ(" + a.angleZ + "deg)" : a.hasTransform2d_bl ? a.screen.style[a.transform] = "translate(" + a.x + "px," + a.y + "px) scale(" + a.scale + " , " + a.scale + ")" : a.screen.style.left = a.x + "px"
        }, this.getX = function() {
            return a.x
        }, this.setY = function(t) {
            a.y = t, a.hasTransform3d_bl ? a.screen.style[a.transform] = "translate3d(" + a.x + "px," + a.y + "px," + a.z + "px) rotateX(" + a.angleX + "deg) rotateY(" + a.angleY + "deg) rotateZ(" + a.angleZ + "deg)" : a.hasTransform2d_bl ? a.screen.style[a.transform] = "translate(" + a.x + "px," + a.y + "px) scale(" + a.scale + " , " + a.scale + ")" : a.screen.style.top = a.y + "px"
        }, this.getY = function() {
            return a.y
        }, this.setZ = function(t) {
            a.z = t, a.hasTransform3d_bl && (a.screen.style[a.transform] = "translate3d(" + a.x + "px," + a.y + "px," + a.z + "px) rotateX(" + a.angleX + "deg) rotateY(" + a.angleY + "deg) rotateZ(" + a.angleZ + "deg)")
        }, this.getZ = function() {
            return a.z
        }, this.setAngleX = function(t) {
            a.angleX = t, a.hasTransform3d_bl && (a.screen.style[a.transform] = "translate3d(" + a.x + "px," + a.y + "px," + a.z + "px) rotateX(" + a.angleX + "deg) rotateY(" + a.angleY + "deg) rotateZ(" + a.angleZ + "deg)")
        }, this.getAngleX = function() {
            return a.angleX
        }, this.setAngleY = function(t) {
            a.angleY = t, a.hasTransform3d_bl && (a.screen.style[a.transform] = "translate3d(" + a.x + "px," + a.y + "px," + a.z + "px) rotateX(" + a.angleX + "deg) rotateY(" + a.angleY + "deg) rotateZ(" + a.angleZ + "deg)")
        }, this.getAngleY = function() {
            return a.angleY
        }, this.setAngleZ = function(t) {
            a.angleZ = t, a.hasTransform3d_bl && (a.screen.style[a.transform] = "translate3d(" + a.x + "px," + a.y + "px," + a.z + "px) rotateX(" + a.angleX + "deg) rotateY(" + a.angleY + "deg) rotateZ(" + a.angleZ + "deg)")
        }, this.getAngleZ = function() {
            return a.angleZ
        }, this.setScale2 = function(t) {
            a.scale = t, a.hasTransform2d_bl && (a.screen.style[a.transform] = "translate(" + a.x + "px," + a.y + "px) scale(" + a.scale + " , " + a.scale + ")")
        }, this.getScale = function() {
            return a.scale
        }, this.setPerspective = function(t) {
            a.perspective = t, a.screen.style.perspective = a.perspective + "px", a.screen.style.WebkitPerspective = a.perspective + "px", a.screen.style.MozPerspective = a.perspective + "px", a.screen.style.msPerspective = a.perspective + "px", a.screen.style.OPerspective = a.perspective + "px"
        }, this.setPreserve3D = function() {
            this.screen.style.transformStyle = "preserve-3d", this.screen.style.WebkitTransformStyle = "preserve-3d", this.screen.style.MozTransformStyle = "preserve-3d", this.screen.style.msTransformStyle = "preserve-3d", this.screen.style.OTransformStyle = "preserve-3d";
        }, this.setZIndex = function(t) {
            a.zIndex = t, a.screen.style.zIndex = a.zIndex
        }, this.getZIndex = function() {
            return a.zIndex
        }, this.setWidth = function(t) {
            a.w = t, "img" == a.type ? a.screen.width = a.w : a.screen.style.width = a.w + "px"
        }, this.getWidth = function() {
            return "div" == a.type ? 0 != a.screen.offsetWidth ? a.screen.offsetWidth : a.w : "img" == a.type ? 0 != a.screen.offsetWidth ? a.screen.offsetWidth : 0 != a.screen.width ? a.screen.width : a._w : "canvas" == a.type ? 0 != a.screen.offsetWidth ? a.screen.offsetWidth : a.w : void 0
        }, this.setHeight = function(t) {
            a.h = t, "img" == a.type ? a.screen.height = a.h : a.screen.style.height = a.h + "px"
        }, this.getHeight = function() {
            return "div" == a.type ? 0 != a.screen.offsetHeight ? a.screen.offsetHeight : a.h : "img" == a.type ? 0 != a.screen.offsetHeight ? a.screen.offsetHeight : 0 != a.screen.height ? a.screen.height : a.h : "canvas" == a.type ? 0 != a.screen.offsetHeight ? a.screen.offsetHeight : a.h : void 0
        }, this.getNumChildren = function() {
            return a.children_ar.length
        }, this.addChild = function(t) {
            this.contains(t) ? (this.children_ar.splice(FWDRLUtils.indexOfArray(this.children_ar, t), 1), this.children_ar.push(t), this.screen.appendChild(t.screen)) : (this.children_ar.push(t), this.screen.appendChild(t.screen))
        }, this.removeChild = function(t) {
            if (!this.contains(t)) throw Error("##removeChild()## Child doesn't exist, it can't be removed!");
            this.children_ar.splice(FWDRLUtils.indexOfArray(this.children_ar, t), 1), this.screen.removeChild(t.screen)
        }, this.contains = function(t) {
            return -1 == FWDRLUtils.indexOfArray(this.children_ar, t) ? !1 : !0
        }, this.addChildAtZero = function(t) {
            0 == this.numChildren ? (this.children_ar.push(t), this.screen.appendChild(t.screen)) : (this.screen.insertBefore(t.screen, this.children_ar[0].screen), this.contains(t) && this.children_ar.splice(FWDRLUtils.indexOfArray(this.children_ar, t), 1), this.children_ar.unshift(t))
        }, this.getChildAt = function(t) {
            if (0 > t || t > this.numChildren - 1) throw Error("##getChildAt()## Index out of bounds!");
            if (0 == this.numChildren) throw Errror("##getChildAt## Child dose not exist!");
            return this.children_ar[t]
        }, this.removeChildAtZero = function() {
            this.screen.removeChild(this.children_ar[0].screen), this.children_ar.shift()
        }, this.disposeImage = function() {
            "img" == this.type && (this.screen.src = "")
        }, a.addListener = function(t, e) {
            if (void 0 == t) throw Error("type is required.");
            if ("object" == typeof t) throw Error("type must be of type String.");
            if ("function" != typeof e) throw Error("listener must be of type Function.");
            var i = {};
            i.type = t, i.listener = e, i.target = this, this.listeners.events_ar.push(i)
        }, a.dispatchEvent = function(t, e) {
            if (null != this.listeners) {
                if (void 0 == t) throw Error("type is required.");
                if ("object" == typeof t) throw Error("type must be of type String.");
                for (var i = 0, s = this.listeners.events_ar.length; s > i; i++)
                    if (this.listeners.events_ar[i].target === this && this.listeners.events_ar[i].type === t) {
                        if (e)
                            for (var a in e) this.listeners.events_ar[i][a] = e[a];
                        this.listeners.events_ar[i].listener.call(this, this.listeners.events_ar[i])
                    }
            }
        }, a.removeListener = function(t, e) {
            if (void 0 == t) throw Error("type is required.");
            if ("object" == typeof t) throw Error("type must be of type String.");
            if ("function" != typeof e) throw Error("listener must be of type Function." + t);
            for (var i = 0, s = this.listeners.events_ar.length; s > i; i++)
                if (this.listeners.events_ar[i].target === this && this.listeners.events_ar[i].type === t && this.listeners.events_ar[i].listener === e) {
                    this.listeners.events_ar.splice(i, 1);
                    break
                }
        }, this.init()
    };
    t.FWDUGPDisplayObject3D = e
}(window),
function(t) {
    var e = function(s, a) {
        var o = this;
        e.prototype;
        this.sourcePlaylist_ar = s.playlist_ar.playlistItems, this.originalDataThumbnails_ar = [], this.dataThumbnails_ar = [], this.tempPlaylist_ar, this.rowHeights_ar = [], this.loadMoreCatsData_ar = [], this.catId_ar = s.startAtCategory_ar, this.loadMoreButton_do, this.noSearch_do, this.curDataThumbnail, this.thumbnailLoadingType_str = s.thumbnailLoadingType_str, this.handGrabPath_str = s.handGrabPath_str, this.handMovePath_str = s.handMovePath_str, this.currentThumbnailsFinalX = 0, this.totalLoadedThumbnails = 0, this.loadMoreButtonOffsetLeft = s.loadMoreButtonOffsetTop, this.loadMoreButtonOffsetRight = s.loadMoreButtonOffsetBottom, this.thumbnailsPerSet = s.howManyThumbnailsToDisplayPerSet, this.thumbsHOffset = s.thumbnailsHorizontalOffset, this.thumbsVOffset = s.thumbnailsVerticalOffset, this.offsetTotalHeight = 0, this.maxH = 0, this.thumbOffsetY = 0, this.catId = s.startAtCategory, this.stageWidth = 0, this.prevStageWidth = 0, this.thumbnailMaxWidth = s.thumbnailMaxWidth, this.thumbnailMaxHeight = s.thumbnailMaxHeight, this.leftWidth = 0, this.thumbWidth, this.thumbHeight, this.thumbsHSpace = s.horizontalSpaceBetweenThumbnails, this.thumbsVSpace = s.verticalSpaceBetweenThumbnails, this.countLoadedThumbs = 0, this.borderSize = s.thumbnailBorderSize, this.totalThumbnails = this.sourcePlaylist_ar.length, this.tempTotalThumbnails = this.sourcePlaylist_ar.length, this.totalOriginalThumbnails = this.sourcePlaylist_ar.length, this.globalX = 0, this.globalY = 0, this.leftHeight = 0, this.vx = 0, this.vx2 = 0, this.friction = .9, this.searchValue = "", this.catChanging_to, this.arangeFaterTweenId_to, this.updateSearch_to, this.isMobileScrollBarRunning_bl = !1, this.isDragging_bl = !1, this.isLoadAtTheEnd_bl = !1, this.isLoadMoreButtonShowed_bl = !0, this.isCatChanging_bl = !1, this.isFirstThumbnailLoaded_bl = !1, this.centerNoSearchFoundLabelWithMenu_bl = s.centerNoSearchFoundLabelWithMenu_bl, this.firstThumbnailShowed_bl = !1, this.animateParent_bl = s.animateParent_bl, this.addMouseWheelSupport_bl = s.addMouseWheelSupport_bl, this.isVerticalType_bl = s.isVerticalType_bl, this.isNoSearchFoundShowed_bl = !1, this.isLoadingMore_bl = !1, this.showAllCategories_bl = s.showAllCategories_bl, this.totalCats = this.showAllCategories_bl ? s.categories_ar.length - 1 : s.categories_ar.length, this.isMobile_bl = FWDRLUtils.isMobile, this.init = function() {
            this.setOverflow("visible"), this.thumbnailsHolder_do = new FWDRLDisplayObject("div"), this.thumbnailsHolder_do.setOverflow("visible"), this.setBkColor(a.backgroundColor_str), this.setupThumbnailsData(), "loadmorewithbutton" == o.thumbnailLoadingType_str && this.setupLoadMoreButton(), this.addMouseWheelSupport_bl && !this.isMobile_bl && this.addMouseWheelSupport(), this.filterCategories(), this.startGetMousePosition(), this.setupDragScrollbar(), this.addChild(this.thumbnailsHolder_do), this.setupNoSearch(), o.isMobile_bl || (o.screen.style.cursor = "url(" + o.handGrabPath_str + "), default", o.dumy_do = new FWDRLDisplayObject("div"), FWDRLUtils.isIE && (o.dumy_do.setBkColor("#FF0000"), o.dumy_do.setAlpha(1e-4)), o.dumy_do.screen.style.cursor = "url(" + o.handMovePath_str + "), default", o.addChild(o.dumy_do))
        }, this.resizeAndPosition = function() {
            this.stageWidth = a.stageWidth, a.menu_do ? this.stageHeight = a.stageHeight - a.menu_do.h : this.stageHeight = a.stageHeight, this.thumbnailsFinalX = this.thumbnailsHolder_do.getX(), this.setDataForResize(), this.positionThumbnailsAndMain(), this.centerThumbnails(!0), this.positionNoSearchLabel(), this.setWidth(this.stageWidth), this.setHeight(this.stageHeight)
        }, this.startGetMousePosition = function() {
            t.addEventListener ? (o.isMobile_bl || t.addEventListener("touchstart", this.getMousePosition), t.addEventListener("mousemove", this.getMousePosition)) : document.attachEvent && document.attachEvent("onmousemove", this.getMousePosition)
        }, this.getMousePosition = function(t) {
            var e = FWDRLUtils.getViewportMouseCoordinates(t);
            o.globalX = e.screenX, o.globalY = e.screenY
        }, this.setupThumbnailsData = function() {
            for (var t, e = [], i = 0; i < this.totalThumbnails; i++) t = {}, t.thumbnail = void 0, t.id = i, t.catId = this.sourcePlaylist_ar[i].catId, this.originalDataThumbnails_ar[i] = t, this.dataThumbnails_ar[i] = t;
            for (var i = 0; i < this.totalCats; i++) e[i] = 0;
            for (var i = 0; i < this.totalThumbnails; i++) e[this.dataThumbnails_ar[i].catId]++;
            for (var i = 0; i < this.totalCats; i++) t = {}, t.loaded = 0, t.limit = 0, t.total = e[i], t.isSelected = !1, this.loadMoreCatsData_ar[i] = t
        }, this.search = function(t) {
            o.searchValue = t, clearTimeout(o.updateSearch_to), o.updateSearch_to = setTimeout(function() {
                o.filterCategories()
            }, 200)
        }, this.getThumbnail = function(t, e) {
            var i = {};
            return i.parent = this, i.id = e, i.catId = t, i.presetType_str = s.presetType_str, i.backgroundColor_str = s.thumbnailBackgroundColor_str, i.borderNormalColor_str = this.sourcePlaylist_ar[e].thumbnailBorderNormalColor || s.thumbnailBorderNormalColor_str, i.borderSelectedColor_str = this.sourcePlaylist_ar[e].thumbnailBorderSelectedColor || s.thumbnailBorderSelectedColor_str, i.borderSize = s.thumbnailBorderSize, i.borderRadius = s.thumbnailBorderRadius, i.thumbnailOverlayColor_str = this.sourcePlaylist_ar[e].thumbnailOverlayColor || s.thumbnailOverlayColor_str, i.thumbnailOverlayOpacity = s.thumbnailOverlayOpacity, i.spaceBetweenTextAndIcons = s.spaceBetweenTextAndIcons, i.extraButtonUrl_str = this.sourcePlaylist_ar[e].extraButtonUrl_str, i.extraButtonUrlTarget_str = this.sourcePlaylist_ar[e].extraButtonUrlTarget_str, i.thumbIconPathN_str = this.sourcePlaylist_ar[e].thumbIconPathN_str, i.thumbIconPathS_str = this.sourcePlaylist_ar[e].thumbIconPathS_str, i.thumbnailIconWidth = s.thumbnailIconWidth, i.thumbnailIconHeight = s.thumbnailIconHeight, i.linkIconPathN_str = s.linkIconPathN_str, i.linkIconPathS_str = s.linkIconPathS_str, i.spaceBetweenThumbanilIcons = s.spaceBetweenThumbanilIcons, i.hideAndShowTransitionType_str = s.hideAndShowTransitionType_str, i.textVerticalAlign_str = s.textVerticalAlign_str, i.imageTransitionDirection_str = s.imageTransitionDirection_str, i.thumbanilBoxShadow_str = s.thumbanilBoxShadow_str, i.textAnimType_str = s.textAnimType_str, i.disableThumbnails_bl = s.disableThumbnails_bl, i.useIconButtons_bl = s.useIconButtons_bl, i.alt_str = this.sourcePlaylist_ar[e].alt_str, i.linkUrl_str = this.sourcePlaylist_ar[e].url, i.linkTarget_str = this.sourcePlaylist_ar[e].target, i.contentOffsetY = s.contentOffsetY, i.buttonsOffest = s.buttonsOffestY, i.isVerticalType_bl = this.isVerticalType_bl, i.isDisabled_bl = this.sourcePlaylist_ar[e].disabled_bl, i.htmlContent1_str = this.sourcePlaylist_ar[e].htmlContent1_str, i.htmlContent2_str = this.sourcePlaylist_ar[e].htmlContent2_str, FWDUGPThumbnail.setPrototype(), thumbnail = new FWDUGPThumbnail(i), thumbnail.addListener(FWDUGPThumbnail.MOUSE_UP, this.thumbanilOnMouseUpHandler), this.thumbnailsHolder_do.addChild(thumbnail), thumbnail
        }, this.thumbanilOnMouseUpHandler = function(i) {
            for (var a = i.id, n = i.id, l = i.extraButton ? "extraButtonLink" : o.sourcePlaylist_ar[a].type_str, r = 0; r < o.totalOriginalThumbnails; r++) n > r && (o.sourcePlaylist_ar[r].type_str == FWDUGP.NONE || o.sourcePlaylist_ar[r].type_str == FWDUGP.LINK) && (a -= 1);
            "extraButtonLink" == l ? s.isPintrest_bl ? PDK.pin(o.sourcePlaylist_ar[i.id].thumbnailPath_str, o.sourcePlaylist_ar[i.id].rawDescription_str, o.sourcePlaylist_ar[i.id].pinLInk_str, function() {}) : t.open(o.dataThumbnails_ar[i.id].thumbnail.extraButtonUrl_str, o.dataThumbnails_ar[i.id].thumbnail.extraButtonUrlTarget_str) : "link" == l ? t.open(o.dataThumbnails_ar[i.id].thumbnail.linkUrl_str, o.dataThumbnails_ar[i.id].thumbnail.linkTarget_str) : o.dispatchEvent(e.OPEN_LIGHTBOX, {
                id: a
            })
        }, this.updateCategory = function(t) {
            this.catId_ar != t && (this.catId_ar = t, this.thumbnailsFinalX = this.thumbnailsHolder_do.getX(), this.deactivateDragScrollBar(), this.filterCategories(), this.positionThumbnailsAndMain(), this.dispatchEvent(e.CATEGORY_UPDATE))
        }, this.stopToLoadImage = function() {
            clearTimeout(this.loadThumbnailId_to), o.image_img && (o.image_img.onerror = null, o.image_img.onload = null)
        }, this.startToLoadImage = function(t) {
            o.image_img = new Image, o.image_img.onerror = o.onImageLoadErrorHandler, o.image_img.onload = o.onImageLoadHandler, o.image_img.src = t
        }, this.loadThumbImage = function() {
            var t;
            o.stopToLoadImage();
            for (var e = 0; e < o.totalCats; e++)
                if (o.loadMoreCatsData_ar[e].isSelected && o.loadMoreCatsData_ar[e].loaded < o.loadMoreCatsData_ar[e].limit) {
                    t = e;
                    break
                }
            for (var e = 0; e < o.tempTotalThumbnails && (o.curDataThumbnail = o.tempPlaylist_ar[e], o.curDataThumbnail.catId != t || o.curDataThumbnail.thumbnail); e++);
            o.startToLoadImage(o.sourcePlaylist_ar[o.curDataThumbnail.id].thumbnailPath_str)
        }, this.onImageLoadErrorHandler = function(t) {
            var i = "Thumbnail image can't be loaded, probably the path is incorrect <font color='#FFFFFF'>" + o.sourcePlaylist_ar[o.curDataThumbnail.id].thumbnailPath_str + "</font>";
            o.dispatchEvent(e.ERROR, {
                text: i
            })
        }, this.onImageLoadHandler = function(t) {
            var e = o.getThumbnail(o.curDataThumbnail.catId, o.curDataThumbnail.id);
            o.loadMoreCatsData_ar[o.curDataThumbnail.catId].loaded++, o.curDataThumbnail.thumbnail = e, o.originalDataThumbnails_ar[o.curDataThumbnail.id].thumbnail = e, e.hasImg_bl = !0, e.originalWidth = o.image_img.width, e.originalHeight = o.image_img.height, e.addImage(o.image_img), o.countLoadedThumbs++, o.isFirstThumbnailLoaded_bl || setTimeout(function() {
                o.firstThumbnailShowed_bl = !0
            }, 200), o.updateCurThumbnails(), o.positionThumbnailsAndMain(), o.centerThumbnails(!0)
        }, this.updateCatsLimits = function() {
            var t = o.thumbnailsPerSet,
                e = 0;
            if (this.showAllCategories_bl && 0 == this.catId_ar[0]) {
                if (0 == this.loadMoreCatsData_ar[0].limit)
                    for (; t > 0 && e < this.totalCats;) this.loadMoreCatsData_ar[e].limit + t > this.loadMoreCatsData_ar[e].total ? (t -= this.loadMoreCatsData_ar[e].total - this.loadMoreCatsData_ar[e].limit, this.loadMoreCatsData_ar[e].limit = this.loadMoreCatsData_ar[e].total) : (this.loadMoreCatsData_ar[e].limit += t, t = 0), e++
            } else
                for (var i = 0; i < this.totalCats; i++) this.loadMoreCatsData_ar[i].isSelected && this.loadMoreCatsData_ar[i].limit < this.thumbnailsPerSet && (this.loadMoreCatsData_ar[i].limit = Math.min(this.loadMoreCatsData_ar[i].total, this.thumbnailsPerSet));
            this.totalThumbnailsLimit = 0;
            for (var i = 0; i < this.totalCats; i++) this.loadMoreCatsData_ar[i].isSelected && (this.totalThumbnailsLimit += this.loadMoreCatsData_ar[i].limit)
        }, this.allowToLoadMoreThumbnails = function() {
            return this.totalLoadedThumbnails == this.totalThumbnailsLimit && this.totalLoadedThumbnails < this.tempTotalThumbnails ? !0 : !1
        }, this.loadMore = function() {
            for (var t = o.thumbnailsPerSet, e = 0; t > 0 && e < o.totalCats;) o.loadMoreCatsData_ar[e].isSelected && (o.loadMoreCatsData_ar[e].limit + t > o.loadMoreCatsData_ar[e].total ? (t -= o.loadMoreCatsData_ar[e].total - o.loadMoreCatsData_ar[e].limit, o.loadMoreCatsData_ar[e].limit = o.loadMoreCatsData_ar[e].total) : (o.loadMoreCatsData_ar[e].limit += t, t = 0)), e++;
            this.totalThumbnailsLimit = 0;
            for (var i = 0; i < this.totalCats; i++) this.loadMoreCatsData_ar[i].isSelected && (this.totalThumbnailsLimit += this.loadMoreCatsData_ar[i].limit);
            o.isLoadingMore_bl = !0, o.deactivateDragScrollBar(), o.loadThumbImage()
        }, this.updateCatsData = function() {
            var t, e, i = [],
                s = [];
            o.loadMoreCatsData_ar = [];
            for (var a = 0; a < o.totalCats; a++) i[a] = 0, s[a] = 0;
            for (var a = 0; a < o.totalThumbnails; a++) t = o.dataThumbnails_ar[a], i[t.catId]++, t.thumbnail && s[t.catId]++;
            for (var a = 0; a < o.totalCats; a++) e = {}, e.loaded = s[a], e.limit = s[a], e.total = i[a], e.isSelected = !1, o.loadMoreCatsData_ar[a] = e
        }, this.filterCategories = function() {
            var t, e, i = 0;
            this.tempPlaylist_ar = [], this.playlist_ar = [], this.dataThumbnails_ar = [], o.stopToLoadImage();
            for (var s = 0; s < o.sourcePlaylist_ar.length; s++) t = o.originalDataThumbnails_ar[s], -1 != o.sourcePlaylist_ar[s].titleText_str.toLowerCase().indexOf(o.searchValue) ? o.dataThumbnails_ar.push(t) : t.thumbnail && t.thumbnail.hide(!0);
            if (o.totalThumbnails = o.dataThumbnails_ar.length, this.updateCatsData(), this.showAllCategories_bl && (i = 1), this.showAllCategories_bl && 0 == o.catId_ar[0]) {
                for (s = 0; s < this.totalThumbnails; s++) t = this.dataThumbnails_ar[s], this.tempPlaylist_ar.push(t), t.thumbnail && (this.playlist_ar.push(t), t.thumbnail.show(!0));
                for (var s = 0; s < this.totalCats; s++) this.loadMoreCatsData_ar[s].isSelected = !0
            } else
                for (s = 0; s < this.totalThumbnails; s++) {
                    t = this.dataThumbnails_ar[s], e = !1;
                    for (var a = 0; a < this.totalCats; a++) t.catId == o.catId_ar[a] - i && (this.tempPlaylist_ar.push(t), t.thumbnail && this.playlist_ar.push(t), this.loadMoreCatsData_ar[o.catId_ar[a] - i].isSelected = !0, e = !0);
                    e ? t.thumbnail && t.thumbnail.show(!0) : t.thumbnail && t.thumbnail.hide(!0)
                }
            this.tempTotalThumbnails = this.tempPlaylist_ar.length, this.totalLoadedThumbnails = this.playlist_ar.length, 0 == this.tempTotalThumbnails ? this.showNoSearch() : this.hideNoSearch(), this.updateCatsLimits(), this.totalLoadedThumbnails < this.totalThumbnailsLimit ? (clearTimeout(this.loadThumbnailId_to), this.loadThumbnailId_to = setTimeout(this.loadThumbImage, 300)) : (o.updateCurThumbnails(), o.positionThumbnailsAndMain(), o.centerThumbnails(!0), "loadmoreonscroll" == o.thumbnailLoadingType_str && o.stageWidth > o.totalWidth && o.allowToLoadMoreThumbnails() && o.loadMore()), "loadmorewithbutton" == o.thumbnailLoadingType_str && this.hideOrShowLoadMoreButton()
        }, this.updateCurThumbnails = function() {
            var t, e = 0;
            if (this.playlist_ar = [], this.showAllCategories_bl && (e = 1), this.showAllCategories_bl && 0 == o.catId_ar[0])
                for (i = 0; i < this.totalThumbnails; i++) t = this.dataThumbnails_ar[i], t.thumbnail && this.playlist_ar.push(t);
            else
                for (i = 0; i < this.totalThumbnails; i++) {
                    t = this.dataThumbnails_ar[i];
                    for (var s = 0; s < this.totalCats; s++) t.catId == o.catId_ar[s] - e && t.thumbnail && this.playlist_ar.push(t)
                }
            this.totalLoadedThumbnails = this.playlist_ar.length, this.totalLoadedThumbnails < this.totalThumbnailsLimit ? (clearTimeout(this.loadThumbnailId_to), this.loadThumbnailId_to = setTimeout(this.loadThumbImage, 10)) : (o.isLoadingMore_bl = !1, "loadmoreonscroll" == o.thumbnailLoadingType_str && o.stageWidth > o.totalWidth && o.allowToLoadMoreThumbnails() && o.loadMore()), "loadmorewithbutton" == o.thumbnailLoadingType_str && this.hideOrShowLoadMoreButton()
        }, this.setDataForResize = function() {
            this.stageWidth && (this.prevStageWidth = this.stageWidth)
        }, this.positionThumbnailsAndMain = function() {
            this.positionThumbnails(), this.positionLoadMoreButton(), this.totalWidth += this.offsetTotalWidth
        }, this.positionThumbnails = function() {
            var t, e, i, s, a, n, l = 0,
                r = 0,
                h = 0,
                d = 0;
            n = o.stageHeight - 2 * o.thumbsVOffset, i = o.thumbnailMaxWidth + 2 * o.borderSize;
            for (var u = 0; u < o.totalLoadedThumbnails; u++) {
                a = o.playlist_ar[u].thumbnail;
                var c = a.imageOriginalH / a.imageOriginalW;
                if (s = Math.floor((i - 2 * o.borderSize) * c + 2 * o.borderSize), 0 == l ? (h += s, e = o.thumbsVOffset) : (h += s + o.thumbsVSpace, e = e + d + o.thumbsVSpace), l++, d = s, t = r * (i + o.thumbsHSpace) + o.thumbsHOffset, h == n) h = 0, l = 0, r++;
                else if (h > n) {
                    for (var _, m, b = u - l + 1, f = [], p = [], g = h - n, T = 0, S = 0, y = 0; l - 1 > y; y++) _ = o.playlist_ar[b + y].thumbnail, T += _.finalH;
                    T += s;
                    for (var y = 0; l - 1 > y; y++) _ = o.playlist_ar[b + y].thumbnail, p[y] = Math.floor(_.finalH - g * (_.finalH / T)), S += p[y];
                    if (p[l - 1] = Math.floor(s - g * (s / T)), S += p[l - 1], S += o.thumbsVSpace * (l - 1), m = n - S, m > 0)
                        for (var y = 0; m > y; y++) _ = o.playlist_ar[b + y].thumbnail, p[y]++;
                    f[0] = o.thumbsVOffset;
                    for (var y = 1; l > y; y++) _ = o.playlist_ar[b + y].thumbnail, f[y] = f[y - 1] + p[y - 1] + o.thumbsVSpace;
                    for (var y = 0; l - 1 > y; y++) _ = o.playlist_ar[b + y].thumbnail, _.finalH = p[y], _.finalY = f[y];
                    s = p[l - 1], e = f[l - 1], h = 0, l = 0, r++
                }
                a.finalW = i, a.finalH = s, a.finalX = t, a.finalY = e
            }
            for (var u = 0; u < o.totalLoadedThumbnails; u++) o.playlist_ar[u].thumbnail.resizeAndPosition();
            a ? o.totalWidth = t + i + o.thumbsHOffset : o.totalWidth = 0
        }, this.setupNoSearch = function() {
            this.noSearch_do = new FWDRLDisplayObject("div"), this.noSearch_do.setOverflow("visible"), this.noSearch_do.setDisplay("inline-block"), this.noSearch_do.getStyle().fontSmoothing = "antialiased", this.noSearch_do.getStyle().webkitFontSmoothing = "antialiased", this.noSearch_do.getStyle().textRendering = "optimizeLegibility", this.noSearch_do.getStyle().whiteSpace = "nowrap", this.noSearch_do.setBackfaceVisibility(), this.noSearch_do.getStyle().padding = "", this.noSearch_do.getStyle().margin = "", this.noSearch_do.screen.className = s.searchNotFoundClassName_str, this.noSearch_do.hasTransform3d_bl = !1, this.noSearch_do.hasTransform2d_bl = !1, this.noSearch_do.setAlpha(0), this.noSearch_do.setInnerHTML(s.searchNotFoundLabel_str), this.addChild(this.noSearch_do), setTimeout(function() {
                o.noSearch_do.w = o.noSearch_do.getWidth(), o.noSearch_do.h = o.noSearch_do.getHeight(), o.removeChild(o.noSearch_do)
            }, 70)
        }, this.showNoSearch = function() {
            this.isNoSearchFoundShowed_bl || (this.isNoSearchFoundShowed_bl = !0, this.addChild(this.noSearch_do), this.positionNoSearchLabel(), FWDRLTweenMax.killTweensOf(this.noSearch_do), FWDRLTweenMax.to(this.noSearch_do, .1, {
                alpha: 1,
                yoyo: !0,
                repeat: 8
            }))
        }, this.hideNoSearch = function() {
            this.isNoSearchFoundShowed_bl && (this.isNoSearchFoundShowed_bl = !1, FWDRLTweenMax.killTweensOf(this.noSearch_do), FWDRLTweenMax.to(this.noSearch_do, .1, {
                alpha: 0,
                onComplete: function() {
                    o.removeChild(o.noSearch_do)
                }
            }))
        }, this.positionNoSearchLabel = function() {
            this.isNoSearchFoundShowed_bl && (this.noSearch_do.setX(parseInt((this.stageWidth - this.noSearch_do.w) / 2)), a.menu_do.isShowed_bl && this.centerNoSearchFoundLabelWithMenu_bl ? this.noSearch_do.setY(parseInt((this.stageHeight - a.menu_do.menuOffsetBottom - this.noSearch_do.h) / 2)) : this.noSearch_do.setY(parseInt((this.stageHeight - this.noSearch_do.h) / 2)))
        }, this.setupLoadMoreButton = function() {
            FWDUGPMenuButton.setPrototype(), o.loadMoreButton_do = new FWDUGPMenuButton(s.loadMoreButtonLabel_str, s.loadMoreButtonBackgroundNormalClassName_str, s.loadMoreButtonBackgroundSelectedClassName_str, s.loadMoreButtonTextNormalClassName_str, s.loadMoreButtonTextSeectedClassName_str), this.loadMoreButton_do.setLabel(s.loadMoreButtonLabel_str), this.loadMoreButton_do.getStyle().zIndex = 20, this.loadMoreButton_do.addListener(FWDUGPMenuButton.MOUSE_UP, this.loadMoreButtonOnMouseUpHandler), this.hideLoadMoreButton(), this.thumbnailsHolder_do.addChild(this.loadMoreButton_do)
        }, this.loadMoreButtonOnMouseUpHandler = function() {
            o.hideLoadMoreButton(), o.loadMore()
        }, this.hideLoadMoreButton = function() {
            this.loadMoreButton_do && this.isLoadMoreButtonShowed_bl && (this.isLoadMoreButtonShowed_bl = !1, this.loadMoreButton_do.setVisible(!1))
        }, this.showLoadMoreButton = function() {
            this.loadMoreButton_do && !this.isLoadMoreButtonShowed_bl && (this.isLoadMoreButtonShowed_bl = !0, this.loadMoreButton_do.setVisible(!0), this.isMobile_bl || (this.loadMoreButton_do.setAlpha(0), FWDRLTweenMax.to(this.loadMoreButton_do, .6, {
                alpha: 1
            })), this.positionLoadMoreButton())
        }, this.hideOrShowLoadMoreButton = function() {
            o.allowToLoadMoreThumbnails() ? o.showLoadMoreButton() : o.hideLoadMoreButton()
        }, this.positionLoadMoreButton = function() {
            return this.isLoadMoreButtonShowed_bl && this.loadMoreButton_do ? (this.isMobile_bl || 0 == this.loadMoreButton_do.alpha ? (this.loadMoreButton_do.setX(this.totalWidth + this.loadMoreButtonOffsetLeft), this.loadMoreButton_do.setY(parseInt((this.stageHeight - this.loadMoreButton_do.h) / 2))) : FWDRLTweenMax.to(this.loadMoreButton_do, .5, {
                x: parseInt(this.totalWidth + this.loadMoreButtonOffsetLeft),
                y: parseInt((this.stageHeight - this.loadMoreButton_do.h) / 2)
            }), void(this.offsetTotalWidth = this.loadMoreButtonOffsetLeft + this.loadMoreButtonOffsetRight + this.loadMoreButton_do.w)) : void(this.offsetTotalWidth = 0)
        }, this.centerThumbnails = function(t) {
            o.currentThumbnailsFinalX = o.thumbnailsFinalX, o.isMobileScrollBarRunning_bl || o.isDragging_bl || (o.stageWidth >= o.totalWidth ? o.thumbnailsFinalX = Math.round((o.stageWidth - o.totalWidth) / 2) : o.thumbnailsFinalX > 0 ? o.thumbnailsFinalX = 0 : o.thumbnailsFinalX < o.stageWidth - o.totalWidth && (o.isLoadingMore_bl || (o.thumbnailsFinalX = o.stageWidth - o.totalWidth)), FWDRLTweenMax.killTweensOf(o.thumbnailsHolder_do), t ? FWDRLTweenMax.to(o.thumbnailsHolder_do, .3, {
                x: o.thumbnailsFinalX
            }) : o.thumbnailsHolder_do.setX(o.thumbnailsFinalX))
        }, o.addMouseWheelSupport = function() {
            o.screen.addEventListener ? (o.screen.addEventListener("mousewheel", o.mouseWheelDragHandler), o.screen.addEventListener("DOMMouseScroll", o.mouseWheelDragHandler)) : o.screen.attachEvent && o.screen.attachEvent("onmousewheel", o.mouseWheelDragHandler)
        }, o.removeMouseWheelSupport = function() {
            o.screen.removeEventListener ? (o.screen.removeEventListener("mousewheel", o.mouseWheelDragHandler), o.screen.removeEventListener("DOMMouseScroll", o.mouseWheelDragHandler)) : o.screen.detachEvent && o.screen.detachEvent("onmousewheel", o.mouseWheelDragHandler)
        }, o.mouseWheelDragHandler = function(t) {
            var e;
            if (!(o.totalWidth <= o.stageWidth || o.isDragging_bl)) {
                var e = t.detail || t.wheelDelta;
                return t.wheelDelta && (e *= -1), e > 0 ? o.vx -= 10 : 0 > e && (o.vx += 10), o.isMobileScrollBarRunning_bl || o.activateDragScrollBar(), t.preventDefault ? void t.preventDefault() : !1
            }
        }, this.setupDragScrollbar = function() {
            o.isMobile_bl ? o.hasPointerEvent_bl ? o.screen.addEventListener("MSPointerDown", o.mobileScrBarStartHandler) : o.screen.addEventListener("touchstart", o.mobileScrBarStartTest) : o.screen.addEventListener ? o.screen.addEventListener("mousedown", o.mobileScrBarStartHandler) : o.screen.attachEvent && o.screen.attachEvent("onmousedown", o.mobileScrBarStartHandler)
        }, this.mobileScrBarStartTest = function(e) {
            var i = FWDRLUtils.getViewportMouseCoordinates(e);
            o.lastPressedX = i.screenX, o.lastPressedY = i.screenY, t.addEventListener("touchmove", o.mobileScrBarMoveTest)
        }, this.mobileScrBarMoveTest = function(e) {
            if (1 == e.touches.length) {
                var i = FWDRLUtils.getViewportMouseCoordinates(e);
                o.mouseX = i.screenX, o.mouseY = i.screenY;
                var s = Math.atan2(o.mouseY - o.lastPressedY, o.mouseX - o.lastPressedX),
                    n = 180 * Math.abs(s) / Math.PI;
                n > 120 || 60 > n || a.isFullScreen_bl ? (e.preventDefault(), o.mobileScrBarStartHandler(e), t.removeEventListener("touchmove", o.mobileScrBarMoveTest)) : (o.disableThumbClick_bl = !0, t.addEventListener("touchend", o.mobileScrBarEndTest))
            }
        }, this.mobileScrBarEndTest = function(e) {
            t.removeEventListener("touchmove", o.mobileScrBarMoveTest), t.removeEventListener("touchend", o.mobileScrBarEndTest)
        }, this.mobileScrBarStartHandler = function(e) {
            if (!(o.stageWidth > o.totalWidth)) {
                e.preventDefault && e.preventDefault();
                var i = FWDRLUtils.getViewportMouseCoordinates(e);
                o.stageWidth < o.totalWidth && (o.isDragging_bl = !0, o.lastPressedX = i.screenX, o.setOnceDumySizeOnMove_bl = !0, o.vx = 0, o.thumbnailsFinalX = o.thumbnailsHolder_do.getX(), clearTimeout(o.disableThumbClickDelayId_to), o.activateDragScrollBar()), o.isMobile_bl ? o.hasPointerEvent_bl ? (t.addEventListener("MSPointerUp", o.mobileScrBarEndHandler), t.addEventListener("MSPointerMove", o.mobileScrBarMoveHandler)) : (t.addEventListener("touchend", o.mobileScrBarEndHandler), t.addEventListener("touchmove", o.mobileScrBarMoveHandler)) : t.addEventListener ? (t.addEventListener("mouseup", o.mobileScrBarEndHandler), t.addEventListener("mousemove", o.mobileScrBarMoveHandler)) : document.attachEvent && (document.attachEvent("onmouseup", o.mobileScrBarEndHandler), document.attachEvent("onmousemove", o.mobileScrBarMoveHandler))
            }
        }, this.mobileScrBarMoveHandler = function(t) {
            if (t.preventDefault && t.preventDefault(), !(o.stageWidth > o.totalWidth)) {
                var e = FWDRLUtils.getViewportMouseCoordinates(t);
                if (e.screenX != o.lastPressedX) {
                    var i = e.screenX - o.lastPressedX;
                    o.disableThumbClick_bl = !0, (o.setOnceDumySizeOnMove_bl && !o.isMobile_bl || o.setOnceDumySizeOnMove_bl && o.hasPointerEvent_bl) && (o.dumy_do.setWidth(o.stageWidth), o.dumy_do.setHeight(o.stageHeight), o.curThumbnail_do && o.curThumbnail_do.hideContent(), o.curSelectedThumbnail_do, o.setOnceDumySizeOnMove_bl = !1), o.thumbnailsFinalX += i, o.thumbnailsFinalX = Math.round(o.thumbnailsFinalX), !o.ieOldMoveTest_bl && FWDRLUtils.isIE ? (clearInterval(o.ieOldMoveTestId_int), o.ieOldMoveTestId_int = setInterval(o.updateThumbnailsPosition, 16), o.ieOldMoveTest_bl = !0) : FWDRLUtils.isIE || o.thumbnailsHolder_do.setX(o.thumbnailsFinalX), o.lastPressedX = e.screenX, o.vx = 2 * i
                }
            }
        }, this.updateThumbnailsPosition = function() {
            o.thumbnailsHolder_do.setX(o.thumbnailsFinalX)
        }, this.mobileScrBarEndHandler = function(e) {
            clearInterval(o.ieOldMoveTestId_int), o.ieOldMoveTest_bl = !1, o.isDragging_bl = !1, o.disableThumbClickDelayId_to = setTimeout(function() {
                o.disableThumbClick_bl = !1
            }, 100), (!o.isMobile_bl || o.hasPointerEvent_bl) && (o.dumy_do.setWidth(0), o.dumy_do.setHeight(0)), o.isMobile_bl ? o.hasPointerEvent_bl ? (t.removeEventListener("MSPointerUp", o.mobileScrBarEndHandler), t.removeEventListener("MSPointerMove", o.mobileScrBarMoveHandler)) : (t.removeEventListener("touchend", o.mobileScrBarEndHandler), t.removeEventListener("touchmove", o.mobileScrBarMoveHandler)) : t.removeEventListener ? (t.removeEventListener("mouseup", o.mobileScrBarEndHandler), t.removeEventListener("mousemove", o.mobileScrBarMoveHandler)) : document.detachEvent && (document.detachEvent("onmouseup", o.mobileScrBarEndHandler), document.detachEvent("onmousemove", o.mobileScrBarMoveHandler))
        }, this.updateMobileScrollBar = function() {
            o.isDragging_bl || (o.stageWidth <= o.totalWidth && (o.vx *= o.friction, o.thumbnailsFinalX += o.vx, o.thumbnailsFinalX > 0 ? (o.vx2 = .3 * (0 - o.thumbnailsFinalX), o.vx *= o.friction, o.thumbnailsFinalX += o.vx2) : o.thumbnailsFinalX < o.stageWidth - o.totalWidth && (o.vx2 = .3 * (o.stageWidth - o.totalWidth - o.thumbnailsFinalX), o.vx *= o.friction, o.thumbnailsFinalX += o.vx2), o.thumbnailsFinalX < o.stageWidth - o.totalWidth && "loadmoreonscroll" == o.thumbnailLoadingType_str && !o.isLoadingMore_bl && o.allowToLoadMoreThumbnails() && (clearTimeout(this.loadInifiniteId_to), this.loadInifiniteId_to = setTimeout(function() {
                o.loadMore()
            }, 500))), Math.abs(o.vx) < .01 && o.deactivateDragScrollBar(), o.thumbnailsHolder_do.setX(Math.round(o.thumbnailsFinalX))), o.stageWidth > o.totalWidth && o.deactivateDragScrollBar()
        }, this.activateDragScrollBar = function() {
            o.stageWidth > o.totalWidth || o.isMobileScrollBarRunning_bl || (o.isMobileScrollBarRunning_bl = !0, FWDRLTweenMax.killTweensOf(o.thumbnailsHolder_do), clearInterval(o.updateMobileScrollBarId_int), o.updateMobileScrollBarId_int = setInterval(o.updateMobileScrollBar, 16))
        }, this.deactivateDragScrollBar = function() {
            o.isMobileScrollBarRunning_bl = !1, o.vx = o.vx2 = 0, clearInterval(o.updateMobileScrollBarId_int), t.removeEventListener && t.removeEventListener("touchmove", o.mobileScrBarMoveTest)
        }, this.init()
    };
    e.setPrototype = function() {
        e.prototype = new FWDRLDisplayObject("div", "relative")
    }, e.OPEN_LIGHTBOX = "openLightbox", e.CATEGORY_UPDATE = "categoryUpdate", e.ERROR = "error", e.prototype = null, t.FWDUGPFlexibleHorizontalThumbnailsManager = e
}(window),
function(t) {
    var e = function(s, a) {
        var o = this;
        e.prototype;
        this.sourcePlaylist_ar = s.playlist_ar.playlistItems, this.originalDataThumbnails_ar = [], this.dataThumbnails_ar = [], this.tempPlaylist_ar, this.columnHeights_ar = [], this.loadMoreCatsData_ar = [], this.catId_ar = s.startAtCategory_ar, this.loadMoreButton_do, this.curDataThumbnail, this.thumbnailLoadingType_str = s.thumbnailLoadingType_str, this.totalLoadedThumbnails = 0, this.loadMoreButtonOffsetTop = s.loadMoreButtonOffsetTop, this.loadMoreButtonOffsetBottom = s.loadMoreButtonOffsetBottom, this.thumbnailsPerSet = s.howManyThumbnailsToDisplayPerSet, this.thumbsHOffset = s.thumbnailsHorizontalOffset, this.thumbsVOffset = s.thumbnailsVerticalOffset, this.offsetTotalHeight = 0, this.maxH = 0, this.thumbOffsetX = 0, this.catId = s.startAtCategory, this.stageWidth = 0, this.prevStageWidth = 0, this.thumbnailMaxWidth = s.thumbnailMaxWidth, this.thumbnailMaxHeight = s.thumbnailMaxHeight, this.leftWidth = 0, this.thumbWidth, this.thumbHeight, this.thumbsHSpace = s.horizontalSpaceBetweenThumbnails, this.thumbsVSpace = s.verticalSpaceBetweenThumbnails, this.countLoadedThumbs = 0, this.borderSize = s.thumbnailBorderSize, this.totalThumbnails = this.sourcePlaylist_ar.length, this.tempTotalThumbnails = this.sourcePlaylist_ar.length, this.totalOriginalThumbnails = this.sourcePlaylist_ar.length, this.globalX = 0, this.globalY = 0, this.searchValue = "", this.catChanging_to, this.arangeFaterTweenId_to, this.updateSearch_to, this.centerWithMenu_bl = s.centerNoSearchFoundLabelWithMenu_bl, this.isLoadAtTheEnd_bl = !1, this.isLoadMoreButtonShowed_bl = !0, this.isCatChanging_bl = !1, this.isFirstThumbnailLoaded_bl = !1, this.firstThumbnailShowed_bl = !1, this.animateParent_bl = s.animateParent_bl, this.hasExtraText_bl = s.hasExtraText_bl, this.isVerticalType_bl = s.isVerticalType_bl, this.showAllCategories_bl = s.showAllCategories_bl, this.totalCats = this.showAllCategories_bl ? s.categories_ar.length - 1 : s.categories_ar.length, this.isMobile_bl = FWDRLUtils.isMobile, this.init = function() {
            this.setOverflow("visible"), this.setBkColor(a.backgroundColor_str), this.setupThumbnailsData(), "loadmorewithbutton" == o.thumbnailLoadingType_str ? this.setupLoadMoreButton() : "loadmoreonscroll" == this.thumbnailLoadingType_str && this.setupLoadMoreOnScroll(), this.filterCategories(), this.startGetMousePosition(), this.setupNoSearch()
        }, this.resizeAndPosition = function() {
            o.stageWidth = a.stageWidth, o.setDataForResize(), o.positionThumbnailsAndMain()
        }, this.startGetMousePosition = function() {
            t.addEventListener ? (o.isMobile_bl || t.addEventListener("touchstart", this.getMousePosition), t.addEventListener("mousemove", this.getMousePosition)) : document.attachEvent && document.attachEvent("onmousemove", this.getMousePosition)
        }, this.getMousePosition = function(t) {
            var e = FWDRLUtils.getViewportMouseCoordinates(t);
            o.isMobile_bl || (o.globalX = e.screenX, o.globalY = e.screenY)
        }, this.setupThumbnailsData = function() {
            for (var t, e = [], i = 0; i < this.totalThumbnails; i++) t = {}, t.thumbnail = void 0, t.id = i, t.catId = this.sourcePlaylist_ar[i].catId, this.originalDataThumbnails_ar[i] = t, this.dataThumbnails_ar[i] = t;
            for (var i = 0; i < this.totalCats; i++) e[i] = 0;
            for (var i = 0; i < this.totalThumbnails; i++) e[this.dataThumbnails_ar[i].catId]++;
            for (var i = 0; i < this.totalCats; i++) t = {}, t.loaded = 0,
                t.limit = 0, t.total = e[i], t.isSelected = !1, this.loadMoreCatsData_ar[i] = t
        }, this.search = function(t) {
            o.searchValue = t, clearTimeout(o.updateSearch_to), o.updateSearch_to = setTimeout(function() {
                o.filterCategories()
            }, 200)
        }, this.getThumbnail = function(t, e) {
            var i = {};
            return i.parent = this, i.id = e, i.catId = t, i.presetType_str = s.presetType_str, i.backgroundColor_str = s.thumbnailBackgroundColor_str, i.borderNormalColor_str = this.sourcePlaylist_ar[e].thumbnailBorderNormalColor || s.thumbnailBorderNormalColor_str, i.borderSelectedColor_str = this.sourcePlaylist_ar[e].thumbnailBorderSelectedColor || s.thumbnailBorderSelectedColor_str, i.borderSize = s.thumbnailBorderSize, i.borderRadius = s.thumbnailBorderRadius, i.thumbnailOverlayColor_str = this.sourcePlaylist_ar[e].thumbnailOverlayColor || s.thumbnailOverlayColor_str, i.thumbnailOverlayOpacity = s.thumbnailOverlayOpacity, i.spaceBetweenTextAndIcons = s.spaceBetweenTextAndIcons, i.extraButtonUrl_str = this.sourcePlaylist_ar[e].extraButtonUrl_str, i.extraButtonUrlTarget_str = this.sourcePlaylist_ar[e].extraButtonUrlTarget_str, i.thumbIconPathN_str = this.sourcePlaylist_ar[e].thumbIconPathN_str, i.thumbIconPathS_str = this.sourcePlaylist_ar[e].thumbIconPathS_str, i.thumbnailIconWidth = s.thumbnailIconWidth, i.thumbnailIconHeight = s.thumbnailIconHeight, i.linkIconPathN_str = s.linkIconPathN_str, i.linkIconPathS_str = s.linkIconPathS_str, i.spaceBetweenThumbanilIcons = s.spaceBetweenThumbanilIcons, i.hideAndShowTransitionType_str = s.hideAndShowTransitionType_str, i.textVerticalAlign_str = s.textVerticalAlign_str, i.imageTransitionDirection_str = s.imageTransitionDirection_str, i.thumbanilBoxShadow_str = s.thumbanilBoxShadow_str, i.textAnimType_str = s.textAnimType_str, i.disableThumbnails_bl = s.disableThumbnails_bl, i.useIconButtons_bl = s.useIconButtons_bl, i.alt_str = this.sourcePlaylist_ar[e].alt_str, i.linkUrl_str = this.sourcePlaylist_ar[e].url, i.linkTarget_str = this.sourcePlaylist_ar[e].target, i.contentOffsetY = s.contentOffsetY, i.buttonsOffest = s.buttonsOffestY, i.isVerticalType_bl = s.isVerticalType_bl, i.isDisabled_bl = this.sourcePlaylist_ar[e].disabled_bl, i.htmlContent1_str = this.sourcePlaylist_ar[e].htmlContent1_str, i.htmlContent2_str = this.sourcePlaylist_ar[e].htmlContent2_str, i.htmlExtraContent_str = this.sourcePlaylist_ar[e].htmlExtraContent_str, FWDUGPThumbnail.setPrototype(), thumbnail = new FWDUGPThumbnail(i), thumbnail.addListener(FWDUGPThumbnail.MOUSE_UP, this.thumbanilOnMouseUpHandler), this.addChild(thumbnail), thumbnail
        }, this.thumbanilOnMouseUpHandler = function(i) {
            for (var a = i.id, n = i.id, l = i.extraButton ? "extraButtonLink" : o.sourcePlaylist_ar[a].type_str, r = 0; r < o.totalOriginalThumbnails; r++) n > r && (o.sourcePlaylist_ar[r].type_str == FWDUGP.NONE || o.sourcePlaylist_ar[r].type_str == FWDUGP.LINK) && (a -= 1);
            "extraButtonLink" == l ? s.isPintrest_bl ? PDK.pin(o.sourcePlaylist_ar[i.id].thumbnailPath_str, o.sourcePlaylist_ar[i.id].rawDescription_str, o.sourcePlaylist_ar[i.id].pinLInk_str, function() {}) : t.open(o.dataThumbnails_ar[i.id].thumbnail.extraButtonUrl_str, o.dataThumbnails_ar[i.id].thumbnail.extraButtonUrlTarget_str) : "link" == l ? t.open(o.dataThumbnails_ar[i.id].thumbnail.linkUrl_str, o.dataThumbnails_ar[i.id].thumbnail.linkTarget_str) : o.dispatchEvent(e.OPEN_LIGHTBOX, {
                id: a
            })
        }, this.updateCategory = function(t) {
            this.catId_ar != t && (this.catId_ar = t, this.filterCategories(), this.positionThumbnailsAndMain(), this.dispatchEvent(e.CATEGORY_UPDATE))
        }, this.stopToLoadImage = function() {
            clearTimeout(this.loadThumbnailId_to), o.image_img && (o.image_img.onerror = null, o.image_img.onload = null)
        }, this.startToLoadImage = function(t) {
            o.image_img = new Image, o.image_img.onerror = o.onImageLoadErrorHandler, o.image_img.onload = o.onImageLoadHandler, o.image_img.src = t
        }, this.loadThumbImage = function() {
            var t;
            o.stopToLoadImage();
            for (var e = 0; e < o.totalCats; e++)
                if (o.loadMoreCatsData_ar[e].isSelected && o.loadMoreCatsData_ar[e].loaded < o.loadMoreCatsData_ar[e].limit) {
                    t = e;
                    break
                }
            for (var e = 0; e < o.tempTotalThumbnails && (o.curDataThumbnail = o.tempPlaylist_ar[e], o.curDataThumbnail.catId != t || o.curDataThumbnail.thumbnail); e++);
            o.startToLoadImage(o.sourcePlaylist_ar[o.curDataThumbnail.id].thumbnailPath_str)
        }, this.onImageLoadErrorHandler = function(t) {
            var i = "Thumbnail image can't be loaded, probably the path is incorrect <font color='#FFFFFF'>" + o.sourcePlaylist_ar[o.curDataThumbnail.id].thumbnailPath_str + "</font>";
            o.dispatchEvent(e.ERROR, {
                text: i
            })
        }, this.onImageLoadHandler = function(t) {
            var e = o.getThumbnail(o.curDataThumbnail.catId, o.curDataThumbnail.id);
            o.loadMoreCatsData_ar[o.curDataThumbnail.catId].loaded++, o.curDataThumbnail.thumbnail = e, o.originalDataThumbnails_ar[o.curDataThumbnail.id].thumbnail = e, e.hasImg_bl = !0, e.originalWidth = o.image_img.width, e.originalHeight = o.image_img.height, e.addImage(o.image_img), o.countLoadedThumbs++, o.isFirstThumbnailLoaded_bl || setTimeout(function() {
                o.firstThumbnailShowed_bl = !0
            }, 200), o.updateCurThumbnails(), o.positionThumbnailsAndMain()
        }, this.updateCatsLimits = function() {
            var t = o.thumbnailsPerSet,
                e = 0;
            if (this.showAllCategories_bl && 0 == this.catId_ar[0]) {
                if (0 == this.loadMoreCatsData_ar[0].limit)
                    for (; t > 0 && e < this.totalCats;) this.loadMoreCatsData_ar[e].limit + t > this.loadMoreCatsData_ar[e].total ? (t -= this.loadMoreCatsData_ar[e].total - this.loadMoreCatsData_ar[e].limit, this.loadMoreCatsData_ar[e].limit = this.loadMoreCatsData_ar[e].total) : (this.loadMoreCatsData_ar[e].limit += t, t = 0), e++
            } else
                for (var i = 0; i < this.totalCats; i++) this.loadMoreCatsData_ar[i].isSelected && this.loadMoreCatsData_ar[i].limit < this.thumbnailsPerSet && (this.loadMoreCatsData_ar[i].limit = Math.min(this.loadMoreCatsData_ar[i].total, this.thumbnailsPerSet));
            this.totalThumbnailsLimit = 0;
            for (var i = 0; i < this.totalCats; i++) this.loadMoreCatsData_ar[i].isSelected && (this.totalThumbnailsLimit += this.loadMoreCatsData_ar[i].limit)
        }, this.allowToLoadMoreThumbnails = function() {
            return this.totalLoadedThumbnails == this.totalThumbnailsLimit && this.totalLoadedThumbnails < this.tempTotalThumbnails ? !0 : !1
        }, this.loadMore = function() {
            for (var t = o.thumbnailsPerSet, e = 0; t > 0 && e < o.totalCats;) o.loadMoreCatsData_ar[e].isSelected && (o.loadMoreCatsData_ar[e].limit + t > o.loadMoreCatsData_ar[e].total ? (t -= o.loadMoreCatsData_ar[e].total - o.loadMoreCatsData_ar[e].limit, o.loadMoreCatsData_ar[e].limit = o.loadMoreCatsData_ar[e].total) : (o.loadMoreCatsData_ar[e].limit += t, t = 0)), e++;
            this.totalThumbnailsLimit = 0;
            for (var i = 0; i < this.totalCats; i++) this.loadMoreCatsData_ar[i].isSelected && (this.totalThumbnailsLimit += this.loadMoreCatsData_ar[i].limit);
            o.loadThumbImage()
        }, this.updateCatsData = function() {
            var t, e, i = [],
                s = [];
            o.loadMoreCatsData_ar = [];
            for (var a = 0; a < o.totalCats; a++) i[a] = 0, s[a] = 0;
            for (var a = 0; a < o.totalThumbnails; a++) t = o.dataThumbnails_ar[a], i[t.catId]++, t.thumbnail && s[t.catId]++;
            for (var a = 0; a < o.totalCats; a++) e = {}, e.loaded = s[a], e.limit = s[a], e.total = i[a], e.isSelected = !1, o.loadMoreCatsData_ar[a] = e
        }, this.filterCategories = function() {
            var t, e, i = 0;
            this.tempPlaylist_ar = [], this.playlist_ar = [], this.dataThumbnails_ar = [], o.stopToLoadImage();
            for (var s = 0; s < o.sourcePlaylist_ar.length; s++) t = o.originalDataThumbnails_ar[s], -1 != o.sourcePlaylist_ar[s].titleText_str.toLowerCase().indexOf(o.searchValue) ? o.dataThumbnails_ar.push(t) : t.thumbnail && t.thumbnail.hide(!0);
            if (o.totalThumbnails = o.dataThumbnails_ar.length, this.updateCatsData(), this.showAllCategories_bl && (i = 1), this.showAllCategories_bl && 0 == o.catId_ar[0]) {
                for (s = 0; s < this.totalThumbnails; s++) t = this.dataThumbnails_ar[s], this.tempPlaylist_ar.push(t), t.thumbnail && (this.playlist_ar.push(t), t.thumbnail.show(!0));
                for (var s = 0; s < this.totalCats; s++) this.loadMoreCatsData_ar[s].isSelected = !0
            } else
                for (s = 0; s < this.totalThumbnails; s++) {
                    t = this.dataThumbnails_ar[s], e = !1;
                    for (var a = 0; a < this.totalCats; a++) t.catId == o.catId_ar[a] - i && (this.tempPlaylist_ar.push(t), t.thumbnail && this.playlist_ar.push(t), this.loadMoreCatsData_ar[o.catId_ar[a] - i].isSelected = !0, e = !0);
                    e ? t.thumbnail && t.thumbnail.show(!0) : t.thumbnail && t.thumbnail.hide(!0)
                }
            this.tempTotalThumbnails = this.tempPlaylist_ar.length, this.totalLoadedThumbnails = this.playlist_ar.length, 0 == this.tempTotalThumbnails ? (this.hasSearchResult_bl = !1, this.showNoSearch()) : (this.hasSearchResult_bl = !0, this.hideNoSearch()), this.updateCatsLimits(), this.totalLoadedThumbnails < this.totalThumbnailsLimit ? (clearTimeout(this.loadThumbnailId_to), this.loadThumbnailId_to = setTimeout(this.loadThumbImage, 300)) : (o.updateCurThumbnails(), o.positionThumbnailsAndMain()), "loadmorewithbutton" == o.thumbnailLoadingType_str && this.hideOrShowLoadMoreButton()
        }, this.updateCurThumbnails = function() {
            var t, e = 0;
            if (this.playlist_ar = [], this.showAllCategories_bl && (e = 1), this.showAllCategories_bl && 0 == o.catId_ar[0])
                for (i = 0; i < this.totalThumbnails; i++) t = this.dataThumbnails_ar[i], t.thumbnail && this.playlist_ar.push(t);
            else
                for (i = 0; i < this.totalThumbnails; i++) {
                    t = this.dataThumbnails_ar[i];
                    for (var s = 0; s < this.totalCats; s++) t.catId == o.catId_ar[s] - e && t.thumbnail && this.playlist_ar.push(t)
                }
            this.totalLoadedThumbnails = this.playlist_ar.length, this.totalLoadedThumbnails < this.totalThumbnailsLimit ? (clearTimeout(this.loadThumbnailId_to), this.hasExtraText_bl ? this.loadThumbnailId_to = setTimeout(this.loadThumbImage, 53) : this.loadThumbnailId_to = setTimeout(this.loadThumbImage, 10)) : this.hasExtraText_bl && (o.positionThumbnailWithExtraContent(), o.setFinalSize()), "loadmorewithbutton" == o.thumbnailLoadingType_str ? this.hideOrShowLoadMoreButton() : "loadmoreonscroll" == this.thumbnailLoadingType_str && this.loadInfinite()
        }, this.setDataForResize = function() {
            this.stageWidth && (this.prevStageWidth = this.stageWidth)
        }, this.positionThumbnailsAndMain = function() {
            this.hasExtraText_bl ? (o.setThumbsExtraTextWidth(), clearTimeout(this.resizeWithExtraContentId_to), this.resizeWithExtraContentId_to = setTimeout(function() {
                o.positionThumbnailWithExtraContent(), o.setFinalSize()
            }, 51)) : (this.positionThumbnails(), this.setFinalSize())
        }, this.setFinalSize = function() {
            o.setWidth(o.stageWidth), o.positionLoadMoreButton(), o.totalHeight += o.offsetTotalHeight, o.hasSearchResult_bl || (o.totalHeight = o.thumbnailMaxHeight + 2 * o.borderSize, o.positionNoSearchLabel()), o.prevTotalHeight != o.totalHeight && (o.firstThumbnailShowed_bl && o.animateParent_bl && !o.isMobile_bl ? (FWDRLTweenMax.to(o, .7, {
                h: o.totalHeight,
                ease: Quart.easeOut
            }), clearTimeout(o.arangeFaterTweenId_to), o.arangeFaterTweenId_to = setTimeout(function() {
                o.stageWidth != a.stageContainer.offsetWidth && a.onResizeHandler()
            }, 700)) : o.setHeight(o.totalHeight)), a.setFinalSize(), a.stageWidth = a.stageContainer.offsetWidth, o.prevTotalHeight = o.totalHeight, o.stageWidth != a.stageWidth && a.onResizeHandler()
        }, this.positionThumbnails = function() {
            var t, e, i, s, a, n, l = 0,
                r = 0,
                h = 0,
                d = 0;
            n = o.stageWidth - 2 * o.thumbsHOffset, s = o.thumbnailMaxHeight + 2 * o.borderSize;
            for (var u = 0; u < o.playlist_ar.length; u++) {
                a = o.playlist_ar[u].thumbnail;
                var c = a.imageOriginalW / a.imageOriginalH;
                if (i = Math.floor((s - 2 * o.borderSize) * c + 2 * o.borderSize), 0 == r ? (h += i, t = o.thumbsHOffset) : (h += i + o.thumbsHSpace, t = t + d + o.thumbsHSpace), r++, d = i, e = l * (s + o.thumbsVSpace) + o.thumbsVOffset, h == n) h = 0, r = 0, l++;
                else if (h > n) {
                    for (var _, m, b = u - r + 1, f = [], p = [], g = h - n, T = 0, S = 0, y = 0; r - 1 > y; y++) _ = o.playlist_ar[b + y].thumbnail, T += _.finalW;
                    T += i;
                    for (var y = 0; r - 1 > y; y++) _ = o.playlist_ar[b + y].thumbnail, p[y] = Math.floor(_.finalW - g * (_.finalW / T)), S += p[y];
                    if (p[r - 1] = Math.floor(i - g * (i / T)), S += p[r - 1], S += o.thumbsHSpace * (r - 1), m = n - S, m > 0)
                        for (var y = 0; m > y; y++) _ = o.playlist_ar[b + y].thumbnail, p[y]++;
                    f[0] = o.thumbsHOffset;
                    for (var y = 1; r > y; y++) _ = o.playlist_ar[b + y].thumbnail, f[y] = f[y - 1] + p[y - 1] + o.thumbsHSpace;
                    for (var y = 0; r - 1 > y; y++) _ = o.playlist_ar[b + y].thumbnail, _.finalW = p[y], _.finalX = f[y];
                    i = p[r - 1], t = f[r - 1], h = 0, r = 0, l++
                }
                a.finalW = i, a.finalH = s, a.finalX = t, a.finalY = e
            }
            for (var u = 0; u < o.totalLoadedThumbnails; u++) o.playlist_ar[u].thumbnail.resizeAndPosition();
            a ? o.totalHeight = e + s + o.thumbsVOffset : o.totalHeight = 0
        }, this.setThumbsExtraTextWidth = function() {
            var t, e, i, s, a = 0,
                n = 0,
                l = 0;
            s = o.stageWidth - 2 * o.thumbsHOffset;
            for (var r = 0; r < o.totalLoadedThumbnails; r++) {
                i = o.playlist_ar[r].thumbnail, e = o.thumbnailMaxHeight + 2 * o.borderSize;
                var h = i.imageOriginalW / i.imageOriginalH;
                if (t = Math.floor((e - 2 * o.borderSize) * h + 2 * o.borderSize), l += 0 == n ? t : t + o.thumbsHSpace, n++, l == s) l = 0, n = 0, a++;
                else if (l > s) {
                    for (var d, u, c = r - n + 1, _ = [], m = l - s, b = 0, f = 0, p = 0; n - 1 > p; p++) d = o.playlist_ar[c + p].thumbnail, b += d.finalW;
                    b += t;
                    for (var p = 0; n - 1 > p; p++) d = o.playlist_ar[c + p].thumbnail, _[p] = Math.floor(d.finalW - m * (d.finalW / b)), f += _[p];
                    if (_[n - 1] = Math.floor(t - m * (t / b)), f += _[n - 1], f += o.thumbsHSpace * (n - 1), u = s - f, u > 0)
                        for (var p = 0; u > p; p++) d = o.playlist_ar[c + p].thumbnail, _[p]++;
                    for (var p = 0; n - 1 > p; p++) d = o.playlist_ar[c + p].thumbnail, d.finalW = _[p], d.hasExtraText_bl && d.textHolder_do.setWidth(d.finalW - 2 * o.borderSize);
                    t = _[n - 1], l = 0, n = 0, a++
                }
                i.finalW = t, i.hasExtraText_bl && i.textHolder_do.setWidth(t - 2 * o.borderSize)
            }
        }, this.positionThumbnailWithExtraContent = function() {
            var t, e, i, s, a, n, l, r = 0,
                h = 0,
                d = 0,
                u = 0,
                c = o.thumbsVOffset,
                _ = 0;
            l = o.stageWidth - 2 * o.thumbsHOffset;
            for (var m = 0; m < o.totalLoadedThumbnails; m++) {
                a = o.playlist_ar[m].thumbnail, s = o.thumbnailMaxHeight + 2 * o.borderSize, a.hasExtraText_bl && (a.addToHeight = a.text3_do.getHeight());
                var b = a.imageOriginalW / a.imageOriginalH;
                if (i = Math.floor((s - 2 * o.borderSize) * b + 2 * o.borderSize), 0 == h ? (d += i, t = o.thumbsHOffset) : (d += i + o.thumbsHSpace, t = t + u + o.thumbsHSpace), h++, u = i, a.addToHeight > _ && (_ = a.addToHeight), n = _, e = c, d == l) c += s + _ + o.thumbsVSpace, d = 0, h = 0, _ = 0, r++;
                else if (d > l) {
                    for (var f, p, g = m - h + 1, T = [], S = [], y = d - l, M = 0, v = 0, C = 0; h - 1 > C; C++) f = o.playlist_ar[g + C].thumbnail, M += f.finalW;
                    M += i;
                    for (var C = 0; h - 1 > C; C++) f = o.playlist_ar[g + C].thumbnail, S[C] = Math.floor(f.finalW - y * (f.finalW / M)), v += S[C];
                    if (S[h - 1] = Math.floor(i - y * (i / M)), v += S[h - 1], v += o.thumbsHSpace * (h - 1), p = l - v, p > 0)
                        for (var C = 0; p > C; C++) f = o.playlist_ar[g + C].thumbnail, S[C]++;
                    T[0] = o.thumbsHOffset;
                    for (var C = 1; h > C; C++) f = o.playlist_ar[g + C].thumbnail, T[C] = T[C - 1] + S[C - 1] + o.thumbsHSpace;
                    for (var C = 0; h - 1 > C; C++) f = o.playlist_ar[g + C].thumbnail, f.finalW = S[C], f.finalX = T[C];
                    i = S[h - 1], t = T[h - 1], c += s + _ + o.thumbsVSpace, d = 0, h = 0, _ = 0, r++
                }
                a.finalW = i, a.finalH = s + a.addToHeight, a.finalX = t, a.finalY = e
            }
            for (var m = 0; m < o.totalLoadedThumbnails; m++) o.playlist_ar[m].thumbnail.resizeAndPosition();
            a ? o.totalHeight = e + s + n + o.thumbsVOffset : o.totalHeight = 0
        }, this.setupNoSearch = function() {
            this.noSearch_do = new FWDRLDisplayObject("div"), this.noSearch_do.setOverflow("visible"), this.noSearch_do.setDisplay("inline-block"), this.noSearch_do.getStyle().fontSmoothing = "antialiased", this.noSearch_do.getStyle().webkitFontSmoothing = "antialiased", this.noSearch_do.getStyle().textRendering = "optimizeLegibility", this.noSearch_do.getStyle().whiteSpace = "nowrap", this.noSearch_do.setBackfaceVisibility(), this.noSearch_do.getStyle().padding = "", this.noSearch_do.getStyle().margin = "", this.noSearch_do.screen.className = s.searchNotFoundClassName_str, this.noSearch_do.hasTransform3d_bl = !1, this.noSearch_do.hasTransform2d_bl = !1, this.noSearch_do.setAlpha(0), this.noSearch_do.setInnerHTML(s.searchNotFoundLabel_str), this.addChild(this.noSearch_do), setTimeout(function() {
                o.noSearch_do.w = o.noSearch_do.getWidth(), o.noSearch_do.h = o.noSearch_do.getHeight(), o.removeChild(o.noSearch_do)
            }, 70)
        }, this.showNoSearch = function() {
            this.isNoSearchFoundShowed_bl || (this.isNoSearchFoundShowed_bl = !0, this.addChild(this.noSearch_do), this.positionNoSearchLabel(), FWDRLTweenMax.killTweensOf(this.noSearch_do), FWDRLTweenMax.to(this.noSearch_do, .1, {
                alpha: 1,
                yoyo: !0,
                repeat: 8
            }))
        }, this.hideNoSearch = function() {
            this.isNoSearchFoundShowed_bl && (this.isNoSearchFoundShowed_bl = !1, FWDRLTweenMax.killTweensOf(this.noSearch_do), FWDRLTweenMax.to(this.noSearch_do, .1, {
                alpha: 0,
                onComplete: function() {
                    o.removeChild(o.noSearch_do)
                }
            }))
        }, this.positionNoSearchLabel = function() {
            this.isNoSearchFoundShowed_bl && (this.noSearch_do.setX(parseInt((this.stageWidth - this.noSearch_do.w) / 2)), a.menu_do.isShowed_bl && this.centerWithMenu_bl ? this.noSearch_do.setY(parseInt((this.totalHeight - a.menu_do.menuOffsetBottom - this.noSearch_do.h) / 2)) : this.noSearch_do.setY(parseInt((this.totalHeight - this.noSearch_do.h) / 2)))
        }, this.setupLoadMoreButton = function() {
            FWDUGPMenuButton.setPrototype(), o.loadMoreButton_do = new FWDUGPMenuButton(s.loadMoreButtonLabel_str, s.loadMoreButtonBackgroundNormalClassName_str, s.loadMoreButtonBackgroundSelectedClassName_str, s.loadMoreButtonTextNormalClassName_str, s.loadMoreButtonTextSeectedClassName_str), this.loadMoreButton_do.setLabel(s.loadMoreButtonLabel_str), this.loadMoreButton_do.getStyle().zIndex = 20, this.loadMoreButton_do.addListener(FWDUGPMenuButton.MOUSE_UP, this.loadMoreButtonOnMouseUpHandler), this.hideLoadMoreButton(), this.addChild(this.loadMoreButton_do)
        }, this.loadMoreButtonOnMouseUpHandler = function() {
            o.hideLoadMoreButton(), o.loadMore()
        }, this.hideLoadMoreButton = function() {
            this.loadMoreButton_do && this.isLoadMoreButtonShowed_bl && (this.isLoadMoreButtonShowed_bl = !1, this.loadMoreButton_do.setVisible(!1))
        }, this.showLoadMoreButton = function() {
            this.loadMoreButton_do && !this.isLoadMoreButtonShowed_bl && (this.isLoadMoreButtonShowed_bl = !0, this.loadMoreButton_do.setVisible(!0), this.isMobile_bl || (this.loadMoreButton_do.setAlpha(0), FWDRLTweenMax.to(this.loadMoreButton_do, .6, {
                alpha: 1
            })), this.positionLoadMoreButton())
        }, this.hideOrShowLoadMoreButton = function() {
            o.allowToLoadMoreThumbnails() ? o.showLoadMoreButton() : o.hideLoadMoreButton()
        }, this.positionLoadMoreButton = function() {
            return this.isLoadMoreButtonShowed_bl && this.loadMoreButton_do ? (this.isMobile_bl || 0 == this.loadMoreButton_do.alpha ? (this.loadMoreButton_do.setX(parseInt((this.stageWidth - this.loadMoreButton_do.w) / 2)), this.loadMoreButton_do.setY(this.totalHeight + this.loadMoreButtonOffsetTop)) : FWDRLTweenMax.to(this.loadMoreButton_do, .5, {
                x: parseInt((this.stageWidth - this.loadMoreButton_do.w) / 2),
                y: parseInt(this.totalHeight + this.loadMoreButtonOffsetTop)
            }), void(this.offsetTotalHeight = this.loadMoreButtonOffsetTop + this.loadMoreButtonOffsetBottom + this.loadMoreButton_do.h)) : void(this.offsetTotalHeight = 0)
        }, this.setupLoadMoreOnScroll = function() {
            t.addEventListener ? t.addEventListener("scroll", this.onScrollHandler) : t.attachEvent && t.attachEvent("onscroll", this.onScrollHandler)
        }, this.onScrollHandler = function() {
            o.loadInfinite(), o.totalLoadedThumbnails == o.totalThumbnails && (t.removeEventListener ? t.removeEventListener("scroll", this.onScrollHandler) : t.detachEvent && t.detachEvent("onscroll", this.onScrollHandler))
        }, this.loadInfinite = function() {
            if (this.allowToLoadMoreThumbnails()) {
                var t = this.playlist_ar[this.playlist_ar.length - 1].thumbnail;
                clearTimeout(this.loadInifiniteId_to), this.loadInifiniteId_to = setTimeout(function() {
                    t.getGlobalY() + t.finalH < FWDRLUtils.getViewportSize().h && o.loadMore()
                }, 500)
            }
        }, this.init()
    };
    e.setPrototype = function() {
        e.prototype = new FWDRLDisplayObject("div", "relative")
    }, e.OPEN_LIGHTBOX = "openLightbox", e.CATEGORY_UPDATE = "categoryUpdate", e.ERROR = "error", e.prototype = null, t.FWDUGPFlexibleVerticalThumbnailsManager = e
}(window),
function(t) {
    var e = function(s, a) {
        var o = this;
        e.prototype;
        this.sourcePlaylist_ar = s.playlist_ar.playlistItems, this.originalDataThumbnails_ar = [], this.dataThumbnails_ar = [], this.tempPlaylist_ar, this.rowHeights_ar = [], this.loadMoreCatsData_ar = [], this.catId_ar = s.startAtCategory_ar, this.loadMoreButton_do, this.curDataThumbnail, this.thumbnailLoadingType_str = s.thumbnailLoadingType_str, this.handGrabPath_str = s.handGrabPath_str, this.handMovePath_str = s.handMovePath_str, this.currentThumbnailsFinalX = 0, this.totalLoadedThumbnails = 0, this.loadMoreButtonOffsetLeft = s.loadMoreButtonOffsetTop, this.loadMoreButtonOffsetRight = s.loadMoreButtonOffsetBottom, this.thumbnailsPerSet = s.howManyThumbnailsToDisplayPerSet, this.thumbsHOffset = s.thumbnailsHorizontalOffset, this.thumbsVOffset = s.thumbnailsVerticalOffset, this.offsetTotalHeight = 0, this.maxH = 0, this.thumbOffsetY = 0, this.catId = s.startAtCategory, this.stageWidth = 0, this.prevStageWidth = 0, this.thumbnailMaxWidth = s.thumbnailMaxWidth, this.thumbnailMaxHeight = s.thumbnailMaxHeight, this.leftWidth = 0, this.thumbWidth, this.thumbHeight, this.thumbsHSpace = s.horizontalSpaceBetweenThumbnails, this.thumbsVSpace = s.verticalSpaceBetweenThumbnails, this.countLoadedThumbs = 0, this.borderSize = s.thumbnailBorderSize, this.totalThumbnails = this.sourcePlaylist_ar.length, this.tempTotalThumbnails = this.sourcePlaylist_ar.length, this.totalOriginalThumbnails = this.sourcePlaylist_ar.length, this.globalX = 0, this.globalY = 0, this.leftHeight = 0, this.vx = 0, this.vx2 = 0, this.friction = .9, this.searchValue = "", this.catChanging_to, this.arangeFaterTweenId_to, this.updateSearch_to, this.centerWithMenu_bl = s.centerNoSearchFoundLabelWithMenu_bl, this.isMobileScrollBarRunning_bl = !1, this.isDragging_bl = !1, this.isLoadAtTheEnd_bl = !1, this.isLoadMoreButtonShowed_bl = !0, this.isCatChanging_bl = !1, this.isFirstThumbnailLoaded_bl = !1, this.firstThumbnailShowed_bl = !1, this.animateParent_bl = s.animateParent_bl, this.addMouseWheelSupport_bl = s.addMouseWheelSupport_bl, this.centerNoSearchFoundLabelWithMenu_bl = s.centerNoSearchFoundLabelWithMenu_bl, this.isVerticalType_bl = s.isVerticalType_bl, this.isLoadingMore_bl = !1, this.showAllCategories_bl = s.showAllCategories_bl, this.totalCats = this.showAllCategories_bl ? s.categories_ar.length - 1 : s.categories_ar.length, this.isMobile_bl = FWDRLUtils.isMobile, this.init = function() {
            this.setOverflow("visible"), this.thumbnailsHolder_do = new FWDRLDisplayObject("div"), this.thumbnailsHolder_do.setOverflow("visible"), this.setBkColor(a.backgroundColor_str), this.setupThumbnailsData(), "loadmorewithbutton" == o.thumbnailLoadingType_str && this.setupLoadMoreButton(), this.addMouseWheelSupport_bl && !this.isMobile_bl && this.addMouseWheelSupport(), this.filterCategories(), this.startGetMousePosition(), this.setupDragScrollbar(), this.addChild(this.thumbnailsHolder_do), this.setupNoSearch(), o.isMobile_bl || (o.screen.style.cursor = "url(" + o.handGrabPath_str + "), default", o.dumy_do = new FWDRLDisplayObject("div"), FWDRLUtils.isIE && (o.dumy_do.setBkColor("#FF0000"), o.dumy_do.setAlpha(1e-4)), o.dumy_do.screen.style.cursor = "url(" + o.handMovePath_str + "), default", o.addChild(o.dumy_do))
        }, this.resizeAndPosition = function() {
            this.stageWidth = a.stageWidth, a.menu_do ? this.stageHeight = a.stageHeight - a.menu_do.h : this.stageHeight = a.stageHeight, this.thumbnailsFinalX = this.thumbnailsHolder_do.getX(), this.setDataForResize(), this.positionThumbnailsAndMain(), this.centerThumbnails(!0), this.positionNoSearchLabel(), this.setWidth(this.stageWidth), this.setHeight(this.stageHeight)
        }, this.startGetMousePosition = function() {
            t.addEventListener ? (o.isMobile_bl || t.addEventListener("touchstart", this.getMousePosition), t.addEventListener("mousemove", this.getMousePosition)) : document.attachEvent && document.attachEvent("onmousemove", this.getMousePosition)
        }, this.getMousePosition = function(t) {
            var e = FWDRLUtils.getViewportMouseCoordinates(t);
            o.globalX = e.screenX, o.globalY = e.screenY
        }, this.setupThumbnailsData = function() {
            for (var t, e = [], i = 0; i < this.totalThumbnails; i++) t = {}, t.thumbnail = void 0, t.id = i, t.catId = this.sourcePlaylist_ar[i].catId, this.originalDataThumbnails_ar[i] = t, this.dataThumbnails_ar[i] = t;
            for (var i = 0; i < this.totalCats; i++) e[i] = 0;
            for (var i = 0; i < this.totalThumbnails; i++) e[this.dataThumbnails_ar[i].catId]++;
            for (var i = 0; i < this.totalCats; i++) t = {}, t.loaded = 0, t.limit = 0, t.total = e[i], t.isSelected = !1, this.loadMoreCatsData_ar[i] = t
        }, this.search = function(t) {
            o.searchValue = t, clearTimeout(o.updateSearch_to), o.updateSearch_to = setTimeout(function() {
                o.filterCategories()
            }, 200)
        }, this.getThumbnail = function(t, e) {
            var i = {};
            return i.parent = this, i.id = e, i.catId = t, i.presetType_str = s.presetType_str, i.backgroundColor_str = s.thumbnailBackgroundColor_str, i.borderNormalColor_str = this.sourcePlaylist_ar[e].thumbnailBorderNormalColor || s.thumbnailBorderNormalColor_str, i.borderSelectedColor_str = this.sourcePlaylist_ar[e].thumbnailBorderSelectedColor || s.thumbnailBorderSelectedColor_str, i.borderSize = s.thumbnailBorderSize, i.borderRadius = s.thumbnailBorderRadius, i.thumbnailOverlayColor_str = this.sourcePlaylist_ar[e].thumbnailOverlayColor || s.thumbnailOverlayColor_str, i.thumbnailOverlayOpacity = s.thumbnailOverlayOpacity, i.spaceBetweenTextAndIcons = s.spaceBetweenTextAndIcons, i.extraButtonUrl_str = this.sourcePlaylist_ar[e].extraButtonUrl_str, i.extraButtonUrlTarget_str = this.sourcePlaylist_ar[e].extraButtonUrlTarget_str, i.thumbIconPathN_str = this.sourcePlaylist_ar[e].thumbIconPathN_str, i.thumbIconPathS_str = this.sourcePlaylist_ar[e].thumbIconPathS_str, i.thumbnailIconWidth = s.thumbnailIconWidth, i.thumbnailIconHeight = s.thumbnailIconHeight, i.linkIconPathN_str = s.linkIconPathN_str, i.linkIconPathS_str = s.linkIconPathS_str, i.spaceBetweenThumbanilIcons = s.spaceBetweenThumbanilIcons, i.hideAndShowTransitionType_str = s.hideAndShowTransitionType_str, i.textVerticalAlign_str = s.textVerticalAlign_str, i.imageTransitionDirection_str = s.imageTransitionDirection_str, i.thumbanilBoxShadow_str = s.thumbanilBoxShadow_str, i.textAnimType_str = s.textAnimType_str, i.disableThumbnails_bl = s.disableThumbnails_bl, i.useIconButtons_bl = s.useIconButtons_bl, i.alt_str = this.sourcePlaylist_ar[e].alt_str, i.linkUrl_str = this.sourcePlaylist_ar[e].url, i.linkTarget_str = this.sourcePlaylist_ar[e].target, i.contentOffsetY = s.contentOffsetY, i.buttonsOffest = s.buttonsOffestY, i.isDisabled_bl = this.sourcePlaylist_ar[e].disabled_bl, i.htmlContent1_str = this.sourcePlaylist_ar[e].htmlContent1_str, i.htmlContent2_str = this.sourcePlaylist_ar[e].htmlContent2_str, FWDUGPThumbnail.setPrototype(), thumbnail = new FWDUGPThumbnail(i), thumbnail.addListener(FWDUGPThumbnail.MOUSE_UP, this.thumbanilOnMouseUpHandler), this.thumbnailsHolder_do.addChild(thumbnail), thumbnail
        }, this.thumbanilOnMouseUpHandler = function(i) {
            for (var a = i.id, n = i.id, l = i.extraButton ? "extraButtonLink" : o.sourcePlaylist_ar[a].type_str, r = 0; r < o.totalOriginalThumbnails; r++) n > r && (o.sourcePlaylist_ar[r].type_str == FWDUGP.NONE || o.sourcePlaylist_ar[r].type_str == FWDUGP.LINK) && (a -= 1);
            "extraButtonLink" == l ? s.isPintrest_bl ? PDK.pin(o.sourcePlaylist_ar[i.id].thumbnailPath_str, o.sourcePlaylist_ar[i.id].rawDescription_str, o.sourcePlaylist_ar[i.id].pinLInk_str, function() {}) : t.open(o.dataThumbnails_ar[i.id].thumbnail.extraButtonUrl_str, o.dataThumbnails_ar[i.id].thumbnail.extraButtonUrlTarget_str) : "link" == l ? t.open(o.dataThumbnails_ar[i.id].thumbnail.linkUrl_str, o.dataThumbnails_ar[i.id].thumbnail.linkTarget_str) : o.dispatchEvent(e.OPEN_LIGHTBOX, {
                id: a
            })
        }, this.updateCategory = function(t) {
            this.catId_ar != t && (this.catId_ar = t, this.thumbnailsFinalX = this.thumbnailsHolder_do.getX(), this.deactivateDragScrollBar(), this.filterCategories(), this.positionThumbnailsAndMain(), this.dispatchEvent(e.CATEGORY_UPDATE))
        }, this.stopToLoadImage = function() {
            clearTimeout(this.loadThumbnailId_to), o.image_img && (o.image_img.onerror = null, o.image_img.onload = null)
        }, this.startToLoadImage = function(t) {
            o.image_img = new Image, o.image_img.onerror = o.onImageLoadErrorHandler, o.image_img.onload = o.onImageLoadHandler, o.image_img.src = t
        }, this.loadThumbImage = function() {
            var t;
            o.stopToLoadImage();
            for (var e = 0; e < o.totalCats; e++)
                if (o.loadMoreCatsData_ar[e].isSelected && o.loadMoreCatsData_ar[e].loaded < o.loadMoreCatsData_ar[e].limit) {
                    t = e;
                    break
                }
            for (var e = 0; e < o.tempTotalThumbnails && (o.curDataThumbnail = o.tempPlaylist_ar[e], o.curDataThumbnail.catId != t || o.curDataThumbnail.thumbnail); e++);
            o.startToLoadImage(o.sourcePlaylist_ar[o.curDataThumbnail.id].thumbnailPath_str)
        }, this.onImageLoadErrorHandler = function(t) {
            var i = "Thumbnail image can't be loaded, probably the path is incorrect <font color='#FFFFFF'>" + o.sourcePlaylist_ar[o.curDataThumbnail.id].thumbnailPath_str + "</font>";
            o.dispatchEvent(e.ERROR, {
                text: i
            })
        }, this.onImageLoadHandler = function(t) {
            var e = o.getThumbnail(o.curDataThumbnail.catId, o.curDataThumbnail.id);
            o.loadMoreCatsData_ar[o.curDataThumbnail.catId].loaded++, o.curDataThumbnail.thumbnail = e, o.originalDataThumbnails_ar[o.curDataThumbnail.id].thumbnail = e, e.hasImg_bl = !0, e.originalWidth = o.image_img.width, e.originalHeight = o.image_img.height, e.addImage(o.image_img), o.countLoadedThumbs++, o.isFirstThumbnailLoaded_bl || setTimeout(function() {
                o.firstThumbnailShowed_bl = !0
            }, 200), o.updateCurThumbnails(), o.positionThumbnailsAndMain(), o.centerThumbnails(!0)
        }, this.updateCatsLimits = function() {
            var t = o.thumbnailsPerSet,
                e = 0;
            if (this.showAllCategories_bl && 0 == this.catId_ar[0]) {
                if (0 == this.loadMoreCatsData_ar[0].limit)
                    for (; t > 0 && e < this.totalCats;) this.loadMoreCatsData_ar[e].limit + t > this.loadMoreCatsData_ar[e].total ? (t -= this.loadMoreCatsData_ar[e].total - this.loadMoreCatsData_ar[e].limit, this.loadMoreCatsData_ar[e].limit = this.loadMoreCatsData_ar[e].total) : (this.loadMoreCatsData_ar[e].limit += t, t = 0), e++
            } else
                for (var i = 0; i < this.totalCats; i++) this.loadMoreCatsData_ar[i].isSelected && this.loadMoreCatsData_ar[i].limit < this.thumbnailsPerSet && (this.loadMoreCatsData_ar[i].limit = Math.min(this.loadMoreCatsData_ar[i].total, this.thumbnailsPerSet));
            this.totalThumbnailsLimit = 0;
            for (var i = 0; i < this.totalCats; i++) this.loadMoreCatsData_ar[i].isSelected && (this.totalThumbnailsLimit += this.loadMoreCatsData_ar[i].limit)
        }, this.allowToLoadMoreThumbnails = function() {
            return this.totalLoadedThumbnails == this.totalThumbnailsLimit && this.totalLoadedThumbnails < this.tempTotalThumbnails ? !0 : !1
        }, this.loadMore = function() {
            for (var t = o.thumbnailsPerSet, e = 0; t > 0 && e < o.totalCats;) o.loadMoreCatsData_ar[e].isSelected && (o.loadMoreCatsData_ar[e].limit + t > o.loadMoreCatsData_ar[e].total ? (t -= o.loadMoreCatsData_ar[e].total - o.loadMoreCatsData_ar[e].limit, o.loadMoreCatsData_ar[e].limit = o.loadMoreCatsData_ar[e].total) : (o.loadMoreCatsData_ar[e].limit += t, t = 0)), e++;
            this.totalThumbnailsLimit = 0;
            for (var i = 0; i < this.totalCats; i++) this.loadMoreCatsData_ar[i].isSelected && (this.totalThumbnailsLimit += this.loadMoreCatsData_ar[i].limit);
            o.isLoadingMore_bl = !0, o.deactivateDragScrollBar(), o.loadThumbImage()
        }, this.updateCatsData = function() {
            var t, e, i = [],
                s = [];
            o.loadMoreCatsData_ar = [];
            for (var a = 0; a < o.totalCats; a++) i[a] = 0, s[a] = 0;
            for (var a = 0; a < o.totalThumbnails; a++) t = o.dataThumbnails_ar[a], i[t.catId]++, t.thumbnail && s[t.catId]++;
            for (var a = 0; a < o.totalCats; a++) e = {}, e.loaded = s[a], e.limit = s[a], e.total = i[a], e.isSelected = !1, o.loadMoreCatsData_ar[a] = e
        }, this.filterCategories = function() {
            var t, e, i = 0;
            this.tempPlaylist_ar = [], this.playlist_ar = [], this.dataThumbnails_ar = [], o.stopToLoadImage();
            for (var s = 0; s < o.sourcePlaylist_ar.length; s++) t = o.originalDataThumbnails_ar[s], -1 != o.sourcePlaylist_ar[s].titleText_str.toLowerCase().indexOf(o.searchValue) ? o.dataThumbnails_ar.push(t) : t.thumbnail && t.thumbnail.hide(!0);
            if (o.totalThumbnails = o.dataThumbnails_ar.length, this.updateCatsData(), this.showAllCategories_bl && (i = 1), this.showAllCategories_bl && 0 == o.catId_ar[0]) {
                for (s = 0; s < this.totalThumbnails; s++) t = this.dataThumbnails_ar[s], this.tempPlaylist_ar.push(t), t.thumbnail && (this.playlist_ar.push(t), t.thumbnail.show(!0));
                for (var s = 0; s < this.totalCats; s++) this.loadMoreCatsData_ar[s].isSelected = !0
            } else
                for (s = 0; s < this.totalThumbnails; s++) {
                    t = this.dataThumbnails_ar[s], e = !1;
                    for (var a = 0; a < this.totalCats; a++) t.catId == o.catId_ar[a] - i && (this.tempPlaylist_ar.push(t), t.thumbnail && this.playlist_ar.push(t), this.loadMoreCatsData_ar[o.catId_ar[a] - i].isSelected = !0, e = !0);
                    e ? t.thumbnail && t.thumbnail.show(!0) : t.thumbnail && t.thumbnail.hide(!0)
                }
            this.tempTotalThumbnails = this.tempPlaylist_ar.length, this.totalLoadedThumbnails = this.playlist_ar.length, 0 == this.tempTotalThumbnails ? this.showNoSearch() : this.hideNoSearch(), this.updateCatsLimits(), this.totalLoadedThumbnails < this.totalThumbnailsLimit ? (clearTimeout(this.loadThumbnailId_to), this.loadThumbnailId_to = setTimeout(this.loadThumbImage, 300)) : (o.updateCurThumbnails(), o.positionThumbnailsAndMain(), o.centerThumbnails(!0), "loadmoreonscroll" == o.thumbnailLoadingType_str && o.stageWidth > o.totalWidth && o.allowToLoadMoreThumbnails() && o.loadMore()), "loadmorewithbutton" == o.thumbnailLoadingType_str && this.hideOrShowLoadMoreButton()
        }, this.updateCurThumbnails = function() {
            var t, e = 0;
            if (this.playlist_ar = [], this.showAllCategories_bl && (e = 1), this.showAllCategories_bl && 0 == o.catId_ar[0])
                for (i = 0; i < this.totalThumbnails; i++) t = this.dataThumbnails_ar[i], t.thumbnail && this.playlist_ar.push(t);
            else
                for (i = 0; i < this.totalThumbnails; i++) {
                    t = this.dataThumbnails_ar[i];
                    for (var s = 0; s < this.totalCats; s++) t.catId == o.catId_ar[s] - e && t.thumbnail && this.playlist_ar.push(t)
                }
            this.totalLoadedThumbnails = this.playlist_ar.length, this.totalLoadedThumbnails < this.totalThumbnailsLimit ? (clearTimeout(this.loadThumbnailId_to), this.loadThumbnailId_to = setTimeout(this.loadThumbImage, 10)) : (o.isLoadingMore_bl = !1, "loadmoreonscroll" == o.thumbnailLoadingType_str && o.stageWidth > o.totalWidth && o.allowToLoadMoreThumbnails() && o.loadMore()), "loadmorewithbutton" == o.thumbnailLoadingType_str && this.hideOrShowLoadMoreButton()
        }, this.setDataForResize = function() {
            if (this.stageWidth) {
                this.totalRows = Math.ceil((this.stageHeight - 2 * this.thumbsVOffset + this.thumbsVSpace) / (this.thumbnailMaxHeight + 2 * this.borderSize + this.thumbsVSpace)),
                    this.thumbHeight = Math.floor((this.stageHeight - 2 * this.thumbsVOffset + this.thumbsVSpace - this.totalRows * (this.thumbsVSpace + 2 * this.borderSize)) / this.totalRows), this.thumbWidth = Math.floor(this.thumbHeight * (this.thumbnailMaxWidth / this.thumbnailMaxHeight));
                var t = this.totalRows * (this.thumbHeight + 2 * this.borderSize + this.thumbsVSpace) - this.thumbsVSpace;
                this.leftHeight = this.stageHeight - 2 * this.thumbsVOffset - t, this.prevStageWidth = this.stageWidth
            }
        }, this.positionThumbnailsAndMain = function() {
            this.rowHeights_ar = [];
            for (var t = 0; t < this.totalRows; t++) this.rowHeights_ar[t] = 0;
            for (var t = 0; t < this.totalLoadedThumbnails; t++) thumbnail = this.playlist_ar[t].thumbnail, thumbnail.used_bl = !1;
            this.positionThumbnails(), this.positionThumbnails(), this.positionThumbnails2(), this.totalWidth = Math.max(0, this.maxW * (this.thumbWidth + this.thumbsHSpace + 2 * this.borderSize) - this.thumbsHSpace + 2 * this.thumbsHOffset), this.positionLoadMoreButton(), this.totalWidth += this.offsetTotalWidth
        }, this.positionThumbnails = function() {
            for (var t, e, i, i, s, a, n, l, r, h, d, u = [], c = [], _ = 0; _ < o.totalRows; _++) u[_] = o.thumbHeight + 2 * o.borderSize, o.leftHeight > 0 && _ < o.leftHeight && u[_]++, 0 == _ ? c[_] = o.thumbsVOffset : c[_] = c[_ - 1] + u[_ - 1] + o.thumbsVSpace;
            for (var _ = 0; _ < o.totalLoadedThumbnails; _++)
                if (d = o.playlist_ar[_].thumbnail, !d.used_bl)
                    if (i = Math.round(d.originalHeight / o.thumbnailMaxHeight), wSize = Math.round(d.originalWidth / o.thumbnailMaxWidth), e = 1e3, 1 == i) {
                        d.used_bl = !0;
                        for (var m = 0; m < o.totalRows; m++) o.rowHeights_ar[m] < e && (e = o.rowHeights_ar[m]);
                        for (var m = 0; m < o.totalRows; m++)
                            if (o.rowHeights_ar[m] == e) {
                                t = m;
                                break
                            }
                        n = o.rowHeights_ar[t] * (o.thumbWidth + o.thumbsHSpace + 2 * o.borderSize) + o.thumbsHOffset, l = c[t], r = (o.thumbWidth + o.thumbsHSpace + 2 * o.borderSize) * wSize - o.thumbsHSpace, h = u[t], d.finalW = r, d.finalH = h, d.finalX = n, d.finalY = l, d.resizeAndPosition(), o.rowHeights_ar[t] += wSize
                    } else {
                        s = !1;
                        for (var m = 0; m < o.totalRows - (i - 1); m++) {
                            a = !0;
                            for (var b = 0; i > b; b++) o.rowHeights_ar[m] != o.rowHeights_ar[m + b] && (a = !1);
                            a && o.rowHeights_ar[m] < e && (e = o.rowHeights_ar[m], t = m, s = !0)
                        }
                        if (s) {
                            d.used_bl = !0, n = o.rowHeights_ar[t] * (o.thumbWidth + o.thumbsHSpace + 2 * o.borderSize) + o.thumbsHOffset, l = c[t], r = (o.thumbWidth + o.thumbsHSpace + 2 * o.borderSize) * wSize - o.thumbsHSpace, h = -o.thumbsVSpace;
                            for (var b = 0; i > b; b++) h += u[t + b] + o.thumbsVSpace;
                            d.finalW = r, d.finalH = h, d.finalX = n, d.finalY = l, d.resizeAndPosition();
                            for (var b = 0; i > b; b++) o.rowHeights_ar[t + b] += wSize
                        }
                    }
            o.maxW = 0;
            for (var _ = 0; _ < o.totalRows; _++) o.rowHeights_ar[_] > o.maxW && (o.maxW = o.rowHeights_ar[_])
        }, this.positionThumbnails2 = function() {
            for (var t, e, i, s, a = [], n = 0; n < o.totalRows; n++) a[n] = o.thumbHeight + 2 * o.borderSize, o.finalH_ar > 0 && n < o.finalH_ar && a[n]++;
            this.maxW = 0;
            for (var n = 0; n < this.totalRows; n++) this.rowHeights_ar[n] > this.maxW && (this.maxW = this.rowHeights_ar[n]);
            for (var n = 0; n < this.totalLoadedThumbnails; n++)
                if (thumbnail = this.playlist_ar[n].thumbnail, !thumbnail.used_bl) {
                    thumbnail.used_bl = !0;
                    var l = Math.round(thumbnail.originalWidth / this.thumbnailMaxWidth),
                        r = Math.round(thumbnail.originalHeight / this.thumbnailMaxHeight);
                    this.totalRows < r && (r = this.totalRows), e = o.thumbsVOffset, t = this.maxW * (o.thumbWidth + o.thumbsHSpace + 2 * o.borderSize) + o.thumbsHOffset, i = (this.thumbWidth + this.thumbsHSpace + 2 * this.borderSize) * l - this.thumbsHSpace, s = -o.thumbsVSpace;
                    for (var h = 0; l > h; h++) s += a[h] + o.thumbsVSpace;
                    thumbnail.finalX = t, thumbnail.finalY = e, thumbnail.finalW = i, thumbnail.finalH = s, thumbnail.resizeAndPosition(), this.maxW += l;
                    for (var h = 0; r > h; h++) this.rowHeights_ar[h] = this.maxW
                }
        }, this.setupNoSearch = function() {
            this.noSearch_do = new FWDRLDisplayObject("div"), this.noSearch_do.setOverflow("visible"), this.noSearch_do.setDisplay("inline-block"), this.noSearch_do.getStyle().fontSmoothing = "antialiased", this.noSearch_do.getStyle().webkitFontSmoothing = "antialiased", this.noSearch_do.getStyle().textRendering = "optimizeLegibility", this.noSearch_do.getStyle().whiteSpace = "nowrap", this.noSearch_do.setBackfaceVisibility(), this.noSearch_do.getStyle().padding = "", this.noSearch_do.getStyle().margin = "", this.noSearch_do.screen.className = s.searchNotFoundClassName_str, this.noSearch_do.hasTransform3d_bl = !1, this.noSearch_do.hasTransform2d_bl = !1, this.noSearch_do.setAlpha(0), this.noSearch_do.setInnerHTML(s.searchNotFoundLabel_str), this.addChild(this.noSearch_do), setTimeout(function() {
                o.noSearch_do.w = o.noSearch_do.getWidth(), o.noSearch_do.h = o.noSearch_do.getHeight(), o.removeChild(o.noSearch_do)
            }, 70)
        }, this.showNoSearch = function() {
            this.isNoSearchFoundShowed_bl || (this.isNoSearchFoundShowed_bl = !0, this.addChild(this.noSearch_do), this.positionNoSearchLabel(), FWDRLTweenMax.killTweensOf(this.noSearch_do), FWDRLTweenMax.to(this.noSearch_do, .1, {
                alpha: 1,
                yoyo: !0,
                repeat: 8
            }))
        }, this.hideNoSearch = function() {
            this.isNoSearchFoundShowed_bl && (this.isNoSearchFoundShowed_bl = !1, FWDRLTweenMax.killTweensOf(this.noSearch_do), FWDRLTweenMax.to(this.noSearch_do, .1, {
                alpha: 0,
                onComplete: function() {
                    o.removeChild(o.noSearch_do)
                }
            }))
        }, this.positionNoSearchLabel = function() {
            this.isNoSearchFoundShowed_bl && (this.noSearch_do.setX(parseInt((this.stageWidth - this.noSearch_do.w) / 2)), a.menu_do.isShowed_bl && this.centerWithMenu_bl ? this.noSearch_do.setY(parseInt((this.stageHeight - a.menu_do.menuOffsetBottom - this.noSearch_do.h) / 2)) : this.noSearch_do.setY(parseInt((this.stageHeight - this.noSearch_do.h) / 2)))
        }, this.setupLoadMoreButton = function() {
            FWDUGPMenuButton.setPrototype(), o.loadMoreButton_do = new FWDUGPMenuButton(s.loadMoreButtonLabel_str, s.loadMoreButtonBackgroundNormalClassName_str, s.loadMoreButtonBackgroundSelectedClassName_str, s.loadMoreButtonTextNormalClassName_str, s.loadMoreButtonTextSeectedClassName_str), this.loadMoreButton_do.setLabel(s.loadMoreButtonLabel_str), this.loadMoreButton_do.getStyle().zIndex = 20, this.loadMoreButton_do.addListener(FWDUGPMenuButton.MOUSE_UP, this.loadMoreButtonOnMouseUpHandler), this.hideLoadMoreButton(), this.thumbnailsHolder_do.addChild(this.loadMoreButton_do)
        }, this.loadMoreButtonOnMouseUpHandler = function() {
            o.hideLoadMoreButton(), o.loadMore()
        }, this.hideLoadMoreButton = function() {
            this.loadMoreButton_do && this.isLoadMoreButtonShowed_bl && (this.isLoadMoreButtonShowed_bl = !1, this.loadMoreButton_do.setVisible(!1))
        }, this.showLoadMoreButton = function() {
            this.loadMoreButton_do && !this.isLoadMoreButtonShowed_bl && (this.isLoadMoreButtonShowed_bl = !0, this.loadMoreButton_do.setVisible(!0), this.isMobile_bl || (this.loadMoreButton_do.setAlpha(0), FWDRLTweenMax.to(this.loadMoreButton_do, .6, {
                alpha: 1
            })), this.positionLoadMoreButton())
        }, this.hideOrShowLoadMoreButton = function() {
            o.allowToLoadMoreThumbnails() ? o.showLoadMoreButton() : o.hideLoadMoreButton()
        }, this.positionLoadMoreButton = function() {
            return this.isLoadMoreButtonShowed_bl && this.loadMoreButton_do ? (this.isMobile_bl || 0 == this.loadMoreButton_do.alpha ? (this.loadMoreButton_do.setX(this.totalWidth + this.loadMoreButtonOffsetLeft), this.loadMoreButton_do.setY(parseInt((this.stageHeight - this.loadMoreButton_do.h) / 2))) : FWDRLTweenMax.to(this.loadMoreButton_do, .5, {
                x: parseInt(this.totalWidth + this.loadMoreButtonOffsetLeft),
                y: parseInt((this.stageHeight - this.loadMoreButton_do.h) / 2)
            }), void(this.offsetTotalWidth = this.loadMoreButtonOffsetLeft + this.loadMoreButtonOffsetRight + this.loadMoreButton_do.w)) : void(this.offsetTotalWidth = 0)
        }, this.centerThumbnails = function(t) {
            o.currentThumbnailsFinalX = o.thumbnailsFinalX, o.isMobileScrollBarRunning_bl || o.isDragging_bl || (o.stageWidth >= o.totalWidth ? o.thumbnailsFinalX = Math.round((o.stageWidth - o.totalWidth) / 2) : o.thumbnailsFinalX > 0 ? o.thumbnailsFinalX = 0 : o.thumbnailsFinalX < o.stageWidth - o.totalWidth && (o.isLoadingMore_bl || (o.thumbnailsFinalX = o.stageWidth - o.totalWidth)), FWDRLTweenMax.killTweensOf(o.thumbnailsHolder_do), t ? FWDRLTweenMax.to(o.thumbnailsHolder_do, .3, {
                x: o.thumbnailsFinalX
            }) : o.thumbnailsHolder_do.setX(o.thumbnailsFinalX))
        }, o.addMouseWheelSupport = function() {
            o.screen.addEventListener ? (o.screen.addEventListener("mousewheel", o.mouseWheelDragHandler), o.screen.addEventListener("DOMMouseScroll", o.mouseWheelDragHandler)) : o.screen.attachEvent && o.screen.attachEvent("onmousewheel", o.mouseWheelDragHandler)
        }, o.removeMouseWheelSupport = function() {
            o.screen.removeEventListener ? (o.screen.removeEventListener("mousewheel", o.mouseWheelDragHandler), o.screen.removeEventListener("DOMMouseScroll", o.mouseWheelDragHandler)) : o.screen.detachEvent && o.screen.detachEvent("onmousewheel", o.mouseWheelDragHandler)
        }, o.mouseWheelDragHandler = function(t) {
            var e;
            if (!(o.totalWidth <= o.stageWidth || o.isDragging_bl)) {
                var e = t.detail || t.wheelDelta;
                return t.wheelDelta && (e *= -1), e > 0 ? o.vx -= 10 : 0 > e && (o.vx += 10), o.isMobileScrollBarRunning_bl || o.activateDragScrollBar(), t.preventDefault ? void t.preventDefault() : !1
            }
        }, this.setupDragScrollbar = function() {
            o.isMobile_bl ? o.hasPointerEvent_bl ? o.screen.addEventListener("MSPointerDown", o.mobileScrBarStartHandler) : o.screen.addEventListener("touchstart", o.mobileScrBarStartTest) : o.screen.addEventListener ? o.screen.addEventListener("mousedown", o.mobileScrBarStartHandler) : o.screen.attachEvent && o.screen.attachEvent("onmousedown", o.mobileScrBarStartHandler)
        }, this.mobileScrBarStartTest = function(e) {
            var i = FWDRLUtils.getViewportMouseCoordinates(e);
            o.lastPressedX = i.screenX, o.lastPressedY = i.screenY, t.addEventListener("touchmove", o.mobileScrBarMoveTest)
        }, this.mobileScrBarMoveTest = function(e) {
            if (1 == e.touches.length) {
                var i = FWDRLUtils.getViewportMouseCoordinates(e);
                o.mouseX = i.screenX, o.mouseY = i.screenY;
                var s = Math.atan2(o.mouseY - o.lastPressedY, o.mouseX - o.lastPressedX),
                    n = 180 * Math.abs(s) / Math.PI;
                n > 120 || 60 > n || a.isFullScreen_bl ? (e.preventDefault(), o.mobileScrBarStartHandler(e), t.removeEventListener("touchmove", o.mobileScrBarMoveTest)) : (o.disableThumbClick_bl = !0, t.addEventListener("touchend", o.mobileScrBarEndTest))
            }
        }, this.mobileScrBarEndTest = function(e) {
            t.removeEventListener("touchmove", o.mobileScrBarMoveTest), t.removeEventListener("touchend", o.mobileScrBarEndTest)
        }, this.mobileScrBarStartHandler = function(e) {
            if (!(o.stageWidth > o.totalWidth)) {
                e.preventDefault && e.preventDefault();
                var i = FWDRLUtils.getViewportMouseCoordinates(e);
                o.stageWidth < o.totalWidth && (o.isDragging_bl = !0, o.lastPressedX = i.screenX, o.setOnceDumySizeOnMove_bl = !0, o.vx = 0, o.thumbnailsFinalX = o.thumbnailsHolder_do.getX(), clearTimeout(o.disableThumbClickDelayId_to), o.activateDragScrollBar()), o.isMobile_bl ? o.hasPointerEvent_bl ? (t.addEventListener("MSPointerUp", o.mobileScrBarEndHandler), t.addEventListener("MSPointerMove", o.mobileScrBarMoveHandler)) : (t.addEventListener("touchend", o.mobileScrBarEndHandler), t.addEventListener("touchmove", o.mobileScrBarMoveHandler)) : t.addEventListener ? (t.addEventListener("mouseup", o.mobileScrBarEndHandler), t.addEventListener("mousemove", o.mobileScrBarMoveHandler)) : document.attachEvent && (document.attachEvent("onmouseup", o.mobileScrBarEndHandler), document.attachEvent("onmousemove", o.mobileScrBarMoveHandler))
            }
        }, this.mobileScrBarMoveHandler = function(t) {
            if (t.preventDefault && t.preventDefault(), !(o.stageWidth > o.totalWidth)) {
                var e = FWDRLUtils.getViewportMouseCoordinates(t);
                if (e.screenX != o.lastPressedX) {
                    var i = e.screenX - o.lastPressedX;
                    o.disableThumbClick_bl = !0, (o.setOnceDumySizeOnMove_bl && !o.isMobile_bl || o.setOnceDumySizeOnMove_bl && o.hasPointerEvent_bl) && (o.dumy_do.setWidth(o.stageWidth), o.dumy_do.setHeight(o.stageHeight), o.curThumbnail_do && o.curThumbnail_do.hideContent(), o.curSelectedThumbnail_do, o.setOnceDumySizeOnMove_bl = !1), o.thumbnailsFinalX += i, o.thumbnailsFinalX = Math.round(o.thumbnailsFinalX), !o.ieOldMoveTest_bl && FWDRLUtils.isIE ? (clearInterval(o.ieOldMoveTestId_int), o.ieOldMoveTestId_int = setInterval(o.updateThumbnailsPosition, 16), o.ieOldMoveTest_bl = !0) : FWDRLUtils.isIE || o.thumbnailsHolder_do.setX(o.thumbnailsFinalX), o.lastPressedX = e.screenX, o.vx = 2 * i
                }
            }
        }, this.updateThumbnailsPosition = function() {
            o.thumbnailsHolder_do.setX(o.thumbnailsFinalX)
        }, this.mobileScrBarEndHandler = function(e) {
            clearInterval(o.ieOldMoveTestId_int), o.ieOldMoveTest_bl = !1, o.isDragging_bl = !1, o.disableThumbClickDelayId_to = setTimeout(function() {
                o.disableThumbClick_bl = !1
            }, 100), (!o.isMobile_bl || o.hasPointerEvent_bl) && (o.dumy_do.setWidth(0), o.dumy_do.setHeight(0)), o.isMobile_bl ? o.hasPointerEvent_bl ? (t.removeEventListener("MSPointerUp", o.mobileScrBarEndHandler), t.removeEventListener("MSPointerMove", o.mobileScrBarMoveHandler)) : (t.removeEventListener("touchend", o.mobileScrBarEndHandler), t.removeEventListener("touchmove", o.mobileScrBarMoveHandler)) : t.removeEventListener ? (t.removeEventListener("mouseup", o.mobileScrBarEndHandler), t.removeEventListener("mousemove", o.mobileScrBarMoveHandler)) : document.detachEvent && (document.detachEvent("onmouseup", o.mobileScrBarEndHandler), document.detachEvent("onmousemove", o.mobileScrBarMoveHandler))
        }, this.updateMobileScrollBar = function() {
            o.isDragging_bl || (o.stageWidth <= o.totalWidth && (o.vx *= o.friction, o.thumbnailsFinalX += o.vx, o.thumbnailsFinalX > 0 ? (o.vx2 = .3 * (0 - o.thumbnailsFinalX), o.vx *= o.friction, o.thumbnailsFinalX += o.vx2) : o.thumbnailsFinalX < o.stageWidth - o.totalWidth && (o.vx2 = .3 * (o.stageWidth - o.totalWidth - o.thumbnailsFinalX), o.vx *= o.friction, o.thumbnailsFinalX += o.vx2), o.thumbnailsFinalX < o.stageWidth - o.totalWidth && "loadmoreonscroll" == o.thumbnailLoadingType_str && !o.isLoadingMore_bl && o.allowToLoadMoreThumbnails() && (clearTimeout(this.loadInifiniteId_to), this.loadInifiniteId_to = setTimeout(function() {
                o.loadMore()
            }, 500))), Math.abs(o.vx) < .01 && o.deactivateDragScrollBar(), o.thumbnailsHolder_do.setX(Math.round(o.thumbnailsFinalX))), o.stageWidth > o.totalWidth && o.deactivateDragScrollBar()
        }, this.activateDragScrollBar = function() {
            o.stageWidth > o.totalWidth || o.isMobileScrollBarRunning_bl || (o.isMobileScrollBarRunning_bl = !0, FWDRLTweenMax.killTweensOf(o.thumbnailsHolder_do), clearInterval(o.updateMobileScrollBarId_int), o.updateMobileScrollBarId_int = setInterval(o.updateMobileScrollBar, 16))
        }, this.deactivateDragScrollBar = function() {
            o.isMobileScrollBarRunning_bl = !1, o.vx = o.vx2 = 0, clearInterval(o.updateMobileScrollBarId_int), t.removeEventListener && t.removeEventListener("touchmove", o.mobileScrBarMoveTest)
        }, this.init()
    };
    e.setPrototype = function() {
        e.prototype = new FWDRLDisplayObject("div", "relative")
    }, e.OPEN_LIGHTBOX = "openLightbox", e.CATEGORY_UPDATE = "categoryUpdate", e.ERROR = "error", e.prototype = null, t.FWDUGPHorizontalThumbnailsManager = e
}(window),
function(t) {
    var e = function(s, a) {
        var o = this;
        e.prototype;
        this.sourcePlaylist_ar = s.playlist_ar.playlistItems, this.originalDataThumbnails_ar = [], this.dataThumbnails_ar = [], this.tempPlaylist_ar, this.rowHeights_ar = [], this.loadMoreCatsData_ar = [], this.catId_ar = s.startAtCategory_ar, this.loadMoreButton_do, this.curDataThumbnail, this.thumbnailLoadingType_str = s.thumbnailLoadingType_str, this.handGrabPath_str = s.handGrabPath_str, this.handMovePath_str = s.handMovePath_str, this.currentThumbnailsFinalX = 0, this.totalLoadedThumbnails = 0, this.loadMoreButtonOffsetLeft = s.loadMoreButtonOffsetTop, this.loadMoreButtonOffsetRight = s.loadMoreButtonOffsetBottom, this.thumbnailsPerSet = s.howManyThumbnailsToDisplayPerSet, this.thumbsHOffset = s.thumbnailsHorizontalOffset, this.thumbsVOffset = s.thumbnailsVerticalOffset, this.offsetTotalHeight = 0, this.maxH = 0, this.thumbOffsetY = 0, this.catId = s.startAtCategory, this.stageWidth = 0, this.prevStageWidth = 0, this.thumbnailMaxWidth = s.thumbnailMaxWidth, this.thumbnailMaxHeight = s.thumbnailMaxHeight, this.leftHeight = 0, this.thumbWidth, this.thumbHeight, this.thumbsHSpace = s.horizontalSpaceBetweenThumbnails, this.thumbsVSpace = s.verticalSpaceBetweenThumbnails, this.countLoadedThumbs = 0, this.borderSize = s.thumbnailBorderSize, this.totalThumbnails = this.sourcePlaylist_ar.length, this.tempTotalThumbnails = this.sourcePlaylist_ar.length, this.totalOriginalThumbnails = this.sourcePlaylist_ar.length, this.globalX = 0, this.globalY = 0, this.leftHeight = 0, this.vx = 0, this.vx2 = 0, this.friction = .9, this.searchValue = "", this.catChanging_to, this.arangeFaterTweenId_to, this.updateSearch_to, this.isMobileScrollBarRunning_bl = !1, this.isDragging_bl = !1, this.isLoadAtTheEnd_bl = !1, this.isLoadMoreButtonShowed_bl = !0, this.isCatChanging_bl = !1, this.isFirstThumbnailLoaded_bl = !1, this.centerNoSearchFoundLabelWithMenu_bl = s.centerNoSearchFoundLabelWithMenu_bl, this.firstThumbnailShowed_bl = !1, this.animateParent_bl = s.animateParent_bl, this.addMouseWheelSupport_bl = s.addMouseWheelSupport_bl, this.isVerticalType_bl = s.isVerticalType_bl, this.isLoadingMore_bl = !1, this.showAllCategories_bl = s.showAllCategories_bl, this.totalCats = this.showAllCategories_bl ? s.categories_ar.length - 1 : s.categories_ar.length, this.isMobile_bl = FWDRLUtils.isMobile, this.init = function() {
            this.setOverflow("visible"), this.thumbnailsHolder_do = new FWDRLDisplayObject("div"), this.thumbnailsHolder_do.setOverflow("visible"), this.setBkColor(a.backgroundColor_str), this.setupThumbnailsData(), "loadmorewithbutton" == o.thumbnailLoadingType_str && this.setupLoadMoreButton(), this.addMouseWheelSupport_bl && !this.isMobile_bl && this.addMouseWheelSupport(), this.filterCategories(), this.startGetMousePosition(), this.setupDragScrollbar(), this.addChild(this.thumbnailsHolder_do), this.setupNoSearch(), o.isMobile_bl || (o.screen.style.cursor = "url(" + o.handGrabPath_str + "), default", o.dumy_do = new FWDRLDisplayObject("div"), FWDRLUtils.isIE && (o.dumy_do.setBkColor("#FF0000"), o.dumy_do.setAlpha(1e-4)), o.dumy_do.screen.style.cursor = "url(" + o.handMovePath_str + "), default", o.addChild(o.dumy_do))
        }, this.resizeAndPosition = function() {
            this.stageWidth = a.stageWidth, a.menu_do ? this.stageHeight = a.stageHeight - a.menu_do.h : this.stageHeight = a.stageHeight, this.thumbnailsFinalX = this.thumbnailsHolder_do.getX(), this.setDataForResize(), this.positionThumbnailsAndMain(), this.centerThumbnails(!0), this.positionNoSearchLabel(), this.setWidth(this.stageWidth), this.setHeight(this.stageHeight)
        }, this.startGetMousePosition = function() {
            t.addEventListener ? (o.isMobile_bl || t.addEventListener("touchstart", this.getMousePosition), t.addEventListener("mousemove", this.getMousePosition)) : document.attachEvent && document.attachEvent("onmousemove", this.getMousePosition)
        }, this.getMousePosition = function(t) {
            var e = FWDRLUtils.getViewportMouseCoordinates(t);
            o.globalX = e.screenX, o.globalY = e.screenY
        }, this.setupThumbnailsData = function() {
            for (var t, e = [], i = 0; i < this.totalThumbnails; i++) t = {}, t.thumbnail = void 0, t.id = i, t.catId = this.sourcePlaylist_ar[i].catId, this.originalDataThumbnails_ar[i] = t, this.dataThumbnails_ar[i] = t;
            for (var i = 0; i < this.totalCats; i++) e[i] = 0;
            for (var i = 0; i < this.totalThumbnails; i++) e[this.dataThumbnails_ar[i].catId]++;
            for (var i = 0; i < this.totalCats; i++) t = {}, t.loaded = 0, t.limit = 0, t.total = e[i], t.isSelected = !1, this.loadMoreCatsData_ar[i] = t
        }, this.search = function(t) {
            o.searchValue = t, clearTimeout(o.updateSearch_to), o.updateSearch_to = setTimeout(function() {
                o.filterCategories()
            }, 200)
        }, this.getThumbnail = function(t, e) {
            var i = {};
            return i.parent = this, i.id = e, i.catId = t, i.presetType_str = s.presetType_str, i.backgroundColor_str = s.thumbnailBackgroundColor_str, i.borderNormalColor_str = this.sourcePlaylist_ar[e].thumbnailBorderNormalColor || s.thumbnailBorderNormalColor_str, i.borderSelectedColor_str = this.sourcePlaylist_ar[e].thumbnailBorderSelectedColor || s.thumbnailBorderSelectedColor_str, i.borderSize = s.thumbnailBorderSize, i.borderRadius = s.thumbnailBorderRadius, i.thumbnailOverlayColor_str = this.sourcePlaylist_ar[e].thumbnailOverlayColor || s.thumbnailOverlayColor_str, i.thumbnailOverlayOpacity = s.thumbnailOverlayOpacity, i.spaceBetweenTextAndIcons = s.spaceBetweenTextAndIcons, i.extraButtonUrl_str = this.sourcePlaylist_ar[e].extraButtonUrl_str, i.extraButtonUrlTarget_str = this.sourcePlaylist_ar[e].extraButtonUrlTarget_str, i.thumbIconPathN_str = this.sourcePlaylist_ar[e].thumbIconPathN_str, i.thumbIconPathS_str = this.sourcePlaylist_ar[e].thumbIconPathS_str, i.thumbnailIconWidth = s.thumbnailIconWidth, i.thumbnailIconHeight = s.thumbnailIconHeight, i.linkIconPathN_str = s.linkIconPathN_str, i.linkIconPathS_str = s.linkIconPathS_str, i.spaceBetweenThumbanilIcons = s.spaceBetweenThumbanilIcons, i.hideAndShowTransitionType_str = s.hideAndShowTransitionType_str, i.textVerticalAlign_str = s.textVerticalAlign_str, i.imageTransitionDirection_str = s.imageTransitionDirection_str, i.thumbanilBoxShadow_str = s.thumbanilBoxShadow_str, i.textAnimType_str = s.textAnimType_str, i.disableThumbnails_bl = s.disableThumbnails_bl, i.useIconButtons_bl = s.useIconButtons_bl, i.alt_str = this.sourcePlaylist_ar[e].alt_str, i.linkUrl_str = this.sourcePlaylist_ar[e].url, i.linkTarget_str = this.sourcePlaylist_ar[e].target, i.contentOffsetY = s.contentOffsetY, i.buttonsOffest = s.buttonsOffestY, i.isVerticalType_bl = this.isVerticalType_bl, i.isDisabled_bl = this.sourcePlaylist_ar[e].disabled_bl, i.htmlContent1_str = this.sourcePlaylist_ar[e].htmlContent1_str, i.htmlContent2_str = this.sourcePlaylist_ar[e].htmlContent2_str, FWDUGPThumbnail.setPrototype(), thumbnail = new FWDUGPThumbnail(i), thumbnail.addListener(FWDUGPThumbnail.MOUSE_UP, this.thumbanilOnMouseUpHandler), this.thumbnailsHolder_do.addChild(thumbnail), thumbnail
        }, this.thumbanilOnMouseUpHandler = function(i) {
            for (var a = i.id, n = i.id, l = i.extraButton ? "extraButtonLink" : o.sourcePlaylist_ar[a].type_str, r = 0; r < o.totalOriginalThumbnails; r++) n > r && (o.sourcePlaylist_ar[r].type_str == FWDUGP.NONE || o.sourcePlaylist_ar[r].type_str == FWDUGP.LINK) && (a -= 1);
            "extraButtonLink" == l ? s.isPintrest_bl ? PDK.pin(o.sourcePlaylist_ar[i.id].thumbnailPath_str, o.sourcePlaylist_ar[i.id].rawDescription_str, o.sourcePlaylist_ar[i.id].pinLInk_str, function() {}) : t.open(o.dataThumbnails_ar[i.id].thumbnail.extraButtonUrl_str, o.dataThumbnails_ar[i.id].thumbnail.extraButtonUrlTarget_str) : "link" == l ? t.open(o.dataThumbnails_ar[i.id].thumbnail.linkUrl_str, o.dataThumbnails_ar[i.id].thumbnail.linkTarget_str) : o.dispatchEvent(e.OPEN_LIGHTBOX, {
                id: a
            })
        }, this.updateCategory = function(t) {
            this.catId_ar != t && (this.catId_ar = t, this.thumbnailsFinalX = this.thumbnailsHolder_do.getX(), this.deactivateDragScrollBar(), this.filterCategories(), this.positionThumbnailsAndMain(), this.dispatchEvent(e.CATEGORY_UPDATE))
        }, this.stopToLoadImage = function() {
            clearTimeout(this.loadThumbnailId_to), o.image_img && (o.image_img.onerror = null, o.image_img.onload = null)
        }, this.startToLoadImage = function(t) {
            o.image_img = new Image, o.image_img.onerror = o.onImageLoadErrorHandler, o.image_img.onload = o.onImageLoadHandler, o.image_img.src = t
        }, this.loadThumbImage = function() {
            var t;
            o.stopToLoadImage();
            for (var e = 0; e < o.totalCats; e++)
                if (o.loadMoreCatsData_ar[e].isSelected && o.loadMoreCatsData_ar[e].loaded < o.loadMoreCatsData_ar[e].limit) {
                    t = e;
                    break
                }
            for (var e = 0; e < o.tempTotalThumbnails && (o.curDataThumbnail = o.tempPlaylist_ar[e], o.curDataThumbnail.catId != t || o.curDataThumbnail.thumbnail); e++);
            o.startToLoadImage(o.sourcePlaylist_ar[o.curDataThumbnail.id].thumbnailPath_str)
        }, this.onImageLoadErrorHandler = function(t) {
            var i = "Thumbnail image can't be loaded, probably the path is incorrect <font color='#FFFFFF'>" + o.sourcePlaylist_ar[o.curDataThumbnail.id].thumbnailPath_str + "</font>";
            o.dispatchEvent(e.ERROR, {
                text: i
            })
        }, this.onImageLoadHandler = function(t) {
            var e = o.getThumbnail(o.curDataThumbnail.catId, o.curDataThumbnail.id);
            o.loadMoreCatsData_ar[o.curDataThumbnail.catId].loaded++, o.curDataThumbnail.thumbnail = e, o.originalDataThumbnails_ar[o.curDataThumbnail.id].thumbnail = e, e.hasImg_bl = !0, e.originalWidth = o.image_img.width, e.originalHeight = o.image_img.height, e.addImage(o.image_img), o.countLoadedThumbs++, o.isFirstThumbnailLoaded_bl || setTimeout(function() {
                o.firstThumbnailShowed_bl = !0
            }, 200), o.updateCurThumbnails(), o.positionThumbnailsAndMain(), o.centerThumbnails(!0)
        }, this.updateCatsLimits = function() {
            var t = o.thumbnailsPerSet,
                e = 0;
            if (this.showAllCategories_bl && 0 == this.catId_ar[0]) {
                if (0 == this.loadMoreCatsData_ar[0].limit)
                    for (; t > 0 && e < this.totalCats;) this.loadMoreCatsData_ar[e].limit + t > this.loadMoreCatsData_ar[e].total ? (t -= this.loadMoreCatsData_ar[e].total - this.loadMoreCatsData_ar[e].limit, this.loadMoreCatsData_ar[e].limit = this.loadMoreCatsData_ar[e].total) : (this.loadMoreCatsData_ar[e].limit += t, t = 0), e++
            } else
                for (var i = 0; i < this.totalCats; i++) this.loadMoreCatsData_ar[i].isSelected && this.loadMoreCatsData_ar[i].limit < this.thumbnailsPerSet && (this.loadMoreCatsData_ar[i].limit = Math.min(this.loadMoreCatsData_ar[i].total, this.thumbnailsPerSet));
            this.totalThumbnailsLimit = 0;
            for (var i = 0; i < this.totalCats; i++) this.loadMoreCatsData_ar[i].isSelected && (this.totalThumbnailsLimit += this.loadMoreCatsData_ar[i].limit)
        }, this.allowToLoadMoreThumbnails = function() {
            return this.totalLoadedThumbnails == this.totalThumbnailsLimit && this.totalLoadedThumbnails < this.tempTotalThumbnails ? !0 : !1
        }, this.loadMore = function() {
            for (var t = o.thumbnailsPerSet, e = 0; t > 0 && e < o.totalCats;) o.loadMoreCatsData_ar[e].isSelected && (o.loadMoreCatsData_ar[e].limit + t > o.loadMoreCatsData_ar[e].total ? (t -= o.loadMoreCatsData_ar[e].total - o.loadMoreCatsData_ar[e].limit, o.loadMoreCatsData_ar[e].limit = o.loadMoreCatsData_ar[e].total) : (o.loadMoreCatsData_ar[e].limit += t, t = 0)), e++;
            this.totalThumbnailsLimit = 0;
            for (var i = 0; i < this.totalCats; i++) this.loadMoreCatsData_ar[i].isSelected && (this.totalThumbnailsLimit += this.loadMoreCatsData_ar[i].limit);
            o.isLoadingMore_bl = !0, o.deactivateDragScrollBar(), o.loadThumbImage()
        }, this.updateCatsData = function() {
            var t, e, i = [],
                s = [];
            o.loadMoreCatsData_ar = [];
            for (var a = 0; a < o.totalCats; a++) i[a] = 0, s[a] = 0;
            for (var a = 0; a < o.totalThumbnails; a++) t = o.dataThumbnails_ar[a], i[t.catId]++, t.thumbnail && s[t.catId]++;
            for (var a = 0; a < o.totalCats; a++) e = {}, e.loaded = s[a], e.limit = s[a], e.total = i[a], e.isSelected = !1, o.loadMoreCatsData_ar[a] = e
        }, this.filterCategories = function() {
            var t, e, i = 0;
            this.tempPlaylist_ar = [], this.playlist_ar = [], this.dataThumbnails_ar = [], o.stopToLoadImage();
            for (var s = 0; s < o.sourcePlaylist_ar.length; s++) t = o.originalDataThumbnails_ar[s], -1 != o.sourcePlaylist_ar[s].titleText_str.toLowerCase().indexOf(o.searchValue) ? o.dataThumbnails_ar.push(t) : t.thumbnail && t.thumbnail.hide(!0);
            if (o.totalThumbnails = o.dataThumbnails_ar.length, this.updateCatsData(), this.showAllCategories_bl && (i = 1), this.showAllCategories_bl && 0 == o.catId_ar[0]) {
                for (s = 0; s < this.totalThumbnails; s++) t = this.dataThumbnails_ar[s], this.tempPlaylist_ar.push(t), t.thumbnail && (this.playlist_ar.push(t), t.thumbnail.show(!0));
                for (var s = 0; s < this.totalCats; s++) this.loadMoreCatsData_ar[s].isSelected = !0
            } else
                for (s = 0; s < this.totalThumbnails; s++) {
                    t = this.dataThumbnails_ar[s], e = !1;
                    for (var a = 0; a < this.totalCats; a++) t.catId == o.catId_ar[a] - i && (this.tempPlaylist_ar.push(t), t.thumbnail && this.playlist_ar.push(t), this.loadMoreCatsData_ar[o.catId_ar[a] - i].isSelected = !0, e = !0);
                    e ? t.thumbnail && t.thumbnail.show(!0) : t.thumbnail && t.thumbnail.hide(!0)
                }
            this.tempTotalThumbnails = this.tempPlaylist_ar.length, this.totalLoadedThumbnails = this.playlist_ar.length, 0 == this.tempTotalThumbnails ? (this.hasSearchResult_bl = !1, this.showNoSearch()) : (this.hasSearchResult_bl = !0, this.hideNoSearch()), this.updateCatsLimits(), this.totalLoadedThumbnails < this.totalThumbnailsLimit ? (clearTimeout(this.loadThumbnailId_to), this.loadThumbnailId_to = setTimeout(this.loadThumbImage, 300)) : (o.updateCurThumbnails(), o.positionThumbnailsAndMain(), o.centerThumbnails(!0), "loadmoreonscroll" == o.thumbnailLoadingType_str && o.stageWidth > o.totalWidth && o.allowToLoadMoreThumbnails() && o.loadMore()), "loadmorewithbutton" == o.thumbnailLoadingType_str && this.hideOrShowLoadMoreButton()
        }, this.updateCurThumbnails = function() {
            var t, e = 0;
            if (this.playlist_ar = [], this.showAllCategories_bl && (e = 1), this.showAllCategories_bl && 0 == o.catId_ar[0])
                for (i = 0; i < this.totalThumbnails; i++) t = this.dataThumbnails_ar[i], t.thumbnail && this.playlist_ar.push(t);
            else
                for (i = 0; i < this.totalThumbnails; i++) {
                    t = this.dataThumbnails_ar[i];
                    for (var s = 0; s < this.totalCats; s++) t.catId == o.catId_ar[s] - e && t.thumbnail && this.playlist_ar.push(t)
                }
            this.totalLoadedThumbnails = this.playlist_ar.length, this.totalLoadedThumbnails < this.totalThumbnailsLimit ? (clearTimeout(this.loadThumbnailId_to), this.loadThumbnailId_to = setTimeout(this.loadThumbImage, 10)) : (o.isLoadingMore_bl = !1, "loadmoreonscroll" == o.thumbnailLoadingType_str && o.stageWidth > o.totalWidth && o.allowToLoadMoreThumbnails() && o.loadMore()), "loadmorewithbutton" == o.thumbnailLoadingType_str && this.hideOrShowLoadMoreButton()
        }, this.setDataForResize = function() {
            if (this.stageWidth) {
                this.totalRows = Math.ceil((this.stageHeight - 2 * this.thumbsVOffset + this.thumbsVSpace) / (this.thumbnailMaxHeight + 2 * this.borderSize + this.thumbsVSpace)), this.thumbHeight = Math.floor((this.stageHeight - 2 * this.thumbsVOffset + this.thumbsVSpace - this.totalRows * (this.thumbsVSpace + 2 * this.borderSize)) / this.totalRows);
                var t = this.totalRows * (this.thumbHeight + 2 * this.borderSize + this.thumbsVSpace) - this.thumbsVSpace;
                this.leftHeight = this.stageHeight - 2 * this.thumbsVOffset - t, this.prevStageWidth = this.stageWidth
            }
        }, this.positionThumbnailsAndMain = function() {
            this.positionThumbnails(), this.positionLoadMoreButton(), this.totalWidth += this.offsetTotalWidth
        }, this.positionThumbnails = function() {
            for (var t, e, i, s, a, n, l, r = 0, h = [], d = [], u = [], c = 0; c < o.totalRows; c++) d[c] = o.thumbHeight + 2 * o.borderSize, o.leftHeight > 0 && c < o.leftHeight && d[c]++, 0 == c ? u[c] = o.thumbsVOffset : u[c] = u[c - 1] + d[c - 1] + o.thumbsVSpace;
            for (var c = 0; c < o.totalLoadedThumbnails; c++) {
                if (a = o.playlist_ar[c].thumbnail, o.thumbWidth = Math.floor(a.imageOriginalW * (this.thumbHeight / this.thumbnailMaxHeight)), i = o.thumbWidth + 2 * o.borderSize, c < o.totalRows) s = d[c], e = u[c], t = o.thumbsHOffset, h[c] = t + i;
                else {
                    n = h[0], l = 0;
                    for (var _ = 1; _ < o.totalRows; _++) h[_] < n && (n = h[_], l = _);
                    s = d[l], e = u[l], t = h[l] + o.thumbsHSpace, h[l] = t + i
                }
                t + i > r && (r = t + i), a.finalW = i, a.finalH = s, a.finalX = t, a.finalY = e, a.resizeAndPosition()
            }
            a ? o.totalWidth = r + o.thumbsHOffset : o.totalWidth = 0
        }, this.setupNoSearch = function() {
            this.noSearch_do = new FWDRLDisplayObject("div"), this.noSearch_do.setOverflow("visible"), this.noSearch_do.setDisplay("inline-block"), this.noSearch_do.getStyle().fontSmoothing = "antialiased", this.noSearch_do.getStyle().webkitFontSmoothing = "antialiased", this.noSearch_do.getStyle().textRendering = "optimizeLegibility", this.noSearch_do.getStyle().whiteSpace = "nowrap", this.noSearch_do.setBackfaceVisibility(), this.noSearch_do.getStyle().padding = "", this.noSearch_do.getStyle().margin = "", this.noSearch_do.screen.className = s.searchNotFoundClassName_str, this.noSearch_do.hasTransform3d_bl = !1, this.noSearch_do.hasTransform2d_bl = !1, this.noSearch_do.setAlpha(0), this.noSearch_do.setInnerHTML(s.searchNotFoundLabel_str), this.addChild(this.noSearch_do), setTimeout(function() {
                o.noSearch_do.w = o.noSearch_do.getWidth(), o.noSearch_do.h = o.noSearch_do.getHeight(), o.removeChild(o.noSearch_do)
            }, 70)
        }, this.showNoSearch = function() {
            this.isNoSearchFoundShowed_bl || (this.isNoSearchFoundShowed_bl = !0, this.addChild(this.noSearch_do), this.positionNoSearchLabel(), FWDRLTweenMax.killTweensOf(this.noSearch_do), FWDRLTweenMax.to(this.noSearch_do, .1, {
                alpha: 1,
                yoyo: !0,
                repeat: 8
            }))
        }, this.hideNoSearch = function() {
            this.isNoSearchFoundShowed_bl && (this.isNoSearchFoundShowed_bl = !1, FWDRLTweenMax.killTweensOf(this.noSearch_do), FWDRLTweenMax.to(this.noSearch_do, .1, {
                alpha: 0,
                onComplete: function() {
                    o.removeChild(o.noSearch_do)
                }
            }))
        }, this.positionNoSearchLabel = function() {
            this.isNoSearchFoundShowed_bl && (this.noSearch_do.setX(parseInt((this.stageWidth - this.noSearch_do.w) / 2)), a.menu_do.isShowed_bl && this.centerNoSearchFoundLabelWithMenu_bl ? this.noSearch_do.setY(parseInt((this.stageHeight - a.menu_do.menuOffsetBottom - this.noSearch_do.h) / 2)) : this.noSearch_do.setY(parseInt((this.stageHeight - this.noSearch_do.h) / 2)))
        }, this.setupLoadMoreButton = function() {
            FWDUGPMenuButton.setPrototype(), o.loadMoreButton_do = new FWDUGPMenuButton(s.loadMoreButtonLabel_str, s.loadMoreButtonBackgroundNormalClassName_str, s.loadMoreButtonBackgroundSelectedClassName_str, s.loadMoreButtonTextNormalClassName_str, s.loadMoreButtonTextSeectedClassName_str), this.loadMoreButton_do.setLabel(s.loadMoreButtonLabel_str), this.loadMoreButton_do.getStyle().zIndex = 20, this.loadMoreButton_do.addListener(FWDUGPMenuButton.MOUSE_UP, this.loadMoreButtonOnMouseUpHandler), this.hideLoadMoreButton(), this.thumbnailsHolder_do.addChild(this.loadMoreButton_do)
        }, this.loadMoreButtonOnMouseUpHandler = function() {
            o.hideLoadMoreButton(), o.loadMore()
        }, this.hideLoadMoreButton = function() {
            this.loadMoreButton_do && this.isLoadMoreButtonShowed_bl && (this.isLoadMoreButtonShowed_bl = !1, this.loadMoreButton_do.setVisible(!1))
        }, this.showLoadMoreButton = function() {
            this.loadMoreButton_do && !this.isLoadMoreButtonShowed_bl && (this.isLoadMoreButtonShowed_bl = !0, this.loadMoreButton_do.setVisible(!0), this.isMobile_bl || (this.loadMoreButton_do.setAlpha(0), FWDRLTweenMax.to(this.loadMoreButton_do, .6, {
                alpha: 1
            })), this.positionLoadMoreButton())
        }, this.hideOrShowLoadMoreButton = function() {
            o.allowToLoadMoreThumbnails() ? o.showLoadMoreButton() : o.hideLoadMoreButton()
        }, this.positionLoadMoreButton = function() {
            return this.isLoadMoreButtonShowed_bl && this.loadMoreButton_do ? (this.isMobile_bl || 0 == this.loadMoreButton_do.alpha ? (this.loadMoreButton_do.setX(this.totalWidth + this.loadMoreButtonOffsetLeft),
                this.loadMoreButton_do.setY(parseInt((this.stageHeight - this.loadMoreButton_do.h) / 2))) : FWDRLTweenMax.to(this.loadMoreButton_do, .5, {
                x: parseInt(this.totalWidth + this.loadMoreButtonOffsetLeft),
                y: parseInt((this.stageHeight - this.loadMoreButton_do.h) / 2)
            }), void(this.offsetTotalWidth = this.loadMoreButtonOffsetLeft + this.loadMoreButtonOffsetRight + this.loadMoreButton_do.w)) : void(this.offsetTotalWidth = 0)
        }, this.centerThumbnails = function(t) {
            o.currentThumbnailsFinalX = o.thumbnailsFinalX, o.isMobileScrollBarRunning_bl || o.isDragging_bl || (o.stageWidth >= o.totalWidth ? o.thumbnailsFinalX = Math.round((o.stageWidth - o.totalWidth) / 2) : o.thumbnailsFinalX > 0 ? o.thumbnailsFinalX = 0 : o.thumbnailsFinalX < o.stageWidth - o.totalWidth && (o.isLoadingMore_bl || (o.thumbnailsFinalX = o.stageWidth - o.totalWidth)), FWDRLTweenMax.killTweensOf(o.thumbnailsHolder_do), t ? FWDRLTweenMax.to(o.thumbnailsHolder_do, .3, {
                x: o.thumbnailsFinalX
            }) : o.thumbnailsHolder_do.setX(o.thumbnailsFinalX))
        }, o.addMouseWheelSupport = function() {
            o.screen.addEventListener ? (o.screen.addEventListener("mousewheel", o.mouseWheelDragHandler), o.screen.addEventListener("DOMMouseScroll", o.mouseWheelDragHandler)) : o.screen.attachEvent && o.screen.attachEvent("onmousewheel", o.mouseWheelDragHandler)
        }, o.removeMouseWheelSupport = function() {
            o.screen.removeEventListener ? (o.screen.removeEventListener("mousewheel", o.mouseWheelDragHandler), o.screen.removeEventListener("DOMMouseScroll", o.mouseWheelDragHandler)) : o.screen.detachEvent && o.screen.detachEvent("onmousewheel", o.mouseWheelDragHandler)
        }, o.mouseWheelDragHandler = function(t) {
            var e;
            if (!(o.totalWidth <= o.stageWidth || o.isDragging_bl)) {
                var e = t.detail || t.wheelDelta;
                return t.wheelDelta && (e *= -1), e > 0 ? o.vx -= 10 : 0 > e && (o.vx += 10), o.isMobileScrollBarRunning_bl || o.activateDragScrollBar(), t.preventDefault ? void t.preventDefault() : !1
            }
        }, this.setupDragScrollbar = function() {
            o.isMobile_bl ? o.hasPointerEvent_bl ? o.screen.addEventListener("MSPointerDown", o.mobileScrBarStartHandler) : o.screen.addEventListener("touchstart", o.mobileScrBarStartTest) : o.screen.addEventListener ? o.screen.addEventListener("mousedown", o.mobileScrBarStartHandler) : o.screen.attachEvent && o.screen.attachEvent("onmousedown", o.mobileScrBarStartHandler)
        }, this.mobileScrBarStartTest = function(e) {
            var i = FWDRLUtils.getViewportMouseCoordinates(e);
            o.lastPressedX = i.screenX, o.lastPressedY = i.screenY, t.addEventListener("touchmove", o.mobileScrBarMoveTest)
        }, this.mobileScrBarMoveTest = function(e) {
            if (1 == e.touches.length) {
                var i = FWDRLUtils.getViewportMouseCoordinates(e);
                o.mouseX = i.screenX, o.mouseY = i.screenY;
                var s = Math.atan2(o.mouseY - o.lastPressedY, o.mouseX - o.lastPressedX),
                    n = 180 * Math.abs(s) / Math.PI;
                n > 120 || 60 > n || a.isFullScreen_bl ? (e.preventDefault(), o.mobileScrBarStartHandler(e), t.removeEventListener("touchmove", o.mobileScrBarMoveTest)) : (o.disableThumbClick_bl = !0, t.addEventListener("touchend", o.mobileScrBarEndTest))
            }
        }, this.mobileScrBarEndTest = function(e) {
            t.removeEventListener("touchmove", o.mobileScrBarMoveTest), t.removeEventListener("touchend", o.mobileScrBarEndTest)
        }, this.mobileScrBarStartHandler = function(e) {
            if (!(o.stageWidth > o.totalWidth)) {
                e.preventDefault && e.preventDefault();
                var i = FWDRLUtils.getViewportMouseCoordinates(e);
                o.stageWidth < o.totalWidth && (o.isDragging_bl = !0, o.lastPressedX = i.screenX, o.setOnceDumySizeOnMove_bl = !0, o.vx = 0, o.thumbnailsFinalX = o.thumbnailsHolder_do.getX(), clearTimeout(o.disableThumbClickDelayId_to), o.activateDragScrollBar()), o.isMobile_bl ? o.hasPointerEvent_bl ? (t.addEventListener("MSPointerUp", o.mobileScrBarEndHandler), t.addEventListener("MSPointerMove", o.mobileScrBarMoveHandler)) : (t.addEventListener("touchend", o.mobileScrBarEndHandler), t.addEventListener("touchmove", o.mobileScrBarMoveHandler)) : t.addEventListener ? (t.addEventListener("mouseup", o.mobileScrBarEndHandler), t.addEventListener("mousemove", o.mobileScrBarMoveHandler)) : document.attachEvent && (document.attachEvent("onmouseup", o.mobileScrBarEndHandler), document.attachEvent("onmousemove", o.mobileScrBarMoveHandler))
            }
        }, this.mobileScrBarMoveHandler = function(t) {
            if (t.preventDefault && t.preventDefault(), !(o.stageWidth > o.totalWidth)) {
                var e = FWDRLUtils.getViewportMouseCoordinates(t);
                if (e.screenX != o.lastPressedX) {
                    var i = e.screenX - o.lastPressedX;
                    o.disableThumbClick_bl = !0, (o.setOnceDumySizeOnMove_bl && !o.isMobile_bl || o.setOnceDumySizeOnMove_bl && o.hasPointerEvent_bl) && (o.dumy_do.setWidth(o.stageWidth), o.dumy_do.setHeight(o.stageHeight), o.curThumbnail_do && o.curThumbnail_do.hideContent(), o.curSelectedThumbnail_do, o.setOnceDumySizeOnMove_bl = !1), o.thumbnailsFinalX += i, o.thumbnailsFinalX = Math.round(o.thumbnailsFinalX), !o.ieOldMoveTest_bl && FWDRLUtils.isIE ? (clearInterval(o.ieOldMoveTestId_int), o.ieOldMoveTestId_int = setInterval(o.updateThumbnailsPosition, 16), o.ieOldMoveTest_bl = !0) : FWDRLUtils.isIE || o.thumbnailsHolder_do.setX(o.thumbnailsFinalX), o.lastPressedX = e.screenX, o.vx = 2 * i
                }
            }
        }, this.updateThumbnailsPosition = function() {
            o.thumbnailsHolder_do.setX(o.thumbnailsFinalX)
        }, this.mobileScrBarEndHandler = function(e) {
            clearInterval(o.ieOldMoveTestId_int), o.ieOldMoveTest_bl = !1, o.isDragging_bl = !1, o.disableThumbClickDelayId_to = setTimeout(function() {
                o.disableThumbClick_bl = !1
            }, 100), (!o.isMobile_bl || o.hasPointerEvent_bl) && (o.dumy_do.setWidth(0), o.dumy_do.setHeight(0)), o.isMobile_bl ? o.hasPointerEvent_bl ? (t.removeEventListener("MSPointerUp", o.mobileScrBarEndHandler), t.removeEventListener("MSPointerMove", o.mobileScrBarMoveHandler)) : (t.removeEventListener("touchend", o.mobileScrBarEndHandler), t.removeEventListener("touchmove", o.mobileScrBarMoveHandler)) : t.removeEventListener ? (t.removeEventListener("mouseup", o.mobileScrBarEndHandler), t.removeEventListener("mousemove", o.mobileScrBarMoveHandler)) : document.detachEvent && (document.detachEvent("onmouseup", o.mobileScrBarEndHandler), document.detachEvent("onmousemove", o.mobileScrBarMoveHandler))
        }, this.updateMobileScrollBar = function() {
            o.isDragging_bl || (o.stageWidth <= o.totalWidth && (o.vx *= o.friction, o.thumbnailsFinalX += o.vx, o.thumbnailsFinalX > 0 ? (o.vx2 = .3 * (0 - o.thumbnailsFinalX), o.vx *= o.friction, o.thumbnailsFinalX += o.vx2) : o.thumbnailsFinalX < o.stageWidth - o.totalWidth && (o.vx2 = .3 * (o.stageWidth - o.totalWidth - o.thumbnailsFinalX), o.vx *= o.friction, o.thumbnailsFinalX += o.vx2), o.thumbnailsFinalX < o.stageWidth - o.totalWidth && "loadmoreonscroll" == o.thumbnailLoadingType_str && !o.isLoadingMore_bl && o.allowToLoadMoreThumbnails() && (clearTimeout(this.loadInifiniteId_to), this.loadInifiniteId_to = setTimeout(function() {
                o.loadMore()
            }, 500))), Math.abs(o.vx) < .01 && o.deactivateDragScrollBar(), o.thumbnailsHolder_do.setX(Math.round(o.thumbnailsFinalX))), o.stageWidth > o.totalWidth && o.deactivateDragScrollBar()
        }, this.activateDragScrollBar = function() {
            o.stageWidth > o.totalWidth || o.isMobileScrollBarRunning_bl || (o.isMobileScrollBarRunning_bl = !0, FWDRLTweenMax.killTweensOf(o.thumbnailsHolder_do), clearInterval(o.updateMobileScrollBarId_int), o.updateMobileScrollBarId_int = setInterval(o.updateMobileScrollBar, 16))
        }, this.deactivateDragScrollBar = function() {
            o.isMobileScrollBarRunning_bl = !1, o.vx = o.vx2 = 0, clearInterval(o.updateMobileScrollBarId_int), t.removeEventListener && t.removeEventListener("touchmove", o.mobileScrBarMoveTest)
        }, this.init()
    };
    e.setPrototype = function() {
        e.prototype = new FWDRLDisplayObject("div", "relative")
    }, e.OPEN_LIGHTBOX = "openLightbox", e.CATEGORY_UPDATE = "categoryUpdate", e.ERROR = "error", e.prototype = null, t.FWDUGPMasonryHorizontalThumbnailsManager = e
}(window),
function(t) {
    var e = function(s, a) {
        var o = this;
        e.prototype;
        this.sourcePlaylist_ar = s.playlist_ar.playlistItems, this.originalDataThumbnails_ar = [], this.dataThumbnails_ar = [], this.tempPlaylist_ar, this.columnHeights_ar = [], this.loadMoreCatsData_ar = [], this.catId_ar = s.startAtCategory_ar, this.loadMoreButton_do, this.curDataThumbnail, this.thumbnailLoadingType_str = s.thumbnailLoadingType_str, this.totalLoadedThumbnails = 0, this.loadMoreButtonOffsetTop = s.loadMoreButtonOffsetTop, this.loadMoreButtonOffsetBottom = s.loadMoreButtonOffsetBottom, this.thumbnailsPerSet = s.howManyThumbnailsToDisplayPerSet, this.thumbsHOffset = s.thumbnailsHorizontalOffset, this.thumbsVOffset = s.thumbnailsVerticalOffset, this.offsetTotalHeight = 0, this.maxH = 0, this.thumbOffsetX = 0, this.catId = s.startAtCategory, this.stageWidth = 0, this.prevStageWidth = 0, this.thumbnailMaxWidth = s.thumbnailMaxWidth, this.thumbnailMaxHeight = s.thumbnailMaxHeight, this.leftWidth = 0, this.thumbWidth, this.thumbHeight, this.thumbsHSpace = s.horizontalSpaceBetweenThumbnails, this.thumbsVSpace = s.verticalSpaceBetweenThumbnails, this.countLoadedThumbs = 0, this.borderSize = s.thumbnailBorderSize, this.totalThumbnails = this.sourcePlaylist_ar.length, this.tempTotalThumbnails = this.sourcePlaylist_ar.length, this.totalOriginalThumbnails = this.sourcePlaylist_ar.length, this.globalX = 0, this.globalY = 0, this.searchValue = "", this.catChanging_to, this.arangeFaterTweenId_to, this.updateSearch_to, this.centerWithMenu_bl = s.centerNoSearchFoundLabelWithMenu_bl, this.isLoadAtTheEnd_bl = !1, this.isLoadMoreButtonShowed_bl = !0, this.isCatChanging_bl = !1, this.isFirstThumbnailLoaded_bl = !1, this.firstThumbnailShowed_bl = !1, this.animateParent_bl = s.animateParent_bl, this.hasExtraText_bl = s.hasExtraText_bl, this.isVerticalType_bl = s.isVerticalType_bl, this.showAllCategories_bl = s.showAllCategories_bl, this.totalCats = this.showAllCategories_bl ? s.categories_ar.length - 1 : s.categories_ar.length, this.isMobile_bl = FWDRLUtils.isMobile, this.init = function() {
            this.setOverflow("visible"), this.setBkColor(a.backgroundColor_str), this.setupThumbnailsData(), "loadmorewithbutton" == o.thumbnailLoadingType_str ? this.setupLoadMoreButton() : "loadmoreonscroll" == this.thumbnailLoadingType_str && this.setupLoadMoreOnScroll(), this.filterCategories(), this.startGetMousePosition(), this.setupNoSearch()
        }, this.resizeAndPosition = function() {
            o.stageWidth = a.stageWidth, o.setDataForResize(), o.positionThumbnailsAndMain()
        }, this.startGetMousePosition = function() {
            t.addEventListener ? (o.isMobile_bl || t.addEventListener("touchstart", this.getMousePosition), t.addEventListener("mousemove", this.getMousePosition)) : document.attachEvent && document.attachEvent("onmousemove", this.getMousePosition)
        }, this.getMousePosition = function(t) {
            var e = FWDRLUtils.getViewportMouseCoordinates(t);
            o.isMobile_bl || (o.globalX = e.screenX, o.globalY = e.screenY)
        }, this.setupThumbnailsData = function() {
            for (var t, e = [], i = 0; i < this.totalThumbnails; i++) t = {}, t.thumbnail = void 0, t.id = i, t.catId = this.sourcePlaylist_ar[i].catId, this.originalDataThumbnails_ar[i] = t, this.dataThumbnails_ar[i] = t;
            for (var i = 0; i < this.totalCats; i++) e[i] = 0;
            for (var i = 0; i < this.totalThumbnails; i++) e[this.dataThumbnails_ar[i].catId]++;
            for (var i = 0; i < this.totalCats; i++) t = {}, t.loaded = 0, t.limit = 0, t.total = e[i], t.isSelected = !1, this.loadMoreCatsData_ar[i] = t
        }, this.search = function(t) {
            o.searchValue = t, clearTimeout(o.updateSearch_to), o.updateSearch_to = setTimeout(function() {
                o.filterCategories()
            }, 200)
        }, this.getThumbnail = function(t, e) {
            var i = {};
            return i.parent = this, i.id = e, i.catId = t, i.presetType_str = s.presetType_str, i.backgroundColor_str = s.thumbnailBackgroundColor_str, i.borderNormalColor_str = this.sourcePlaylist_ar[e].thumbnailBorderNormalColor || s.thumbnailBorderNormalColor_str, i.borderSelectedColor_str = this.sourcePlaylist_ar[e].thumbnailBorderSelectedColor || s.thumbnailBorderSelectedColor_str, i.borderSize = s.thumbnailBorderSize, i.borderRadius = s.thumbnailBorderRadius, i.thumbnailOverlayColor_str = this.sourcePlaylist_ar[e].thumbnailOverlayColor || s.thumbnailOverlayColor_str, i.thumbnailOverlayOpacity = s.thumbnailOverlayOpacity, i.spaceBetweenTextAndIcons = s.spaceBetweenTextAndIcons, i.extraButtonUrl_str = this.sourcePlaylist_ar[e].extraButtonUrl_str, i.extraButtonUrlTarget_str = this.sourcePlaylist_ar[e].extraButtonUrlTarget_str, i.thumbIconPathN_str = this.sourcePlaylist_ar[e].thumbIconPathN_str, i.thumbIconPathS_str = this.sourcePlaylist_ar[e].thumbIconPathS_str, i.thumbnailIconWidth = s.thumbnailIconWidth, i.thumbnailIconHeight = s.thumbnailIconHeight, i.linkIconPathN_str = s.linkIconPathN_str, i.linkIconPathS_str = s.linkIconPathS_str, i.spaceBetweenThumbanilIcons = s.spaceBetweenThumbanilIcons, i.hideAndShowTransitionType_str = s.hideAndShowTransitionType_str, i.textVerticalAlign_str = s.textVerticalAlign_str, i.imageTransitionDirection_str = s.imageTransitionDirection_str, i.thumbanilBoxShadow_str = s.thumbanilBoxShadow_str, i.textAnimType_str = s.textAnimType_str, i.disableThumbnails_bl = s.disableThumbnails_bl, i.useIconButtons_bl = s.useIconButtons_bl, i.alt_str = this.sourcePlaylist_ar[e].alt_str, i.linkUrl_str = this.sourcePlaylist_ar[e].url, i.linkTarget_str = this.sourcePlaylist_ar[e].target, i.contentOffsetY = s.contentOffsetY, i.buttonsOffest = s.buttonsOffestY, i.isVerticalType_bl = s.isVerticalType_bl, i.isDisabled_bl = this.sourcePlaylist_ar[e].disabled_bl, i.htmlContent1_str = this.sourcePlaylist_ar[e].htmlContent1_str, i.htmlContent2_str = this.sourcePlaylist_ar[e].htmlContent2_str, i.htmlExtraContent_str = this.sourcePlaylist_ar[e].htmlExtraContent_str, FWDUGPThumbnail.setPrototype(), thumbnail = new FWDUGPThumbnail(i), thumbnail.addListener(FWDUGPThumbnail.MOUSE_UP, this.thumbanilOnMouseUpHandler), this.addChild(thumbnail), thumbnail
        }, this.thumbanilOnMouseUpHandler = function(i) {
            for (var a = i.id, n = i.id, l = i.extraButton ? "extraButtonLink" : o.sourcePlaylist_ar[a].type_str, r = 0; r < o.totalOriginalThumbnails; r++) n > r && (o.sourcePlaylist_ar[r].type_str == FWDUGP.NONE || o.sourcePlaylist_ar[r].type_str == FWDUGP.LINK) && (a -= 1);
            "extraButtonLink" == l ? s.isPintrest_bl ? PDK.pin(o.sourcePlaylist_ar[i.id].thumbnailPath_str, o.sourcePlaylist_ar[i.id].rawDescription_str, o.sourcePlaylist_ar[i.id].pinLInk_str, function() {}) : t.open(o.dataThumbnails_ar[i.id].thumbnail.extraButtonUrl_str, o.dataThumbnails_ar[i.id].thumbnail.extraButtonUrlTarget_str) : "link" == l ? t.open(o.dataThumbnails_ar[i.id].thumbnail.linkUrl_str, o.dataThumbnails_ar[i.id].thumbnail.linkTarget_str) : o.dispatchEvent(e.OPEN_LIGHTBOX, {
                id: a
            })
        }, this.updateCategory = function(t) {
            this.catId_ar != t && (this.catId_ar = t, this.filterCategories(), this.positionThumbnailsAndMain(), this.dispatchEvent(e.CATEGORY_UPDATE))
        }, this.stopToLoadImage = function() {
            clearTimeout(this.loadThumbnailId_to), o.image_img && (o.image_img.onerror = null, o.image_img.onload = null)
        }, this.startToLoadImage = function(t) {
            o.image_img = new Image, o.image_img.onerror = o.onImageLoadErrorHandler, o.image_img.onload = o.onImageLoadHandler, o.image_img.src = t
        }, this.loadThumbImage = function() {
            var t;
            o.stopToLoadImage();
            for (var e = 0; e < o.totalCats; e++)
                if (o.loadMoreCatsData_ar[e].isSelected && o.loadMoreCatsData_ar[e].loaded < o.loadMoreCatsData_ar[e].limit) {
                    t = e;
                    break
                }
            for (var e = 0; e < o.tempTotalThumbnails && (o.curDataThumbnail = o.tempPlaylist_ar[e], o.curDataThumbnail.catId != t || o.curDataThumbnail.thumbnail); e++);
            o.startToLoadImage(o.sourcePlaylist_ar[o.curDataThumbnail.id].thumbnailPath_str)
        }, this.onImageLoadErrorHandler = function(t) {
            var i = "Thumbnail image can't be loaded, probably the path is incorrect <font color='#FFFFFF'>" + o.sourcePlaylist_ar[o.curDataThumbnail.id].thumbnailPath_str + "</font>";
            o.dispatchEvent(e.ERROR, {
                text: i
            })
        }, this.onImageLoadHandler = function(t) {
            var e = o.getThumbnail(o.curDataThumbnail.catId, o.curDataThumbnail.id);
            o.loadMoreCatsData_ar[o.curDataThumbnail.catId].loaded++, o.curDataThumbnail.thumbnail = e, o.originalDataThumbnails_ar[o.curDataThumbnail.id].thumbnail = e, e.hasImg_bl = !0, e.originalWidth = o.image_img.width, e.originalHeight = o.image_img.height, e.addImage(o.image_img), o.countLoadedThumbs++, o.isFirstThumbnailLoaded_bl || setTimeout(function() {
                o.firstThumbnailShowed_bl = !0
            }, 200), o.updateCurThumbnails(), o.positionThumbnailsAndMain()
        }, this.updateCatsLimits = function() {
            var t = o.thumbnailsPerSet,
                e = 0;
            if (this.showAllCategories_bl && 0 == this.catId_ar[0]) {
                if (0 == this.loadMoreCatsData_ar[0].limit)
                    for (; t > 0 && e < this.totalCats;) this.loadMoreCatsData_ar[e].limit + t > this.loadMoreCatsData_ar[e].total ? (t -= this.loadMoreCatsData_ar[e].total - this.loadMoreCatsData_ar[e].limit, this.loadMoreCatsData_ar[e].limit = this.loadMoreCatsData_ar[e].total) : (this.loadMoreCatsData_ar[e].limit += t, t = 0), e++
            } else
                for (var i = 0; i < this.totalCats; i++) this.loadMoreCatsData_ar[i].isSelected && this.loadMoreCatsData_ar[i].limit < this.thumbnailsPerSet && (this.loadMoreCatsData_ar[i].limit = Math.min(this.loadMoreCatsData_ar[i].total, this.thumbnailsPerSet));
            this.totalThumbnailsLimit = 0;
            for (var i = 0; i < this.totalCats; i++) this.loadMoreCatsData_ar[i].isSelected && (this.totalThumbnailsLimit += this.loadMoreCatsData_ar[i].limit)
        }, this.allowToLoadMoreThumbnails = function() {
            return this.totalLoadedThumbnails == this.totalThumbnailsLimit && this.totalLoadedThumbnails < this.tempTotalThumbnails ? !0 : !1
        }, this.loadMore = function() {
            for (var t = o.thumbnailsPerSet, e = 0; t > 0 && e < o.totalCats;) o.loadMoreCatsData_ar[e].isSelected && (o.loadMoreCatsData_ar[e].limit + t > o.loadMoreCatsData_ar[e].total ? (t -= o.loadMoreCatsData_ar[e].total - o.loadMoreCatsData_ar[e].limit, o.loadMoreCatsData_ar[e].limit = o.loadMoreCatsData_ar[e].total) : (o.loadMoreCatsData_ar[e].limit += t, t = 0)), e++;
            this.totalThumbnailsLimit = 0;
            for (var i = 0; i < this.totalCats; i++) this.loadMoreCatsData_ar[i].isSelected && (this.totalThumbnailsLimit += this.loadMoreCatsData_ar[i].limit);
            o.loadThumbImage()
        }, this.updateCatsData = function() {
            var t, e, i = [],
                s = [];
            o.loadMoreCatsData_ar = [];
            for (var a = 0; a < o.totalCats; a++) i[a] = 0, s[a] = 0;
            for (var a = 0; a < o.totalThumbnails; a++) t = o.dataThumbnails_ar[a], i[t.catId]++, t.thumbnail && s[t.catId]++;
            for (var a = 0; a < o.totalCats; a++) e = {}, e.loaded = s[a], e.limit = s[a], e.total = i[a], e.isSelected = !1, o.loadMoreCatsData_ar[a] = e
        }, this.filterCategories = function() {
            var t, e, i = 0;
            this.tempPlaylist_ar = [], this.playlist_ar = [], this.dataThumbnails_ar = [], o.stopToLoadImage();
            for (var s = 0; s < o.sourcePlaylist_ar.length; s++) t = o.originalDataThumbnails_ar[s], -1 != o.sourcePlaylist_ar[s].titleText_str.toLowerCase().indexOf(o.searchValue) ? o.dataThumbnails_ar.push(t) : t.thumbnail && t.thumbnail.hide(!0);
            if (o.totalThumbnails = o.dataThumbnails_ar.length, this.updateCatsData(), this.showAllCategories_bl && (i = 1), this.showAllCategories_bl && 0 == o.catId_ar[0]) {
                for (s = 0; s < this.totalThumbnails; s++) t = this.dataThumbnails_ar[s], this.tempPlaylist_ar.push(t), t.thumbnail && (this.playlist_ar.push(t), t.thumbnail.show(!0));
                for (var s = 0; s < this.totalCats; s++) this.loadMoreCatsData_ar[s].isSelected = !0
            } else
                for (s = 0; s < this.totalThumbnails; s++) {
                    t = this.dataThumbnails_ar[s], e = !1;
                    for (var a = 0; a < this.totalCats; a++) t.catId == o.catId_ar[a] - i && (this.tempPlaylist_ar.push(t), t.thumbnail && this.playlist_ar.push(t), this.loadMoreCatsData_ar[o.catId_ar[a] - i].isSelected = !0, e = !0);
                    e ? t.thumbnail && t.thumbnail.show(!0) : t.thumbnail && t.thumbnail.hide(!0)
                }
            this.tempTotalThumbnails = this.tempPlaylist_ar.length, this.totalLoadedThumbnails = this.playlist_ar.length, 0 == this.tempTotalThumbnails ? (this.hasSearchResult_bl = !1, this.showNoSearch()) : (this.hasSearchResult_bl = !0, this.hideNoSearch()), this.updateCatsLimits(), this.totalLoadedThumbnails < this.totalThumbnailsLimit ? (clearTimeout(this.loadThumbnailId_to), this.loadThumbnailId_to = setTimeout(this.loadThumbImage, 300)) : (o.updateCurThumbnails(), o.positionThumbnailsAndMain()), "loadmorewithbutton" == o.thumbnailLoadingType_str && this.hideOrShowLoadMoreButton()
        }, this.updateCurThumbnails = function() {
            var t, e = 0;
            if (this.playlist_ar = [], this.showAllCategories_bl && (e = 1), this.showAllCategories_bl && 0 == o.catId_ar[0])
                for (i = 0; i < this.totalThumbnails; i++) t = this.dataThumbnails_ar[i], t.thumbnail && this.playlist_ar.push(t);
            else
                for (i = 0; i < this.totalThumbnails; i++) {
                    t = this.dataThumbnails_ar[i];
                    for (var s = 0; s < this.totalCats; s++) t.catId == o.catId_ar[s] - e && t.thumbnail && this.playlist_ar.push(t)
                }
            this.totalLoadedThumbnails = this.playlist_ar.length, this.totalLoadedThumbnails < this.totalThumbnailsLimit ? (clearTimeout(this.loadThumbnailId_to), this.hasExtraText_bl ? this.loadThumbnailId_to = setTimeout(this.loadThumbImage, 53) : this.loadThumbnailId_to = setTimeout(this.loadThumbImage, 10)) : this.hasExtraText_bl && (o.positionThumbnailWithExtraContent(), o.setFinalSize()), "loadmorewithbutton" == o.thumbnailLoadingType_str ? this.hideOrShowLoadMoreButton() : "loadmoreonscroll" == this.thumbnailLoadingType_str && this.loadInfinite()
        }, this.setDataForResize = function(t) {
            if (this.stageWidth) {
                this.totalColumns = Math.ceil((this.stageWidth - 2 * this.thumbsHOffset + this.thumbsHSpace) / (this.thumbnailMaxWidth + 2 * this.borderSize + this.thumbsHSpace)), this.thumbWidth = Math.floor((this.stageWidth - 2 * this.thumbsHOffset + this.thumbsHSpace - this.totalColumns * (this.thumbsHSpace + 2 * this.borderSize)) / this.totalColumns);
                var e = this.totalColumns * (this.thumbWidth + 2 * this.borderSize + this.thumbsHSpace) - this.thumbsHSpace;
                this.leftWidth = this.stageWidth - 2 * this.thumbsHOffset - e, this.prevStageWidth = this.stageWidth
            }
        }, this.positionThumbnailsAndMain = function() {
            this.hasExtraText_bl ? (o.setThumbsExtraTextWidth(), clearTimeout(this.resizeWithExtraContentId_to), this.resizeWithExtraContentId_to = setTimeout(function() {
                o.positionThumbnailWithExtraContent(), o.setFinalSize()
            }, 51)) : (this.positionThumbnails(), this.setFinalSize())
        }, this.setFinalSize = function() {
            o.positionLoadMoreButton(), o.totalHeight += o.offsetTotalHeight, o.setWidth(o.stageWidth), o.hasSearchResult_bl || (o.totalHeight = o.thumbHeight, o.positionNoSearchLabel()), o.prevTotalHeight != o.totalHeight && (o.firstThumbnailShowed_bl && o.animateParent_bl && !o.isMobile_bl ? (FWDRLTweenMax.to(o, .7, {
                h: o.totalHeight,
                ease: Quart.easeOut
            }), clearTimeout(o.arangeFaterTweenId_to), o.arangeFaterTweenId_to = setTimeout(function() {
                o.stageWidth != a.stageContainer.offsetWidth && a.onResizeHandler()
            }, 700)) : o.setHeight(o.totalHeight)), a.setFinalSize(), a.stageWidth = a.stageContainer.offsetWidth, o.prevTotalHeight = o.totalHeight, o.stageWidth != a.stageWidth && a.onResizeHandler()
        }, this.positionThumbnails = function() {
            for (var t, e, i, s, a, n, l, r = 0, h = [], d = [], u = [], c = 0; c < o.totalColumns; c++) d[c] = o.thumbWidth + 2 * o.borderSize, o.leftWidth > 0 && c < o.leftWidth && d[c]++, 0 == c ? u[c] = o.thumbsHOffset : u[c] = u[c - 1] + d[c - 1] + o.thumbsHSpace;
            for (var c = 0; c < o.totalLoadedThumbnails; c++) {
                if (a = o.playlist_ar[c].thumbnail, o.thumbHeight = Math.floor(a.imageOriginalH * (this.thumbWidth / this.thumbnailMaxWidth)), s = o.thumbHeight + 2 * o.borderSize, c < o.totalColumns) i = d[c], t = u[c], e = o.thumbsVOffset, h[c] = e + s;
                else {
                    n = h[0], l = 0;
                    for (var _ = 1; _ < o.totalColumns; _++) h[_] < n && (n = h[_], l = _);
                    i = d[l], t = u[l], e = h[l] + o.thumbsVSpace, h[l] = e + s
                }
                e + s > r && (r = e + s), a.finalW = i, a.finalH = s, a.finalX = t, a.finalY = e, a.resizeAndPosition()
            }
            a ? o.totalHeight = r + o.thumbsVOffset : o.totalHeight = 0
        }, this.setThumbsExtraTextWidth = function() {
            for (var t, e, i, s, a, n, l = [], r = [], h = 0; h < o.totalColumns; h++) r[h] = o.thumbWidth + 2 * o.borderSize, o.leftWidth > 0 && h < o.leftWidth && r[h]++;
            for (var h = 0; h < o.totalLoadedThumbnails; h++) {
                if (s = o.playlist_ar[h].thumbnail, o.thumbHeight = Math.floor(s.imageOriginalH * (this.thumbWidth / this.thumbnailMaxWidth)), i = o.thumbHeight + 2 * o.borderSize + s.addToHeight, h < o.totalColumns) e = r[h], t = o.thumbsVOffset, l[h] = t + i;
                else {
                    a = l[0], n = 0;
                    for (var d = 1; d < o.totalColumns; d++) l[d] < a && (a = l[d], n = d);
                    e = r[n], t = l[n] + o.thumbsVSpace, l[n] = t + i
                }
                s.hasExtraText_bl && s.textHolder_do.setWidth(e - 2 * o.borderSize)
            }
        }, this.positionThumbnailWithExtraContent = function() {
            for (var t, e, i, s, a, n, l, r = 0, h = [], d = [], u = [], c = 0; c < o.totalColumns; c++) d[c] = o.thumbWidth + 2 * o.borderSize, o.leftWidth > 0 && c < o.leftWidth && d[c]++, 0 == c ? u[c] = o.thumbsHOffset : u[c] = u[c - 1] + d[c - 1] + o.thumbsHSpace;
            for (var c = 0; c < o.totalLoadedThumbnails; c++) {
                if (a = o.playlist_ar[c].thumbnail, a.hasExtraText_bl && (a.addToHeight = a.text3_do.getHeight()), o.thumbHeight = Math.floor(a.imageOriginalH * (this.thumbWidth / this.thumbnailMaxWidth)), s = o.thumbHeight + 2 * o.borderSize + a.addToHeight, c < o.totalColumns) i = d[c], t = u[c], e = o.thumbsVOffset, h[c] = e + s;
                else {
                    n = h[0], l = 0;
                    for (var _ = 1; _ < o.totalColumns; _++) h[_] < n && (n = h[_], l = _);
                    i = d[l], t = u[l], e = h[l] + o.thumbsVSpace, h[l] = e + s
                }
                e + s > r && (r = e + s), a.finalW = i, a.finalH = s, a.finalX = t, a.finalY = e, a.resizeAndPosition()
            }
            a ? o.totalHeight = r + o.thumbsVOffset : o.totalHeight = 0
        }, this.setupNoSearch = function() {
            this.noSearch_do = new FWDRLDisplayObject("div"), this.noSearch_do.setOverflow("visible"), this.noSearch_do.setDisplay("inline-block"), this.noSearch_do.getStyle().fontSmoothing = "antialiased", this.noSearch_do.getStyle().webkitFontSmoothing = "antialiased", this.noSearch_do.getStyle().textRendering = "optimizeLegibility", this.noSearch_do.getStyle().whiteSpace = "nowrap", this.noSearch_do.setBackfaceVisibility(), this.noSearch_do.getStyle().padding = "", this.noSearch_do.getStyle().margin = "", this.noSearch_do.screen.className = s.searchNotFoundClassName_str, this.noSearch_do.hasTransform3d_bl = !1, this.noSearch_do.hasTransform2d_bl = !1, this.noSearch_do.setAlpha(0), this.noSearch_do.setInnerHTML(s.searchNotFoundLabel_str), this.addChild(this.noSearch_do), setTimeout(function() {
                o.noSearch_do.w = o.noSearch_do.getWidth(), o.noSearch_do.h = o.noSearch_do.getHeight(), o.removeChild(o.noSearch_do)
            }, 70)
        }, this.showNoSearch = function() {
            this.isNoSearchFoundShowed_bl || (this.isNoSearchFoundShowed_bl = !0, this.addChild(this.noSearch_do), this.positionNoSearchLabel(), FWDRLTweenMax.killTweensOf(this.noSearch_do), FWDRLTweenMax.to(this.noSearch_do, .1, {
                alpha: 1,
                yoyo: !0,
                repeat: 8
            }))
        }, this.hideNoSearch = function() {
            this.isNoSearchFoundShowed_bl && (this.isNoSearchFoundShowed_bl = !1, FWDRLTweenMax.killTweensOf(this.noSearch_do), FWDRLTweenMax.to(this.noSearch_do, .1, {
                alpha: 0,
                onComplete: function() {
                    o.removeChild(o.noSearch_do)
                }
            }))
        }, this.positionNoSearchLabel = function() {
            this.isNoSearchFoundShowed_bl && (this.noSearch_do.setX(parseInt((this.stageWidth - this.noSearch_do.w) / 2)), a.menu_do.isShowed_bl && this.centerWithMenu_bl ? this.noSearch_do.setY(parseInt((this.totalHeight - a.menu_do.menuOffsetBottom - this.noSearch_do.h) / 2)) : this.noSearch_do.setY(parseInt((this.totalHeight - this.noSearch_do.h) / 2)))
        }, this.setupLoadMoreButton = function() {
            FWDUGPMenuButton.setPrototype(), o.loadMoreButton_do = new FWDUGPMenuButton(s.loadMoreButtonLabel_str, s.loadMoreButtonBackgroundNormalClassName_str, s.loadMoreButtonBackgroundSelectedClassName_str, s.loadMoreButtonTextNormalClassName_str, s.loadMoreButtonTextSeectedClassName_str), this.loadMoreButton_do.setLabel(s.loadMoreButtonLabel_str), this.loadMoreButton_do.getStyle().zIndex = 20, this.loadMoreButton_do.addListener(FWDUGPMenuButton.MOUSE_UP, this.loadMoreButtonOnMouseUpHandler), this.hideLoadMoreButton(), this.addChild(this.loadMoreButton_do)
        }, this.loadMoreButtonOnMouseUpHandler = function() {
            o.hideLoadMoreButton(), o.loadMore()
        }, this.hideLoadMoreButton = function() {
            this.loadMoreButton_do && this.isLoadMoreButtonShowed_bl && (this.isLoadMoreButtonShowed_bl = !1, this.loadMoreButton_do.setVisible(!1))
        }, this.showLoadMoreButton = function() {
            this.loadMoreButton_do && !this.isLoadMoreButtonShowed_bl && (this.isLoadMoreButtonShowed_bl = !0, this.loadMoreButton_do.setVisible(!0), this.isMobile_bl || (this.loadMoreButton_do.setAlpha(0), FWDRLTweenMax.to(this.loadMoreButton_do, .6, {
                alpha: 1
            })), this.positionLoadMoreButton())
        }, this.hideOrShowLoadMoreButton = function() {
            o.allowToLoadMoreThumbnails() ? o.showLoadMoreButton() : o.hideLoadMoreButton()
        }, this.positionLoadMoreButton = function() {
            return this.isLoadMoreButtonShowed_bl && this.loadMoreButton_do ? (this.isMobile_bl || 0 == this.loadMoreButton_do.alpha ? (this.loadMoreButton_do.setX(parseInt((this.stageWidth - this.loadMoreButton_do.w) / 2)), this.loadMoreButton_do.setY(this.totalHeight + this.loadMoreButtonOffsetTop)) : FWDRLTweenMax.to(this.loadMoreButton_do, .5, {
                x: parseInt((this.stageWidth - this.loadMoreButton_do.w) / 2),
                y: parseInt(this.totalHeight + this.loadMoreButtonOffsetTop)
            }), void(this.offsetTotalHeight = this.loadMoreButtonOffsetTop + this.loadMoreButtonOffsetBottom + this.loadMoreButton_do.h)) : void(this.offsetTotalHeight = 0)
        }, this.setupLoadMoreOnScroll = function() {
            t.addEventListener ? t.addEventListener("scroll", this.onScrollHandler) : t.attachEvent && t.attachEvent("onscroll", this.onScrollHandler)
        }, this.onScrollHandler = function() {
            o.loadInfinite(), o.totalLoadedThumbnails == o.totalThumbnails && (t.removeEventListener ? t.removeEventListener("scroll", this.onScrollHandler) : t.detachEvent && t.detachEvent("onscroll", this.onScrollHandler))
        }, this.loadInfinite = function() {
            if (this.allowToLoadMoreThumbnails()) {
                var t = this.playlist_ar[this.playlist_ar.length - 1].thumbnail;
                clearTimeout(this.loadInifiniteId_to), this.loadInifiniteId_to = setTimeout(function() {
                    t.getGlobalY() + t.finalH < FWDRLUtils.getViewportSize().h && o.loadMore()
                }, 500)
            }
        }, this.init()
    };
    e.setPrototype = function() {
        e.prototype = new FWDRLDisplayObject("div", "relative")
    }, e.OPEN_LIGHTBOX = "openLightbox", e.CATEGORY_UPDATE = "categoryUpdate", e.ERROR = "error", e.prototype = null, t.FWDUGPMasonryVerticalThumbnailsManager = e
}(window),
function(t) {
    var e = function(i, s) {
        var a = this;
        e.prototype;
        this.categories_ar = i.categories_ar, this.buttons_ar = [], this.buttonsOriginal_ar = [], this.spacers_ar = [], this.catId_ar = i.startAtCategory_ar, this.catsLength_ar = i.catsLength_ar, this.allCategoriesButton_do, this.buttonsHolder_do, this.searchButton_do, this.searchLabel_str = i.searchLabel_str, this.comboboxSelectorLabel_str = i.comboboxSelectorLabel_str, this.menuPosition_str = i.menuPosition_str, this.menuBackgroundClass_str = i.menuBackgroundClass_str, this.menuButtonSpacerColor_str = i.menuButtonSpacerColor_str, this.menuButtonsSpacersClassName_str = i.menuButtonsSpacersClassName_str, this.menuType_str = i.menuType_str, this.comboboxArrowNormalColor_str = i.comboboxArrowNormalColor_str, this.comboboxArrowSelectedColor_str = i.comboboxArrowSelectedColor_str, this.menuButtonSpacerWidth = i.menuButtonSpacerWidth, this.menuButtonSpacerHeight = i.menuButtonSpacerHeight, this.curId = this.catId_ar[0], this.menuItemBorderSize = 0, this.menuButtonsSapcerLeftAndRight = i.menuButtonsSapcerLeftAndRight, this.menuMaxWidth = i.menuMaxWidth, this.menuOffsetTop = i.menuOffsetTop, this.menuOffsetBottom = i.menuOffsetBottom, this.horizontalSpaceBetweenMenuButtons = i.horizontalSpaceBetweenMenuButtons, this.verticalSpaceBetweenMenuButtons = i.verticalSpaceBetweenMenuButtons, this.totalButtons = a.categories_ar.length, this.selectorOriginalWidth = 0, this.stageWidth = 0, this.stageHeight = 0, this.isComboboxShowed_bl = !1, this.showTotalThumbnailsPerCategory_bl = i.showTotalThumbnailsPerCategory_bl, this.showAllCategories_bl = i.showAllCategories_bl, this.showAllCategories2_bl = !1, this.multipleCategorySelection_bl = i.multipleCategorySelection_bl, this.showMenuButtonsSpacers_bl = i.showMenuButtonsSpacers_bl, this.isShowed_bl = i.showMenu_bl, this.isMobile_bl = FWDRLUtils.isMobile, this.hasPointerEvent_bl = FWDRLUtils.hasPointerEvent, this.showSearchButton_bl = i.showSearchButton_bl, this.init = function() {
            this.getStyle().backgroundColor = "", this.screen.className = this.menuBackgroundClass_str, "undefined" != FWDIGP && this.setupSearch(), FWDIGP && (this.showSearchButton_bl = !1), this.setupButtons(), this.setButtonsLabels(this.showTotalThumbnailsPerCategory_bl), this.setButtons(this.catId_ar[0]), this.setupSpacers(), this.setupCombobox(), this.updateMenuStyle(), this.setAlpha(0), setTimeout(function() {
                a.resizeAndPosition(), FWDIGP ? FWDRLTweenMax.to(a, .8, {
                    alpha: 1,
                    delay: .3,
                    ease: Expo.easeOut
                }) : FWDRLTweenMax.to(a, .8, {
                    alpha: 1,
                    ease: Expo.easeOut
                })
            }, 80)
        }, this.resizeAndPosition = function() {
            a.stageWidth = s.stageWidth, a.isShowed_bl && 0 != a.stageWidth && (a.positionButtons(), a.setWidth(a.stageWidth), a.setHeight(a.stageHeight))
        }, this.setupCombobox = function() {
            this.mainButtonsHolder_do = new FWDRLDisplayObject("div"), this.buttonsHolder_do = new FWDRLDisplayObject("div"), this.buttonsHolder_do.setX(-1e3), this.arrow_do = new FWDRLTransformDisplayObject("div"), this.arrow_do.setOverflow("visible"), this.arrow_do.setDisplay("inline-block"), this.arrow_do.getStyle().fontSmoothing = "antialiased", this.arrow_do.getStyle().webkitFontSmoothing = "antialiased", this.arrow_do.getStyle().textRendering = "optimizeLegibility", this.arrow_do.getStyle().whiteSpace = "nowrap", this.arrow_do.setBackfaceVisibility(), this.arrow_do.getStyle().padding = "", this.arrow_do.getStyle().margin = "", this.arrow_do.getStyle().borderRight = "1px solid", this.arrow_do.getStyle().borderBottom = "1px solid", this.arrow_do.setWidth(10), this.arrow_do.setHeight(10), this.arrow_do.getStyle().borderColor = this.comboboxArrowNormalColor_str, FWDUGPMenuButton.setPrototype(), this.selector_do = new FWDUGPMenuButton("NOT DEFINED", i.comboboxSelectorBackgroundNormalClassName_str, i.comboboxSelectorBackgroundSelectedClassName_str, i.comboboxSelectorTextNormalClassName_str, i.comboboxSelectorTextSeectedClassName_str, 10), this.selector_do.addListener(FWDUGPMenuButton.MOUSE_OVER, a.selectorOverHandler), this.selector_do.addListener(FWDUGPMenuButton.MOUSE_OUT, a.selectorOutHandler), FWDRLUtils.isIEAndLessThen9 || this.selector_do.addChild(this.arrow_do), this.selector_do.addListener(FWDUGPMenuButton.MOUSE_UP, this.openCombobox), this.selector_do.setLabel(a.comboboxSelectorLabel_str), this.selector_do.setSize(), setTimeout(function() {
                a.selector_do.getStyle().width = a.selector_do.getWidth() + 40 + "px",
                    a.selectorOriginalWidth = a.selector_do.getWidth(), a.arrow_do.setRotation(-135), a.arrow_do.setY(parseInt(a.selector_do.h - a.arrow_do.h) / 2 + 3 - a.menuItemBorderSize)
            }, 60), this.addChild(this.mainButtonsHolder_do), this.mainButtonsHolder_do.addChild(this.buttonsHolder_do), this.mainButtonsHolder_do.addChild(this.selector_do)
        }, this.selectorOverHandler = function() {
            FWDRLTweenMax.to(a.arrow_do.screen, .8, {
                borderColor: a.comboboxArrowSelectedColor_str,
                ease: Expo.easeOut
            })
        }, this.selectorOutHandler = function() {
            FWDRLTweenMax.to(a.arrow_do.screen, .8, {
                borderColor: a.comboboxArrowNormalColor_str,
                ease: Expo.easeOut
            })
        }, this.openCombobox = function() {
            a.isComboboxShowed_bl || (a.isComboboxShowed_bl = !0, 0 == s.zIndex ? a.getStyle().zIndex = 1 : a.getStyle().zIndex = s.zIndex + 1, a.selector_do.isSelected_bl = a.selector_do.isDisabled_bl = !0, a.buttonsHolder_do.setX(0), a.buttonsHolder_do.setY(-a.buttonsHolder_do.h + a.selector_do.h), a.mainButtonsHolder_do.setHeight(a.buttonsHolder_do.h + a.mainButtonsHolder_do.h), FWDRLTweenMax.to(a.buttonsHolder_do, .8, {
                y: a.selector_do.h,
                ease: Expo.easeInOut
            }), FWDRLTweenMax.to(a.arrow_do, .8, {
                rotation: 45,
                y: parseInt(a.selector_do.h - a.arrow_do.h) / 2 - 3 - a.menuItemBorderSize,
                ease: Expo.easeInOut
            }), a.startToCheckMenuHit())
        }, this.closeComboBox = function() {
            FWDRLTweenMax.isTweening(a.mainButtonsHolder_do) || (a.selector_do.isSelected_bl = a.selector_do.isDisabled_bl = !1, a.selector_do.setNormalState(!0), FWDRLTweenMax.to(a.buttonsHolder_do, .8, {
                y: -a.buttonsHolder_do.h + a.selector_do.h,
                ease: Expo.easeInOut
            }), FWDRLTweenMax.to(a.mainButtonsHolder_do, .8, {
                h: a.selector_do.h,
                ease: Expo.easeInOut,
                onComplete: function() {
                    a.isComboboxShowed_bl = !1
                }
            }), FWDRLTweenMax.to(a.arrow_do, .8, {
                rotation: -135,
                y: parseInt(a.selector_do.h - a.arrow_do.h) / 2 + 3 - a.menuItemBorderSize,
                ease: Expo.easeInOut
            }), FWDRLTweenMax.to(a.arrow_do.screen, .8, {
                borderColor: a.comboboxArrowNormalColor_str,
                ease: Expo.easeOut,
                onComplete: function() {
                    a.buttonsHolder_do.setX(-1e3), a.getStyle().zIndex = "auto"
                }
            }))
        }, this.startToCheckMenuHit = function() {
            this.isCheckHitAdded_bl || (this.isCheckHitAdded_bl = !0, a.isMobile_bl ? setTimeout(function() {
                FWDRLUtils.isIOS ? a.hitThhumbnailId_to = t.addEventListener("touchstart", a.checkThumbnailHit) : a.hitThhumbnailId_to = t.addEventListener("click", a.checkThumbnailHit)
            }, 50) : t.addEventListener ? (t.addEventListener("mousemove", a.checkThumbnailHit), t.addEventListener("mousedown", a.chechThumbnailsOnClick)) : (document.attachEvent("onmousemove", a.checkThumbnailHit), document.attachEvent("onmousedown", a.chechThumbnailsOnClick)))
        }, this.stopToCheckMenuHit = function() {
            a.isCheckHitAdded_bl && (a.isCheckHitAdded_bl = !1, a.isMobile_bl ? FWDRLUtils.isIOS ? a.hitThhumbnailId_to = t.removeEventListener("touchstart", a.checkThumbnailHit) : a.hitThhumbnailId_to = t.removeEventListener("click", a.checkThumbnailHit) : t.removeEventListener ? (t.removeEventListener("mousemove", a.checkThumbnailHit), t.removeEventListener("mousedown", a.chechThumbnailsOnClick)) : (document.detachEvent("onmousemove", a.checkThumbnailHit), document.detachEvent("onmousedown", a.chechThumbnailsOnClick)), clearTimeout(a.hitThhumbnailId_to))
        }, this.chechThumbnailsOnClick = function(t) {
            var e = FWDRLUtils.getViewportMouseCoordinates(t);
            FWDRLUtils.hitTest(a.mainButtonsHolder_do.screen, e.screenX, e.screenY) || (clearTimeout(a.hideComoboboxWithDelayId_to), a.stopToCheckMenuHit(), a.closeComboBox())
        }, this.checkThumbnailHit = function(t) {
            var e = FWDRLUtils.getViewportMouseCoordinates(t);
            FWDRLUtils.hitTest(a.mainButtonsHolder_do.screen, e.screenX, e.screenY) ? clearTimeout(a.hideComoboboxWithDelayId_to) : (clearTimeout(a.hideComoboboxWithDelayId_to), a.hideComoboboxWithDelayId_to = setTimeout(function() {
                a.stopToCheckMenuHit(), a.closeComboBox()
            }, 200))
        }, this.setupSearch = function() {
            FWDUGPMenuButton.setPrototype(), this.searchButton_do = new FWDUGPMenuButton(this.searchLabel_str, i.searchClassName_str, i.menuButtonBackgroundSelectedClassName_str, i.searchClassName_str, i.menuButtonTextSeectedClassName_str, 100), this.addChild(this.searchButton_do), this.searchButton_do.setLabel(this.searchLabel_str), this.searchButton_do.setSize(), this.showSearchButton_bl || this.searchButton_do.setVisible(!1), this.searchButton_do.addListener(e.SEARCH, this.searchHandler)
        }, this.searchHandler = function(t) {
            a.dispatchEvent(e.SEARCH, {
                searchValue: t.param
            })
        }, this.setupButtons = function() {
            for (var t, e, s = 0; s < this.totalButtons; s++) FWDUGPMenuButton.setPrototype(), t = new FWDUGPMenuButton(e, i.menuButtonBackgroundNormalClassName_str, i.menuButtonBackgroundSelectedClassName_str, i.menuButtonTextNormalClassName_str, i.menuButtonTextSeectedClassName_str, s), 0 == s && (this.allCategoriesButton_do = t), t.addListener(FWDUGPMenuButton.MOUSE_UP, this.buttonOnMouseUpHandler), this.buttons_ar.push(t), this.buttonsOriginal_ar.push(t);
            this.showSearchButton_bl && (this.buttons_ar.push(this.searchButton_do), this.buttonsOriginal_ar.push(this.searchButton_do))
        }, this.buttonOnMouseUpHandler = function(t) {
            if (!s.thumbsManager_do || !s.thumbsManager_do.isCategoryChanging_bl)
                if (t && (a.setButtons(t.id), a.curId = t.id), FWDIGP) {
                    var i = a.showAllCategories2_bl ? 1 : 0;
                    a.dispatchEvent(e.MOUSE_UP, {
                        id: t.id + i
                    }), "combobox" == a.menuType_str && a.closeComboBox()
                } else a.dispatchEvent(e.MOUSE_UP, {
                    id: a.getIdsArray()
                })
        }, this.resetButtonsIGP = function() {
            this.showAllCategories_bl || 0 != this.curId || (this.buttons_ar[0].setSelected(), a.dispatchEvent(e.MOUSE_UP, {
                id: 1
            }));
            for (var t = 0; t < this.buttons_ar.length; t++) button = this.buttons_ar[t], button.id = t;
            "list" == this.menuType_str ? this.addChild(a.buttons_ar[0]) : this.buttonsHolder_do.addChild(a.buttons_ar[0])
        }, this.setButtonsLabels = function(t) {
            for (var e, i = 0; i < this.buttonsOriginal_ar.length; i++) e = this.buttonsOriginal_ar[i], e != this.searchButton_do && (e.w = 0, e.getStyle().width = "auto"), t ? label_str = this.categories_ar[i] + " (" + this.catsLength_ar[i] + ")" : label_str = this.categories_ar[i], e != this.searchButton_do && (void 0 != this.categories_ar[i] && e.setLabel(label_str), e.setSize())
        }, this.setButtons = function(t) {
            var e, i = 0;
            if (e = this.buttons_ar[t], this.multipleCategorySelection_bl) {
                this.multipleCategorySelection_bl && (e.isSelectedFinal_bl ? e.setUnselected() : e.setSelected());
                for (var s = 0; s < this.totalButtons; s++) e = this.buttons_ar[s], e.isSelectedFinal_bl && i++, this.showAllCategories_bl && 0 == t ? 0 != s && e.setUnselected() : this.showAllCategories_bl && 0 != t && this.buttons_ar[0].setUnselected();
                e = this.buttons_ar[t], 0 == i && e.setSelected()
            } else
                for (var e, s = 0; s < a.totalButtons; s++) e = a.buttons_ar[s], s == t ? (e.isSelectedFinal_bl = !0, e.disable()) : (e.isSelectedFinal_bl = !1, e.enable())
        }, this.resetButtonsState = function() {
            var t, e = !0;
            if (a.multipleCategorySelection_bl)
                if (this.showAllCategories_bl) {
                    for (var i = 0; i < a.totalButtons; i++) t = a.buttons_ar[i], t.id = i, t.isDisabled_bl = !0, t.enable(), t.isSelectedFinal_bl && t.setSelectedState();
                    1 == this.catId_ar.length && 0 == this.catId_ar[0] && (this.buttons_ar[1].isSelectedFinal_bl = !1, this.setButtons(1))
                } else {
                    0 == a.catId_ar.length && (a.catId_ar[0] = [0]);
                    for (var i = 0; i < a.totalButtons; i++) t = a.buttons_ar[i], t.id = i, i == a.catId_ar[i] && (t.isSelectedFinal_bl = !0, t.isDisabled_bl = !0, t.enable(), t.setSelectedState())
                } else {
                a.allCategoriesButton_do.isSelectedFinal_bl && 1 == a.buttons_ar[0].id && (a.buttons_ar[0].isSelectedFinal_bl = !0);
                for (var i = 0; i < a.totalButtons; i++) t = a.buttons_ar[i], t.id = i, t.isSelectedFinal_bl && e ? (t.isDisabled_bl = !1, t.disable(), e = !1) : (t.isSelectedFinal_bl = !1, t.isSelected_bl = !1, t.isDisabled_bl = !0, t.enable())
            }
        }, this.getIdsArray = function() {
            a.catId_ar = [];
            for (var t = 0; t < a.totalButtons; t++) button = a.buttons_ar[t], (button.isSelectedFinal_bl || button.isDisabled_bl) && a.catId_ar.push(button.id);
            return a.catId_ar
        }, this.updateMenuStyle = function() {
            var t;
            if ("list" == this.menuType_str) {
                for (var e = 0; e < this.totalButtons; e++) button = this.buttons_ar[e], this.addChild(button), t = this.spacers_ar[e], t.setHeight(this.menuButtonSpacerHeight), t.setWidth(1), this.addChild(t), e == this.totalButtons - 1 && t.setVisible(!1);
                this.selector_do.setVisible(!1)
            } else {
                for (var e = 0; e < this.totalButtons; e++) button = this.buttons_ar[e], this.buttonsHolder_do.addChild(button), t = this.spacers_ar[e], t.setHeight(1), this.buttonsHolder_do.addChild(t), e == this.totalButtons - 1 && t.setVisible(!0);
                this.selector_do.setVisible(!0)
            }
            this.positionButtons(), this.setHeight(this.stageHeight)
        }, this.setButtonsClass = function(t, e, i, s, o, n, l, r, h, d, u, c) {
            var _;
            this.selectorOriginalWidth = 0, this.comboboxArrowNormalColor_str = u, this.comboboxArrowSelectedColor_str = c, this.arrow_do.getStyle().borderColor = this.comboboxArrowNormalColor_str;
            for (var m = 0; m < a.buttonsOriginal_ar.length; m++) _ = a.buttonsOriginal_ar[m], _ != this.searchButton_do && (_.w = 0, _.getStyle().width = "0px", _.getStyle().width = "auto", _.setClass(t, e, i, s), _.setSize()), _ == this.searchButton_do && (_.w = 0, this.searchButton_do.getStyle().width = "0px", this.searchButton_do.getStyle().width = "auto", this.searchButton_do.setClass("", "", d, ""), this.searchButton_do.setSize());
            this.selector_do.getStyle().width = "auto", this.selector_do.setClass(o, n, l, r), this.selector_do.setSize(), setTimeout(function() {
                a.selector_do.getStyle().width = a.selector_do.getWidth() + 40 + "px", a.selectorOriginalWidth = a.selector_do.getWidth(), a.arrow_do.setY(parseInt(a.selector_do.h - a.arrow_do.h) / 2 + 3 - a.menuItemBorderSize)
            }, 51);
            for (var m = 0; m < a.totalButtons; m++) spacer = this.spacers_ar[m], spacer.screen.className = h
        }, this.setupSpacers = function() {
            for (var t, e = 0; e < a.totalButtons; e++) t = new FWDRLDisplayObject("div"), this.spacers_ar[e] = t, t.setWidth(this.menuButtonSpacerWidth), t.setHeight(this.menuButtonSpacerHeight), t.getStyle().backgroundColor = "", t.screen.className = this.menuButtonsSpacersClassName_str, this.showMenuButtonsSpacers_bl || t.setVisible(!1), a.addChild(t)
        }, this.showOrHideSpacers = function(t) {
            this.showMenuButtonsSpacers_bl = t;
            for (var e = 0; e < a.totalButtons; e++) spacer = this.spacers_ar[e], t ? (spacer.setVisible(!0), "list" == this.menuType_str ? (spacer.setHeight(this.menuButtonSpacerHeight), spacer.setWidth(1), e == this.totalButtons - 1 && spacer.setVisible(!1)) : spacer.setHeight(1)) : (spacer.setVisible(!1), spacer.setY(-200))
        }, this.showOrHideSearchBox = function(t) {
            a.showSearchButton_bl = t, t ? this.searchButton_do.setVisible(!0) : this.searchButton_do.setVisible(!1)
        }, this.positionButtons = function() {
            if (0 != a.stageWidth) {
                var t, e, i = [],
                    s = [],
                    o = a.stageWidth,
                    n = 0,
                    l = a.menuOffsetTop,
                    r = 0,
                    h = 0,
                    d = 0,
                    u = 0,
                    c = this.selectorOriginalWidth;
                if (0 != c || "combobox" != a.menuType_str) {
                    if (o > a.menuMaxWidth && (o = a.menuMaxWidth), "combobox" == a.menuType_str) {
                        this.mainButtonsHolder_do.setY(this.menuOffsetTop), r = a.menuOffsetTop, FWDRLUtils.isIEAndLessThen9 || (a.menuItemBorderSize = getComputedStyle(a.buttons_ar[0].screen, null).getPropertyValue("border-left-width") || "0", a.menuItemBorderSize = parseInt(a.menuItemBorderSize.replace("px", "")));
                        for (var _ = 0; _ < a.totalButtons; _++) t = a.buttons_ar[_], t.w >= c && (c = t.w);
                        for (var _ = 0; _ < a.totalButtons; _++) t = a.buttons_ar[_], this.showMenuButtonsSpacers_bl ? (spacer = a.spacers_ar[_], spacer.setX(0), spacer.setWidth(c), spacer.setY(_ * (spacer.h + t.h)), t.setY(_ * (spacer.h + t.h) + spacer.h)) : t.setY(_ * t.h), t.setX(0), c > 35 && t.setWidth(c - 2 * a.menuItemBorderSize);
                        this.selectorOriginalWidth < c + 10 && this.selector_do.setWidth(c - 2 * a.menuItemBorderSize), this.buttonsHolder_do.setWidth(c), this.buttonsHolder_do.setHeight(t.y + t.h), this.mainButtonsHolder_do.setWidth(c), this.mainButtonsHolder_do.setHeight(t.h), this.arrow_do.setX(c - 23 - 2 * a.menuItemBorderSize), this.arrow_do.setY(parseInt(a.selector_do.h - this.arrow_do.h) / 2 + 3 - this.menuItemBorderSize), "center" == a.menuPosition_str ? a.showSearchButton_bl ? a.searchButton_do.w + c + 2 * a.menuButtonsSapcerLeftAndRight + a.horizontalSpaceBetweenMenuButtons < a.stageWidth ? (a.mainButtonsHolder_do.setX(parseInt(a.stageWidth - (a.searchButton_do.w + c + a.horizontalSpaceBetweenMenuButtons)) / 2), a.searchButton_do.setX(a.mainButtonsHolder_do.x + c + a.horizontalSpaceBetweenMenuButtons), a.searchButton_do.setY(a.menuOffsetTop)) : (a.mainButtonsHolder_do.setX(parseInt(a.stageWidth - c) / 2), a.searchButton_do.setX(parseInt(a.stageWidth - a.searchButton_do.w) / 2), a.searchButton_do.setY(a.menuOffsetTop + t.h + a.verticalSpaceBetweenMenuButtons), r = a.searchButton_do.y) : a.mainButtonsHolder_do.setX(parseInt(a.stageWidth - c) / 2) : "left" == a.menuPosition_str ? (a.mainButtonsHolder_do.setX(Math.max(a.menuButtonsSapcerLeftAndRight, parseInt(a.stageWidth - a.menuMaxWidth) / 2)), a.showSearchButton_bl && (a.searchButton_do.w + c + 2 * a.menuButtonsSapcerLeftAndRight + a.horizontalSpaceBetweenMenuButtons < a.stageWidth ? (a.searchButton_do.setX(a.stageWidth - Math.max(a.menuButtonsSapcerLeftAndRight, parseInt((a.stageWidth - a.menuMaxWidth) / 2)) - a.searchButton_do.w), a.searchButton_do.setY(a.menuOffsetTop)) : (a.searchButton_do.setX(a.mainButtonsHolder_do.x), a.searchButton_do.setY(a.menuOffsetTop + t.h + a.verticalSpaceBetweenMenuButtons), r = a.searchButton_do.y))) : "right" == a.menuPosition_str && (a.mainButtonsHolder_do.setX(Math.min(a.stageWidth - a.menuButtonsSapcerLeftAndRight - c, parseInt(a.stageWidth / 2 + a.menuMaxWidth / 2) - c)), a.showSearchButton_bl && (a.searchButton_do.w + c + 2 * a.menuButtonsSapcerLeftAndRight + a.horizontalSpaceBetweenMenuButtons < a.stageWidth ? (a.searchButton_do.setX(Math.max(a.menuButtonsSapcerLeftAndRight, parseInt((a.stageWidth - a.menuMaxWidth) / 2))), a.searchButton_do.setY(a.menuOffsetTop)) : (a.searchButton_do.setX(a.stageWidth - a.menuButtonsSapcerLeftAndRight - a.searchButton_do.w), a.searchButton_do.setY(a.menuOffsetTop + t.h + a.verticalSpaceBetweenMenuButtons), r = a.searchButton_do.y)))
                    } else {
                        i[h] = [0], s[h] = a.buttons_ar[0].w;
                        for (var _ = 0; _ < a.totalButtons; _++) t = a.buttons_ar[_], t.getStyle().width = "auto";
                        for (var m = this.showSearchButton_bl ? 1 : 0, _ = 1; _ < a.totalButtons + m; _++) t = a.buttons_ar[_], s[h] + t.w + a.horizontalSpaceBetweenMenuButtons > o - 2 * a.menuButtonsSapcerLeftAndRight ? (h++, i[h] = [], i[h].push(_), s[h] = t.w) : (i[h].push(_), s[h] += t.w + a.horizontalSpaceBetweenMenuButtons);
                        a.showSearchButton_bl && 0 == h && "right" == a.menuPosition_str && (s[0] -= a.buttons_ar[a.totalButtons].w + a.horizontalSpaceBetweenMenuButtons);
                        for (var _ = 0; h + 1 > _; _++) {
                            "center" == a.menuPosition_str ? u = Math.max(a.menuButtonsSapcerLeftAndRight, parseInt((a.stageWidth - s[_]) / 2)) : "left" == a.menuPosition_str ? u = Math.max(a.menuButtonsSapcerLeftAndRight, parseInt((a.stageWidth - a.menuMaxWidth) / 2)) : "right" == a.menuPosition_str && (u = Math.min(parseInt(a.stageWidth - s[_] - (a.stageWidth - a.menuMaxWidth) / 2), parseInt(a.stageWidth - s[_] - a.menuButtonsSapcerLeftAndRight))), _ > 0 && (l += t.h + a.verticalSpaceBetweenMenuButtons);
                            for (var b = 0; b < i[_].length; b++) t = a.buttons_ar[i[_][b]], spacer = a.spacers_ar[d], d++, 0 == b ? n = u : (e = a.buttons_ar[i[_][b] - 1], n = e.finalX + e.w + a.horizontalSpaceBetweenMenuButtons), spacer && a.showMenuButtonsSpacers_bl && (b == i[_].length - 1 ? spacer.setX(-1e3) : (spacer.setX(parseInt(n + t.w + (a.horizontalSpaceBetweenMenuButtons - spacer.w) / 2)), spacer.setY(parseInt(l + (t.h - spacer.h) / 2)))), t.finalX = n, t.finalY = l, r < t.finalY && (r = t.finalY), t.setX(t.finalX), t.setY(t.finalY)
                        }
                        if (a.showSearchButton_bl && 0 == h)
                            if ("left" == a.menuPosition_str) t = a.buttons_ar[a.totalButtons], t.setX(a.stageWidth - u - t.w);
                            else if ("right" == a.menuPosition_str) {
                            t = a.buttons_ar[a.totalButtons];
                            var f = Math.max(a.menuButtonsSapcerLeftAndRight, parseInt((a.stageWidth - a.menuMaxWidth) / 2));
                            t.setX(f)
                        }
                    }
                    a.stageHeight = r + a.buttons_ar[0].h + a.menuOffsetBottom
                }
            }
        }, this.init()
    };
    e.setPrototype = function() {
        e.prototype = new FWDRLDisplayObject("div", "relative", "visible")
    }, e.MOUSE_OVER = "onMouseOver", e.MOUSE_OUT = "onMouseOut", e.MOUSE_UP = "onMouseDown", e.RIGHT = "right", e.LEFT = "left", e.BOTTOM = "bottom", e.TOP = "top", e.prototype = null, t.FWDUGPMenu = e
}(window),
function(t) {
    var e = function(t, i, s, a, o, n) {
        var l = this;
        e.prototype;
        this.text_str = t, this.menuButtonBackgroundNormalClassName_str = i, this.menuButtonBackgroundSelectedClassName_str = s, this.menuButtonTextNormalClassName_str = a, this.menuButtonTextSeectedClassName_str = o, this.id = n, this.isDisabled_bl = !0, this.isSelected_bl = !1, this.isMobile_bl = FWDRLUtils.isMobile, this.hasPointerEvent_bl = FWDRLUtils.hasPointerEvent, this.init = function() {
            this.setOverflow("visible"), this.getStyle().border = "", this.getStyle().backgroundColor = "", this.setupDos(), this.setNormalState(!1), this.enable(), this.addEvents(), this.dumy_do.setVisible(!1)
        }, this.setupDos = function() {
            100 == this.id ? this.text_do = new FWDRLDisplayObject("input", "relative") : this.text_do = new FWDRLDisplayObject("div", "relative"), this.text_do.setOverflow("visible"), this.text_do.setDisplay("inline-block"), this.text_do.getStyle().fontSmoothing = "antialiased", this.text_do.getStyle().webkitFontSmoothing = "antialiased", this.text_do.getStyle().textRendering = "optimizeLegibility", this.text_do.getStyle().whiteSpace = "nowrap", this.text_do.setBackfaceVisibility(), this.text_do.getStyle().padding = "", this.text_do.getStyle().margin = "", this.text_do.hasTransform3d_bl = !1, this.text_do.hasTransform2d_bl = !1, this.dumy_do = new FWDRLDisplayObject("div"), this.dumy_do.getStyle().width = "100%", this.dumy_do.getStyle().height = "100%", FWDRLUtils.isIE && (this.dumy_do.setBkColor("#00FF00"), this.dumy_do.setAlpha(0)), this.addChild(this.text_do), this.addChild(this.dumy_do), this.setSize()
        }, this.addEvents = function() {
            100 == this.id ? l.text_do.screen.addEventListener ? (l.text_do.screen.addEventListener("focus", l.inputFocusInHandler), l.text_do.screen.addEventListener("blur", l.inputFocusOutHandler), l.text_do.screen.addEventListener("keyup", l.keyUpHandler)) : l.text_do.screen.attachEvent && (l.text_do.screen.attachEvent("onfocus", l.inputFocusInHandler), l.text_do.screen.attachEvent("onblur", l.inputFocusOutHandler), l.text_do.screen.attachEvent("onkeyup", l.keyUpHandler)) : l.isMobile_bl ? this.hasPointerEvent_bl ? (this.screen.addEventListener("pointerup", this.onMouseUp), this.screen.addEventListener("pointerover", this.onMouseOver), this.screen.addEventListener("pointerout", this.onMouseOut)) : this.screen.addEventListener("click", this.onMouseUp) : this.screen.addEventListener ? (this.screen.addEventListener("mouseover", this.onMouseOver), this.screen.addEventListener("mouseout", this.onMouseOut), this.screen.addEventListener("mouseup", this.onMouseUp)) : this.screen.attachEvent && (this.screen.attachEvent("onmouseover", this.onMouseOver), this.screen.attachEvent("onmouseout", this.onMouseOut), this.screen.attachEvent("onmouseup", this.onMouseUp))
        }, this.onMouseOver = function(t) {
            if (!t.pointerType || "mouse" == t.pointerType) {
                if (l.isDisabled_bl || l.isSelectedFinal_bl) return;
                l.dispatchEvent(e.MOUSE_OVER, {
                    e: t
                }), l.setSelectedState(!0)
            }
        }, this.onMouseOut = function(t) {
            if (!t.pointerType || "mouse" == t.pointerType) {
                if (l.isDisabled_bl || l.isSelectedFinal_bl) return;
                l.dispatchEvent(e.MOUSE_OUT, {
                    e: t
                }), l.setNormalState(!0)
            }
        }, this.onMouseUp = function(t) {
            2 == t.button || l.isDisabled_bl || l.dispatchEvent(e.MOUSE_UP, {
                id: l.id
            })
        }, this.inputFocusInHandler = function() {
            l.hasInputFocus_bl || (l.hasInputFocus_bl = !0, l.text_do.screen.value == l.text_str && (l.text_do.screen.value = ""))
        }, this.inputFocusOutHandler = function(t) {
            if (l.hasInputFocus_bl) {
                var e = FWDRLUtils.getViewportMouseCoordinates(t);
                return FWDRLUtils.hitTest(l.text_do.screen, e.screenX, e.screenY) ? void 0 : (l.hasInputFocus_bl = !1, void("" == l.text_do.screen.value && (l.text_do.screen.value = l.text_str)))
            }
        }, this.keyUpHandler = function(t) {
            t.stopPropagation && t.stopPropagation();
            var e;
            l.prevInputValue_str != l.text_do.screen.value && (e = l.text_do.screen.value.toLowerCase(), e != l.text_str && (l.searchValue = e, clearTimeout(l.updateSearch_to), l.updateSearch_to = setTimeout(function() {
                l.dispatchEvent(FWDUGPMenu.SEARCH, {
                    param: l.searchValue
                })
            }, 200))), l.prevInputValue_str = l.text_do.screen.value
        }, this.setClass = function(t, e, i, s) {
            FWDRLTweenMax.killTweensOf(this.screen), FWDRLTweenMax.killTweensOf(this.text_do.screen), this.menuButtonBackgroundNormalClassName_str = t, this.menuButtonBackgroundSelectedClassName_str = e, this.menuButtonTextNormalClassName_str = i, this.menuButtonTextSeectedClassName_str = s, 100 == this.id ? this.text_do.screen.className = i : this.isSelected_bl ? (this.screen.className = t, this.text_do.screen.className = i) : (this.screen.className = e, this.text_do.screen.className = s)
        }, this.setNormalState = function(t) {
            this.isSelected_bl || (this.isSelected_bl = !0, FWDRLTweenMax.killTweensOf(this.screen), FWDRLTweenMax.killTweensOf(this.text_do.screen), 100 == this.id ? this.text_do.screen.className = this.menuButtonTextNormalClassName_str : t ? (FWDRLTweenMax.to(this.screen, .8, {
                className: this.menuButtonBackgroundNormalClassName_str,
                ease: Expo.easeOut
            }), FWDRLTweenMax.to(this.text_do.screen, .8, {
                className: this.menuButtonTextNormalClassName_str,
                ease: Expo.easeOut
            })) : (this.screen.className = this.menuButtonBackgroundNormalClassName_str, this.text_do.screen.className = this.menuButtonTextNormalClassName_str))
        }, this.setSelectedState = function(t) {
            this.isSelected_bl && (this.isSelected_bl = !1, FWDRLTweenMax.killTweensOf(this.screen), FWDRLTweenMax.killTweensOf(this.text_do.screen), t ? (FWDRLTweenMax.to(this.screen, .8, {
                className: this.menuButtonBackgroundSelectedClassName_str,
                ease: Expo.easeOut
            }), FWDRLTweenMax.to(this.text_do.screen, .8, {
                className: this.menuButtonTextSeectedClassName_str,
                ease: Expo.easeOut
            })) : (this.screen.className = this.menuButtonBackgroundSelectedClassName_str, this.text_do.screen.className = this.menuButtonTextSeectedClassName_str))
        }, this.setSelected = function() {
            this.isSelectedFinal_bl || (this.isSelectedFinal_bl = !0, this.setSelectedState(!0))
        }, this.setUnselected = function() {
            this.isSelectedFinal_bl && (this.isSelectedFinal_bl = !1, this.setNormalState(!0))
        }, this.disable = function() {
            100 != this.id && (this.isDisabled_bl = !0, this.setButtonMode(!0), this.dumy_do.setButtonMode(!0), this.setSelectedState(!0))
        }, this.enable = function() {
            100 != this.id && (this.isDisabled_bl = !1, this.setButtonMode(!0), this.dumy_do.setButtonMode(!0), this.setNormalState(!0))
        }, this.setLabel = function(t) {
            l.text_str = t, 100 == this.id ? this.text_do.screen.value = l.text_str : this.text_do.setInnerHTML(l.text_str)
        }, this.setSize = function() {
            setTimeout(function() {
                l.w = l.getWidth(), l.h = l.getHeight()
            }, 69)
        }, this.init()
    };
    e.setPrototype = function() {
        e.prototype = new FWDRLDisplayObject("div")
    }, FWDUGPMenu.SEARCH = "search", e.MOUSE_OVER = "onMouseOver", e.MOUSE_OUT = "onMouseOut", e.MOUSE_UP = "onMouseDown", e.prototype = null, t.FWDUGPMenuButton = e
}(window),
function(t) {
    var e = function(t, i, s, a) {
        var o = this;
        this.nImg_img = null, this.sImg_img = null, this.n_do, this.s_do, this.nImgPath_str = t, this.sImgPath_str = i, this.buttonWidth = s, this.buttonHeight = a, this.isMobile_bl = FWDRLUtils.isMobile, this.hasPointerEvent_bl = FWDRLUtils.hasPointerEvent, this.isDisabled_bl = !1, this.init = function() {
            o.setupMainContainers(), o.setWidth(o.buttonWidth), o.setHeight(o.buttonHeight), o.setButtonMode(!0)
        }, this.setupMainContainers = function() {
            o.n_do = new FWDRLDisplayObject("img"), o.nImg_img = new Image, o.nImg_img.src = o.nImgPath_str, o.nImg_img.width = o.buttonWidth, o.nImg_img.height = o.buttonHeight, o.n_do.setScreen(o.nImg_img), o.s_do = new FWDRLDisplayObject("img"), o.sImg_img = new Image, o.sImg_img.src = o.sImgPath_str, o.sImg_img.width = o.buttonWidth, o.sImg_img.height = o.buttonHeight, o.s_do.setScreen(o.sImg_img), o.addChild(o.s_do), o.addChild(o.n_do), o.screen.onmouseover = o.onMouseOver, o.screen.onmouseout = o.onMouseOut, o.screen.onclick = o.onClick
        }, this.onMouseOver = function(t) {
            o.isMobile_bl || FWDRLTweenMax.to(o.n_do, .9, {
                alpha: 0,
                ease: Expo.easeOut
            })
        }, this.onMouseOut = function(t) {
            FWDRLTweenMax.to(o.n_do, .9, {
                alpha: 1,
                ease: Expo.easeOut
            })
        }, this.onClick = function(t) {
            o.dispatchEvent(e.CLICK)
        }, o.init()
    };
    e.setPrototype = function() {
        e.prototype = null, e.prototype = new FWDRLTransformDisplayObject("div")
    }, e.CLICK = "onClick", e.prototype = null, t.FWDUGPSimpleSizeButton = e
}(window),
function(t) {
    var e = function(i) {
        var s = this;
        e.prototype;
        this.parent = i.parent, this.main_do, this.bk_do, this.border_do, this.imageHolder_do, this.image_do, this.contentHolder_do, this.text1_do, this.overlay_do, this.fakeBorder_do, this.button1_do, this.button2_do, this.icon_do, this.mySplitText, this.textHolder_do, this.presetType_str = i.presetType_str, this.backgroundColor_str = i.backgroundColor_str, this.borderNormalColor_str = i.borderNormalColor_str, this.borderSelectedColor_str = i.borderSelectedColor_str, this.htmlContent1_str = i.htmlContent1_str, this.htmlContent2_str = i.htmlContent2_str, this.htmlExtraContent_str = i.htmlExtraContent_str, this.overlayColor_str = i.thumbnailOverlayColor_str, this.extraButtonUrl_str = i.extraButtonUrl_str, this.extraButtonUrlTarget_str = i.extraButtonUrlTarget_str, this.iconPathN_str = i.thumbIconPathN_str, this.iconPathS_str = i.thumbIconPathS_str, this.linkIconPathN_str = i.linkIconPathN_str, this.linkIconPathS_str = i.linkIconPathS_str, this.hideAndShowTransitionType_str = i.hideAndShowTransitionType_str, this.prevAndShowTransitionType_str, this.textVerticalAlign_str = i.textVerticalAlign_str, this.imageTransitionDirection_str = i.imageTransitionDirection_str, this.thumbanilBoxShadow_str = i.thumbanilBoxShadow_str, this.animStartDir_str = "top", this.textAnimType_str = i.textAnimType_str, this.alt_str = i.alt_str, this.linkUrl_str = i.linkUrl_str, this.linkTarget_str = i.linkTarget_str, this.catId = i.catId, this.id = i.id, this.contentOffest = i.contentOffsetY, this.buttonsOffest = i.buttonsOffest, this.borderSize = i.borderSize, this.lastBorderSize = this.borderSize, this.borderRadius = i.borderRadius, this.overlayOpacity = i.thumbnailOverlayOpacity, this.iconW = i.thumbnailIconWidth, this.iconH = i.thumbnailIconHeight, this.spaceBetweenThumbanilIcons = i.spaceBetweenThumbanilIcons, this.spaceBetweenTextAndIcons = i.spaceBetweenTextAndIcons, this.imageOriginalW, this.imageOriginalH, this.tempFinalX = -1, this.tempFinalY = -1, this.finalX = 0, this.finalY = 0, this.finalW = 0, this.finalH = 0, this.prevFinalX = 0, this.prevFinalY = 0, this.prevFinalW = 0, this.prevFinalH = 0, this.angleY = -180, this.text1H = 0, this.text2H = 0, this.addToHeight = 0, this.finalHOffset = 0, this.hOffset = 0, this.showOrHideWithDelayId_to, this.isImageAnimCompleteId_to, this.resizeTextContent1Id_to, this.contentHideCompleteId_to, this.contentShowCompleteId_to, this.isVerticalType_bl = i.isVerticalType_bl, this.isCheckHitAdded_bl = !1, this.showIcon_bl = !0, this.hasButtons_bl = i.useIconButtons_bl, this.doNotOverwriteResizeContent_bl = !1, this.disableThumbnails_bl = i.disableThumbnails_bl, this.isImageAnimCompleteId_bl = !1, this.isLightboxDisabled_bl = i.isDisabled_bl, this.imageShowComplete_bl = !1, this.isContentHidden_bl = !0, this.hasImage_bl = !1, this.used_bl = !1, this.firstTimeLoad_bl = !0, this.isImageShowed_bl = !1, this.isFirstTimeShowed_bl = !0, this.isContentShowed_bl = !1, this.isHidden_bl = !1, this.hasExtraText_bl = Boolean(this.htmlExtraContent_str), this.isMobile_bl = FWDRLUtils.isMobile, this.hasPointerEvent_bl = FWDRLUtils.hasPointerEvent, this.init = function() {
            this.setupMainInstances()
        }, this.setupMainInstances = function() {
            "3d" == this.presetType_str ? (this.main3dContainer_do = new FWDUGPDisplayObject3D("div"), this.main3dContainer_do.setOverflow("visible"), this.setOverflow("visible"), this.main3dContainer_do.setPerspective(1e3), this.main3dContainer_do.setPreserve3D(), !this.isVerticalType_bl || this.isLightboxDisabled_bl || this.disableThumbnails_bl || this.hasButtons_bl || this.main3dContainer_do.setButtonMode(!0), this.main_do = new FWDUGPDisplayObject3D("div"), this.main_do.setBackfaceVisibility(), this.main3dContainer_do.addChild(this.main_do), this.addChild(this.main3dContainer_do)) : (this.main_do = new FWDRLDisplayObject("div"), this.addChild(this.main_do)), this.bk_do = new FWDRLDisplayObject("div"), this.bk_do.setBkColor(this.backgroundColor_str), this.border_do = new FWDRLDisplayObject("div"), !FWDRLUtils.hasTransform2d || "scaletext" != this.presetType_str && "scaletextinverse" != this.presetType_str ? this.imageHolder_do = new FWDRLDisplayObject("div") : this.imageHolder_do = new FWDRLTransformDisplayObject("div"), this.image_do = new FWDRLDisplayObject("img"), this.isLightboxDisabled_bl || this.disableThumbnails_bl || this.hasButtons_bl || (this.isVerticalType_bl && this.border_do.setButtonMode(!0), this.isVerticalType_bl && "curtain" == this.presetType_str && this.imageHolder_do.setButtonMode(!0)), this.thumbanilBoxShadow_str && this.setBorderBoxShadow(this.thumbanilBoxShadow_str), this.setupContent(), this.main_do.addChild(this.bk_do), this.main_do.addChild(this.border_do), 0 != this.borderSize && this.setBorderSize(this.borderSize), 0 != this.borderRadius && this.setBorderRadius(this.borderRadius), this.setBorderColor(this.borderNormalColor_str, this.borderSelectedColor_str)
        }, this.addImage = function(t) {
            this.imageOriginalW = t.width, this.imageOriginalH = t.height, this.hasImage_bl = !0, this.image_do.setScreen(t), t.setAttribute("alt", this.alt_str), this.main_do.setAlpha(0), this.addEvents()
        }, this.resizeAndPosition = function() {
            if (this.finalX != this.prevFinalX || this.finalY != this.prevFinalY || this.finalW != this.prevFinalW || this.finalH != this.prevFinalH || this.prevBorderSize != this.borderSize) {
                this.prevBorderSize = this.borderSize, this.prevFinalX = this.finalX, this.prevFinalY = this.finalY, this.prevFinalW = this.finalW, this.prevFinalH = this.finalH, FWDRLTweenMax.killTweensOf(this);
                var t, e = this.finalW - 2 * this.borderSize,
                    i = this.finalH - this.addToHeight - 2 * this.borderSize,
                    a = e / s.imageOriginalW,
                    o = i / s.imageOriginalH;
                t = a >= o ? a : o;
                var n = parseInt(t * s.imageOriginalW) + 1,
                    l = parseInt(t * s.imageOriginalH) + 1,
                    r = Math.abs(Math.min(0, FWDUGP.globalY)),
                    h = FWDUGP.globalY > 0 ? FWDUGP.viewportHeight - FWDUGP.globalY : FWDUGP.viewportHeight;
                this.firstTimeLoad_bl || !s.isImageShowed_bl ? (FWDRLTweenMax.killTweensOf(this.image_do), FWDRLTweenMax.killTweensOf(this.imageHolder_do), this.setX(this.finalX), this.setY(this.finalY), this.imageHolder_do.setX(e / 2 + this.borderSize), this.imageHolder_do.setY(i / 2 + this.borderSize), this.image_do.setWidth(n), this.image_do.setHeight(l), this.image_do.setX(-n / 2), this.image_do.setY(-l / 2), FWDRLTweenMax.to(this.main_do, .7, {
                    alpha: 1
                }), FWDRLTweenMax.to(this.imageHolder_do, .7, {
                    x: this.borderSize,
                    y: this.borderSize,
                    w: e,
                    h: i,
                    delay: .2,
                    ease: Quint.easeInOut
                }), FWDRLTweenMax.to(this.image_do, .7, {
                    x: parseInt((e - n) / 2),
                    y: parseInt((i - l) / 2),
                    delay: .2,
                    ease: Quint.easeInOut
                }), this.hasExtraText_bl && FWDRLTweenMax.to(this.text3_do, .7, {
                    alpha: 1,
                    delay: .5
                }), this.isImageAnimCompleteId_to = setTimeout(function() {
                    s.isImageAnimCompleteId_bl = !0, "media" == s.presetType_str ? s.text1_do && s.text2_do && (FWDRLUtils.hitTest(s.screen, s.parent.globalX, s.parent.globalY) && !s.isMobile_bl ? ("bottom" == s.textVerticalAlign_str ? s.text2_do.setY(s.finalH + s.text1H - 2 * s.borderSize + s.contentOffest) : s.text2_do.setY(-s.text1H - s.text2H + s.contentOffest), s.showContent(), s.startToCheckThumbnailHit()) : (FWDRLTweenMax.killTweensOf(s.text1_do), "bottom" == s.textVerticalAlign_str ? FWDRLTweenMax.to(s.text1_do, .7, {
                        y: s.finalH - s.text1H - 2 * s.borderSize + s.contentOffest,
                        ease: Expo.easeInOut
                    }) : FWDRLTweenMax.to(s.text1_do, .7, {
                        y: s.contentOffest,
                        ease: Expo.easeInOut
                    }))) : "media2" == s.presetType_str ? FWDRLUtils.hitTest(s.screen, s.parent.globalX, s.parent.globalY) && !s.isMobile_bl && (s.isContentShowed_bl = !1, s.showContent(), s.startToCheckThumbnailHit()) : "scaletextinverse" == s.presetType_str ? FWDRLUtils.hitTest(s.screen, s.parent.globalX, s.parent.globalY) ? (s.isContentShowed_bl = !1, s.showContent(), s.startToCheckThumbnailHit()) : (s.isContentShowed_bl = !0, s.hideContent(), s.stopToCheckThumbnailHit()) : s.isMobile_bl || s.disableThumbnails_bl || FWDRLUtils.hitTest(s.screen, s.parent.globalX, s.parent.globalY) && (s.showContent(), s.startToCheckThumbnailHit())
                }, 800), this.imageHolder_do.addChild(this.image_do), "curtain" == this.presetType_str || "3d" == this.presetType_str ? this.main_do.addChild(this.imageHolder_do) : this.main_do.addChildAt(this.imageHolder_do, 1), this.isImageShowed_bl = !0, this.firstTimeLoad_bl = !1) : ((this.w != this.finalW || this.h != this.finalH || this.finalHOffset != this.hOffset || this.lastBorderSize != this.borderSize) && (FWDRLTweenMax.killTweensOf(this.image_do), FWDRLTweenMax.killTweensOf(this.imageHolder_do), this.imageHolder_do.setX(this.borderSize), this.imageHolder_do.setY(this.borderSize), this.imageHolder_do.setWidth(e), this.imageHolder_do.setHeight(i), this.image_do.setX(parseInt((e - n) / 2)), this.image_do.setY(parseInt((i - l) / 2))), this.isMobile_bl || this.isHidden_bl || (!(s.finalY + s.finalH > r || s.y + s.finalH > r) || !(s.finalY - r < h || s.y - r < h)) && this.isVerticalType_bl ? (this.setX(this.finalX), this.setY(this.finalY)) : FWDRLUtils.hasTransform2d ? "scale" == this.hideAndShowTransitionType_str ? FWDRLTweenMax.to(this, .7, {
                    x: this.finalX,
                    y: this.finalY,
                    scale: 1,
                    alpha: 1,
                    ease: Quart.easeOut
                }) : "opacity" == this.hideAndShowTransitionType_str ? FWDRLTweenMax.to(this, .7, {
                    x: this.finalX,
                    y: this.finalY,
                    alpha: 1,
                    ease: Quart.easeOut
                }) : "rotation" == this.hideAndShowTransitionType_str && FWDRLTweenMax.to(this, .7, {
                    x: this.finalX,
                    y: this.finalY,
                    rotation: 0,
                    scale: 1,
                    ease: Quart.easeOut
                }) : FWDRLTweenMax.to(this, .7, {
                    x: this.finalX,
                    y: this.finalY,
                    alpha: 1,
                    ease: Quart.easeOut
                }), this.isFirstTimeShowed_bl = !1, "scaletextinverse" != s.presetType_str && clearTimeout(this.isImageAnimCompleteId_to), this.isImageAnimCompleteId_bl = !0), (this.w != this.finalW || this.h != this.finalH || this.finalHOffset != this.hOffset || this.lastBorderSize != this.borderSize) && (this.setWidth(this.finalW),
                    this.setHeight(this.finalH), this.main_do.setWidth(this.finalW), this.main_do.setHeight(this.finalH + this.addToHeight), this.bk_do.setX(this.borderSize), this.bk_do.setY(this.borderSize), this.bk_do.setWidth(e), this.bk_do.setHeight(i + this.addToHeight), this.border_do.setWidth(e + this.borderSize * 2), this.border_do.setHeight(i + this.addToHeight + this.borderSize * 2), this.main3dContainer_do && (this.main3dContainer_do.setWidth(this.finalW), this.main3dContainer_do.setHeight(this.finalH)), this.image_do.setWidth(n), this.image_do.setHeight(l), this.hasExtraText_bl && (this.textHolder_do.setX(this.borderSize), this.textHolder_do.setWidth(this.finalW - 2 * this.borderSize), this.textHolder_do.setY(this.finalH - this.addToHeight - this.borderSize)), this.stopToCheckThumbnailHit()), ("media" == this.presetType_str || "media2" == this.presetType_str || "scaletextinverse" == this.presetType_str) && this.resizeContent(), this.hOffset = this.finalHOffset, this.lastBorderSize = this.borderSize
            }
        }, this.setupContent = function() {
            if ("movetext" == this.presetType_str || "preset2" == this.presetType_str || "curtain" == this.presetType_str || "3d" == this.presetType_str || "scaletext" == this.presetType_str || "scaletextinverse" == this.presetType_str || "animtext" == this.presetType_str) {
                if ("3d" == this.presetType_str ? this.contentHolder_do = new FWDUGPDisplayObject3D("div") : this.contentHolder_do = new FWDRLDisplayObject("div"), this.contentHolder_do.setX(-1e3), this.overlay_do = new FWDRLDisplayObject("div"), this.overlay_do.getStyle().width = "100%", this.overlay_do.getStyle().height = "100%", this.overlay_do.setBackfaceVisibility(!0), this.setOverlayColor(this.overlayColor_str), this.overlay_do.setAlpha(this.overlayOpacity), "scaletext" != this.presetType_str && "scaletextinverse" != this.presetType_str || !FWDRLUtils.hasTransform2d ? this.text1_do = new FWDRLDisplayObject("div") : this.text1_do = new FWDRLTransformDisplayObject("div"), this.text1_do.getStyle().width = "100%", this.text1_do.getStyle().fontSmoothing = "antialiased", this.text1_do.getStyle().webkitFontSmoothing = "antialiased", this.text1_do.getStyle().textRendering = "optimizeLegibility", this.text1_do.setY(-500), this.htmlContent1_str && this.text1_do.setInnerHTML(this.htmlContent1_str), this.contentHolder_do.addChild(this.overlay_do), this.contentHolder_do.addChild(this.text1_do), "curtain" == this.presetType_str) this.fakeBorder_do = new FWDRLDisplayObject("div"), this.fakeBorder_do.setBkColor(this.borderNormalColor_str);
                else if ("preset2" == this.presetType_str) this.isContentHidden_bl = !0, this.contentHolder_do.setX(-1e3);
                else if ("animtext" == this.presetType_str && (this.isContentHidden_bl = !0, this.contentHolder_do.setX(-1e3), this.overlay_do.setAlpha(0), this.htmlContent1_str)) {
                    this.text1_do.screen.setAttribute("id", "FWDUGP_at" + s.id);
                    for (var t, e = FWDRLUtils.getChildren(this.text1_do.screen.firstChild), i = 0; i < e.length; i++) t = e[i], FWDRLTweenMax.killTweensOf(t), "scale" == this.textAnimType_str || "scalerandom" == this.textAnimType_str ? FWDRLTweenMax.to(t, 0, {
                        css: {
                            scale: 0
                        }
                    }) : "largescale" == this.textAnimType_str ? FWDRLTweenMax.to(t, 0, {
                        css: {
                            opacity: 0,
                            scale: 3
                        }
                    }) : "opacity" == this.textAnimType_str && FWDRLTweenMax.to(t, 0, {
                        css: {
                            opacity: 0
                        }
                    })
                }
            } else "preset30" == this.presetType_str ? (this.contentHolder_do = new FWDRLDisplayObject("div"), this.border_do.setButtonMode(!1), this.hasButtons_bl = !0) : "media" == this.presetType_str ? (this.contentHolder_do = new FWDRLDisplayObject("div"), !this.isLightboxDisabled_bl && this.isVerticalType_bl && this.border_do.setButtonMode(!0), FWDRLUtils.hasTransform2d ? (this.text1_do = new FWDRLTransformDisplayObject("div"), this.text2_do = new FWDRLTransformDisplayObject("div")) : (this.text1_do = new FWDRLDisplayObject("div"), this.text2_do = new FWDRLDisplayObject("div")), this.htmlContent1_str && (this.text1_do.setY(-500), this.text1_do.getStyle().width = "100%", this.text1_do.getStyle().fontSmoothing = "antialiased", this.text1_do.getStyle().webkitFontSmoothing = "antialiased", this.text1_do.getStyle().textRendering = "optimizeLegibility", this.text1_do.setInnerHTML(this.htmlContent1_str)), this.htmlContent1_str && this.htmlContent2_str && (this.text2_do.setY(-500), this.text2_do.getStyle().width = "100%", this.text2_do.getStyle().fontSmoothing = "antialiased", this.text2_do.getStyle().webkitFontSmoothing = "antialiased", this.text2_do.getStyle().textRendering = "optimizeLegibility", this.text2_do.setInnerHTML(this.htmlContent2_str)), this.contentHolder_do.addChild(this.text1_do), this.contentHolder_do.addChild(this.text2_do), this.border_do.addChild(this.contentHolder_do)) : "media2" == this.presetType_str && (this.contentHolder_do = new FWDRLDisplayObject("div"), FWDRLUtils.hasTransform2d ? this.text1_do = new FWDRLTransformDisplayObject("div") : this.text1_do = new FWDRLDisplayObject("div"), this.htmlContent1_str && (this.text1_do.setY(-400), this.text1_do.getStyle().width = "100%", this.text1_do.getStyle().fontSmoothing = "antialiased", this.text1_do.getStyle().webkitFontSmoothing = "antialiased", this.text1_do.getStyle().textRendering = "optimizeLegibility", this.text1_do.setInnerHTML(this.htmlContent1_str)), this.overlay_do = new FWDRLDisplayObject("div"), this.overlay_do.getStyle().width = "100%", this.overlay_do.getStyle().height = "100%", this.setOverlayColor(this.overlayColor_str), this.overlay_do.setAlpha(0), this.contentHolder_do.addChild(this.overlay_do), setTimeout(function() {
                s.contentHolder_do.addChild(s.text1_do)
            }, 50));
            this.hasButtons_bl && (this.isLightboxDisabled_bl || (FWDUGPSimpleSizeButton.setPrototype(), this.button1_do = new FWDUGPSimpleSizeButton(this.iconPathN_str, this.iconPathS_str, this.iconW, this.iconH), this.button1_do.setX(-200), this.button1_do.addListener(FWDUGPSimpleSizeButton.CLICK, this.btn1ClickHandler), this.extraButtonUrl_str && (FWDUGPSimpleSizeButton.setPrototype(), this.button2_do = new FWDUGPSimpleSizeButton(this.linkIconPathN_str, this.linkIconPathS_str, this.iconW, this.iconH), this.contentHolder_do.addChild(this.button2_do), this.button2_do.setX(-200), this.button2_do.addListener(FWDUGPSimpleSizeButton.CLICK, this.btn2ClickHandler)), this.contentHolder_do.addChild(this.button1_do))), ("scaletextinverse" == s.presetType_str || "scaletext" == s.presetType_str) && (this.overlay_do.setAlpha(0), this.text1_do.setAlpha(0)), this.setupExtraText()
        }, this.btn1ClickHandler = function(t) {
            s.dispatchEvent(e.MOUSE_UP, {
                id: s.id,
                extraButton: !1
            })
        }, this.btn2ClickHandler = function(t) {
            s.dispatchEvent(e.MOUSE_UP, {
                id: s.id,
                extraButton: !0
            })
        }, this.resizeContent = function() {
            var t, e = 0,
                i = 0,
                a = 0,
                o = 0;
            this.contentHolder_do.setWidth(this.finalW - 2 * this.borderSize), this.contentHolder_do.setHeight(this.finalH - this.addToHeight - 2 * this.borderSize), clearTimeout(this.resizeTextContent1Id_to), "media" == this.presetType_str && this.text1_do ? this.resizeTextContent1Id_to = setTimeout(function() {
                s.text1H = s.text1_do.getHeight(), s.text2_do && (s.text2H = s.text2_do.getHeight()), s.isImageAnimCompleteId_bl ? "bottom" == s.textVerticalAlign_str ? (e = Math.max(Math.round(s.finalH - s.addToHeight - 2 * s.borderSize - s.text1H + s.contentOffest), 0), i = s.finalH - s.addToHeight - 2 * s.borderSize + s.contentOffest) : (e = s.contentOffest, i = -s.text2H + s.contentOffest) : "bottom" == s.textVerticalAlign_str ? (e = Math.round(s.finalH - s.addToHeight - 2 * s.borderSize), i = s.finalH - s.addToHeight - 2 * s.borderSize + s.contentOffest) : (e = -s.text1H + s.contentOffest, i = -s.text2H + s.contentOffest), FWDRLTweenMax.killTweensOf(s.text1_do), s.text1_do.setY(e), s.text2_do && (FWDRLTweenMax.killTweensOf(s.text2_do), s.text2_do.setY(i))
            }, 50) : "media2" == this.presetType_str && this.text1_do ? this.resizeTextContent1Id_to = setTimeout(function() {
                s.text1H = s.text1_do.getHeight(), e = "bottom" == s.textVerticalAlign_str ? Math.round(s.finalH - s.addToHeight) : -s.text1H, FWDRLTweenMax.killTweensOf(s.text1_do), 0 != e && s.text1_do.setY(e)
            }, 50) : ("movetext" == this.presetType_str || "preset2" == this.presetType_str || "3d" == this.presetType_str || "curtain" == this.presetType_str || "scaletext" == this.presetType_str || "scaletextinverse" == this.presetType_str || "animtext" == this.presetType_str) && (this.button1_do && (o = this.button2_do ? this.iconW + this.spaceBetweenThumbanilIcons : 0, a = parseInt((this.iconH + this.spaceBetweenTextAndIcons) / 2)), this.resizeTextContent1Id_to = setTimeout(function() {
                t = s.text1_do.getHeight(), s.htmlContent1_str ? "center" == s.textVerticalAlign_str ? s.text1Y = Math.max(Math.round((s.finalH - s.addToHeight - 2 * s.borderSize - t) / 2) + s.contentOffest, 0) - a : "bottom" == s.textVerticalAlign_str ? s.text1Y = Math.max(Math.round(s.finalH - s.addToHeight - 2 * s.borderSize - t) + s.contentOffest, 0) : "top" == s.textVerticalAlign_str && (s.text1Y = +s.contentOffest) : (s.text1Y = 0, t = 0, s.spaceBetweenTextAndIcons = 0), s.text1Y < 0 && (s.text1Y = 0), s.button1_do && (s.button1X = parseInt((s.finalW - s.iconW - o) / 2 - s.borderSize), s.button2X = s.button1X + s.iconW + s.spaceBetweenThumbanilIcons, "center" == s.textVerticalAlign_str ? s.htmlContent1_str ? s.buttonY = s.text1Y + t + s.spaceBetweenTextAndIcons + s.contentOffest + s.buttonsOffest : s.buttonY = Math.round((s.finalH - s.addToHeight - s.iconH - 2 * s.borderSize) / 2) + s.buttonsOffest : "bottom" == s.textVerticalAlign_str ? s.htmlContent1_str ? s.buttonY = s.text1Y - s.iconH - s.spaceBetweenTextAndIcons + s.buttonsOffest : s.buttonY = s.finalH - s.addToHeight - s.iconH - 2 * s.borderSize + s.buttonsOffest : "top" == s.textVerticalAlign_str && (s.buttonY = s.text1Y + t + s.spaceBetweenTextAndIcons + s.buttonsOffest), s.buttonY < 0 ? s.buttonY = 0 : s.buttonY > s.finalH - s.addToHeight - s.iconH - 2 * s.borderSize && (s.buttonY = s.finalH - s.addToHeight - s.iconH - 2 * s.borderSize), "movetext" != s.presetType_str && (s.button1_do.setX(s.button1X), s.button1_do.setY(s.buttonY), s.button2_do && (s.button2_do.setX(s.button2X), s.button2_do.setY(s.buttonY)))), "movetext" == s.presetType_str && s.hasButtons_bl || s.text1_do.setY(s.text1Y), "scaletextinverse" == s.presetType_str && FWDRLUtils.hasTransform2d
            }, 50))
        }, this.setupExtraText = function() {
            this.hasExtraText_bl && (this.textHolder_do = new FWDRLDisplayObject("div"), this.textHolder_do.setX(this.borderSize), this.textHolder_do.getStyle().height = "100%", this.addChild(this.textHolder_do), this.text3_do = new FWDRLDisplayObject("div"), this.text3_do.getStyle().width = "100%", this.text3_do.getStyle().fontSmoothing = "antialiased", this.text3_do.getStyle().webkitFontSmoothing = "antialiased", this.text3_do.getStyle().textRendering = "optimizeLegibility", this.text3_do.setInnerHTML(this.htmlExtraContent_str), this.text3_do.setAlpha(0), this.hasButtons_bl || this.text3_do.setButtonMode(!0), this.textHolder_do.addChild(this.text3_do))
        }, this.addEvents = function() {
            this.screen.addEventListener ? this.isMobile_bl ? this.hasPointerEvent_bl ? this.screen.addEventListener("pointerdown", this.onMouseUp) : this.screen.addEventListener("click", this.onMouseUp) : (this.screen.addEventListener("mouseover", this.onMouseOver), this.screen.addEventListener("click", this.onMouseUp)) : this.screen.attachEvent && (this.screen.attachEvent("onmouseover", this.onMouseOver), this.screen.attachEvent("onclick", this.onMouseUp))
        }, s.onMouseOver = function(t) {
            s.isContentShowed_bl || s.disableThumbnails_bl || ("curtain" != s.presetType_str && "3d" != s.presetType_str && "animtext" != s.presetType_str && "movetext" != s.presetType_str && "preset2" != s.presetType_str && "scaletext" != s.presetType_str || s.isImageAnimCompleteId_bl) && ("preset2" != s.presetType_str || s.htmlContent1_str) && ("3d" != s.presetType_str || !s.isLightboxDisabled_bl || s.htmlContent1_str) && (t && s.getInOrOutAngle(t), s.showContent(), s.startToCheckThumbnailHit())
        }, s.onMouseUp = function(t) {
            return 2 == t.button || s.disableThumbnails_bl ? void 0 : !s.isContentShowed_bl && s.isMobile_bl ? void s.onMouseOver() : void(s.button1_do || s.isLightboxDisabled_bl || s.dispatchEvent(e.MOUSE_UP, {
                id: s.id
            }))
        }, this.startToCheckThumbnailHit = function() {
            this.isCheckHitAdded_bl || (this.isCheckHitAdded_bl = !0, s.isMobile_bl ? setTimeout(function() {
                FWDRLUtils.isIOS ? s.hitThhumbnailId_to = t.addEventListener("touchstart", s.checkThumbnailHit) : s.hitThhumbnailId_to = t.addEventListener("click", s.checkThumbnailHit)
            }, 50) : t.addEventListener ? t.addEventListener("mousemove", s.checkThumbnailHit) : document.attachEvent("onmousemove", s.checkThumbnailHit))
        }, this.stopToCheckThumbnailHit = function() {
            s.isCheckHitAdded_bl && (s.isCheckHitAdded_bl = !1, s.isMobile_bl ? FWDRLUtils.isIOS ? s.hitThhumbnailId_to = t.removeEventListener("touchstart", s.checkThumbnailHit) : s.hitThhumbnailId_to = t.removeEventListener("click", s.checkThumbnailHit) : t.removeEventListener ? t.removeEventListener("mousemove", s.checkThumbnailHit) : document.detachEvent("onmousemove", s.checkThumbnailHit), clearTimeout(s.hitThhumbnailId_to), s.hideContent(!0))
        }, this.checkThumbnailHit = function(t) {
            var e = FWDRLUtils.getViewportMouseCoordinates(t);
            return FWDRLUtils.hitTest(s.screen, e.screenX, e.screenY) ? void 0 : ("3d" != s.presetType_str && s.getInOrOutAngle(t), void s.stopToCheckThumbnailHit())
        }, this.showContent = function() {
            if (!this.isContentShowed_bl && !this.isHidden_bl) {
                var t, e, i, a, o, n, l, r, h, d, u = 0,
                    h = 0,
                    d = 0,
                    c = 0,
                    _ = 0,
                    m = 0,
                    b = .6;
                if ("animtext" == this.presetType_str) a = .7, b = .7, r = Circ.easeOut, clearTimeout(this.showOrHideWithDelayId_to), this.showOrHideWithDelayId_to = setTimeout(function() {
                    if (s.isContentHidden_bl) {
                        if (s.contentHolder_do.setX(0), s.htmlContent1_str) {
                            t = FWDRLUtils.getChildren(s.text1_do.screen.firstChild);
                            for (var i = 0; i < t.length; i++) e = t[i], "scale" == s.textAnimType_str ? (FWDRLTweenMax.to(e, 1.2, {
                                css: {
                                    scale: 1
                                },
                                delay: u,
                                ease: Elastic.easeOut
                            }), u += .035) : "scalerandom" == s.textAnimType_str ? FWDRLTweenMax.to(e, 1.2, {
                                css: {
                                    scale: 1
                                },
                                delay: .8 * Math.random(),
                                ease: Elastic.easeOut
                            }) : "largescale" == s.textAnimType_str ? FWDRLTweenMax.to(e, .6, {
                                css: {
                                    opacity: 1,
                                    scale: 1
                                },
                                delay: .5 * Math.random(),
                                ease: Expo.easeInOut
                            }) : "opacity" == s.textAnimType_str && (FWDRLTweenMax.to(e, .8, {
                                css: {
                                    opacity: 1
                                },
                                delay: u
                            }), u += .03)
                        }
                        FWDRLTweenMax.to(s.overlay_do, a, {
                            alpha: s.overlayOpacity,
                            ease: Quint.easeOut
                        })
                    }
                }, 51), this.button1_do && (FWDRLUtils.hasTransform2d ? (this.button1_do.setScale2(0), this.button1_do.setAlpha(0), FWDRLTweenMax.to(this.button1_do, a + .4, {
                    alpha: 1,
                    scale: 1,
                    delay: .1,
                    ease: Elastic.easeOut
                }), this.button2_do && (this.button2_do.setScale2(0), this.button2_do.setAlpha(0), FWDRLTweenMax.to(this.button2_do, a + .4, {
                    alpha: 1,
                    scale: 1,
                    delay: .2,
                    ease: Elastic.easeOut
                }))) : (this.button1_do.setAlpha(0), FWDRLTweenMax.to(this.button1_do, a, {
                    alpha: 1,
                    delay: .2,
                    ease: Expo.easeInOut
                }), this.button2_do && (this.button2_do.setAlpha(0), FWDRLTweenMax.to(this.button2_do, a, {
                    alpha: 1,
                    delay: .3,
                    ease: Expo.easeInOut
                })))), this.border_do.addChild(this.contentHolder_do), this.resizeContent();
                else if ("media2" == this.presetType_str) {
                    if (!s.isImageAnimCompleteId_bl) return;
                    a = .7, b = .7, r = Circ.easeOut, this.isContentHidden_bl && (s.contentHolder_do.setX(0), this.overlay_do.setAlpha(0), this.button1_do && (o = this.button2_do ? this.iconW + this.spaceBetweenThumbanilIcons : 0, n = parseInt((this.finalW - this.iconW - o) / 2) - this.borderSize, l = n + this.iconW + this.spaceBetweenThumbanilIcons, this.button1_do.setX(n), "bottom" == s.textVerticalAlign_str ? this.button1_do.setY(this.finalH - 2 * this.borderSize) - 50 : this.button1_do.setY(s.borderSize), this.button1_do.setAlpha(0)), this.button2_do && (this.button2_do.setX(l), "bottom" == s.textVerticalAlign_str ? this.button2_do.setY(this.finalH - 2 * this.borderSize) : this.button2_do.setY(s.borderSize), this.button2_do.setAlpha(0)), this.isContentHidden_bl = !1), this.border_do.addChildAt(this.contentHolder_do, 0), this.resizeContent(), clearTimeout(this.showOrHideWithDelayId_to), this.showOrHideWithDelayId_to = setTimeout(function() {
                        i = s.text1_do.getHeight();
                        var t, e, o;
                        FWDRLTweenMax.killTweensOf(s.overlay_do), FWDRLTweenMax.killTweensOf(s.text1_do), FWDRLTweenMax.killTweensOf(s.imageHolder_do), FWDRLTweenMax.to(s.overlay_do, a - .051, {
                            alpha: s.overlayOpacity,
                            ease: Quint.easeOut
                        }), "bottom" == s.textVerticalAlign_str ? (o = s.finalH - i - 2 * s.borderSize, e = parseInt(-i / 2) + s.borderSize, t = parseInt((s.finalH - i - s.iconH) / 2) - s.borderSize) : (o = 0, e = parseInt(i / 2) + s.borderSize, t = parseInt((s.finalH + i - s.iconH) / 2) - s.borderSize), FWDRLTweenMax.to(s.text1_do, a - .151, {
                            y: o,
                            ease: Quint.easeInOut
                        }), FWDRLTweenMax.to(s.imageHolder_do, a - .151, {
                            y: e,
                            ease: Quint.easeInOut
                        }), s.button1_do && (FWDRLTweenMax.killTweensOf(s.button1_do), FWDRLTweenMax.to(s.button1_do, a - .151, {
                            y: t,
                            alpha: 1,
                            delay: .05,
                            ease: Quint.easeInOut
                        })), s.button2_do && (FWDRLTweenMax.killTweensOf(s.button2_do), FWDRLTweenMax.to(s.button2_do, a - .151, {
                            y: t,
                            alpha: 1,
                            delay: .1,
                            ease: Quint.easeInOut
                        }))
                    }, 51)
                } else if ("media" == this.presetType_str) {
                    if (!s.isImageAnimCompleteId_bl) return;
                    a = .7, b = .7, r = Circ.easeOut, s.contentHolder_do.setX(0), this.icon_do && FWDRLTweenMax.to(this.icon_do, a, {
                        alpha: 1,
                        ease: Expo.easeInOut
                    }), this.text1_do && this.text2_do && ("bottom" == s.textVerticalAlign_str ? (FWDRLTweenMax.to(this.text1_do, a, {
                        y: this.finalH - 2 * this.borderSize - this.text1H - this.text2H,
                        ease: Expo.easeInOut
                    }), FWDRLTweenMax.to(this.text2_do, a, {
                        y: this.finalH - 2 * this.borderSize - this.text2H,
                        ease: Expo.easeInOut
                    })) : (FWDRLTweenMax.to(this.text1_do, a, {
                        y: this.text2H,
                        ease: Expo.easeInOut
                    }), FWDRLTweenMax.to(this.text2_do, a, {
                        y: 0,
                        ease: Expo.easeInOut
                    })))
                } else if ("scaletextinverse" == this.presetType_str) {
                    if (!this.isImageAnimCompleteId_bl) return;
                    a = .7, b = .7, r = Circ.easeOut, c = 0, _ = 0, u = .1, m = 0, this.contentHolder_do.setX(0), this.isContentHidden_bl = !1, FWDRLUtils.hasTransform2d && (FWDRLTweenMax.killTweensOf(this.imageHolder_do), FWDRLTweenMax.to(this.imageHolder_do, a, {
                        scale: 1,
                        rotation: 0,
                        ease: Expo.easeInOut
                    })), FWDRLTweenMax.killTweensOf(this.overlay_do), FWDRLTweenMax.to(this.overlay_do, a, {
                        alpha: m,
                        delay: u,
                        ease: Quint.easeOut
                    }), FWDRLTweenMax.killTweensOf(this.text1_do), FWDRLUtils.hasTransform2d ? FWDRLTweenMax.to(this.text1_do, a, {
                        scale: _,
                        alpha: c,
                        ease: Expo.easeInOut
                    }) : FWDRLTweenMax.to(this.text1_do, a, {
                        alpha: c,
                        ease: Expo.easeInOut
                    }), this.border_do.addChild(this.contentHolder_do)
                } else if ("scaletext" == this.presetType_str) {
                    if (!this.isImageAnimCompleteId_bl) return;
                    a = .7, b = .7, r = Circ.easeOut, c = 1, _ = 1, u = .1, m = this.overlayOpacity, this.contentHolder_do.setX(0), FWDRLUtils.hasTransform2d && (FWDRLTweenMax.killTweensOf(this.imageHolder_do), FWDRLTweenMax.to(this.imageHolder_do, a, {
                        scale: 1.4,
                        rotation: parseInt(-10 + 20 * Math.random()),
                        ease: Expo.easeInOut
                    })), this.isContentHidden_bl = !1, this.button1_do && (FWDRLUtils.hasTransform2d ? (this.button1_do.setScale2(0), this.button1_do.setAlpha(0), FWDRLTweenMax.to(this.button1_do, a, {
                        alpha: 1,
                        scale: 1,
                        delay: .2,
                        ease: Expo.easeInOut
                    }), this.button2_do && (this.button2_do.setScale2(0), this.button2_do.setAlpha(0), FWDRLTweenMax.to(this.button2_do, a, {
                        alpha: 1,
                        scale: 1,
                        delay: .3,
                        ease: Expo.easeInOut
                    }))) : (this.button1_do.setAlpha(0), FWDRLTweenMax.to(this.button1_do, a, {
                        alpha: 1,
                        delay: .2,
                        ease: Expo.easeInOut
                    }), this.button2_do && (this.button2_do.setAlpha(0), FWDRLTweenMax.to(this.button2_do, a, {
                        alpha: 1,
                        delay: .3,
                        ease: Expo.easeInOut
                    })))), FWDRLTweenMax.killTweensOf(this.overlay_do), FWDRLTweenMax.to(this.overlay_do, a, {
                        alpha: m,
                        delay: u,
                        ease: Quint.easeOut
                    }), FWDRLTweenMax.killTweensOf(this.text1_do), FWDRLUtils.hasTransform2d ? FWDRLTweenMax.to(this.text1_do, a, {
                        scale: _,
                        alpha: c,
                        ease: Expo.easeInOut
                    }) : FWDRLTweenMax.to(this.text1_do, a, {
                        alpha: c,
                        ease: Expo.easeInOut
                    }), this.border_do.addChild(this.contentHolder_do), this.resizeContent()
                } else if ("movetext" == this.presetType_str) a = .7, b = .7, r = Circ.easeOut, this.border_do.addChild(this.contentHolder_do), this.resizeContent(), this.hasButtons_bl ? (clearTimeout(this.showOrHideWithDelayId_to), this.showOrHideWithDelayId_to = setTimeout(function() {
                    s.isContentHidden_bl && (s.contentHolder_do.setX(0), "top" == s.animStartDir_str ? (s.overlay_do.setX(0), s.overlay_do.setY(-s.finalH + 2 * s.borderSize), s.text1_do.setX(0), s.text1_do.setY(-s.finalH + 2 * s.borderSize), s.button1_do && (s.button1_do.setX(s.button1X), s.button1_do.setY(-s.iconH), s.button1_do.setAlpha(0)), s.button2_do && (s.button2_do.setX(s.button2X), s.button2_do.setY(-s.iconH), s.button2_do.setAlpha(0)), h = 0, d = .05) : "right" == s.animStartDir_str ? (s.overlay_do.setY(0), s.overlay_do.setX(s.finalW - 2 * s.borderSize), s.text1_do.setX(s.finalW - 2 * s.borderSize), s.text1_do.setY(s.text1Y), s.button1_do && (s.button1_do.setX(s.finalW - 2 * s.borderSize), s.button1_do.setY(s.buttonY), s.button1_do.setAlpha(0)), s.button2_do && (s.button2_do.setX(s.finalW + s.iconW - 2 * s.borderSize), s.button2_do.setY(s.buttonY), s.button2_do.setAlpha(0)), h = 0, d = .05) : "bottom" == s.animStartDir_str ? (s.overlay_do.setX(0), s.overlay_do.setY(s.finalH - 2 * s.borderSize), s.text1_do.setX(0), s.text1_do.setY(s.finalH - 2 * s.borderSize), s.button1_do && (s.button1_do.setX(s.button1X), s.button1_do.setY(s.finalH - 2 * s.borderSize), s.button1_do.setAlpha(0)), s.button2_do && (s.button2_do.setX(s.button2X), s.button2_do.setY(s.finalH - 2 * s.borderSize), s.button2_do.setAlpha(0)), h = 0, d = .05) : "left" == s.animStartDir_str && (s.overlay_do.setX(-s.finalW + 2 * s.borderSize), s.overlay_do.setY(0), s.text1_do.setX(-s.finalW + 2 * s.borderSize), s.text1_do.setY(s.text1Y), s.button1_do && (FWDRLTweenMax.killTweensOf(s.button1_do), s.button2_do ? s.button1_do.setX(2 * -s.iconW - s.spaceBetweenThumbanilIcons) : s.button1_do.setX(-s.iconW), s.button1_do.setY(s.buttonY), s.button1_do.setAlpha(0)), s.button2_do && (FWDRLTweenMax.killTweensOf(s.button2_do), s.button2_do.setX(-s.iconW), s.button2_do.setY(s.buttonY), s.button2_do.setAlpha(0), h = .05), d = 0)), FWDRLTweenMax.killTweensOf(s.contentHolder_do), FWDRLTweenMax.to(s.overlay_do, .4, {
                        x: 0,
                        y: 0
                    }), FWDRLTweenMax.killTweensOf(s.text1_do), FWDRLTweenMax.to(s.text1_do, .4, {
                        x: 0,
                        y: s.text1Y
                    }), s.button1_do && FWDRLTweenMax.to(s.button1_do, .7, {
                        x: s.button1X,
                        y: s.buttonY,
                        alpha: 1,
                        delay: h,
                        ease: Expo.easeInOut
                    }), s.button2_do && FWDRLTweenMax.to(s.button2_do, .7, {
                        x: s.button2X,
                        y: s.buttonY,
                        alpha: 1,
                        delay: d,
                        ease: Expo.easeInOut
                    }), s.isContentHidden_bl = !1
                }, 51)) : (a = .4, this.isContentHidden_bl && ("top" == this.animStartDir_str ? (this.contentHolder_do.setX(0), this.contentHolder_do.setY(-this.finalH + 2 * this.borderSize)) : "right" == this.animStartDir_str ? (this.contentHolder_do.setX(this.finalW - 2 * this.borderSize), this.contentHolder_do.setY(0)) : "bottom" == this.animStartDir_str ? (this.contentHolder_do.setX(0), this.contentHolder_do.setY(this.finalH - 2 * this.borderSize)) : "left" == this.animStartDir_str && (this.contentHolder_do.setX(-this.finalW + 2 * this.borderSize), this.contentHolder_do.setY(0))), this.isContentHidden_bl = !1, FWDRLTweenMax.killTweensOf(this.contentHolder_do), FWDRLTweenMax.to(this.contentHolder_do, a, {
                    x: 0,
                    y: 0
                }));
                else if ("curtain" == this.presetType_str) {
                    var f = this.borderSize,
                        p = this.borderSize;
                    a = .7, b = .7, r = Circ.easeOut, s.contentHolder_do.setX(0), "top" == this.imageTransitionDirection_str ? (p = -this.finalH + 3 * this.borderSize - 1, this.fakeBorder_do.setWidth(this.finalW), this.fakeBorder_do.setHeight(this.borderSize)) : "right" == this.imageTransitionDirection_str ? (f = this.finalW - this.borderSize, this.fakeBorder_do.setX(this.finalW - this.borderSize), this.fakeBorder_do.setWidth(this.borderSize), this.fakeBorder_do.setHeight(this.finalH)) : "bottom" == this.imageTransitionDirection_str ? (p = this.finalH - this.borderSize, this.fakeBorder_do.setY(this.finalH - this.borderSize), this.fakeBorder_do.setWidth(this.finalW), this.fakeBorder_do.setHeight(this.borderSize)) : "left" == this.imageTransitionDirection_str && (f = -this.finalW + 3 * this.borderSize, this.fakeBorder_do.setWidth(this.borderSize), this.fakeBorder_do.setHeight(this.finalH)), this.addChild(this.fakeBorder_do), this.border_do.addChild(this.contentHolder_do), this.resizeContent(), 0 != this.borderSize && FWDRLTweenMax.to(this.fakeBorder_do.screen, b, {
                        css: {
                            backgroundColor: this.borderSelectedColor_str
                        },
                        ease: r
                    }), FWDRLTweenMax.to(this.imageHolder_do, a, {
                        x: f,
                        y: p,
                        ease: Expo.easeInOut
                    })
                } else "3d" == this.presetType_str && (a = .8, b = .8, r = Circ.easeOut, this.isVerticalType_bl ? this.parent.addChild(this) : this.parent.thumbnailsHolder_do.addChild(this), this.border_do.addChild(this.contentHolder_do), this.resizeContent(), this.isContentHidden_bl && (this.prevAnimStartDir_str = this.animStartDir_str, "top" == this.animStartDir_str ? (this.angleX = -180, this.angleY = 0, this.contentHolder_do.setAngleX(180), this.contentHolder_do.setAngleY(0)) : "right" == this.animStartDir_str ? (this.angleX = 0, this.angleY = -180, this.contentHolder_do.setAngleX(0), this.contentHolder_do.setAngleY(180)) : "bottom" == this.animStartDir_str ? (this.angleX = 180, this.angleY = 0, this.contentHolder_do.setAngleY(0), this.contentHolder_do.setAngleX(-180)) : "left" == this.animStartDir_str && (this.angleX = 0, this.angleY = 180, this.contentHolder_do.setAngleX(0), this.contentHolder_do.setAngleY(-180)), this.contentHolder_do.setZ(3), this.isContentHidden_bl = !1), this.resizeContent(), this.contentHolder_do.setX(this.borderSize), this.contentHolder_do.setY(this.borderSize), this.main3dContainer_do.addChild(this.contentHolder_do), FWDRLTweenMax.killTweensOf(this.main_do), FWDRLTweenMax.killTweensOf(this.contentHolder_do), FWDRLTweenMax.to(this.main_do, a, {
                    angleX: s.angleX,
                    angleY: s.angleY,
                    alpha: 1,
                    delay: .1,
                    ease: Quint.easeOut
                }), FWDRLTweenMax.to(this.contentHolder_do, a, {
                    angleX: 0,
                    angleY: 0,
                    delay: .1,
                    ease: Quint.easeOut
                }));
                this.borderNormalColor_str != this.borderSelectedColor_str && 0 != this.borderSize && FWDRLTweenMax.to(this.border_do.screen, b, {
                    css: {
                        borderColor: this.borderSelectedColor_str
                    },
                    ease: r
                }), this.isContentShowed_bl = !0, clearTimeout(this.contentShowCompleteId_to), clearTimeout(this.contentHideCompleteId_to), this.contentShowCompleteId_to = setTimeout(this.showContentComplete, 1e3 * a)
            }
        }, this.showContentComplete = function() {
            clearTimeout(s.contentShowCompleteId_to), clearTimeout(s.contentHideCompleteId_to)
        }, this.hideContent = function() {
            if (this.isContentShowed_bl) {
                var t, e, i, a, o, n, l, r, h, d = 0,
                    u = 0,
                    c = 0,
                    _ = .6,
                    m = 0,
                    b = 0,
                    f = 0,
                    p = 0,
                    g = 0,
                    T = 0;
                if ("animtext" == this.presetType_str) {
                    if (o = .4, _ = .7, i = Circ.easeOut, clearTimeout(this.showOrHideWithDelayId_to), this.htmlContent1_str) {
                        e = FWDRLUtils.getChildren(s.text1_do.screen.firstChild);
                        for (var S = 0; S < e.length; S++) t = e[S], FWDRLTweenMax.killTweensOf(t), "scale" == s.textAnimType_str ? FWDRLTweenMax.to(t, .2, {
                            css: {
                                scale: 0
                            }
                        }) : "scalerandom" == s.textAnimType_str ? FWDRLTweenMax.to(t, .2, {
                            css: {
                                scale: 0
                            }
                        }) : "largescale" == s.textAnimType_str ? FWDRLTweenMax.to(t, .2, {
                            css: {
                                scale: 3,
                                opacity: 0
                            }
                        }) : "opacity" == s.textAnimType_str && FWDRLTweenMax.to(t, .2, {
                            css: {
                                opacity: 0
                            }
                        })
                    }
                    this.button1_do && (FWDRLUtils.hasTransform2d ? (FWDRLTweenMax.killTweensOf(this.button1_do), FWDRLTweenMax.to(this.button1_do, o, {
                        alpha: 0,
                        scale: 0,
                        ease: Quint.easeOut
                    }), this.button2_do && (FWDRLTweenMax.killTweensOf(this.button2_do), FWDRLTweenMax.to(this.button2_do, o, {
                        alpha: 0,
                        scale: 0,
                        ease: Quint.easeOut
                    }))) : (FWDRLTweenMax.killTweensOf(this.button1_do), FWDRLTweenMax.to(this.button1_do, o, {
                        alpha: 0,
                        ease: Expo.easeInOut
                    }), this.button2_do && (FWDRLTweenMax.killTweensOf(this.button2_do), FWDRLTweenMax.to(this.button2_do, o, {
                        alpha: 0,
                        ease: Expo.easeInOut
                    })))), FWDRLTweenMax.to(s.overlay_do, o, {
                        alpha: 0,
                        ease: Quint.easeOut
                    })
                } else if ("media2" == this.presetType_str) {
                    if (!s.isImageAnimCompleteId_bl) return;
                    o = .7, _ = .7, i = Circ.easeOut, clearTimeout(this.showOrHideWithDelayId_to), this.showOrHideWithDelayId_to = setTimeout(function() {
                        var t, e, i = s.text1_do.getHeight();
                        FWDRLTweenMax.killTweensOf(s.overlay_do), FWDRLTweenMax.killTweensOf(s.text1_do), FWDRLTweenMax.killTweensOf(s.imageHolder_do), FWDRLTweenMax.to(s.overlay_do, o - .051, {
                            alpha: 0,
                            ease: Quint.easeOut
                        }), "bottom" == s.textVerticalAlign_str ? (e = s.finalH - 2 * s.borderSize, t = s.borderSize, w = s.finalH - 2 * s.borderSize) : (e = -i, t = s.borderSize, w = -s.iconH), FWDRLTweenMax.to(s.text1_do, o - .151, {
                            y: e,
                            ease: Quint.easeInOut
                        }), FWDRLTweenMax.to(s.imageHolder_do, o - .151, {
                            y: t,
                            ease: Quint.easeInOut
                        }), s.button1_do && (FWDRLTweenMax.killTweensOf(s.button1_do), FWDRLTweenMax.to(s.button1_do, o - .151, {
                            y: w,
                            alpha: 1,
                            delay: .05,
                            ease: Quint.easeInOut
                        })), s.button2_do && (FWDRLTweenMax.killTweensOf(s.button2_do), FWDRLTweenMax.to(s.button2_do, o - .151, {
                            y: w,
                            alpha: 1,
                            delay: .1,
                            ease: Quint.easeInOut
                        }))
                    }, 51)
                } else if ("media" == this.presetType_str) {
                    if (!this.isImageAnimCompleteId_bl) return;
                    o = .7, _ = .7, i = Circ.easeOut, this.icon_do && FWDRLTweenMax.to(this.icon_do, o, {
                        alpha: 0,
                        ease: Expo.easeInOut
                    }), this.text1_do && this.text2_do && ("bottom" == s.textVerticalAlign_str ? (FWDRLTweenMax.to(this.text1_do, o, {
                        y: this.finalH - 2 * this.borderSize - this.text1H,
                        ease: Expo.easeInOut
                    }), FWDRLTweenMax.to(this.text2_do, o, {
                        y: this.finalH - 2 * this.borderSize,
                        ease: Expo.easeInOut
                    })) : (FWDRLTweenMax.to(this.text1_do, o, {
                        y: 0,
                        ease: Expo.easeInOut
                    }), FWDRLTweenMax.to(this.text2_do, o, {
                        y: -this.text2H,
                        ease: Expo.easeInOut
                    })))
                } else if ("scaletextinverse" == this.presetType_str) {
                    if (!this.isImageAnimCompleteId_bl) return;
                    o = .7, _ = .7, i = Circ.easeOut, d = 1, u = 1, a = .1, c = this.overlayOpacity, this.contentHolder_do.setX(0), FWDRLUtils.hasTransform2d && (FWDRLTweenMax.killTweensOf(this.imageHolder_do), FWDRLTweenMax.to(this.imageHolder_do, o, {
                        scale: 1.4,
                        rotation: parseInt(-10 + 20 * Math.random()),
                        ease: Expo.easeInOut
                    })), FWDRLTweenMax.killTweensOf(this.overlay_do), FWDRLTweenMax.to(this.overlay_do, o, {
                        alpha: c,
                        delay: a,
                        ease: Quint.easeOut
                    }), FWDRLTweenMax.killTweensOf(this.text1_do), FWDRLUtils.hasTransform2d ? FWDRLTweenMax.to(this.text1_do, o, {
                        scale: u,
                        alpha: d,
                        ease: Expo.easeInOut
                    }) : FWDRLTweenMax.to(this.text1_do, o, {
                        alpha: d,
                        ease: Expo.easeInOut
                    }), this.isContentHidden_bl = !1, this.border_do.addChild(this.contentHolder_do), this.resizeContent()
                } else if ("scaletext" == this.presetType_str) {
                    if (!this.isImageAnimCompleteId_bl) return;
                    o = .7, _ = .7, i = Circ.easeOut, "scaletext" == this.presetType_str && (d = 0, u = 0, c = 0, a = .2, this.button1_do && (FWDRLTweenMax.killTweensOf(this.button1_do), FWDRLUtils.hasTransform2d ? (FWDRLTweenMax.to(this.button1_do, .4, {
                        alpha: 0,
                        scale: 0,
                        ease: Quint.easeOut
                    }), this.button2_do && (FWDRLTweenMax.killTweensOf(this.button2_do), FWDRLTweenMax.to(this.button2_do, .4, {
                        alpha: 0,
                        scale: 0,
                        ease: Quint.easeOut
                    }))) : (FWDRLTweenMax.to(this.button1_do, .4, {
                        alpha: 0,
                        ease: Quint.easeOut
                    }), this.button2_do && (FWDRLTweenMax.killTweensOf(this.button2_do), FWDRLTweenMax.to(this.button2_do, .4, {
                        alpha: 0,
                        ease: Quint.easeOut
                    })))), FWDRLUtils.hasTransform2d && (FWDRLTweenMax.killTweensOf(this.imageHolder_do), FWDRLTweenMax.to(this.imageHolder_do, o, {
                        scale: 1,
                        rotation: 0,
                        ease: Expo.easeInOut
                    }))), this.isContentHidden_bl = !1, FWDRLTweenMax.killTweensOf(this.overlay_do), FWDRLTweenMax.to(this.overlay_do, o, {
                        alpha: c,
                        delay: a,
                        ease: Quint.easeOut
                    }), FWDRLTweenMax.killTweensOf(this.text1_do), FWDRLUtils.hasTransform2d ? FWDRLTweenMax.to(this.text1_do, o, {
                        scale: u,
                        alpha: d,
                        ease: Expo.easeInOut
                    }) : FWDRLTweenMax.to(this.text1_do, o, {
                        alpha: d,
                        ease: Expo.easeInOut
                    })
                } else if ("movetext" == this.presetType_str) o = .7, _ = .7, i = Circ.easeOut, clearTimeout(this.showOrHideWithDelayId_to), this.button1_do ? ("top" == this.animStartDir_str ? (contentX = 0, contentY = -this.finalH + 2 * this.borderSize, h = 0, r = contentY, f = this.button1X, p = -this.iconH, g = this.button2X, T = p, this.button2_do && (b = .05)) : "right" == this.animStartDir_str ? (contentX = this.finalW - 2 * this.borderSize, contentY = 0, h = contentX, r = this.text1Y, f = contentX, p = this.buttonY, g = contentX + this.iconW + this.spaceBetweenThumbanilIcons, T = this.buttonY, this.button2_do && (m = .05)) : "bottom" == this.animStartDir_str ? (contentX = 0, contentY = this.finalH - 2 * this.borderSize, h = 0, r = contentY, f = this.button1X, p = this.finalH - 2 * this.borderSize, g = this.button2X, T = p, this.button2_do && (m = .05)) : "left" == this.animStartDir_str && (contentX = -this.finalW + 2 * this.borderSize, contentY = 0, h = contentX, r = this.text1Y, f = this.button2_do ? 2 * -this.iconW - this.spaceBetweenThumbanilIcons : -this.iconW, p = this.buttonY, g = -this.iconW, T = this.buttonY, this.button2_do && (b = .05)), FWDRLTweenMax.killTweensOf(this.contentHolder_do), FWDRLTweenMax.to(this.overlay_do, .4, {
                    x: contentX,
                    y: contentY
                }), FWDRLTweenMax.killTweensOf(this.text1_do), FWDRLTweenMax.to(this.text1_do, .4, {
                    x: h,
                    y: r
                }), this.button1_do && (FWDRLTweenMax.killTweensOf(this.button1_do), FWDRLTweenMax.to(this.button1_do, .7, {
                    x: f,
                    y: p,
                    alpha: 0,
                    delay: m,
                    ease: Expo.easeInOut
                })), this.button2_do && (FWDRLTweenMax.killTweensOf(this.button2_do), FWDRLTweenMax.to(this.button2_do, .7, {
                    x: g,
                    y: T,
                    alpha: 0,
                    delay: b,
                    ease: Expo.easeInOut
                }))) : (o = .4, "top" == s.animStartDir_str ? (n = 0, l = -s.finalH + 2 * s.borderSize) : "right" == s.animStartDir_str ? (n = s.finalW - 2 * s.borderSize, l = 0) : "bottom" == s.animStartDir_str ? (n = 0, l = s.finalH - 2 * s.borderSize) : "left" == s.animStartDir_str && (n = -s.finalW + 2 * s.borderSize, l = 0), FWDRLTweenMax.killTweensOf(s.contentHolder_do), FWDRLTweenMax.to(s.contentHolder_do, o, {
                    x: n,
                    y: l
                }));
                else if ("curtain" == this.presetType_str) {
                    var y = this.borderSize,
                        M = this.borderSize;
                    o = .7, _ = .7, i = Circ.easeOut, this.border_do.addChild(this.contentHolder_do), this.resizeContent(), 0 != this.borderSize && FWDRLTweenMax.to(this.fakeBorder_do.screen, _, {
                        css: {
                            backgroundColor: this.borderNormalColor_str
                        },
                        ease: i
                    }), FWDRLTweenMax.killTweensOf(this.imageHolder_do), FWDRLTweenMax.to(this.imageHolder_do, o, {
                        x: y,
                        y: M,
                        ease: Expo.easeInOut
                    })
                } else if ("preset30" != this.presetType_str || this.isLightboxDisabled_bl) {
                    if ("3d" == this.presetType_str) {
                        var v = 0,
                            C = 0;
                        o = .8, _ = .8, i = Circ.easeOut, "top" == this.prevAnimStartDir_str ? (v = 180, C = 0, v = -180 == this.angleX ? 180 : -180) : "right" == this.prevAnimStartDir_str ? (v = 0, C = -180 == this.angleY ? 180 : -180) : "bottom" == this.prevAnimStartDir_str ? (C = 0, -180 == this.angleX ? v = 180 : 180 == this.angleX && (v = -180)) : "left" == this.prevAnimStartDir_str && (v = 0, C = -180, C = -180 == this.angleY ? 180 : -180), this.isContentHidden_bl = !1, FWDRLTweenMax.killTweensOf(this.main_do),
                            FWDRLTweenMax.killTweensOf(this.contentHolder_do), FWDRLTweenMax.to(this.main_do, o, {
                                angleX: 0,
                                angleY: 0,
                                ease: Quint.easeOut
                            }), FWDRLTweenMax.to(this.contentHolder_do, o, {
                                angleX: v,
                                angleY: C,
                                ease: Quint.easeOut
                            })
                    }
                } else {
                    o = .6, _ = .6, i = Circ.easeOut;
                    var m, b, L = this.button2_do ? this.iconW + this.spaceBetweenThumbanilIcons : 0,
                        f = parseInt((this.finalW - this.iconW - L) / 2),
                        w = parseInt((this.finalH - this.iconH) / 2),
                        g = f + this.iconW + this.spaceBetweenThumbanilIcons,
                        D = parseInt((this.finalH - this.iconH) / 2);
                    "top" == this.animStartDir_str ? (w = -this.iconH, this.button2_do && (D = -this.iconH, b = .1)) : "right" == this.animStartDir_str ? (f = this.finalW - this.borderSize, m = .1, this.button2_do && (g = this.finalW + this.iconW + this.spaceBetweenThumbanilIcons - this.borderSize, b = 0)) : "bottom" == this.animStartDir_str ? (w = this.finalH - this.borderSize, this.button2_do && (D = this.finalH - this.borderSize, b = .1)) : "left" == this.animStartDir_str && (f = 2 * -this.iconW + this.spaceBetweenThumbanilIcons, this.button2_do && (g = -this.iconW, b = .1)), this.isContentHidden_bl = !1, this.button2_do && (this.mainTransitionDuration += .1), FWDRLTweenMax.killTweensOf(this.button1_do), FWDRLTweenMax.to(this.button1_do, o, {
                        x: f,
                        y: w,
                        delay: m,
                        ease: Expo.easeOut
                    }), this.button2_do && (FWDRLTweenMax.killTweensOf(this.button2_do), FWDRLTweenMax.to(this.button2_do, o, {
                        x: g,
                        y: D,
                        delay: b,
                        ease: Expo.easeOut
                    }))
                }
                this.borderNormalColor_str != this.borderSelectedColor_str && 0 != this.borderSize && FWDRLTweenMax.to(this.border_do.screen, _, {
                    css: {
                        borderColor: this.borderNormalColor_str
                    },
                    ease: i
                }), this.isContentShowed_bl = !1, clearTimeout(this.contentShowCompleteId_to), clearTimeout(this.contentHideCompleteId_to), s.contentHideCompleteId_to = setTimeout(s.hideContentComplete, 1e3 * o)
            }
        }, this.hideContentComplete = function() {
            if (clearTimeout(s.contentShowCompleteId_to), clearTimeout(s.contentHideCompleteId_to), "media" != s.presetType_str && "scaletextinverse" != s.presetType_str) {
                try {
                    s.border_do.removeChild(s.contentHolder_do)
                } catch (t) {}
                try {
                    s.removeChild(s.contentHolder_do)
                } catch (t) {}
                try {
                    s.removeChild(s.fakeBorder_do)
                } catch (t) {}
                s.contentHolder_do && s.contentHolder_do.setX(-1e3)
            }
            s.isContentHidden_bl = !0
        }, this.getInOrOutAngle = function(t) {
            var e = FWDRLUtils.getViewportMouseCoordinates(t),
                i = s.getGlobalX(),
                a = s.getGlobalY(),
                o = e.screenX,
                n = e.screenY,
                l = o - (i + s.finalW / 2),
                r = n - (a + s.finalH / 2),
                h = 180 * Math.atan2(r, l) / Math.PI,
                d = 180 * Math.atan2(s.finalH, s.finalW) / Math.PI;
            d > h && h > -d && (s.animStartDir_str = "right"), h > d && 180 - d > h && (s.animStartDir_str = "bottom"), (-180 + d > h || h > 180 - d) && (s.animStartDir_str = "left"), h > -180 + d && -d > h && (s.animStartDir_str = "top")
        }, this.hide = function(t, e) {
            if (!this.isHidden_bl && this.hasImage_bl) {
                var i = Math.abs(Math.min(0, FWDUGP.globalY)),
                    a = FWDUGP.globalY > 0 ? FWDUGP.viewportHeight - FWDUGP.globalY : FWDUGP.viewportHeight;
                clearTimeout(this.showHideId_to), this.showHideId_to = setTimeout(function() {
                    s.isHidden_bl = !0;
                    var t = s.finalY + s.finalH > i && s.finalY - i < a;
                    if (s.isVerticalType_bl || (t = !0), "scale" == s.hideAndShowTransitionType_str) t ? FWDRLTweenMax.to(s, .6, {
                        scale: 0,
                        alpha: 0,
                        delay: .05 + .1 * Math.random(),
                        ease: Quart.easeOut
                    }) : (FWDRLTweenMax.killTweensOf(s), s.setScale2(0), s.setAlpha(0));
                    else if ("opacity" == s.hideAndShowTransitionType_str) t ? FWDRLTweenMax.to(s, .6, {
                        alpha: 0,
                        delay: .05 + .1 * Math.random(),
                        ease: Quart.easeOut
                    }) : (FWDRLTweenMax.killTweensOf(s), s.setAlpha(0));
                    else if ("rotation" == s.hideAndShowTransitionType_str) {
                        for (var e = -60 + parseInt(120 * Math.random()); e > -20 && 20 > e;) e = -60 + parseInt(120 * Math.random());
                        t ? FWDRLTweenMax.to(s, .6, {
                            scale: 0,
                            rotation: e,
                            delay: .05 + .1 * Math.random(),
                            ease: Quart.easeOut
                        }) : (FWDRLTweenMax.killTweensOf(s), s.setRotation(0), s.setScale2(0))
                    } else("none" == s.hideAndShowTransitionType_str || FWDRLUtils.hasTransform2d) && s.setVisible(!1)
                }, 50)
            }
        }, this.show = function(t) {
            if (this.isVerticalType_bl ? this.parent.addChild(this) : this.parent.thumbnailsHolder_do.addChild(this), this.isHidden_bl && this.hasImage_bl) {
                var e = Math.abs(Math.min(0, FWDUGP.globalY)),
                    i = FWDUGP.globalY > 0 ? FWDUGP.viewportHeight - FWDUGP.globalY : FWDUGP.viewportHeight;
                clearTimeout(s.contentShowCompleteId_to), s.isContentHidden_bl = !0, clearTimeout(this.showHideId_to), this.showHideId_to = setTimeout(function() {
                    s.isHidden_bl = !1;
                    var t = s.finalY + s.finalH > e && s.finalY - e < i;
                    s.isVerticalType_bl || (t = !0), "scale" == s.hideAndShowTransitionType_str ? t ? FWDRLTweenMax.to(s, .6, {
                        scale: 1,
                        alpha: 1,
                        delay: .05 + .2 * Math.random(),
                        ease: Quart.easeOut
                    }) : (FWDRLTweenMax.killTweensOf(s), s.setScale2(1), s.setAlpha(1)) : "opacity" == s.hideAndShowTransitionType_str ? t ? FWDRLTweenMax.to(s, .6, {
                        alpha: 1,
                        delay: .05 + .1 * Math.random(),
                        ease: Quart.easeOut
                    }) : (FWDRLTweenMax.killTweensOf(s), s.setAlpha(1)) : "rotation" == s.hideAndShowTransitionType_str ? (FWDRLTweenMax.killTweensOf(s), t ? FWDRLTweenMax.to(s, .6, {
                        scale: 1,
                        alpha: 1,
                        rotation: 0,
                        delay: .05 + .2 * Math.random(),
                        ease: Quart.easeOut
                    }) : (s.setRotation(0), s.setScale2(1), s.setAlpha(1))) : ("none" == s.hideAndShowTransitionType_str || FWDRLUtils.hasTransform2d) && s.setVisible(!0)
                }, 50)
            }
        }, this.setTransitionType = function(t) {
            if (this.hideAndShowTransitionType_str = t, "scale" == s.hideAndShowTransitionType_str) this.isHidden_bl && (s.setRotation(0), s.setAlpha(0), s.setScale2(0));
            else if ("rotation" == s.hideAndShowTransitionType_str) {
                if (this.isHidden_bl) {
                    for (var e = -60 + parseInt(120 * Math.random()); e > -20 && 20 > e;) e = -60 + parseInt(120 * Math.random());
                    s.setRotation(e), "opacity" == this.prevAndShowTransitionType_str ? s.setAlpha(0) : s.setAlpha(1), s.setScale2(0)
                }
            } else "opacity" == s.hideAndShowTransitionType_str && this.isHidden_bl && (s.setRotation(1), s.setScale2(1), s.setAlpha(0));
            this.prevAndShowTransitionType_str = this.hideAndShowTransitionType_str
        }, this.setOverlayColor = function(t) {
            this.overlayColor_str = t, this.overlay_do.setBkColor(this.overlayColor_str)
        }, this.setOverlayOpacityValue = function(t) {
            void 0 != t && (this.overlayOpacity = t)
        }, this.setOverlayOpacity = function() {
            this.overlay_do.setAlpha(this.overlayOpacity)
        }, this.setContentPosition = function(t, e, i) {
            this.textVerticalAlign_str = t, this.contentOffest = e, void 0 != i && (this.buttonsOffest = i)
        }, this.setCurtainAnimationDirection = function(t) {
            s.imageTransitionDirection_str = t
        }, this.setBorderSize = function(t) {
            this.borderSize = parseInt(t), 0 == this.borderSize ? (this.border_do.getStyle().borderStyle = "none", this.border_do.getStyle().boxShadow = "none") : (this.border_do.getStyle().borderStyle = "solid", this.border_do.getStyle().boxShadow = this.thumbanilBoxShadow_str), this.border_do.getStyle().borderWidth = this.borderSize + "px"
        }, this.setBorderRadius = function(t) {
            this.borderRadius = parseInt(t), this.border_do.getStyle().borderRadius = this.borderRadius + "px", this.getStyle().borderRadius = this.borderRadius + "px", "3d" == this.presetType_str && (this.main_do.getStyle().borderRadius = this.borderRadius + "px")
        }, this.setBorderColor = function(t, e) {
            this.borderNormalColor_str = t, this.borderSelectedColor_str = e, this.border_do.getStyle().borderColor = this.borderNormalColor_str
        }, this.setBorderBoxShadow = function(t) {
            this.thumbanilBoxShadow_str = t, "3d" == this.presetType_str ? this.main_do.getStyle().boxShadow = this.thumbanilBoxShadow_str : this.getStyle().boxShadow = this.thumbanilBoxShadow_str
        }, this.init()
    };
    e.setPrototype = function() {
        FWDRLUtils.hasTransform2d ? e.prototype = new FWDRLTransformDisplayObject("div") : e.prototype = new FWDRLDisplayObject("div")
    }, e.MOUSE_UP = "onMouseDown", e.RIGHT = "right", e.LEFT = "left", e.BOTTOM = "bottom", e.TOP = "top", e.prototype = null, t.FWDUGPThumbnail = e
}(window),
function(t) {
    var e = function(s, a) {
        var o = this;
        e.prototype;
        this.sourcePlaylist_ar = s.playlist_ar.playlistItems, this.originalDataThumbnails_ar = [], this.dataThumbnails_ar = [], this.tempPlaylist_ar, this.columnHeights_ar = [], this.loadMoreCatsData_ar = [], this.catId_ar = s.startAtCategory_ar, this.loadMoreButton_do, this.curDataThumbnail, this.thumbnailLoadingType_str = s.thumbnailLoadingType_str, this.totalLoadedThumbnails = 0, this.loadMoreButtonOffsetTop = s.loadMoreButtonOffsetTop, this.loadMoreButtonOffsetBottom = s.loadMoreButtonOffsetBottom, this.thumbnailsPerSet = s.howManyThumbnailsToDisplayPerSet, this.thumbsHOffset = s.thumbnailsHorizontalOffset, this.thumbsVOffset = s.thumbnailsVerticalOffset, this.offsetTotalHeight = 0, this.maxH = 0, this.thumbOffsetX = 0, this.catId = s.startAtCategory, this.stageWidth = 0, this.prevStageWidth = 0, this.thumbnailMaxWidth = s.thumbnailMaxWidth, this.thumbnailMaxHeight = s.thumbnailMaxHeight, this.leftWidth = 0, this.thumbWidth, this.thumbHeight, this.thumbsHSpace = s.horizontalSpaceBetweenThumbnails, this.thumbsVSpace = s.verticalSpaceBetweenThumbnails, this.countLoadedThumbs = 0, this.borderSize = s.thumbnailBorderSize, this.totalThumbnails = this.sourcePlaylist_ar.length, this.tempTotalThumbnails = this.sourcePlaylist_ar.length, this.totalOriginalThumbnails = this.sourcePlaylist_ar.length, this.globalX = 0, this.globalY = 0, this.searchValue = "", this.catChanging_to, this.arangeFaterTweenId_to, this.updateSearch_to, this.centerWithMenu_bl = s.centerNoSearchFoundLabelWithMenu_bl, this.isLoadAtTheEnd_bl = !1, this.isLoadMoreButtonShowed_bl = !0, this.isCatChanging_bl = !1, this.isFirstThumbnailLoaded_bl = !1, this.firstThumbnailShowed_bl = !1, this.animateParent_bl = s.animateParent_bl, this.showAllCategories_bl = s.showAllCategories_bl, this.totalCats = this.showAllCategories_bl ? s.categories_ar.length - 1 : s.categories_ar.length, this.isMobile_bl = FWDRLUtils.isMobile, this.init = function() {
            this.setOverflow("visible"), this.setBkColor(a.backgroundColor_str), this.setupThumbnailsData(), "loadmorewithbutton" == o.thumbnailLoadingType_str ? this.setupLoadMoreButton() : "loadmoreonscroll" == this.thumbnailLoadingType_str && this.setupLoadMoreOnScroll(), this.filterCategories(), this.startGetMousePosition(), this.setupNoSearch()
        }, this.resizeAndPosition = function() {
            o.stageWidth = a.stageWidth, o.setDataForResize(), o.positionThumbnailsAndMain()
        }, this.startGetMousePosition = function() {
            t.addEventListener ? (o.isMobile_bl || t.addEventListener("touchstart", this.getMousePosition), t.addEventListener("mousemove", this.getMousePosition)) : document.attachEvent && document.attachEvent("onmousemove", this.getMousePosition)
        }, this.getMousePosition = function(t) {
            var e = FWDRLUtils.getViewportMouseCoordinates(t);
            o.isMobile_bl || (o.globalX = e.screenX, o.globalY = e.screenY)
        }, this.setupThumbnailsData = function() {
            for (var t, e = [], i = 0; i < this.totalThumbnails; i++) t = {}, t.thumbnail = void 0, t.id = i, t.catId = this.sourcePlaylist_ar[i].catId, this.originalDataThumbnails_ar[i] = t, this.dataThumbnails_ar[i] = t;
            for (var i = 0; i < this.totalCats; i++) e[i] = 0;
            for (var i = 0; i < this.totalThumbnails; i++) e[this.dataThumbnails_ar[i].catId]++;
            for (var i = 0; i < this.totalCats; i++) t = {}, t.loaded = 0, t.limit = 0, t.total = e[i], t.isSelected = !1, this.loadMoreCatsData_ar[i] = t
        }, this.search = function(t) {
            o.searchValue = t, clearTimeout(o.updateSearch_to), o.updateSearch_to = setTimeout(function() {
                o.filterCategories()
            }, 200)
        }, this.getThumbnail = function(t, e) {
            var i = {};
            return i.parent = this, i.id = e, i.catId = t, i.presetType_str = s.presetType_str, i.backgroundColor_str = s.thumbnailBackgroundColor_str, i.borderNormalColor_str = this.sourcePlaylist_ar[e].thumbnailBorderNormalColor || s.thumbnailBorderNormalColor_str, i.borderSelectedColor_str = this.sourcePlaylist_ar[e].thumbnailBorderSelectedColor || s.thumbnailBorderSelectedColor_str, i.borderSize = s.thumbnailBorderSize, i.borderRadius = s.thumbnailBorderRadius, i.thumbnailOverlayColor_str = this.sourcePlaylist_ar[e].thumbnailOverlayColor || s.thumbnailOverlayColor_str, i.thumbnailOverlayOpacity = s.thumbnailOverlayOpacity, i.spaceBetweenTextAndIcons = s.spaceBetweenTextAndIcons, i.extraButtonUrl_str = this.sourcePlaylist_ar[e].extraButtonUrl_str, i.extraButtonUrlTarget_str = this.sourcePlaylist_ar[e].extraButtonUrlTarget_str, i.thumbIconPathN_str = this.sourcePlaylist_ar[e].thumbIconPathN_str, i.thumbIconPathS_str = this.sourcePlaylist_ar[e].thumbIconPathS_str, i.thumbnailIconWidth = s.thumbnailIconWidth, i.thumbnailIconHeight = s.thumbnailIconHeight, i.linkIconPathN_str = s.linkIconPathN_str, i.linkIconPathS_str = s.linkIconPathS_str, i.spaceBetweenThumbanilIcons = s.spaceBetweenThumbanilIcons, i.hideAndShowTransitionType_str = s.hideAndShowTransitionType_str, i.textVerticalAlign_str = s.textVerticalAlign_str, i.imageTransitionDirection_str = s.imageTransitionDirection_str, i.thumbanilBoxShadow_str = s.thumbanilBoxShadow_str, i.textAnimType_str = s.textAnimType_str, i.disableThumbnails_bl = s.disableThumbnails_bl, i.useIconButtons_bl = s.useIconButtons_bl, i.alt_str = this.sourcePlaylist_ar[e].alt_str, i.linkUrl_str = this.sourcePlaylist_ar[e].url, i.linkTarget_str = this.sourcePlaylist_ar[e].target, i.contentOffsetY = s.contentOffsetY, i.buttonsOffest = s.buttonsOffestY, i.isVerticalType_bl = s.isVerticalType_bl, i.isDisabled_bl = this.sourcePlaylist_ar[e].disabled_bl, i.htmlContent1_str = this.sourcePlaylist_ar[e].htmlContent1_str, i.htmlContent2_str = this.sourcePlaylist_ar[e].htmlContent2_str, FWDUGPThumbnail.setPrototype(), thumbnail = new FWDUGPThumbnail(i), thumbnail.addListener(FWDUGPThumbnail.MOUSE_UP, this.thumbanilOnMouseUpHandler), this.addChild(thumbnail), thumbnail
        }, this.thumbanilOnMouseUpHandler = function(i) {
            for (var a = i.id, n = i.id, l = i.extraButton ? "extraButtonLink" : o.sourcePlaylist_ar[a].type_str, r = 0; r < o.totalOriginalThumbnails; r++) n > r && (o.sourcePlaylist_ar[r].type_str == FWDUGP.NONE || o.sourcePlaylist_ar[r].type_str == FWDUGP.LINK) && (a -= 1);
            "extraButtonLink" == l ? s.isPintrest_bl ? PDK.pin(o.sourcePlaylist_ar[i.id].thumbnailPath_str, o.sourcePlaylist_ar[i.id].rawDescription_str, o.sourcePlaylist_ar[i.id].pinLInk_str, function() {}) : t.open(o.dataThumbnails_ar[i.id].thumbnail.extraButtonUrl_str, o.dataThumbnails_ar[i.id].thumbnail.extraButtonUrlTarget_str) : "link" == l ? t.open(o.dataThumbnails_ar[i.id].thumbnail.linkUrl_str, o.dataThumbnails_ar[i.id].thumbnail.linkTarget_str) : o.dispatchEvent(e.OPEN_LIGHTBOX, {
                id: a
            })
        }, this.updateCategory = function(t) {
            this.catId_ar != t && (this.catId_ar = t, this.filterCategories(), this.positionThumbnailsAndMain(), this.dispatchEvent(e.CATEGORY_UPDATE))
        }, this.stopToLoadImage = function() {
            clearTimeout(this.loadThumbnailId_to), o.image_img && (o.image_img.onerror = null, o.image_img.onload = null)
        }, this.startToLoadImage = function(t) {
            o.image_img = new Image, o.image_img.onerror = o.onImageLoadErrorHandler, o.image_img.onload = o.onImageLoadHandler, o.image_img.src = t
        }, this.loadThumbImage = function() {
            var t;
            o.stopToLoadImage();
            for (var e = 0; e < o.totalCats; e++)
                if (o.loadMoreCatsData_ar[e].isSelected && o.loadMoreCatsData_ar[e].loaded < o.loadMoreCatsData_ar[e].limit) {
                    t = e;
                    break
                }
            for (var e = 0; e < o.tempTotalThumbnails && (o.curDataThumbnail = o.tempPlaylist_ar[e], o.curDataThumbnail.catId != t || o.curDataThumbnail.thumbnail); e++);
            o.startToLoadImage(o.sourcePlaylist_ar[o.curDataThumbnail.id].thumbnailPath_str)
        }, this.onImageLoadErrorHandler = function(t) {
            var i = "Thumbnail image can't be loaded, probably the path is incorrect <font color='#FFFFFF'>" + o.sourcePlaylist_ar[o.curDataThumbnail.id].thumbnailPath_str + "</font>";
            o.dispatchEvent(e.ERROR, {
                text: i
            })
        }, this.onImageLoadHandler = function(t) {
            var e = o.getThumbnail(o.curDataThumbnail.catId, o.curDataThumbnail.id);
            o.loadMoreCatsData_ar[o.curDataThumbnail.catId].loaded++, o.curDataThumbnail.thumbnail = e, o.originalDataThumbnails_ar[o.curDataThumbnail.id].thumbnail = e, e.hasImg_bl = !0, e.originalWidth = o.image_img.width, e.originalHeight = o.image_img.height, e.addImage(o.image_img), o.countLoadedThumbs++, o.isFirstThumbnailLoaded_bl || setTimeout(function() {
                o.firstThumbnailShowed_bl = !0
            }, 200), o.updateCurThumbnails(), o.positionThumbnailsAndMain()
        }, this.updateCatsLimits = function() {
            var t = o.thumbnailsPerSet,
                e = 0;
            if (this.showAllCategories_bl && 0 == this.catId_ar[0]) {
                if (0 == this.loadMoreCatsData_ar[0].limit)
                    for (; t > 0 && e < this.totalCats;) this.loadMoreCatsData_ar[e].limit + t > this.loadMoreCatsData_ar[e].total ? (t -= this.loadMoreCatsData_ar[e].total - this.loadMoreCatsData_ar[e].limit, this.loadMoreCatsData_ar[e].limit = this.loadMoreCatsData_ar[e].total) : (this.loadMoreCatsData_ar[e].limit += t, t = 0), e++
            } else
                for (var i = 0; i < this.totalCats; i++) this.loadMoreCatsData_ar[i].isSelected && this.loadMoreCatsData_ar[i].limit < this.thumbnailsPerSet && (this.loadMoreCatsData_ar[i].limit = Math.min(this.loadMoreCatsData_ar[i].total, this.thumbnailsPerSet));
            this.totalThumbnailsLimit = 0;
            for (var i = 0; i < this.totalCats; i++) this.loadMoreCatsData_ar[i].isSelected && (this.totalThumbnailsLimit += this.loadMoreCatsData_ar[i].limit)
        }, this.allowToLoadMoreThumbnails = function() {
            return this.totalLoadedThumbnails == this.totalThumbnailsLimit && this.totalLoadedThumbnails < this.tempTotalThumbnails ? !0 : !1
        }, this.loadMore = function() {
            for (var t = o.thumbnailsPerSet, e = 0; t > 0 && e < o.totalCats;) o.loadMoreCatsData_ar[e].isSelected && (o.loadMoreCatsData_ar[e].limit + t > o.loadMoreCatsData_ar[e].total ? (t -= o.loadMoreCatsData_ar[e].total - o.loadMoreCatsData_ar[e].limit, o.loadMoreCatsData_ar[e].limit = o.loadMoreCatsData_ar[e].total) : (o.loadMoreCatsData_ar[e].limit += t, t = 0)), e++;
            this.totalThumbnailsLimit = 0;
            for (var i = 0; i < this.totalCats; i++) this.loadMoreCatsData_ar[i].isSelected && (this.totalThumbnailsLimit += this.loadMoreCatsData_ar[i].limit);
            o.loadThumbImage()
        }, this.updateCatsData = function() {
            var t, e, i = [],
                s = [];
            o.loadMoreCatsData_ar = [];
            for (var a = 0; a < o.totalCats; a++) i[a] = 0, s[a] = 0;
            for (var a = 0; a < o.totalThumbnails; a++) t = o.dataThumbnails_ar[a], i[t.catId]++, t.thumbnail && s[t.catId]++;
            for (var a = 0; a < o.totalCats; a++) e = {}, e.loaded = s[a], e.limit = s[a], e.total = i[a], e.isSelected = !1, o.loadMoreCatsData_ar[a] = e
        }, this.filterCategories = function() {
            var t, e, i = 0;
            this.tempPlaylist_ar = [], this.playlist_ar = [], this.dataThumbnails_ar = [], o.stopToLoadImage();
            for (var s = 0; s < o.sourcePlaylist_ar.length; s++) t = o.originalDataThumbnails_ar[s], -1 != o.sourcePlaylist_ar[s].titleText_str.toLowerCase().indexOf(o.searchValue) ? o.dataThumbnails_ar.push(t) : t.thumbnail && t.thumbnail.hide(!0);
            if (o.totalThumbnails = o.dataThumbnails_ar.length, this.updateCatsData(), this.showAllCategories_bl && (i = 1), this.showAllCategories_bl && 0 == o.catId_ar[0]) {
                for (s = 0; s < this.totalThumbnails; s++) t = this.dataThumbnails_ar[s], this.tempPlaylist_ar.push(t), t.thumbnail && (this.playlist_ar.push(t), t.thumbnail.show(!0));
                for (var s = 0; s < this.totalCats; s++) this.loadMoreCatsData_ar[s].isSelected = !0
            } else
                for (s = 0; s < this.totalThumbnails; s++) {
                    t = this.dataThumbnails_ar[s], e = !1;
                    for (var a = 0; a < this.totalCats; a++) t.catId == o.catId_ar[a] - i && (this.tempPlaylist_ar.push(t), t.thumbnail && this.playlist_ar.push(t), this.loadMoreCatsData_ar[o.catId_ar[a] - i].isSelected = !0, e = !0);
                    e ? t.thumbnail && t.thumbnail.show(!0) : t.thumbnail && t.thumbnail.hide(!0)
                }
            this.tempTotalThumbnails = this.tempPlaylist_ar.length, this.totalLoadedThumbnails = this.playlist_ar.length, 0 == this.tempTotalThumbnails ? (this.hasSearchResult_bl = !1, this.showNoSearch()) : (this.hasSearchResult_bl = !0, this.hideNoSearch()), this.updateCatsLimits(), this.totalLoadedThumbnails < this.totalThumbnailsLimit ? (clearTimeout(this.loadThumbnailId_to), this.loadThumbnailId_to = setTimeout(this.loadThumbImage, 300)) : (o.updateCurThumbnails(), o.positionThumbnailsAndMain()), "loadmorewithbutton" == o.thumbnailLoadingType_str && this.hideOrShowLoadMoreButton()
        }, this.updateCurThumbnails = function() {
            var t, e = 0;
            if (this.playlist_ar = [], this.showAllCategories_bl && (e = 1), this.showAllCategories_bl && 0 == o.catId_ar[0])
                for (i = 0; i < this.totalThumbnails; i++) t = this.dataThumbnails_ar[i], t.thumbnail && this.playlist_ar.push(t);
            else
                for (i = 0; i < this.totalThumbnails; i++) {
                    t = this.dataThumbnails_ar[i];
                    for (var s = 0; s < this.totalCats; s++) t.catId == o.catId_ar[s] - e && t.thumbnail && this.playlist_ar.push(t)
                }
            this.totalLoadedThumbnails = this.playlist_ar.length, this.totalLoadedThumbnails < this.totalThumbnailsLimit && (clearTimeout(this.loadThumbnailId_to), this.loadThumbnailId_to = setTimeout(this.loadThumbImage, 10)), "loadmorewithbutton" == o.thumbnailLoadingType_str ? this.hideOrShowLoadMoreButton() : "loadmoreonscroll" == this.thumbnailLoadingType_str && this.loadInfinite()
        }, this.setDataForResize = function() {
            if (this.stageWidth) {
                this.totalColumns = Math.ceil((this.stageWidth - 2 * this.thumbsHOffset + this.thumbsHSpace) / (this.thumbnailMaxWidth + 2 * this.borderSize + this.thumbsHSpace)), this.thumbWidth = Math.floor((this.stageWidth - 2 * this.thumbsHOffset + this.thumbsHSpace - this.totalColumns * (this.thumbsHSpace + 2 * this.borderSize)) / this.totalColumns), this.thumbHeight = Math.floor(this.thumbWidth * (this.thumbnailMaxHeight / this.thumbnailMaxWidth));
                var t = this.totalColumns * (this.thumbWidth + 2 * this.borderSize + this.thumbsHSpace) - this.thumbsHSpace;
                this.leftWidth = this.stageWidth - 2 * this.thumbsHOffset - t, this.prevStageWidth = this.stageWidth
            }
        }, this.positionThumbnailsAndMain = function() {
            this.columnHeights_ar = [];
            for (var t = 0; t < this.totalColumns; t++) this.columnHeights_ar[t] = 0;
            for (var t = 0; t < this.totalLoadedThumbnails; t++) thumbnail = this.playlist_ar[t].thumbnail, thumbnail.used_bl = !1;
            this.positionThumbnails(), this.positionThumbnails(), this.positionThumbnails2(), this.totalHeight = Math.max(0, this.maxH * (this.thumbHeight + this.thumbsVSpace + 2 * this.borderSize) - this.thumbsVSpace + 2 * this.thumbsVOffset), o.hasSearchResult_bl || (o.totalHeight = o.thumbHeight, o.positionNoSearchLabel()), this.positionLoadMoreButton(), this.totalHeight += this.offsetTotalHeight, this.setWidth(this.stageWidth), this.prevTotalHeight != this.totalHeight && (this.firstThumbnailShowed_bl && this.animateParent_bl && !this.isMobile_bl ? (FWDRLTweenMax.to(this, .7, {
                h: this.totalHeight,
                ease: Quart.easeOut
            }), clearTimeout(this.arangeFaterTweenId_to), this.arangeFaterTweenId_to = setTimeout(function() {
                o.stageWidth != a.stageContainer.offsetWidth && a.onResizeHandler()
            }, 700)) : this.setHeight(this.totalHeight)), a.setFinalSize(), a.stageWidth = a.stageContainer.offsetWidth, this.prevTotalHeight = this.totalHeight, o.stageWidth != a.stageWidth && a.onResizeHandler()
        }, this.positionThumbnails = function() {
            for (var t, e, i, s, a, n, l, r, h, d, u, c = [], _ = [], m = 0; m < o.totalColumns; m++) c[m] = o.thumbWidth + 2 * o.borderSize, o.leftWidth > 0 && m < o.leftWidth && c[m]++, 0 == m ? _[m] = o.thumbsHOffset : _[m] = _[m - 1] + c[m - 1] + o.thumbsHSpace;
            for (var m = 0; m < o.totalLoadedThumbnails; m++)
                if (u = o.playlist_ar[m].thumbnail, !u.used_bl)
                    if (i = Math.round(u.originalWidth / o.thumbnailMaxWidth), s = Math.round(u.originalHeight / o.thumbnailMaxHeight), e = 1e3, 1 == i) {
                        u.used_bl = !0;
                        for (var b = 0; b < o.totalColumns; b++) o.columnHeights_ar[b] < e && (e = o.columnHeights_ar[b]);
                        for (var b = 0; b < o.totalColumns; b++)
                            if (o.columnHeights_ar[b] == e) {
                                t = b;
                                break
                            }
                        l = _[t], r = o.columnHeights_ar[t] * (o.thumbHeight + o.thumbsVSpace + 2 * o.borderSize) + o.thumbsVOffset, h = c[t], d = (o.thumbHeight + o.thumbsVSpace + 2 * o.borderSize) * s - o.thumbsVSpace, u.finalW = h, u.finalH = d, u.finalX = l, u.finalY = r, u.resizeAndPosition(), o.columnHeights_ar[t] += s
                    } else {
                        a = !1;
                        for (var b = 0; b < o.totalColumns - (i - 1); b++) {
                            n = !0;
                            for (var f = 0; i > f; f++) o.columnHeights_ar[b] != o.columnHeights_ar[b + f] && (n = !1);
                            n && o.columnHeights_ar[b] < e && (e = o.columnHeights_ar[b], t = b, a = !0)
                        }
                        if (a) {
                            u.used_bl = !0, l = _[t], r = o.columnHeights_ar[t] * (o.thumbHeight + o.thumbsVSpace + 2 * o.borderSize) + o.thumbsVOffset, h = -o.thumbsHSpace;
                            for (var f = 0; i > f; f++) h += c[t + f] + o.thumbsHSpace;
                            d = (o.thumbHeight + o.thumbsVSpace + 2 * o.borderSize) * s - o.thumbsVSpace, u.finalW = h, u.finalH = d, u.finalX = l, u.finalY = r, u.resizeAndPosition();
                            for (var f = 0; i > f; f++) o.columnHeights_ar[t + f] += s
                        }
                    }
            o.maxH = 0;
            for (var m = 0; m < o.totalColumns; m++) o.columnHeights_ar[m] > o.maxH && (o.maxH = o.columnHeights_ar[m])
        }, this.positionThumbnails2 = function() {
            for (var t, e, i, s, a = [], n = 0; n < o.totalColumns; n++) a[n] = o.thumbWidth + 2 * o.borderSize, o.leftWidth > 0 && n < o.leftWidth && a[n]++;
            this.maxH = 0;
            for (var n = 0; n < this.totalColumns; n++) this.columnHeights_ar[n] > this.maxH && (this.maxH = this.columnHeights_ar[n]);
            for (var n = 0; n < this.totalLoadedThumbnails; n++)
                if (thumbnail = this.playlist_ar[n].thumbnail, !thumbnail.used_bl) {
                    thumbnail.used_bl = !0;
                    var l = Math.round(thumbnail.originalWidth / this.thumbnailMaxWidth),
                        r = Math.round(thumbnail.originalHeight / this.thumbnailMaxHeight);
                    this.totalColumns < l && (l = this.totalColumns), t = this.thumbsHOffset, e = this.maxH * (this.thumbHeight + this.thumbsVSpace + 2 * this.borderSize) + this.thumbsVOffset, i = -o.thumbsHSpace;
                    for (var h = 0; l > h; h++) i += a[h] + o.thumbsHSpace;
                    s = (this.thumbHeight + this.thumbsVSpace + 2 * this.borderSize) * r - this.thumbsVSpace, thumbnail.finalX = t, thumbnail.finalY = e, thumbnail.finalW = i, thumbnail.finalH = s, thumbnail.resizeAndPosition(), this.maxH += r;
                    for (var h = 0; l > h; h++) this.columnHeights_ar[h] = this.maxH
                }
        }, this.setupNoSearch = function() {
            this.noSearch_do = new FWDRLDisplayObject("div"), this.noSearch_do.setOverflow("visible"), this.noSearch_do.setDisplay("inline-block"), this.noSearch_do.getStyle().fontSmoothing = "antialiased", this.noSearch_do.getStyle().webkitFontSmoothing = "antialiased", this.noSearch_do.getStyle().textRendering = "optimizeLegibility", this.noSearch_do.getStyle().whiteSpace = "nowrap", this.noSearch_do.setBackfaceVisibility(), this.noSearch_do.getStyle().padding = "", this.noSearch_do.getStyle().margin = "", this.noSearch_do.screen.className = s.searchNotFoundClassName_str, this.noSearch_do.hasTransform3d_bl = !1, this.noSearch_do.hasTransform2d_bl = !1, this.noSearch_do.setAlpha(0), this.noSearch_do.setInnerHTML(s.searchNotFoundLabel_str), this.addChild(this.noSearch_do), setTimeout(function() {
                o.noSearch_do.w = o.noSearch_do.getWidth(), o.noSearch_do.h = o.noSearch_do.getHeight(), o.removeChild(o.noSearch_do)
            }, 70)
        }, this.showNoSearch = function() {
            this.isNoSearchFoundShowed_bl || (this.isNoSearchFoundShowed_bl = !0, this.addChild(this.noSearch_do), this.positionNoSearchLabel(), FWDRLTweenMax.killTweensOf(this.noSearch_do), FWDRLTweenMax.to(this.noSearch_do, .1, {
                alpha: 1,
                yoyo: !0,
                repeat: 8
            }))
        }, this.hideNoSearch = function() {
            this.isNoSearchFoundShowed_bl && (this.isNoSearchFoundShowed_bl = !1, FWDRLTweenMax.killTweensOf(this.noSearch_do), FWDRLTweenMax.to(this.noSearch_do, .1, {
                alpha: 0,
                onComplete: function() {
                    o.removeChild(o.noSearch_do)
                }
            }))
        }, this.positionNoSearchLabel = function() {
            this.isNoSearchFoundShowed_bl && (this.noSearch_do.setX(parseInt((this.stageWidth - this.noSearch_do.w) / 2)), a.menu_do.isShowed_bl && this.centerWithMenu_bl ? this.noSearch_do.setY(parseInt((this.totalHeight - a.menu_do.menuOffsetBottom - this.noSearch_do.h) / 2)) : this.noSearch_do.setY(parseInt((this.totalHeight - this.noSearch_do.h) / 2)))
        }, this.setupLoadMoreButton = function() {
            FWDUGPMenuButton.setPrototype(), o.loadMoreButton_do = new FWDUGPMenuButton(s.loadMoreButtonLabel_str, s.loadMoreButtonBackgroundNormalClassName_str, s.loadMoreButtonBackgroundSelectedClassName_str, s.loadMoreButtonTextNormalClassName_str, s.loadMoreButtonTextSeectedClassName_str), this.loadMoreButton_do.setLabel(s.loadMoreButtonLabel_str), this.loadMoreButton_do.getStyle().zIndex = 20, this.loadMoreButton_do.addListener(FWDUGPMenuButton.MOUSE_UP, this.loadMoreButtonOnMouseUpHandler), this.hideLoadMoreButton(), this.addChild(this.loadMoreButton_do)
        }, this.loadMoreButtonOnMouseUpHandler = function() {
            o.hideLoadMoreButton(), o.loadMore()
        }, this.hideLoadMoreButton = function() {
            this.loadMoreButton_do && this.isLoadMoreButtonShowed_bl && (this.isLoadMoreButtonShowed_bl = !1, this.loadMoreButton_do.setVisible(!1))
        }, this.showLoadMoreButton = function() {
            this.loadMoreButton_do && !this.isLoadMoreButtonShowed_bl && (this.isLoadMoreButtonShowed_bl = !0, this.loadMoreButton_do.setVisible(!0), this.isMobile_bl || (this.loadMoreButton_do.setAlpha(0), FWDRLTweenMax.to(this.loadMoreButton_do, .6, {
                alpha: 1
            })), this.positionLoadMoreButton())
        }, this.hideOrShowLoadMoreButton = function() {
            o.allowToLoadMoreThumbnails() ? o.showLoadMoreButton() : o.hideLoadMoreButton()
        }, this.positionLoadMoreButton = function() {
            return this.isLoadMoreButtonShowed_bl && this.loadMoreButton_do ? (this.isMobile_bl || 0 == this.loadMoreButton_do.alpha ? (this.loadMoreButton_do.setX(parseInt((this.stageWidth - this.loadMoreButton_do.w) / 2)), this.loadMoreButton_do.setY(this.totalHeight + this.loadMoreButtonOffsetTop)) : FWDRLTweenMax.to(this.loadMoreButton_do, .5, {
                x: parseInt((this.stageWidth - this.loadMoreButton_do.w) / 2),
                y: parseInt(this.totalHeight + this.loadMoreButtonOffsetTop)
            }), void(this.offsetTotalHeight = this.loadMoreButtonOffsetTop + this.loadMoreButtonOffsetBottom + this.loadMoreButton_do.h)) : void(this.offsetTotalHeight = 0)
        }, this.setupLoadMoreOnScroll = function() {
            t.addEventListener ? t.addEventListener("scroll", this.onScrollHandler) : t.attachEvent && t.attachEvent("onscroll", this.onScrollHandler)
        }, this.onScrollHandler = function() {
            o.loadInfinite(), o.totalLoadedThumbnails == o.totalThumbnails && (t.removeEventListener ? t.removeEventListener("scroll", this.onScrollHandler) : t.detachEvent && t.detachEvent("onscroll", this.onScrollHandler))
        }, this.loadInfinite = function() {
            if (this.allowToLoadMoreThumbnails()) {
                var t = this.playlist_ar[this.playlist_ar.length - 1].thumbnail;
                clearTimeout(this.loadInifiniteId_to), this.loadInifiniteId_to = setTimeout(function() {
                    t.getGlobalY() + t.finalH < FWDRLUtils.getViewportSize().h && o.loadMore()
                }, 500)
            }
        }, this.init()
    };
    e.setPrototype = function() {
        e.prototype = new FWDRLDisplayObject("div", "relative")
    }, e.OPEN_LIGHTBOX = "openLightbox", e.CATEGORY_UPDATE = "categoryUpdate", e.ERROR = "error", e.prototype = null, t.FWDUGPVerticalThumbnailsManager = e
}(window);
if (function(e) {
        function t() {
            for (var e, t, s = ["transform", "msTransform", "WebkitTransform", "MozTransform", "OTransform", "KhtmlTransform"]; e = s.shift();)
                if ("undefined" != typeof o.dumy.style[e] && (o.dumy.style.position = "absolute", t = o.dumy.getBoundingClientRect().left, o.dumy.style[e] = "translate3d(500px, 0px, 0px)", t = Math.abs(o.dumy.getBoundingClientRect().left - t), t > 100 && 900 > t)) {
                    try {
                        document.documentElement.removeChild(o.dumy)
                    } catch (i) {}
                    return !0
                }
            try {
                document.documentElement.removeChild(o.dumy)
            } catch (i) {}
            return !1
        }

        function s() {
            for (var e, t = ["transform", "msTransform", "WebkitTransform", "MozTransform", "OTransform", "KhtmlTransform"]; e = t.shift();)
                if ("undefined" != typeof o.dumy.style[e]) return !0;
            try {
                document.documentElement.removeChild(o.dumy)
            } catch (s) {}
            return !1
        }
        var o = function() {};
        o.dumy = document.createElement("div"), o.trim = function(e) {
            return e.replace(/\s/gi, "")
        }, o.splitAndTrim = function(e, t) {
            for (var s = e.split(","), i = s.length, n = 0; i > n; n++) t && (s[n] = o.trim(s[n]));
            return s
        }, o.indexOfArray = function(e, t) {
            for (var s = e.length, i = 0; s > i; i++)
                if (e[i] === t) return i;
            return -1
        }, o.randomizeArray = function(e) {
            for (var t = [], s = e.concat(), i = s.length, o = 0; i > o; o++) {
                var n = Math.floor(Math.random() * s.length);
                t.push(s[n]), s.splice(n, 1)
            }
            return t
        }, o.removeArrayDuplicates = function(e, t) {
            var s, i, o, n = [],
                r = e.length;
            for (i = 0; r > i; i++) {
                for (s = void 0, o = 0; o < n.length; o++)
                    if (e[i][t] === n[o][t]) {
                        s = !0;
                        break
                    }
                s || n.push(e[i])
            }
            return n
        }, o.parent = function(e, t) {
            for (void 0 === t && (t = 1); t-- && e;) e = e.parentNode;
            return e && 1 === e.nodeType ? e : null
        }, o.sibling = function(e, t) {
            for (; e && 0 !== t;)
                if (t > 0) {
                    if (e.nextElementSibling) e = e.nextElementSibling;
                    else
                        for (var e = e.nextSibling; e && 1 !== e.nodeType; e = e.nextSibling);
                    t--
                } else {
                    if (e.previousElementSibling) e = e.previousElementSibling;
                    else
                        for (var e = e.previousSibling; e && 1 !== e.nodeType; e = e.previousSibling);
                    t++
                }
            return e
        }, o.getChildAt = function(e, t) {
            var s = o.getChildren(e);
            return 0 > t && (t += s.length), 0 > t ? null : s[t]
        }, o.getChildById = function(e) {
            return document.getElementById(e) || void 0
        }, o.getChildren = function(e, t) {
            for (var s = [], i = e.firstChild; null != i; i = i.nextSibling) t ? s.push(i) : 1 === i.nodeType && s.push(i);
            return s
        }, o.getChildrenFromAttribute = function(e, t, s) {
            for (var i = [], n = e.firstChild; null != n; n = n.nextSibling) s && o.hasAttribute(n, t) ? i.push(n) : 1 === n.nodeType && o.hasAttribute(n, t) && i.push(n);
            return 0 == i.length ? void 0 : i
        }, o.getChildFromNodeListFromAttribute = function(e, t, s) {
            for (var i = e.firstChild; null != i; i = i.nextSibling) {
                if (s && o.hasAttribute(i, t)) return i;
                if (1 === i.nodeType && o.hasAttribute(i, t)) return i
            }
        }, o.getAttributeValue = function(e, t) {
            return o.hasAttribute(e, t) ? e.getAttribute(t) : void 0
        }, o.hasAttribute = function(e, t) {
            if (e.hasAttribute) return e.hasAttribute(t);
            var s = e.getAttribute(t);
            return s ? !0 : !1
        }, o.insertNodeAt = function(e, t, s) {
            var i = o.children(e);
            if (0 > s || s > i.length) throw new Error("invalid index!");
            e.insertBefore(t, i[s])
        }, o.hasCanvas = function() {
            return Boolean(document.createElement("canvas"))
        }, o.hitTest = function(e, t, s) {
            if (!e) throw Error("Hit test target is null!");
            var i = e.getBoundingClientRect();
            return t >= i.left && t <= i.left + (i.right - i.left) && s >= i.top && s <= i.top + (i.bottom - i.top) ? !0 : !1
        }, o.getScrollOffsets = function() {
            return null != e.pageXOffset ? {
                x: e.pageXOffset,
                y: e.pageYOffset
            } : "CSS1Compat" == document.compatMode ? {
                x: document.documentElement.scrollLeft,
                y: document.documentElement.scrollTop
            } : void 0
        }, o.getViewportSize = function() {
            return o.hasPointerEvent && navigator.msMaxTouchPoints > 1 ? {
                w: document.documentElement.clientWidth || e.innerWidth,
                h: document.documentElement.clientHeight || e.innerHeight
            } : o.isMobile ? {
                w: e.innerWidth,
                h: e.innerHeight
            } : {
                w: document.documentElement.clientWidth || e.innerWidth,
                h: document.documentElement.clientHeight || e.innerHeight
            }
        }, o.getViewportMouseCoordinates = function(e) {
            var t = o.getScrollOffsets();
            return e.touches ? {
                screenX: void 0 == e.touches[0] ? e.touches.pageX - t.x : e.touches[0].pageX - t.x,
                screenY: void 0 == e.touches[0] ? e.touches.pageY - t.y : e.touches[0].pageY - t.y
            } : {
                screenX: void 0 == e.clientX ? e.pageX - t.x : e.clientX,
                screenY: void 0 == e.clientY ? e.pageY - t.y : e.clientY
            }
        }, o.hasPointerEvent = function() {
            return Boolean(e.navigator.msPointerEnabled) || Boolean(e.navigator.pointerEnabled)
        }(), o.isMobile = function() {
            if (o.hasPointerEvent && navigator.msMaxTouchPoints > 1 || o.hasPointerEvent && navigator.maxTouchPoints > 1) return !0;
            var e = ["android", "webos", "iphone", "ipad", "blackberry", "kfsowi"];
            for (i in e)
                if (-1 != String(navigator.userAgent).toLowerCase().indexOf(String(e[i]).toLowerCase())) return !0;
            return !1
        }(), o.isAndroid = function() {
            return -1 != navigator.userAgent.toLowerCase().indexOf("android".toLowerCase())
        }(), o.isChrome = function() {
            return -1 != navigator.userAgent.toLowerCase().indexOf("chrome")
        }(), o.isSafari = function() {
            return -1 != navigator.userAgent.toLowerCase().indexOf("safari") && -1 == navigator.userAgent.toLowerCase().indexOf("chrome")
        }(), o.isOpera = function() {
            return -1 != navigator.userAgent.toLowerCase().indexOf("opera") && -1 == navigator.userAgent.toLowerCase().indexOf("chrome")
        }(), o.isFirefox = function() {
            return -1 != navigator.userAgent.toLowerCase().indexOf("firefox")
        }(), o.isIE = function() {
            var e = Boolean(-1 != navigator.userAgent.toLowerCase().indexOf("msie")) || Boolean(-1 != navigator.userAgent.toLowerCase().indexOf("edge"));
            return e || Boolean(document.documentElement.msRequestFullscreen)
        }(), o.isIE11 = function() {
            return Boolean(!o.isIE && document.documentElement.msRequestFullscreen)
        }(), o.isIEAndLessThen9 = function() {
            return -1 != navigator.userAgent.toLowerCase().indexOf("msie 7") || -1 != navigator.userAgent.toLowerCase().indexOf("msie 8")
        }(), o.isIEAndLessThen10 = function() {
            return -1 != navigator.userAgent.toLowerCase().indexOf("msie 7") || -1 != navigator.userAgent.toLowerCase().indexOf("msie 8") || -1 != navigator.userAgent.toLowerCase().indexOf("msie 9")
        }(), o.isIE7 = function() {
            return -1 != navigator.userAgent.toLowerCase().indexOf("msie 7")
        }(), o.isIOS = function() {
            return navigator.userAgent.match(/(iPad|iPhone|iPod)/g)
        }(), o.isIphone = function() {
            return navigator.userAgent.match(/(iPhone|iPod)/g)
        }(), o.isApple = function() {
            return -1 != navigator.appVersion.toLowerCase().indexOf("mac")
        }(), o.isLocal = function() {
            return -1 != location.href.indexOf("file:")
        }(), o.hasFullScreen = function() {
            return o.dumy.requestFullScreen || o.dumy.mozRequestFullScreen || o.dumy.webkitRequestFullScreen || o.dumy.msieRequestFullScreen
        }(), o.onReady = function(e) {
            document.addEventListener ? document.addEventListener("DOMContentLoaded", function() {
                o.checkIfHasTransofrms(), e()
            }) : document.onreadystatechange = function() {
                o.checkIfHasTransofrms(), "complete" == document.readyState && e()
            }
        }, o.checkIfHasTransofrms = function() {
            document.documentElement.appendChild(o.dumy), o.hasTransform3d = t(), o.hasTransform2d = s(), o.isReadyMethodCalled_bl = !0
        }, o.disableElementSelection = function(e) {
            try {
                e.style.userSelect = "none"
            } catch (e) {}
            try {
                e.style.MozUserSelect = "none"
            } catch (e) {}
            try {
                e.style.webkitUserSelect = "none"
            } catch (e) {}
            try {
                e.style.khtmlUserSelect = "none"
            } catch (e) {}
            try {
                e.style.oUserSelect = "none"
            } catch (e) {}
            try {
                e.style.msUserSelect = "none"
            } catch (e) {}
            try {
                e.msUserSelect = "none"
            } catch (e) {}
            e.onselectstart = function() {
                return !1
            }
        }, o.getSearchArgs = function(e) {
            for (var t = {}, s = e.substr(e.indexOf("?") + 1) || location.search.substring(1), i = s.split("&"), o = 0; o < i.length; o++) {
                var n = i[o].indexOf("="),
                    r = i[o].substring(0, n),
                    l = i[o].substring(n + 1);
                l = decodeURIComponent(l), t[r] = l
            }
            return t
        }, o.getHashArgs = function(e) {
            for (var t = {}, s = e.substr(e.indexOf("#") + 1) || location.hash.substring(1), i = s.split("&"), o = 0; o < i.length; o++) {
                var n = i[o].indexOf("="),
                    r = i[o].substring(0, n),
                    l = i[o].substring(n + 1);
                l = decodeURIComponent(l), t[r] = l
            }
            return t
        }, o.isReadyMethodCalled_bl = !1, e.FWDRLUtils = o
    }(window), function(e) {
        var t = function() {
            var s = this;
            t.prototype;
            this.main_do = null, this.init = function() {
                this.setupScreen(), e.onerror = this.showError, this.screen.style.zIndex = 10000009, setTimeout(this.addConsoleToDom, 100), setInterval(this.position, 100)
            }, this.position = function() {
                var e = FWDRLUtils.getScrollOffsets();
                s.setX(e.x), s.setY(e.y)
            }, this.addConsoleToDom = function() {
                -1 != navigator.userAgent.toLowerCase().indexOf("msie 7") ? document.getElementsByTagName("body")[0].appendChild(s.screen) : document.documentElement.appendChild(s.screen)
            }, this.setupScreen = function() {
                this.main_do = new FWDRLDisplayObject("div", "absolute"), this.main_do.setOverflow("auto"), this.main_do.setWidth(200), this.main_do.setHeight(300), this.setWidth(200), this.setHeight(300), this.main_do.setBkColor("#FFFFFF"), this.addChild(this.main_do)
            }, this.showError = function(e, t, i) {
                var o = s.main_do.getInnerHTML() + "<br>JavaScript error: " + e + " on line " + i + " for " + t;
                s.main_do.setInnerHTML(o), s.main_do.screen.scrollTop = s.main_do.screen.scrollHeight
            }, this.log = function(e) {
                var t = s.main_do.getInnerHTML() + "<br>" + e;
                s.main_do.setInnerHTML(t), s.main_do.getScreen().scrollTop = 1e4
            }, this.init()
        };
        t.setPrototype = function() {
            t.prototype = new FWDRLDisplayObject("div", "absolute")
        }, t.prototype = null, e.FWDConsole = t
    }(window), function(e) {
        function t(t, s, i) {
            function o() {
                r && (r.apply(e, arguments), l || (delete s[n], r = null))
            }
            var n, r = i[0],
                l = t === u;
            return i[0] = o, n = t.apply(e, i), s[n] = {
                args: i,
                created: Date.now(),
                cb: r,
                id: n
            }, n
        }

        function s(t, s, i, o, n) {
            function r() {
                l.cb && (l.cb.apply(e, arguments), a || (delete i[o], l.cb = null))
            }
            var l = i[o];
            if (l) {
                var a = t === u;
                if (s(l.id), !a) {
                    var d = l.args[1],
                        h = Date.now() - l.created;
                    0 > h && (h = 0), d -= h, 0 > d && (d = 0), l.args[1] = d
                }
                l.args[0] = r, l.created = Date.now(), l.id = t.apply(e, l.args)
            }
        }
        var i = navigator.platform,
            o = !1;
        if (("iPad" == i || "iPhone" == i) && (o = !0), o) {
            var n = navigator.userAgent,
                r = !1;
            if (-1 != n.indexOf("6") && (r = !0), r) {
                var l = {},
                    a = {},
                    d = e.setTimeout,
                    u = e.setInterval,
                    h = e.clearTimeout,
                    c = e.clearInterval;
                e.setTimeout = function() {
                    return t(d, l, arguments)
                }, e.setInterval = function() {
                    return t(u, a, arguments)
                }, e.clearTimeout = function(e) {
                    var t = l[e];
                    t && (delete l[e], h(t.id))
                }, e.clearInterval = function(e) {
                    var t = a[e];
                    t && (delete a[e], c(t.id))
                }, e.addEventListener("scroll", function() {
                    var e;
                    for (e in l) s(d, h, l, e);
                    for (e in a) s(u, c, a, e)
                })
            }
        }
    }(window), function(window) {
        var FWDRL = function(props) {
            var self = this;
            self.init = function() {
                if (TweenLite.ticker.useRAF(!1), self.props_obj = props, !self.props_obj) return void alert("FWDRL constructor properties object is not defined!");
                this.stageContainer = document.getElementsByTagName("body")[0], this.stageContainer || (this.stageContainer = document.documentElement), this.listeners = {
                    events_ar: []
                }, this.buttons_ar = null, this.buttonsMaxW_ar = null, this.ws = null, this.so = null, this.data = null, this.customContextMenu_do = null, this.thumbnailsManager_do = null, this.info_do = null, this.hider = null, this.main_do = null, this.bk_do = null, this.preloader_do = null, this.playlist_ar = null, this.mainItemHolder_do = null, this.itemBk_do = null, this.itemBorder_do = null, this.itemHolder_do = null, this.curItem_do = null, this.prevItem_do = null, this.image_img = null, this.closeButton_do = null, this.zoomButton_do = null, this.descButton_do = null, this.slideShowButton_do = null, this.nextButton_do = null, this.prevButton_do = null, this.hsThumbanilsButton_do = null, this.video_do = null, this.videoHolder_do = null, this.audioHolder_do = null, this.audio_do = null, this.scClientId_str = "a123083c52a6b06985421d33038e033a", this.flickrAPIKey_str = "8b8bea6be401b521615b9b74c12131f2", this.rightClickContextMenu_str = this.props_obj.rightClickContextMenu || "developer";
                var e = "developer" == this.rightClickContextMenu_str || "disabled" == this.rightClickContextMenu_str || "default" == this.rightClickContextMenu_str;
                e || (this.rightClickContextMenu_str = "developer"), this.buttonsAlignment_str = this.props_obj.buttonsAlignment || "in";
                var e = "in" == this.buttonsAlignment_str || "out" == this.buttonsAlignment_str;
                e || (this.buttonsAlignment_str = "in"), this.DFButtonsAlignment_str = this.buttonsAlignment_str, this.descriptionWindowPosition_str = this.props_obj.descriptionWindowPosition || "top", e = "top" == this.descriptionWindowPosition_str || "bottom" == this.descriptionWindowPosition_str, e || (this.descriptionWindowPosition_str = "top"), this.DFDescriptionWindowPosition_str = this.descriptionWindowPosition_str, this.descriptionAnimationType_str = this.props_obj.descriptionWindowAnimationType || "motion", e = "motion" == this.descriptionAnimationType_str || "opacity" == this.descriptionAnimationType_str, e || (this.descriptionAnimationType_str = "motion"), this.DFDescriptionAnimationType_str = this.descriptionAnimationType_str, this.descriptionAnimationType_str = this.props_obj.descriptionWindowAnimationType || "motion", e = "motion" == this.descriptionAnimationType_str || "opacity" == this.descriptionAnimationType_str, e || (this.descriptionAnimationType_str = "motion"), this.DFDescriptionAnimationType_str = this.descriptionAnimationType_str, this.thumbnailsHoverEffect_str = this.props_obj.thumbnailsHoverEffect || "scale", e = "scale" == this.thumbnailsHoverEffect_str || "opacity" == this.thumbnailsHoverEffect_str, e || (this.thumbnailsHoverEffect_str = "opacity"), this.DFThumbnailsHoverEffect_str = this.thumbnailsHoverEffect_str, this.facebookAppId_str = self.props_obj.facebookAppId || void 0, this.googleMapsAPIKey_str = "AIzaSyDYlgLIneg_UOd8STBfJEgq2JgmT5nNJKU", this.backgroundColor_str = this.props_obj.backgroundColor || "#000000", this.DFBackgroundColor_str = self.backgroundColor_str, this.playlistDOMOrObject = null, this.type_str, this.itemBorderColor_str = this.props_obj.itemBorderColor || "transparent", this.DFitemBorderColor_str = this.itemBorderColor_str, this.itemBkColor_str = this.props_obj.itemBackgroundColor || "transparent", this.DFItemBkColor_str = this.itemBkColor_str, this.playlistDomOrObj_str = void 0, this.itemBoxShadow_str = this.props_obj.itemBoxShadow || "none", this.DFItemBoxShadow_str = this.itemBoxShadow_str, this.thumbnailsBorderNormalColor_str = this.props_obj.thumbnailsBorderNormalColor || "#FF0000", this.DFThumbnailsBorderNormalColor = this.thumbnailsBorderNormalColor_str, this.thumbnailsBorderSelectedColor_str = this.props_obj.thumbnailsBorderSelectedColor || "#FF0000", this.DFThumbnailsBorderSelectedColor_str = this.thumbnailsBorderSelectedColor_str, this.descriptionWindowBackgroundColor_str = this.props_obj.descriptionWindowBackgroundColor || "#FF0000", this.DFDescriptionWindowBackgroundColor = this.descriptionWindowBackgroundColor_str, this.thumbnailsOverlayColor_str = this.props_obj.thumbnailsOverlayColor || "#FF0000", this.DFThumbnailsOverlayColor_str = this.thumbnailsOverlayColor_str, this.posterPath_str, this.DFVideoControllerBackgroundColor_str, this.DFVideoPosterBackgroundColor_str, this.DFTimeColor_str, this.descriptionWindowBackgroundOpacity = this.props_obj.descriptionWindowBackgroundOpacity || 1, this.DFDescriptionWindowBackgroundOpacity = this.descriptionWindowBackgroundOpacity, this.backgroundOpacity = this.props_obj.backgroundOpacity || .8, this.DFBackgroundOpacity = this.backgroundOpacity, self.buttonsAlignment_str == FWDRL.BUTTONS_IN ? this.buttonsOffsetIn = this.props_obj.buttonsOffsetIn || 0 : this.buttonsOffsetIn = this.props_obj.buttonsOffsetOut || 0, this.DFButtonsOffsetIn = this.buttonsOffsetIn, self.buttonsAlignment_str == FWDRL.BUTTONS_IN ? this.buttonsOffsetOut = this.props_obj.buttonsOffsetOut || 0 : this.buttonsOffsetOut = this.props_obj.buttonsOffsetIn || 0, this.DFButtonsOffsetOut = this.buttonsOffsetOut, this.audioPlayerMarginsOffset = 20, this.itemBorderRadius = this.props_obj.itemBorderRadius || 0, this.DFItemBorderRadius = this.itemBorderRadius, this.itemBorderSize = this.props_obj.itemBorderSize || 0, 0 == this.itemBorderSize && (this.itemBorderColor_str = "transparent"), this.DFItemBorderSize = this.itemBorderSize, this.spaceBetweenButtons = this.props_obj.spaceBetweenButtons || 0, this.DFSpaceBetweenButtons = this.spaceBetweenButtons, this.buttonsHideDelay = this.props_obj.buttonsHideDelay || 3, this.buttonsHideDelay *= 1e3, this.DFbuttonsHideDelay = this.buttonsHideDelay, this.defaultItemW = this.props_obj.defaultItemWidth || 640, this.defaultItemH = this.props_obj.defaultItemHeight || 380, this.DFDefaultItemW = this.defaultItemW, this.DFDefaultItemH = this.defaultItemH, this.thumbnailsOffsetBottom = this.props_obj.thumbnailsOffsetBottom || 0, this.DFThumbnailsOffsetBottom = this.thumbnailsOffsetBottom, this.thumbnailsBorderSize = this.props_obj.thumbnailsBorderSize || 0, this.DFThumbnailsBorderSize = this.thumbnailsBorderSize, this.thumbnailsBorderRadius = this.props_obj.thumbnailsBorderRadius || 0, this.DFThumbnailsBorderRadius = this.thumbnailsBorderRadius, this.thumbnailH = this.props_obj.thumbnailsImageHeight || 50, this.thumbnailH += 2 * this.thumbnailsBorderSize + this.thumbnailsOffsetBottom, this.DFThumbnailH = this.thumbnailH, this.spaceBetweenThumbnailsAndItem = this.props_obj.spaceBetweenThumbnailsAndItem || 0, this.spaceBetweenThumbnails = this.props_obj.spaceBetweenThumbnails || 0, this.DFSpaceBetweenThumbnails = this.spaceBetweenThumbnails, this.itemOffsetH = this.props_obj.itemOffsetHeight || 0, this.DFItemOffsetH = this.itemOffsetH, this.spaceBetweenThumbnailsAndItem = this.props_obj.spaceBetweenThumbnailsAndItem || 0, this.DFSpaceBetweenThumbnailsAndItem = this.spaceBetweenThumbnailsAndItem, this.slideShowDelay = 1e3 * parseInt(this.props_obj.slideShowDelay), this.slideShowDelay < .001 && (this.slideShowDelay = 1e3), this.DFSlideShowDelay = this.slideShowDelay, this.thumbnailsOverlayOpacity = this.props_obj.thumbnailsOverlayOpacity || 1, this.DFThumbnailsOverlayOpacity = this.thumbnailsOverlayOpacity, this.id = -1, this.prevId = -2, this.stageWidth = 0, this.stageHeight = 0, this.totalItems = 0, this.originalW = 0, this.originalH = 0, this.maxButtonW = 0, this.finalW = 0, this.finalH = 0, this.prevVideoW = 0, this.prevVideoH = 0, this.finalX = 0, this.finalY = 0, this.gmx = 0, this.gmy = 0, this.lastPresedX = 0, this.lastPresedY = 0, this.friction = .9, this.vx = 0, this.vy = 0, this.dif = 0, this.mouseX = 0, this.mouseY = 0, this.resizeHandlerId_to, this.showOrHideCompleteId_to, this.hideCompleteId_to, this.animId_to, this.maximizeCompleteTimeOutId_to, this.minimizeCompleteTimeOutId_to, this.disableClickId_to, this.doNotAllowToHideId_to, this.updateImageWhenMaximized_int, this.isAnimForVideoAndAudioPlayersDone_bl = !1, this.isMobile_bl = FWDRLUtils.isMobile, this.useDeepLinking_bl = this.props_obj.useDeepLinking, this.useDeepLinking_bl = "yes" == this.useDeepLinking_bl ? !0 : !1, FWDRLUtils.isLocal && (this.useDeepLinking_bl = !1), this.showCloseButton_bl = this.props_obj.showCloseButton, this.showCloseButton_bl = "no" == this.showCloseButton_bl ? !1 : !0, this.DFShowCloseButton_bl = this.showCloseButton_bl, this.defaultShowZoomButton_bl = this.props_obj.showZoomButton, this.defaultShowZoomButton_bl = "no" == this.defaultShowZoomButton_bl ? !1 : !0, this.DFShowZoomButton = this.defaultShowZoomButton_bl, this.showZoomButton_bl = !1, this.defaultShowNextAndPrevButtons_bl = this.props_obj.showNextAndPrevButtons, this.defaultShowNextAndPrevButtons_bl = "no" == this.defaultShowNextAndPrevButtons_bl ? !1 : !0, "no" == this.props_obj.showNextAndPrevButtonsOnMobile && self.isMobile_bl && (this.defaultShowNextAndPrevButtons_bl = !1), this.DFSefaultShowNextAndPrevButtons_bl = this.defaultShowNextAndPrevButtons_bl, this.defaultHideDescriptionButtons_bl = this.props_obj.showDescriptionButton, this.defaultHideDescriptionButtons_bl = "yes" == this.defaultHideDescriptionButtons_bl ? !0 : !1, this.DFDefaultHideDescriptionButtons_bl = this.defaultHideDescriptionButtons_bl, this.showDescriptionButton_bl = !1, this.hasItemDescription_bl = !1, this.defaultShowDescriptionByDefault_bl = this.props_obj.showDescriptionByDefault, this.defaultShowDescriptionByDefault_bl = "yes" == this.defaultShowDescriptionByDefault_bl ? !0 : !1, this.DFDefaultShowDescriptionByDefault_bl = this.defaultShowDescriptionByDefault_bl, this.showDescription_bl = this.defaultShowDescriptionByDefault_bl, this.addKeyboardSupport_bl = this.props_obj.addKeyboardSupport, this.addKeyboardSupport_bl = "yes" == this.addKeyboardSupport_bl ? !0 : !1, this.DFSddKeyboardSupport_bl = this.addKeyboardSupport_bl, this.slideShowAutoPlay_bl = this.props_obj.slideShowAutoPlay, this.slideShowAutoPlay_bl = "yes" == this.slideShowAutoPlay_bl ? !0 : !1, this.DFSlideShowAutoPlay_bl = this.slideShowAutoPlay_bl, this.videoAutoPlay_bl = this.props_obj.videoAutoPlay, this.videoAutoPlay_bl = "yes" == this.videoAutoPlay_bl ? !0 : !1, self.isMobile_bl && (self.videoAutoPlay_bl = !1), this.DFVideoAutoPlay_bl = this.videoAutoPlay_bl, this.audioAutoPlay_bl = this.props_obj.audioAutoPlay, this.audioAutoPlay_bl = "yes" == this.audioAutoPlay_bl ? !0 : !1, self.isMobile_bl && (self.audioAutoPlay_bl = !1), this.DFAudioAutoPlay_bl = this.audioAutoPlay_bl, this.nextVideoOrAudioAutoPlay_bl = this.props_obj.nextVideoOrAudioAutoPlay, this.nextVideoOrAudioAutoPlay_bl = "yes" == this.nextVideoOrAudioAutoPlay_bl ? !0 : !1, self.isMobile_bl && (self.nextVideoOrAudioAutoPlay_bl = !1), this.DFNextVideoOrAudioAutoPlay_bl = this.nextVideoOrAudioAutoPlay_bl, this.defaultShowThumbnails_bl = this.props_obj.showThumbnails, this.defaultShowThumbnails_bl = "yes" == this.defaultShowThumbnails_bl ? !0 : !1, this.DFDefaultThumbnails_bl = this.defaultShowThumbnails_bl, this.showThumbnailsByDefault_bl = this.props_obj.showThumbnailsByDefault, this.showThumbnailsByDefault_bl = "yes" == this.showThumbnailsByDefault_bl ? !0 : !1, this.DFShowThumbnailsByDefault_bl = this.showThumbnailsByDefault_bl, this.defaultShowThumbnailsHideOrShowButton_bl = this.props_obj.showThumbnailsHideOrShowButton, this.defaultShowThumbnailsHideOrShowButton_bl = "yes" == this.defaultShowThumbnailsHideOrShowButton_bl ? !0 : !1, this.DFDefaultShowThumbnailsHideOrShowButton_bl = this.defaultShowThumbnailsHideOrShowButton_bl, this.showSlideShowButton_bl = this.props_obj.showSlideShowButton, this.showSlideShowButton_bl = "yes" == this.showSlideShowButton_bl ? !0 : !1, this.DFShowSlideShowButton_bl = this.showSlideShowButton_bl, this.defaultShowSlideShowAnimation_bl = this.props_obj.showSlideShowAnimation, this.defaultShowSlideShowAnimation_bl = "yes" == this.defaultShowSlideShowAnimation_bl ? !0 : !1, this.DFSefaultShowSlideShowAnimation_bl = this.defaultShowSlideShowAnimation_bl, this.showSlideShowAnimation_bl = !1, this.useAsModal_bl = this.props_obj.useAsModal, this.useAsModal_bl = "yes" == this.useAsModal_bl ? !0 : !1, this.DFUseAsModal_bl = this.useAsModal_bl, this.showShareButton_bl = this.props_obj.showShareButton, this.showShareButton_bl = "yes" == this.showShareButton_bl ? !0 : !1, this.DFShowFacebookButton_bl = this.showShareButton_bl, this.showThumbnailsOverlay_bl = this.props_obj.showThumbnailsOverlay, this.showThumbnailsOverlay_bl = "yes" == this.showThumbnailsOverlay_bl ? !0 : !1, this.DFShowThumbnailsOverlay_bl = this.showThumbnailsOverlay_bl, this.showThumbnailsSmallIcon_bl = this.props_obj.showThumbnailsSmallIcon, this.showThumbnailsSmallIcon_bl = "yes" == this.showThumbnailsSmallIcon_bl ? !0 : !1, this.DFShowThumbnailsSmallIcon_bl = this.showThumbnailsSmallIcon_bl, this.areButtonsSharedShowed_bl = !1, this.doNotAllowToHide_bl = !1, this.isVideoFullScreen_bl = !1, this.hasKeyboardSupport_bl = !1, this.isClickedDisabled_bl = !1, this.showThumbnails_bl = !1, this.areThumbnailsShowed_bl = !1, this.showThumbnailsHideOrShowButton_bl = !1, this.isDragging_bl = !1, this.isAnimMaximizeOrMinimize_bl = !1, this.swipeMoved_bl = !1, this.isAPIReady_bl = !1, this.isLoading_bl = !1, this.isShowed_bl = !1, self.isReady_bl = !1, this.isAnim_bl = !1, this.isFirstItemShowed_bl = !1, this.firstVideoOrAudioAdded_bl = !1, this.isMaximized_bl = !1, this.useVideo_bl = !1, this.areButtonsShowed_bl = !0, this.hasPointerEvent_bl = FWDRLUtils.hasPointerEvent, this.initiallize()
            }, self.initiallize = function() {
                self.main_do = new FWDRLDisplayObject("div"), self.main_do.screen.setAttribute("id", "RL"), self.main_do.getStyle().msTouchAction = "none", self.main_do.getStyle().webkitTapHighlightColor = "rgba(0, 0, 0, 0)", self.main_do.setBackfaceVisibility(), !self.isMobile_bl && FWDRLUtils.isChrome && (self.main_do.hasTransform3d_bl = !1, self.main_do.hasTransform2d_bl = !1), self.main_do.getStyle().width = "100%", self.main_do.getStyle().zIndex = "100000000000000000", self.bk_do = new FWDRLDisplayObject("div"), self.bk_do.getStyle().width = "100%", self.bk_do.getStyle().height = "100%", self.bk_do.getStyle().backgroundColor = self.backgroundColor_str, self.bk_do.setAlpha(0), self.mainItemHolder_do = new FWDRLDisplayObject("div"), FWDRLDescriptionWindow.setPrototype(), self.desc_do = new FWDRLDescriptionWindow(self, self.descriptionAnimationType_str, self.descriptionWindowPosition_str, self.itemBorderSize, self.descriptionWindowBackgroundColor_str, self.descriptionWindowBackgroundOpacity), self.itemBorder_do = new FWDRLDisplayObject("div"), self.itemBorder_do.getStyle().backgroundColor = self.itemBorderColor_str, (!self.isMobile_bl && FWDRLUtils.isChrome || FWDRLUtils.isAndroid) && (self.itemBorder_do.hasTransform3d_bl = !1, self.itemBorder_do.hasTransform2d_bl = !1, self.itemBorder_do.setBackfaceVisibility()), self.itemBk_do = new FWDRLDisplayObject("div"), self.itemBk_do.getStyle().backgroundColor = self.itemBkColor_str, self.itemHolder_do = new FWDRLDisplayObject("div"), self.itemHolder_do.setOverflow("visible"), self.mainItemHolder_do.addChild(self.itemBorder_do), self.mainItemHolder_do.addChild(self.itemBk_do), self.mainItemHolder_do.addChild(self.itemHolder_do), self.mainItemHolder_do.addChild(self.desc_do), self.main_do.addChild(self.bk_do), self.main_do.addChild(self.mainItemHolder_do), self.stageContainer.appendChild(self.main_do.screen), (!FWDRLUtils.isMobile || FWDRLUtils.isMobile && FWDRLUtils.hasPointerEvent) && self.main_do.setSelectable(!1), self.isMobile_bl || self.setupContextMenu(), self.setupHider(), self.setupDisableClick(), self.setupData(), self.setupInfoWindow(), self.useDeepLinking_bl && (self.setupDL(), setTimeout(function() {
                    var e = FWDAddress.getParameter("rl_playlist"),
                        t = FWDAddress.getParameter("rl_id"); - 1 != location.href.indexOf("youtube.com") ? (e = location.href, e = e.match(/https:.*/i)[0], e.indexOf("rl_id=") && (e = e.replace(/&rl_id=.*/, ""))) : -1 != location.href.indexOf("facebook.com") && (e = location.href, e = e.match(/https:.*/i)[0], e.indexOf("rl_id=") && (e = e.replace(/&rl_id=.*/, ""))), self.propsObjVariableName_str = FWDAddress.getParameter("rl_propsobj"), location.href.indexOf("RL?") && e && t && FWDRL.show(e, t, self.propsObjVariableName_str)
                }, 100))
            }, self.setupInfoWindow = function() {
                FWDRLInfo.setPrototype(), self.info_do = new FWDRLInfo(self, self.data.wrningIconPath_str)
            }, self.setupContextMenu = function() {
                self.customContextMenu_do = new FWDRLContextMenu(self.main_do, self.rightClickContextMenu_str)
            }, this.setupHider = function() {
                FWDRLHider.setPrototype(), self.hider = new FWDRLHider(self.main_do, self.buttonsHideDelay), self.hider.addListener(FWDRLHider.SHOW, self.hiderShowHandler), self.hider.addListener(FWDRLHider.HIDE, self.hiderHideHandler)
            }, this.hiderShowHandler = function() {
                self.showButtonsWithFade(!0), self.positionButtons(!0), self.positionShareButtons(!0)
            }, this.hiderHideHandler = function() {
                if (!self.isMobile_bl) {
                    if (self.shareButtonsHolder_do && FWDRLUtils.hitTest(self.shareButtonsHolder_do.screen, self.hider.globalX, self.hider.globalY)) return void self.hider.reset();
                    if (self.showCloseButton_bl && FWDRLUtils.hitTest(self.closeButton_do.screen, self.hider.globalX, self.hider.globalY)) return void self.hider.reset();
                    if (self.showNextAndPrevButtons_bl && (FWDRLUtils.hitTest(self.nextButton_do.screen, self.hider.globalX, self.hider.globalY) || FWDRLUtils.hitTest(self.prevButton_do.screen, self.hider.globalX, self.hider.globalY))) return void self.hider.reset();
                    if (self.showZoomButton_bl && FWDRLUtils.hitTest(self.zoomButton_do.screen, self.hider.globalX, self.hider.globalY)) return void self.hider.reset();
                    if (self.showDescriptionButton_bl && FWDRLUtils.hitTest(self.descButton_do.screen, self.hider.globalX, self.hider.globalY)) return void self.hider.reset();
                    if (self.showSlideShowButton_bl && FWDRLUtils.hitTest(self.slideShowButton_do.screen, self.hider.globalX, self.hider.globalY)) return void self.hider.reset();
                    if (self.showShareButton_bl && FWDRLUtils.hitTest(self.shareButton_do.screen, self.hider.globalX, self.hider.globalY)) return void self.hider.reset();
                    if (self.showThumbnailsHideOrShowButton_bl && FWDRLUtils.hitTest(self.hsThumbanilsButton_do.screen, self.hider.globalX, self.hider.globalY)) return void self.hider.reset()
                }
                self.showSlideShowAnimation_bl && (self.buttonsAlignment_str == FWDRL.BUTTONS_IN ? FWDRLTweenMax.to(self.slp_do, .8, {
                    y: self.finalY,
                    ease: Expo.easeInOut
                }) : FWDRLTweenMax.to(self.slp_do, .8, {
                    y: self.buttonsOffsetIn,
                    ease: Expo.easeInOut
                })), self.stopToCheckShareButtonsHit(), self.hideButtonsWithFade(!0)
            }, self.setupDisableClick = function() {
                self.disableClick_do = new FWDRLDisplayObject("div"), FWDRLUtils.isIE && (self.disableClick_do.setBkColor("#FFFFFF"), self.disableClick_do.setAlpha(1e-5))
            }, self.disableClick = function() {
                self.showDisable(), self.disableClickId_to = setTimeout(function() {
                    self.hideDisable()
                }, 100)
            }, self.showDisable = function() {
                self.isClickedDisabled_bl || (self.isClickedDisabled_bl = !0, self.disableClick_do.setWidth(self.stageWidth), self.disableClick_do.setHeight(self.stageHeight))
            }, self.hideDisable = function() {
                self.isClickedDisabled_bl && (self.isClickedDisabled_bl = !1, self.disableClick_do.setWidth(0), self.disableClick_do.setHeight(0))
            }, self.startResizeHandler = function() {
                window.addEventListener ? (window.addEventListener("resize", self.onResizeHandler), window.addEventListener("scroll", self.scrollHandler), window.addEventListener("mousewheel", self.mouseDummyHandler), window.addEventListener("DOMMouseScroll", self.mouseDummyHandler), self.isMobile_bl && window.addEventListener("touchmove", self.mouseDummyHandler)) : window.attachEvent && (window.attachEvent("onresize", self.onResizeHandler), window.attachEvent("onscroll", self.scrollHandler), document.attachEvent("onmousewheel", self.mouseDummyHandler)), self.onResizeHandler(), setTimeout(self.scrollHandler, 200), setTimeout(self.scrollHandler, 500)
            }, self.stopResizeHandler = function() {
                clearTimeout(self.resizeHandlerId_to), window.removeEventListener ? (window.removeEventListener("resize", self.onResizeHandler), window.removeEventListener("scroll", self.scrollHandler), self.isMobile_bl && window.removeEventListener("touchmove", self.mouseDummyHandler)) : window.detachEvent && (window.detachEvent("onresize", self.onResizeHandler), window.detachEvent("onscroll", self.scrollHandler), document.detachEvent("onmousewheel", self.mouseDummyHandler))
            }, self.onResizeHandler = function(e) {
                self.resizeHandler()
            }, self.scrollHandler = function(e) {
                self.so = FWDRLUtils.getScrollOffsets(), self.isShowed_bl && (self.main_do.setX(self.so.x), self.main_do.setY(self.so.y), e && e.preventDefault && e.preventDefault())
            }, self.addPreventMouseWheel = function() {
                window.addEventListener ? (window.addEventListener("mousewheel", self.mouseDummyHandler), window.addEventListener("DOMMouseScroll", self.mouseDummyHandler)) : document.attachEvent && document.attachEvent("onmousewheel", self.mouseDummyHandler)
            }, self.removePreventMouseWheel = function() {
                window.removeEventListener ? (window.removeEventListener("mousewheel", self.mouseDummyHandler), window.removeEventListener("DOMMouseScroll", self.mouseDummyHandler)) : document.detachEvent && document.detachEvent("onmousewheel", self.mouseDummyHandler)
            }, this.mouseDummyHandler = function(e) {
                return e.preventDefault ? void e.preventDefault() : !1
            }, self.resizeHandler = function(e) {
                self.isShowed_bl && (self.ws = FWDRLUtils.getViewportSize(), self.stageWidth = self.ws.w, self.stageHeight = self.ws.h, self.isMobile_bl && (self.main_do.setWidth(self.stageWidth), self.main_do.setHeight(self.stageHeight)), self.preloader_do && self.positionPreloader(), self.info_do && self.info_do.isShowed_bl && self.info_do.positionAndResize(), self.hideShareButtons(!1, !1, !0), self.resizeCurrentItem(), self.positionButtons(), self.positionShareButtons(), self.main_do.setX(self.so.x), self.main_do.setY(self.so.y), self.main_do.setHeight(self.stageHeight), self.thumbnailsManager_do && self.showThumbnails_bl && self.thumbnailsManager_do.positionAndResize(), clearTimeout(self.resizeHandlerId_to), self.resizeHandlerId_to = setTimeout(self.checkStageSizeAndResize, 50))
            }, self.checkStageSizeAndResize = function() {
                self.ws = FWDRLUtils.getViewportSize(), self.stageWidth != self.ws.w && self.resizeHandler()
            }, self.setupData = function() {
                FWDRLData.setPrototype(), self.data = new FWDRLData(self.props_obj, self.rootElement_el, self), self.DFVideoControllerBackgroundColor_str = self.data.videoControllerBackgroundColor_str, self.DFVideoPosterBackgroundColor_str = self.data.videoPosterBackgroundColor_str, self.DFAudioControllerBackgroundColor_str = self.data.audioControllerBackgroundColor_str, self.data.addListener(FWDRLData.PRELOADER_LOAD_DONE, self.onPreloaderLoadDone), self.data.addListener(FWDRLData.LOAD_ERROR, self.dataLoadError), self.data.addListener(FWDRLData.SKIN_LOAD_COMPLETE, self.dataSkinLoadComplete)
            }, self.onPreloaderLoadDone = function() {
                self.setupPreloader(), self.isShowed_bl && (self.positionPreloader(), self.preloader_do.show(!0), self.resizeHandler())
            }, self.dataLoadError = function(e) {
                self.preloader_do && self.preloader_do.hide(!1), self.main_do.addChild(self.info_do), self.info_do.showText(e.text), setTimeout(self.resizeHandler, 200), FWDRL.dispatchEvent(FWDRL.ERROR, {
                    error: e.text
                })
            }, self.dataSkinLoadComplete = function() {
                self.isReady_bl = !0, self.useVideo_bl = self.data.useVideo_bl, self.useAudio_bl = self.data.useAudio_bl, self.setupMainStuff(), clearTimeout(self.showOrHideCompleteId_to),
                    self.showOrHideCompleteId_to = setTimeout(self.showComplete, 401), setTimeout(function() {
                        FWDRL.dispatchEvent(FWDRL.READY)
                    }, 401)
            }, self.setupMainStuff = function() {
                self.setupButtons(), self.setupTimerManager(), self.data.useVideo_bl && self.setupVideoPlayer(), self.data.useAudio_bl && self.setupAudioPlayer(), self.showShareButton_bl && self.setupShareButtons(), self.hideStuffForGood()
            }, self.setupVideoPlayer = function() {
                self.videoHolder_do = new FWDRLDisplayObject("div"), self.videoHolder_do.setWidth(500), self.videoHolder_do.setHeight(500), self.mainItemHolder_do.addChildAt(self.videoHolder_do, 3), self.video_do = new FWDRLEVPlayer(self.videoHolder_do.screen, self.data), self.video_do.addListener(FWDRLEVPlayer.ERROR, self.videoErrorHandler), self.video_do.addListener(FWDRLEVPlayer.GO_FULLSCREEN, self.videoFullScreenHandler), self.video_do.addListener(FWDRLEVPlayer.GO_NORMALSCREEN, self.videoNormalScreenHandler)
            }, self.videoErrorHandler = function(e) {
                self.main_do.addChild(self.info_do), self.info_do.showText(e.error)
            }, self.videoFullScreenHandler = function() {
                self.isVideoFullScreen_bl = !0, self.resizeCurrentItem(), self.mainItemHolder_do.getStyle().overflow = "visible", self.setButtonsInvisible(), self.addKeyboardSupport_bl && self.removeKeyboardSupport(), self.isMobile_bl && self.removeSwipeSupport()
            }, self.videoNormalScreenHandler = function() {
                self.isVideoFullScreen_bl = !1, self.resizeCurrentItem(), self.mainItemHolder_do.getStyle().overflow = "hidden", self.setButtonsVisible(), self.addKeyboardSupport_bl && self.addKeyboardSupport(), self.isMobile_bl && self.addSwipeSupport()
            }, self.setupAudioPlayer = function() {
                self.audioHolder_do = new FWDRLDisplayObject("div"), self.audioHolder_do.hasTransform3d_bl = !1, self.audioHolder_do.hasTransform2d_bl = !1, self.audioHolder_do.setWidth(500), self.audioHolder_do.setHeight(500), self.audioHolder_do.setHeight(self.data.audioControllerHeight), self.mainItemHolder_do.addChildAt(self.audioHolder_do, 3), self.mainItemHolder_do.addChildAt(self.audioHolder_do, 3), self.audio_do = new FWDRLEAP(self.audioHolder_do.screen, self.data), self.audio_do.addListener(FWDRLEAP.ERROR, self.videoErrorHandler)
            }, self.setupTimerManager = function() {
                FWDRLTimerManager.setProtptype(), self.tm = new FWDRLTimerManager(self.slideShowDelay), self.tm.addListener(FWDRLTimerManager.STOP, self.tmStopHandler), self.tm.addListener(FWDRLTimerManager.START, self.tmStartHandler), self.tm.addListener(FWDRLTimerManager.PAUSE, self.tmPauseHandler), self.tm.addListener(FWDRLTimerManager.RESUME, self.tmResumeHandler), self.tm.addListener(FWDRLTimerManager.TIME, self.tmTimeHandler)
            }, self.tmStopHandler = function() {
                self.slideShowButton_do.setButtonState(1), self.showSlideShowAnimation_bl && (self.hideSlideShowAnimation(), self.positionButtons(!0)), self.showSlideShowAnimation_bl = !1
            }, self.tmStartHandler = function() {
                self.slideShowButton_do.setButtonState(0), self.showSlideShowAnimation_bl || (self.showSlideShowAnimation(), self.positionButtons(!0), self.slp_do.animShow()), self.showSlideShowAnimation_bl = !0
            }, self.tmPauseHandler = function() {
                self.showSlideShowAnimation_bl && self.slp_do.animHide()
            }, self.tmResumeHandler = function() {
                self.showSlideShowAnimation_bl && self.slp_do.animShow()
            }, self.tmTimeHandler = function() {
                self.gotoNextItem(), self.showSlideShowAnimation_bl && self.slp_do.animHide()
            }, self.setupDL = function() {
                FWDAddress.onChange = self.dlChangeHandler, self.dlChangeHandler()
            }, self.dlChangeHandler = function() {
                if (self.isReady_bl && !self.isAnim_bl && !self.isAnimMaximizeOrMinimize_bl && self.useDeepLinking_bl) {
                    if (self.isMaximized_bl) return void self.maximizeOrMinimize();
                    var e = FWDAddress.getParameter("rl_playlist"),
                        t = FWDAddress.getParameter("rl_id");
                    if (-1 != location.href.indexOf("youtube.com") ? (e = location.href, e = e.match(/https:.*/i)[0], e.indexOf("rl_id=") && (e = e.replace(/&rl_id=.*/, ""))) : -1 != location.href.indexOf("facebook.com") && (e = location.href, e = e.match(/https:.*/i)[0], e.indexOf("rl_id=") && (e = e.replace(/&rl_id=.*/, ""))), sObjVariableName_str = FWDAddress.getParameter("rl_propsobj"), !self.isShowed_bl) return void(-1 != location.href.indexOf("RL?") && e && t && FWDRL.show(e, t, self.propsObjVariableName_str));
                    if (-1 == location.href.indexOf("RL?") || !e || !t) return void self.hide();
                    if (self.id = parseInt(FWDAddress.getParameter("rl_id")), self.id != self.prevId) {
                        if (self.id < 0) return self.id = 0, void(self.propsObjVariableName_str ? FWDAddress.setValue("RL?rl_playlist=" + self.playlistDomOrObj_str + "&rl_id=" + self.id + "&rl_propsobj=" + self.propsObjVariableName_str) : FWDAddress.setValue("RL?rl_playlist=" + self.playlistDomOrObj_str + "&rl_id=" + self.id));
                        if (self.id > self.totalItems - 1) return self.id = self.totalItems - 1, void(self.propsObjVariableName_str ? FWDAddress.setValue("RL?rl_playlist=" + self.playlistDomOrObj_str + "&rl_id=" + self.id + "&rl_propsobj=" + self.propsObjVariableName_str) : FWDAddress.setValue("RL?rl_playlist=" + self.playlistDomOrObj_str + "&rl_id=" + self.id));
                        self.createAndShowItem(), self.prevId = self.id
                    }
                }
            }, self.setupPreloader = function() {
                FWDRLPreloader.setPrototype(), self.preloader_do = new FWDRLPreloader(self.data.mainPreloader_img, 38, 38, 30, 36, !0), self.main_do.addChild(self.preloader_do)
            }, self.positionPreloader = function() {
                self.preloader_do.setX(parseInt((self.stageWidth - self.preloader_do.w) / 2)), self.thumbnailsManager_do && self.thumbnailsManager_do.areThumbnailsCreated_bl && self.areThumbnailsShowed_bl ? self.preloader_do.setY(parseInt((self.stageHeight - self.preloader_do.h - self.thumbnailH) / 2)) : self.preloader_do.setY(parseInt((self.stageHeight - self.preloader_do.h) / 2))
            }, self.setupThumbnailManager = function() {
                self.thumbnailsManager_do || (FWDRLThumbnailsManager.setPrototype(), self.thumbnailsManager_do = new FWDRLThumbnailsManager(self), self.thumbnailsManager_do.addListener(FWDRLThumb.CLICK, self.thumbClickHandler), self.main_do.addChildAt(self.thumbnailsManager_do, 1))
            }, self.hideOrShowThumbnails = function() {
                self.areThumbnailsShowed_bl ? (self.hsThumbanilsButton_do.setButtonState(0), self.thumbnailsManager_do.hide(!0), self.areThumbnailsShowed_bl = !1) : (self.hsThumbanilsButton_do.setButtonState(1), self.thumbnailsManager_do.show(!0), self.areThumbnailsShowed_bl = !0), self.hideShareButtons(!0), self.resizeCurrentItem(!1, !0), self.positionButtons(!0), self.startAnim(801)
            }, self.thumbClickHandler = function(e) {
                self.gotoToItem(e.id)
            }, self.setupThumbnails = function(e) {
                setTimeout(function() {
                    self.thumbnailsManager_do && self.showThumbnails_bl && self.thumbnailsManager_do.setupThumbnails()
                }, e)
            }, self.setupButtons = function() {
                self.buttons_ar = [], self.buttonsMaxW_ar = [], FWDRLSimpleButton.setPrototype(), self.closeButton_do = new FWDRLSimpleButton(self.data.closeN_img, self.data.closeSPath_str), self.closeButton_do.addListener(FWDRLSimpleButton.MOUSE_UP, self.closeButtonOnMouseUpHandler), self.buttonsMaxW_ar.push(self.closeButton_do), self.main_do.addChild(self.closeButton_do), FWDRLComplexButton.setPrototype(), self.zoomButton_do = new FWDRLComplexButton(self.data.maximizeN_img, self.data.maximizeSPath_str, self.data.minimizeN_img, self.data.minimizeSPath_str, !0), self.zoomButton_do.addListener(FWDRLComplexButton.MOUSE_UP, self.zoomButtonOnMouseUpHandler), self.buttonsMaxW_ar.push(self.zoomButton_do), self.main_do.addChild(self.zoomButton_do), FWDRLComplexButton.setPrototype(), self.descButton_do = new FWDRLComplexButton(self.data.infoOpenN_img, self.data.infoOpenS_str, self.data.infoCloseN_img, self.data.infoCloseS_str, !0), self.descButton_do.addListener(FWDRLComplexButton.MOUSE_UP, self.descButtonOnMouseUpHandler), self.buttonsMaxW_ar.push(self.descButton_do), self.main_do.addChild(self.descButton_do), FWDRLComplexButton.setPrototype(), self.slideShowButton_do = new FWDRLComplexButton(self.data.playN_img, self.data.playS_str, self.data.pauseN_img, self.data.pauseS_str, !0), self.slideShowButton_do.addListener(FWDRLComplexButton.MOUSE_UP, self.slideshowButtonOnMouseUpHandler), self.buttonsMaxW_ar.push(self.slideShowButton_do), self.main_do.addChild(self.slideShowButton_do), FWDRLSlideShowPreloader.setPrototype(), self.slp_do = new FWDRLSlideShowPreloader(self.data.slideSwowImage_img, 30, 29, 60, self.slideShowDelay), self.buttonsMaxW_ar.push(self.slp_do), self.main_do.addChild(self.slp_do), self.showShareButton_bl && (FWDRLComplexButton.setPrototype(), self.shareButton_do = new FWDRLComplexButton(self.data.showShareImage_img, self.data.showShareImageSPath_str, self.data.hideShareImage_img, self.data.hideShareImageSPath_str, !0), self.shareButton_do.addListener(FWDRLComplexButton.MOUSE_UP, self.shareButtonOnMouseUpHandler), self.buttonsMaxW_ar.push(self.shareButton_do), self.main_do.addChild(self.shareButton_do)), FWDRLSimpleButton.setPrototype(), self.nextButton_do = new FWDRLSimpleButton(self.data.nextN_img, self.data.nextSPath_str), self.nextButton_do.addListener(FWDRLSimpleButton.MOUSE_UP, self.nextButtonOnMouseUpHandler), self.buttonsMaxW_ar.push(self.nextButton_do), self.main_do.addChild(self.nextButton_do), FWDRLSimpleButton.setPrototype(), self.prevButton_do = new FWDRLSimpleButton(self.data.prevN_img, self.data.prevSPath_str), self.prevButton_do.addListener(FWDRLSimpleButton.MOUSE_UP, self.prevButtonOnMouseUpHandler), self.buttonsMaxW_ar.push(self.prevButton_do), self.main_do.addChild(self.prevButton_do), FWDRLComplexButton.setPrototype(), self.hsThumbanilsButton_do = new FWDRLComplexButton(self.data.hideThumbnailsN_img, self.data.hideThumbnailsSPath_str, self.data.showThumbnailsN_img, self.data.showThumbnailsSPath_str, !0), self.hsThumbanilsButton_do.addListener(FWDRLComplexButton.MOUSE_UP, self.hsButtonOnMouseUpHandler), self.buttonsMaxW_ar.push(self.hsThumbanilsButton_do), self.main_do.addChild(self.hsThumbanilsButton_do);
                for (var e = 0; e < self.buttonsMaxW_ar.length; e++) self.maxButtonW < self.buttonsMaxW_ar[e].h && (self.maxButtonW = self.buttonsMaxW_ar[e].w)
            }, self.closeButtonOnMouseUpHandler = function() {
                self.hide()
            }, self.zoomButtonOnMouseUpHandler = function(e) {
                self.maximizeOrMinimize()
            }, self.shareButtonOnMouseUpHandler = function() {
                1 == self.shareButton_do.currentState ? self.areButtonsShowed_bl && self.showShareButtons(!0) : self.hideShareButtons(!0)
            }, self.nextButtonOnMouseUpHandler = function() {
                self.gotoNextItem()
            }, self.prevButtonOnMouseUpHandler = function() {
                self.gotoPrevItem()
            }, self.descButtonOnMouseUpHandler = function() {
                self.isAnim_bl || (self.hideShareButtons(!0), self.showDescription_bl ? (self.showDescription_bl = !1, self.descButton_do.setButtonState(1), self.desc_do.hide(!0)) : (self.showDescription_bl = !0, self.descButton_do.setButtonState(0), self.desc_do.show(!0)))
            }, self.slideshowButtonOnMouseUpHandler = function() {
                self.tm.isStopped_bl ? (self.tm.start(), self.hideShareButtons(!0)) : self.tm.stop()
            }, self.hsButtonOnMouseUpHandler = function() {
                (!self.isMobile_bl && self.stageWidth < self.thumbnailsManager_do.totalW + 2 * (self.hsThumbanilsButton_do.w + self.buttonsOffsetIn) || self.buttonsAlignment_str == FWDRL.BUTTONS_IN) && self.disableClick(), self.hideOrShowThumbnails()
            }, this.setupShareButtons = function() {
                var e;
                this.maxShareButtonsW = 0, this.shareButtonsHolder_do = new FWDRLDisplayObject("div"), this.shareButtonsHolder_do.setOverflow("visible"), this.shareButtons_ar = [], self.main_do.addChild(self.shareButtonsHolder_do), FWDRLSimpleButton.setPrototype(), self.facebookButtonButton_do = new FWDRLSimpleButton(self.data.facebookN_img, self.data.facebookImageSPath_str), self.facebookButtonButton_do.addListener(FWDRLSimpleButton.MOUSE_UP, self.facebookButtonOnMouseUpHandler), self.shareButtonsHolder_do.addChild(self.facebookButtonButton_do), this.shareButtons_ar.push(self.facebookButtonButton_do), FWDRLSimpleButton.setPrototype(), self.twitterButtonButton_do = new FWDRLSimpleButton(self.data.twitterN_img, self.data.twitterImageSPath_str), self.twitterButtonButton_do.addListener(FWDRLSimpleButton.MOUSE_UP, self.twitterButtonOnMouseUpHandler), self.shareButtonsHolder_do.addChild(self.twitterButtonButton_do), this.shareButtons_ar.push(self.twitterButtonButton_do), FWDRLSimpleButton.setPrototype(), self.googleButtonButton_do = new FWDRLSimpleButton(self.data.googleN_img, self.data.googleImageSPath_str), self.googleButtonButton_do.addListener(FWDRLSimpleButton.MOUSE_UP, self.googleButtonOnMouseUpHandler), self.shareButtonsHolder_do.addChild(self.googleButtonButton_do), this.shareButtons_ar.push(self.googleButtonButton_do);
                for (var t = 0; t < this.shareButtons_ar.length; t++) e = this.shareButtons_ar[t], e.w > this.maxShareButtonsW && (this.maxShareButtonsW = e.w);
                for (var t = 0; t < this.shareButtons_ar.length; t++) e = this.shareButtons_ar[t], e.setX(parseInt((this.maxShareButtonsW - e.w) / 2)), 0 == t ? e.setY(self.spaceBetweenButtons) : e.setY(this.shareButtons_ar[t - 1].y + this.shareButtons_ar[t - 1].h + self.spaceBetweenButtons);
                this.shareButtonsHolder_do.setWidth(this.maxShareButtonsW), this.shareButtonsHolder_do.setHeight(e.y + e.h), this.hideShareButtons(!1)
            }, self.facebookButtonOnMouseUpHandler = function(e) {
                var t = "http://www.facebook.com/share.php?u=" + encodeURIComponent(location.href);
                window.open(t, "", "menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=300,width=600")
            }, self.twitterButtonOnMouseUpHandler = function(e) {
                var t = "http://twitter.com/home?status=" + encodeURIComponent(location.href);
                window.open(t, "", "menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=300,width=600")
            }, self.googleButtonOnMouseUpHandler = function(e) {
                var t = "https://plus.google.com/share?url=" + encodeURIComponent(location.href);
                window.open(t, "", "menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=300,width=600")
            }, this.positionShareButtons = function(e) {
                this.shareButtonsHolder_do && void 0 != this.shareButton_do.finalX && (this.shareButtonsHolder_do.finalX = this.shareButton_do.finalX, this.shareButtonsHolder_do.finalY = this.shareButton_do.finalY + this.shareButton_do.h, FWDRLTweenMax.killTweensOf(self.shareButtonsHolder_do), e ? FWDRLTweenMax.to(self.shareButtonsHolder_do, .8, {
                    x: this.shareButtonsHolder_do.finalX,
                    y: this.shareButtonsHolder_do.finalY,
                    ease: Expo.easeInOut
                }) : (this.shareButtonsHolder_do.setX(this.shareButtonsHolder_do.finalX), this.shareButtonsHolder_do.setY(this.shareButtonsHolder_do.finalY)))
            }, this.showShareButtons = function() {
                var e, t = 0;
                this.areButtonsSharedShowed_bl = !0, self.shareButton_do.setButtonState(0), this.positionShareButtons(!1), this.shareButtonsHolder_do.setVisible(!0), this.nextButton_do && this.shareButtonsHolder_do.y + this.shareButtonsHolder_do.h + self.spaceBetweenButtons > this.nextButton_do.y && FWDRLTweenMax.to(self.nextButton_do.buttonsHolder_do, .8, {
                    alpha: 0,
                    ease: Expo.easeInOut
                }), this.hsThumbanilsButton_do && this.shareButtonsHolder_do.y + this.shareButtonsHolder_do.h + self.spaceBetweenButtons > this.hsThumbanilsButton_do.y && this.shareButtonsHolder_do.x == this.hsThumbanilsButton_do.x && FWDRLTweenMax.to(self.hsThumbanilsButton_do.buttonsHolder_do, .8, {
                    alpha: 0,
                    ease: Expo.easeInOut
                });
                for (var s = 0; s < this.shareButtons_ar.length; s++) e = this.shareButtons_ar[s], FWDRLTweenMax.killTweensOf(e), e.setAlpha(0), FWDRLTweenMax.to(e, .8, {
                    alpha: 1,
                    delay: t,
                    ease: Expo.easeInOut
                }), t += .1;
                this.startToCheckShareButtonsHit()
            }, this.startToCheckShareButtonsHit = function() {
                window.addEventListener ? window.addEventListener("click", self.checkThumbnailHit) : window.attachEvent("onclick", self.checkThumbnailHit)
            }, this.stopToCheckShareButtonsHit = function() {
                window.removeEventListener ? window.removeEventListener("click", self.checkThumbnailHit) : window.detachEvent("onclick", self.checkThumbnailHit), this.shareButton_do && this.shareButton_do.setNormalState(!0), clearTimeout(self.hitThhumbnailId_to), self.hideShareButtons(!0)
            }, this.checkThumbnailHit = function(e) {
                var t = FWDRLUtils.getViewportMouseCoordinates(e);
                return FWDRLUtils.hitTest(self.shareButtonsHolder_do.screen, t.screenX, t.screenY) || FWDRLUtils.hitTest(self.shareButton_do.screen, t.screenX, t.screenY) ? void 0 : void self.stopToCheckShareButtonsHit()
            }, this.hideShareButtons = function(e, t, s) {
                if (this.shareButton_do) {
                    var i;
                    if (this.areButtonsSharedShowed_bl = !1, self.shareButton_do.setButtonState(1), e || this.shareButtonsHolder_do.setVisible(!1), t) FWDRLTweenMax.to(self.shareButtonsHolder_do, .8, {
                        x: self.stageWidth,
                        ease: Expo.easeInOut
                    });
                    else {
                        for (var o = 0; o < this.shareButtons_ar.length; o++) i = this.shareButtons_ar[o], FWDRLTweenMax.killTweensOf(i), FWDRLTweenMax.to(i, .8, {
                            alpha: 0,
                            ease: Expo.easeOut,
                            onComplete: function() {
                                self.shareButtonsHolder_do.setVisible(!1)
                            }
                        });
                        this.nextButton_do && this.shareButtonsHolder_do.y + this.shareButtonsHolder_do.h + self.spaceBetweenButtons > this.nextButton_do.y && 1 == this.shareButton_do.buttonsHolder_do.alpha && FWDRLTweenMax.to(self.nextButton_do.buttonsHolder_do, .8, {
                            alpha: 1,
                            ease: Expo.easeOut
                        }), this.hsThumbanilsButton_do && this.shareButtonsHolder_do.y + this.shareButtonsHolder_do.h + self.spaceBetweenButtons > this.hsThumbanilsButton_do.y && 1 == this.shareButton_do.buttonsHolder_do.alpha && FWDRLTweenMax.to(self.hsThumbanilsButton_do.buttonsHolder_do, .8, {
                            alpha: 1,
                            ease: Expo.easeOut
                        })
                    }
                }
            }, self.showCloseButton = function() {
                self.showCloseButton_bl && -1 == FWDRLUtils.indexOfArray(self.buttons_ar, self.closeButton_do) && self.buttons_ar.splice(0, 0, self.closeButton_do)
            }, self.hideCloseButton = function() {
                -1 != FWDRLUtils.indexOfArray(self.buttons_ar, self.closeButton_do) && (FWDRLTweenMax.killTweensOf(self.zoomButton_do), self.closeButton_do.setX(-5e3), self.buttons_ar.splice(FWDRLUtils.indexOfArray(self.buttons_ar, self.closeButton_do), 1))
            }, self.hideZoomButton = function() {
                -1 != FWDRLUtils.indexOfArray(self.buttons_ar, self.zoomButton_do) && (FWDRLTweenMax.killTweensOf(self.zoomButton_do), self.zoomButton_do.setX(-5e3), self.buttons_ar.splice(FWDRLUtils.indexOfArray(self.buttons_ar, self.zoomButton_do), 1))
            }, self.showZoomButton = function() {
                self.defaultShowZoomButton_bl && -1 == FWDRLUtils.indexOfArray(self.buttons_ar, self.zoomButton_do) && (FWDRLTweenMax.killTweensOf(self.zoomButton_do), -1 != FWDRLUtils.indexOfArray(self.buttons_ar, self.closeButton_do) ? (self.zoomButton_do.setX(self.closeButton_do.x), self.zoomButton_do.setY(self.closeButton_do.y + self.closeButton_do.h + self.spaceBetweenButtons), self.buttons_ar.splice(FWDRLUtils.indexOfArray(self.buttons_ar, self.closeButton_do) + 1, 0, self.zoomButton_do)) : (self.isFirstItemShowed_bl && (self.zoomButton_do.setX(self.mainItemHolder_do.x + self.mainItemHolder_do.w + self.buttonsOffsetIn), self.zoomButton_do.setY(self.mainItemHolder_do.y)), self.buttons_ar.splice(0, 0, self.zoomButton_do)))
            }, self.showDescriptionButton = function() {
                self.defaultHideDescriptionButtons_bl && (self.showDescriptionButton_bl = !0, -1 == FWDRLUtils.indexOfArray(self.buttons_ar, self.descButton_do) && (FWDRLTweenMax.killTweensOf(self.descButton_do), -1 != FWDRLUtils.indexOfArray(self.buttons_ar, self.zoomButton_do) ? (self.descButton_do.setX(self.zoomButton_do.x), self.descButton_do.setY(self.zoomButton_do.y + self.zoomButton_do.h + self.spaceBetweenButtons), self.buttons_ar.splice(FWDRLUtils.indexOfArray(self.buttons_ar, self.zoomButton_do) + 1, 0, self.descButton_do)) : -1 != FWDRLUtils.indexOfArray(self.buttons_ar, self.closeButton_do) ? (self.descButton_do.setX(self.closeButton_do.x), self.descButton_do.setY(self.closeButton_do.y + self.closeButton_do.h + self.spaceBetweenButtons), self.buttons_ar.splice(FWDRLUtils.indexOfArray(self.buttons_ar, self.closeButton_do) + 1, 0, self.descButton_do)) : (self.isFirstItemShowed_bl && (self.descButton_do.setX(self.mainItemHolder_do.x + self.mainItemHolder_do.w + self.buttonsOffsetIn), self.descButton_do.setY(self.mainItemHolder_do.y)), self.buttons_ar.splice(0, 0, self.descButton_do))))
            }, self.hideDescriptionButton = function() {
                -1 != FWDRLUtils.indexOfArray(self.buttons_ar, self.descButton_do) && (self.showDescriptionButton_bl = !1, FWDRLTweenMax.killTweensOf(self.descButton_do), self.descButton_do.setX(-5e3), self.buttons_ar.splice(FWDRLUtils.indexOfArray(self.buttons_ar, self.descButton_do), 1))
            }, self.hideSlideshowButton = function() {
                -1 != FWDRLUtils.indexOfArray(self.buttons_ar, self.slideShowButton_do) && (FWDRLTweenMax.killTweensOf(self.slideShowButton_do), self.slideShowButton_do.setX(-5e3), self.buttons_ar.splice(FWDRLUtils.indexOfArray(self.buttons_ar, self.slideShowButton_do), 1))
            }, self.showSlideshowButton = function() {
                self.showSlideShowButton_bl && -1 == FWDRLUtils.indexOfArray(self.buttons_ar, self.slideShowButton_do) && (FWDRLTweenMax.killTweensOf(self.slideShowButton_do), -1 != FWDRLUtils.indexOfArray(self.buttons_ar, self.descButton_do) ? (self.slideShowButton_do.setX(self.descButton_do.x), self.slideShowButton_do.setY(self.descButton_do.y + self.descButton_do.h + self.spaceBetweenButtons), self.buttons_ar.splice(FWDRLUtils.indexOfArray(self.buttons_ar, self.descButton_do) + 1, 0, self.slideShowButton_do)) : -1 != FWDRLUtils.indexOfArray(self.buttons_ar, self.zoomButton_do) ? (self.slideShowButton_do.setX(self.zoomButton_do.x), self.slideShowButton_do.setY(self.zoomButton_do.y + self.zoomButton_do.h + self.spaceBetweenButtons), self.buttons_ar.splice(FWDRLUtils.indexOfArray(self.buttons_ar, self.zoomButton_do) + 1, 0, self.slideShowButton_do)) : -1 != FWDRLUtils.indexOfArray(self.buttons_ar, self.closeButton_do) ? (self.slideShowButton_do.setX(self.closeButton_do.x), self.slideShowButton_do.setY(self.closeButton_do.y + self.closeButton_do.h + self.spaceBetweenButtons), self.buttons_ar.splice(FWDRLUtils.indexOfArray(self.buttons_ar, self.closeButton_do) + 1, 0, self.slideShowButton_do)) : (self.isFirstItemShowed_bl && (self.slideShowButton_do.setX(self.mainItemHolder_do.x + self.mainItemHolder_do.w + self.buttonsOffsetIn), self.slideShowButton_do.setY(self.mainItemHolder_do.y)), self.buttons_ar.splice(0, 0, self.slideShowButton_do)))
            }, self.hideSlideShowAnimation = function() {
                -1 != FWDRLUtils.indexOfArray(self.buttons_ar, self.slp_do) && (FWDRLTweenMax.killTweensOf(self.slp_do), self.slp_do.setX(-5e3), self.buttons_ar.splice(FWDRLUtils.indexOfArray(self.buttons_ar, self.slp_do), 1))
            }, self.showSlideShowAnimation = function() {
                self.defaultShowSlideShowAnimation_bl && -1 == FWDRLUtils.indexOfArray(self.buttons_ar, self.slp_do) && (FWDRLTweenMax.killTweensOf(self.slp_do), -1 != FWDRLUtils.indexOfArray(self.buttons_ar, self.slideShowButton_do) ? (self.slp_do.setX(self.slideShowButton_do.x), self.slp_do.setY(self.slideShowButton_do.y + self.slideShowButton_do.h + self.spaceBetweenButtons), self.buttons_ar.splice(FWDRLUtils.indexOfArray(self.buttons_ar, self.slideShowButton_do) + 1, 0, self.slp_do)) : -1 != FWDRLUtils.indexOfArray(self.buttons_ar, self.descButton_do) ? (self.slp_do.setX(self.descButton_do.x), self.slp_do.setY(self.descButton_do.y + self.descButton_do.h + self.spaceBetweenButtons), self.buttons_ar.splice(FWDRLUtils.indexOfArray(self.buttons_ar, self.descButton_do) + 1, 0, self.slp_do)) : -1 != FWDRLUtils.indexOfArray(self.buttons_ar, self.zoomButton_do) ? (self.slp_do.setX(self.zoomButton_do.x), self.slp_do.setY(self.zoomButton_do.y + self.zoomButton_do.h + self.spaceBetweenButtons), self.buttons_ar.splice(FWDRLUtils.indexOfArray(self.buttons_ar, self.zoomButton_do) + 1, 0, self.slp_do)) : -1 != FWDRLUtils.indexOfArray(self.buttons_ar, self.closeButton_do) ? (self.slp_do.setX(self.closeButton_do.x), self.slp_do.setY(self.closeButton_do.y + self.closeButton_do.h + self.spaceBetweenButtons), self.buttons_ar.splice(FWDRLUtils.indexOfArray(self.buttons_ar, self.closeButton_do) + 1, 0, self.slp_do)) : (self.isFirstItemShowed_bl && (self.slp_do.setX(self.mainItemHolder_do.x + self.mainItemHolder_do.w + self.buttonsOffsetIn), self.slp_do.setY(self.mainItemHolder_do.y)), self.buttons_ar.splice(0, 0, self.slp_do)))
            }, self.hideFacebookButton = function() {
                -1 != FWDRLUtils.indexOfArray(self.buttons_ar, self.shareButton_do) && (FWDRLTweenMax.killTweensOf(self.shareButton_do), self.shareButton_do.setX(-5e3), self.buttons_ar.splice(FWDRLUtils.indexOfArray(self.buttons_ar, self.shareButton_do), 1))
            }, self.showFacebookButton = function() {
                self.showShareButton_bl && -1 == FWDRLUtils.indexOfArray(self.buttons_ar, self.shareButton_do) && (-1 != FWDRLUtils.indexOfArray(self.buttons_ar, self.slp_do) ? self.buttons_ar.splice(FWDRLUtils.indexOfArray(self.buttons_ar, self.slp_do) + 1, 0, self.shareButton_do) : -1 != FWDRLUtils.indexOfArray(self.buttons_ar, self.slideShowButton_do) ? self.buttons_ar.splice(FWDRLUtils.indexOfArray(self.buttons_ar, self.slideShowButton_do) + 1, 0, self.shareButton_do) : -1 != FWDRLUtils.indexOfArray(self.buttons_ar, self.descButton_do) ? self.buttons_ar.splice(FWDRLUtils.indexOfArray(self.buttons_ar, self.descButton_do) + 1, 0, self.shareButton_do) : -1 != FWDRLUtils.indexOfArray(self.buttons_ar, self.zoomButton_do) ? self.buttons_ar.splice(FWDRLUtils.indexOfArray(self.buttons_ar, self.zoomButton_do) + 1, 0, self.shareButton_do) : -1 != FWDRLUtils.indexOfArray(self.buttons_ar, self.closeButton_do) ? self.buttons_ar.splice(FWDRLUtils.indexOfArray(self.buttons_ar, self.closeButton_do) + 1, 0, self.shareButton_do) : self.buttons_ar.splice(0, 0, self.shareButton_do))
            }, self.hideNextAndPrevButtons = function() {
                -1 != FWDRLUtils.indexOfArray(self.buttons_ar, self.nextButton_do) && (FWDRLTweenMax.killTweensOf(self.nextButton_do), FWDRLTweenMax.killTweensOf(self.prevButton_do), self.prevButton_do.setX(-5e3), self.nextButton_do.setX(-5e3), self.buttons_ar.splice(FWDRLUtils.indexOfArray(self.buttons_ar, self.nextButton_do), 1))
            }, self.showNextAndPrevButtons = function() {
                self.defaultShowNextAndPrevButtons_bl && self.showNextAndPrevButtons_bl && -1 == FWDRLUtils.indexOfArray(self.buttons_ar, self.nextButton_do) && (-1 != FWDRLUtils.indexOfArray(self.buttons_ar, self.shareButton_do) ? self.buttons_ar.splice(FWDRLUtils.indexOfArray(self.buttons_ar, self.shareButton_do) + 1, 0, self.nextButton_do) : -1 != FWDRLUtils.indexOfArray(self.buttons_ar, self.slp_do) ? self.buttons_ar.splice(FWDRLUtils.indexOfArray(self.buttons_ar, self.slp_do) + 1, 0, self.nextButton_do) : -1 != FWDRLUtils.indexOfArray(self.buttons_ar, self.slideShowButton_do) ? self.buttons_ar.splice(FWDRLUtils.indexOfArray(self.buttons_ar, self.slideShowButton_do) + 1, 0, self.nextButton_do) : -1 != FWDRLUtils.indexOfArray(self.buttons_ar, self.descButton_do) ? self.buttons_ar.splice(FWDRLUtils.indexOfArray(self.buttons_ar, self.descButton_do) + 1, 0, self.nextButton_do) : -1 != FWDRLUtils.indexOfArray(self.buttons_ar, self.zoomButton_do) ? self.buttons_ar.splice(FWDRLUtils.indexOfArray(self.buttons_ar, self.zoomButton_do) + 1, 0, self.nextButton_do) : -1 != FWDRLUtils.indexOfArray(self.buttons_ar, self.closeButton_do) ? self.buttons_ar.splice(FWDRLUtils.indexOfArray(self.buttons_ar, self.closeButton_do) + 1, 0, self.nextButton_do) : self.buttons_ar.splice(0, 0, self.nextButton_do))
            }, self.hideHsThumbnailButton = function() {
                -1 != FWDRLUtils.indexOfArray(self.buttons_ar, self.hsThumbanilsButton_do) && (FWDRLTweenMax.killTweensOf(self.hsThumbanilsButton_do), self.hsThumbanilsButton_do.setX(-5e3), self.buttons_ar.splice(FWDRLUtils.indexOfArray(self.buttons_ar, self.hsThumbanilsButton_do), 1))
            }, self.showHsThumbnailButton = function() {
                self.showThumbnailsHideOrShowButton_bl && -1 == FWDRLUtils.indexOfArray(self.buttons_ar, self.hsThumbanilsButton_do) && self.buttons_ar.splice(self.buttons_ar.length, 0, self.hsThumbanilsButton_do)
            }, self.positionButtons = function(e) {
                if (self.isFirstItemShowed_bl && self.isShowed_bl && self.isReady_bl) {
                    var t = 0,
                        s = 0;
                    self.areThumbnailsShowed_bl && (t = Math.round((self.thumbnailH + self.spaceBetweenThumbnailsAndItem) / 2 - self.spaceBetweenThumbnailsAndItem / 2)), self.showNextAndPrevButtons_bl && (self.buttonsAlignment_str == FWDRL.BUTTONS_IN ? self.prevButton_do.finalX = self.finalX - self.prevButton_do.w - self.buttonsOffsetIn : self.prevButton_do.finalX = self.buttonsOffsetIn, self.prevButton_do.finalY = parseInt((self.stageHeight - self.prevButton_do.h) / 2) - t, void 0 == self.prevButton_do.finalX && (self.prevButton_do.finalX = -5e3), void 0 == self.prevButton_do.finalY && (self.prevButton_do.finalY = -5e3));
                    for (var i, o, n = self.buttons_ar.length, r = 0; n > r; r++) i = self.buttons_ar[r], s += i.h + self.spaceBetweenButtons;
                    s -= self.spaceBetweenButtons;
                    for (var l = 0; n > l; l++) {
                        if (i = self.buttons_ar[l], 0 != l && (o = self.buttons_ar[l - 1]), self.buttonsAlignment_str == FWDRL.BUTTONS_IN ? i.finalX = self.finalX + self.finalW + self.buttonsOffsetIn : i.finalX = self.stageWidth - i.w - self.buttonsOffsetIn, s > self.finalH && self.buttonsAlignment_str == FWDRL.BUTTONS_IN ? 0 == l ? self.buttonsAlignment_str == FWDRL.BUTTONS_IN ? self.areThumbnailsShowed_bl ? i.finalY = parseInt((self.stageHeight - s - self.thumbnailH) / 2) : i.finalY = parseInt((self.stageHeight - s) / 2) : i.finalY = self.buttonsOffsetIn : i.finalY = o.finalY + o.h + self.spaceBetweenButtons : (self.buttonsAlignment_str == FWDRL.BUTTONS_IN ? i.finalY = self.finalY : i.finalY = self.buttonsOffsetIn, o ? (i.finalY = o.finalY + o.h + self.spaceBetweenButtons, i == self.nextButton_do ? i.finalY < self.prevButton_do.finalY && (i.finalY = self.prevButton_do.finalY) : i == self.hsThumbanilsButton_do && (i.finalY = self.finalY + self.finalH - i.h, i.finalY < o.finalY + o.h + self.spaceBetweenButtons && self.stageWidth < self.thumbnailsManager_do.totalW + 2 * (i.w + self.buttonsOffsetIn) && (i.finalY = o.finalY + o.h + self.spaceBetweenButtons))) : i == self.nextButton_do ? i.finalY < self.prevButton_do.finalY && (i.finalY = self.prevButton_do.finalY) : i == self.hsThumbanilsButton_do && (i.finalY = self.finalY + self.finalH - i.h)), i == self.zoomButton_do && self.isMaximized_bl && (i.finalX = self.stageWidth - i.w - 1, i.finalY = 1), i == self.hsThumbanilsButton_do)
                            if (self.buttonsAlignment_str == FWDRL.BUTTONS_IN) {
                                if (i.finalY + i.h > self.stageHeight - self.thumbnailH && self.areThumbnailsShowed_bl && (i.finalX = self.finalX - i.w - self.buttonsOffsetIn, i.finalY = self.finalY + self.finalH - i.h, self.showNextAndPrevButtons_bl && i.finalY < self.prevButton_do.finalY + self.prevButton_do.h + self.spaceBetweenButtons && (i.finalY = self.prevButton_do.finalY + self.prevButton_do.h + self.spaceBetweenButtons), l == n - 1))
                                    for (var a = 0; n - 1 > a; a++) self.buttons_ar[a].finalY += parseInt(self.hsThumbanilsButton_do.h / 2)
                            } else self.areThumbnailsShowed_bl ? self.thumbnailsManager_do && self.stageWidth > self.thumbnailsManager_do.totalW + 2 * (i.w + self.buttonsOffsetIn) ? i.finalY = self.stageHeight - i.h - self.buttonsOffsetIn : i.finalY = self.stageHeight - i.h - self.thumbnailH - self.buttonsOffsetIn : i.finalY = self.stageHeight - i.h - self.buttonsOffsetIn, o && o.finalY + o.h + i.h + self.spaceBetweenButtons + self.buttonsOffsetIn > self.stageHeight - self.thumbnailH && self.areThumbnailsShowed_bl && self.stageWidth < self.thumbnailsManager_do.totalW + 2 * (i.w + self.buttonsOffsetIn) && (i.finalX = self.buttonsOffsetIn);
                        self.hider.isHidden_bl && i == self.slp_do && (self.buttonsAlignment_str == FWDRL.BUTTONS_IN ? i.finalY = self.finalY : i.finalY = self.buttonsOffsetIn)
                    }
                    self.showNextAndPrevButtons_bl && (e ? (FWDRLTweenMax.killTweensOf(self.prevButton_do), FWDRLTweenMax.to(self.prevButton_do, .8, {
                        x: self.prevButton_do.finalX,
                        y: self.prevButton_do.finalY,
                        ease: Expo.easeInOut
                    })) : (FWDRLTweenMax.killTweensOf(self.prevButton_do), self.prevButton_do.setX(self.prevButton_do.finalX), self.prevButton_do.setY(self.prevButton_do.finalY)));
                    for (var l = 0; n > l; l++) i = self.buttons_ar[l], (i.x != i.finalX || i.y != i.finalY) && (FWDRLTweenMax.killTweensOf(i), e ? FWDRLTweenMax.to(i, .8, {
                        x: i.finalX,
                        y: i.finalY,
                        ease: Expo.easeInOut
                    }) : (i.setX(i.finalX), i.setY(i.finalY)));
                    this.positionShareButtons(e)
                }
            }, self.hideButtons = function(e) {
                if (self.isReady_bl) {
                    var t, s = self.buttons_ar.length;
                    self.showNextAndPrevButtons_bl && (self.prevButton_do.finalX = -self.prevButton_do.w, void 0 == self.prevButton_do.finalX && (self.prevButton_do.finalX = -1), void 0 == self.prevButton_do.finalY && (self.prevButton_do.finalY = -1));
                    for (var i = 0; s > i; i++) t = self.buttons_ar[i], isNaN(t.finalX) || (t.finalX > self.stageWidth / 2 ? t.finalX = self.stageWidth : t.finalX = -t.w), void 0 === t.finalX && (t.finalX = -5e3), void 0 === t.finalY && (t.finalY = -5e3), e ? (0 == i && self.showNextAndPrevButtons_bl && (FWDRLTweenMax.killTweensOf(self.prevButton_do), FWDRLTweenMax.to(self.prevButton_do, .8, {
                        alpha: 1,
                        x: self.prevButton_do.finalX,
                        y: self.prevButton_do.finalY,
                        ease: Expo.easeInOut
                    })), FWDRLTweenMax.killTweensOf(t), FWDRLTweenMax.to(t, .8, {
                        alpha: 1,
                        x: t.finalX,
                        y: t.finalY,
                        ease: Expo.easeInOut
                    })) : (0 == i && self.showNextAndPrevButtons_bl && (FWDRLTweenMax.killTweensOf(self.prevButton_do), self.prevButton_do.setX(self.prevButton_do.finalX), self.prevButton_do.setY(self.prevButton_do.finalY)), FWDRLTweenMax.killTweensOf(t), t.setAlpha(1), t.setX(t.finalX), t.setY(t.finalY))
                }
            }, self.hideStuffForGood = function() {
                self.shareButton_do && self.shareButton_do.setX(-5e3), self.prevButton_do.setX(-5e3), self.nextButton_do.setX(-5e3), self.closeButton_do.setX(-5e3), self.zoomButton_do.setX(-5e3), self.descButton_do.setX(-5e3), self.slideShowButton_do.setX(-5e3), self.slp_do.setX(-5e3), self.hsThumbanilsButton_do.setX(-5e3), self.videoHolder_do && (self.video_do.stop(), self.videoHolder_do.setX(-5e3), self.videoHolder_do.w = 1, self.videoHolder_do.h = 1), self.audioHolder_do && (self.audio_do.stop(), self.audioHolder_do.setX(-5e3), self.audioHolder_do.w = 1, self.audioHolder_do.h = 1)
            }, self.showButtonsWithFade = function(e) {
                self.isReady_bl && (self.areButtonsShowed_bl = !0, e ? (this.shareButtonsHolder_do && this.areButtonsSharedShowed_bl ? this.shareButtonsHolder_do.y + this.shareButtonsHolder_do.h + self.spaceBetweenButtons > this.nextButton_do.y && FWDRLTweenMax.to(self.nextButton_do.buttonsHolder_do, .8, {
                    alpha: 0,
                    ease: Expo.easeInOut
                }) : FWDRLTweenMax.to(self.nextButton_do.buttonsHolder_do, .8, {
                    alpha: 1,
                    ease: Quint.easeOut
                }), FWDRLTweenMax.to(self.prevButton_do.buttonsHolder_do, .8, {
                    alpha: 1,
                    ease: Quint.easeOut
                }), FWDRLTweenMax.to(self.closeButton_do.buttonsHolder_do, .8, {
                    alpha: 1,
                    ease: Quint.easeOut
                }), FWDRLTweenMax.to(self.zoomButton_do.buttonsHolder_do, .8, {
                    alpha: 1,
                    ease: Quint.easeOut
                }), this.shareButtonsHolder_do && this.areButtonsSharedShowed_bl ? this.shareButtonsHolder_do.y + this.shareButtonsHolder_do.h + self.spaceBetweenButtons > this.hsThumbanilsButton_do.y && this.shareButtonsHolder_do.finalX == this.hsThumbanilsButton_do.finalX && FWDRLTweenMax.to(self.hsThumbanilsButton_do.buttonsHolder_do, .8, {
                    alpha: 0,
                    ease: Expo.easeInOut
                }) : FWDRLTweenMax.to(self.hsThumbanilsButton_do.buttonsHolder_do, .8, {
                    alpha: 1,
                    ease: Quint.easeOut
                }), FWDRLTweenMax.to(self.descButton_do.buttonsHolder_do, .8, {
                    alpha: 1,
                    ease: Quint.easeOut
                }), FWDRLTweenMax.to(self.slideShowButton_do.buttonsHolder_do, .8, {
                    alpha: 1,
                    ease: Quint.easeOut
                }), self.shareButton_do && FWDRLTweenMax.to(self.shareButton_do.buttonsHolder_do, .8, {
                    alpha: 1,
                    ease: Quint.easeOut
                })) : (FWDRLTweenMax.killTweensOf(self.nextButton_do.buttonsHolder_do), FWDRLTweenMax.killTweensOf(self.prevButton_do.buttonsHolder_do), self.nextButton_do.buttonsHolder_do.setAlpha(1), self.prevButton_do.buttonsHolder_do.setAlpha(1), FWDRLTweenMax.killTweensOf(self.nextButton_do.closeButton_do), self.closeButton_do.buttonsHolder_do.setAlpha(1), FWDRLTweenMax.killTweensOf(self.zoomButton_do.closeButton_do), self.zoomButton_do.buttonsHolder_do.setAlpha(1), FWDRLTweenMax.killTweensOf(self.hsThumbanilsButton_do.hsThumbanilsButton_do), self.hsThumbanilsButton_do.buttonsHolder_do.setAlpha(1), FWDRLTweenMax.killTweensOf(self.descButton_do.descButton_do), self.descButton_do.buttonsHolder_do.setAlpha(1), self.shareButton_do && (FWDRLTweenMax.killTweensOf(self.shareButton_do.descButton_do), self.shareButton_do.buttonsHolder_do.setAlpha(1))))
            }, self.hideButtonsWithFade = function(e) {
                e ? (FWDRLTweenMax.to(self.nextButton_do.buttonsHolder_do, .8, {
                    alpha: 0,
                    ease: Quint.easeOut
                }), FWDRLTweenMax.to(self.prevButton_do.buttonsHolder_do, .8, {
                    alpha: 0,
                    ease: Quint.easeOut
                }), FWDRLTweenMax.to(self.closeButton_do.buttonsHolder_do, .8, {
                    alpha: 0,
                    ease: Quint.easeOut
                }), FWDRLTweenMax.to(self.zoomButton_do.buttonsHolder_do, .8, {
                    alpha: 0,
                    ease: Quint.easeOut
                }), FWDRLTweenMax.to(self.hsThumbanilsButton_do.buttonsHolder_do, .8, {
                    alpha: 0,
                    ease: Quint.easeOut
                }), FWDRLTweenMax.to(self.descButton_do.buttonsHolder_do, .8, {
                    alpha: 0,
                    ease: Quint.easeOut
                }), FWDRLTweenMax.to(self.slideShowButton_do.buttonsHolder_do, .8, {
                    alpha: 0,
                    ease: Quint.easeOut
                }), self.shareButton_do && FWDRLTweenMax.to(self.shareButton_do.buttonsHolder_do, .8, {
                    alpha: 0,
                    ease: Quint.easeOut
                })) : (FWDRLTweenMax.killTweensOf(self.nextButton_do.buttonsHolder_do), FWDRLTweenMax.killTweensOf(self.prevButton_do.buttonsHolder_do), self.nextButton_do.buttonsHolder_do.setAlpha(0), self.prevButton_do.buttonsHolder_do.setAlpha(0), FWDRLTweenMax.killTweensOf(self.nextButton_do.closeButton_do), self.closeButton_do.buttonsHolder_do.setAlpha(0), FWDRLTweenMax.killTweensOf(self.zoomButton_do.closeButton_do), self.zoomButton_do.buttonsHolder_do.setAlpha(0), FWDRLTweenMax.killTweensOf(self.hsThumbanilsButton_do.hsThumbanilsButton_do), self.hsThumbanilsButton_do.buttonsHolder_do.setAlpha(0), FWDRLTweenMax.killTweensOf(self.hsThumbanilsButton_do.descButton_do), self.descButton_do.buttonsHolder_do.setAlpha(0), FWDRLTweenMax.killTweensOf(self.slideShowButton_do.descButton_do), self.slideShowButton_do.buttonsHolder_do.setAlpha(0), self.shareButton_do && (FWDRLTweenMax.killTweensOf(self.shareButton_do.descButton_do), self.shareButton_do.buttonsHolder_do.setAlpha(0))), self.areButtonsShowed_bl = !1
            }, this.parsePlaylistObject = function(e, t, s) {
                if (0 == t && e.thumbnailPath_str && (self.areThumbnailsShowed_bl = !1, self.setupThumbnailManager(), self.showThumbnailsByDefault_bl ? (self.thumbnailsManager_do.show(!1), self.areThumbnailsShowed_bl = !0) : (self.thumbnailsManager_do.hide(!1), self.areThumbnailsShowed_bl = !1), self.defaultShowThumbnails_bl ? self.showThumbnails_bl = !0 : (self.showThumbnails_bl = !1, self.areThumbnailsShowed_bl = !1), self.defaultShowThumbnailsHideOrShowButton_bl && self.defaultShowThumbnails_bl ? self.showThumbnailsHideOrShowButton_bl = !0 : self.showThumbnailsHideOrShowButton_bl = !1), 0 != t || e.thumbnailPath_str || (self.areThumbnailsShowed_bl = !1, self.showThumbnails_bl = !1, self.showThumbnailsHideOrShowButton_bl = !1), /\.jpg|\.jpeg|\.png/i.test(e.type_str) ? (e.iconType_str = FWDRLThumb.IMAGE, e.type_str = FWDRL.IMAGE_TYPE, e.width = void 0, e.height = void 0) : /\.mp4/i.test(e.type_str) ? (e.iconType_str = FWDRLThumb.VIDEO, e.type_str = FWDRL.VIDEO_TYPE) : /\.mp3/i.test(e.type_str) || "-soundcloud-" == e.type_str || FWDUGPData.isSoundCloud_bl ? (e.type_str = FWDRL.AUDIO_TYPE, e.iconType_str = FWDRLThumb.AUDIO) : /\.swf/i.test(e.type_str) ? (e.type_str = FWDRL.FLASH_TYPE, e.iconType_str = FWDRLThumb.FLASH) : /youtube\.|vimeo\./i.test(e.type_str) ? (-1 != e.type_str.indexOf("youtube.") ? e.iconType_str = FWDRLThumb.YOUTUBE : e.iconType_str = FWDRLThumb.VIMEO, e.type_str = FWDRL.IFRAME_TYPE) : (-1 != e.type_str.indexOf("google.") ? e.iconType_str = FWDRLThumb.MAPS : -1 != e.type_str.indexOf("RL_AJAX") ? e.iconType_str = FWDRLThumb.AJAX : -1 != e.type_str.indexOf("RL_HTML") ? e.iconType_str = FWDRLThumb.HTML : e.iconType_str = FWDRLThumb.IFRAME, e.type_str = FWDRL.IFRAME_TYPE), !(e.type_str != FWDRL.IMAGE_TYPE && e.type_str != FWDRL.VIDEO_TYPE || FWDUGPData.isFaceBook_bl && e.type_str != FWDRL.VIDEO_TYPE)) {
                    var i = encodeURI(e.url.substr(0, e.url.lastIndexOf("/") + 1)),
                        o = encodeURIComponent(e.url.substr(e.url.lastIndexOf("/") + 1));
                    e.url = i + o
                }
                self.playlist_ar[t] = e
            }, FWDRL.show = function(e, t, s) {
                if (!self.isShowed_bl) {
                    if (self.id = t, self.propsObjVariableName_str = s, FWDRL.dispatchEvent(FWDRL.SHOW_START, {
                            obj: e
                        }), !e) {
                        return void alert("Revolution lightbox error! Please specify a playlist in the FWDRL.show() method.")
                    }
                    if (self.setDefaultSettings(), s && window[s]) {
                        var i = window[s];
                        self.setObjectPropsSettings(i)
                    } else self.setDefaultSettings();
                    self.stopToLoadPlaylist(), self.isPlaylistDispatchingError_bl = !1, -1 != e.indexOf("facebook.com") ? (self.isFacebook_bl = !0, self.facebookUrl_str = String(e.match(/[\.][0-9]*[\.|&]/i)[0]).replace(/\.|&/g, ""), self.originalFacebookURL_str = e, self.isPlaylistDispatchingError_bl = !0, self.loadFacebookPlaylist()) : -1 != e.indexOf("youtube.com") ? (self.isYoutube_bl = !0, self.nextPageToken_str = void 0, self.youtubeUrl_str = e.match(/list=([^&]+)/i)[1], self.originalYoutubeURL_str = e, self.isPlaylistDispatchingError_bl = !0, self.loadYoutubePlaylist()) : -1 != e.indexOf("soundcloud.com") ? (self.isSoundCloud_bl = !0, self.soundCloundUrl_str = e, self.isPlaylistDispatchingError_bl = !0, self.loadSoundCloudPlaylist()) : -1 != e.indexOf("flickr.com") ? (self.isFlickr_bl = !0, self.originalFlickrURL_str = e, self.flickrUrl_str = String(e.match(/[^\/]+$/i)), self.isPlaylistDispatchingError_bl = !0, self.loadFlickrPlaylist()) : FWDRL.parsePlaylist(e, t, s), self.so = FWDRLUtils.getScrollOffsets(), self.isShowed_bl = !0, self.isAnim_bl = !0, self.showSlideShowAnimation_bl = !1, self.showDescription_bl = self.defaultShowDescriptionByDefault_bl, self.startResizeHandler(), self.addPreventMouseWheel(), clearTimeout(self.showOrHideCompleteId_to), self.showOrHideCompleteId_to = setTimeout(self.showComplete, 401), FWDRLTweenMax.to(self.bk_do, .8, {
                        alpha: self.backgroundOpacity,
                        ease: Quint.easeOut
                    }), self.preloader_do && (self.positionPreloader(), self.preloader_do.show(!0)), self.main_do.addChild(self.disableClick_do), self.isReady_bl && (self.hideButtons(), self.hideStuffForGood()), self.desc_do.hide(!1, !0, !0), self.thumbnailsManager_do && self.thumbnailsManager_do.destoryThumbnails()
                }
            }, this.loadSoundCloudPlaylist = function() {
                if (-1 != self.soundCloundUrl_str.indexOf("likes") && (self.soundCloundUrl_str = self.soundCloundUrl_str.replace(/\/likes$/, "/favorites")), -1 == self.soundCloundUrl_str.indexOf("api.soundcloud.") ? url = "http://api.soundcloud.com/resolve?format=json&url=" + self.soundCloundUrl_str + "&limit=100&client_id=" + self.scClientId_str + "&callback=FWDRL.parsePlaylist" : url = self.sourceURL_str + "?format=json&client_id=" + self.scClientId_str + "&limit=100&callback=FWDRL.parsePlaylist", null == self.scs_el) try {
                    self.scs_el = document.createElement("script"), self.scs_el.src = url, self.scs_el.id = parent.instanceName_str + ".data.parseflickrPlaylist", document.documentElement.appendChild(self.scs_el)
                } catch (e) {}
                self.JSONPRequestTimeoutId_to = setTimeout(function() {
                    var e = "Soundcloud playlist can't be loaded : <font color='#FF0000'>" + self.soundCloundUrl_str + "</font>.";
                    self.main_do.addChild(self.info_do), self.info_do.showText(e), self.isAnim_bl = !1
                }, 5e3)
            }, this.loadFlickrPlaylist = function() {
                if (url = "https://api.flickr.com/services/rest/?method=flickr.photosets.getPhotos&api_key=" + self.flickrAPIKey_str + "&photoset_id=" + self.flickrUrl_str + "&format=json&jsoncallback=FWDRL.parsePlaylist", null == self.scs_el) try {
                    self.scs_el = document.createElement("script"), self.scs_el.src = url, self.scs_el.id = "FWDRLIFRAMELOAD", document.documentElement.appendChild(self.scs_el)
                } catch (e) {}
                self.JSONPRequestTimeoutId_to = setTimeout(function() {
                    var e = "Flick playlist with the id: <font color='#FF0000'>" + self.soundCloundUrl_str + "</font> can't be loaded.";
                    self.main_do.addChild(self.info_do), self.info_do.showText(e), self.isAnim_bl = !1
                }, 5e3)
            }, this.loadYoutubePlaylist = function() {
                var e;
                if (self.nextPageToken_str ? e = "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&pageToken=" + self.nextPageToken_str + "&playlistId=" + self.youtubeUrl_str + "&key=AIzaSyAlyhJ-C5POyo4hofPh3b7ECAxWy6t6lyg&maxResults=50&callback=FWDRL.parsePlaylist" : (self.youtubeObject_ar = [], e = "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&playlistId=" + self.youtubeUrl_str + "&key=AIzaSyAlyhJ-C5POyo4hofPh3b7ECAxWy6t6lyg&maxResults=50&callback=FWDRL.parsePlaylist"), null == self.scs_el) try {
                    self.scs_el = document.createElement("script"), self.scs_el.src = e, self.scs_el.id = "FWDRLIFRAMELOAD", document.documentElement.appendChild(self.scs_el)
                } catch (t) {}
                self.JSONPRequestTimeoutId_to = setTimeout(function() {
                    var e = "Error loading Youtube playlist: <font color='#FF0000'>" + self.originalYoutubeURL_str + "</font>.";
                    self.main_do.addChild(self.info_do), self.info_do.showText(e), self.isAnim_bl = !1
                }, 5e3)
            }, this.loadFacebookPlaylist = function() {
                if ("file:" == document.location.protocol) {
                    self.isPlaylistDispatchingError_bl = !0;
                    var e = "Please test online, is not possible to view Facebook albums local.";
                    return self.main_do.addChild(self.info_do), self.info_do.showText(e), void setTimeout(function() {
                        self.isAnim_bl = !1
                    }, 850)
                }
                self.facebookShare ? self.loadAccessFacebookAccessToken() : (FWDRLFacebookShare.setPrototype(), self.facebookShare = new FWDRLFacebookShare(self.facebookAppId_str), self.facebookShare.addListener(FWDRLFacebookShare.API_READY, self.facebookAPIReadyHandler), self.facebookShare.addListener(FWDRLFacebookShare.API_ERROR, self.facebookAPIErrorHandler))
            }, this.facebookAPIReadyHandler = function(e) {
                self.loadAccessFacebookAccessToken()
            }, this.facebookAPIErrorHandler = function(e) {
                var t = "Error loading file : <font color='#FF0000'>" + self.originalFacebookURL_str + "</font>";
                self.main_do.addChild(self.info_do), self.info_do.showText(t), self.isAnim_bl = !1
            }, this.loadAccessFacebookAccessToken = function() {
                self.stopToLoadPlaylist(), self.sourceURL_str = self.data.mainFolderPath_str + "facebook_access_token.txt", self.xhr = new XMLHttpRequest, self.xhr.onreadystatechange = self.facebookTokenOnLoadoadHandler, self.xhr.onerror = self.facebookErrorHandler;
                try {
                    self.xhr.open("get", self.sourceURL_str + "?rand=" + parseInt(99999999 * Math.random()), !0), self.xhr.send()
                } catch (e) {
                    var t = e;
                    e && e.message && (t = e.message), self.facebookAPIErrorHandler()
                }
            }, this.facebookTokenOnLoadoadHandler = function(e) {
                var response;
                if (4 == self.xhr.readyState)
                    if (404 == self.xhr.status) {
                        var error = "Facebook token path is not found : <font color='#FF0000'>" + self.originalFacebookURL_str + "</font>";
                        self.main_do.addChild(self.info_do), self.info_do.showText(error), self.isAnim_bl = !1
                    } else if (408 == self.xhr.status) {
                    var error = "Loading facebook token";
                    self.main_do.addChild(self.info_do), self.info_do.showText(error), self.isAnim_bl = !1
                } else 200 == self.xhr.status && (response = window.JSON ? JSON.parse(self.xhr.responseText) : eval("(" + self.xhr.responseText + ")"), self.accessToken_str = response.access_token, self.loadFacebookPlaylistWhenReady())
            }, this.facebookErrorHandler = function(e) {
                var t = "Error loading file : <font color='#FF0000'>" + self.originalFacebookURL_str + "</font>";
                self.main_do.addChild(self.info_do), self.info_do.showText(t), self.isAnim_bl = !1
            }, this.loadFacebookPlaylistWhenReady = function() {
                FB.api("/" + self.facebookUrl_str + "?access_token=" + self.accessToken_str, "GET", {
                    fields: "photos.limit(100){images,created_time,name}"
                }, function(e) {
                    e && FWDRL.parsePlaylist(e, self.id, self.propsObjVariableName_str)
                })
            }, FWDRL.parsePlaylist = function(e, t, s) {
                self.stopToLoadPlaylist();
                var i;
                if (self.playlistDomOrObj_str = e, self.playlist_ar = [], self.isFacebook_bl) {
                    i = self.playlistDomOrObj_str.photos.data, self.isPlaylistDispatchingError_bl = !1, self.totalItems = i.length;
                    for (var o = document.createElement("div"), n = 0; n < self.totalItems; n++) {
                        var r = {},
                            l = i[n];
                        r.url = l.images[0].source, r.thumbnailPath_str = l.images[l.images.length - 1].source, r.type_str = ".jpg", r.description = "<div class='FWDRLFacebookDescription'>" + l.name + "</div>", -1 == r.url.indexOf("RL_HTML") ? (r.description && (o.innerHTML = r.description), r.description && (o.innerHTML = r.description, r.descriptionText = o.innerText)) : (o.innerHTML = l.html, r.html = o.innerHTML), self.parsePlaylistObject(r, n, !0)
                    }
                    o = null, self.playlistDomOrObj_str = self.originalFacebookURL_str, self.resizeHandler()
                } else if (self.isYoutube_bl) {
                    if (e.error) {
                        var a = "Error loading Youtube playlist : <font color='#FF0000'>" + self.originalYoutubeURL_str + "</font>.";
                        return self.main_do.addChild(self.info_do), self.info_do.showText(a), void(self.isAnim_bl = !1)
                    }
                    e && (i = e);
                    for (var n = 0; n < i.items.length; n++) self.youtubeObject_ar.push(i.items[n]);
                    if (i.nextPageToken) return self.nextPageToken_str = i.nextPageToken, void self.loadYoutubePlaylist();
                    i = self.youtubeObject_ar, self.isPlaylistDispatchingError_bl = !1, self.totalItems = i.length;
                    for (var o = document.createElement("div"), n = 0; n < self.totalItems; n++) {
                        var r = {},
                            l = i[n];
                        r.url = "https://www.youtube.com/watch?v=" + l.snippet.resourceId.videoId, r.thumbnailPath_str = l.snippet.thumbnails.medium.url, r.type_str = "https://www.youtube.com/", r.description = "<div class='FWDRLYoutubeDescription'>" + l.snippet.title + "</div>", -1 == r.url.indexOf("RL_HTML") ? (r.description && (o.innerHTML = r.description), r.description && (o.innerHTML = r.description, r.descriptionText = o.innerText)) : (o.innerHTML = l.html, r.html = o.innerHTML), self.parsePlaylistObject(r, n, !0)
                    }
                    o = null, self.playlistDomOrObj_str = self.originalYoutubeURL_str, self.resizeHandler()
                } else if (self.isFlickr_bl) {
                    if ("fail" == e.stat) {
                        var a = "Flickr playlist with the id can't be loaded: <font color='#FF0000'>" + self.flickrUrl_str + "</font>.";
                        return self.main_do.addChild(self.info_do), self.info_do.showText(a), void(self.isAnim_bl = !1)
                    }
                    e && (i = e.photoset.photo), self.isPlaylistDispatchingError_bl = !1, self.totalItems = i.length;
                    for (var o = document.createElement("div"), n = 0; n < self.totalItems; n++) {
                        var r = {},
                            l = i[n];
                        r.url = "http://farm" + l.farm + ".staticflickr.com/" + l.server + "/" + l.id + "_" + l.secret + "_b.jpg", r.thumbnailPath_str = "http://farm" + l.farm + ".staticflickr.com/" + l.server + "/" + l.id + "_" + l.secret + "_n.jpg", r.type_str = ".jpg", r.description = "<div class='FWDRLFlickrDescription'>" + l.title + "</div>", -1 == r.url.indexOf("RL_HTML") ? (r.description && (o.innerHTML = r.description), r.description && (o.innerHTML = r.description, r.descriptionText = o.innerText)) : (o.innerHTML = l.html, r.html = o.innerHTML), r.height = self.data.audioControllerHeight + 2 * self.itemBorderSize, self.parsePlaylistObject(r, n, !0)
                    }
                    o = null, self.playlistDomOrObj_str = self.originalFlickrURL_str, self.resizeHandler()
                } else if (self.isSoundCloud_bl) {
                    if (e.tracks) i = e.tracks;
                    else {
                        if (!e.length) {
                            var a = "Please provide a playlist or tracks URL : <font color='#FF0000'>" + self.soundCloundUrl_str + "</font>.";
                            return self.main_do.addChild(self.info_do), self.info_do.showText(a), void(self.isAnim_bl = !1)
                        }
                        i = e
                    }
                    self.isPlaylistDispatchingError_bl = !1, self.totalItems = i.length;
                    for (var o = document.createElement("div"), n = 0; n < self.totalItems; n++) {
                        var r = {},
                            l = i[n];
                        r.url = l.stream_url + "?consumer_key=" + self.scClientId_str, r.thumbnailPath_str = String(l.artwork_url).replace(/large/, "t300x300"), r.type_str = "-soundcloud-", r.description = "<div class='FWDRLSoundCloudDescription'>" + l.title + "</div>", -1 == r.url.indexOf("RL_HTML") ? (r.description && (o.innerHTML = r.description), r.description && (o.innerHTML = r.description, r.descriptionText = o.innerText)) : (o.innerHTML = l.html, r.html = o.innerHTML), r.height = self.data.audioControllerHeight + 2 * self.itemBorderSize, self.parsePlaylistObject(r, n, !0)
                    }
                    o = null, self.playlistDomOrObj_str = self.soundCloundUrl_str, self.resizeHandler()
                } else if (-1 != e.indexOf("rlobj_")) {
                    if (i = window[e], !i) return void alert('Revolution lightbox error! The playlist JSON object with the label "' + e + "\" doesn't exist!");
                    self.totalItems = i.playlistItems.length;
                    for (var o = document.createElement("div"), n = 0; n < self.totalItems; n++) {
                        var r = {},
                            l = i.playlistItems[n];
                        r.url = l.url, r.thumbnailPath_str = l.thumbnailPath, r.posterPath = l.posterPath, r.type_str = l.url, r.description = l.description, -1 == r.url.indexOf("RL_HTML") ? (r.description && (o.innerHTML = r.description), r.description && (o.innerHTML = r.description, r.descriptionText = o.innerText)) : (o.innerHTML = l.html, r.html = o.innerHTML), r.width = l.width, r.height = l.height, self.parsePlaylistObject(r, n, !0), r.type_str == FWDRL.AUDIO_TYPE && (r.height = self.data.audioControllerHeight + 2 * self.itemBorderSize)
                    }
                    o = null
                } else {
                    var d = document.getElementById(e);
                    if (!d) return void alert('Revolution lightbox error! The HTML element with the id "' + e + "\" doesn't exist!");
                    var u = FWDRLUtils.getChildren(d);
                    if (self.totalItems = u.length, 0 == self.totalItems) return void alert('Revolution lightbox error! The playlist with the id "' + e + '" must contain at least one entry.');
                    for (var n = 0; n < self.totalItems; n++) {
                        var r = {},
                            l = u[n];
                        if (!FWDRLUtils.hasAttribute(l, "data-url")) return void alert('Revolution lightbox error! Attribute "data-url" is not found in the playlist at position nr: "' + n + '".');
                        if (r.url = String(FWDRLUtils.getAttributeValue(l, "data-url")), r.posterPath = FWDRLUtils.getAttributeValue(l, "data-poster-path"), r.type_str = FWDRLUtils.getAttributeValue(l, "data-url"), r.width = FWDRLUtils.getAttributeValue(l, "data-width"), r.height = FWDRLUtils.getAttributeValue(l, "data-height"), FWDRLUtils.hasAttribute(l, "data-thumbnail-path") && (r.thumbnailPath_str = FWDRLUtils.getAttributeValue(l, "data-thumbnail-path")), -1 == r.url.indexOf("RL_HTML")) try {
                            0 != FWDRLUtils.getChildren(l).length && (r.description = l.innerHTML, r.descriptionText = l.innerText)
                        } catch (h) {} else try {
                            r.html = l.innerHTML
                        } catch (h) {}
                        self.parsePlaylistObject(r, n, !1), r.type_str == FWDRL.AUDIO_TYPE && (r.height = self.data.audioControllerHeight + 2 * self.itemBorderSize)
                    }
                }
                1 == self.totalItems ? self.showNextAndPrevButtons_bl = !1 : self.defaultShowNextAndPrevButtons_bl ? self.showNextAndPrevButtons_bl = !0 : self.showNextAndPrevButtons_bl = !1, self.id < 0 ? self.id = 0 : self.id > self.totalItems - 1 && (self.id = self.totalItems - 1), self.prevId = self.id, self.useDeepLinking_bl && (s ? location.hash = "RL?rl_playlist=" + self.playlistDomOrObj_str + "&rl_id=" + self.id + "&rl_propsobj=" + s : location.hash = "RL?rl_playlist=" + self.playlistDomOrObj_str + "&rl_id=" + self.id), (self.isSoundCloud_bl || self.isFacebook_bl || self.isYoutube_bl || self.isFlickr_bl) && self.showComplete()
            }, self.showComplete = function() {
                self.useAsModal_bl ? self.removeCloseEventsWhenBkIsPressed() : self.addCloseEventsWhenBkIsPressed(), self.isReady_bl && -1 != self.id && !self.curItem_do && self.playlist_ar && !self.isPlaylistDispatchingError_bl && (self.positionPreloader(), self.preloader_do.show(!0), self.showCloseButton_bl ? self.showCloseButton() : self.hideCloseButton(), self.playlist_ar[self.id].type_str == FWDRL.IMAGE_TYPE && self.defaultShowZoomButton_bl ? self.showZoomButton() : self.hideZoomButton(), self.playlist_ar[self.id].description && self.defaultHideDescriptionButtons_bl ? (self.hasItemDescription_bl = !0, self.showDescriptionButton()) : (self.hasItemDescription_bl = !1, self.hideDescriptionButton()), self.showSlideShowButton_bl ? self.showSlideshowButton() : self.hideSlideshowButton(), self.showShareButton_bl ? self.showFacebookButton() : self.hideFacebookButton(), self.showNextAndPrevButtons_bl ? self.showNextAndPrevButtons() : self.hideNextAndPrevButtons(), self.showThumbnailsHideOrShowButton_bl && self.showThumbnails_bl ? (self.showHsThumbnailButton(), self.showThumbnailsByDefault_bl ? self.hsThumbanilsButton_do.setButtonState(1) : self.hsThumbanilsButton_do.setButtonState(0)) : self.hideHsThumbnailButton(), self.showDescription_bl ? self.descButton_do.setButtonState(0) : self.descButton_do.setButtonState(1), self.hideButtons(), self.createAndShowItem(), self.isMobile_bl && self.addSwipeSupport(), self.startAnim(801))
            }, self.hide = function() {
                self.isAnim_bl || !self.isShowed_bl || self.isAnimMaximizeOrMinimize_bl || self.isMaximized_bl || self.swipeMoved_bl || !self.areButtonsShowed_bl || (self.isSoundCloud_bl = !1, self.isFacebook_bl = !1, self.isYoutube_bl = !1, self.isFlickr_bl = !1, self.stopToLoadPlaylist(), self.isMobile_bl && self.closeButton_do && FWDRLTweenMax.isTweening(self.closeButton_do.buttonsHolder_do) || (FWDRLTweenMax.to(self.bk_do, .8, {
                    alpha: 0,
                    delay: .4,
                    ease: Quint.easeOut
                }), self.curItem_do && self.curItem_do.screen && (FWDRLTweenMax.to(self.curItem_do, .6, {
                    alpha: 0,
                    ease: Quint.easeOut
                }), FWDRLTweenMax.to(self.curItem_do, .8, {
                    x: 0,
                    y: 0,
                    w: 0,
                    h: 0,
                    delay: .1,
                    ease: Expo.easeInOut
                })), FWDRLTweenMax.to(self.mainItemHolder_do, .8, {
                    x: self.stageWidth / 2,
                    y: self.stageHeight / 2,
                    w: 0,
                    h: 0,
                    delay: .1,
                    ease: Expo.easeInOut
                }), FWDRLTweenMax.to(self.itemBorder_do, .8, {
                    w: 0,
                    h: 0,
                    alpha: 0,
                    delay: .1,
                    ease: Expo.easeInOut
                }), FWDRLTweenMax.to(self.itemBk_do, .8, {
                    x: 0,
                    y: 0,
                    w: 0,
                    h: 0,
                    delay: .1,
                    ease: Expo.easeInOut
                }), self.curItem_do && self.hideButtons(!0), self.isShowed_bl = !1, self.isFirstItemShowed_bl = !1, -1 == self.id, self.curItem_do = null, self.prevItem_do = null, self.isAnimForVideoAndAudioPlayersDone_bl = !1, self.stopResizeHandler(), self.closeAjax(), self.tm.stop(), self.thumbnailsManager_do && self.thumbnailsManager_do.hide(!0), self.main_do.contains(self.info_do) && self.main_do.removeChild(self.info_do), self.closeImage(), self.useAsModal_bl || self.removeCloseEventsWhenBkIsPressed(), self.hider.stop(), self.preloader_do.hide(!0), self.hideShareButtons(!0, !0), self.videoHolder_do && (self.video_do.stop(), self.video_do.setPosterSource(""), self.videoHolder_do.setX(-5e3), self.videoHolder_do.w = 1, self.videoHolder_do.h = 1), self.audioHolder_do && (self.audio_do.stop(), self.audioHolder_do.setX(-5e3), self.audioHolder_do.w = 1, self.audioHolder_do.h = 1), self.desc_do.descriptionAnimationType_str = "opacity", FWDRL.dispatchEvent(FWDRL.HIDE_START), self.hasItemDescription_bl && self.showDescription_bl && self.desc_do.hide(!0), clearTimeout(self.showOrHideCompleteId_to), self.showOrHideCompleteId_to = setTimeout(self.hideComplete, 1200), self.isMobile_bl && self.removeSwipeSupport(), self.startAnim(1202)))
            }, self.hideComplete = function() {
                self.useDeepLinking_bl && (location.hash = "RL"), self.removePreventMouseWheel(), self.isFirstItemShowed_bl = !1, self.firstVideoOrAudioAdded_bl = !1, self.curItem_do = null, self.prevItem_do = null, self.removeItems(0), self.thumbnailsManager_do && (self.thumbnailsManager_do.destoryThumbnails(), self.thumbnailsManager_do.hideForGood()), self.video_do && RLVideoPlayer && RLVideoPlayer.setPosterSource(""), self.isMobile_bl && self.removeSwipeSupport(), self.main_do.setX(-5e3), FWDRL.dispatchEvent(FWDRL.HIDE_COMPLETE)
            }, self.startAnim = function(e) {
                self.stopAnim(), self.isAnim_bl = !0, self.animId_to = setTimeout(self.animationDone, e)
            }, self.stopAnim = function() {
                self.isAnim_bl = !1, self.tm && self.tm.pause(), clearTimeout(self.animId_to)
            }, self.animationDone = function() {
                self.isAnim_bl = !1, self.tm.resume(), self.removeItems(1), self.dlChangeHandler(), self.hasItemDescription_bl && self.showDescription_bl && self.desc_do.show(!0)
            }, self.addCloseEventsWhenBkIsPressed = function() {
                self.isMobile_bl ? self.hasPointerEvent_bl ? self.bk_do.screen.addEventListener("pointerup", self.onBkMouseUp) : (self.bk_do.screen.addEventListener("touchend", self.onBkMouseUp), self.bk_do.screen.addEventListener("touchmove", self.onBkTouchMove)) : self.bk_do.screen.addEventListener ? self.bk_do.screen.addEventListener("click", self.onBkMouseUp) : self.bk_do.screen.attachEvent && self.bk_do.screen.attachEvent("onclick", self.onBkMouseUp)
            }, self.removeCloseEventsWhenBkIsPressed = function() {
                self.isMobile_bl ? self.hasPointerEvent_bl ? self.bk_do.screen.removeEventListener("pointerup", self.onBkMouseUp) : (self.bk_do.screen.removeEventListener("touchend", self.onBkMouseUp), self.bk_do.screen.removeEventListener("touchmove", self.onBkTouchMove)) : self.bk_do.screen.removeEventListener ? self.bk_do.screen.removeEventListener("click", self.onBkMouseUp) : self.bk_do.screen.detachEvent && self.bk_do.screen.detachEvent("onclick", self.onBkMouseUp)
            }, self.onBkTouchMove = function() {
                clearTimeout(self.doNotAllowToHideId_to), self.doNotAllowToHideId_to = setTimeout(function() {
                    self.doNotAllowToHide_bl = !1
                }, 100), self.doNotAllowToHide_bl = !0
            }, self.onBkMouseUp = function() {
                self.doNotAllowToHide_bl || self.hide()
            }, this.stopToLoadPlaylist = function() {
                clearTimeout(self.JSONPRequestTimeoutId_to);
                try {
                    self.scs_el.src = null, document.documentElement.removeChild(self.scs_el), self.scs_el = null
                } catch (e) {}
                if (null != self.xhr) {
                    try {
                        self.xhr.abort()
                    } catch (e) {}
                    self.xhr.onreadystatechange = null, self.xhr.onerror = null, self.xhr = null
                }
            }, self.createAndShowItem = function() {
                var e = self.playlist_ar[self.id];
                if (self.type_str = e.type_str, self.url = e.url, self.posterPath_str = e.posterPath, self.closeAjax(), self.tm.pause(), self.closeImage(), self.preloader_do.hide(!0), self.main_do.contains(self.info_do) && self.main_do.removeChild(self.info_do), self.thumbnailsManager_do && self.thumbnailsManager_do.disableOrEnableThumbnails(), self.prevItem_do && self.prevItem_do.type_str != FWDRL.IMAGE_TYPE && (self.removeItems(0), self.prevItem_do = null), self.playlist_ar[self.id].description ? (self.hasItemDescription_bl = !0, self.showDescriptionButton()) : (self.hasItemDescription_bl = !1, self.hideDescriptionButton(), self.desc_do.hide(!1, !1, !0)), self.videoHolder_do && (self.video_do.stop(), self.type_str != FWDRL.VIDEO_TYPE && (self.videoHolder_do.setX(-5e3), self.videoHolder_do.w = 1, self.videoHolder_do.h = 1)), self.audioHolder_do && (self.audio_do.stop(), self.type_str == FWDRL.AUDIO_TYPE && self.isFirstItemShowed_bl || (self.audioHolder_do.setX(-5e3), self.audioHolder_do.w = 1, self.audioHolder_do.h = 1)), self.isAnimForVideoAndAudioPlayersDone_bl = !1, self.type_str == FWDRL.IMAGE_TYPE) self.loadImage(), self.firstVideoOrAudioAdded_bl = !0;
                else if (self.type_str == FWDRL.IFRAME_TYPE || self.type_str == FWDRL.FLASH_TYPE || self.type_str == FWDRL.VIDEO_TYPE || self.type_str == FWDRL.AUDIO_TYPE) {
                    if (self.originalW = e.width || self.defaultItemW, self.originalH = e.height || self.defaultItemH, self.prevItem_do && (self.resizeCurrentItem(!0), FWDRLTweenMax.to(self.prevItem_do, .8, {
                            alpha: 0,
                            ease: Quint.easeOut
                        }), FWDRLTweenMax.to(self.prevItem_do, .8, {
                            x: parseInt((self.finalW - self.prevItem_do.w) / 2),
                            y: parseInt((self.finalH - self.prevItem_do.h) / 2),
                            ease: Expo.easeInOut
                        })), self.curItem_do = new FWDRLDisplayObject("div"), self.curItem_do.type_str = self.type_str, self.prevItem_do = self.curItem_do, self.isMobile_bl && (self.curItem_do.getStyle().overflow = "scroll", self.curItem_do.getStyle().webkitOverflowScrolling = "touch"), self.itemHolder_do.addChild(self.curItem_do), self.isFirstItemShowed_bl ? self.resizeCurrentItem(!1, !0) : (self.resizeCurrentItem(!1), self.showItemFirstTime(), self.positionButtons(!1), self.positionShareButtons(!1), self.hideButtons(), self.setupThumbnails(800)), self.hideZoomButton(), self.playlist_ar[self.id].description ? (self.hasItemDescription_bl = !0, self.desc_do.setText(self.playlist_ar[self.id].description), self.showDescriptionButton()) : (self.hasItemDescription_bl = !1, self.hideDescriptionButton()), "opacity" == self.descriptionAnimationType_str && self.hasItemDescription_bl && self.desc_do.hide(!1, !0, !1), self.positionButtons(!0), self.positionShareButtons(!0), self.type_str == FWDRL.VIDEO_TYPE) {
                        if (!self.data.DFUseVideo_bl) return self.main_do.addChild(self.info_do), void self.info_do.showText("To play video mp4 files please set <font color='#FF0000'>useVideo:\"yes\"</font>.");
                        if (!FWDRLFlashTest.hasFlashPlayerVersion("9.0.18") && !FWDRLUtils.isLocal && !self.isMobile_bl) return self.main_do.addChild(self.info_do), void self.info_do.showText("Please install Adobe flash player! <a href='http://www.adobe.com/go/getflashplayer'>Click here to install.</a> to play this mp4 video file.");
                        if (!self.videoHolder_do && FWDRLUtils.isLocal) return self.main_do.addChild(self.info_do), void self.info_do.showText("This browser can't play mp4 video files locally, please use a different browser like Chrome, IE9+, Firefox(WIN), Safari(MAC). It will work on all browsers when tested online.");
                        self.videoHolder_do.w == self.finalW - 2 * self.itemBorderSize && self.videoHolder_do.h == self.finalH - 2 * self.itemBorderSize ? (setTimeout(self.addContent, 200), self.startAnim(201), self.showSlideShowAnimation_bl && self.slp_do.animReset()) : (setTimeout(self.addContent, 800), self.startAnim(801))
                    } else if (self.type_str == FWDRL.AUDIO_TYPE) {
                        if (!self.data.DFUseAudio_bl) return self.main_do.addChild(self.info_do), void self.info_do.showText("To play audio mp3 files please set <font color='#FF0000'>useAudio:\"yes\"</font>.");
                        if (!FWDRLFlashTest.hasFlashPlayerVersion("9.0.18") && !FWDRLUtils.isLocal && !self.isMobile_bl) return self.main_do.addChild(self.info_do), void self.info_do.showText("Please install Adobe flash player! <a href='http://www.adobe.com/go/getflashplayer'>Click here to install.</a> to play this mp3 audio file.");
                        if (!self.audioHolder_do && FWDRLUtils.isLocal) return self.main_do.addChild(self.info_do), void self.info_do.showText("This browser can't play mp3 audio files locally, please use a different browser like Chrome, IE9+, Firefox(WIN), Safari(MAC). It will work on all browsers when tested online.");
                        self.audioHolder_do.w == self.finalW - 2 * self.itemBorderSize && self.audioHolder_do.h == self.finalH - 2 * self.itemBorderSize ? (setTimeout(self.addContent, 200), self.startAnim(201), self.showSlideShowAnimation_bl && self.slp_do.animReset()) : (setTimeout(self.addContent, 800), self.startAnim(801))
                    } else if (self.type_str == FWDRL.IFRAME_TYPE) setTimeout(self.addContent, 800), self.startAnim(801);
                    else if (self.type_str == FWDRL.FLASH_TYPE) {
                        if (!FWDRLFlashTest.hasFlashPlayerVersion("9.0.18") && !self.isMobile_bl) return self.main_do.addChild(self.info_do), self.info_do.showText("Please install Adobe flash player! <a href='http://www.adobe.com/go/getflashplayer'>Click here to install.</a> to view this flash content."), void self.startAnim(801);
                        if (self.isMobile_bl) return self.main_do.addChild(self.info_do), self.info_do.showText("Adobe flash player is not supported on mobile devices, to view this content please use a desktop machine."), void self.startAnim(801);
                        setTimeout(self.addContent, 800), self.startAnim(801)
                    }
                    self.videoHolder_do && (self.videoHolder_do.w != self.finalW - 2 * self.itemBorderSize || self.videoHolder_do.h != self.finalH - 2 * self.itemBorderSize) && (self.videoHolder_do.setX(-5e3), self.videoHolder_do.w = 1, self.videoHolder_do.h = 1)
                }
                FWDRL.dispatchEvent(FWDRL.UPDATE, {
                    curId: self.id
                })
            }, self.addContent = function() {
                if (self.type_str == FWDRL.VIDEO_TYPE) return self.isAnimForVideoAndAudioPlayersDone_bl = !0, RLVideoPlayer.setVideoSource(self.url), RLVideoPlayer.setPosterSource(self.posterPath_str), self.videoAutoPlay_bl && !self.firstVideoOrAudioAdded_bl ? RLVideoPlayer.play() : self.nextVideoOrAudioAutoPlay_bl && self.firstVideoOrAudioAdded_bl && RLVideoPlayer.play(), self.resizeCurrentItem(), self.prevVideoW = self.finalW, self.prevVideoH = self.finalH, self.firstVideoOrAudioAdded_bl = !0, self.videoAutoPlay_bl = !1, void(self.audioAutoPlay_bl = !1);
                if (self.type_str == FWDRL.AUDIO_TYPE) return self.isAnimForVideoAndAudioPlayersDone_bl = !0, RLAudioPlayer.setSource(self.url), self.audioAutoPlay_bl && !self.firstVideoOrAudioAdded_bl ? RLAudioPlayer.play() : self.nextVideoOrAudioAutoPlay_bl && self.firstVideoOrAudioAdded_bl && RLAudioPlayer.play(), self.resizeCurrentItem(), self.firstVideoOrAudioAdded_bl = !0, self.audioAutoPlay_bl = !1, void(self.videoAutoPlay_bl = !1);
                if (self.type_str == FWDRL.FLASH_TYPE) {
                    var e = '<object id="RL_swf_' + parseInt(99999999999 * Math.random()) + '" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="100%" height="100%"><param name="movie" value="' + self.url + '"/><param name="wmode" value="opaque"/><param name="scale" value="noscale"/><object type="application/x-shockwave-flash" data="' + self.url + '" width="100%" height="100%"><param name="movie" value="' + self.url + '"/><param name="wmode" value="opaque"/><param name="scale" value="noscale"/></object></object>';
                    return self.curItem_do.setInnerHTML(e), void self.resizeCurrentItem()
                }
                if (-1 != self.url.indexOf("RL_HTML")) return self.addInnerHTMLContent(self.playlist_ar[self.id].html), void self.resizeCurrentItem();
                if (-1 == self.url.indexOf("RL_AJAX:")) {
                    var t, s = "http://"; - 1 != self.url.indexOf("https") && (s = "https://"), self.nextVideoOrAudioAutoPlay_bl && self.firstVideoOrAudioAdded_bl && (self.videoAutoPlay_bl = !0);
                    var i = self.videoAutoPlay_bl ? "1" : "0";
                    self.firstVideoOrAudioAdded_bl = !0;
                    var o;
                    t = document.createElement("iframe"), t.width = "100%", t.height = "100%", t.allowFullScreen = 1, t.setAttribute("allowFullScreen", ""), t.frameBorder = 0, -1 != self.url.indexOf("youtube.") || -1 != self.url.indexOf("vimeo.") ? (-1 != self.url.indexOf("youtube.") ? (o = self.url.replace(/.*\?v=|&.*/gi, ""), t.src = s + "www.youtube.com/embed/" + o + "?wmode=transparent&autoplay=" + i) : -1 != self.url.indexOf("vimeo.") && (o = self.url.replace(/.*\/|\?.*/gi, ""), t.src = s + "player.vimeo.com/video/" + o + "?autoplay=" + i), self.videoAutoPlay_bl = !1) : -1 != self.url.indexOf("google.") ? (self.url = self.url.replace(/&key=\.*|key=\.*|&key=*/gi, ""), self.url += "&key=" + self.googleMapsAPIKey_str, t.src = self.url) : t.src = self.url, self.curItem_do.screen.appendChild(t), self.resizeCurrentItem()
                } else {
                    if (FWDRLUtils.isLocal) return void self.ajaxLoadError("Using ajax locally is not possible or allowed, please test online.");
                    self.url = self.url.substr(self.url.indexOf(":") + 1), self.xmlhttp = new XMLHttpRequest, self.xmlhttp.onerror = function() {
                        self.ajaxLoadError("Ajax error with code: " + self.xmlhttp.status)
                    }, self.xmlhttp.onreadystatechange = function() {
                        4 === self.xmlhttp.readyState && (200 == self.xmlhttp.status ? self.addInnerHTMLContent(self.xmlhttp.responseText) : self.ajaxLoadError("Ajax error with code: " + self.xmlhttp.status))
                    }, self.xmlhttp.open("GET", self.url, !0);
                    try {
                        self.xmlhttp.send()
                    } catch (n) {
                        n.message && self.ajaxLoadError(n.message)
                    }
                }
            }, self.addInnerHTMLContent = function(e) {
                self.curItem_do.getStyle().overflow = "auto", self.curItem_do.setInnerHTML(e), self.curItem_do.screen.addEventListener && (self.curItem_do.screen.addEventListener("mousewheel", function(e) {
                    e.stopImmediatePropagation && e.stopImmediatePropagation()
                }), self.curItem_do.screen.addEventListener("DOMMouseScroll", function(e) {
                    e.stopImmediatePropagation && e.stopImmediatePropagation()
                }), self.curItem_do.screen.addEventListener("touchmove", function(e) {
                    self.curItem_do.screen.scrollHeight > self.finalH - 2 * self.itemBorderSize && e.stopImmediatePropagation()
                }))
            }, self.ajaxLoadError = function(e) {
                self.tm.stop(), self.stopAnim(), self.preloader_do.hide(!0), self.main_do.addChild(self.info_do), self.info_do.showText(e)
            }, self.closeAjax = function() {
                self.xmlhttp && (self.xmlhttp.onerror = null, self.xmlhttp.onreadystatechange = null, self.xmlhttp.abort(), self.xmlhttp = null)
            }, self.closeImage = function() {
                self.image_img && (self.image_img.onload = null, self.image_img.onerror = null, self.image_img = null)
            }, self.loadImage = function() {
                self.isLoading_bl = !0, self.stopAnim(), self.positionPreloader(), self.preloader_do.show(!0), self.image_img = new Image, self.image_img.onload = self.imageLoadComplete, self.image_img.onerror = self.imageLoadError, self.image_img.src = self.url
            }, self.imageLoadComplete = function(e) {
                self.originalW = self.image_img.width, self.originalH = self.image_img.height, self.curItem_do = new FWDRLDisplayObject("img"), self.curItem_do.setScreen(self.image_img), self.curItem_do.type_str = FWDRL.IMAGE_TYPE, self.isFirstItemShowed_bl ? (self.resizeCurrentItem(!0, !1), self.prevItem_do && self.prevItem_do.type_str == FWDRL.IMAGE_TYPE && (FWDRLTweenMax.to(self.prevItem_do, .8, {
                    alpha: 0,
                    ease: Quint.easeOut
                }), FWDRLTweenMax.to(self.prevItem_do, .8, {
                    x: parseInt((self.finalW - self.prevItem_do.w) / 2),
                    y: parseInt((self.finalH - self.prevItem_do.h) / 2),
                    ease: Expo.easeInOut
                })), self.curItem_do.setWidth(self.finalW - 2 * self.itemBorderSize), self.curItem_do.setHeight(self.finalH - 2 * self.itemBorderSize), self.curItem_do.setAlpha(0), self.resizeCurrentItem(!1, !0), FWDRLTweenMax.to(self.curItem_do, .8, {
                    alpha: 1,
                    delay: .8,
                    ease: Quint.easeOut
                })) : (self.resizeCurrentItem(!1), self.showItemFirstTime(), self.positionButtons(!1), self.positionShareButtons(!1), self.hideButtons(), self.setupThumbnails(800)), self.startAnim(801), self.isLoading_bl = !1, self.prevItem_do = self.curItem_do, self.preloader_do.hide(!0), self.showZoomButton(), self.hasItemDescription_bl && ("opacity" == self.descriptionAnimationType_str && self.hasItemDescription_bl && self.desc_do.hide(!1, !0, !1), self.showDescriptionButton(), self.desc_do.setText(self.playlist_ar[self.id].description)), self.positionButtons(!0), self.positionShareButtons(!0), self.itemHolder_do.addChild(self.curItem_do)
            }, self.imageLoadError = function(e) {
                self.tm.stop(), self.stopAnim(), self.preloader_do.hide(!0), self.main_do.addChild(self.info_do), self.info_do.showText("Image with path <span style='color:#FF0000;'>" + decodeURIComponent(self.url) + "</span> can't be loaded, probably the path is incorrect.")
            }, this.maximizeOrMinimize = function() {
                if (!self.isLoading_bl && !self.isAnim_bl) {
                    var e, t, s, i, o, n, r;
                    self.isAnimMaximizeOrMinimize_bl = !0, clearTimeout(self.maximizeCompleteTimeOutId_to), clearTimeout(self.minimizeCompleteTimeOutId_to), self.isMaximized_bl ? (self.isMaximized_bl = !1, self.zoomButton_do.setButtonState(1), self.isMobile_bl ? self.removeEventsForScrollngImageOnMobile() : self.removeEventsForScrollngImageOnDesktop(), FWDRLTweenMax.to(self.curItem_do, .8, {
                        x: self.finalX + self.itemBorderSize,
                        y: self.finalY + self.itemBorderSize,
                        w: self.finalW - 2 * self.itemBorderSize,
                        h: self.finalH - 2 * self.itemBorderSize,
                        ease: Expo.easeInOut
                    }), self.setButtonsVisible(!0), self.positionButtons(!0), self.positionShareButtons(!0), self.minimizeCompleteTimeOutId_to = setTimeout(self.minimizeCompleteHandler, 801)) : (self.isMaximized_bl = !0, self.zoomButton_do.setButtonState(0), self.tm.pause(), e = self.stageWidth / self.originalW, t = self.stageHeight / self.originalH, r = 0, e >= t ? r = e : t >= e && (r = t), o = parseInt(self.originalW * r), n = parseInt(self.originalH * r), s = parseInt((self.stageWidth - o) / 2), i = parseInt((self.stageHeight - n) / 2), 1 != self.curItem_do.alpha && self.curItem_do.setAlpha(1), self.curItem_do.setX(self.curItem_do.getGlobalX()), self.curItem_do.setY(self.curItem_do.getGlobalY()), FWDRLTweenMax.to(self.zoomButton_do, .8, {
                        x: self.stageWidth - self.zoomButton_do.w - 1,
                        y: 1,
                        ease: Expo.easeInOut
                    }), self.isMobile_bl ? FWDRLTweenMax.to(self.curItem_do, .8, {
                        x: s,
                        y: i,
                        w: o,
                        h: n,
                        ease: Expo.easeInOut
                    }) : (e >= t ? FWDRLTweenMax.to(self.curItem_do, .8, {
                        x: s,
                        w: o,
                        h: n,
                        ease: Expo.easeInOut
                    }) : t > e && FWDRLTweenMax.to(self.curItem_do, .8, {
                        y: i,
                        w: o,
                        h: n,
                        ease: Expo.easeInOut
                    }), self.addEventsForScrollngImageOnDesktop()), self.itemHolder_do.contains(self.imteHolder_do) && self.itemHolder_do.removeChild(self.curItem_do), self.main_do.addChild(self.curItem_do), self.main_do.addChild(self.zoomButton_do), self.maximizeCompleteTimeOutId_to = setTimeout(self.maximizeCompleteHandler, 801)), self.hideShareButtons(!0)
                }
            }, self.minimizeCompleteHandler = function() {
                self.isAnimMaximizeOrMinimize_bl = !1, self.isTweening_bl = !1, self.itemHolder_do.addChild(self.curItem_do), self.resizeCurrentItem(), self.tm.resume(), self.hasItemDescription_bl && self.showDescription_bl && self.desc_do.show(!0), self.main_do.addChild(self.zoomButton_do), self.useDeepLinking_bl && self.dlChangeHandler()
            }, self.maximizeCompleteHandler = function() {
                self.isAnimMaximizeOrMinimize_bl = !1, self.setButtonsInvisible(!0), self.isMobile_bl && self.addEventsForScrollngImageOnMobile(), self.hasItemDescription_bl && self.showDescription_bl && self.desc_do.hide(!1)
            }, self.setButtonsInvisible = function(e) {
                self.showCloseButton_bl && self.closeButton_do.setVisible(!1), self.showNextAndPrevButtons_bl && (self.nextButton_do.setVisible(!1), self.prevButton_do.setVisible(!1)), self.showThumbnailsHideOrShowButton_bl && self.hsThumbanilsButton_do.setVisible(!1), self.showThumbnails_bl && self.thumbnailsManager_do.setVisible(!1), self.showDescriptionButton_bl && self.descButton_do.setVisible(!1), self.showSlideShowButton_bl && self.slideShowButton_do.setVisible(!1), self.showShareButton_bl && self.shareButton_do.setVisible(!1), self.showSlideShowAnimation_bl && self.slp_do.setVisible(!1), self.showDescription_bl && self.desc_do.setVisible(!1), e && self.mainItemHolder_do.setVisible(!1)
            }, self.setButtonsVisible = function(e) {
                self.showCloseButton_bl && self.closeButton_do.setVisible(!0), self.showNextAndPrevButtons_bl && (self.nextButton_do.setVisible(!0), self.prevButton_do.setVisible(!0)), self.showThumbnailsHideOrShowButton_bl && self.hsThumbanilsButton_do.setVisible(!0), self.showThumbnails_bl && self.thumbnailsManager_do.setVisible(!0), self.showDescriptionButton_bl && self.descButton_do.setVisible(!0), self.showSlideShowButton_bl && self.slideShowButton_do.setVisible(!0), self.showShareButton_bl && self.shareButton_do.setVisible(!0), self.showSlideShowAnimation_bl && self.slp_do.setVisible(!0), self.showDescription_bl && self.desc_do.setVisible(!0), e && self.mainItemHolder_do.setVisible(!0)
            }, this.addEventsForScrollngImageOnDesktop = function() {
                self.updateImageWhenMaximized_int = setInterval(self.updateMaximizedImageHandler, 16), window.addEventListener ? window.addEventListener("mousemove", self.updateMaximizeImageOnMouseMovedHandler) : document.attachEvent("onmousemove", self.updateMaximizeImageOnMouseMovedHandler), self.hider.stop()
            }, this.removeEventsForScrollngImageOnDesktop = function() {
                clearInterval(self.updateImageWhenMaximized_int), window.addEventListener ? window.removeEventListener("mousemove", self.updateMaximizeImageOnMouseMovedHandler) : document.detachEvent("onmousemove", self.updateMaximizeImageOnMouseMovedHandler), self.hider.start()
            }, this.updateMaximizeImageOnMouseMovedHandler = function(e) {
                var t = FWDRLUtils.getViewportMouseCoordinates(e);
                self.gmx = t.screenX, self.gmy = t.screenY
            }, self.updateMaximizedImageHandler = function() {
                var e, t;
                self.percentX = self.gmx / self.stageWidth, self.percentY = self.gmy / self.stageHeight, self.percentX > 1 && (self.percentX = 1), self.percentY > 1 && (self.percentY = 1);
                var s = self.stageWidth / self.originalW,
                    i = self.stageHeight / self.originalH;
                if (i >= s) {
                    if (e = Math.round((self.stageWidth - self.curItem_do.w) * self.percentX), isNaN(e)) return;
                    FWDRLTweenMax.to(self.curItem_do, .4, {
                        x: e
                    })
                } else {
                    if (t = Math.round((self.stageHeight - self.curItem_do.h) * self.percentY), isNaN(t)) return;
                    FWDRLTweenMax.to(self.curItem_do, .4, {
                        y: t
                    })
                }
            }, self.addEventsForScrollngImageOnMobile = function() {
                self.hasPointerEvent_bl ? (window.addEventListener("pointerdown", self.onTouchStartScrollImage), window.addEventListener("pointerup", self.onTouchEndScrollImage)) : (window.addEventListener("touchstart", self.onTouchStartScrollImage), window.addEventListener("touchend", self.onTouchEndScrollImage)), clearInterval(self.updateImageWhenMaximized_int), self.updateImageWhenMaximized_int = setInterval(self.updateMaximizedImageMobileHandler, 16)
            }, self.removeEventsForScrollngImageOnMobile = function() {
                clearInterval(self.updateImageWhenMaximized_int), self.hasPointerEvent_bl ? (window.removeEventListener("pointerdown", self.onTouchStartScrollImage), window.removeEventListener("pointerup", self.onTouchEndScrollImage), window.removeEventListener("pointermove", self.onTouchMoveScrollImage)) : (window.removeEventListener("touchstart", self.onTouchStartScrollImage), window.removeEventListener("touchend", self.onTouchEndScrollImage), window.removeEventListener("touchmove", self.onTouchMoveScrollImage)), self.isDragging_bl = !1
            }, self.onTouchStartScrollImage = function(e) {
                var t = FWDRLUtils.getViewportMouseCoordinates(e);
                self.hasPointerEvent_bl ? window.addEventListener("pointermove", self.onTouchMoveScrollImage) : window.addEventListener("touchmove", self.onTouchMoveScrollImage), self.lastPresedX = t.screenX, self.lastPresedY = t.screenY, e.preventDefault()
            }, self.onTouchEndScrollImage = function(e) {
                self.hasPointerEvent_bl ? window.removeEventListener("pointermove", self.onTouchMoveScrollImage) : window.removeEventListener("touchmove", self.onTouchMoveScrollImage), self.isDragging_bl = !1
            }, self.onTouchMoveScrollImage = function(e) {
                e.preventDefault && e.preventDefault();
                var t = FWDRLUtils.getViewportMouseCoordinates(e),
                    s = self.stageWidth / self.originalW,
                    i = self.stageHeight / self.originalH,
                    o = 0,
                    n = 0;
                self.isDragging_bl = !0, i > s ? (o = t.screenX - self.lastPresedX, self.lastPresedX = t.screenX, self.curItem_do.setX(self.curItem_do.x + o)) : s > i ? (n = t.screenY - self.lastPresedY, self.lastPresedY = t.screenY, self.curItem_do.setY(self.curItem_do.y + n)) : (o = t.screenX - self.lastPresedX, self.lastPresedX = t.screenX, self.curItem_do.setX(self.curItem_do.x + o), n = t.screenY - self.lastPresedY, self.lastPresedY = t.screenY, self.curItem_do.setY(self.curItem_do.y + n)), self.vx = 2 * o, self.vy = 2 * n
            }, self.updateMaximizedImageMobileHandler = function() {
                var e, t, s, i, o, n;
                if (!self.isDragging_bl) {
                    if (self.vy *= self.friction, self.vx *= self.friction, s = self.curItem_do.x, i = self.curItem_do.y, e = s + self.vx, t = i + self.vy, o = self.curItem_do.w, n = self.curItem_do.h, isNaN(e) || isNaN(t)) return;
                    self.curItem_do.setX(e), self.curItem_do.setY(t), i >= 0 ? (self.vy2 = .3 * (0 - i), self.vy *= self.friction, self.curItem_do.setY(i + self.vy2)) : i <= self.stageHeight - n && (self.vy2 = .3 * (self.stageHeight - n - i), self.vy *= self.friction, self.curItem_do.setY(i + self.vy2)), s >= 0 ? (self.vx2 = .3 * (0 - s), self.vx *= self.friction, self.curItem_do.setX(s + self.vx2)) : s <= self.stageWidth - o && (self.vx2 = .3 * (self.stageWidth - o - s), self.vx *= self.friction, self.curItem_do.setX(s + self.vx2))
                }
            }, self.resizeCurrentItem = function(e, t) {
                if (self.curItem_do) {
                    var s = self.stageWidth - 2 * self.maxButtonW - 2 * (self.buttonsOffsetIn + self.buttonsOffsetOut) - 2 * self.itemBorderSize,
                        i = self.stageHeight - self.itemOffsetH - 2 * self.itemBorderSize,
                        o = 0;
                    self.areThumbnailsShowed_bl && (i -= self.thumbnailH + self.spaceBetweenThumbnailsAndItem, o = Math.round((self.thumbnailH + self.spaceBetweenThumbnailsAndItem) / 2 - self.spaceBetweenThumbnailsAndItem / 2));
                    var n = s / self.originalW,
                        r = i / self.originalH,
                        l = 0;
                    r >= n ? l = n : n >= r && (l = r), n >= 1 && r >= 1 && (l = 1), self.finalW = Math.round(self.originalW * l) + 2 * self.itemBorderSize, self.finalH = Math.round(self.originalH * l) + 2 * self.itemBorderSize, self.finalW < 2 * self.itemBorderSize && (self.finalW = 2 * self.itemBorderSize), self.finalH < 2 * self.itemBorderSize && (self.finalH = 2 * self.itemBorderSize), FWDRLUtils.isIEAndLessThen9 && (self.finalW < 150 && (self.finalW = 150), self.finalH < 150 && (self.finalH = 150)), self.type_str == FWDRL.AUDIO_TYPE && self.audioHolder_do && (self.finalH = self.data.audioControllerHeight + 2 * self.itemBorderSize), self.finalX = Math.round((self.stageWidth - self.finalW) / 2), self.finalY = Math.round((self.stageHeight - self.finalH) / 2) - o, e || (FWDRLTweenMax.killTweensOf(self.mainItemHolder_do), FWDRLTweenMax.killTweensOf(self.itemBk_do), FWDRLTweenMax.killTweensOf(self.itemBorder_do), t ? (FWDRLTweenMax.to(self.mainItemHolder_do, .8, {
                        x: self.finalX,
                        y: self.finalY,
                        w: self.finalW,
                        h: self.finalH,
                        ease: Expo.easeInOut
                    }), FWDRLTweenMax.to(self.itemBk_do, .8, {
                        x: self.itemBorderSize,
                        y: self.itemBorderSize,
                        w: self.finalW - 2 * self.itemBorderSize,
                        h: self.finalH - 2 * self.itemBorderSize,
                        ease: Expo.easeInOut
                    }), FWDRLTweenMax.to(self.itemBorder_do, .8, {
                        x: 0,
                        y: 0,
                        w: self.finalW,
                        h: self.finalH,
                        ease: Expo.easeInOut
                    }), self.desc_do && FWDRLTweenMax.to(self.desc_do, .8, {
                        finalW: self.finalW - 2 * self.itemBorderSize,
                        onUpdate: self.desc_do.resizeAndPosition,
                        ease: Expo.easeInOut
                    }), self.type_str == FWDRL.VIDEO_TYPE && self.videoHolder_do && self.isAnimForVideoAndAudioPlayersDone_bl && FWDRLTweenMax.to(self.videoHolder_do, .8, {
                        x: self.itemBorderSize,
                        y: self.itemBorderSize,
                        w: self.finalW - 2 * self.itemBorderSize,
                        h: self.finalH - 2 * self.itemBorderSize,
                        onUpdate: RLVideoPlayer.resizeHandler,
                        ease: Expo.easeInOut
                    })) : (self.mainItemHolder_do.setX(self.finalX), self.mainItemHolder_do.setY(self.finalY), self.mainItemHolder_do.setWidth(self.finalW), self.mainItemHolder_do.setHeight(self.finalH), self.itemBk_do.setX(self.itemBorderSize), self.itemBk_do.setY(self.itemBorderSize), self.itemBk_do.setWidth(self.finalW - 2 * self.itemBorderSize), self.itemBk_do.setHeight(self.finalH - 2 * self.itemBorderSize), self.itemBorder_do.setX(0), self.itemBorder_do.setY(0), self.itemBorder_do.setWidth(self.finalW), self.itemBorder_do.setHeight(self.finalH), 1 != self.itemBorder_do.alpha && self.itemBorder_do.setAlpha(1), self.desc_do && self.desc_do.resizeAndPosition(self.finalW - 2 * self.itemBorderSize), self.type_str == FWDRL.VIDEO_TYPE && self.videoHolder_do ? self.isAnimForVideoAndAudioPlayersDone_bl && (self.isVideoFullScreen_bl ? (self.videoHolder_do.setX(-self.finalX), self.videoHolder_do.setY(-self.finalY)) : (self.videoHolder_do.setX(self.itemBorderSize), self.videoHolder_do.setY(self.itemBorderSize)), self.videoHolder_do.setWidth(self.finalW - 2 * self.itemBorderSize), self.videoHolder_do.setHeight(self.finalH - 2 * self.itemBorderSize), RLVideoPlayer.resizeHandler()) : self.type_str == FWDRL.AUDIO_TYPE && self.audioHolder_do && self.isAnimForVideoAndAudioPlayersDone_bl && (self.audioHolder_do.setX(self.itemBorderSize), self.audioHolder_do.setY(self.itemBorderSize), self.audioHolder_do.setWidth(self.finalW - 2 * self.itemBorderSize), self.audioHolder_do.setHeight(self.finalH - 2 * self.itemBorderSize), RLAudioPlayer.resizeHandler())), FWDRLTweenMax.killTweensOf(self.curItem_do), self.isMaximized_bl ? (n = self.stageWidth / self.originalW, r = self.stageHeight / self.originalH, n >= r ? l = n : r >= n && (l = r), self.curItem_do.setX(parseInt((self.stageWidth - self.originalW * l) / 2)), self.curItem_do.setY(parseInt((self.stageHeight - self.originalH * l) / 2)), self.curItem_do.setWidth(Math.max(0, parseInt(self.originalW * l))), self.curItem_do.setHeight(Math.max(0, parseInt(self.originalH * l)))) : t ? FWDRLTweenMax.to(self.curItem_do, .8, {
                        x: self.itemBorderSize,
                        y: self.itemBorderSize,
                        w: self.finalW - 2 * self.itemBorderSize,
                        h: self.finalH - 2 * self.itemBorderSize,
                        ease: Expo.easeInOut
                    }) : (self.type_str == FWDRL.IMAGE_TYPE && self.curItem_do.setAlpha(1), self.curItem_do.setX(self.itemBorderSize), self.curItem_do.setY(self.itemBorderSize), self.curItem_do.setWidth(self.finalW - 2 * self.itemBorderSize), self.curItem_do.setHeight(self.finalH - 2 * self.itemBorderSize)))
                }
            }, self.showItemFirstTime = function() {
                self.isFirstItemShowed_bl = !0, self.mainItemHolder_do.setX(self.stageWidth / 2), self.mainItemHolder_do.setY(self.stageHeight / 2), self.mainItemHolder_do.setWidth(0), self.mainItemHolder_do.setHeight(0), self.itemBk_do.setX(0), self.itemBk_do.setY(0), self.itemBk_do.setWidth(0), self.itemBk_do.setHeight(0), self.curItem_do.type_str == FWDRL.IMAGE_TYPE && (self.curItem_do.setAlpha(0), self.curItem_do.setX(-self.finalW / 2 + self.itemBorderSize), self.curItem_do.setY(-self.finalH / 2 + self.itemBorderSize), FWDRLTweenMax.to(self.curItem_do, .8, {
                    alpha: 1,
                    delay: .8,
                    ease: Quint.easeOut
                }), FWDRLTweenMax.to(self.curItem_do, .8, {
                    x: self.itemBorderSize,
                    y: self.itemBorderSize,
                    ease: Expo.easeInOut
                }), self.startAnim(1601)), FWDRLTweenMax.to(self.mainItemHolder_do, .8, {
                    x: self.finalX,
                    y: self.finalY,
                    w: self.finalW,
                    h: self.finalH,
                    ease: Expo.easeInOut
                }), self.itemBorder_do.setAlpha(0), FWDRLTweenMax.to(self.itemBorder_do, .8, {
                    alpha: 1,
                    x: 0,
                    y: 0,
                    w: self.finalW,
                    h: self.finalH,
                    ease: Expo.easeInOut
                }), FWDRLTweenMax.to(self.itemBk_do, .8, {
                    x: self.itemBorderSize,
                    y: self.itemBorderSize,
                    w: self.finalW - 2 * self.itemBorderSize,
                    h: self.finalH - 2 * self.itemBorderSize,
                    ease: Expo.easeInOut
                }), self.hider.start(), setTimeout(function() {
                    self.slideShowAutoPlay_bl && self.tm.start(), FWDRL.dispatchEvent(FWDRL.SHOW_COMPLETE)
                }, 800), self.addKeyboardSupport_bl ? self.addKeyboardSupport() : self.removeKeyboardSupport()
            }, self.gotoToItem = function(e) {
                self.isReady_bl && self.isFirstItemShowed_bl && !self.isAnim_bl && (self.isMobile_bl || self.disableClick(), self.id = e, self.useDeepLinking_bl ? self.propsObjVariableName_str ? FWDAddress.setValue("RL?rl_playlist=" + self.playlistDomOrObj_str + "&rl_id=" + self.id + "&rl_propsobj=" + self.propsObjVariableName_str) : FWDAddress.setValue("RL?rl_playlist=" + self.playlistDomOrObj_str + "&rl_id=" + self.id) : self.createAndShowItem())
            }, self.gotoNextItem = function() {
                self.isReady_bl && self.isFirstItemShowed_bl && !self.isAnim_bl && (self.isMobile_bl || self.disableClick(), self.id++, self.id < 0 ? self.id = self.totalItems - 1 : self.id > self.totalItems - 1 && (self.id = 0), self.useDeepLinking_bl ? self.propsObjVariableName_str ? FWDAddress.setValue("RL?rl_playlist=" + self.playlistDomOrObj_str + "&rl_id=" + self.id + "&rl_propsobj=" + self.propsObjVariableName_str) : FWDAddress.setValue("RL?rl_playlist=" + self.playlistDomOrObj_str + "&rl_id=" + self.id) : self.createAndShowItem(), self.hideShareButtons(!0))
            }, self.gotoPrevItem = function() {
                self.isReady_bl && self.isFirstItemShowed_bl && !self.isAnim_bl && (self.isMobile_bl || self.disableClick(), self.id--, self.id < 0 ? self.id = self.totalItems - 1 : self.id > self.totalItems - 1 && (self.id = 0), self.useDeepLinking_bl ? self.propsObjVariableName_str ? FWDAddress.setValue("RL?rl_playlist=" + self.playlistDomOrObj_str + "&rl_id=" + self.id + "&rl_propsobj=" + self.propsObjVariableName_str) : FWDAddress.setValue("RL?rl_playlist=" + self.playlistDomOrObj_str + "&rl_id=" + self.id) : self.createAndShowItem(), self.hideShareButtons(!0))
            }, self.removeItems = function(e) {
                for (var t; self.itemHolder_do.getNumChildren() > e;) t = self.itemHolder_do.getChildAt(0), FWDRLTweenMax.killTweensOf(t), self.itemHolder_do.removeChild(t), t.destroy();
                t = null
            }, self.addSwipeSupport = function() {
                self.hasPointerEvent_bl ? self.main_do.screen.addEventListener("pointerdown", self.swipeStartHandler) : self.main_do.screen.addEventListener("touchstart", self.swipeStartHandler)
            }, self.removeSwipeSupport = function() {
                self.hasPointerEvent_bl ? (window.removeEventListener("pointerdown", self.swipeStartHandler), window.removeEventListener("pointerup", self.swipeUpHandler), window.removeEventListener("pointermove", self.swipeMoveHandler)) : (window.removeEventListener("touchstart", self.swipeStartHandler), window.removeEventListener("touchend", self.swipeUpHandler), window.removeEventListener("touchmove", self.swipeMoveHandler)), self.swipeMoved_bl = !1
            }, this.swipeStartHandler = function(e) {
                if (!e.touches || 1 == e.touches.length) {
                    var t = FWDRLUtils.getViewportMouseCoordinates(e);
                    self.swipeMoved_bl = !1, self.mouseX = t.screenX, self.mouseY = t.screenY, self.hasPointerEvent_bl ? (window.addEventListener("pointerup", self.swipeUpHandler), window.addEventListener("pointermove", self.swipeMoveHandler)) : (window.addEventListener("touchend", self.swipeUpHandler), window.addEventListener("touchmove", self.swipeMoveHandler))
                }
            }, self.swipeMoveHandler = function(e) {
                if (e.preventDefault && e.preventDefault(), !(self.isClickedDisabled_bl || e.touches && 1 != e.touches.length)) {
                    self.swipeMoved_bl = !0;
                    var t = FWDRLUtils.getViewportMouseCoordinates(e);
                    self.dif = self.mouseX - t.screenX, self.mouseX = t.screenX, self.mouseY = t.screenY
                }
            }, self.swipeUpHandler = function(e) {
                if (!(self.isAnim_bl || self.isAnimMaximizeOrMinimize_bl || self.isMaximized_bl)) {
                    var t;
                    t = FWDRLUtils.isApple ? 20 : 4, self.dif > t ? self.isClickedDisabled_bl || self.gotoNextItem() : self.dif < -t && (self.isClickedDisabled_bl || self.gotoPrevItem()), self.dif = 0, self.hasPointerEvent_bl ? (window.removeEventListener("pointerup", self.swipeUpHandler), window.removeEventListener("pointermove", self.swipeMoveHandler)) : (window.removeEventListener("touchend", self.swipeUpHandler), window.removeEventListener("touchmove", self.swipeMoveHandler))
                }
            }, self.addKeyboardSupport = function() {
                self.hasKeyboardSupport_bl || (self.hasKeyboardSupport_bl = !0, document.addEventListener ? (document.addEventListener("keydown", self.onKeyDownHandler), document.addEventListener("keyup", self.onKeyUpHandler)) : (document.attachEvent("onkeydown", self.onKeyDownHandler), document.attachEvent("onkeyup", self.onKeyUpHandler)))
            }, self.removeKeyboardSupport = function() {
                self.hasKeyboardSupport_bl && (self.hasKeyboardSupport_bl = !1, document.removeEventListener ? (document.removeEventListener("keydown", self.onKeyDownHandler), document.removeEventListener("keyup", self.onKeyUpHandler)) : (document.detachEvent("onkeydown", self.onKeyDownHandler), document.detachEvent("onkeyup", self.onKeyUpHandler)))
            }, self.onKeyDownHandler = function(e) {
                return document.removeEventListener ? document.removeEventListener("keydown", self.onKeyDownHandler) : document.detachEvent("onkeydown", self.onKeyDownHandler), 39 == e.keyCode ? (self.gotoNextItem(), e.preventDefault && e.preventDefault(), !1) : 37 == e.keyCode ? (self.gotoPrevItem(), e.preventDefault && e.preventDefault(), !1) : void 0
            }, this.onKeyUpHandler = function(e) {
                document.addEventListener ? document.addEventListener("keydown", self.onKeyDownHandler) : document.attachEvent("onkeydown", self.onKeyDownHandler)
            }, self.setDefaultSettings = function() {
                self.buttonsAlignment_str = self.DFButtonsAlignment_str, self.defaultItemW = self.DFDefaultItemW, self.defaultItemH = self.DFDefaultItemH, self.descriptionWindowPosition_str = self.DFDescriptionWindowPosition_str, self.desc_do && (self.desc_do.position_str = self.descriptionWindowPosition_str), self.descriptionAnimationType_str = self.DFDescriptionAnimationType_str, self.desc_do && (self.desc_do.descriptionAnimationType_str = self.descriptionAnimationType_str), self.backgroundColor_str = self.DFBackgroundColor_str, self.bk_do.getStyle().backgroundColor = self.backgroundColor_str, self.itemBorderColor_str = self.DFitemBorderColor_str, self.itemBorder_do && (self.itemBorder_do.getStyle().backgroundColor = self.DFitemBorderColor_str), self.spaceBetweenButtons = self.DFSpaceBetweenButtons, self.buttonsHideDelay = self.DFbuttonsHideDelay, self.hider && (self.hider.hideDelay = self.buttonsHideDelay), self.nextVideoOrAudioAutoPlay_bl = self.DFNextVideoOrAudioAutoPlay_bl, self.useAsModal_bl = self.DFUseAsModal_bl, self.slideShowAutoPlay_bl = self.DFSlideShowAutoPlay_bl, self.videoAutoPlay_bl = self.DFVideoAutoPlay_bl, self.audioAutoPlay_bl = self.DFAudioAutoPlay_bl, self.addKeyboardSupport_bl = self.DFSddKeyboardSupport_bl, self.showCloseButton_bl = self.DFShowCloseButton_bl, self.showShareButton_bl = self.DFShowFacebookButton_bl, self.defaultShowZoomButton_bl = self.DFShowZoomButton, self.showSlideShowButton_bl = self.DFShowSlideShowButton_bl, self.defaultShowSlideShowAnimation_bl = self.DFSefaultShowSlideShowAnimation_bl, self.defaultShowNextAndPrevButtons_bl = self.DFSefaultShowNextAndPrevButtons_bl, self.slideShowDelay = self.DFSlideShowDelay, self.tm && (self.tm.delay = self.slideShowDelay), self.slp_do && (self.slp_do.duration = self.slideShowDelay / 1e3), self.itemOffsetH = self.DFItemOffsetH, self.buttonsOffsetIn = self.DFButtonsOffsetIn, self.buttonsOffsetOut = self.DFButtonsOffsetOut, self.itemBorderSize = self.DFItemBorderSize, self.desc_do && (self.desc_do.margins = self.itemBorderSize), self.itemBorderRadius = self.DFItemBorderRadius, self.itemBorderRadius ? self.mainItemHolder_do.getStyle().borderRadius = self.itemBorderRadius + "px" : self.mainItemHolder_do.getStyle().borderRadius = "", self.backgroundOpacity = self.DFBackgroundOpacity, self.itemBoxShadow_str = self.DFItemBoxShadow_str, "none" == self.itemBoxShadow_str ? self.mainItemHolder_do.getStyle().boxShadow = "none" : self.mainItemHolder_do.getStyle().boxShadow = self.itemBoxShadow_str, self.itemBkColor_str = self.DFItemBkColor_str, self.itemBk_do.getStyle().backgroundColor = self.itemBkColor_str, self.defaultShowThumbnails_bl = self.DFDefaultThumbnails_bl, self.defaultShowThumbnailsHideOrShowButton_bl = self.DFDefaultShowThumbnailsHideOrShowButton_bl, self.showThumbnailsByDefault_bl = self.DFShowThumbnailsByDefault_bl, self.showThumbnailsOverlay_bl = self.DFShowThumbnailsOverlay_bl, self.thumbnailsManager_do && (self.thumbnailsManager_do.showThumbnailsOverlay_bl = self.showThumbnailsOverlay_bl), self.showThumbnailsSmallIcon_bl = self.DFShowThumbnailsSmallIcon_bl, self.thumbnailsManager_do && (self.thumbnailsManager_do.showThumbnailsSmallIcon_bl = self.showThumbnailsSmallIcon_bl), self.thumbnailsOffsetBottom = self.DFThumbnailsOffsetBottom, self.thumbnailH = self.DFThumbnailH, self.thumbnailsManager_do && (self.thumbnailsManager_do.thumbnailsOffsetBottom = self.thumbnailsOffsetBottom, self.thumbnailsManager_do.thumbnailH = self.thumbnailH - self.thumbnailsOffsetBottom, self.thumbnailsManager_do.stageHeight = self.thumbnailH), self.thumbnailsBorderSize = self.DFThumbnailsBorderSize, self.thumbnailsManager_do && (self.thumbnailsManager_do.thumbnailsBorderSize = self.thumbnailsBorderSize), self.thumbnailsBorderRadius = self.DFThumbnailsBorderRadius, self.thumbnailsManager_do && (self.thumbnailsManager_do.thumbnailsBorderRadius = self.thumbnailsBorderRadius), self.spaceBetweenThumbnailsAndItem = self.DFSpaceBetweenThumbnailsAndItem, self.spaceBetweenThumbnails = self.DFSpaceBetweenThumbnails, self.thumbnailsManager_do && (self.thumbnailsManager_do.spaceBetweenThumbnails = self.spaceBetweenThumbnails), self.thumbnailsOverlayOpacity = self.DFThumbnailsOverlayOpacity, self.thumbnailsManager_do && (self.thumbnailsManager_do.thumbnailsOverlayOpacity = self.thumbnailsOverlayOpacity), self.thumbnailsOverlayColor_str = self.DFThumbnailsOverlayColor_str, self.thumbnailsManager_do && (self.thumbnailsManager_do.thumbnailsOverlayColor_str = self.thumbnailsOverlayColor_str), self.thumbnailsBorderNormalColor_str = self.DFThumbnailsBorderNormalColor, self.thumbnailsManager_do && (self.thumbnailsManager_do.thumbnailsBorderNormalColor_str = self.thumbnailsBorderNormalColor_str), self.thumbnailsBorderSelectedColor_str = self.DFThumbnailsBorderSelectedColor_str, self.thumbnailsManager_do && (self.thumbnailsManager_do.thumbnailsBorderSelectedColor_str = self.thumbnailsBorderNormalColor_str), self.defaultHideDescriptionButtons_bl = self.DFDefaultHideDescriptionButtons_bl, self.defaultShowDescriptionByDefault_bl = self.DFDefaultShowDescriptionByDefault_bl, self.showDescription_bl = self.defaultShowDescriptionByDefault_bl, self.descriptionWindowBackgroundColor_str = self.DFDescriptionWindowBackgroundColor, self.desc_do && (self.desc_do.backgroundColor_str = self.descriptionWindowBackgroundColor_str, self.desc_do.bk_do.setBkColor(self.descriptionWindowBackgroundColor_str)), self.descriptionWindowBackgroundOpacity = self.DFDescriptionWindowBackgroundOpacity, self.desc_do && (self.desc_do.backgroundOpacity = self.descriptionWindowBackgroundOpacity, self.desc_do.bk_do.setAlpha(self.desc_do.backgroundOpacity)), self.data.videoControllerBackgroundColor_str = self.DFVideoControllerBackgroundColor_str, self.data.videoPosterBackgroundColor_str = self.DFVideoPosterBackgroundColor_str, self.data.videoPosterBackgroundColor_str = self.DFVideoPosterBackgroundColor_str, self.video_do && self.video_do.controller_do && (self.video_do.controller_do.mainHolder_do.getStyle().backgroundColor = self.data.videoControllerBackgroundColor_str, self.video_do.videoPoster_do.getStyle().backgroundColor = self.data.videoPosterBackgroundColor_str), self.data.audioControllerBackgroundColor_str = self.DFAudioControllerBackgroundColor_str, self.audio_do && self.audio_do.controller_do && (self.audio_do.controller_do.getStyle().backgroundColor = self.data.audioControllerBackgroundColor_str)
            }, self.setObjectPropsSettings = function(e) {
                var t;
                for (var s in e) switch (s) {
                    case "defaultItemWidth":
                        self.defaultItemW = e.defaultItemWidth || 640;
                        break;
                    case "defaultItemHeight":
                        self.defaultItemH = e.defaultItemHeight || 380;
                        break;
                    case "buttonsAlignment":
                        self.buttonsAlignment_str = e.buttonsAlignment || "in";
                        var t = "in" == self.buttonsAlignment_str || "out" == self.buttonsAlignment_str;
                        t || (self.buttonsAlignment_str = "in");
                        break;
                    case "descriptionWindowPosition":
                        self.descriptionWindowPosition_str = e.descriptionWindowPosition || "top", t = "top" == self.descriptionWindowPosition_str || "bottom" == self.descriptionWindowPosition_str, t || (self.descriptionWindowPosition_str = "top"), self.desc_do && (self.desc_do.position_str = self.descriptionWindowPosition_str);
                        break;
                    case "showDescriptionButton":
                        self.defaultHideDescriptionButtons_bl = e.showDescriptionButton, self.defaultHideDescriptionButtons_bl = "yes" == self.defaultHideDescriptionButtons_bl ? !0 : !1;
                        break;
                    case "showDescriptionByDefault":
                        self.defaultShowDescriptionByDefault_bl = e.showDescriptionByDefault, self.defaultShowDescriptionByDefault_bl = "yes" == self.defaultShowDescriptionByDefault_bl ? !0 : !1, self.showDescription_bl = self.defaultShowDescriptionByDefault_bl;
                        break;
                    case "descriptionWindowAnimationType":
                        self.descriptionAnimationType_str = e.descriptionWindowAnimationType || "motion", t = "motion" == self.descriptionAnimationType_str || "opacity" == self.descriptionAnimationType_str, t || (self.descriptionAnimationType_str = "motion"), self.desc_do && (self.desc_do.descriptionAnimationType_str = self.descriptionAnimationType_str);
                        break;
                    case "descriptionWindowBackgroundColor":
                        self.descriptionWindowBackgroundColor_str = e.descriptionWindowBackgroundColor || "#FF0000", self.desc_do && (self.desc_do.backgroundColor_str = self.descriptionWindowBackgroundColor_str, self.desc_do.bk_do.setBkColor(self.descriptionWindowBackgroundColor_str));
                        break;
                    case "descriptionWindowBackgroundOpacity":
                        self.descriptionWindowBackgroundOpacity = e.descriptionWindowBackgroundOpacity || 1, self.desc_do && (self.desc_do.backgroundOpacity = self.descriptionWindowBackgroundOpacity, self.desc_do.bk_do.setAlpha(self.desc_do.backgroundOpacity));
                        break;
                    case "backgroundColor":
                        self.backgroundColor_str = e.backgroundColor || "#000000", self.bk_do.getStyle().backgroundColor = self.backgroundColor_str;
                        break;
                    case "itemBorderColor":
                        self.itemBorderColor_str = e.itemBorderColor || "transparent", self.itemBorder_do && (self.itemBorder_do.getStyle().backgroundColor = self.itemBorderColor_str);
                        break;
                    case "spaceBetweenButtons":
                        self.spaceBetweenButtons = e.spaceBetweenButtons || 0;
                        break;
                    case "buttonsHideDelay":
                        self.buttonsHideDelay = e.buttonsHideDelay || 3, self.buttonsHideDelay *= 1e3, self.hider && (self.hider.hideDelay = self.buttonsHideDelay);
                        break;
                    case "useAsModal":
                        self.useAsModal_bl = e.useAsModal, self.useAsModal_bl = "yes" == self.useAsModal_bl ? !0 : !1;
                        break;
                    case "slideShowAutoPlay":
                        self.slideShowAutoPlay_bl = e.slideShowAutoPlay, self.slideShowAutoPlay_bl = "yes" == self.slideShowAutoPlay_bl ? !0 : !1;
                        break;
                    case "videoAutoPlay":
                        self.videoAutoPlay_bl = e.videoAutoPlay, self.videoAutoPlay_bl = "yes" == self.videoAutoPlay_bl ? !0 : !1, self.isMobile_bl && (self.videoAutoPlay_bl = !1);
                        break;
                    case "nextVideoOrAudioAutoPlay":
                        self.nextVideoOrAudioAutoPlay_bl = e.nextVideoOrAudioAutoPlay, self.nextVideoOrAudioAutoPlay_bl = "yes" == self.nextVideoOrAudioAutoPlay_bl ? !0 : !1, self.isMobile_bl && (self.nextVideoOrAudioAutoPlay_bl = !1);
                        break;
                    case "audioAutoPlay":
                        self.audioAutoPlay_bl = e.audioAutoPlay, self.audioAutoPlay_bl = "yes" == self.audioAutoPlay_bl ? !0 : !1, self.isMobile_bl && (self.audioAutoPlay_bl = !1);
                        break;
                    case "addKeyboardSupport":
                        self.addKeyboardSupport_bl = e.addKeyboardSupport, self.addKeyboardSupport_bl = "yes" == self.addKeyboardSupport_bl ? !0 : !1;
                        break;
                    case "showCloseButton":
                        self.showCloseButton_bl = e.showCloseButton, self.showCloseButton_bl = "no" == self.showCloseButton_bl ? !1 : !0;
                        break;
                    case "showFacebookButton":
                        self.showShareButton_bl = e.showShareButton, self.showShareButton_bl = "yes" == self.showShareButton_bl ? !0 : !1;
                        break;
                    case "showZoomButton":
                        self.defaultShowZoomButton_bl = e.showZoomButton, self.defaultShowZoomButton_bl = "no" == self.defaultShowZoomButton_bl ? !1 : !0;
                        break;
                    case "showSlideShowButton":
                        self.showSlideShowButton_bl = e.showSlideShowButton, self.showSlideShowButton_bl = "yes" == self.showSlideShowButton_bl ? !0 : !1;
                        break;
                    case "showSlideShowAnimation":
                        self.defaultShowSlideShowAnimation_bl = e.showSlideShowAnimation, self.defaultShowSlideShowAnimation_bl = "yes" == self.defaultShowSlideShowAnimation_bl ? !0 : !1;
                        break;
                    case "showNextAndPrevButtons":
                        self.defaultShowNextAndPrevButtons_bl = e.showNextAndPrevButtons, self.defaultShowNextAndPrevButtons_bl = "no" == self.defaultShowNextAndPrevButtons_bl ? !1 : !0, "no" == e.showNextAndPrevButtonsOnMobile && self.isMobile_bl && (self.defaultShowNextAndPrevButtons_bl = !1);
                        break;
                    case "slideShowDelay":
                        self.slideShowDelay = 1e3 * parseInt(e.slideShowDelay), self.slideShowDelay < .001 && (self.slideShowDelay = 1e3), self.tm && (self.tm.delay = self.slideShowDelay), self.slp_do && (self.slp_do.duration = self.slideShowDelay / 1e3);
                        break;
                    case "itemOffsetHeight":
                        self.itemOffsetH = e.itemOffsetHeight || 0;
                        break;
                    case "buttonsOffsetIn":
                        self.buttonsAlignment_str == FWDRL.BUTTONS_IN ? this.buttonsOffsetIn = e.buttonsOffsetIn || 0 : this.buttonsOffsetIn = e.buttonsOffsetOut || 0;
                        break;
                    case "buttonsOffsetOut":
                        self.buttonsAlignment_str == FWDRL.BUTTONS_IN ? self.buttonsOffsetOut = e.buttonsOffsetOut || 0 : self.buttonsOffsetOut = e.buttonsOffsetIn || 0;
                        break;
                    case "itemBorderSize":
                        self.itemBorderSize = e.itemBorderSize || 0, self.desc_do && (self.desc_do.margins = self.itemBorderSize);
                        break;
                    case "itemBorderRadius":
                        self.itemBorderRadius = e.itemBorderRadius || 0, self.itemBorderRadius ? self.mainItemHolder_do.getStyle().borderRadius = self.itemBorderRadius + "px" : self.mainItemHolder_do.getStyle().borderRadius = "";
                        break;
                    case "backgroundOpacity":
                        self.backgroundOpacity = e.backgroundOpacity || .8;
                        break;
                    case "itemBoxShadow":
                        self.itemBoxShadow_str = e.itemBoxShadow || "none", "none" == self.itemBoxShadow_str ? self.mainItemHolder_do.getStyle().boxShadow = "none" : self.mainItemHolder_do.getStyle().boxShadow = self.itemBoxShadow_str;
                        break;
                    case "itemBackgroundColor":
                        self.itemBkColor_str = e.itemBackgroundColor || "transparent", self.itemBk_do.getStyle().backgroundColor = self.itemBkColor_str;
                        break;
                    case "showThumbnails":
                        self.defaultShowThumbnails_bl = e.showThumbnails, self.defaultShowThumbnails_bl = "yes" == self.defaultShowThumbnails_bl ? !0 : !1;
                        break;
                    case "showThumbnailsHideOrShowButton":
                        self.defaultShowThumbnailsHideOrShowButton_bl = e.showThumbnailsHideOrShowButton, self.defaultShowThumbnailsHideOrShowButton_bl = "yes" == self.defaultShowThumbnailsHideOrShowButton_bl ? !0 : !1;
                        break;
                    case "showThumbnailsByDefault":
                        self.showThumbnailsByDefault_bl = e.showThumbnailsByDefault, self.showThumbnailsByDefault_bl = "yes" == self.showThumbnailsByDefault_bl ? !0 : !1;
                        break;
                    case "showThumbnailsOverlay":
                        self.showThumbnailsOverlay_bl = e.showThumbnailsOverlay, self.showThumbnailsOverlay_bl = "yes" == self.showThumbnailsOverlay_bl ? !0 : !1, self.thumbnailsManager_do && (self.thumbnailsManager_do.showThumbnailsOverlay_bl = self.showThumbnailsOverlay_bl);
                        break;
                    case "showThumbnailsSmallIcon":
                        self.showThumbnailsSmallIcon_bl = e.showThumbnailsSmallIcon, self.showThumbnailsSmallIcon_bl = "yes" == self.showThumbnailsSmallIcon_bl ? !0 : !1, self.thumbnailsManager_do && (self.thumbnailsManager_do.showThumbnailsSmallIcon_bl = self.showThumbnailsSmallIcon_bl);
                        break;
                    case "thumbnailsOffsetBottom":
                        self.thumbnailsOffsetBottom = e.thumbnailsOffsetBottom || 0, self.thumbnailsManager_do && (self.thumbnailsManager_do.thumbnailsOffsetBottom = self.thumbnailsOffsetBottom);
                        break;
                    case "thumbnailsImageHeight":
                        self.thumbnailH = e.thumbnailsImageHeight || 50;
                        break;
                    case "thumbnailsBorderSize":
                        self.thumbnailsBorderSize = e.thumbnailsBorderSize || 0, self.thumbnailsManager_do && (self.thumbnailsManager_do.thumbnailsBorderSize = self.thumbnailsBorderSize);
                        break;
                    case "thumbnailsBorderRadius":
                        self.thumbnailsBorderRadius = e.thumbnailsBorderRadius || 0, self.thumbnailsManager_do && (self.thumbnailsManager_do.thumbnailsBorderRadius = self.thumbnailsBorderRadius);
                        break;
                    case "spaceBetweenThumbnailsAndItem":
                        self.spaceBetweenThumbnailsAndItem = e.spaceBetweenThumbnailsAndItem || 0;
                        break;
                    case "spaceBetweenThumbnails":
                        self.spaceBetweenThumbnails = e.spaceBetweenThumbnails || 0, self.thumbnailsManager_do && (self.thumbnailsManager_do.spaceBetweenThumbnails = self.spaceBetweenThumbnails);
                        break;
                    case "thumbnailsOverlayOpacity":
                        self.thumbnailsOverlayOpacity = e.thumbnailsOverlayOpacity || 1, self.thumbnailsManager_do && (self.thumbnailsManager_do.thumbnailsOverlayOpacity = self.thumbnailsOverlayOpacity);
                        break;
                    case "thumbnailsOverlayColor":
                        self.thumbnailsOverlayColor_str = e.thumbnailsOverlayColor || "#FF0000", self.thumbnailsManager_do && (self.thumbnailsManager_do.thumbnailsOverlayColor_str = self.thumbnailsOverlayColor_str);
                        break;
                    case "thumbnailsBorderNormalColor":
                        self.thumbnailsBorderNormalColor_str = e.thumbnailsBorderNormalColor || "#FF0000", self.thumbnailsManager_do && (self.thumbnailsManager_do.thumbnailsBorderNormalColor_str = self.thumbnailsBorderNormalColor_str);
                        break;
                    case "thumbnailsBorderSelectedColor":
                        self.thumbnailsBorderSelectedColor_str = e.thumbnailsBorderSelectedColor || "#FF0000", self.thumbnailsManager_do && (self.thumbnailsManager_do.thumbnailsBorderSelectedColor_str = self.thumbnailsBorderNormalColor_str);
                        break;
                    case "videoControllerBackgroundColor":
                        self.data.videoControllerBackgroundColor_str = e.videoControllerBackgroundColor || "transparent", self.video_do && self.video_do.controller_do && (self.video_do.controller_do.mainHolder_do.getStyle().backgroundColor = self.data.videoControllerBackgroundColor_str);
                        break;
                    case "videoPosterBackgroundColor":
                        self.data.videoPosterBackgroundColor_str = e.videoPosterBackgroundColor || "transparent", self.video_do && (self.video_do.videoPoster_do.getStyle().backgroundColor = self.data.videoPosterBackgroundColor_str);
                        break;
                    case "audioControllerBackgroundColor":
                        self.data.audioControllerBackgroundColor_str = e.audioControllerBackgroundColor || "transparent", self.audio_do && self.audio_do.controller_do && (self.audio_do.controller_do.getStyle().backgroundColor = self.data.audioControllerBackgroundColor_str)
                }
                e.thumbnailsImageHeight && (self.thumbnailH += 2 * self.thumbnailsBorderSize + self.thumbnailsOffsetBottom, self.thumbnailsManager_do && (self.thumbnailsManager_do.thumbnailH = self.thumbnailH - self.thumbnailsOffsetBottom, self.thumbnailsManager_do.stageHeight = self.thumbnailH))
            }, FWDRL.addListener = function(e, t) {
                if (self.listeners) {
                    if (void 0 == e) throw Error("type_str is required.");
                    if ("object" == typeof e) throw Error("type_str must be of type_str String.");
                    if ("function" != typeof t) throw Error("listener must be of type_str Function.");
                    var s = {};
                    s.type_str = e, s.listener = t, s.target = self, self.listeners.events_ar.push(s)
                }
            }, FWDRL.dispatchEvent = function(e, t) {
                if (null != self.listeners) {
                    if (void 0 == e) throw Error("type_str is required.");
                    if ("object" == typeof e) throw Error("type_str must be of type_str String.");
                    for (var s = 0, i = self.listeners.events_ar.length; i > s; s++)
                        if (self.listeners.events_ar[s].target === self && self.listeners.events_ar[s].type_str === e) {
                            if (t)
                                for (var o in t) self.listeners.events_ar[s][o] = t[o];
                            self.listeners.events_ar[s].listener.call(self, self.listeners.events_ar[s])
                        }
                }
            }, FWDRL.removeListener = function(e, t) {
                if (void 0 == e) throw Error("type_str is required.");
                if ("object" == typeof e) throw Error("type_str must be of type_str String.");
                if ("function" != typeof t) throw Error("listener must be of type_str Function." + e);
                for (var s = 0, i = self.listeners.events_ar.length; i > s; s++)
                    if (self.listeners.events_ar[s].target === self && self.listeners.events_ar[s].type_str === e && self.listeners.events_ar[s].listener === t) {
                        self.listeners.events_ar.splice(s, 1);
                        break
                    }
            }, self.init()
        };
        FWDRL.setPrototype = function() {
            FWDRL.prototype = new FWDRVPEventDispatcher
        }, FWDRL.READY = "ready", FWDRL.SHOW_START = "showStart", FWDRL.SHOW_COMPLETE = "showComplete", FWDRL.HIDE_START = "hideStart", FWDRL.HIDE_COMPLETE = "hidecComplete", FWDRL.UPDATE = "update", FWDRL.BUTTONS_IN = "in", FWDRL.READY = "ready", FWDRL.ERROR = "error", FWDRL.IMAGE_TYPE = "image", FWDRL.VIDEO_TYPE = "video", FWDRL.AUDIO_TYPE = "audio", FWDRL.FLASH_TYPE = "flash", FWDRL.IFRAME_TYPE = "iframe", FWDRL.MAXIMIZE_COMPLETE = "maximizeComplete", window.FWDRL = FWDRL
    }(window), function() {
        var e = function(t, s, i, o, n) {
            var r = this;
            e.prototype;
            this.n1Img = t, this.s1Path_str = s, this.n2Img = i, this.s2Path_str = o, this.buttonsHolder_do, this.firstButton_do, this.n1_do, this.s1_do, this.secondButton_do, this.n2_do, this.s2_do, this.buttonWidth = r.n1Img.width, this.buttonHeight = r.n1Img.height, this.isSelectedState_bl = !1, this.currentState = 1, this.isDisabled_bl = !1, this.isMaximized_bl = !1, this.disptachMainEvent_bl = n, this.isDisabled_bl = !1, this.isHoverDisabled_bl = !1, this.isMobile_bl = FWDRLUtils.isMobile, this.hasPointerEvent_bl = FWDRLUtils.hasPointerEvent, this.allowToCreateSecondButton_bl = !r.isMobile_bl || r.hasPointerEvent_bl, r.init = function() {
                r.setButtonMode(!0), r.setWidth(r.buttonWidth), r.setHeight(r.buttonHeight), r.setupMainContainers(), r.secondButton_do.setX(-50)
            }, r.setupMainContainers = function() {
                if (r.setBackfaceVisibility(), r.hasTransform3d_bl = !1, r.hasTransform2d_bl = !1, r.buttonsHolder_do = new FWDRLDisplayObject("div"), r.buttonsHolder_do.setOverflow("visible"), r.buttonsHolder_do.setBackfaceVisibility(), r.buttonsHolder_do.hasTransform3d_bl = !1, r.buttonsHolder_do.hasTransform2d_bl = !1, r.firstButton_do = new FWDRLDisplayObject("div"), r.firstButton_do.setBackfaceVisibility(), r.firstButton_do.hasTransform3d_bl = !1, r.firstButton_do.hasTransform2d_bl = !1, r.addChild(r.firstButton_do), r.n1_do = new FWDRLDisplayObject("img"), r.n1_do.setScreen(r.n1Img), r.n1_do.setBackfaceVisibility(), r.n1_do.hasTransform3d_bl = !1, r.n1_do.hasTransform2d_bl = !1, r.firstButton_do.addChild(r.n1_do), r.allowToCreateSecondButton_bl) {
                    r.s1_do = new FWDRLDisplayObject("img");
                    var e = new Image;
                    e.src = r.s1Path_str, r.s1_do.setScreen(e), r.s1_do.setWidth(r.buttonWidth), r.s1_do.setHeight(r.buttonHeight), r.s1_do.setAlpha(0), r.s1_do.setBackfaceVisibility(), r.s1_do.hasTransform3d_bl = !1, r.s1_do.hasTransform2d_bl = !1, r.firstButton_do.addChild(r.s1_do)
                }
                if (r.firstButton_do.setWidth(r.buttonWidth), r.firstButton_do.setHeight(r.buttonHeight), r.secondButton_do = new FWDRLDisplayObject("div"), r.secondButton_do.setBackfaceVisibility(), r.secondButton_do.hasTransform3d_bl = !1, r.secondButton_do.hasTransform2d_bl = !1, r.addChild(r.secondButton_do), r.n2_do = new FWDRLDisplayObject("img"), r.n2_do.setScreen(r.n2Img), r.n2_do.setBackfaceVisibility(), r.n2_do.hasTransform3d_bl = !1, r.n2_do.hasTransform2d_bl = !1, r.secondButton_do.addChild(r.n2_do), r.allowToCreateSecondButton_bl) {
                    r.s2_do = new FWDRLDisplayObject("img");
                    var t = new Image;
                    t.src = r.s2Path_str, r.s2_do.setScreen(t), r.s2_do.setWidth(r.buttonWidth), r.s2_do.setHeight(r.buttonHeight), r.s2_do.setAlpha(0), r.s2_do.setBackfaceVisibility(), r.s2_do.hasTransform3d_bl = !1, r.s2_do.hasTransform2d_bl = !1, r.secondButton_do.addChild(r.s2_do)
                }
                r.secondButton_do.setWidth(r.buttonWidth), r.secondButton_do.setHeight(r.buttonHeight), r.buttonsHolder_do.addChild(r.secondButton_do), r.buttonsHolder_do.addChild(r.firstButton_do), r.addChild(r.buttonsHolder_do), r.isMobile_bl ? r.hasPointerEvent_bl ? (r.screen.addEventListener("pointerdown", r.onMouseUp), r.screen.addEventListener("pointerover", r.onMouseOver), r.screen.addEventListener("pointerout", r.onMouseOut)) : (r.screen.addEventListener("toustart", r.onDown), r.screen.addEventListener("touchend", r.onMouseUp)) : r.screen.addEventListener ? (r.screen.addEventListener("mouseover", r.onMouseOver), r.screen.addEventListener("mouseout", r.onMouseOut), r.screen.addEventListener("mouseup", r.onMouseUp)) : r.screen.attachEvent && (r.screen.attachEvent("onmouseover", r.onMouseOver), r.screen.attachEvent("onmouseout", r.onMouseOut), r.screen.attachEvent("onmousedown", r.onMouseUp))
            }, r.onMouseOver = function(t, s) {
                r.dispatchEvent(e.SHOW_TOOLTIP, {
                    e: t
                }), r.isDisabled_bl || r.isSelectedState_bl || r.isHoverDisabled_bl || t.pointerType && t.pointerType != t.MSPOINTER_TYPE_MOUSE && "mouse" != t.pointerType || (r.dispatchEvent(e.MOUSE_OVER, {
                    e: t
                }), r.setSelectedState(!0))
            }, r.onMouseOut = function(t) {
                r.isDisabled_bl || !r.isSelectedState_bl || r.isHoverDisabled_bl || t.pointerType && t.pointerType != t.MSPOINTER_TYPE_MOUSE && "mouse" != t.pointerType || (r.setNormalState(), r.dispatchEvent(e.MOUSE_OUT))
            }, r.onDown = function(e) {
                e.preventDefault && e.preventDefault()
            }, r.onMouseUp = function(t) {
                r.isDisabled_bl || 2 == t.button || (t.preventDefault && t.preventDefault(), r.isMobile_bl || r.onMouseOver(t, !1), r.disptachMainEvent_bl && r.dispatchEvent(e.MOUSE_UP, {
                    e: t
                }))
            }, r.toggleButton = function() {
                1 == r.currentState ? (r.firstButton_do.setX(-50), r.secondButton_do.setX(0), r.currentState = 0, r.dispatchEvent(e.FIRST_BUTTON_CLICK)) : (r.firstButton_do.setX(-50), r.secondButton_do.setX(0), r.currentState = 1, r.dispatchEvent(e.SECOND_BUTTON_CLICK))
            }, r.setButtonState = function(e) {
                1 == e ? (r.firstButton_do.setX(0), r.secondButton_do.setX(-50), r.currentState = 1) : (r.firstButton_do.setX(-50), r.secondButton_do.setX(0), r.currentState = 0)
            }, this.setNormalState = function() {
                (!r.isMobile_bl || r.hasPointerEvent_bl) && (r.isSelectedState_bl = !1, FWDRLTweenMax.killTweensOf(r.s1_do), FWDRLTweenMax.killTweensOf(r.s2_do), FWDRLTweenMax.to(r.s1_do, .5, {
                    alpha: 0,
                    ease: Expo.easeOut
                }), FWDRLTweenMax.to(r.s2_do, .5, {
                    alpha: 0,
                    ease: Expo.easeOut
                }))
            }, this.setSelectedState = function(e) {
                r.isSelectedState_bl = !0, FWDRLTweenMax.killTweensOf(r.s1_do), FWDRLTweenMax.killTweensOf(r.s2_do), FWDRLTweenMax.to(r.s1_do, .5, {
                    alpha: 1,
                    delay: .1,
                    ease: Expo.easeOut
                }), FWDRLTweenMax.to(r.s2_do, .5, {
                    alpha: 1,
                    delay: .1,
                    ease: Expo.easeOut
                })
            }, this.disable = function() {
                r.isDisabled_bl = !0, r.setButtonMode(!1), FWDRLTweenMax.to(r, .6, {
                    alpha: .4
                })
            }, this.enable = function() {
                r.isDisabled_bl = !1, r.setButtonMode(!0), FWDRLTweenMax.to(r, .6, {
                    alpha: 1
                })
            }, this.disableHover = function() {
                r.isHoverDisabled_bl = !0, r.setSelectedState()
            }, this.enableHover = function() {
                r.isHoverDisabled_bl = !1
            }, r.init()
        };
        e.setPrototype = function() {
            e.prototype = new FWDRLDisplayObject("div")
        }, e.FIRST_BUTTON_CLICK = "onFirstClick", e.SECOND_BUTTON_CLICK = "secondButtonOnClick", e.SHOW_TOOLTIP = "showToolTip", e.MOUSE_OVER = "onMouseOver", e.MOUSE_OUT = "onMouseOut", e.MOUSE_UP = "onMouseUp", e.CLICK = "onClick", e.prototype = null, window.FWDRLComplexButton = e
    }(window), function(e) {
        var t = function() {
            var s = this;
            t.prototype;
            this.main_do = null, this.init = function() {
                this.setupScreen(), e.onerror = this.showError, this.screen.style.zIndex = 1e20, setTimeout(this.addConsoleToDom, 100), setInterval(this.position, 100)
            }, this.position = function() {
                var e = FWDRLUtils.getScrollOffsets();
                s.setX(e.x), s.setY(e.y + 30)
            }, this.addConsoleToDom = function() {
                -1 != navigator.userAgent.toLowerCase().indexOf("msie 7") ? document.getElementsByTagName("body")[0].appendChild(s.screen) : document.documentElement.appendChild(s.screen)
            }, this.setupScreen = function() {
                this.main_do = new FWDRLDisplayObject("div", "absolute"), this.main_do.setOverflow("auto"), this.main_do.setWidth(300), this.main_do.setHeight(200), this.setWidth(300), this.setHeight(200), this.main_do.setBkColor("#FFFFFF"), this.addChild(this.main_do)
            }, this.showError = function(e, t, i) {
                var o = s.main_do.getInnerHTML() + "<br>JavaScript error: " + e + " on line " + i + " for " + t;
                s.main_do.setInnerHTML(o), s.main_do.screen.scrollTop = s.main_do.screen.scrollHeight
            }, this.log = function(e) {
                var t = s.main_do.getInnerHTML() + "<br>" + e;
                s.main_do.setInnerHTML(t), s.main_do.getScreen().scrollTop = 1e4
            }, this.init()
        };
        t.setPrototype = function() {
            t.prototype = new FWDRLDisplayObject("div", "absolute")
        }, t.prototype = null, e.FWDRLConsole = t
    }(window), function() {
        var e = function(e, t) {
            var s = this;
            this.parent = e, this.url = "http://www.webdesign-flash.ro", this.menu_do = null, this.normalMenu_do = null, this.selectedMenu_do = null, this.over_do = null, this.isDisabled_bl = !1, this.init = function() {
                s.updateParent(s.parent)
            }, this.updateParent = function(e) {
                s.parent && (s.parent.screen.addEventListener ? s.parent.screen.removeEventListener("contextmenu", this.contextMenuHandler) : s.parent.screen.detachEvent("oncontextmenu", this.contextMenuHandler)), s.parent = e, s.parent.screen.addEventListener ? s.parent.screen.addEventListener("contextmenu", this.contextMenuHandler) : s.parent.screen.attachEvent("oncontextmenu", this.contextMenuHandler)
            }, this.contextMenuHandler = function(e) {
                if (!s.isDisabled_bl) {
                    if ("disabled" == t) return e.preventDefault ? void e.preventDefault() : !1;
                    if ("default" != t && -1 != s.url.indexOf("sh.r")) return s.setupMenus(), s.parent.addChild(s.menu_do), s.menu_do.setVisible(!0), s.positionButtons(e), window.addEventListener ? window.addEventListener("mousedown", s.contextMenuWindowOnMouseDownHandler) : document.documentElement.attachEvent("onclick", s.contextMenuWindowOnMouseDownHandler), e.preventDefault ? void e.preventDefault() : !1
                }
            }, this.contextMenuWindowOnMouseDownHandler = function(e) {
                var t = FWDRLUtils.getViewportMouseCoordinates(e),
                    i = t.screenX,
                    o = t.screenY;
                FWDRLUtils.hitTest(s.menu_do.screen, i, o) || (window.removeEventListener ? window.removeEventListener("mousedown", s.contextMenuWindowOnMouseDownHandler) : document.documentElement.detachEvent("onclick", s.contextMenuWindowOnMouseDownHandler), s.menu_do.setX(-500))
            }, this.setupMenus = function() {
                this.menu_do || (this.menu_do = new FWDRLDisplayObject("div"), s.menu_do.setX(-500), this.menu_do.getStyle().width = "100%", this.normalMenu_do = new FWDRLDisplayObject("div"), this.normalMenu_do.getStyle().fontFamily = "Arial, Helvetica, sans-serif", this.normalMenu_do.getStyle().padding = "4px", this.normalMenu_do.getStyle().fontSize = "12px", this.normalMenu_do.getStyle().color = "#000000", this.normalMenu_do.setInnerHTML("&#0169; made by FWD"), this.normalMenu_do.setBkColor("#FFFFFF"), this.selectedMenu_do = new FWDRLDisplayObject("div"), this.selectedMenu_do.getStyle().fontFamily = "Arial, Helvetica, sans-serif", this.selectedMenu_do.getStyle().padding = "4px", this.selectedMenu_do.getStyle().fontSize = "12px", this.selectedMenu_do.getStyle().color = "#FFFFFF", this.selectedMenu_do.setInnerHTML("&#0169; made by FWD"), this.selectedMenu_do.setBkColor("#000000"), this.selectedMenu_do.setAlpha(0), this.over_do = new FWDRLDisplayObject("div"), this.over_do.setBkColor("#FF0000"), this.over_do.setAlpha(0), this.menu_do.addChild(this.normalMenu_do), this.menu_do.addChild(this.selectedMenu_do), this.menu_do.addChild(this.over_do), this.parent.addChild(this.menu_do), this.over_do.setWidth(this.selectedMenu_do.getWidth()), this.menu_do.setWidth(this.selectedMenu_do.getWidth()), this.over_do.setHeight(this.selectedMenu_do.getHeight()), this.menu_do.setHeight(this.selectedMenu_do.getHeight()), this.menu_do.setVisible(!1), this.menu_do.setButtonMode(!0), this.menu_do.screen.onmouseover = this.mouseOverHandler, this.menu_do.screen.onmouseout = this.mouseOutHandler, this.menu_do.screen.onclick = this.onClickHandler)
            }, this.mouseOverHandler = function() {
                -1 == s.url.indexOf("w.we") && (s.menu_do.visible = !1), FWDRLTweenMax.to(s.normalMenu_do, .8, {
                    alpha: 0,
                    ease: Expo.easeOut
                }), FWDRLTweenMax.to(s.selectedMenu_do, .8, {
                    alpha: 1,
                    ease: Expo.easeOut
                })
            }, this.mouseOutHandler = function() {
                FWDRLTweenMax.to(s.normalMenu_do, .8, {
                    alpha: 1,
                    ease: Expo.easeOut
                }), FWDRLTweenMax.to(s.selectedMenu_do, .8, {
                    alpha: 0,
                    ease: Expo.easeOut
                })
            }, this.onClickHandler = function() {
                window.open(s.url, "_blank")
            }, this.positionButtons = function(e) {
                var t = FWDRLUtils.getViewportMouseCoordinates(e),
                    i = t.screenX - s.parent.getGlobalX(),
                    o = t.screenY - s.parent.getGlobalY(),
                    n = i + 2,
                    r = o + 2;
                n > s.parent.getWidth() - s.menu_do.getWidth() - 2 && (n = i - s.menu_do.getWidth() - 2), r > s.parent.getHeight() - s.menu_do.getHeight() - 2 && (r = o - s.menu_do.getHeight() - 2), s.menu_do.setX(n), s.menu_do.setY(r)
            }, this.disable = function() {
                s.isDisabled_bl = !0
            }, this.enable = function() {
                s.isDisabled_bl = !1
            }, this.init()
        };
        e.prototype = null, window.FWDRLContextMenu = e
    }(window), function(e) {
        var t = function(s, i, o) {
            var n = this;
            t.prototype;
            this.xhr = null, this.emailXHR = null, this.playlist_ar = null, this.props_obj = s, this.skinPaths_ar = [], this.images_ar = [], this.cats_ar = [], this.lightboxSkinPath_str = null, this.facebookAppId_str = null, this.wrningIconPath_str = null, this.countLoadedSkinImages = 0, this.showLoadPlaylistErrorId_to, this.loadPreloaderId_to, this.allowToChangeVolume_bl = !0, this.autoPlay_bl = !1, this.showFacebookButton_bl = !1, this.isDataLoaded_bl = !1, this.useDeepLinking_bl = !1, this.isMobile_bl = FWDRLUtils.isMobile, this.hasPointerEvent_bl = FWDRLUtils.hasPointerEvent, n.init = function() {
                n.parseProperties()
            }, n.parseProperties = function() {
                if (n.mainFolderPath_str = n.props_obj.mainFolderPath, !n.mainFolderPath_str) return void setTimeout(function() {
                    null != n && (errorMessage_str = "The <font color='#FF0000'>mainFolderPath</font> property is not defined in the constructor function!", n.dispatchEvent(t.LOAD_ERROR, {
                        text: errorMessage_str
                    }))
                }, 100);
                if (n.mainFolderPath_str.lastIndexOf("/") + 1 != n.mainFolderPath_str.length && (n.mainFolderPath_str += "/"), n.lightboxSkinPath_str = n.props_obj.skinPath, !n.lightboxSkinPath_str) return void setTimeout(function() {
                    null != n && (errorMessage_str = "The <font color='#FF0000'>skinPath</font> property is not defined in the constructor function!", n.dispatchEvent(t.LOAD_ERROR, {
                        text: errorMessage_str
                    }))
                }, 100);
                if (n.lightboxSkinPath_str.lastIndexOf("/") + 1 != n.lightboxSkinPath_str.length && (n.lightboxSkinPath_str += "/"), n.flashPath_str = n.mainFolderPath_str + "video_player.swf", n.audioFlashPath_str = n.mainFolderPath_str + "audio_player.swf", n.lightboxSkinPath_str = n.mainFolderPath_str + n.lightboxSkinPath_str, n.videoSkinPath_str = n.lightboxSkinPath_str + "video_player_skin/", n.audioSkinPath_str = n.lightboxSkinPath_str + "audio_player_skin/", n.wrningIconPath_str = n.lightboxSkinPath_str + "main_skin/warning.png", n.rightClickContextMenu_str = n.props_obj.rightClickContextMenu || "developer", test = "developer" == n.rightClickContextMenu_str || "disabled" == n.rightClickContextMenu_str || "default" == n.rightClickContextMenu_str, test || (n.rightClickContextMenu_str = "developer"), n.autoPlay_bl = n.props_obj.autoPlay, n.autoPlay_bl = "yes" == n.autoPlay_bl ? !0 : !1, n.useVideo_bl = "no" == n.props_obj.useVideo ? !1 : !0, n.DFUseVideo_bl = n.useVideo_bl, !FWDRLEVPlayer.hasHTML5Video && FWDRLUtils.isLocal && (n.useVideo_bl = !1), n.useAudio_bl = "no" == n.props_obj.useAudio ? !1 : !0, n.DFUseAudio_bl = n.useAudio_bl, !FWDRLEAP.hasHTML5Audio && FWDRLUtils.isLocal && (n.useAudio_bl = !1), n.timeColor_str = n.props_obj.timeColor || "#FF0000", n.videoPosterBackgroundColor_str = n.props_obj.videoPosterBackgroundColor || "transparent", n.videoControllerBackgroundColor_str = n.props_obj.videoControllerBackgroundColor || "transparent", n.audioControllerBackgroundColor_str = n.props_obj.audioControllerBackgroundColor || "transparent", n.volume = 1, n.controllerHeight = n.props_obj.videoControllerHeight || 50, n.startSpaceBetweenButtons = n.props_obj.startSpaceBetweenButtons || 0, n.controllerHideDelay = n.props_obj.videoControllerHideDelay || 2, n.controllerHideDelay *= 1e3, n.vdSpaceBetweenButtons = n.props_obj.vdSpaceBetweenButtons || 0, n.scrubbersOffsetWidth = n.props_obj.scrubbersOffsetWidth || 0, n.volumeScrubberOffsetRightWidth = n.props_obj.volumeScrubberOffsetRightWidth || 0, n.timeOffsetLeftWidth = n.props_obj.timeOffsetLeftWidth || 0, n.timeOffsetRightWidth = n.props_obj.timeOffsetRightWidth || 0, n.timeOffsetTop = n.props_obj.timeOffsetTop || 0, n.logoMargins = n.props_obj.logoMargins || 0, n.mainScrubberOffestTop = n.props_obj.mainScrubberOffestTop || 0, n.volumeScrubberWidth = n.props_obj.volumeScrubberWidth || 10, n.audioScrubbersOffestTotalWidth = n.props_obj.audioScrubbersOffestTotalWidth || 0, n.audioControllerHeight = n.props_obj.audioControllerHeight || 40, n.volumeScrubberWidth > 200 && (n.volumeScrubberWidth = 200), n.isMobile_bl && (n.allowToChangeVolume_bl = !1), n.addKeyboardSupport_bl = n.props_obj.addVideoKeyboardSupport, n.addKeyboardSupport_bl = "no" == n.addKeyboardSupport_bl ? !1 : !0, n.videoAutoPlay_bl = n.props_obj.videoAutoPlay, n.videoAutoPlay_bl = "yes" == n.videoAutoPlay_bl ? !0 : !1, FWDRLUtils.isMobile && (n.videoAutoPlay_bl = !1), n.audioAutoPlay_bl = n.props_obj.audioAutoPlay, n.audioAutoPlay_bl = "yes" == n.audioAutoPlay_bl ? !0 : !1, FWDRLUtils.isMobile && (n.audioAutoPlay_bl = !1), n.videoLoop_bl = n.props_obj.videoLoop, n.videoLoop_bl = "yes" == n.videoLoop_bl ? !0 : !1, n.audioLoop_bl = n.props_obj.audioLoop, n.audioLoop_bl = "yes" == n.audioLoop_bl ? !0 : !1, n.showLogo_bl = n.props_obj.showLogo, n.showLogo_bl = "yes" == n.showLogo_bl ? !0 : !1, n.hideLogoWithController_bl = n.props_obj.hideLogoWithController, n.hideLogoWithController_bl = "yes" == n.hideLogoWithController_bl ? !0 : !1, n.showPoster_bl = n.props_obj.showPoster, n.showPoster_bl = "yes" == n.showPoster_bl ? !0 : !1, n.showVolumeScrubber_bl = n.props_obj.showVolumeScrubber, n.showVolumeScrubber_bl = "no" == n.showVolumeScrubber_bl ? !1 : !0, n.showVolumeButton_bl = n.props_obj.showVolumeButton, n.showVolumeButton_bl = "no" == n.showVolumeButton_bl ? !1 : !0, n.showControllerWhenVideoIsStopped_bl = !0, n.showTime_bl = n.props_obj.showTime, n.showTime_bl = "no" == n.showTime_bl ? !1 : !0, n.videoShowFullScreenButton_bl = n.props_obj.videoShowFullScreenButton, n.videoShowFullScreenButton_bl = "no" == n.videoShowFullScreenButton_bl ? !1 : !0, n.showShareButton_bl = n.props_obj.showShareButton, n.showShareButton_bl = "yes" == n.showShareButton_bl ? !0 : !1, n.mainPreloader_img = new Image, n.mainPreloader_img.onerror = n.onSkinLoadErrorHandler, n.mainPreloader_img.onload = n.onPreloaderLoadHandler, n.mainPreloader_img.src = n.lightboxSkinPath_str + "main_skin/preloader.png", n.skinPaths_ar = [{
                        img: n.playN_img = new Image,
                        src: n.lightboxSkinPath_str + "main_skin/play-button.png"
                    }, {
                        img: n.nextN_img = new Image,
                        src: n.lightboxSkinPath_str + "main_skin/next-button.png"
                    }, {
                        img: n.prevN_img = new Image,
                        src: n.lightboxSkinPath_str + "main_skin/prev-button.png"
                    }, {
                        img: n.closeN_img = new Image,
                        src: n.lightboxSkinPath_str + "main_skin/close-button.png"
                    }, {
                        img: n.infoOpenN_img = new Image,
                        src: n.lightboxSkinPath_str + "main_skin/info-open-button.png"
                    }, {
                        img: n.infoCloseN_img = new Image,
                        src: n.lightboxSkinPath_str + "main_skin/info-close-button.png"
                    }, {
                        img: n.maximizeN_img = new Image,
                        src: n.lightboxSkinPath_str + "main_skin/maximize-button.png"
                    }, {
                        img: n.minimizeN_img = new Image,
                        src: n.lightboxSkinPath_str + "main_skin/minimize-button.png"
                    }, {
                        img: n.playN_img = new Image,
                        src: n.lightboxSkinPath_str + "main_skin/play-button.png"
                    }, {
                        img: n.pauseN_img = new Image,
                        src: n.lightboxSkinPath_str + "main_skin/pause-button.png"
                    }, {
                        img: n.hideThumbnailsN_img = new Image,
                        src: n.lightboxSkinPath_str + "main_skin/hide-thumbnails-button.png"
                    }, {
                        img: n.showThumbnailsN_img = new Image,
                        src: n.lightboxSkinPath_str + "main_skin/show-thumbnails-button.png"
                    }, {
                        img: n.slideSwowImage_img = new Image,
                        src: n.lightboxSkinPath_str + "main_skin/slideshow-preloader.png"
                    }], n.showShareButton_bl && n.skinPaths_ar.push({
                        img: n.showShareImage_img = new Image,
                        src: n.lightboxSkinPath_str + "main_skin/show-share-button.png"
                    }, {
                        img: n.hideShareImage_img = new Image,
                        src: n.lightboxSkinPath_str + "main_skin/hide-share-button.png"
                    }, {
                        img: n.facebookN_img = new Image,
                        src: n.lightboxSkinPath_str + "main_skin/facebook-button.png"
                    }, {
                        img: n.twitterN_img = new Image,
                        src: n.lightboxSkinPath_str + "main_skin/twitter-button.png"
                    }, {
                        img: n.googleN_img = new Image,
                        src: n.lightboxSkinPath_str + "main_skin/google-plus-button.png"
                    }), n.prevSPath_str = n.lightboxSkinPath_str + "main_skin/prev-button-over.png", n.nextSPath_str = n.lightboxSkinPath_str + "main_skin/next-button-over.png", n.closeSPath_str = n.lightboxSkinPath_str + "main_skin/close-button-over.png", n.infoOpenS_str = n.lightboxSkinPath_str + "main_skin/info-open-button-over.png", n.infoCloseS_str = n.lightboxSkinPath_str + "main_skin/info-close-button-over.png", n.maximizeSPath_str = n.lightboxSkinPath_str + "main_skin/maximize-button-over.png", n.minimizeSPath_str = n.lightboxSkinPath_str + "main_skin/minimize-button-over.png", n.playS_str = n.lightboxSkinPath_str + "main_skin/play-button-over.png", n.pauseS_str = n.lightboxSkinPath_str + "main_skin/pause-button-over.png", n.hideThumbnailsSPath_str = n.lightboxSkinPath_str + "main_skin/hide-thumbnails-button-over.png", n.showThumbnailsSPath_str = n.lightboxSkinPath_str + "main_skin/show-thumbnails-button-over.png", n.showShareImageSPath_str = n.lightboxSkinPath_str + "main_skin/show-share-button-over.png", n.hideShareImageSPath_str = n.lightboxSkinPath_str + "main_skin/hide-share-button-over.png", n.facebookImageSPath_str = n.lightboxSkinPath_str + "main_skin/facebook-button-over.png", n.twitterImageSPath_str = n.lightboxSkinPath_str + "main_skin/twitter-button-over.png", n.googleImageSPath_str = n.lightboxSkinPath_str + "main_skin/google-plus-button-over.png", n.imageIconPath_str = n.lightboxSkinPath_str + "main_skin/image-icon.png", n.flashIconPath_str = n.lightboxSkinPath_str + "main_skin/flash-icon.png", n.audioIconPath_str = n.lightboxSkinPath_str + "main_skin/audio-icon.png", n.videoIconPath_str = n.lightboxSkinPath_str + "main_skin/video-icon.png", n.vimeoIconPath_str = n.lightboxSkinPath_str + "main_skin/vimeo-icon.png", n.youtubeIconPath_str = n.lightboxSkinPath_str + "main_skin/youtube-icon.png", n.mapsIconPath_str = n.lightboxSkinPath_str + "main_skin/maps-icon.png", n.ajaxIconPath_str = n.lightboxSkinPath_str + "main_skin/ajax-icon.png", n.htmlIconPath_str = n.lightboxSkinPath_str + "main_skin/html-icon.png", n.iframeIconPath_str = n.lightboxSkinPath_str + "main_skin/iframe-icon.png", n.useVideo_bl && (n.skinPaths_ar.push({
                            img: n.videoMainPreloader_img = new Image,
                            src: n.videoSkinPath_str + "preloader.png"
                        }, {
                            img: n.videoPlayN_img = new Image,
                            src: n.videoSkinPath_str + "play-button.png"
                        }, {
                            img: n.videoPauseN_img = new Image,
                            src: n.videoSkinPath_str + "pause-button.png"
                        }, {
                            img: n.videoMainScrubberBkLeft_img = new Image,
                            src: n.videoSkinPath_str + "scrubber-left-background.png"
                        }, {
                            img: n.videoMainScrubberDragLeft_img = new Image,
                            src: n.videoSkinPath_str + "scrubber-left-drag.png"
                        }, {
                            img: n.videoMainScrubberLine_img = new Image,
                            src: n.videoSkinPath_str + "scrubber-line.png"
                        }, {
                            img: n.videoVolumeN_img = new Image,
                            src: n.videoSkinPath_str + "volume-button.png"
                        }, {
                            img: n.videoProgressLeft_img = new Image,
                            src: n.videoSkinPath_str + "progress-left.png"
                        }, {
                            img: n.videoLargePlayN_img = new Image,
                            src: n.videoSkinPath_str + "large-play-button.png"
                        }, {
                            img: n.videoFullScreenN_img = new Image,
                            src: n.videoSkinPath_str + "full-screen-button.png"
                        }, {
                            img: n.videoNormalScreenN_img = new Image,
                            src: n.videoSkinPath_str + "normal-screen-button.png"
                        }), n.videoPlaySPath_str = n.videoSkinPath_str + "play-button-over.png", n.videoPauseSPath_str = n.videoSkinPath_str + "pause-button-over.png", n.videoBkMiddlePath_str = n.videoSkinPath_str + "controller-middle.png", n.videoMainScrubberBkRightPath_str = n.videoSkinPath_str + "scrubber-right-background.png", n.videoMainScrubberBkMiddlePath_str = n.videoSkinPath_str + "scrubber-middle-background.png", n.videoMainScrubberDragMiddlePath_str = n.videoSkinPath_str + "scrubber-middle-drag.png", n.videoVolumeScrubberBkRightPath_str = n.videoSkinPath_str + "scrubber-right-background.png", n.videoVolumeScrubberBkMiddlePath_str = n.videoSkinPath_str + "scrubber-middle-background.png", n.videoVolumeScrubberDragMiddlePath_str = n.videoSkinPath_str + "scrubber-middle-drag.png", n.videoVolumeSPath_str = n.videoSkinPath_str + "volume-button-over.png", n.videoVolumeDPath_str = n.videoSkinPath_str + "volume-button-disabled.png", n.videoLargePlayS_str = n.videoSkinPath_str + "large-play-button-over.png", n.videoFullScreenSPath_str = n.videoSkinPath_str + "full-screen-button-over.png", n.videoNormalScreenSPath_str = n.videoSkinPath_str + "normal-screen-button-over.png",
                        n.videoProgressMiddlePath_str = n.videoSkinPath_str + "progress-middle.png"), n.useAudio_bl) {
                    n.skinPaths_ar.push({
                        img: n.audioPlayN_img = new Image,
                        src: n.audioSkinPath_str + "play-button.png"
                    }, {
                        img: n.audioPauseN_img = new Image,
                        src: n.audioSkinPath_str + "pause-button.png"
                    }, {
                        img: n.audioMainScrubberBkLeft_img = new Image,
                        src: n.audioSkinPath_str + "scrubber-left-background.png"
                    }, {
                        img: n.mainScrubberBkRight_img = new Image,
                        src: n.audioSkinPath_str + "scrubber-right-background.png"
                    }, {
                        img: n.mainScrubberDragLeft_img = new Image,
                        src: n.audioSkinPath_str + "scrubber-left-drag.png"
                    }, {
                        img: n.mainScrubberLine_img = new Image,
                        src: n.audioSkinPath_str + "scrubber-line.png"
                    }, {
                        img: n.volumeN_img = new Image,
                        src: n.audioSkinPath_str + "volume-button.png"
                    }, {
                        img: n.progressLeft_img = new Image,
                        src: n.audioSkinPath_str + "progress-left.png"
                    }), n.audioPlaySPath_str = n.audioSkinPath_str + "play-button-over.png", n.audioPauseSPath_str = n.audioSkinPath_str + "pause-button-over.png";
                    n.audioSkinPath_str + "scrubber-left-background.png";
                    n.mainScrubberBkRightPath_str = n.audioSkinPath_str + "scrubber-right-background.png", n.mainScrubberBkMiddlePath_str = n.audioSkinPath_str + "scrubber-middle-background.png", n.mainScrubberDragMiddlePath_str = n.audioSkinPath_str + "scrubber-middle-drag.png", n.volumeScrubberBkLeftPath_str = n.audioSkinPath_str + "scrubber-left-background.png", n.volumeScrubberBkRightPath_str = n.audioSkinPath_str + "scrubber-right-background.png", n.volumeScrubberDragLeftPath_str = n.audioSkinPath_str + "scrubber-left-drag.png", n.volumeScrubberLinePath_str = n.audioSkinPath_str + "scrubber-line.png", n.volumeScrubberBkMiddlePath_str = n.audioSkinPath_str + "scrubber-middle-background.png", n.volumeScrubberDragMiddlePath_str = n.audioSkinPath_str + "scrubber-middle-drag.png", n.volumeSPath_str = n.audioSkinPath_str + "volume-button-over.png", n.volumeDPath_str = n.audioSkinPath_str + "volume-button-disabled.png", n.progressMiddlePath_str = n.audioSkinPath_str + "progress-middle.png"
                }
                n.totalGraphics = n.skinPaths_ar.length, n.loadSkin()
            }, this.onPreloaderLoadHandler = function() {
                setTimeout(function() {
                    n.dispatchEvent(t.PRELOADER_LOAD_DONE)
                }, 50)
            }, n.loadSkin = function() {
                for (var e, t, s = 0; s < n.totalGraphics; s++) e = n.skinPaths_ar[s].img, t = n.skinPaths_ar[s].src, e.onload = n.onSkinLoadHandler, e.onerror = n.onSkinLoadErrorHandler, e.src = t
            }, this.onSkinLoadHandler = function(e) {
                n.countLoadedSkinImages++, n.countLoadedSkinImages == n.totalGraphics && setTimeout(function() {
                    n.dispatchEvent(t.SKIN_LOAD_COMPLETE)
                }, 50)
            }, n.onSkinLoadErrorHandler = function(s) {
                FWDRLUtils.isIEAndLessThen9 ? message = "Graphics image not found!" : message = "The skin icon with label <font color='#FF0000'>" + s.target.src + "</font> can't be loaded.", e.console && console.log(s);
                var i = {
                    text: message
                };
                setTimeout(function() {
                    n.dispatchEvent(t.LOAD_ERROR, i)
                }, 100)
            }, n.showPropertyError = function(e) {
                setTimeout(function() {
                    n.dispatchEvent(t.LOAD_ERROR, {
                        text: "The property called <font color='#FF0000'>" + e + "</font> is not defined."
                    })
                }, 100)
            }, n.init()
        };
        t.setPrototype = function() {
            t.prototype = new FWDRLEventDispatcher
        }, t.prototype = null, t.PRELOADER_LOAD_DONE = "onPreloaderLoadDone", t.LOAD_DONE = "onLoadDone", t.LOAD_ERROR = "onLoadError", t.IMAGE_LOADED = "onImageLoaded", t.SKIN_LOAD_COMPLETE = "onSkinLoadComplete", t.SKIN_PROGRESS = "onSkinProgress", t.IMAGES_PROGRESS = "onImagesPogress", t.PLAYLIST_LOAD_COMPLETE = "onPlaylistLoadComplete", e.FWDRLData = t
    }(window), function(e) {
        var t = function(e, s, i, o, n, r) {
            var l = this;
            t.prototype;
            this.main_do, this.text_do, this.bk_do, this.descriptionAnimationType_str = s, this.backgroundColor_str = n, this.position_str = i, this.backgroundOpacity = r, this.margins = o, this.finalW = 0, this.finalH = 0, this.finalY = 0, this.resizeWithDelayId_to, this.isShowedFirstTime_bl = !1, this.isShowed_bl = !1, this.isHiddenDone_bl = !0, l.init = function() {
                l.setupMainContainers()
            }, l.setupMainContainers = function() {
                l.main_do = new FWDRLDisplayObject("div"), l.main_do.getStyle().width = "100%", l.main_do.getStyle().height = "100%", l.main_do.setBackfaceVisibility(), !l.isMobile_bl && FWDRLUtils.isChrome && (l.main_do.hasTransform3d_bl = !1, l.main_do.hasTransform2d_bl = !1), l.text_do = new FWDRLDisplayObject("div"), l.text_do.getStyle().fontSmoothing = "antialiased", l.text_do.getStyle().webkitFontSmoothing = "antialiased", l.text_do.getStyle().textRendering = "optimizeLegibility", l.text_do.getStyle().width = "100%", l.text_do.setBackfaceVisibility(), l.text_do.hasTransform3d_bl = !1, l.text_do.hasTransform2d_bl = !1, l.bk_do = new FWDRLDisplayObject("div"), l.bk_do.setResizableSizeAfterParent(), l.bk_do.setBkColor(l.backgroundColor_str), l.bk_do.setAlpha(l.backgroundOpacity), l.bk_do.setBackfaceVisibility(), !l.isMobile_bl && FWDRLUtils.isChrome && (l.bk_do.hasTransform3d_bl = !1, l.bk_do.hasTransform2d_bl = !1), l.main_do.addChild(l.bk_do), l.main_do.addChild(l.text_do), l.addChild(l.main_do)
            }, l.setText = function(e) {
                l.text_do.setInnerHTML(e), l.resizeAndPosition()
            }, l.resizeAndPosition = function(e, t) {
                e && (l.finalW = e), l.finalH = l.text_do.getHeight(), l.setFinalSize(), clearTimeout(l.resizeWithDelayId_to), l.resizeWithDelayId_to = setTimeout(l.setFinalSize, 50)
            }, l.setFinalSize = function() {
                l.finalH = l.text_do.getHeight(), "top" == l.position_str ? l.finalY = l.margins : l.finalY = e.mainItemHolder_do.h - l.finalH - l.margins, l.setX(l.margins), l.setY(l.finalY), l.setWidth(l.finalW), l.main_do.setHeight(l.finalH), l.setHeight(l.finalH)
            }, l.hide = function(e, t, s) {
                (l.isShowed_bl || t) && (l.isShowed_bl = !1, s && (l.isShowedFirstTime_bl = !1), FWDRLTweenMax.killTweensOf(l.main_do), e ? "motion" == l.descriptionAnimationType_str ? "top" == l.position_str ? FWDRLTweenMax.to(l.main_do, .8, {
                    y: -l.finalH,
                    ease: Expo.easeInOut,
                    onComplete: l.hideComplete
                }) : FWDRLTweenMax.to(l.main_do, .8, {
                    y: l.finalH,
                    ease: Expo.easeInOut,
                    onComplete: l.hideComplete
                }) : FWDRLTweenMax.to(l.main_do, .8, {
                    alpha: 0,
                    ease: Quint.easeOut,
                    onComplete: l.hideComplete
                }) : l.hideComplete())
            }, l.hideComplete = function() {
                l.setVisible(!1), "motion" == l.descriptionAnimationType_str ? "top" == l.position_str ? l.main_do.setY(-l.finalH) : l.main_do.setY(l.finalH) : l.main_do.setAlpha(0)
            }, l.show = function(e) {
                l.isShowed_bl || (l.isShowed_bl = !0, l.isShowedFirstTime_bl || (l.isShowedFirstTime_bl = !0, l.hideComplete(), l.resizeAndPosition()), l.setVisible(!0), FWDRLTweenMax.killTweensOf(l.main_do), "motion" == l.descriptionAnimationType_str ? (1 != l.main_do.alpha && l.main_do.setAlpha(1), e ? FWDRLTweenMax.to(l.main_do, .8, {
                    y: 0,
                    ease: Expo.easeInOut
                }) : l.main_do.setY(0)) : (l.main_do.setY(0), e ? FWDRLTweenMax.to(l.main_do, .8, {
                    alpha: 1,
                    ease: Quint.easeOut
                }) : l.main_do.setAlpha(1)))
            }, l.init()
        };
        t.setPrototype = function() {
            t.prototype = new FWDRLDisplayObject("div")
        }, t.HIDE_COMPLETE = "infoWindowHideComplete", t.prototype = null, e.FWDRLDescriptionWindow = t
    }(window), function(e) {
        var t = function(e, t, s, i) {
            var o = this;
            if (o.listeners = {
                    events_ar: []
                }, "div" != e && "img" != e && "canvas" != e && "input" != e) throw Error("Type is not valid! " + e);
            o.type = e, this.children_ar = [], this.style, this.screen, this.transform, this.position = t || "absolute", this.overflow = s || "hidden", this.display = i || "inline-block", this.visible = !0, this.buttonMode, this.x = 0, this.y = 0, this.w = 0, this.h = 0, this.rect, this.alpha = 1, this.innerHTML = "", this.opacityType = "", this.isHtml5_bl = !1, this.hasTransform3d_bl = FWDRLUtils.hasTransform3d, this.hasTransform2d_bl = FWDRLUtils.hasTransform2d, FWDRLUtils.isIE && (o.hasTransform3d_bl = !1, o.hasTransform2d_bl = !1), this.hasBeenSetSelectable_bl = !1, o.init = function() {
                o.setScreen()
            }, o.getTransform = function() {
                for (var e, t = ["transform", "msTransform", "WebkitTransform", "MozTransform", "OTransform"]; e = t.shift();)
                    if ("undefined" != typeof o.screen.style[e]) return e;
                return !1
            }, o.getOpacityType = function() {
                var e;
                return e = "undefined" != typeof o.screen.style.opacity ? "opacity" : "filter"
            }, o.setScreen = function(e) {
                "img" == o.type && e ? (o.screen = e, o.setMainProperties()) : (o.screen = document.createElement(o.type), o.setMainProperties())
            }, o.setMainProperties = function() {
                o.transform = o.getTransform(), o.setPosition(o.position), o.setOverflow(o.overflow), o.opacityType = o.getOpacityType(), "opacity" == o.opacityType && (o.isHtml5_bl = !0), "filter" == o.opacityType && (o.screen.style.filter = "inherit"), o.screen.style.left = "0px", o.screen.style.top = "0px", o.screen.style.margin = "0px", o.screen.style.padding = "0px", o.screen.style.maxWidth = "none", o.screen.style.maxHeight = "none", o.screen.style.border = "none", o.screen.style.lineHeight = "1", o.screen.style.backgroundColor = "transparent", o.screen.style.backfaceVisibility = "hidden", o.screen.style.webkitBackfaceVisibility = "hidden", o.screen.style.MozBackfaceVisibility = "hidden", "img" == e && (o.setWidth(o.screen.width), o.setHeight(o.screen.height))
            }, o.setBackfaceVisibility = function() {
                o.screen.style.backfaceVisibility = "visible", o.screen.style.webkitBackfaceVisibility = "visible", o.screen.style.MozBackfaceVisibility = "visible"
            }, o.setSelectable = function(e) {
                e || (o.screen.style.userSelect = "none", o.screen.style.MozUserSelect = "none", o.screen.style.webkitUserSelect = "none", o.screen.style.khtmlUserSelect = "none", o.screen.style.oUserSelect = "none", o.screen.style.msUserSelect = "none", o.screen.msUserSelect = "none", o.screen.ondragstart = function(e) {
                    return !1
                }, o.screen.onselectstart = function() {
                    return !1
                }, o.screen.ontouchstart = function() {
                    return !1
                }, o.screen.style.webkitTouchCallout = "none", o.hasBeenSetSelectable_bl = !0)
            }, o.getScreen = function() {
                return o.screen
            }, o.setVisible = function(e) {
                o.visible = e, 1 == o.visible ? o.screen.style.visibility = "visible" : o.screen.style.visibility = "hidden"
            }, o.getVisible = function() {
                return o.visible
            }, o.setResizableSizeAfterParent = function() {
                o.screen.style.width = "100%", o.screen.style.height = "100%"
            }, o.getStyle = function() {
                return o.screen.style
            }, o.setOverflow = function(e) {
                o.overflow = e, o.screen.style.overflow = o.overflow
            }, o.setPosition = function(e) {
                o.position = e, o.screen.style.position = o.position
            }, o.setDisplay = function(e) {
                o.display = e, o.screen.style.display = o.display
            }, o.setButtonMode = function(e) {
                o.buttonMode = e, 1 == o.buttonMode ? o.screen.style.cursor = "pointer" : o.screen.style.cursor = "default"
            }, o.setBkColor = function(e) {
                o.screen.style.backgroundColor = e
            }, o.setInnerHTML = function(e) {
                o.innerHTML = e, o.screen.innerHTML = o.innerHTML
            }, o.getInnerHTML = function() {
                return o.innerHTML
            }, o.getRect = function() {
                return o.screen.getBoundingClientRect()
            }, o.setAlpha = function(e) {
                o.alpha = e, "opacity" == o.opacityType ? o.screen.style.opacity = o.alpha : "filter" == o.opacityType && (o.screen.style.filter = "alpha(opacity=" + 100 * o.alpha + ")", o.screen.style.filter = "progid:DXImageTransform.Microsoft.Alpha(Opacity=" + Math.round(100 * o.alpha) + ")")
            }, o.getAlpha = function() {
                return o.alpha
            }, o.getRect = function() {
                return o.screen.getBoundingClientRect()
            }, o.getGlobalX = function() {
                return o.getRect().left
            }, o.getGlobalY = function() {
                return o.getRect().top
            }, o.setX = function(e) {
                o.x = e, o.hasTransform3d_bl ? o.screen.style[o.transform] = "translate3d(" + o.x + "px," + o.y + "px,0)" : o.hasTransform2d_bl ? o.screen.style[o.transform] = "translate(" + o.x + "px," + o.y + "px)" : o.screen.style.left = o.x + "px"
            }, o.getX = function() {
                return o.x
            }, o.setY = function(e) {
                o.y = e, o.hasTransform3d_bl ? o.screen.style[o.transform] = "translate3d(" + o.x + "px," + o.y + "px,0)" : o.hasTransform2d_bl ? o.screen.style[o.transform] = "translate(" + o.x + "px," + o.y + "px)" : o.screen.style.top = o.y + "px"
            }, o.getY = function() {
                return o.y
            }, o.setWidth = function(e) {
                o.w = e, "img" == o.type ? (o.screen.width = o.w, o.screen.style.width = o.w + "px") : o.screen.style.width = o.w + "px"
            }, o.getWidth = function() {
                return "div" == o.type ? 0 != o.screen.offsetWidth ? o.screen.offsetWidth : o.w : "img" == o.type ? 0 != o.screen.offsetWidth ? o.screen.offsetWidth : 0 != o.screen.width ? o.screen.width : o._w : "canvas" == o.type ? 0 != o.screen.offsetWidth ? o.screen.offsetWidth : o.w : void 0
            }, o.setHeight = function(e) {
                o.h = e, "img" == o.type ? (o.screen.height = o.h, o.screen.style.height = o.h + "px") : o.screen.style.height = o.h + "px"
            }, o.getHeight = function() {
                return "div" == o.type ? 0 != o.screen.offsetHeight ? o.screen.offsetHeight : o.h : "img" == o.type ? 0 != o.screen.offsetHeight ? o.screen.offsetHeight : 0 != o.screen.height ? o.screen.height : o.h : "canvas" == o.type ? 0 != o.screen.offsetHeight ? o.screen.offsetHeight : o.h : void 0
            }, o.addChild = function(e) {
                o.contains(e) ? (o.children_ar.splice(FWDRLUtils.indexOfArray(o.children_ar, e), 1), o.children_ar.push(e), o.screen.appendChild(e.screen)) : (o.children_ar.push(e), o.screen.appendChild(e.screen))
            }, o.removeChild = function(e) {
                if (!o.contains(e)) throw Error("##removeChild()## Child dose't exist, it can't be removed!");
                o.children_ar.splice(FWDRLUtils.indexOfArray(o.children_ar, e), 1), o.screen.removeChild(e.screen)
            }, o.contains = function(e) {
                return -1 == FWDRLUtils.indexOfArray(o.children_ar, e) ? !1 : !0
            }, o.addChildAt = function(e, t) {
                if (0 == o.getNumChildren()) o.children_ar.push(e), o.screen.appendChild(e.screen);
                else if (1 == t) o.screen.insertBefore(e.screen, o.children_ar[0].screen), o.screen.insertBefore(o.children_ar[0].screen, e.screen), o.contains(e) ? o.children_ar.splice(FWDRLUtils.indexOfArray(o.children_ar, e), 1, e) : o.children_ar.splice(FWDRLUtils.indexOfArray(o.children_ar, e), 0, e);
                else {
                    if (0 > t || t > o.getNumChildren() - 1) throw Error("##getChildAt()## Index out of bounds!");
                    o.screen.insertBefore(e.screen, o.children_ar[t].screen), o.contains(e) ? o.children_ar.splice(FWDRLUtils.indexOfArray(o.children_ar, e), 1, e) : o.children_ar.splice(FWDRLUtils.indexOfArray(o.children_ar, e), 0, e)
                }
            }, o.getChildAt = function(e) {
                if (0 > e || e > o.getNumChildren() - 1) throw Error("##getChildAt()## Index out of bounds!");
                if (0 == o.getNumChildren()) throw Errror("##getChildAt## Child dose not exist!");
                return o.children_ar[e]
            }, o.removeChildAtZero = function() {
                o.screen.removeChild(o.children_ar[0].screen), o.children_ar.shift()
            }, o.getNumChildren = function() {
                return o.children_ar.length
            }, this.setCSSGradient = function(e, t) {
                FWDRLUtils.isIEAndLessThen10 ? o.setBkColor(e) : (o.screen.style.backgroundImage = "-webkit-linear-gradient(top, " + e + ", " + t + ")", o.screen.style.backgroundImage = "-moz-linear-gradient(top, " + e + ", " + t + ")", o.screen.style.backgroundImage = "-ms-linear-gradient(top, " + e + ", " + t + ")", o.screen.style.backgroundImage = "-o-linear-gradient(top, " + e + ", " + t + ")")
            }, o.addListener = function(e, t) {
                if (void 0 == e) throw Error("type is required.");
                if ("object" == typeof e) throw Error("type must be of type String.");
                if ("function" != typeof t) throw Error("listener must be of type Function.");
                var s = {};
                s.type = e, s.listener = t, s.target = this, this.listeners.events_ar.push(s)
            }, o.dispatchEvent = function(e, t) {
                if (null != this.listeners) {
                    if (void 0 == e) throw Error("type is required.");
                    if ("object" == typeof e) throw Error("type must be of type String.");
                    for (var s = 0, i = this.listeners.events_ar.length; i > s; s++)
                        if (this.listeners.events_ar[s].target === this && this.listeners.events_ar[s].type === e) {
                            if (t)
                                for (var o in t) this.listeners.events_ar[s][o] = t[o];
                            this.listeners.events_ar[s].listener.call(this, this.listeners.events_ar[s])
                        }
                }
            }, o.removeListener = function(e, t) {
                if (void 0 == e) throw Error("type is required.");
                if ("object" == typeof e) throw Error("type must be of type String.");
                if ("function" != typeof t) throw Error("listener must be of type Function." + e);
                for (var s = 0, i = this.listeners.events_ar.length; i > s; s++)
                    if (this.listeners.events_ar[s].target === this && this.listeners.events_ar[s].type === e && this.listeners.events_ar[s].listener === t) {
                        this.listeners.events_ar.splice(s, 1);
                        break
                    }
            }, o.disposeImage = function() {
                "img" == o.type && (o.screen.src = null)
            }, o.destroy = function() {
                o.hasBeenSetSelectable_bl && (o.screen.ondragstart = null, o.screen.onselectstart = null, o.screen.ontouchstart = null), o.screen.removeAttribute("style"), o.listeners = [], o.listeners = null, o.children_ar = [], o.children_ar = null, o.style = null, o.screen = null, o.transform = null, o.position = null, o.overflow = null, o.display = null, o.visible = null, o.buttonMode = null, o.x = null, o.y = null, o.w = null, o.h = null, o.rect = null, o.alpha = null, o.innerHTML = null, o.opacityType = null, o.isHtml5_bl = null, o.hasTransform3d_bl = null, o.hasTransform2d_bl = null, o = null
            }, o.init()
        };
        e.FWDRLDisplayObject = t
    }(window), "undefined" == typeof asual) var asual = {};
"undefined" == typeof asual.util && (asual.util = {}), asual.util.Browser = new function() {
    var e = navigator.userAgent.toLowerCase(),
        t = /webkit/.test(e),
        s = /opera/.test(e),
        i = /msie/.test(e) && !/opera/.test(e),
        o = /mozilla/.test(e) && !/(compatible|webkit)/.test(e),
        n = parseFloat(i ? e.substr(e.indexOf("msie") + 4) : (e.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [0, "0"])[1]);
    this.toString = function() {
        return "[class Browser]"
    }, this.getVersion = function() {
        return n
    }, this.isMSIE = function() {
        return i
    }, this.isSafari = function() {
        return t
    }, this.isOpera = function() {
        return s
    }, this.isMozilla = function() {
        return o
    }
}, asual.util.Events = new function() {
    var e = "DOMContentLoaded",
        t = "onstop",
        s = window,
        i = document,
        o = [],
        n = asual.util,
        r = n.Browser,
        l = r.isMSIE(),
        a = r.isSafari();
    this.toString = function() {
        return "[class Events]"
    }, this.addListener = function(t, s, i) {
        o.push({
            o: t,
            t: s,
            l: i
        }), (s != e || !l && !a) && (t.addEventListener ? t.addEventListener(s, i, !1) : t.attachEvent && t.attachEvent("on" + s, i))
    }, this.removeListener = function(t, s, i) {
        for (var n, r = 0; n = o[r]; r++)
            if (n.o == t && n.t == s && n.l == i) {
                o.splice(r, 1);
                break
            }(s != e || !l && !a) && (t.removeEventListener ? t.removeEventListener(s, i, !1) : t.detachEvent && t.detachEvent("on" + s, i))
    };
    var d = function() {
            for (var t, s = 0; t = o[s]; s++) t.t != e && n.Events.removeListener(t.o, t.t, t.l)
        },
        u = function() {
            function e() {
                i.detachEvent(t, e), d()
            }
            "interactive" == i.readyState && (i.attachEvent(t, e), s.setTimeout(function() {
                i.detachEvent(t, e)
            }, 0))
        };
    (l || a) && ! function() {
        try {
            (l && i.body || !/loaded|complete/.test(i.readyState)) && i.documentElement.doScroll("left")
        } catch (t) {
            return setTimeout(arguments.callee, 0)
        }
        for (var t, s = 0; t = o[s]; s++) t.t == e && t.l.call(null)
    }(), l && s.attachEvent && s.attachEvent("onbeforeunload", u), this.addListener(s, "unload", d)
}, asual.util.Functions = new function() {
    this.toString = function() {
        return "[class Functions]"
    }, this.bind = function(e, t, s) {
        for (var i, o = 2, n = []; i = arguments[o]; o++) n.push(i);
        return function() {
            return e.apply(t, n)
        }
    }
};
var FWDAddressEvent = function(e) {
    this.toString = function() {
        return "[object FWDAddressEvent]"
    }, this.type = e, this.target = [FWDAddress][0], this.value = FWDAddress.getValue(), this.path = FWDAddress.getPath(), this.pathNames = FWDAddress.getPathNames(), this.parameters = {};
    for (var t = FWDAddress.getParameterNames(), s = 0, i = t.length; i > s; s++) this.parameters[t[s]] = FWDAddress.getParameter(t[s]);
    this.parameterNames = t
};
FWDAddressEvent.INIT = "init", FWDAddressEvent.CHANGE = "change", FWDAddressEvent.INTERNAL_CHANGE = "internalChange", FWDAddressEvent.EXTERNAL_CHANGE = "externalChange";
var FWDAddress = new function() {
    var _getHash = function() {
            var e = _l.href.indexOf("#");
            return -1 != e ? _ec(_dc(_l.href.substr(e + 1))) : ""
        },
        _getWindow = function() {
            try {
                return top.document, top
            } catch (e) {
                return window
            }
        },
        _strictCheck = function(e, t) {
            return _opts.strict && (e = t ? "/" != e.substr(0, 1) ? "/" + e : e : "" == e ? "/" : e), e
        },
        _ieLocal = function(e, t) {
            return _msie && "file:" == _l.protocol ? t ? _value.replace(/\?/, "%3F") : _value.replace(/%253F/, "?") : e
        },
        _searchScript = function(e) {
            if (e.childNodes)
                for (var t, s = 0, i = e.childNodes.length; i > s; s++)
                    if (e.childNodes[s].src && (_url = String(e.childNodes[s].src)), t = _searchScript(e.childNodes[s])) return t
        },
        _titleCheck = function() {
            _d.title != _title && -1 != _d.title.indexOf("#") && (_d.title = _title)
        },
        _listen = function() {
            if (!_silent) {
                var e = _getHash(),
                    t = !(_value == e);
                _safari && 523 > _version ? _length != _h.length && (_length = _h.length, typeof _stack[_length - 1] != UNDEFINED && (_value = _stack[_length - 1]), _update.call(this, !1)) : _msie && t ? 7 > _version ? _l.reload() : this.setValue(e) : t && (_value = e, _update.call(this, !1)), _msie && _titleCheck.call(this)
            }
        },
        _bodyClick = function(e) {
            if (_popup.length > 0) {
                var popup = window.open(_popup[0], _popup[1], eval(_popup[2]));
                typeof _popup[3] != UNDEFINED && eval(_popup[3])
            }
            _popup = []
        },
        _swfChange = function() {
            for (var e, t, s = 0, i = FWDAddress.getValue(), o = "setFWDAddressValue"; e = _ids[s]; s++)
                if (t = document.getElementById(e))
                    if (t.parentNode && typeof t.parentNode.so != UNDEFINED) t.parentNode.so.call(o, i);
                    else {
                        if (!t || typeof t[o] == UNDEFINED) {
                            var n = t.getElementsByTagName("object"),
                                r = t.getElementsByTagName("embed");
                            t = n[0] && typeof n[0][o] != UNDEFINED ? n[0] : r[0] && typeof r[0][o] != UNDEFINED ? r[0] : null
                        }
                        t && t[o](i)
                    } else(t = document[e]) && typeof t[o] != UNDEFINED && t[o](i)
        },
        _jsDispatch = function(e) {
            this.dispatchEvent(new FWDAddressEvent(e)), e = e.substr(0, 1).toUpperCase() + e.substr(1), typeof this["on" + e] == FUNCTION && this["on" + e]()
        },
        _jsInit = function() {
            _util.Browser.isSafari() && _d.body.addEventListener("click", _bodyClick), _jsDispatch.call(this, "init")
        },
        _jsChange = function() {
            _swfChange(), _jsDispatch.call(this, "change")
        },
        _update = function(e) {
            _jsChange.call(this), e ? _jsDispatch.call(this, "internalChange") : _jsDispatch.call(this, "externalChange"), _st(_functions.bind(_track, this), 10)
        },
        _track = function() {
            var e = (_l.pathname + (/\/$/.test(_l.pathname) ? "" : "/") + this.getValue()).replace(/\/\//, "/").replace(/^\/$/, ""),
                t = _t[_opts.tracker];
            typeof t == FUNCTION ? t(e) : typeof _t.pageTracker != UNDEFINED && typeof _t.pageTracker._trackPageview == FUNCTION ? _t.pageTracker._trackPageview(e) : typeof _t.urchinTracker == FUNCTION && _t.urchinTracker(e)
        },
        _htmlWrite = function() {
            var e = _frame.contentWindow.document;
            e.open(), e.write("<html><head><title>" + _d.title + "</title><script>var " + ID + ' = "' + _getHash() + '";</script></head></html>'), e.close()
        },
        _htmlLoad = function() {
            var e = _frame.contentWindow;
            e.location.href;
            _value = typeof e[ID] != UNDEFINED ? e[ID] : "", _value != _getHash() && (_update.call(FWDAddress, !1), _l.hash = _ieLocal(_value, TRUE))
        },
        _load = function() {
            if (!_loaded) {
                if (_loaded = TRUE, _msie && 8 > _version) {
                    var e = _d.getElementsByTagName("frameset")[0];
                    _frame = _d.createElement((e ? "" : "i") + "frame"), e ? (e.insertAdjacentElement("beforeEnd", _frame), e[e.cols ? "cols" : "rows"] += ",0", _frame.src = "javascript:false", _frame.noResize = !0, _frame.frameBorder = _frame.frameSpacing = 0) : (_frame.src = "javascript:false", _frame.style.display = "none", _d.body.insertAdjacentElement("afterBegin", _frame)), _st(function() {
                        _events.addListener(_frame, "load", _htmlLoad), typeof _frame.contentWindow[ID] == UNDEFINED && _htmlWrite()
                    }, 50)
                } else _safari && (418 > _version && (_d.body.innerHTML += '<form id="' + ID + '" style="position:absolute;top:-9999px;" method="get"></form>', _form = _d.getElementById(ID)), typeof _l[ID] == UNDEFINED && (_l[ID] = {}), typeof _l[ID][_l.pathname] != UNDEFINED && (_stack = _l[ID][_l.pathname].split(",")));
                _st(_functions.bind(function() {
                    _jsInit.call(this), _jsChange.call(this), _track.call(this)
                }, this), 1), _msie && _version >= 8 ? (_d.body.onhashchange = _functions.bind(_listen, this), _si(_functions.bind(_titleCheck, this), 50)) : _si(_functions.bind(_listen, this), 50)
            }
        },
        ID = "swfaddress",
        FUNCTION = "function",
        UNDEFINED = "undefined",
        TRUE = !0,
        FALSE = !1,
        _util = asual.util,
        _browser = _util.Browser,
        _events = _util.Events,
        _functions = _util.Functions,
        _version = _browser.getVersion(),
        _msie = _browser.isMSIE(),
        _mozilla = _browser.isMozilla(),
        _opera = _browser.isOpera(),
        _safari = _browser.isSafari(),
        _supported = FALSE,
        _t = _getWindow(),
        _d = _t.document,
        _h = _t.history,
        _l = _t.location,
        _si = setInterval,
        _st = setTimeout,
        _dc = decodeURI,
        _ec = encodeURI,
        _frame, _form, _url, _title = _d.title,
        _length = _h.length,
        _silent = FALSE,
        _loaded = FALSE,
        _justset = TRUE,
        _juststart = TRUE,
        _ref = this,
        _stack = [],
        _ids = [],
        _popup = [],
        _listeners = {},
        _value = _getHash(),
        _opts = {
            history: TRUE,
            strict: TRUE
        };
    if (_msie && _d.documentMode && _d.documentMode != _version && (_version = 8 != _d.documentMode ? 7 : 8), _supported = _mozilla && _version >= 1 || _msie && _version >= 6 || _opera && _version >= 9.5 || _safari && _version >= 312) {
        _opera && (history.navigationMode = "compatible");
        for (var i = 1; _length > i; i++) _stack.push("");
        _stack.push(_getHash()), _msie && _l.hash != _getHash() && (_l.hash = "#" + _ieLocal(_getHash(), TRUE)), _searchScript(document);
        var _qi = _url ? _url.indexOf("?") : -1;
        if (-1 != _qi)
            for (var param, params = _url.substr(_qi + 1).split("&"), i = 0, p; p = params[i]; i++) param = p.split("="), /^(history|strict)$/.test(param[0]) && (_opts[param[0]] = isNaN(param[1]) ? /^(true|yes)$/i.test(param[1]) : 0 != parseInt(param[1])), /^tracker$/.test(param[0]) && (_opts[param[0]] = param[1]);
        _msie && _titleCheck.call(this), window == _t && _events.addListener(document, "DOMContentLoaded", _functions.bind(_load, this)), _events.addListener(_t, "load", _functions.bind(_load, this))
    } else !_supported && -1 != _l.href.indexOf("#") || _safari && 418 > _version && -1 != _l.href.indexOf("#") && "" != _l.search ? (_d.open(), _d.write('<html><head><meta http-equiv="refresh" content="0;url=' + _l.href.substr(0, _l.href.indexOf("#")) + '" /></head></html>'), _d.close()) : _track();
    this.toString = function() {
            return "[class FWDAddress]"
        }, this.back = function() {
            _h.back()
        }, this.forward = function() {
            _h.forward()
        }, this.up = function() {
            var e = this.getPath();
            this.setValue(e.substr(0, e.lastIndexOf("/", e.length - 2) + ("/" == e.substr(e.length - 1) ? 1 : 0)))
        }, this.go = function(e) {
            _h.go(e)
        }, this.href = function(e, t) {
            t = typeof t != UNDEFINED ? t : "_self", "_self" == t ? self.location.href = e : "_top" == t ? _l.href = e : "_blank" == t ? window.open(e) : _t.frames[t].location.href = e
        }, this.popup = function(url, name, options, handler) {
            try {
                var popup = window.open(url, name, eval(options));
                typeof handler != UNDEFINED && eval(handler)
            } catch (ex) {}
            _popup = arguments
        }, this.getIds = function() {
            return _ids
        }, this.getId = function(e) {
            return _ids[0]
        }, this.setId = function(e) {
            _ids[0] = e
        }, this.addId = function(e) {
            this.removeId(e), _ids.push(e)
        }, this.removeId = function(e) {
            for (var t = 0; t < _ids.length; t++)
                if (e == _ids[t]) {
                    _ids.splice(t, 1);
                    break
                }
        }, this.addEventListener = function(e, t) {
            typeof _listeners[e] == UNDEFINED && (_listeners[e] = []), _listeners[e].push(t)
        }, this.removeEventListener = function(e, t) {
            if (typeof _listeners[e] != UNDEFINED) {
                for (var s, i = 0;
                    (s = _listeners[e][i]) && s != t; i++);
                _listeners[e].splice(i, 1)
            }
        }, this.dispatchEvent = function(e) {
            if (this.hasEventListener(e.type)) {
                e.target = this;
                for (var t, s = 0; t = _listeners[e.type][s]; s++) t(e);
                return TRUE
            }
            return FALSE
        }, this.hasEventListener = function(e) {
            return typeof _listeners[e] != UNDEFINED && _listeners[e].length > 0
        }, this.getBaseURL = function() {
            var e = _l.href;
            return -1 != e.indexOf("#") && (e = e.substr(0, e.indexOf("#"))), "/" == e.substr(e.length - 1) && (e = e.substr(0, e.length - 1)), e
        }, this.getStrict = function() {
            return _opts.strict
        }, this.setStrict = function(e) {
            _opts.strict = e
        }, this.getHistory = function() {
            return _opts.history
        }, this.setHistory = function(e) {
            _opts.history = e
        }, this.getTracker = function() {
            return _opts.tracker
        }, this.setTracker = function(e) {
            _opts.tracker = e
        }, this.getTitle = function() {
            return _d.title
        }, this.setTitle = function(e) {
            return _supported ? void(typeof e != UNDEFINED && ("null" == e && (e = ""), e = _dc(e), _st(function() {
                _title = _d.title = e, _juststart && _frame && _frame.contentWindow && _frame.contentWindow.document && (_frame.contentWindow.document.title = e, _juststart = FALSE), !_justset && _mozilla && _l.replace(-1 != _l.href.indexOf("#") ? _l.href : _l.href + "#"), _justset = FALSE
            }, 10))) : null
        }, this.getStatus = function() {
            return _t.status
        }, this.setStatus = function(e) {
            if (!_supported) return null;
            if (typeof e != UNDEFINED && ("null" == e && (e = ""), e = _dc(e), !_safari)) {
                if (e = _strictCheck("null" != e ? e : "", TRUE), "/" == e && (e = ""), !/http(s)?:\/\//.test(e)) {
                    var t = _l.href.indexOf("#");
                    e = (-1 == t ? _l.href : _l.href.substr(0, t)) + "#" + e
                }
                _t.status = e
            }
        }, this.resetStatus = function() {
            _t.status = ""
        }, this.getValue = function() {
            return _supported ? _dc(_strictCheck(_ieLocal(_value, FALSE), FALSE)) : null
        }, this.setValue = function(e) {
            if (!_supported) return null;
            if (typeof e != UNDEFINED && ("null" == e && (e = ""), e = _ec(_dc(_strictCheck(e, TRUE))), "/" == e && (e = ""), _value != e)) {
                if (_justset = TRUE, _value = e, _silent = TRUE, _update.call(FWDAddress, !0), _stack[_h.length] = _value, _safari)
                    if (_opts.history)
                        if (_l[ID][_l.pathname] = _stack.toString(), _length = _h.length + 1, 418 > _version) "" == _l.search && (_form.action = "#" + _value, _form.submit());
                        else if (523 > _version || "" == _value) {
                    var t = _d.createEvent("MouseEvents");
                    t.initEvent("click", TRUE, TRUE);
                    var s = _d.createElement("a");
                    s.href = "#" + _value, s.dispatchEvent(t)
                } else _l.hash = "#" + _value;
                else _l.replace("#" + _value);
                else _value != _getHash() && (_opts.history ? _l.hash = "#" + _dc(_ieLocal(_value, TRUE)) : _l.replace("#" + _dc(_value)));
                _msie && 8 > _version && _opts.history && _st(_htmlWrite, 50), _safari ? _st(function() {
                    _silent = FALSE
                }, 1) : _silent = FALSE
            }
        }, this.getPath = function() {
            var e = this.getValue();
            return -1 != e.indexOf("?") ? e.split("?")[0] : -1 != e.indexOf("#") ? e.split("#")[0] : e
        }, this.getPathNames = function() {
            var e = this.getPath(),
                t = e.split("/");
            return ("/" == e.substr(0, 1) || 0 == e.length) && t.splice(0, 1), "/" == e.substr(e.length - 1, 1) && t.splice(t.length - 1, 1), t
        }, this.getQueryString = function() {
            var e = this.getValue(),
                t = e.indexOf("?");
            return -1 != t && t < e.length ? e.substr(t + 1) : void 0
        }, this.getParameter = function(e) {
            var t = this.getValue(),
                s = t.indexOf("?");
            if (-1 != s) {
                t = t.substr(s + 1);
                for (var i, o = t.split("&"), n = o.length, r = []; n--;) i = o[n].split("="), i[0] == e && r.push(i[1]);
                if (0 != r.length) return 1 != r.length ? r : r[0]
            }
        }, this.getParameterNames = function() {
            var e = this.getValue(),
                t = e.indexOf("?"),
                s = [];
            if (-1 != t && (e = e.substr(t + 1), "" != e && -1 != e.indexOf("=")))
                for (var i = e.split("&"), o = 0; o < i.length;) s.push(i[o].split("=")[0]), o++;
            return s
        }, this.onInit = null, this.onChange = null, this.onInternalChange = null, this.onExternalChange = null,
        function() {
            var e;
            if (typeof FlashObject != UNDEFINED && (SWFObject = FlashObject), typeof SWFObject != UNDEFINED && SWFObject.prototype && SWFObject.prototype.write) {
                var t = SWFObject.prototype.write;
                SWFObject.prototype.write = function() {
                    e = arguments, this.getAttribute("version").major < 8 && (this.addVariable("$swfaddress", FWDAddress.getValue()), ("string" == typeof e[0] ? document.getElementById(e[0]) : e[0]).so = this);
                    var s;
                    return (s = t.apply(this, e)) && _ref.addId(this.getAttribute("id")), s
                }
            }
            if (typeof swfobject != UNDEFINED) {
                var s = swfobject.registerObject;
                swfobject.registerObject = function() {
                    e = arguments, s.apply(this, e), _ref.addId(e[0])
                };
                var i = swfobject.createSWF;
                swfobject.createSWF = function() {
                    e = arguments;
                    var t = i.apply(this, e);
                    return t && _ref.addId(e[0].id), t
                };
                var o = swfobject.embedSWF;
                swfobject.embedSWF = function() {
                    e = arguments, typeof e[8] == UNDEFINED && (e[8] = {}), typeof e[8].id == UNDEFINED && (e[8].id = e[1]), o.apply(this, e), _ref.addId(e[8].id)
                }
            }
            if (typeof UFO != UNDEFINED) {
                var n = UFO.create;
                UFO.create = function() {
                    e = arguments, n.apply(this, e), _ref.addId(e[0].id)
                }
            }
            if (typeof AC_FL_RunContent != UNDEFINED) {
                var r = AC_FL_RunContent;
                AC_FL_RunContent = function() {
                    e = arguments, r.apply(this, e);
                    for (var t = 0, s = e.length; s > t; t++) "id" == e[t] && _ref.addId(e[t + 1])
                }
            }
        }()
};
! function(e) {
    var t = function(s, i) {
        var o = this;
        o.init = function() {
            e.RLAudioPlayer = this, o.instanceName_str = "RLAudioPlayer", this.data = i, this.stageContainer = s, this.listeners = {
                events_ar: []
            }, this.main_do = null, this.controller_do = null, this.audioScreen_do = null, this.flash_do = null, this.flashObject = null, this.backgroundColor_str = o.data.audioControllerBackgroundColor_str || "transparent", this.flashObjectMarkup_str = null, this.sourcePath_str, this.stageWidth = 0, this.stageHeight = 0, this.isAPIReady_bl = !1, this.isFlashScreenReady_bl = !1, this.orintationChangeComplete_bl = !0, this.isMobile_bl = FWDRLUtils.isMobile, this.hasPointerEvent_bl = FWDRLUtils.hasPointerEvent, this.hasLoadingSkinError_bl = !1, this.setupMainDo(), t.hasHTML5Audio ? (this.setupAudioScreen(o.data), this.setupController(), this.isAPIReady_bl = !0, this.dispatchEvent(t.READY)) : this.setupFlashScreen()
        }, o.setupMainDo = function() {
            o.main_do = new FWDRLDisplayObject("div", "relative"), o.main_do.getStyle().msTouchAction = "none", o.main_do.setBackfaceVisibility(), o.main_do.setBkColor(o.backgroundColor_str), (!FWDRLUtils.isMobile || FWDRLUtils.isMobile && FWDRLUtils.hasPointerEvent) && o.main_do.setSelectable(!1), o.stageContainer.appendChild(o.main_do.screen), setTimeout(o.resizeHandler, 300)
        }, o.resizeHandler = function() {
            o.stageWidth = o.stageContainer.offsetWidth, o.stageHeight = o.stageContainer.offsetHeight, o.main_do.setWidth(o.stageWidth), o.main_do.setHeight(o.stageHeight), o.controller_do && o.controller_do.resizeAndPosition()
        }, this.setupController = function() {
            FWDRLEAPController.setPrototype(), o.controller_do = new FWDRLEAPController(o.data, o), o.controller_do.addListener(FWDRLEAPController.PLAY, o.controllerOnPlayHandler), o.controller_do.addListener(FWDRLEAPController.PAUSE, o.controllerOnPauseHandler), o.controller_do.addListener(FWDRLEAPController.START_TO_SCRUB, o.controllerStartToScrubbHandler), o.controller_do.addListener(FWDRLEAPController.SCRUB, o.controllerScrubbHandler), o.controller_do.addListener(FWDRLEAPController.STOP_TO_SCRUB, o.controllerStopToScrubbHandler), o.controller_do.addListener(FWDRLEAPController.CHANGE_VOLUME, o.controllerChangeVolumeHandler), o.main_do.addChild(o.controller_do)
        }, this.controllerOnPlayHandler = function(e) {
            o.play()
        }, this.controllerOnPauseHandler = function(e) {
            t.hasHTML5Audio ? o.audioScreen_do.pause() : o.isFlashScreenReady_bl && o.flashObject.pauseAudio()
        }, this.controllerStartToScrubbHandler = function(e) {
            t.hasHTML5Audio ? o.audioScreen_do.startToScrub() : o.isFlashScreenReady_bl && (o.pause(), o.flashObject.startToScrub())
        }, this.controllerScrubbHandler = function(e) {
            t.hasHTML5Audio ? o.audioScreen_do.scrub(e.percent) : o.isFlashScreenReady_bl && o.flashObject.scrub(e.percent)
        }, this.controllerStopToScrubbHandler = function(e) {
            t.hasHTML5Audio ? o.audioScreen_do.stopToScrub() : o.isFlashScreenReady_bl && o.flashObject.stopToScrub();
        }, this.controllerChangeVolumeHandler = function(e) {
            t.hasHTML5Audio ? o.audioScreen_do.setVolume(e.percent) : o.isFlashScreenReady_bl && o.flashObject.setVolume(e.percent)
        }, this.setupAudioScreen = function(e) {
            FWDRLEAPAudioScreen.setPrototype(), o.audioScreen_do = new FWDRLEAPAudioScreen(o, o.data), o.audioScreen_do.addListener(FWDRLEAPAudioScreen.START, o.audioScreenStartHandler), o.audioScreen_do.addListener(FWDRLEAPAudioScreen.ERROR, o.audioScreenErrorHandler), o.audioScreen_do.addListener(FWDRLEAPAudioScreen.SAFE_TO_SCRUBB, o.audioScreenSafeToScrubbHandler), o.audioScreen_do.addListener(FWDRLEAPAudioScreen.STOP, o.audioScreenStopHandler), o.audioScreen_do.addListener(FWDRLEAPAudioScreen.PLAY, o.audioScreenPlayHandler), o.audioScreen_do.addListener(FWDRLEAPAudioScreen.PAUSE, o.audioScreenPauseHandler), o.audioScreen_do.addListener(FWDRLEAPAudioScreen.UPDATE, o.audioScreenUpdateHandler), o.audioScreen_do.addListener(FWDRLEAPAudioScreen.UPDATE_TIME, o.audioScreenUpdateTimeHandler), o.audioScreen_do.addListener(FWDRLEAPAudioScreen.LOAD_PROGRESS, o.audioScreenLoadProgressHandler), o.audioScreen_do.addListener(FWDRLEAPAudioScreen.PLAY_COMPLETE, o.audioScreenPlayCompleteHandler), o.main_do.addChild(o.audioScreen_do)
        }, this.audioScreenStartHandler = function() {
            o.dispatchEvent(t.START)
        }, this.audioScreenErrorHandler = function(s) {
            var i;
            o.hasLoadingSkinError_bl = !0, t.hasHTML5Audio ? (i = s.text, e.console && console.log(s)) : i = s, o.dispatchEvent(t.ERROR, {
                error: i
            })
        }, this.audioScreenSafeToScrubbHandler = function() {
            o.controller_do && o.controller_do.enableMainScrubber()
        }, this.audioScreenStopHandler = function(e) {
            o.controller_do && (o.controller_do.disableMainScrubber(), o.controller_do.showPlayButton()), o.dispatchEvent(t.STOP)
        }, this.audioScreenPlayHandler = function() {
            o.controller_do && o.controller_do.showPauseButton(), o.dispatchEvent(t.PLAY)
        }, this.audioScreenPauseHandler = function() {
            o.controller_do && o.controller_do.showPlayButton(), o.dispatchEvent(t.PAUSE)
        }, this.audioScreenUpdateHandler = function(e) {
            var s;
            t.hasHTML5Audio ? (s = e.percent, o.controller_do && o.controller_do.updateMainScrubber(s)) : (s = e, o.controller_do && o.controller_do.updateMainScrubber(s)), o.dispatchEvent(t.UPDATE, {
                percent: s
            })
        }, this.audioScreenUpdateTimeHandler = function(e) {
            var s;
            t.hasHTML5Audio ? (s = e.time, o.controller_do && o.controller_do.updateTime(s)) : (s = e, o.controller_do && o.controller_do.updateTime(s)), o.dispatchEvent(t.UPDATE_TIME, {
                time: s
            })
        }, this.audioScreenLoadProgressHandler = function(e) {
            t.hasHTML5Audio ? o.controller_do && o.controller_do.updatePreloaderBar(e.percent) : o.controller_do && o.controller_do.updatePreloaderBar(e)
        }, this.audioScreenPlayCompleteHandler = function() {
            o.dispatchEvent(t.PLAY_COMPLETE)
        }, this.setupFlashScreen = function() {
            if (!FWDRLFlashTest.hasFlashPlayerVersion("9.0.18")) {
                var e = "Please install Adobe flash player! <a href='http://www.adobe.com/go/getflashplayer'>Click here to install.</a>";
                return void o.dispatchEvent(t.ERROR, {
                    error: e
                })
            }
            o.flash_do = new FWDRLDisplayObject("div"), o.flash_do.setBackfaceVisibility(), o.flash_do.setResizableSizeAfterParent(), o.main_do.addChild(o.flash_do), o.flashObjectMarkup_str = '<object id="' + o.instanceName_str + '"classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="100%" height="100%"><param name="movie" value="' + o.data.audioFlashPath_str + '"/><param name="wmode" value="opaque"/><param name="scale" value="noscale"/><param name=FlashVars value="instanceName=' + o.instanceName_str + "&volume=" + o.data.volume + "&loop=" + o.data.audioLoop_bl + '"/><object type="application/x-shockwave-flash" data="' + o.data.audioFlashPath_str + '" width="100%" height="100%"><param name="movie" value="' + o.data.audioFlashPath_str + '"/><param name="wmode" value="opaque"/><param name="scale" value="noscale"/><param name=FlashVars value="instanceName=' + o.instanceName_str + "&volume=" + o.data.volume + "&loop=" + o.data.audioLoop_bl + '"/></object></object>', o.flash_do.screen.innerHTML = o.flashObjectMarkup_str, o.flashObject = o.flash_do.screen.firstChild, FWDRLUtils.isIE || (o.flashObject = o.flashObject.getElementsByTagName("object")[0])
        }, this.flashScreenIsReady = function() {
            console && console.dir("flash  audio is ready " + o.instanceName_str), o.isFlashScreenReady_bl = !0, o.setupController(), o.isAPIReady_bl = !0, o.dispatchEvent(t.READY)
        }, this.flashScreenFail = function() {
            var e = "External interface error!";
            o.dispatchEvent(t.ERROR, {
                error: e
            })
        }, this.play = function() {
            o.isAPIReady_bl && (t.hasHTML5Audio ? o.audioScreen_do.play() : o.isFlashScreenReady_bl && o.flashObject.playAudio())
        }, this.pause = function() {
            o.isAPIReady_bl && (t.hasHTML5Audio ? o.audioScreen_do && o.audioScreen_do.pause() : o.isFlashScreenReady_bl && o.flashObject.pauseAudio())
        }, this.stop = function() {
            o.isAPIReady_bl && (o.hasLoadingSkinError_bl = !1, t.hasHTML5Audio ? o.audioScreen_do && o.audioScreen_do.stop() : o.isFlashScreenReady_bl && o.flashObject.stopAudio())
        }, this.startToScrub = function() {
            o.isAPIReady_bl && (t.hasHTML5Audio ? o.audioScreen_do && o.audioScreen_do.startToScrub() : o.isFlashScreenReady_bl && o.flashObject.startToScrub())
        }, this.stopToScrub = function() {
            o.isAPIReady_bl && (t.hasHTML5Audio ? o.audioScreen_do && o.audioScreen_do.stopToScrub() : o.isFlashScreenReady_bl && o.flashObject.stopToScrub())
        }, this.scrub = function(e) {
            o.isAPIReady_bl && (isNaN(e) || (0 > e ? e = 0 : e > 1 && (e = 1), t.hasHTML5Audio ? o.audioScreen_do && o.audioScreen_do.scrub(e) : o.isFlashScreenReady_bl && o.flashObject.scrub(e)))
        }, this.stopToScrub = function(e) {
            o.isAPIReady_bl && (t.hasHTML5Audio ? o.audioScreen_do && o.audioScreen_do.stopToScrub() : o.isFlashScreenReady_bl && o.flashObject.stopToScrub())
        }, this.setSource = function(e) {
            o.isAPIReady_bl && (o.hasLoadingSkinError_bl = !1, o.sourcePath_str = e, t.hasHTML5Audio ? o.audioScreen_do && o.audioScreen_do.setSource(e) : o.isFlashScreenReady_bl && o.flashObject.setSource(e))
        }, this.getSourcePath = function() {
            return o.isAPIReady_bl ? o.sourcePath_str : void 0
        }, this.setVolume = function(e) {
            o.isAPIReady_bl && (o.controller_do && o.controller_do.updateVolume(e), t.hasHTML5Audio ? o.audioScreen_do && o.audioScreen_do.setVolume(e) : o.isFlashScreenReady_bl && o.flashObject.setVolume(e))
        }, this.getIsAPIReady = function() {
            return o.isAPIReady_bl
        }, this.addListener = function(e, t) {
            if (void 0 == e) throw Error("type is required.");
            if ("object" == typeof e) throw Error("type must be of type String.");
            if ("function" != typeof t) throw Error("listener must be of type Function.");
            var s = {};
            s.type = e, s.listener = t, s.target = this, this.listeners.events_ar.push(s)
        }, this.dispatchEvent = function(e, t) {
            if (null != this.listeners) {
                if (void 0 == e) throw Error("type is required.");
                if ("object" == typeof e) throw Error("type must be of type String.");
                for (var s = 0, i = this.listeners.events_ar.length; i > s; s++)
                    if (this.listeners.events_ar[s].target === this && this.listeners.events_ar[s].type === e) {
                        if (t)
                            for (var o in t) this.listeners.events_ar[s][o] = t[o];
                        this.listeners.events_ar[s].listener.call(this, this.listeners.events_ar[s])
                    }
            }
        }, this.removeListener = function(e, t) {
            if (void 0 == e) throw Error("type is required.");
            if ("object" == typeof e) throw Error("type must be of type String.");
            if ("function" != typeof t) throw Error("listener must be of type Function." + e);
            for (var s = 0, i = this.listeners.events_ar.length; i > s; s++)
                if (this.listeners.events_ar[s].target === this && this.listeners.events_ar[s].type === e && this.listeners.events_ar[s].listener === t) {
                    this.listeners.events_ar.splice(s, 1);
                    break
                }
        }, o.init()
    };
    t.setPrototype = function() {
        t.prototype = new FWDRLEventDispatcher
    }, t.hasHTML5Audio = function() {
        var e = document.createElement("audio"),
            t = !1;
        return e.canPlayType && (t = Boolean("probably" == e.canPlayType("audio/mpeg") || "maybe" == e.canPlayType("audio/mpeg"))), self.isMobile_bl ? !0 : t
    }(), t.getAudioFormats = function() {
        var e = document.createElement("audio");
        if (e.canPlayType) {
            var t = "",
                s = [];
            return ("probably" == e.canPlayType("audio/mpeg") || "maybe" == e.canPlayType("audio/mpeg")) && (t += ".mp3"), ("probably" == e.canPlayType("audio/ogg") || "maybe" == e.canPlayType("audio/ogg")) && (t += ".ogg"), ("probably" == e.canPlayType("audio/mp4") || "maybe" == e.canPlayType("audio/mp4")) && (t += ".webm"), s = t.split("."), s.shift(), e = null, s
        }
    }(), t.instaces_ar = [], t.START = "start", t.READY = "ready", t.STOP = "stop", t.PLAY = "play", t.PAUSE = "pause", t.UPDATE = "update", t.UPDATE_TIME = "updateTime", t.ERROR = "error", t.PLAY_COMPLETE = "playComplete", e.FWDRLEAP = t
}(window),
function(e) {
    var t = function(s, i) {
        var o = this,
            n = t.prototype;
        this.audio_el = null, this.sourcePath_str = i.sourcePath_str, this.prevSourcePath_str = "none", this.volume = i.volume, this.countShoutCastErrors = 0, this.maxCountShoutCastErrors = 5, this.testShoutCastId_to, o.preload_bl = !1, this.autoPlay_bl = i.autoPlay_bl, this.loop_bl = i.audioLoop_bl, this.allowScrubing_bl = !1, this.hasError_bl = !0, this.isPlaying_bl = !1, this.isStopped_bl = !0, this.hasPlayedOnce_bl = !1, this.isSafeToBeControlled_bl = !1, this.isShoutcast_bl = !1, this.isStartEventDispatched_bl = !1, this.init = function() {
            o.setHeight(0)
        }, this.setupAudio = function() {
            null == o.audio_el && (o.audio_el = document.createElement("audio"), o.screen.appendChild(o.audio_el), o.audio_el.controls = !1, o.audio_el.preload = "auto", o.audio_el.volume = o.volume), o.audio_el.addEventListener("error", o.errorHandler), o.audio_el.addEventListener("canplay", o.safeToBeControlled), o.audio_el.addEventListener("canplaythrough", o.safeToBeControlled), o.audio_el.addEventListener("progress", o.updateProgress), o.audio_el.addEventListener("timeupdate", o.updateAudio), o.audio_el.addEventListener("pause", o.pauseHandler), o.audio_el.addEventListener("play", o.playHandler), o.audio_el.addEventListener("ended", o.endedHandler)
        }, this.destroyAudio = function() {
            o.audio_el && (o.audio_el.removeEventListener("error", o.errorHandler), o.audio_el.removeEventListener("canplay", o.safeToBeControlled), o.audio_el.removeEventListener("canplaythrough", o.safeToBeControlled), o.audio_el.removeEventListener("progress", o.updateProgress), o.audio_el.removeEventListener("timeupdate", o.updateAudio), o.audio_el.removeEventListener("pause", o.pauseHandler), o.audio_el.removeEventListener("play", o.playHandler), o.audio_el.removeEventListener("ended", o.endedHandler), o.audio_el.src = "", o.audio_el.load())
        }, this.errorHandler = function(s) {
            if (o.isShoutcast_bl && o.countShoutCastErrors <= o.maxCountShoutCastErrors && 0 == o.audio_el.networkState) return o.testShoutCastId_to = setTimeout(o.play, 200), void o.countShoutCastErrors++;
            var i;
            o.hasError_bl = !0, o.stop(), i = 0 == o.audio_el.networkState ? "error 'self.audio_el.networkState = 1'" : 1 == o.audio_el.networkState ? "error 'self.audio_el.networkState = 1'" : 2 == o.audio_el.networkState ? "'self.audio_el.networkState = 2'" : 3 == o.audio_el.networkState ? "Audio source not found <font color='#FF0000'>" + o.sourcePath_str + "</font>" : s, e.console && e.console.log(o.audio_el.networkState), o.dispatchEvent(t.ERROR, {
                text: i
            })
        }, this.setSource = function(e) {
            o.sourcePath_str = e;
            for (var t = o.sourcePath_str.split(","), i = FWDRLEAP.getAudioFormats, n = 0; n < t.length; n++) {
                var r = t[n];
                t[n] = FWDRLUtils.trim(r)
            }
            e: for (var l = 0; l < t.length; l++)
                for (var r = t[l], n = 0; n < i.length; n++) {
                    var a = i[n];
                    if (-1 != r.indexOf(a)) {
                        o.sourcePath_str = r;
                        break e
                    }
                }
            clearTimeout(o.testShoutCastId_to), -1 != o.sourcePath_str.indexOf(";") && FWDRLUtils.isChrome ? (o.isShoutcast_bl = !0, o.countShoutCastErrors = 0) : o.isShoutcast_bl = !1, s.sourcePath_str = o.sourcePath_str, o.audio_el && o.stop(!0)
        }, this.play = function(e) {
            if (o.isStopped_bl) o.isPlaying_bl = !1, o.hasError_bl = !1, o.allowScrubing_bl = !1, o.isStopped_bl = !1, o.setupAudio(), o.audio_el.src = o.sourcePath_str, o.play();
            else if (!o.audio_el.ended || e) try {
                o.isPlaying_bl = !0, o.hasPlayedOnce_bl = !0, o.audio_el.play(), FWDRLUtils.isIE && o.dispatchEvent(t.PLAY)
            } catch (s) {}
        }, this.pause = function() {
            if (null != o && null != o.audio_el && !o.audio_el.ended) try {
                o.audio_el.pause(), o.isPlaying_bl = !1, FWDRLUtils.isIE && o.dispatchEvent(t.PAUSE)
            } catch (e) {}
        }, this.pauseHandler = function() {
            o.allowScrubing_bl || o.dispatchEvent(t.PAUSE)
        }, this.playHandler = function() {
            o.allowScrubing_bl || (o.isStartEventDispatched_bl || (o.dispatchEvent(t.START), o.isStartEventDispatched_bl = !0), o.dispatchEvent(t.PLAY))
        }, this.endedHandler = function() {
            o.loop_bl ? (o.scrub(0), o.play()) : o.stop(), o.dispatchEvent(t.PLAY_COMPLETE)
        }, this.stop = function(e) {
            (null != o && null != o.audio_el && !o.isStopped_bl || e) && (o.isPlaying_bl = !1, o.isStopped_bl = !0, o.hasPlayedOnce_bl = !0, o.isSafeToBeControlled_bl = !1, o.isStartEventDispatched_bl = !1, clearTimeout(o.testShoutCastId_to), o.audio_el.pause(), o.destroyAudio(), o.dispatchEvent(t.STOP), o.dispatchEvent(t.UPDATE_TIME, {
                time: "00:00/00:00"
            }), o.dispatchEvent(t.LOAD_PROGRESS, {
                percent: 0
            }))
        }, this.safeToBeControlled = function() {
            o.isSafeToBeControlled_bl || (o.isPlaying_bl = !0, o.isSafeToBeControlled_bl = !0, o.dispatchEvent(t.SAFE_TO_SCRUBB), o.dispatchEvent(t.SAFE_TO_UPDATE_VOLUME))
        }, this.updateProgress = function() {
            var e, s = 0;
            o.audio_el.buffered.length > 0 && (e = o.audio_el.buffered.end(o.audio_el.buffered.length - 1), s = e.toFixed(1) / o.audio_el.duration.toFixed(1), (isNaN(s) || !s) && (s = 0)), 1 == s && o.audio_el.removeEventListener("progress", o.updateProgress), o.dispatchEvent(t.LOAD_PROGRESS, {
                percent: s
            })
        }, this.updateAudio = function() {
            var e;
            o.allowScrubing_bl || (e = o.audio_el.currentTime / o.audio_el.duration, o.dispatchEvent(t.UPDATE, {
                percent: e
            })), o.dispatchEvent(t.UPDATE_TIME, {
                time: o.formatTime(o.audio_el.currentTime) + "/" + o.formatTime(o.audio_el.duration)
            })
        }, this.formatTime = function(e) {
            return e = Math.round(e), minutes = Math.floor(e / 60), minutes = minutes >= 10 ? minutes : "0" + minutes, e = Math.floor(e % 60), e = e >= 10 ? e : "0" + e, isNaN(e) ? "00:00" : minutes + ":" + e
        }, this.startToScrub = function() {
            o.allowScrubing_bl = !0
        }, this.stopToScrub = function() {
            o.allowScrubing_bl = !1
        }, this.scrub = function(e, s) {
            if (null != o.audio_el && o.audio_el.duration) {
                s && o.startToScrub();
                try {
                    o.audio_el.currentTime = o.audio_el.duration * e, o.dispatchEvent(t.UPDATE_TIME, {
                        time: o.formatTime(o.audio_el.currentTime) + "/" + o.formatTime(o.audio_el.duration)
                    })
                } catch (s) {}
            }
        }, this.setVolume = function(e) {
            e && (o.volume = e), o.audio_el && (o.audio_el.volume = o.volume)
        }, this.destroy = function() {
            o.audio_el && o.audio_el.pause(), o.destroyAudio(), o.audio_el = null, s = null, o.setInnerHTML(""), o = null, n.destroy(), n = null, t.prototype = null
        }, this.init()
    };
    t.setPrototype = function() {
        t.prototype = new FWDRLDisplayObject("div")
    }, t.ERROR = "error", t.UPDATE = "update", t.UPDATE_TIME = "updateTime", t.SAFE_TO_SCRUBB = "safeToControll", t.SAFE_TO_UPDATE_VOLUME = "safeToUpdateVolume", t.LOAD_PROGRESS = "loadProgress", t.START = "start", t.PLAY = "play", t.PAUSE = "pause", t.STOP = "stop", t.PLAY_COMPLETE = "playComplete", e.FWDRLEAPAudioScreen = t
}(window),
function() {
    var e = function(t, s) {
        var i = this;
        e.prototype;
        this.bkPath_img = t.bkPath_img, this.playN_img = t.audioPlayN_img, this.pauseN_img = t.audioPauseN_img, this.audioMainScrubberBkLeft_img = t.audioMainScrubberBkLeft_img, this.mainScrubberBkRight_img = t.mainScrubberBkRight_img, this.mainScrubberDragLeft_img = t.mainScrubberDragLeft_img, this.mainScrubberLine_img = t.mainScrubberLine_img, this.volumeScrubberBkLeft_img = t.volumeScrubberBkLeft_img, this.volumeScrubberBkRight_img = t.volumeScrubberBkRight_img, this.volumeScrubberDragLeft_img = t.volumeScrubberDragLeft_img, this.volumeScrubberLine_img = t.volumeScrubberLine_img, this.timeBk_img = t.timeBk_img, this.volumeN_img = t.volumeN_img, this.volumeS_img = t.volumeS_img, this.volumeD_img = t.volumeD_img, this.progressLeft_img = t.progressLeft_img, this.buttons_ar = [], this.disable_do = null, this.mainHolder_do = null, this.bk_do = null, this.playPauseButton_do = null, this.mainScrubber_do = null, this.mainScrubberBkLeft_do = null, this.mainScrubberBkMiddle_do = null, this.mainScrubberBkRight_do = null, this.mainScrubberDrag_do = null, this.mainScrubberDragLeft_do = null, this.mainScrubberDragMiddle_do = null, this.mainScrubberBarLine_do = null, this.mainProgress_do = null, this.progressLeft_do = null, this.progressMiddle_do = null, this.time_do = null, this.volumeButton_do = null, this.volumeScrubber_do = null, this.volumeScrubberBkLeft_do = null, this.volumeScrubberBkMiddle_do = null, this.volumeScrubberBkRight_do = null, this.volumeScrubberDrag_do = null, this.volumeScrubberDragLeft_do = null, this.volumeScrubberDragMiddle_do = null, this.volumeScrubberBarLine_do = null, this.bkMiddlePath_str = t.bkMiddlePath_str, this.mainScrubberBkMiddlePath_str = t.mainScrubberBkMiddlePath_str, this.volumeScrubberBkMiddlePath_str = t.volumeScrubberBkMiddlePath_str, this.mainScrubberDragMiddlePath_str = t.mainScrubberDragMiddlePath_str, this.volumeScrubberDragMiddlePath_str = t.volumeScrubberDragMiddlePath_str, this.timeColor_str = t.timeColor_str, this.progressMiddlePath_str = t.progressMiddlePath_str, this.audioControllerBackgroundColor_str = t.audioControllerBackgroundColor_str, this.stageWidth = 0, this.scrubbersBkLeftAndRightWidth = this.audioMainScrubberBkLeft_img.width, this.mainScrubberWidth = 0, this.mainScrubberMinWidth = 150, this.volumeScrubberWidth = t.volumeScrubberWidth, this.scrubbersHeight = this.audioMainScrubberBkLeft_img.height, this.mainScrubberDragLeftWidth = i.mainScrubberDragLeft_img.width, this.scrubbersOffsetWidth = t.scrubbersOffsetWidth, this.scrubbersOffestTotalWidth = t.audioScrubbersOffestTotalWidth, this.volume = t.volume, this.lastVolume = i.volume, this.startSpaceBetweenButtons = t.startSpaceBetweenButtons, this.spaceBetweenButtons = t.vdSpaceBetweenButtons, this.timeOffestTotalWidth = 0, this.percentPlayed = 0, this.timeOffestLeftWidth = t.timeOffsetLeftWidth, this.timeOffsetRightWidth = t.timeOffsetRightWidth, this.lastTimeLength = 0, this.showAnimationIntroId_to, this.allowToChangeVolume_bl = t.allowToChangeVolume_bl, this.isMainScrubberScrubbing_bl = !1, this.isMainScrubberDisabled_bl = !1, this.isVolumeScrubberDisabled_bl = !1, this.isMainScrubberLineVisible_bl = !1, this.isVolumeScrubberLineVisible_bl = !1, this.isMute_bl = !1, this.isMobile_bl = FWDRLUtils.isMobile, this.hasPointerEvent_bl = FWDRLUtils.hasPointerEvent, i.init = function() {
            i.mainHolder_do = new FWDRLDisplayObject("div"), i.mainHolder_do.setOverflow("visible"), i.setBkColor(i.audioControllerBackgroundColor_str), i.addChild(i.mainHolder_do), i.setupPlayPauseButton(), i.setupMainScrubber(), i.setupTime(), i.setupVolumeButton(), i.setupVolumeScrubber(), i.isMobile_bl || i.setupDisable()
        }, i.resizeAndPosition = function(e) {
            (s.stageWidth != i.stageWidth || s.stageHeight != i.stageHeight || e) && (i.stageWidth = s.stageWidth, i.stageHeight = s.stageHeight, i.positionButtons())
        }, i.positionButtons = function() {
            var e, t;
            if (i.stageWidth) {
                i.bk_do && i.bk_do.setWidth(i.stageWidth), i.playPauseButton_do && (FWDRLTweenMax.killTweensOf(i.mainHolder_do), i.mainHolder_do.setWidth(i.stageWidth), i.mainHolder_do.setHeight(i.stageHeight), i.setWidth(i.stageWidth), i.setHeight(i.stageHeight));
                for (var o = [], n = 0; n < i.buttons_ar.length; n++) o[n] = i.buttons_ar[n];
                i.mainScrubberWidth = i.stageWidth - 2 * i.startSpaceBetweenButtons;
                for (var n = 0; n < o.length; n++) e = o[n], e != i.mainScrubber_do && (i.mainScrubberWidth -= e.w + i.spaceBetweenButtons);
                for (; i.mainScrubberWidth < i.mainScrubberMinWidth && o.length > 3;) {
                    i.mainScrubberWidth = i.stageWidth - 2 * i.startSpaceBetweenButtons, i.volumeScrubber_do && -1 != FWDRLUtils.indexOfArray(o, i.volumeScrubber_do) ? (o.splice(FWDRLUtils.indexOfArray(o, i.volumeScrubber_do), 1), i.volumeScrubber_do.setX(-1e3)) : i.time_do && -1 != FWDRLUtils.indexOfArray(o, i.time_do) ? (o.splice(FWDRLUtils.indexOfArray(o, i.time_do), 1), i.time_do.setX(-1e3)) : i.mainScrubber_do && -1 != FWDRLUtils.indexOfArray(o, i.mainScrubber_do) ? (o.splice(FWDRLUtils.indexOfArray(o, i.mainScrubber_do), 1), i.mainScrubber_do.setX(-1e3)) : i.volumeButton_do && -1 != FWDRLUtils.indexOfArray(o, i.volumeButton_do) && (o.splice(FWDRLUtils.indexOfArray(o, i.volumeButton_do), 1), i.volumeButton_do.setX(-1e3));
                    for (var n = 0; n < o.length; n++) e = o[n], e != i.mainScrubber_do && (i.mainScrubberWidth -= e.w + i.spaceBetweenButtons)
                }(o[o.length - 1] == i.volumeScrubber_do || o[o.length - 1] == i.mainScrubber_do) && (i.mainScrubberWidth -= i.scrubbersOffestTotalWidth), o[o.length - 1] == i.time_do && (i.mainScrubberWidth -= i.timeOffestTotalWidth);
                for (var n = 0; n < o.length; n++) e = o[n], FWDRLTweenMax.killTweensOf(e), 0 == n ? e.setX(i.startSpaceBetweenButtons) : e == i.mainScrubber_do ? (t = o[n - 1], i.mainScrubber_do.setX(t.x + t.w + i.spaceBetweenButtons), i.mainScrubber_do.setWidth(i.mainScrubberWidth), i.mainScrubberBkMiddle_do.setWidth(i.mainScrubberWidth - 2 * i.scrubbersBkLeftAndRightWidth), i.mainScrubberBkRight_do.setX(i.mainScrubberWidth - i.scrubbersBkLeftAndRightWidth), i.mainScrubberDragMiddle_do.setWidth(i.mainScrubberWidth - i.scrubbersBkLeftAndRightWidth - i.scrubbersOffsetWidth)) : (t = o[n - 1], e.setX(t.x + t.w + i.spaceBetweenButtons)), e.setY(parseInt((i.stageHeight - e.h) / 2));
                i.disable_do && (i.disable_do.setWidth(i.stageWidth), i.disable_do.setHeight(i.stageHeight)), (!i.mainScrubber_do || i.mainScrubber_do && i.mainScrubber_do.x < 0) && e && (s.stageWidth = e.x + e.w + i.startSpaceBetweenButtons, i.stageWidth = s.stageWidth, s.resizeHandler(!0)), i.progressMiddle_do && i.progressMiddle_do.setWidth(i.mainScrubberWidth - i.scrubbersBkLeftAndRightWidth - i.scrubbersOffsetWidth), i.updateMainScrubber(i.percentPlayed)
            }
        }, this.setupDisable = function() {
            i.disable_do = new FWDRLDisplayObject("div"), FWDRLUtils.isIE && (i.disable_do.setBkColor("#FFFFFF"), i.disable_do.setAlpha(0))
        }, this.setupMainScrubber = function() {
            i.mainScrubber_do = new FWDRLDisplayObject("div"), i.mainScrubber_do.setHeight(i.scrubbersHeight), i.mainScrubberBkLeft_do = new FWDRLDisplayObject("img"), i.mainScrubberBkLeft_do.setScreen(i.audioMainScrubberBkLeft_img), i.mainScrubberBkRight_do = new FWDRLDisplayObject("img");
            var e = new Image;
            e.src = t.mainScrubberBkRightPath_str, i.mainScrubberBkRight_do.setScreen(e), i.mainScrubberBkRight_do.setWidth(i.mainScrubberBkLeft_do.w), i.mainScrubberBkRight_do.setHeight(i.mainScrubberBkLeft_do.h);
            var s = new Image;
            s.src = i.mainScrubberBkMiddlePath_str, i.isMobile_bl ? (i.mainScrubberBkMiddle_do = new FWDRLDisplayObject("div"), i.mainScrubberBkMiddle_do.getStyle().background = "url('" + i.mainScrubberBkMiddlePath_str + "') repeat-x") : (i.mainScrubberBkMiddle_do = new FWDRLDisplayObject("img"), i.mainScrubberBkMiddle_do.setScreen(s)), i.mainScrubberBkMiddle_do.setHeight(i.scrubbersHeight), i.mainScrubberBkMiddle_do.setX(i.scrubbersBkLeftAndRightWidth), i.mainProgress_do = new FWDRLDisplayObject("div"), i.mainProgress_do.setHeight(i.scrubbersHeight), i.progressLeft_do = new FWDRLDisplayObject("img"), i.progressLeft_do.setScreen(i.progress), s = new Image, s.src = i.progressMiddlePath_str, i.progressMiddle_do = new FWDRLDisplayObject("div"), i.progressMiddle_do.getStyle().background = "url('" + i.progressMiddlePath_str + "') repeat-x", i.progressMiddle_do.setHeight(i.scrubbersHeight), i.progressMiddle_do.setX(i.mainScrubberDragLeftWidth), i.mainScrubberDrag_do = new FWDRLDisplayObject("div"), i.mainScrubberDrag_do.setHeight(i.scrubbersHeight), i.mainScrubberDragLeft_do = new FWDRLDisplayObject("img"), i.mainScrubberDragLeft_do.setScreen(i.mainScrubberDragLeft_img), s = new Image, s.src = i.mainScrubberDragMiddlePath_str, i.isMobile_bl ? (i.mainScrubberDragMiddle_do = new FWDRLDisplayObject("div"), i.mainScrubberDragMiddle_do.getStyle().background = "url('" + i.mainScrubberDragMiddlePath_str + "') repeat-x") : (i.mainScrubberDragMiddle_do = new FWDRLDisplayObject("img"), i.mainScrubberDragMiddle_do.setScreen(s)), i.mainScrubberDragMiddle_do.setHeight(i.scrubbersHeight), i.mainScrubberDragMiddle_do.setX(i.mainScrubberDragLeftWidth), i.mainScrubberBarLine_do = new FWDRLDisplayObject("img"), i.mainScrubberBarLine_do.setScreen(i.mainScrubberLine_img), i.mainScrubberBarLine_do.setAlpha(0), i.mainScrubberBarLine_do.hasTransform3d_bl = !1, i.mainScrubberBarLine_do.hasTransform2d_bl = !1, i.buttons_ar.push(i.mainScrubber_do), i.mainScrubber_do.addChild(i.mainScrubberBkLeft_do), i.mainScrubber_do.addChild(i.mainScrubberBkMiddle_do), i.mainScrubber_do.addChild(i.mainScrubberBkRight_do), i.mainScrubber_do.addChild(i.mainScrubberBarLine_do), i.mainScrubberDrag_do.addChild(i.mainScrubberDragLeft_do), i.mainScrubberDrag_do.addChild(i.mainScrubberDragMiddle_do), i.mainProgress_do.addChild(i.progressLeft_do), i.mainProgress_do.addChild(i.progressMiddle_do), i.mainScrubber_do.addChild(i.mainProgress_do), i.mainScrubber_do.addChild(i.mainScrubberDrag_do), i.mainScrubber_do.addChild(i.mainScrubberBarLine_do), i.mainHolder_do.addChild(i.mainScrubber_do), i.isMobile_bl ? i.hasPointerEvent_bl ? (i.mainScrubber_do.screen.addEventListener("pointerover", i.mainScrubberOnOverHandler), i.mainScrubber_do.screen.addEventListener("pointerout", i.mainScrubberOnOutHandler), i.mainScrubber_do.screen.addEventListener("pointerdown", i.mainScrubberOnDownHandler)) : i.mainScrubber_do.screen.addEventListener("touchstart", i.mainScrubberOnDownHandler) : i.screen.addEventListener ? (i.mainScrubber_do.screen.addEventListener("mouseover", i.mainScrubberOnOverHandler), i.mainScrubber_do.screen.addEventListener("mouseout", i.mainScrubberOnOutHandler), i.mainScrubber_do.screen.addEventListener("mousedown", i.mainScrubberOnDownHandler)) : i.screen.attachEvent && (i.mainScrubber_do.screen.attachEvent("onmouseover", i.mainScrubberOnOverHandler), i.mainScrubber_do.screen.attachEvent("onmouseout", i.mainScrubberOnOutHandler), i.mainScrubber_do.screen.attachEvent("onmousedown", i.mainScrubberOnDownHandler)), i.disableMainScrubber(), i.updateMainScrubber(0)
        }, this.mainScrubberOnOverHandler = function(e) {
            i.isMainScrubberDisabled_bl
        }, this.mainScrubberOnOutHandler = function(e) {
            i.isMainScrubberDisabled_bl
        }, this.mainScrubberOnDownHandler = function(t) {
            if (!i.isMainScrubberDisabled_bl) {
                t.preventDefault && t.preventDefault(), i.isMainScrubberScrubbing_bl = !0;
                var s = FWDRLUtils.getViewportMouseCoordinates(t),
                    o = s.screenX - i.mainScrubber_do.getGlobalX();
                0 > o ? o = 0 : o > i.mainScrubberWidth - i.scrubbersOffsetWidth && (o = i.mainScrubberWidth - i.scrubbersOffsetWidth);
                var n = o / i.mainScrubberWidth;
                i.disable_do && i.addChild(i.disable_do), i.updateMainScrubber(n), i.dispatchEvent(e.START_TO_SCRUB), i.dispatchEvent(e.SCRUB, {
                    percent: n
                }), i.isMobile_bl ? i.hasPointerEvent_bl ? (window.addEventListener("pointermove", i.mainScrubberMoveHandler), window.addEventListener("pointerup", i.mainScrubberEndHandler)) : (window.addEventListener("touchmove", i.mainScrubberMoveHandler), window.addEventListener("touchend", i.mainScrubberEndHandler)) : window.addEventListener ? (window.addEventListener("mousemove", i.mainScrubberMoveHandler), window.addEventListener("mouseup", i.mainScrubberEndHandler)) : document.attachEvent && (document.attachEvent("onmousemove", i.mainScrubberMoveHandler), document.attachEvent("onmouseup", i.mainScrubberEndHandler))
            }
        }, this.mainScrubberMoveHandler = function(t) {
            t.preventDefault && t.preventDefault();
            var s = FWDRLUtils.getViewportMouseCoordinates(t),
                o = s.screenX - i.mainScrubber_do.getGlobalX();
            0 > o ? o = 0 : o > i.mainScrubberWidth - i.scrubbersOffsetWidth && (o = i.mainScrubberWidth - i.scrubbersOffsetWidth);
            var n = o / i.mainScrubberWidth;
            i.updateMainScrubber(n), i.dispatchEvent(e.SCRUB, {
                percent: n
            })
        }, this.mainScrubberEndHandler = function(t) {
            i.disable_do && i.contains(i.disable_do) && i.removeChild(i.disable_do), i.dispatchEvent(e.STOP_TO_SCRUB), i.isMobile_bl ? i.hasPointerEvent_bl ? (window.removeEventListener("pointermove", i.mainScrubberMoveHandler), window.removeEventListener("pointerup", i.mainScrubberEndHandler)) : (window.removeEventListener("touchmove", i.mainScrubberMoveHandler), window.removeEventListener("touchend", i.mainScrubberEndHandler)) : window.removeEventListener ? (window.removeEventListener("mousemove", i.mainScrubberMoveHandler), window.removeEventListener("mouseup", i.mainScrubberEndHandler)) : document.detachEvent && (document.detachEvent("onmousemove", i.mainScrubberMoveHandler), document.detachEvent("onmouseup", i.mainScrubberEndHandler))
        }, this.disableMainScrubber = function() {
            i.mainScrubber_do && (i.isMainScrubberDisabled_bl = !0, i.mainScrubber_do.setButtonMode(!1), i.mainScrubberEndHandler(), i.updateMainScrubber(0), i.updatePreloaderBar(0))
        }, this.enableMainScrubber = function() {
            i.mainScrubber_do && (i.isMainScrubberDisabled_bl = !1, i.mainScrubber_do.setButtonMode(!0))
        }, this.updateMainScrubber = function(e) {
            if (i.mainScrubber_do && !isNaN(e)) {
                var t = parseInt(e * i.mainScrubberWidth);
                i.percentPlayed = e, !FWDRLEAP.hasHTML5Audio && t >= i.mainProgress_do.w && (t = i.mainProgress_do.w), 1 > t && i.isMainScrubberLineVisible_bl ? (i.isMainScrubberLineVisible_bl = !1, FWDRLTweenMax.to(i.mainScrubberBarLine_do, .5, {
                    alpha: 0
                })) : t > 1 && !i.isMainScrubberLineVisible_bl && (i.isMainScrubberLineVisible_bl = !0, FWDRLTweenMax.to(i.mainScrubberBarLine_do, .5, {
                    alpha: 1
                })), (isNaN(t) || 0 > t) && (t = 0), i.mainScrubberDrag_do.setWidth(t), t > i.mainScrubberWidth - i.scrubbersOffsetWidth && (t = i.mainScrubberWidth - i.scrubbersOffsetWidth), FWDRLTweenMax.to(i.mainScrubberBarLine_do, .8, {
                    x: t + 1,
                    ease: Expo.easeOut
                })
            }
        }, this.updatePreloaderBar = function(e) {
            if (i.mainProgress_do && !isNaN(e)) {
                var t = parseInt(e * i.mainScrubberWidth);
                1 == e ? i.mainProgress_do.setY(-30) : 0 != i.mainProgress_do.y && 1 != e && i.mainProgress_do.setY(0), t > i.mainScrubberWidth - i.scrubbersOffsetWidth && (t = i.mainScrubberWidth - i.scrubbersOffsetWidth), (isNaN(t) || 0 > t) && (t = 0), i.mainProgress_do.setWidth(t)
            }
        }, this.setupPlayPauseButton = function() {
            FWDRLComplexButton.setPrototype(), i.playPauseButton_do = new FWDRLComplexButton(i.playN_img, t.audioPlaySPath_str, i.pauseN_img, t.audioPauseSPath_str, !0), i.buttons_ar.push(i.playPauseButton_do), i.playPauseButton_do.addListener(FWDRLComplexButton.MOUSE_UP, i.playButtonMouseUpHandler), i.mainHolder_do.addChild(i.playPauseButton_do)
        }, this.showPlayButton = function() {
            i.playPauseButton_do && i.playPauseButton_do.setButtonState(1)
        }, this.showPauseButton = function() {
            i.playPauseButton_do && i.playPauseButton_do.setButtonState(0)
        }, this.playButtonMouseUpHandler = function() {
            0 == i.playPauseButton_do.currentState ? i.dispatchEvent(e.PAUSE) : i.dispatchEvent(e.PLAY)
        }, this.setupTime = function() {
            i.time_do = new FWDRLDisplayObject("div"), i.time_do.hasTransform3d_bl = !1, i.time_do.hasTransform2d_bl = !1, i.time_do.setBackfaceVisibility(), i.time_do.getStyle().paddingLeft = i.timeOffestLeftWidth + "px", i.time_do.getStyle().paddingRight = i.timeOffsetRightWidth + "px", i.time_do.getStyle().fontFamily = "Arial", i.time_do.getStyle().fontSize = "12px", i.time_do.getStyle().whiteSpace = "nowrap", i.time_do.getStyle().textAlign = "center", i.time_do.getStyle().color = i.timeColor_str, i.time_do.getStyle().fontSmoothing = "antialiased", i.time_do.getStyle().webkitFontSmoothing = "antialiased", i.time_do.getStyle().textRendering = "optimizeLegibility", i.mainHolder_do.addChild(i.time_do), i.updateTime("00:00/00:00"), i.buttons_ar.push(i.time_do)
        }, this.updateTime = function(e) {
            i.time_do && (i.time_do.setInnerHTML(e), i.lastTimeLength != e.length && (i.time_do.w = i.time_do.getWidth(), i.positionButtons(), setTimeout(function() {
                i.time_do.w = i.time_do.getWidth(), i.time_do.h = i.time_do.getHeight(), i.positionButtons()
            }, 50), i.lastTimeLength = e.length))
        }, this.setupVolumeButton = function() {
            FWDRLEVPVolumeButton.setPrototype(), i.volumeButton_do = new FWDRLEVPVolumeButton(i.volumeN_img, t.volumeSPath_str, t.volumeDPath_str), i.volumeButton_do.addListener(FWDRLEVPVolumeButton.MOUSE_UP, i.volumeOnMouseUpHandler), i.buttons_ar.push(i.volumeButton_do), i.mainHolder_do.addChild(i.volumeButton_do), i.allowToChangeVolume_bl || i.volumeButton_do.disable()
        }, this.volumeOnMouseUpHandler = function() {
            var e = i.lastVolume;
            i.isMute_bl ? (e = i.lastVolume, i.isMute_bl = !1) : (e = 1e-6, i.isMute_bl = !0), i.updateVolume(e)
        }, this.setupVolumeScrubber = function() {
            i.volumeScrubber_do = new FWDRLDisplayObject("div"), i.volumeScrubber_do.setHeight(i.scrubbersHeight), i.volumeScrubberBkLeft_do = new FWDRLDisplayObject("img");
            var e = new Image;
            e.src = t.volumeScrubberBkLeftPath_str, i.volumeScrubberBkLeft_do.setScreen(e), i.volumeScrubberBkLeft_do.setWidth(i.audioMainScrubberBkLeft_img.width), i.volumeScrubberBkLeft_do.setHeight(i.audioMainScrubberBkLeft_img.height), i.volumeScrubberBkRight_do = new FWDRLDisplayObject("img");
            var s = new Image;
            s.src = t.volumeScrubberBkRightPath_str, i.volumeScrubberBkRight_do.setScreen(s), i.volumeScrubberBkRight_do.setWidth(i.mainScrubberBkRight_img.width), i.volumeScrubberBkRight_do.setHeight(i.mainScrubberBkRight_img.height);
            var o = new Image;
            o.src = i.volumeScrubberBkMiddlePath_str, i.isMobile_bl ? (i.volumeScrubberBkMiddle_do = new FWDRLDisplayObject("div"), i.volumeScrubberBkMiddle_do.getStyle().background = "url('" + i.volumeScrubberBkMiddlePath_str + "') repeat-x") : (i.volumeScrubberBkMiddle_do = new FWDRLDisplayObject("img"), i.volumeScrubberBkMiddle_do.setScreen(o)), i.volumeScrubberBkMiddle_do.setHeight(i.scrubbersHeight), i.volumeScrubberBkMiddle_do.setX(i.scrubbersBkLeftAndRightWidth), i.volumeScrubberDrag_do = new FWDRLDisplayObject("div"), i.volumeScrubberDrag_do.setHeight(i.scrubbersHeight), i.volumeScrubberDragLeft_do = new FWDRLDisplayObject("img");
            var n = new Image;
            n.src = t.volumeScrubberDragLeftPath_str, i.volumeScrubberDragLeft_do.setScreen(n), i.volumeScrubberDragLeft_do.setWidth(i.mainScrubberDragLeft_img.width), i.volumeScrubberDragLeft_do.setHeight(i.mainScrubberDragLeft_img.height), o = new Image, o.src = i.volumeScrubberDragMiddlePath_str, i.isMobile_bl ? (i.volumeScrubberDragMiddle_do = new FWDRLDisplayObject("div"),
                i.volumeScrubberDragMiddle_do.getStyle().background = "url('" + i.volumeScrubberDragMiddlePath_str + "') repeat-x") : (i.volumeScrubberDragMiddle_do = new FWDRLDisplayObject("img"), i.volumeScrubberDragMiddle_do.setScreen(o)), i.volumeScrubberDragMiddle_do.setHeight(i.scrubbersHeight), i.volumeScrubberDragMiddle_do.setX(i.mainScrubberDragLeftWidth), i.volumeScrubberBarLine_do = new FWDRLDisplayObject("img");
            var r = new Image;
            r.src = t.volumeScrubberLinePath_str, i.volumeScrubberBarLine_do.setScreen(r), i.volumeScrubberBarLine_do.setWidth(i.mainScrubberLine_img.width), i.volumeScrubberBarLine_do.setHeight(i.mainScrubberLine_img.height), i.volumeScrubberBarLine_do.setAlpha(0), i.volumeScrubberBarLine_do.hasTransform3d_bl = !1, i.volumeScrubberBarLine_do.hasTransform2d_bl = !1, i.volumeScrubber_do.setWidth(i.volumeScrubberWidth), i.volumeScrubberBkMiddle_do.setWidth(i.volumeScrubberWidth - 2 * i.scrubbersBkLeftAndRightWidth), i.volumeScrubberBkRight_do.setX(i.volumeScrubberWidth - i.scrubbersBkLeftAndRightWidth), i.volumeScrubberDragMiddle_do.setWidth(i.volumeScrubberWidth - i.scrubbersBkLeftAndRightWidth - i.scrubbersOffsetWidth), i.volumeScrubber_do.addChild(i.volumeScrubberBkLeft_do), i.volumeScrubber_do.addChild(i.volumeScrubberBkMiddle_do), i.volumeScrubber_do.addChild(i.volumeScrubberBkRight_do), i.volumeScrubber_do.addChild(i.volumeScrubberBarLine_do), i.volumeScrubberDrag_do.addChild(i.volumeScrubberDragLeft_do), i.volumeScrubberDrag_do.addChild(i.volumeScrubberDragMiddle_do), i.volumeScrubber_do.addChild(i.volumeScrubberDrag_do), i.volumeScrubber_do.addChild(i.volumeScrubberBarLine_do), i.buttons_ar.push(i.volumeScrubber_do), i.mainHolder_do.addChild(i.volumeScrubber_do), i.allowToChangeVolume_bl && (i.isMobile_bl ? i.hasPointerEvent_bl ? (i.volumeScrubber_do.screen.addEventListener("pointerover", i.volumeScrubberOnOverHandler), i.volumeScrubber_do.screen.addEventListener("pointerout", i.volumeScrubberOnOutHandler), i.volumeScrubber_do.screen.addEventListener("pointerdown", i.volumeScrubberOnDownHandler)) : i.volumeScrubber_do.screen.addEventListener("touchstart", i.volumeScrubberOnDownHandler) : i.screen.addEventListener ? (i.volumeScrubber_do.screen.addEventListener("mouseover", i.volumeScrubberOnOverHandler), i.volumeScrubber_do.screen.addEventListener("mouseout", i.volumeScrubberOnOutHandler), i.volumeScrubber_do.screen.addEventListener("mousedown", i.volumeScrubberOnDownHandler)) : i.screen.attachEvent && (i.volumeScrubber_do.screen.attachEvent("onmouseover", i.volumeScrubberOnOverHandler), i.volumeScrubber_do.screen.attachEvent("onmouseout", i.volumeScrubberOnOutHandler), i.volumeScrubber_do.screen.attachEvent("onmousedown", i.volumeScrubberOnDownHandler))), i.enableVolumeScrubber(), i.updateVolumeScrubber(i.volume)
        }, this.volumeScrubberOnOverHandler = function(e) {
            i.isVolumeScrubberDisabled_bl
        }, this.volumeScrubberOnOutHandler = function(e) {
            i.isVolumeScrubberDisabled_bl
        }, this.volumeScrubberOnDownHandler = function(e) {
            if (!i.isVolumeScrubberDisabled_bl) {
                e.preventDefault && e.preventDefault();
                var t = FWDRLUtils.getViewportMouseCoordinates(e),
                    s = t.screenX - i.volumeScrubber_do.getGlobalX();
                0 > s ? s = 0 : s > i.volumeScrubberWidth - i.scrubbersOffsetWidth && (s = i.volumeScrubberWidth - i.scrubbersOffsetWidth);
                var o = s / i.volumeScrubberWidth;
                i.disable_do && i.addChild(i.disable_do), i.lastVolume = o, i.updateVolume(o), i.isMobile_bl ? i.hasPointerEvent_bl ? (window.addEventListener("pointermove", i.volumeScrubberMoveHandler), window.addEventListener("pointerup", i.volumeScrubberEndHandler)) : (window.addEventListener("touchmove", i.volumeScrubberMoveHandler), window.addEventListener("touchend", i.volumeScrubberEndHandler)) : window.addEventListener ? (window.addEventListener("mousemove", i.volumeScrubberMoveHandler), window.addEventListener("mouseup", i.volumeScrubberEndHandler)) : document.attachEvent && (document.attachEvent("onmousemove", i.volumeScrubberMoveHandler), document.attachEvent("onmouseup", i.volumeScrubberEndHandler))
            }
        }, this.volumeScrubberMoveHandler = function(e) {
            if (!i.isVolumeScrubberDisabled_bl) {
                e.preventDefault && e.preventDefault();
                var t = FWDRLUtils.getViewportMouseCoordinates(e),
                    s = t.screenX - i.volumeScrubber_do.getGlobalX();
                0 > s ? s = 0 : s > i.volumeScrubberWidth - i.scrubbersOffsetWidth && (s = i.volumeScrubberWidth - i.scrubbersOffsetWidth);
                var o = s / i.volumeScrubberWidth;
                i.lastVolume = o, i.updateVolume(o)
            }
        }, this.volumeScrubberEndHandler = function() {
            i.disable_do && i.contains(i.disable_do) && i.removeChild(i.disable_do), i.isMobile_bl ? i.hasPointerEvent_bl ? (window.removeEventListener("pointermove", i.volumeScrubberMoveHandler), window.removeEventListener("pointerup", i.volumeScrubberEndHandler)) : (window.removeEventListener("touchmove", i.volumeScrubberMoveHandler), window.removeEventListener("touchend", i.volumeScrubberEndHandler)) : window.removeEventListener ? (window.removeEventListener("mousemove", i.volumeScrubberMoveHandler), window.removeEventListener("mouseup", i.volumeScrubberEndHandler)) : document.detachEvent && (document.detachEvent("onmousemove", i.volumeScrubberMoveHandler), document.detachEvent("onmouseup", i.volumeScrubberEndHandler))
        }, this.disableVolumeScrubber = function() {
            i.isVolumeScrubberDisabled_bl = !0, i.volumeScrubber_do.setButtonMode(!1), i.volumeScrubberEndHandler()
        }, this.enableVolumeScrubber = function() {
            i.isVolumeScrubberDisabled_bl = !1, i.volumeScrubber_do.setButtonMode(!0)
        }, this.updateVolumeScrubber = function(e) {
            var t = parseInt(e * i.volumeScrubberWidth);
            i.volumeScrubberDrag_do.setWidth(t), 1 > t && i.isVolumeScrubberLineVisible_bl ? (i.isVolumeScrubberLineVisible_bl = !1, FWDRLTweenMax.to(i.volumeScrubberBarLine_do, .5, {
                alpha: 0
            })) : t > 1 && !i.isVolumeScrubberLineVisible_bl && (i.isVolumeScrubberLineVisible_bl = !0, FWDRLTweenMax.to(i.volumeScrubberBarLine_do, .5, {
                alpha: 1
            })), t > i.volumeScrubberWidth - i.scrubbersOffsetWidth && (t = i.volumeScrubberWidth - i.scrubbersOffsetWidth), FWDRLTweenMax.to(i.volumeScrubberBarLine_do, .8, {
                x: t + 1,
                ease: Expo.easeOut
            })
        }, this.updateVolume = function(t) {
            i.volume = t, i.volume <= 1e-6 ? (i.isMute_bl = !0, i.volume = 1e-6) : i.voume >= 1 ? (i.isMute_bl = !1, i.volume = 1) : i.isMute_bl = !1, 1e-6 == i.volume ? i.volumeButton_do && i.volumeButton_do.setDisabledState() : i.volumeButton_do && i.volumeButton_do.setEnabledState(), i.volumeScrubberBarLine_do && i.updateVolumeScrubber(i.volume), i.dispatchEvent(e.CHANGE_VOLUME, {
                percent: i.volume
            })
        }, this.cleanMainEvents = function() {}, this.init()
    };
    e.setPrototype = function() {
        e.prototype = new FWDRLDisplayObject("div")
    }, e.PLAY = "play", e.PAUSE = "pause", e.START_TO_SCRUB = "startToScrub", e.SCRUB = "scrub", e.STOP_TO_SCRUB = "stopToScrub", e.CHANGE_VOLUME = "changeVolume", e.prototype = null, window.FWDRLEAPController = e
}(),
function() {
    var e = function() {
        this.listeners = {
            events_ar: []
        }, this.addListener = function(e, t) {
            if (void 0 == e) throw Error("type is required.");
            if ("object" == typeof e) throw Error("type must be of type String.");
            if ("function" != typeof t) throw Error("listener must be of type Function.");
            var s = {};
            s.type = e, s.listener = t, s.target = this, this.listeners.events_ar.push(s)
        }, this.dispatchEvent = function(e, t) {
            if (null != this.listeners) {
                if (void 0 == e) throw Error("type is required.");
                if ("object" == typeof e) throw Error("type must be of type String.");
                for (var s = 0, i = this.listeners.events_ar.length; i > s; s++)
                    if (this.listeners.events_ar[s].target === this && this.listeners.events_ar[s].type === e) {
                        if (t)
                            for (var o in t) this.listeners.events_ar[s][o] = t[o];
                        this.listeners.events_ar[s].listener.call(this, this.listeners.events_ar[s])
                    }
            }
        }, this.removeListener = function(e, t) {
            if (void 0 == e) throw Error("type is required.");
            if ("object" == typeof e) throw Error("type must be of type String.");
            if ("function" != typeof t) throw Error("listener must be of type Function." + e);
            for (var s = 0, i = this.listeners.events_ar.length; i > s; s++)
                if (this.listeners.events_ar[s].target === this && this.listeners.events_ar[s].type === e && this.listeners.events_ar[s].listener === t) {
                    this.listeners.events_ar.splice(s, 1);
                    break
                }
        }, this.destroy = function() {
            this.listeners = null, this.addListener = null, this.dispatchEvent = null, this.removeListener = null
        }
    };
    window.FWDRLEventDispatcher = e
}(window),
function() {
    var e = function(t, s) {
        var i = this;
        e.prototype;
        this.bkLeft_img = t.bkLeft_img, this.bkRight_img = t.bkRight_img, this.videoPlayN_img = t.videoPlayN_img, this.playS_img = t.playS_img, this.videoPauseN_img = t.videoPauseN_img, this.pauseS_img = t.pauseS_img, this.videoMainScrubberBkLeft_img = t.videoMainScrubberBkLeft_img, this.videoMainScrubberDragLeft_img = t.videoMainScrubberDragLeft_img, this.videoMainScrubberLine_img = t.videoMainScrubberLine_img, this.volumeScrubberBkLeft_img = t.volumeScrubberBkLeft_img, this.volumeScrubberDragLeft_img = t.volumeScrubberDragLeft_img, this.volumeScrubberLine_img = t.volumeScrubberLine_img, this.videoProgressLeft_img = t.videoProgressLeft_img, this.videoVolumeN_img = t.videoVolumeN_img, this.volumeS_img = t.volumeS_img, this.volumeD_img = t.volumeD_img, this.videoFullScreenN_img = t.videoFullScreenN_img, this.videoNormalScreenN_img = t.videoNormalScreenN_img, this.buttons_ar = [], this.pointer_do, this.disable_do = null, this.mainHolder_do = null, this.playPauseButton_do = null, this.mainScrubber_do = null, this.mainScrubberBkLeft_do = null, this.mainScrubberBkMiddle_do = null, this.mainScrubberBkRight_do = null, this.mainScrubberDrag_do = null, this.mainScrubberDragLeft_do = null, this.mainScrubberDragMiddle_do = null, this.mainScrubberBarLine_do = null, this.mainProgress_do = null, this.progressLeft_do = null, this.progressMiddle_do = null, this.time_do = null, this.volumeButton_do = null, this.volumeScrubber_do = null, this.volumeScrubberBkLeft_do = null, this.volumeScrubberBkMiddle_do = null, this.volumeScrubberBkRight_do = null, this.volumeScrubberDrag_do = null, this.volumeScrubberDragLeft_do = null, this.volumeScrubberDragMiddle_do = null, this.volumeScrubberBarLine_do = null, this.fullScreenButton_do = null, this.bk_do = null, this.isMainScrubberOnTop_bl = !0, this.videoControllerBackgroundColor_str = t.videoControllerBackgroundColor_str, this.videoBkMiddlePath_str = t.videoBkMiddlePath_str, this.videoMainScrubberBkMiddlePath_str = t.videoMainScrubberBkMiddlePath_str, this.videoVolumeScrubberBkMiddlePath_str = t.videoVolumeScrubberBkMiddlePath_str, this.videoMainScrubberDragMiddlePath_str = t.videoMainScrubberDragMiddlePath_str, this.videoVolumeScrubberDragMiddlePath_str = t.videoVolumeScrubberDragMiddlePath_str, this.timeColor_str = t.timeColor_str, this.videoProgressMiddlePath_str = t.videoProgressMiddlePath_str, this.mainScrubberOffestTop = t.mainScrubberOffestTop, this.stageWidth = 0, this.stageHeight = t.controllerHeight, this.scrubbersBkLeftAndRightWidth = this.videoMainScrubberBkLeft_img.width, this.mainScrubberWidth = 0, this.mainScrubberMinWidth = 100, this.volumeScrubberWidth = t.volumeScrubberWidth, this.scrubbersHeight = this.videoMainScrubberBkLeft_img.height, this.mainScrubberDragLeftWidth = i.videoMainScrubberDragLeft_img.width, this.scrubbersOffsetWidth = t.scrubbersOffsetWidth, this.volumeScrubberOffsetRightWidth = t.volumeScrubberOffsetRightWidth, this.volume = t.volume, this.lastVolume = i.volume, this.startSpaceBetweenButtons = t.startSpaceBetweenButtons, this.vdSpaceBetweenButtons = t.vdSpaceBetweenButtons, this.percentPlayed = 0, this.percentLoaded = 0, this.lastTimeLength = 0, this.pointerWidth = 8, this.pointerHeight = 5, this.timeOffsetLeftWidth = t.timeOffsetLeftWidth, this.timeOffsetRightWidth = t.timeOffsetRightWidth, this.videoShowFullScreenButton_bl = t.videoShowFullScreenButton_bl, this.showVolumeScrubber_bl = t.showVolumeScrubber_bl, this.allowToChangeVolume_bl = t.allowToChangeVolume_bl, this.showTime_bl = t.showTime_bl, this.showVolumeButton_bl = t.showVolumeButton_bl, this.showControllerWhenVideoIsStopped_bl = t.showControllerWhenVideoIsStopped_bl, this.isMainScrubberScrubbing_bl = !1, this.isMainScrubberDisabled_bl = !1, this.isVolumeScrubberDisabled_bl = !1, this.isMainScrubberLineVisible_bl = !1, this.isVolumeScrubberLineVisible_bl = !1, this.isMute_bl = !1, this.isShowed_bl = !0, this.repeatBackground_bl = t.repeatBackground_bl, this.isMobile_bl = FWDRLUtils.isMobile, this.hasPointerEvent_bl = FWDRLUtils.hasPointerEvent, i.init = function() {
            i.setOverflow("visible"), i.mainHolder_do = new FWDRLDisplayObject("div"), i.mainHolder_do.getStyle().backgroundColor = i.videoControllerBackgroundColor_str, i.mainHolder_do.setOverflow("visible"), i.addChild(i.mainHolder_do), i.setupPlayPauseButton(), i.setupMainScrubber(), i.showTime_bl && i.setupTime(), i.showVolumeButton_bl && i.setupVolumeButton(), i.showVolumeScrubber_bl && i.setupVolumeScrubber(), i.videoShowFullScreenButton_bl && i.setupFullscreenButton(), i.isMobile_bl || i.setupDisable(), i.hide(!1, !0), i.showControllerWhenVideoIsStopped_bl && i.show(!0)
        }, i.resizeAndPosition = function() {
            i.stageWidth = s.stageWidth, i.positionButtons(), i.setY(s.stageHeight - i.stageHeight)
        }, i.positionButtons = function() {
            if (i.stageWidth) {
                var e, t, s = i.showTime_bl,
                    o = i.volumeScrubber_do;
                i.mainHolder_do.setWidth(i.stageWidth), i.mainHolder_do.setHeight(i.stageHeight), i.setWidth(i.stageWidth), i.setHeight(i.stageHeight);
                for (var n = [], r = 0; r < i.buttons_ar.length; r++) n[r] = i.buttons_ar[r];
                i.mainScrubberWidth = i.stageWidth - 2 * i.startSpaceBetweenButtons;
                for (var r = 0; r < n.length; r++) e = n[r], e != i.mainScrubber_do && (i.mainScrubberWidth -= e.w + i.vdSpaceBetweenButtons);
                for (var l = 3; i.mainScrubberWidth < i.mainScrubberMinWidth && n.length > l;) {
                    i.mainScrubberWidth = i.stageWidth - 2 * i.startSpaceBetweenButtons, i.volumeScrubber_do && -1 != FWDRLUtils.indexOfArray(n, i.volumeScrubber_do) ? (n.splice(FWDRLUtils.indexOfArray(n, i.volumeScrubber_do), 1), i.volumeScrubber_do.setX(-1e3)) : i.time_do && -1 != FWDRLUtils.indexOfArray(n, i.time_do) ? (n.splice(FWDRLUtils.indexOfArray(n, i.time_do), 1), i.time_do.setX(-1e3), s = !1) : i.volumeButton_do && -1 != FWDRLUtils.indexOfArray(n, i.volumeButton_do) ? (n.splice(FWDRLUtils.indexOfArray(n, i.volumeButton_do), 1), i.volumeButton_do.setX(-1e3)) : i.volumeScrubber_do && -1 != FWDRLUtils.indexOfArray(n, i.volumeScrubber_do) && (n.splice(FWDRLUtils.indexOfArray(n, i.volumeScrubber_do), 1), i.volumeScrubber_do.setX(-1e3), o = !1);
                    for (var r = 0; r < n.length; r++) e = n[r], e != i.mainScrubber_do && (i.mainScrubberWidth -= e.w + i.vdSpaceBetweenButtons)
                }
                s && (i.mainScrubberWidth -= 2 * i.timeOffsetLeftWidth), o && (i.mainScrubberWidth -= i.volumeScrubberOffsetRightWidth);
                for (var r = 0; r < n.length; r++) e = n[r], 0 == r ? e.setX(i.startSpaceBetweenButtons) : e == i.mainScrubber_do ? (t = n[r - 1], FWDRLTweenMax.killTweensOf(i.mainScrubber_do), i.mainScrubber_do.setX(t.x + t.w + i.vdSpaceBetweenButtons), i.mainScrubber_do.setY(parseInt((i.stageHeight - i.scrubbersHeight) / 2)), i.mainScrubber_do.setWidth(i.mainScrubberWidth), i.mainScrubberBkMiddle_do.setWidth(i.mainScrubberWidth - 2 * i.scrubbersBkLeftAndRightWidth), i.mainScrubberBkRight_do.setX(i.mainScrubberWidth - i.scrubbersBkLeftAndRightWidth), i.mainScrubberDragMiddle_do.setWidth(i.mainScrubberWidth - i.scrubbersBkLeftAndRightWidth - i.scrubbersOffsetWidth)) : e == i.time_do ? (t = n[r - 1], e.setX(t.x + t.w + i.vdSpaceBetweenButtons + i.timeOffsetLeftWidth)) : e == i.volumeButton_do && s ? (t = n[r - 1], e.setX(t.x + t.w + i.vdSpaceBetweenButtons + i.timeOffsetRightWidth)) : (t = n[r - 1], o && t == i.volumeScrubber_do ? e.setX(t.x + t.w + i.vdSpaceBetweenButtons + i.volumeScrubberOffsetRightWidth) : e.setX(t.x + t.w + i.vdSpaceBetweenButtons));
                i.disable_do && (i.disable_do.setWidth(i.stageWidth), i.disable_do.setHeight(i.stageHeight)), i.bk_do && (i.bk_do.setWidth(i.stageWidth), i.bk_do.setHeight(i.stageHeight)), i.isShowed_bl ? i.isMainScrubberOnTop_bl = !1 : (i.isMainScrubberOnTop_bl = !0, i.positionScrollBarOnTopOfTheController()), i.progressMiddle_do && i.progressMiddle_do.setWidth(i.mainScrubberWidth - i.scrubbersBkLeftAndRightWidth - i.scrubbersOffsetWidth), i.updateMainScrubber(i.percentPlayed), i.updatePreloaderBar(i.percentLoaded)
            }
        }, this.positionScrollBarOnTopOfTheController = function() {
            i.mainScrubberWidth = i.stageWidth, i.updatePreloaderBar(i.percentLoaded), i.mainScrubber_do.setWidth(i.mainScrubberWidth), i.mainScrubberBkMiddle_do.setWidth(i.mainScrubberWidth - 2 * i.scrubbersBkLeftAndRightWidth), i.mainScrubberBkRight_do.setX(i.mainScrubberWidth - i.scrubbersBkLeftAndRightWidth), i.mainScrubberDragMiddle_do.setWidth(i.mainScrubberWidth - i.scrubbersBkLeftAndRightWidth - i.scrubbersOffsetWidth), FWDRLTweenMax.killTweensOf(i.mainScrubber_do), i.mainScrubber_do.setX(0), i.isMainScrubberOnTop_bl || i.isShowed_bl ? i.mainScrubber_do.setY(-i.mainScrubberOffestTop) : i.mainScrubber_do.y != -i.mainScrubberOffestTop && (i.mainScrubber_do.setY(i.mainScrubber_do.h), FWDRLTweenMax.to(i.mainScrubber_do, .8, {
                y: -i.mainScrubberOffestTop,
                ease: Expo.easeOut
            })), i.isMainScrubberOnTop_bl = !0
        }, this.setupDisable = function() {
            i.disable_do = new FWDRLDisplayObject("div"), FWDRLUtils.isIE && (i.disable_do.setBkColor("#FFFFFF"), i.disable_do.setAlpha(0))
        }, this.setupMainScrubber = function() {
            i.mainScrubber_do = new FWDRLDisplayObject("div"), i.mainScrubber_do.setHeight(i.scrubbersHeight), i.mainScrubberBkLeft_do = new FWDRLDisplayObject("img"), i.mainScrubberBkLeft_do.setScreen(i.videoMainScrubberBkLeft_img);
            var e = new Image;
            e.src = t.videoMainScrubberBkRightPath_str, i.mainScrubberBkRight_do = new FWDRLDisplayObject("img"), i.mainScrubberBkRight_do.setScreen(e), i.mainScrubberBkRight_do.setWidth(i.mainScrubberBkLeft_do.w), i.mainScrubberBkRight_do.setHeight(i.mainScrubberBkLeft_do.h);
            var s = new Image;
            s.src = i.videoMainScrubberBkMiddlePath_str, i.isMobile_bl ? (i.mainScrubberBkMiddle_do = new FWDRLDisplayObject("div"), i.mainScrubberBkMiddle_do.getStyle().background = "url('" + i.videoMainScrubberBkMiddlePath_str + "') repeat-x") : (i.mainScrubberBkMiddle_do = new FWDRLDisplayObject("img"), i.mainScrubberBkMiddle_do.setScreen(s)), i.mainScrubberBkMiddle_do.setHeight(i.scrubbersHeight), i.mainScrubberBkMiddle_do.setX(i.scrubbersBkLeftAndRightWidth), i.mainProgress_do = new FWDRLDisplayObject("div"), i.mainProgress_do.setHeight(i.scrubbersHeight), i.progressLeft_do = new FWDRLDisplayObject("img"), i.progressLeft_do.setScreen(i.videoProgressLeft_img), s = new Image, s.src = i.videoProgressMiddlePath_str, i.progressMiddle_do = new FWDRLDisplayObject("div"), i.progressMiddle_do.getStyle().background = "url('" + i.videoProgressMiddlePath_str + "') repeat-x", i.progressMiddle_do.setHeight(i.scrubbersHeight), i.progressMiddle_do.setX(i.mainScrubberDragLeftWidth), i.mainScrubberDrag_do = new FWDRLDisplayObject("div"), i.mainScrubberDrag_do.setHeight(i.scrubbersHeight), i.mainScrubberDragLeft_do = new FWDRLDisplayObject("img"), i.mainScrubberDragLeft_do.setScreen(i.videoMainScrubberDragLeft_img), s = new Image, s.src = i.videoMainScrubberDragMiddlePath_str, i.isMobile_bl ? (i.mainScrubberDragMiddle_do = new FWDRLDisplayObject("div"), i.mainScrubberDragMiddle_do.getStyle().background = "url('" + i.videoMainScrubberDragMiddlePath_str + "') repeat-x") : (i.mainScrubberDragMiddle_do = new FWDRLDisplayObject("img"), i.mainScrubberDragMiddle_do.setScreen(s)), i.mainScrubberDragMiddle_do.setHeight(i.scrubbersHeight), i.mainScrubberDragMiddle_do.setX(i.mainScrubberDragLeftWidth), i.mainScrubberBarLine_do = new FWDRLDisplayObject("img"), i.mainScrubberBarLine_do.setScreen(i.videoMainScrubberLine_img), i.mainScrubberBarLine_do.setAlpha(0), i.mainScrubberBarLine_do.hasTransform3d_bl = !1, i.mainScrubberBarLine_do.hasTransform2d_bl = !1, i.buttons_ar.push(i.mainScrubber_do), i.mainScrubber_do.addChild(i.mainScrubberBkLeft_do), i.mainScrubber_do.addChild(i.mainScrubberBkMiddle_do), i.mainScrubber_do.addChild(i.mainScrubberBkRight_do), i.mainScrubber_do.addChild(i.mainScrubberBarLine_do), i.mainScrubberDrag_do.addChild(i.mainScrubberDragLeft_do), i.mainScrubberDrag_do.addChild(i.mainScrubberDragMiddle_do), i.mainProgress_do.addChild(i.progressLeft_do), i.mainProgress_do.addChild(i.progressMiddle_do), i.mainScrubber_do.addChild(i.mainProgress_do), i.mainScrubber_do.addChild(i.mainScrubberDrag_do), i.mainScrubber_do.addChild(i.mainScrubberBarLine_do), i.mainHolder_do.addChild(i.mainScrubber_do), i.isMobile_bl ? i.hasPointerEvent_bl ? (i.mainScrubber_do.screen.addEventListener("pointerover", i.mainScrubberOnOverHandler), i.mainScrubber_do.screen.addEventListener("pointerout", i.mainScrubberOnOutHandler), i.mainScrubber_do.screen.addEventListener("pointerdown", i.mainScrubberOnDownHandler)) : i.mainScrubber_do.screen.addEventListener("touchstart", i.mainScrubberOnDownHandler) : i.screen.addEventListener ? (i.mainScrubber_do.screen.addEventListener("mouseover", i.mainScrubberOnOverHandler), i.mainScrubber_do.screen.addEventListener("mouseout", i.mainScrubberOnOutHandler), i.mainScrubber_do.screen.addEventListener("mousedown", i.mainScrubberOnDownHandler)) : i.screen.attachEvent && (i.mainScrubber_do.screen.attachEvent("onmouseover", i.mainScrubberOnOverHandler), i.mainScrubber_do.screen.attachEvent("onmouseout", i.mainScrubberOnOutHandler), i.mainScrubber_do.screen.attachEvent("onmousedown", i.mainScrubberOnDownHandler)), i.disableMainScrubber(), i.updateMainScrubber(0)
        }, this.mainScrubberOnOverHandler = function(e) {
            i.isMainScrubberDisabled_bl
        }, this.mainScrubberOnOutHandler = function(e) {
            i.isMainScrubberDisabled_bl
        }, this.mainScrubberOnDownHandler = function(t) {
            if (!i.isMainScrubberDisabled_bl && 2 != t.button) {
                t.preventDefault && t.preventDefault(), i.isMainScrubberScrubbing_bl = !0;
                var s = FWDRLUtils.getViewportMouseCoordinates(t),
                    o = s.screenX - i.mainScrubber_do.getGlobalX();
                0 > o ? o = 0 : o > i.mainScrubberWidth - i.scrubbersOffsetWidth && (o = i.mainScrubberWidth - i.scrubbersOffsetWidth);
                var n = o / i.mainScrubberWidth;
                i.disable_do && i.addChild(i.disable_do), i.updateMainScrubber(n), i.dispatchEvent(e.START_TO_SCRUB), i.dispatchEvent(e.SCRUB, {
                    percent: n
                }), i.isMobile_bl ? i.hasPointerEvent_bl ? (window.addEventListener("pointermove", i.mainScrubberMoveHandler), window.addEventListener("pointerup", i.mainScrubberEndHandler)) : (window.addEventListener("touchmove", i.mainScrubberMoveHandler), window.addEventListener("touchend", i.mainScrubberEndHandler)) : window.addEventListener ? (window.addEventListener("mousemove", i.mainScrubberMoveHandler), window.addEventListener("mouseup", i.mainScrubberEndHandler)) : document.attachEvent && (document.attachEvent("onmousemove", i.mainScrubberMoveHandler), document.attachEvent("onmouseup", i.mainScrubberEndHandler))
            }
        }, this.mainScrubberMoveHandler = function(t) {
            t.preventDefault && t.preventDefault();
            var s = FWDRLUtils.getViewportMouseCoordinates(t),
                o = s.screenX - i.mainScrubber_do.getGlobalX();
            0 > o ? o = 0 : o > i.mainScrubberWidth - i.scrubbersOffsetWidth && (o = i.mainScrubberWidth - i.scrubbersOffsetWidth);
            var n = o / i.mainScrubberWidth;
            i.updateMainScrubber(n), i.dispatchEvent(e.SCRUB, {
                percent: n
            })
        }, this.mainScrubberEndHandler = function(t) {
            i.disable_do && i.contains(i.disable_do) && i.removeChild(i.disable_do), i.dispatchEvent(e.STOP_TO_SCRUB), i.isMobile_bl ? i.hasPointerEvent_bl ? (window.removeEventListener("pointermove", i.mainScrubberMoveHandler), window.removeEventListener("pointerup", i.mainScrubberEndHandler)) : (window.removeEventListener("touchmove", i.mainScrubberMoveHandler), window.removeEventListener("touchend", i.mainScrubberEndHandler)) : window.removeEventListener ? (window.removeEventListener("mousemove", i.mainScrubberMoveHandler), window.removeEventListener("mouseup", i.mainScrubberEndHandler)) : document.detachEvent && (document.detachEvent("onmousemove", i.mainScrubberMoveHandler), document.detachEvent("onmouseup", i.mainScrubberEndHandler))
        }, this.disableMainScrubber = function() {
            i.mainScrubber_do && (i.isMainScrubberDisabled_bl = !0, i.mainScrubber_do.setButtonMode(!1), i.mainScrubberEndHandler(), i.updateMainScrubber(0), i.updatePreloaderBar(0))
        }, this.enableMainScrubber = function() {
            i.mainScrubber_do && (i.isMainScrubberDisabled_bl = !1, i.mainScrubber_do.setButtonMode(!0))
        }, this.updateMainScrubber = function(e) {
            if (i.mainScrubber_do) {
                var t = parseInt(e * i.mainScrubberWidth);
                isNaN(t) || (i.percentPlayed = e, !FWDRLEVPlayer.hasHTML5Video && t >= i.mainProgress_do.w && (t = i.mainProgress_do.w), 1 > t && i.isMainScrubberLineVisible_bl ? (i.isMainScrubberLineVisible_bl = !1, FWDRLTweenMax.to(i.mainScrubberBarLine_do, .5, {
                    alpha: 0
                })) : t > 1 && !i.isMainScrubberLineVisible_bl && (i.isMainScrubberLineVisible_bl = !0, FWDRLTweenMax.to(i.mainScrubberBarLine_do, .5, {
                    alpha: 1
                })), i.mainScrubberDrag_do.setWidth(t), t > i.mainScrubberWidth - i.scrubbersOffsetWidth && (t = i.mainScrubberWidth - i.scrubbersOffsetWidth), FWDRLTweenMax.to(i.mainScrubberBarLine_do, .8, {
                    x: t + 1,
                    ease: Expo.easeOut
                }))
            }
        }, this.updatePreloaderBar = function(e) {
            if (i.mainProgress_do) {
                i.percentLoaded = e;
                var t = parseInt(Math.max(0, i.percentLoaded * i.mainScrubberWidth));
                i.percentLoaded >= .98 ? i.mainProgress_do.setY(-30) : 0 != i.mainProgress_do.y && 1 != i.percentLoaded && i.mainProgress_do.setY(0), t > i.mainScrubberWidth - i.scrubbersOffsetWidth && (t = Math.max(0, i.mainScrubberWidth - i.scrubbersOffsetWidth)), 0 > t && (t = 0), i.mainProgress_do.setWidth(t)
            }
        }, this.setupPlayPauseButton = function() {
            FWDRLComplexButton.setPrototype(), i.playPauseButton_do = new FWDRLComplexButton(i.videoPlayN_img, t.videoPlaySPath_str, i.videoPauseN_img, t.videoPauseSPath_str, !0), i.buttons_ar.push(i.playPauseButton_do), i.playPauseButton_do.setY(parseInt((i.stageHeight - i.playPauseButton_do.buttonHeight) / 2)), i.playPauseButton_do.addListener(FWDRLComplexButton.MOUSE_UP, i.playButtonMouseUpHandler), i.mainHolder_do.addChild(i.playPauseButton_do)
        }, this.showPlayButton = function() {
            i.playPauseButton_do && i.playPauseButton_do.setButtonState(1)
        }, this.showPauseButton = function() {
            i.playPauseButton_do && i.playPauseButton_do.setButtonState(0)
        }, this.playButtonMouseUpHandler = function() {
            0 == i.playPauseButton_do.currentState ? i.dispatchEvent(e.PAUSE) : i.dispatchEvent(e.PLAY)
        }, this.setupFullscreenButton = function() {
            FWDRLComplexButton.setPrototype(), i.fullScreenButton_do = new FWDRLComplexButton(i.videoFullScreenN_img, t.videoFullScreenSPath_str, i.videoNormalScreenN_img, t.videoNormalScreenSPath_str, !0), i.buttons_ar.push(i.fullScreenButton_do), i.fullScreenButton_do.setY(parseInt((i.stageHeight - i.fullScreenButton_do.buttonHeight) / 2)), i.fullScreenButton_do.addListener(FWDRLComplexButton.MOUSE_UP, i.fullScreenButtonMouseUpHandler), i.mainHolder_do.addChild(i.fullScreenButton_do)
        }, this.showFullScreenButton = function() {
            i.fullScreenButton_do && i.fullScreenButton_do.setButtonState(1)
        }, this.showNormalScreenButton = function() {
            i.fullScreenButton_do && i.fullScreenButton_do.setButtonState(0)
        }, this.setNormalStateToFullScreenButton = function() {
            i.fullScreenButton_do && i.fullScreenButton_do.setNormalState()
        }, this.fullScreenButtonMouseUpHandler = function() {
            1 == i.fullScreenButton_do.currentState ? i.dispatchEvent(e.FULL_SCREEN) : i.dispatchEvent(e.NORMAL_SCREEN)
        }, this.setupTime = function() {
            i.time_do = new FWDRLDisplayObject("div"), i.time_do.hasTransform3d_bl = !1, i.time_do.hasTransform2d_bl = !1, i.time_do.setBackfaceVisibility(), i.time_do.getStyle().fontFamily = "Arial", i.time_do.getStyle().fontSize = "12px", i.time_do.getStyle().whiteSpace = "nowrap", i.time_do.getStyle().textAlign = "center", i.time_do.getStyle().color = i.timeColor_str, i.time_do.getStyle().fontSmoothing = "antialiased", i.time_do.getStyle().webkitFontSmoothing = "antialiased", i.time_do.getStyle().textRendering = "optimizeLegibility", i.mainHolder_do.addChild(i.time_do), i.updateTime("00:00/00:00"), i.buttons_ar.push(i.time_do)
        }, this.updateTime = function(e) {
            i.time_do && (i.time_do.setInnerHTML(e), i.lastTimeLength != e.length && (i.time_do.w = i.time_do.getWidth(), i.positionButtons(), setTimeout(function() {
                i.time_do.w = i.time_do.getWidth(), i.time_do.h = i.time_do.getHeight(), i.time_do.setY(parseInt((i.stageHeight - i.time_do.h) / 2) + 1), i.positionButtons()
            }, 50), i.lastTimeLength = e.length))
        }, this.setupVolumeButton = function() {
            FWDRLEVPVolumeButton.setPrototype(), i.volumeButton_do = new FWDRLEVPVolumeButton(i.videoVolumeN_img, t.videoVolumeSPath_str, t.videoVolumeDPath_str), i.volumeButton_do.addListener(FWDRLEVPVolumeButton.MOUSE_UP, i.volumeOnMouseUpHandler), i.volumeButton_do.setY(parseInt((i.stageHeight - i.volumeButton_do.h) / 2)), i.buttons_ar.push(i.volumeButton_do), i.mainHolder_do.addChild(i.volumeButton_do), i.allowToChangeVolume_bl || i.volumeButton_do.disable()
        }, this.volumeOnMouseUpHandler = function() {
            var e = i.lastVolume;
            i.isMute_bl ? (e = i.lastVolume, i.isMute_bl = !1) : (e = 1e-6, i.isMute_bl = !0), i.updateVolume(e)
        }, this.setupVolumeScrubber = function() {
            i.volumeScrubber_do = new FWDRLDisplayObject("div"), i.volumeScrubber_do.setHeight(i.scrubbersHeight), i.volumeScrubber_do.setY(parseInt((i.stageHeight - i.scrubbersHeight) / 2)), i.volumeScrubberBkLeft_do = new FWDRLDisplayObject("img");
            var e = new Image;
            e.src = i.mainScrubberBkLeft_do.screen.src, i.volumeScrubberBkLeft_do.setScreen(e), i.volumeScrubberBkLeft_do.setWidth(i.mainScrubberBkLeft_do.w), i.volumeScrubberBkLeft_do.setHeight(i.mainScrubberBkLeft_do.h);
            var s = new Image;
            s.src = t.videoVolumeScrubberBkRightPath_str, i.volumeScrubberBkRight_do = new FWDRLDisplayObject("img"), i.volumeScrubberBkRight_do.setScreen(s), i.volumeScrubberBkRight_do.setWidth(i.volumeScrubberBkLeft_do.w), i.volumeScrubberBkRight_do.setHeight(i.volumeScrubberBkLeft_do.h);
            var o = new Image;
            o.src = i.videoVolumeScrubberBkMiddlePath_str, i.isMobile_bl ? (i.volumeScrubberBkMiddle_do = new FWDRLDisplayObject("div"), i.volumeScrubberBkMiddle_do.getStyle().background = "url('" + i.videoVolumeScrubberBkMiddlePath_str + "') repeat-x") : (i.volumeScrubberBkMiddle_do = new FWDRLDisplayObject("img"), i.volumeScrubberBkMiddle_do.setScreen(o)), i.volumeScrubberBkMiddle_do.setHeight(i.scrubbersHeight), i.volumeScrubberBkMiddle_do.setX(i.scrubbersBkLeftAndRightWidth), i.volumeScrubberDrag_do = new FWDRLDisplayObject("div"), i.volumeScrubberDrag_do.setHeight(i.scrubbersHeight), i.volumeScrubberDragLeft_do = new FWDRLDisplayObject("img");
            var n = new Image;
            n.src = i.mainScrubberDragLeft_do.screen.src, i.volumeScrubberDragLeft_do.setScreen(n), i.volumeScrubberDragLeft_do.setWidth(i.mainScrubberDragLeft_do.w), i.volumeScrubberDragLeft_do.setHeight(i.mainScrubberDragLeft_do.h), o = new Image, o.src = i.videoVolumeScrubberDragMiddlePath_str, i.isMobile_bl ? (i.volumeScrubberDragMiddle_do = new FWDRLDisplayObject("div"), i.volumeScrubberDragMiddle_do.getStyle().background = "url('" + i.videoVolumeScrubberDragMiddlePath_str + "') repeat-x") : (i.volumeScrubberDragMiddle_do = new FWDRLDisplayObject("img"), i.volumeScrubberDragMiddle_do.setScreen(o)), i.volumeScrubberDragMiddle_do.setHeight(i.scrubbersHeight), i.volumeScrubberDragMiddle_do.setX(i.mainScrubberDragLeftWidth), i.volumeScrubberBarLine_do = new FWDRLDisplayObject("img");
            var r = new Image;
            r.src = i.mainScrubberBarLine_do.screen.src, i.volumeScrubberBarLine_do.setScreen(r), i.volumeScrubberBarLine_do.setWidth(i.mainScrubberBarLine_do.w), i.volumeScrubberBarLine_do.setHeight(i.mainScrubberBarLine_do.h), i.volumeScrubberBarLine_do.setAlpha(0), i.volumeScrubberBarLine_do.hasTransform3d_bl = !1, i.volumeScrubberBarLine_do.hasTransform2d_bl = !1, i.volumeScrubber_do.setWidth(i.volumeScrubberWidth), i.volumeScrubberBkMiddle_do.setWidth(i.volumeScrubberWidth - 2 * i.scrubbersBkLeftAndRightWidth), i.volumeScrubberBkRight_do.setX(i.volumeScrubberWidth - i.scrubbersBkLeftAndRightWidth), i.volumeScrubberDragMiddle_do.setWidth(i.volumeScrubberWidth - i.scrubbersBkLeftAndRightWidth - i.scrubbersOffsetWidth), i.volumeScrubber_do.addChild(i.volumeScrubberBkLeft_do), i.volumeScrubber_do.addChild(i.volumeScrubberBkMiddle_do), i.volumeScrubber_do.addChild(i.volumeScrubberBkRight_do), i.volumeScrubber_do.addChild(i.volumeScrubberBarLine_do), i.volumeScrubberDrag_do.addChild(i.volumeScrubberDragLeft_do), i.volumeScrubberDrag_do.addChild(i.volumeScrubberDragMiddle_do), i.volumeScrubber_do.addChild(i.volumeScrubberDrag_do), i.volumeScrubber_do.addChild(i.volumeScrubberBarLine_do), i.buttons_ar.push(i.volumeScrubber_do), i.mainHolder_do.addChild(i.volumeScrubber_do), i.allowToChangeVolume_bl && (i.isMobile_bl ? i.hasPointerEvent_bl ? (i.volumeScrubber_do.screen.addEventListener("pointerover", i.volumeScrubberOnOverHandler), i.volumeScrubber_do.screen.addEventListener("pointerout", i.volumeScrubberOnOutHandler), i.volumeScrubber_do.screen.addEventListener("pointerdown", i.volumeScrubberOnDownHandler)) : i.volumeScrubber_do.screen.addEventListener("touchstart", i.volumeScrubberOnDownHandler) : i.screen.addEventListener ? (i.volumeScrubber_do.screen.addEventListener("mouseover", i.volumeScrubberOnOverHandler), i.volumeScrubber_do.screen.addEventListener("mouseout", i.volumeScrubberOnOutHandler), i.volumeScrubber_do.screen.addEventListener("mousedown", i.volumeScrubberOnDownHandler)) : i.screen.attachEvent && (i.volumeScrubber_do.screen.attachEvent("onmouseover", i.volumeScrubberOnOverHandler), i.volumeScrubber_do.screen.attachEvent("onmouseout", i.volumeScrubberOnOutHandler), i.volumeScrubber_do.screen.attachEvent("onmousedown", i.volumeScrubberOnDownHandler))), i.enableVolumeScrubber(), i.updateVolumeScrubber(i.volume)
        }, this.volumeScrubberOnOverHandler = function(e) {
            i.isVolumeScrubberDisabled_bl
        }, this.volumeScrubberOnOutHandler = function(e) {
            i.isVolumeScrubberDisabled_bl
        }, this.volumeScrubberOnDownHandler = function(e) {
            if (!i.isVolumeScrubberDisabled_bl && 2 != e.button) {
                e.preventDefault && e.preventDefault();
                var t = FWDRLUtils.getViewportMouseCoordinates(e),
                    s = t.screenX - i.volumeScrubber_do.getGlobalX();
                0 > s ? s = 0 : s > i.volumeScrubberWidth - i.scrubbersOffsetWidth && (s = i.volumeScrubberWidth - i.scrubbersOffsetWidth);
                var o = s / i.volumeScrubberWidth;
                i.disable_do && i.addChild(i.disable_do), i.lastVolume = o, i.updateVolume(o), i.isMobile_bl ? i.hasPointerEvent_bl ? (window.addEventListener("pointermove", i.volumeScrubberMoveHandler), window.addEventListener("pointerup", i.volumeScrubberEndHandler)) : (window.addEventListener("touchmove", i.volumeScrubberMoveHandler), window.addEventListener("touchend", i.volumeScrubberEndHandler)) : window.addEventListener ? (window.addEventListener("mousemove", i.volumeScrubberMoveHandler), window.addEventListener("mouseup", i.volumeScrubberEndHandler)) : document.attachEvent && (document.attachEvent("onmousemove", i.volumeScrubberMoveHandler), document.attachEvent("onmouseup", i.volumeScrubberEndHandler))
            }
        }, this.volumeScrubberMoveHandler = function(e) {
            if (!i.isVolumeScrubberDisabled_bl) {
                e.preventDefault && e.preventDefault();
                var t = FWDRLUtils.getViewportMouseCoordinates(e),
                    s = t.screenX - i.volumeScrubber_do.getGlobalX();
                0 > s ? s = 0 : s > i.volumeScrubberWidth - i.scrubbersOffsetWidth && (s = i.volumeScrubberWidth - i.scrubbersOffsetWidth);
                var o = s / i.volumeScrubberWidth;
                i.lastVolume = o, i.updateVolume(o)
            }
        }, this.volumeScrubberEndHandler = function() {
            i.disable_do && i.contains(i.disable_do) && i.removeChild(i.disable_do), i.isMobile_bl ? i.hasPointerEvent_bl ? (window.removeEventListener("pointermove", i.volumeScrubberMoveHandler), window.removeEventListener("pointerup", i.volumeScrubberEndHandler)) : (window.removeEventListener("touchmove", i.volumeScrubberMoveHandler), window.removeEventListener("touchend", i.volumeScrubberEndHandler)) : window.removeEventListener ? (window.removeEventListener("mousemove", i.volumeScrubberMoveHandler), window.removeEventListener("mouseup", i.volumeScrubberEndHandler)) : document.detachEvent && (document.detachEvent("onmousemove", i.volumeScrubberMoveHandler), document.detachEvent("onmouseup", i.volumeScrubberEndHandler))
        }, this.disableVolumeScrubber = function() {
            i.isVolumeScrubberDisabled_bl = !0, i.volumeScrubber_do.setButtonMode(!1), i.volumeScrubberEndHandler()
        }, this.enableVolumeScrubber = function() {
            i.isVolumeScrubberDisabled_bl = !1, i.volumeScrubber_do.setButtonMode(!0)
        }, this.updateVolumeScrubber = function(e) {
            var t = parseInt(e * i.volumeScrubberWidth);
            i.volumeScrubberDrag_do.setWidth(t), 1 > t && i.isVolumeScrubberLineVisible_bl ? (i.isVolumeScrubberLineVisible_bl = !1, FWDRLTweenMax.to(i.volumeScrubberBarLine_do, .5, {
                alpha: 0
            })) : t > 1 && !i.isVolumeScrubberLineVisible_bl && (i.isVolumeScrubberLineVisible_bl = !0, FWDRLTweenMax.to(i.volumeScrubberBarLine_do, .5, {
                alpha: 1
            })), t > i.volumeScrubberWidth - i.scrubbersOffsetWidth && (t = i.volumeScrubberWidth - i.scrubbersOffsetWidth), FWDRLTweenMax.to(i.volumeScrubberBarLine_do, .8, {
                x: t + 1,
                ease: Expo.easeOut
            })
        }, this.updateVolume = function(t, s) {
            i.showVolumeScrubber_bl && (i.volume = t, i.volume <= 1e-6 ? (i.isMute_bl = !0, i.volume = 1e-6) : i.voume >= 1 ? (i.isMute_bl = !1, i.volume = 1) : i.isMute_bl = !1, 1e-6 == i.volume ? i.volumeButton_do && i.volumeButton_do.setDisabledState() : i.volumeButton_do && i.volumeButton_do.setEnabledState(), i.volumeScrubberBarLine_do && i.updateVolumeScrubber(i.volume), s || i.dispatchEvent(e.CHANGE_VOLUME, {
                percent: i.volume
            }))
        }, this.show = function(e) {
            i.isShowed_bl || (i.isShowed_bl = !0, e ? FWDRLTweenMax.to(i.mainHolder_do, .8, {
                y: 0,
                ease: Expo.easeInOut
            }) : (FWDRLTweenMax.killTweensOf(i.mainHolder_do), i.mainHolder_do.setY(0)), setTimeout(i.positionButtons, 200))
        }, this.hide = function(e, t) {
            if (i.isShowed_bl || t) {
                i.isShowed_bl = !1;
                var s = 0;
                t && (s = i.mainScrubberOffestTop), e ? FWDRLTweenMax.to(i.mainHolder_do, .8, {
                    y: i.stageHeight + s,
                    ease: Expo.easeInOut
                }) : (FWDRLTweenMax.killTweensOf(i.mainHolder_do), i.mainHolder_do.setY(i.stageHeight + s))
            }
        }, this.init()
    };
    e.setPrototype = function() {
        e.prototype = new FWDRLDisplayObject("div")
    }, e.FACEBOOK_SHARE = "share", e.FULL_SCREEN = "fullScreen", e.NORMAL_SCREEN = "normalScreen", e.PLAY = "play", e.PAUSE = "pause", e.START_TO_SCRUB = "startToScrub", e.SCRUB = "scrub", e.STOP_TO_SCRUB = "stopToScrub", e.CHANGE_VOLUME = "changeVolume", e.prototype = null, window.FWDRLEVPController = e
}(),
function(e) {
    var t = function(s, i) {
        var o = this;
        o.displayType = t.AFTER_PARENT, o.init = function() {
            this.mustHaveHolderDiv_bl = !1, e.RLVideoPlayer = this, o.instanceName_str = "RLVideoPlayer", o.displayType == t.AFTER_PARENT && (o.mustHaveHolderDiv_bl = !0), this.body = document.getElementsByTagName("body")[0], this.stageContainer = s, this.data = i, this.listeners = {
                events_ar: []
            }, this.main_do = null, this.preloader_do = null, this.controller_do = null, this.videoScreen_do = null, this.flash_do = null, this.flashObject = null, this.videoPoster_do = null, this.largePlayButton_do = null, this.hider = null, this.backgroundColor_str = "#000000", this.videoBackgroundColor_str = "#000000", this.flashObjectMarkup_str = null, this.lastX = 0, this.lastY = 0, this.stageWidth = 0, this.stageHeight = 0, this.firstTapX, this.firstTapY, this.curTime, this.totalTime, this.videoSourcePath_str, this.prevVideoSourcePath_str, this.posterPath_str, this.videoType_str, this.videoStartBehaviour_str, this.prevVideoSource_str, this.prevPosterSource_str, this.finalVideoPath_str, this.resizeHandlerId_to, this.hidePreloaderId_to, this.orientationChangeId_to, this.disableClickId_to, this.clickDelayId_to, this.secondTapId_to, this.isVideoPlayingWhenOpenWindows_bl = !1, this.isSpaceDown_bl = !1, this.isPlaying_bl = !1, this.firstTapPlaying_bl = !1, this.stickOnCurrentInstanceKey_bl = !1, this.isFullScreen_bl = !1, this.isFlashScreenReady_bl = !1, this.orintationChangeComplete_bl = !0, this.disableClick_bl = !1, this.isAPIReady_bl = !1, this.isInstantiate_bl = !0, this.isMobile_bl = FWDRLUtils.isMobile, this.hasPointerEvent_bl = FWDRLUtils.hasPointerEvent, this.setupMainDo(), this.setupNormalVideoPlayers()
        }, o.setupMainDo = function() {
            o.main_do = new FWDRLDisplayObject("div"), o.main_do.getStyle().msTouchAction = "none", o.main_do.getStyle().webkitTapHighlightColor = "rgba(0, 0, 0, 0)", o.main_do.getStyle().webkitFocusRingColor = "rgba(0, 0, 0, 0)", o.main_do.getStyle().width = "100%", o.main_do.getStyle().height = "100%", o.main_do.setBackfaceVisibility(), o.main_do.setBkColor(o.backgroundColor_str), (!FWDRLUtils.isMobile || FWDRLUtils.isMobile && FWDRLUtils.hasPointerEvent) && o.main_do.setSelectable(!1), o.stageContainer.style.overflow = "visible", o.stageContainer.appendChild(o.main_do.screen), setTimeout(o.resizeHandler, 300)
        }, o.resizeHandler = function() {
            if (o.isFullScreen_bl || o.displayType == t.FULL_SCREEN) {
                var e = FWDRLUtils.getViewportSize();
                o.main_do.setX(0), o.main_do.setY(0), o.stageWidth = e.w, o.stageHeight = e.h
            } else o.stageWidth = o.stageContainer.offsetWidth, o.stageHeight = o.stageContainer.offsetHeight;
            o.main_do.setWidth(o.stageWidth), o.main_do.setHeight(o.stageHeight), o.isFlashScreenReady_bl && o.videoType_str == t.VIDEO && (o.flash_do.setWidth(o.stageWidth), o.flash_do.setHeight(o.stageHeight)), o.controller_do && o.controller_do.resizeAndPosition(), o.videoScreen_do && o.videoType_str == t.VIDEO && o.videoScreen_do.resizeAndPosition(o.stageWidth, o.stageHeight), o.preloader_do && o.positionPreloader(), o.dumyClick_do && (o.dumyClick_do.setWidth(o.stageWidth), o.isMobile_bl ? o.dumyClick_do.setHeight(o.stageHeight) : o.dumyClick_do.setHeight(o.stageHeight)), o.largePlayButton_do && o.positionLargePlayButton(), o.videoPoster_do && o.videoPoster_do.allowToShow_bl && o.videoPoster_do.positionAndResize()
        }, this.setupClickScreen = function() {
            o.dumyClick_do = new FWDRLDisplayObject("div"), FWDRLUtils.isIE && (o.dumyClick_do.setBkColor("#00FF00"), o.dumyClick_do.setAlpha(1e-4)), o.dumyClick_do.screen.addEventListener ? o.dumyClick_do.screen.addEventListener("click", o.playPauseClickHandler) : o.dumyClick_do.screen.attachEvent && o.dumyClick_do.screen.attachEvent("onclick", o.playPauseClickHandler), o.hideClickScreen(), o.main_do.addChild(o.dumyClick_do)
        }, this.playPauseClickHandler = function(e) {
            2 != e.button && (o.disableClick_bl || (o.firstTapPlaying_bl = o.isPlaying_bl, t.keyboardCurInstance = o, 0 != o.controller_do.mainHolder_do.y && o.isMobile_bl || (t.hasHTML5Video ? o.videoScreen_do && o.videoScreen_do.togglePlayPause() : o.isFlashScreenReady_bl && o.flashObject.togglePlayPause())))
        }, this.showClickScreen = function() {
            o.dumyClick_do.setVisible(!0)
        }, this.hideClickScreen = function() {
            o.dumyClick_do.setVisible(!1)
        }, this.disableClick = function() {
            o.disableClick_bl = !0, clearTimeout(o.disableClickId_to), o.disableClickId_to = setTimeout(function() {
                o.disableClick_bl = !1
            }, 500)
        }, this.addDoubleClickSupport = function() {
            !o.isMobile_bl && o.dumyClick_do.screen.addEventListener ? (o.dumyClick_do.screen.addEventListener("mousedown", o.onFirstDown), FWDRLUtils.isIEWebKit && o.dumyClick_do.screen.addEventListener("dblclick", o.onSecondDown)) : o.isMobile_bl ? o.dumyClick_do.screen.addEventListener("touchstart", o.onFirstDown) : o.dumyClick_do.screen.addEventListener && o.dumyClick_do.screen.addEventListener("mousedown", o.onFirstDown)
        }, this.onFirstDown = function(e) {
            if (2 != e.button) {
                o.isFullscreen_bl && e.preventDefault && e.preventDefault();
                var t = FWDRLUtils.getViewportMouseCoordinates(e);
                o.firstTapX = t.screenX, o.firstTapY = t.screenY, o.firstTapPlaying_bl = o.isPlaying_bl, FWDRLUtils.isIEWebKit || (o.isMobile_bl ? (o.dumyClick_do.screen.addEventListener("touchstart", o.onSecondDown), o.dumyClick_do.screen.removeEventListener("touchstart", o.onFirstDown)) : o.dumyClick_do.screen.addEventListener && (o.dumyClick_do.screen.addEventListener("mousedown", o.onSecondDown), o.dumyClick_do.screen.removeEventListener("mousedown", o.onFirstDown)), clearTimeout(o.secondTapId_to), o.secondTapId_to = setTimeout(o.doubleTapExpired, 250))
            }
        }, this.doubleTapExpired = function() {
            clearTimeout(o.secondTapId_to), o.isMobile_bl ? (o.dumyClick_do.screen.removeEventListener("touchstart", o.onSecondDown), o.dumyClick_do.screen.addEventListener("touchstart", o.onFirstDown)) : o.dumyClick_do.screen.addEventListener && (o.dumyClick_do.screen.removeEventListener("mousedown", o.onSecondDown), o.dumyClick_do.screen.addEventListener("mousedown", o.onFirstDown))
        }, this.onSecondDown = function(e) {
            e.preventDefault && e.preventDefault();
            var t, s, i = FWDRLUtils.getViewportMouseCoordinates(e);
            FWDRLUtils.isIEWebKit && (o.firstTapPlaying_bl = o.isPlaying_bl), e.touches && 1 != e.touches.length || (t = Math.abs(i.screenX - o.firstTapX), s = Math.abs(i.screenY - o.firstTapY), o.isMobile_bl && (t > 10 || s > 10) || (o.isMobile_bl || !(t > 2 || s > 2)) && (o.switchFullScreenOnDoubleClick(), FWDRLUtils.isIEWebKit || (o.firstTapPlaying_bl ? o.play() : o.pause())))
        }, this.switchFullScreenOnDoubleClick = function() {
            o.disableClick(), o.isFullScreen_bl ? o.goNormalScreen() : o.goFullScreen()
        }, this.setupNormalVideoPlayers = function() {
            o.setupPreloader(), t.hasHTML5Video ? (o.isAPIReady_bl = !0, o.setupVideoScreen(), o.setupVideoPoster(), o.main_do.addChild(o.preloader_do), o.setupClickScreen(), o.addDoubleClickSupport(), o.setupController(), o.setupLargePlayPauseButton(), o.setupHider(), o.dispatchEvent(t.READY), o.setPosterSource(o.posterPath_str)) : o.setupFlashScreen(), o.resizeHandler()
        }, this.setupPreloader = function() {
            FWDRLPreloader.setPrototype(), o.preloader_do = new FWDRLPreloader(o.data.videoMainPreloader_img, 30, 30, 30, 40), o.preloader_do.show(!0), o.main_do.addChild(o.preloader_do)
        }, this.positionPreloader = function() {
            o.preloader_do.setX(parseInt((o.stageWidth - o.preloader_do.w) / 2)), o.preloader_do.setY(parseInt((o.stageHeight - o.preloader_do.h) / 2))
        }, this.setupVideoPoster = function() {
            FWDRLEVPPoster.setPrototype(), o.videoPoster_do = new FWDRLEVPPoster(o, o.data.videoPosterBackgroundColor_str, o.data.show), o.main_do.addChild(o.videoPoster_do)
        }, this.setupLargePlayPauseButton = function() {
            FWDRLSimpleButton.setPrototype(!0), o.largePlayButton_do = new FWDRLSimpleButton(o.data.videoLargePlayN_img, o.data.videoLargePlayS_str), o.largePlayButton_do.addListener(FWDRLSimpleButton.MOUSE_UP, o.largePlayButtonUpHandler), o.largePlayButton_do.setOverflow("visible"), o.largePlayButton_do.hide(!1), o.main_do.addChild(o.largePlayButton_do)
        }, this.largePlayButtonUpHandler = function() {
            o.disableClick(), o.largePlayButton_do.hide(), o.play()
        }, this.positionLargePlayButton = function() {
            o.largePlayButton_do.setX(parseInt((o.stageWidth - o.largePlayButton_do.w) / 2)), o.largePlayButton_do.setY(parseInt((o.stageHeight - o.largePlayButton_do.h) / 2))
        }, this.setupController = function() {
            FWDRLEVPController.setPrototype(), o.controller_do = new FWDRLEVPController(o.data, o), o.controller_do.addListener(FWDRLEVPController.PLAY, o.controllerOnPlayHandler), o.controller_do.addListener(FWDRLEVPController.PAUSE, o.controllerOnPauseHandler), o.controller_do.addListener(FWDRLEVPController.START_TO_SCRUB, o.controllerStartToScrubbHandler), o.controller_do.addListener(FWDRLEVPController.SCRUB, o.controllerScrubbHandler), o.controller_do.addListener(FWDRLEVPController.STOP_TO_SCRUB, o.controllerStopToScrubbHandler), o.controller_do.addListener(FWDRLEVPController.CHANGE_VOLUME, o.controllerChangeVolumeHandler), o.controller_do.addListener(FWDRLEVPController.FULL_SCREEN, o.controllerFullScreenHandler), o.controller_do.addListener(FWDRLEVPController.NORMAL_SCREEN, o.controllerNormalScreenHandler), o.main_do.addChild(o.controller_do)
        }, this.controllerOnPlayHandler = function(e) {
            o.play()
        }, this.controllerOnPauseHandler = function(e) {
            o.pause()
        }, this.controllerStartToScrubbHandler = function(e) {
            o.startToScrub()
        }, this.controllerScrubbHandler = function(e) {
            o.scrub(e.percent)
        }, this.controllerStopToScrubbHandler = function(e) {
            o.stopToScrub()
        }, this.controllerChangeVolumeHandler = function(e) {
            o.setVolume(e.percent)
        }, this.controllerFullScreenHandler = function() {
            o.goFullScreen()
        }, this.controllerNormalScreenHandler = function() {
            o.goNormalScreen()
        }, this.setupVideoScreen = function() {
            FWDRLEVPVideoScreen.setPrototype(), o.videoScreen_do = new FWDRLEVPVideoScreen(o, o.backgroundColor_str, o.data.volume), o.videoScreen_do.addListener(FWDRLEVPVideoScreen.ERROR, o.videoScreenErrorHandler), o.videoScreen_do.addListener(FWDRLEVPVideoScreen.SAFE_TO_SCRUBB, o.videoScreenSafeToScrubbHandler), o.videoScreen_do.addListener(FWDRLEVPVideoScreen.STOP, o.videoScreenStopHandler), o.videoScreen_do.addListener(FWDRLEVPVideoScreen.PLAY, o.videoScreenPlayHandler), o.videoScreen_do.addListener(FWDRLEVPVideoScreen.PAUSE, o.videoScreenPauseHandler), o.videoScreen_do.addListener(FWDRLEVPVideoScreen.UPDATE, o.videoScreenUpdateHandler), o.videoScreen_do.addListener(FWDRLEVPVideoScreen.UPDATE_TIME, o.videoScreenUpdateTimeHandler), o.videoScreen_do.addListener(FWDRLEVPVideoScreen.LOAD_PROGRESS, o.videoScreenLoadProgressHandler), o.videoScreen_do.addListener(FWDRLEVPVideoScreen.START_TO_BUFFER, o.videoScreenStartToBuferHandler), o.videoScreen_do.addListener(FWDRLEVPVideoScreen.STOP_TO_BUFFER, o.videoScreenStopToBuferHandler), o.videoScreen_do.addListener(FWDRLEVPVideoScreen.PLAY_COMPLETE, o.videoScreenPlayCompleteHandler), o.main_do.addChild(o.videoScreen_do)
        }, this.videoScreenErrorHandler = function(s) {
            var i;
            o.isPlaying_bl = !1, i = s.text, e.console && console.log(s.text), o.controller_do && (o.controller_do.disableMainScrubber(), o.data.showControllerWhenVideoIsStopped_bl || o.controller_do.hide(!o.isMobile_bl, !0), o.largePlayButton_do.hide(), o.hideClickScreen(), o.hider.stop()), FWDRLUtils.isIphone && o.videoScreen_do && o.videoScreen_do.setX(-5e3), o.preloader_do.hide(!1), o.showCursor(), o.stop(), o.dispatchEvent(t.ERROR, {
                error: i
            })
        }, this.videoScreenSafeToScrubbHandler = function() {
            o.controller_do && (o.controller_do.enableMainScrubber(), o.controller_do.show(!0), o.hider.start()), o.data.addKeyboardSupport_bl && o.addKeyboardSupport(), o.showClickScreen()
        }, this.videoScreenStopHandler = function(e) {
            o.videoPoster_do.allowToShow_bl = !0, o.isPlaying_bl = !1, o.controller_do && (o.controller_do.disableMainScrubber(), o.controller_do.showPlayButton(), o.data.showControllerWhenVideoIsStopped_bl ? o.controller_do.show(!o.isMobile_bl) : o.controller_do.hide(!o.isMobile_bl, !0), o.hider.stop()), o.hideClickScreen(), o.hider.reset(), o.showCursor(), o.dispatchEvent(t.STOP)
        }, this.videoScreenPlayHandler = function() {
            t.keyboardCurInstance = o, o.isPlaying_bl = !0, o.controller_do && (o.controller_do.showPauseButton(), o.controller_do.show(!0)), o.largePlayButton_do.hide(), o.hider.start(), o.showCursor(), o.dispatchEvent(t.PLAY)
        }, this.videoScreenPauseHandler = function() {
            o.isPlaying_bl = !1, o.controller_do && o.controller_do.showPlayButton(), FWDRLUtils.isIphone || o.largePlayButton_do.show(), o.controller_do.show(!0), o.hider.stop(), o.hider.reset(), o.showCursor(), o.showClickScreen(), o.dispatchEvent(t.PAUSE)
        }, this.videoScreenUpdateHandler = function(e) {
            var s;
            t.hasHTML5Video ? (s = e.percent, o.controller_do && o.controller_do.updateMainScrubber(s)) : (s = e, o.controller_do && o.controller_do.updateMainScrubber(s)), o.dispatchEvent(t.UPDATE, {
                percent: s
            })
        }, this.videoScreenUpdateTimeHandler = function(e, s) {
            var i;
            t.hasHTML5Video ? (o.curTime = e.curTime, o.totalTime = e.totalTime, i = o.curTime + "/" + o.totalTime, o.controller_do && o.controller_do.updateTime(i)) : (o.curTime = e, o.totalTime = s, i = o.curTime + "/" + o.totalTime, (void 0 == e || void 0 == s) && (i = "00:00/00:00"), o.controller_do && o.controller_do.updateTime(i)), o.dispatchEvent(t.UPDATE_TIME, {
                currentTime: o.curTime,
                totalTime: o.totalTime
            })
        }, this.videoScreenLoadProgressHandler = function(e) {
            t.hasHTML5Video ? o.controller_do && o.controller_do.updatePreloaderBar(e.percent) : o.controller_do && o.controller_do.updatePreloaderBar(e)
        }, this.videoScreenStartToBuferHandler = function() {
            o.preloader_do.show()
        }, this.videoScreenStopToBuferHandler = function() {
            o.preloader_do.hide(!0)
        }, this.videoScreenPlayCompleteHandler = function() {
            o.data.videoLoop_bl ? (o.scrub(0), o.play()) : o.stop(), o.hider.reset(), o.dispatchEvent(t.PLAY_COMPLETE)
        }, this.setupFlashScreen = function() {
            if (!o.flash_do) {
                if (!FWDRLFlashTest.hasFlashPlayerVersion("9.0.18")) {
                    var e = "Please install Adobe flash player! <a href='http://www.adobe.com/go/getflashplayer'>Click here to install.</a>";
                    return void o.dispatchEvent(t.ERROR, {
                        error: e
                    })
                }
                o.flash_do = new FWDRLDisplayObject("div"), o.flash_do.setBackfaceVisibility(), o.flash_do.setResizableSizeAfterParent(), o.main_do.addChild(o.flash_do), o.flashObjectMarkup_str = '<object id="' + o.instanceName_str + '"classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="100%" height="100%"><param name="movie" value="' + o.data.flashPath_str + '"/><param name="wmode" value="opaque"/><param name="scale" value="noscale"/><param name=FlashVars value="instanceName=' + o.instanceName_str + "&volume=" + o.data.volume + "&bkColor_str=" + o.videoBackgroundColor_str + '"/><object type="application/x-shockwave-flash" data="' + o.data.flashPath_str + '" width="100%" height="100%"><param name="movie" value="' + o.data.flashPath_str + '"/><param name="wmode" value="opaque"/><param name="scale" value="noscale"/><param name=FlashVars value="instanceName=' + o.instanceName_str + "&volume=" + o.data.volume + "&bkColor_str=" + o.videoBackgroundColor_str + '"/></object></object>', o.flash_do.screen.innerHTML = o.flashObjectMarkup_str, o.flashObject = o.flash_do.screen.firstChild, FWDRLUtils.isIE || (o.flashObject = o.flashObject.getElementsByTagName("object")[0])
            }
        }, this.flashScreenIsReady = function() {
            console && console.dir("flash video ready " + o.instanceName_str), o.isFlashScreenReady_bl = !0, o.isAPIReady_bl = !0, o.setupVideoPoster(), o.main_do.addChild(o.preloader_do), o.setupClickScreen(), o.addDoubleClickSupport(), o.setupController(), o.setupLargePlayPauseButton(), o.setupHider(), o.setPosterSource(o.posterPath_str), o.dispatchEvent(t.READY)
        }, this.flashScreenFail = function() {
            o.dispatchEvent(t.ERROR, {
                error: error
            })
        }, this.addKeyboardSupport = function() {
            document.addEventListener ? (document.addEventListener("keydown", this.onKeyDownHandler), document.addEventListener("keyup", this.onKeyUpHandler)) : document.attachEvent && (document.attachEvent("onkeydown", this.onKeyDownHandler), document.attachEvent("onkeyup", this.onKeyUpHandler))
        }, this.removeKeyboardSupport = function() {
            document.removeEventListener ? (document.removeEventListener("keydown", this.onKeyDownHandler), document.removeEventListener("keyup", this.onKeyUpHandler)) : document.detachEvent && (document.detachEvent("onkeydown", this.onKeyDownHandler), document.detachEvent("onkeyup", this.onKeyUpHandler))
        }, this.onKeyDownHandler = function(e) {
            if (!o.isSpaceDown_bl && (o.isSpaceDown_bl = !0, 32 == e.keyCode)) {
                if (o != t.keyboardCurInstance && ("pause" == t.videoStartBehaviour || "none" == t.videoStartBehaviour)) return;
                if (o.stickOnCurrentInstanceKey_bl = !0, t.hasHTML5Video) {
                    if (!o.videoScreen_do.isSafeToBeControlled_bl) return;
                    o.videoScreen_do.togglePlayPause()
                } else o.isFlashScreenReady_bl && o.flashObject.togglePlayPause();
                return e.preventDefault && e.preventDefault(), !1
            }
        }, this.onKeyUpHandler = function(e) {
            o.isSpaceDown_bl = !1
        }, this.setupHider = function() {
            FWDRLHider.setPrototype(), o.hider = new FWDRLHider(o.main_do, o.data.controllerHideDelay), o.hider.addListener(FWDRLHider.SHOW, o.hiderShowHandler), o.hider.addListener(FWDRLHider.HIDE, o.hiderHideHandler), o.hider.addListener(FWDRLHider.HIDE_COMPLETE, o.hiderHideCompleteHandler)
        }, this.hiderShowHandler = function() {
            o.isPlaying_bl && o.controller_do.show(!0), o.showCursor()
        }, this.hiderHideHandler = function() {
            if (!FWDRLUtils.isIphone) {
                if (FWDRLUtils.hitTest(o.controller_do.screen, o.hider.globalX, o.hider.globalY)) return void o.hider.reset();
                o.controller_do.hide(!0), o.isFullScreen_bl && o.hideCursor()
            }
        }, this.hiderHideCompleteHandler = function() {
            o.controller_do.positionScrollBarOnTopOfTheController()
        }, this.play = function() {
            o.isAPIReady_bl && (FWDRLUtils.isIphone && o.videoScreen_do.setX(0), t.hasHTML5Video ? o.videoScreen_do && o.videoScreen_do.play() : o.isFlashScreenReady_bl && o.flashObject.playVideo(), t.keyboardCurInstance = o, o.videoPoster_do.allowToShow_bl = !1, o.largePlayButton_do.hide(), o.videoPoster_do.hide())
        }, this.pause = function() {
            o.isAPIReady_bl && (FWDRLUtils.isIphone && o.videoScreen_do.setX(0), t.hasHTML5Video ? o.videoScreen_do && o.videoScreen_do.pause() : o.isFlashScreenReady_bl && o.flashObject.pauseVideo())
        }, this.resume = function() {
            o.isAPIReady_bl && (FWDRLUtils.isIphone && o.videoScreen_do.setX(0), t.hasHTML5Video && o.videoScreen_do && o.videoScreen_do.resume())
        }, this.stop = function(e) {
            o.isAPIReady_bl && (o.isPlaying_bl = !1, o.hider.reset(), FWDRLUtils.isIphone && o.videoScreen_do.setX(-5e3), t.hasHTML5Video ? o.videoScreen_do.stop() : o.isFlashScreenReady_bl && o.flashObject.stopVideo(), o.isMobile_bl ? e && -1 != e.indexOf(".") ? (o.data.showControllerWhenVideoIsStopped_bl && o.controller_do.show(!0), o.videoPoster_do.show(), o.largePlayButton_do.show()) : e || (o.videoPoster_do.show(), o.largePlayButton_do.show()) : (o.data.showControllerWhenVideoIsStopped_bl && o.controller_do.show(!0), o.videoPoster_do.show(), o.largePlayButton_do.show()), o.data.addKeyboardSupport_bl && o.removeKeyboardSupport())
        }, this.startToScrub = function() {
            o.isAPIReady_bl && (t.hasHTML5Video ? o.videoScreen_do && o.videoScreen_do.startToScrub() : o.isFlashScreenReady_bl && o.flashObject.startToScrub())
        }, this.stopToScrub = function() {
            o.isAPIReady_bl && (t.hasHTML5Video ? o.videoScreen_do && o.videoScreen_do.stopToScrub() : o.isFlashScreenReady_bl && o.flashObject.stopToScrub())
        }, this.scrub = function(e) {
            o.isAPIReady_bl && (isNaN(e) || (0 > e ? e = 0 : e > 1 && (e = 1), t.hasHTML5Video ? o.videoScreen_do && o.videoScreen_do.scrub(e) : o.isFlashScreenReady_bl && o.flashObject.scrub(e)))
        }, this.setVolume = function(e) {
            o.isAPIReady_bl && !o.isMobile_bl && (o.controller_do.updateVolume(e, !0), t.hasHTML5Video && o.videoScreen_do && o.videoScreen_do.setVolume(e), o.isFlashScreenReady_bl && o.flashObject.setVolume(e), o.dispatchEvent(t.VOLUME_SET, {
                volume: e
            }))
        }, this.setPosterSource = function(e) {
            if (o.isAPIReady_bl && e) {
                var s = e.split(",");
                e = o.isMobile_bl && void 0 != s[1] ? s[1] : s[0], o.posterPath_str = e, o.videoPoster_do.setPoster(o.posterPath_str), o.prevPosterSource_str != e && o.dispatchEvent(t.UPDATE_POSTER_SOURCE), o.prevPosterSource_str = e
            }
        }, this.setVideoSource = function(e, s) {
            if (o.isAPIReady_bl && (e != o.prevVideoSource_str || s)) {
                if (o.prevVideoSource_str = e, !e) return void o.dispatchEvent(t.ERROR, {
                    error: "Video source is not defined!"
                });
                o.stop(e), o.videoSourcePath_str = e, o.finalVideoPath_str = e, o.videoType_str = t.VIDEO;
                var i = e.split(",");
                e = o.isMobile_bl && void 0 != i[1] ? i[1] : i[0], o.finalVideoPath_str = e, t.hasHTML5Video && o.videoType_str == t.VIDEO ? (o.setPosterSource(o.posterPath_str), o.videoPoster_do.show(), o.largePlayButton_do.show(), FWDRLUtils.isIphone && o.videoScreen_do.setX(-5e3), o.videoScreen_do.setVisible(!0), o.videoScreen_do && (o.videoScreen_do.setSource(e), o.data.videoAutoPlay_bl && o.play())) : o.isFlashScreenReady_bl && o.videoType_str == t.VIDEO && (-1 == e.indexOf("://") && 1 != e.indexOf("/") && (e = e.substr(e.indexOf("/") + 1)), o.videoPoster_do.show(), o.largePlayButton_do.show(), o.flashObject.setSource(e), o.data.videoAutoPlay_bl && o.play()), o.prevVideoSourcePath_str = o.videoSourcePath_str, o.resizeHandler(), o.getVideoSource() && o.dispatchEvent(t.UPDATE_VIDEO_SOURCE)
            }
        }, this.goFullScreen = function() {
            if (o.isAPIReady_bl) {
                document.addEventListener && (document.addEventListener("fullscreenchange", o.onFullScreenChange), document.addEventListener("mozfullscreenchange", o.onFullScreenChange), document.addEventListener("webkitfullscreenchange", o.onFullScreenChange), document.addEventListener("MSFullscreenChange", o.onFullScreenChange)), o.main_do.screen.requestFullScreen ? o.main_do.screen.requestFullScreen() : o.main_do.screen.mozRequestFullScreen ? o.main_do.screen.mozRequestFullScreen() : o.main_do.screen.webkitRequestFullScreen ? o.main_do.screen.webkitRequestFullScreen() : o.main_do.screen.msRequestFullscreen && o.main_do.screen.msRequestFullscreen(), o.disableClick(), document.documentElement.style.overflow = "hidden", o.main_do.getStyle().zIndex = 1e19, o.stageContainer.style.overflow = "visible", o.isFullScreen_bl = !0, o.controller_do.showNormalScreenButton(), o.controller_do.setNormalStateToFullScreenButton();
                var s = FWDRLUtils.getScrollOffsets();
                o.lastX = s.x, o.lastY = s.y, o.isMobile_bl && e.addEventListener("touchmove", o.disableFullScreenOnMobileHandler), o.dispatchEvent(t.GO_FULLSCREEN), setTimeout(o.resizeHandler, 50)
            }
        }, this.disableFullScreenOnMobileHandler = function(e) {
            e.preventDefault && e.preventDefault()
        }, this.goNormalScreen = function() {
            o.isAPIReady_bl && (document.cancelFullScreen ? document.cancelFullScreen() : document.mozCancelFullScreen ? document.mozCancelFullScreen() : document.webkitCancelFullScreen ? document.webkitCancelFullScreen() : document.msExitFullscreen && document.msExitFullscreen(), o.addMainDoToTheOriginalParent(), o.isFullScreen_bl = !1)
        }, this.addMainDoToTheOriginalParent = function() {
            o.isFullScreen_bl && (document.removeEventListener && (document.removeEventListener("fullscreenchange", o.onFullScreenChange), document.removeEventListener("mozfullscreenchange", o.onFullScreenChange), document.removeEventListener("webkitfullscreenchange", o.onFullScreenChange), document.removeEventListener("MSFullscreenChange", o.onFullScreenChange)), o.controller_do.setNormalStateToFullScreenButton(), FWDRLUtils.isIEAndLessThen9 ? document.documentElement.style.overflow = "auto" : document.documentElement.style.overflow = "visible", o.main_do.getStyle().position = "relative", o.main_do.getStyle().zIndex = 0, o.controller_do.showFullScreenButton(), e.scrollTo(o.lastX, o.lastY), setTimeout(function() {
                o.resizeHandler()
            }, 50), o.isMobile_bl && e.removeEventListener("touchmove", o.disableFullScreenOnMobileHandler), o.dispatchEvent(t.GO_NORMALSCREEN))
        }, this.onFullScreenChange = function(e) {
            document.fullScreen || document.msFullscreenElement || document.mozFullScreen || document.webkitIsFullScreen || document.msieFullScreen || (o.controller_do.showNormalScreenButton(), o.addMainDoToTheOriginalParent(), o.isFullScreen_bl = !1)
        }, this.getVideoSource = function() {
            return o.isAPIReady_bl ? o.finalVideoPath_str : void 0
        }, this.getPosterSource = function() {
            return o.isAPIReady_bl ? o.posterPath_str : void 0
        }, this.getCurrentTime = function() {
            var e;
            return e = o.curTime ? o.curTime : "00:00"
        }, this.getTotalTime = function() {
            var e;
            return e = o.totalTime ? o.totalTime : "00:00"
        }, this.hideCursor = function() {
            document.documentElement.style.cursor = "none", document.getElementsByTagName("body")[0].style.cursor = "none"
        }, this.showCursor = function() {
            document.documentElement.style.cursor = "auto", document.getElementsByTagName("body")[0].style.cursor = "auto"
        }, this.addListener = function(e, t) {
            if (void 0 == e) throw Error("type is required.");
            if ("object" == typeof e) throw Error("type must be of type String.");
            if ("function" != typeof t) throw Error("listener must be of type Function.");
            var s = {};
            s.type = e, s.listener = t, s.target = this, this.listeners.events_ar.push(s)
        }, this.dispatchEvent = function(e, t) {
            if (null != this.listeners) {
                if (void 0 == e) throw Error("type is required.");
                if ("object" == typeof e) throw Error("type must be of type String.");
                for (var s = 0, i = this.listeners.events_ar.length; i > s; s++)
                    if (this.listeners.events_ar[s].target === this && this.listeners.events_ar[s].type === e) {
                        if (t)
                            for (var o in t) this.listeners.events_ar[s][o] = t[o];
                        this.listeners.events_ar[s].listener.call(this, this.listeners.events_ar[s])
                    }
            }
        }, this.removeListener = function(e, t) {
            if (void 0 == e) throw Error("type is required.");
            if ("object" == typeof e) throw Error("type must be of type String.");
            if ("function" != typeof t) throw Error("listener must be of type Function." + e);
            for (var s = 0, i = this.listeners.events_ar.length; i > s; s++)
                if (this.listeners.events_ar[s].target === this && this.listeners.events_ar[s].type === e && this.listeners.events_ar[s].listener === t) {
                    this.listeners.events_ar.splice(s, 1);
                    break
                }
        }, o.init()
    };
    t.setPrototype = function() {
        t.prototype = new FWDRLEventDispatcher
    }, t.hasHTML5Video = function() {
        var e = document.createElement("video"),
            s = !1;
        return e.canPlayType && (s = Boolean("probably" == e.canPlayType("video/mp4") || "maybe" == e.canPlayType("video/mp4")), t.canPlayMp4 = Boolean("probably" == e.canPlayType("video/mp4") || "maybe" == e.canPlayType("video/mp4"))), self.isMobile_bl ? !0 : s
    }(), t.instaces_ar = [], t.curInstance = null, t.keyboardCurInstance = null, t.areInstancesCreated_bl = null, t.PAUSE_ALL_VIDEOS = "pause", t.STOP_ALL_VIDEOS = "stop", t.DO_NOTHING = "none", t.VIDEO = "video", t.READY = "ready", t.STOP = "stop", t.PLAY = "play", t.PAUSE = "pause", t.UPDATE = "update", t.UPDATE_TIME = "updateTime", t.UPDATE_VIDEO_SOURCE = "updateVideoSource", t.UPDATE_POSTER_SOURCE = "udpatePosterSource", t.ERROR = "error", t.PLAY_COMPLETE = "playComplete", t.VOLUME_SET = "volumeSet", t.GO_FULLSCREEN = "goFullScreen", t.GO_NORMALSCREEN = "goNormalScreen", t.RESPONSIVE = "responsive", t.FULL_SCREEN = "fullscreen", t.AFTER_PARENT = "afterparent", e.FWDRLEVPlayer = t
}(window),
function(e) {
    var t = function(e, s, i) {
        var o = this;
        t.prototype;
        this.img_img = new Image, this.img_do = null, this.imgW = 0, this.imgH = 0, this.finalW = 0, this.finalH = 0, this.finalX = 0, this.finalY = 0, this.curPath_str, this.backgroundColor_str = s, this.isTransparent_bl = !1, this.showPoster_bl = i, this.showOrLoadOnMobile_bl = !1, this.isShowed_bl = !0, this.allowToShow_bl = !0, this.isMobile_bl = FWDRLUtils.isMobile, this.init = function() {
            o.img_img = new Image, o.img_do = new FWDRLDisplayObject("img"), o.hide(), o.setBkColor(o.backgroundColor_str)
        }, this.positionAndResize = function() {
            if (e.stageWidth && (o.setWidth(e.stageWidth), o.setHeight(e.stageHeight), o.imgW)) {
                var t, s = e.stageWidth / o.imgW,
                    i = e.stageHeight / o.imgH;
                t = i >= s ? s : i, o.finalW = Math.round(t * o.imgW), o.finalH = Math.round(t * o.imgH), o.finalX = parseInt((e.stageWidth - o.finalW) / 2), o.finalY = parseInt((e.stageHeight - o.finalH) / 2), o.img_do.setX(o.finalX), o.img_do.setY(o.finalY), o.img_do.setWidth(o.finalW), o.img_do.setHeight(o.finalH)
            }
        }, this.setPoster = function(e) {
            return e && "" == FWDRLUtils.trim(e) || "none" == e ? (o.showOrLoadOnMobile_bl = !0, o.isTransparent_bl = !0, void o.show()) : "youtubemobile" == e ? (o.isTransparent_bl = !1, o.showOrLoadOnMobile_bl = !1, o.img_img.src = null, void(o.imgW = 0)) : e == o.curPath_str ? (o.isTransparent_bl = !1, o.showOrLoadOnMobile_bl = !0, void o.show()) : (o.isTransparent_bl = !1, o.showOrLoadOnMobile_bl = !0, o.curPath_str = e, o.allowToShow_bl && (o.isShowed_bl = !1), void(e && (o.img_do && (o.img_do.src = ""), o.img_img.onload = o.posterLoadHandler, o.img_img.src = o.curPath_str)))
        }, this.posterLoadHandler = function(e) {
            o.imgW = o.img_img.width, o.imgH = o.img_img.height, o.img_do.setScreen(o.img_img), o.addChild(o.img_do), o.show(), o.positionAndResize()
        }, this.show = function(e) {
            o.allowToShow_bl && !o.isShowed_bl && o.showOrLoadOnMobile_bl && (o.isShowed_bl = !0, o.isTransparent_bl ? 0 != o.alpha && o.setAlpha(0) : 1 != o.alpha && o.setAlpha(1), o.setVisible(!0), o.isMobile_bl || o.isTransparent_bl || (FWDRLTweenMax.killTweensOf(o), o.setAlpha(0), FWDRLTweenMax.to(o, .6, {
                alpha: 1,
                delay: .4
            })), o.positionAndResize())
        }, this.hide = function() {
            o.isShowed_bl && (o.isShowed_bl = !1, o.setVisible(!1))
        }, this.init()
    };
    t.setPrototype = function() {
        t.prototype = new FWDRLDisplayObject("div")
    }, t.prototype = null, e.FWDRLEVPPoster = t
}(window),
function(e) {
    var t = function(s, i, o) {
        var n = this;
        t.prototype;
        this.video_el = null, this.sourcePath_str = null, this.backgroundColor_str = i, this.controllerHeight = s.data.controllerHeight, this.stageWidth = 0, this.stageHeight = 0, this.lastPercentPlayed = 0, this.volume = o, this.curDuration = 0, this.countNormalMp3Errors = 0, this.countShoutCastErrors = 0, this.maxShoutCastCountErrors = 5,
            this.maxNormalCountErrors = 1, this.disableClickForAWhileId_to, this.disableClick_bl = !1, this.allowScrubing_bl = !1, this.hasError_bl = !0, this.isPlaying_bl = !1, this.isStopped_bl = !0, this.hasPlayedOnce_bl = !1, this.isStartEventDispatched_bl = !1, this.isSafeToBeControlled_bl = !1, this.isMobile_bl = FWDRLUtils.isMobile, this.init = function() {
                n.setupVideo(), n.setBkColor(n.backgroundColor_str)
            }, this.setupVideo = function() {
                null == n.video_el && (n.video_el = document.createElement("video"), n.screen.appendChild(n.video_el), n.video_el.controls = !1, n.video_el.volume = n.volume, n.video_el.style.position = "relative", n.video_el.style.left = "0px", n.video_el.style.top = "0px", n.video_el.style.width = "100%", n.video_el.style.height = "100%", n.video_el.style.margin = "0px", n.video_el.style.padding = "0px", n.video_el.style.maxWidth = "none", n.video_el.style.maxHeight = "none", n.video_el.style.border = "none", n.video_el.style.lineHeight = "0", n.video_el.style.msTouchAction = "none", n.screen.appendChild(n.video_el)), n.video_el.addEventListener("error", n.errorHandler), n.video_el.addEventListener("canplay", n.safeToBeControlled), n.video_el.addEventListener("canplaythrough", n.safeToBeControlled), n.video_el.addEventListener("progress", n.updateProgress), n.video_el.addEventListener("timeupdate", n.updateVideo), n.video_el.addEventListener("pause", n.pauseHandler), n.video_el.addEventListener("play", n.playHandler), FWDRLUtils.isIE || n.video_el.addEventListener("waiting", n.startToBuffer), n.video_el.addEventListener("playing", n.stopToBuffer), n.video_el.addEventListener("ended", n.endedHandler), n.resizeAndPosition()
            }, this.destroyVideo = function() {
                n.video_el && (n.video_el.removeEventListener("error", n.errorHandler), n.video_el.removeEventListener("canplay", n.safeToBeControlled), n.video_el.removeEventListener("canplaythrough", n.safeToBeControlled), n.video_el.removeEventListener("progress", n.updateProgress), n.video_el.removeEventListener("timeupdate", n.updateVideo), n.video_el.removeEventListener("pause", n.pauseHandler), n.video_el.removeEventListener("play", n.playHandler), FWDRLUtils.isIE || n.video_el.removeEventListener("waiting", n.startToBuffer), n.video_el.removeEventListener("playing", n.stopToBuffer), n.video_el.removeEventListener("ended", n.endedHandler), n.isMobile_bl ? (n.screen.removeChild(n.video_el), n.video_el = null) : (n.video_el.style.visibility = "hidden", n.video_el.src = "", n.video_el.load()))
            }, this.startToBuffer = function(e) {
                n.dispatchEvent(t.START_TO_BUFFER)
            }, this.stopToBuffer = function() {
                n.dispatchEvent(t.STOP_TO_BUFFER)
            }, this.errorHandler = function(s) {
                var i;
                n.hasError_bl = !0, i = 0 == n.video_el.networkState ? "error 'self.video_el.networkState = 0'" : 1 == n.video_el.networkState ? "error 'self.video_el.networkState = 1'" : 2 == n.video_el.networkState ? "'self.video_el.networkState = 2'" : 3 == n.video_el.networkState ? "Video source not found <font color='#FF0000'>" + n.sourcePath_str + "</font>" : s, e.console && e.console.log(n.video_el.networkState), n.dispatchEvent(t.ERROR, {
                    text: i
                })
            }, this.resizeAndPosition = function(e, t) {
                e && (n.stageWidth = e, n.stageHeight = t), n.setWidth(n.stageWidth), FWDRLUtils.isIphone ? n.setHeight(n.stageHeight - n.controllerHeight) : n.setHeight(n.stageHeight)
            }, this.setSource = function(e) {
                n.sourcePath_str = e, n.video_el && n.stop()
            }, this.play = function(e) {
                if (FWDRLEVPlayer.curInstance = s, n.isStopped_bl) n.isPlaying_bl = !1, n.hasError_bl = !1, n.allowScrubing_bl = !1, n.isStopped_bl = !1, n.setupVideo(), n.setVolume(), n.video_el.src = n.sourcePath_str, n.play(), n.startToBuffer(!0), n.isPlaying_bl = !0;
                else if (!n.video_el.ended || e) try {
                    n.isPlaying_bl = !0, n.hasPlayedOnce_bl = !0, n.video_el.play(), FWDRLUtils.isIE && n.dispatchEvent(t.PLAY)
                } catch (i) {}
            }, this.pause = function() {
                if (null != n && !n.isStopped_bl && !n.hasError_bl && !n.video_el.ended) try {
                    n.video_el.pause(), n.isPlaying_bl = !1, FWDRLUtils.isIE && n.dispatchEvent(t.PAUSE)
                } catch (e) {}
            }, this.togglePlayPause = function() {
                null != n && n.isSafeToBeControlled_bl && (n.isPlaying_bl ? n.pause() : n.play())
            }, this.pauseHandler = function() {
                n.allowScrubing_bl || n.dispatchEvent(t.PAUSE)
            }, this.playHandler = function() {
                n.allowScrubing_bl || (n.isStartEventDispatched_bl || (n.dispatchEvent(t.START), n.isStartEventDispatched_bl = !0), n.dispatchEvent(t.PLAY))
            }, this.endedHandler = function() {
                n.dispatchEvent(t.PLAY_COMPLETE)
            }, this.resume = function() {
                n.isStopped_bl || n.play()
            }, this.stop = function(e) {
                (null != n && null != n.video_el && !n.isStopped_bl || e) && (n.isPlaying_bl = !1, n.isStopped_bl = !0, n.hasPlayedOnce_bl = !0, n.isSafeToBeControlled_bl = !1, n.isStartEventDispatched_bl = !1, n.destroyVideo(), n.dispatchEvent(t.LOAD_PROGRESS, {
                    percent: 0
                }), n.dispatchEvent(t.UPDATE_TIME, {
                    curTime: "00:00",
                    totalTime: "00:00"
                }), n.dispatchEvent(t.STOP), n.stopToBuffer())
            }, this.safeToBeControlled = function() {
                n.stopToScrub(), n.isSafeToBeControlled_bl || (n.hasHours_bl = Math.floor(n.video_el.duration / 3600) > 0, n.isPlaying_bl = !0, n.isSafeToBeControlled_bl = !0, n.video_el.style.visibility = "visible", n.dispatchEvent(t.SAFE_TO_SCRUBB))
            }, this.updateProgress = function() {
                var e, s = 0;
                n.video_el.buffered.length > 0 && (e = n.video_el.buffered.end(n.video_el.buffered.length - 1), s = e.toFixed(1) / n.video_el.duration.toFixed(1), (isNaN(s) || !s) && (s = 0)), 1 == s && n.video_el.removeEventListener("progress", n.updateProgress), n.dispatchEvent(t.LOAD_PROGRESS, {
                    percent: s
                })
            }, this.updateVideo = function() {
                var e;
                n.allowScrubing_bl || (e = n.video_el.currentTime / n.video_el.duration, n.dispatchEvent(t.UPDATE, {
                    percent: e
                }));
                var s = n.formatTime(n.video_el.duration),
                    i = n.formatTime(n.video_el.currentTime);
                isNaN(n.video_el.duration) ? n.dispatchEvent(t.UPDATE_TIME, {
                    curTime: "00:00",
                    totalTime: "00:00"
                }) : n.dispatchEvent(t.UPDATE_TIME, {
                    curTime: i,
                    totalTime: s
                }), n.lastPercentPlayed = e, n.curDuration = i
            }, this.startToScrub = function() {
                n.allowScrubing_bl = !0
            }, this.stopToScrub = function() {
                n.allowScrubing_bl = !1
            }, this.scrub = function(e, s) {
                s && n.startToScrub();
                try {
                    n.video_el.currentTime = n.video_el.duration * e;
                    var i = n.formatTime(n.video_el.duration),
                        o = n.formatTime(n.video_el.currentTime);
                    n.dispatchEvent(t.UPDATE_TIME, {
                        curTime: o,
                        totalTime: i
                    })
                } catch (s) {}
            }, this.replay = function() {
                n.scrub(0), n.play()
            }, this.setVolume = function(e) {
                e && (n.volume = e), n.video_el && (n.video_el.volume = n.volume)
            }, this.formatTime = function(e) {
                var t = Math.floor(e / 3600),
                    s = e % 3600,
                    i = Math.floor(s / 60),
                    o = s % 60,
                    r = Math.ceil(o);
                return i = i >= 10 ? i : "0" + i, r = r >= 10 ? r : "0" + r, isNaN(r) ? "00:00" : n.hasHours_bl ? t + ":" + i + ":" + r : i + ":" + r
            }, this.init()
    };
    t.setPrototype = function() {
        t.prototype = new FWDRLDisplayObject("div")
    }, t.ERROR = "error", t.UPDATE = "update", t.UPDATE_TIME = "updateTime", t.SAFE_TO_SCRUBB = "safeToControll", t.LOAD_PROGRESS = "loadProgress", t.START = "start", t.PLAY = "play", t.PAUSE = "pause", t.STOP = "stop", t.PLAY_COMPLETE = "playComplete", t.START_TO_BUFFER = "startToBuffer", t.STOP_TO_BUFFER = "stopToBuffer", e.FWDRLEVPVideoScreen = t
}(window),
function(e) {
    var t = function(e, s, i) {
        var o = this,
            n = t.prototype;
        this.nImg = e, this.sPath_str = s, this.dPath_str = i, this.n_sdo, this.s_sdo, this.d_sdo, this.toolTipLabel_str, this.totalWidth = this.nImg.width, this.totalHeight = this.nImg.height, this.isSetToDisabledState_bl = !1, this.isDisabled_bl = !1, this.isSelectedFinal_bl = !1, this.isActive_bl = !1, this.isMobile_bl = FWDRLUtils.isMobile, this.hasPointerEvent_bl = FWDRLUtils.hasPointerEvent, this.allowToCreateSecondButton_bl = !o.isMobile_bl || o.hasPointerEvent_bl, o.init = function() {
            o.setupMainContainers()
        }, o.setupMainContainers = function() {
            if (o.n_sdo = new FWDRLDisplayObject("img"), o.n_sdo.setScreen(o.nImg), o.addChild(o.n_sdo), o.allowToCreateSecondButton_bl) {
                var e = new Image;
                if (e.src = o.sPath_str, o.s_sdo = new FWDRLDisplayObject("img"), o.s_sdo.setScreen(e), o.s_sdo.setWidth(o.totalWidth), o.s_sdo.setHeight(o.totalHeight), o.s_sdo.setAlpha(0), o.addChild(o.s_sdo), o.dPath_str) {
                    var t = new Image;
                    t.src = o.dPath_str, o.d_sdo = new FWDRLDisplayObject("img"), o.d_sdo.setScreen(t), o.d_sdo.setWidth(o.totalWidth), o.d_sdo.setHeight(o.totalHeight), o.isMobile_bl ? o.d_sdo.setX(-100) : o.d_sdo.setAlpha(0), o.addChild(o.d_sdo)
                }
            }
            o.setWidth(o.totalWidth), o.setHeight(o.totalHeight), o.setButtonMode(!0), o.isMobile_bl ? o.hasPointerEvent_bl ? (o.screen.addEventListener("pointerdown", o.onMouseUp), o.screen.addEventListener("pointerover", o.onMouseOver), o.screen.addEventListener("pointerout", o.onMouseOut)) : o.screen.addEventListener("touchend", o.onMouseUp) : o.screen.addEventListener ? (o.screen.addEventListener("mouseover", o.onMouseOver), o.screen.addEventListener("mouseout", o.onMouseOut), o.screen.addEventListener("mousedown", o.onMouseUp)) : o.screen.attachEvent && (o.screen.attachEvent("onmouseover", o.onMouseOver), o.screen.attachEvent("onmouseout", o.onMouseOut), o.screen.attachEvent("onmousedown", o.onMouseUp))
        }, o.onMouseOver = function(e) {
            if (!e.pointerType || e.pointerType == e.MSPOINTER_TYPE_MOUSE) {
                if (o.isDisabled_bl || o.isSelectedFinal_bl) return;
                o.dispatchEvent(t.MOUSE_OVER, {
                    e: e
                }), FWDRLTweenMax.killTweensOf(o.s_sdo), FWDRLTweenMax.to(o.s_sdo, .5, {
                    alpha: 1,
                    delay: .1,
                    ease: Expo.easeOut
                })
            }
        }, o.onMouseOut = function(e) {
            if (!e.pointerType || e.pointerType == e.MSPOINTER_TYPE_MOUSE) {
                if (o.isDisabled_bl || o.isSelectedFinal_bl) return;
                o.dispatchEvent(t.MOUSE_OUT, {
                    e: e
                }), FWDRLTweenMax.killTweensOf(o.s_sdo), FWDRLTweenMax.to(o.s_sdo, .5, {
                    alpha: 0,
                    ease: Expo.easeOut
                })
            }
        }, o.onMouseUp = function(e) {
            e.preventDefault && e.preventDefault(), o.isDisabled_bl || 2 == e.button || o.isSelectedFinal_bl || o.dispatchEvent(t.MOUSE_UP, {
                e: e
            })
        }, o.setSelctedFinal = function() {
            o.isSelectedFinal_bl = !0, FWDRLTweenMax.killTweensOf(o.s_sdo), FWDRLTweenMax.to(o.s_sdo, .8, {
                alpha: 1,
                ease: Expo.easeOut
            }), o.setButtonMode(!1)
        }, o.setUnselctedFinal = function() {
            o.isSelectedFinal_bl = !1, FWDRLTweenMax.to(o.s_sdo, .8, {
                alpha: 0,
                delay: .1,
                ease: Expo.easeOut
            }), o.setButtonMode(!0)
        }, this.setDisabledState = function() {
            o.isSetToDisabledState_bl || (o.isSetToDisabledState_bl = !0, o.isMobile_bl ? o.d_sdo.setX(0) : (FWDRLTweenMax.killTweensOf(o.d_sdo), FWDRLTweenMax.to(o.d_sdo, .8, {
                alpha: 1,
                ease: Expo.easeOut
            })))
        }, this.setEnabledState = function() {
            o.isSetToDisabledState_bl && (o.isSetToDisabledState_bl = !1, o.isMobile_bl ? o.d_sdo.setX(-100) : (FWDRLTweenMax.killTweensOf(o.d_sdo), FWDRLTweenMax.to(o.d_sdo, .8, {
                alpha: 0,
                delay: .1,
                ease: Expo.easeOut
            })))
        }, this.disable = function() {
            o.isDisabled_bl = !0, o.setButtonMode(!1)
        }, this.enable = function() {
            o.isDisabled_bl = !1, o.setButtonMode(!0)
        }, o.destroy = function() {
            o.isMobile_bl ? o.hasPointerEvent_bl ? (o.screen.removeEventListener("pointerdown", o.onMouseUp), o.screen.removeEventListener("pointerover", o.onMouseOver), o.screen.removeEventListener("pointerout", o.onMouseOut)) : o.screen.removeEventListener("touchend", o.onMouseUp) : o.screen.removeEventListener ? (o.screen.removeEventListener("mouseover", o.onMouseOver), o.screen.removeEventListener("mouseout", o.onMouseOut), o.screen.removeEventListener("mousedown", o.onMouseUp)) : o.screen.detachEvent && (o.screen.detachEvent("onmouseover", o.onMouseOver), o.screen.detachEvent("onmouseout", o.onMouseOut), o.screen.detachEvent("onmousedown", o.onMouseUp)), FWDRLTweenMax.killTweensOf(o.s_sdo), o.n_sdo.destroy(), o.s_sdo.destroy(), o.d_sdo && (FWDRLTweenMax.killTweensOf(o.d_sdo), o.d_sdo.destroy()), o.nImg = null, o.sImg = null, o.dImg = null, o.n_sdo = null, o.s_sdo = null, o.d_sdo = null, e = null, sImg = null, dImg = null, o.toolTipLabel_str = null, o.init = null, o.setupMainContainers = null, o.onMouseOver = null, o.onMouseOut = null, o.onClick = null, o.onMouseDown = null, o.setSelctedFinal = null, o.setUnselctedFinal = null, o.setInnerHTML(""), n.destroy(), o = null, n = null, t.prototype = null
        }, o.init()
    };
    t.setPrototype = function() {
        t.prototype = null, t.prototype = new FWDRLDisplayObject("div")
    }, t.CLICK = "onClick", t.MOUSE_OVER = "onMouseOver", t.MOUSE_OUT = "onMouseOut", t.MOUSE_UP = "onMouseDown", t.prototype = null, e.FWDRLEVPVolumeButton = t
}(window),
function(e) {
    var t = function(s) {
        var i = this;
        t.prototype;
        this.appId = s;
        i.init = function() {
            i.checkFBRoot(), e.fbAsyncInit || i.connect()
        }, this.checkFBRoot = function() {
            var e = Boolean(document.getElementById("fb-root"));
            e || (e = document.createElement("div"), e.id = "fb-root", document.getElementsByTagName("body")[0].appendChild(e))
        }, this.connect = function() {
            i.hasStartedToConnect_bl || (i.hasStartedToConnect_bl = !0, i.isAPIReadyId_to = setTimeout(function() {
                i.dispatchEvent(t.API_ERROR, {
                    error: "Error loading Faceboook API!"
                })
            }, 6e3), e.fbAsyncInit = function() {
                FB.init({
                    appId: i.appId,
                    xfbml: !0,
                    cookie: !0,
                    status: !0,
                    version: "v2.4"
                }), clearTimeout(i.isAPIReadyId_to), i.dispatchEvent(t.API_READY)
            }, function(e, t, s) {
                var i, o = e.getElementsByTagName(t)[0];
                e.getElementById(s) || (i = e.createElement(t), i.id = s, i.src = "https://connect.facebook.net/en_US/sdk.js", o.parentNode.insertBefore(i, o))
            }(document, "script", "facebook-jssdk"))
        }, this.share = function(e, t, s) {
            s && t ? FB.ui({
                method: "feed",
                link: e,
                caption: s,
                picture: t
            }, function(e) {}) : s ? FB.ui({
                method: "feed",
                link: e,
                caption: s
            }, function(e) {}) : t ? FB.ui({
                method: "feed",
                link: e,
                picture: t
            }, function(e) {}) : FB.ui({
                method: "feed",
                link: e
            }, function(e) {})
        }, i.init()
    };
    t.setPrototype = function() {
        t.prototype = new FWDRLEventDispatcher
    }, t.prototype = null, t.API_READY = "facebookAPIReady", t.API_ERROR = "facebookAPIError", e.FWDRLFacebookShare = t
}(window);
var FWDRLFlashTest = function() {
    function e(e) {
        var t = u.pv,
            s = e.split(".");
        return s[0] = parseInt(s[0], 10), s[1] = parseInt(s[1], 10) || 0, s[2] = parseInt(s[2], 10) || 0, t[0] > s[0] || t[0] == s[0] && t[1] > s[1] || t[0] == s[0] && t[1] == s[1] && t[2] >= s[2] ? !0 : !1
    }
    var t = "undefined",
        s = "object",
        i = "Shockwave Flash",
        o = "ShockwaveFlash.ShockwaveFlash",
        n = "application/x-shockwave-flash",
        r = window,
        l = document,
        a = navigator,
        d = !1,
        u = function() {
            var e = typeof l.getElementById != t && typeof l.getElementsByTagName != t && typeof l.createElement != t,
                u = a.userAgent.toLowerCase(),
                h = a.platform.toLowerCase(),
                c = h ? /win/.test(h) : /win/.test(u),
                _ = h ? /mac/.test(h) : /mac/.test(u),
                f = /webkit/.test(u) ? parseFloat(u.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")) : !1,
                b = !1,
                m = [0, 0, 0],
                p = null;
            if (typeof a.plugins != t && typeof a.plugins[i] == s) p = a.plugins[i].description, !p || typeof a.mimeTypes != t && a.mimeTypes[n] && !a.mimeTypes[n].enabledPlugin || (d = !0, b = !1, p = p.replace(/^.*\s+(\S+\s+\S+$)/, "$1"), m[0] = parseInt(p.replace(/^(.*)\..*$/, "$1"), 10), m[1] = parseInt(p.replace(/^.*\.(.*)\s.*$/, "$1"), 10), m[2] = /[a-zA-Z]/.test(p) ? parseInt(p.replace(/^.*[a-zA-Z]+(.*)$/, "$1"), 10) : 0);
            else if (typeof r.ActiveXObject != t) try {
                var v = new ActiveXObject(o);
                v && (p = v.GetVariable("$version"), p && (b = !0, p = p.split(" ")[1].split(","), m = [parseInt(p[0], 10), parseInt(p[1], 10), parseInt(p[2], 10)]))
            } catch (g) {}
            return {
                w3: e,
                pv: m,
                wk: f,
                ie: b,
                win: c,
                mac: _
            }
        }();
    return {
        hasFlashPlayerVersion: e
    }
}();
! function(e) {
    var t = function(s, i) {
        var o = this;
        t.prototype;
        this.screenToTest = s, this.hideDelay = i, this.globalX = 0, this.globalY = 0, this.currentTime, this.checkIntervalId_int, this.hideCompleteId_to, this.hasInitialTestEvents_bl = !1, this.addSecondTestEvents_bl = !1, this.dispatchOnceShow_bl = !0, this.dispatchOnceHide_bl = !1, this.isStopped_bl = !0, this.isHidden_bl = !1, this.isMobile_bl = FWDRLUtils.isMobile, this.hasPointerEvent_bl = FWDRLUtils.hasPointerEvent, o.init = function() {}, o.start = function() {
            o.currentTime = (new Date).getTime(), clearInterval(o.checkIntervalId_int), o.checkIntervalId_int = setInterval(o.update, 100), o.addMouseOrTouchCheck(), o.isStopped_bl = !1
        }, o.stop = function() {
            clearInterval(o.checkIntervalId_int), o.isStopped_bl = !0, o.removeMouseOrTouchCheck(), o.removeMouseOrTouchCheck2()
        }, o.addMouseOrTouchCheck = function() {
            o.hasInitialTestEvents_bl || (o.hasInitialTestEvents_bl = !0, o.isMobile_bl ? o.hasPointerEvent_bl ? (o.screenToTest.screen.addEventListener("pointerdown", o.onMouseOrTouchUpdate), o.screenToTest.screen.addEventListener("pointermove", o.onMouseOrTouchUpdate)) : o.screenToTest.screen.addEventListener("touchstart", o.onMouseOrTouchUpdate) : e.addEventListener ? e.addEventListener("mousemove", o.onMouseOrTouchUpdate) : document.attachEvent && document.attachEvent("onmousemove", o.onMouseOrTouchUpdate))
        }, o.removeMouseOrTouchCheck = function() {
            o.hasInitialTestEvents_bl && (o.hasInitialTestEvents_bl = !1, o.isMobile_bl ? o.hasPointerEvent_bl ? (o.screenToTest.screen.removeEventListener("pointerdown", o.onMouseOrTouchUpdate), o.screenToTest.screen.removeEventListener("pointermove", o.onMouseOrTouchUpdate)) : o.screenToTest.screen.removeEventListener("touchstart", o.onMouseOrTouchUpdate) : e.removeEventListener ? e.removeEventListener("mousemove", o.onMouseOrTouchUpdate) : document.detachEvent && document.detachEvent("onmousemove", o.onMouseOrTouchUpdate))
        }, o.addMouseOrTouchCheck2 = function() {
            o.addSecondTestEvents_bl || (o.addSecondTestEvents_bl = !0, o.screenToTest.screen.addEventListener ? o.screenToTest.screen.addEventListener("mousemove", o.secondTestMoveDummy) : o.screenToTest.screen.attachEvent && o.screenToTest.screen.attachEvent("onmousemove", o.secondTestMoveDummy))
        }, o.removeMouseOrTouchCheck2 = function() {
            o.addSecondTestEvents_bl && (o.addSecondTestEvents_bl = !1, o.screenToTest.screen.removeEventListener ? o.screenToTest.screen.removeEventListener("mousemove", o.secondTestMoveDummy) : o.screenToTest.screen.detachEvent && o.screenToTest.screen.detachEvent("onmousemove", o.secondTestMoveDummy))
        }, this.secondTestMoveDummy = function() {
            o.removeMouseOrTouchCheck2(), o.addMouseOrTouchCheck()
        }, o.onMouseOrTouchUpdate = function(e) {
            var t = FWDRLUtils.getViewportMouseCoordinates(e);
            o.globalX != t.screenX && o.globalY != t.screenY && (o.currentTime = (new Date).getTime()), o.globalX = t.screenX, o.globalY = t.screenY, o.isMobile_bl || FWDRLUtils.hitTest(o.screenToTest.screen, o.globalX, o.globalY) || (o.removeMouseOrTouchCheck(), o.addMouseOrTouchCheck2())
        }, o.update = function(e) {
            (new Date).getTime() > o.currentTime + o.hideDelay ? o.dispatchOnceShow_bl && (o.dispatchOnceHide_bl = !0, o.dispatchOnceShow_bl = !1, o.isHidden_bl = !0, o.dispatchEvent(t.HIDE), clearTimeout(o.hideCompleteId_to), o.hideCompleteId_to = setTimeout(function() {
                o.dispatchEvent(t.HIDE_COMPLETE)
            }, 1e3)) : o.dispatchOnceHide_bl && (clearTimeout(o.hideCompleteId_to), o.dispatchOnceHide_bl = !1, o.dispatchOnceShow_bl = !0, o.isHidden_bl = !1, o.dispatchEvent(t.SHOW))
        }, o.reset = function() {
            o.isHidden_bl = !1, clearTimeout(o.hideCompleteId_to), o.currentTime = (new Date).getTime(), o.dispatchEvent(t.SHOW)
        }, o.init()
    };
    t.HIDE = "hide", t.SHOW = "show", t.HIDE_COMPLETE = "hideComplete", t.setPrototype = function() {
        t.prototype = new FWDRLEventDispatcher
    }, e.FWDRLHider = t
}(window),
function(e) {
    var t = function(e, s) {
        var i = this;
        t.prototype;
        this.textHolder_do = null, this.img_do, this.warningIconPath_str = s, this.show_to = null, this.isShowed_bl = !1, this.isShowedOnce_bl = !1, this.allowToRemove_bl = !0, this.init = function() {
            i.setResizableSizeAfterParent(), i.getStyle().width = "80%", i.textHolder_do = new FWDRLDisplayObject("div"), FWDRLUtils.isIEAndLessThen9 || (i.textHolder_do.getStyle().font = "Arial"), i.textHolder_do.getStyle().wordWrap = "break-word", i.textHolder_do.getStyle().padding = "10px", i.textHolder_do.getStyle().paddingLeft = "42px", i.textHolder_do.getStyle().lineHeight = "18px", i.textHolder_do.setBkColor("#EEEEEE");
            var e = new Image;
            e.src = this.warningIconPath_str, this.img_do = new FWDRLDisplayObject("img"), this.img_do.setScreen(e), this.img_do.setWidth(28), this.img_do.setHeight(28), i.addChild(i.textHolder_do), i.addChild(i.img_do)
        }, this.showText = function(e) {
            i.isShowedOnce_bl || (i.screen.addEventListener ? i.screen.addEventListener("click", i.closeWindow) : i.screen.attachEvent && i.screen.attachEvent("onclick", i.closeWindow), i.isShowedOnce_bl = !0), i.textHolder_do.setInnerHTML(e), clearTimeout(i.show_to), i.show()
        }, this.show = function() {
            i.isShowed_bl = !0, i.setVisible(!0), setTimeout(function() {
                i.positionAndResize()
            }, 60)
        }, this.positionAndResize = function() {
            i.setHeight(i.textHolder_do.getHeight()), i.img_do.setX(6), i.img_do.setY(parseInt((i.h - i.img_do.h) / 2))
        }, this.closeWindow = function() {
            if (i.allowToRemove_bl) {
                i.isShowed_bl = !1, clearTimeout(i.show_to);
                try {
                    e.main_do.removeChild(i)
                } catch (t) {}
            }
        }, this.init()
    };
    t.setPrototype = function() {
        t.prototype = new FWDRLDisplayObject("div", "relative")
    }, t.prototype = null, e.FWDRLInfo = t
}(window),
function(e) {
    var t = function(e, s, i, o, n, r) {
        var l = this;
        t.prototype;
        this.imageSource_img = e, this.image_sdo = null, this.segmentWidth = s, this.segmentHeight = i, this.totalSegments = o, this.animDelay = n || 300, this.count = 0, this.delayTimerId_int, this.isShowed_bl = !0, this.skipFirstFrame_bl = r, l.init = function() {
            l.getStyle().pointerEvents = "none", l.setWidth(l.segmentWidth), l.setHeight(l.segmentHeight), l.image_sdo = new FWDRLDisplayObject("img"), l.image_sdo.setScreen(l.imageSource_img), l.image_sdo.hasTransform3d_bl = !1, l.image_sdo.hasTransform2d_bl = !1, l.addChild(l.image_sdo), l.hide(!1)
        }, l.start = function() {
            null != l && (clearInterval(l.delayTimerId_int), l.delayTimerId_int = setInterval(l.updatePreloader, l.animDelay))
        }, l.stop = function() {
            clearInterval(l.delayTimerId_int), l.image_sdo.setX(0)
        }, l.updatePreloader = function() {
            if (null != l) {
                l.count++, l.count > l.totalSegments - 1 && (l.skipFirstFrame_bl ? l.count = 1 : l.count = 0);
                var e = l.count * l.segmentWidth;
                l.image_sdo.setX(-e)
            }
        }, l.show = function() {
            l.setVisible(!0), l.start(), FWDRLTweenMax.killTweensOf(l), FWDRLTweenMax.to(l, .8, {
                alpha: 1,
                ease: Quart.easeOut
            }), l.isShowed_bl = !0
        }, l.hide = function(e) {
            l.isShowed_bl && (FWDRLTweenMax.killTweensOf(l), e ? FWDRLTweenMax.to(l, .8, {
                alpha: 0,
                onComplete: l.onHideComplete,
                ease: Quart.easeOut
            }) : (l.setVisible(!1), l.setAlpha(0)), l.isShowed_bl = !1)
        }, l.onHideComplete = function() {
            l.stop(), l.setVisible(!1), l.dispatchEvent(t.HIDE_COMPLETE)
        }, l.init()
    };
    t.setPrototype = function() {
        t.prototype = new FWDRLDisplayObject("div")
    }, t.HIDE_COMPLETE = "hideComplete", t.prototype = null, e.FWDRLPreloader = t
}(window),
function(e) {
    var t = function(e, s, i, o) {
        var n = this;
        t.prototype;
        this.nImg = e, this.sPath_str = s, this.dPath_str = i, this.buttonsHolder_do, this.n_sdo, this.s_sdo, this.d_sdo, this.toolTipLabel_str, this.totalWidth = this.nImg.width, this.totalHeight = this.nImg.height, this.isShowed_bl = !0, this.isSetToDisabledState_bl = !1, this.isDisabled_bl = !1, this.isDisabledForGood_bl = !1, this.isSelectedFinal_bl = !1, this.isActive_bl = !1, this.isMobile_bl = FWDRLUtils.isMobile, this.hasPointerEvent_bl = FWDRLUtils.hasPointerEvent, this.allowToCreateSecondButton_bl = !n.isMobile_bl || n.hasPointerEvent_bl || o, n.init = function() {
            n.setupMainContainers()
        }, n.setupMainContainers = function() {
            if (n.setBackfaceVisibility(), n.hasTransform3d_bl = !1, n.hasTransform2d_bl = !1, n.buttonsHolder_do = new FWDRLDisplayObject("div"), n.buttonsHolder_do.setOverflow("visible"), n.buttonsHolder_do.setBackfaceVisibility(), n.buttonsHolder_do.hasTransform3d_bl = !1, n.buttonsHolder_do.hasTransform2d_bl = !1, n.n_sdo = new FWDRLDisplayObject("img"), n.n_sdo.setScreen(n.nImg), n.n_sdo.setBackfaceVisibility(), n.n_sdo.hasTransform3d_bl = !1, n.n_sdo.hasTransform2d_bl = !1, n.buttonsHolder_do.addChild(n.n_sdo), n.allowToCreateSecondButton_bl) {
                var e = new Image;
                if (e.src = n.sPath_str, n.s_sdo = new FWDRLDisplayObject("img"), n.s_sdo.setScreen(e), n.s_sdo.setWidth(n.totalWidth), n.s_sdo.setHeight(n.totalHeight), n.s_sdo.setAlpha(0), n.s_sdo.setBackfaceVisibility(), n.s_sdo.hasTransform3d_bl = !1, n.s_sdo.hasTransform2d_bl = !1, n.buttonsHolder_do.addChild(n.s_sdo), n.dPath_str) {
                    var t = new Image;
                    t.src = n.dPath_str, n.d_sdo = new FWDRLDisplayObject("img"), n.d_sdo.setScreen(t), n.d_sdo.setWidth(n.totalWidth), n.d_sdo.setHeight(n.totalHeight), n.d_sdo.setX(-100), n.d_sdo.setBackfaceVisibility(), n.d_sdo.hasTransform3d_bl = !1, n.d_sdo.hasTransform2d_bl = !1, n.buttonsHolder_do.addChild(n.d_sdo)
                }
            }
            n.setWidth(n.totalWidth), n.setHeight(n.totalHeight), n.setButtonMode(!0), n.screen.style.yellowOverlayPointerEvents = "none", n.addChild(n.buttonsHolder_do), n.isMobile_bl ? n.hasPointerEvent_bl ? (n.screen.addEventListener("pointerup", n.onMouseUp), n.screen.addEventListener("pointerover", n.onMouseOver), n.screen.addEventListener("pointerout", n.onMouseOut)) : n.screen.addEventListener("touchend", n.onMouseUp) : n.screen.addEventListener ? (n.screen.addEventListener("mouseover", n.onMouseOver), n.screen.addEventListener("mouseout", n.onMouseOut), n.screen.addEventListener("mouseup", n.onMouseUp)) : n.screen.attachEvent && (n.screen.attachEvent("onmouseover", n.onMouseOver), n.screen.attachEvent("onmouseout", n.onMouseOut), n.screen.attachEvent("onmouseup", n.onMouseUp))
        }, n.onMouseOver = function(e) {
            if (n.dispatchEvent(t.SHOW_TOOLTIP, {
                    e: e
                }), !(n.isDisabledForGood_bl || e.pointerType && e.pointerType != e.MSPOINTER_TYPE_MOUSE && "mouse" != e.pointerType)) {
                if (n.isDisabled_bl || n.isSelectedFinal_bl) return;
                n.dispatchEvent(t.MOUSE_OVER, {
                    e: e
                }), n.setSelectedState()
            }
        }, n.onMouseOut = function(e) {
            if (!(n.isDisabledForGood_bl || e.pointerType && e.pointerType != e.MSPOINTER_TYPE_MOUSE && "mouse" != e.pointerType)) {
                if (n.isDisabled_bl || n.isSelectedFinal_bl) return;
                n.dispatchEvent(t.MOUSE_OUT, {
                    e: e
                }), n.setNormalState()
            }
        }, n.onMouseUp = function(e) {
            n.isDisabledForGood_bl || (e.preventDefault && e.preventDefault(), n.isDisabled_bl || 2 == e.button || n.dispatchEvent(t.MOUSE_UP, {
                e: e
            }))
        }, n.setSelected = function() {
            n.isSelectedFinal_bl = !0, n.s_sdo && (FWDRLTweenMax.killTweensOf(n.s_sdo), FWDRLTweenMax.to(n.s_sdo, .8, {
                alpha: 1,
                ease: Expo.easeOut
            }))
        }, n.setUnselected = function() {
            n.isSelectedFinal_bl = !1, n.s_sdo && FWDRLTweenMax.to(n.s_sdo, .8, {
                alpha: 0,
                delay: .1,
                ease: Expo.easeOut
            })
        }, this.setNormalState = function() {
            n.s_sdo && (FWDRLTweenMax.killTweensOf(n.s_sdo), FWDRLTweenMax.to(n.s_sdo, .5, {
                alpha: 0,
                ease: Expo.easeOut
            }))
        }, this.setSelectedState = function() {
            n.s_sdo && (FWDRLTweenMax.killTweensOf(n.s_sdo), FWDRLTweenMax.to(n.s_sdo, .5, {
                alpha: 1,
                delay: .1,
                ease: Expo.easeOut
            }))
        }, this.setDisabledState = function() {
            n.isSetToDisabledState_bl || (n.isSetToDisabledState_bl = !0, n.d_sdo && n.d_sdo.setX(0))
        }, this.setEnabledState = function() {
            n.isSetToDisabledState_bl && (n.isSetToDisabledState_bl = !1, n.d_sdo && n.d_sdo.setX(-100))
        }, this.disable = function(e) {
            n.isDisabledForGood_bl || n.isDisabled_bl || (n.isDisabled_bl = !0, n.setButtonMode(!1), FWDRLTweenMax.to(n, .6, {
                alpha: .4
            }), e || n.setNormalState())
        }, this.enable = function() {
            !n.isDisabledForGood_bl && n.isDisabled_bl && (n.isDisabled_bl = !1, n.setButtonMode(!0), FWDRLTweenMax.to(n, .6, {
                alpha: 1
            }))
        }, this.disableForGood = function() {
            n.isDisabledForGood_bl = !0, n.setButtonMode(!1)
        }, this.showDisabledState = function() {
            0 != n.d_sdo.x && n.d_sdo.setX(0)
        }, this.hideDisabledState = function() {
            -100 != n.d_sdo.x && n.d_sdo.setX(-100)
        }, this.show = function() {
            n.isShowed_bl || (n.isShowed_bl = !0, FWDRLTweenMax.killTweensOf(n), FWDRLUtils.isIEAndLessThen9 ? FWDRLUtils.isIEAndLessThen9 ? n.setVisible(!0) : (n.setAlpha(0), FWDRLTweenMax.to(n, .4, {
                alpha: 1,
                delay: .4
            }), n.setVisible(!0)) : FWDRLUtils.isIEWebKit ? (FWDRLTweenMax.killTweensOf(n.n_sdo), n.n_sdo.setScale2(0), FWDRLTweenMax.to(n.n_sdo, .8, {
                scale: 1,
                delay: .4,
                onStart: function() {
                    n.setVisible(!0)
                },
                ease: Elastic.easeOut
            })) : (n.setScale2(0), FWDRLTweenMax.to(n, .8, {
                scale: 1,
                delay: .4,
                onStart: function() {
                    n.setVisible(!0)
                },
                ease: Elastic.easeOut
            })))
        }, this.hide = function(e) {
            n.isShowed_bl && (n.isShowed_bl = !1, FWDRLTweenMax.killTweensOf(n), FWDRLTweenMax.killTweensOf(n.n_sdo), n.setVisible(!1))
        }, n.init()
    };
    t.setPrototype = function(e) {
        t.prototype = null, e ? t.prototype = new FWDRLTransformDisplayObject("div") : t.prototype = new FWDRLDisplayObject("div")
    }, t.CLICK = "onClick", t.MOUSE_OVER = "onMouseOver", t.SHOW_TOOLTIP = "showTooltip", t.MOUSE_OUT = "onMouseOut", t.MOUSE_UP = "onMouseDown", t.prototype = null, e.FWDRLSimpleButton = t
}(window),
function(e) {
    var t = function(e, s, i, o, n) {
        var r = this;
        t.prototype;
        this.imageSource_img = e, this.image_do = null, this.tweenObj = {
            currentPos: 0
        }, this.segmentWidth = s, this.segmentHeight = i, this.totalSegments = o, this.duration = n / 1e3, this.delayTimerId_int, r.init = function() {
            r.setWidth(r.segmentWidth), r.setHeight(r.segmentHeight), r.image_do = new FWDRLDisplayObject("img"), r.image_do.setScreen(r.imageSource_img), r.addChild(r.image_do), r.onUpdateHandler()
        }, r.animShow = function() {
            FWDRLTweenMax.killTweensOf(r.tweenObj), r.currentPos = 0, FWDRLTweenMax.to(r.tweenObj, r.duration, {
                currentPos: 1,
                ease: Linear.easeNone,
                onUpdate: r.onUpdateHandler
            })
        }, r.animHide = function() {
            FWDRLTweenMax.killTweensOf(r.tweenObj), FWDRLTweenMax.to(r.tweenObj, .8, {
                currentPos: 0,
                onUpdate: r.onUpdateHandler
            })
        }, r.animReset = function() {
            FWDRLTweenMax.killTweensOf(r.tweenObj), r.tweenObj.currentPos = 0, r.onUpdateHandler()
        }, r.onUpdateHandler = function() {
            var e = Math.round(r.tweenObj.currentPos / 1 * (r.totalSegments - 1)) * r.segmentWidth;
            r.image_do.setX(-e)
        }, r.show = function() {
            r.setVisible(!0), "opacity" == r.opacityType ? (FWDRLTweenMax.killTweensOf(r.image_do), FWDRLTweenMax.to(r.image_do, 1, {
                alpha: 1
            })) : r.setWidth(r.segmentWidth)
        }, r.hide = function(e) {
            e ? "opacity" == r.opacityType ? (FWDRLTweenMax.killTweensOf(r.image_do), FWDRLTweenMax.to(r.image_do, 1, {
                alpha: 0,
                onComplete: hideCompleteHandler
            })) : r.setWidth(0) : (r.setVisible(!1), "opacity" == r.opacityType ? (FWDRLTweenMax.killTweensOf(r.image_do), r.image_do.setAlpha(0)) : r.setWidth(0))
        }, r.hideCompleteHandler = function() {
            r.setVisible(!1)
        }, r.init()
    };
    t.setPrototype = function() {
        t.prototype = new FWDRLDisplayObject("div")
    }, t.prototype = null, e.FWDRLSlideShowPreloader = t
}(window),
function(e) {
    var t = function(s, i, o, n, r, l, a, d, u, h, c, _, f, b) {
        var m = this,
            p = t.prototype;
        this.background_do = null, this.image_do = null, this.overlay_do = null, this.icon_do = null, this.iconImg_img = null, this.borderNormalColor_str = d || data.thumbnailBorderNormalColor_str, this.borderSelectedColor_str = u || data.thumbnailBorderSelectedColor_str, this.thumbnailsOverlayColor_str = h, this.iconPath_str = _, this.thumbnailsHoverEffect_str = c, this.id = i, this.borderSize = r, this.borderRadius = l, this.thumbnailH = o, this.thumbnailsOffsetBottom = n, this.overlayOpacity = a, this.isSelected_bl = !0, this.isDisabled_bl = !1, this.hasPointerEvent_bl = FWDRLUtils.hasPointerEvent, this.isMobile_bl = FWDRLUtils.isMobile, this.showOverlay_bl = f, this.isMobile_bl && (this.showOverlay_bl = !1), this.showIcon_bl = b, this.isMobile_bl && (this.showIcon_bl = !1), m.init = function() {
            m.setButtonMode(!0), m.setupScreen()
        }, m.setupScreen = function() {
            m.background_do = new FWDRLDisplayObject("div"), m.borderRadius && (m.getStyle().borderRadius = m.borderRadius + "px"), m.setNormalState(!1), 0 != m.borderRadius && (m.background_do.getStyle().borderRadius = m.borderRadius + "px"), m.addChild(m.background_do)
        }, m.setImage = function(e) {
            m.image_do = new FWDRLDisplayObject("img"), m.image_do.setScreen(e);
            var t = e.width,
                i = e.height,
                o = m.thumbnailH - 2 * m.borderSize,
                n = o / i,
                r = parseInt(o + 2 * m.borderSize),
                l = parseInt(t * n + 2 * m.borderSize);
            m.background_do && (m.background_do.setWidth(l), m.background_do.setHeight(r)), m.image_do.setX(m.borderSize), m.image_do.setY(m.borderSize), m.image_do.setWidth(parseInt(l - 2 * m.borderSize)), m.image_do.setHeight(o), m.setWidth(l), m.setHeight(r), m.isMobile_bl ? (m.hasPointerEvent_bl && m.screen.addEventListener("pointerup", m.onMouseClickHandler), m.screen.addEventListener("click", m.onMouseClickHandler)) : m.screen.addEventListener ? (m.screen.addEventListener("mouseover", m.onMouseOverHandler), m.screen.addEventListener("click", m.onMouseClickHandler)) : m.screen.attachEvent && (m.screen.attachEvent("onmouseover", m.onMouseOverHandler), m.screen.attachEvent("onclick", m.onMouseClickHandler)), m.addChild(m.image_do), m.isMobile_bl || (m.showOverlay_bl && (m.overlay_do = new FWDRLDisplayObject("div"), m.overlay_do.setX(m.borderSize), m.overlay_do.setY(m.borderSize), m.overlay_do.setWidth(l - 2 * m.borderSize), m.overlay_do.setHeight(r - 2 * m.borderSize), m.overlay_do.setBkColor(this.thumbnailsOverlayColor_str), m.addChild(m.overlay_do), setTimeout(function() {
                m && m.overlay_do.setAlpha(0)
            }, 50)), m.showIcon_bl && (m.icon_do = new FWDRLTransformDisplayObject("img"), m.iconImg_img = new Image, m.iconImg_img.onload = function() {
                m.icon_do.setScreen(m.iconImg_img), m.icon_do.setX(parseInt((l - m.icon_do.w) / 2)), m.icon_do.setY(parseInt((r - m.icon_do.h) / 2)), m.addChild(m.icon_do), setTimeout(function() {
                    m && m.icon_do.setAlpha(0)
                }, 50)
            }, m.iconImg_img.src = m.iconPath_str)), m.hide(!1), m.show(!0), s.id == m.id && m.disable()
        }, m.onMouseOverHandler = function(e) {
            m.dispatchEvent(t.HOVER), m.isDisabled_bl || (e.pointerType && e.pointerType != e.MSPOINTER_TYPE_MOUSE || m.setSelectedState(!0), m.startToCheckTest())
        }, m.startToCheckTest = function() {
            e.addEventListener ? e.addEventListener("mousemove", m.checkHitTest) : document.attachEvent && (document.detachEvent("onmousemove", m.checkHitTest), document.attachEvent("onmousemove", m.checkHitTest))
        }, m.stopToCheckTest = function() {
            e.removeEventListener ? e.removeEventListener("mousemove", m.checkHitTest) : document.detachEvent && document.detachEvent("onmousemove", m.checkHitTest)
        }, m.checkHitTest = function(e) {
            var t = FWDRLUtils.getViewportMouseCoordinates(e);
            FWDRLUtils.hitTest(m.screen, t.screenX, t.screenY) || (m.onMouseOutHandler(e), m.stopToCheckTest())
        }, m.onMouseOutHandler = function(e) {
            m.isDisabled_bl || e.pointerType && e.pointerType != e.MSPOINTER_TYPE_MOUSE || m.setNormalState(!0)
        }, m.onMouseClickHandler = function(e) {
            m.isDisabled_bl || m.dispatchEvent(t.CLICK, {
                id: m.id
            })
        }, m.setNormalState = function(e) {
            m.isSelected_bl && (m.isSelected_bl = !1, FWDRLTweenMax.killTweensOf(m.background_do.screen), m.overlay_do && m.showOverlay_bl && FWDRLTweenMax.to(m.overlay_do, .8, {
                alpha: 0,
                ease: Expo.easeOut
            }), m.icon_do && m.showIcon_bl && (FWDRLTweenMax.killTweensOf(m.icon_do), m.icon_do.hasTransform2d_bl && "scale" == m.thumbnailsHoverEffect_str ? FWDRLTweenMax.to(m.icon_do, .5, {
                scale: 1,
                alpha: 0,
                ease: Expo.easeOut
            }) : FWDRLTweenMax.to(m.icon_do, .8, {
                alpha: 0,
                ease: Expo.easeOut
            })), e ? 0 != m.borderSize && FWDRLTweenMax.to(m.background_do.screen, .8, {
                css: {
                    backgroundColor: m.borderNormalColor_str
                },
                ease: Expo.easeOut
            }) : 0 != m.borderSize && (m.background_do.getStyle().backgroundColor = m.borderNormalColor_str))
        }, m.setSelectedState = function(e) {
            m.isSelected_bl || (m.isSelected_bl = !0, m.overlay_do && m.showOverlay_bl && FWDRLTweenMax.to(m.overlay_do, .8, {
                alpha: m.overlayOpacity,
                ease: Expo.easeOut
            }), m.icon_do && m.showIcon_bl && (FWDRLTweenMax.killTweensOf(m.icon_do), m.icon_do.hasTransform2d_bl && "scale" == m.thumbnailsHoverEffect_str ? (m.icon_do.setAlpha(0), m.icon_do.setScale2(3), FWDRLTweenMax.to(m.icon_do, .5, {
                scale: 1,
                alpha: 1,
                ease: Expo.easeInOut
            })) : FWDRLTweenMax.to(m.icon_do, .8, {
                alpha: 1,
                ease: Expo.easeOut
            })), e ? 0 != m.borderSize && FWDRLTweenMax.to(m.background_do.screen, .8, {
                css: {
                    backgroundColor: m.borderSelectedColor_str
                },
                ease: Expo.easeOut
            }) : 0 != m.borderSize && (m.background_do.getStyle().backgroundColor = m.borderSelectedColor_str))
        }, m.show = function(e) {
            FWDRLTweenMax.killTweensOf(m), e ? FWDRLTweenMax.to(m, .8, {
                y: 0,
                ease: Expo.easeInOut
            }) : m.setY(0)
        }, m.hide = function(e) {
            FWDRLTweenMax.killTweensOf(m), e ? FWDRLTweenMax.to(m, .8, {
                y: m.thumbnailsOffsetBottom + m.thumbnailH + 2
            }) : m.setY(m.thumbnailsOffsetBottom + m.thumbnailH + 2)
        }, m.enable = function() {
            m.isDisabled_bl && (m.isDisabled_bl = !1, FWDRLTweenMax.to(m.background_do, .8, {
                alpha: 1,
                ease: Quint.easeOut
            }), m.icon_do && FWDRLTweenMax.to(m.icon_do, .8, {
                alpha: 1,
                ease: Quint.easeOut
            }), m.image_do && FWDRLTweenMax.to(m.image_do, .8, {
                alpha: 1,
                ease: Quint.easeOut
            }), m.overlay_do && FWDRLTweenMax.to(m.overlay_do, .8, {
                alpha: 0,
                ease: Quint.easeOut
            }), m.setNormalState(!0), m.setButtonMode(!0))
        }, m.disable = function() {
            m.isDisabled_bl = !0, FWDRLTweenMax.to(m.background_do, .8, {
                alpha: .4,
                ease: Quint.easeOut
            }), m.setSelectedState(!0), m.icon_do && FWDRLTweenMax.to(m.icon_do, .8, {
                alpha: 0,
                ease: Quint.easeOut
            }), m.image_do && FWDRLTweenMax.to(m.image_do, .8, {
                alpha: .4,
                ease: Quint.easeOut
            }), m.overlay_do && FWDRLTweenMax.to(m.overlay_do, .8, {
                alpha: 0,
                ease: Quint.easeOut
            }), m.stopToCheckTest(), m.setButtonMode(!1)
        }, m.destroy = function() {
            m.iconImg_img && (m.iconImg_img.onload = null, m.iconImg_img.onerror = null), FWDRLTweenMax.killTweensOf(m.background_do), m.background_do.destroy(), m.image_do && (FWDRLTweenMax.killTweensOf(m.image_do), m.image_do.destroy()), m.overlay_do && (FWDRLTweenMax.killTweensOf(m.overlay_do), m.overlay_do.destroy()), m.icon_do && (FWDRLTweenMax.killTweensOf(m.icon_do), m.icon_do.destroy()), m.isMobile_bl ? m.hasPointerEvent_bl ? (m.screen.removeEventListener("pointerover", m.onMouseOverHandler), m.screen.removeEventListener("pointerup", m.onMouseClickHandler)) : m.screen.removeEventListener("touchend", m.onMouseClickHandler) : m.screen.removeEventListener ? (m.screen.removeEventListener("mouseover", m.onMouseOverHandler), m.screen.removeEventListener("click", m.onMouseClickHandler), e.removeEventListener("mousemove", m.checkHitTest)) : m.screen.detachEvent && (m.screen.detachEvent("onmouseover", m.onMouseOverHandler), m.screen.detachEvent("onclick", m.onMouseClickHandler), document.detachEvent("onmousemove", m.checkHitTest)), m.iconImg_img = null, m.background_do = null, m.image_do = null, m.overlay_do = null, m.icon_do = null, m.setInnerHTML(""), p.destroy(), p = null, m = null, t.prototype = null
        }, m.init()
    };
    t.setPrototype = function() {
        t.prototype = new FWDRLDisplayObject("div")
    }, t.HOVER = "onHover", t.CLICK = "onClick", t.IFRAME = "iframe", t.IMAGE = "image", t.FLASH = "flash", t.AUDIO = "audio", t.VIDEO = "video", t.VIMEO = "vimeo", t.YOUTUBE = "youtube", t.MAPS = "maps", t.AJAX = "ajax", t.HTML = "html", t.prototype = null, e.FWDRLThumb = t
}(window),
function(e) {
    var t = function(s) {
        var i = this;
        t.prototype;
        this.playlist_ar = null, this.thumbs_ar = null, this.mainHolder_do = null, this.thumbnailsHolder_do = null, this.thumbnailsBorderNormalColor_str = s.thumbnailsBorderNormalColor_str, this.thumbnailsBorderSelectedColor_str = s.thumbnailsBorderSelectedColor_str, this.thumbnailsOverlayColor_str = s.thumbnailsOverlayColor_str, this.thumbnailsHoverEffect_str = s.thumbnailsHoverEffect_str, this.stageWidth = 0, this.stageHeight = s.thumbnailH, this.thumbnailsBorderSize = s.thumbnailsBorderSize, this.thumbnailsBorderRadius = s.thumbnailsBorderRadius, this.thumbnailsOffsetBottom = s.thumbnailsOffsetBottom, this.thumbnailH = s.thumbnailH - this.thumbnailsOffsetBottom, this.spaceBetweenThumbnails = s.spaceBetweenThumbnails, this.totalW = 0, this.spaceBetweenThumbnails = s.spaceBetweenThumbnails, this.thumbnailsOverlayOpacity = s.thumbnailsOverlayOpacity, this.vx = 0, this.vx2 = 0, this.friction = .9, this.lastPresedX = 0, this.totalThumbnails = 0, this.countLoadedThumbs = 0, this.id = 0, this.loadWithDelayId_to, this.disableOnMoveId_to, this.updateMobileScrollBarId_int, this.showThumbnailsOverlay_bl = s.showThumbnailsOverlay_bl, this.showThumbnailsSmallIcon_bl = s.showThumbnailsSmallIcon_bl, this.areThumbnailTouched_bl = !1, this.isScrolling_bl = !1, this.isShowed_bl = !1, this.areButtonsPositioned_bl = !1, this.areThumbnailsCreated_bl = !1, this.hasSupportForDesktopScroll_bl = !1, this.isMobile_bl = FWDRLUtils.isMobile, i.init = function() {
            i.setOverflow("visible"), i.mainHolder_do = new FWDRLDisplayObject("div"), i.mainHolder_do.setOverflow("visible"), i.thumbnailsHolder_do = new FWDRLDisplayObject("div"), i.thumbnailsHolder_do.setOverflow("visible"), i.mainHolder_do.addChild(i.thumbnailsHolder_do), i.addChild(i.mainHolder_do)
        }, i.positionAndResize = function() {
            i.areButtonsPositioned_bl = !1, i.stageWidth = s.stageWidth, i.setY(s.stageHeight), i.mainHolder_do.setWidth(i.stageWidth), i.mainHolder_do.setHeight(i.stageHeight), i.areThumbnailsCreated_bl && i.positionThumbnails(!1)
        }, i.setupThumbnails = function() {
            i.areThumbnailsCreated_bl = !0, i.areButtonsPositioned_bl = !1, i.thumbs_ar = [], i.playlist_ar = s.playlist_ar, i.totalThumbnails = i.playlist_ar.length, i.countLoadedThumbs = 0, i.loadThumbnails(), i.isMobile_bl && i.addMobileScrollSupport()
        }, i.loadThumbnails = function() {
            i.countLoadedThumbs > i.totalThumbnails - 1 || (i.image_img = new Image, i.image_img.onload = i.onThumbnailLoadComplete, i.image_img.src = i.playlist_ar[i.countLoadedThumbs].thumbnailPath_str)
        }, i.onThumbnailLoadComplete = function(e) {
            var t, o = s.playlist_ar[i.countLoadedThumbs].iconType_str;
            o == FWDRLThumb.IMAGE ? t = s.data.imageIconPath_str : o == FWDRLThumb.FLASH ? t = s.data.flashIconPath_str : o == FWDRLThumb.AUDIO ? t = s.data.audioIconPath_str : o == FWDRLThumb.VIDEO ? t = s.data.videoIconPath_str : o == FWDRLThumb.VIMEO ? t = s.data.vimeoIconPath_str : o == FWDRLThumb.YOUTUBE ? t = s.data.youtubeIconPath_str : o == FWDRLThumb.MAPS ? t = s.data.mapsIconPath_str : o == FWDRLThumb.AJAX ? t = s.data.ajaxIconPath_str : o == FWDRLThumb.HTML ? t = s.data.htmlIconPath_str : o == FWDRLThumb.IFRAME && (t = s.data.iframeIconPath_str), FWDRLThumb.setPrototype();
            var n = new FWDRLThumb(i, i.countLoadedThumbs, i.thumbnailH, i.thumbnailsOffsetBottom, i.thumbnailsBorderSize, i.thumbnailsBorderRadius, i.thumbnailsOverlayOpacity, i.thumbnailsBorderNormalColor_str, i.thumbnailsBorderSelectedColor_str, i.thumbnailsOverlayColor_str, i.thumbnailsHoverEffect_str, t, i.showThumbnailsOverlay_bl, i.showThumbnailsSmallIcon_bl);
            i.thumbs_ar[i.countLoadedThumbs] = n, n.addListener(FWDRLThumb.HOVER, i.thumbHoverHandler), n.addListener(FWDRLThumb.CLICK, i.thumbClickHandler), n.setImage(i.image_img), i.totalW += n.w + i.spaceBetweenThumbnails, i.countLoadedThumbs == i.totalThumbnails - 1 && (i.totalW -= i.spaceBetweenThumbnails), 0 != i.countLoadedThumbs && n.setX(i.thumbs_ar[i.countLoadedThumbs - 1].x + i.thumbs_ar[i.countLoadedThumbs - 1].w + i.spaceBetweenThumbnails), 0 == i.countLoadedThumbs && i.thumbnailsHolder_do.setX(parseInt(i.stageWidth - n.w) / 2), i.thumbnailsHolder_do.addChild(n), i.isScrolling_bl || i.areThumbnailTouched_bl || i.positionThumbnails(!0), i.totalW > s.stageWidth && !i.areButtonsPositioned_bl && s.buttonsAlignment_str != FWDRL.BUTTONS_IN && (s.positionButtons(!0), i.areButtonsPositioned_bl = !0), i.countLoadedThumbs++, i.loadWithDelayId_to = setTimeout(i.loadThumbnails, 100)
        }, i.stopToLoadThumbanils = function() {
            i.image_img && (i.image_img.onload = null, i.image_img.onerror = null, i.image_img.src = "", i.image_img = null), clearTimeout(i.loadWithDelayId_to)
        }, i.thumbClickHandler = function(e) {
            s.isShowed_bl && i.dispatchEvent(FWDRLThumb.CLICK, {
                id: e.id
            })
        }, i.thumbHoverHandler = function() {
            s.isShowed_bl && i.addDesktopScrollSupport()
        }, i.positionThumbnails = function(e) {
            if (!(!i.areThumbnailsCreated_bl && s.showThumbnails_bl || i.isScrolling_bl)) {
                i.finalX;
                var t = i.thumbs_ar[i.id],
                    o = i.thumbs_ar[i.thumbs_ar.length - 1];
                i.totalW <= i.stageWidth ? i.finalX = parseInt((i.stageWidth - i.totalW) / 2) : (t ? i.finalX = parseInt(-t.x + (i.stageWidth - t.w) / 2) : i.finalX = parseInt(-o.x + (i.stageWidth - o.w) / 2), i.finalX > 0 ? i.finalX = 0 : i.finalX < i.stageWidth - i.totalW && (i.finalX = i.stageWidth - i.totalW)), FWDRLTweenMax.killTweensOf(i.thumbnailsHolder_do), e ? FWDRLTweenMax.to(i.thumbnailsHolder_do, .7, {
                    x: i.finalX,
                    ease: Expo.easeOut
                }) : i.thumbnailsHolder_do.setX(i.finalX)
            }
        }, i.addMobileScrollSupport = function() {
            i.hasPointerEvent_bl ? i.mainHolder_do.screen.addEventListener("pointerdown", i.scrollBarTouchStartHandler) : i.mainHolder_do.screen.addEventListener("touchstart", i.scrollBarTouchStartHandler), i.mainHolder_do.screen.addEventListener("mousedown", i.scrollBarTouchStartHandler), i.updateMobileScrollBarId_int = setInterval(i.updateMobileScrollBar, 16)
        }, i.removeMobileScrollSupport = function() {
            i.hasPointerEvent_bl ? (i.mainHolder_do.screen.removeEventListener("pointerdown", i.scrollBarTouchStartHandler), e.removeEventListener("pointerup", i.scrollBarTouchEndHandler), e.removeEventListener("pointermove", i.scrollBarTouchMoveHandler)) : (i.mainHolder_do.screen.removeEventListener("touchstart", i.scrollBarTouchStartHandler), e.removeEventListener("touchend", i.scrollBarTouchEndHandler), e.removeEventListener("touchmove", i.scrollBarTouchMoveHandler)), clearInterval(i.updateMobileScrollBarId_int), clearInterval(i.updateMoveMobileScrollbarId_int)
        }, i.scrollBarTouchStartHandler = function(t) {
            if (!(i.stageWidth > i.totalW)) {
                var s = FWDRLUtils.getViewportMouseCoordinates(t);
                i.areThumbnailTouched_bl = !0, FWDRLTweenMax.killTweensOf(i.thumbnailsHolder_do), i.isScrolling_bl = !0, i.finalX = i.thumbnailsHolder_do.x, i.lastPresedX = s.screenX, i.hasPointerEvent_bl ? (e.addEventListener("pointerup", i.scrollBarTouchEndHandler), e.addEventListener("pointermove", i.scrollBarTouchMoveHandler)) : (e.addEventListener("touchend", i.scrollBarTouchEndHandler), e.addEventListener("touchmove", i.scrollBarTouchMoveHandler)), clearInterval(i.updateMoveMobileScrollbarId_int), i.updateMoveMobileScrollbarId_int = setInterval(i.updateMoveMobileScrollbar, 16)
            }
        }, i.scrollBarTouchMoveHandler = function(e) {
            if (e.preventDefault && e.preventDefault(), !(i.stageWidth > i.totalW)) {
                var t = FWDRLUtils.getViewportMouseCoordinates(e),
                    o = t.screenX - i.lastPresedX;
                i.finalX += o, i.finalX = Math.round(i.finalX), i.lastPresedX = t.screenX, i.vx = 2 * o, s.showDisable()
            }
        }, i.scrollBarTouchEndHandler = function(t) {
            i.isScrolling_bl = !1, s.hider.globalY < s.stageHeight - i.stageHeight && (i.areThumbnailTouched_bl = !1), clearInterval(i.updateMoveMobileScrollbarId_int), clearTimeout(i.disableOnMoveId_to), i.disableOnMoveId_to = setTimeout(function() {
                s.hideDisable()
            }, 100), i.hasPointerEvent_bl ? (e.removeEventListener("pointerup", i.scrollBarTouchEndHandler), e.removeEventListener("pointermove", i.scrollBarTouchMoveHandler)) : (e.removeEventListener("touchend", i.scrollBarTouchEndHandler), e.removeEventListener("touchmove", i.scrollBarTouchMoveHandler))
        }, i.updateMoveMobileScrollbar = function() {
            i.thumbnailsHolder_do.setX(i.finalX)
        }, i.updateMobileScrollBar = function(e) {
            i.stageWidth > i.totalW || i.finalX == i.prevX || i.isScrolling_bl || (i.vx *= i.friction, i.finalX += i.vx, i.finalX > 0 ? (i.vx2 = .3 * (0 - i.finalX), i.vx *= i.friction, i.finalX += i.vx2) : i.finalX < i.stageWidth - i.totalW && (i.vx2 = .3 * (i.stageWidth - i.totalW - i.finalX), i.vx *= i.friction, i.finalX += i.vx2), i.finalX = Math.round(i.finalX), i.prevX = i.thumbnailsHolder_do.x, FWDRLTweenMax.killTweensOf(i.thumbnailsHolder_do), FWDRLTweenMax.to(i.thumbnailsHolder_do, .3, {
                x: i.finalX,
                ease: Expo.easeOut
            }))
        }, i.addDesktopScrollSupport = function() {
            i.hasSupportForDesktopScroll_bl || i.totalW < i.stageWidth || (i.hasSupportForDesktopScroll_bl = !0, i.isScrolling_bl = !0, e.addEventListener ? e.addEventListener("mousemove", i.checkHitTest) : document.attachEvent && (document.detachEvent("onmousemove", i.checkHitTest), document.attachEvent("onmousemove", i.checkHitTest)))
        }, i.removeDesktopScrollSupport = function() {
            i.hasSupportForDesktopScroll_bl && (i.hasSupportForDesktopScroll_bl = !1, e.removeEventListener ? e.removeEventListener("mousemove", i.checkHitTest) : document.detachEvent && document.detachEvent("onmousemove", i.checkHitTest))
        }, i.checkHitTest = function(e) {
            FWDRLUtils.getViewportMouseCoordinates(e);
            i.scrollOnDesktop(), s.hider.globalY < s.stageHeight - i.stageHeight && (i.isScrolling_bl = !1, i.removeDesktopScrollSupport(), i.positionThumbnails(!0))
        }, i.scrollOnDesktop = function() {
            var e = (s.hider.globalX - 100) / (i.stageWidth - 200);
            0 > e ? e = 0 : e > 1 && (e = 1), i.finalX = parseInt((i.stageWidth - i.totalW) * e), FWDRLTweenMax.killTweensOf(i.thumbnailsHolder_do), FWDRLTweenMax.to(i.thumbnailsHolder_do, .4, {
                x: i.finalX,
                ease: Expo.easeOut
            })
        }, i.disableOrEnableThumbnails = function() {
            if (i.id = s.id, i.thumbs_ar) {
                for (var e, t = i.thumbs_ar.length, o = 0; t > o; o++) e = i.thumbs_ar[o], o == s.id ? e.disable() : e.enable();
                i.positionThumbnails(!0)
            }
        }, i.destoryThumbnails = function() {
            if (i.areThumbnailsCreated_bl || i.thumbs_ar) {
                i.areThumbnailsCreated_bl = !1, i.areThumbnailTouched_bl = !1;
                for (var e, t = i.thumbs_ar.length, s = 0; t > s; s++) e = i.thumbs_ar[s], FWDRLTweenMax.killTweensOf(e), i.thumbnailsHolder_do.removeChild(e), e.destroy();
                i.thumbs_ar = null, i.totalW = 0, i.stopToLoadThumbanils(), i.removeDesktopScrollSupport(), i.isMobile_bl && i.removeMobileScrollSupport()
            }
        }, i.show = function(e) {
            i.isShowed_bl = !0, FWDRLTweenMax.killTweensOf(i.mainHolder_do), e ? FWDRLTweenMax.to(i.mainHolder_do, .8, {
                y: -i.stageHeight,
                ease: Expo.easeInOut
            }) : i.mainHolder_do.setY(-i.stageHeight)
        }, i.hide = function(e) {
            i.isShowed_bl = !1, FWDRLTweenMax.killTweensOf(i.mainHolder_do), e ? FWDRLTweenMax.to(i.mainHolder_do, .8, {
                y: 0,
                ease: Expo.easeInOut
            }) : i.mainHolder_do.setY(0)
        }, i.hideForGood = function() {
            i.mainHolder_do.setY(-5e3)
        }, i.init()
    };
    t.setPrototype = function() {
        t.prototype = new FWDRLDisplayObject("div", "relative")
    }, t.prototype = null, e.FWDRLThumbnailsManager = t
}(window),
function(e) {
    var t = function(e) {
        var s = this;
        t.prototype;
        this.timeOutId, this.delay = e, this.isStopped_bl = !0, s.stop = function() {
            s.isStopped_bl || (s.pause(), s.isStopped_bl = !0, s.dispatchEvent(t.STOP))
        }, s.start = function() {
            s.isStopped_bl && (s.isStopped_bl = !1, s.timeOutId = setTimeout(s.onTimeHanlder, s.delay), s.dispatchEvent(t.START))
        }, s.pause = function() {
            s.isStopped_bl || (clearTimeout(s.timeOutId), s.dispatchEvent(t.PAUSE))
        }, s.resume = function() {
            s.isStopped_bl || (clearTimeout(s.timeOutId), s.timeOutId = setTimeout(s.onTimeHanlder, s.delay), s.dispatchEvent(t.RESUME))
        }, s.onTimeHanlder = function() {
            s.dispatchEvent(t.TIME)
        }
    };
    t.setProtptype = function() {
        t.prototype = new FWDRLEventDispatcher
    }, t.START = "start", t.STOP = "stop", t.RESUME = "resume", t.PAUSE = "pause", t.TIME = "time", t.prototype = null, e.FWDRLTimerManager = t
}(window),
function(e) {
    var t = function(e, t, s, i) {
        this.listeners = {
            events_ar: []
        };
        var o = this;
        if ("div" != e && "img" != e && "canvas" != e) throw Error("Type is not valid! " + e);
        this.type = e, this.children_ar = [], this.style, this.screen, this.numChildren, this.transform, this.position = t || "absolute", this.overflow = s || "hidden", this.display = i || "block", this.visible = !0, this.buttonMode, this.x = 0, this.y = 0, this.scale = 1, this.rotation = 0, this.w = 0, this.h = 0, this.rect, this.alpha = 1, this.innerHTML = "", this.opacityType = "", this.isHtml5_bl = !1, this.hasTransform2d_bl = FWDRLUtils.hasTransform2d, this.init = function() {
            this.setScreen()
        }, this.getTransform = function() {
            for (var e, t = ["transform", "msTransform", "WebkitTransform", "MozTransform", "OTransform"]; e = t.shift();)
                if ("undefined" != typeof this.screen.style[e]) return e;
            return !1
        }, this.getOpacityType = function() {
            var e;
            return e = "undefined" != typeof this.screen.style.opacity ? "opacity" : "filter"
        }, this.setScreen = function(e) {
            "img" == this.type && e ? (this.screen = e, this.setMainProperties()) : (this.screen = document.createElement(this.type), this.setMainProperties())
        }, this.setMainProperties = function() {
            this.transform = this.getTransform(), this.setPosition(this.position), this.setOverflow(this.overflow), this.opacityType = this.getOpacityType(), "opacity" == this.opacityType && (this.isHtml5_bl = !0), "filter" == o.opacityType && (o.screen.style.filter = "inherit"), this.screen.style.left = "0px", this.screen.style.top = "0px", this.screen.style.margin = "0px", this.screen.style.padding = "0px", this.screen.style.maxWidth = "none", this.screen.style.maxHeight = "none", this.screen.style.border = "none", this.screen.style.lineHeight = "1", this.screen.style.backgroundColor = "transparent", this.screen.style.backfaceVisibility = "hidden", this.screen.style.webkitBackfaceVisibility = "hidden", this.screen.style.MozBackfaceVisibility = "hidden", "img" == e && (this.setWidth(this.screen.width), this.setHeight(this.screen.height), this.screen.onmousedown = function(e) {
                return !1
            })
        }, o.setBackfaceVisibility = function() {
            o.screen.style.backfaceVisibility = "visible", o.screen.style.webkitBackfaceVisibility = "visible", o.screen.style.MozBackfaceVisibility = "visible"
        }, o.removeBackfaceVisibility = function() {
            o.screen.style.backfaceVisibility = "hidden", o.screen.style.webkitBackfaceVisibility = "hidden", o.screen.style.MozBackfaceVisibility = "hidden"
        }, this.setSelectable = function(e) {
            if (!e) {
                try {
                    this.screen.style.userSelect = "none"
                } catch (t) {}
                try {
                    this.screen.style.MozUserSelect = "none"
                } catch (t) {}
                try {
                    this.screen.style.webkitUserSelect = "none"
                } catch (t) {}
                try {
                    this.screen.style.khtmlUserSelect = "none"
                } catch (t) {}
                try {
                    this.screen.style.oUserSelect = "none"
                } catch (t) {}
                try {
                    this.screen.style.msUserSelect = "none"
                } catch (t) {}
                try {
                    this.screen.msUserSelect = "none"
                } catch (t) {}
                this.screen.ondragstart = function(e) {
                    return !1
                }, this.screen.onselectstart = function() {
                    return !1
                }, this.screen.style.webkitTouchCallout = "none"
            }
        }, this.getScreen = function() {
            return o.screen
        }, this.setVisible = function(e) {
            this.visible = e, 1 == this.visible ? this.screen.style.visibility = "visible" : this.screen.style.visibility = "hidden"
        }, this.getVisible = function() {
            return this.visible
        }, this.setResizableSizeAfterParent = function() {
            this.screen.style.width = "100%", this.screen.style.height = "100%"
        }, this.getStyle = function() {
            return this.screen.style
        }, this.setOverflow = function(e) {
            o.overflow = e, o.screen.style.overflow = o.overflow
        }, this.setPosition = function(e) {
            o.position = e, o.screen.style.position = o.position
        }, this.setDisplay = function(e) {
            this.display = e, this.screen.style.display = this.display
        }, this.setButtonMode = function(e) {
            this.buttonMode = e, 1 == this.buttonMode ? this.screen.style.cursor = "pointer" : this.screen.style.cursor = "default"
        }, this.setBkColor = function(e) {
            o.screen.style.backgroundColor = e
        }, this.setInnerHTML = function(e) {
            o.innerHTML = e, o.screen.innerHTML = o.innerHTML
        }, this.getInnerHTML = function() {
            return o.innerHTML
        }, this.getRect = function() {
            return o.screen.getBoundingClientRect()
        }, this.setAlpha = function(e) {
            o.alpha = e, "opacity" == o.opacityType ? o.screen.style.opacity = o.alpha : "filter" == o.opacityType && (o.screen.style.filter = "alpha(opacity=" + 100 * o.alpha + ")", o.screen.style.filter = "progid:DXImageTransform.Microsoft.Alpha(Opacity=" + Math.round(100 * o.alpha) + ")")
        }, this.getAlpha = function() {
            return o.alpha
        }, this.getRect = function() {
            return this.screen.getBoundingClientRect()
        }, this.getGlobalX = function() {
            return this.getRect().left
        }, this.getGlobalY = function() {
            return this.getRect().top
        }, this.setX = function(e) {
            o.x = e, o.hasTransform2d_bl ? o.screen.style[o.transform] = "translate(" + o.x + "px," + o.y + "px) scale(" + o.scale + " , " + o.scale + ") rotate(" + o.rotation + "deg)" : o.screen.style.left = o.x + "px"
        }, this.getX = function() {
            return o.x
        }, this.setY = function(e) {
            o.y = e, o.hasTransform2d_bl ? o.screen.style[o.transform] = "translate(" + o.x + "px," + o.y + "px) scale(" + o.scale + " , " + o.scale + ") rotate(" + o.rotation + "deg)" : o.screen.style.top = o.y + "px"
        }, this.getY = function() {
            return o.y
        }, this.setScale2 = function(e) {
            o.scale = e, o.hasTransform2d_bl && (o.screen.style[o.transform] = "translate(" + o.x + "px," + o.y + "px) scale(" + o.scale + " , " + o.scale + ") rotate(" + o.rotation + "deg)")
        }, this.getScale = function() {
            return o.scale
        }, this.setRotation = function(e) {
            o.rotation = e, o.hasTransform2d_bl && (o.screen.style[o.transform] = "translate(" + o.x + "px," + o.y + "px) scale(" + o.scale + " , " + o.scale + ") rotate(" + o.rotation + "deg)")
        }, this.setWidth = function(e) {
            o.w = e, "img" == o.type ? o.screen.width = o.w : o.screen.style.width = o.w + "px"
        }, this.getWidth = function() {
            return "div" == o.type ? 0 != o.screen.offsetWidth ? o.screen.offsetWidth : o.w : "img" == o.type ? 0 != o.screen.offsetWidth ? o.screen.offsetWidth : 0 != o.screen.width ? o.screen.width : o._w : "canvas" == o.type ? 0 != o.screen.offsetWidth ? o.screen.offsetWidth : o.w : void 0
        }, this.setHeight = function(e) {
            o.h = e, "img" == o.type ? o.screen.height = o.h : o.screen.style.height = o.h + "px"
        }, this.getHeight = function() {
            return "div" == o.type ? 0 != o.screen.offsetHeight ? o.screen.offsetHeight : o.h : "img" == o.type ? 0 != o.screen.offsetHeight ? o.screen.offsetHeight : 0 != o.screen.height ? o.screen.height : o.h : "canvas" == o.type ? 0 != o.screen.offsetHeight ? o.screen.offsetHeight : o.h : void 0
        }, this.getNumChildren = function() {
            return o.children_ar.length
        }, this.addChild = function(e) {
            this.contains(e) ? (this.children_ar.splice(FWDRLUtils.indexOfArray(this.children_ar, e), 1), this.children_ar.push(e), this.screen.appendChild(e.screen)) : (this.children_ar.push(e), this.screen.appendChild(e.screen))
        }, this.removeChild = function(e) {
            if (!this.contains(e)) throw Error("##removeChild()## Child doesn't exist, it can't be removed!");
            this.children_ar.splice(FWDRLUtils.indexOfArray(this.children_ar, e), 1), this.screen.removeChild(e.screen)
        }, this.contains = function(e) {
            return -1 == FWDRLUtils.indexOfArray(this.children_ar, e) ? !1 : !0
        }, o.addChildAt = function(e, t) {
            if (0 == o.getNumChildren()) o.children_ar.push(e), o.screen.appendChild(e.screen);
            else if (1 == t) o.screen.insertBefore(e.screen, o.children_ar[0].screen), o.screen.insertBefore(o.children_ar[0].screen, e.screen), o.contains(e) ? o.children_ar.splice(FWDRLUtils.indexOfArray(o.children_ar, e), 1, e) : o.children_ar.splice(FWDRLUtils.indexOfArray(o.children_ar, e), 0, e);
            else {
                if (0 > t || t > o.getNumChildren() - 1) throw Error("##getChildAt()## Index out of bounds!");
                o.screen.insertBefore(e.screen, o.children_ar[t].screen), o.contains(e) ? o.children_ar.splice(FWDRLUtils.indexOfArray(o.children_ar, e), 1, e) : o.children_ar.splice(FWDRLUtils.indexOfArray(o.children_ar, e), 0, e)
            }
        }, this.getChildAt = function(e) {
            if (0 > e || e > this.numChildren - 1) throw Error("##getChildAt()## Index out of bounds!");
            if (0 == this.numChildren) throw Errror("##getChildAt## Child dose not exist!");
            return this.children_ar[e]
        }, this.removeChildAtZero = function() {
            this.screen.removeChild(this.children_ar[0].screen), this.children_ar.shift()
        }, this.addListener = function(e, t) {
            if (void 0 == e) throw Error("type is required.");
            if ("object" == typeof e) throw Error("type must be of type String.");
            if ("function" != typeof t) throw Error("listener must be of type Function.");
            var s = {};
            s.type = e, s.listener = t, s.target = this, this.listeners.events_ar.push(s)
        }, this.dispatchEvent = function(e, t) {
            if (void 0 == e) throw Error("type is required.");
            if ("object" == typeof e) throw Error("type must be of type String.");
            for (var s = 0, i = this.listeners.events_ar.length; i > s; s++)
                if (this.listeners.events_ar[s].target === this && this.listeners.events_ar[s].type === e) {
                    if (t)
                        for (var o in t) this.listeners.events_ar[s][o] = t[o];
                    this.listeners.events_ar[s].listener.call(this, this.listeners.events_ar[s]);
                    break
                }
        }, this.removeListener = function(e, t) {
            if (void 0 == e) throw Error("type is required.");
            if ("object" == typeof e) throw Error("type must be of type String.");
            if ("function" != typeof t) throw Error("listener must be of type Function." + e);
            for (var s = 0, i = this.listeners.events_ar.length; i > s; s++)
                if (this.listeners.events_ar[s].target === this && this.listeners.events_ar[s].type === e && this.listeners.events_ar[s].listener === t) {
                    this.listeners.events_ar.splice(s, 1);
                    break
                }
        }, this.disposeImage = function() {
            "img" == this.type && (this.screen.src = null)
        }, this.destroy = function() {
            try {
                this.screen.parentNode.removeChild(this.screen)
            } catch (e) {}
            this.screen.onselectstart = null, this.screen.ondragstart = null, this.screen.ontouchstart = null, this.screen.ontouchmove = null, this.screen.ontouchend = null, this.screen.onmouseover = null, this.screen.onmouseout = null, this.screen.onmouseup = null, this.screen.onmousedown = null, this.screen.onmousemove = null, this.screen.onclick = null, delete this.screen, delete this.style, delete this.rect, delete this.selectable, delete this.buttonMode, delete this.position, delete this.overflow, delete this.visible, delete this.innerHTML, delete this.numChildren, delete this.x, delete this.y, delete this.w, delete this.h, delete this.opacityType, delete this.isHtml5_bl, delete this.hasTransform2d_bl, this.children_ar = null, this.style = null, this.screen = null, this.numChildren = null, this.transform = null, this.position = null, this.overflow = null, this.display = null, this.visible = null, this.buttonMode = null, this.globalX = null, this.globalY = null, this.x = null, this.y = null, this.w = null, this.h = null, this.rect = null, this.alpha = null, this.innerHTML = null, this.opacityType = null, this.isHtml5_bl = null, this.hasTransform3d_bl = null, this.hasTransform2d_bl = null, o = null
        }, this.init()
    };
    e.FWDRLTransformDisplayObject = t
}(window), (window._gsQueue || (window._gsQueue = [])).push(function() {
        "use strict";
        window._gsDefine("FWDRLTweenMax", ["core.Animation", "core.SimpleTimeline", "TweenLite"], function(e, t, s) {
                var i = [].slice,
                    o = function(e, t, i) {
                        s.call(this, e, t, i), this._cycle = 0, this._yoyo = this.vars.yoyo === !0, this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._dirty = !0
                    },
                    n = function(e) {
                        return e.jquery || e.length && e[0] && e[0].nodeType && e[0].style
                    },
                    r = o.prototype = s.to({}, .1, {}),
                    l = [];
                o.version = "1.9.7", r.constructor = o, r.kill()._gc = !1, o.killTweensOf = o.killDelayedCallsTo = s.killTweensOf, o.getTweensOf = s.getTweensOf, o.ticker = s.ticker, r.invalidate = function() {
                    return this._yoyo = this.vars.yoyo === !0, this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._uncache(!0), s.prototype.invalidate.call(this)
                }, r.updateTo = function(e, t) {
                    var i, o = this.ratio;
                    t && this.timeline && this._startTime < this._timeline._time && (this._startTime = this._timeline._time, this._uncache(!1), this._gc ? this._enabled(!0, !1) : this._timeline.insert(this, this._startTime - this._delay));
                    for (i in e) this.vars[i] = e[i];
                    if (this._initted)
                        if (t) this._initted = !1;
                        else if (this._notifyPluginsOfEnabled && this._firstPT && s._onPluginEvent("_onDisable", this), this._time / this._duration > .998) {
                        var n = this._time;
                        this.render(0, !0, !1), this._initted = !1, this.render(n, !0, !1)
                    } else if (this._time > 0) {
                        this._initted = !1, this._init();
                        for (var r, l = 1 / (1 - o), a = this._firstPT; a;) r = a.s + a.c, a.c *= l, a.s = r - a.c, a = a._next
                    }
                    return this
                }, r.render = function(e, t, s) {
                    var i, o, n, r, a, d, u, h = this._dirty ? this.totalDuration() : this._totalDuration,
                        c = this._time,
                        _ = this._totalTime,
                        f = this._cycle;
                    if (e >= h ? (this._totalTime = h, this._cycle = this._repeat, this._yoyo && 0 !== (1 & this._cycle) ? (this._time = 0, this.ratio = this._ease._calcEnd ? this._ease.getRatio(0) : 0) : (this._time = this._duration, this.ratio = this._ease._calcEnd ? this._ease.getRatio(1) : 1), this._reversed || (i = !0, o = "onComplete"), 0 === this._duration && ((0 === e || this._rawPrevTime < 0) && this._rawPrevTime !== e && (s = !0, this._rawPrevTime > 0 && (o = "onReverseComplete", t && (e = -1))), this._rawPrevTime = e)) : 1e-7 > e ? (this._totalTime = this._time = this._cycle = 0, this.ratio = this._ease._calcEnd ? this._ease.getRatio(0) : 0, (0 !== _ || 0 === this._duration && this._rawPrevTime > 0) && (o = "onReverseComplete", i = this._reversed), 0 > e ? (this._active = !1, 0 === this._duration && (this._rawPrevTime >= 0 && (s = !0), this._rawPrevTime = e)) : this._initted || (s = !0)) : (this._totalTime = this._time = e, 0 !== this._repeat && (r = this._duration + this._repeatDelay, this._cycle = this._totalTime / r >> 0, 0 !== this._cycle && this._cycle === this._totalTime / r && this._cycle--, this._time = this._totalTime - this._cycle * r, this._yoyo && 0 !== (1 & this._cycle) && (this._time = this._duration - this._time), this._time > this._duration ? this._time = this._duration : this._time < 0 && (this._time = 0)), this._easeType ? (a = this._time / this._duration, d = this._easeType, u = this._easePower, (1 === d || 3 === d && a >= .5) && (a = 1 - a), 3 === d && (a *= 2), 1 === u ? a *= a : 2 === u ? a *= a * a : 3 === u ? a *= a * a * a : 4 === u && (a *= a * a * a * a), 1 === d ? this.ratio = 1 - a : 2 === d ? this.ratio = a : this._time / this._duration < .5 ? this.ratio = a / 2 : this.ratio = 1 - a / 2) : this.ratio = this._ease.getRatio(this._time / this._duration)), c === this._time && !s) return void(_ !== this._totalTime && this._onUpdate && (t || this._onUpdate.apply(this.vars.onUpdateScope || this, this.vars.onUpdateParams || l)));
                    if (!this._initted) {
                        if (this._init(), !this._initted) return;
                        this._time && !i ? this.ratio = this._ease.getRatio(this._time / this._duration) : i && this._ease._calcEnd && (this.ratio = this._ease.getRatio(0 === this._time ? 0 : 1))
                    }
                    for (this._active || this._paused || (this._active = !0), 0 === _ && (this._startAt && (e >= 0 ? this._startAt.render(e, t, s) : o || (o = "_dummyGS")), this.vars.onStart && (0 !== this._totalTime || 0 === this._duration) && (t || this.vars.onStart.apply(this.vars.onStartScope || this, this.vars.onStartParams || l))), n = this._firstPT; n;) {
                        if (n.f) n.t[n.p](n.c * this.ratio + n.s);
                        else {
                            var b = n.c * this.ratio + n.s;
                            "x" == n.p ? n.t.setX(b) : "y" == n.p ? n.t.setY(b) : "z" == n.p ? n.t.setZ(b) : "angleX" == n.p ? n.t.setAngleX(b) : "angleY" == n.p ? n.t.setAngleY(b) : "angleZ" == n.p ? n.t.setAngleZ(b) : "w" == n.p ? n.t.setWidth(b) : "h" == n.p ? n.t.setHeight(b) : "alpha" == n.p ? n.t.setAlpha(b) : "scale" == n.p ? n.t.setScale2(b) : "rotation" == n.p ? n.t.setRotation(b) : n.t[n.p] = b
                        }
                        n = n._next
                    }
                    this._onUpdate && (0 > e && this._startAt && this._startAt.render(e, t, s), t || this._onUpdate.apply(this.vars.onUpdateScope || this, this.vars.onUpdateParams || l)), this._cycle !== f && (t || this._gc || this.vars.onRepeat && this.vars.onRepeat.apply(this.vars.onRepeatScope || this, this.vars.onRepeatParams || l)), o && (this._gc || (0 > e && this._startAt && !this._onUpdate && this._startAt.render(e, t, s), i && (this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !t && this.vars[o] && this.vars[o].apply(this.vars[o + "Scope"] || this, this.vars[o + "Params"] || l)))
                }, o.to = function(e, t, s) {
                    return new o(e, t, s)
                }, o.from = function(e, t, s) {
                    return s.runBackwards = !0, s.immediateRender = 0 != s.immediateRender, new o(e, t, s)
                }, o.fromTo = function(e, t, s, i) {
                    return i.startAt = s, i.immediateRender = 0 != i.immediateRender && 0 != s.immediateRender, new o(e, t, i)
                }, o.staggerTo = o.allTo = function(e, t, r, a, d, u, h) {
                    a = a || 0;
                    var c, _, f, b, m = r.delay || 0,
                        p = [],
                        v = function() {
                            r.onComplete && r.onComplete.apply(r.onCompleteScope || this, r.onCompleteParams || l), d.apply(h || this, u || l)
                        };
                    for (e instanceof Array || ("string" == typeof e && (e = s.selector(e) || e), n(e) && (e = i.call(e, 0))), c = e.length, f = 0; c > f; f++) {
                        _ = {};
                        for (b in r) _[b] = r[b];
                        _.delay = m, f === c - 1 && d && (_.onComplete = v), p[f] = new o(e[f], t, _), m += a
                    }
                    return p
                }, o.staggerFrom = o.allFrom = function(e, t, s, i, n, r, l) {
                    return s.runBackwards = !0, s.immediateRender = 0 != s.immediateRender, o.staggerTo(e, t, s, i, n, r, l)
                }, o.staggerFromTo = o.allFromTo = function(e, t, s, i, n, r, l, a) {
                    return i.startAt = s, i.immediateRender = 0 != i.immediateRender && 0 != s.immediateRender, o.staggerTo(e, t, i, n, r, l, a)
                }, o.delayedCall = function(e, t, s, i, n) {
                    return new o(t, 0, {
                        delay: e,
                        onComplete: t,
                        onCompleteParams: s,
                        onCompleteScope: i,
                        onReverseComplete: t,
                        onReverseCompleteParams: s,
                        onReverseCompleteScope: i,
                        immediateRender: !1,
                        useFrames: n,
                        overwrite: 0
                    })
                }, o.set = function(e, t) {
                    return new o(e, 0, t)
                }, o.isTweening = function(e) {
                    for (var t, i = s.getTweensOf(e), o = i.length; --o > -1;)
                        if (t = i[o], t._active || t._startTime === t._timeline._time && t._timeline._active) return !0;
                    return !1
                };
                var a = function(e, t) {
                        for (var i = [], o = 0, n = e._first; n;) n instanceof s ? i[o++] = n : (t && (i[o++] = n), i = i.concat(a(n, t)), o = i.length), n = n._next;
                        return i
                    },
                    d = o.getAllTweens = function(t) {
                        return a(e._rootTimeline, t).concat(a(e._rootFramesTimeline, t))
                    };
                o.killAll = function(e, s, i, o) {
                    null == s && (s = !0), null == i && (i = !0);
                    var n, r, l, a = d(0 != o),
                        u = a.length,
                        h = s && i && o;
                    for (l = 0; u > l; l++) r = a[l], (h || r instanceof t || (n = r.target === r.vars.onComplete) && i || s && !n) && (e ? r.totalTime(r.totalDuration()) : r._enabled(!1, !1))
                }, o.killChildTweensOf = function(e, t) {
                    if (null != e) {
                        var r, l, a, d, u, h = s._tweenLookup;
                        if ("string" == typeof e && (e = s.selector(e) || e), n(e) && (e = i(e, 0)), e instanceof Array)
                            for (d = e.length; --d > -1;) o.killChildTweensOf(e[d], t);
                        else {
                            r = [];
                            for (a in h)
                                for (l = h[a].target.parentNode; l;) l === e && (r = r.concat(h[a].tweens)), l = l.parentNode;
                            for (u = r.length, d = 0; u > d; d++) t && r[d].totalTime(r[d].totalDuration()), r[d]._enabled(!1, !1)
                        }
                    }
                };
                var u = function(e, s, i, o) {
                    void 0 === s && (s = !0), void 0 === i && (i = !0);
                    for (var n, r, l = d(o), a = s && i && o, u = l.length; --u > -1;) r = l[u], (a || r instanceof t || (n = r.target === r.vars.onComplete) && i || s && !n) && r.paused(e)
                };
                return o.pauseAll = function(e, t, s) {
                    u(!0, e, t, s)
                }, o.resumeAll = function(e, t, s) {
                    u(!1, e, t, s)
                }, r.progress = function(e) {
                    return arguments.length ? this.totalTime(this.duration() * (this._yoyo && 0 !== (1 & this._cycle) ? 1 - e : e) + this._cycle * (this._duration + this._repeatDelay), !1) : this._time / this.duration();
                }, r.totalProgress = function(e) {
                    return arguments.length ? this.totalTime(this.totalDuration() * e, !1) : this._totalTime / this.totalDuration()
                }, r.time = function(e, t) {
                    return arguments.length ? (this._dirty && this.totalDuration(), e > this._duration && (e = this._duration), this._yoyo && 0 !== (1 & this._cycle) ? e = this._duration - e + this._cycle * (this._duration + this._repeatDelay) : 0 !== this._repeat && (e += this._cycle * (this._duration + this._repeatDelay)), this.totalTime(e, t)) : this._time
                }, r.duration = function(t) {
                    return arguments.length ? e.prototype.duration.call(this, t) : this._duration
                }, r.totalDuration = function(e) {
                    return arguments.length ? -1 === this._repeat ? this : this.duration((e - this._repeat * this._repeatDelay) / (this._repeat + 1)) : (this._dirty && (this._totalDuration = -1 === this._repeat ? 999999999999 : this._duration * (this._repeat + 1) + this._repeatDelay * this._repeat, this._dirty = !1), this._totalDuration)
                }, r.repeat = function(e) {
                    return arguments.length ? (this._repeat = e, this._uncache(!0)) : this._repeat
                }, r.repeatDelay = function(e) {
                    return arguments.length ? (this._repeatDelay = e, this._uncache(!0)) : this._repeatDelay
                }, r.yoyo = function(e) {
                    return arguments.length ? (this._yoyo = e, this) : this._yoyo
                }, o
            }, !0), window._gsDefine("TimelineLite", ["core.Animation", "core.SimpleTimeline", "TweenLite"], function(e, t, s) {
                var i = function(e) {
                        t.call(this, e), this._labels = {}, this.autoRemoveChildren = this.vars.autoRemoveChildren === !0, this.smoothChildTiming = this.vars.smoothChildTiming === !0, this._sortChildren = !0, this._onUpdate = this.vars.onUpdate;
                        for (var s, i, n = this.vars, r = o.length; --r > -1;)
                            if (i = n[o[r]])
                                for (s = i.length; --s > -1;) "{self}" === i[s] && (i = n[o[r]] = i.concat(), i[s] = this);
                        n.tweens instanceof Array && this.add(n.tweens, 0, n.align, n.stagger)
                    },
                    o = ["onStartParams", "onUpdateParams", "onCompleteParams", "onReverseCompleteParams", "onRepeatParams"],
                    n = [],
                    r = function(e) {
                        var t, s = {};
                        for (t in e) s[t] = e[t];
                        return s
                    },
                    l = n.slice,
                    a = i.prototype = new t;
                return i.version = "1.9.7", a.constructor = i, a.kill()._gc = !1, a.to = function(e, t, i, o) {
                    return t ? this.add(new s(e, t, i), o) : this.set(e, i, o)
                }, a.from = function(e, t, i, o) {
                    return this.add(s.from(e, t, i), o)
                }, a.fromTo = function(e, t, i, o, n) {
                    return t ? this.add(s.fromTo(e, t, i, o), n) : this.set(e, o, n)
                }, a.staggerTo = function(e, t, o, n, a, d, u, h) {
                    var c, _ = new i({
                        onComplete: d,
                        onCompleteParams: u,
                        onCompleteScope: h
                    });
                    for ("string" == typeof e && (e = s.selector(e) || e), !(e instanceof Array) && e.length && e[0] && e[0].nodeType && e[0].style && (e = l.call(e, 0)), n = n || 0, c = 0; c < e.length; c++) o.startAt && (o.startAt = r(o.startAt)), _.to(e[c], t, r(o), c * n);
                    return this.add(_, a)
                }, a.staggerFrom = function(e, t, s, i, o, n, r, l) {
                    return s.immediateRender = 0 != s.immediateRender, s.runBackwards = !0, this.staggerTo(e, t, s, i, o, n, r, l)
                }, a.staggerFromTo = function(e, t, s, i, o, n, r, l, a) {
                    return i.startAt = s, i.immediateRender = 0 != i.immediateRender && 0 != s.immediateRender, this.staggerTo(e, t, i, o, n, r, l, a)
                }, a.call = function(e, t, i, o) {
                    return this.add(s.delayedCall(0, e, t, i), o)
                }, a.set = function(e, t, i) {
                    return i = this._parseTimeOrLabel(i, 0, !0), null == t.immediateRender && (t.immediateRender = i === this._time && !this._paused), this.add(new s(e, 0, t), i)
                }, i.exportRoot = function(e, t) {
                    e = e || {}, null == e.smoothChildTiming && (e.smoothChildTiming = !0);
                    var o, n, r = new i(e),
                        l = r._timeline;
                    for (null == t && (t = !0), l._remove(r, !0), r._startTime = 0, r._rawPrevTime = r._time = r._totalTime = l._time, o = l._first; o;) n = o._next, t && o instanceof s && o.target === o.vars.onComplete || r.add(o, o._startTime - o._delay), o = n;
                    return l.add(r, 0), r
                }, a.add = function(o, n, r, l) {
                    var a, d, u, h, c;
                    if ("number" != typeof n && (n = this._parseTimeOrLabel(n, 0, !0, o)), !(o instanceof e)) {
                        if (o instanceof Array) {
                            for (r = r || "normal", l = l || 0, a = n, d = o.length, u = 0; d > u; u++)(h = o[u]) instanceof Array && (h = new i({
                                tweens: h
                            })), this.add(h, a), "string" != typeof h && "function" != typeof h && ("sequence" === r ? a = h._startTime + h.totalDuration() / h._timeScale : "start" === r && (h._startTime -= h.delay())), a += l;
                            return this._uncache(!0)
                        }
                        if ("string" == typeof o) return this.addLabel(o, n);
                        if ("function" != typeof o) throw "Cannot add " + o + " into the timeline; it is neither a tween, timeline, function, nor a string.";
                        o = s.delayedCall(0, o)
                    }
                    if (t.prototype.add.call(this, o, n), this._gc && !this._paused && this._time === this._duration && this._time < this.duration())
                        for (c = this; c._gc && c._timeline;) c._timeline.smoothChildTiming ? c.totalTime(c._totalTime, !0) : c._enabled(!0, !1), c = c._timeline;
                    return this
                }, a.remove = function(t) {
                    if (t instanceof e) return this._remove(t, !1);
                    if (t instanceof Array) {
                        for (var s = t.length; --s > -1;) this.remove(t[s]);
                        return this
                    }
                    return "string" == typeof t ? this.removeLabel(t) : this.kill(null, t)
                }, a.append = function(e, t) {
                    return this.add(e, this._parseTimeOrLabel(null, t, !0, e))
                }, a.insert = a.insertMultiple = function(e, t, s, i) {
                    return this.add(e, t || 0, s, i)
                }, a.appendMultiple = function(e, t, s, i) {
                    return this.add(e, this._parseTimeOrLabel(null, t, !0, e), s, i)
                }, a.addLabel = function(e, t) {
                    return this._labels[e] = this._parseTimeOrLabel(t), this
                }, a.removeLabel = function(e) {
                    return delete this._labels[e], this
                }, a.getLabelTime = function(e) {
                    return null != this._labels[e] ? this._labels[e] : -1
                }, a._parseTimeOrLabel = function(t, s, i, o) {
                    var n;
                    if (o instanceof e && o.timeline === this) this.remove(o);
                    else if (o instanceof Array)
                        for (n = o.length; --n > -1;) o[n] instanceof e && o[n].timeline === this && this.remove(o[n]);
                    if ("string" == typeof s) return this._parseTimeOrLabel(s, i && "number" == typeof t && null == this._labels[s] ? t - this.duration() : 0, i);
                    if (s = s || 0, "string" != typeof t || !isNaN(t) && null == this._labels[t]) null == t && (t = this.duration());
                    else {
                        if (n = t.indexOf("="), -1 === n) return null == this._labels[t] ? i ? this._labels[t] = this.duration() + s : s : this._labels[t] + s;
                        s = parseInt(t.charAt(n - 1) + "1", 10) * Number(t.substr(n + 1)), t = n > 1 ? this._parseTimeOrLabel(t.substr(0, n - 1), 0, i) : this.duration()
                    }
                    return Number(t) + s
                }, a.seek = function(e, t) {
                    return this.totalTime("number" == typeof e ? e : this._parseTimeOrLabel(e), t !== !1)
                }, a.stop = function() {
                    return this.paused(!0)
                }, a.gotoAndPlay = function(e, t) {
                    return this.play(e, t)
                }, a.gotoAndStop = function(e, t) {
                    return this.pause(e, t)
                }, a.render = function(e, t, s) {
                    this._gc && this._enabled(!0, !1), this._active = !this._paused;
                    var i, o, r, l, a, d = this._dirty ? this.totalDuration() : this._totalDuration,
                        u = this._time,
                        h = this._startTime,
                        c = this._timeScale,
                        _ = this._paused;
                    if (e >= d ? (this._totalTime = this._time = d, this._reversed || this._hasPausedChild() || (o = !0, l = "onComplete", 0 === this._duration && (0 === e || this._rawPrevTime < 0) && this._rawPrevTime !== e && this._first && (a = !0, this._rawPrevTime > 0 && (l = "onReverseComplete"))), this._rawPrevTime = e, e = d + 1e-6) : 1e-7 > e ? (this._totalTime = this._time = 0, (0 !== u || 0 === this._duration && this._rawPrevTime > 0) && (l = "onReverseComplete", o = this._reversed), 0 > e ? (this._active = !1, 0 === this._duration && this._rawPrevTime >= 0 && this._first && (a = !0)) : this._initted || (a = !0), this._rawPrevTime = e, e = 0) : this._totalTime = this._time = this._rawPrevTime = e, this._time !== u && this._first || s || a) {
                        if (this._initted || (this._initted = !0), 0 === u && this.vars.onStart && 0 !== this._time && (t || this.vars.onStart.apply(this.vars.onStartScope || this, this.vars.onStartParams || n)), this._time >= u)
                            for (i = this._first; i && (r = i._next, !this._paused || _);)(i._active || i._startTime <= this._time && !i._paused && !i._gc) && (i._reversed ? i.render((i._dirty ? i.totalDuration() : i._totalDuration) - (e - i._startTime) * i._timeScale, t, s) : i.render((e - i._startTime) * i._timeScale, t, s)), i = r;
                        else
                            for (i = this._last; i && (r = i._prev, !this._paused || _);)(i._active || i._startTime <= u && !i._paused && !i._gc) && (i._reversed ? i.render((i._dirty ? i.totalDuration() : i._totalDuration) - (e - i._startTime) * i._timeScale, t, s) : i.render((e - i._startTime) * i._timeScale, t, s)), i = r;
                        this._onUpdate && (t || this._onUpdate.apply(this.vars.onUpdateScope || this, this.vars.onUpdateParams || n)), l && (this._gc || (h === this._startTime || c !== this._timeScale) && (0 === this._time || d >= this.totalDuration()) && (o && (this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !t && this.vars[l] && this.vars[l].apply(this.vars[l + "Scope"] || this, this.vars[l + "Params"] || n)))
                    }
                }, a._hasPausedChild = function() {
                    for (var e = this._first; e;) {
                        if (e._paused || e instanceof i && e._hasPausedChild()) return !0;
                        e = e._next
                    }
                    return !1
                }, a.getChildren = function(e, t, i, o) {
                    o = o || -9999999999;
                    for (var n = [], r = this._first, l = 0; r;) r._startTime < o || (r instanceof s ? t !== !1 && (n[l++] = r) : (i !== !1 && (n[l++] = r), e !== !1 && (n = n.concat(r.getChildren(!0, t, i)), l = n.length))), r = r._next;
                    return n
                }, a.getTweensOf = function(e, t) {
                    for (var i = s.getTweensOf(e), o = i.length, n = [], r = 0; --o > -1;)(i[o].timeline === this || t && this._contains(i[o])) && (n[r++] = i[o]);
                    return n
                }, a._contains = function(e) {
                    for (var t = e.timeline; t;) {
                        if (t === this) return !0;
                        t = t.timeline
                    }
                    return !1
                }, a.shiftChildren = function(e, t, s) {
                    s = s || 0;
                    for (var i, o = this._first, n = this._labels; o;) o._startTime >= s && (o._startTime += e), o = o._next;
                    if (t)
                        for (i in n) n[i] >= s && (n[i] += e);
                    return this._uncache(!0)
                }, a._kill = function(e, t) {
                    if (!e && !t) return this._enabled(!1, !1);
                    for (var s = t ? this.getTweensOf(t) : this.getChildren(!0, !0, !1), i = s.length, o = !1; --i > -1;) s[i]._kill(e, t) && (o = !0);
                    return o
                }, a.clear = function(e) {
                    var t = this.getChildren(!1, !0, !0),
                        s = t.length;
                    for (this._time = this._totalTime = 0; --s > -1;) t[s]._enabled(!1, !1);
                    return e !== !1 && (this._labels = {}), this._uncache(!0)
                }, a.invalidate = function() {
                    for (var e = this._first; e;) e.invalidate(), e = e._next;
                    return this
                }, a._enabled = function(e, s) {
                    if (e === this._gc)
                        for (var i = this._first; i;) i._enabled(e, !0), i = i._next;
                    return t.prototype._enabled.call(this, e, s)
                }, a.progress = function(e) {
                    return arguments.length ? this.totalTime(this.duration() * e, !1) : this._time / this.duration()
                }, a.duration = function(e) {
                    return arguments.length ? (0 !== this.duration() && 0 !== e && this.timeScale(this._duration / e), this) : (this._dirty && this.totalDuration(), this._duration)
                }, a.totalDuration = function(e) {
                    if (!arguments.length) {
                        if (this._dirty) {
                            for (var t, s, i = 0, o = this._last, n = 999999999999; o;) t = o._prev, o._dirty && o.totalDuration(), o._startTime > n && this._sortChildren && !o._paused ? this.add(o, o._startTime - o._delay) : n = o._startTime, o._startTime < 0 && !o._paused && (i -= o._startTime, this._timeline.smoothChildTiming && (this._startTime += o._startTime / this._timeScale), this.shiftChildren(-o._startTime, !1, -9999999999), n = 0), s = o._startTime + o._totalDuration / o._timeScale, s > i && (i = s), o = t;
                            this._duration = this._totalDuration = i, this._dirty = !1
                        }
                        return this._totalDuration
                    }
                    return 0 !== this.totalDuration() && 0 !== e && this.timeScale(this._totalDuration / e), this
                }, a.usesFrames = function() {
                    for (var t = this._timeline; t._timeline;) t = t._timeline;
                    return t === e._rootFramesTimeline
                }, a.rawTime = function() {
                    return this._paused || 0 !== this._totalTime && this._totalTime !== this._totalDuration ? this._totalTime : (this._timeline.rawTime() - this._startTime) * this._timeScale
                }, i
            }, !0), window._gsDefine("TimelineMax", ["TimelineLite", "TweenLite", "easing.Ease"], function(e, t, s) {
                var i = function(t) {
                        e.call(this, t), this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._cycle = 0, this._yoyo = this.vars.yoyo === !0, this._dirty = !0
                    },
                    o = [],
                    n = new s(null, null, 1, 0),
                    r = function(e) {
                        for (; e;) {
                            if (e._paused) return !0;
                            e = e._timeline
                        }
                        return !1
                    },
                    l = i.prototype = new e;
                return l.constructor = i, l.kill()._gc = !1, i.version = "1.9.7", l.invalidate = function() {
                    return this._yoyo = this.vars.yoyo === !0, this._repeat = this.vars.repeat || 0, this._repeatDelay = this.vars.repeatDelay || 0, this._uncache(!0), e.prototype.invalidate.call(this)
                }, l.addCallback = function(e, s, i, o) {
                    return this.add(t.delayedCall(0, e, i, o), s)
                }, l.removeCallback = function(e, t) {
                    if (null == t) this._kill(null, e);
                    else
                        for (var s = this.getTweensOf(e, !1), i = s.length, o = this._parseTimeOrLabel(t); --i > -1;) s[i]._startTime === o && s[i]._enabled(!1, !1);
                    return this
                }, l.tweenTo = function(e, s) {
                    s = s || {};
                    var i, r, l = {
                        ease: n,
                        overwrite: 2,
                        useFrames: this.usesFrames(),
                        immediateRender: !1
                    };
                    for (i in s) l[i] = s[i];
                    return l.time = this._parseTimeOrLabel(e), r = new t(this, Math.abs(Number(l.time) - this._time) / this._timeScale || .001, l), l.onStart = function() {
                        r.target.paused(!0), r.vars.time !== r.target.time() && r.duration(Math.abs(r.vars.time - r.target.time()) / r.target._timeScale), s.onStart && s.onStart.apply(s.onStartScope || r, s.onStartParams || o)
                    }, r
                }, l.tweenFromTo = function(e, t, s) {
                    s = s || {}, e = this._parseTimeOrLabel(e), s.startAt = {
                        onComplete: this.seek,
                        onCompleteParams: [e],
                        onCompleteScope: this
                    }, s.immediateRender = s.immediateRender !== !1;
                    var i = this.tweenTo(t, s);
                    return i.duration(Math.abs(i.vars.time - e) / this._timeScale || .001)
                }, l.render = function(e, t, s) {
                    this._gc && this._enabled(!0, !1), this._active = !this._paused;
                    var i, n, r, l, a, d, u = this._dirty ? this.totalDuration() : this._totalDuration,
                        h = this._duration,
                        c = this._time,
                        _ = this._totalTime,
                        f = this._startTime,
                        b = this._timeScale,
                        m = this._rawPrevTime,
                        p = this._paused,
                        v = this._cycle;
                    if (e >= u ? (this._locked || (this._totalTime = u, this._cycle = this._repeat), this._reversed || this._hasPausedChild() || (n = !0, l = "onComplete", 0 === h && (0 === e || this._rawPrevTime < 0) && this._rawPrevTime !== e && this._first && (a = !0, this._rawPrevTime > 0 && (l = "onReverseComplete"))), this._rawPrevTime = e, this._yoyo && 0 !== (1 & this._cycle) ? this._time = e = 0 : (this._time = h, e = h + 1e-6)) : 1e-7 > e ? (this._locked || (this._totalTime = this._cycle = 0), this._time = 0, (0 !== c || 0 === h && this._rawPrevTime > 0 && !this._locked) && (l = "onReverseComplete", n = this._reversed), 0 > e ? (this._active = !1, 0 === h && this._rawPrevTime >= 0 && this._first && (a = !0)) : this._initted || (a = !0), this._rawPrevTime = e, e = 0) : (this._time = this._rawPrevTime = e, this._locked || (this._totalTime = e, 0 !== this._repeat && (d = h + this._repeatDelay, this._cycle = this._totalTime / d >> 0, 0 !== this._cycle && this._cycle === this._totalTime / d && this._cycle--, this._time = this._totalTime - this._cycle * d, this._yoyo && 0 !== (1 & this._cycle) && (this._time = h - this._time), this._time > h ? (this._time = h, e = h + 1e-6) : this._time < 0 ? this._time = e = 0 : e = this._time))), this._cycle !== v && !this._locked) {
                        var g = this._yoyo && 0 !== (1 & v),
                            S = g === (this._yoyo && 0 !== (1 & this._cycle)),
                            w = this._totalTime,
                            y = this._cycle,
                            T = this._rawPrevTime,
                            D = this._time;
                        this._totalTime = v * h, this._cycle < v ? g = !g : this._totalTime += h, this._time = c, this._rawPrevTime = 0 === h ? m - 1e-5 : m, this._cycle = v, this._locked = !0, c = g ? 0 : h, this.render(c, t, 0 === h), t || this._gc || this.vars.onRepeat && this.vars.onRepeat.apply(this.vars.onRepeatScope || this, this.vars.onRepeatParams || o), S && (c = g ? h + 1e-6 : -1e-6, this.render(c, !0, !1)), this._time = D, this._totalTime = w, this._cycle = y, this._rawPrevTime = T, this._locked = !1
                    }
                    if (!(this._time !== c && this._first || s || a)) return void(_ !== this._totalTime && this._onUpdate && (t || this._onUpdate.apply(this.vars.onUpdateScope || this, this.vars.onUpdateParams || o)));
                    if (this._initted || (this._initted = !0), 0 === _ && this.vars.onStart && 0 !== this._totalTime && (t || this.vars.onStart.apply(this.vars.onStartScope || this, this.vars.onStartParams || o)), this._time >= c)
                        for (i = this._first; i && (r = i._next, !this._paused || p);)(i._active || i._startTime <= this._time && !i._paused && !i._gc) && (i._reversed ? i.render((i._dirty ? i.totalDuration() : i._totalDuration) - (e - i._startTime) * i._timeScale, t, s) : i.render((e - i._startTime) * i._timeScale, t, s)), i = r;
                    else
                        for (i = this._last; i && (r = i._prev, !this._paused || p);)(i._active || i._startTime <= c && !i._paused && !i._gc) && (i._reversed ? i.render((i._dirty ? i.totalDuration() : i._totalDuration) - (e - i._startTime) * i._timeScale, t, s) : i.render((e - i._startTime) * i._timeScale, t, s)), i = r;
                    this._onUpdate && (t || this._onUpdate.apply(this.vars.onUpdateScope || this, this.vars.onUpdateParams || o)), l && (this._locked || this._gc || (f === this._startTime || b !== this._timeScale) && (0 === this._time || u >= this.totalDuration()) && (n && (this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !t && this.vars[l] && this.vars[l].apply(this.vars[l + "Scope"] || this, this.vars[l + "Params"] || o)))
                }, l.getActive = function(e, t, s) {
                    null == e && (e = !0), null == t && (t = !0), null == s && (s = !1);
                    var i, o, n = [],
                        l = this.getChildren(e, t, s),
                        a = 0,
                        d = l.length;
                    for (i = 0; d > i; i++) o = l[i], o._paused || o._timeline._time >= o._startTime && o._timeline._time < o._startTime + o._totalDuration / o._timeScale && (r(o._timeline) || (n[a++] = o));
                    return n
                }, l.getLabelAfter = function(e) {
                    e || 0 !== e && (e = this._time);
                    var t, s = this.getLabelsArray(),
                        i = s.length;
                    for (t = 0; i > t; t++)
                        if (s[t].time > e) return s[t].name;
                    return null
                }, l.getLabelBefore = function(e) {
                    null == e && (e = this._time);
                    for (var t = this.getLabelsArray(), s = t.length; --s > -1;)
                        if (t[s].time < e) return t[s].name;
                    return null
                }, l.getLabelsArray = function() {
                    var e, t = [],
                        s = 0;
                    for (e in this._labels) t[s++] = {
                        time: this._labels[e],
                        name: e
                    };
                    return t.sort(function(e, t) {
                        return e.time - t.time
                    }), t
                }, l.progress = function(e) {
                    return arguments.length ? this.totalTime(this.duration() * (this._yoyo && 0 !== (1 & this._cycle) ? 1 - e : e) + this._cycle * (this._duration + this._repeatDelay), !1) : this._time / this.duration()
                }, l.totalProgress = function(e) {
                    return arguments.length ? this.totalTime(this.totalDuration() * e, !1) : this._totalTime / this.totalDuration()
                }, l.totalDuration = function(t) {
                    return arguments.length ? -1 === this._repeat ? this : this.duration((t - this._repeat * this._repeatDelay) / (this._repeat + 1)) : (this._dirty && (e.prototype.totalDuration.call(this), this._totalDuration = -1 === this._repeat ? 999999999999 : this._duration * (this._repeat + 1) + this._repeatDelay * this._repeat), this._totalDuration)
                }, l.time = function(e, t) {
                    return arguments.length ? (this._dirty && this.totalDuration(), e > this._duration && (e = this._duration), this._yoyo && 0 !== (1 & this._cycle) ? e = this._duration - e + this._cycle * (this._duration + this._repeatDelay) : 0 !== this._repeat && (e += this._cycle * (this._duration + this._repeatDelay)), this.totalTime(e, t)) : this._time
                }, l.repeat = function(e) {
                    return arguments.length ? (this._repeat = e, this._uncache(!0)) : this._repeat
                }, l.repeatDelay = function(e) {
                    return arguments.length ? (this._repeatDelay = e, this._uncache(!0)) : this._repeatDelay
                }, l.yoyo = function(e) {
                    return arguments.length ? (this._yoyo = e, this) : this._yoyo
                }, l.currentLabel = function(e) {
                    return arguments.length ? this.seek(e, !0) : this.getLabelBefore(this._time + 1e-8)
                }, i
            }, !0),
            function() {
                var e = 180 / Math.PI,
                    t = Math.PI / 180,
                    s = [],
                    i = [],
                    o = [],
                    n = {},
                    r = function(e, t, s, i) {
                        this.a = e, this.b = t, this.c = s, this.d = i, this.da = i - e, this.ca = s - e, this.ba = t - e
                    },
                    l = ",x,y,z,left,top,right,bottom,marginTop,marginLeft,marginRight,marginBottom,paddingLeft,paddingTop,paddingRight,paddingBottom,backgroundPosition,backgroundPosition_y,",
                    a = function(e, t, s, i) {
                        var o = {
                                a: e
                            },
                            n = {},
                            r = {},
                            l = {
                                c: i
                            },
                            a = (e + t) / 2,
                            d = (t + s) / 2,
                            u = (s + i) / 2,
                            h = (a + d) / 2,
                            c = (d + u) / 2,
                            _ = (c - h) / 8;
                        return o.b = a + (e - a) / 4, n.b = h + _, o.c = n.a = (o.b + n.b) / 2, n.c = r.a = (h + c) / 2, r.b = c - _, l.b = u + (i - u) / 4, r.c = l.a = (r.b + l.b) / 2, [o, n, r, l]
                    },
                    d = function(e, t, n, r, l) {
                        var d, u, h, c, _, f, b, m, p, v, g, S, w, y = e.length - 1,
                            T = 0,
                            D = e[0].a;
                        for (d = 0; y > d; d++) _ = e[T], u = _.a, h = _.d, c = e[T + 1].d, l ? (g = s[d], S = i[d], w = (S + g) * t * .25 / (r ? .5 : o[d] || .5), f = h - (h - u) * (r ? .5 * t : 0 !== g ? w / g : 0), b = h + (c - h) * (r ? .5 * t : 0 !== S ? w / S : 0), m = h - (f + ((b - f) * (3 * g / (g + S) + .5) / 4 || 0))) : (f = h - (h - u) * t * .5, b = h + (c - h) * t * .5, m = h - (f + b) / 2), f += m, b += m, _.c = p = f, 0 !== d ? _.b = D : _.b = D = _.a + .6 * (_.c - _.a), _.da = h - u, _.ca = p - u, _.ba = D - u, n ? (v = a(u, D, p, h), e.splice(T, 1, v[0], v[1], v[2], v[3]), T += 4) : T++, D = b;
                        _ = e[T], _.b = D, _.c = D + .4 * (_.d - D), _.da = _.d - _.a, _.ca = _.c - _.a, _.ba = D - _.a, n && (v = a(_.a, D, _.c, _.d), e.splice(T, 1, v[0], v[1], v[2], v[3]))
                    },
                    u = function(e, t, o, n) {
                        var l, a, d, u, h, c, _ = [];
                        if (n)
                            for (e = [n].concat(e), a = e.length; --a > -1;) "string" == typeof(c = e[a][t]) && "=" === c.charAt(1) && (e[a][t] = n[t] + Number(c.charAt(0) + c.substr(2)));
                        if (l = e.length - 2, 0 > l) return _[0] = new r(e[0][t], 0, 0, e[-1 > l ? 0 : 1][t]), _;
                        for (a = 0; l > a; a++) d = e[a][t], u = e[a + 1][t], _[a] = new r(d, 0, 0, u), o && (h = e[a + 2][t], s[a] = (s[a] || 0) + (u - d) * (u - d), i[a] = (i[a] || 0) + (h - u) * (h - u));
                        return _[a] = new r(e[a][t], 0, 0, e[a + 1][t]), _
                    },
                    h = function(e, t, r, a, h, c) {
                        var _, f, b, m, p, v, g, S, w = {},
                            y = [],
                            T = c || e[0];
                        h = "string" == typeof h ? "," + h + "," : l, null == t && (t = 1);
                        for (f in e[0]) y.push(f);
                        if (e.length > 1) {
                            for (S = e[e.length - 1], g = !0, _ = y.length; --_ > -1;)
                                if (f = y[_], Math.abs(T[f] - S[f]) > .05) {
                                    g = !1;
                                    break
                                }
                            g && (e = e.concat(), c && e.unshift(c), e.push(e[1]), c = e[e.length - 3])
                        }
                        for (s.length = i.length = o.length = 0, _ = y.length; --_ > -1;) f = y[_], n[f] = -1 !== h.indexOf("," + f + ","), w[f] = u(e, f, n[f], c);
                        for (_ = s.length; --_ > -1;) s[_] = Math.sqrt(s[_]), i[_] = Math.sqrt(i[_]);
                        if (!a) {
                            for (_ = y.length; --_ > -1;)
                                if (n[f])
                                    for (b = w[y[_]], v = b.length - 1, m = 0; v > m; m++) p = b[m + 1].da / i[m] + b[m].da / s[m], o[m] = (o[m] || 0) + p * p;
                            for (_ = o.length; --_ > -1;) o[_] = Math.sqrt(o[_])
                        }
                        for (_ = y.length, m = r ? 4 : 1; --_ > -1;) f = y[_], b = w[f], d(b, t, r, a, n[f]), g && (b.splice(0, m), b.splice(b.length - m, m));
                        return w
                    },
                    c = function(e, t, s) {
                        t = t || "soft";
                        var i, o, n, l, a, d, u, h, c, _, f, b = {},
                            m = "cubic" === t ? 3 : 2,
                            p = "soft" === t,
                            v = [];
                        if (p && s && (e = [s].concat(e)), null == e || e.length < m + 1) throw "invalid Bezier data";
                        for (c in e[0]) v.push(c);
                        for (d = v.length; --d > -1;) {
                            for (c = v[d], b[c] = a = [], _ = 0, h = e.length, u = 0; h > u; u++) i = null == s ? e[u][c] : "string" == typeof(f = e[u][c]) && "=" === f.charAt(1) ? s[c] + Number(f.charAt(0) + f.substr(2)) : Number(f), p && u > 1 && h - 1 > u && (a[_++] = (i + a[_ - 2]) / 2), a[_++] = i;
                            for (h = _ - m + 1, _ = 0, u = 0; h > u; u += m) i = a[u], o = a[u + 1], n = a[u + 2], l = 2 === m ? 0 : a[u + 3], a[_++] = f = 3 === m ? new r(i, o, n, l) : new r(i, (2 * o + i) / 3, (2 * o + n) / 3, n);
                            a.length = _
                        }
                        return b
                    },
                    _ = function(e, t, s) {
                        for (var i, o, n, r, l, a, d, u, h, c, _, f = 1 / s, b = e.length; --b > -1;)
                            for (c = e[b], n = c.a, r = c.d - n, l = c.c - n, a = c.b - n, i = o = 0, u = 1; s >= u; u++) d = f * u, h = 1 - d, i = o - (o = (d * d * r + 3 * h * (d * l + h * a)) * d), _ = b * s + u - 1, t[_] = (t[_] || 0) + i * i
                    },
                    f = function(e, t) {
                        t = t >> 0 || 6;
                        var s, i, o, n, r = [],
                            l = [],
                            a = 0,
                            d = 0,
                            u = t - 1,
                            h = [],
                            c = [];
                        for (s in e) _(e[s], r, t);
                        for (o = r.length, i = 0; o > i; i++) a += Math.sqrt(r[i]), n = i % t, c[n] = a, n === u && (d += a, n = i / t >> 0, h[n] = c, l[n] = d, a = 0, c = []);
                        return {
                            length: d,
                            lengths: l,
                            segments: h
                        }
                    },
                    b = window._gsDefine.plugin({
                        propName: "bezier",
                        priority: -1,
                        API: 2,
                        global: !0,
                        init: function(e, t, s) {
                            this._target = e, t instanceof Array && (t = {
                                values: t
                            }), this._func = {}, this._round = {}, this._props = [], this._timeRes = null == t.timeResolution ? 6 : parseInt(t.timeResolution, 10);
                            var i, o, n, r, l, a = t.values || [],
                                d = {},
                                u = a[0],
                                _ = t.autoRotate || s.vars.orientToBezier;
                            this._autoRotate = _ ? _ instanceof Array ? _ : [
                                ["x", "y", "rotation", _ === !0 ? 0 : Number(_) || 0]
                            ] : null;
                            for (i in u) this._props.push(i);
                            for (n = this._props.length; --n > -1;) i = this._props[n], this._overwriteProps.push(i), o = this._func[i] = "function" == typeof e[i], d[i] = o ? e[i.indexOf("set") || "function" != typeof e["get" + i.substr(3)] ? i : "get" + i.substr(3)]() : parseFloat(e[i]), l || d[i] !== a[0][i] && (l = d);
                            if (this._beziers = "cubic" !== t.type && "quadratic" !== t.type && "soft" !== t.type ? h(a, isNaN(t.curviness) ? 1 : t.curviness, !1, "thruBasic" === t.type, t.correlate, l) : c(a, t.type, d), this._segCount = this._beziers[i].length, this._timeRes) {
                                var b = f(this._beziers, this._timeRes);
                                this._length = b.length, this._lengths = b.lengths, this._segments = b.segments, this._l1 = this._li = this._s1 = this._si = 0, this._l2 = this._lengths[0], this._curSeg = this._segments[0], this._s2 = this._curSeg[0], this._prec = 1 / this._curSeg.length
                            }
                            if (_ = this._autoRotate)
                                for (_[0] instanceof Array || (this._autoRotate = _ = [_]), n = _.length; --n > -1;)
                                    for (r = 0; 3 > r; r++) i = _[n][r], this._func[i] = "function" == typeof e[i] ? e[i.indexOf("set") || "function" != typeof e["get" + i.substr(3)] ? i : "get" + i.substr(3)] : !1;
                            return !0
                        },
                        set: function(t) {
                            var s, i, o, n, r, l, a, d, u, h, c = this._segCount,
                                _ = this._func,
                                f = this._target;
                            if (this._timeRes) {
                                if (u = this._lengths, h = this._curSeg, t *= this._length, o = this._li, t > this._l2 && c - 1 > o) {
                                    for (d = c - 1; d > o && (this._l2 = u[++o]) <= t;);
                                    this._l1 = u[o - 1], this._li = o, this._curSeg = h = this._segments[o], this._s2 = h[this._s1 = this._si = 0]
                                } else if (t < this._l1 && o > 0) {
                                    for (; o > 0 && (this._l1 = u[--o]) >= t;);
                                    0 === o && t < this._l1 ? this._l1 = 0 : o++, this._l2 = u[o], this._li = o, this._curSeg = h = this._segments[o], this._s1 = h[(this._si = h.length - 1) - 1] || 0, this._s2 = h[this._si]
                                }
                                if (s = o, t -= this._l1, o = this._si, t > this._s2 && o < h.length - 1) {
                                    for (d = h.length - 1; d > o && (this._s2 = h[++o]) <= t;);
                                    this._s1 = h[o - 1], this._si = o
                                } else if (t < this._s1 && o > 0) {
                                    for (; o > 0 && (this._s1 = h[--o]) >= t;);
                                    0 === o && t < this._s1 ? this._s1 = 0 : o++, this._s2 = h[o], this._si = o
                                }
                                l = (o + (t - this._s1) / (this._s2 - this._s1)) * this._prec
                            } else s = 0 > t ? 0 : t >= 1 ? c - 1 : c * t >> 0, l = (t - s * (1 / c)) * c;
                            for (i = 1 - l, o = this._props.length; --o > -1;) n = this._props[o], r = this._beziers[n][s], a = (l * l * r.da + 3 * i * (l * r.ca + i * r.ba)) * l + r.a, this._round[n] && (a = a + (a > 0 ? .5 : -.5) >> 0), _[n] ? f[n](a) : "x" == n ? f.setX(a) : "y" == n ? f.setY(a) : "z" == n ? f.setZ(a) : "angleX" == n ? f.setAngleX(a) : "angleY" == n ? f.setAngleY(a) : "angleZ" == n ? f.setAngleZ(a) : "w" == n ? f.setWidth(a) : "h" == n ? f.setHeight(a) : "alpha" == n ? f.setAlpha(a) : "scale" == n ? f.setScale2(a) : f[n] = a;
                            if (this._autoRotate) {
                                var b, m, p, v, g, S, w, y = this._autoRotate;
                                for (o = y.length; --o > -1;) n = y[o][2], S = y[o][3] || 0, w = y[o][4] === !0 ? 1 : e, r = this._beziers[y[o][0]], b = this._beziers[y[o][1]], r && b && (r = r[s], b = b[s], m = r.a + (r.b - r.a) * l, v = r.b + (r.c - r.b) * l, m += (v - m) * l, v += (r.c + (r.d - r.c) * l - v) * l, p = b.a + (b.b - b.a) * l, g = b.b + (b.c - b.b) * l, p += (g - p) * l, g += (b.c + (b.d - b.c) * l - g) * l, a = Math.atan2(g - p, v - m) * w + S, _[n] ? f[n](a) : f[n] = a)
                            }
                        }
                    }),
                    m = b.prototype;
                b.bezierThrough = h, b.cubicToQuadratic = a, b._autoCSS = !0, b.quadraticToCubic = function(e, t, s) {
                    return new r(e, (2 * t + e) / 3, (2 * t + s) / 3, s)
                }, b._cssRegister = function() {
                    var e = window._gsDefine.globals.CSSPlugin;
                    if (e) {
                        var s = e._internals,
                            i = s._parseToProxy,
                            o = s._setPluginRatio,
                            n = s.CSSPropTween;
                        s._registerComplexSpecialProp("bezier", {
                            parser: function(e, s, r, l, a, d) {
                                s instanceof Array && (s = {
                                    values: s
                                }), d = new b;
                                var u, h, c, _ = s.values,
                                    f = _.length - 1,
                                    m = [],
                                    p = {};
                                if (0 > f) return a;
                                for (u = 0; f >= u; u++) c = i(e, _[u], l, a, d, f !== u), m[u] = c.end;
                                for (h in s) p[h] = s[h];
                                return p.values = m, a = new n(e, "bezier", 0, 0, c.pt, 2), a.data = c, a.plugin = d, a.setRatio = o, 0 === p.autoRotate && (p.autoRotate = !0), !p.autoRotate || p.autoRotate instanceof Array || (u = p.autoRotate === !0 ? 0 : Number(p.autoRotate) * t, p.autoRotate = null != c.end.left ? [
                                    ["left", "top", "rotation", u, !0]
                                ] : null != c.end.x ? [
                                    ["x", "y", "rotation", u, !0]
                                ] : !1), p.autoRotate && (l._transform || l._enableTransforms(!1), c.autoRotate = l._target._gsTransform), d._onInitTween(c.proxy, p, l._tween), a
                            }
                        })
                    }
                }, m._roundProps = function(e, t) {
                    for (var s = this._overwriteProps, i = s.length; --i > -1;)(e[s[i]] || e.bezier || e.bezierThrough) && (this._round[s[i]] = t)
                }, m._kill = function(e) {
                    var t, s, i = this._props;
                    for (t in this._beziers)
                        if (t in e)
                            for (delete this._beziers[t], delete this._func[t], s = i.length; --s > -1;) i[s] === t && i.splice(s, 1);
                    return this._super._kill.call(this, e)
                }
            }(), window._gsDefine("plugins.CSSPlugin", ["plugins.TweenPlugin", "TweenLite"], function(e, t) {
                var s, i, o, n, r = function() {
                        e.call(this, "css"), this._overwriteProps.length = 0
                    },
                    l = {},
                    a = r.prototype = new e("css");
                a.constructor = r, r.version = "1.9.7", r.API = 2, r.defaultTransformPerspective = 0, a = "px", r.suffixMap = {
                    top: a,
                    right: a,
                    bottom: a,
                    left: a,
                    width: a,
                    height: a,
                    fontSize: a,
                    padding: a,
                    margin: a,
                    perspective: a
                };
                var d, u, h, c, _, f, b = /(?:\d|\-\d|\.\d|\-\.\d)+/g,
                    m = /(?:\d|\-\d|\.\d|\-\.\d|\+=\d|\-=\d|\+=.\d|\-=\.\d)+/g,
                    p = /(?:\+=|\-=|\-|\b)[\d\-\.]+[a-zA-Z0-9]*(?:%|\b)/gi,
                    v = /[^\d\-\.]/g,
                    g = /(?:\d|\-|\+|=|#|\.)*/g,
                    S = /opacity *= *([^)]*)/,
                    w = /opacity:([^;]*)/,
                    y = /alpha\(opacity *=.+?\)/i,
                    T = /^(rgb|hsl)/,
                    D = /([A-Z])/g,
                    L = /-([a-z])/gi,
                    B = /(^(?:url\(\"|url\())|(?:(\"\))$|\)$)/gi,
                    P = function(e, t) {
                        return t.toUpperCase()
                    },
                    O = /(?:Left|Right|Width)/i,
                    E = /(M11|M12|M21|M22)=[\d\-\.e]+/gi,
                    R = /progid\:DXImageTransform\.Microsoft\.Matrix\(.+?\)/i,
                    F = /,(?=[^\)]*(?:\(|$))/gi,
                    M = Math.PI / 180,
                    W = 180 / Math.PI,
                    x = {},
                    H = document,
                    k = H.createElement("div"),
                    C = H.createElement("img"),
                    A = r._internals = {
                        _specialProps: l
                    },
                    I = navigator.userAgent,
                    U = function() {
                        var e, t = I.indexOf("Android"),
                            s = H.createElement("div");
                        return h = -1 !== I.indexOf("Safari") && -1 === I.indexOf("Chrome") && (-1 === t || Number(I.substr(t + 8, 1)) > 3), _ = h && Number(I.substr(I.indexOf("Version/") + 8, 1)) < 6, c = -1 !== I.indexOf("Firefox"), /MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(I), f = parseFloat(RegExp.$1), s.innerHTML = "<a style='top:1px;opacity:.55;'>a</a>", e = s.getElementsByTagName("a")[0], e ? /^0.55/.test(e.style.opacity) : !1
                    }(),
                    V = function(e) {
                        return S.test("string" == typeof e ? e : (e.currentStyle ? e.currentStyle.filter : e.style.filter) || "") ? parseFloat(RegExp.$1) / 100 : 1
                    },
                    N = function(e) {
                        window.console && console.log(e)
                    },
                    j = "",
                    z = "",
                    X = function(e, t) {
                        t = t || k;
                        var s, i, o = t.style;
                        if (void 0 !== o[e]) return e;
                        for (e = e.charAt(0).toUpperCase() + e.substr(1), s = ["O", "Moz", "ms", "Ms", "Webkit"], i = 5; --i > -1 && void 0 === o[s[i] + e];);
                        return i >= 0 ? (z = 3 === i ? "ms" : s[i], j = "-" + z.toLowerCase() + "-", z + e) : null
                    },
                    Y = H.defaultView ? H.defaultView.getComputedStyle : function() {},
                    K = r.getStyle = function(e, t, s, i, o) {
                        var n;
                        return U || "opacity" !== t ? (!i && e.style[t] ? n = e.style[t] : (s = s || Y(e, null)) ? (e = s.getPropertyValue(t.replace(D, "-$1").toLowerCase()), n = e || s.length ? e : s[t]) : e.currentStyle && (s = e.currentStyle, n = s[t]), null == o || n && "none" !== n && "auto" !== n && "auto auto" !== n ? n : o) : V(e)
                    },
                    G = function(e, t, s, i, o) {
                        if ("px" === i || !i) return s;
                        if ("auto" === i || !s) return 0;
                        var n, r = O.test(t),
                            l = e,
                            a = k.style,
                            d = 0 > s;
                        return d && (s = -s), "%" === i && -1 !== t.indexOf("border") ? n = s / 100 * (r ? e.clientWidth : e.clientHeight) : (a.cssText = "border-style:solid; border-width:0; position:absolute; line-height:0;", "%" !== i && l.appendChild ? a[r ? "borderLeftWidth" : "borderTopWidth"] = s + i : (l = e.parentNode || H.body, a[r ? "width" : "height"] = s + i), l.appendChild(k), n = parseFloat(k[r ? "offsetWidth" : "offsetHeight"]), l.removeChild(k), 0 !== n || o || (n = G(e, t, s, i, !0))), d ? -n : n
                    },
                    q = function(e, t, s) {
                        if ("absolute" !== K(e, "position", s)) return 0;
                        var i = "left" === t ? "Left" : "Top",
                            o = K(e, "margin" + i, s);
                        return e["offset" + i] - (G(e, t, parseFloat(o), o.replace(g, "")) || 0)
                    },
                    Z = function(e, t) {
                        var s, i, o = {};
                        if (t = t || Y(e, null))
                            if (s = t.length)
                                for (; --s > -1;) o[t[s].replace(L, P)] = t.getPropertyValue(t[s]);
                            else
                                for (s in t) o[s] = t[s];
                        else if (t = e.currentStyle || e.style)
                            for (s in t) o[s.replace(L, P)] = t[s];
                        return U || (o.opacity = V(e)), i = Te(e, t, !1), o.rotation = i.rotation * W, o.skewX = i.skewX * W, o.scaleX = i.scaleX, o.scaleY = i.scaleY, o.x = i.x, o.y = i.y, ye && (o.z = i.z, o.rotationX = i.rotationX * W, o.rotationY = i.rotationY * W, o.scaleZ = i.scaleZ), o.filters && delete o.filters, o
                    },
                    Q = function(e, t, s, i, o) {
                        var n, r, l, a = {},
                            d = e.style;
                        for (r in s) "cssText" !== r && "length" !== r && isNaN(r) && (t[r] !== (n = s[r]) || o && o[r]) && -1 === r.indexOf("Origin") && ("number" == typeof n || "string" == typeof n) && (a[r] = "auto" !== n || "left" !== r && "top" !== r ? "" !== n && "auto" !== n && "none" !== n || "string" != typeof t[r] || "" === t[r].replace(v, "") ? n : 0 : q(e, r), void 0 !== d[r] && (l = new he(d, r, d[r], l)));
                        if (i)
                            for (r in i) "className" !== r && (a[r] = i[r]);
                        return {
                            difs: a,
                            firstMPT: l
                        }
                    },
                    $ = {
                        width: ["Left", "Right"],
                        height: ["Top", "Bottom"]
                    },
                    J = ["marginLeft", "marginRight", "marginTop", "marginBottom"],
                    ee = function(e, t, s) {
                        var i = parseFloat("width" === t ? e.offsetWidth : e.offsetHeight),
                            o = $[t],
                            n = o.length;
                        for (s = s || Y(e, null); --n > -1;) i -= parseFloat(K(e, "padding" + o[n], s, !0)) || 0, i -= parseFloat(K(e, "border" + o[n] + "Width", s, !0)) || 0;
                        return i
                    },
                    te = function(e, t) {
                        (null == e || "" === e || "auto" === e || "auto auto" === e) && (e = "0 0");
                        var s = e.split(" "),
                            i = -1 !== e.indexOf("left") ? "0%" : -1 !== e.indexOf("right") ? "100%" : s[0],
                            o = -1 !== e.indexOf("top") ? "0%" : -1 !== e.indexOf("bottom") ? "100%" : s[1];
                        return null == o ? o = "0" : "center" === o && (o = "50%"), ("center" === i || isNaN(parseFloat(i))) && (i = "50%"), t && (t.oxp = -1 !== i.indexOf("%"), t.oyp = -1 !== o.indexOf("%"), t.oxr = "=" === i.charAt(1), t.oyr = "=" === o.charAt(1), t.ox = parseFloat(i.replace(v, "")), t.oy = parseFloat(o.replace(v, ""))), i + " " + o + (s.length > 2 ? " " + s[2] : "")
                    },
                    se = function(e, t) {
                        return "string" == typeof e && "=" === e.charAt(1) ? parseInt(e.charAt(0) + "1", 10) * parseFloat(e.substr(2)) : parseFloat(e) - parseFloat(t)
                    },
                    ie = function(e, t) {
                        return null == e ? t : "string" == typeof e && "=" === e.charAt(1) ? parseInt(e.charAt(0) + "1", 10) * Number(e.substr(2)) + t : parseFloat(e)
                    },
                    oe = function(e, t, s, i) {
                        var o, n, r, l, a = 1e-6;
                        return null == e ? l = t : "number" == typeof e ? l = e * M : (o = 2 * Math.PI, n = e.split("_"), r = Number(n[0].replace(v, "")) * (-1 === e.indexOf("rad") ? M : 1) - ("=" === e.charAt(1) ? 0 : t), n.length && (i && (i[s] = t + r), -1 !== e.indexOf("short") && (r %= o, r !== r % (o / 2) && (r = 0 > r ? r + o : r - o)), -1 !== e.indexOf("_cw") && 0 > r ? r = (r + 9999999999 * o) % o - (r / o | 0) * o : -1 !== e.indexOf("ccw") && r > 0 && (r = (r - 9999999999 * o) % o - (r / o | 0) * o)), l = t + r), a > l && l > -a && (l = 0), l
                    },
                    ne = {
                        aqua: [0, 255, 255],
                        lime: [0, 255, 0],
                        silver: [192, 192, 192],
                        black: [0, 0, 0],
                        maroon: [128, 0, 0],
                        teal: [0, 128, 128],
                        blue: [0, 0, 255],
                        navy: [0, 0, 128],
                        white: [255, 255, 255],
                        fuchsia: [255, 0, 255],
                        olive: [128, 128, 0],
                        yellow: [255, 255, 0],
                        orange: [255, 165, 0],
                        gray: [128, 128, 128],
                        purple: [128, 0, 128],
                        green: [0, 128, 0],
                        red: [255, 0, 0],
                        pink: [255, 192, 203],
                        cyan: [0, 255, 255],
                        transparent: [255, 255, 255, 0]
                    },
                    re = function(e, t, s) {
                        return e = 0 > e ? e + 1 : e > 1 ? e - 1 : e, 255 * (1 > 6 * e ? t + (s - t) * e * 6 : .5 > e ? s : 2 > 3 * e ? t + (s - t) * (2 / 3 - e) * 6 : t) + .5 | 0
                    },
                    le = function(e) {
                        var t, s, i, o, n, r;
                        return e && "" !== e ? "number" == typeof e ? [e >> 16, e >> 8 & 255, 255 & e] : ("," === e.charAt(e.length - 1) && (e = e.substr(0, e.length - 1)), ne[e] ? ne[e] : "#" === e.charAt(0) ? (4 === e.length && (t = e.charAt(1), s = e.charAt(2), i = e.charAt(3), e = "#" + t + t + s + s + i + i), e = parseInt(e.substr(1), 16), [e >> 16, e >> 8 & 255, 255 & e]) : "hsl" === e.substr(0, 3) ? (e = e.match(b), o = Number(e[0]) % 360 / 360, n = Number(e[1]) / 100, r = Number(e[2]) / 100, s = .5 >= r ? r * (n + 1) : r + n - r * n, t = 2 * r - s, e.length > 3 && (e[3] = Number(e[3])), e[0] = re(o + 1 / 3, t, s), e[1] = re(o, t, s), e[2] = re(o - 1 / 3, t, s), e) : (e = e.match(b) || ne.transparent, e[0] = Number(e[0]), e[1] = Number(e[1]), e[2] = Number(e[2]), e.length > 3 && (e[3] = Number(e[3])), e)) : ne.black
                    },
                    ae = "(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#.+?\\b";
                for (a in ne) ae += "|" + a + "\\b";
                ae = new RegExp(ae + ")", "gi");
                var de = function(e, t, s, i) {
                        if (null == e) return function(e) {
                            return e
                        };
                        var o, n = t ? (e.match(ae) || [""])[0] : "",
                            r = e.split(n).join("").match(p) || [],
                            l = e.substr(0, e.indexOf(r[0])),
                            a = ")" === e.charAt(e.length - 1) ? ")" : "",
                            d = -1 !== e.indexOf(" ") ? " " : ",",
                            u = r.length,
                            h = u > 0 ? r[0].replace(b, "") : "";
                        return u ? o = t ? function(e) {
                            var t, c, _, f;
                            if ("number" == typeof e) e += h;
                            else if (i && F.test(e)) {
                                for (f = e.replace(F, "|").split("|"),
                                    _ = 0; _ < f.length; _++) f[_] = o(f[_]);
                                return f.join(",")
                            }
                            if (t = (e.match(ae) || [n])[0], c = e.split(t).join("").match(p) || [], _ = c.length, u > _--)
                                for (; ++_ < u;) c[_] = s ? c[(_ - 1) / 2 | 0] : r[_];
                            return l + c.join(d) + d + t + a + (-1 !== e.indexOf("inset") ? " inset" : "")
                        } : function(e) {
                            var t, n, c;
                            if ("number" == typeof e) e += h;
                            else if (i && F.test(e)) {
                                for (n = e.replace(F, "|").split("|"), c = 0; c < n.length; c++) n[c] = o(n[c]);
                                return n.join(",")
                            }
                            if (t = e.match(p) || [], c = t.length, u > c--)
                                for (; ++c < u;) t[c] = s ? t[(c - 1) / 2 | 0] : r[c];
                            return l + t.join(d) + a
                        } : function(e) {
                            return e
                        }
                    },
                    ue = function(e) {
                        return e = e.split(","),
                            function(t, s, i, o, n, r, l) {
                                var a, d = (s + "").split(" ");
                                for (l = {}, a = 0; 4 > a; a++) l[e[a]] = d[a] = d[a] || d[(a - 1) / 2 >> 0];
                                return o.parse(t, l, n, r)
                            }
                    },
                    he = (A._setPluginRatio = function(e) {
                        this.plugin.setRatio(e);
                        for (var t, s, i, o, n = this.data, r = n.proxy, l = n.firstMPT, a = 1e-6; l;) t = r[l.v], l.r ? t = t > 0 ? t + .5 | 0 : t - .5 | 0 : a > t && t > -a && (t = 0), l.t[l.p] = t, l = l._next;
                        if (n.autoRotate && (n.autoRotate.rotation = r.rotation), 1 === e)
                            for (l = n.firstMPT; l;) {
                                if (s = l.t, s.type) {
                                    if (1 === s.type) {
                                        for (o = s.xs0 + s.s + s.xs1, i = 1; i < s.l; i++) o += s["xn" + i] + s["xs" + (i + 1)];
                                        s.e = o
                                    }
                                } else s.e = s.s + s.xs0;
                                l = l._next
                            }
                    }, function(e, t, s, i, o) {
                        this.t = e, this.p = t, this.v = s, this.r = o, i && (i._prev = this, this._next = i)
                    }),
                    ce = (A._parseToProxy = function(e, t, s, i, o, n) {
                        var r, l, a, d, u, h = i,
                            c = {},
                            _ = {},
                            f = s._transform,
                            b = x;
                        for (s._transform = null, x = t, i = u = s.parse(e, t, i, o), x = b, n && (s._transform = f, h && (h._prev = null, h._prev && (h._prev._next = null))); i && i !== h;) {
                            if (i.type <= 1 && (l = i.p, _[l] = i.s + i.c, c[l] = i.s, n || (d = new he(i, "s", l, d, i.r), i.c = 0), 1 === i.type))
                                for (r = i.l; --r > 0;) a = "xn" + r, l = i.p + "_" + a, _[l] = i.data[a], c[l] = i[a], n || (d = new he(i, a, l, d, i.rxp[a]));
                            i = i._next
                        }
                        return {
                            proxy: c,
                            end: _,
                            firstMPT: d,
                            pt: u
                        }
                    }, A.CSSPropTween = function(e, t, i, o, r, l, a, d, u, h, c) {
                        this.t = e, this.p = t, this.s = i, this.c = o, this.n = a || "css_" + t, e instanceof ce || n.push(this.n), this.r = d, this.type = l || 0, u && (this.pr = u, s = !0), this.b = void 0 === h ? i : h, this.e = void 0 === c ? i + o : c, r && (this._next = r, r._prev = this)
                    }),
                    _e = r.parseComplex = function(e, t, s, i, o, n, r, l, a, u) {
                        s = s || n || "", r = new ce(e, t, 0, 0, r, u ? 2 : 1, null, !1, l, s, i), i += "";
                        var h, c, _, f, p, v, g, S, w, y, D, L, B = s.split(", ").join(",").split(" "),
                            P = i.split(", ").join(",").split(" "),
                            O = B.length,
                            E = d !== !1;
                        for ((-1 !== i.indexOf(",") || -1 !== s.indexOf(",")) && (B = B.join(" ").replace(F, ", ").split(" "), P = P.join(" ").replace(F, ", ").split(" "), O = B.length), O !== P.length && (B = (n || "").split(" "), O = B.length), r.plugin = a, r.setRatio = u, h = 0; O > h; h++)
                            if (f = B[h], p = P[h], S = parseFloat(f), S || 0 === S) r.appendXtra("", S, se(p, S), p.replace(m, ""), E && -1 !== p.indexOf("px"), !0);
                            else if (o && ("#" === f.charAt(0) || ne[f] || T.test(f))) L = "," === p.charAt(p.length - 1) ? ")," : ")", f = le(f), p = le(p), w = f.length + p.length > 6, w && !U && 0 === p[3] ? (r["xs" + r.l] += r.l ? " transparent" : "transparent", r.e = r.e.split(P[h]).join("transparent")) : (U || (w = !1), r.appendXtra(w ? "rgba(" : "rgb(", f[0], p[0] - f[0], ",", !0, !0).appendXtra("", f[1], p[1] - f[1], ",", !0).appendXtra("", f[2], p[2] - f[2], w ? "," : L, !0), w && (f = f.length < 4 ? 1 : f[3], r.appendXtra("", f, (p.length < 4 ? 1 : p[3]) - f, L, !1)));
                        else if (v = f.match(b)) {
                            if (g = p.match(m), !g || g.length !== v.length) return r;
                            for (_ = 0, c = 0; c < v.length; c++) D = v[c], y = f.indexOf(D, _), r.appendXtra(f.substr(_, y - _), Number(D), se(g[c], D), "", E && "px" === f.substr(y + D.length, 2), 0 === c), _ = y + D.length;
                            r["xs" + r.l] += f.substr(_)
                        } else r["xs" + r.l] += r.l ? " " + f : f;
                        if (-1 !== i.indexOf("=") && r.data) {
                            for (L = r.xs0 + r.data.s, h = 1; h < r.l; h++) L += r["xs" + h] + r.data["xn" + h];
                            r.e = L + r["xs" + h]
                        }
                        return r.l || (r.type = -1, r.xs0 = r.e), r.xfirst || r
                    },
                    fe = 9;
                for (a = ce.prototype, a.l = a.pr = 0; --fe > 0;) a["xn" + fe] = 0, a["xs" + fe] = "";
                a.xs0 = "", a._next = a._prev = a.xfirst = a.data = a.plugin = a.setRatio = a.rxp = null, a.appendXtra = function(e, t, s, i, o, n) {
                    var r = this,
                        l = r.l;
                    return r["xs" + l] += n && l ? " " + e : e || "", s || 0 === l || r.plugin ? (r.l++, r.type = r.setRatio ? 2 : 1, r["xs" + r.l] = i || "", l > 0 ? (r.data["xn" + l] = t + s, r.rxp["xn" + l] = o, r["xn" + l] = t, r.plugin || (r.xfirst = new ce(r, "xn" + l, t, s, r.xfirst || r, 0, r.n, o, r.pr), r.xfirst.xs0 = 0), r) : (r.data = {
                        s: t + s
                    }, r.rxp = {}, r.s = t, r.c = s, r.r = o, r)) : (r["xs" + l] += t + (i || ""), r)
                };
                var be = function(e, t) {
                        t = t || {}, this.p = t.prefix ? X(e) || e : e, l[e] = l[this.p] = this, this.format = t.formatter || de(t.defaultValue, t.color, t.collapsible, t.multi), t.parser && (this.parse = t.parser), this.clrs = t.color, this.multi = t.multi, this.keyword = t.keyword, this.dflt = t.defaultValue, this.pr = t.priority || 0
                    },
                    me = A._registerComplexSpecialProp = function(e, t, s) {
                        "object" != typeof t && (t = {
                            parser: s
                        });
                        var i, o, n = e.split(","),
                            r = t.defaultValue;
                        for (s = s || [r], i = 0; i < n.length; i++) t.prefix = 0 === i && t.prefix, t.defaultValue = s[i] || r, o = new be(n[i], t)
                    },
                    pe = function(e) {
                        if (!l[e]) {
                            var t = e.charAt(0).toUpperCase() + e.substr(1) + "Plugin";
                            me(e, {
                                parser: function(e, s, i, o, n, r, a) {
                                    var d = (window.GreenSockGlobals || window).com.greensock.plugins[t];
                                    return d ? (d._cssRegister(), l[i].parse(e, s, i, o, n, r, a)) : (N("Error: " + t + " js file not loaded."), n)
                                }
                            })
                        }
                    };
                a = be.prototype, a.parseComplex = function(e, t, s, i, o, n) {
                    var r, l, a, d, u, h, c = this.keyword;
                    if (this.multi && (F.test(s) || F.test(t) ? (l = t.replace(F, "|").split("|"), a = s.replace(F, "|").split("|")) : c && (l = [t], a = [s])), a) {
                        for (d = a.length > l.length ? a.length : l.length, r = 0; d > r; r++) t = l[r] = l[r] || this.dflt, s = a[r] = a[r] || this.dflt, c && (u = t.indexOf(c), h = s.indexOf(c), u !== h && (s = -1 === h ? a : l, s[r] += " " + c));
                        t = l.join(", "), s = a.join(", ")
                    }
                    return _e(e, this.p, t, s, this.clrs, this.dflt, i, this.pr, o, n)
                }, a.parse = function(e, t, s, i, n, r, l) {
                    return this.parseComplex(e.style, this.format(K(e, this.p, o, !1, this.dflt)), this.format(t), n, r)
                }, r.registerSpecialProp = function(e, t, s) {
                    me(e, {
                        parser: function(e, i, o, n, r, l, a) {
                            var d = new ce(e, o, 0, 0, r, 2, o, !1, s);
                            return d.plugin = l, d.setRatio = t(e, i, n._tween, o), d
                        },
                        priority: s
                    })
                };
                var ve = "scaleX,scaleY,scaleZ,x,y,z,skewX,rotation,rotationX,rotationY,perspective".split(","),
                    ge = X("transform"),
                    Se = j + "transform",
                    we = X("transformOrigin"),
                    ye = null !== X("perspective"),
                    Te = function(e, t, s) {
                        var i, o, n, l, a, d, u, h, c, _, f, b, m, p = s ? e._gsTransform || {
                                skewY: 0
                            } : {
                                skewY: 0
                            },
                            v = p.scaleX < 0,
                            g = 2e-5,
                            S = 1e5,
                            w = -Math.PI + 1e-4,
                            y = Math.PI - 1e-4,
                            T = ye ? parseFloat(K(e, we, t, !1, "0 0 0").split(" ")[2]) || p.zOrigin || 0 : 0;
                        if (ge) i = K(e, Se, t, !0);
                        else if (e.currentStyle)
                            if (i = e.currentStyle.filter.match(E), i && 4 === i.length) i = [i[0].substr(4), Number(i[2].substr(4)), Number(i[1].substr(4)), i[3].substr(4), p.x || 0, p.y || 0].join(",");
                            else {
                                if (null != p.x) return p;
                                i = ""
                            }
                        for (o = (i || "").match(/(?:\-|\b)[\d\-\.e]+\b/gi) || [], n = o.length; --n > -1;) l = Number(o[n]), o[n] = (a = l - (l |= 0)) ? (a * S + (0 > a ? -.5 : .5) | 0) / S + l : l;
                        if (16 === o.length) {
                            var D = o[8],
                                L = o[9],
                                B = o[10],
                                P = o[12],
                                O = o[13],
                                R = o[14];
                            if (p.zOrigin && (R = -p.zOrigin, P = D * R - o[12], O = L * R - o[13], R = B * R + p.zOrigin - o[14]), !s || null == p.rotationX) {
                                var F, M, W, x, H, k, C, A = o[0],
                                    I = o[1],
                                    U = o[2],
                                    V = o[3],
                                    N = o[4],
                                    j = o[5],
                                    z = o[6],
                                    X = o[7],
                                    Y = o[11],
                                    G = p.rotationX = Math.atan2(z, B),
                                    q = w > G || G > y;
                                G && (x = Math.cos(-G), H = Math.sin(-G), F = N * x + D * H, M = j * x + L * H, W = z * x + B * H, D = N * -H + D * x, L = j * -H + L * x, B = z * -H + B * x, Y = X * -H + Y * x, N = F, j = M, z = W), G = p.rotationY = Math.atan2(D, A), G && (k = w > G || G > y, x = Math.cos(-G), H = Math.sin(-G), F = A * x - D * H, M = I * x - L * H, W = U * x - B * H, L = I * H + L * x, B = U * H + B * x, Y = V * H + Y * x, A = F, I = M, U = W), G = p.rotation = Math.atan2(I, j), G && (C = w > G || G > y, x = Math.cos(-G), H = Math.sin(-G), A = A * x + N * H, M = I * x + j * H, j = I * -H + j * x, z = U * -H + z * x, I = M), C && q ? p.rotation = p.rotationX = 0 : C && k ? p.rotation = p.rotationY = 0 : k && q && (p.rotationY = p.rotationX = 0), p.scaleX = (Math.sqrt(A * A + I * I) * S + .5 | 0) / S, p.scaleY = (Math.sqrt(j * j + L * L) * S + .5 | 0) / S, p.scaleZ = (Math.sqrt(z * z + B * B) * S + .5 | 0) / S, p.skewX = 0, p.perspective = Y ? 1 / (0 > Y ? -Y : Y) : 0, p.x = P, p.y = O, p.z = R
                            }
                        } else if (!(ye && 0 !== o.length && p.x === o[4] && p.y === o[5] && (p.rotationX || p.rotationY) || void 0 !== p.x && "none" === K(e, "display", t))) {
                            var Z = o.length >= 6,
                                Q = Z ? o[0] : 1,
                                $ = o[1] || 0,
                                J = o[2] || 0,
                                ee = Z ? o[3] : 1;
                            p.x = o[4] || 0, p.y = o[5] || 0, d = Math.sqrt(Q * Q + $ * $), u = Math.sqrt(ee * ee + J * J), h = Q || $ ? Math.atan2($, Q) : p.rotation || 0, c = J || ee ? Math.atan2(J, ee) + h : p.skewX || 0, _ = d - Math.abs(p.scaleX || 0), f = u - Math.abs(p.scaleY || 0), Math.abs(c) > Math.PI / 2 && Math.abs(c) < 1.5 * Math.PI && (v ? (d *= -1, c += 0 >= h ? Math.PI : -Math.PI, h += 0 >= h ? Math.PI : -Math.PI) : (u *= -1, c += 0 >= c ? Math.PI : -Math.PI)), b = (h - p.rotation) % Math.PI, m = (c - p.skewX) % Math.PI, (void 0 === p.skewX || _ > g || -g > _ || f > g || -g > f || b > w && y > b && b * S | !1 || m > w && y > m && m * S | !1) && (p.scaleX = d, p.scaleY = u, p.rotation = h, p.skewX = c), ye && (p.rotationX = p.rotationY = p.z = 0, p.perspective = parseFloat(r.defaultTransformPerspective) || 0, p.scaleZ = 1)
                        }
                        p.zOrigin = T;
                        for (n in p) p[n] < g && p[n] > -g && (p[n] = 0);
                        return s && (e._gsTransform = p), p
                    },
                    De = function(e) {
                        var t, s, i = this.data,
                            o = -i.rotation,
                            n = o + i.skewX,
                            r = 1e5,
                            l = (Math.cos(o) * i.scaleX * r | 0) / r,
                            a = (Math.sin(o) * i.scaleX * r | 0) / r,
                            d = (Math.sin(n) * -i.scaleY * r | 0) / r,
                            u = (Math.cos(n) * i.scaleY * r | 0) / r,
                            h = this.t.style,
                            c = this.t.currentStyle;
                        if (c) {
                            s = a, a = -d, d = -s, t = c.filter, h.filter = "";
                            var _, b, m = this.t.offsetWidth,
                                p = this.t.offsetHeight,
                                v = "absolute" !== c.position,
                                w = "progid:DXImageTransform.Microsoft.Matrix(M11=" + l + ", M12=" + a + ", M21=" + d + ", M22=" + u,
                                y = i.x,
                                T = i.y;
                            if (null != i.ox && (_ = (i.oxp ? m * i.ox * .01 : i.ox) - m / 2, b = (i.oyp ? p * i.oy * .01 : i.oy) - p / 2, y += _ - (_ * l + b * a), T += b - (_ * d + b * u)), v) _ = m / 2, b = p / 2, w += ", Dx=" + (_ - (_ * l + b * a) + y) + ", Dy=" + (b - (_ * d + b * u) + T) + ")";
                            else {
                                var D, L, B, P = 8 > f ? 1 : -1;
                                for (_ = i.ieOffsetX || 0, b = i.ieOffsetY || 0, i.ieOffsetX = Math.round((m - ((0 > l ? -l : l) * m + (0 > a ? -a : a) * p)) / 2 + y), i.ieOffsetY = Math.round((p - ((0 > u ? -u : u) * p + (0 > d ? -d : d) * m)) / 2 + T), fe = 0; 4 > fe; fe++) L = J[fe], D = c[L], s = -1 !== D.indexOf("px") ? parseFloat(D) : G(this.t, L, parseFloat(D), D.replace(g, "")) || 0, B = s !== i[L] ? 2 > fe ? -i.ieOffsetX : -i.ieOffsetY : 2 > fe ? _ - i.ieOffsetX : b - i.ieOffsetY, h[L] = (i[L] = Math.round(s - B * (0 === fe || 2 === fe ? 1 : P))) + "px";
                                w += ", sizingMethod='auto expand')"
                            } - 1 !== t.indexOf("DXImageTransform.Microsoft.Matrix(") ? h.filter = t.replace(R, w) : h.filter = w + " " + t, (0 === e || 1 === e) && 1 === l && 0 === a && 0 === d && 1 === u && (v && -1 === w.indexOf("Dx=0, Dy=0") || S.test(t) && 100 !== parseFloat(RegExp.$1) || -1 === t.indexOf("gradient(") && h.removeAttribute("filter"))
                        }
                    },
                    Le = function(e) {
                        var t, s, i, o, n, r, l, a, d, u = this.data,
                            h = this.t.style,
                            _ = u.perspective,
                            f = u.scaleX,
                            b = 0,
                            m = 0,
                            p = 0,
                            v = 0,
                            g = u.scaleY,
                            S = 0,
                            w = 0,
                            y = 0,
                            T = 0,
                            D = u.scaleZ,
                            L = 0,
                            B = 0,
                            P = 0,
                            O = _ ? -1 / _ : 0,
                            E = u.rotation,
                            R = u.zOrigin,
                            F = 1e5;
                        c && (l = h.top ? "top" : h.bottom ? "bottom" : parseFloat(K(this.t, "top", null, !1)) ? "bottom" : "top", i = K(this.t, l, null, !1), a = parseFloat(i) || 0, d = i.substr((a + "").length) || "px", u._ffFix = !u._ffFix, h[l] = (u._ffFix ? a + .05 : a - .05) + d), (E || u.skewX) && (i = f * Math.cos(E), o = g * Math.sin(E), E -= u.skewX, b = f * -Math.sin(E), g *= Math.cos(E), f = i, v = o), E = u.rotationY, E && (t = Math.cos(E), s = Math.sin(E), i = f * t, o = v * t, n = D * -s, r = O * -s, m = f * s, S = v * s, D *= t, O *= t, f = i, v = o, y = n, B = r), E = u.rotationX, E && (t = Math.cos(E), s = Math.sin(E), i = b * t + m * s, o = g * t + S * s, n = T * t + D * s, r = P * t + O * s, m = b * -s + m * t, S = g * -s + S * t, D = T * -s + D * t, O = P * -s + O * t, b = i, g = o, T = n, P = r), R && (L -= R, p = m * L, w = S * L, L = D * L + R), p = (i = (p += u.x) - (p |= 0)) ? (i * F + (0 > i ? -.5 : .5) | 0) / F + p : p, w = (i = (w += u.y) - (w |= 0)) ? (i * F + (0 > i ? -.5 : .5) | 0) / F + w : w, L = (i = (L += u.z) - (L |= 0)) ? (i * F + (0 > i ? -.5 : .5) | 0) / F + L : L, h[ge] = "matrix3d(" + [(f * F | 0) / F, (v * F | 0) / F, (y * F | 0) / F, (B * F | 0) / F, (b * F | 0) / F, (g * F | 0) / F, (T * F | 0) / F, (P * F | 0) / F, (m * F | 0) / F, (S * F | 0) / F, (D * F | 0) / F, (O * F | 0) / F, p, w, L, _ ? 1 + -L / _ : 1].join(",") + ")"
                    },
                    Be = function(e) {
                        var t, s, i, o, n, r, l, a, d, u = this.data,
                            h = this.t,
                            _ = h.style;
                        c && (t = _.top ? "top" : _.bottom ? "bottom" : parseFloat(K(h, "top", null, !1)) ? "bottom" : "top", s = K(h, t, null, !1), i = parseFloat(s) || 0, o = s.substr((i + "").length) || "px", u._ffFix = !u._ffFix, _[t] = (u._ffFix ? i + .05 : i - .05) + o), u.rotation || u.skewX ? (n = u.rotation, r = n - u.skewX, l = 1e5, a = u.scaleX * l, d = u.scaleY * l, _[ge] = "matrix(" + (Math.cos(n) * a | 0) / l + "," + (Math.sin(n) * a | 0) / l + "," + (Math.sin(r) * -d | 0) / l + "," + (Math.cos(r) * d | 0) / l + "," + u.x + "," + u.y + ")") : _[ge] = "matrix(" + u.scaleX + ",0,0," + u.scaleY + "," + u.x + "," + u.y + ")"
                    };
                me("transform,scale,scaleX,scaleY,scaleZ,x,y,z,rotation,rotationX,rotationY,rotationZ,skewX,skewY,shortRotation,shortRotationX,shortRotationY,shortRotationZ,transformOrigin,transformPerspective,directionalRotation", {
                    parser: function(e, t, s, i, n, r, l) {
                        if (i._transform) return n;
                        var a, d, u, h, c, _, f, b = i._transform = Te(e, o, !0),
                            m = e.style,
                            p = 1e-6,
                            v = ve.length,
                            g = l,
                            S = {};
                        if ("string" == typeof g.transform && ge) u = m.cssText, m[ge] = g.transform, m.display = "block", a = Te(e, null, !1), m.cssText = u;
                        else if ("object" == typeof g) {
                            if (a = {
                                    scaleX: ie(null != g.scaleX ? g.scaleX : g.scale, b.scaleX),
                                    scaleY: ie(null != g.scaleY ? g.scaleY : g.scale, b.scaleY),
                                    scaleZ: ie(null != g.scaleZ ? g.scaleZ : g.scale, b.scaleZ),
                                    x: ie(g.x, b.x),
                                    y: ie(g.y, b.y),
                                    z: ie(g.z, b.z),
                                    perspective: ie(g.transformPerspective, b.perspective)
                                }, f = g.directionalRotation, null != f)
                                if ("object" == typeof f)
                                    for (u in f) g[u] = f[u];
                                else g.rotation = f;
                            a.rotation = oe("rotation" in g ? g.rotation : "shortRotation" in g ? g.shortRotation + "_short" : "rotationZ" in g ? g.rotationZ : b.rotation * W, b.rotation, "rotation", S), ye && (a.rotationX = oe("rotationX" in g ? g.rotationX : "shortRotationX" in g ? g.shortRotationX + "_short" : b.rotationX * W || 0, b.rotationX, "rotationX", S), a.rotationY = oe("rotationY" in g ? g.rotationY : "shortRotationY" in g ? g.shortRotationY + "_short" : b.rotationY * W || 0, b.rotationY, "rotationY", S)), a.skewX = null == g.skewX ? b.skewX : oe(g.skewX, b.skewX), a.skewY = null == g.skewY ? b.skewY : oe(g.skewY, b.skewY), (d = a.skewY - b.skewY) && (a.skewX += d, a.rotation += d)
                        }
                        for (c = b.z || b.rotationX || b.rotationY || a.z || a.rotationX || a.rotationY || a.perspective, c || null == g.scale || (a.scaleZ = 1); --v > -1;) s = ve[v], h = a[s] - b[s], (h > p || -p > h || null != x[s]) && (_ = !0, n = new ce(b, s, b[s], h, n), s in S && (n.e = S[s]), n.xs0 = 0, n.plugin = r, i._overwriteProps.push(n.n));
                        return h = g.transformOrigin, (h || ye && c && b.zOrigin) && (ge ? (_ = !0, h = (h || K(e, s, o, !1, "50% 50%")) + "", s = we, n = new ce(m, s, 0, 0, n, -1, "css_transformOrigin"), n.b = m[s], n.plugin = r, ye ? (u = b.zOrigin, h = h.split(" "), b.zOrigin = (h.length > 2 ? parseFloat(h[2]) : u) || 0, n.xs0 = n.e = m[s] = h[0] + " " + (h[1] || "50%") + " 0px", n = new ce(b, "zOrigin", 0, 0, n, -1, n.n), n.b = u, n.xs0 = n.e = b.zOrigin) : n.xs0 = n.e = m[s] = h) : te(h + "", b)), _ && (i._transformType = c || 3 === this._transformType ? 3 : 2), n
                    },
                    prefix: !0
                }), me("boxShadow", {
                    defaultValue: "0px 0px 0px 0px #999",
                    prefix: !0,
                    color: !0,
                    multi: !0,
                    keyword: "inset"
                }), me("borderRadius", {
                    defaultValue: "0px",
                    parser: function(e, t, s, n, r, l) {
                        t = this.format(t);
                        var a, d, u, h, c, _, f, b, m, p, v, g, S, w, y, T, D = ["borderTopLeftRadius", "borderTopRightRadius", "borderBottomRightRadius", "borderBottomLeftRadius"],
                            L = e.style;
                        for (m = parseFloat(e.offsetWidth), p = parseFloat(e.offsetHeight), a = t.split(" "), d = 0; d < D.length; d++) this.p.indexOf("border") && (D[d] = X(D[d])), c = h = K(e, D[d], o, !1, "0px"), -1 !== c.indexOf(" ") && (h = c.split(" "), c = h[0], h = h[1]), _ = u = a[d], f = parseFloat(c), g = c.substr((f + "").length), S = "=" === _.charAt(1), S ? (b = parseInt(_.charAt(0) + "1", 10), _ = _.substr(2), b *= parseFloat(_), v = _.substr((b + "").length - (0 > b ? 1 : 0)) || "") : (b = parseFloat(_), v = _.substr((b + "").length)), "" === v && (v = i[s] || g), v !== g && (w = G(e, "borderLeft", f, g), y = G(e, "borderTop", f, g), "%" === v ? (c = w / m * 100 + "%", h = y / p * 100 + "%") : "em" === v ? (T = G(e, "borderLeft", 1, "em"), c = w / T + "em", h = y / T + "em") : (c = w + "px", h = y + "px"), S && (_ = parseFloat(c) + b + v, u = parseFloat(h) + b + v)), r = _e(L, D[d], c + " " + h, _ + " " + u, !1, "0px", r);
                        return r
                    },
                    prefix: !0,
                    formatter: de("0px 0px 0px 0px", !1, !0)
                }), me("backgroundPosition", {
                    defaultValue: "0 0",
                    parser: function(e, t, s, i, n, r) {
                        var l, a, d, u, h, c, _ = "background-position",
                            b = o || Y(e, null),
                            m = this.format((b ? f ? b.getPropertyValue(_ + "-x") + " " + b.getPropertyValue(_ + "-y") : b.getPropertyValue(_) : e.currentStyle.backgroundPositionX + " " + e.currentStyle.backgroundPositionY) || "0 0"),
                            p = this.format(t);
                        if (-1 !== m.indexOf("%") != (-1 !== p.indexOf("%")) && (c = K(e, "backgroundImage").replace(B, ""), c && "none" !== c)) {
                            for (l = m.split(" "), a = p.split(" "), C.setAttribute("src", c), d = 2; --d > -1;) m = l[d], u = -1 !== m.indexOf("%"), u !== (-1 !== a[d].indexOf("%")) && (h = 0 === d ? e.offsetWidth - C.width : e.offsetHeight - C.height, l[d] = u ? parseFloat(m) / 100 * h + "px" : parseFloat(m) / h * 100 + "%");
                            m = l.join(" ")
                        }
                        return this.parseComplex(e.style, m, p, n, r)
                    },
                    formatter: te
                }), me("backgroundSize", {
                    defaultValue: "0 0",
                    formatter: te
                }), me("perspective", {
                    defaultValue: "0px",
                    prefix: !0
                }), me("perspectiveOrigin", {
                    defaultValue: "50% 50%",
                    prefix: !0
                }), me("transformStyle", {
                    prefix: !0
                }), me("backfaceVisibility", {
                    prefix: !0
                }), me("margin", {
                    parser: ue("marginTop,marginRight,marginBottom,marginLeft")
                }), me("padding", {
                    parser: ue("paddingTop,paddingRight,paddingBottom,paddingLeft")
                }), me("clip", {
                    defaultValue: "rect(0px,0px,0px,0px)",
                    parser: function(e, t, s, i, n, r) {
                        var l, a, d;
                        return 9 > f ? (a = e.currentStyle, d = 8 > f ? " " : ",", l = "rect(" + a.clipTop + d + a.clipRight + d + a.clipBottom + d + a.clipLeft + ")", t = this.format(t).split(",").join(d)) : (l = this.format(K(e, this.p, o, !1, this.dflt)), t = this.format(t)), this.parseComplex(e.style, l, t, n, r)
                    }
                }), me("textShadow", {
                    defaultValue: "0px 0px 0px #999",
                    color: !0,
                    multi: !0
                }), me("autoRound,strictUnits", {
                    parser: function(e, t, s, i, o) {
                        return o
                    }
                }), me("border", {
                    defaultValue: "0px solid #000",
                    parser: function(e, t, s, i, n, r) {
                        return this.parseComplex(e.style, this.format(K(e, "borderTopWidth", o, !1, "0px") + " " + K(e, "borderTopStyle", o, !1, "solid") + " " + K(e, "borderTopColor", o, !1, "#000")), this.format(t), n, r)
                    },
                    color: !0,
                    formatter: function(e) {
                        var t = e.split(" ");
                        return t[0] + " " + (t[1] || "solid") + " " + (e.match(ae) || ["#000"])[0]
                    }
                }), me("float,cssFloat,styleFloat", {
                    parser: function(e, t, s, i, o, n) {
                        var r = e.style,
                            l = "cssFloat" in r ? "cssFloat" : "styleFloat";
                        return new ce(r, l, 0, 0, o, -1, s, !1, 0, r[l], t)
                    }
                });
                var Pe = function(e) {
                    var t, s = this.t,
                        i = s.filter,
                        o = this.s + this.c * e | 0;
                    100 === o && (-1 === i.indexOf("atrix(") && -1 === i.indexOf("radient(") ? (s.removeAttribute("filter"), t = !K(this.data, "filter")) : (s.filter = i.replace(y, ""), t = !0)), t || (this.xn1 && (s.filter = i = i || "alpha(opacity=100)"), -1 === i.indexOf("opacity") ? s.filter += " alpha(opacity=" + o + ")" : s.filter = i.replace(S, "opacity=" + o))
                };
                me("opacity,alpha,autoAlpha", {
                    defaultValue: "1",
                    parser: function(e, t, s, i, n, r) {
                        var l, a = parseFloat(K(e, "opacity", o, !1, "1")),
                            d = e.style;
                        return t = parseFloat(t), "autoAlpha" === s && (l = K(e, "visibility", o), 1 === a && "hidden" === l && 0 !== t && (a = 0), n = new ce(d, "visibility", 0, 0, n, -1, null, !1, 0, 0 !== a ? "visible" : "hidden", 0 === t ? "hidden" : "visible"), n.xs0 = "visible", i._overwriteProps.push(n.n)), U ? n = new ce(d, "opacity", a, t - a, n) : (n = new ce(d, "opacity", 100 * a, 100 * (t - a), n), n.xn1 = "autoAlpha" === s ? 1 : 0, d.zoom = 1, n.type = 2, n.b = "alpha(opacity=" + n.s + ")", n.e = "alpha(opacity=" + (n.s + n.c) + ")", n.data = e, n.plugin = r, n.setRatio = Pe), n
                    }
                });
                var Oe = function(e, t) {
                        t && (e.removeProperty ? e.removeProperty(t.replace(D, "-$1").toLowerCase()) : e.removeAttribute(t))
                    },
                    Ee = function(e) {
                        if (this.t._gsClassPT = this, 1 === e || 0 === e) {
                            this.t.className = 0 === e ? this.b : this.e;
                            for (var t = this.data, s = this.t.style; t;) t.v ? s[t.p] = t.v : Oe(s, t.p), t = t._next;
                            1 === e && this.t._gsClassPT === this && (this.t._gsClassPT = null)
                        } else this.t.className !== this.e && (this.t.className = this.e)
                    };
                me("className", {
                    parser: function(e, t, i, n, r, l, a) {
                        var d, u, h, c, _, f = e.className,
                            b = e.style.cssText;
                        if (r = n._classNamePT = new ce(e, i, 0, 0, r, 2), r.setRatio = Ee, r.pr = -11, s = !0, r.b = f, u = Z(e, o), h = e._gsClassPT) {
                            for (c = {}, _ = h.data; _;) c[_.p] = 1, _ = _._next;
                            h.setRatio(1)
                        }
                        return e._gsClassPT = r, r.e = "=" !== t.charAt(1) ? t : f.replace(new RegExp("\\s*\\b" + t.substr(2) + "\\b"), "") + ("+" === t.charAt(0) ? " " + t.substr(2) : ""), n._tween._duration && (e.className = r.e, d = Q(e, u, Z(e), a, c), e.className = f, r.data = d.firstMPT, e.style.cssText = b, r = r.xfirst = n.parse(e, d.difs, r, l)), r
                    }
                });
                var Re = function(e) {
                    if ((1 === e || 0 === e) && this.data._totalTime === this.data._totalDuration)
                        for (var t, s = "all" === this.e, i = this.t.style, o = s ? i.cssText.split(";") : this.e.split(","), n = o.length, r = l.transform.parse; --n > -1;) t = o[n], s && (t = t.substr(0, t.indexOf(":")).split(" ").join("")), l[t] && (t = l[t].parse === r ? ge : l[t].p), Oe(i, t)
                };
                for (me("clearProps", {
                        parser: function(e, t, i, o, n) {
                            return n = new ce(e, i, 0, 0, n, 2), n.setRatio = Re, n.e = t, n.pr = -10, n.data = o._tween, s = !0, n
                        }
                    }), a = "bezier,throwProps,physicsProps,physics2D".split(","), fe = a.length; fe--;) pe(a[fe]);
                a = r.prototype, a._firstPT = null, a._onInitTween = function(e, t, l) {
                    if (!e.nodeType) return !1;
                    this._target = e, this._tween = l, this._vars = t, d = t.autoRound, s = !1, i = t.suffixMap || r.suffixMap, o = Y(e, ""), n = this._overwriteProps;
                    var a, c, f, b, m, p, v, g, S, y = e.style;
                    if (u && "" === y.zIndex && (a = K(e, "zIndex", o), ("auto" === a || "" === a) && (y.zIndex = 0)), "string" == typeof t && (b = y.cssText, a = Z(e, o), y.cssText = b + ";" + t, a = Q(e, a, Z(e)).difs, !U && w.test(t) && (a.opacity = parseFloat(RegExp.$1)), t = a, y.cssText = b), this._firstPT = c = this.parse(e, t, null), this._transformType) {
                        for (S = 3 === this._transformType, ge ? h && (u = !0, "" === y.zIndex && (v = K(e, "zIndex", o), ("auto" === v || "" === v) && (y.zIndex = 0)), _ && (y.WebkitBackfaceVisibility = this._vars.WebkitBackfaceVisibility || (S ? "visible" : "hidden"))) : y.zoom = 1, f = c; f && f._next;) f = f._next;
                        g = new ce(e, "transform", 0, 0, null, 2), this._linkCSSP(g, null, f), g.setRatio = S && ye ? Le : ge ? Be : De, g.data = this._transform || Te(e, o, !0), n.pop()
                    }
                    if (s) {
                        for (; c;) {
                            for (p = c._next, f = b; f && f.pr > c.pr;) f = f._next;
                            (c._prev = f ? f._prev : m) ? c._prev._next = c: b = c, (c._next = f) ? f._prev = c : m = c, c = p
                        }
                        this._firstPT = b
                    }
                    return !0
                }, a.parse = function(e, t, s, n) {
                    var r, a, u, h, c, _, f, b, m, p, v = e.style;
                    for (r in t) _ = t[r], a = l[r], a ? s = a.parse(e, _, r, this, s, n, t) : (c = K(e, r, o) + "", m = "string" == typeof _, "color" === r || "fill" === r || "stroke" === r || -1 !== r.indexOf("Color") || m && T.test(_) ? (m || (_ = le(_), _ = (_.length > 3 ? "rgba(" : "rgb(") + _.join(",") + ")"), s = _e(v, r, c, _, !0, "transparent", s, 0, n)) : !m || -1 === _.indexOf(" ") && -1 === _.indexOf(",") ? (u = parseFloat(c), f = u || 0 === u ? c.substr((u + "").length) : "", ("" === c || "auto" === c) && ("width" === r || "height" === r ? (u = ee(e, r, o), f = "px") : "left" === r || "top" === r ? (u = q(e, r, o), f = "px") : (u = "opacity" !== r ? 0 : 1, f = "")), p = m && "=" === _.charAt(1), p ? (h = parseInt(_.charAt(0) + "1", 10), _ = _.substr(2), h *= parseFloat(_), b = _.replace(g, "")) : (h = parseFloat(_), b = m ? _.substr((h + "").length) || "" : ""), "" === b && (b = i[r] || f), _ = h || 0 === h ? (p ? h + u : h) + b : t[r], f !== b && "" !== b && (h || 0 === h) && (u || 0 === u) && (u = G(e, r, u, f), "%" === b ? (u /= G(e, r, 100, "%") / 100, u > 100 && (u = 100), t.strictUnits !== !0 && (c = u + "%")) : "em" === b ? u /= G(e, r, 1, "em") : (h = G(e, r, h, b), b = "px"), p && (h || 0 === h) && (_ = h + u + b)), p && (h += u), !u && 0 !== u || !h && 0 !== h ? void 0 !== v[r] && (_ || _ + "" != "NaN" && null != _) ? (s = new ce(v, r, h || u || 0, 0, s, -1, "css_" + r, !1, 0, c, _), s.xs0 = "none" !== _ || "display" !== r && -1 === r.indexOf("Style") ? _ : c) : N("invalid " + r + " tween value: " + t[r]) : (s = new ce(v, r, u, h - u, s, 0, "css_" + r, d !== !1 && ("px" === b || "zIndex" === r), 0, c, _), s.xs0 = b)) : s = _e(v, r, c, _, !0, null, s, 0, n)), n && s && !s.plugin && (s.plugin = n);
                    return s
                }, a.setRatio = function(e) {
                    var t, s, i, o = this._firstPT,
                        n = 1e-6;
                    if (1 !== e || this._tween._time !== this._tween._duration && 0 !== this._tween._time)
                        if (e || this._tween._time !== this._tween._duration && 0 !== this._tween._time || this._tween._rawPrevTime === -1e-6)
                            for (; o;) {
                                if (t = o.c * e + o.s, o.r ? t = t > 0 ? t + .5 | 0 : t - .5 | 0 : n > t && t > -n && (t = 0), o.type)
                                    if (1 === o.type)
                                        if (i = o.l, 2 === i) o.t[o.p] = o.xs0 + t + o.xs1 + o.xn1 + o.xs2;
                                        else if (3 === i) o.t[o.p] = o.xs0 + t + o.xs1 + o.xn1 + o.xs2 + o.xn2 + o.xs3;
                                else if (4 === i) o.t[o.p] = o.xs0 + t + o.xs1 + o.xn1 + o.xs2 + o.xn2 + o.xs3 + o.xn3 + o.xs4;
                                else if (5 === i) o.t[o.p] = o.xs0 + t + o.xs1 + o.xn1 + o.xs2 + o.xn2 + o.xs3 + o.xn3 + o.xs4 + o.xn4 + o.xs5;
                                else {
                                    for (s = o.xs0 + t + o.xs1, i = 1; i < o.l; i++) s += o["xn" + i] + o["xs" + (i + 1)];
                                    o.t[o.p] = s
                                } else -1 === o.type ? o.t[o.p] = o.xs0 : o.setRatio && o.setRatio(e);
                                else o.t[o.p] = t + o.xs0;
                                o = o._next
                            } else
                                for (; o;) 2 !== o.type ? o.t[o.p] = o.b : o.setRatio(e), o = o._next;
                        else
                            for (; o;) 2 !== o.type ? o.t[o.p] = o.e : o.setRatio(e), o = o._next
                }, a._enableTransforms = function(e) {
                    this._transformType = e || 3 === this._transformType ? 3 : 2
                }, a._linkCSSP = function(e, t, s, i) {
                    return e && (t && (t._prev = e), e._next && (e._next._prev = e._prev), s ? s._next = e : i || null !== this._firstPT || (this._firstPT = e), e._prev ? e._prev._next = e._next : this._firstPT === e && (this._firstPT = e._next), e._next = t, e._prev = s), e
                }, a._kill = function(t) {
                    var s, i, o, n = t;
                    if (t.css_autoAlpha || t.css_alpha) {
                        n = {};
                        for (i in t) n[i] = t[i];
                        n.css_opacity = 1, n.css_autoAlpha && (n.css_visibility = 1)
                    }
                    return t.css_className && (s = this._classNamePT) && (o = s.xfirst, o && o._prev ? this._linkCSSP(o._prev, s._next, o._prev._prev) : o === this._firstPT && (this._firstPT = s._next), s._next && this._linkCSSP(s._next, s._next._next, o._prev), this._classNamePT = null), e.prototype._kill.call(this, n)
                };
                var Fe = function(e, t, s) {
                    var i, o, n, r;
                    if (e.slice)
                        for (o = e.length; --o > -1;) Fe(e[o], t, s);
                    else
                        for (i = e.childNodes, o = i.length; --o > -1;) n = i[o], r = n.type, n.style && (t.push(Z(n)), s && s.push(n)), 1 !== r && 9 !== r && 11 !== r || !n.childNodes.length || Fe(n, t, s)
                };
                return r.cascadeTo = function(e, s, i) {
                    var o, n, r, l = t.to(e, s, i),
                        a = [l],
                        d = [],
                        u = [],
                        h = [],
                        c = t._internals.reservedProps;
                    for (e = l._targets || l.target, Fe(e, d, h), l.render(s, !0), Fe(e, u), l.render(0, !0), l._enabled(!0), o = h.length; --o > -1;)
                        if (n = Q(h[o], d[o], u[o]), n.firstMPT) {
                            n = n.difs;
                            for (r in i) c[r] && (n[r] = i[r]);
                            a.push(t.to(h[o], s, n))
                        }
                    return a
                }, e.activate([r]), r
            }, !0),
            function() {
                var e = window._gsDefine.plugin({
                        propName: "roundProps",
                        priority: -1,
                        API: 2,
                        init: function(e, t, s) {
                            return this._tween = s, !0
                        }
                    }),
                    t = e.prototype;
                t._onInitAllProps = function() {
                    for (var e, t, s, i = this._tween, o = i.vars.roundProps instanceof Array ? i.vars.roundProps : i.vars.roundProps.split(","), n = o.length, r = {}, l = i._propLookup.roundProps; --n > -1;) r[o[n]] = 1;
                    for (n = o.length; --n > -1;)
                        for (e = o[n], t = i._firstPT; t;) s = t._next, t.pg ? t.t._roundProps(r, !0) : t.n === e && (this._add(t.t, e, t.s, t.c), s && (s._prev = t._prev), t._prev ? t._prev._next = s : i._firstPT === t && (i._firstPT = s), t._next = t._prev = null, i._propLookup[e] = l), t = s;
                    return !1
                }, t._add = function(e, t, s, i) {
                    this._addTween(e, t, s, s + i, t, !0), this._overwriteProps.push(t)
                }
            }(), window._gsDefine.plugin({
                propName: "attr",
                API: 2,
                init: function(e, t, s) {
                    var i;
                    if ("function" != typeof e.setAttribute) return !1;
                    this._target = e, this._proxy = {};
                    for (i in t) this._addTween(this._proxy, i, parseFloat(e.getAttribute(i)), t[i], i), this._overwriteProps.push(i);
                    return !0
                },
                set: function(e) {
                    this._super.setRatio.call(this, e);
                    for (var t, s = this._overwriteProps, i = s.length; --i > -1;) t = s[i], this._target.setAttribute(t, this._proxy[t] + "")
                }
            }), window._gsDefine.plugin({
                propName: "directionalRotation",
                API: 2,
                init: function(e, t, s) {
                    "object" != typeof t && (t = {
                        rotation: t
                    }), this.finals = {};
                    var i, o, n, r, l, a, d = t.useRadians === !0 ? 2 * Math.PI : 360,
                        u = 1e-6;
                    for (i in t) "useRadians" !== i && (a = (t[i] + "").split("_"), o = a[0], n = parseFloat("function" != typeof e[i] ? e[i] : e[i.indexOf("set") || "function" != typeof e["get" + i.substr(3)] ? i : "get" + i.substr(3)]()), r = this.finals[i] = "string" == typeof o && "=" === o.charAt(1) ? n + parseInt(o.charAt(0) + "1", 10) * Number(o.substr(2)) : Number(o) || 0, l = r - n, a.length && (o = a.join("_"), -1 !== o.indexOf("short") && (l %= d, l !== l % (d / 2) && (l = 0 > l ? l + d : l - d)), -1 !== o.indexOf("_cw") && 0 > l ? l = (l + 9999999999 * d) % d - (l / d | 0) * d : -1 !== o.indexOf("ccw") && l > 0 && (l = (l - 9999999999 * d) % d - (l / d | 0) * d)), (l > u || -u > l) && (this._addTween(e, i, n, n + l, i), this._overwriteProps.push(i)));
                    return !0
                },
                set: function(e) {
                    var t;
                    if (1 !== e) this._super.setRatio.call(this, e);
                    else
                        for (t = this._firstPT; t;) t.f ? t.t[t.p](this.finals[t.p]) : t.t[t.p] = this.finals[t.p], t = t._next
                }
            })._autoCSS = !0, window._gsDefine("easing.Back", ["easing.Ease"], function(e) {
                var t, s, i, o = window.GreenSockGlobals || window,
                    n = o.com.greensock,
                    r = 2 * Math.PI,
                    l = Math.PI / 2,
                    a = n._class,
                    d = function(t, s) {
                        var i = a("easing." + t, function() {}, !0),
                            o = i.prototype = new e;
                        return o.constructor = i, o.getRatio = s, i
                    },
                    u = e.register || function() {},
                    h = function(e, t, s, i, o) {
                        var n = a("easing." + e, {
                            easeOut: new t,
                            easeIn: new s,
                            easeInOut: new i
                        }, !0);
                        return u(n, e), n
                    },
                    c = function(e, t, s) {
                        this.t = e, this.v = t, s && (this.next = s, s.prev = this, this.c = s.v - t, this.gap = s.t - e)
                    },
                    _ = function(t, s) {
                        var i = a("easing." + t, function(e) {
                                this._p1 = e || 0 === e ? e : 1.70158, this._p2 = 1.525 * this._p1
                            }, !0),
                            o = i.prototype = new e;
                        return o.constructor = i, o.getRatio = s, o.config = function(e) {
                            return new i(e)
                        }, i
                    },
                    f = h("Back", _("BackOut", function(e) {
                        return (e -= 1) * e * ((this._p1 + 1) * e + this._p1) + 1
                    }), _("BackIn", function(e) {
                        return e * e * ((this._p1 + 1) * e - this._p1)
                    }), _("BackInOut", function(e) {
                        return (e *= 2) < 1 ? .5 * e * e * ((this._p2 + 1) * e - this._p2) : .5 * ((e -= 2) * e * ((this._p2 + 1) * e + this._p2) + 2)
                    })),
                    b = a("easing.SlowMo", function(e, t, s) {
                        t = t || 0 === t ? t : .7, null == e ? e = .7 : e > 1 && (e = 1), this._p = 1 !== e ? t : 0, this._p1 = (1 - e) / 2, this._p2 = e, this._p3 = this._p1 + this._p2, this._calcEnd = s === !0
                    }, !0),
                    m = b.prototype = new e;
                return m.constructor = b, m.getRatio = function(e) {
                    var t = e + (.5 - e) * this._p;
                    return e < this._p1 ? this._calcEnd ? 1 - (e = 1 - e / this._p1) * e : t - (e = 1 - e / this._p1) * e * e * e * t : e > this._p3 ? this._calcEnd ? 1 - (e = (e - this._p3) / this._p1) * e : t + (e - t) * (e = (e - this._p3) / this._p1) * e * e * e : this._calcEnd ? 1 : t
                }, b.ease = new b(.7, .7), m.config = b.config = function(e, t, s) {
                    return new b(e, t, s)
                }, t = a("easing.SteppedEase", function(e) {
                    e = e || 1, this._p1 = 1 / e, this._p2 = e + 1
                }, !0), m = t.prototype = new e, m.constructor = t, m.getRatio = function(e) {
                    return 0 > e ? e = 0 : e >= 1 && (e = .999999999), (this._p2 * e >> 0) * this._p1
                }, m.config = t.config = function(e) {
                    return new t(e)
                }, s = a("easing.RoughEase", function(t) {
                    t = t || {};
                    for (var s, i, o, n, r, l, a = t.taper || "none", d = [], u = 0, h = 0 | (t.points || 20), _ = h, f = t.randomize !== !1, b = t.clamp === !0, m = t.template instanceof e ? t.template : null, p = "number" == typeof t.strength ? .4 * t.strength : .4; --_ > -1;) s = f ? Math.random() : 1 / h * _, i = m ? m.getRatio(s) : s, "none" === a ? o = p : "out" === a ? (n = 1 - s, o = n * n * p) : "in" === a ? o = s * s * p : .5 > s ? (n = 2 * s, o = n * n * .5 * p) : (n = 2 * (1 - s), o = n * n * .5 * p), f ? i += Math.random() * o - .5 * o : _ % 2 ? i += .5 * o : i -= .5 * o, b && (i > 1 ? i = 1 : 0 > i && (i = 0)), d[u++] = {
                        x: s,
                        y: i
                    };
                    for (d.sort(function(e, t) {
                            return e.x - t.x
                        }), l = new c(1, 1, null), _ = h; --_ > -1;) r = d[_], l = new c(r.x, r.y, l);
                    this._prev = new c(0, 0, 0 !== l.t ? l : l.next)
                }, !0), m = s.prototype = new e, m.constructor = s, m.getRatio = function(e) {
                    var t = this._prev;
                    if (e > t.t) {
                        for (; t.next && e >= t.t;) t = t.next;
                        t = t.prev
                    } else
                        for (; t.prev && e <= t.t;) t = t.prev;
                    return this._prev = t, t.v + (e - t.t) / t.gap * t.c
                }, m.config = function(e) {
                    return new s(e)
                }, s.ease = new s, h("Bounce", d("BounceOut", function(e) {
                    return 1 / 2.75 > e ? 7.5625 * e * e : 2 / 2.75 > e ? 7.5625 * (e -= 1.5 / 2.75) * e + .75 : 2.5 / 2.75 > e ? 7.5625 * (e -= 2.25 / 2.75) * e + .9375 : 7.5625 * (e -= 2.625 / 2.75) * e + .984375
                }), d("BounceIn", function(e) {
                    return (e = 1 - e) < 1 / 2.75 ? 1 - 7.5625 * e * e : 2 / 2.75 > e ? 1 - (7.5625 * (e -= 1.5 / 2.75) * e + .75) : 2.5 / 2.75 > e ? 1 - (7.5625 * (e -= 2.25 / 2.75) * e + .9375) : 1 - (7.5625 * (e -= 2.625 / 2.75) * e + .984375)
                }), d("BounceInOut", function(e) {
                    var t = .5 > e;
                    return e = t ? 1 - 2 * e : 2 * e - 1, e = 1 / 2.75 > e ? 7.5625 * e * e : 2 / 2.75 > e ? 7.5625 * (e -= 1.5 / 2.75) * e + .75 : 2.5 / 2.75 > e ? 7.5625 * (e -= 2.25 / 2.75) * e + .9375 : 7.5625 * (e -= 2.625 / 2.75) * e + .984375, t ? .5 * (1 - e) : .5 * e + .5
                })), h("Circ", d("CircOut", function(e) {
                    return Math.sqrt(1 - (e -= 1) * e)
                }), d("CircIn", function(e) {
                    return -(Math.sqrt(1 - e * e) - 1)
                }), d("CircInOut", function(e) {
                    return (e *= 2) < 1 ? -.5 * (Math.sqrt(1 - e * e) - 1) : .5 * (Math.sqrt(1 - (e -= 2) * e) + 1)
                })), i = function(t, s, i) {
                    var o = a("easing." + t, function(e, t) {
                            this._p1 = e || 1, this._p2 = t || i, this._p3 = this._p2 / r * (Math.asin(1 / this._p1) || 0)
                        }, !0),
                        n = o.prototype = new e;
                    return n.constructor = o, n.getRatio = s, n.config = function(e, t) {
                        return new o(e, t)
                    }, o
                }, h("Elastic", i("ElasticOut", function(e) {
                    return this._p1 * Math.pow(2, -10 * e) * Math.sin((e - this._p3) * r / this._p2) + 1
                }, .3), i("ElasticIn", function(e) {
                    return -(this._p1 * Math.pow(2, 10 * (e -= 1)) * Math.sin((e - this._p3) * r / this._p2))
                }, .3), i("ElasticInOut", function(e) {
                    return (e *= 2) < 1 ? -.5 * (this._p1 * Math.pow(2, 10 * (e -= 1)) * Math.sin((e - this._p3) * r / this._p2)) : this._p1 * Math.pow(2, -10 * (e -= 1)) * Math.sin((e - this._p3) * r / this._p2) * .5 + 1
                }, .45)), h("Expo", d("ExpoOut", function(e) {
                    return 1 - Math.pow(2, -10 * e)
                }), d("ExpoIn", function(e) {
                    return Math.pow(2, 10 * (e - 1)) - .001
                }), d("ExpoInOut", function(e) {
                    return (e *= 2) < 1 ? .5 * Math.pow(2, 10 * (e - 1)) : .5 * (2 - Math.pow(2, -10 * (e - 1)))
                })), h("Sine", d("SineOut", function(e) {
                    return Math.sin(e * l)
                }), d("SineIn", function(e) {
                    return -Math.cos(e * l) + 1
                }), d("SineInOut", function(e) {
                    return -.5 * (Math.cos(Math.PI * e) - 1)
                })), a("easing.EaseLookup", {
                    find: function(t) {
                        return e.map[t]
                    }
                }, !0), u(o.SlowMo, "SlowMo", "ease,"), u(s, "RoughEase", "ease,"), u(t, "SteppedEase", "ease,"), f
            }, !0)
    }),
    function(e) {
        "use strict";
        var t, s, i, o, n, r = e.GreenSockGlobals || e,
            l = function(e) {
                var t, s = e.split("."),
                    i = r;
                for (t = 0; t < s.length; t++) i[s[t]] = i = i[s[t]] || {};
                return i
            },
            a = l("com.greensock"),
            d = [].slice,
            u = function() {},
            h = {},
            c = function(t, s, i, o) {
                this.sc = h[t] ? h[t].sc : [], h[t] = this, this.gsClass = null, this.func = i;
                var n = [];
                this.check = function(a) {
                    for (var d, u, _, f, b = s.length, m = b; --b > -1;)(d = h[s[b]] || new c(s[b], [])).gsClass ? (n[b] = d.gsClass, m--) : a && d.sc.push(this);
                    if (0 === m && i)
                        for (u = ("com.greensock." + t).split("."), _ = u.pop(), f = l(u.join("."))[_] = this.gsClass = i.apply(i, n), o && (r[_] = f, "function" == typeof define && define.amd ? define((e.GreenSockAMDPath ? e.GreenSockAMDPath + "/" : "") + t.split(".").join("/"), [], function() {
                                return f
                            }) : "undefined" != typeof module && module.exports && (module.exports = f)), b = 0; b < this.sc.length; b++) this.sc[b].check()
                }, this.check(!0)
            },
            _ = e._gsDefine = function(e, t, s, i) {
                return new c(e, t, s, i)
            },
            f = a._class = function(e, t, s) {
                return t = t || function() {}, _(e, [], function() {
                    return t
                }, s), t
            };
        _.globals = r;
        var b = [0, 0, 1, 1],
            m = [],
            p = f("easing.Ease", function(e, t, s, i) {
                this._func = e, this._type = s || 0, this._power = i || 0, this._params = t ? b.concat(t) : b
            }, !0),
            v = p.map = {},
            g = p.register = function(e, t, s, i) {
                for (var o, n, r, l, d = t.split(","), u = d.length, h = (s || "easeIn,easeOut,easeInOut").split(","); --u > -1;)
                    for (n = d[u], o = i ? f("easing." + n, null, !0) : a.easing[n] || {}, r = h.length; --r > -1;) l = h[r], v[n + "." + l] = v[l + n] = o[l] = e.getRatio ? e : e[l] || new e
            };
        for (i = p.prototype, i._calcEnd = !1, i.getRatio = function(e) {
                if (this._func) return this._params[0] = e, this._func.apply(null, this._params);
                var t = this._type,
                    s = this._power,
                    i = 1 === t ? 1 - e : 2 === t ? e : .5 > e ? 2 * e : 2 * (1 - e);
                return 1 === s ? i *= i : 2 === s ? i *= i * i : 3 === s ? i *= i * i * i : 4 === s && (i *= i * i * i * i), 1 === t ? 1 - i : 2 === t ? i : .5 > e ? i / 2 : 1 - i / 2
            }, t = ["Linear", "Quad", "Cubic", "Quart", "Quint,Strong"], s = t.length; --s > -1;) i = t[s] + ",Power" + s, g(new p(null, null, 1, s), i, "easeOut", !0), g(new p(null, null, 2, s), i, "easeIn" + (0 === s ? ",easeNone" : "")), g(new p(null, null, 3, s), i, "easeInOut");
        v.linear = a.easing.Linear.easeIn, v.swing = a.easing.Quad.easeInOut;
        var S = f("events.EventDispatcher", function(e) {
            this._listeners = {}, this._eventTarget = e || this
        });
        i = S.prototype, i.addEventListener = function(e, t, s, i, r) {
            r = r || 0;
            var l, a, d = this._listeners[e],
                u = 0;
            for (null == d && (this._listeners[e] = d = []), a = d.length; --a > -1;) l = d[a], l.c === t && l.s === s ? d.splice(a, 1) : 0 === u && l.pr < r && (u = a + 1);
            d.splice(u, 0, {
                c: t,
                s: s,
                up: i,
                pr: r
            }), this !== o || n || o.wake()
        }, i.removeEventListener = function(e, t) {
            var s, i = this._listeners[e];
            if (i)
                for (s = i.length; --s > -1;)
                    if (i[s].c === t) return void i.splice(s, 1)
        }, i.dispatchEvent = function(e) {
            var t, s, i, o = this._listeners[e];
            if (o)
                for (t = o.length, s = this._eventTarget; --t > -1;) i = o[t], i.up ? i.c.call(i.s || s, {
                    type: e,
                    target: s
                }) : i.c.call(i.s || s)
        };
        var w = e.requestAnimationFrame,
            y = e.cancelAnimationFrame,
            T = Date.now || function() {
                return (new Date).getTime()
            };
        for (t = ["ms", "moz", "webkit", "o"], s = t.length; --s > -1 && !w;) w = e[t[s] + "RequestAnimationFrame"], y = e[t[s] + "CancelAnimationFrame"] || e[t[s] + "CancelRequestAnimationFrame"];
        f("Ticker", function(e, t) {
            var s, i, r, l, a, d = this,
                h = T(),
                c = t !== !1 && w,
                _ = function(e) {
                    d.time = (T() - h) / 1e3;
                    var t = r,
                        o = d.time - a;
                    (!s || o > 0 || e === !0) && (d.frame++, a += o + (o >= l ? .004 : l - o), d.dispatchEvent("tick")), e !== !0 && t === r && (r = i(_))
                };
            S.call(d), this.time = this.frame = 0, this.tick = function() {
                _(!0)
            }, this.sleep = function() {
                null != r && (c && y ? y(r) : clearTimeout(r), i = u, r = null, d === o && (n = !1))
            }, this.wake = function() {
                null !== r && d.sleep(), i = 0 === s ? u : c && w ? w : function(e) {
                    return setTimeout(e, 1e3 * (a - d.time) + 1 | 0)
                }, d === o && (n = !0), _(2)
            }, this.fps = function(e) {
                return arguments.length ? (s = e, l = 1 / (s || 60), a = this.time + l, void d.wake()) : s
            }, this.useRAF = function(e) {
                return arguments.length ? (d.sleep(), c = e, void d.fps(s)) : c
            }, d.fps(e), setTimeout(function() {
                c && (!r || d.frame < 5) && d.useRAF(!1)
            }, 1500)
        }), i = a.Ticker.prototype = new a.events.EventDispatcher, i.constructor = a.Ticker;
        var D = f("core.Animation", function(e, t) {
            if (this.vars = t || {}, this._duration = this._totalDuration = e || 0, this._delay = Number(this.vars.delay) || 0, this._timeScale = 1, this._active = this.vars.immediateRender === !0, this.data = this.vars.data, this._reversed = this.vars.reversed === !0, k) {
                n || o.wake();
                var s = this.vars.useFrames ? H : k;
                s.add(this, s._time), this.vars.paused && this.paused(!0)
            }
        });
        o = D.ticker = new a.Ticker, i = D.prototype, i._dirty = i._gc = i._initted = i._paused = !1, i._totalTime = i._time = 0, i._rawPrevTime = -1, i._next = i._last = i._onUpdate = i._timeline = i.timeline = null, i._paused = !1, i.play = function(e, t) {
            return arguments.length && this.seek(e, t), this.reversed(!1).paused(!1)
        }, i.pause = function(e, t) {
            return arguments.length && this.seek(e, t), this.paused(!0)
        }, i.resume = function(e, t) {
            return arguments.length && this.seek(e, t), this.paused(!1)
        }, i.seek = function(e, t) {
            return this.totalTime(Number(e), t !== !1)
        }, i.restart = function(e, t) {
            return this.reversed(!1).paused(!1).totalTime(e ? -this._delay : 0, t !== !1, !0)
        }, i.reverse = function(e, t) {
            return arguments.length && this.seek(e || this.totalDuration(), t), this.reversed(!0).paused(!1)
        }, i.render = function() {}, i.invalidate = function() {
            return this
        }, i._enabled = function(e, t) {
            return n || o.wake(), this._gc = !e, this._active = e && !this._paused && this._totalTime > 0 && this._totalTime < this._totalDuration, t !== !0 && (e && !this.timeline ? this._timeline.add(this, this._startTime - this._delay) : !e && this.timeline && this._timeline._remove(this, !0)), !1
        }, i._kill = function(e, t) {
            return this._enabled(!1, !1)
        }, i.kill = function(e, t) {
            return this._kill(e, t), this
        }, i._uncache = function(e) {
            for (var t = e ? this : this.timeline; t;) t._dirty = !0, t = t.timeline;
            return this
        }, i.eventCallback = function(e, t, s, i) {
            if (null == e) return null;
            if ("on" === e.substr(0, 2)) {
                var o, n = this.vars;
                if (1 === arguments.length) return n[e];
                if (null == t) delete n[e];
                else if (n[e] = t, n[e + "Params"] = s, n[e + "Scope"] = i, s)
                    for (o = s.length; --o > -1;) "{self}" === s[o] && (s = n[e + "Params"] = s.concat(), s[o] = this);
                "onUpdate" === e && (this._onUpdate = t)
            }
            return this
        }, i.delay = function(e) {
            return arguments.length ? (this._timeline.smoothChildTiming && this.startTime(this._startTime + e - this._delay), this._delay = e, this) : this._delay
        }, i.duration = function(e) {
            return arguments.length ? (this._duration = this._totalDuration = e, this._uncache(!0), this._timeline.smoothChildTiming && this._time > 0 && this._time < this._duration && 0 !== e && this.totalTime(this._totalTime * (e / this._duration), !0), this) : (this._dirty = !1, this._duration)
        }, i.totalDuration = function(e) {
            return this._dirty = !1, arguments.length ? this.duration(e) : this._totalDuration
        }, i.time = function(e, t) {
            return arguments.length ? (this._dirty && this.totalDuration(), this.totalTime(e > this._duration ? this._duration : e, t)) : this._time
        }, i.totalTime = function(e, t, s) {
            if (n || o.wake(), !arguments.length) return this._totalTime;
            if (this._timeline) {
                if (0 > e && !s && (e += this.totalDuration()), this._timeline.smoothChildTiming) {
                    this._dirty && this.totalDuration();
                    var i = this._totalDuration,
                        r = this._timeline;
                    if (e > i && !s && (e = i), this._startTime = (this._paused ? this._pauseTime : r._time) - (this._reversed ? i - e : e) / this._timeScale, r._dirty || this._uncache(!1), !r._active)
                        for (; r._timeline;) r.totalTime(r._totalTime, !0), r = r._timeline
                }
                this._gc && this._enabled(!0, !1), this._totalTime !== e && this.render(e, t, !1)
            }
            return this
        }, i.startTime = function(e) {
            return arguments.length ? (e !== this._startTime && (this._startTime = e, this.timeline && this.timeline._sortChildren && this.timeline.add(this, e - this._delay)), this) : this._startTime
        }, i.timeScale = function(e) {
            if (!arguments.length) return this._timeScale;
            if (e = e || 1e-6, this._timeline && this._timeline.smoothChildTiming) {
                var t = this._pauseTime,
                    s = t || 0 === t ? t : this._timeline.totalTime();
                this._startTime = s - (s - this._startTime) * this._timeScale / e
            }
            return this._timeScale = e, this._uncache(!1)
        }, i.reversed = function(e) {
            return arguments.length ? (e != this._reversed && (this._reversed = e, this.totalTime(this._totalTime, !0)), this) : this._reversed
        }, i.paused = function(e) {
            if (!arguments.length) return this._paused;
            if (e != this._paused && this._timeline) {
                n || e || o.wake();
                var t = this._timeline.rawTime(),
                    s = t - this._pauseTime;
                !e && this._timeline.smoothChildTiming && (this._startTime += s, this._uncache(!1)), this._pauseTime = e ? t : null, this._paused = e, this._active = !e && this._totalTime > 0 && this._totalTime < this._totalDuration, e || 0 === s || 0 === this._duration || this.render(this._totalTime, !0, !0)
            }
            return this._gc && !e && this._enabled(!0, !1), this
        };
        var L = f("core.SimpleTimeline", function(e) {
            D.call(this, 0, e), this.autoRemoveChildren = this.smoothChildTiming = !0
        });
        i = L.prototype = new D, i.constructor = L, i.kill()._gc = !1, i._first = i._last = null, i._sortChildren = !1, i.add = i.insert = function(e, t, s, i) {
            var o, n;
            if (e._startTime = Number(t || 0) + e._delay, e._paused && this !== e._timeline && (e._pauseTime = e._startTime + (this.rawTime() - e._startTime) / e._timeScale), e.timeline && e.timeline._remove(e, !0), e.timeline = e._timeline = this, e._gc && e._enabled(!0, !0), o = this._last, this._sortChildren)
                for (n = e._startTime; o && o._startTime > n;) o = o._prev;
            return o ? (e._next = o._next, o._next = e) : (e._next = this._first, this._first = e), e._next ? e._next._prev = e : this._last = e, e._prev = o, this._timeline && this._uncache(!0), this
        }, i._remove = function(e, t) {
            return e.timeline === this && (t || e._enabled(!1, !0), e.timeline = null, e._prev ? e._prev._next = e._next : this._first === e && (this._first = e._next), e._next ? e._next._prev = e._prev : this._last === e && (this._last = e._prev), this._timeline && this._uncache(!0)), this
        }, i.render = function(e, t, s) {
            var i, o = this._first;
            for (this._totalTime = this._time = this._rawPrevTime = e; o;) i = o._next, (o._active || e >= o._startTime && !o._paused) && (o._reversed ? o.render((o._dirty ? o.totalDuration() : o._totalDuration) - (e - o._startTime) * o._timeScale, t, s) : o.render((e - o._startTime) * o._timeScale, t, s)), o = i
        }, i.rawTime = function() {
            return n || o.wake(), this._totalTime
        };
        var B = f("TweenLite", function(e, t, s) {
                if (D.call(this, t, s), null == e) throw "Cannot tween a null target.";
                this.target = e = "string" != typeof e ? e : B.selector(e) || e;
                var i, o, n, r = e.jquery || e.length && e[0] && e[0].nodeType && e[0].style,
                    l = this.vars.overwrite;
                if (this._overwrite = l = null == l ? x[B.defaultOverwrite] : "number" == typeof l ? l >> 0 : x[l], (r || e instanceof Array) && "number" != typeof e[0])
                    for (this._targets = n = d.call(e, 0), this._propLookup = [], this._siblings = [], i = 0; i < n.length; i++) o = n[i], o ? "string" != typeof o ? o.length && o[0] && o[0].nodeType && o[0].style ? (n.splice(i--, 1), this._targets = n = n.concat(d.call(o, 0))) : (this._siblings[i] = C(o, this, !1), 1 === l && this._siblings[i].length > 1 && A(o, this, null, 1, this._siblings[i])) : (o = n[i--] = B.selector(o), "string" == typeof o && n.splice(i + 1, 1)) : n.splice(i--, 1);
                else this._propLookup = {}, this._siblings = C(e, this, !1), 1 === l && this._siblings.length > 1 && A(e, this, null, 1, this._siblings);
                (this.vars.immediateRender || 0 === t && 0 === this._delay && this.vars.immediateRender !== !1) && this.render(-this._delay, !1, !0)
            }, !0),
            P = function(e) {
                return e.length && e[0] && e[0].nodeType && e[0].style
            },
            O = function(e, t) {
                var s, i = {};
                for (s in e) W[s] || s in t && "x" !== s && "y" !== s && "width" !== s && "height" !== s && "className" !== s || !(!R[s] || R[s] && R[s]._autoCSS) || (i[s] = e[s], delete e[s]);
                e.css = i
            };
        i = B.prototype = new D, i.constructor = B, i.kill()._gc = !1, i.ratio = 0, i._firstPT = i._targets = i._overwrittenProps = i._startAt = null, i._notifyPluginsOfEnabled = !1, B.version = "1.9.7", B.defaultEase = i._ease = new p(null, null, 1, 1), B.defaultOverwrite = "auto", B.ticker = o, B.autoSleep = !0, B.selector = e.$ || e.jQuery || function(t) {
            return e.$ ? (B.selector = e.$, e.$(t)) : e.document ? e.document.getElementById("#" === t.charAt(0) ? t.substr(1) : t) : t
        };
        var E = B._internals = {},
            R = B._plugins = {},
            F = B._tweenLookup = {},
            M = 0,
            W = E.reservedProps = {
                ease: 1,
                delay: 1,
                overwrite: 1,
                onComplete: 1,
                onCompleteParams: 1,
                onCompleteScope: 1,
                useFrames: 1,
                runBackwards: 1,
                startAt: 1,
                onUpdate: 1,
                onUpdateParams: 1,
                onUpdateScope: 1,
                onStart: 1,
                onStartParams: 1,
                onStartScope: 1,
                onReverseComplete: 1,
                onReverseCompleteParams: 1,
                onReverseCompleteScope: 1,
                onRepeat: 1,
                onRepeatParams: 1,
                onRepeatScope: 1,
                easeParams: 1,
                yoyo: 1,
                immediateRender: 1,
                repeat: 1,
                repeatDelay: 1,
                data: 1,
                paused: 1,
                reversed: 1,
                autoCSS: 1
            },
            x = {
                none: 0,
                all: 1,
                auto: 2,
                concurrent: 3,
                allOnStart: 4,
                preexisting: 5,
                "true": 1,
                "false": 0
            },
            H = D._rootFramesTimeline = new L,
            k = D._rootTimeline = new L;
        k._startTime = o.time, H._startTime = o.frame, k._active = H._active = !0, D._updateRoot = function() {
            if (k.render((o.time - k._startTime) * k._timeScale, !1, !1), H.render((o.frame - H._startTime) * H._timeScale, !1, !1), !(o.frame % 120)) {
                var e, t, s;
                for (s in F) {
                    for (t = F[s].tweens, e = t.length; --e > -1;) t[e]._gc && t.splice(e, 1);
                    0 === t.length && delete F[s]
                }
                if (s = k._first, (!s || s._paused) && B.autoSleep && !H._first && 1 === o._listeners.tick.length) {
                    for (; s && s._paused;) s = s._next;
                    s || o.sleep()
                }
            }
        }, o.addEventListener("tick", D._updateRoot);
        var C = function(e, t, s) {
                var i, o, n = e._gsTweenID;
                if (F[n || (e._gsTweenID = n = "t" + M++)] || (F[n] = {
                        target: e,
                        tweens: []
                    }), t && (i = F[n].tweens, i[o = i.length] = t, s))
                    for (; --o > -1;) i[o] === t && i.splice(o, 1);
                return F[n].tweens
            },
            A = function(e, t, s, i, o) {
                var n, r, l, a;
                if (1 === i || i >= 4) {
                    for (a = o.length, n = 0; a > n; n++)
                        if ((l = o[n]) !== t) l._gc || l._enabled(!1, !1) && (r = !0);
                        else if (5 === i) break;
                    return r
                }
                var d, u = t._startTime + 1e-10,
                    h = [],
                    c = 0,
                    _ = 0 === t._duration;
                for (n = o.length; --n > -1;)(l = o[n]) === t || l._gc || l._paused || (l._timeline !== t._timeline ? (d = d || I(t, 0, _), 0 === I(l, d, _) && (h[c++] = l)) : l._startTime <= u && l._startTime + l.totalDuration() / l._timeScale + 1e-10 > u && ((_ || !l._initted) && u - l._startTime <= 2e-10 || (h[c++] = l)));
                for (n = c; --n > -1;) l = h[n], 2 === i && l._kill(s, e) && (r = !0), (2 !== i || !l._firstPT && l._initted) && l._enabled(!1, !1) && (r = !0);
                return r
            },
            I = function(e, t, s) {
                for (var i = e._timeline, o = i._timeScale, n = e._startTime, r = 1e-10; i._timeline;) {
                    if (n += i._startTime, o *= i._timeScale, i._paused) return -100;
                    i = i._timeline
                }
                return n /= o, n > t ? n - t : s && n === t || !e._initted && 2 * r > n - t ? r : (n += e.totalDuration() / e._timeScale / o) > t + r ? 0 : n - t - r
            };
        i._init = function() {
            var e, t, s, i, o = this.vars,
                n = this._overwrittenProps,
                r = this._duration,
                l = o.ease;
            if (o.startAt) {
                if (o.startAt.overwrite = 0, o.startAt.immediateRender = !0, this._startAt = B.to(this.target, 0, o.startAt), o.immediateRender && (this._startAt = null, 0 === this._time && 0 !== r)) return
            } else if (o.runBackwards && o.immediateRender && 0 !== r)
                if (this._startAt) this._startAt.render(-1, !0), this._startAt = null;
                else if (0 === this._time) {
                s = {};
                for (i in o) W[i] && "autoCSS" !== i || (s[i] = o[i]);
                return s.overwrite = 0, void(this._startAt = B.to(this.target, 0, s))
            }
            if (l ? l instanceof p ? this._ease = o.easeParams instanceof Array ? l.config.apply(l, o.easeParams) : l : this._ease = "function" == typeof l ? new p(l, o.easeParams) : v[l] || B.defaultEase : this._ease = B.defaultEase, this._easeType = this._ease._type, this._easePower = this._ease._power, this._firstPT = null, this._targets)
                for (e = this._targets.length; --e > -1;) this._initProps(this._targets[e], this._propLookup[e] = {}, this._siblings[e], n ? n[e] : null) && (t = !0);
            else t = this._initProps(this.target, this._propLookup, this._siblings, n);
            if (t && B._onPluginEvent("_onInitAllProps", this), n && (this._firstPT || "function" != typeof this.target && this._enabled(!1, !1)), o.runBackwards)
                for (s = this._firstPT; s;) s.s += s.c, s.c = -s.c, s = s._next;
            this._onUpdate = o.onUpdate, this._initted = !0
        }, i._initProps = function(e, t, s, i) {
            var o, n, r, l, a, d, u;
            if (null == e) return !1;
            this.vars.css || e.style && e.nodeType && R.css && this.vars.autoCSS !== !1 && O(this.vars, e);
            for (o in this.vars) {
                if (W[o]) {
                    if (("onStartParams" === o || "onUpdateParams" === o || "onCompleteParams" === o || "onReverseCompleteParams" === o || "onRepeatParams" === o) && (a = this.vars[o]))
                        for (n = a.length; --n > -1;) "{self}" === a[n] && (a = this.vars[o] = a.concat(), a[n] = this)
                } else if (R[o] && (l = new R[o])._onInitTween(e, this.vars[o], this)) {
                    for (this._firstPT = d = {
                            _next: this._firstPT,
                            t: l,
                            p: "setRatio",
                            s: 0,
                            c: 1,
                            f: !0,
                            n: o,
                            pg: !0,
                            pr: l._priority
                        }, n = l._overwriteProps.length; --n > -1;) t[l._overwriteProps[n]] = this._firstPT;
                    (l._priority || l._onInitAllProps) && (r = !0), (l._onDisable || l._onEnable) && (this._notifyPluginsOfEnabled = !0)
                } else this._firstPT = t[o] = d = {
                    _next: this._firstPT,
                    t: e,
                    p: o,
                    f: "function" == typeof e[o],
                    n: o,
                    pg: !1,
                    pr: 0
                }, d.s = d.f ? e[o.indexOf("set") || "function" != typeof e["get" + o.substr(3)] ? o : "get" + o.substr(3)]() : parseFloat(e[o]), u = this.vars[o], d.c = "string" == typeof u && "=" === u.charAt(1) ? parseInt(u.charAt(0) + "1", 10) * Number(u.substr(2)) : Number(u) - d.s || 0;
                d && d._next && (d._next._prev = d)
            }
            return i && this._kill(i, e) ? this._initProps(e, t, s, i) : this._overwrite > 1 && this._firstPT && s.length > 1 && A(e, this, t, this._overwrite, s) ? (this._kill(t, e), this._initProps(e, t, s, i)) : r
        }, i.render = function(e, t, s) {
            var i, o, n, r = this._time;
            if (e >= this._duration) this._totalTime = this._time = this._duration, this.ratio = this._ease._calcEnd ? this._ease.getRatio(1) : 1, this._reversed || (i = !0, o = "onComplete"), 0 === this._duration && ((0 === e || this._rawPrevTime < 0) && this._rawPrevTime !== e && (s = !0, this._rawPrevTime > 0 && (o = "onReverseComplete", t && (e = -1))), this._rawPrevTime = e);
            else if (1e-7 > e) this._totalTime = this._time = 0, this.ratio = this._ease._calcEnd ? this._ease.getRatio(0) : 0, (0 !== r || 0 === this._duration && this._rawPrevTime > 0) && (o = "onReverseComplete", i = this._reversed), 0 > e ? (this._active = !1, 0 === this._duration && (this._rawPrevTime >= 0 && (s = !0), this._rawPrevTime = e)) : this._initted || (s = !0);
            else if (this._totalTime = this._time = e, this._easeType) {
                var l = e / this._duration,
                    a = this._easeType,
                    d = this._easePower;
                (1 === a || 3 === a && l >= .5) && (l = 1 - l), 3 === a && (l *= 2), 1 === d ? l *= l : 2 === d ? l *= l * l : 3 === d ? l *= l * l * l : 4 === d && (l *= l * l * l * l), 1 === a ? this.ratio = 1 - l : 2 === a ? this.ratio = l : e / this._duration < .5 ? this.ratio = l / 2 : this.ratio = 1 - l / 2
            } else this.ratio = this._ease.getRatio(e / this._duration);
            if (this._time !== r || s) {
                if (!this._initted) {
                    if (this._init(), !this._initted) return;
                    this._time && !i ? this.ratio = this._ease.getRatio(this._time / this._duration) : i && this._ease._calcEnd && (this.ratio = this._ease.getRatio(0 === this._time ? 0 : 1))
                }
                for (this._active || this._paused || (this._active = !0), 0 === r && (this._startAt && (e >= 0 ? this._startAt.render(e, t, s) : o || (o = "_dummyGS")), this.vars.onStart && (0 !== this._time || 0 === this._duration) && (t || this.vars.onStart.apply(this.vars.onStartScope || this, this.vars.onStartParams || m))), n = this._firstPT; n;) n.f ? n.t[n.p](n.c * this.ratio + n.s) : n.t[n.p] = n.c * this.ratio + n.s, n = n._next;
                this._onUpdate && (0 > e && this._startAt && this._startAt.render(e, t, s), t || this._onUpdate.apply(this.vars.onUpdateScope || this, this.vars.onUpdateParams || m)), o && (this._gc || (0 > e && this._startAt && !this._onUpdate && this._startAt.render(e, t, s), i && (this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !t && this.vars[o] && this.vars[o].apply(this.vars[o + "Scope"] || this, this.vars[o + "Params"] || m)))
            }
        }, i._kill = function(e, t) {
            if ("all" === e && (e = null), null == e && (null == t || t === this.target)) return this._enabled(!1, !1);
            t = "string" != typeof t ? t || this._targets || this.target : B.selector(t) || t;
            var s, i, o, n, r, l, a, d;
            if ((t instanceof Array || P(t)) && "number" != typeof t[0])
                for (s = t.length; --s > -1;) this._kill(e, t[s]) && (l = !0);
            else {
                if (this._targets) {
                    for (s = this._targets.length; --s > -1;)
                        if (t === this._targets[s]) {
                            r = this._propLookup[s] || {}, this._overwrittenProps = this._overwrittenProps || [], i = this._overwrittenProps[s] = e ? this._overwrittenProps[s] || {} : "all";
                            break
                        }
                } else {
                    if (t !== this.target) return !1;
                    r = this._propLookup, i = this._overwrittenProps = e ? this._overwrittenProps || {} : "all"
                }
                if (r) {
                    a = e || r, d = e !== i && "all" !== i && e !== r && (null == e || e._tempKill !== !0);
                    for (o in a)(n = r[o]) && (n.pg && n.t._kill(a) && (l = !0), n.pg && 0 !== n.t._overwriteProps.length || (n._prev ? n._prev._next = n._next : n === this._firstPT && (this._firstPT = n._next), n._next && (n._next._prev = n._prev), n._next = n._prev = null), delete r[o]), d && (i[o] = 1);
                    !this._firstPT && this._initted && this._enabled(!1, !1)
                }
            }
            return l
        }, i.invalidate = function() {
            return this._notifyPluginsOfEnabled && B._onPluginEvent("_onDisable", this), this._firstPT = null, this._overwrittenProps = null, this._onUpdate = null, this._startAt = null, this._initted = this._active = this._notifyPluginsOfEnabled = !1, this._propLookup = this._targets ? {} : [], this
        }, i._enabled = function(e, t) {
            if (n || o.wake(), e && this._gc) {
                var s, i = this._targets;
                if (i)
                    for (s = i.length; --s > -1;) this._siblings[s] = C(i[s], this, !0);
                else this._siblings = C(this.target, this, !0)
            }
            return D.prototype._enabled.call(this, e, t), this._notifyPluginsOfEnabled && this._firstPT ? B._onPluginEvent(e ? "_onEnable" : "_onDisable", this) : !1
        }, B.to = function(e, t, s) {
            return new B(e, t, s)
        }, B.from = function(e, t, s) {
            return s.runBackwards = !0, s.immediateRender = 0 != s.immediateRender, new B(e, t, s)
        }, B.fromTo = function(e, t, s, i) {
            return i.startAt = s, i.immediateRender = 0 != i.immediateRender && 0 != s.immediateRender, new B(e, t, i)
        }, B.delayedCall = function(e, t, s, i, o) {
            return new B(t, 0, {
                delay: e,
                onComplete: t,
                onCompleteParams: s,
                onCompleteScope: i,
                onReverseComplete: t,
                onReverseCompleteParams: s,
                onReverseCompleteScope: i,
                immediateRender: !1,
                useFrames: o,
                overwrite: 0
            })
        }, B.set = function(e, t) {
            return new B(e, 0, t)
        }, B.killTweensOf = B.killDelayedCallsTo = function(e, t) {
            for (var s = B.getTweensOf(e), i = s.length; --i > -1;) s[i]._kill(t, e)
        }, B.getTweensOf = function(e) {
            if (null == e) return [];
            e = "string" != typeof e ? e : B.selector(e) || e;
            var t, s, i, o;
            if ((e instanceof Array || P(e)) && "number" != typeof e[0]) {
                for (t = e.length, s = []; --t > -1;) s = s.concat(B.getTweensOf(e[t]));
                for (t = s.length; --t > -1;)
                    for (o = s[t], i = t; --i > -1;) o === s[i] && s.splice(t, 1)
            } else
                for (s = C(e).concat(), t = s.length; --t > -1;) s[t]._gc && s.splice(t, 1);
            return s
        };
        var U = f("plugins.TweenPlugin", function(e, t) {
            this._overwriteProps = (e || "").split(","), this._propName = this._overwriteProps[0], this._priority = t || 0, this._super = U.prototype
        }, !0);
        if (i = U.prototype, U.version = "1.9.1", U.API = 2, i._firstPT = null, i._addTween = function(e, t, s, i, o, n) {
                var r, l;
                null != i && (r = "number" == typeof i || "=" !== i.charAt(1) ? Number(i) - s : parseInt(i.charAt(0) + "1", 10) * Number(i.substr(2))) && (this._firstPT = l = {
                    _next: this._firstPT,
                    t: e,
                    p: t,
                    s: s,
                    c: r,
                    f: "function" == typeof e[t],
                    n: o || t,
                    r: n
                }, l._next && (l._next._prev = l))
            }, i.setRatio = function(e) {
                for (var t, s = this._firstPT, i = 1e-6; s;) t = s.c * e + s.s, s.r ? t = t + (t > 0 ? .5 : -.5) >> 0 : i > t && t > -i && (t = 0), s.f ? s.t[s.p](t) : s.t[s.p] = t, s = s._next
            }, i._kill = function(e) {
                var t, s = this._overwriteProps,
                    i = this._firstPT;
                if (null != e[this._propName]) this._overwriteProps = [];
                else
                    for (t = s.length; --t > -1;) null != e[s[t]] && s.splice(t, 1);
                for (; i;) null != e[i.n] && (i._next && (i._next._prev = i._prev), i._prev ? (i._prev._next = i._next, i._prev = null) : this._firstPT === i && (this._firstPT = i._next)), i = i._next;
                return !1
            }, i._roundProps = function(e, t) {
                for (var s = this._firstPT; s;)(e[this._propName] || null != s.n && e[s.n.split(this._propName + "_").join("")]) && (s.r = t), s = s._next
            }, B._onPluginEvent = function(e, t) {
                var s, i, o, n, r, l = t._firstPT;
                if ("_onInitAllProps" === e) {
                    for (; l;) {
                        for (r = l._next, i = o; i && i.pr > l.pr;) i = i._next;
                        (l._prev = i ? i._prev : n) ? l._prev._next = l: o = l, (l._next = i) ? i._prev = l : n = l, l = r
                    }
                    l = t._firstPT = o
                }
                for (; l;) l.pg && "function" == typeof l.t[e] && l.t[e]() && (s = !0), l = l._next;
                return s
            }, U.activate = function(e) {
                for (var t = e.length; --t > -1;) e[t].API === U.API && (R[(new e[t])._propName] = e[t]);
                return !0
            }, _.plugin = function(e) {
                if (!(e && e.propName && e.init && e.API)) throw "illegal plugin definition.";
                var t, s = e.propName,
                    i = e.priority || 0,
                    o = e.overwriteProps,
                    n = {
                        init: "_onInitTween",
                        set: "setRatio",
                        kill: "_kill",
                        round: "_roundProps",
                        initAll: "_onInitAllProps"
                    },
                    r = f("plugins." + s.charAt(0).toUpperCase() + s.substr(1) + "Plugin", function() {
                        U.call(this, s, i), this._overwriteProps = o || []
                    }, e.global === !0),
                    l = r.prototype = new U(s);
                l.constructor = r, r.API = e.API;
                for (t in n) "function" == typeof e[t] && (l[n[t]] = e[t]);
                return r.version = e.version, U.activate([r]), r
            }, t = e._gsQueue) {
            for (s = 0; s < t.length; s++) t[s]();
            for (i in h) h[i].func || e.console.log("GSAP encountered missing dependency: com.greensock." + i)
        }
        n = !1
    }(window);