private function getToggleScript(Rules $rules, $cond = NULL)
{
$s = '';
foreach ($rules->getToggles() as $id => $visible) {
$s .= "visible = true; {$cond}\n" . "nette.toggle(" . Nette\Json::encode((string) $id) . ", " . ($visible ? '' : '!') . "visible);\n";
}
$formName = Nette\Json::encode((string) $this->form->getElementPrototype()->id);
foreach ($rules as $rule) {
if ($rule->type === Rule::CONDITION && is_string($rule->operation)) {
$script = $this->getClientScript($rule->control, $rule->operation, $rule->arg);
if ($script) {
$res = $this->getToggleScript($rule->subRules, $cond . "{$script} visible = visible && " . ($rule->isNegative ? '!' : '') . "res;\n");
if ($res) {
$el = $rule->control->getControlPrototype();
if ($el->getName() === 'select') {
$el->onchange("nette.forms[{$formName}].toggle(this)", TRUE);
} else {
$el->onclick("nette.forms[{$formName}].toggle(this)", TRUE);
//$el->onkeyup("nette.forms[$formName].toggle(this)", TRUE);
}
$s .= $res;
}
}
}
}
return $s;
}