/* Thumb */ (function (window){ var FWDMPreloader = function( parent, fontColor, backgroundColor ){ var _s = this; var prototype = FWDMPreloader.prototype; _s.bk_do = null; _s.mainHolder_do = null; _s.text_do = null; _s.preloaderWidth = parent._d.preloaderWidth; _s.preloaderWindowBackgroundOpacity = parent._d.preloaderWindowBackgroundOpacity; _s.showPreloaderProgressBar = parent._d.showPreloaderProgressBar; _s.preloaderProgressBarBackgroundColor = parent._d.preloaderProgressBarBackgroundColor; _s.preloaderProgressBarFillColor = parent._d.preloaderProgressBarFillColor; _s.preloaderPosition = parent._d.preloaderPosition; _s.preloaderOffestX = parent._d.preloaderOffsetX; _s.preloaderOffestY = parent._d.preloaderOffsetY; _s.preloaderBackgroundSize = parent._d.preloaderBackgroundSize; _s.backgroundColor_str = backgroundColor; _s.fontColor_str = fontColor; _s.stageWidth; _s.stageHeight; _s.isShowed_bl = false; _s.allowResize_bl = true; //###################################// /* init */ //###################################// _s.init = function(){ _s.setupMainContainers(); /*if(FWDMUtils.isMobile){ _s.screen.addEventListener("touchstart", _s.windowTouchStartHandler); };*/ }; _s.windowTouchStartHandler = function(e){ if(e.preventDefault) e.preventDefault(); }; //###################################// /* setup main containers. */ //###################################// _s.setupMainContainers = function(){ _s.bk_do = new FWDMSimpleDisplayObject("div"); _s.bk_do.screen.className = 'fwdm-preloader-background'; _s.bk_do.setBkColor(_s.backgroundColor_str); _s.bk_do.setAlpha(0); _s.bk_do.setResizableSizeAfterParent(); _s.addChild(_s.bk_do); _s.mainHolder_do = new FWDMDisplayObject("div"); _s.mainHolder_do.setWidth(1); _s.mainHolder_do.setOverflow("visible"); _s.mainHolder_do.getStyle().width = '100%'; _s.addChild(_s.mainHolder_do); _s.mainHolder2_do = new FWDMDisplayObject("div"); _s.mainHolder2_do.setOverflow("visible"); _s.mainHolder2_do.getStyle().width = '100%'; _s.mainHolder_do.addChild(_s.mainHolder2_do); if(_s.showPreloaderProgressBar){ _s.bar_do = new FWDMDisplayObject("div"); _s.bar_do.getStyle().width = '100%'; _s.bar_do.setOverflow('visible'); _s.barBk_do = new FWDMDisplayObject("div"); _s.barBk_do.screen.className = 'fwdm-preloader-bar-background'; _s.barBk_do.getStyle().height = '10px'; _s.barBk_do.getStyle().width = '100%'; _s.barBk_do.getStyle().height = '100%'; _s.barBk_do.getStyle().backgroundColor = _s.preloaderProgressBarBackgroundColor; _s.barFill_do = new FWDMDisplayObject("div"); _s.barFill_do.screen.className = 'fwdm-preloader-bar-fill'; _s.barFill_do.getStyle().width = 0; _s.barFill_do.getStyle().height = "19px"; _s.barFill_do.getStyle().backgroundColor = _s.preloaderProgressBarFillColor; _s.bar_do.addChild(_s.barBk_do); _s.bar_do.addChild(_s.barFill_do); _s.mainHolder2_do.addChild(_s.bar_do); } _s.text_do = new FWDMSimpleDisplayObject("div"); _s.text_do.screen.className = 'fwdm-preloader-text'; _s.dumyText_do = new FWDMSimpleDisplayObject("div"); _s.dumyText_do.screen.className = 'fwdm-preloader-text'; _s.dumyText_do.setInnerHTML(parent._d.preloaderText_str + '100%'); _s.dumyText_do.setVisible(false); _s.text_do.setDisplay("inline-block"); _s.text_do.getStyle().fontFamily = "Arial"; _s.text_do.getStyle().fontSize= "12px"; _s.text_do.getStyle().whiteSpace = "nowrap"; _s.text_do.getStyle().color = _s.fontColor_str; _s.text_do.setY(_s.segmentHeight + 2); _s.mainHolder2_do.addChild(_s.text_do); _s.addChild(_s.dumyText_do); }; //###################################// /* position and resize. */ //###################################// _s.positionAndResize = function(){ if(parent.stageWidth == _s.stageWidth && parent.stageHeight == _s.stageHeight) return; if(!_s.allowResize_bl) return; _s.stageWidth = parent.stageWidth; _s.stageHeight = parent.stageHeight; _s.setWidth(_s.stageWidth); _s.setHeight(_s.stageHeight); _s.position(); }; _s.position = function(){ if(_s.bar_do || _s.preloaderBackgroundSize == 'small'){ if(_s.bar_do){ _s.bar_do.setHeight(_s.barFill_do.getHeight()); _s.barBk_do.setY(Math.round((_s.barFill_do.getHeight() - _s.barBk_do.getHeight())/2)); } if(_s.preloaderWidth.indexOf('%') != -1){ _s.mainHolder_do.getStyle().width = _s.preloaderWidth; }else{ _s.mainHolder_do.getStyle().width = Math.round(_s.dumyText_do.getWidth()) + 'px'; } } var t = _s.preloaderPosition; if(_s.stageWidth < 600){ t = 'center'; } if(t == 'topleft'){ _s.mainHolder_do.setX(_s.preloaderOffestX); _s.mainHolder_do.setY(_s.preloaderOffestY); }else if(t == 'topright'){ _s.mainHolder_do.setX(Math.round(_s.stageWidth - _s.mainHolder_do.getWidth() - _s.preloaderOffestX)); _s.mainHolder_do.setY(_s.preloaderOffestY); }else if(t == 'bottomleft'){ _s.mainHolder_do.setX(_s.preloaderOffestX); _s.mainHolder_do.setY(_s.stageHeight - _s.mainHolder_do.getHeight() - _s.preloaderOffestY); }else if(t == 'bottomright'){ _s.mainHolder_do.setX(Math.round(_s.stageWidth - _s.mainHolder_do.getWidth() - _s.preloaderOffestX)); _s.mainHolder_do.setY(_s.stageHeight - _s.mainHolder_do.getHeight() - _s.preloaderOffestY); }else{ _s.mainHolder_do.setX(Math.round(_s.stageWidth - _s.mainHolder_do.getWidth())/2); _s.mainHolder_do.setY(Math.round((_s.stageHeight - _s.mainHolder_do.getHeight())/2)); } if(_s.preloaderBackgroundSize == 'small'){ _s.bk_do.setWidth(_s.mainHolder_do.getWidth() + 60); _s.bk_do.setHeight(_s.mainHolder_do.getHeight() + 40); _s.bk_do.setX(_s.mainHolder_do.x - 30); _s.bk_do.setY(_s.mainHolder_do.y - 25); } } //###################################// /* start / stop preloader animation */ //###################################// _s.update = function(percent, text){ _s.text_do.setY(0); if(_s.bar_do){ _s.barFill_do.getStyle().width = Math.round(percent * 100) + '%'; _s.text_do.setY(_s.barFill_do.getHeight()); } _s.text_do.setInnerHTML(text); _s.text_do.getStyle().left = '50%'; _s.text_do.getStyle().transform = 'translateX(-50%)'; _s.mainHolder_do.setHeight(_s.text_do.y + _s.text_do.getHeight()); _s.text_do.setX(Math.round((_s.segmentWidth - _s.text_do.getWidth())/2)); _s.position(); }; //###################################// /* show / hide preloader animation */ //###################################// _s.show = function(){ FWDAnimation.killTweensOf(_s.bk_do); FWDAnimation.killTweensOf(_s.mainHolder2_do); FWDAnimation.to(_s.bk_do, 1, {alpha:_s.preloaderWindowBackgroundOpacity}); FWDAnimation.to(_s.mainHolder2_do, 1, {alpha:1, y:0, delay: .1, ease:Expo.easeInOut}); _s.isShowed_bl = true; }; _s.hide = function(animate){ if(_s == null) return; FWDAnimation.killTweensOf(_s); FWDAnimation.killTweensOf(_s.mainHolder2_do); if(animate){ _s.allowResize_bl = false; FWDAnimation.to(_s.bk_do, 1, {alpha:0, delay:.2, onComplete:_s.onHideComplete}); FWDAnimation.to(_s.mainHolder2_do, .8, {alpha:0, y:20, ease: Expo.easeInOut}); }else{ _s.bk_do.setAlpha(0); _s.mainHolder2_do.setAlpha(0); _s.mainHolder2_do.setY(-20); } _s.isShowed_bl = false; }; _s.onHideComplete = function(){ _s.dispatchEvent(FWDMPreloader.HIDE_COMPLETE); }; //###################################// /* destroy */ //##################################// _s.destroy = function(){ if(FWDMUtils.isMobile){ _s.screen.removeEventListener("touchstart", _s.windowTouchStartHandler); }; FWDAnimation.killTweensOf(_s.bk_do); FWDAnimation.killTweensOf(_s.mainHolder2_do); _s.bk_do = null; _s.mainHolder2_do = null; _s.text_do = null; _s.backgroundColor_str = null; _s.fontColor_str = null; _s.init = null; _s.setupMainContainers = null; _s.positionAndResize = null; _s.update = null; _s.show = null; _s.hide = null; _s.onHideComplete = null; parent = null; backgroundColor = null; fontColor = null; _s.setInnerHTML(""); prototype.destroy(); _s = null; FWDMPreloader.prototype = null; }; _s.init(); }; /* set prototype */ FWDMPreloader.setPrototype = function(){ FWDMPreloader.prototype = new FWDMDisplayObject("div"); }; FWDMPreloader.HIDE_COMPLETE = "hideComplete"; FWDMPreloader.prototype = null; window.FWDMPreloader = FWDMPreloader; }(window));