code: function(elem) {
  			try {
  				var data = elem.data(this.name.toLowerCase()) || '';
  				data = data.replace(/'/g, '"');
  				data = data.replace(/([a-zA-Z0-9]+):/g, function(match, group, i) { 
  					var count = data.substring(0, i).match(/"/g); // Handle embedded ':'
  					return (!count || count.length % 2 === 0 ? '"' + group + '":' : group + ':');
  				});
  				data = $.parseJSON('{' + data + '}');
  				for (var name in data) { // Convert dates
  					var value = data[name];
  					if (typeof value === 'string' && value.match(/^new Date\((.*)\)$/)) {
  						data[name] = eval(value);
  					}
  				}
  				return data;
  			}
  			catch (e) {
  				return {};
  			}
  		}
docs: Retrieve metadata configuration from the element.
  Metadata is specified as an attribute:
  <code>data-&lt;plugin name>="&lt;setting name>: '&lt;value>', ..."</code>.
  Dates should be specified as strings in this format: 'new Date(y, m-1, d)'.
  @private
  @param elem {jQuery} The source element.
  @return {object} The inline configuration or {}.