/**
 * Transform input buttons (type=submit) into nicer looking links, including the
 * submit form event
 * 
 * @copyright M&M Software
 * 
 * @param {Object} h
 */
(function($)
{
   $.fn.formBtnTransform = function(h)
   {
      var i = {};
      var h = $.extend(i, h);

      return this.each(function()
      {
         obj = $(this);

         // Hide input buttun
            $(this).hide("fast");

            if ($(this).hasClass('formBtnTransform_done'))
            {
               return false;
            }

            $(this).addClass('formBtnTransform_done');

            // Get object ID
            var objID = obj.attr('id');
            if (objID == '')
            {
               // Set new ID as it does not have one
               objID = 'formBtnTransform_' + Math.floor(9999 * Math.random())
                     + '_' + jQuery.data(obj);
            }

            // Update object with an ID
            obj.attr('id', objID);

            // Emtpy child/children element
            var children = null;
            var a = document.createElement("a");

            var strong = document.createElement("strong");
            strong.innerHTML = obj.attr('value');

            var span = document.createElement("span");
            span.appendChild(strong);

            a.appendChild(span);

            var form = obj.parents().filter('form');

            attr = new Object;
            attr.href = !form.attr('action') ? '#' : form.attr('action');
            if (obj.attr('title'))
            {
               attr.title = obj.attr('title');
            }
            $(a).attr(attr);
            if (obj.attr('class'))
            {
               $(a).addClass(obj.attr('class'));
            }
            $(a).attr('id', 'FormBtnTransform_' + objID);

            if (obj.attr("tabindex") && obj.attr("tabindex") !== undefined)
            {
               $(a).attr("tabindex", obj.attr("tabindex"));
            }

            obj.parent().append(a);

            // Handle events
            $(a).click(function(event)
            {
               // Trigger click on input submit button and submit form
                  $("input#" + objID).trigger('click');

                  // Stop event
                  event.preventDefault();
                  return false;
               });
         });
   }
})(jQuery);
