var brandbox =
{
	// time in between fades
	iPauseTime: 8,

	// set some default values
	iCurrentItem: 0,
	iTextOpacity: 100,
	iBorderBoxOpacity: 100,
	iBackgroundBoxOpacity: 0,
	iTopImageOpacity: 100,
	iForceNextItem: false,
	iNumItems: 0,
	bIsIE: false,

	// create objects
	oTextBox: false,
	oBackgroundBox: false,
	oBorderBox: false,
	oBgImage1: false,
	oBgImage2: false,

	// the timeout object is stored here, so that it can be cleared when manually overriding the process
	oTO: false,

	init: function()
	{
		// fill the created objects
		brandbox.oBgImage1 = document.getElementById("bgimage1");
		brandbox.oBgImage2 = document.getElementById("bgimage2");
		brandbox.oTextBox = document.getElementById("infobox");
		brandbox.oBackgroundBox = document.getElementById("backgroundbox");
		brandbox.oBorderBox = document.getElementById("borderbox");

		brandbox.iBackgroundBoxOpacity = brandboxData["data"][0]["opacitypart"] * 25;

		brandbox.iNumItems = brandboxData["data"].length;
		if(brandbox.iNumItems > 1) brandbox.gotoNextItem();

		if(brandbox.isIE()) brandbox.bIsIE = true;
	},

	// this function is only used to workaround the non-fading "read more" button. (almost got IE fully compatible, but hey, it still is IE)
	isIE: function()
	{
		if((navigator.appVersion.indexOf("MSIE")!= -1) && !window.opera)
			return true;
		else
			return false;
	},

	gotoNextItem: function()
	{
		brandbox.oTO = setTimeout("brandbox.fadeOutText()", (brandbox.iPauseTime * 1000));
	},

	fadeOutText: function()
	{
		// check if the opacity is greater than 0, because this function can be manually called when the opacity is 0.
		if(brandbox.iTextOpacity > 0) brandbox.iTextOpacity -= 4;

		brandbox.oTextBox.style.opacity = (brandbox.iTextOpacity / 100);
		brandbox.oTextBox.style.filter = 'alpha(opacity='+brandbox.iTextOpacity+')';

		// IE workaround (even IE8 FCOL)
		if(brandbox.bIsIE)
		{
			oReadMoreButton = document.getElementById("leesmeerbutton");
			oReadMoreButton.style.filter = 'alpha(opacity='+brandbox.iTextOpacity+')';
		}

		if(brandbox.iTextOpacity == 0)
			brandbox.fadeOutBox();
		else
			brandbox.oTO = setTimeout("brandbox.fadeOutText()", 20);
	},

	fadeOutBox: function()
	{
		// check if the opacity is greater than 0, because this function can be manually called when the opacity is 0.
		if(brandbox.iBorderBoxOpacity > 0) brandbox.iBorderBoxOpacity -= 4;

		brandbox.oBorderBox.style.opacity = (brandbox.iBorderBoxOpacity / 100);
		brandbox.oBorderBox.style.filter = 'alpha(opacity='+brandbox.iBorderBoxOpacity+')';

		brandbox.iBackgroundBoxOpacity -= brandboxData["data"][brandbox.iCurrentItem]["opacitypart"];

		brandbox.oBackgroundBox.style.opacity = (brandbox.iBackgroundBoxOpacity / 100);
		brandbox.oBackgroundBox.style.filter = 'alpha(opacity='+brandbox.iBackgroundBoxOpacity+')';

		if(brandbox.iBorderBoxOpacity == 0)
			brandbox.loadNextItem();
		else
			brandbox.oTO = setTimeout("brandbox.fadeOutBox()", 20);
	},

	loadNextItem: function()
	{
		if(brandbox.iTopImageOpacity)
			brandbox.fadeOutImage();
		else
			brandbox.fadeInImage();
	},

	fadeOutImage: function()
	{
		// check if the opacity is greater than 0, because this function can be manually called when the opacity is 0.
		if(brandbox.iTopImageOpacity > 0) brandbox.iTopImageOpacity -= 4;

		brandbox.oBgImage2.style.opacity = (brandbox.iTopImageOpacity / 100);
		brandbox.oBgImage2.style.filter = 'alpha(opacity='+brandbox.iTopImageOpacity+')';

		if(brandbox.iTopImageOpacity == 0)
			brandbox.setNewContents();
		else
			brandbox.oTO = setTimeout("brandbox.fadeOutImage()", 20);
	},

	fadeInImage: function()
	{
		brandbox.iTopImageOpacity += 4;

		brandbox.oBgImage2.style.opacity = (brandbox.iTopImageOpacity / 100);
		brandbox.oBgImage2.style.filter = 'alpha(opacity='+brandbox.iTopImageOpacity+')';

		if(brandbox.iTopImageOpacity == 100)
			brandbox.setNewContents();
		else
			brandbox.oTO = setTimeout("brandbox.fadeInImage()", 20);
	},

	setNewContents: function()
	{
		oTab = document.getElementById("tab"+(brandbox.iCurrentItem + 1));
		oTab.className = "";

		if(typeof(brandbox.iForceNextItem) == "number")
		{
			brandbox.iCurrentItem = brandbox.iForceNextItem;
			brandbox.iForceNextItem = false;
		}
		else
		{
			brandbox.iCurrentItem++;
			if(brandbox.iCurrentItem == brandbox.iNumItems) brandbox.iCurrentItem = 0;
		}

		if((brandbox.iCurrentItem + 1) == brandbox.iNumItems)
			iNextItem = 0;
		else
			iNextItem = brandbox.iCurrentItem + 1;

		oTab = document.getElementById("tab"+(brandbox.iCurrentItem + 1));
		oTab.className = "selected";

		oTitle = document.getElementById("bbtitle");
		oTitle.innerHTML = brandboxData["data"][brandbox.iCurrentItem]["title"];
		brandbox.oTextBox.innerHTML = brandboxData["data"][brandbox.iCurrentItem]["content"]+'<br /><a href="'+brandboxData["data"][brandbox.iCurrentItem]["url"]+'" class="leesmeer" id="leesmeerbutton"><span>Lees meer</span></a>';
		brandbox.oTextBox.style.color = '#'+brandboxData["data"][brandbox.iCurrentItem]["textcolor"];

		var oTitles = brandbox.oTextBox.getElementsByTagName("H2");
		for(var i = 0; i < oTitles.length; i++)
		{
			oTitles[i].style.color = '#'+brandboxData["data"][brandbox.iCurrentItem]["textcolor"];
		}

		brandbox.oBackgroundBox.style.backgroundColor = '#'+brandboxData["data"][brandbox.iCurrentItem]["bgcolor"];
		brandbox.oBorderBox.style.borderTopColor = '#'+brandboxData["data"][brandbox.iCurrentItem]["bgcolor"];
		brandbox.oBorderBox.style.borderBottomColor = '#'+brandboxData["data"][brandbox.iCurrentItem]["bgcolor"];

		brandbox.loadNextImage(iNextItem);

		brandbox.fadeInBox();
	},

	fadeInBox: function()
	{
		brandbox.iBorderBoxOpacity += 4;

		brandbox.oBorderBox.style.opacity = (brandbox.iBorderBoxOpacity / 100);
		brandbox.oBorderBox.style.filter = 'alpha(opacity='+brandbox.iBorderBoxOpacity+')';

		brandbox.iBackgroundBoxOpacity += brandboxData["data"][brandbox.iCurrentItem]["opacitypart"];

		brandbox.oBackgroundBox.style.opacity = (brandbox.iBackgroundBoxOpacity / 100);
		brandbox.oBackgroundBox.style.filter = 'alpha(opacity='+brandbox.iBackgroundBoxOpacity+')';

		brandbox.iTextOpacity += 4;

		brandbox.oTextBox.style.opacity = (brandbox.iTextOpacity / 100);
		brandbox.oTextBox.style.filter = 'alpha(opacity='+brandbox.iTextOpacity+')';

		// IE workaround (even IE8 FCOL)
		if(brandbox.bIsIE)
		{
			oReadMoreButton = document.getElementById("leesmeerbutton");
			oReadMoreButton.style.filter = 'alpha(opacity='+brandbox.iTextOpacity+')';
		}

		if(brandbox.iTextOpacity >= 100)
		{
			brandbox.oTextBox.style.removeAttribute('filter');
			brandbox.gotoNextItem();
		}
		else
			brandbox.oTO = setTimeout("brandbox.fadeInBox()", 20);
	},

	// function to hop to an item manually
	gotoItem: function(iToItem)
	{
		clearTimeout(brandbox.oTO);
		brandbox.iForceNextItem = (iToItem - 1);

		brandbox.loadNextImage(brandbox.iForceNextItem);

		brandbox.fadeOutText();
	},

	loadNextImage: function(iImage)
	{
		if(brandbox.iTopImageOpacity)
			brandbox.oBgImage1.style.backgroundImage = 'url(/content/image/images/brandbox/'+brandboxData["data"][iImage]["bgimage"]+'.jpg)';
		else
			brandbox.oBgImage2.style.backgroundImage = 'url(/content/image/images/brandbox/'+brandboxData["data"][iImage]["bgimage"]+'.jpg)';
	}
}

window.onload = brandbox.init;
