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;
};