//該插件對html的基本要求<tag id="flash"><dt></dt><dd></dd></tag>
//大小圖以，路徑|路徑|路徑的形式傳入
//大小圖的數量必須相等
//參數hover_class為<dt></dt>子節點mouseover時要添加的class
//前台調用方法$("$flash").flash_init(params...);

$(function(){
    $.fn.extend({
	    flash_init:function(bigImg,smallImg,links,hover_class){
		    //數據成員部分
			var bImg=new Array();    //大圖路徑數組
			var sImg=new Array();    //小圖路徑數組
			var alinks=new Array();    //鏈接路徑數組
			var hc=hover_class?hover_class:"";    //指示類
			var pos=0;    //指示位置
			var pelem=this;    //flash的DOM對像
			var i,j;    //普通下標變量
			
			var arr_tmp=bigImg.split("|");
			for(i=0,j=0;i<arr_tmp.length;i++)
				if(arr_tmp[i]) bImg[j++]=arr_tmp[i];
			arr_tmp=smallImg.split("|");
			for(i=0,j=0;i<arr_tmp.length;i++)
				if(arr_tmp[i]) sImg[j++]=arr_tmp[i];
			alinks=links.split("|");
			
			//函數成員部分
			this.m_test=function(){    //進行必要的初始化前檢查
				with($(pelem))
				{
				    if(size()<=0) {date("error","沒有flash成員");return false;}
				    if(attr("id")!="flash") {data("error","引用的成員不是flash成員");return false;}
				    if(children("dt").size()!=1) {data("error","flash成員的html結構不對");return false;}
					if(children("dd").size()!=1) {data("error","flash成員的html結構不對");return false;}
					if(bImg.length<=0 || sImg.length<=0) {data("error","沒有圖片");return false;}
					if(bImg.length!=sImg.length) {data("error","大小圖數量不相等");return false;}
				}
				return true;
			};
			this.m_init=function(){    //插件初始化
			    with($(pelem))
				{
			        data("pos",0);
					children("dd,dt").empty();
					//加載小圖
					for(i=0;i<sImg.length;i++) children("dt").append('<a href="#" rel="'+i+'"><img src="'+sImg[i]+'" /></a>');
					children("dt").children("a").eq(0).addClass(hc);
					//加載大圖
					for(i=0;i<bImg.length;i++) children("dd").append('<a href="'+alinks[i]+'" rel="'+i+'" target="_blank"><img src="'+bImg[i]+'" /></a>');
					children("dd").children("a").hide().eq(0).show();
				}
			};
			this.m_move=function(pos){    //顯示頁面
			    with($(pelem))
				{
				    var old_pos=data("pos");
					old_pos=parseInt(old_pos);
					pos=parseInt(pos);
					data("pos",pos);
					children("dt").children("a").eq(old_pos).removeClass(hc);
					children("dt").children("a").eq(pos).addClass(hc);
					children("dd").children("a").eq(old_pos).hide();
					children("dd").children("a").eq(pos).fadeIn("slow");
				}
			};
			this.m_report_error=function(){    //錯誤報告
		        alert($(pelem).data("error"));
			};
			
			//添加函數成員列表
			with($(pelem))
			{
				data("m_test",this.m_test);
				data("m_init",this.m_init);
				data("m_move",this.m_move);
				data("m_report_error",this.m_report_error);
			}
			
			//調用部分
			if(!this.m_test()) {this.m_report_error();return;}
			this.m_init();
			$(pelem).children("dt").children("a").click(function(e){
			    var pos=$(this).attr("rel");
				var move_fun=$(pelem).data("m_move");
				move_fun(pos);
				e.preventDefault()				 
			});
			setInterval(
			    function(){
				    var old_pos=$(pelem).data("pos");
					var pos=(parseInt(old_pos)+1)%bImg.length;
					var move_fun=$(pelem).data("m_move");
				    move_fun(pos);
				},
				5000
			);
		}
	});   
});
