﻿var imgcount;
var imgs, imgs_next, imgs_prev, imgs_current_view, imgs_space1, imgs_space2;
var imgm, imgm_next, imgm_prev;
var imgb, imgb_next, imgb_prev;
var callcount;

function setOpacity(objid, opacity) {
	var obj=document.getElementById(objid).style;
	if (opacity>0.99) opacity=0.99;
	obj.opacity=opacity;
	obj.MozOpacity=opacity;
	obj.KhtmlOpacity=opacity;
	obj.filter="alpha(opacity=" + opacity*100 + ")";
}

function crossfade(id, imagesrc, millisec) {
	var fadingtime=Math.round(millisec/100);
	var divid=id;
	var imgid=id+"img";
	var img=document.getElementById(imgid);

	document.getElementById(divid).style.backgroundImage = "url(" + img.src + ")";
	setOpacity(imgid, 0);
	img.src = imagesrc;
	for(var i=0; i<=100; i++) {
		setTimeout("setOpacity('" + imgid + "'," + i/100 + ")",(i * fadingtime));
	}
	if (navigator.appName=="Netscape")
		document.getElementById("animation").focus();
}

function getRandomInteger(maxsize) {
	var intval=maxsize+1;
	while (intval>maxsize) {
		intval=Math.floor(Math.random()*10);
	}
	return intval;
}

function mod(val1, val2) {
	return val1-(Math.floor(val1/val2)*val2);
}

function initAnimation() {
	var path="/global/images/produkte/";
	var imgnames=new Array("aktivkohlefilter", "beutel_siebkorbfilter", "faltelemente", "fittings",
							 		"kerzenfiltergehaeuse", "lupus", "schichtenfilter", "selbstreinigende_filter",
									"siebelemente", "tiefenfilter", "zentrifugalabscheider");
	imgcount=imgnames.length;
	callcount=1;
	
	// Initialize small Images
	imgs_current_view=new Array(1,0,1,0);
	imgs= new Array(imgcount);
	for (var i=0;i<imgcount;i++) {
		imgs[i]=new Image();
		imgs[i].src=path+imgnames[i]+"_klein.jpg";
	}
	imgs_prev=0;
	imgs_next=3;
	imgs_space1=document.getElementById("small1img").src;
	imgs_space2=document.getElementById("small3img").src;
	
	// Initialize middle Images
	imgm=new Array(imgcount);
	for (var i=0;i<imgcount;i++) {
		imgm[i]=new Image();
		imgm[i].src=path+imgnames[i]+"_mittel.jpg";
	}
	imgm_prev=getRandomInteger(imgcount-1);
	imgm_next=imgm_prev;
	
	// Initialize big Images
	imgb=new Array(imgcount);
	for (var i=0;i<imgcount;i++) {
		imgb[i]=new Image();
		imgb[i].src=path+imgnames[i]+"_gross.jpg";
	}
	imgb_prev=getRandomInteger(imgcount-1);
	imgb_next=imgb_prev;
	
	// Start Animations
	window.setTimeout("animate()", 800);
}

function animate() {
	var fadeoutimg, fadeintoimg, spaceimg;
	
	callcount++;
	while(true) {
		fadeoutimg=getRandomInteger(3);
		if ((imgs_current_view[fadeoutimg]==1) && (fadeoutimg!=imgs_prev)) break;
	}
	while(true) {
		fadeintoimg=getRandomInteger(3);
		if (imgs_current_view[fadeintoimg]==0) break;
	}
	spaceimg = document.getElementById("small"+fadeintoimg+"img").src==imgs_space1 ? imgs_space1 : imgs_space2;
	window.setTimeout("crossfade('small" + fadeoutimg + "', '" + spaceimg + "', 800)", 0);
	window.setTimeout("crossfade('small" + fadeintoimg + "', '" + imgs[imgs_next].src + "', 1000)", 200);
	imgs_prev=fadeintoimg;
	imgs_current_view[fadeoutimg]=0;
	imgs_current_view[fadeintoimg]=1;
	while(true) {
		var stop=true;
		imgs_next = imgs_next+1==imgcount ? 0:imgs_next+=1;
		for (var i=0;i<4;i++) {
			if (imgs[imgs_next].src==document.getElementById("small"+i+"img").src) {
				stop=false;
				break;
			}
		}
		if (stop) break;
	}
	
	if (mod(callcount, 2)==0) {
		while(true) {
			imgm_next=getRandomInteger(imgcount-1);
			if ((imgm[imgm_next].src!=document.getElementById("middleimg").src)
					&& (imgm_next!=imgm_prev)) break;
		}
		imgm_prev=imgm_next;
		window.setTimeout("crossfade('middle', '" + imgm[imgm_next].src + "', 1400)", 1300);
	}
	
	if (mod(callcount, 3)==0) {
		while(true) {
			imgb_next=getRandomInteger(imgcount-1);
			if ((imgb[imgb_next].src!=document.getElementById("decoimg").src)
					&& (imgb_next!=imgb_prev)) break;
		}
		imgb_prev=imgb_next;
		window.setTimeout("crossfade('deco', '" + imgb[imgb_next].src + "', 1500)", 2500);
	}
	
	window.setTimeout("animate()",3000);
}