/**
  * Adds element's client-side validation rules to a builder object
  *
  * This will also call forceValidator() if the repeat does not contain
  * any (visible) items but some of the child elements define client-side rules
  *
  * @param HTML_QuickForm2_JavascriptBuilder $builder
  */
 protected function renderClientRules(HTML_QuickForm2_JavascriptBuilder $builder)
 {
     if ($this->toggleFrozen()) {
         return;
     }
     if (!$this->getIndexes()) {
         $fakeBuilder = new HTML_QuickForm2_JavascriptBuilder();
         /* @var $child HTML_QuickForm2_Node */
         foreach ($this->getRecursiveIterator() as $child) {
             $child->renderClientRules($fakeBuilder);
         }
         if ($fakeBuilder->getValidator()) {
             $builder->forceValidator();
         }
     }
     parent::renderClientRules($builder);
 }