// The following function displays the date for the main feature.
// Added by Yonas Hassen (12 May 2008)
function showDate()
{
	var d = new Date();
	var day = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday');
	var month = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
	var fullDate = day[d.getDay()] + ", " + month[d.getMonth()] + " " + d.getDate() + ", " + d.getFullYear();
	$('todaysDate').innerHTML = fullDate;
}
//////////////////////////////////////////////////////////


/**
 *  author:		Timothy Groves - http://www.brandspankingnew.net
 *	version:	1.3 - 2006-11-02
 *				1.2 - 2006-11-01
 *				1.1 - 2006-09-29
 *				1.0 - 2006-09-25
 *
 *	requires:	nothing
 *
 */

/****************************************************************

	BEGIN: Code for Main Feature cross-fader

****************************************************************/
var useBSNns;

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;
	
	// added by Kaiser
	// signals whether to allow fade
	this.stop = false;
	
	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)";
		document.getElementById(divs[i]).style.visibility = "hidden";
	}
	
	this.nDur = fadetime;
		
	this.nDelay = delay;
		
	this._newfade();
}


// added by Kaiser (2007-12-17): optional argument that directs where to skip to.
_bsn.Crossfader.prototype._newfade = function()
{
	if (this.nID1)
		clearInterval(this.nID1);
	
	var skipTo = null;
	if ( arguments.length > 0 )
		skipTo = arguments[0];
	else
		skipTo = this.nAct + 1; // emulates 'this.nAct++', the default behavior
	
	this.nOldAct = this.nAct;
	// this.nAct++;
	this.nAct = skipTo
	
	if (!this.aDivs[this.nAct])	this.nAct = 0;
	
	if (this.nAct == this.nOldAct) return false;
	
	document.getElementById( this.aDivs[this.nAct] ).style.visibility = "visible";
	
	this.nInt = 50;
	this.nTime = 0;
	
	var p=this;
	this.nID2 = setInterval(function() { p._fade() }, this.nInt);
}


_bsn.Crossfader.prototype._fade = function()
{
	this.nTime += this.nInt;
	
	var ieop = Math.round( this._easeInOut(this.nTime, 0, 1, this.nDur) * 100 );
	var op = ieop / 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)+")";
	}
	
	// this object has reached the specified number of transitions, so now it's
	// time to set the start of the next transition.
	if (this.nTime >= this.nDur)
	{
		clearInterval( this.nID2 );
		
		if (this.nOldAct > -1)
			document.getElementById( this.aDivs[this.nOldAct] ).style.visibility = "hidden";	

		// doesn't queue the new transition, and makes sure the old transition is stopped.
		if ( this.stop )
		{
			clearInterval( this.nID1 );
			return;
		}

		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;
}

// added by Kaiser
// changes the instance property to the opposite of what it was.
_bsn.Crossfader.prototype.toggleFade = function() { this.stop = !this.stop; }

// when clicked, ease transition to the clicked item and restart transitions
_bsn.Crossfader.prototype.fadeTo = function( id )
{
	// find the element offset associated with the id
	var idx = 0;
	for ( var i = 0; i < this.aDivs.length; i++ )
	{
		if ( this.aDivs[i] == id ) { idx = i; break; }
	}
	
	// check if this element is the currently active div. if not, trick the
	// fader to go to this element
	if ( idx != this.nAct )
	{
		// stop the main fader first
		clearInterval( this.nID1 );
		clearInterval( this.nID2 );
		this._newfade( idx );
		
		// since the behavior has changed so that clicking on an item should stop
		// the transition, we're setting this to true. otherwise, you should call
		// toggleFade(), and then fadeTo() (and make sure to comment out the 
		// following line,
		this.stop = true;
	}
}

/****************************************************************
	END: Code for Main Feature cross-fader
****************************************************************/