/* FWDMMarkerWindowToolTip */ (function (window){ var FWDMMarkerWindowToolTip = function( parent, buttonToolTipTopPointer_str, buttonToolTipBottomPointer_str ){ var _s = this; var prototype = FWDMMarkerWindowToolTip.prototype; _s.text_sdo = null; _s.pointerUp_sdo = null; _s.pointerDown_sdo = null; _s.bottomPointer_str = buttonToolTipBottomPointer_str; _s.topPointer_str = buttonToolTipTopPointer_str; _s.pointerPosition_str; _s.toolTipLabel_str; _s.totalHeight = 0; _s.totalWidth; _s.maxWidth; _s.isMobile_bl = FWDMUtils.isMobile; _s.isShowed_bl = true; _s.hasLabel_bl = false; //##########################################// /* initialize _s */ //##########################################// _s.init = function(){ _s.setOverflow("visible"); _s.getStyle().boxSizing = 'border-box'; //_s.setBackfaceVisibility(); _s.setupMainContainers(); _s.hide(); }; //##########################################// /* setup main containers */ //##########################################// _s.setupMainContainers = function(){ _s.text_sdo = new FWDMSimpleDisplayObject("div"); _s.text_sdo.screen.className = 'fwdm-marker-tooltip-window'; _s.text_sdo.setBackfaceVisibility(); _s.text_sdo.getStyle().boxSizing = 'border-box'; _s.text_sdo.getStyle().width = '100%'; _s.addChild(_s.text_sdo); _s.pointerHolder_do = new FWDMDisplayObject("div"); _s.pointerHolder_do.setOverflow('visible'); _s.addChild(_s.pointerHolder_do); _s.pointerDown_sdo = new FWDMSimpleDisplayObject("div"); _s.pointerDown_sdo.hasTransform3d_bl = _s.pointerDown_sdo.hasTransform2d_bl = false; _s.pointerDown_sdo.setY(0); _s.pointerDown_sdo.screen.className = 'fwdm-marker-tooltip-window-pointer fwdm-pointer-down'; _s.pointerDown_sdo.setBkColor(_s.dClr); _s.pointerDown_sdo.getStyle().transform = 'rotate(45deg)'; _s.pointerDown_sdo.setWidth(8); _s.pointerDown_sdo.setHeight(8); _s.pointerDown_sdo.screen.style.position = 'absolute'; _s.pointerUp_sdo = new FWDMSimpleDisplayObject("div"); _s.pointerUp_sdo.hasTransform3d_bl = _s.pointerUp_sdo.hasTransform2d_bl = false; _s.pointerUp_sdo.setY(0); _s.pointerUp_sdo.screen.className = 'fwdm-marker-tooltip-window-pointer fwdm-pointer-up'; _s.pointerUp_sdo.getStyle().transform = 'rotate(45deg)'; _s.pointerUp_sdo.setBkColor(_s.dClr); _s.pointerUp_sdo.setWidth(8); _s.pointerUp_sdo.setHeight(8); _s.pointerUp_sdo.screen.style.position = 'absolute'; _s.pointerHolder_do.addChild(_s.pointerUp_sdo); _s.pointerHolder_do.addChild(_s.pointerDown_sdo); }; //##########################################// /* set label */ //##########################################// _s.setLabel = function(label, maxWidth){ if(_s == null) return; _s.maxWidth = maxWidth; var curWidth = Math.min(_s.maxWidth, FWDMUtils.getViewportSize().w); _s.totalWidth = curWidth; _s.setWidth(_s.totalWidth); _s.text_sdo.setInnerHTML(label); setTimeout(function(){ _s.pointerWidth = _s.pointerUp_sdo.getWidth(); _s.pointerHeight = _s.pointerUp_sdo.getHeight(); _s.totalHeight = _s.text_sdo.getHeight() + _s.pointerHeight; _s.setWidth(_s.totalWidth); _s.setHeight(_s.totalHeight - _s.pointerHeight); },79); }; _s.positionPointer = function(offsetX, position){ var finalX = 0; var finalY = 0; if(!offsetX) offsetX = 0; finalX = parseInt((_s.totalWidth - _s.pointerWidth)/2) + offsetX; if(finalX < 0) finalX = 0; if(position == FWDMMarkerToolTip.POINTER_DOWN){ _s.text_sdo.screen.className = 'fwdm-marker-tooltip-window fwdm-pointer-down'; finalY = Math.round(_s.totalHeight - _s.pointerHeight - _s.pointerHeight/2); _s.pointerDown_sdo.setX(finalX); _s.pointerDown_sdo.setY(finalY); }else{ _s.text_sdo.screen.className = 'fwdm-marker-tooltip-window fwdm-pointer-up'; finalY = - _s.pointerHeight + Math.round(_s.pointerHeight/2); _s.pointerUp_sdo.setX(finalX); _s.pointerUp_sdo.setY(finalY); } }; //##########################################// /* show / hide*/ //##########################################// _s.show = function(){ if(_s.isShowed_bl) return; parent.markerShowed = true; _s.positionPointer(); if(_s.isMobile_bl){ _s.setAlpha(1); }else{ FWDAnimation.to(_s, .4, {alpha:1, delay:.1, ease:Quart.easeOut}); } _s.isShowed_bl = true; }; _s.hide = function(){ if(!_s.isShowed_bl) return; parent.markerShowed = false; if(!_s.isMobile_bl) FWDAnimation.killTweensOf(_s); _s.setX(-5000); _s.setAlpha(0); _s.text_sdo.setInnerHTML(""); _s.isShowed_bl = false; }; //##############################// /* destroy */ //##############################// _s.destroy = function(){ FWDAnimation.killTweensOf(_s); _s.text_sdo.destroy(); _s.pointerUp_sdo.destroy(); _s.pointerDown_sdo.destroy(); _s.text_sdo = null; _s.pointerUp_sdo = null; _s.pointerDown_sdo = null; _s.bottomPointer_str = null; _s.topPointer_str = null; _s.pointerPosition_str = null; _s.toolTipLabel_str = null; parent = null; buttonToolTipTopPointer_str = null; buttonToolTipBottomPointer_str = null; _s.setInnerHTML(""); prototype.destroy(); _s = null; prototype = null; FWDMMarkerWindowToolTip.prototype = null; }; _s.init(); }; /* set prototype */ FWDMMarkerWindowToolTip.setPrototype = function(){ FWDMMarkerWindowToolTip.prototype = null; FWDMMarkerWindowToolTip.prototype = new FWDMDisplayObject("div"); }; FWDMMarkerWindowToolTip.POINTER_UP = "pointerUp"; FWDMMarkerWindowToolTip.POINTER_DOWN = "pointerDown"; FWDMMarkerWindowToolTip.CLICK = "onClick"; FWDMMarkerWindowToolTip.MOUSE_DOWN = "onMouseDown"; FWDMMarkerWindowToolTip.prototype = null; window.FWDMMarkerWindowToolTip = FWDMMarkerWindowToolTip; }(window));