jQuery(document).ready(function() {
  
  jQuery('.hover_button').livequery('mouseover',
     function() {
       var matches = jQuery(this).attr('src').match(/(.*)((?:.gif|.jpg|.png).*)/);
       var orig_name = matches[1];
       var image_ext = matches[2];
      jQuery(this).attr("src", orig_name + '-hover' + image_ext);
      
    });
  jQuery('.hover_button').livequery('mouseout',
    function() {
      HoverButton.removeHover(this);
    }
  );
  jQuery('.hover_button').livequery('click',
    function() {
      HoverButton.removeHover(this);
    }
  );


  jQuery('.hover_child').livequery('mouseover',
    function() {
        var matches = jQuery(this).children().attr('src').match(/(.*)((?:.gif|.jpg|.png).*)/);
      var orig_name = matches[1];
      var image_ext = matches[2];
        jQuery(this).children().attr("src", orig_name + '-hover' + image_ext);
      
  });
  
  jQuery('.hover_child').livequery('mouseout',
    function() {
        HoverButton.removeHover(jQuery(this).children());
    }
  );
  jQuery('.hover_child').livequery('click',
    function() {
        HoverButton.removeHover(jQuery(this).children());
    }
  );
});
/*
HoverButton namespace
*/
var HoverButton = function() {
  /*
  removes the 'hover' from the image for the button
  @param[element] the hover button image button to remove 'hover' from
  */
  return {
    removeHover: function(elem) {
        var src = jQuery(elem).attr('src');
      src = src.replace(/-hover/, "");
        jQuery(elem).attr('src', src);
    }
  };
}();