(function($){	
    $.fn.alternate = function(options,fnClick) {
        var opts = $.extend({}, $.fn.alternate.defaults, options);
        return this.each(function(i) {
            /* Support $.meta plugin */
            var $this = $(this), o = $.meta ? $.extend({}, opts, $this.data()) : opts;
            /* Alternate <tr> class */
            if(i % 2 == 0 && opts.even.length){
                $this.removeClass(opts.odd)
                .addClass(opts.even);
            } else if(opts.odd.length){
                $this.removeClass(opts.even)
                .addClass(opts.odd);
            };
			
            /* Add optional onclick behavior */
			
            if(fnClick){
                $this.click(fnClick);
            };
			
            /* Add optional "hover" class */
			
            if(opts.hover){
                $this.bind('mouseenter mouseleave', function(e){
                    $(this).toggleClass('hover');
                });
            };

        });

    };
	
    /* Public */

    $.fn.alternate.defaults = {
        odd : 'odd'
        ,
        even : 'even'
        ,
        hover : false
    };

})(jQuery);
