+ },
+ toggle: function(toggle) {
+ this.el.toggle(toggle);
+ }
+
+})
+
+var managers = {
+ _m: {},
+ set: function(tag, klass, manager) {
+ if(!this._m[tag])
+ this._m[tag] = {};
+ this._m[tag][klass] = manager;
+ },
+ get: function(tag,klass) {
+ if(this._m[tag] && this._m[tag][klass])
+ return this._m[tag][klass];
+ return GenericManager;
+ }
+}
+
+var FootnoteManager = function(wlxmlElement) {
+ this.el = wlxmlElement;
+};
+$.extend(FootnoteManager.prototype, {
+ setup: function() {
+ this.el.clearWidgets();
+
+ var clickHandler = function() {
+ this.toggle(true);
+ }.bind(this);
+ this.footnoteHandler = widgets.footnoteHandler(clickHandler);
+ this.el.addWidget(this.footnoteHandler);
+
+ var closeHandler = function() {
+ this.toggle(false);
+
+ }.bind(this);
+ this.hideButton = widgets.hideButton(closeHandler);
+ this.el.addWidget(this.hideButton);
+
+ this.toggle(false, {silent: true});
+ },
+ toggle: function(toggle, options) {
+ options = options || {};
+ this.hideButton.toggle(toggle);
+ this.footnoteHandler.toggle(!toggle);
+
+ this.el.setDisplayStyle(toggle ? 'block' : 'inline');
+ this.el.toggle(toggle);
+ if(!options.silent)
+ this.el.trigger('elementToggled', toggle, this.el.documentElement);