window.moz = (!document.all); window.moz = true; function newEvent (obj, event, aktion) { if (obj.attachEvent) obj.attachEvent (event, aktion); else obj.addEventListener (event.substr (2), aktion, false); } // Tastatur Kurtzbelegung function keyHandler () { this.keys = new Array (); this.disable = ""; this.createKey = function (obj) { if (obj.getAttribute ("key") && obj.getAttribute ("onaction")) { this.keys[obj.getAttribute ("key")] = obj; obj.title += " Ctrl+" + obj.getAttribute ("key"); } } this.keyPress = function (e) { var code = String.fromCharCode(e.keyCode ? e.keyCode : e.charCode).toLowerCase(); if (e.ctrlKey && _keyHandler.keys[code]) { if (e.preventDefault) { e.preventDefault (); } else { // e.cancelBubble = true; // e.returnValue = false; } return false; } } this.keyDown = function (e) { var code = String.fromCharCode(e.keyCode ? e.keyCode : e.charCode).toLowerCase(); if (e.ctrlKey && _keyHandler.keys[code]) { if ( _keyHandler.keys[code].getEnabled () && _keyHandler.disable.indexOf (code)==-1) { eval (_keyHandler.keys[code].getAttribute ("onaction")); } return false; } _keyHandler.disable = ""; } this.applay = function (e) { var code = String.fromCharCode(e.keyCode ? e.keyCode : e.charCode).toLowerCase(); if (e.ctrlKey && _keyHandler.keys[code] && _keyHandler.disable.indexOf (code)==-1) { if (_keyHandler.keys[code].getEnabled ()) eval (_keyHandler.keys[code].getAttribute ("onaction")); _keyHandler.disable = ""; return true; } _keyHandler.disable = ""; return false; } this.disableKeys = function (keys) { this.disable = keys; } newEvent (document, "onkeydown", this.keyDown); newEvent (document, "onkeypress", this.keyPress); } var _keyHandler = new keyHandler (); // tasten fuer ein element deaktivieren: // onkeydown="_keyHandler.disableKeys ('cv')" // Coolbuttons Initialesieren ('s die von einem eingeschlossen sind) function cbInit () { var td = document.querySelectorAll('[onaction]'); for (var i = 0; i < td.length; i++) { if (td[i].getAttribute("onaction")) { createButton (td[i]); _keyHandler.createKey (td[i]); td[i].parentNode.unselectable = "on"; if (td[i].getAttribute("active")) { td[i].setActive (eval (td[i].getAttribute("active"))); } } } } function createButton(el) { newEvent (el, "onmouseover", createButton.overCoolButton); newEvent (el, "onmouseout", createButton.outCoolButton); newEvent (el, "onmousedown", createButton.downCoolButton); newEvent (el, "onmouseup", createButton.upCoolButton); newEvent (el, "onclick", createButton.clickCoolButton); newEvent (el, "ondblclick", createButton.clickCoolButton); newEvent (el, "onkeypress", createButton.keypressCoolButton); newEvent (el, "onkeyup", createButton.keyupCoolButton); newEvent (el, "onkeydown", createButton.keydownCoolButton); newEvent (el, "onfocus", createButton.focusCoolButton); newEvent (el, "onblur", createButton.blurCoolButton); el.className = "coolButton"; el.setEnabled = createButton.setEnabled; el.getEnabled = createButton.getEnabled; el.setValue = createButton.setValue; el.getValue = createButton.getValue; el.setToggle = createButton.setToggle; el.getToggle = createButton.getToggle; el.setActive = createButton.setActive; el.setAlwaysUp = createButton.setAlwaysUp; el.getAlwaysUp = createButton.getAlwaysUp; el.setGray = createButton.setGray; el._enabled = true; el._toggle = false; el._value = false; el._alwaysUp = false; el._gray = false; return el; } createButton.LEFT = window.moz ? 0 : 1; /* event listeners */ createButton.overCoolButton = function (e) { if (!window.createButton) return; var toEl = window.createButton.getParentCoolButton(e.toElement ? e.toElement : e.target); // var fromEl = window.createButton.getParentCoolButton(e.fromElement ? e.fromElement : e.relatedTarget); var fromEl = window.createButton.getParentCoolButton(e.fromElement ? e.fromElement : 0); if (toEl == fromEl || toEl == null) return; toEl._over = true; if (!toEl._enabled) return; window.createButton.setClassName(toEl); }; createButton.outCoolButton = function (e) { if (!window.createButton) return; // var toEl = window.createButton.getParentCoolButton(e.toElement ? e.toElement : e.relatedTarget); var toEl = window.createButton.getParentCoolButton(e.toElement ? e.toElement : 0); var fromEl = window.createButton.getParentCoolButton(e.fromElement ? e.fromElement : e.target); if (toEl == fromEl || fromEl == null) return; fromEl._over = false; fromEl._down = false; if (!fromEl._enabled) return; window.createButton.setClassName(fromEl); }; createButton.downCoolButton = function (e) { if (!window.createButton || e.button != createButton.LEFT) return; var el = window.createButton.getParentCoolButton(e.srcElement ? e.srcElement : e.currentTarget); if (el == null) return; el._down = true; if (!el._enabled) return; window.createButton.setClassName(el); }; createButton.upCoolButton = function (e) { if (!window.createButton || e.button != createButton.LEFT) return; var el = window.createButton.getParentCoolButton(e.srcElement ? e.srcElement : e.currentTarget); if (el == null) return; el._down = false; if (!el._enabled) return; if (el._toggle) el.setValue(!el._value); else window.createButton.setClassName(el); }; createButton.clickCoolButton = function (e) { var el = createButton.getParentCoolButton(e.srcElement ? e.srcElement : e.currentTarget); el.onaction = el.getAttribute("onaction"); if (el == null || !el._enabled || el.onaction == "" || el.onaction == null) return; if (typeof el.onaction == "string") el.onaction = new Function ("event", el.onaction); el.onaction(e); }; createButton.keypressCoolButton = function (e) { var el = createButton.getParentCoolButton(e.srcElement ? e.srcElement : e.currentTarget); if (el == null || !el._enabled || e.keyCode != 13) return; el.setValue(!el._value); if (el.onaction == null) return; if (typeof el.onaction == "string") el.onaction = new Function ("event", el.onaction); el.onaction(e); }; createButton.keydownCoolButton = function (e) { var el = createButton.getParentCoolButton(e.srcElement ? e.srcElement : e.currentTarget); if (el == null || !el._enabled || e.keyCode != 32) return; createButton.downCoolButton(); }; createButton.keyupCoolButton = function (e) { var el = createButton.getParentCoolButton(e.srcElement ? e.srcElement : e.currentTarget); if (el == null || !el._enabled || e.keyCode != 32) return; createButton.upCoolButton(); //el.setValue(!el._value); // is handled in upCoolButton() if (el.onaction == null) return; if (typeof el.onaction == "string") el.onaction = new Function ("event", el.onaction); el.onaction(e); }; createButton.focusCoolButton = function (e) { var el = createButton.getParentCoolButton(e.srcElement ? e.srcElement : e.currentTarget); if (el == null || !el._enabled) return; createButton.setClassName(el); }; createButton.blurCoolButton = function (e) { var el = createButton.getParentCoolButton(e.srcElement ? e.srcElement : e.currentTarget); if (el == null) return; createButton.setClassName(el) }; createButton.getParentCoolButton = function (el) { if (el == null) return null; if (/coolButton/.test(el.className)) return el; return createButton.getParentCoolButton(el.parentNode); }; /* end event listeners */ createButton.setClassName = function (el) { var over = el._over; var down = el._down; var focused; try { focused = (el == document.activeElement && el.tabIndex > 0); } catch (exc) { focused = false; } if (!el._enabled) { if (el._value) el.className = "coolButtonActiveDisabled"; else el.className = el._alwaysUp ? "coolButtonUpDisabled" : "coolButtonDisabled"; } else { if (el._value) { if (over || down || focused) el.className = "coolButtonInactiveHover"; else el.className = "coolButtonInactive"; } else if (el._gray) { if (over || down || focused) el.className = "coolButtonUpDisabled"; else el.className = "coolButtonDisabled"; } else if (el._active) { if (over || down || focused) el.className = "coolButtonActiveHover"; else el.className = "coolButtonActive"; } else if (el._inactive) { if (over || down || focused) el.className = "coolButtonInactiveHover"; else el.className = "coolButtonInactive"; } else { if (down) el.className = "coolButtonInactiveHover"; else if (over || el._alwaysUp || focused) el.className = "coolButtonHover"; else el.className = "coolButton"; } } }; createButton.setEnabled = function (b) { if (this._enabled != b) { this._enabled = b; createButton.setClassName(this, false, false); if (!window.moz) { if (b) this.innerHTML = this.firstChild.firstChild.innerHTML; else this.innerHTML = "" + this.innerHTML + ""; } } }; createButton.setGray = function (b) { this._gray = b; createButton.setClassName(this, false, false); }; createButton.getEnabled = function () { return this._enabled; }; createButton.setValue = function (v, bDontTriggerOnChange) { if (this._value != v) { this._value = v; createButton.setClassName(this, false, false); this.onchange = this.getAttribute("onchange"); if (this.onchange == null || this.onchange == "" || bDontTriggerOnChange) return; if (typeof this.onchange == "string") this.onchange = new Function("", this.onchange); this.onchange(); } }; createButton.getValue = function () { return this._value; }; createButton.setToggle = function (t) { if (this._toggle != t) { this._toggle = t; if (!t) this.setValue(false); } }; createButton.getToggle = function () { return this._toggle; }; createButton.setActive = function (t) { this._active = t; this._inactive = !t; createButton.setClassName(this, false, false); }; createButton.setAlwaysUp = function (up) { if (this._alwaysUp != up) { this._alwaysUp = up; createButton.setClassName(this, false, false); } }; createButton.getAlwaysUp = function () { return this._alwaysUp; };