/**
 * Extension of Prototype
 */

Element.addMethods({
   /**
    * Get all class parameters, i.e. class names like {prefix}-{name}={value}
    * @param Element element The element when called statically
    * @param String prefix Optional prefix, default 'param'
    * @return Array name: value hash
    */ 
   getClassParameters: function(element, prefix) {
     element = $(element);
       if (arguments.length < 2) {
           prefix = 'param';
       }
     var regex = new RegExp(prefix + '-(\\w*)=(\\S*)', 'g');
     var params = {};//new Array();
	 
     while ((result = regex.exec(element.className)) != null) {
       params[result[1]] = result[2];
     }
	 
     return params;
   },
   /**
    * Get specific class parameter, i.e. class name like {prefix}-{param}={value}
    * @param Element element The element when called statically
    * @param String param The parameter to look for
    * @param String prefix Optional prefix, default 'param'
    * @return String The parameter value
    */ 
   getClassParameter: function(element, param, prefix) {
       if (arguments.length < 3) {
           prefix = 'param';
       }
       var regex = new RegExp(prefix + '-' + param + '=(\\S*)');
       var parts = regex.exec(element.className);
       if (parts) {
           return parts[1];
       }
   }
});



Object.extend(Element, {
   getClassParameters: function(element, prefix) {
     if (arguments.length < 2) {
       prefix = 'param';
     }
     var match = new RegExp(prefix + '-\\w*=\\S*', 'g');
     var attrs = element.className.match(match);
     var params = new Array();
     if (attrs) {
       for (var i=0;i<attrs.length;i++) {
           var match = new RegExp(prefix + '-(\\w*)=(\\S*)');
           var parts=attrs[i].match(match);
           params[parts[1]] = parts[2];
       }
     }
     return params;
   },
   getClassParameter: function(element, param, prefix) {
       if (arguments.length < 3) {
           prefix = 'param';
       }
       var match = new RegExp(prefix + '-' + param + '=(\\S*)');
       var parts=element.className.match(match);
       if (parts) {
           return parts[1];
       }
   }
});