var bgElem;
var bgIndex;
var intervalIndex;

var bgOffset = 2000;
var flyDelay = 50;

var imageLoader = new Array();


function flyIn() {
	var newOffset = bgElem.currentOffset/2;
	if(newOffset > 1) {
		bgElem.currentOffset = newOffset;
		bgElem.style.left = newOffset+"px";
	} else {
		//self terminate, call next function
		clearInterval(intervalIndex);
		bgElem.currentOffset = 1;
		bgElem.style.left = "0px";
		if(backgrounds[bgIndex].time > 0) {
			setTimeout('bgWait()', backgrounds[bgIndex].time*1000);
		}
	}
}

function flyOut() {
	var newOffset = bgElem.currentOffset*2;
	if(newOffset < bgOffset) {
		bgElem.currentOffset = newOffset;
		bgElem.style.left = "-"+newOffset+"px";
	} else {
		clearInterval(intervalIndex);
		bgElem.currentOffset = bgOffset;
		bgElem.style.left = "-"+bgOffset+"px";
		bgElem.style.display = "none";
		if(bgIndex < backgrounds.length-1) {
			bgIndex++
		} else {
			bgIndex = 0
		}
		bgElem.style.background = 'url("backgrounds/' + backgrounds[bgIndex].image + '") top center no-repeat';
		bgElem.style.display = "block";
		intervalIndex = setInterval('flyIn()', flyDelay);
	}
}

function bgWait() {
	intervalIndex = setInterval('flyOut()', flyDelay);
}

function flyBackgroundsLoad() {
	if(typeof(backgrounds) != 'undefined') {
		for(bg in backgrounds) {
			imageLoader[bg] = new Image();
			if(bg == 0) {
				imageLoader[bg].onload = flyBackgrounds;
			}
			imageLoader[bg].src = "backgrounds/"+backgrounds[bg].image;
		
		}
	}
}

function flyBackgrounds() {
	//if there's currently no BG up (bgIndex = null)
	if(!bgIndex) {
		//then light up the rotation
		bgIndex = 0;
		bgElem = document.getElementById('bgflyer');
		bgElem.style.display = "none";
		bgElem.currentOffset = bgOffset;
		bgElem.style.left = bgOffset+"px";
		bgElem.style.background = 'url("backgrounds/' + backgrounds[bgIndex].image + '") top center no-repeat';
		//alert("function: "+'flyIn()'+"   delay: "+flyDelay+"   bgIndex: "+bgIndex);
		bgElem.style.display = "block";
		intervalIndex = setInterval('flyIn()', flyDelay);
	}
	//else do nothing
}
