
function change_opacity(obj,so,eo,time)
{
	this.obj=obj;
	this.delta=eo-so;
	this.adelta=Math.abs(this.delta);
	this.step=this.delta>=0 ? 1 : -1;
	this.interval=time/this.adelta;
	this.so=so;
	this.eo=eo;
	this.o=so;
	
	var t=Math.floor(50/this.interval);
	this.step*=t;
	this.interval*=t;
	
	
	this._change=function()
	{
		if (this.o==this.eo)
		{
			window.clearTimeout(this._timer);
			return true;
		}
		this.o+=this.step;
		set_opacity(this.obj,this.o);
	}
	this.timer=window.setInterval(this._change.bind(this),this.interval);
}



function vpa_slide(obj) {
	this.root=obj;
	this.root.className+=' vpa_js_slide';
	this.slides=$$(obj,'li');
	this.last=this.slides.length-1;
	this.current=this.last;
	this.current_obj;
	this.timer=0;
	this.title=obj.appendChild(a$('div'));
	this.title.className='s_title';
	
	for (var i=0;i<=this.last;i++)
	{
		this.slides[i].style.zIndex=i;
	}
	
	this.start=function()
	{
		this.title.innerHTML='фото: '+(this.last-this.current+1)+' / '+(this.last+1);
		if (this.last>0) {
			this.timer=window.setInterval(this._slide.bind(this),3850);
		}
	}
	
	this._slide=function()
	{
		if (this.current>0)
		{
			if (this.current==this.last)
			{
				for (var i=0;i<=this.last;i++) set_opacity(this.slides[i],100);
			}
			this.current_obj=this.slides[this.current];
			change_opacity(this.current_obj,100,0,1500);
			this.current-=1;
		}
		else
		{
			this.current=this.last;
			this.current_obj=this.slides[this.current];
			change_opacity(this.current_obj,0,100,1500);
		}
		this.title.innerHTML='фото: '+(this.last-this.current+1)+' / '+(this.last+1);
	}
}

