code: function (el, data_attr_name) {
          data_attr_name = data_attr_name || 'options';
          var opts = {}, ii, p, opts_arr,
              data_options = function (el) {
                var namespace = Foundation.global.namespace;
  
                if (namespace.length > 0) {
                  return el.data(namespace + '-' + data_attr_name);
                }
  
                return el.data(data_attr_name);
              };
  
          var cached_options = data_options(el);
  
          if (typeof cached_options === 'object') {
            return cached_options;
          }
  
          opts_arr = (cached_options || ':').split(';');
          ii = opts_arr.length;
  
          function isNumber (o) {
            return !isNaN (o - 0) && o !== null && o !== '' && o !== false && o !== true;
          }
  
          function trim (str) {
            if (typeof str === 'string') {
              return $.trim(str);
            }
            return str;
          }
  
          while (ii--) {
            p = opts_arr[ii].split(':');
            p = [p[0], p.slice(1).join(':')];
  
            if (/true/i.test(p[1])) {
              p[1] = true;
            }
            if (/false/i.test(p[1])) {
              p[1] = false;
            }
            if (isNumber(p[1])) {
              if (p[1].indexOf('.') === -1) {
                p[1] = parseInt(p[1], 10);
              } else {
                p[1] = parseFloat(p[1]);
              }
            }
  
            if (p.length === 2 && p[0].length > 0) {
              opts[trim(p[0])] = trim(p[1]);
            }
          }
  
          return opts;
        }
docs: Description: Parses data-options attribute  Arguments: El (jQuery Object): Element to be parsed.  Returns: Options (Javascript Object): Contents of the element's data-options attribute.