docs: function (inst) {
  
              var m, row, html = '',
                  rows = this._get(inst, 'rows'),
                  minutes = Array(),
                  minutes_options = this._get(inst, 'minutes'),
                  minutesPerRow = null,
                  minuteCounter = 0,
                  showMinutesLeadingZero = (this._get(inst, 'showMinutesLeadingZero') == true),
                  onMinuteShow = this._get(inst, 'onMinuteShow'),
                  minuteLabel = this._get(inst, 'minuteText');
  
              if ( ! minutes_options.starts) {
                  minutes_options.starts = 0;
              }
              if ( ! minutes_options.ends) {
                  minutes_options.ends = 59;
              }
              if ( ! minutes_options.manual) {
                  minutes_options.manual = [];
              }
              for (m = minutes_options.starts; m <= minutes_options.ends; m += minutes_options.interval) {
                  minutes.push(m);
              }
              for (var i = 0; i < minutes_options.manual.length;i++) {
                  var currMin = minutes_options.manual[i];
  
                  // Validate & filter duplicates of manual minute input
                  if (typeof currMin != 'number' || currMin < 0 || currMin > 59 || $.inArray(currMin, minutes) >= 0) {
                      continue;
                  }
                  minutes.push(currMin);
              }
  
              // Sort to get correct order after adding manual minutes
              // Use compare function to sort by number, instead of string (default)
              minutes.sort(function(a, b) {
                  return a-b;
              });
  
              minutesPerRow = Math.round(minutes.length / rows + 0.49); // always round up
  
              /*
               * The minutes table
               */
              // if currently selected minute is not enabled, we have a problem and need to select a new minute.
              if (onMinuteShow &&
                  (onMinuteShow.apply((inst.input ? inst.input[0] : null), [inst.hours , inst.minutes]) == false) ) {
                  // loop minutes and select first available
                  for (minuteCounter = 0; minuteCounter < minutes.length; minuteCounter += 1) {
                      m = minutes[minuteCounter];
                      if (onMinuteShow.apply((inst.input ? inst.input[0] : null), [inst.hours, m])) {
                          inst.minutes = m;
                          break;
                      }
                  }
              }
  
  
  
              html += '<div class="ui-timepicker-title ui-widget-header ui-helper-clearfix ui-corner-all">' +
                  minuteLabel +
                  '</div>' +
                  '<table class="ui-timepicker">';
  
              minuteCounter = 0;
              for (row = 1; row <= rows; row++) {
                  html += '<tr>';
                  while (minuteCounter < row * minutesPerRow) {
                      var m = minutes[minuteCounter];
                      var displayText = '';
                      if (m !== undefined ) {
                          displayText = (m < 10) && showMinutesLeadingZero ? "0" + m.toString() : m.toString();
                      }
                      html += this._generateHTMLMinuteCell(inst, m, displayText);
                      minuteCounter++;
                  }
                  html += '</tr>';
              }
  
              html += '</table>';
  
              return html;
          }