/**
 * Слайд-шоу на базе $fx.js
 */
function slides(el, params){
			var obj = {
				init: function(el, params){
					if(params) for(var p in params) this[p] = params[p];
					if(params.autostart == undefined) this.autostart = true;
					var ae = this._addElement;
					this.idPrefix = $(el).id+'-slideshow';
					this.elCont = $(el).appendChild(ae('div',{id:this.idPrefix,'class':'slideshow'}));
					var arl = this.elCont.appendChild(ae('div',{'class':'arl'}));
					var arr = this.elCont.appendChild(ae('div',{'class':'arr'}));
					this.sl1 = this.elCont.appendChild(ae('div',{'class':'slide1',id:this.idPrefix+'sl1'}));
					this.sl2 = this.elCont.appendChild(ae('div',{'class':'slide2',id:this.idPrefix+'sl2'}));
					this._addEvent(arl,'click',function(e){this.prev();}.bind(this));
					this._addEvent(arr,'click',function(e){this.next();}.bind(this));
					this.curImg = -1;
					this.next();
				},
				_prev: function(){
					var prev = this.curImg-1;
					if(prev<0) prev = this.images.length-1;
					return prev;
				},
				_addElement: function(name,params){
					var el = document.createElement(name);
					if(params) for(var p in params) el.setAttribute(p, params[p]);
					return el;
				},
				_addEvent: function(el, type, listener){
						if(el.addEventListener){
							el.addEventListener(type, listener, false);
						}else{
							el.attachEvent('on'+type, listener);
						}
				},
				_next: function(){
					var next = this.curImg+1;
					if(next == this.images.length) next = 0;
					return next;
				},
				prev: function(){
					if(this.busy) return;
					if(this.to) window.clearTimeout(this.to);
					this.curImg = this._prev();
					this.show();
				},
				next: function(){
					if(this.busy) return;
					if(this.to) window.clearTimeout(this.to);
					this.curImg = this._next();
					this.show();
				},
				show: function(){
					this.busy = true;
					$fx(this.sl2)
						.fxAdd({type:'opacity',from:0,to:100,step:2,delay:30})
						.fxRun(function(){
							this.sl1.style.backgroundImage = this.sl2.style.backgroundImage;
							$fx(this.sl2).fxAdd({type:'opacity',from:100,to:0,step:-100,delay:1})
								.fxRun(function(){
									this.sl2.style.backgroundImage = this.img(this._next());
								}.bind(this));
							this.busy = false;
						}.bind(this));
					this.sl2.style.backgroundImage = this.img(this.curImg);
					if(this.autostart)
						this.to = window.setTimeout(function(){this.next();}.bind(this), this.delay || 5000);
				},
				img: function(index){
					return ('url('+(this.baseurl?this.baseurl:'')+this.images[index]+')');
				}
			};
			obj.init(el, params);
			return obj;
}

