var flash={};
flash.show=function(data){
	//外壳（flash）执行后被实例化
	flash=new Flash(data);
	flash.create();
}
var Flash=function(data)
{
	this.mId=data.id||"flash";				//容器ID
	this.mWidth=data.width||400;			//单个图片宽度
	this.mHeight=data.height||300;			//单个图片高度
	this.showNum=data.num;					//显示图片的个数
	this.mLinks=data.links||[];				//链接数组
	this.mImages=data.images||[];			//图片数组
	this.mFunc=data.callback;				//回调函数
	this.mSlide=data.slide;					//是否滑动
	this.mAuto=data.auto;					//是否自动播放
	
	this.innerId="flash_inner_div";			//容器内部层的id
	this.perOffset=data.width;				//单个偏移量
	this.miniOffset=40;						//单位偏移量
	this.count=this.mLinks.length||0;		//数量
	this.indexId=1;							//当前索引	
	this.flag=true;							//防止第一次位移还没完成再次操作
}
Flash.prototype={
	create:function(data)
	{
		//设置父层
		var parentDiv=document.getElementById(this.mId);
		//父层溢出时hidden
		parentDiv.style.overflow="hidden";
		//单个图片的宽度*显示区域图片的数量
		parentDiv.style.width=this.mWidth*this.showNum+"px";
		parentDiv.style.height=this.mHeight+"px";
		parentDiv.style.position="relative";
		
		//创建
		var L=this.count;
		var arr=[];
		//position:relative	相对定位  宽度=单个图片宽度*总图片数量

		var _style="height:"+this.mHeight+"px;width:"+((this.mWidth+1)*L)+"px;position:relative;left:0px;padding:0px;";
		
		//创建内层、图片及链接
		arr.push("<div id=\""+this.innerId+"\" style=\""+_style+"\">")
		for(var i=0;i<L;i++)
		{
			if(this.mLinks[i] == "")
				arr.push("<a style='float:left'><img src='"+this.mImages[i]+"' border='0' /></a>");
			else
				arr.push("<a style='float:left' href='"+this.mLinks[i]+"' target='_blank'><img src='"+this.mImages[i]+"' border='0' /></a>");
		}
		arr.push("</div>");
		parentDiv.innerHTML=arr.join("\n");
		this.move(1);
		//加载开始轮播
		if(this.mAuto)
		{
			var _self=this;
			var loop=setInterval(function()
			{
				_self.left()
			},5500);
		}
	},
	move:function(index)
	{
		//参数校验
		if(index<1)
			index=this.count-this.showNum+1;
		else if(index>this.count-this.showNum+1)
			index=1;
			
		//循环控制标记
		_self=this;
		if(_self.flag==false)return false;
		_self.flag=false
		
		var div=document.getElementById(this.innerId);
		//获取当前left
		var curentPos=parseInt(div.style.left);
		//计算终点left
		var endPost=curentPos+(this.indexId-index)*this.perOffset;

		//标记方向
		var _flag=(this.indexId-index)<0?-1:1;
		//分几种速度
		var speed1=this.miniOffset*_flag;
		var speed2=parseInt(this.miniOffset/2)*_flag;
		var speed3=2*_flag;
		//存储索引
		this.indexId=index;
		this.mFunc(this.indexId);
		//开始位移
		var loop = setInterval(function()
		{
			//当差距小到一定值的时候直接赋值
			var left = parseInt(div.style.left);
			if (Math.abs(left - endPost) < 5 || (!_self.mSlide)) 
			{
				div.style.left = endPost + "px";
				clearInterval(loop);
				_self.flag = true;
			} else if (Math.abs(left - endPost) < 20) 
			{
				div.style.left = left + speed3 + "px";
			} else if (Math.abs(left - endPost) < 60) 
			{
				div.style.left = left + speed2 + "px";
			} else 
			{
				div.style.left = left + speed1 + "px";
			}
		}, 1);
	},
	left:function()
	{
		//执行偏移
		this.move(this.indexId+1);
			
	},
	right:function()
	{
		this.move(this.indexId-1);
	}
}

var lastelem;
var callback=function(index)
{
	if(lastelem){
		elem.style.background = "url(/images/rotation_btn1.png) no-repeat";
		elem.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=scale, src='/images/rotation_btn1.png')";
	}
	elem = document.getElementById("btn").getElementsByTagName("li")[index-1];
	elem.style.background = "url(/images/rotation_btn2.png) no-repeat";
	elem.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=scale, src='/images/rotation_btn2.png')";
	
	lastelem = elem;
}

var data={
	links : ["http://www.changhuatong.com/callback/index","http://www.changhuatong.com/know", "http://www.changhuatong.com/"],
	images: ["/images/rotator_10.png","/images/rotator_1.png","/images/rotator_2.png"],
	id:"flash",
	width:673,
	height:330,
	num:1,
	callback:callback,
	slide:true,
	auto:true
};
(function(){
	var D=data.links;
	var arr=[];
	for(var i=0;i<D.length;i++)
	{
		if(D[i] == "")
			arr.push("<li onmouseover=\"flash.move("+(i+1)+");\">"+(i+1)+"</li>");
		else
			arr.push("<li onmouseover=\"flash.move("+(i+1)+");\" onclick=\"window.open('"+D[i]+"')\">"+(i+1)+"</li>");
	}
	arr=arr.join("\n");
	document.getElementById("btn").innerHTML=arr;
})()
flash.show(data);


