/*begin*/var Class={
	create:function () {
		return function () {
			this.initialize.apply(this,arguments)
		}
	}
};
Object.extend=function (a,b) {
	for(var c in b)a[c]=b[c];return a
};var TransformView=Class.create();TransformView.prototype={
	initialize:function (a,b,c,d,e) {
		if(!(c<=0||d<=0)) {
			a=document.getElementById(a);
			b=document.getElementById(b);
			this.Index=0;
			this._timer=null;
			this._slider=b;
			this._parameter=c;
			this._count=d||0;
			this._target=0;
			this.SetOptions(e);
			this.Up=!!this.options.Up;
			this.Step=Math.abs(this.options.Step);
			this.Time=Math.abs(this.options.Time);
			this.Auto=!!this.options.Auto;
			this.Pause=Math.abs(this.options.Pause);
			this.onStart=this.options.onStart;
			this.onFinish=this.options.onFinish;
			a.style.overflow="hidden";
			a.style.position="relative";
			b.style.position="absolute";
			b.style.top=b.style.left=0
		}
	},SetOptions:function (a) {
		this.options={
			Up:true,Step:5,Time:10,Auto:true,Pause:4E3,onStart:function () {
			},onFinish:function () {
			}
		};
		Object.extend(this.options,a||{
		})
	},Start:function () {
		if(this.Index<0)this.Index=this._count-1;
		else if(this.Index>=this._count)this.Index=0;
		this._target=-1*this._parameter*this.Index;
		this.onStart();
		this.Move()
	},Move:function () {
		clearTimeout(this._timer);
		var a=this,b=this.Up?"top":"left",c=parseInt(this._slider.style[b])||0,d=this.GetStep(this._target,c);
		if(d!=0) {
			this._slider.style[b]=c+d+"px";
			this._timer=setTimeout(function () {
				a.Move()
			},this.Time)
		}else {
			this._slider.style[b]=this._target+"px";
			this.onFinish();
			if(this.Auto)this._timer=setTimeout(function () {
				a.Index++;
				a.Start()
			},this.Pause)
		}
	},GetStep:function (a,b) {
		a=(a-b)/this.Step;
		if(a==0)return 0;
		if(Math.abs(a)<1)return a>0?1:-1;
		return a
	},Stop:function () {
		clearTimeout(this._timer);
		this._slider.style[this.Up?"top":"left"]=this._target+"px"
	}
};/*end*/
