/* FWDMSimpleButton */ (function (window){ var FWDMSimpleButton = function( nImg, sImg, vector, vectorClass1N, vectorCalss1S, vectorClass2N, vectorClass2S){ var _s = this; var prototype = FWDMSimpleButton.prototype; _s.nImg = nImg; _s.sImg = sImg; _s.n_do; _s.s_do; _s.toolTipLabel_str; if(nImg){ _s.totalWidth = _s.nImg.width; _s.totalHeight = _s.nImg.height; } _s.isDisabled_bl = false; _s.isSelectedFinal_bl = false; _s.isActive_bl = false; _s.isMobile_bl = FWDMUtils.isMobile; _s.hasPointerEvent_bl = FWDMUtils.hasPointerEvent; //##########################################// /* initialize _s */ //##########################################// _s.init = function(){ _s.setupMainContainers(); }; //##########################################// /* setup main containers */ //##########################################// _s.setupMainContainers = function(){ if(vector){ _s.dumy = new FWDMSimpleDisplayObject('div'); _s.dumy.getStyle().width = '100%'; _s.dumy.getStyle().height = '100%'; _s.isHandler = vectorClass1N.indexOf('handler') != -1 ? true : false; _s.isSkin1 = vectorClass1N.indexOf('skin1') != -1 ? true : false; _s.setOverflow('visible'); _s.n_do = new FWDMDisplayObject("div"); _s.n_do.getStyle().lineHeight = 0; _s.m_cnt = new FWDMDisplayObject("div",'relative'); _s.m_cnt.setOverflow('visible'); _s.m_cnt.getStyle().boxSizing = 'border-box'; _s.m_cnt.getStyle().lineHeight = 0; _s.vectCnt_do = new FWDMDisplayObject('div', 'relative'); _s.vectCnt_do.getStyle().lineHeight = 0; _s.vectCnt_do.getStyle().display = 'flex'; _s.vectCnt_do.getStyle().alignItems = 'center'; _s.vectCnt_do.getStyle().justifyContent = 'center'; _s.vctIcn_do = new FWDMDisplayObject('div', 'relative'); _s.vctIcn_do.getStyle().lineHeight = 0; _s.vctIcn_do.setInnerHTML(vector); if(_s.isHandler){ _s.vectCnt_do.getStyle().padding = '4px'; _s.vctIcn_do.setAlpha(1); _s.dumy = new FWDMDisplayObject('div'); _s.dumy.getStyle().width = '100%'; _s.dumy.getStyle().height = '100%'; } _s.n_do.addChild(_s.m_cnt); _s.m_cnt.addChild(_s.vectCnt_do); _s.vectCnt_do.addChild(_s.vctIcn_do); if(_s.isHandler){ _s.n_do.addChild(_s.dumy); } _s.addChild(_s.n_do); _s.addChild(_s.dumy); _s.setNormalState(); _s.setFinalSize(); }else{ _s.n_do = new FWDMSimpleDisplayObject("img"); _s.n_do.setScreen(_s.nImg); _s.s_do = new FWDMSimpleDisplayObject("img"); _s.s_do.setScreen(_s.sImg); _s.s_do.setAlpha(0); _s.addChild(_s.n_do); _s.addChild(_s.s_do); _s.setWidth(_s.nImg.width); _s.setHeight(_s.nImg.height); } _s.setButtonMode(true); if(_s.isMobile_bl){ if(_s.hasPointerEvent_bl){ _s.screen.addEventListener("MSPointerDown", _s.onMouseDown); _s.screen.addEventListener("MSPointerUp", _s.onClick); _s.screen.addEventListener("MSPointerOver", _s.onMouseOver); _s.screen.addEventListener("MSPointerOut", _s.onMouseOut); }else{ _s.screen.addEventListener("touchstart", _s.onMouseDown); } }else if(_s.screen.addEventListener){ _s.screen.addEventListener("mouseover", _s.onMouseOver); _s.screen.addEventListener("mouseout", _s.onMouseOut); _s.screen.addEventListener("mousedown", _s.onMouseDown); _s.screen.addEventListener("click", _s.onClick); }else if(_s.screen.attachEvent){ _s.screen.attachEvent("onmouseover", _s.onMouseOver); _s.screen.attachEvent("onmouseout", _s.onMouseOut); _s.screen.attachEvent("onmousedown", _s.onMouseDown); _s.screen.attachEvent("onclick", _s.onClick); } }; _s.onMouseOver = function(e){ if(!e.pointerType || e.pointerType == e.MSPOINTER_TYPE_MOUSE){ _s.dispatchEvent(FWDMSimpleButton.MOUSE_OVER, {e:e}); if(_s.isDisabled_bl || _s.isSelectedFinal_bl) return; _s.setSelectedState(true); } }; _s.onMouseOut = function(e){ if(!e.pointerType || e.pointerType == e.MSPOINTER_TYPE_MOUSE){ _s.dispatchEvent(FWDMSimpleButton.MOUSE_OUT, {e:e}); if(_s.isDisabled_bl || _s.isSelectedFinal_bl) return; _s.setNormalState(true); } }; _s.onClick = function(e){ if(_s.isDisabled_bl || _s.isSelectedFinal_bl) return; _s.dispatchEvent(FWDMSimpleButton.CLICK, {e:e}); }; _s.onMouseDown = function(e){ if(e.preventDefault) e.preventDefault(); if(_s.isDisabled_bl || _s.isSelectedFinal_bl) return; _s.dispatchEvent(FWDMSimpleButton.MOUSE_DOWN, {e:e}); }; _s.checkCount = 0; _s.setFinalSize = function(reset){ if(!_s) return; if(reset){ _s.checkCount = 0; } clearInterval(_s.checkId_int); if(_s.checkCount > 6) return; _s.lastWidth = _s.vectCnt_do.screen.offsetWidth; _s.checkCount +=1; _s.checkId_int = setInterval(function(){ if(!_s) return; _s.setFinalSize(); },100); if(_s.prevWidth == _s.lastWidth || _s.lastWidth == 0) return; _s.setWidth(_s.vectCnt_do.screen.offsetWidth); _s.setHeight(_s.vectCnt_do.screen.offsetHeight); _s.n_do.setWidth(_s.w); _s.n_do.setHeight(_s.h); _s.buttonWidth = _s.w; _s.buttonHeight = _s.h; _s.totalWidth = _s.w; _s.totalHeight = _s.h; _s.prevWidth = _s.lastWidth; } //##############################// // set select / deselect final. //##############################// _s.setNormalState = function(anim){ if(vector){ FWDAnimation.killTweensOf(_s.vctIcn_do.screen); if(vectorClass2N){ FWDAnimation.killTweensOf(_s.vectCnt_do.screen); } if(anim){ if(vectorClass2N){ FWDAnimation.to(_s.vectCnt_do.screen, .6, {className:vectorClass2N, ease:Expo.easeOut}); } FWDAnimation.to(_s.vctIcn_do.screen, .6, {className:vectorClass1N, ease:Expo.easeOut}); }else{ _s.vctIcn_do.screen.className = vectorClass1N; if(vectorClass2N){ _s.vectCnt_do.screen.className = vectorClass2N; } } }else{ FWDAnimation.killTweensOf(_s.s_do); FWDAnimation.to(_s.s_do, .5, {alpha:0, ease:Expo.easeOut}); } } _s.setSelectedState = function(anim){ if(_s.isDisabled) return; if(vector){ FWDAnimation.killTweensOf(_s.vctIcn_do.screen); if(vectorClass2N){ FWDAnimation.killTweensOf(_s.vectCnt_do.screen); } if(anim){ if(vectorClass2S){ FWDAnimation.to(_s.vectCnt_do.screen, .8, {className:vectorClass2S, ease:Expo.easeOut}); } FWDAnimation.to(_s.vctIcn_do.screen, .8, {className:vectorCalss1S, ease:Expo.easeOut}); }else{ if(vectorClass2S){ _s.vectCnt_do.screen.className = vectorClass2S; } _s.vctIcn_do.screen.className = vectorCalss1S; } }else{ FWDAnimation.killTweensOf(_s.s_do); FWDAnimation.to(_s.s_do, .5, {alpha:1, delay:.1, ease:Expo.easeOut}); } } _s.setSelctedFinal = function(){ _s.isSelectedFinal_bl = true; _s.setSelectedState(true); _s.setButtonMode(false); }; _s.setUnselctedFinal = function(){ _s.isSelectedFinal_bl = false; _s.setNormalState(true); _s.setButtonMode(true); }; _s.disable = function(){ _s.isDisabled = true; FWDAnimation.killTweensOf(_s); FWDAnimation.to(_s, .5, {alpha:.6, ease:Expo.easeOut}); }; _s.enable = function(){ _s.isDisabled = false; FWDAnimation.killTweensOf(_s); FWDAnimation.to(_s, .5, {alpha:1, ease:Expo.easeOut}); }; //##############################// /* destroy */ //##############################// _s.destroy = function(){ if(_s.isMobile_bl){ if(_s.hasPointerEvent_bl){ _s.screen.removeEventListener("MSPointerDown", _s.onMouseDown); _s.screen.removeEventListener("MSPointerUp", _s.onClick); _s.screen.removeEventListener("MSPointerOver", _s.onMouseOver); _s.screen.removeEventListener("MSPointerOut", _s.onMouseOut); }else{ _s.screen.removeEventListener("touchstart", _s.onMouseDown); } }else if(_s.screen.addEventListener){ _s.screen.removeEventListener("mouseover", _s.onMouseOver); _s.screen.removeEventListener("mouseout", _s.onMouseOut); _s.screen.removeEventListener("mousedown", _s.onMouseDown); _s.screen.removeEventListener("click", _s.onClick); }else if(_s.screen.detachEvent){ _s.screen.detachEvent("onmouseover", _s.onMouseOver); _s.screen.detachEvent("onmouseout", _s.onMouseOut); _s.screen.detachEvent("onmousedown", _s.onMouseDown); _s.screen.detachEvent("onclick", _s.onClick); } FWDAnimation.killTweensOf(_s.s_do); _s.n_do.destroy(); if(_s.s_do) _s.s_do.destroy(); _s.nImg = null; _s.sImg = null; _s.n_do = null; _s.s_do = null; nImg = null; sImg = null; _s.toolTipLabel_str = null; _s.init = null; _s.setupMainContainers = null; _s.onMouseOver = null; _s.onMouseOut = null; _s.onClick = null; _s.onMouseDown = null; _s.setSelctedFinal = null; _s.setUnselctedFinal = null; _s.setInnerHTML(""); prototype.destroy(); _s = null; prototype = null; FWDMSimpleButton.prototype = null; }; _s.init(); }; /* set prototype */ FWDMSimpleButton.setPrototype = function(){ FWDMSimpleButton.prototype = null; FWDMSimpleButton.prototype = new FWDMDisplayObject("div"); }; FWDMSimpleButton.CLICK = "onClick"; FWDMSimpleButton.MOUSE_OVER = "onMouseOver"; FWDMSimpleButton.MOUSE_OUT = "onMouseOut"; FWDMSimpleButton.MOUSE_DOWN = "onMouseDown"; FWDMSimpleButton.prototype = null; window.FWDMSimpleButton = FWDMSimpleButton; }(window));