var FORM_MANAGER_CONDITION_SEPARATOR = "I";
var FORM_MANAGER_POSSIBILITY_SEPARATOR = "LUB";
var FORM_MANAGER_NAME_VALUE_SEPARATOR = "BYĆ";
var FORM_MANAGER_DEPENDS = "ZALEŻEĆ NA";
var FORM_MANAGER_CONFLICTS = "KONFLIKT Z";
var FORM_MANAGER_EMPTY = "OPRÓŻNIAĆ";
funkcja addEvent (el, ev, f) {
jeżeli (el.addEventListener)
el.addEventListener (ev, f, fałszywy);
inny jeżeli (el.attachEvent) {
var t = funkcja () {
f.apply (el);
};
addEvent.events.push ({"element": el, "wydarzenie": ev, "treser": f});
el.attachEvent ("na" + ev, t);
} inny
el ["na" + ev] = f;
}
funkcja addEvents (els, evs, f) {
dla (var i = (0); i < els.length; ++i)
dla (var j = (0); j < evs.length; ++j)
addEvent (els [i], evs [j], f);
}
addEvent.events = [];
jeżeli (typeof window.event! == "niezdefiniowany")
addEvent (okno, "rozładowywać", funkcja () {
dla (var i = (0), e = addEvent.events; i < e.length; ++i)
e [i] .element.detachEvent ("na" + e [i] .event, e [i] .handler);
}
);
funkcja getRadioValue (el) {
jeżeli (! el.length) powrotny null;
dla (var i = (0); i < el.length; ++i)
jeżeli (el [i] .checked) powrotny el [i] .value;
powrotny null;
}
funkcja getSelectValue (el) {
jeżeli (! el.tagName || el.tagName.toLowerCase ()! == "wybiórka")
powrotny null;
powrotny el.options [el.selectedIndex] .value;
}
funkcja isElementValue (el, v) {
jeżeli (v === FORM_MANAGER_EMPTY) v = '';
powrót (
getRadioValue (el) == v ||
getSelectValue (el) == v ||
(
el.tagName &&
el.tagName.toLowerCase ()! == "wybrany" &&
el.value == v
)
);
}
funkcja setupDependencies () {
var showEl = funkcja () {
this.style.display = "";
jeżeli (this.parentNode.tagName.toLowerCase () == "etykietka")
this.parentNode.style.display = "";
};
var hideEl = funkcja () {
this.style.display = "nikt";
jeżeli (typeof this.checked! == "niezdefiniowany") this.checked = fałszywy;
inny this.value = "";
jeżeli (this.parentNode.tagName.toLowerCase () == "etykietka")
this.parentNode.style.display = "nikt";
this.hidden = true;
};
var calcDeps = funkcja () {
dla (var i = (0), e = this.elements; i < e.length; ++i) {
e [i] .hidden = fałszywy;
dla (var j = (0), f = e [i] .className.split (FORM_MANAGER_CONDITION_SEPARATOR); j < f.length; ++j)
jeżeli (f [j] .indexOf (FORM_MANAGER_DEPENDS) === (0)) {
dla (var k = (0), g = f [j] .substr (FORM_MANAGER_DEPENDS.length) .split (FORM_MANAGER_POSSIBILITY_SEPARATOR); k < g.length; ++k)
jeżeli (g [k] .indexOf (FORM_MANAGER_NAME_VALUE_SEPARATOR) === -1) {
jeżeli (e [g [k]] && e [g [k]] .checked) przerwa;
inny jeżeli (k + (1) == g.length)
e [i] .hide ();
} inny {
var n = g [k] .split (FORM_MANAGER_NAME_VALUE_SEPARATOR),
v = n [(1)];
n = n [(0)];
jeżeli (e [n])
jeżeli (isElementValue (e [n], v)) przerwa;
inny jeżeli (k + (1) == g.length) e [i] .hide ();
}
} inny jeżeli (f [j] .indexOf (FORM_MANAGER_CONFLICTS) === (0)) {
jeżeli (f [j] .indexOf (FORM_MANAGER_NAME_VALUE_SEPARATOR) === -1) {
jeżeli (e [f [j] .substr (FORM_MANAGER_CONFLICTS.length)] && e [f [j] .substr (FORM_MANAGER_CONFLICTS.length)].checked) {
e [i] .hide ();
przerwa;
}
} inny {
var n = f [j] .substr (FORM_MANAGER_CONFLICTS.length) .split (FORM_MANAGER_NAME_VALUE_SEPARATOR),
v = n [(1)];
n = n [(0)];
jeżeli (e [n]) {
jeżeli (isElementValue (e [n], v)) {
e [i] .hide ();
przerwa;
}
}
}
}
jeżeli (! e [i] .hidden) e [i] .show ();
}
};
var changeHandler = funkcja () {
this.form.calculateDependencies ();
powrót prawdziwy;
};
dla (var i = (0); i < arguments.length; ++i) {
dla (var j = (0), e = window.document.forms [argument [i]] .elements; j < e.length; ++j) {
addEvents ([e [j]], ["zmiana", "keyup", "ostrość", "stuknięcie", "keydown"], changeHandler);
e [j] .hide = hideEl;
e [j] .show = showEl;
}
(e = window.document.forms [argument [i]]) .calculateDependencies = calcDeps;
e.calculateDependencies ();
}
}
|