var cbi_d = [];
var cbi_t = [];
+var cbi_c = [];
function cbi_d_add(field, dep, next) {
var obj = document.getElementById(field);
var t = document.getElementById(target);
var value;
- if (!t || !t.value) {
+ if (!t) {
+ var tl = document.getElementsByName(target);
+
+ if( tl.length > 0 && tl[0].type == 'radio' )
+ for( var i = 0; i < tl.length; i++ )
+ if( tl[i].checked ) {
+ value = tl[i].value;
+ break;
+ }
+
+ value = value ? value : "";
+ } else if (!t.value) {
value = "";
} else {
value = t.value;
}
function cbi_d_check(deps) {
+ var reverse;
+ var def = false;
for (var i=0; i<deps.length; i++) {
- var istat = true
+ var istat = true;
+ reverse = false;
for (var j in deps[i]) {
- istat = (istat && cbi_d_checkvalue(j, deps[i][j]))
+ if (j == "!reverse") {
+ reverse = true;
+ } else if (j == "!default") {
+ def = true;
+ istat = false;
+ } else {
+ istat = (istat && cbi_d_checkvalue(j, deps[i][j]))
+ }
}
if (istat) {
- return true
+ return !reverse;
}
}
+ return def;
}
function cbi_d_update() {
if (node && node.parentNode && !cbi_d_check(entry.deps)) {
node.parentNode.removeChild(node);
- state = (state || !node.parentNode)
+ state = true;
+ if( entry.parent )
+ cbi_c[entry.parent]--;
} else if ((!node || !node.parentNode) && cbi_d_check(entry.deps)) {
if (!next) {
parent.appendChild(entry.node);
} else {
next.parentNode.insertBefore(entry.node, next);
}
- state = (state || (node && node.parentNode))
+ state = true;
+ if( entry.parent )
+ cbi_c[entry.parent]++;
}
}
+
+ if (entry.parent) {
+ cbi_t_update();
+ }
+
if (state) {
cbi_d_update();
}
if( t && c ) {
cbi_t[section] = (cbi_t[section] || [ ]);
- cbi_t[section][tab] = { 'tab': t, 'container': c };
+ cbi_t[section][tab] = { 'tab': t, 'container': c, 'cid': c.id };
}
}
}
return false
}
+
+function cbi_t_update() {
+ for( var sid in cbi_t )
+ for( var tid in cbi_t[sid] )
+ if( cbi_c[cbi_t[sid][tid].cid] == 0 ) {
+ cbi_t[sid][tid].tab.style.display = 'none';
+ }
+ else if( cbi_t[sid][tid].tab && cbi_t[sid][tid].tab.style.display == 'none' ) {
+ cbi_t[sid][tid].tab.style.display = '';
+
+ var t = cbi_t[sid][tid].tab;
+ window.setTimeout(function() { t.className = t.className.replace(/ cbi-tab-highlighted/g, '') }, 750);
+ cbi_t[sid][tid].tab.className += ' cbi-tab-highlighted';
+ }
+}
+