/* Family photo functions */
	
	/* Sorry PPK, but my code made me so desperate i HAD to use it. */
	function checkBrowser() {
		var BrowserDetect = {
		init: function () {
			this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
			this.version = this.searchVersion(navigator.userAgent)
				|| this.searchVersion(navigator.appVersion)
				|| "an unknown version";
			this.OS = this.searchString(this.dataOS) || "an unknown OS";
		},
		searchString: function (data) {
			for (var i=0;i<data.length;i++)	{
				var dataString = data[i].string;
				var dataProp = data[i].prop;
				this.versionSearchString = data[i].versionSearch || data[i].identity;
				if (dataString) {
					if (dataString.indexOf(data[i].subString) != -1)
						return data[i].identity;
				}
				else if (dataProp)
					return data[i].identity;
			}
		},
		searchVersion: function (dataString) {
			var index = dataString.indexOf(this.versionSearchString);
			if (index == -1) return;
			return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
		},
		dataBrowser: [
			{ 	string: navigator.userAgent,
				subString: "OmniWeb",
				versionSearch: "OmniWeb/",
				identity: "OmniWeb"
			},
			{
				string: navigator.vendor,
				subString: "Apple",
				identity: "Safari"
			},
			{
				prop: window.opera,
				identity: "Opera"
			},
			{
				string: navigator.vendor,
				subString: "iCab",
				identity: "iCab"
			},
			{
				string: navigator.vendor,
				subString: "KDE",
				identity: "Konqueror"
			},
			{
				string: navigator.userAgent,
				subString: "Firefox",
				identity: "Firefox"
			},
			{
				string: navigator.vendor,
				subString: "Camino",
				identity: "Camino"
			},
			{		// for newer Netscapes (6+)
				string: navigator.userAgent,
				subString: "Netscape",
				identity: "Netscape"
			},
			{
				string: navigator.userAgent,
				subString: "MSIE",
				identity: "Explorer",
				versionSearch: "MSIE"
			},
			{
				string: navigator.userAgent,
				subString: "Gecko",
				identity: "Mozilla",
				versionSearch: "rv"
			},
			{ 		// for older Netscapes (4-)
				string: navigator.userAgent,
				subString: "Mozilla",
				identity: "Netscape",
				versionSearch: "Mozilla"
			}
		],
		dataOS : [
			{
				string: navigator.platform,
				subString: "Win",
				identity: "Windows"
			},
			{
				string: navigator.platform,
				subString: "Mac",
				identity: "Mac"
			},
			{
				string: navigator.platform,
				subString: "Linux",
				identity: "Linux"
			}
		]
	
	};
		BrowserDetect.init();
	
		return BrowserDetect;
	}

	
	
	/* This function takes care of saving the changes the user has made in his albums */
	function saveChanges() {

		/* First we find out how many albums there actually are. */
		var numberOfAlbums = document.getElementById('totalNumberOfAlbums').innerHTML;
			numberOfAlbums = parseFloat(numberOfAlbums);
		
		/* We then go through the saving process for each album */
		for (i=1; i<=numberOfAlbums; i++) {

			/* Based on the albumID we get the contents of the album */
			var albumID = document.getElementById('albumID' +i).innerHTML;
			var params = 'albumID=' +albumID;
			var photoIDs = Sortable.serialize('album' +albumID);
				photoIDs = photoIDs.split('album' +albumID +'[]=');
			var photoIDsOnly = new Array();
				
			for (j=1; j<=photoIDs.length;j++) {
				if(photoIDs[j] != '' && photoIDs[j] != undefined) {
					var temp = photoIDs[j].split('&');
					photoIDsOnly[j] = temp[0];
				}
			}

			/* These contents are rewritten in a way that only the IDs remain. These are put in a params string to be used by AJAX. */
			var paramsExtension = '';
			
			for (k=1; k<=photoIDsOnly.length;k++) {
				if(photoIDsOnly[k] != undefined && photoIDsOnly[k] != '') {
					paramsExtension = paramsExtension + '&photoID' +k  +'=' +photoIDsOnly[k];
				}
			}			
			
			var params = params + paramsExtension;
			url = javascriptBase +'familypages_photoManageAjax';

			new Ajax.Request (
				url,
				{
					method: 'get',
					parameters: params,
					//onSuccess: function(t){alert(t.responseText);},
					onComplete: completeFunction
				}
			);
		}
		
		Effect.Appear('changesSaved', { duration: 1.0 });
		setTimeout ("fadeChangesNotification();", 3000);
		
		function completeFunction(request) {
		}
	}
	
	function fadeChangesNotification() {
		Effect.Fade('changesSaved', { duration: 3.0 });
	}
	
	
	function createAlbum(familyID) {
		var answer = confirm('Eventuele wijzigingen van je foto\'s worden niet opgeslagen als je doorgaat!\n\nHeb je alle wijzigingen van je foto\'s opgeslagen?');
		
		if(answer) {
			var albumName = document.getElementById('newAlbumName').value;
		
			if (albumName != '') {
				url = javascriptBase +'familypages_photoAlbumsAjax';
				params = 'albumName=' +albumName +'&familyID=' +familyID;
	
				new Ajax.Request
				(
					url,
					{
					  method: 'get',
					  parameters: params,
					  //onSuccess: function(t){alert(t.responseText);},
					  onComplete: completeFunction
					}
				);
			}
		}
		
		function completeFunction(request) {
			document.location= javascriptBase +'ledenpaginas_familiepagina/' +familyID +'/show=photoManage';
		}
	}

	
	function deletePhoto(mediaID,memberID) {
		
		var answer = confirm('Weet je zeker dat je deze foto permanent wilt verwijderen?');
		
		if (answer) {
			url = javascriptBase +'familypages_photoManageAjaxDelete';
			params = 'mediaID=' +mediaID +'&memberID=' +memberID;
	
			new Ajax.Request
			(
				url,
				{
				  method: 'get',
				  parameters: params,
				  //onSuccess: function(t){alert(t.responseText);},
				  onComplete: completeFunction
				}
			);
		}
		
		function completeFunction(request) {
			Effect.Fade('mediaID_' +mediaID, { duration: 0.5 });
		}
	}
/* End */




/* Family video functions */

function initVideoFlashActivation() {
	var numberOfVideos = document.getElementById('numberOfVideos').innerHTML;
	numberOfVideos = parseFloat(numberOfVideos);
	var videos = new Array(numberOfVideos);
	
	for (i=0; i<numberOfVideos; i++) {
		var position = i+1;
	    var youtubeVideoID = document.getElementById('video' +position).innerHTML;
		videos[i] = youtubeVideoID;
	}

	for (i=0; i<numberOfVideos; i++) {
		var so = 'so' +videos[i];
		var so = new SWFObject("http://www.youtube.com/v/" +videos[i], "youtube video" +videos[i], "200", "160", "8", "#FFFFFF");
		so.addParam("wmode", "transparent");
		so.write("youtubeVideo" +videos[i]);
	}
}

function addVideo(url,familyID) {

	var youtubeVideoID = parent.document.getElementById('youtubeVideoID').value;	
	var params = 'youtubeVideoID=' +youtubeVideoID +'&familyID=' +familyID;
	var writeLocation = url;
	
	if (youtubeVideoID !== '')
	{
		new Ajax.Request
		(
			writeLocation,
			{
			  method: 'get',
			  parameters: params,
			  onComplete: completeFunction
			}
		);
	}
	else {
		alert('Je hebt nog geen code van je youtube filmpje ingegeven.');
	}			
	
	function completeFunction(request) {
		Effect.Appear('videoAdded', { duration: 1.0 });
		//document.getElementById('youtubeVideoID').value = '';
		setTimeout ("fadeVideoNotification();", 3000);
	}
}

function fadeVideoNotification() {
	Effect.Fade('videoAdded', { duration: 3.0 });
}

function deleteVideo(url,videoID,familyID)
{
	var answer = confirm('Weet je zeker dat je deze video wilt verwijderen?');
	if(answer)
	{
		var writeLocation = url;
		//alert('bestand dat wegschrijft = ' +writeLocation);
		
		var familyID = familyID;
		//('family id = ' +familyID);
		
		var params = 'videoID=' +videoID;
		//alert('params = ' +params);
		
		if (videoID !== '')
		{
			new Ajax.Request 
			(
				writeLocation,
				{
				  method: 'get',
				  parameters: params,
				  onComplete: completeFunction
				}
			);
		}
	}
	
	function completeFunction(request) {
		Effect.Fade('videoContainer' +videoID, { duration: 1.0 });
	}
}
/* End */


/* Family calendar functions */

function validateAgenda(url,familyID) {
	var eventTitle = parent.document.editForm.eventTitle.value;
	var eventType = parent.document.editForm.eventType.options[parent.document.editForm.eventType.options.selectedIndex].value;
	var eventLocation = parent.document.editForm.eventLocation.value;
	var eventDescription = parent.document.editForm.eventDescription.value;
	var eventStartDate = parent.document.editForm.eventStartDate.value;
	var eventEndDate = parent.document.editForm.eventEndDate.value;
	
	var writeLocation = url;
	//alert('bestand dat wegschrijft = ' +writeLocation);
	
	var familyID = familyID;
	//('family id = ' +familyID);
	
	var params = 'eventTitle=' +eventTitle +'&eventType=' +eventType +'&eventLocation=' +eventLocation +'&eventDescription=' +eventDescription +'&eventStartDate=' +eventStartDate +'&eventEndDate=' +eventEndDate +'&familyID=' +familyID;

	if (eventTitle == '')
	{
		alert('Je hebt geen titel voor je evenement opgegeven.\nVoer deze in om je evenement te kunnen plaatsen.');
	}
	else if(eventLocation == '')
	{
		alert('Je hebt geen locatie opgegeven voor je evenement.\nVoer deze in om je evenement te kunnen plaatsen.');
	}
	else if(eventDescription == '')
	{
		alert('Je hebt geen omschrijving opgegeven voor je evenement.\nVoer deze in om je evenement te kunnen plaatsen.');
	}			
	else
	{
		new Ajax.Request 
		(
			writeLocation,
			{
			  method: 'get',
			  parameters: params,
			  //onSuccess: function(t){alert(t.responseText);},
			  //onFailure: function(t){alert(t.responseText);},
			  onComplete: completeFunction
			}
		);
	}			
	
	function completeFunction(request) {
		Effect.Appear('calendarAdded', { duration: 1.0 });
		//document.editForm.eventTitle.value = '';
		//document.editForm.eventType.options[parent.document.editForm.eventType.options.selectedIndex].value = '';
		//document.editForm.eventLocation.value = '';
		//document.editForm.eventDescription.value = '';
		//document.editForm.eventStartDate.value = '';
		//document.editForm.eventEndDate.value = '';
		setTimeout ("fadeCalendarNotification('calendarAdded');", 3000);
	}
}

function fadeCalendarNotification(elementID) {
	Effect.Fade(elementID, { duration: 3.0 });
}

function deleteCalendarEvent (url,eventID,familyID) {
	var answer = confirm('Weet je zeker dat je dit evenement wilt verwijderen?');
	
	if(answer) {
		var page = url;
		var params = 'itemID=' +eventID;
		
		new Ajax.Request
		(
			page,
			{
			  method: 'get',
			  parameters: params,
			  onComplete: completeFunction
			}
		);
	}
	
	function completeFunction(request) {
		Effect.Fade('eventContainer' +eventID, { duration: 1.0 });
	}
}

function editCalendarEvent(url,familyID,eventID) {
	var eventTitle = parent.document.editForm.eventTitle.value;
	var eventType = parent.document.editForm.eventType.options[parent.document.editForm.eventType.options.selectedIndex].value;
	var eventLocation = parent.document.editForm.eventLocation.value;
	var eventDescription = parent.document.editForm.eventDescription.value;
	var eventStartDate = parent.document.editForm.eventStartDate.value;
	var eventEndDate = parent.document.editForm.eventEndDate.value;
	
	var writeLocation = url;
	//alert('bestand dat wegschrijft = ' +writeLocation);
	
	var familyID = familyID;
	//('family id = ' +familyID);
	
	var params = 'eventTitle=' +eventTitle +'&eventType=' +eventType +'&eventLocation=' +eventLocation +'&eventDescription=' +eventDescription +'&eventStartDate=' +eventStartDate +'&eventEndDate=' +eventEndDate +'&familyID=' +familyID;
	
	if (eventID) {
		params += '&eventID=' +eventID;
	}

	if (eventTitle == '')
	{
		alert('Je hebt geen titel voor je evenement opgegeven.\nVoer deze in om je evenement te kunnen plaatsen.');
	}
	else if(eventLocation == '')
	{
		alert('Je hebt geen locatie opgegeven voor je evenement.\nVoer deze in om je evenement te kunnen plaatsen.');
	}
	else if(eventDescription == '')
	{
		alert('Je hebt geen omschrijving opgegeven voor je evenement.\nVoer deze in om je evenement te kunnen plaatsen.');
	}			
	else
	{
		new Ajax.Request 
		(
			writeLocation,
			{
			  method: 'get',
			  parameters: params,
			  //onSuccess: function(t){alert(t.responseText);},
			  //onFailure: function(t){alert(t.responseText);},
			  onComplete: completeFunction
			}
		);
	}			
	
	function completeFunction(request) {
		Effect.Appear('calendarEditted', { duration: 1.0 });
		setTimeout ("fadeCalendarNotification('calendarEditted');", 3000);
	}
}
/* End */


/* Family blog functions */

function validateBlog(url,familyID) {
	var blogTitle = parent.document.getElementById('blogTitle').value;
	var blogText = parent.document.getElementById('blogText').value;
	var familyID = familyID;
	var writeLocation = url;
	var params = 'blogpostTitle=' +blogTitle +'&blogpostText=' +blogText +'&familyID=' +familyID;
	
	if (blogTitle == '') {
		alert('U heeft nog geen titel ingevoerd.\nDit veld is verplicht en dient ingevuld te worden voordat de blogpost geplaatst kan worden.');
	}
	else if (blogText == '') {
		alert('U heeft nog geen tekst voor uw bericht ingevoerd.\nDit veld is verplicht en dient ingevuld te worden voordat de blogpost geplaatst kan worden.');
	}

	if (blogText != '' && blogTitle != '') {
		new Ajax.Request
		(
			writeLocation,
			{
			  method: 'get',
			  parameters: params,
			  //onSuccess: function(t){alert(t.responseText);},
			  //onFailure: function(t){alert(t.responseText);},
			  onComplete: completeFunction
			}
		);
	}
	
	function completeFunction(request) {
		Effect.Appear('blogpostAdded', { duration: 1.0 });
		//parent.document.getElementById('blogTitle').value = '';
		//parent.document.getElementById('blogText').value = '';
		setTimeout ("fadeBlogNotification('blogpostAdded');", 3000);
	}
}

function deleteBlogpost (url,blogpostID,familyID) {
	var answer = confirm('Weet je zeker dat je deze blogpost wilt verwijderen?');
	
	if(answer) {
		var page = url;
		var params = 'blogpostID=' +blogpostID;
		
		new Ajax.Request
		(
			page,
			{
			  method: 'get',
			  parameters: params,
			  onComplete: completeFunction
			}
		);
	}
	
	function completeFunction(request) {
		Effect.Fade('blogContainer' +blogpostID, { duration: 1.0 });
	}
}

function editBlogpost(url,familyID,blogpostID) {
	var blogTitle = parent.document.getElementById('blogTitle').value;
	var blogText = parent.document.getElementById('blogText').value;
	var familyID = familyID;
	var writeLocation = url;
	var params = 'blogpostTitle=' +blogTitle +'&blogpostText=' +blogText +'&familyID=' +familyID +'&blogpostID=' +blogpostID;
	
	if (blogTitle == '') {
		alert('U heeft nog geen titel ingevoerd.\nDit veld is verplicht en dient ingevuld te worden voordat de blogpost aangepast kan worden.');
	}
	else if (blogText == '') {
		alert('U heeft nog geen tekst voor uw bericht ingevoerd.\nDit veld is verplicht en dient ingevuld te worden voordat de blogpost aangepast kan worden.');
	}

	if (blogText != '' && blogTitle != '') {
		new Ajax.Request
		(
			writeLocation,
			{
			  method: 'get',
			  parameters: params,
			  //onSuccess: function(t){alert(t.responseText);},
			  //onFailure: function(t){alert(t.responseText);},
			  onComplete: completeFunction
			}
		);
	}
	
	function completeFunction(request) {
		Effect.Appear('blogpostEditted', { duration: 1.0 });
		setTimeout ("fadeBlogNotification('blogpostEditted');", 3000);
	}

}

function fadeBlogNotification(elementID) {
	Effect.Fade(elementID, { duration: 3.0 });
}
/* End */


/*
	Family members functions
	@@members
*/

function removeAdmin(url,memberID,familyID) {

	var writeLocation = url;
	var params = 'memberID=' +memberID +'&familyID=' +familyID;
	
	new Ajax.Request
	(
		writeLocation,
		{
		  method: 'get',
		  parameters: params,
		  //onSuccess: function(t){alert(t.responseText);},
		  //onFailure: function(t){alert(t.responseText);},
		  onComplete: completeFunction10
		}
	);
	
	function completeFunction10(request) {
		document.getElementById('makeAdmin'+memberID).style.display = '';
		document.getElementById('removeAdmin'+memberID).style.display = 'none';
		document.getElementById('adminMemberDisplayname'+memberID).style.display = 'none';
		document.getElementById('memberDisplayname'+memberID).style.display = '';
	}
}


function makeAdmin(url,memberID,familyID) {

	var writeLocation = url;
	var params = 'memberID=' +memberID +'&familyID=' +familyID;
	
	new Ajax.Request
	(
		writeLocation,
		{
		  method: 'get',
		  parameters: params,
		  //onSuccess: function(t){alert(t.responseText);},
		  //onFailure: function(t){alert(t.responseText);},
		  onComplete: completeFunction
		}
	);
	
	function completeFunction(request) {
		document.getElementById('makeAdmin'+memberID).style.display = '';
		document.getElementById('removeAdmin'+memberID).style.display = 'none';
		document.getElementById('adminMemberDisplayname'+memberID).style.display = 'none';
		document.getElementById('memberDisplayname'+memberID).style.display = '';
	}
}


function removeFromFamily(url,memberID,familyID) {
	var answer = confirm('Weet je zeker dat je dit familielid wilt verwijderen?');
	if(answer)
	{
		var familyID = familyID;
		var memberID = memberID;
		var writeLocation = url;
		var params = 'memberID=' +memberID +'&familyID=' +familyID;
		
		new Ajax.Request
		(
			writeLocation,
			{
			  method: 'get',
			  parameters: params,
			  //onSuccess: function(t){alert(t.responseText);},
			  //onFailure: function(t){alert(t.responseText);},
			  onComplete: completeFunction
			}
		);
	}
	
	function completeFunction(request) {
		document.getElementById('member'+memberID).style.display = 'none';
	}
}
/* End */

var IE = (navigator.appName == "Microsoft Internet Explorer");

/* BEGIN: validation */	
	function validateFlickrLink(url,familyID)
	{
		
		var flickrPhotoURL = parent.document.getElementById('flickrPhotoURL').value;
		//alert('flickr photo url = ' +flickrPhotoURL);
		
		var writeLocation = url;
		//alert('bestand dat wegschrijft = ' +writeLocation);
		
		var familyID = familyID;
		//alert('family id = ' +familyID);
		
		var containsPeople = flickrPhotoURL.search('people');
		var containsPhotos = flickrPhotoURL.search('photos');
		
		if (containsPeople !== -1)
		{
			var peopleSplit = flickrPhotoURL.split('people');
			var flickrVariable = peopleSplit[1];
			flickrVariable = flickrVariable.substring(1);
			
			var params = 'people=' +flickrVariable;
		}
		
		if (containsPhotos !== -1)
		{
			var photoSplit = flickrPhotoURL.split('photos');
			var flickrVariable = photoSplit[1];
			flickrVariable = flickrVariable.substring(1);
			
			var params = 'photos=' +flickrVariable;
		}
		//alert('params = ' +params);
		
		if (flickrVariable !== '')
		{
			new Ajax.Request
			(
				writeLocation,
				{
				  method: 'get',
				  parameters: params,
				  //onSuccess: function(t){alert(t.responseText);},
				  //onFailure: function(t){alert(t.responseText);},
				  onComplete: completeFunction3
				}
			);
		}
		else
		{
			alert('Je hebt nog geen adres van je flickraccount ingegeven.');
		}			
		
		function completeFunction3(request) {
			document.location = javascriptBase +'ledenpaginas_familiepagina/' +familyID +'/show=fotosBewerken_2';
		}
	}
	
	function requestFamilyMemberAccess(url,familyID,memberID)
	{
		var writeLocation = url;
		var familyID = familyID;
		var memberID = memberID;
		var firstname = document.getElementById('voornaam').value;
		var prefix = document.getElementById('tussenvoegsel').value;
		var lastname = document.getElementById('achternaam').value;
		var message = document.getElementById('bericht').value;

		var params = 'memberID=' +memberID +'&voornaam=' +firstname +'&tussenvoegsel=' +prefix +'&achternaam=' +lastname +'&bericht=' +message +'&familyID=' +familyID;
		//alert('params = ' +params);
		
		if(firstname == '')
		{
			alert('Je voornaam is verplicht.\nVul deze in het bijbehorende invoerveld in.');
		}
		else if(lastname == '')
		{
			alert('Je achternaam is verplicht.\nVul deze in het bijbehorende invoerveld in.');
		}
		else
		{
			new Ajax.Request 
			(
				writeLocation,
				{
				  method: 'get',
				  parameters: params,
				  //onSuccess: function(t){alert(t.responseText);},
				  //onFailure: function(t){alert(t.responseText);},
				  onComplete: completeFunction8
				}
			);
		}	
		
		function completeFunction8(request) {
			document.location = javascriptBase +'ledenpaginas_familiepagina/' +familyID +'/sent=1';
		}
	}
/* END: validation */
	
function reportAbuse(url,messageID)
{
	var messageID = messageID;
	var writeLocation = url;
	var params = 'messageID=' +messageID;
	
	var answer = confirm('Weet je zeker dat je dit bericht wilt aanmerken als ongepast?');
	if(answer)
	{
		new Ajax.Request 
		(
			writeLocation,
			{
			  method: 'get',
			  parameters: params,
			  //onSuccess: function(t){alert(t.responseText);},
			  //onFailure: function(t){alert(t.responseText);},
			  onComplete: completeFunction7
			}
		);
	}
	
	function completeFunction7(request) {
		document.getElementById('bevestiging').style.display = '';
	}
}

function loadCalendar()
{
	var cal7 = new calendar3(parent.document.forms['editForm'].elements['eventStartDate']);
	cal7.year_scroll = true;
	cal7.time_comp = true;
	
	var cal8 = new calendar3(parent.document.forms['editForm'].elements['eventEndDate']);
	cal8.year_scroll = false;
	cal8.time_comp = true;
}
	
	
/* BEGIN: check whether the login screen was loaded with ajax */
function manipulateFormAction()
{
	var originalAction = '';
	originalAction = document.getElementById('rewritableLoginForm').action;
			
	/* BEGIN: this line of code was entered after putting the site to the live domain and makes the splitting above useless */
	baseURL = javascriptBase +'berichtPlaatsen';
	/* END: this line of code was entered after putting the site to the live domain and makes the splitting above useless */
	document.getElementById('rewritableLoginForm').action = baseURL;
	
	var newAction = document.getElementById('rewritableLoginForm').action;
}
/* END: check whether the login screen was loaded with ajax */
	
	
	
	function getElement(sName)
	{
		if (IE)
		{
			return eval('document.all.'+sName);
		}
		else
		{
			return document.getElementById(sName);
		}
		
	}
	
	function getXY(Obj) 
	{
		for (var sumTop=0,sumLeft=0;Obj!=document.body;sumTop+=Obj.offsetTop,sumLeft+=Obj.offsetLeft, Obj=Obj.offsetParent);
		return {left:sumLeft,top:sumTop}
	}
	
	oFlashTimeOut = '';
	function doClassFlash(sObject,iStep,iTimeout,iTimeout2,sClassA,sClassB)
	{
		clearTimeout(oFlashTimeOut);
		oFlashTimeOut = setTimeout("classFlash('"+sObject+"','"+iStep+"',"+iTimeout2+",'"+sClassA+"','"+sClassB+"')",iTimeout);
	}
	
	function classFlash(sObject,iStep,iTimeout,sClassA,sClassB)
	{
		el = getElement(sObject);
		if (!bLoading)
		{
			if (el.className == sClassA)
			{
				el.className = sClassB;
			}
			else
			{
				el.className = sClassA;
				iStep--;
			}
			if (iStep != 0)
			{
				setTimeout("classFlash('"+sObject+"','"+iStep+"',"+iTimeout+",'"+sClassA+"','"+sClassB+"')",iTimeout);
			}
		}
	}
	
	function openWindow(sURL,sName,iWidth,iHeight,sHAlign,sVAlign,iXPadding,iYPadding,sAreaType)
	{
		if (sHAlign == undefined) sHAlign = 'left';
		if (sVAlign == undefined) sVAlign = 'top';
		if (iXPadding == undefined) iXPadding = 0;
		if (iYPadding == undefined) iYPadding = 0;
		if (sAreaType == undefined) sAreaType = 'window';
		
		
		
		switch(sAreaType)
		{
			case('window'):
				if (IE)
				{
					iAreaLeft = window.screenLeft;
					iAreaTop = window.screenTop;
				}
				else
				{
					iAreaLeft = window.left;
					iAreaTop = window.top;
				}
				iAreaWidth = document.body.clientWidth;
				iAreaHeight = document.body.clientHeight;
			break;
			case('screen'):
				iAreaLeft = 0;
				iAreaTop = 0;
				iAreaWidth = document.body.clientWidth;
				iAreaHeight = document.body.clientHeight;
			break;
		}
		
		switch(sHAlign)
		{
			case('center'):
				iLeft = iAreaLeft+((iAreaWidth-iWidth)/2)+iXPadding;
			break;
			default:
				iLeft = iAreaLeft+iXPadding;
			break;
		}
		
		switch(sVAlign)
		{
			case('middle'):
				iTop = iAreaTop+((iAreaHeight-iHeight)/2)+iYPadding;
			break;
			default:
				iTop = iAreaTop+iYPadding;
			break;
		}
		
		
		oWindow = window.open(sURL,sName,'width='+iWidth+',height='+iHeight+',left='+iLeft+',top='+iTop+',scrollbars=yes');
		if (sURL.substr(0,4) != 'http')
		{
			oWindow.focus();
			oWindow.moveTo(iLeft,iTop);
		}
	}
	
	function getXY(Obj) 
	{
		for (var sumTop=0,sumLeft=0;Obj!=document.body;sumTop+=Obj.offsetTop,sumLeft+=Obj.offsetLeft, Obj=Obj.offsetParent);
		return {left:sumLeft,top:sumTop}
	}

	function getSize(Obj) 
	{
		iWidth = Obj.offsetWidth;
		iHeight = Obj.offsetHeight;
		return {width:iWidth,height:iHeight};
	}	

	function jsDebug(sText)
	{
		oDebug = getElement('jsDebug');
		oDebug.style.display = '';
		oDate = new Date();
		sText = oDate.toUTCString()+' - '+sText
		oDebug.innerHTML = sText+'<br/>'+oDebug.innerHTML;
	}
	
	aDropDowns = new Array();
	aDropDownNames = new Array();
	
	function dropDown(sGroupName,sTargetDiv,sDivName,sHAlign,sVAlign,bForce)
	{
		if (aDropDowns[sGroupName] === undefined) aDropDowns[sGroupName] = new Array();
		if (aDropDownNames[sGroupName] === undefined) aDropDownNames[sGroupName] = new Array();
		
		if ((aDropDownNames[sGroupName][sDivName] === undefined))
		{
			oDropDown = getElement(sDivName);
			oTargetDiv  = getElement(sTargetDiv);

			aDropDown = new Array();
			aDropDown['name'] = sDivName;
			aDropDown['status'] = false;
			aDropDown['statusNext'] = false;
			aDropDown['oDrop'] = oDropDown;
			aDropDown['oTarget'] = oTargetDiv;
			aDropDown['top'] = oTargetDiv;
			aDropDown['left'] = oTargetDiv;
			aDropDown['halign'] = sHAlign;
			aDropDown['valign'] = sVAlign;
			
			aDropDownNames[sGroupName][sDivName] = aDropDowns[sGroupName].length;
			iCurDropDown = aDropDownNames[sGroupName][sDivName];
			aDropDowns[sGroupName].push(aDropDown);
		}
		else
			iCurDropDown = aDropDownNames[sGroupName][sDivName];
		
			
		for(var i=0 ; i<aDropDowns[sGroupName].length ; i++)
		{
			if ((!bForce) || i != iCurDropDown)
				aDropDowns[sGroupName][i]['status'] = false;
		}
		
		aDropDowns[sGroupName][iCurDropDown]['status'] = bForce;
		
		if ((bForce) && (sGroupName == 'navMain'))
			hideSelects('hidden')
		else
			hideSelects('visible');
		
		
		if ((aDropDowns[sGroupName]['timer'] === undefined) || (aDropDowns[sGroupName]['timer'] == false))
		{
			aDropDowns[sGroupName]['timer'] = setTimeout("setDropDowns('"+sGroupName+"');",10)
		}
	}
	
	function setDropDowns(sGroupName)
	{
		clearTimeout(aDropDowns[sGroupName]['timer']);
		aDropDowns[sGroupName]['timer'] = false;
		sDivDrops = '';
		for(var i=0 ; i<aDropDowns[sGroupName].length ; i++)
		{
			aDropDown = aDropDowns[sGroupName][i];
			oDropDown = aDropDown['oDrop'];

			sDivDrops = sDivDrops+' | '+aDropDown['name']+' : '+aDropDown['status'];
			
			if ((aDropDown['status']) && (oDropDown.style.display != ''))
			{ 
				bOpened = true;
				
				oDropDown.style.display = '';
				
				sVAlign = aDropDown['valign'];
				sHAlign = aDropDown['halign'];
				
				oDropDown = aDropDown['oDrop'];
				oTargetDiv = aDropDown['oTarget'];

				aTargetPos = getXY(oTargetDiv);
				aTargetSize = getSize(oTargetDiv);
				
				aDropDownPos = getXY(oDropDown);
				aDropDownSize = getSize(oDropDown);
				
				if (sHAlign == 'middleLeft')   
					iLeft = aTargetPos['left'];
				else if (sHAlign == 'middleRight')
					iLeft = aTargetPos['left']+(aTargetSize['width']-aDropDownSize['width']);
				else if (sHAlign == 'right')
					iLeft = aTargetPos['left']+aTargetSize['width'];
				else // or == 'left'
					iLeft = aTargetPos['left']-aDropDownSize['width'];
				
					
				if (sVAlign == 'bottomTop')
					iTop = aTargetPos['top'];
				else if (sHAlign == 'bottom')
					iTop = aTargetPos['top']+aTargetSize['height'];
				else if (sHAlign == 'top')
					iTop = aTargetPos['top']-aTargetSize['height'];
				else if (sHAlign == 'topBottom')
					iTop = aTargetPos['top']-aTargetSize['height']+aTargetSize['height'];
	
				aDropDown['top'] = iTop+'px';
				aDropDown['left'] = iLeft+'px';
				
				oDropDown.style.top = aDropDown['top'];
				oDropDown.style.left = aDropDown['left'];				
			}
			else if ((!aDropDown['status']) && (oDropDown.style.display != 'none'))
				aDropDown['oDrop'].style.display = 'none'
		}
	}
	
	
	function hideSelects(action) 
	{
		/*
		if (navigator.appName.indexOf("MSIE")) 
		{
			oDiv = getElement('externalIFrame');
			if (action!='visible'){action='hidden';}
			if (oDiv != undefined) oDiv.style.visibility = action;
		}
		*/
		
		//documentation for this script at http://www.shawnolson.net/a/1198/
		//possible values for action are 'hidden' and 'visible'
		/*
		for (var S = 0; S < document.forms.length; S++)
		{
			for (var R = 0; R < document.forms[S].length; R++) 
			{
				if (document.forms[S].elements[R].options) 
				{
					document.forms[S].elements[R].style.visibility = action;
				}
			}
		} 
		*/
		
	}
	
	//end code
	
oDebug = '';
bNewLine = true;
function debugMsg(sText,bNoNewLine)
{
	if (oDebug == '')
		createDebugDiv();
	
	if (bNewLine)
	{
	    date = new Date();
	    dateString = date.getHours()+":"+date.getMinutes()+":"+date.getSeconds()+"."+date.getMilliseconds();
		oDebug.innerHTML += dateString+" - ";     
	}
	
	oDebug.innerHTML += sText;
	
	bNewLine = ((bNoNewLine == undefined) || (bNoNewLine != true))
	if (bNewLine)
		oDebug.innerHTML += '<br/>';
		
	oDebug.style.display = '';
	scrollDown(oDebug);
	return oDebug;
}

function createDebugDiv()
{
	oDebug = document.createElement('div');
	oDebug.ondblclick = function() { this.style.display = 'none'; }
	document.body.insertBefore(oDebug,document.body.firstChild);
	oDebug.style.padding = '5px';
	oDebug.style.overflow = 'auto';
	oDebug.style.fontSize = '9px';
	oDebug.style.textAlign = 'left';
	oDebug.style.position = 'absolute';
	oDebug.style.background = '#ffffff';
	oDebug.style.border = '1px solid #ff4444';
	oDebug.style.width = '400px';
	oDebug.style.height = '100px';
	oDebug.style.zIndex = 100000;
	oDebug.style.right = '0px';
	oDebug.style.top = '0px';		
}	
function scrollDown(oDiv)
{
	oDiv.scrollTop = oDiv.scrollTop+100000000;
}

function activateWindow(href,title,caption){
	myLightWindow.activateWindow({href: href,title: title, caption: caption});
}

/* BEGIN // these functions take care of the showing and hiding of certain divs */
	function showHide(id){
		ID = document.getElementById(id);
		
		if(ID.style.display == "")
	    	ID.style.display = "none";
	     else
	        ID.style.display = "";
	}
	
	function displayAlert(type)
	{
		if(type = 'alreadyRegistered')
		var answer = confirm('Je bent al geregistreerd op Familyboard!\nWil je je profiel bewerken?');
		if(answer)
		{
			document.location = javascriptBase +'ledenpaginas_profielBewerken';
		}
		else
		{
			document.location = javascriptBase +'registreren';
		}
		
	}
	
	function showHideCharities(id){
		document.getElementById('fonds1').style.display = "none";
		document.getElementById('fonds2').style.display = "none";
		document.getElementById('fonds3').style.display = "none";
		document.getElementById('fonds4').style.display = "none";
		document.getElementById('fonds5').style.display = "none";
		document.getElementById('fonds6').style.display = "none";
		
		ID = document.getElementById(id);
		
		if(ID.style.display == "")
	    	ID.style.display = "none";
	     else
	        ID.style.display = "";
	}
	
	function showBerichtenDiv(id){
		ID = document.getElementById(id);
        ID.className = "berichtenHeader";
	}
	
	function hideBerichtenDiv(id){
		ID = document.getElementById(id);
        ID.className = "berichtenHeaderHidden";
	}
	/* END // these functions take care of the showing and hiding of certain divs */
	
	
	/* BEGIN // functions to make the tabs active or inactive */	
	
	function makeBerichtenActive(id){
		ID = document.getElementById(id);
    	ID.className = "berichtenActive";
    	textDivID = id +'Text';
    	tabTextDivID = document.getElementById(textDivID);
    	tabTextDivID.className = "berichtenActiveText";
	}
	
	function makeBerichtenInactive(id){
		ID = document.getElementById(id);
    	ID.className = "berichtenInactive";
    	textDivID = id +'Text';
    	tabTextDivID = document.getElementById(textDivID);
    	tabTextDivID.className = "berichtenInactiveText";
	}
	/* END // functions to make the tabs active or inactive */		
	
	/* BEGIN: handige shizzle */
	
	var x = 2;
    var y = 1;
    
	function loading(div,url){
		var ran_number= Math.random()*10;
		var script = url;
		var params = 'rand=' + ran_number;
		document.getElementById(div).innerHTML = '<div style="float: left;"><img src="img/frame/loading.gif"/></div>';
		
		new Ajax.Request 
		(
		script,
		{ 
		  method: 'get',
		  parameters: params,
		  //onSuccess: function(t){alert(t.responseText);},
		  //onFailure: function(t){alert(t.responseText);},		  
		  onComplete: completeFunction2
		}
		);
		 
		function completeFunction2(request) {
		  document.getElementById(div).innerHTML = '<div style="float: left;"><img src="img/frame/saved.gif"/></div>';
		  timer();
		}
	}
				
	function timer(){
		klokje();
    }
       
     function klokje(){
        x = x-y;
        document.getElementById('clock_'+div).innerHTML = x;
        if(x==0){
	      	document.getElementById(div).innerHTML = '';
	      	x = 2;
		}
		else{
			setTimeout("klokje()", 500);
		}
	}
	/* END: handige shizzle */
	
	/* BEGIN: this function is a variable function that lets you delete several things */
	function deleteItem (type,id,familyID,redirectFunction) {
		var answer = confirm('Weet je zeker dat je dit item wilt verwijderen?');
		
		if(answer) {
			var page = javascriptBase + 'functions_deleteItem';
			var params = 'type=' +type +'&itemID=' +id;
			
			new Ajax.Request
			(
				page,
				{
				  method: 'get',
				  parameters: params,
				  //onSuccess: function(t){alert(t.responseText);},
				  //onFailure: function(t){alert(t.responseText);},
				  onComplete: completeFunction
				}
			);
			
			function completeFunction(request) {
				if (type == 'event') {
					displayAgenda(familyID);
				}
				else if (type == 'blogpost') {
					if(redirectFunction) {
						if(redirectFunction == 'ledenpaginas_profieloverzicht') {
							document.location= javascriptBase +'ledenpaginas_profieloverzicht';
						}
						
					}
					else {
						displayBlog(familyID);
					}
				}
			}
		}
	}
/* END: this function is a variable function that lets you delete several things */

function checkUserInput(sInput,sElementID)
{
	var userInput = document.getElementById(sElementID).value;
	if(userInput == sInput)
	{
		document.getElementById(sElementID).value = '';
	}
}

function showDiv(id){
	ID = document.getElementById(id);
    ID.className = "familiepaginaHeader";
}

function hideDiv(id){
	ID = document.getElementById(id);
    ID.className = "familiepaginaHeaderHidden";
}

function activateTabAndSubMenu(id,submenuItem) {
	/* First we set the different parent div-ID's there are for all the tabs */
	var numberOfTabs = document.getElementById('numberOfTabs').innerHTML;
		numberOfTabs = parseFloat(numberOfTabs);
	var menuObject = new Array();
		
	for (k=0; k<numberOfTabs; k++) {
		var positionInArray = k+1;
		menuObject[k] = document.getElementById('hiddenTab' +positionInArray).innerHTML;
	}
	
	/* We check all of these parent divs to see which one is the active one, and change itself, its children and the submenu to inactive */
	/* Note: this -should- make the function makeInactive(id) depricated */
	
	for (var i=0; i<menuObject.length; i++) {

		var item = menuObject[i];

		if(document.getElementById(item).className == 'activeTabContainer') {

			/* Now that we've found the active tab we set the parent to inactive */
			var currentClassName = document.getElementById(item).className;
			var newClassName = currentClassName.replace("active", "inactive");
			document.getElementById(item).className = newClassName;
			
			/* While we're at it, we might as well inactivate the submenu */
			document.getElementById(item +'SubMenu').style.marginLeft = '-4000px';
			
			/* After that the children go next: we set the ID's of the child-divs so we can loop through them */
			var menuObject2 = new Array();
			menuObject2[0] = item+'1';
			menuObject2[1] = item+'2';
			menuObject2[2] = item+'3';
			menuObject2[3] = item+'4';
			
			/* And we set the children to inactive */
			for (var y=0; y<menuObject2.length; y++) {
				var item2 = menuObject2[y];
				var currentClassName = document.getElementById(item2).className;
				var newClassName = currentClassName.replace("active", "inactive");
				document.getElementById(item2).className = newClassName;
			}
		}
		
		/* Now all we have to do is set the desired parent tab to active */
		document.getElementById(id).className = 'activeTabContainer';
		
		/* And ofcourse the children */
		var menuObject3 = new Array();
		menuObject3[0] = id+'1';
		menuObject3[1] = id+'2';
		menuObject3[2] = id+'3';
		menuObject3[3] = id+'4';
		
		//for each (var item3 in obj3) {
		for (var j=0; j<menuObject3.length; j++) {
			var item3 = menuObject3[j];
			var currentClassName = document.getElementById(item3).className;
			var newClassName = currentClassName.replace("inactive", "active");
			document.getElementById(item3).className = newClassName;
		}
		
		/* And active the requested menu */
		if (item == id) {
			document.getElementById(id +'SubMenu').style.marginLeft = '0';
			
			/* Now we highlight the appropriate submenu item */
			var numberOfSubmenuItems = document.getElementById('numberOfSubmenuItemsFor' +id).innerHTML;
			numberOfSubmenuItems = parseFloat(numberOfSubmenuItems);

			if(numberOfSubmenuItems >= 1)
			{
				for(j=1; j<=numberOfSubmenuItems; j++)
				{
					var submenuItemName = document.getElementById(id +'SubmenuItem' +j).innerHTML;

					if(submenuItemName == submenuItem)
					{
						document.getElementById(submenuItemName).style.textDecoration = 'none';
						document.getElementById(submenuItemName).style.fontWeight = 'bold';
					}

					else if(submenuItemName == submenuItem && submenuItem == 'photoManage')
					{
						document.getElementById(submenuItemName).style.textDecoration = 'none';
						document.getElementById(submenuItemName).style.fontWeight = 'bold';
					}
					
					else if(submenuItemName == submenuItem && submenuItem == 'photoAdd')
					{
						document.getElementById(submenuItemName).style.textDecoration = 'none';
						document.getElementById(submenuItemName).style.fontWeight = 'bold';
					}
					else {
						document.getElementById(submenuItemName).style.textDecoration = 'none';
						document.getElementById(submenuItemName).style.fontWeight = '300';
					}
				}
			}

			/* And we're done! */
		}
	}
}


function checkpage()
{
	if(parent.document.getElementById('currentPage'))
	{
		var currentPage = parent.document.getElementById('currentPage').innerHTML;
	}
	return currentPage;
}

/* BEGIN: ajax to load pages dynamically (removed 'rewriteForm' from the loadpage variables) */
function loadPage(newUrl) {
	var url = newUrl;
	var params = '';
	var myAjax = new Ajax.Updater('dynamicContent',url,{method: 'get', parameters: params, onComplete: completeFunction});
		 
		function completeFunction() {
			
			sifrConfig();
			
			var currentPage = checkpage();
			if(currentPage == 'login')
			{
				manipulateFormAction(); // dit bewerkt het loginformulier zodat je goed geredirect wordt
			}
			
			if(newUrl == 'wizard_wizard')
			{
				displayWizardStep(1);
			}
			
			if(currentPage == 'berichtwizard')
			{
				tinyMCE.init({
					mode : "textareas",
					theme : "advanced",
					plugins : "safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",
					theme_advanced_buttons1 : "bold,italic,underline,|,justifyleft,justifycenter,justifyright,justifyfull",
					theme_advanced_buttons2 : "fontselect,fontsizeselect,|,forecolor,backcolor,cite,del,ins,visualchars,nonbreaking",
					theme_advanced_buttons3 : "cut,copy,paste,pastetext,pasteword,|,bullist,numlist,|,undo,redo,|,image",
					theme_advanced_buttons4 : "tablecontrols,|,sub,sup,|,charmap,emotions,fullscreen,preview",
					theme_advanced_toolbar_location : "top",
					theme_advanced_toolbar_align : "left",
					theme_advanced_statusbar_location : "bottom",
					theme_advanced_resizing : true,
					extended_valid_elements : "img[class|src|border=0|alt|title|hspace|vspace|width|height|align|name],font[face|size|color|style],span[class|align|style]",
					theme_advanced_buttons3_add : "preview",
					plugin_preview_width : "500",
					force_br_newlines : true,
					theme_advanced_resize_horizontal : false,
					plugin_preview_height : "600",
					handle_event_callback : "handleTextEntry"
				});
			}
			
			if(currentPage == 'familypages_photoOverview') {
				
				var albumID1 = document.getElementById('albumID1').innerHTML;
	    		var so1 = new SWFObject("http://www.familyboard.nl/flash/imageScroller/imageScroller.swf?albumID=" +albumID1, "image scroller xml1", "720", "180", "8", "#FFFFFF");
	    		so1.addParam("wmode", "transparent");
				so1.write("flashcontent1");
				
				
				var albumID2 = document.getElementById('albumID2').innerHTML;
				var so2 = new SWFObject("http://www.familyboard.nl/flash/imageScroller/imageScroller.swf?albumID=" +albumID2, "image scroller xml2", "720", "180", "8", "#FFFFFF");
				so2.addParam("wmode", "transparent");
				so2.write("flashcontent2");
			}
			
			if(currentPage == 'familypages_videoOverview' || currentPage == 'familypages_videoManage' || currentPage == 'profile_videoOverview')
			{
				initVideoFlashActivation();
			}
			
			if(currentPage == 'familypages_home') {
				var albumID = document.getElementById('albumID').innerHTML;
	    		var so = new SWFObject("http://www.familyboard.nl/flash/imageScroller/imageScrollerSmall.swf?albumID=" +albumID, "image scroller xml", "340", "180", "8", "#FFFFFF");
	    		so.addParam("wmode", "transparent");
				so.write("flashcontent");
			}

		}
}
/* END: ajax to load pages dynamically */


/* BEGIN: these functions handle the real changing of the tabs */

function displayFamilypagesHome(familyID) {
	var section = 'overzicht';
	var submenuItem = '';
	activateTabAndSubMenu(section,submenuItem);
	loadPage('familypages_home/familyID=' +familyID);
}

/* Family photo functions */
	function displayPhotoOverview(familyID) {
		var section = 'fotos';
		var submenuItem = 'photoOverview';
		activateTabAndSubMenu(section,submenuItem);
		loadPage('familypages_photoOverview/familyID=' +familyID);
	}
	
	function displayPhotoAlbums(familyID) {
		var section = 'fotos';
		var submenuItem = 'photoAlbums';
		activateTabAndSubMenu(section,submenuItem);
		loadPage('familypages_photoAlbums/familyID=' +familyID);
	}
	
	function displayPhotoAlbum(familyID,albumID) {
		var section = 'fotos';
		var submenuItem = '';
		activateTabAndSubMenu(section,submenuItem);
		loadPage('familypages_photoAlbum/familyID=' +familyID +'/albumID=' +albumID);
	}
/* End */


/* Family video functions */

	function displayVideoOverview(familyID) {
		var section = 'videos';
		var submenuItem = 'videoOverview';
		activateTabAndSubMenu(section,submenuItem);
		loadPage('familypages_videoOverview/familyID=' +familyID);
	}
	
	function displayVideoAdd(familyID) {
		var section = 'videos';
		var submenuItem = 'videoAdd';
		activateTabAndSubMenu(section,submenuItem);
		loadPage('familypages_videoAdd/familyID=' +familyID);
	}
	
	function displayVideoManage(familyID) {
		var section = 'videos';
		var submenuItem = 'videoManage';
		activateTabAndSubMenu(section,submenuItem);
		loadPage('familypages_videoManage/familyID=' +familyID);
	}
/* End */


/* Family calendar functions
	@@calendar
*/
	function displayCalendarOverview(familyID) {
		var section = 'agenda';
		var submenuItem = 'calendarOverview';
		activateTabAndSubMenu(section,submenuItem);
		loadPage('familypages_calendarOverview/familyID=' +familyID);
	}
	
	function displayCalendarAdd(familyID) {
		var section = 'agenda';
		var submenuItem = 'calendarAdd';
		activateTabAndSubMenu(section,submenuItem);
		loadPage('familypages_calendarAdd/familyID=' +familyID);
	}
	
	function displayCalendarManage(familyID) {
		var section = 'agenda';
		var submenuItem = 'calendarManage';
		activateTabAndSubMenu(section,submenuItem);
		loadPage('familypages_calendarManage/familyID=' +familyID);
	}
	
	function displayCalendarEdit(familyID,eventID) {
		var section = 'agenda';
		var submenuItem = 'calendarEdit';
		activateTabAndSubMenu(section,submenuItem);
		loadPage('familypages_calendarEdit/familyID=' +familyID +'/eventID=' +eventID);
	}
	
	function displayCalendarView(familyID,eventID) {
		var section = 'agenda';
		var submenuItem = 'calendarView';
		activateTabAndSubMenu(section,submenuItem);
		loadPage('familypages_calendarView/familyID=' +familyID +'/eventID=' +eventID);
	}
/* End */


/* Family blog functions
	@@blog
*/

	function displayBlogOverview(familyID) {
		var section = 'blog';
		var submenuItem = 'blogOverview';
		activateTabAndSubMenu(section,submenuItem);
		loadPage('familypages_blogOverview/familyID=' +familyID);
	}
	
	function displayBlogAdd(familyID) {
		var section = 'blog';
		var submenuItem = 'blogAdd';
		activateTabAndSubMenu(section,submenuItem);
		loadPage('familypages_blogAdd/familyID=' +familyID);
	}
	
	function displayBlogManage(familyID) {
		var section = 'blog';
		var submenuItem = 'blogManage';
		activateTabAndSubMenu(section,submenuItem);
		loadPage('familypages_blogManage/familyID=' +familyID);
	}
	
	function displayBlogEdit(familyID,blogpostID) {
		var section = 'blog';
		var submenuItem = 'blogEdit';
		activateTabAndSubMenu(section,submenuItem);
		loadPage('familypages_blogEdit/familyID=' +familyID +'/blogpostID=' +blogpostID);
	}

/* End */

/* Family member functions
	@@members
*/
	function displayFamilyMembers(familyID) {
		var section = 'familieleden';
		var submenuItem = '';
		activateTabAndSubMenu(section,submenuItem);
		loadPage('familypages_membersOverview/familyID=' +familyID);
	}
/* End */


/* Message functions
	@@messages
*/
	function validateStep(nextStepNumber,lastViewedStep)
	{
		var nextStepNumber = nextStepNumber;
		var lastViewedStep = lastViewedStep;
		
		if(nextStepNumber == 1)
		{
			if(lastViewedStep >= nextStepNumber)
			{
				return nextStepNumber;
			}
		}
		
		if(nextStepNumber == 2)
		{
			var field1_3 = document.getElementById('selectedLayout').value;
			var field2_3 = document.getElementById('selectedFormat').value;
			var field3_3 = document.getElementById('selectedMessageType').value;
			ignoreErrors = 0;
			//if all the fields have been filled we can redirect the user to the next step
			if((field1_3 != '' && field2_3 != '' && field3_3 != '') && (lastViewedStep <= nextStepNumber)) 
			{
				document.getElementById('lastViewedStep').value = 2;
				return 2;
			}
			if(lastViewedStep >= nextStepNumber) 
			{
				return nextStepNumber;
			}
			else
			{
				return lastViewedStep;
			}
		}
		
		if(nextStepNumber == 3)
		{
			var field1_2 = document.getElementById('messageTitle').value;
			var field2_2 = document.getElementById('pureMessageText').innerHTML;
			
			if((field2_2 != '') && (lastViewedStep <= nextStepNumber))
			{
				document.getElementById('lastViewedStep').value = 3;
				return 3;
			}
			if(lastViewedStep >= nextStepNumber) 
			{
				return nextStepNumber;
			}
			else
			{
				return lastViewedStep;
			}
		}
		
		if(nextStepNumber == 4)
		{
			var field1_6 = document.getElementById('charityRadioButton1').checked;
			var field2_6 = document.getElementById('charityRadioButton2').checked;
			var field3_6 = document.getElementById('charityRadioButton3').checked;
			var field4_6 = document.getElementById('charityRadioButton4').checked;
			var field5_6 = document.getElementById('charityRadioButton5').checked;
			var field6_6 = document.getElementById('charityRadioButton6').checked;
			
			/*if((field1_6 == true || field2_6 == true || field3_6 == true || field4_6 == true || field4_6 == true || field5_6 == true || field6_6 == true) && (lastViewedStep <= nextStepNumber))*/
			if(lastViewedStep <= nextStepNumber)
			{
				document.getElementById('lastViewedStep').value = 4;
				return 4;
			}
			else
			{
				return lastViewedStep;
			}
		}
		
	}

	function displayMessageWizard()
	{
		var section = 'plaatsen';
		var submenuItem = '';
		activateTabAndSubMenu(section,submenuItem);
		loadPage('wizard_wizard');
	}
	
	function displayReadMessages()
	{
		var section = 'lezen';
		var submenuItem = 'geboorte';
		activateTabAndSubMenu(section,submenuItem);
		loadPage('berichten_all');
	}
	
	function displayMessagesCategory(categoryName)
	{
		var section = 'lezen';
		var submenuItem = categoryName;
		activateTabAndSubMenu(section,submenuItem);
		loadPage('berichten_' +categoryName);
	}
	
	function displaySearchMessages(searchTerm)
	{
		var section = 'zoeken';
		var submenuItem = '';
		activateTabAndSubMenu(section,submenuItem);
		loadPage('berichten_zoeken/messageSearchText=' +searchTerm);
	}
	
	function displayBerichtenZoeken(messageSearchText,messageRegion,messageType)
	{
		var section = 'zoeken';
		var submenuItem = '';
		activateTabAndSubMenu(section,submenuItem);
		loadPage('berichten_zoeken/messageSearchText=' +messageSearchText +'/messageRegion=' +messageRegion +'/messageType=' +messageType);
	}

/* End */


/*
	Profile functions
	@@profile
*/

	function displayPersonalData(memberID)
	{
		var section = 'persoonsgegevens';
		var submenuItem = 'personalData';
		activateTabAndSubMenu(section,submenuItem);
		loadPage('profile_personalData/memberID=' +memberID);
	}
	
	/* Profile photo functions */
		function displayProfilePhotoOverview(memberID) {
			var section = 'fotos';
			var submenuItem = 'photoOverview';
			activateTabAndSubMenu(section,submenuItem);
			loadPage('profile_photoOverview/memberID=' +memberID);
		}
		
		function displayProfilePhotoAlbums(memberID) {
			var section = 'fotos';
			var submenuItem = 'photoAlbums';
			activateTabAndSubMenu(section,submenuItem);
			loadPage('profile_photoAlbums/memberID=' +memberID);
		}
		
		function displayProfilePhotoAlbum(memberID,albumID) {
			var section = 'fotos';
			var submenuItem = '';
			activateTabAndSubMenu(section,submenuItem);
			loadPage('profile_photoAlbum/memberID=' +memberID +'/albumID=' +albumID);
		}
	/* End */
	
	
	/* Profile video functions */
	
		function displayProfileVideoOverview(memberID) {
			var section = 'videos';
			var submenuItem = 'videoOverview';
			activateTabAndSubMenu(section,submenuItem);
			loadPage('profile_videoOverview/memberID=' +memberID);
		}
		
		function displayProfileVideoAdd(memberID) {
			var section = 'videos';
			var submenuItem = 'videoAdd';
			activateTabAndSubMenu(section,submenuItem);
			loadPage('profile_videoAdd/memberID=' +memberID);
		}
		
		function displayProfileVideoManage(memberID) {
			var section = 'videos';
			var submenuItem = 'videoManage';
			activateTabAndSubMenu(section,submenuItem);
			loadPage('profile_videoManage/memberID=' +memberID);
		}
	/* End */
	
	
	/* Profile calendar functions
		@@calendar
	*/
		function displayProfileCalendarOverview(memberID) {
			var section = 'agenda';
			var submenuItem = 'calendarOverview';
			activateTabAndSubMenu(section,submenuItem);
			loadPage('profile_calendarOverview/memberID=' +memberID);
		}
		
		function displayProfileCalendarAdd(memberID) {
			var section = 'agenda';
			var submenuItem = 'calendarAdd';
			activateTabAndSubMenu(section,submenuItem);
			loadPage('profile_calendarAdd/memberID=' +memberID);
		}
		
		function displayProfileCalendarManage(memberID) {
			var section = 'agenda';
			var submenuItem = 'calendarManage';
			activateTabAndSubMenu(section,submenuItem);
			loadPage('profile_calendarManage/memberID=' +memberID);
		}
		
		function displayProfileCalendarEdit(memberID,eventID) {
			var section = 'agenda';
			var submenuItem = 'calendarEdit';
			activateTabAndSubMenu(section,submenuItem);
			loadPage('profile_calendarEdit/memberID=' +memberID +'/eventID=' +eventID);
		}
		
		function displayProfileCalendarView(memberID,eventID) {
			var section = 'agenda';
			var submenuItem = 'calendarView';
			activateTabAndSubMenu(section,submenuItem);
			loadPage('profile_calendarView/memberID=' +memberID +'/eventID=' +eventID);
		}
	/* End */
	
	
	/* Profile blog functions
		@@blog
	*/
	
		function displayProfileBlogOverview(memberID) {
			var section = 'blog';
			var submenuItem = 'blogOverview';
			activateTabAndSubMenu(section,submenuItem);
			loadPage('profile_blogOverview/memberID=' +memberID);
		}
		
		function displayProfileBlogAdd(memberID) {
			var section = 'blog';
			var submenuItem = 'blogAdd';
			activateTabAndSubMenu(section,submenuItem);
			loadPage('profile_blogAdd/memberID=' +memberID);
		}
		
		function displayProfileBlogManage(memberID) {
			var section = 'blog';
			var submenuItem = 'blogManage';
			activateTabAndSubMenu(section,submenuItem);
			loadPage('profile_blogManage/memberID=' +memberID);
		}
		
		function displayProfileBlogEdit(memberID,blogpostID) {
			var section = 'blog';
			var submenuItem = 'blogEdit';
			activateTabAndSubMenu(section,submenuItem);
			loadPage('profile_blogEdit/memberID=' +memberID +'/blogpostID=' +blogpostID);
		}
	
	/* End */

/* End */















































































function displayBecomeFamilyMember(familyID,sent)
{
	var familyID = familyID;
	var sent;
	
	if(sent == 'true')
	{
		loadPage('becomeFamilyMember/' +familyID +'/sent=1');
	}
	else
	{
		loadPage('becomeFamilyMember/' +familyID);
	}
}

function displayAccepteerFamilielid(familyID,hashcode)
{
	var familyID = familyID;
	var hashcode = hashcode;

	loadPage('accepteerFamilielid/' +familyID +'/hashcode=' +hashcode);
}

function displayOverzicht(familyID)
{
	var section = 'overzicht';
	activateTabAndSubMenu(section);
	loadPage('ledenpaginas_familiepaginaOverzicht/' +familyID);
}

function displayAgendaBewerken_1(familyID,eventID)
{
	var familyID = familyID;
	var eventID = eventID;

	hideAllDivs();
	makeAllTabsInactive();

	showDiv('familieAgenda');
	makeActive('familieagendaTab');
	
	if(eventID) {
		loadPage('ledenpaginas_agendaBewerken/' +familyID +'/activeSubtab=1/eventID=' +eventID);
	}
	else {
		loadPage('ledenpaginas_agendaBewerken/' +familyID +'/activeSubtab=1');
	}
}

function displayAgendaBewerken_2(familyID)
{
	var familyID = familyID;

	hideAllDivs();
	makeAllTabsInactive();

	showDiv('familieAgenda');
	makeActive('familieagendaTab');
	loadPage('ledenpaginas_agendaBewerken/' +familyID +'/activeSubtab=2');
}

function displayBlog(familyID)
{
	var section = 'blog';
	activateTabAndSubMenu(section);
	loadPage('ledenpaginas_familieBlog/' +familyID);
}

function displayBlogBewerken_1(familyID,blogpostID)
{
	var familyID = familyID;
	var blogpostID = blogpostID;

	hideAllDivs();
	makeAllTabsInactive();

	showDiv('familieBlog');
	makeActive('familieblogTab');
	
	if (blogpostID)
	{
		loadPage('ledenpaginas_blogpostSchrijven/' +familyID +'/activeSubtab=1/blogpostID=' +blogpostID);
	}
	else
	{
		loadPage('ledenpaginas_blogpostSchrijven/' +familyID +'/activeSubtab=1');
	}
}

function displayBlogBewerken_2(familyID)
{
	var familyID = familyID;

	hideAllDivs();
	makeAllTabsInactive();

	showDiv('familieBlog');
	makeActive('familieblogTab');
	loadPage('ledenpaginas_blogpostSchrijven/' +familyID +'/activeSubtab=2');
}

function displayBlogBewerkenAdded_1(familyID)
{
	var familyID = familyID;

	hideAllDivs();
	makeAllTabsInactive();

	showDiv('familieBlog');
	makeActive('familieblogTab');
	loadPage('ledenpaginas_blogpostSchrijven/' +familyID +'/activeSubtab=1/added=true');
}

function displayBlogPost(familyID,blogpostID)
{
	var familyID = familyID;
	var blogpostID = blogpostID;

	hideAllDivs();
	makeAllTabsInactive();

	showDiv('familieBlog');
	makeActive('familieblogTab');
	loadPage('ledenpaginas_blogpostLezen/' +familyID +'/' +blogpostID);
}
/* END: these functions handle the real changing of the tabs */


function checkForSubTabs()
{
	if(parent.document.getElementById('pageHasSubtabs'))
	{
		var pageHasSubtabs = parent.document.getElementById('pageHasSubtabs').innerHTML;
	}
	return pageHasSubtabs;
}

function displayWizardStep(nextStepNumber)
{
	var nextStepNumber;
	setContentInactive();
	
	var lastViewedStep = document.getElementById('lastViewedStep').value;
	var stepToDisplay = validateStep(nextStepNumber,lastViewedStep);
	
	if(stepToDisplay == nextStepNumber)
	{
		setContentActive(stepToDisplay);
		var section = 'plaatsen';
		var submenuItem = 'stap' +stepToDisplay;
		activateTabAndSubMenu(section,submenuItem);
		
		/* //!rfc! 
		if(nextStepNumber == 4)
		{
			calculateTotalCosts();
		}
		*/
		scroll(0,0);
	}
	else
	{
		alert('Voor je verder kunt moet je eerst de velden invullen.');
		setContentActive(stepToDisplay);
	}
	
	return false;
}

function setContentInactive()
{
	document.getElementById('content_1').style.position = 'absolute';
	document.getElementById('content_1').style.marginLeft = '-4000px';

	document.getElementById('content_2').style.position = 'absolute';
	document.getElementById('content_2').style.marginLeft = '-4000px';
	
	document.getElementById('content_3').style.position = 'absolute';
	document.getElementById('content_3').style.marginLeft = '-4000px';

	document.getElementById('content_4').style.position = 'absolute';
	document.getElementById('content_4').style.marginLeft = '-4000px';
}

/* Deprecated due to new design, use setContentInactive instead. */
function setSubtabsInactive()
{
	alert('function is depricated! please use "setContentInactive" instead.');
	document.getElementById('tab_1').className = 'subtabDisabled';
	document.getElementById('tabText_1').className = 'subtabDisabledText';
	document.getElementById('content_1').style.position = 'absolute';
	document.getElementById('content_1').style.marginLeft = '-4000px';
	
	document.getElementById('tab_2').className = 'subtabDisabled';
	document.getElementById('tabText_2').className = 'subtabDisabledText';
	document.getElementById('content_2').style.position = 'absolute';
	document.getElementById('content_2').style.marginLeft = '-4000px';
	
	document.getElementById('tab_3').className = 'subtabDisabled';
	document.getElementById('tabText_3').className = 'subtabDisabledText';
	document.getElementById('content_3').style.position = 'absolute';
	document.getElementById('content_3').style.marginLeft = '-4000px';
	
	document.getElementById('tab_4').className = 'subtabDisabled';
	document.getElementById('tabText_4').className = 'subtabDisabledText';
	document.getElementById('content_4').style.position = 'absolute';
	document.getElementById('content_4').style.marginLeft = '-4000px';
}

function setContentActive(tabNumber)
{
	var tabNumber;
	if(!tabNumber)
	{
		tabNumber = document.getElementById('activeSubtab').innerHTML;
	}

	contentID = 'content_' +tabNumber;
	
	document.getElementById(contentID).style.position = '';
	document.getElementById(contentID).style.margin = '';
}


/* Deprecated due to new design, use setContentActive instead. */
function setSubtabActive(tabNumber)
{
	alert('function is depricated! please use "setContentActive" instead.');
	var tabNumber;
	if(!tabNumber)
	{
		tabNumber = document.getElementById('activeSubtab').innerHTML;
	}
	
	tabID = 'tab_' +tabNumber;
	tabTextID = 'tabText_' +tabNumber;
	contentID = 'content_' +tabNumber;
	
	document.getElementById(tabID).className = 'subtabEnabled';
	document.getElementById(tabTextID).className = 'subtabEnabledText';
	document.getElementById(contentID).style.position = '';
	document.getElementById(contentID).style.margin = '';
}

//!rfc! => changes made after the client requested to completely remove the payment features. this has also been used in handleSubTabs.js!

function handleTextEntry()
{
	var error;
	var iLength ;
	var previewDivID = 'voorbeeldweergave';
	var previewDivID2 = 'voorbeeldweergave2';
	var selectedFormat = parent.document.getElementById('selectedFormat').value;
	var messageContent = tinyMCE.getInstanceById('ses_messageText').getDoc().body.innerHTML;
	
	parent.document.getElementById('pureMessageText').innerHTML = messageContent;
	
	//BEGIN: set the template price
		var iTemplatePrice = 0.00;
		parent.document.getElementById('templatePrice').value = iTemplatePrice;
	//END: set the template price
	
	//BEGIN: calculate the price of the message based on the number of entered characters and return the values
		//var original = iLength*0.10;
		//var result = Math.round(original*100)/100;
		//iCharactersTotalPrice = result;
	
		//parent.document.getElementById('countInput').value = iLength;
		//parent.document.getElementById('countCharactersTotalInput').value = iCharactersTotalPrice;
	//END: calculate the price of the message based on the number of entered characters and return the values
	
	//BEGIN: copy the text in the editor to the measurement div and calculate its height
		var messageTitle = parent.document.getElementById('messageTitle').value;
		var messageContent = '<h2 align="center">' +messageTitle +'</h2>' +messageContent;
		parent.document.getElementById('measurementDiv').innerHTML = messageContent;
		
		divHeight = 0 + parent.document.getElementById('measurementDiv').clientHeight;
		divWidth = 0 + parent.document.getElementById('measurementDiv').clientWidth;
		
		if (divHeight >= 0 && divHeight < 126)
		{
			divRows = 1;
		}
		else if (divHeight > 125 && divHeight < 260)
		{
			divRows = 2;
			if (selectedFormat == 'format1' || selectedFormat == 'format2')
			{
				error = 'maxHeight';
			}
		}
		else
		{
			divRows = 2;
			error = 'maxHeight';
		}
		
		//divRowsPrice = 20;	
		//var original2 = divRows*20;
		//var result2 = Math.round(original2*100)/100;
		//divRowsPrice = result2;
	
		//parent.document.getElementById('rowsInput').value = divRows;
		//parent.document.getElementById('rowsTotalInput').value = divRowsPrice;
	//END: copy the text in the editor to the measurement div and calculate its height
	
	//BEGIN: retrieve the ID of the preview div. because it has a variable ID we let the code figure out which one to pick and then let if till the div with the messagetext
		parent.document.getElementById(previewDivID).innerHTML = messageContent;
		parent.document.getElementById(previewDivID2).innerHTML = messageContent;
	//END: retrieve the ID of the preview div. because it has a variable ID we let the code figure out which one to pick and then let if till the div with the messagetext
	
	calculateTotalPrice(iTemplatePrice);
	checkForErrors(error,selectedFormat);
}

function checkForErrors(error,selectedFormat)
{
	//BEGIN: return errors (if there where any) and reset them
		if (error == 'maxHeight' && ignoreErrors != 1)
		{
			if (selectedFormat == 'format1' || selectedFormat == 'format2')
			{
				/* BEGIN: FIXME: this could cause some nasty problems, but i cant get it to work atm.. it should pick up the javascriptBase var from the body.xsl but for some weird reason it wont */
				var javascriptBase2 = 'http://www.familyboard.nl/';
				//var javascriptBase2 = 'http://webdev4.campai.nl/familyboard/';
				/* END: FIXME: this could cause some nasty problems, but i cant get it to work atm.. it should pick up the javascriptBase var from the body.xsl but for some weird reason it wont */
	
				errorMessage = 'De door jou ingevoerde tekst is te groot voor het formaat dat je geselecteerd hebt.\nWe stellen daarom voor dat je verder gaat met een groter formaat.\n\nWil je verder met dit nieuwe, grotere formaat?';
				var answer = confirm(errorMessage);
				if(answer)
				{
					var type = parent.document.getElementById('selectedMessageType').value;
					var format = 'format3';
					var layout = parent.document.getElementById('selectedLayout').value;
					var backgroundImage = "url('" +javascriptBase2 +"img/berichtwizard/backgrounds/" +layout +format +".gif')";
					var newClassName = format +' ' +type +'Border';
					
					//parent.document.getElementById('selectFormat').selectedIndex = 3;
					parent.document.getElementById('selectedFormat').value = format;
					parent.document.getElementById('voorbeeldweergave').className = newClassName;
					parent.document.getElementById('voorbeeldweergave2').className = newClassName;
					parent.document.getElementById('voorbeeldweergave').style.background = backgroundImage;
					parent.document.getElementById('voorbeeldweergave2').style.background = backgroundImage;
					
					ignoreErrors = 1;
					error = '';
				}
				else
				{
					ignoreErrors = 1;
					error = '';
				}
			}
			else if (selectedFormat == 'format3')
			{
				/* BEGIN: FIXME: this could cause some nasty problems, but i cant get it to work atm.. it should pick up the javascriptBase var from the body.xsl but for some weird reason it wont */
				var javascriptBase2 = 'http://www.familyboard.nl/';
				//var javascriptBase2 = 'http://webdev4.campai.nl/familyboard/';
				/* END: FIXME: this could cause some nasty problems, but i cant get it to work atm.. it should pick up the javascriptBase var from the body.xsl but for some weird reason it wont */
	
				errorMessage = 'De door jou ingevoerde tekst is te groot voor het formaat dat je geselecteerd hebt.\nWe stellen daarom voor dat je verder gaat met een groter formaat.\n\nWil je verder met dit nieuwe, grotere formaat?';
				var answer = confirm(errorMessage);
				if(answer)
				{
					var type = parent.document.getElementById('selectedMessageType').value;
					var format = 'format4';
					var layout = parent.document.getElementById('selectedLayout').value;
					var backgroundImage = "url('" +javascriptBase2 +"img/berichtwizard/backgrounds/" +layout +format +".gif')";
					var newClassName = format +' ' +type +'Border';
					
					//parent.document.getElementById('selectFormat').selectedIndex = 3;
					parent.document.getElementById('selectedFormat').value = format;
					parent.document.getElementById('voorbeeldweergave').className = newClassName;
					parent.document.getElementById('voorbeeldweergave2').className = newClassName;
					parent.document.getElementById('voorbeeldweergave').style.background = backgroundImage;
					parent.document.getElementById('voorbeeldweergave2').style.background = backgroundImage;

					error = '';
				}
				else
				{
					ignoreErrors = 1;
					error = '';
				}
			}
			else if (selectedFormat == 'format4')
			{	
				ignoreErrors = 1;
				error = '';
				errorMessage = 'De door jou ingevoerde tekst is te groot voor het formaat dat je geselecteerd hebt.\nOmdat je al gekozen hebt voor het grootst mogelijke formaat raden we je aan de tekst aan te passen.';
				alert(errorMessage);
			}
		}
		else
		{
			parent.document.getElementById('sizeErrors').style.display = 'none';
		}
	//END: return errors (if there where any) and reset them
}

function calculateTotalPrice(iTemplatePrice)
{
	//BEGIN: calculate the total price of the message
		var iTotalPrice = iTemplatePrice;
		parent.document.getElementById('totalPrice').value = iTotalPrice;
		//!rfc! parent.document.getElementById('messageCosts').value = iTotalPrice;
	//END: calculate the total price of the message
}

function showhideFormats(id){
	if (document.getElementById){
		var obj = document.getElementById(id);
		if (obj.style.display == "none"){
			obj.style.display = "";
		} else {
			obj.style.display = "none";
		}
	}

	var obj0 = document.getElementById('format0');
	var obj1 = document.getElementById('format1');
	var obj2 = document.getElementById('format2');
	var obj3 = document.getElementById('format3');
	var obj4 = document.getElementById('format4');
	
	if (id != 'format0') {
		obj0.style.display = "none";
	}
	
	if (id != 'format1') {
		obj1.style.display = "none";
	}
	
	if (id != 'format2') {
		obj2.style.display = "none";
	}
	
	if (id != 'format3') {
		obj3.style.display = "none";
	}
	
	if (id != 'format4') {
		obj4.style.display = "none";
	}
	
	document.getElementById('measurementDiv').style.position = 'absolute';
	document.getElementById('measurementDiv').style.padding = '10px';
	document.getElementById('measurementDiv').style.marginLeft = '-4000px';
	document.getElementById('measurementDiv').style.wordWrap = 'break-word';
	
	if(id == 'format1')
	{
		document.getElementById('measurementDiv').style.width = '143px';
	} 
	if(id == 'format2')
	{
		document.getElementById('measurementDiv').style.width = '322px';
	}
	if(id == 'format3')
	{
		document.getElementById('measurementDiv').style.width = '322px';
	}
	if(id == 'format4')
	{
		document.getElementById('measurementDiv').style.width = '680px';
	}
	
	document.getElementById('selectedFormat').value = id;
	changePreviewDiv();
}

function fetchPeopleToNotify()
{
	if(document.getElementById('family1') && document.getElementById('family1').checked == 'true')
	{
		document.getElementById('displayFamily1').value = document.getElementById('familyName1').value;
		document.getElementById('divDisplayFamily1').style.display = "";
	}
	
	if(document.getElementById('family2') && document.getElementById('family2').checked == 'true')
	{
		document.getElementById('displayFamily2').value = document.getElementById('familyName2').value;
		document.getElementById('divDisplayFamily2').style.display = "";
	}
	
	if(document.getElementById('family3') && document.getElementById('family3').checked == 'true')
	{
		document.getElementById('displayFamily3').value = document.getElementById('familyName3').value;
		document.getElementById('divDisplayFamily3').style.display = "";
	}
	
	if(document.getElementById('family4') && document.getElementById('family4').checked == 'true')
	{
		document.getElementById('displayFamily4').value = document.getElementById('familyName4').value;
		document.getElementById('divDisplayFamily4').style.display = "";
	}
	
	if(document.getElementById('family5') && document.getElementById('family5').checked == 'true')
	{
		document.getElementById('displayFamily5').value = document.getElementById('familyName5').value;
		document.getElementById('divDisplayFamily5').style.display = "";
	}
	
	if(document.getElementById('family6') && document.getElementById('family6').checked == 'true')
	{
		document.getElementById('displayFamily6').value = document.getElementById('familyName6').value;
		document.getElementById('divDisplayFamily6').style.display = "";
	}
	
	if(document.getElementById('family7') && document.getElementById('family7').checked == 'true')
	{
		document.getElementById('displayFamily7').value = document.getElementById('familyName7').value;
		document.getElementById('divDisplayFamily7').style.display = "";
	}
	
	if(document.getElementById('family8') && document.getElementById('family8').checked == 'true')
	{
		document.getElementById('displayFamily8').value = document.getElementById('familyName8').value;
		document.getElementById('divDisplayFamily8').style.display = "";
	}
	
	if(document.getElementById('family9') && document.getElementById('family9').checked == 'true')
	{
		document.getElementById('displayFamily9').value = document.getElementById('familyName9').value;
		document.getElementById('divDisplayFamily9').style.display = "";
	}
	
	if(document.getElementById('family10') && document.getElementById('family10').checked == 'true')
	{
		document.getElementById('displayFamily10').value = document.getElementById('familyName10').value;
		document.getElementById('divDisplayFamily10').style.display = "";
	}
}

function setMessageType(type)
{
	var type;
	document.getElementById('selectedMessageType').value = type;
	changePreviewDiv();
}

function showhideLayouts(id)
{
	if (document.getElementById){
		obj = document.getElementById(id);
		if (obj.style.display == "none"){
			obj.style.display = "";
		} else {
			obj.style.display = "none";
		}
	}

	obj0 = document.getElementById('layout0');
	if (id != 'layout0') {
		obj0.style.display = "none";
	}

	obj1 = document.getElementById('layout1');
	if (id != 'layout1') {
		obj1.style.display = "none";
	}

	obj2 = document.getElementById('layout2');
	if (id != 'layout2') {
		obj2.style.display = "none";
	}
	
	obj3 = document.getElementById('layout3');
	if (id != 'layout3') {
		obj3.style.display = "none";
	}
	
	obj4 = document.getElementById('layout4');
	if (id != 'layout4') {
		obj4.style.display = "none";
	}
	
	obj5 = document.getElementById('layout5');
	if (id != 'layout5') {
		obj5.style.display = "none";
	}
	
	obj6 = document.getElementById('layout6');
	if (id != 'layout6') {
		obj6.style.display = "none";
	}
	
	obj7 = document.getElementById('layout7');
	if (id != 'layout7') {
		obj7.style.display = "none";
	}
	
	obj8 = document.getElementById('layout8');
	if (id != 'layout8') {
		obj8.style.display = "none";
	}
	
	obj9 = document.getElementById('layout9');
	if (id != 'layout9') {
		obj9.style.display = "none";
	}
	
	obj10 = document.getElementById('layout10');
	if (id != 'layout10') {
		obj10.style.display = "none";
	}
	
	obj11 = document.getElementById('layout11');
	if (id != 'layout11') {
		obj11.style.display = "none";
	}
	
	obj12 = document.getElementById('layout12');
	if (id != 'layout12') {
		obj12.style.display = "none";
	}
	
	obj13 = document.getElementById('layout13');
	if (id != 'layout13') {
		obj13.style.display = "none";
	}
	
	obj14 = document.getElementById('layout14');
	if (id != 'layout14') {
		obj14.style.display = "none";
	}
	document.getElementById('selectedLayout').value = id;
	changePreviewDiv();
}

function changePreviewDiv()
{
	if(document.getElementById('selectedMessageType'))
	{
		var type = document.getElementById('selectedMessageType').value;
	}
	
	if(document.getElementById('selectedFormat'))
	{
		var format = document.getElementById('selectedFormat').value;
	}
	
	if(document.getElementById('selectedLayout'))
	{
		var layout = document.getElementById('selectedLayout').value;
	}
	var backgroundImage = "url('" +javascriptBase +"img/berichtwizard/backgrounds/" +layout +format +".gif')";
	
	var newClassName = format +' ' +type +'Border';
	
	document.getElementById('voorbeeldweergave').className = newClassName;
	document.getElementById('voorbeeldweergave2').className = newClassName;
	document.getElementById('voorbeeldweergave').style.background = backgroundImage;
	document.getElementById('voorbeeldweergave2').style.background = backgroundImage;
}

function setObligatedCharity(charityName)
{
	document.getElementById('obligatedCharity').value = charityName;
	//document.getElementById('obligatedCharityText').innerHTML= '(waarvan &#128; 2.50 naar ' +charityName +' gaat)';
	document.getElementById('obligatedCharityText').innerHTML= '';
}

function showhidePeopleToNotify(id){
	if (document.getElementById){
		obj = document.getElementById(id);
		if (obj.style.display == "none"){
			obj.style.display = "";
		} else {
			obj.style.display = "none";
		}
	}
}

function showCharity()
{
	var selectedCharity = document.getElementById('charities').options[document.getElementById('charities').selectedIndex].text;
	ID = document.getElementById(selectedCharity);
	ID.style.display = "";
}

function hideCharity(selectedCharity)
{
	ID = document.getElementById(selectedCharity);
	ID.style.display = "none";
}

/* wordt deze nog wel gebruikt? */
function submitMessage(goBack)
{
	var goBack;
	var oEditor = FCKeditorAPI.GetInstance('fckeditor') ;
	var oDOM = oEditor.EditorDocument ;					
	var messageText = oDOM.body.innerHTML;
	
	parent.document.submitForm.ses_messageText.value = messageText;
	parent.document.textVariables.submit();
	
	if(goBack == 'yes')
	{
		parent.document.submitForm.action = javascriptBase +'berichtPlaatsen/stap=1';
		alert(parent.document.submitForm.action);
	}
	parent.document.submitForm.submit();
}

function setMessagePublication(value)
{
	document.getElementById('finalPublicationOptions').value = value;
}

function setMessageReplies()
{
	var currentValue = document.getElementById('finalRepliesAvailable').value;
	if(currentValue == '' || currentValue == 'Nee')
	{
		document.getElementById('finalRepliesAvailable').value = 'Ja';
	}
	else
	{
		document.getElementById('finalRepliesAvailable').value = 'Nee';
	}
}

function setMessageNotifications()
{
	var currentValue = document.getElementById('finalNotifyPeople').value;
	if(currentValue == '' || currentValue == 'Nee')
	{
		document.getElementById('finalNotifyPeople').value = 'Ja';
	}
	else
	{
		document.getElementById('finalNotifyPeople').value = 'Nee';
	}
}

function addPeopleToNotify()
{	
    for (var i=1;i < document.forms['wizard'].elements.length;i++) {
    	if(document.forms["wizard"].elements[i].name == 'meetpunt') {
    		startCountingAt = i+1;
    	}
    }
	
    var numberOfPeopleToNotify = document.getElementById('numberOfPeopleToNotify').value;
	numberOfPeopleToNotify = parseFloat(numberOfPeopleToNotify);	
	
	newNumberOfPeopleToNotify = numberOfPeopleToNotify+1;
	document.getElementById('numberOfPeopleToNotify').value = newNumberOfPeopleToNotify;
	
	var divContent = '';
	var inputHTML = '';
	var numberOfInputfields = newNumberOfPeopleToNotify*2;
	
	aBegin = startCountingAt;
	aEnd = aBegin+numberOfInputfields;
	
	/* because we want to loop through the e-mailaddresses later on we have to get the variables like notifyPersonEmail to start counting from 1 again.
	   Therefore i create a temp integer so we know what number to substract from the variable to get it back to 1
	*/
	var iTemp = aBegin-1;
	
	for (a=aBegin;a<aEnd;)
	{
		var firstLoopDone;
		var numberOfCurrentElement = a;
		var numberOfCurrentElement2 = a+1;
		var valueOfCurrentElement = document.wizard.elements[numberOfCurrentElement].value;
		var valueOfCurrentElement2 = document.wizard.elements[numberOfCurrentElement2].value;
		
		b = a-iTemp;
			
		if(a < aEnd-2)
		{
			inputHTML = inputHTML+'<input type="text" id="notifyPerson' +b +'Name" name="ses_notify' +b +'name" style="width: 160px;" value="' +valueOfCurrentElement +'"/>&#160;<input type="text" name="ses_notify' +b +'emailaddress" id="notifyPerson' +b +'EmailAddress" style="width: 200px;" value="' +valueOfCurrentElement2 +'"/><br/>'
		}
		else
		{
			inputHTML = inputHTML+'<input type="text" name="ses_notify' +b +'name" id="notifyPerson' +b +'Name" style="width: 160px;"/>&#160;<input type="text" name="ses_notify' +b +'emailaddress" id="notifyPerson' +b +'EmailAddress" style="width: 200px;"/><br/>'
		}
		a = a+2;
		iTemp = iTemp+1;
		firstLoopDone = 1;
	}

	divContent = inputHTML;
	document.getElementById('notificationFields').innerHTML = divContent;
}

function calculateTotalCosts()
{
	var charityCosts;
	var messageCosts = parseFloat(document.getElementById('totalPrice').value);

	if(document.getElementById('WWF').style.display != 'none')
	{
		var donationToCharity1 = parseFloat(document.getElementById('charity1').value);
		document.getElementById('charity1Div').style.display = '';
		document.getElementById('charity1Name').value = 'WWF';
		document.getElementById('charity1Name').style.display = '';
		document.getElementById('charity1Donation').value = donationToCharity1;
		document.getElementById('charity1Donation').style.display = '';
	}
	else
	{
		var donationToCharity1 = 0;
	}
	
	if(document.getElementById('KWF').style.display != 'none')
	{
		var donationToCharity2 = parseFloat(document.getElementById('charity2').value);
		document.getElementById('charity2Div').style.display = '';
		document.getElementById('charity2Name').value = 'KWF';
		document.getElementById('charity2Name').style.display = '';
		document.getElementById('charity2Donation').value = donationToCharity2;
		document.getElementById('charity2Donation').style.display = '';
	}
	else
	{
		var donationToCharity2 = 0;
	}
	
	if(document.getElementById('Aids Fonds').style.display != 'none')
	{
		var donationToCharity3 = parseFloat(document.getElementById('charity3').value);
		document.getElementById('charity3Div').style.display = '';
		document.getElementById('charity3Name').value = 'Aids Fonds';
		document.getElementById('charity3Name').style.display = '';
		document.getElementById('charity3Donation').value = donationToCharity3;
		document.getElementById('charity3Donation').style.display = '';
	}
	else
	{
		var donationToCharity3 = 0;
	}
	
	if(document.getElementById('CliniClowns').style.display != 'none')
	{
		var donationToCharity4 = parseFloat(document.getElementById('charity4').value);
		document.getElementById('charity4Div').style.display = '';
		document.getElementById('charity4Name').value = 'CliniClowns';
		document.getElementById('charity4Name').style.display = '';
		document.getElementById('charity4Donation').value = donationToCharity4;
		document.getElementById('charity4Donation').style.display = '';
	}
	else
	{
		var donationToCharity4 = 0;
	}
	
	if(document.getElementById('Hartstichting').style.display != 'none')
	{
		var donationToCharity5 = parseFloat(document.getElementById('charity5').value);
		document.getElementById('charity5Div').style.display = '';
		document.getElementById('charity5Name').value = 'Hartstichting';
		document.getElementById('charity5Name').style.display = '';
		document.getElementById('charity5Donation').value = donationToCharity5;
		document.getElementById('charity5Donation').style.display = '';
	}
	else
	{
		var donationToCharity5 = 0;
	}

	if(document.getElementById('Warchild').style.display != 'none')
	{
		var donationToCharity6 = parseFloat(document.getElementById('charity6').value);
		document.getElementById('charity6Div').style.display = '';
		document.getElementById('charity6Name').value = 'Warchild';
		document.getElementById('charity6Name').style.display = '';
		document.getElementById('charity6Donation').value = donationToCharity6;
		document.getElementById('charity6Donation').style.display = '';
	}
	else
	{
		var donationToCharity6 = 0;
	}

	var totalDonations = donationToCharity1+donationToCharity2+donationToCharity3+donationToCharity4+donationToCharity5+donationToCharity6;	
	var totalCosts = totalDonations + messageCosts;
	//!rfc! document.getElementById('totalCostsDisplay').value = totalCosts;
}

function insertMessage()
{
	var writeLocation = javascriptBase +'berichtwizard_insertMessage';
	
	if(document.getElementById('family1') && document.getElementById('family1').checked == 'true')
	{
		var familyID1 = document.getElementById('family1').value;
	}
	else
	{
		var familyID1 = '';
	}
	
	if(document.getElementById('family2') && document.getElementById('family2').checked == 'true')
	{
		var familyID2 = document.getElementById('family2').value;
	}
	else
	{
		var familyID2 = '';
	}
		
	if(document.getElementById('family3') && document.getElementById('family3').checked == 'true')
	{
		var familyID3 = document.getElementById('family3').value;
	}
	else
	{
		var familyID3 = '';
	}
			
	if(document.getElementById('family4') && document.getElementById('family4').checked == 'true')
	{
		var familyID4 = document.getElementById('family4').value;
	}
	else
	{
		var familyID4 = '';
	}
			
	if(document.getElementById('family5') && document.getElementById('family5').checked == 'true')
	{
		var familyID5 = document.getElementById('family5').value;
	}
	else
	{
		var familyID5 = '';
	}
			
	if(document.getElementById('family6') && document.getElementById('family6').checked == 'true')
	{
		var familyID6 = document.getElementById('family6').value;
	}
	else
	{
		var familyID6 = '';
	}
			
	if(document.getElementById('family7') && document.getElementById('family7').checked == 'true')
	{
		var familyID7 = document.getElementById('family7').value;
	}
	else
	{
		var familyID7 = '';
	}
			
	if(document.getElementById('family8') && document.getElementById('family8').checked == 'true')
	{
		var familyID8 = document.getElementById('family8').value;
	}
	else
	{
		var familyID8 = '';
	}
			
	if(document.getElementById('family9') && document.getElementById('family9').checked == 'true')
	{
		var familyID9 = document.getElementById('family9').value;
	}
	else
	{
		var familyID9 = '';
	}
	
	if(document.getElementById('family10') && document.getElementById('family10').checked == 'true')
	{
		var familyID10 = document.getElementById('family10').value;
	}
	else
	{
		var familyID10 = '';
	}
	
	if(document.getElementById('finalPublicationDate'))
	{
		var messagePublishDate = document.getElementById('finalPublicationDate').value;
	}
	else
	{
		var messagePublishDate = '';
	}
	
	var messageLayout = document.getElementById('selectedLayout').value;
	var messageFormat = document.getElementById('selectedFormat').value;
	var messageType = document.getElementById('selectedMessageType').value;
	var messagePublished = document.getElementById('finalPublicationOptions').value;
	var messageRepliesAvailable = document.getElementById('finalRepliesAvailable').value;
	var messageRegion = document.getElementById('messageRegion').value;
	//!rfc! var totalCostsOgone = parseFloat(document.getElementById('totalCostsDisplay').value);
	//!rfc! var totalCostsOgone = totalCostsOgone*100;
	
	/* BEGIN: lets see what charity the user chooses */
	/* //!rfc!
	if (document.getElementById('charityRadioButton1').checked)
	{
		var obligatedCharity = 1;
	}
	if (document.getElementById('charityRadioButton2').checked)
	{
		var obligatedCharity = 2;
	}
	if (document.getElementById('charityRadioButton3').checked)
	{
		var obligatedCharity = 3;
	}
	if (document.getElementById('charityRadioButton4').checked)
	{
		var obligatedCharity = 4;
	}
	if (document.getElementById('charityRadioButton5').checked)
	{
		var obligatedCharity = 5;
	}
	if (document.getElementById('charityRadioButton6').checked)
	{
		var obligatedCharity = 6;
	}
	*/
	/* END: lets see what charity the user chooses */
	
	/* BEGIN: now we go and find out if the user was so kind enough to donate any extra money */
	/* //!rfc!
	if(document.getElementById('charity1').value != '')
	{
		var charity1 = document.getElementById('charity1').value;
	}
	
	if(document.getElementById('charity2').value != '')
	{
		var charity2 = document.getElementById('charity2').value;
	}
	
	if(document.getElementById('charity3').value != '')
	{
		var charity3 = document.getElementById('charity3').value;
	}
	
	if(document.getElementById('charity4').value != '')
	{
		var charity4 = document.getElementById('charity4').value;
	}
	
	if(document.getElementById('charity5').value != '')
	{
		var charity5 = document.getElementById('charity5').value;
	}
	
	if(document.getElementById('charity6').value != '')
	{
		var charity6 = document.getElementById('charity6').value;
	}
	*/
	/* END: now we go and find out if the user was so kind enough to donate any extra money */
	
	var params = 'messageLayout=' +messageLayout
				+'&messageFormat=' +messageFormat
				+'&messageType=' +messageType
				+'&messagePublished=' +messagePublished
				+'&messagePublishDate=' +messagePublishDate
				+'&messageRepliesAvailable=' +messageRepliesAvailable
				+'&messageRegion=' +messageRegion
				//!rfc! +'&totalCostsOgone=' +totalCostsOgone
				+'&familyID1=' +familyID1
				+'&familyID2=' +familyID2
				+'&familyID3=' +familyID3
				+'&familyID4=' +familyID4
				+'&familyID5=' +familyID5
				+'&familyID6=' +familyID6
				+'&familyID7=' +familyID7
				+'&familyID8=' +familyID8
				+'&familyID9=' +familyID9
				+'&familyID10=' +familyID10
				//!rfc! +'&extraDonationToCharity1=' +charity1
				//!rfc! +'&extraDonationToCharity2=' +charity2
				//!rfc! +'&extraDonationToCharity3=' +charity3
				//!rfc! +'&extraDonationToCharity4=' +charity4
				//!rfc! +'&extraDonationToCharity5=' +charity5
				//!rfc! +'&extraDonationToCharity6=' +charity6
				//!rfc! +'&obligatedCharity=' +obligatedCharity
	;
	
	
	newNumberOfPeopleToNotify = document.getElementById('numberOfPeopleToNotify').value;
	
	for (a=1;a<=newNumberOfPeopleToNotify;)
	{
		if(document.getElementById('notifyPerson' +a +'Name').value != '') {
			//alert('notifyPerson' +a +'Name ='  +document.getElementById('notifyPerson' +a +'Name').value);
			params += '&notifyPerson' +a +'Name=' +document.getElementById('notifyPerson' +a +'Name').value;
		}
		
		if(document.getElementById('notifyPerson' +a +'EmailAddress').value != '') {
			params += '&notifyPerson' +a +'EmailAddress=' +document.getElementById('notifyPerson' +a +'EmailAddress').value;
		}
		a++;
	}
	
	params += '&numberOfPeopleToNotify=' +newNumberOfPeopleToNotify;
	params += '&xml=1';

	new Ajax.Request 
	(
		writeLocation,
		{
		  method: 'get',
		  parameters: params,
		  //onSuccess: function(t){alert(t.responseText);},
		  //onFailure: function(t){alert(t.responseText);},
		  onComplete: completeFunction14
		}
	);
	
	function completeFunction14(request) {
		parent.document.wizard.submit();
	}
}


function prepareInput(fieldID,value)
{
	element = document.getElementById(fieldID);
	
	if(element.value == value)
	{
		element.value='';
	}
	else
	{
		value = document.getElementById(fieldID).value;
		element.value = value;
	}
}

function checkValue(fieldID,value)
{
	element = document.getElementById(fieldID);	
	
	if(element.value == '')
	{
		element.className = 'errorInput';
		element.value = value;
	}
	else
	{
		element.className = '';
		value = document.getElementById(fieldID).value;
		element.value = value;
	}
}
