Type.registerNamespace("Sys.Extended.UI.HtmlEditor.ToolbarButtons"); Sys.Extended.UI.HtmlEditor.ToolbarButtons.CommonButton = function(element) { Sys.Extended.UI.HtmlEditor.ToolbarButtons.CommonButton.initializeBase(this, [element]); this._loaded = false; this._preservePlace = false; this._editPanel = null; this._activeModes = null; this._app_onload$delegate = Function.createDelegate(this, this._app_onload); this._cssClass = ""; this._onmouseover$delegate = Function.createDelegate(this, this._onmouseover); this._onmouseout$delegate = Function.createDelegate(this, this._onmouseout); this._onmousedown$delegate = Function.createDelegate(this, this._onmousedown); this._onmouseup$delegate = Function.createDelegate(this, this._onmouseup); this._onclick$delegate = Function.createDelegate(this, this._onclick); } Sys.Extended.UI.HtmlEditor.ToolbarButtons.CommonButton.prototype = { get_preservePlace: function() { return this._preservePlace; }, set_preservePlace: function(value) { this._preservePlace = value; }, set_activeEditPanel: function(value) { this._editPanel = value; if(this._editPanel == null) { this.hideButton(); } else { if(this.isAllowedActiveMode(this._editPanel.get_activeMode()) && this.canBeShown()) { this.showButton(); this.onEditPanelActivity(); } else { this.hideButton(); } } }, isImage: function() { return true; }, checkRangeInDesign: function() { if(typeof this._designPanel == "undefined") return false; if(this._designPanel == null) return false; if(this._designPanel.isPopup()) return false; var parent = Sys.Extended.UI.HtmlEditor.getSelParent(this._designPanel); if(parent.nodeType == 3) parent = parent.parentNode; return (parent.ownerDocument == this._designPanel._doc); }, get_buttonName: function() { var name = Object.getType(this).getName(); name = name.substring(name.lastIndexOf(".") + 1); return name; }, get_message: function(messageName) { var expression = "Sys.Extended.UI.Resources.HtmlEditor_toolbar_button_" + this.get_buttonName() + "_message_" + messageName; return eval(expression); }, isDisplayed: function() { var element = this.get_element(); if(element) { var style = element.style; return (style.display != "none" && style.visibility != "hidden"); } else { return false; } }, hideButton: function() { var element = this.get_element(); if(element) { if(!this._preservePlace) element.style.display = "none"; else element.style.visibility = "hidden"; } }, showButton: function() { var element = this.get_element(); if(element) { if(element.style.display == "none") element.style.display = ""; if(this._preservePlace) element.style.visibility = "visible"; } }, canBeShown: function() { return true; }, onEditPanelActivity: function() { }, get_activeModes: function() { if(this._activeModes == null) this._activeModes = []; return this._activeModes; }, set_activeModes: function(value) { this.get_activeModes().push(value); }, get_activeModesIds: function() { }, set_activeModesIds: function(value) { var arr = value.split(";"); for(var i = 0; i < arr.length; i++) this.set_activeModes(parseInt(arr[i])); }, set_toolTip: function(value) { this.get_element().title = value; }, get_toolTip: function() { return this.get_element().title; }, isAllowedActiveMode: function(value) { for(var i = 0; i < this.get_activeModes().length; i++) if(this.get_activeModes()[i] == value) return true; return false; }, initialize: function() { Sys.Extended.UI.HtmlEditor.ToolbarButtons.CommonButton.callBaseMethod(this, "initialize"); Sys.Application.add_load(this._app_onload$delegate); var element = this.get_element(); if(this._preservePlace && !this.canBeShown()) element.style.display = "none"; this._cssClass = element.className; if(this.isImage()) $addHandlers(element, { mouseover: this._onmouseover$delegate, mouseout: this._onmouseout$delegate, mousedown: this._onmousedown$delegate, mouseup: this._onmouseup$delegate, click: this._onclick$delegate }); if(Sys.Extended.UI.HtmlEditor.isIE) { function diveSelectable(el) { if(el.nodeType == 1 && el.tagName) { var tag = el.tagName.toUpperCase(); if(tag != "INPUT" && tag != "TEXTAREA" && tag != "IFRAME") el.unselectable = "on"; for(var k = 0; k < el.childNodes.length; k++) diveSelectable(el.childNodes.item(k)); } } diveSelectable(element); } else { try { element.style.MozUserSelect = "none"; element.parentNode.style.MozUserSelect = "none"; } catch(ex) { } } }, dispose: function() { if(this.isImage()) { $common.removeHandlers(this.get_element(), { mouseover: this._onmouseover$delegate, mouseout: this._onmouseout$delegate, mousedown: this._onmousedown$delegate, mouseup: this._onmouseup$delegate, click: this._onclick$delegate }); } this._loaded = false; Sys.Application.remove_load(this._app_onload$delegate); Sys.Extended.UI.HtmlEditor.ToolbarButtons.CommonButton.callBaseMethod(this, "dispose"); }, _app_onload: function(sender, e) { this.onButtonLoaded(); this._loaded = true; }, onButtonLoaded: function() { }, _onmouseover: function(e) { if(!this.isEnable()) return false; Sys.UI.DomElement.addCssClass(this.get_element(), this._cssClass + "_hover"); return true; }, _onmouseout: function(e) { if(!this.isEnable()) return false; Sys.UI.DomElement.removeCssClass(this.get_element(), this._cssClass + "_hover"); Sys.UI.DomElement.removeCssClass(this.get_element(), this._cssClass + "_mousedown"); return true; }, _onmousedown: function(e) { if(!this.isEnable()) return null; Sys.UI.DomElement.addCssClass(this.get_element(), this._cssClass + "_mousedown"); return false; }, _onmouseup: function(e) { if(!this.isEnable()) return false; Sys.UI.DomElement.removeCssClass(this.get_element(), this._cssClass + "_mousedown"); return true; }, _onclick: function(e) { if(!this.isEnable()) return false; return true; }, isEnable: function() { if(!this._loaded) return false; if(this._editPanel == null) return false; return true; }, setActivity: function(value) { if(value) Sys.UI.DomElement.addCssClass(this.get_element(), this._cssClass + "_active"); else Sys.UI.DomElement.removeCssClass(this.get_element(), this._cssClass + "_active"); } } Sys.Extended.UI.HtmlEditor.ToolbarButtons.CommonButton.registerClass("Sys.Extended.UI.HtmlEditor.ToolbarButtons.CommonButton", Sys.UI.Control);