//For banner display
var delay = 10000;
var blendingDuration = 300;
var frameInterval = 20;
var numFramesFromBlendingStart = 0;
var sleepTime = 0;
var autoIndex = -1;
var index = 0;
var backImageIndex = 0;
var lastBlendingTime = 0;
var lastIndexChangedTime = 0;
var images = new Array();
var num_banners = 3;
images[0] = 'images/main_banner01.jpg';
images[1] = 'images/main_banner02.jpg';
images[2] = 'images/main_banner03.jpg';

//For content columns
var mouseOverStatus = new Array();
mouseOverStatus[0] = 0;
mouseOverStatus[1] = 0;
mouseOverStatus[2] = 0;

//Banner
function startPlay() {
	setTimeout("play()",  delay);
}

function play() {
	var d = new Date();
	var currTime = d.getTime();
	
	if((currTime >=  (lastBlendingTime + blendingDuration + delay)) &&
		(currTime >=  (lastIndexChangedTime + blendingDuration + delay))) { //Not blending
		autoIndex++;
		
		if(autoIndex >= num_banners) {
			autoIndex = 0;
		}
		else if(autoIndex < 0) {
			autoIndex = (num_banners - 1);
		}
		
		setIndex(autoIndex);
	}
	
	setTimeout("play()",  blendingDuration + delay);
}

function blendimage(imagefileIndex) {
	if(backImageIndex == index) {
		return;	
	}
	
	var d = new Date();
	var currTime = d.getTime();
	if(currTime <  (lastBlendingTime + blendingDuration)) {
		return;
	}
	
	lastBlendingTime = currTime;
	numFramesFromBlendingStart = 0;
	sleepTime = 0;

    //set the current image as background
    document.getElementById("blendimage_back").src = document.getElementById("blendimage_front").src;
    
    //make new image
    document.getElementById("blendimage_front").src = images[imagefileIndex];

    //fade in image
    fadeInImage(imagefileIndex, 0);
}

function fadeInImage(imagefileIndex, opacity) {
	if(opacity <= 100) {
		backOpacity = 100 - opacity * 2;
		if(backOpacity < 0) {
			backOpacity = 0;
		}
		
		changeOpac(backOpacity,"blendimage_back");
		changeOpac(opacity,"blendimage_front");
	
		if(opacity < 100) {
			var d = new Date();
			var currTime = d.getTime();
			var elapsedTime = currTime - lastBlendingTime;
	
			opacity = elapsedTime * 100 / blendingDuration;
			
			if(opacity > 100) {
				opacity = 100;
			}
			
			numFramesFromBlendingStart++;
			
			timeout = frameInterval - (elapsedTime - sleepTime) / numFramesFromBlendingStart;
			if(timeout < 0) {
				timeout = 0;
			}
			sleepTime += timeout;

		    setTimeout("fadeInImage(" + imagefileIndex + "," + opacity + ")", timeout);
		}
		else {
			if(imagefileIndex != index) {
				blendimage(index);
			}
		}
	}
}

//change the opacity for different browsers
function changeOpac(opacity, id) {
    var object = document.getElementById(id).style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
}

function setIndex(tIndex) {
	var d = new Date();
	var currTime = d.getTime();

	if(currTime <  (lastBlendingTime + blendingDuration)) { //Still blending
		return;
	}
	
	if(index == tIndex) {
		return;
	}
	
	for(var i = 0; i < num_banners; i++) {
		if(i != tIndex) {
			var banner_indexLayer = document.getElementById("banner_index" + i);
			banner_indexLayer.className="banner_index";
			var banner_desc_panel = document.getElementById("desc_panel_" + i);
			banner_desc_panel.style.display="none";
		}
	}
	
	var banner_indexLayer = document.getElementById("banner_index" + tIndex);
	banner_indexLayer.className="banner_index_highlight";
	var banner_desc_panel = document.getElementById("desc_panel_" + tIndex);
	banner_desc_panel.style.display="block";
	
	lastIndexChangedTime = currTime;
	
	backImageIndex = index;	
	index = tIndex;
	
	if(index >= num_banners) {
		index = 0;
	}
	else if(index < 0) {
		index = (num_banners - 1);
	}

	var d = new Date();
	var currTime = d.getTime();
	if(currTime >=  (lastBlendingTime + blendingDuration)) { //Not blending
		blendimage(index);
	}
	//Else blend image later in fadeInImage()
}

function showBannerDescription(tIndex) {

}

function showBannerForIndex(tIndex) {
	if(tIndex != autoIndex) { //Index changed
		return;
	}
	
	setIndex(tIndex);
}

function bannerIndexOver(tIndex) {
	autoIndex = tIndex;

	for(var i = 0; i < num_banners; i++) {
		if(i != tIndex) {
			var banner_indexLayer = document.getElementById("banner_index" + i);
			banner_indexLayer.className="banner_index";
		}
	}
	
	var banner_indexLayer = document.getElementById("banner_index" + tIndex);
	banner_indexLayer.className="banner_index_highlight";

	showBannerForIndex(tIndex);
}

function bannerIndexOut(tIndex) {
	//Do nothing
}


function clickOnBanner() {
	location="./downloads/";
}

//End banner
