text: (function (template, osmplayer) {
  
      // templated player.
      osmplayer[template] = function (context, options) {
  
          // Derive from osmplayer.
          osmplayer.call(this, context, options);
      };
  
      /**
       * Define this template prototype.
       */
      osmplayer[template].prototype = new osmplayer();
      osmplayer[template].prototype.constructor = osmplayer[template];
  
      /**
       * Return the display for this plugin.
       */
      osmplayer[template].prototype.getDisplay = function () {
  
          // If this is the bottom element, then we need to build.
          if (this.context.children().length === 0) {
  
              // Build out the player provided the base tag.
              this.context = this.context.attr({
                      'id': this.options.id + '-player',
                      'class': 'minplayer-' + template + '-media'
                  })
                  .wrap(jQuery(document.createElement('div')).attr({
                      'class': 'minplayer-' + template + '-display ui-widget-content'
                  })).parent('.minplayer-' + template + '-display')
                  .wrap(jQuery(document.createElement('div')).attr({
                      'class': 'minplayer-' + template
                  })).parent('.minplayer-' + template)
                  .prepend(
                      '<div class="minplayer-' + template + '-logo"></div>' +
                      '<div class="minplayer-' + template + '-error"></div>'
                  )
                  .wrap(jQuery(document.createElement('div')).attr({
                      'id': this.options.id,
                      'class': 'osmplayer-' + template + ' player-ui'
                  })).parent('.osmplayer-' + template);
  
              // Mark a flag that says this display needs to be built.
              this.options.build = true;
          }
  
          return this.context;
      };
  
      // Get the elements for this player.
      osmplayer[template].prototype.getElements = function () {
          var elements = osmplayer.prototype.getElements.call(this);
  
          // Set the width and height of this element.
          this.display.width(this.options.width);
          this.display.height(this.options.height);
  
          // Get the minplayer component.
          var minplayer = jQuery('.minplayer-' + template, this.display);
          if (this.options.playlistOnly) {
              minplayer.remove();
              minplayer = null;
          }
  
          return jQuery.extend(elements, {
              player: this.display,
              minplayer: minplayer,
              display: jQuery('.minplayer-' + template + '-display', this.display),
              media: jQuery('.minplayer-' + template + '-media', this.display),
              error: jQuery('.minplayer-' + template + '-error', this.display),
              logo: jQuery('.minplayer-' + template + '-logo', this.display)
          });
      };
  })('default', (osmplayer || {}));
  