-// Copyright (c) 2006 spinelz.org (http://script.spinelz.org/)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-var ToolBar = Class.create();
-ToolBar.className = {
- container : 'toolbar_container',
- containerLeft : 'toolbar_containerLeft',
- containerMiddle : 'toolbar_containerMiddle',
- containerRight : 'toolbar_containerRight',
- toolbarItem : 'toolbar_item',
- toolbarItemHover : 'toolbar_itemHov',
- toolbarItemPres : 'toolbar_itemPres',
- toolbarContent : 'toolbar_content',
- toolbarContentPres: 'toolbar_contentPres'
-}
-
-ToolBar.prototype = {
-
- initialize: function(element) {
- var options = Object.extend({
- cssPrefix : 'custom_'
- }, arguments[1] || {});
-
- this.element = $(element);
- Element.setStyle(this.element, {visibility: 'hidden'});
- Element.hide(this.element);
- this.options = options;
-
- var customCss = CssUtil.appendPrefix(this.options.cssPrefix, ToolBar.className);
- this.classNames = new CssUtil([ToolBar.className, customCss]);
-
- this.build();
- Element.setStyle(this.element, {visibility: 'visible'});
- Element.show(this.element);
- },
-
- build: function() {
-// Element.cleanWhitespace(this.element);
- this.classNames.addClassNames(this.element, 'container');
- var iconList = this.element.childNodes;
-
- var containerLeft = Builder.node('div');
- this.classNames.addClassNames(containerLeft, 'containerLeft');
-
- this.containerMiddle = Builder.node('div');
- this.classNames.addClassNames(this.containerMiddle, 'containerMiddle');
-
- var containerRight = Builder.node('div');
- this.classNames.addClassNames(containerRight, 'containerRight');
-
- var removeList = [];
- var toolbar = this;
- $A(iconList).each(function(i) {
- if (i.nodeType != 1) {
- throw $continue;
- }
- toolbar.buildIcon(i);
- });
-
- this.element.appendChild(containerLeft);
- this.element.appendChild(this.containerMiddle);
- this.element.appendChild(containerRight);
- },
-
- buildIcon: function(icon) {
- var toolbarItem = Builder.node('div');
- this.classNames.addClassNames(toolbarItem, 'toolbarItem');
-
- var toolbarContent = Builder.node('div');
- this.classNames.addClassNames(toolbarContent, 'toolbarContent');
-
- toolbarContent.appendChild(icon);
- toolbarItem.appendChild(toolbarContent);
- this.containerMiddle.appendChild(toolbarItem);
- this.setHovEvent(toolbarItem);
- this.setPresEvent(toolbarItem);
- },
-
- addIcon: function(options) {
- var iconOptions = Object.extend({
- id : 'newIcon',
- src : 'url',
- alt : 'icon',
- width: 15,
- height: 15
- }, arguments[0] || {});
- if (!$(iconOptions.id)) {
- var icon = Builder.node('img', {id: iconOptions.id, src: iconOptions.src, alt: iconOptions.alt, style: 'width: ' + iconOptions.width + 'px; height: ' + iconOptions.height + 'px;'});
- this.buildIcon(icon);
- }
- },
-
- removeIcon: function(icon) {
- var target = $(icon);
- if (target) {
- var itemNode = target.parentNode.parentNode;
- Element.remove(itemNode);
- }
- },
-
- addEvent: function(icon, eventName, func) {
- var target = $(icon);
- if (target) {
- var itemNode = target.parentNode.parentNode;
- Event.observe(itemNode, eventName, func);
- }
- },
-
- removeEvent: function(icon, eventName, func) {
- var target = $(icon);
- if (target) {
- var itemNode = target.parentNode.parentNode;
- Event.stopObserving(itemNode, eventName, func);
- }
- },
- setHovEvent: function(element) {
- Event.observe(element, "mouseout", this.toggleItemClass(element, 'toolbarItem').bindAsEventListener(this));
- Event.observe(element, "mouseover", this.toggleItemClass(element, 'toolbarItemHover').bindAsEventListener(this));
- Event.observe(element, "mouseout", this.toggleItemClass(element.childNodes[0], 'toolbarContent').bindAsEventListener(this));
- },
-
- setPresEvent: function(element) {
- Event.observe(element, "mousedown", this.toggleItemClass(element, 'toolbarItemPres').bindAsEventListener(this));
- Event.observe(element, "mouseup", this.toggleItemClass(element, 'toolbarItem').bindAsEventListener(this));
- Event.observe(element, "mousedown", this.toggleItemClass(element.childNodes[0], 'toolbarContentPres').bindAsEventListener(this));
- Event.observe(element, "mouseup", this.toggleItemClass(element.childNodes[0], 'toolbarContent').bindAsEventListener(this));
- },
-
- toggleItemClass: function(target, className) {
- return function() {
- this.classNames.refreshClassNames(target, className);
- }
- }
-}
+// Copyright (c) 2006 spinelz.org (http://script.spinelz.org/)\r
+// \r
+// Permission is hereby granted, free of charge, to any person obtaining\r
+// a copy of this software and associated documentation files (the\r
+// "Software"), to deal in the Software without restriction, including\r
+// without limitation the rights to use, copy, modify, merge, publish,\r
+// distribute, sublicense, and/or sell copies of the Software, and to\r
+// permit persons to whom the Software is furnished to do so, subject to\r
+// the following conditions:\r
+// \r
+// The above copyright notice and this permission notice shall be\r
+// included in all copies or substantial portions of the Software.\r
+//\r
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
+\r
+var ToolBar = Class.create();\r
+ToolBar.className = {\r
+ container : 'toolbar_container',\r
+ containerLeft : 'toolbar_containerLeft',\r
+ containerMiddle : 'toolbar_containerMiddle',\r
+ containerRight : 'toolbar_containerRight', \r
+ toolbarItem : 'toolbar_item',\r
+ toolbarItemHover : 'toolbar_itemHov',\r
+ toolbarItemPres : 'toolbar_itemPres',\r
+ toolbarContent : 'toolbar_content',\r
+ toolbarContentPres: 'toolbar_contentPres'\r
+}\r
+\r
+ToolBar.prototype = {\r
+\r
+ initialize: function(element) {\r
+ var options = Object.extend({\r
+ cssPrefix : 'custom_'\r
+ }, arguments[1] || {});\r
+ \r
+ this.element = $(element);\r
+ Element.setStyle(this.element, {visibility: 'hidden'});\r
+ Element.hide(this.element);\r
+ this.options = options;\r
+ \r
+ var customCss = CssUtil.appendPrefix(this.options.cssPrefix, ToolBar.className);\r
+ this.classNames = new CssUtil([ToolBar.className, customCss]);\r
+ \r
+ this.build();\r
+ Element.setStyle(this.element, {visibility: 'visible'});\r
+ Element.show(this.element);\r
+ },\r
+ \r
+ build: function() {\r
+// Element.cleanWhitespace(this.element);\r
+ this.classNames.addClassNames(this.element, 'container');\r
+ var iconList = this.element.childNodes; \r
+ \r
+ var containerLeft = Builder.node('div');\r
+ this.classNames.addClassNames(containerLeft, 'containerLeft');\r
+ \r
+ this.containerMiddle = Builder.node('div');\r
+ this.classNames.addClassNames(this.containerMiddle, 'containerMiddle');\r
+ \r
+ var containerRight = Builder.node('div');\r
+ this.classNames.addClassNames(containerRight, 'containerRight');\r
+ \r
+ var removeList = [];\r
+ var toolbar = this; \r
+ $A(iconList).each(function(i) {\r
+ if (i.nodeType != 1) {\r
+ throw $continue;\r
+ }\r
+ toolbar.buildIcon(i);\r
+ });\r
+ \r
+ this.element.appendChild(containerLeft);\r
+ this.element.appendChild(this.containerMiddle);\r
+ this.element.appendChild(containerRight);\r
+ },\r
+ \r
+ buildIcon: function(icon) {\r
+ var toolbarItem = Builder.node('div');\r
+ this.classNames.addClassNames(toolbarItem, 'toolbarItem');\r
+ \r
+ var toolbarContent = Builder.node('div');\r
+ this.classNames.addClassNames(toolbarContent, 'toolbarContent');\r
+ \r
+ toolbarContent.appendChild(icon);\r
+ toolbarItem.appendChild(toolbarContent);\r
+ this.containerMiddle.appendChild(toolbarItem);\r
+ this.setHovEvent(toolbarItem);\r
+ this.setPresEvent(toolbarItem);\r
+ },\r
+ \r
+ addIcon: function(options) {\r
+ var iconOptions = Object.extend({\r
+ id : 'newIcon',\r
+ src : 'url',\r
+ alt : 'icon',\r
+ width: 15,\r
+ height: 15\r
+ }, arguments[0] || {});\r
+ if (!$(iconOptions.id)) {\r
+ var icon = Builder.node('img', {id: iconOptions.id, src: iconOptions.src, alt: iconOptions.alt, style: 'width: ' + iconOptions.width + 'px; height: ' + iconOptions.height + 'px;'});\r
+ this.buildIcon(icon);\r
+ }\r
+ },\r
+ \r
+ removeIcon: function(icon) {\r
+ var target = $(icon);\r
+ if (target) {\r
+ var itemNode = target.parentNode.parentNode;\r
+ Element.remove(itemNode);\r
+ } \r
+ }, \r
+\r
+ addEvent: function(icon, eventName, func) {\r
+ var target = $(icon);\r
+ if (target) {\r
+ var itemNode = target.parentNode.parentNode;\r
+ Event.observe(itemNode, eventName, func);\r
+ }\r
+ },\r
+ \r
+ removeEvent: function(icon, eventName, func) {\r
+ var target = $(icon);\r
+ if (target) {\r
+ var itemNode = target.parentNode.parentNode;\r
+ Event.stopObserving(itemNode, eventName, func);\r
+ }\r
+ },\r
+ setHovEvent: function(element) {\r
+ Event.observe(element, "mouseout", this.toggleItemClass(element, 'toolbarItem').bindAsEventListener(this));\r
+ Event.observe(element, "mouseover", this.toggleItemClass(element, 'toolbarItemHover').bindAsEventListener(this));\r
+ Event.observe(element, "mouseout", this.toggleItemClass(element.childNodes[0], 'toolbarContent').bindAsEventListener(this));\r
+ },\r
+ \r
+ setPresEvent: function(element) {\r
+ Event.observe(element, "mousedown", this.toggleItemClass(element, 'toolbarItemPres').bindAsEventListener(this));\r
+ Event.observe(element, "mouseup", this.toggleItemClass(element, 'toolbarItem').bindAsEventListener(this));\r
+ Event.observe(element, "mousedown", this.toggleItemClass(element.childNodes[0], 'toolbarContentPres').bindAsEventListener(this));\r
+ Event.observe(element, "mouseup", this.toggleItemClass(element.childNodes[0], 'toolbarContent').bindAsEventListener(this));\r
+ },\r
+ \r
+ toggleItemClass: function(target, className) {\r
+ return function() {\r
+ this.classNames.refreshClassNames(target, className);\r
+ }\r
+ }\r
+}\r