/*
 *@author : caiting
 *@version : 1.0
 *说明 : 该JS可以引入到网页的任何位置，如果存在rewinAJAX.js和rewinTool.js，则放在他们后边导入
 *使用 : 将该JS引入页面，直接调用rewinjson.tool.piaofu([options]);
 *options参数说明 : options 是 json格式的键值对
 *                  参数1：stepX，X轴每次移动的步长，默认为 1px
 *					参数2：stepY, Y轴每次移动的步长，默认为 1px
 *					参数3：imgs,需要移动的图片的数组，数组元素是{src:'图片资源',url:'点击后的链接'}格式的对象
 *					参数4：moveTimeSpan, 图片移动的间隔时间，单位是毫秒，默认 50
 *					参数5：toggleTimeSpan,图片切换时间间隔，单位毫秒，默认3000，注：单个图片默认不切换
 *					参数6：target，即超链接的target属性，不为某一图片单独提供，默认'target'，即打开新窗口
 *注意 : 使用必须在导入该文件之后,还有编码问题
 *示例 : rewinjson.tool.piaofu({moveTimeSpan:10,stepX:0.5,stepY:0.5,imgs:[{src:"1.jpg",url:"#1"},{src:"2.jpg",url:"#2"},{src:"3.jpg",url:"#3"}]});
 */
var rewinjson = rewinjson || {} ;
(function(){
	rewinjson.tool = rewinjson.tool || {};
	rewinjson.tool.piaofu=function(options){
		options = options || {} ;
		options.stepX = options.stepX || 0.5 ;
		options.stepY = options.stepY || 0.5 ;
		options.imgs = options.imgs || [] ;
		options.moveTimeSpan = options.moveTimeSpan || 10;
		options.toggleTimeSpan =options.toggleTimeSpan || 3000;
		options.target = options.target || '_blank';
		options.zIndex = options.zIndex || '999';
			
		var moveTimer=null;
		var toggleTimer=null;
		var startX = 1;
		var startY = 1;
		var maxWidth=1000;
		var maxHeight=600;
		var imgArr = [];
		var curNum = 0;
        var $b=document.createElement("div");
		//var $img=document.createElement("img");
		var $a=document.createElement("a");
		$a.id="a";
		$a.style.display="block";
		$a.style.position="absolute";
		$a.style.left=startX+"px";
		$a.style.top=startY+"px";
		$a.style.zIndex=options.zIndex;
		$a.target=options.target;
		$b.style.display="block";
		$b.style.position="absolute";
		$b.style.left=$a.clientWidth-25+startX+"px";
		$b.style.top=startY+"px";
		$b.style.zIndex=options.zIndex+1;

		//$a.appendChild($img);
		for(var i=0;i<options.imgs.length;i++){
			var _img=new Image();
			_img.src=options.imgs[i].src;
			_img.style.border="none";
			_img.style.margin="0px";
			imgArr.push({img:_img,url:options.imgs[i].url});
		};

		init=function(){
			if(imgArr.length>0){
				document.body.appendChild($a);
				document.body.appendChild($b);
                $b.innerHTML="关闭";

		        $b.style.cursor="hand";
				$a.appendChild(imgArr[0].img);
				$a.href=imgArr[0].url;
				
				maxWidth=document.documentElement.clientWidth;
				maxHeight=500;

				addEvent($a,'onmouseover',function(){
					stopMove();
					stopToggle();
				});
				addEvent($b,'onmouseover',function(){
					stopMove();
					stopToggle();
				});
				addEvent($a,'onmouseout',function(){
					moveTimer=window.setTimeout(startMove,options.moveTimeSpan);
					toggleTimer=window.setTimeout(startToggle,options.toggleTimeSpan);
				});
				addEvent($b,'onmouseout',function(){
					moveTimer=window.setTimeout(startMove,options.moveTimeSpan);
					toggleTimer=window.setTimeout(startToggle,options.toggleTimeSpan);
				});
				addEvent($b,'onclick',function(){


		$a.style.display="none";
		$b.style.display="none";
				});
				moveTimer=window.setTimeout(startMove,options.moveTimeSpan);
				toggleTimer=window.setTimeout(startToggle,options.toggleTimeSpan);
			}
		};

		startMove=function(){
			if(startX+imgArr[curNum].img.width>=maxWidth-options.stepX){
				startX=maxWidth-options.stepX-imgArr[curNum].img.width;
				options.stepX=-options.stepX;
			}
			if(startX<=0){
				options.stepX=-options.stepX;
			}
			if(startY+imgArr[curNum].img.height>=maxHeight-options.stepY){
				startY=maxHeight-options.stepY-imgArr[curNum].img.height;
				options.stepY=-options.stepY;
			}
			if(startY<=0){
				options.stepY=-options.stepY;
			}
			startX+=options.stepX;
			startY+=options.stepY;
			y=startY+getBodyScrollTop();
			$a.style.left	=	startX + "px";
			$a.style.top	=	startY + getBodyScrollTop() + "px";
			$b.style.left	=	$a.clientWidth-25+startX + "px";
			$b.style.top	=	startY + getBodyScrollTop() + "px";
			moveTimer=window.setTimeout(startMove,options.moveTimeSpan);
		};

		stopMove=function(){
			window.clearTimeout(moveTimer);
		};

		startToggle=function(){
			if(imgArr.length>1){
				curNum++;
				if(curNum==imgArr.length){
					curNum=0;
				}
				$a.innerHTML="";
				$a.appendChild(imgArr[curNum].img);
				$a.href=imgArr[curNum].url;
				toggleTimer=window.setTimeout(startToggle,options.toggleTimeSpan);
			}
		};

		stopToggle=function(){
			window.clearTimeout(toggleTimer);
		};

		addEvent=function(o,e,f){
			if(window.addEventListener){
				o.addEventListener(e.substring(2),f,false);
			}else if(window.attachEvent){
				o.attachEvent(e,f);
			}
		};

		getBodyScrollTop=function(){
			return document.body.scrollTop || window.pageYOffset || document.documentElement.scrollTop ;
		};

		addEvent(window,'onload',init);
		addEvent(window,'onscroll',function(){$a.style.top	=	startY + getBodyScrollTop() + "px";});
		addEvent(window,'onscroll',function(){$b.style.top	=	startY + getBodyScrollTop() + "px";});
		addEvent(window,'onresize',function(){
				maxWidth=document.documentElement.clientWidth;
				maxHeight=document.documentElement.clientHeigh;
			});
		
		/*window.onload=init;
		window.onscroll=function(){$a.style.top	=	startY + getBodyScrollTop() + "px";};
		window.onresize=function(){
				maxWidth=document.documentElement.clientWidth;
				maxHeight=document.documentElement.clientHeight;
			};*/
	};


})(rewinjson);
