diff --git a/lib/javascript-static.js b/lib/javascript-static.js index ca55ac054ee..101d113eb5e 100644 --- a/lib/javascript-static.js +++ b/lib/javascript-static.js @@ -72,6 +72,68 @@ function unlockoption(form,item) { } } + +function lockoptionsall(formid) { + var form = document.forms[formid]; + var dependons = eval(formid+'items'); + var tolock = Array(); + for (var dependon in dependons) { + var master = form[dependon]; + for (var condition in dependons[dependon]) { + for (var value in dependons[dependon][condition]) { + var lock; + switch (condition) { + case 'notchecked': + lock = !master.checked; break; + case 'checked': + lock = master.checked; break; + case 'noitemselected': + lock = master.selectedIndex==-1; break; + case 'eq': + lock = master.value==value; break; + default: + lock = master.value!=value; break; + } + for (var ei in dependons[dependon][condition][value]) { + var eltolock = dependons[dependon][condition][value][ei]; + if (tolock[eltolock] != null){ + tolock[eltolock] = + lock || tolock[eltolock]; + } else { + tolock[eltolock] = lock; + } + } + } + } + } + for (var el in tolock){ + var formelement = form[el]; + formelement.disabled = tolock[el]; + } + return true; +} + +function lockoptionsallsetup(formid) { + var form = document.forms[formid]; + var dependons = eval(formid+'items'); + for (var dependon in dependons) { + var master = form[dependon]; + master.onclick = function() {return lockoptionsall(this.form.getAttribute('id'));}; + master.onblur = function() {return lockoptionsall(this.form.getAttribute('id'));}; + master.onchange = function() {return lockoptionsall(this.form.getAttribute('id'));}; + } + for (var i = 0; i < form.elements.length; i++){ + var formelement = form.elements[i]; + if (formelement.type=='reset') { + formelement.onclick = function() {this.form.reset();return lockoptionsall(this.form.getAttribute('id'));}; + formelement.onblur = function() {this.form.reset();return lockoptionsall(this.form.getAttribute('id'));}; + formelement.onchange = function() {this.form.reset();return lockoptionsall(this.form.getAttribute('id'));}; + } + } + return lockoptionsall(formid); +} + + function submitFormById(id) { var theform = document.getElementById(id); if(!theform) {