$(document).ready(function(){
	if(document.getElementById("slider")){
		new AgenturGallery();
	}
});

function AgenturGallery(){
	this.slider = $("#slider");
	this.init();
}

$.fn.disableSelection = function() {
    $(this).attr('unselectable', 'on')
           .css('-moz-user-select', 'none')
           .each(function() { 
               this.onselectstart = function() { return false; };
            });
};

AgenturGallery.prototype = {
	currentSlide : 1,
	maxSlides : 0,
	slideWidth : 713,
	
	init : function(){
		var This = this;
		var numimgs = $("#slider img").length;
		this.maxSlides = numimgs;
		
		for(var i = 0; i < numimgs; i++){
			$("<span index='"+(i+1)+"'>&bull;</span>").appendTo($("#indexlist"));
		}
		$("#indexlist span").click(function(){
			This.goToSlide($(this).attr("index"));
		});
		$("#goLeft").click(function(e){
			This.changeSlide(1);
		});
		$("#goRight").click(function(e){
			This.changeSlide(-1);
		});
		this.currentSlide = 1;
		$("#slider img").disableSelection();
		
		if(this.maxSlides == 1){
			$("#indexlist").remove();
		}
		else{
			$("#indexlist span:nth-child("+this.currentSlide+")").addClass("active");
			this.startInterval();
		}
		
	},
	
	startInterval : function(){
		var This = this;
		if(this.interval){
			window.clearInterval(this.interval);
		}
		this.interval = window.setInterval(function(){
			if(!This.changeSlide(-1)){
				This.goToSlide(1);
			}
		},5000);
	},
	
	changeSlide : function(dir){
		if((dir > 0 && this.currentSlide == 1) || (dir < 0 && this.currentSlide == this.maxSlides)){
			return false;
		}
		this.slider.animate({
			left: "+="+(this.slideWidth*dir)
		});
		$("#indexlist span:nth-child("+this.currentSlide+")").removeClass("active");
		this.currentSlide -= dir;
		$("#indexlist span:nth-child("+this.currentSlide+")").addClass("active");
		return true;
	},
	
	goToSlide : function(i){
		var l = -(i-1)*this.slideWidth;
		this.slider.animate({
			left: l+"px"
		});
		$("#indexlist span:nth-child("+this.currentSlide+")").removeClass("active");
		this.currentSlide = i;
		$("#indexlist span:nth-child("+this.currentSlide+")").addClass("active");
		
		this.startInterval();
	}
}
