gwImageSlider = function(pijlLinksId, pijlRechtsId, thumbsId,instanceName) {

	/*public*/
	this.instanceName =instanceName;
	this.pijlLinksId = pijlLinksId;
	this.pijlRechtsId = pijlRechtsId;
	this.thumbsId = thumbsId;
	this.pictures;
	
	
	/*privates*/
	this.direction;
	this.slider;
	
	this.pijlLinks;
	this.pijlRechts;
	this.thumbs;
	this.container;
	this.end;
	this.picturesWidth = 0;
	this.containerWidth = 450;

	this.initialize = function(){
		this.pijlLinks = document.getElementById(this.pijlLinksId);
		this.pijlRechts = document.getElementById(this.pijlRechtsId);
		this.thumbs = document.getElementById(this.thumbsId);
		
		if(this.pijlLinks == "" & this.pijlRechts=="" & this.thumbs=="" & this.container=="") {
			alert("Error - could not initialize gwImageSlider!");
		} else {
		
			dojo.connect(this.pijlLinks, "onmouseover", this, this.schuifLinks);
			dojo.connect(this.pijlLinks, "onmouseout", this, this.stopSchuiven);
			dojo.connect(this.pijlRechts, "onmouseover", this, this.schuifRechts);
			dojo.connect(this.pijlRechts, "onmouseout", this, this.stopSchuiven);
			/************* ACTIES OP FOTO'S ****************/
			var fotos = this.thumbs.getElementsByTagName('IMG');
			this.pictures = fotos.length;
			console.log("amount of pictures: " + fotos.length);
			if(fotos.length >0){
				for(var nr=0;nr<fotos.length;nr++){	
					fotos[nr].onmouseover = this.lessOpacity;
					fotos[nr].onmouseout = this.moreOpacity;
					this.picturesWidth = parseInt(this.picturesWidth) + fotos[nr].width +3;
				}
			}
			this.thumbs.style.width = (parseInt(this.picturesWidth) + 100) + "px";
		}
	}
		
	this.schuifLinks = function() {
		this.direction=1;
		this.timeoutHolder = setInterval(this.instanceName + ".slide();",20)
	}
	
	this.schuifRechts	= function() {
		this.direction=-1;
		this.timeoutHolder = setInterval(this.instanceName + ".slide();",20)
	}
	
	/*action functions*/
	this.stopSchuiven = function() {
		/*console.log(this.instanceName + ": stop");*/
		clearInterval(this.timeoutHolder);
	}
		
	this.slide = function(){
		/*console.log(this.instanceName + ": schuif" + this.direction);*/
		var go = (this.direction != 1) ? !this.isMaxPositionRight() : !this.isMaxPositionLeft();
		if(go) this.thumbs.style.left = (this.thumbs.offsetLeft + (2 * this.direction)) + 'px';
	}
	
	/*check functions*/
	this.isMaxPositionRight = function(){
	/*console.log(this.instanceName + ": check right: " + this.thumbs.offsetLeft);*/
		if (this.thumbs.offsetLeft <  this.containerWidth - this.picturesWidth - 55) return true
		return false;
	}
	this.isMaxPositionLeft = function(){
		/*console.log(this.instanceName + ": check left: " + this.thumbs.offsetLeft);
		*/
		if (this.thumbs.offsetLeft > 55) return true;
		return false;
	}
		
		
	/*image functions*/
	this.lessOpacity = function() {
		this.style.filter = 'alpha(opacity=100)';
		this.style.opacity = 1;
	}
		
	this.moreOpacity = function(){
			this.style.filter = 'alpha(opacity=50)';
			this.style.opacity = 0.5;
	}
} 
