function JqueryImageSlider(name, width, height, images, slidetime, button, progress, morelink ){	
	if(images){
		var name;
		var images;
		var slidetime;
		var button;
		var progress;
		var morelink;
		var imgIndex = 0;
		var interval;
		var alternate = false;
		var progressHeight;
		var heightImg = new Image();
		var progressOnce = true;
		
		this.name = name;
		this.width = width;
		this.height = height;
		this.images = images;
		this.slidetime = slidetime;
		this.button = button;
		this.progress = progress;
		this.morelink = morelink;
		
		jQuery('.'+name).append('<div class="relative '+name+'"></div>');
		jQuery('.'+name+' .relative').append('<div class="img1div"><a class="'+name+' link"></a></div>');
		jQuery('.'+name+' .relative').append('<div class="img2div"><a class="'+name+' link"></a></div>');
		jQuery('.'+name+' .relative').append('<div class="textContainer '+name+'"></div>');
		
		setSize();
		buildButton();
		buildTextContainer(0);
		buildImages();
		interval = setInterval(slide, slidetime);
	}
	
	function setSize(){
		jQuery('.'+name+'.imgslider').css('width', width);
		jQuery('.'+name+'.imgslider').css('height', height);
		jQuery('.'+name+' .relative').css('width', width-10);
		jQuery('.'+name+' .relative').css('height', height-10);
	}
	
	function buildButton(){
		if(button){
			if(morelink == null){
				morelink = "#";
			}
			jQuery('.'+name+' .relative').append('<input type="button" value="Meer Aanbiedingen ª" onclick="document.location=\''+morelink+'\'"class="button mainBgColor right "/>');
			return true;
		}else{
			return false;
		}
	}

	function buildProgress(){
		if(progress){
			jQuery('.'+name+' .relative').append('<div class="progressContainer '+name+'"></div>');
			heightImg.src = images[1]['src'];
			progressHeight = heightImg.height - 20;
			jQuery('.'+name+' .progressContainer').css('top', progressHeight);
			var id = 0;
			while(id < images.length){
				if(id != 0){
					jQuery('.'+name+' .progressContainer').append('<div id="'+id+'" class="'+name+' progress id'+id+' mainBgColor left"></div>');
				}else{
					jQuery('.'+name+' .progressContainer').append('<div id="'+id+'" class="'+name+' progress id'+id+' lightGray left"></div>');
				}
				
				jQuery('.'+name+'.id'+id).mouseover(function(){
					goToImage(this.id);
				}).mouseout(function(){
					interval = setInterval(slide, slidetime);
				});
				id++;
			}
			return true;
		}else{
			return false;
		}
	}

	function buildLink(id){
		if(images[id]['link']){
			jQuery('.'+name+'.link').attr('href', images[id]['link']);
			return true;
		}else{
			jQuery('.'+name+'.link').attr('href', '#');
			return false;
		}
	}
	
	function buildTextContainer(id){
		jQuery('.'+name+' .textContainer').removeClass('leftSide');
		jQuery('.'+name+' .textContainer').removeClass('rightSide');
		jQuery('.'+name+' .textContainer').addClass(images[id]['position']+'Side');
		jQuery('.'+name+' .textContainer').html('');
		buildText(id);
		buildList(id);
	}
	
	function buildText(id){
		if(images[id]['text']){
			jQuery('.'+name+' .textContainer').append('<div class="'+name+' text '+images[id]['position']+' clear mainBgColor"><h1><span class="h1">'+images[id]['text']+'</span></h1></div>');
			return true;
		}else{
			return false;
		}
	}

	function buildList(id){
		if(images[id]['list']){
			jQuery('.'+name+' .textContainer').append('<div class="'+name+' list '+images[id]['position']+'"><ul class="'+name+' ul"></ul></div>');
			for(var i = 0; i < images[id]['list'].length; i++){
				jQuery('.'+name+' .ul').append('<li>'+images[id]['list'][i]+'</li>');
			}
			return true;
		}else{
			return false;
		}
	}

	function buildImages(){
		var action = function() {
			buildProgress();
			jQuery('.img2').unbind('load', action);
		};

		if(isset(images[imgIndex + 1]['src'])){
			jQuery('.'+name+' .img2div .link').html('<img class="img2" src="'+images[imgIndex + 1]['src']+'"></img>');
		}
		jQuery('.'+name+' .img1div .link').html('<img class="img1" src="' + images[imgIndex] + '"></img>');
		if(progressOnce){
			jQuery('.img2').attr('src', images[0]['src']).bind('load', action);
			progressOnce = !progressOnce;
		}

		toggleColor(imgIndex);
		buildLink(imgIndex);
		imgIndex++;
		//alternate = !alternate;
	}
	
	function checkIndex(){
		if(imgIndex == images.length){
			imgIndex = 0;
			return true;
		}else{
			return false;
		}
	}
	
	function slide(){
		if(alternate){
			jQuery('.'+name+' .img1').attr("src", ""+images[imgIndex]['src']);
			buildTextContainer(imgIndex);
			buildLink(imgIndex);
			jQuery('.'+name+' .img2').stop(true, true).fadeOut('slow', function(){
					jQuery('.'+name+' .img2').attr("src", ""+images[imgIndex]['src']);
				});
			jQuery('.'+name+' .img1').stop(true, true).fadeIn('slow');
			
		}else{
			jQuery('.'+name+' .img2').attr("src", ""+images[imgIndex]['src']);
			buildTextContainer(imgIndex);
			buildLink(imgIndex)
			jQuery('.'+name+' .img1').stop(true, true).fadeOut('slow', function(){
					jQuery('.'+name+' .img1').attr("src", ""+images[imgIndex]['src']);
				});
			jQuery('.'+name+' .img2').stop(true, true).fadeIn('slow');
		}
		alternate = !alternate;
		clearProgress();
		toggleColor(imgIndex);
		imgIndex++;
		checkIndex()
	}
	
	function clearProgress(){
		if(progress){
			var id = 0;
			for(var i in images){
				if(jQuery('.'+name+'.id'+id).hasClass('lightGray')){
					jQuery('.'+name+'.id'+id).removeClass('lightGray');
					jQuery('.'+name+'.id'+id).addClass('mainBgColor');
				}
				id++;
			}
			return true;
		}else{
			return false;
		}
	}
	
	function toggleColor(id){
		if(jQuery('.'+name+'.id'+id).hasClass('mainBgColor')){	
			jQuery('.'+name+'.id'+id).removeClass('mainBgColor');
			jQuery('.'+name+'.id'+id).addClass('lightGray');
		}else{
			jQuery('.'+name+'.id'+id).removeClass('lightGray');
			jQuery('.'+name+'.id'+id).add('mainBgColor');
		}
	}
	
	function goToImage(id){
		clearInterval(interval);
		imgIndex = id;
		clearProgress();
		toggleColor(id);
		buildLink(id);
		slide();
	}
	
	function isset () {
    // !No description available for isset. @php.js developers: Please update the function summary text file.
    // 
    // version: 1006.1915
    // discuss at: http://phpjs.org/functions/isset    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: FremyCompany
    // +   improved by: Onno Marsman
    // *     example 1: isset( undefined, true);
    // *     returns 1: false    // *     example 2: isset( 'Kevin van Zonneveld' );
    // *     returns 2: true
    
		var a=arguments, l=a.length, i=0;
			if (l===0) {
			throw new Error('Empty isset'); 
		}
		
		while (i!==l) {        
			if (typeof(a[i])=='undefined' || a[i]===null) { 
				return false; 
			} else { 
				i++; 
			}    }
		return true;
	}
}




