code: function (ISO8601Duration) {
              var isValueNegative = (ISO8601Duration.indexOf("-") >= 0),
                  indexOfT = ISO8601Duration.indexOf("T"),
                  indexOfH = ISO8601Duration.indexOf("H"),
                  indexOfM = ISO8601Duration.indexOf("M"),
                  indexOfS = ISO8601Duration.indexOf("S"),
                  hours,
                  minutes,
                  seconds,
                  durationInMilliseconds;
  
              if ((indexOfT === -1) || ((indexOfM !== -1) && (indexOfM < indexOfT)) || (ISO8601Duration.indexOf("D") !== -1) || (ISO8601Duration.indexOf("Y") !== -1)) {
                  throw new Error("ISO 8601 timestamps including years, months and/or days are not currently supported");
              }
  
              if (indexOfH === -1) {
                  indexOfH = indexOfT;
                  hours = 0;
              }
              else {
                  hours = parseInt(ISO8601Duration.slice(indexOfT + 1, indexOfH), 10);
              }
  
              if (indexOfM === -1) {
                  indexOfM = indexOfT;
                  minutes = 0;
              }
              else {
                  minutes = parseInt(ISO8601Duration.slice(indexOfH + 1, indexOfM), 10);
              }
  
              seconds = parseFloat(ISO8601Duration.slice(indexOfM + 1, indexOfS));
  
              durationInMilliseconds = parseInt((((((hours * 60) + minutes) * 60) + seconds) * 1000), 10);
              if (isNaN(durationInMilliseconds)){
                  durationInMilliseconds = 0;
              }
              if (isValueNegative) {
                  durationInMilliseconds = durationInMilliseconds * -1;
              }
  
              return durationInMilliseconds;
          }
docs: @method convertISO8601DurationToMilliseconds
  @static
  @param {String} ISO8601Duration Duration in ISO8601 format
  @return {Int} Duration in milliseconds
  
  Note: does not handle input strings with years, months and days