/*
 * Flash轮换效果JS插件
 * Zhaoguoqiang 2011-2-21
 * 需要jQuery库的支持
 * @param {Object} options 设置参数，请查看方法体内说明
 */
function FlashToggle(options){
	var settings = jQuery.extend({
		"controlBoxID": "controlBoxID", //*必填:控制器容器ID
		"controlItemTagName": "li", //选填:控制器项的标签名(默认li)
		"controlItemSelectClass": "current",//*必填:控制器项选中时的样式
		"controlItemUnSelectClass": "", //选填:控制器项未选中时的样式(不设置时将作 隐藏处理)
		"flashBoxID": "flashBoxID", //*必填:效果区容器ID
		"flashItemTagName": "li", //选填:效果项的标签名(默认li)						
		"flashItemSelectClass": "", //选填:效果项显示时的样式(不设置时将作 显示处理)
		"flashItemUnSelectClass": "", //选填:效果项未显示时的样式(不设置时将作 隐藏处理)
		"isAutoRun": true, //选填:动画效果是否自动轮换	(默认为true)
		"millisec": 2000, //选填:轮换的时间间隔(默认为2秒)
		"speed": "slow" //选填:动画效果持续时间,三种预定速度之一的字符串("slow", "normal", or "fast")或表示动画时长的毫秒数值(如：1000)
	}, options || {});
	var controlItemSelector = "#" + settings.controlBoxID + " " + settings.controlItemTagName;
	var falshItemSelector = "#" + settings.flashBoxID + " " + settings.flashItemTagName;
	var currentIndex = 0;	
	var setIntervalObj = null;
	var maxItem = jQuery(controlItemSelector).size();	
	jQuery(controlItemSelector).hover(function(){	    
		if (settings.isAutoRun) StopScrolll();
		currentIndex = jQuery(controlItemSelector).index(this);
		var currentPicIndex = jQuery(controlItemSelector).index(jQuery(controlItemSelector+"."+settings.controlItemSelectClass));
		var picList = jQuery(falshItemSelector);
		picList.eq(currentPicIndex).stop(true, true);//立即结束当前的动画效果
		if(currentIndex == currentPicIndex) return;//如果选中项为当前动画项,则保持选中状态
		
		jQuery(controlItemSelector).eq(currentPicIndex).removeClass(settings.controlItemSelectClass).addClass(settings.controlItemUnSelectClass);//当前选中的li去掉当前的样式加上正常的样式
		jQuery(this).removeClass(settings.controlItemUnSelectClass); //新选择的加上被选中的样式同时去掉正常的样式                    
		this.className += " "+ settings.controlItemSelectClass;		
		picList.eq(currentPicIndex).removeClass(settings.flashItemSelectClass).addClass(settings.flashItemUnSelectClass).hide();
		picList.eq(currentIndex).fadeIn(settings.speed);//除了自身别的全部隐藏  
	}, function(){//当鼠标离开对象的时候获得当前的对象的ID以便能在启动自动时与其同步
	    if (settings.isAutoRun)	autoScroll();
	});	
	if (settings.isAutoRun) {	
		jQuery(falshItemSelector).hover(function(){
			StopScrolll();
		}, function(){
			if (settings.isAutoRun) autoScroll();
		});
	}	
	function autoScroll(){
		setIntervalObj = self.setInterval(function(){toggleItem();},settings.millisec);	
	};		
	function toggleItem()
	{
		var controlSelectors = jQuery(controlItemSelector);
		var flashSelectors = jQuery(falshItemSelector);
		if (jQuery.trim(settings.controlItemSelectClass) != "") {
			controlSelectors.eq(currentIndex == 0 ? (maxItem - 1) : (currentIndex - 1)).removeClass(settings.controlItemSelectClass).addClass(settings.controlItemUnSelectClass);
			controlSelectors.eq(currentIndex).removeClass(settings.controlItemUnSelectClass).addClass(settings.controlItemSelectClass);
		}		
		if (jQuery.trim(settings.flashItemSelectClass) != "") {		
			jQuery(falshItemSelector).eq(currentIndex).removeClass(settings.flashItemUnSelectClass).addClass(settings.flashItemSelectClass).end().eq(currentIndex == 0 ? (maxItem - 1) : (currentIndex - 1)).removeClass(settings.flashItemSelectClass).addClass(settings.flashItemUnSelectClass);
		}
		jQuery(falshItemSelector).eq(currentIndex).fadeIn(settings.speed).end().eq(currentIndex == 0 ? (maxItem - 1) : (currentIndex - 1)).hide();		
		currentIndex++;
		currentIndex = currentIndex >= maxItem ? 0 : currentIndex;	
	}	
	//停止自动滚动
	function StopScrolll(){
		clearInterval(setIntervalObj);		
	}
	this.begin = function(){
		autoScroll()
	};
}	

