/**
* jQuery.Alternate
* Copyright (c) 2009 Brian Campbell - brian(at)briancampbell(dot)name
* Licensed under GPLv3
* Date: Feb 12, 2009
*
* @projectDescription Set alternating styles to sibling elements 
* http://alternate.briancampbell.name
*
* @author Brian Campbell
* @version 1.1
*
* @param {odd, even, hover}
* odd : class name for odd (1st, 3rd, 5th etc.) elements (default = "odd")
* even : class name for even (2nd, 4th, 6th etc.) elements (default = "even")
* hover : boolean (default = false)
* @return {jQuery} Returns the same jQuery object, for chaining.
*
* @example $('#my_table tbody tr').alternate({},function(){$(this).toggleClass('selected')});
*
* @$('#my_list li').alternate({odd:'light', even:'dark'});
*
* @$('#my_list dd').alternate({hover:true});
*
* All the parameters are optional.
*
* @example css
* .odd {background-color:lightgray}
* .even {background-color:white}
* .hover {background-color:darkgray; font-style:bold}
*
*/

(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);

(function(a){a.fn.alternate=function(b,c){var d=a.extend({},a.fn.alternate.defaults,b);return this.each(function(e){var f=a(this),g=a.meta?a.extend({},d,f.data()):d;if(e%2==0&&d.even.length){f.removeClass(d.odd).addClass(d.even)}else{if(d.odd.length){f.removeClass(d.even).addClass(d.odd)}}if(c){f.click(c)}if(d.hover){f.bind("mouseenter mouseleave",function(h){a(this).toggleClass("hover")})}})};a.fn.alternate.defaults={odd:"odd",even:"even",hover:false}})(jQuery);

$('table tbody tr').alternate({odd:'off', even:'on'});