var cmxform = function() {
  // Iterate through form elements
  var forms = document.getElementsByTagName('form');
  for (var f = 0; f < forms.length; f++) {
    var form = forms[f];      
    // Match cmxform
    if (form.className.match(/cmxform/)) {
      // Hide form
      var display = form.style.display;
      form.style.display = 'none';
      // Iterate through form labels
      var labels = form.getElementsByTagName('label', false);
      for (var l = 0; l < labels.length; l++) {
        var label = labels[l];
        // Ignore labels with class nocmx
        if (!label.className.match(/nocmx/)) {
          // Copy original display
          var className = label.className;
          var width = document.defaultView.getComputedStyle(label, '').getPropertyValue('width');
          // Create interior span
          var span = document.createElement('span');
          span.className = className;
          span.style.display = 'block';
          // Paste original display
          span.style.width = width;
          // Move child nodes into span element
          while(label.hasChildNodes()) {
            span.appendChild(label.firstChild);
          }
          label.style.display = '-moz-inline-box';
          label.appendChild(span);
        }
      }
      form.style.display = display;
    }
  }
}
try {
  if (document.addEventListener) {
    document.addEventListener('DOMContentLoaded', cmxform, false);
  }
} catch(e) {
  throw ('cmxform not loaded');
}
