//setup the arrays to be populated elsewhere
var bannerObj = new Image();
var banner = new Array();
var bannerLink = new Array();
var bannerAlt = new Array();
var bannerTimeout = new Array();

//preload the banner icon images
bannerObj = new Image();
bannerObj.src = '/common/images/general/banner_icon.gif';
bannerObj = new Image();
bannerObj.src = '/common/images/general/banner_icon_wide.gif';
bannerObj = new Image();
bannerObj.src = '/common/images/general/banner_icon_active.gif';
bannerObj = new Image();
bannerObj.src = '/common/images/general/banner_icon_active_wide.gif';
bannerObj = new Image();
bannerObj.src = '/common/images/general/banner_icon_active_transparent.gif';
bannerObj = new Image();
bannerObj.src = '/common/images/general/banner_icon_counter_gradient.gif';

var showBannerNav = false;
var bannerFreezeOnLoad = -1;
var maxBanners = 8;
var currentBanner = 0;
var lastBanner = 0;
var activeHeight = 20;
var inactiveHeight = 17;
var maxCounterHeight = 17;
var currCounterHeight = 17;
var bannerCountDown = 6;
var currCountDown = 0;
var c;
var initialBannerChange = true;

var bannerImage = document.getElementById("banner_img");
var bannerImageLink = document.getElementById("banner_imglink");
var bannerCounter = document.getElementById("bannerCounter");
var bannerCounter2 = document.getElementById("bannerCounter2");

function changeBanner(pause) {
	if (currentBanner > maxBanners+1) currentBanner = 1;
	if (lastBanner > maxBanners+1) lastBanner = 1;
	if (currentBanner < 1) currentBanner = maxBanners+1;
	if (lastBanner < 1) lastBanner = maxBanners+1;

	changeClass("bannerNum" + lastBanner, 'bannerIcon');

	changeClass("bannerNum" + currentBanner, 'bannerIconActive');

	if (initialBannerChange) {
	    initialBannerChange = false;
	    //opacity('banner_img', 100, 0, 0);
	} else {
	    opacity('banner_img', 100, 0, 475);
	    setTimeout(function () { bannerImage.src = banner[currentBanner - 1] }, 500);
	    //bannerImage.src = banner[currentBanner - 1];
	    setTimeout("opacity('banner_img', 0, 100, 475)", 525);
	}
	

	if (bannerLink[currentBanner - 1] == '') bannerLink[currentBanner - 1] = '#';
	if (bannerLink[currentBanner - 1] == '#') {
	    bannerImageLink.style.cursor = 'default';
	} else {
	    bannerImageLink.style.cursor = 'pointer';
	}
	bannerImageLink.href = bannerLink[currentBanner-1];
	bannerImage.alt = bannerAlt[currentBanner-1];
    bannerImage.title = bannerAlt[currentBanner-1];

	if (bannerLink[currentBanner-1].substr(0,4) == "http") {
		bannerImageLink.target = '_blank';
	} else {
		bannerImageLink.target = '_self';
	}

	if (bannerTimeout[currentBanner-1]) {
	    currentCountDown = bannerTimeout[currentBanner - 1] * 1000;
	} else {
	    currentCountDown = bannerCountDown * 1000;
	}

    resetCounter(pause);
}

function resetCounter(pause) {
    clearTimeout(c);
    currCounterHeight = maxCounterHeight+1;
    bannerCounter.parentNode.style.top = inactiveHeight*(currentBanner-1)+"px";
    countDownBanner(pause);
}

function countDownBanner(pause) {
    currCounterHeight = currCounterHeight-1;
    if (currCounterHeight<1) {
        swapBanner();
    } else {
        if (showBannerNav) {
            bannerCounter.style.height = currCounterHeight + "px";
            bannerCounter.style.top = maxCounterHeight - currCounterHeight + 2 + "px";
            if (currCounterHeight > 2) {
                bannerCounter2.style.height = currCounterHeight - 2 + "px";
                bannerCounter2.style.top = maxCounterHeight - currCounterHeight + 2 + "px";
            } else {
                bannerCounter2.style.height = '0';
            }
        }
        if (!pause) c = setTimeout("countDownBanner()", currentCountDown/maxCounterHeight);
    }
}

function swapBanner() {
	currentBanner += 1;
    lastBanner = currentBanner-1;
    changeBanner();
}

function jumpBanner(bannerNum, pause) {
    lastBanner = currentBanner;
	currentBanner = bannerNum;
    changeBanner(pause);
}

function changeClass(varId,varNewClass) {
	document.getElementById(varId).className = varNewClass;
}

function loadBanners() {
    if (window.addEventListener) {
        window.addEventListener('load', loadBanners2, false);
        return true;
    } else if (window.attachEvent) {
        var r = window.attachEvent("onload", loadBanners2);
        return r;
    } else {
        return false;
    } 
}

function loadBanners2() {
    for (i = 0; i < banner.length; i++) {
        bannerObj = new Image();
        bannerObj.src = banner[i];
    }

    if (showBannerNav) document.getElementById('bannerIconNavContainer').style.display = 'block';

    if (bannerFreezeOnLoad == -1) {
        swapBanner();
    } else {
        jumpBanner(bannerFreezeOnLoad, true);
    }
}

function opacity(id, opacStart, opacEnd, millisec) {
    //speed for each frame 
    var speed = Math.round(millisec / 100);
    var timer = 0;

    //determine the direction for the blending, if start and end are the same nothing happens 
    if (opacStart > opacEnd) {
        for (i = opacStart; i >= opacEnd; i--) {
            setTimeout("changeOpac(" + i + ",'" + id + "')", (timer * speed));
            timer++;
        }
    } else if (opacStart < opacEnd) {
        for (i = opacStart; i <= opacEnd; i++) {
            setTimeout("changeOpac(" + i + ",'" + id + "')", (timer * speed));
            timer++;
        }
    }
}

//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 + ")";
}
