/**
 *  author:		Timothy Groves - http://www.brandspankingnew.net
 *	version:	1.0 - 2006-09-25
 *
 *	requires:	nothing
 *
 */

var useBSNns;
var urls = new Array();

if (useBSNns)
{
	if (typeof(bsn) == "undefined")
		bsn = {}
	var _bsn = bsn;
}
else
{
	var _bsn = this;
}



_bsn.Crossfader = function(divs, fadetime, delay) {
    this.nAct = -1;
    this.aDivs = divs;

    for (var i = 0; i < divs.length; i++) {
        document.getElementById(divs[i]).style.opacity = 0;
        document.getElementById(divs[i]).style.position = "absolute";
        document.getElementById(divs[i]).style.filter = "alpha(opacity=0)";
        // get hrefs to work
        urls[i] = document.getElementById(divs[i]).getAttribute("href");
        document.getElementById(divs[i]).href = "";
        if (document.getElementById(divs[i]).hideFocus !== undefined)       // non IE
            document.getElementById(divs[i]).hideFocus = true;
        if (document.getElementById(divs[i]).style.outline !== undefined)
            document.getElementById(divs[i]).style.outline = "none";
    }

    this.nDur = fadetime;
    this.nDelay = delay;

    this._newfade();
}


_bsn.Crossfader.prototype._newfade = function()
{
	if (this.nID1)
		clearInterval(this.nID1);
	
	this.nOldAct = this.nAct;
	this.nAct++;
	if (!this.aDivs[this.nAct])	this.nAct = 0;
	
	this.nInt = 50;
	this.nTime = 0;
	
	var p=this;
	this.nID2 = setInterval(function() { p._fade() }, this.nInt);
}


_bsn.Crossfader.prototype._fade = function() {


    for (var i = 0; i < this.aDivs.length; i++) {
        document.getElementById(this.aDivs[i]).href = urls[this.nAct];
    }
 //   document.getElementById("sufklogo").focus();

    this.nTime += this.nInt;

    var op = this._easeInOut(this.nTime, 0, 1, this.nDur);
    var ieop = op * 100;
    document.getElementById(this.aDivs[this.nAct]).style.opacity = op;
    document.getElementById(this.aDivs[this.nAct]).style.filter = "alpha(opacity=" + ieop + ")";

    if (this.nOldAct > -1) {
        document.getElementById(this.aDivs[this.nOldAct]).style.opacity = 1 - op;
        document.getElementById(this.aDivs[this.nOldAct]).style.filter = "alpha(opacity=" + (100 - ieop) + ")";

        //		document.getElementById( this.aDivs[this.nOldAct] ).href="#";
    }

    if (this.nTime == this.nDur) {
        clearInterval(this.nID2);

        var p = this;
        this.nID1 = setInterval(function() { p._newfade() }, this.nDelay);
    }
}



_bsn.Crossfader.prototype._easeInOut = function(t,b,c,d)
{
	return c/2 * (1 - Math.cos(Math.PI*t/d)) + b;
}
