 #   data-pwnfx-showif-replace: the name of a tag that will be used to replace
 #       the hidden element (default: don't replace the hidden element)
 #   data-pwnfx-showif-class: the CSS class that is added to hidden elements;
-#       (default: hidden)
+#       by default, this is {PwnFx.hiddenClassName}, which gets its value from
+#       the data-pwnfx-hidden-class attribute on <body>
 #   data-pwnfx-showif-is: the value that the <input> has to match for this
 #       element to be shown
 #   data-pwnfx-showif-source: set to the identifier in data-pwnfx-showif
 #       on the <input> whose value determines if this element is shown or not
 class PwnFxShowIf
   constructor: (element, identifier, scopeId) ->
-    hiddenClass = element.getAttribute('data-pwnfx-showif-class') || 'hidden'
+    hiddenClass = element.getAttribute('data-pwnfx-showif-class') ||
+                  PwnFx.hiddenClassName
     showValue = element.getAttribute 'data-pwnfx-showif-is'
     sourceSelector = "[data-pwnfx-showif-source=\"#{identifier}\"]"
 


  # Called when an XHR request issued by PwnFx.xhr works out.
  _xhr_onload: ->
    if (@status < 200 || @status >= 300) && (@status != 304)
      throw new Error(
          "XHR result ignored due to HTTP #{@status}: #{@statusText}")
    @pwnfxOnData @responseText

  #     selector; the scope container can belong to the returned array
  queryScope: (scope, selector) ->
    scopeMatches = false
    if scope isnt document
      # TODO: machesSelector is in a W3C spec, but only implemented using
      #       prefixes; the code below should be simplified once browsers
      #       implement it without vendor prefixes
