#**
 *  Show Debugging Information, if enabled
 *#

#if( $params.getBool("debugQuery",false) )
  <a href="#" onclick='jQuery(this).siblings("pre").toggle(); return false;'>
    toggle explain</a>

  <pre style="display:none">
    $response.getExplainMap().get($doc.getFirstValue('id'))
  </pre>

  <a href="#" onclick='jQuery(this).siblings("pre2").toggle(); return false;'>
    toggle all fields</a>

  <pre2 style="display:none">
    #foreach($fieldname in $doc.fieldNames)
      <br>
        <span class="field-name">$fieldname :</span>
        <span>
          #foreach($value in $doc.getFieldValues($fieldname))
            $esc.html($value)
          #end
        </span>
      </br>
    #end
  </pre2>
#end
