docs: function(inst) {
  
              if (inst.hours == -1 && inst.minutes == -1) {
                  return '';
              }
  
              // default to 0 AM if hours is not valid
              if ((inst.hours < inst.hours.starts) || (inst.hours > inst.hours.ends )) { inst.hours = 0; }
              // default to 0 minutes if minute is not valid
              if ((inst.minutes < inst.minutes.starts) || (inst.minutes > inst.minutes.ends)) { inst.minutes = 0; }
  
              var period = "",
                  showPeriod = (this._get(inst, 'showPeriod') == true),
                  showLeadingZero = (this._get(inst, 'showLeadingZero') == true),
                  showHours = (this._get(inst, 'showHours') == true),
                  showMinutes = (this._get(inst, 'showMinutes') == true),
                  optionalMinutes = (this._get(inst, 'optionalMinutes') == true),
                  amPmText = this._get(inst, 'amPmText'),
                  selectedHours = inst.hours ? inst.hours : 0,
                  selectedMinutes = inst.minutes ? inst.minutes : 0,
                  displayHours = selectedHours ? selectedHours : 0,
                  parsedTime = '';
  
              // fix some display problem when hours or minutes are not selected yet
              if (displayHours == -1) { displayHours = 0 }
              if (selectedMinutes == -1) { selectedMinutes = 0 }
  
              if (showPeriod) {
                  if (inst.hours == 0) {
                      displayHours = 12;
                  }
                  if (inst.hours < 12) {
                      period = amPmText[0];
                  }
                  else {
                      period = amPmText[1];
                      if (displayHours > 12) {
                          displayHours -= 12;
                      }
                  }
              }
  
              var h = displayHours.toString();
              if (showLeadingZero && (displayHours < 10)) { h = '0' + h; }
  
              var m = selectedMinutes.toString();
              if (selectedMinutes < 10) { m = '0' + m; }
  
              if (showHours) {
                  parsedTime += h;
              }
              if (showHours && showMinutes && (!optionalMinutes || m != 0)) {
                  parsedTime += this._get(inst, 'timeSeparator');
              }
              if (showMinutes && (!optionalMinutes || m != 0)) {
                  parsedTime += m;
              }
              if (showHours) {
                  if (period.length > 0) { parsedTime += this._get(inst, 'periodSeparator') + period; }
              }
  
              return parsedTime;
          }