// JavaScript Document
$.fn.extend({
	tab : function(config){
		var config = config || {};
		var titles = $(this).find('ul:first li.J_tabTitle'),
			contents = $(this).find('ul:first').next('div').siblings('div').andSelf(),
			num = titles.length,
			titleClass = config.titleClass || 'tab_title_current',
			contentClass = config.contentClass || 'tab_content_current',
			contentNormalClass = config.contentNormalClass || 'tab_content_normal',
			step = config.step * 1000 || 1000,
			auto,
			doAuto,
			isauto = config.auto,
			autoNow = -1,
			type = config.type || 'click';
		contents.not(':first').addClass('tab_content_normal');
		contents.filter(':first').addClass(contentClass);
		titles.filter(':first').addClass(titleClass);
		titles[type](function(){
			clearTimeout(auto);
			clearTimeout(doAuto);
			isauto = false;
			play.call(this);
		});
		titles.mouseleave(function(){
			if(config.auto){
				if(isauto){
					return;
				}
				isauto = true;
				doAuto = setTimeout(function(){
					autoPlay();
				},step);
			}
		});
		function play(){
			titles.filter('.'+titleClass).removeClass(titleClass);
			contents.filter('.'+contentClass).removeClass(contentClass).addClass(contentNormalClass);
			$(this).addClass(titleClass);
			autoNow = $(this).prevAll('li.J_tabTitle').length;
			contents.eq(autoNow).removeClass(contentNormalClass).addClass(contentClass);
		}
		function next(){
			autoNow++;
			if(autoNow >= num){
				autoNow = 0;
			}
			return $(titles[autoNow]);
		}
		function autoPlay(){
			play.call(next());
			auto = setTimeout(function(){
				autoPlay();
			},step);
		}
		if(config.auto){
			autoPlay();
		}
	}
});
