var FORM_MANAGER_CONDITION_SEPARATOR = „EN“;
var FORM_MANAGER_POSSIBILITY_SEPARATOR = „OF“;
var FORM_MANAGER_NAME_VALUE_SEPARATOR = „ZIJND“;
VAR FORM_MANAGER_DEPENDS = „HANGT AF VAN“;
VAR FORM_MANAGER_CONFLICTS = „CONFLICTEN MET“;
var FORM_MANAGER_EMPTY = „LEEG“;
addEvent functie (Gr, ev, F) {
als (el.addEventListener)
el.addEventListener (ev, vals F,);
als anders (el.attachEvent) {
var t = functie () {
f.apply (Gr);
};
addEvent.events.push ({„element“: Gr, „gebeurtenis“: ev, „manager“: F});
el.attachEvent ("aan" + ev, t);
} anders
Gr ["aan" + ev] = F;
}
functie addEvents (els, evs, F) {
voor (var i = 0; i < els.length; ++i)
voor (var j = 0; j < evs.length; ++j)
addEvent (els [I], evs [j], F);
}
addEvent.events = [];
als (typeof window.event! == „niet gedefiniëerd“)
addEvent (het venster, „maakt“, functie leeg () {
voor (var i = 0, e = addEvent.events; i < e.length; ++i)
e [I] .element.detachEvent ("aan" + e [I] .event, e [I] .handler);
}
);
functie getRadioValue (Gr) {
als (! el.length) ongeldige terugkeer;
voor (var i = 0; i < el.length; ++i)
als (Gr [I] .checked) terugkeer Gr [I] .value;
ongeldige terugkeer;
}
functie getSelectValue (Gr) {
als (! el.tagName || el.tagName.toLowerCase ()! == „selecteer“)
keer ongeldig terug;
keer el.options [el.selectedIndex] .value terug;
}
functie isElementValue (Gr, v) {
als (v === FORM_MANAGER_EMPTY) v = '';
terugkeer (
getRadioValue (Gr) == v ||
getSelectValue (Gr) == v ||
(
el.tagName &&
el.tagName.toLowerCase ()! == „selecteer“ &&
el.value == v
)
);
}
functie setupDependencies () {
var showEl = functie () {
this.style.display = "";
als (this.parentNode.tagName.toLowerCase () == „etiket“)
this.parentNode.style.display = "";
};
var hideEl = functie () {
this.style.display = „niets“;
als (typeof this.checked! == „niet gedefiniëerd“) this.checked = vals;
anders this.value = "";
als (this.parentNode.tagName.toLowerCase () == „etiket“)
this.parentNode.style.display = „niets“;
this.hidden = waar;
};
var calcDeps = functie () {
voor (var i = 0, e = this.elements; i < e.length; ++i) {
e [I] .hidden = vals;
voor (var j = 0, F = e [I] .className.split (FORM_MANAGER_CONDITION_SEPARATOR); j < f.length; ++j)
als (F [j] .indexOf (FORM_MANAGER_DEPENDS) === 0) {
voor (var k = 0, g = F [j] .substr (FORM_MANAGER_DEPENDS.length) .split (FORM_MANAGER_POSSIBILITY_SEPARATOR); k < g.length; ++k)
als (g [k] .indexOf (FORM_MANAGER_NAME_VALUE_SEPARATOR) === -1) {
als (e [g [k]] &&e [g [k]]) onderbreking .checked;
als anders (k + 1 == g.length)
e [I] .hide ();
} anders {
var n = g [k] .split (FORM_MANAGER_NAME_VALUE_SEPARATOR),
v = n [1];
n = n [0];
als (e [n])
als (isElementValue (e [n], v)) onderbreking;
als anders (k + 1 == g.length) e [I] .hide ();
}
} anders als (F [j] .indexOf (FORM_MANAGER_CONFLICTS) === 0) {
als (F [j] .indexOf (FORM_MANAGER_NAME_VALUE_SEPARATOR) === -1) {
als (e [F [j] .substr (FORM_MANAGER_CONFLICTS.length)] && e [F [j] .substr (FORM_MANAGER_CONFLICTS.length)].checked) {
e [I] .hide ();
onderbreking;
}
} anders {
var n = F [j] .substr (FORM_MANAGER_CONFLICTS.length) .split (FORM_MANAGER_NAME_VALUE_SEPARATOR),
v = n [1];
n = n [0];
als (e [n]) {
als (isElementValue (e [n], v)) {
e [I] .hide ();
onderbreking;
}
}
}
}
als (! e [I] .hidden) e [I] .show ();
}
};
var changeHandler = functie () {
this.form.calculateDependencies ();
ware terugkeer;
};
voor (var i = 0; i < arguments.length; ++i) {
voor (var j = 0, e = window.document.forms [argumenten [I]] .elements; j < e.length; ++j) {
addEvents ([e [j]], [„verandering“, „keyup“, de „nadruk“, „klikt“, „keydown“], changeHandler);
e [j] .hide = hideEl;
e [j] .show = showEl;
}
(e = window.document.forms [argumenten [I]]) .calculateDependencies = calcDeps;
e.calculateDependencies ();
}
}
|