var which = 0;
var numPics = 3;
var browser;//0 for IE, 1 for other or IE 7 and below
var FIStep = 0; //FadeIn Step
var FOStep = 0; //FadeOut Step
var PCE; //Holder for PicsChange element href

function EntryPoint()
{

	PCE = document.getElementById("PicsChange");

	if( navigator.appName == "Microsoft Internet Explorer" )
	{

		browser = 0;
		if( navigator.appVersion.split(";")[1] == " MSIE 8.0")
		{

			PCE.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=100)";

		}
		else
		{

			browser = 1;

		}

	}
	else
	{

		browser = 1;

	}
	
	if( document.images )
	{
	
		//for how many ever pictures you use. var pic<x> = new Image(); then pic<x>.src = <image path>;
		//There, precacher. :)
	
		var pic1 = new Image();
		pic1.src = "headerfresh.jpg";
		
		var pic2 = new Image();
		pic2.src = "headernetwork.jpg";

        var pic3 = new Image();
		pic2.src = "headerweb.jpg";


	}

	setTimeout( "ChangePicture()", 6000 );

}

function ChangePicture()
{

	FadeOut();

}

function TimeKeeper()
{

	which = (which+1) % numPics;
	setTimeout( "ChangePicture()", 7000 ); //Note: In Miliseconds.

}

function SetSrc()
{

	/*
		This holds the image paths.
		How to add images:
			Increase NumPics by 1
			Add switch case and img path

		Default:
			Default is the hold out if for whatever reason something fails
			It should be set to whatever picture we want to showcase if the image fade doesn't work

	*/
	
	if( !PCE ) var PCE = document.getElementById("PicsChange");

	switch( which )
	{

		case 0:
			PCE.src = "headerfresh.jpg";
			break;

        case 1:
			PCE.src = "headerweb.jpg";
			break;

        default:
			PCE.src = "headernetwork.jpg";
			break;

	}

}

function FadeIn()
{

	SetSrc();
	
	if( !PCE ) var PCE = document.getElementById("PicsChange");

	if( !browser )
	{

		switch( FIStep )
		{

			case 0:
				PCE.filters.item("DXImageTransform.Microsoft.Alpha").opacity = 52;
				FIStep++;
				Tick( true, false );
				break;
			case 1:
				PCE.filters.item("DXImageTransform.Microsoft.Alpha").opacity = 64;
				FIStep++;
				Tick( true, false );
				break;
			case 2:
				PCE.filters.item("DXImageTransform.Microsoft.Alpha").opacity = 76;
				FIStep++;
				Tick( true, false );
				break;
			case 3:
				PCE.filters.item("DXImageTransform.Microsoft.Alpha").opacity = 88;
				FIStep++;
				Tick( true, false );
				break;
			case 4:
				PCE.filters.item("DXImageTransform.Microsoft.Alpha").opacity = 100;
				FIStep++;
				break;
			default:
				PCE.filters.item("DXImageTransform.Microsoft.Alpha").opacity = 100;
				break;

		}

	}
	else
	{

		switch(FIStep)
		{

			case 0:
				PCE.style.opacity = 52/100;
				FIStep++;
				Tick( true, false );
				break;
			case 1:
				PCE.style.opacity = 64/100;
				FIStep++;
				Tick( true, false );
				break;
			case 2:
				PCE.style.opacity = 76/100;
				FIStep++;
				Tick( true, false );
				break;
			case 3:
				PCE.style.opacity = 88/100;
				FIStep++;
				Tick( true, false );
				break;
			case 4:
				PCE.style.opacity = 100/100;
				FIStep++;
				break;
			default:
				PCE.style.opacity = 100/100;
				break;

		}

	}

	if( FIStep == 5 )
	{

		FIStep = 0;
		TimeKeeper();

	}

}

function FadeOut()
{

	if( !PCE ) var PCE = document.getElementById("PicsChange");

	if( !browser )
	{

		switch(FOStep)
		{

			case 0:
				PCE.filters.item("DXImageTransform.Microsoft.Alpha").opacity = 88;
				FOStep++;
				Tick( false, true );
				break;
			case 1:
				PCE.filters.item("DXImageTransform.Microsoft.Alpha").opacity = 76;
				FOStep++;
				Tick( false, true );
				break;
			case 2:
				PCE.filters.item("DXImageTransform.Microsoft.Alpha").opacity = 64;
				FOStep++;
				Tick( false, true );
				break;
			case 3:
				PCE.filters.item("DXImageTransform.Microsoft.Alpha").opacity = 52;
				FOStep++;
				Tick( false, true );
				break;
			case 4:
				PCE.filters.item("DXImageTransform.Microsoft.Alpha").opacity = 40;
				FOStep++;
				Tick( true, true );
				break;
			default:
				PCE.filters.item("DXImageTransform.Microsoft.Alpha").opacity = 100;
				break;

		}

	}
	else
	{

		switch(FOStep)
		{

			case 0:
				PCE.style.opacity = 88/100;
				FOStep++;
				Tick( false, true );
				break;
			case 1:
				PCE.style.opacity = 76/100;
				FOStep++;
				Tick( false, true );
				break;
			case 2:
				PCE.style.opacity = 64/100;
				FOStep++;
				Tick( false, true );
				break;
			case 3:
				PCE.style.opacity = 52/100;
				FOStep++;
				Tick( false, true );
				break;
			case 4:
				PCE.style.opacity = 40/100;
				FOStep++;
				Tick( true, true );
				break;
			default:
				PCE.style.opacity = 100/100;
				break;

		}

	}

}

function Tick( Fadein, Fadeout )
{

	if( Fadein )
	{

		if( Fadeout )
		{

			FOStep = 0;
			setTimeout( "FadeIn()", 60 );

		}
		else
		{

			setTimeout( "FadeIn()", 60 );

		}

	}
	else
	{

		setTimeout( "FadeOut()", 60 );

	}

}