var _galleries = Array();
var Slider = function(holder, btns, at, transSpeedPerSlide) {
	this.holder = holder;
	this.at = at?at:0;
	this.transSpeedPerSlide = transSpeedPerSlide;
	this.btns = btns;
	this.slides = this.holder.childNodes;

	if(!this.at) this.at = 0;
	if(!this.holder.style.marginLeft)	this.holder.style.marginLeft = '0px';

	this.move = function(numToMove) {
		if(!this.slides.length)	return;
		if(this.btns && this.btns.next && this.btns.previous) if(((this.btns.next.className.indexOf('inactive')>0) && (numToMove>0)) || ((this.btns.previous.className.indexOf('inactive')>0) && (numToMove<0))) return;

		if(numToMove < 0) {	// move back
			if(numToMove + this.at < 0)	numToMove = this.at*-1;
		}
		this.at += numToMove; 
		var lastSlide = this.slides[this.slides.length-1];
		var to = (parseFloat(this.slides[this.at].offsetLeft) - parseFloat(this.slides[0].offsetLeft))*-1;

		if(!this.transSpeedPerSlide) {
			this.holder.style.marginLeft = to+'px';
		} else {
			if(this.tw)	this.tw.stop();
			this.tw=new Tween(this.holder, 'marginLeft', 'out.normal', this.holder.style.marginLeft, to, .5,true, this.transSpeedPerSlide*Math.abs(numToMove));
		}

		var inactive = (parseFloat(lastSlide.offsetLeft)+this.slides[this.at].offsetLeft*-1 + this.slides[at].offsetWidth) < parseFloat(this.holder.parentNode.offsetWidth) ? true : false;
		if(this.btns.next)	this.btns.next.className = !inactive ? this.btns.next.className.replace(/inactive/g,'') : this.btns.next.className+' inactive';
		if(this.btns.previous)	this.btns.previous.className = (this.at>0) ? this.btns.previous.className.replace(/inactive/g,'') : this.btns.previous.className+' inactive';
	}
	this.goto = function(to) {
		numToMove = to - this.at;
		this.move(numToMove);
	}
	this.move(0); 
}

