﻿function alanSwapImg(cont,imgs,txts,urls,width,height)
{
	if(!cont)return;
	var img=imgs.split('|');
	var txt=txts.split('|');
	var url=urls.split('|');
	
	
	var swapNum=0;
	var swapNow=0;
	var max=img.length;
	var dir=1;//移动方向,1为向下，２为向左，３为向上，４为向右
	var interval;
	var mainInterval;
	var timeout=3000;
	
	for(var i=txt.length;i<img.length;i++)txt[i]='';
	for(var i=url.length;i<img.length;i++)url[i]='';
	
	//先输出内容到目标元素里面去
	var mainObj=document.createElement('div');
	mainObj.style.width=width+'px';
	mainObj.style.height=height+'px';
	cont.appendChild(mainObj);
	
	var listUl;
	var divs;
	var lis;
	mainObj.innerHTML='';
	
	function Instrall()
	{
		mainObj.style.width=width+'px';
		mainObj.style.height=height+'px';
		mainObj.style.position='absolute';
		listUl=document.createElement('ul');
 
		for(var i=0;i<max;i++)
		{
			var li = document.createElement('li');
			with(li.style){styleFloat='left';display='inline-block';background='url("images/small-square.jpg")';width='18px';height='18px';marginRight='5px';cursor='pointer';};
			//li.innerHTML=(i+1);
			listUl.appendChild(li);
		}
		mainObj.appendChild(listUl);
		listUl.id='___thisUl';
		listUl.style.width=(mainObj.offsetWidth)+'px';
		listUl.style.padding='5px 0';
		listUl.style.position='absolute';
		listUl.style.zIndex='55';
		//listUl.style.background='#eee';
		//listUl.style.opacity='0.8';
		//listUl.style.filter='alpha(opacity=80)';
		listUl.style.marginTop='5px';
		listUl=$('___thisUl');
		
		for(var i=0;i<max;i++)
		{
			mainObj.innerHTML+='<div style="position:absolute;z-index:'+(10+max-i)+';margin:0;width:'+width+'px;height:'+height+'px;background:#fff;"><a target="_blank" href="'+url[i]+'" title="'+txt[i]+'"><img src="'+img[i]+'" alt="" /></a></div>';
		}
		
		lis=$$('___thisUl','li');
		$('___thisUl').style.paddingLeft=($('___thisUl').offsetWidth-max*23-3)+'px';
		for(var i=0;i<max;i++)
		{
			lis[i].onclick=function()
			{
				clearInterval(mainInterval);
				clearInterval(interval);
				//eval('swapNum='+this.innerHTML+'-1');
				_t=0;
				divs[swapNow].style.margin='0';
				for(var j=0;j<max;j++)if(this==lis[j])swapNum=j;
				setLevel();
				setSwap();
				//mainInterval=setInterval(setSwap,timeout);
			}
			lis[i].onmouseover=function()
			{
				this.style.background='#B30066';
			}
			lis[i].onmouseout=function()
			{
				if(this!=lis[swapNow])
				{
					this.style.background='url("images/small-square.jpg")';
				}
			}
		};
	
		divs=mainObj.getElementsByTagName('div');
	}
	Instrall();
	var _d=45,_t=0,_c;
	function LN(c,t,d){return Math.ceil(c*((t=t/d-1)*t*t + 1));};

	function setSwap()
	{
		clearInterval(mainInterval);
		_t=0;
		//设置层级
		divs[swapNum].style.zIndex='39';
		divs[swapNow].style.zIndex='38';
		
		lis[swapNow].style.background='url("images/small-square.jpg")';
		lis[swapNum].style.background='#B30066';
		
		swapNow=swapNum;
		swapNum++;
		if(swapNum>=max)swapNum=0;
 
		dir=Math.round(Math.random()*4+0.4999999999999);
		
		switch(dir)
		{
			case 2:
				divs[swapNow].style.marginLeft=width+'px';
				_c=width;
				interval=setInterval(moveLeft,10);
				break;
			case 3:
				divs[swapNow].style.marginTop=height+'px';
				_c=height;
				interval=setInterval(moveDown,10);
				break;
			case 4:
				divs[swapNow].style.marginLeft='-'+width+'px';
				_c=-width;
				interval=setInterval(moveRight,10);
				break;
			default:
				divs[swapNow].style.marginTop='-'+height+'px';
				_c=-height;
				interval=setInterval(moveUp,10);
				break;
		}
	}
	function setLevel()
	{
		for(var i=0;i<max;i++)
		{
			divs[i].style.margin='0';
			if(i!=swapNow)
				divs[i].style.zIndex=10+max-i;
		}
	}
	function moveEnd()
	{
		clearInterval(mainInterval);
		clearInterval(interval);
		_t=0;
		divs[swapNow].style.margin='0';
		setLevel();
		mainInterval=setInterval(setSwap,timeout);
	}
	//向上移动
	function moveUp()
	{
		if(_t<_d)
		{
			_t++;
			divs[swapNow].style.marginTop=height+LN(_c,_t,_d)+'px';
		}
		else
			moveEnd();
	}
	//向右移动
	function moveRight()
	{
		if(_t<_d)
		{
			_t++;
			divs[swapNow].style.marginLeft=-width-LN(_c,_t,_d)+'px';
		}
		else
			moveEnd();
	}

	//向下移动
	function moveDown()
	{
		if(_t<_d)
		{
			_t++;
			divs[swapNow].style.marginTop=-height+LN(_c,_t,_d)+'px';
		}
		else
			moveEnd();
	}
	//向左移动
	function moveLeft()
	{
		if(_t<_d)
		{
			_t++;
			divs[swapNow].style.marginLeft=width-LN(_c,_t,_d)+'px';
		}
		else
			moveEnd();
	}
	//setSwap();
	mainInterval=setInterval(setSwap,timeout);
};

