//By CHF
jQuery.fn.slidebox = function(opt){//(width, height, images){
	
	var slideboxObj=null;
	var slideboxImgs=null;
	var slideboxIndex=-1;
	var slideboxTimeout=0;
	var slideboxFadetime=0;
	var slideboxRandom=false;
	var slideboxOrder=null;
	var slideboxOrderedIndex=-1;
	
	width=opt.width==null?800:opt.width;
	height=opt.height==null?600:opt.height;
	
	slideboxTimeout=opt.timeout==null?5000:opt.timeout;
	
	
	slideboxFadetime=slideboxTimeout/100;
	slideboxStartTimeout=slideboxTimeout/5;
	
	
	if(opt.randomize==true){
		slideboxRandom=true;
	}
	
	start=opt.startImage;
	if(start==null&&opt.images!=null&&opt.images.length>0){
		if(slideboxRandom){
			start=opt.images[Math.floor(Math.random()*opt.images.length)];
		}
		else{
			start=opt.images[0];
		}
	}
	if(opt.startTimeout!=null){
		slideboxStartTimeout=opt.startTimeout;
	}
	if(opt.fadetime!=null){
		slideboxFadetime=opt.fadetime;
	}
	
	if(opt.order==null){
		if(slideboxImgs!=null && slideboxImgs.length>0){
			slideboxOrder=new Array(slideboxImgs.length);
			for(var i=0; i<slideboxOrder.length; i++){
				slideboxOrder[i]=0;
			}
		}
	}
	else{
		slideboxOrder=opt.order;
	}
	
	//WICHTIG
	var startImg=new Image();
	startImg.src=start;
	jQuery(this).html('<div class="slideboxImageContainer1" style="width:100%; height:100%; background-color:#000000; z-index:50; background: url('+startImg.src+')"></div>');
	
	if(opt.images==null){
		opt.images=new Array();
	}
	
	//Ende der Parameter/////////////////////////////////////////////
	//Ab hier Programmcode	
	jQuery(this).css({"width": width, "height":height});
	jQuery(this).css({"background-color": "black"});
	
	jQuery(this).html('<div class="slideboxImageContainer1" style="width:100%; height:100%; z-index:50; background-color:#000000; background: url('+start+')"></div>');
	slideboxObj=jQuery(this);

	
	slideboxImgs=new Array(opt.images.length);
	for(var i=0; i<slideboxImgs.length; i++){
		var x = new Image();
		x.src=opt.images[i];
		slideboxImgs[i]=x;
		if(i==slideboxImgs.length-1||(slideboxImgs.length<=4&&i==0)){
			setTimeout(function(){swapImagesA(slideboxObj, slideboxImgs, slideboxIndex, slideboxTimeout, slideboxFadetime, slideboxRandom, slideboxOrder, slideboxOrderedIndex);}, slideboxStartTimeout);
		}
	}
}




function swapImagesA(slideboxObj, slideboxImgs, slideboxIndex, slideboxTimeout, slideboxFadetime, slideboxRandom, slideboxOrder, slideboxOrderedIndex){

	if(slideboxImgs==null)return;
	
	if(slideboxRandom){
		slideboxIndex=Math.floor(Math.random()*slideboxImgs.length);
	}
	else{
		slideboxIndex=(slideboxIndex+1)%slideboxImgs.length;
	}
	slideboxCheckIndex(slideboxObj, slideboxImgs, slideboxIndex, slideboxTimeout, slideboxFadetime, slideboxRandom, slideboxOrder, slideboxOrderedIndex);

	//alert(slideboxIndex);
	jQuery(slideboxObj).css({'background': 'url('+slideboxImgs[slideboxIndex].src+')'});
	jQuery(".slideboxImageContainer1", slideboxObj).fadeOut(slideboxFadetime);
	
	setTimeout(function(){swapImagesB(slideboxObj, slideboxImgs, slideboxIndex, slideboxTimeout, slideboxFadetime, slideboxRandom, slideboxOrder, slideboxOrderedIndex);}, slideboxTimeout);
	
	
}

function swapImagesB(slideboxObj, slideboxImgs, slideboxIndex, slideboxTimeout, slideboxFadetime, slideboxRandom, slideboxOrder, slideboxOrderedIndex){
	if(slideboxImgs==null)return;
	
	if(slideboxRandom){
		slideboxIndex=Math.floor(Math.random()*slideboxImgs.length);
	}
	else{
		slideboxIndex=(slideboxIndex+1)%slideboxImgs.length;
	}
	slideboxCheckIndex(slideboxObj, slideboxImgs, slideboxIndex, slideboxTimeout, slideboxFadetime, slideboxRandom, slideboxOrder, slideboxOrderedIndex);
	
	//alert(slideboxIndex);
	jQuery(".slideboxImageContainer1", slideboxObj).css({'background':' url('+slideboxImgs[slideboxIndex].src+')'});
	jQuery(".slideboxImageContainer1", slideboxObj).fadeIn(slideboxFadetime);
	
	setTimeout(function(){swapImagesA(slideboxObj, slideboxImgs, slideboxIndex, slideboxTimeout, slideboxFadetime, slideboxRandom, slideboxOrder, slideboxOrderedIndex);}, slideboxTimeout);
}

function slideboxCheckIndex(slideboxObj, slideboxImgs, slideboxindex, slideboxTimeout, slideboxFadetime, slideboxRandom, slideboxOrder, slideboxOrderedIndex){
	if(true) return;
	var x=slideboxOrder[slideboxIndex];
	if(x<0){
		slideboxIndex+=x;
	}
	if(x>0){
		slideboxOrderedIndex-=1;
	}
}

