/*
滚动层类
作者：Andyfoo
版本：v2.0
Email：andyfoo@163.com
*/
/*
<div id=award_scroll style="height:218px; overflow:hidden">
<div id=award_scroll1>
asddsf
asdf
dasf
</div>
<div id=award_scroll2></div>
</div>

<script src="images/js/scroll_div.js"></script>
<script >
	var awardSD = new scrollDiv("awardSD");
	//定义特殊行高
	awardSD._step_def[1] = 85;
	awardSD.setStep(21);
	awardSD.setScrollTime(1200);
	awardSD.setItemScrollTime(20);
	//awardSD.maxItem = 6;
	awardSD.start($('award_scroll'), $('award_scroll1'), $('award_scroll2'));
</script>
*/

function scrollDiv(name)
{ 
	this._self = this;
	this._name = name;
	
	this.init_status = false;

	this._repeatTimer=null;
	this._step=65;

	//定义特殊行高 
	/*
	如:awardSD._step_def[1] = 85;
		awardSD._step_def[2] = 35;
	*/
	this._step_def = new Array();

	this._stepCount=0;
	this._scrollTime=5000;
	this._itemScrollTime=10;
	this._isStop=false;
	


	this._scroll_div_id=null;
	this._scroll_div1_id=null;
	this._scroll_div2_id=null;

	this.maxItem = 0;
	this.maxHeight = 0;
	this.OnShowItem = new Function();
	this.nowItem = 0;
	
	//初始化
	this.start = function(id, id1, id2){
		this._scroll_div_id=id;
		this._scroll_div1_id=id1;
		this._scroll_div2_id=id2;

		this._scroll_div2_id.innerHTML = this._scroll_div1_id.innerHTML;
	
		this._repeatTimer=window.setInterval(this._name + ".scroll_div_marquee()", this._scrollTime);
		var _this = this;
		this._scroll_div_id.onmouseover = function() {_this._isStop=true}
		this._scroll_div_id.onmouseout = function() {_this._isStop=false}
		this._scroll_div_id.scrollTop = 0;

		var _sub_divs = this._scroll_div1_id.getElementsByTagName("DIV");
		if(_sub_divs.length == 0){
			_sub_divs = this._scroll_div1_id.getElementsByTagName("TR");
			
		}
		if(this.maxItem <= 0){
			for(var i in _sub_divs){
				if(typeof(_sub_divs[i]) != "object")continue;
				if(_sub_divs[i].getAttribute("sd_item") == 1)this.maxItem++;
			}
		}
		if(this.maxItem <= 0){
			this.maxItem = _sub_divs.length;
		}

		this.maxHeight = this.getMaxHeight();
		this.init_status = true;
		
	}
	this.getMaxHeight = function(n){
		var h = 0;
		if(!n)var n = this.maxItem;
		for(var i = 1; i <= this.maxItem && i <= n; i++){
			if(this._step_def[i]){
				h += this._step_def[i];
			}else{
				h += this._step;
			}
		}
		return h;
	}
	//一次滚动行高
	this.setStep = function(_v){
		this._step = _v;
	}
	//滚动间隔时间
	this.setScrollTime = function(_v){
		this._scrollTime = _v;
	}
	//滚动一行时每像素间隔时间
	this.setItemScrollTime = function(_v){
		this._itemScrollTime = _v;
	}
	//滚动行至x
	this.scroll_div_go = function(n){
		this.nowItem=n;
		if(this.nowItem > this.maxItem){
			this.nowItem=1;
		}

		if(this._scroll_div_id.scrollTop + this._scroll_div_id.offsetHeight >= this.maxHeight + this._scroll_div_id.offsetHeight){
			this._scroll_div_id.scrollTop=0;
		} 

		this._scroll_div_id.scrollTop = this.getMaxHeight(this.nowItem);
		try{
			this.OnShowItem(this.nowItem);
		}catch(e){}
	}
	this.scroll_div_marquee = function(){
		if(this._isStop)return;
		this.nowItem++;
		if(this.nowItem > this.maxItem){
			this.nowItem=1;
		}

		if(this._scroll_div_id.scrollTop + this._scroll_div_id.offsetHeight >= this.maxHeight + this._scroll_div_id.offsetHeight){
			this._scroll_div_id.scrollTop=0;
		}

		this._stepCount = this.getMaxHeight(this.nowItem);
		
		window.setTimeout(this._name + ".scroll_div_marquee_auto()", this._itemScrollTime);
		try{
			this.OnShowItem(this.nowItem);
		}catch(e){}
	}
	this.scroll_div_marquee_auto = function(){
		//if(_isStop)_stepCount=0;
		if(this._stepCount >= this._scroll_div_id.scrollTop){
			this._scroll_div_id.scrollTop += 1;
			window.setTimeout(this._name + ".scroll_div_marquee_auto()", this._itemScrollTime);
		}
	}
	this.scroll_div_up = function(){
		this.nowItem++;
		if(this.nowItem > this.maxItem){
			this.nowItem=1;
		}

		if(this._scroll_div_id.scrollTop + this._scroll_div_id.offsetHeight >= this.maxHeight + this._scroll_div_id.offsetHeight){
			this._scroll_div_id.scrollTop=0;
		} 
		this._scroll_div_id.scrollTop = this.getMaxHeight(this.nowItem);
		try{
			this.OnShowItem(this.nowItem);
		}catch(e){}
	}

	this.scroll_div_down = function(){
		this.nowItem--;
		
		if(this.nowItem <= 1){
			this.nowItem=this.maxItem;
		}
		if(this._scroll_div_id.scrollTop <= 0){
			this._scroll_div_id.scrollTop = this.maxHeight;
		}
		this._scroll_div_id.scrollTop = this.getMaxHeight(this.nowItem);
		try{
			this.OnShowItem(this.nowItem);
		}catch(e){}
	}
	this.scroll_div_stop = function(){
		this._isStop = true;
	}
	this.scroll_div_start = function(){
		this._isStop = false;
	}

}

