﻿//container-cp
					var CurrentHotScreen = 0 ;
					function setHotQueryList(screen){
						var Vmotion = "forward" ;
						var MaxScreen = 7 ;
						if (screen >= MaxScreen) {
							screen = 0 ;
							Vmotion = "reverse" ;
						}
						cleanallstyle();
						document.getElementById("focus_"+screen).className = "up" ;
					  
					  if(null!=hot_query_td.filters){
						hot_query_td.filters[0].apply();
						hot_query_td.filters[0].motion = Vmotion;
					  }
					  for (i=0;i<MaxScreen;i++) {
						document.getElementById("switch_"+i).style.display = "none" ;
					  }
					  document.getElementById("switch_"+screen).style.display = "block" ;
					  if(null!=hot_query_td.filters){
						hot_query_td.filters[0].play();
					  }
						CurrentHotScreen = screen ;
					}
					function refreshHotQuery(){
						refreshHotQueryTimer = null;
						setHotQueryList(CurrentHotScreen+1);
						refreshHotQueryTimer = setTimeout('refreshHotQuery();', 3000);
					}
//slider
var isIE = (document.all) ? true : false;

var $ = function (id) {
	return "string" == typeof id ? document.getElementById(id) : id;
};

var Class = {
	create: function() {
		return function() { this.initialize.apply(this, arguments); }
	}
}

var Extend = function(destination, source) {
	for (var property in source) {
		destination[property] = source[property];
	}
}

var Bind = function(object, fun) {
	var args = Array.prototype.slice.call(arguments).slice(2);
	return function() {
		return fun.apply(object, args);
	}
}

var BindAsEventListener = function(object, fun) {
	return function(event) {
		return fun.call(object, Event(event));
	}
}

function Event(e){
	var oEvent = isIE ? window.event : e;
	if (isIE) {
		oEvent.pageX = oEvent.clientX + document.documentElement.scrollLeft;
		oEvent.pageY = oEvent.clientY + document.documentElement.scrollTop;
		oEvent.preventDefault = function () { this.returnValue = false; };
		oEvent.detail = oEvent.wheelDelta / (-40);
		oEvent.stopPropagation = function(){ this.cancelBubble = true; }; 
	}
	return oEvent;
}

var CurrentStyle = function(element){
	return element.currentStyle || document.defaultView.getComputedStyle(element, null);
}

function addEventHandler(oTarget, sEventType, fnHandler) {
	if (oTarget.addEventListener) {
		oTarget.addEventListener(sEventType, fnHandler, false);
	} else if (oTarget.attachEvent) {
		oTarget.attachEvent("on" + sEventType, fnHandler);
	} else {
		oTarget["on" + sEventType] = fnHandler;
	}
};

function removeEventHandler(oTarget, sEventType, fnHandler) {
    if (oTarget.removeEventListener) {
        oTarget.removeEventListener(sEventType, fnHandler, false);
    } else if (oTarget.detachEvent) {
        oTarget.detachEvent("on" + sEventType, fnHandler);
    } else { 
        oTarget["on" + sEventType] = null;
    }
};


//滑动条程序
var Slider = Class.create();
Slider.prototype = {
  //容器对象，滑块
  initialize: function(container, bar, options) {
	this.Bar = $(bar);
	this.Container = $(container);
	this._timer = null;//自动滑移的定时器
	this._ondrag = false;//解决ie的click问题
	//是否最小值、最大值、中间值
	this._IsMin = this._IsMax = this._IsMid = false;
	//实例化一个拖放对象，并限定范围
	this._drag = new Drag(this.Bar, { Limit: true, mxContainer: this.Container,
		onStart: Bind(this, this.DragStart), onStop: Bind(this, this.DragStop), onMove: Bind(this, this.Move)
	});
	
	this.SetOptions(options);
	
	this.WheelSpeed = Math.max(0, this.options.WheelSpeed);
	this.KeySpeed = Math.max(0, this.options.KeySpeed);
	
	this.MinValue = this.options.MinValue;
	this.MaxValue = this.options.MaxValue;
	
	this.RunTime = Math.max(1, this.options.RunTime);
	this.RunStep = Math.max(1, this.options.RunStep);
	
	this.Ease = !!this.options.Ease;
	this.EaseStep = Math.max(1, this.options.EaseStep);
	
	this.onMin = this.options.onMin;
	this.onMax = this.options.onMax;
	this.onMid = this.options.onMid;
	
	this.onDragStart = this.options.onDragStart;
	this.onDragStop = this.options.onDragStop;
	
	this.onMove = this.options.onMove;
	
	this._horizontal = !!this.options.Horizontal;//一般不允许修改
	
	//锁定拖放方向
	this._drag[this._horizontal ? "LockY" : "LockX"] = true;
	
	//点击控制
	addEventHandler(this.Container, "click", BindAsEventListener(this, function(e){ this._ondrag || this.ClickCtrl(e);}));
	//取消冒泡，防止跟Container的click冲突
	addEventHandler(this.Bar, "click", BindAsEventListener(this, function(e){ e.stopPropagation(); }));
	
	//设置鼠标滚轮控制
	this.WheelBind(this.Container);
	//设置方向键控制
	this.KeyBind(this.Container);
	//修正获取焦点
	var oFocus = isIE ? (this.KeyBind(this.Bar), this.Bar) : this.Container;
	addEventHandler(this.Bar, "mousedown", function(){ oFocus.focus(); });
	//ie鼠标捕获和ff的取消默认动作都不能获得焦点，所以要手动获取
	//如果ie把focus设置到Container，那么在出现滚动条时ie的focus可能会导致自动滚屏
  },
  //设置默认属性
  SetOptions: function(options) {
	this.options = {//默认值
		MinValue:	0,//最小值
		MaxValue:	100,//最大值
		WheelSpeed: 5,//鼠标滚轮速度,越大越快(0则取消鼠标滚轮控制)
		KeySpeed: 	50,//方向键滚动速度,越大越慢(0则取消方向键控制)
		Horizontal:	true,//是否水平滑动
		RunTime:	20,//自动滑移的延时时间,越大越慢
		RunStep:	2,//自动滑移每次滑动的百分比
		Ease:		false,//是否缓动
		EaseStep:	5,//缓动等级,越大越慢
		onMin:		function(){},//最小值时执行
		onMax:		function(){},//最大值时执行
		onMid:		function(){},//中间值时执行
		onDragStart:function(){},//拖动开始时执行
		onDragStop:	function(){},//拖动结束时执行
		onMove:		function(){}//滑动时执行
	};
	Extend(this.options, options || {});
  },
  //开始拖放滑动
  DragStart: function() {
  	this.onDragStart();
	this._ondrag = true;
  },
  //结束拖放滑动
  DragStop: function() {
  	this.onDragStop();
	setTimeout(Bind(this, function(){ this._ondrag = false; }), 10);
  },
  //滑动中
  Move: function() {
  	this.onMove();
	
	var percent = this.GetPercent();
	//最小值判断
	if(percent > 0){
		this._IsMin = false;
	}else{
		if(!this._IsMin){ this.onMin(); this._IsMin = true; }
	}
	//最大值判断
	if(percent < 1){
		this._IsMax = false;
	}else{
		if(!this._IsMax){ this.onMax(); this._IsMax = true; }
	}
	//中间值判断
	if(percent > 0 && percent < 1){
		if(!this._IsMid){ this.onMid(); this._IsMid = true; }
	}else{
		this._IsMid = false;
	}
  },
  //鼠标点击控制
  ClickCtrl: function(e) {
	var o = this.Container, iLeft = o.offsetLeft, iTop = o.offsetTop;
	while (o.offsetParent) { o = o.offsetParent; iLeft += o.offsetLeft; iTop += o.offsetTop; }
	//考虑有滚动条，要用pageX和pageY
	this.EasePos(e.pageX - iLeft - this.Bar.offsetWidth / 2, e.pageY - iTop - this.Bar.offsetHeight / 2);
  },
  //鼠标滚轮控制
  WheelCtrl: function(e) {
	var i = this.WheelSpeed * e.detail;
	this.SetPos(this.Bar.offsetLeft + i, this.Bar.offsetTop + i);
	//防止触发其他滚动条
	e.preventDefault();
  },
  //绑定鼠标滚轮
  WheelBind: function(o) {
  	//鼠标滚轮控制
	addEventHandler(o, isIE ? "mousewheel" : "DOMMouseScroll", BindAsEventListener(this, this.WheelCtrl));
  },
  //方向键控制
  KeyCtrl: function(e) {
	if(this.KeySpeed){
		var iLeft = this.Bar.offsetLeft, iWidth = (this.Container.clientWidth - this.Bar.offsetWidth) / this.KeySpeed
			, iTop = this.Bar.offsetTop, iHeight = (this.Container.clientHeight - this.Bar.offsetHeight) / this.KeySpeed;
		//根据按键设置值
		switch (e.keyCode) {
			case 37 ://左
				iLeft -= iWidth; break;
			case 38 ://上
				iTop -= iHeight; break;
			case 39 ://右
				iLeft += iWidth; break;
			case 40 ://下
				iTop += iHeight; break;
			default :
				return;//不是方向按键返回
		}
		this.SetPos(iLeft, iTop);
		//防止触发其他滚动条
		e.preventDefault();
	}
  },
  //绑定方向键
  KeyBind: function(o) {
	addEventHandler(o, "keydown", BindAsEventListener(this, this.KeyCtrl));
	//设置tabIndex使设置对象能支持focus
	o.tabIndex = -1;
	//取消focus时出现的虚线框
	isIE || (o.style.outline = "none");
  },
  //获取当前值
  GetValue: function() {
	//根据最大最小值和滑动百分比取值
	return this.MinValue + this.GetPercent() * (this.MaxValue - this.MinValue);
  },
  //设置值位置
  SetValue: function(value) {
	//根据最大最小值和参数值设置滑块位置
	this.SetPercent((value- this.MinValue)/(this.MaxValue - this.MinValue));
  },
  //获取百分比
  GetPercent: function() {
	//根据滑动条滑块取百分比
	return this._horizontal ? this.Bar.offsetLeft / (this.Container.clientWidth - this.Bar.offsetWidth)
		: this.Bar.offsetTop / (this.Container.clientHeight - this.Bar.offsetHeight)
  },
  //设置百分比位置
  SetPercent: function(value) {
	//根据百分比设置滑块位置
	this.EasePos((this.Container.clientWidth - this.Bar.offsetWidth) * value, (this.Container.clientHeight - this.Bar.offsetHeight) * value);
  },
  //自动滑移(是否递增)
  Run: function(bIncrease) {
	this.Stop();
	//修正一下bIncrease
	bIncrease = !!bIncrease;
	//根据是否递增来设置值
	var percent = this.GetPercent() + (bIncrease ? 1 : -1) * this.RunStep / 100;
	this.SetPos((this.Container.clientWidth - this.Bar.offsetWidth) * percent, (this.Container.clientHeight - this.Bar.offsetHeight) * percent);
	//如果没有到极限值就继续滑移
	if(!(bIncrease ? this._IsMax : this._IsMin)){
		this._timer = setTimeout(Bind(this, this.Run, bIncrease), this.RunTime);
	}
  },
  //停止滑移
  Stop: function() {
	clearTimeout(this._timer);
  },
  //缓动滑移
  EasePos: function(iLeftT, iTopT) {
	this.Stop();
	//必须是整数，否则可能死循环
	iLeftT = Math.round(iLeftT); iTopT = Math.round(iTopT);
	//如果没有设置缓动
	if(!this.Ease){ this.SetPos(iLeftT, iTopT); return; }
	//获取缓动参数
	var iLeftN = this.Bar.offsetLeft, iLeftS = this.GetStep(iLeftT, iLeftN)
	, iTopN = this.Bar.offsetTop, iTopS = this.GetStep(iTopT, iTopN);
	//如果参数有值
	if(this._horizontal ? iLeftS : iTopS){
		//设置位置
		this.SetPos(iLeftN + iLeftS, iTopN + iTopS);
		//如果没有到极限值则继续缓动
		if(this._IsMid){ this._timer = setTimeout(Bind(this, this.EasePos, iLeftT, iTopT), this.RunTime); }
	}
  },
  //获取步长
  GetStep: function(iTarget, iNow) {
    var iStep = (iTarget - iNow) / this.EaseStep;
    if (iStep == 0) return 0;
    if (Math.abs(iStep) < 1) return (iStep > 0 ? 1 : -1);
    return iStep;
  },
  //设置滑块位置
  SetPos: function(iLeft, iTop) {
	this.Stop();
	this._drag.SetPos(iLeft, iTop);
  }
};


//图片上移
var $ = function (id) {
    return "string" == typeof id ? document.getElementById(id) : id;
};

var Class = {
  create: function() {
    return function() {
      this.initialize.apply(this, arguments);
    }
  }
}

Object.extend = function(destination, source) {
	for (var property in source) {
		destination[property] = source[property];
	}
	return destination;
}

function addEventHandler(oTarget, sEventType, fnHandler) {
	if (oTarget.addEventListener) {
		oTarget.addEventListener(sEventType, fnHandler, false);
	} else if (oTarget.attachEvent) {
		oTarget.attachEvent("on" + sEventType, fnHandler);
	} else {
		oTarget["on" + sEventType] = fnHandler;
	}
};


var Scroller = Class.create();
Scroller.prototype = {
  initialize: function(idScroller, idScrollMid, options) {
    var oScroll = this, oScroller = $(idScroller), oScrollMid = $(idScrollMid);
	
	this.SetOptions(options);
	this.Scroller = oScroller;	
	this.Speed = this.options.Speed;
	this.timer = null;
	this.Pause = 0;
	
	//用于上下滚动
	this.heightScroller = parseInt(oScroller.style.height) || oScroller.offsetHeight;
	this.heightList = oScrollMid.offsetHeight;
	
	//用于左右滚动
	this.widthScroller = parseInt(oScroller.style.width) || oScroller.offsetWidth;
	this.widthList = oScrollMid.offsetWidth;
	
	//js取不到css设置的height和width
	
	oScroller.style.overflow = "hidden";
	oScrollMid.appendChild(oScrollMid.cloneNode(true));
	
	//方向设置
	switch (this.options.Side.toLowerCase()) {
		case "right" :
			if(this.widthList <= this.widthScroller) return;
			this.Scroll = this.ScrollLeftRight;
			this.side = -1;
			break;
		case "left" :
			if(this.widthList <= this.widthScroller) return;
			this.Scroll = this.ScrollLeftRight;
			this.side = 1;
			break;
		case "down" :
			if(this.heightList <= this.heightScroller) return;
			this.Scroll = this.ScrollUpDown;
			this.side = -1;
			break;
		case "up" :
		default :
			if(this.heightList <= this.heightScroller) return;
			this.Scroll = this.ScrollUpDown;
			this.side = 1;
	}
	
	addEventHandler(oScroller, "mouseover", function() { oScroll.Stop(); });
	addEventHandler(oScroller, "mouseout", function() { oScroll.Start(); });
	
	this.Start();
  },
  //设置默认属性
  SetOptions: function(options) {
    this.options = {//默认值
	  Step:			1,//每次变化的px量
	  Speed:		20,//速度(越大越慢)
	  Side:			"up",//滚动方向:"up"是上，"down"是下，"left"是左，"right"是右
	  PauseHeight:	0,//隔多高停一次
	  PauseWidth:	0,//隔多宽停一次
	  PauseStep:	1000//停顿时间(PauseHeight或PauseWidth大于0该参数才有效)
    };
    Object.extend(this.options, options || {});
  },  
  //上下滚动
  ScrollUpDown: function() {
	this.Scroller.scrollTop = this.GetScroll(this.Scroller.scrollTop, this.heightScroller, this.heightList, this.options.PauseHeight);
	
	var oScroll = this;
	this.timer = window.setTimeout(function(){ oScroll.Scroll(); }, this.Speed);
  },
  //左右滚动
  ScrollLeftRight: function() {
	//document.getElementById("test").innerHTML+=iStep+",";
	//注意:scrollLeft超过1400会自动变回1400 注意长度
	this.Scroller.scrollLeft = this.GetScroll(this.Scroller.scrollLeft, this.widthScroller, this.widthList, this.options.PauseWidth);
	
	var oScroll = this;
	this.timer = window.setTimeout(function(){ oScroll.Scroll(); }, this.Speed);
  },
  //获取设置滚动数据
  GetScroll: function(iScroll, iScroller, iList, iPause) {
	var oScroll = this, iStep = this.options.Step * this.side;
	
	if(this.side > 0){
		if(iScroll >= (iList * 2 - iScroller)){ iScroll -= iList; }
	} else {
		if(iScroll <= 0){ iScroll += iList; }
	}
	
	this.Speed = this.options.Speed;
	if(iPause > 0){
		if(Math.abs(this.Pause) >= iPause){
			this.Speed = this.options.PauseStep; this.Pause = iStep = 0;
		} else {
			this.Pause += iStep;
		}
	}
	
	return (iScroll + iStep);
  },
  //开始
  Start: function() {
	this.Scroll();
  },
  //停止
  Stop: function() {
	clearTimeout(this.timer);
  }
};
//调用

