/**
 * FormHelpers - element serializer plugin for jQuery 1.4.4+
 *
 * Author: Johannes Wüller
 * Created On: 06.01.2011
 *
 * Compiles all form elements that are children of the current element into
 * name:value pairs (object). Returns an empty object if no form elements with
 * names are found.
 *
 * Usage:
 *    var values = jQuery("div.fake-form").serializeElement();
 *    var queryString = jQuery("div.fake-form").serializeElementToQueryString();
 */
(function($) {

   $.fn.serializeElement = function() {
      var values = {};

      $(this).find(':input').not(':disabled').each(function () {
         var element = $(this),
            name = element.attr('name');

         if (name) {
            values[name] = element.val();

            // checkbox workaround, clear value if not checked
            if(element.attr('type') == 'checkbox' && element.is(":not(':checked')"))
               values[name] = '';
         }
      });

      return values;
   };

   $.fn.serializeElementToQueryString = function() {
      return $.param($(this).serializeElement());
   };

}(jQuery));
