 
   # Output all failed `assertions`.
   assert: (assertions...) ->
-    console.assert assertion for assertion in assertions if utils.logging()
+    console.assert assertion for assertion in assertions if @logging()
 
   # Create/increment a counter and output its current count for all `names`.
   count: (names...) ->
-    console.count name for name in names if utils.logging()
+    console.count name for name in names if @logging()
 
   # Output all debug `entries`.
   debug: (entries...) ->
-    console.debug entry for entry in entries if utils.logging()
+    console.debug entry for entry in entries if @logging()
 
   # Display an interactive listing of the properties of all `entries`.
   dir: (entries...) ->
-    console.dir entry for entry in entries if utils.logging()
+    console.dir entry for entry in entries if @logging()
 
   # Output all error `entries`.
   error: (entries...) ->
-    console.error entry for entry in entries if utils.logging()
+    console.error entry for entry in entries if @logging()
 
   # Output all informative `entries`.
   info: (entries...) ->
-    console.info entry for entry in entries if utils.logging()
+    console.info entry for entry in entries if @logging()
 
   # Output all general `entries`.
   log: (entries...) ->
-    console.log entry for entry in entries if utils.logging()
+    console.log entry for entry in entries if @logging()
 
   # Indicates whether or not logging is enabled.
   logging: ->
-    utils.get 'log'
+    @get 'log'
 
   # Start a timer for all `names`.
   time: (names...) ->
-    console.time name for name in names if utils.logging()
+    console.time name for name in names if @logging()
 
   # Stop a timer and output its elapsed time in milliseconds for all `names`.
   timeEnd: (names...) ->
-    console.timeEnd name for name in names if utils.logging()
+    console.timeEnd name for name in names if @logging()
 
   # Output a stack trace.
   trace: ->
-    console.trace() if utils.logging()
+    console.trace() if @logging()
 
   # Output all warning `entries`.
   warn: (entries...) ->
-    console.warn entry for entry in entries if utils.logging()+    console.warn entry for entry in entries if @logging()
    # Ensure the substitution string(s) are in an array.
    subs = [subs] if typeof subs is 'string'
    for element in elements
      element.setAttribute attribute, utils.i18n value, subs

  # Internationalize the contents of all the selected elements.
  i18nContent: (selector, value, subs) ->
    elements = document.querySelectorAll selector
    # Ensure the substitution string(s) are in an array.
    subs = [subs] if typeof subs is 'string'
    element.innerHTML = utils.i18n value, subs for element in elements

  # Perform all internationalization setup required for the current page.
  i18nSetup: (subMap) ->

# key as the mapping.
i18nSubs = (element, value, subMap) ->
  if subMap
    for own prop, subMap2 of subMap when prop is element.id
      for own prop2, target of subMap2 when prop2 is value
        subs = target
        break
      break
  subs

# Utilities setup
# ---------------
