code: function _parseDurationString(d,durStr){
  	var matchMade;
  	//parse string
  	//eg 1y1M1d1h1m1s1ms
  	//abbrev
  	for(var i=0,len=_durationRegexp.length;i<len;i++){
  		
  		//for multiple matches on same regegexp we could use exec
  		while (matchMade = _durationRegexp[i].re.exec(durStr)) {
  			d[_durationRegexp[i].key]+=parseFloat((matchMade[1]||"0").replace(",","."));
  		}
  	}
  	return d;
  }
docs: /* regexp explanation for each component eg for year
  /								//start regexp
  (									//capturing group 1 number of years
  -?									//optional negative number
  \d*								//zero or more digits
  (?:								//non capturing group
  [.,]								//matches single character (point or ,)
  \d*								//zero or more digits
  )?									//optional could be omitted
  )									//capturing group finished (matches on 1.25|0.25|1000|1.|.|.5 or with a comma.)
  (?:								//non capturing group (years)
  [ ]?								//optional space
  y|Y|years?|Years?			//y or Y or year or years or Year or Years
  )									//closes group for (y||Y||year||years||Year||Years)
  (?![a-zA-z])					//negative lookahead everything except a-z or A-Z
  /g							//global match