//Datei fk_slideshow2.js - Fred Kasulzke Diashow 
//von Fred Kasulzke Internet Werkstatt - www.kasulzke.de - 01.09.2009
//frei zur Nutzung - keine Gewährleistung
function fk_slideshow(img, anzshow, fadetime){
	this.anzshow = anzshow;
	this.imgA = img; 
	if (fadetime == 0){
		this.opacityStep = 100;
	} 
	else {
		this.opacityStep = 100 / (fadetime / 50);
	}
	this.shown = "A";
	//this.imgSrcNext;
	this.picFirst = this.imgA.src;
	this.dnArr = fkSplitDn(this.picFirst);
	this.numFirst = parseInt(this.dnArr[1], 10);
	this.dsPos = 0;
	this.aktiv = 0;
	this.createMirror = fk_slideshow_createMirror;
	this.start = fk_slideshow_start;
	this.stop = fk_slideshow_stop;
	this.startStop = fk_slideshow_startStop;
	this.showPos = fk_slideshow_showPos;
	this.next = fk_slideshow_next;
	this.showNext = fk_slideshow_showNext;
	this.prev = fk_slideshow_prev;
	this.showPrev = fk_slideshow_showPrev;
	this.display = fk_slideshow_display;
	this.registerControl = fk_slideshow_registerControl;	
	this.showThumb = fk_slideshow_showThumb;
	this.fade = fk_slideshow_fade;
	this.opacityA = 100;
	this.mirror = 0;
	this.controlShow = 0;
}
function fk_slideshow_createMirror(){
	this.mirror = 1
	this.opacityB = 0;
	this.parent = this.imgA.parentNode;
	this.parent.style.position = "relative";
	this.imgB = this.imgA.cloneNode(true);
	this.imgB.style.position = "absolute";
	this.imgB.style.left = this.imgA.offsetLeft +'px';
	this.imgB.style.top = this.imgA.offsetTop +'px';
	fkSetOpacity(this.imgB, 0);
	this.parent.appendChild(this.imgB);
}
function fk_slideshow_registerControl(img, fadetime){
	this.controlShow = fk_makeSlideshow(img, 2, fadetime, 0, 0);
}
function fk_slideshow_start(inter){
	this.stop();
	var call = "document.getElementById('" + this.imgA.id + "').fk_slideshow.showNext()";
	this.showNext();
	this.aktiv = window.setInterval(call, inter);
	if (this.controlShow && this.aktiv){this.controlShow.next();}
}
function fk_slideshow_stop(){
	window.clearInterval(this.aktiv);

	if (this.controlShow && this.aktiv){this.controlShow.next();}
	this.aktiv = 0;	
}
function fk_slideshow_startStop(inter){
	if (!this.aktiv){
		this.start(inter);
		return 1;
	}
	this.stop();
	return 0;
}
function fk_slideshow_prev(){
	this.stop();
	this.showPrev();
}
function fk_slideshow_next(){
	this.stop();
	this.showNext();
}
function fk_slideshow_showThumb(img){
	this.stop();
	var dnArr = fkSplitDn(img.src);
	this.dsPos = dnArr[1] - this.numFirst;
	this.display();
}
function fk_slideshow_showPos(pos){
	//alert("hi");
	this.stop();
	this.dsPos = pos;
	this.display();
}	
function fk_slideshow_showPrev(){
	this.dsPos--;
	if (this.dsPos < 0){
		this.dsPos = this.anzshow - 1;
	}
	this.display();
}
function fk_slideshow_showNext(){
	this.dsPos++;
	if (this.dsPos >= this.anzshow){
		this.dsPos = 0;
	}
	this.display();
}
function fk_slideshow_display(){
	var neuNum = String(this.numFirst + this.dsPos + 1000000).substr(7-this.dnArr[1].length, this.dnArr[1].length);
	if (this.shown == "A" && this.mirror){
		this.opacityB = 0;
		this.shown = "B";
		this.imgB.src = this.dnArr[0] + neuNum + this.dnArr[2];
	}
	else{
		//this.opacityA = 0;
		this.shown = "A";
		if(this.mirror || (this.opacityStep == 100)){
			this.imgA.src = this.dnArr[0] + neuNum + this.dnArr[2];
			this.opacityA = 0;
		}
		else{this.imgSrcNext = this.dnArr[0] + neuNum + this.dnArr[2];}
	}
	this.fade();
}
function fk_slideshow_fade(){
	var lastCall = 1;
	if(this.shown == "B"){
		if (this.opacityA > 0){
			lastCall = 0;
			this.opacityA = this.opacityA - this.opacityStep;
			if (this.opacityA < 0){this.opacityA = 0;}
		}
		if (this.opacityB <  100){
			lastCall = 0;
			this.opacityB = this.opacityB + this.opacityStep;
			if (this.opacityB > 100){this.opacityB = 100;}
		}
	}
	else{
		if (this.opacityB > 0 && this.mirror){
			lastCall = 0;
			this.opacityB = this.opacityB - this.opacityStep;
			if (this.opacityB < 0){this.opacityB = 0;}
		}
		if (this.opacityA <  100 || this.imgSrcNext){
			lastCall = 0;
			var opacityGo = this.opacityStep;
			if(!this.mirror){opacityGo = (opacityGo * 2) }
			if(this.imgSrcNext){
				opacityGo = (opacityGo * -1);
				if(this.opacityA <= 0){
					this.imgA.src = this.imgSrcNext;
					this.imgSrcNext = 0;
					this.opacityA = 0;
				}
			}
			this.opacityA = this.opacityA + opacityGo;
			if (this.opacityA > 100){this.opacityA = 100;}
		}
	}
	fkSetOpacity(this.imgA, this.opacityA);
	if (this.mirror){fkSetOpacity(this.imgB, this.opacityB);}
	if (!lastCall){
		setTimeout("document.getElementById('" + this.imgA.id + "').fk_slideshow.fade()", 50);
	}	
}
function fk_makeSlideshowById(id, anzShow, fadetime){
	return fk_makeSlideshow(document.getElementById(id), anzShow, fadetime, 1, 0);
}
function fk_startSlideshowById(id, anzShow, fadetime, changetime){
	return fk_makeSlideshow(document.getElementById(id), anzShow, fadetime, 1, changetime);
}
function fk_makeSlideshowByIdSimple(id, anzShow, fadetime){
	return fk_makeSlideshow(document.getElementById(id), anzShow, fadetime, 0, 0);
}
function fk_startSlideshowByIdSimple(id, anzShow, fadetime, changetime){
	return fk_makeSlideshow(document.getElementById(id), anzShow, fadetime, 0, changetime);
}
function fk_makeSlideshow(img, anzShow, fadetime, mirror, changetime){
	img.fk_slideshow = new fk_slideshow(img, anzShow, fadetime);
	if(mirror){img.fk_slideshow.createMirror();}
	if(changetime){setTimeout('document.getElementById("' + img.id +'").fk_slideshow.start('+ changetime +')', changetime - (fadetime / 2));}	
	return img.fk_slideshow;
}

function fk_startStop(id, ds, changetime, strStart, strStop){
	var a = document.getElementById(id);
	if (ds.startStop(changetime)){
		a.innerHTML = strStop;
	}
	else{
		a.innerHTML = strStart;
	}
}
function fk_startStopImg(img, ds, changetime, srcStart, srcStop){
	//var a = document.getElementById(id);
	if (ds.startStop(changetime)){
		img.src = srcStop;
	}
	else{
		img.src = srcStart;
	}
}
function fk_startStopImgSet(img, ds, srcStart, srcStop){
	//var a = document.getElementById(id);
	if (ds.aktiv){
		img.src = srcStop;
	}
	else{
		img.src = srcStart;
	}
}
function fk_centerImg(img, maxWidth, maxHeight){
	img.hspace = ((maxWidth - img.width) / 2);
	img.vspace = ((maxHeight - img.height) / 2);
}
function fkSetOpacity(img, opacity){
	img.style.opacity = (opacity / 100); 
	img.style.filter  = "alpha(opacity=" + opacity  + ")";
}

function fkIsNumber(c){
	if ( (c >= 0) && (c <= 9)){ 
		return 1;
	}
	return 0;
}
function fkSplitDn(dn){
	var dnArr = new Array(3);
	var posPoint = dn.lastIndexOf(".");
	var i = 1;
	dnArr[2] = dn.substring(posPoint, dn.length);
	for (i = 1; fkIsNumber(dn.substr(posPoint - i, 1)) && i < posPoint && i < 7 ;i++){} 
	dnArr[1] = dn.substr(posPoint - i+1, i-1);
	dnArr[0] = dn.substr(0, dn.length - dnArr[1].length - dnArr[2].length);
	return dnArr;
}
function fk_makeThumbs(id, inZeile, anz){
	var muster = document.getElementById(id);
	var parent = muster.parentNode;
	var opa = parent.parentNode; 
	var musterImg = muster.getElementsByTagName("img")[0];
	var musterPic = musterImg.src;
	var dnArr = fkSplitDn(musterPic);
	var musterPicNum = parseInt(dnArr[1], 10);
	var musterNumDigits = dnArr[1].length;
	var anzInZeile = 1;
	for (var i = 1; i < anz; i++){
		if (anzInZeile >= inZeile){
			var neueZeile = document.createElement("TR");
			opa.appendChild(neueZeile);
			parent = neueZeile;
			anzInZeile = 0;
		}
		anzInZeile++;
		var neu = muster.cloneNode(true);
		dnArr[1] = String(musterPicNum + 1000000 + i).substr(7-musterNumDigits, musterNumDigits);
		neu.getElementsByTagName("img")[0].src = dnArr.join("");
		parent.appendChild(neu);
	}
}

