
var FadingObject = new Array();
var FadeRunning=false;
var FadeInterval=30;

var hexDigit=new Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F");
function dec2hex(dec)
{
	return(hexDigit[dec>>4]+hexDigit[dec&15]);
}
function hex2dec(hex)
{
	return(parseInt(hex,16))
}

function createFaderObject(theDiv, numSteps, startColor)
{
	if(!startColor)
		startColor = "000000";
		
	this.name		= theDiv;
	this.text		= null;
	this.color		= "FFFFFF";
	this.next_text	= null;
	this.next_color	= null;
	this.state		= "OFF";
	this.index		= 0;
	this.steps		= numSteps;
	this.r		= hex2dec(startColor.slice(0,2));
	this.g		= hex2dec(startColor.slice(2,4));
	this.b		= hex2dec(startColor.slice(4,6));
}

/***********************************************************
* Function   : FadingText
*
* Parameters : theDiv   - The name of the DIV in which to fade the text
*              numSteps - The number of steps to use in the fade.
*              
* Description : Library function to be called from the main HTML.
*		        Creates an object that can hold the current
*               state of the fade animation for a particular DIV
***********************************************************/
function FadingText(theDiv, numSteps, startColor)
{
	FadingObject[theDiv] = new createFaderObject(theDiv, numSteps, startColor);
}
/*****************************************************************
* Function    : start_fading
*
* Description : If the FadeAnimation loop is not currently running
*		        then it is started.
*****************************************************************/
function start_fading()
{
	if(!FadeRunning)
		FadeAnimation();
}
/*****************************************************************
* Function    : set_text
*
* Description : In the new W3C DOM model we need only set the text
*			once, after that we can just change the colour
*****************************************************************/
function set_text(f)
{
	if(navigator.appName.indexOf("Netscape") != -1
		&& document.getElementById)
	{
		var theElement = document.getElementById(f.name);
		var newRange   = document.createRange();
		newRange.setStartBefore(theElement);
		var strFrag    = newRange.createContextualFragment(f.text);	

		while (theElement.hasChildNodes())
			theElement.removeChild(theElement.lastChild);
		theElement.appendChild(strFrag);
		theElement.style.color="#"+f.startColor;
	}
}
/*****************************************************************
*
* Function   : getColor
*
* Parameters : f - the fade object for which to calculate the colour.
*
* Description: Calculates the color of the link depending on
*		       how far through the fade we are.
*
*****************************************************************/
function getColor(f)
{
	var r=hex2dec(f.color.slice(0,2));
	var g=hex2dec(f.color.slice(2,4));
	var b=hex2dec(f.color.slice(4,6));

	r2= Math.floor(f.r+(f.index*(r-f.r))/(f.steps) + .5);
	g2= Math.floor(f.g+(f.index*(g-f.g))/(f.steps) + .5);
	b2= Math.floor(f.b+(f.index*(b-f.b))/(f.steps) + .5);

	return("#" + dec2hex(r2) + dec2hex(g2) + dec2hex(b2));
}
/*****************************************************************
*
* Function   : setColor
*
* Parameters : fadeObj   - The TextFader object to set
*
* Description: Gets the color of the text and writes it to
*		       the DIV.
*
*****************************************************************/
function setColor(fadeObj)
{
	var theColor=getColor(fadeObj);
	var str="<FONT COLOR="+ theColor + ">" + fadeObj.text + "</FONT>";
	var theDiv=fadeObj.name;
	
//if IE 4+
	if(document.all)
	{
		document.all[theDiv].innerHTML=str;
	}	
//else if NS 4
	else if(document.layers)
	{
		document.nscontainer.document.layers[theDiv].document.write(str);
		document.nscontainer.document.layers[theDiv].document.close();
	}
//else if NS 6 (supports new DOM, may work in IE5) - see Website Abstraction for more info.
//http://www.wsabstract.com/javatutors/dynamiccontent4.shtml
	else if (document.getElementById)
	{
		theElement = document.getElementById(theDiv);
		theElement.style.color=theColor;
	}
	
}
/*****************************************************************
*
* Function   : fade_up
*
* Parameters : theDiv  - The div in which to display the text
*		       newText - The text to display when faded in
*		       newColor- The color the text will be.
*
* Description: Depending on the current "state" of the fade
*		       this function will determine the new state and
*		       if neccessary, start the fade effect.            
*
*****************************************************************/
function fade_up(theDiv, newText, newColor)
{
	var f=FadingObject[theDiv];

	if(newColor == null)
		newColor="FFFFFF";

	if(f.state == "OFF")
	{
		f.text  = newText;
		f.color = newColor;
		f.state = "FADE_UP";
		set_text(f);
		start_fading();
	}
	else if( f.state == "FADE_UP_DOWN"
		|| f.state == "FADE_DOWN"
		|| f.state == "FADE_DOWN_UP")
	{
		if(newText == f.text)
			f.state = "FADE_UP";
		else
		{
			f.next_text  = newText;
			f.next_color = newColor;
			f.state      = "FADE_DOWN_UP";
		}
	}
}
/*****************************************************************
*
* Function   : fade_down
*
* Parameters : theDiv  - The div in which to display the text
*
* Description: Depending on the current "state" of the fade
*		       this function will determine the new state and
*		       if neccessary, start the fade effect.            
*
*****************************************************************/
function fade_down(theDiv)
{
	var f=FadingObject[theDiv];

	if(f.state=="ON")
	{
		f.state="FADE_DOWN";
		start_fading();
	}
	else if(f.state=="FADE_DOWN_UP")
	{
		f.state="FADE_DOWN";
		f.next_text = null;
	}
	else if(f.state == "FADE_UP")
	{
		f.state="FADE_UP_DOWN";
	}
}
/*******************************************************************
*
* Function    : Animate
*
* Description : This function is based on the Animate function
*		        of animate.js (animated rollovers).
*		        Each fade object has a state. This function
*		        modifies each object and changes its state.
*****************************************************************/
function FadeAnimation()
{
	FadeRunning = false;
	for (var d in FadingObject)
	{
		var f=FadingObject[d];

		if(f.state == "FADE_UP")
		{
			if(f.index < f.steps)
				f.index++;
			else
				f.index = f.steps;
			setColor(f);

			if(f.index == f.steps)
				f.state="ON";
			else
				FadeRunning = true;
		}
		else if(f.state == "FADE_UP_DOWN")
		{
			if(f.index < f.steps)
				f.index++;
			else
				f.index = f.steps;
			setColor(f);

			if(f.index == f.steps)
				f.state="FADE_DOWN";
			FadeRunning = true;
		}
		else if(f.state == "FADE_DOWN")
		{
			if(f.index > 0)
				f.index--;
			else
				f.index = 0;
			setColor(f);

			if(f.index == 0)
				f.state="OFF";
			else
				FadeRunning = true;
		}
		else if(f.state == "FADE_DOWN_UP")
		{
			if(f.index > 0)
				f.index--;
			else
				f.index = 0;
			setColor(f);

			if(f.index == 0)
			{
				f.text      = f.next_text;
				f.color     = f.next_color;
				f.next_text = null;
				f.state     ="FADE_UP";
				set_text(f);
			}
			FadeRunning = true;
		}
	}
	/*** Check to see if we need to animate any more frames. ***/
	if(FadeRunning)
		setTimeout("FadeAnimation()", FadeInterval);

}

//----------------------------------------------------------------------------------------------------

//content

FadingText('fade', 1,"FFFFFF");
/*** The "Frame Interval" Smaller = faster ***/
FadeInterval=30;
var content = new Array();
var desc = new Array();
//DMA Home Page
desc[0] = 'Global Vision Communications provides a tailored website design process that incorporates a client’s brand and messaging. The Direct Marketing Association created a small business web portal to supplement their marketing resources for the business industry.';
//DMA Forward
desc[1] = 'Global Vision Communications can create data gathering functions for your websites that allow you to identify your audience demographics. The Direct Marketing Association created a function of their website that allowed current users to send information to prospective users.';
//DMA Message Boards
desc[2] = 'Global Vision Communications can create and build a variety of functions to help your business. The Direct Marketing Association created an online community that allowed its users to share useful information with one another.';
//DMA Store
desc[3] = 'Global Vision Communications can create and build a variety of functions to help your business. The Direct Marketing Association created a commerce function for their site that allowed users to purchase materials quickly and smoothly.';
//NCA Get Involved Page
desc[4] = 'Global Vision Communications can create data gathering functions for your websites that allow you to identify your audience demographics. The National Congress of American Indians allowed website users to forward the information about their cause through their GVC built website.';
//NCAI Home Page
desc[5] = 'Global Vision Communications provides a tailored website design process that incorporates a client’s brand and messaging. The National Congress of American Indians sought to bring light to the Indian Trust Settlement being discussed by the United States Government.';
//NoMo3 Back end shot
desc[6] = 'Global Vision Communications makes creating a website a functional process. GVC tailors the service side of our websites to be client interactive. Each site comes with a "back end" page that allows for easy updates and changes.';
//NoMo3 Get Involved Page
desc[7] = 'Global Vision Communications can create data gathering functions for your websites that allow you to identify your audience demographics. Missourians Against Tax Abuse incorporated a directory of supporters in their 2006 Election campaign.';
//NoMo3 Interior Page
desc[8] = 'Global Vision Communications works with our clients to determine the most successful messaging for your content and incorporates this scheme into the website design. Missourians Against Tax Abuse sought to keep the Tobacco Tax in Missouri low.';
//NoMo3 Webstats
desc[9] = 'Global Vision Communications creates a "back end" site navigation that allows our clients to view the success and reach of their message. The web stats functionality provides a detailed analysis of the "views" of your webpage.';
//NoMo3 Home
desc[10] = 'Global Vision Communications works with our clients to determine the most successful messaging for your content and incorporates this scheme into the website design. Missourians Against Tax Abuse sought to keep the Tobacco Tax in Missouri low.';
//VCA Email
desc[11] = 'Global Vision Communications can create data gathering functions for your websites that allow you to identify your audience demographics. The Vanderbilt Community Alliance webpage allowed visitors to sign up to receive up to date information about their efforts to raise the hourly wage rate at Vanderbilt University.';
//VCA Homepage
desc[12] = 'Global Vision Communications provides a tailored website design process that incorporates a client’s brand and messaging. The Vanderbilt Community Alliance created a website to give more information about their grassroots effort to raise the hourly wage rate at Vanderbilt University.';
//VCA Interior
desc[13] = 'Global Vision Communications works with our clients to determine the most successful messaging for your content and incorporates this scheme into the website design. The Vanderbilt Community Alliance sought to bring awareness to the insufficient levels of income for full-time hourly employees at the university.';

function display(content)
{
	
	fade_down('fade');
	fade_up('fade',content,'000000');
}