function LocalInitialize()
{
	document.getElementById('MediaCollectionContainer').style.overflow = 'hidden';
	document.getElementById('MediaCollectionContainer').style.whiteSpace = 'nowrap';
	document.getElementById('MediaCollectionContainer').style.lineHeight = 'normal';
	document.getElementById('MediaCollectionContainer').style.height = '5ex';
	document.getElementById('MediaCollectionScrollLeft').style.visibility = 'visible';
	document.getElementById('MediaCollectionScrollRight').style.visibility = 'visible';
	document.getElementById('Media').style.overflow = 'hidden';
	document.getElementById('Media').style.whiteSpace = 'nowrap';
	document.getElementById('Media').style.height = '100px';
	if (top.location.toString().indexOf('view=compact') == -1 && top.location.toString().indexOf('?collection=') == -1)
	{
		document.getElementById('MediaCollectionContainer').style.display = 'none';
		CollectionView = 'extended';
	}
	else
	{
		CollectionView = 'compact';
		AlignMediaCollectionItems();
		if (top.location.toString().indexOf('?collection=') != -1)
		{
			document.getElementById('SlideShow').style.display = 'block';
			document.getElementById('MediaScrollLeft').style.display = 'block';
			document.getElementById('MediaScrollRight').style.display = 'block';
			AddImageLoadListener(document.getElementById('pictureViewer'), ScrollToElement);
		}
	}

	if (document.getElementById('PreviousImageLink'))
	{
		document.getElementById('PreviousImageLink').style.display = 'none';
	}

	if (document.getElementById('NextImageLink'))
	{
		document.getElementById('NextImageLink').style.display = 'none';
	}

	LoadLocalization();
}

function LoadLocalization()
{
	var theLocation = top.location.toString();
	var theLastSlashPosition = theLocation.lastIndexOf('/');
	var theLanguage = theLocation.substring(theLastSlashPosition - 1, theLastSlashPosition);
	switch (theLanguage)
	{
		case 'n':
		{
			ExpandedCategoryViewLocalized = 'Uitgebreid categorie overzicht';
			CompactCategoryViewLocalized = 'Compact categorie overzicht';
			PauseLocalized = 'Pauzeer';
			ResumeLocalized = 'Hervat';
			CloseWindowLocalized = 'Sluit venster';
			break;	
		}
		case 'f':
		{
			ExpandedCategoryViewLocalized = 'Aper&ccedil;u de cat&eacute;gories &eacute;tendu';
			CompactCategoryViewLocalized = 'Aper&ccedil;u de cat&eacute;gories compact';
			PauseLocalized = 'Pause';
			ResumeLocalized = 'Reprise';
			CloseWindowLocalized = 'Fermer la fen&ecirc;tre';
			break;
		}
		default:
		{
			ExpandedCategoryViewLocalized = 'Expanded category view';
			CompactCategoryViewLocalized = 'Compact category view';
			PauseLocalized = 'Pause';
			ResumeLocalized = 'Resume';
			CloseWindowLocalized = 'Close window';
			break;
		}
	}
}

function AlignMediaCollectionItems()
{
	if (typeof AlignMediaCollectionItems.Performed == 'undefined')
	{
		AlignMediaCollectionItems.Performed = true;
	}
	else
	{
		return;
	}
	var theMediaCollectionItems = getElementsByClassName("MediaCollectionItem");
	var theReference = document.getElementById('MediaCollectionScrollLeft');
	for (var i = 0; i < theMediaCollectionItems.length; ++i)
	{
		theMediaCollectionItems[i].style.top = theReference.offsetTop - theMediaCollectionItems[i].offsetTop + (theReference.offsetHeight - theMediaCollectionItems[i].offsetHeight) / 2 + 'px';
	}
}

function ScrollMediaCollection(direction)
{
	if (typeof ScrollMediaCollection.offSet == 'undefined' )
	{
        ScrollMediaCollection.offSet = 0;
    }

	if (typeof ScrollMediaCollection.leftItemIndex == 'undefined')
	{
		ScrollMediaCollection.leftItemIndex = 0;
	}

	if (direction == 0)
	{
		clearTimeout(ScrollMediaCollection.timer);
		return;
	}

	var newOffset = ScrollMediaCollection.offSet;

	if (ScrollMediaCollection.offSet >= 0 && direction > 0)
	{
		return;
	}

	var MediaCollectionItemItems = getElementsByClassName('MediaCollectionItem');
	var leftEdgePosition = document.getElementById('MediaCollectionScrollLeft').offsetLeft + document.getElementById('MediaCollectionScrollLeft').offsetWidth + 7;
	var rightEdgePosition = document.getElementById('MediaCollectionScrollRight').offsetLeft - 7;

	if (MediaCollectionItemItems[MediaCollectionItemItems.length - 1].offsetLeft + MediaCollectionItemItems[MediaCollectionItemItems.length - 1].offsetWidth < rightEdgePosition && direction < 0)
	{
		return;
	}

	if (direction == -1)
	{
		if (ScrollMediaCollection.leftItemIndex < MediaCollectionItemItems.length - 1 && MediaCollectionItemItems[MediaCollectionItemItems.length - 1].offsetLeft + MediaCollectionItemItems[MediaCollectionItemItems.length - 1].offsetWidth > rightEdgePosition)
		{
			newOffset -= MediaCollectionItemItems[ScrollMediaCollection.leftItemIndex + 1].offsetLeft - MediaCollectionItemItems[ScrollMediaCollection.leftItemIndex].offsetLeft;
			++ScrollMediaCollection.leftItemIndex;
		}
	}
	else if (direction == 1)
	{
		if (ScrollMediaCollection.leftItemIndex > 0)
		{
			newOffset += MediaCollectionItemItems[ScrollMediaCollection.leftItemIndex].offsetLeft - MediaCollectionItemItems[ScrollMediaCollection.leftItemIndex - 1].offsetLeft;
			--ScrollMediaCollection.leftItemIndex;
		}
	}

	if (newOffset > 0)
	{
		newOffset = 0;
	}

	ScrollMediaCollection.offSet = newOffset;

	for (var i = 0; i < MediaCollectionItemItems.length; i++)
	{
		MediaCollectionItemItems[i].style.left = ScrollMediaCollection.offSet + 'px';
	}

	ScrollMediaCollection.timer = direction < 0 ? setTimeout('ScrollMediaCollection(-1)', 250) : setTimeout('ScrollMediaCollection(1)', 250);
}

function ScrollMedia(direction, updateType)
{
	if (typeof ScrollMedia.offSet == 'undefined' )
	{
        ScrollMedia.offSet = 0;
    }

	if (typeof ScrollMedia.mouseDownDuration == 'undefined')
	{
		ScrollMedia.mouseDownDuration = 0;
	}

	if (typeof ScrollMedia.leftPictureIndex == 'undefined')
	{
		ScrollMedia.leftPictureIndex = 0;
	}

	if (direction == 0 && updateType == 'normal')
	{
		clearTimeout(ScrollMedia.timer);
		ScrollMedia.mouseDownDuration = 0;
		return;
	}

	var MediaItems = getElementsByClassName('MediaItem');
	var leftEdgePosition = document.getElementById('MediaScrollLeft').offsetLeft + document.getElementById('MediaScrollLeft').offsetWidth;
	var rightEdgePosition = document.getElementById('MediaScrollRight').offsetLeft;

	if (updateType == 'reset')
	{
		ScrollMedia.offSet = 0;
		ScrollMedia.mouseDownDuration = 0;
		ScrollMedia.leftPictureIndex = 0;
		return;
	}

	var newOffset = ScrollMedia.offSet;

	if (direction == -1)
	{
		if (ScrollMedia.leftPictureIndex < MediaItems.length - 1 && MediaItems[MediaItems.length - 1].offsetLeft + MediaItems[MediaItems.length - 1].offsetWidth > rightEdgePosition)
		{
			newOffset -= MediaItems[ScrollMedia.leftPictureIndex + 1].offsetLeft - MediaItems[ScrollMedia.leftPictureIndex].offsetLeft;
			++ScrollMedia.leftPictureIndex;
		}
	}
	else if (direction == 1)
	{
		if (ScrollMedia.leftPictureIndex > 0)
		{
			newOffset += MediaItems[ScrollMedia.leftPictureIndex].offsetLeft - MediaItems[ScrollMedia.leftPictureIndex - 1].offsetLeft;
			--ScrollMedia.leftPictureIndex;
		}
	}

	if (newOffset > 0)
	{
		newOffset = 0;
	}

	ScrollMedia.offSet = newOffset;

	for (var i = 0; i < MediaItems.length; i++)
	{
		MediaItems[i].style.left = ScrollMedia.offSet + 'px';
	}

	ScrollMedia.mouseDownDuration++;
	var theDuration = ScrollMedia.mouseDownDuration >= 5 ? 50 : 250;
	ScrollMedia.timer = direction < 0 ? setTimeout('ScrollMedia(-1, \'normal\')', theDuration) : setTimeout('ScrollMedia(1, \'normal\')', theDuration);
}

var CollectionView = 'extended';

function toggleCollectionView()
{
	if (CollectionView == 'extended')
	{
		CollectionView = 'compact';
		document.getElementById('expandedCollectionView').style.display = 'none';
		document.getElementById('MediaCollectionContainer').style.display = 'block';
		document.getElementById('ToggleCollectionView').innerHTML = ExpandedCategoryViewLocalized;
		AlignMediaCollectionItems();
		var theItems = getElementsByClassName("MediaCollectionItem");
		for (var i = 0; i < theItems.length; i++)
		{
			theItems[i].style.backgroundColor = '';
			theItems[i].style.color = '#500000';
		}
	}
	else
	{
		CollectionView = 'extended';
		document.getElementById('expandedCollectionView').style.display = 'block';
		document.getElementById('MediaCollectionContainer').style.display = 'none';
		document.getElementById('ToggleCollectionView').innerHTML = CompactCategoryViewLocalized;
		if (document.getElementById('player') && document.getElementById('player').sendEvent)
		{
			document.getElementById('player').sendEvent('STOP');
			document.getElementById('player').style.display = 'none';
		}
		document.getElementById('pictureViewer').style.display = 'none';
		document.getElementById('SlideShow').style.display = 'none';
		document.getElementById('ContentDescription').innerHTML = '';
		document.getElementById('Media').innerHTML = '';
	}
	document.getElementById('MediaCollectionDescription').innerHTML = '';
}

function MediaInfo(inLink, isPicture, inWidth, inHeight, inDescription)
{
	this.link = inLink;
	this.isPicture = isPicture;
	this.width = inWidth;
	this.height = inHeight;
	this.description = inDescription;
}

var theMediaInfo = [];

function AddImageLoadListener(inImage, inEventListener)
{
	if (typeof AddImageLoadListener.ListenerLoaded == 'undefined')
	{
		AddImageLoadListener.ListenerLoaded = new Array;
	}

	if (inImage)
	{
		if (typeof AddImageLoadListener.ListenerLoaded[inImage.id] == 'undefined')
		{
			AddImageLoadListener.ListenerLoaded[inImage.id] = true;
			if (inImage.addEventListener)
			{
				inImage.addEventListener('load', inEventListener, false);
			}
			else if (inImage.attachEvent)
			{
				inImage.attachEvent('onLoad', inEventListener);
			}
		}
	}
}

function ajaxFunction(inObject)
{
	var xmlHttp;
	try
	{
		// Firefox, Opera 8.0+, Safari
		xmlHttp = new XMLHttpRequest();
	}
	catch (e)
	{
		// Internet Explorer
		try
		{
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e)
			{
				alert('Uw browser ondersteunt geen ajax.');
				return false;
			}
		}
	}
	xmlHttp.onreadystatechange = function()
	{
		if (xmlHttp.readyState == 4 || xmlHttp.readyState=="complete")
		{
			AddImageLoadListener(document.getElementById('pictureViewer'), ScrollToElement);

			document.getElementById('MediaCollectionContainer').style.display = 'block';
			document.getElementById('SlideShow').style.display = 'block';
			document.getElementById('expandedCollectionView').style.display = 'none';
			var theItems = getElementsByClassName("MediaCollectionItem");
			for (var i = 0; i < theItems.length; i++)
			{
				theItems[i].style.backgroundColor = '';
				theItems[i].style.color = '#500000';
			}

			inObject.style.backgroundColor = '#500000';
			inObject.style.color = '#fff0cc';
			inObject.style.borderColor = '#500000';

			xmlDoc = xmlHttp.responseXML;

			var theHTML = '<img src="../pics/ScrollLeft.png" id="MediaScrollLeft" alt="&lt;" onmousedown="ScrollMedia(-1, \'normal\');" onmouseup="ScrollMedia(0, \'normal\');" />';
			theHTML += '<img src="../pics/ScrollRight.png" id="MediaScrollRight" alt="&gt;" onmousedown="ScrollMedia(1, \'normal\');" onmouseup="ScrollMedia(0, \'normal\');" />';

			var theItems = xmlDoc.getElementsByTagName("item");
			theMediaInfo = new Array(theItems.length);
			var piccount = 0;
			for (var i = 0; i < theItems.length; ++i)
			{
				theHTML += '<img src="' + theItems[i].childNodes[0].nodeValue + '" onclick="ShowMediaItem(' + i + ')" class="MediaItem" />';
				var isPicture = (theItems[i].attributes.getNamedItem('isPic').value == 'true');
				if (isPicture)
				{
					theMediaInfo[i] = new MediaInfo(theItems[i].attributes.getNamedItem('link').value, isPicture, 0, 0, theItems[i].attributes.getNamedItem('description').value);
				}
				else
				{
					theMediaInfo[i] = new MediaInfo(theItems[i].attributes.getNamedItem('link').value, isPicture, theItems[i].attributes.getNamedItem('width').value, theItems[i].attributes.getNamedItem('height').value, theItems[i].attributes.getNamedItem('description').value);
				}
			}

			document.getElementById('Media').innerHTML = theHTML;
			document.getElementById('Media').style.display = 'block';
			ScrollMedia(0, 'reset');
			AlignMediaCollectionItems();
			document.getElementById('ToggleCollectionView').innerHTML = ExpandedCategoryViewLocalized;
			CollectionView = 'compact';
		}
	}

	xmlHttp.open("GET", "../php_scripts/GetPics.php?category="+inObject.id, true);
	xmlHttp.send(null);

	document.getElementById('movieContainer').style.display = "none";
	document.getElementById('pictureViewer').style.display = "none";
	document.getElementById('ContentDescription').innerHTML = '';
}

var previousDescription = "&nbsp;";

function UpdateDescription(inDescription)
{
	previousDescription = document.getElementById('MediaCollectionDescription').innerHTML;
	document.getElementById('MediaCollectionDescription').innerHTML = inDescription;
}

function ClearDescription()
{
	document.getElementById('MediaCollectionDescription').innerHTML = previousDescription;
}

function ScrollToElement()
{
	var theElement = document.getElementById('ContentDescription');
	var verticalPosition = theElement.offsetTop + theElement.offsetHeight - window.innerHeight + document.getElementsByClassName('footer')[0].offsetHeight + 5;
	if (verticalPosition < 0)
	{
		verticalPosition = 0;
	}

	window.scrollTo(theElement.offsetLeft, verticalPosition);
}

function ResizeWindow()
{
	var theVerticalMargin = window.outerHeight - window.innerHeight;
	var theHorizontalMargin = window.outerWidth - window.innerWidth;

	var theNewWindowHeight = window.outerHeight;
	var theNewWindowWidth = window.outerWidth;

	var thePicture = document.getElementById('pictureViewer');

	if (window.innerHeight < document.body.offsetHeight + document.getElementsByClassName('footer')[0].offsetHeight + 5)
	{
		theNewWindowHeight = theVerticalMargin + document.body.offsetHeight + document.getElementsByClassName('footer')[0].offsetHeight + 5;
	}

	if (window.innerWidth < thePicture.offsetWidth + thePicture.offsetLeft)
	{
		theNewWindowWidth = theHorizontalMargin + thePicture.offsetWidth + 2 * thePicture.offsetLeft;
	}

	window.resizeTo(theNewWindowWidth, theNewWindowHeight);
}

function ShowMediaItem(inIndex)
{
	var thePicture = document.getElementById('pictureViewer');
	var thePlayer = document.getElementById('player');

	if (theMediaInfo[inIndex].isPicture)
	{
		thePicture.src = theMediaInfo[inIndex].link;
		document.getElementById('movieContainer').style.display = "none";
		if (thePlayer)
		{
			if (thePlayer.sendEvent)
			{
				thePlayer.sendEvent('STOP');
			}
		}
		thePicture.style.display = "block";
	}
	else
	{
		thePicture.style.display = 'none';
		thePicture.src = '../pics/transp1px.gif';
		document.getElementById('movieContainer').style.display = "block";
		if (thePlayer && thePlayer.sendEvent)
		{
			thePlayer.sendEvent('LOAD', theMediaInfo[inIndex].link);
			thePlayer.style.width = theMediaInfo[inIndex].width + 'px';
			thePlayer.style.height = theMediaInfo[inIndex].height + 'px';
			thePlayer.sendEvent('PLAY', 'true');
		}
		else
		{
			var s1 = new SWFObject('../flashplayer/player.swf', 'player', theMediaInfo[inIndex].width, theMediaInfo[inIndex].height, '9');
			s1.addParam('allowfullscreen', 'true');
			s1.addParam('allowscriptaccess', 'always');
			var theFile = 'file=' + theMediaInfo[inIndex].link + '&autostart=true&stretching=exactfit';
			s1.addParam('flashvars', theFile);
			s1.write('movieContainer');
	   		document.getElementById('player').style.marginLeft = 'auto';
			document.getElementById('player').style.marginRight = 'auto';
			document.getElementById('player').style.display = 'block';
		}
	}

	document.getElementById('ContentDescription').innerHTML = theMediaInfo[inIndex].description;
}

var InSlideShow = false;
var SlideShowPaused = false;
var theSlideshowTimer;
var slideshowFinished = false;

function StartSlideShow()
{
	LoadLocalization();

	if (document.getElementById('pictureViewer').addEventListener)
	{
		document.getElementById('pictureViewer').addEventListener('load', ResizeWindow, false);
	}
	else if (document.getElementById('pictureViewer').attachEvent)
	{
		document.getElementById('pictureViewer').attachEvent('onLoad', ResizeWindow);
	}

	InSlideShow = true;
	theMediaInfo = opener.theMediaInfo;
	AdvanceSlideShow();
}

var inPauseResumeFunction = false;

function PauseResumeSlideshow()
{
	inPauseResumeFunction = true;

	if (slideshowFinished)
	{
		window.close();
		return;
	}

	var thePicture = document.getElementById('pictureViewer');
	var thePlayer = document.getElementById('player');

	if (SlideShowPaused)
	{
		if (thePicture.style.display == 'block')
		{
			AdvanceSlideShow()
		}
		else
		{
			if (thePlayer && thePlayer.sendEvent)
			{
				thePlayer.sendEvent('PLAY', true);
			}
		}
		document.getElementById('pauseResumeButton').innerHTML = PauseLocalized;
	}
	else
	{
		if (thePicture.style.display == 'block')
		{
			clearTimeout(theSlideshowTimer);
		}
		else
		{
			if (thePlayer && thePlayer.sendEvent)
			{
				thePlayer.sendEvent('PLAY', false);
			}
		}
		document.getElementById('pauseResumeButton').innerHTML = ResumeLocalized;
	}

	SlideShowPaused = !SlideShowPaused;
	inPauseResumeFunction = false;
}

function playerReady(obj)
{
	if (InSlideShow)
	{
		var thePlayer = document.getElementById('player');
		thePlayer.addModelListener("STATE", "stateListener");
	}
}

function stateListener(inObject)
{
	if (inObject.newstate == "COMPLETED")
	{
		AdvanceSlideShow();
	}
	else if (inPauseResumeFunction == false)
	{
		if (inObject.newstate == "PAUSED")
		{
			if (inObject.oldstate == "PLAYING")
			{
				document.getElementById('pauseResumeButton').innerHTML = ResumeLocalized;
				SlideShowPaused = true;
			}
		}
		else if (inObject.newstate == "IDLE")
		{
			if (inObject.oldstate == "PLAYING")
			{
				document.getElementById('pauseResumeButton').innerHTML = ResumeLocalized;
				SlideShowPaused = true;
			}
		}
		else if (inObject.newstate == "PLAYING")
		{
			if (inObject.oldstate == "PAUSED")
			{
				document.getElementById('pauseResumeButton').innerHTML = PauseLocalized;
				SlideShowPaused = false;
			}
		}
	}
}

function AdvanceSlideShow()
{
	if (typeof AdvanceSlideShow.indexNo == 'undefined' )
	{
        AdvanceSlideShow.indexNo = 0;
    }

	if (AdvanceSlideShow.indexNo >= theMediaInfo.length)
	{
		document.getElementById('pauseResumeButton').innerHTML = CloseWindowLocalized;
		slideshowFinished = true;
	}
	else
	{	
		ShowMediaItem(AdvanceSlideShow.indexNo);
		if (theMediaInfo[AdvanceSlideShow.indexNo].isPicture)
		{
			theSlideshowTimer = setTimeout('AdvanceSlideShow()', 3000);
		}
		++AdvanceSlideShow.indexNo;
	}
}

function OpenSlideshowWindow()
{
	myWindow = window.open('slideshow.php','_blank','width=600, height=600, location=0, menubar=0, toolbar=0, menubar=0 scrollbar=1', 'false');
	myWindow.focus();
}