/**
 * Reismandje
 */

var toerEngineReismand =
{
	'acco': '',
	'reismandId': '',
	'aantalSessie': 0,
	'aantalRecent': 0,

	'wanneer': {
		'vandaag': { 'min': 0, 'max': 0, 'readable': 'vandaag' },
		'gisteren': { 'min': 1, 'max': 1, 'readable': 'gisteren' },
		'dezeweek': {'min': 0, 'max': 6, 'readable': 'deze week' },
		'vorigeweek': { 'min': 7, 'max': 13, 'readable': 'vorige week' },
		'max': { 'min': 0, 'max': 30, 'readable': 'de laatste 30 dagen' }
	},

	'cookie': { },
	'eventHandlersZoekresultaten': [ ]
};

(function()
{
	toerEngineReismand.init = function toerEngineReismand_init()
	{
		var dagMSec = 1000 * 60 * 60 * 24;
		var tijd = new Date();
		tijd.setHours(12);
		var weekdag = tijd.getDay() || 7;

		var vandaag = mdate.format(tijd, 'yyyymmdd');
		var gisteren = mdate.format(new Date(tijd.valueOf()-dagMSec));
		this.wanneer.vandaag.min = vandaag+'000000';
		this.wanneer.vandaag.max = vandaag+'235959';
		this.wanneer.gisteren.min = gisteren+'000000';
		this.wanneer.gisteren.max = gisteren+'235959';
		this.wanneer.dezeweek.min = mdate.format(new Date(tijd.valueOf()-((weekdag-1)*dagMSec)))+'000000';
		this.wanneer.dezeweek.max = vandaag+'235959';
		this.wanneer.vorigeweek.min = mdate.format(new Date(tijd.valueOf()-((weekdag+6)*dagMSec)))+'000000';
		this.wanneer.vorigeweek.max = mdate.format(new Date(tijd.valueOf()-(weekdag*dagMSec)))+'235959';
		this.wanneer.max.min = mdate.format(new Date(tijd.valueOf()-((toerkoop && toerkoop.reismandMaxDagen ? toerkoop.reismandMaxDagen : this.wanneer.max.max)*dagMSec)))+'000000';
		this.wanneer.max.max = vandaag+'235959';
		if (toerkoop && toerkoop.reismandMaxDagen)
			this.wanneer.max.readable = 'de laatste '+toerkoop.reismandMaxDagen+' dagen';

		var reismandKnop = document.getElementById('reismand_options_knop');
		var reismandDiv = document.getElementById('reismand_options');
		var bewaarKnop = document.getElementById('bewaar_options_knop');
		var bewaarDiv = document.getElementById('bewaar_options');

		var reismandKnopPrint = document.getElementById('reismand_knop_print');
		var reismandKnopEmail1 = document.getElementById('reismand_knop_email');
		var reismandKnopEmail2 = document.getElementById('reismandemail_options_knop');
		var reismandDivEmail = document.getElementById('reismandemail_options');

		if (reismandDiv || bewaarDiv || reismandDivEmail)
		{
			// Elke klik ergens op de pagina moet ervoor zorgen dat de optionsDiv gesloten wordt
			eventHandler.add(document, 'click', toerEngineReismand, 'close');
			if (reismandDiv)
				eventHandler.add(document.getElementById('reismand_options_knopsluiten'), 'click', toerEngineReismand, 'close');
			if (bewaarDiv)
				eventHandler.add(document.getElementById('bewaar_options_knopsluiten'), 'click', toerEngineReismand, 'close');
			if (reismandDivEmail)
				eventHandler.add(document.getElementById('reismandemail_options_knopsluiten'), 'click', toerEngineReismand, 'close');

			if (reismandDiv || bewaarDiv)
			{
				function toerEngineReismand_eventHandler_mouseover(element) { element.className += ' mouseover'; return true; };
				function toerEngineReismand_eventHandler_mouseout(element) { element.className = element.className.replace(/ ?\bmouseover\b/, ''); return true; };
				function toerEngineReismand_eventHandler_click(element) { return toerEngineReismand.selectReismand(element); };
				function toerEngineReismand_eventHandler_dblclickOpenReismand(element) { return toerEngineReismand.selectReismand(element) && toerEngineReismand.openReismand(); };
				function toerEngineReismand_eventHandler_dblclickBewaar(element) { return toerEngineReismand.selectReismand(element) && toerEngineReismand.bewaarReis(); };

				function toerEngineReismand_eventHandler_openRecentSection(element) { return toerEngineReismand.openRecentSection(element); }
				function toerEngineReismand_eventHandler_selectDag(element) { return toerEngineReismand.selectDag(element, true); }
			}
		}

		// Hij mag alleen niet sluiten als je op de optionsDiv zelf klikt. Anders kan je
		// geen tekst selecteren of kopieren
		function toerEngineReismand_eventHandler_preventClose(element, e)
		{
			if (typeof event != 'undefined')
				event.cancelBubble = true;
			if (e && e.stopPropagation)
				e.stopPropagation();
			return true;
		};

		if (bewaarKnop && bewaarDiv)
		{
			eventHandler.add(bewaarKnop, 'click', null, function toerEngineReismand_eventHandler_bewaarReis(element, e) { return toerEngineReismand.bewaarReis(element, e); });
			eventHandler.add(bewaarDiv, 'click', null, toerEngineReismand_eventHandler_preventClose);

			function toerEngineReismand_eventHandler_selectBewaarTab(element) { return toerEngineReismand.selectBewaarTab(element); };
			eventHandler.add(document.getElementById('bewaarreis_tab1'), 'click', null, toerEngineReismand_eventHandler_selectBewaarTab);
			eventHandler.add(document.getElementById('bewaarreis_tab2'), 'click', null, toerEngineReismand_eventHandler_selectBewaarTab);

			var divs = {
				'Sessie': document.getElementById('bewaar_options_sessie_workbox_contents').getElementsByTagName('div'),
				'Recent': document.getElementById('bewaar_options_recent_workbox_contents').getElementsByTagName('div')
			};
			for (var i in divs)
			{
				for (var j = 0; j < divs[i].length; j++)
				{
					eventHandler.add(divs[i][j], 'mouseover', null, toerEngineReismand_eventHandler_mouseover);
					eventHandler.add(divs[i][j], 'mouseout', null, toerEngineReismand_eventHandler_mouseout);
					eventHandler.add(divs[i][j], 'click', null, toerEngineReismand_eventHandler_click);
					eventHandler.add(divs[i][j], 'dblclick', null, toerEngineReismand_eventHandler_dblclickBewaar);
				}
			}

			eventHandler.add(document.getElementById('bewaar_options_recent_link').getElementsByTagName('span')[0], 'click', null, toerEngineReismand_eventHandler_openRecentSection);

			var spans = document.getElementById('bewaar_options_recent_workbox_section').getElementsByTagName('span');
			for (i = 0; i < spans.length; i++)
				if (spans[i].id.match(/^bewaar_options_wanneer_/))
					eventHandler.add(spans[i], 'click', null, toerEngineReismand_eventHandler_selectDag);

			// Events toevoegen voor onderdelen in de bewaarDiv
			var inputNaam = document.getElementById('bewaar_options_naam');
			eventHandler.add(inputNaam, 'focus', null, function bewaarOptions_eventHandler_focusNaam(element) { element.className = ''; return false; });
			eventHandler.add(inputNaam, 'blur', null, function bewaarOptions_eventHandler_blurNaam(element) { if (!element.value) element.className = 'leeg'; return false; });
		}

		if (reismandKnop)
			eventHandler.add(reismandKnop, 'click', null, function toerEngineReismand_eventHandler_openReismand(element, e) { return toerEngineReismand.openReismand(element, e); });

		else if (reismandKnopPrint || (reismandKnopEmail1 && reismandKnopEmail2))
		{
			if (reismandKnopPrint)
			{
				function toerEngineReismand_eventHandler_printReismand(element, e) { return toerEngineReismand.printReismand(element, e); };
				eventHandler.add(reismandKnopPrint, 'click', null, toerEngineReismand_eventHandler_printReismand);
			}
			if (reismandKnopEmail1)
			{
				function toerEngineReismand_eventHandler_openEmailOptions(element, e) { return toerEngineReismand.openEmailOptions(element, e); };
				function toerEngineReismand_eventHandler_emailReismand(element, e) { return toerEngineReismand.emailReismand(element, e); };
				eventHandler.add(reismandKnopEmail1, 'click', null, toerEngineReismand_eventHandler_openEmailOptions);
				eventHandler.add(reismandKnopEmail2, 'click', null, toerEngineReismand_eventHandler_emailReismand);
				eventHandler.add(reismandDivEmail, 'click', null, toerEngineReismand_eventHandler_preventClose);
				eventHandler.add(document.getElementById('reismandemail_options_afschrift'), 'click', null, function(element) { element.className = element.className == 'on' ? '' : 'on'; return true; });
			}

			if (window.name)
				window.name = '';
			else
				document.getElementsByTagName('body')[0].style.backgroundImage = 'none';
		}

		if (reismandKnop && reismandDiv)
		{
			eventHandler.add(reismandDiv, 'click', null, toerEngineReismand_eventHandler_preventClose);

			function toerEngineReismand_eventHandler_selectReismandTab(element) { return toerEngineReismand.selectReismandTab(element); };
			eventHandler.add(document.getElementById('bewaardereizen_tab1'), 'click', null, toerEngineReismand_eventHandler_selectReismandTab);
			eventHandler.add(document.getElementById('bewaardereizen_tab2'), 'click', null, toerEngineReismand_eventHandler_selectReismandTab);

			var divs = {
				'Sessie': document.getElementById('reismand_options_sessie_workbox_contents').getElementsByTagName('div'),
				'Recent': document.getElementById('reismand_options_recent_workbox_contents').getElementsByTagName('div')
			};
			for (var i in divs)
			{
				for (var j = 0; j < divs[i].length; j++)
				{
					this['aantal'+i]++;

					eventHandler.add(divs[i][j], 'mouseover', null, toerEngineReismand_eventHandler_mouseover);
					eventHandler.add(divs[i][j], 'mouseout', null, toerEngineReismand_eventHandler_mouseout);
					eventHandler.add(divs[i][j], 'click', null, toerEngineReismand_eventHandler_click);
					eventHandler.add(divs[i][j], 'dblclick', null, toerEngineReismand_eventHandler_dblclickOpenReismand);

					if (divs[i][j].className.match(/\bbewaar_options_selected\b/))
						this.reismandId = divs[i][j].id.replace(/^reismandje_/, '');
				}
			}

			eventHandler.add(document.getElementById('reismand_options_recent_link').getElementsByTagName('span')[0], 'click', null, toerEngineReismand_eventHandler_openRecentSection);

			var spans = document.getElementById('reismand_options_recent_workbox_section').getElementsByTagName('span');
			for (i = 0; i < spans.length; i++)
				if (spans[i].id.match(/^reismand_options_wanneer_/))
					eventHandler.add(spans[i], 'click', null, toerEngineReismand_eventHandler_selectDag);

			function toerEngineReismand_eventHandler_zoekSubmit(element, e) { return toerEngineReismand.zoekReismanden(element, e); }
			eventHandler.add(document.getElementById('reismand_options_zoekform'), 'submit', null, toerEngineReismand_eventHandler_zoekSubmit);
		}

		return true;
	};

	toerEngineReismand.close = function toerEngineReismand_close(element, e)
	{
		if (typeof e !== 'undefined' && e && e.button != 0) // 0 = left button, 1 = middle, 2 = right
			return true;

		toerEngineReismand.acco = '';

		var bewaarDiv = document.getElementById('bewaar_options');
		if (bewaarDiv)
			bewaarDiv.className = 'bewaar_options_off';

		var reismandDiv = document.getElementById('reismand_options');
		if (reismandDiv)
			reismandDiv.className = 'reismand_options_off';

		var reismandEmailDiv = document.getElementById('reismandemail_options');
		if (reismandEmailDiv)
			reismandEmailDiv.className = 'reismand_options_off';

		return true;
	};

	toerEngineReismand.openBewaarOptions = function toerEngineReismand_openBewaarOptions(element, e, secondrun)
	{
		if (!secondrun)
		{
			// Via een timeout, omdat-ie straks een cancelBubble doet, maar daardoor
			// wordt misschien teveel tegengehouden wat wel moet vuren. Dus moet dat
			// eerst maar vuren voordat deze functie verder wordt uitgevoerd.
			setTimeout(function() { return toerEngineReismand.openBewaarOptions(element, e, true); }, 20);
			return true;
		}

		if (!element.id.match(/^(acco|block)_package_[12](bewaar|verwijder)/))
			return false;

		this.acco = element.id.replace(/^(acco|block)_package_[12](bewaar|verwijder)/, '');

		if (element.id.match(/^(acco|block)_package_[12]verwijder/))
			return this.verwijderReis(element);

		var bewaarDiv = document.getElementById('bewaar_options');
		if (!bewaarDiv || !toerkoop || !toerkoop.showBewaarOptions)
			return this.bewaarReis(element, e);

		var bewaarMelding = document.getElementById('bewaar_options_melding');
		if (bewaarMelding)
			bewaarMelding.innerHTML = '';

		var margin = 7;
		var elementPosition = getAbsolutePosition(element);
		bewaarDiv.style.top = (elementPosition.y - margin)+'px';
		bewaarDiv.style.left = (elementPosition.x - margin)+'px';
		bewaarDiv.className = 'bewaar_options';

		return true;
	};

	toerEngineReismand.bewaarReis = function toerEngineReismand_bewaarReis(element, e)
	{
		if (!this.acco)
			return this.close();

		var bewaarNieuwElement = document.getElementById('bewaar_options_nieuw');
		if ((!bewaarNieuwElement || bewaarNieuwElement.value != 1) && this.reismandId && toerkoop && toerkoop.showBewaarOptions)
		{
			var testDiv = document.getElementById('bewaartje_'+this.reismandId.replace(/-/g, ''));
			var bewaarMelding = document.getElementById('bewaar_options_melding');
			if (!testDiv)
			{
				if (bewaarMelding)
					bewaarMelding.innerHTML = 'Als balie kan je geen wijzigingen maken in een selectie die door een consument is samengesteld. Kies een andere selectie of maak een nieuwe.';
				return false;
			}
			else if (bewaarMelding)
				bewaarMelding.innerHTML = '';
		}

		var params = toerEnginePackage.getPrintParams(this.acco);
		if (!params)
			return this.close();

		var bewaarEmailElement = document.getElementById('bewaar_options_email');
		var bewaarNaamElement = document.getElementById('bewaar_options_naam');
		if (bewaarNieuwElement && bewaarNieuwElement.value == 1 && bewaarEmailElement && bewaarNaamElement)
		{
			params.push('email='+encodeURIComponent(bewaarEmailElement.value));
			params.push('naam='+encodeURIComponent(bewaarNaamElement.value));
		}
		else if (this.reismandId)
			params.push('reismandId='+encodeURIComponent(this.reismandId.replace(/^([a-f0-9]{8})([a-f0-9]{4})([a-f0-9]{4})([a-f0-9]{4})([a-f0-9]{12})$/, '$1-$2-$3-$4-$5')));

		var lijst = toerEngineData.getData('lijstId');
		if (lijst)
			params.push('lijst='+encodeURIComponent(lijst));
		params.push('acco='+encodeURIComponent(this.acco));
		params.push(toerEngineSettings.serialize());
		var url = location.protocol+'\/\/'+location.host+'\/ajax\/bewaarReis.php';
		var callback = function(response, passthruData, ajaxStatus, ajaxData) { return toerEngineReismand.bevestigBewaar(response, passthruData, ajaxStatus, ajaxData); }

		this.close();

		return ajax.send(url+'?'+params.join('&'), null, callback, 'get', 8);
	};

	toerEngineReismand.bevestigBewaar = function toerEngineReismand_bevestigBewaar(data, passthruData, ajaxStatus, ajaxData)
	{
		if (ajaxStatus == 'requeued')
			return true;

		var error = false;
		var errorMessage = '';
		var jobMessage = 'Reis bewaard';

		if (!data)
		{
			// ajaxStatus kan zijn: 'ok', 'error', 'timed out', 'aborted', 'requeued'
			errorMessage = ajaxStatus+'\n\nAJAX RESPONSE HEADERS:'+(ajaxData.responseHeaders ? '\n'+ajaxData.responseHeaders : ' - geen headers -')+'\n\nAJAX RESPONSE TEXT: '+ajaxData.responseText;
			jobMessage = 'Bewaren mislukt';
			error = true;
		}
		else if (!data.status)
		{
			errorMessage = 'data ongeldig\n\nAJAX RESPONSE HEADERS:'+(ajaxData.responseHeaders ? '\n'+ajaxData.responseHeaders : ' - geen headers -\n')+(typeof data == 'string' ? 'ONTVANGEN STRINGLENGTE: '+data.length+'\n' : '')+'\nAJAX RESPONSE DATA:\n'+data;
			jobMessage = 'Bewaren mislukt';
			error = true;
		}
		else if (data.status == 'error')
		{
			jobMessage = data.error;
			error = true;
		}
		else
		{
			switch (data.status)
			{
				case 'inserted':
					jobMessage = 'Reis bewaard';
					break;
				case 'updated':
					jobMessage = 'Bewaarde reis bijgewerkt';
					break;
				case 'none':
				case 'ignored':
					jobMessage = 'Reis niet bewaard';
					break;
				default:
					errorMessage = 'Onbekende bewaarstatus: '+data.status+'\n\nAJAX RESPONSE TEXT: '+ajaxData.responseText;
					jobMessage = 'Probleem bij bewaren van reis';
					error = true;
					break;
			}
		}

		if (error && errorMessage && typeof toerEngineError !== 'undefined')
			toerEngineError('Bewaren van reis mislukt\n'+errorMessage, window.location.protocol+'\/\/'+window.location.hostname+'\/js\/toerengine_reismand.js', 357);

		if (!error)
			this.reismandId = data.reismandId.replace(/-/g, '');

		var reismandDiv = document.getElementById('reismand_options');
		if (!error && reismandDiv && toerkoop && toerkoop.showBewaarOptions)
		{
			this.selectBewaarTab(document.getElementById('bewaarreis_tab1'));
			this.selectReismandTab(document.getElementById('bewaardereizen_tab1'));
			this.addToSession(data);

			// Velden weer leeg maken voor volgende reismandje
			document.getElementById('bewaar_options_email').value = '';
			document.getElementById('bewaar_options_naam').value = '';
			document.getElementById('bewaar_options_naam').className = 'leeg';
		}

		if (!error)
		{
			var reismandKnop = document.getElementById('reismand') || document.getElementById('reismand'+data.acco);
			if (reismandKnop && reismandKnop.tagName.toLowerCase() === 'img')
				reismandKnop.src = reismandKnop.src.replace(/\/grijs17\//, '/blauw17/');
		}

		this.showIndicator('<br \/><h1>'+jobMessage+'<\/h1>');
		return true;
	};

	toerEngineReismand.verwijderReis = function toerEngineReismand_verwijderReis(element)
	{
		if (!this.acco)
			return false;

		var reismandId = input.get('reismandId', false);
		if (!reismandId)
			return false;

		var params = [
			'reismandId='+encodeURIComponent(reismandId),
			'acco='+encodeURIComponent(this.acco)
		];
		var url = location.protocol+'\/\/'+location.host+'\/ajax\/verwijderReis.php';
		var callback = function(response, passthruData, ajaxStatus, ajaxData) { return toerEngineReismand.bevestigVerwijder(response, passthruData, ajaxStatus, ajaxData); }

		return ajax.send(url+'?'+params.join('&'), null, callback, 'get', 5);
	};

	toerEngineReismand.bevestigVerwijder = function toerEngineReismand_bevestigVerwijder(data, passthruData, ajaxStatus, ajaxData)
	{
		if (ajaxStatus == 'requeued')
			return true;

		var error = false;
		var errorMessage = '';
		var jobMessage = 'Reis verwijderd uit bewaarde reizen';

		if (!data)
		{
			// ajaxStatus kan zijn: 'ok', 'error', 'timed out', 'aborted', 'requeued'
			errorMessage = ajaxStatus+'\n\nAJAX RESPONSE HEADERS:'+(ajaxData.responseHeaders ? '\n'+ajaxData.responseHeaders : ' - geen headers -')+'\n\nAJAX RESPONSE TEXT: '+ajaxData.responseText;
			jobMessage = 'Verwijderen mislukt';
			error = true;
		}
		else if (!data.status)
		{
			errorMessage = 'data ongeldig\n\nAJAX RESPONSE HEADERS:'+(ajaxData.responseHeaders ? '\n'+ajaxData.responseHeaders : ' - geen headers -\n')+(typeof data == 'string' ? 'ONTVANGEN STRINGLENGTE: '+data.length+'\n' : '')+'\nAJAX RESPONSE DATA:\n'+data;
			jobMessage = 'Verwijderen mislukt';
			error = true;
		}
		else if (data.status == 'error')
		{
			jobMessage = data.error;
			error = true;
		}
		else
			jobMessage = 'Reis verwijderd';

		if (error && errorMessage && typeof toerEngineError !== 'undefined')
			toerEngineError('Verwijderen van reis mislukt\n'+errorMessage, window.location.protocol+'\/\/'+window.location.hostname+'\/js\/toerengine_reismand.js', 436);

		this.showIndicator('<br \/><h1>'+jobMessage+'<\/h1>');

		if (!error)
			setTimeout(function() { return toerEngine.reload(); }, 2000);

		return true;
	};

	toerEngineReismand.openReismandOptions = function toerEngineReismand_openReismandOptions(element, e, secondrun)
	{
		var reismandDiv = document.getElementById('reismand_options');
		if (!reismandDiv || !toerkoop || !toerkoop.showBewaarOptions)
			return this.openReismand(element, e);

		if (!secondrun)
		{
			// Via een timeout, omdat-ie straks een cancelBubble doet, maar daardoor
			// wordt misschien teveel tegengehouden wat wel moet vuren. Dus moet dat
			// eerst maar vuren voordat deze functie verder wordt uitgevoerd.
			setTimeout(function() { return toerEngineReismand.openReismandOptions(element, e, true); }, 20);
			return true;
		}

		var marginTop = 7;
		var marginLeft = 34;
		var elementPosition = getAbsolutePosition(element);
		reismandDiv.className = 'reismand_options';  // element moet eerst zichtbaar worden voordat offsetWidth gemeten kan worden.
		reismandDiv.style.top = (elementPosition.y - marginTop)+'px';
		reismandDiv.style.left = Math.max(10, elementPosition.x + element.offsetWidth + marginLeft - reismandDiv.offsetWidth)+'px';

		return true;
	};

	toerEngineReismand.openReismand = function toerEngineReismand_openReismand(element, e)
	{
		var reismandOptionsDiv = document.getElementById('reismand_options');
		if (!this.reismandId && !reismandOptionsDiv)
			this.reismandId = input.getCookie('reismand', '').replace(/-/g, '');
		if (!this.reismandId)
		{
			this.showIndicator('<br \/><h1>'+(reismandOptionsDiv ? 'Geen reismand gekozen' : 'U hebt nog geen reizen bewaard')+'<\/h1>');
			this.close();

			if (typeof event != 'undefined')
			{
				event.returnValue = false;
				if (event.preventDefault)
					event.preventDefault();
			}
			if (e && e.preventDefault)
				e.preventDefault();

			return false;
		}

		var reismandDiv = document.getElementById('reismandje_'+this.reismandId);
		var zoekDiv = document.getElementById('zoekresultaatje_'+this.reismandId);
		if (reismandDiv)
			reismandDiv.className = reismandDiv.className.replace(/ ?\bmouseover\b/g, '');
		if (zoekDiv)
			zoekDiv.className = zoekDiv.className.replace(/ ?\bmouseover\b/g, '');

		var bewaarTab = document.getElementById('bewaarreis_tab1');
		if (bewaarTab)
			this.selectBewaarTab(bewaarTab);

		if (element)
		{
			if (element.tagName.toLowerCase() === 'a')
				return true;
			element.src = element.src.replace(/\/grijs17\//, '/blauw17/');
		}

		var url = '/bewaardereizen.php?reismandId='+encodeURIComponent(this.reismandId.replace(/^([a-f0-9]{8})([a-f0-9]{4})([a-f0-9]{4})([a-f0-9]{4})([a-f0-9]{12})$/, '$1-$2-$3-$4-$5'));
		if (!reismandOptionsDiv)
		{
			window.location = url+'&utm_source=website&utm_medium=reismand&utm_content=consument%20selectie&utm_term=';
			return true;
		}

		var windowObj = new normalWindow(null, null, true);
		var naam = 'reismand'+this.reismandId;
		this.addToSession();
		this.close();

		if (reismandDiv || zoekDiv)
			this.selectReismandTab(document.getElementById('bewaardereizen_tab1'));

		return windowObj.open(url, naam, 900, 700, false, 'center');
	};

	toerEngineReismand.selectReismand = function toerEngineReismand_selectReismand(element)
	{
		var divs1 = document.getElementById('reismand_options_sessie_workbox_contents').getElementsByTagName('div');
		var divs2 = document.getElementById('reismand_options_recent_workbox_contents').getElementsByTagName('div');
		for (var i = 0; i < divs1.length; i++)
			divs1[i].className = divs1[i].className.replace(/ ?\bbewaar_options_selected\b/, '');
		for (i = 0; i < divs2.length; i++)
			divs2[i].className = divs2[i].className.replace(/ ?\bbewaar_options_selected\b/, '');

		divs1 = document.getElementById('bewaar_options_sessie_workbox_contents').getElementsByTagName('div');
		divs2 = document.getElementById('bewaar_options_recent_workbox_contents').getElementsByTagName('div');
		for (i = 0; i < divs1.length; i++)
			divs1[i].className = divs1[i].className.replace(/ ?\bbewaar_options_selected\b/, '');
		for (i = 0; i < divs2.length; i++)
			divs2[i].className = divs2[i].className.replace(/ ?\bbewaar_options_selected\b/, '');

		divs1 = document.getElementById('reismand_options_zoeken_workbox_contents').getElementsByTagName('div');
		for (i = 0; i < divs1.length; i++)
			divs1[i].className = divs1[i].className.replace(/ ?\bbewaar_options_selected\b/, '');

		this.reismandId = element.id.replace(/^(reismand|bewaart|zoekresultaat)je_/, '');

		var divReismandje = document.getElementById('reismandje_'+this.reismandId);
		var divBewaartje = document.getElementById('bewaartje_'+this.reismandId);
		var divZoekresultaatje = document.getElementById('zoekresultaatje_'+this.reismandId);
		if (divReismandje)
			divReismandje.className += ' bewaar_options_selected';
		if (divBewaartje)
			divBewaartje.className += ' bewaar_options_selected';
		if (divZoekresultaatje)
			divZoekresultaatje.className += ' bewaar_options_selected';

		this.selectBewaarTab(document.getElementById('bewaarreis_tab1'));
		var bewaarMelding = document.getElementById('bewaar_options_melding');
		if (bewaarMelding)
			bewaarMelding.innerHTML = '';

		return true;
	};

	toerEngineReismand.openRecentSection = function toerEngineReismand_openRecentSection(element)
	{
		element.parentNode.className += ' link_off';
		var onderdeel = element.parentNode.id.replace(/_options_recent_link$/, '');

		var recentSection = document.getElementById(onderdeel+'_options_recent_workbox_section');
		if (recentSection)
		{
			recentSection.className = recentSection.className.replace(/ ?\bworkbox_section_off\b/g, '');
			recentSection.className += ' border_top';
		}

		return true;
	};

	toerEngineReismand.zoekReismanden = function toerEngineReismand_zoekReismanden(element, e)
	{
		var params = [ ];
		var formElements = element.elements;
		for (var i = 0; i < formElements.length; i++)
		{
			var naam = formElements[i].name;
			var type = formElements[i].type;

			var value = type.match(/^select/) ? formElements[i].options[formElements[i].selectedIndex].value : formElements[i].value;
			params.push(encodeURIComponent(naam) + '=' + encodeURIComponent(value));
		}

		var url = location.protocol+'\/\/'+location.host+'\/ajax\/zoekReismanden.php';
		var callback = function(response, passthruData, ajaxStatus, ajaxData) { return toerEngineReismand.toonZoekresultaat(response, passthruData, ajaxStatus, ajaxData); }

		ajax.send(url, params.join('&'), callback, 'post', 10);

		if (typeof event != 'undefined')
		{
			event.returnValue = false;
			if (event.preventDefault)
				event.preventDefault();
		}
		if (e && e.preventDefault)
			e.preventDefault();

		return false;
	};

	toerEngineReismand.toonZoekresultaat = function toerEngineReismand_toonZoekresultaat(data, passthruData, ajaxStatus, ajaxData)
	{
		if (ajaxStatus == 'requeued')
			return true;

		var error = false;
		var errorMessage = '';
		var jobMessage = '';

		if (!data)
		{
			// ajaxStatus kan zijn: 'ok', 'error', 'timed out', 'aborted', 'requeued'
			errorMessage = ajaxStatus+'\n\nAJAX RESPONSE HEADERS:'+(ajaxData.responseHeaders ? '\n'+ajaxData.responseHeaders : ' - geen headers -')+'\n\nAJAX RESPONSE TEXT: '+ajaxData.responseText;
			jobMessage = 'Probleem opgetreden bij zoeken';
			error = true;
		}
		else if (!(data instanceof Array))
		{
			errorMessage = 'data ongeldig\n\nAJAX RESPONSE HEADERS:'+(ajaxData.responseHeaders ? '\n'+ajaxData.responseHeaders : ' - geen headers -\n')+(typeof data == 'string' ? 'ONTVANGEN STRINGLENGTE: '+data.length+'\n' : '')+'\nAJAX RESPONSE DATA:\n'+data;
			jobMessage = 'Probleem opgetreden bij zoeken';
			error = true;
		}
		else if (!data.length)
			jobMessage = 'Geen resultaat';

		// Events voor zoekresultaten verwijderen
		while (this.eventHandlersZoekresultaten.length > 0)
		{
			var handlerId = this.eventHandlersZoekresultaten.pop();
			eventHandler.remove(handlerId);
		}

		var meldingDiv = document.getElementById('reismand_options_zoeken_melding');
		var contentDiv = document.getElementById('reismand_options_zoeken_workbox_contents');

		if (error)
		{
			if (typeof toerEngineError !== 'undefined')
				toerEngineError('Zoeken van reismandjes mislukt\n'+errorMessage, window.location.protocol+'\/\/'+window.location.hostname+'\/js\/toerengine_reismand.js', 652);

			contentDiv.className += ' bewaar_options_off';
			meldingDiv.innerHTML = jobMessage;
			meldingDiv.className = meldingDiv.className.replace(/ ?\bbewaar_options_off\b/g, '');
			return false;
		}

		if (jobMessage)
		{
			contentDiv.className += ' bewaar_options_off';
			meldingDiv.innerHTML = jobMessage;
			meldingDiv.className = meldingDiv.className.replace(/ ?\bbewaar_options_off\b/g, '');
		}
		else
		{
			contentDiv.innerHTML = '';

			function toerEngineReismand_eventHandler_mouseover(element) { element.className += ' mouseover'; return true; };
			function toerEngineReismand_eventHandler_mouseout(element) { element.className = element.className.replace(/ ?\bmouseover\b/g, ''); return true; };
			function toerEngineReismand_eventHandler_click(element) { return toerEngineReismand.selectReismand(element); };
			function toerEngineReismand_eventHandler_dblclickOpenReismand(element) { return toerEngineReismand.selectReismand(element) && toerEngineReismand.openReismand(); };

			for (var i = 0; i < data.length; i++)
			{
				var email = data[i].email;
				var naam = data[i].naam;
				var klant = email+(email ? (naam ? ' - ' : '')+naam : (naam ? naam : 'Anonieme klant'));

				var now = new Date();
				var ctime = mdate.parseDate(data[i].ctime);
				var cdiff = mdate.dateDiff(ctime, now, mdate.DIFF_DATE_BORDER);
				var cdate = cdiff == 1 ? 'gisteren ' : (cdiff ? mdate.format(ctime, 'd mmm')+' ' : '');
				var atime = mdate.parseDate(data[i].atime);
				var adiff = mdate.dateDiff(atime, now, mdate.DIFF_DATE_BORDER);
				var adate = adiff == 1 ? 'gisteren ' : (adiff ? mdate.format(atime, 'd mmm')+' ' : '');

				var html = [
					'<span class="titel">'+klant+'<\/span>',
					' - <span>'+data[i].aantalReizen+' '+(data[i].aantalReizen == '1' ? 'reis' : 'reizen')+'<\/span><br \/>',
					'<span>Geopend:<\/span> <span class="geopend">'+adate+mdate.format(atime, 'hh:mm')+'<\/span> uur',
					' - <span>Gemaakt:<\/span> '+cdate+mdate.format(ctime, 'hh:mm')+' uur',
					' (door '+(data[i].balie ? '<span class="doorbalie">balie<\/span>' : '<span class="doorconsument">consument<\/span>')+')<br \/>',
					'<span class="maker">'+data[i].anvr+' - '+data[i].filiaalNaam+' - '+data[i].filiaalPlaats+'<\/span>'
				];

				var zoekDiv = document.createElement('div');
				zoekDiv.id = 'zoekresultaatje_'+data[i].reismandId;
				zoekDiv.className = 'create'+mdate.format(ctime, 'yyyymmdd')+mdate.format(ctime, 'hhmmss')+' access'+mdate.format(atime, 'yyyymmdd')+mdate.format(atime, 'hhmmss');
				zoekDiv.innerHTML = html.join('');
				contentDiv.appendChild(zoekDiv);

				this.eventHandlersZoekresultaten.push(eventHandler.add(zoekDiv, 'mouseover', null, toerEngineReismand_eventHandler_mouseover));
				this.eventHandlersZoekresultaten.push(eventHandler.add(zoekDiv, 'mouseout', null, toerEngineReismand_eventHandler_mouseout));
				this.eventHandlersZoekresultaten.push(eventHandler.add(zoekDiv, 'click', null, toerEngineReismand_eventHandler_click));
				this.eventHandlersZoekresultaten.push(eventHandler.add(zoekDiv, 'dblclick', null, toerEngineReismand_eventHandler_dblclickOpenReismand));
			}

			meldingDiv.className += ' bewaar_options_off';
			contentDiv.className = contentDiv.className.replace(/ ?\bbewaar_options_off\b/g, '');
		}

		return true;
	};

	toerEngineReismand.openEmailOptions = function toerEngineReismand_openEmailOptions(element, e, secondrun)
	{
		var reismandDiv = document.getElementById('reismandemail_options');
		if (!reismandDiv)
			return false;

		if (!secondrun)
		{
			// Via een timeout, omdat-ie straks een cancelBubble doet, maar daardoor
			// wordt misschien teveel tegengehouden wat wel moet vuren. Dus moet dat
			// eerst maar vuren voordat deze functie verder wordt uitgevoerd.
			setTimeout(function() { return toerEngineReismand.openEmailOptions(element, e, true); }, 20);
			return true;
		}

		var emailMelding = document.getElementById('reismandemail_options_melding');
		if (emailMelding)
			emailMelding.innerHTML = '';

		var marginTop = 7;
		var marginLeft = 127;
		var elementPosition = getAbsolutePosition(element);
		reismandDiv.className = '';  // element moet eerst zichtbaar worden voordat offsetWidth gemeten kan worden.
		reismandDiv.style.top = (elementPosition.y - marginTop)+'px';
		reismandDiv.style.left = (elementPosition.x + element.offsetWidth + marginLeft - reismandDiv.offsetWidth)+'px';

		return true;
	};

	toerEngineReismand.emailReismand = function toerEngineReismand_emailReismand(element, e)
	{
		var reismandDiv = document.getElementById('reismandemail_options');
		var reismandId = input.get('reismandId', false);

		if (!reismandId)
			return false;

		var params = [ 'reismandId='+encodeURIComponent(reismandId), 'email=1' ];
		var emailElement = document.getElementById('reismandemail_options_email');
		var naamElement = document.getElementById('reismandemail_options_naam');
		var boodschapElement = document.getElementById('reismandemail_options_boodschap');
		var afschriftElement = document.getElementById('reismandemail_options_afschrift');
		if (emailElement)
			params.push('reismandEmail='+encodeURIComponent(emailElement.value));
		if (naamElement)
			params.push('reismandNaam='+encodeURIComponent(naamElement.value));
		if (boodschapElement)
			params.push('reismandBoodschap='+encodeURIComponent(boodschapElement.value));
		if (afschriftElement && afschriftElement.className == 'on')
			params.push('reismandAfschrift=1');

		var url = location.protocol+'\/\/'+location.host+'\/bewaardereizen.php';
		var callback = function(response, passthruData, ajaxStatus, ajaxData) { return toerEngineReismand.bevestigEmail(response, passthruData, ajaxStatus, ajaxData); }

		var emailMelding = document.getElementById('reismandemail_options_melding');
		if (emailMelding)
			emailMelding.innerHTML = '<img style="float:left;" src="/images/icon_more_actions_rotate.gif" alt="Draaidingetje... even geduld" \/> Even geduld...';

		return ajax.send(url, params.join('&'), callback, 'post', 90);
	};

	toerEngineReismand.bevestigEmail = function toerEngineReismand_bevestigEmail(data, passthruData, ajaxStatus, ajaxData)
	{
		if (ajaxStatus == 'requeued')
			return true;

		var error = false;
		var errorMessage = '';
		var jobMessage = 'Bewaarde reizen zijn verzonden';

		if (!data)
		{
			// ajaxStatus kan zijn: 'ok', 'error', 'timed out', 'aborted', 'requeued'
			errorMessage = ajaxStatus+'\n\nAJAX RESPONSE HEADERS:'+(ajaxData.responseHeaders ? '\n'+ajaxData.responseHeaders : ' - geen headers -')+'\n\nAJAX RESPONSE TEXT: '+ajaxData.responseText;
			jobMessage = 'E-mailen van bewaarde reizen is mislukt';
			error = true;
		}
		else if (!data.status)
		{
			errorMessage = 'data ongeldig\n\nAJAX RESPONSE HEADERS:'+(ajaxData.responseHeaders ? '\n'+ajaxData.responseHeaders : ' - geen headers -\n')+(typeof data == 'string' ? 'ONTVANGEN STRINGLENGTE: '+data.length+'\n' : '')+'\nAJAX RESPONSE DATA:\n'+data;
			jobMessage = 'E-mailen van bewaarde reizen is mislukt';
			error = true;
		}
		else if (data.status == 'error')
		{
			jobMessage = data.error;
			error = true;
		}

		var emailMelding = document.getElementById('reismandemail_options_melding');
		if (emailMelding)
			emailMelding.innerHTML = jobMessage;

		if (error)
		{
			if (errorMessage && typeof toerEngineError !== 'undefined')
				toerEngineError('Mailen van reismand mislukt\n'+errorMessage, window.location.protocol+'\/\/'+window.location.hostname+'\/js\/toerengine_reismand.js', 813);
			return false;
		}

		this.showIndicator('<br \/><h1>'+jobMessage+'<\/h1>');

		var reismandDiv = document.getElementById('reismandemail_options');
		if (reismandDiv)
			this.close();

		return true;
	};

	toerEngineReismand.printReismand = function toerEngineReismand_printReismand(element, e)
	{
		var reismandDiv = document.getElementById('reismandprint_options');
		var reismandId = input.get('reismandId', false);

		if (!reismandId)
			return false;

		var url = '/bewaardereizen.php?reismandId='+encodeURIComponent(reismandId)+'&print=1';
		var windowObj = new popup();
		var naam = 'reismandprint'+reismandId.replace(/-/g, '');

		return windowObj.open(url, naam, 800, 600, false, 'center');
	};

	toerEngineReismand.selectReismandTab = function toerEngineReismand_selectReismandTab(element)
	{
		var tabNum = element.id.replace(/^bewaardereizen_tab/, '');
		var tabsElement = document.getElementById('reismand_options_tabs');
		tabsElement.className = tabsElement.className.replace(/\bbewaar_options_tab[1-3]\b/, 'bewaar_options_tab'+tabNum);

		var divs = document.getElementById('reismand_options_contentcontainer').getElementsByTagName('div');
		for (var i = 0; i < divs.length; ++i)
		{
			if (divs[i].id == 'bewaardereizen_content'+tabNum)
				divs[i].className = divs[i].className.replace(/ ?\bbewaar_options_content_off\b/g, '');
			else if (divs[i].id.match(/^bewaardereizen_content[1-3]$/) && !divs[i].className.match(/\bbewaar_options_content_off\b/))
				divs[i].className += ' bewaar_options_content_off';
		}

		return true;
	};

	toerEngineReismand.selectBewaarTab = function toerEngineReismand_selectBewaarTab(element)
	{
		var tabNum = element.id.replace(/^bewaarreis_tab/, '');
		var tabsElement = document.getElementById('bewaar_options_tabs');
		tabsElement.className = tabsElement.className.replace(/\bbewaar_options_tab[1-3]\b/, 'bewaar_options_tab'+tabNum);

		var divs = document.getElementById('bewaar_options_contentcontainer').getElementsByTagName('div');
		for (var i = 0; i < divs.length; ++i)
		{
			if (divs[i].id == 'bewaarreis_content'+tabNum)
				divs[i].className = divs[i].className.replace(/ ?\bbewaar_options_content_off\b/g, '');
			else if (divs[i].id.match(/^bewaarreis_content[1-3]$/) && !divs[i].className.match(/\bbewaar_options_content_off\b/))
				divs[i].className += ' bewaar_options_content_off';
		}

		document.getElementById('bewaar_options_nieuw').value = (tabNum == 2) ? '1' : '0';

		return true;
	};

	toerEngineReismand.selectDag = function toerEngineReismand_selectDag(element, saveCookie)
	{
		var wanneer = element.id.replace(/^(bewaar|reismand)_options_wanneer_/, '');
		var minDatum = this.wanneer[wanneer].min;
		var maxDatum = this.wanneer[wanneer].max;
		var readableTekst = this.wanneer[wanneer].readable;
		var reismandAan = 0;
		var bewaarAan = 0;

		var spans = document.getElementById('bewaar_options_recent_workbox_section').getElementsByTagName('span');
		for (var i = 0; i < spans.length; i++)
			if (spans[i].className.match(/^wanneer *$/))
				spans[i].className += ' wanneer_off';
		spans = document.getElementById('reismand_options_recent_workbox_section').getElementsByTagName('span');
		for (var i = 0; i < spans.length; i++)
			if (spans[i].className.match(/^wanneer *$/))
				spans[i].className += ' wanneer_off';

		var elementReismand = document.getElementById('reismand_options_wanneer_'+wanneer);
		var elementBewaar = document.getElementById('bewaar_options_wanneer_'+wanneer);
		elementReismand.className = elementReismand.className.replace(/ ?\bwanneer_off\b/g, '');
		elementBewaar.className = elementBewaar.className.replace(/ ?\bwanneer_off\b/g, '');

		var divs = [
			document.getElementById('bewaar_options_recent_workbox_contents').getElementsByTagName('div'),
			document.getElementById('reismand_options_recent_workbox_contents').getElementsByTagName('div')
		];
		for (var b = 0; b <= 1; b++)
			for (var i = 0; i < divs[b].length; i++)
			{
				if (divs[b][i].id === 'bewaar_options_recent_melding' || divs[b][i].id === 'reismand_options_recent_melding')
					continue;

				var divDatum1 = divs[b][i].className.replace(/^.*\baccess([0-9]{14})\b.*$/, '$1');
				var divDatum2 = divs[b][i].className.replace(/^.*\bcreate([0-9]{14})\b.*$/, '$1');
				if ((divDatum1 >= minDatum && divDatum1 <= maxDatum) || (divDatum2 >= minDatum && divDatum2 <= maxDatum))
				{
					divs[b][i].className = divs[b][i].className.replace(/ ?\bbewaar_options_datumoff\b/, '');
					if (b)
						reismandAan++;
					else
						bewaarAan++;
				}
				else if (!divs[b][i].className.match(/\bbewaar_options_datumoff\b/))
					divs[b][i].className += ' bewaar_options_datumoff';
			}

		var bewaarMelding = document.getElementById('bewaar_options_recent_melding');
		var reismandMelding = document.getElementById('reismand_options_recent_melding');
		if (bewaarAan)
			bewaarMelding.className += ' bewaar_options_off';
		else
		{
			bewaarMelding.innerHTML = 'Er zijn '+readableTekst+' geen reizen bewaard of geopend aan de balie';
			bewaarMelding.className = bewaarMelding.className.replace(/ ?\bbewaar_options_off\b/g, '');
		}
		if (reismandAan)
			reismandMelding.className += ' bewaar_options_off';
		else
		{
			reismandMelding.innerHTML = 'Er zijn '+readableTekst+' geen reizen bewaard of geopend';
			reismandMelding.className = reismandMelding.className.replace(/ ?\bbewaar_options_off\b/g, '');
		}

		if (saveCookie)
		{
			this.cookie.wanneer = wanneer;
			this.saveCookie();
		}

		return true;
	};

	toerEngineReismand.saveCookie = function toerEngineReismand_saveCookie()
	{
		var params = [ ];
		for (var i in this.cookie)
			params.push(encodeURIComponent(i)+'='+encodeURIComponent(this.cookie[i]));

		document.cookie = 'reismand='+encodeURIComponent(params.join('&'))+'; path=/';
		return true;
	};

	toerEngineReismand.addToSession = function toerEngineReismand_addToSession(data)
	{
		var reismandOptionsDiv = document.getElementById('reismand_options');
		var bewaarOptionsDiv = document.getElementById('bewaar_options');
		if (!reismandOptionsDiv || !bewaarOptionsDiv)
			return true;

		var reismandDiv = document.getElementById('reismandje_'+this.reismandId);
		var zoekDiv = document.getElementById('zoekresultaatje_'+this.reismandId);
		var bewaarDiv = document.getElementById('bewaartje_'+this.reismandId);

		if (!data && !reismandDiv && !zoekDiv)
			return false;

		function toerEngineReismand_eventHandler_mouseover(element) { element.className += ' mouseover'; return true; };
		function toerEngineReismand_eventHandler_mouseout(element) { element.className = element.className.replace(/ ?\bmouseover\b/g, ''); return true; };
		function toerEngineReismand_eventHandler_click(element) { return toerEngineReismand.selectReismand(element); };
		function toerEngineReismand_eventHandler_dblclickOpenReismand(element) { return toerEngineReismand.selectReismand(element) && toerEngineReismand.openReismand(); };
		function toerEngineReismand_eventHandler_dblclickBewaar(element) { return toerEngineReismand.selectReismand(element) && toerEngineReismand.bewaarReis(); };
		var setEvents = false;

		var tijd = data && data.timestamp ? new Date(parseInt(data.timestamp+'000', 10)) : new Date();
		var className = 'access'+mdate.format(tijd, 'yyyymmdd')+mdate.format(tijd, 'hhmmss')+' bewaar_options_selected';
		var html = [ ];

		if (!reismandDiv)
		{
			var balie = true;

			if (zoekDiv)
			{
				className += ' '+zoekDiv.className.replace(/ ?\b(access[0-9]{14}|bewaar_options_selected)\b/g, '');
				zoekDiv.className = className;
				zoekDiv.getElementsByTagName('span')[3].innerHTML = mdate.format(tijd, 'hh:mm');

				html.push(zoekDiv.innerHTML);
				balie = html[0].match(/ door <span class="doorbalie">/);
			}
			else
			{
				var email = data.email;
				var naam = data.naam;
				var klant = email+(email ? (naam ? ' - ' : '')+naam : (naam ? naam : 'Anonieme klant'));

				html.push('<span class="titel">'+klant+'<\/span>');
				html.push(' - <span>'+data.aantalReizen+' '+(data.aantalReizen == '1' ? 'reis' : 'reizen')+'<\/span><br \/>');
				html.push('<span>Geopend:<\/span> <span class="geopend">'+mdate.format(tijd, 'hh:mm')+'<\/span> uur - <span>Gemaakt:<\/span> '+mdate.format(tijd, 'hh:mm')+' uur');

				html.push(' (door <span class="doorbalie">balie<\/span>)<br \/>');
				html.push('<span class="maker">'+data.anvr+' - '+data.filiaalNaam+' - '+data.filiaalPlaats+'<\/span>');
			}

			setEvents = true;

			if (balie)
			{
				bewaarDiv = document.createElement('div');
				bewaarDiv.id = 'bewaartje_'+this.reismandId;
				bewaarDiv.className = className;
				bewaarDiv.innerHTML = html.join('').replace(/ \(door <span class="door(balie|consument)">.+$/, '');
			}

			reismandDiv = document.createElement('div');
			reismandDiv.id = 'reismandje_'+this.reismandId;
			reismandDiv.className = className;
			reismandDiv.innerHTML = html.join('');

			this.aantalSessie++;
		}
		else
		{
			// Verplaats de reismandDiv naar de sessie. Alleen even de access tijd bijwerken
			className += ' '+reismandDiv.className.replace(/ ?\b(access[0-9]{14}|bewaar_options_selected)\b/g, '');

			reismandDiv.getElementsByTagName('span')[3].innerHTML = mdate.format(tijd, 'hh:mm');
			reismandDiv.className = className;
			if (bewaarDiv)
			{
				bewaarDiv.getElementsByTagName('span')[3].innerHTML = mdate.format(tijd, 'hh:mm');
				bewaarDiv.className = className;
			}
			if (zoekDiv)
			{
				zoekDiv.getElementsByTagName('span')[3].innerHTML = mdate.format(tijd, 'hh:mm');
				zoekDiv.className = className;
			}

			if (data && data.aantalReizen)
			{
				reismandDiv.getElementsByTagName('span')[1].innerHTML = data.aantalReizen+' '+(data.aantalReizen == '1' ? 'reis' : 'reizen');
				if (bewaarDiv)
					bewaarDiv.getElementsByTagName('span')[1].innerHTML = data.aantalReizen+' '+(data.aantalReizen == '1' ? 'reis' : 'reizen');
				if (zoekDiv)
					zoekDiv.getElementsByTagName('span')[1].innerHTML = data.aantalReizen+' '+(data.aantalReizen == '1' ? 'reis' : 'reizen');
			}

			if (reismandDiv.parentNode.id && reismandDiv.parentNode.id !== 'reismand_options_sessie_workbox_contents')
			{
				this.aantalSessie++;
				this.aantalRecent--;
			}
		}

		var sessieReismandContainer = document.getElementById('reismand_options_sessie_workbox_contents');
		var sessieBewaarContainer = document.getElementById('bewaar_options_sessie_workbox_contents');
		var zoekReismandContainer = document.getElementById('reismand_options_zoeken_workbox_contents');
		if (sessieReismandContainer.firstChild !== reismandDiv)
			sessieReismandContainer.insertBefore(reismandDiv, sessieReismandContainer.firstChild);
		if (bewaarDiv && sessieBewaarContainer.firstChild !== bewaarDiv)
			sessieBewaarContainer.insertBefore(bewaarDiv, sessieBewaarContainer.firstChild);
		if (zoekDiv && zoekReismandContainer.firstChild !== zoekDiv)
			zoekReismandContainer.insertBefore(zoekDiv, zoekReismandContainer.firstChild);

		if (setEvents)
		{
			// Dan is de div nieuw gemaakt
			this.selectReismand(reismandDiv);
			eventHandler.add(reismandDiv, 'mouseover', null, toerEngineReismand_eventHandler_mouseover);
			eventHandler.add(reismandDiv, 'mouseout', null, toerEngineReismand_eventHandler_mouseout);
			eventHandler.add(reismandDiv, 'click', null, toerEngineReismand_eventHandler_click);
			eventHandler.add(reismandDiv, 'dblclick', null, toerEngineReismand_eventHandler_dblclickOpenReismand);
			if (bewaarDiv)
			{
				eventHandler.add(bewaarDiv, 'mouseover', null, toerEngineReismand_eventHandler_mouseover);
				eventHandler.add(bewaarDiv, 'mouseout', null, toerEngineReismand_eventHandler_mouseout);
				eventHandler.add(bewaarDiv, 'click', null, toerEngineReismand_eventHandler_click);
				eventHandler.add(bewaarDiv, 'dblclick', null, toerEngineReismand_eventHandler_dblclickBewaar);
			}
		}

		var recentReismandSection = document.getElementById('reismand_options_recent_workbox_section');
		var recentBewaarSection = document.getElementById('bewaar_options_recent_workbox_section');
		recentReismandSection.className += ' workbox_section_off';
		recentBewaarSection.className += ' workbox_section_off';

		var sessieReismandSection = document.getElementById('reismand_options_sessie_workbox_section');
		var sessieBewaarSection = document.getElementById('bewaar_options_sessie_workbox_section');
		if (sessieReismandSection.className.match(/\bworkbox_section_off\b/))
		{
			sessieReismandSection.className = sessieReismandSection.className.replace(/ ?\bworkbox_section_off\b/g, '');
			recentReismandSection.getElementsByTagName('div')[1].innerHTML = 'Oudere bewaarde reizen';
			sessieBewaarSection.className = sessieBewaarSection.className.replace(/ ?\bworkbox_section_off\b/g, '');
			recentBewaarSection.getElementsByTagName('div')[1].innerHTML = 'Oudere bewaarde reizen';
		}

		var recentReismandLink = document.getElementById('reismand_options_recent_link');
		var recentBewaarLink = document.getElementById('bewaar_options_recent_link');
		if (this.aantalRecent > 0)
		{
			recentReismandLink.className = recentReismandLink.className.replace(/ ?\blink_off\b/g, '');
			recentBewaarLink.className = recentBewaarLink.className.replace(/ ?\blink_off\b/g, '');
		}
		else if (!recentReismandLink.className.match(/\blink_off\b/))
		{
			recentReismandLink.className += ' link_off';
			recentBewaarLink.className += ' link_off';
		}

		return true;
	};

	toerEngineReismand.showIndicator = function toerEngineReismand_showIndicator(message)
	{
		var indicatorDiv = document.getElementById('reismand_indicator');
		if (!indicatorDiv)
		{
			indicatorDiv = document.createElement('div');
			indicatorDiv.id = 'reismand_indicator';
			indicatorDiv.className = 'indicator_on';
			indicatorDiv.innerHTML = '<img src="/images/t-static.gif" alt="progressIndicator" \/><div>&nbsp;<\/div>';
			document.getElementsByTagName('body')[0].appendChild(indicatorDiv);
		}
		indicatorDiv.className = 'indicator_on';

		var messageDiv = indicatorDiv.getElementsByTagName('div')[0];
		messageDiv.innerHTML = message;

		setTimeout(function() { document.getElementById('reismand_indicator').className = 'indicator_off'; return true; }, 2500);

		return true;
	};

	toerEngineReismand.keepAlive = function toerEngineReismand_keepAlive()
	{
		if (toerEngine.resultaten)
		{
			for (var i = 0; i < toerEngine.resultaten.packages.length; i++)
				if (toerEngine.resultaten.packages[i].sessionId)
				{
					var job = new toerEngineJob('keep_alive');
					job.session(toerEngine.resultaten.packages[i].sessionId);
					job.send();
				}

			return true;
		}

		return toerEngineJobQueue.keepAlive();
	};

})();

eventHandler.add(window, 'load', toerEngineReismand, 'init');

if (location.pathname.match(/\/bewaardereizen\.php/))
{
	if (toerEngineJobQueue.keepAliveInterval)
	{
		clearInterval(toerEngineJobQueue.keepAliveInterval);
		toerEngineJobQueue.keepAliveInterval = 0;
	}

	toerEngineJobQueue.keepAliveInterval = setInterval(toerEngineReismand.keepAlive, 300000);

	toerEngine.reload = function toerEngine_reload()
	{
		if (toerkoop && toerkoop.anvr && parseInt(toerkoop.anvr, 10) != parseInt(location.pathname.replace(/^\/([0-9]+)\/.+$/, '$1', 10)))
			location = location.href.replace(/\/bewaardereizen\.php/, '/'+toerkoop.anvr+'/bewaardereizen.php');
		else
			location = location.href;
		return true;
	};
}



