/*== HideEmptyImages ==*/
function HideEmptyImages()
{	
	var regex_1 = new RegExp("(shownoimg)\.gif$");
	
	for (var i=0; i < document.images.length; i++)
	{
		if (regex_1.test(document.images[i].src))
		{
			document.images[i].style.display = "none";
		}
	}
}
/*== ==*/

/*== deleteEmptyImagesAt ==*/
function deleteEmptyImagesAt(id)
{
	if (document.getElementById(id))
	{
		var containerObject = document.getElementById(id);
		var regex_1 = new RegExp("(spacer)\.gif$");
			
		for (var i=0; i<containerObject.getElementsByTagName("img").length; i++)
		{
			var currentObject = containerObject.getElementsByTagName("img")[i];
			var parentObject = false;
			
			if (regex_1.test(currentObject.src))
			{
				parentObject = currentObject.parentNode;
				parentObject.removeChild(currentObject);
			}
		}
		
	}
}
/*== ==*/

/*== Cookie scripts ==*/
//createCookie("_cookieName","cookieValue",365,"/","","");
function createCookie( name, value, expires, path, domain, secure )
{
	// set time, it's in milliseconds
	var today = new Date();
	today.setTime( today.getTime() );
	
	/*
	if the expires variable is set, make the correct
	expires time, the current script below will set
	it for x number of days, to make it for hours,
	delete * 24, for minutes, delete * 60 * 24
	*/
	if ( expires )
	{
	expires = expires * 1000 * 60 * 60 * 24;
	}
	var expires_date = new Date( today.getTime() + (expires) );
	
	document.cookie = name + "=" +escape( value ) +
	( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) +
	( ( path ) ? ";path=" + path : "" ) +
	( ( domain ) ? ";domain=" + domain : "" ) +
	( ( secure ) ? ";secure" : "" );
}

// this fixes an issue with the old method, ambiguous values
// with this test document.cookie.indexOf( name + "=" );
function readCookie( check_name )
{
	// first we'll split this cookie up into name/value pairs
	// note: document.cookie only returns name=value, not the other components
	var a_all_cookies = document.cookie.split( ';' );
	var a_temp_cookie = '';
	var cookie_name = '';
	var cookie_value = '';
	var b_cookie_found = false; // set boolean t/f default f

	for ( i = 0; i < a_all_cookies.length; i++ )
	{
		// now we'll split apart each name=value pair
		a_temp_cookie = a_all_cookies[i].split( '=' );


		// and trim left/right whitespace while we're at it
		cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');

		// if the extracted name matches passed check_name
		if ( cookie_name == check_name )
		{
			b_cookie_found = true;
			// we need to handle case where cookie has no value but exists (no = sign, that is):
			if ( a_temp_cookie.length > 1 )
			{
				cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
			}
			// note that in cases where cookie is initialized but no value, null is returned
			return cookie_value;
			break;
		}
		a_temp_cookie = null;
		cookie_name = '';
	}
	if ( !b_cookie_found )
	{
		return null;
	}
}
/*== ==*/

/*== setActiveNavNeighbourAndFirstItem ==*/
function setActiveNavNeighbourAndFirstItem(menuId)
{
	$("#"+menuId+" .active1").next(".item1").addClass("neighbourOfActive");
	$("#"+menuId+" .item1:eq(0)").addClass("first");
	
	$("#"+menuId+" .item1 a").bind("mouseover",function(index)
	{
		$("#"+menuId+" .item1").removeClass("neighbourOfHover");
		
		$(this).parents(".item1").next(".item1").addClass("neighbourOfHover");
	});
	$("#"+menuId+" .item1 a").bind("mouseout",function(index)
	{
		$("#"+menuId+" .item1").removeClass("neighbourOfHover");
	});
}
/*== ==*/

/*== Ajax Zoek ==*/
var loopUrlStartId = "url";

function generateLoopUrl(formName)
{
	var formObject = false;
	var generatedUrl = "";
	
	if (document.forms[formName])
	{
		formObject = document.forms[formName];
		generatedUrl = document.forms[formName].elements.url.value;
		
		for (var i = 0; i < formObject.elements.length; i++)
		{
			if (formObject.elements[i].className.match(/inLoopString/))
			{
				if (formObject.elements[i].type == "checkbox")
				{
					if (formObject.elements[i].checked)
					{
						generatedUrl += "&" + formObject.elements[i].name + "=" + formObject.elements[i].value;
					}
				}
				else
				{
					generatedUrl += "&" + formObject.elements[i].name + "=" + formObject.elements[i].value;
				}
			}
		}
	}
	
	return generatedUrl;
}

var loadGebouwenTimer = false;
var oldTextData = "";

function loadGebouwenWhileTyping(formName,callingElement)
{
	if (callingElement.value != oldTextData || callingElement.value == '')
	{
		clearTimeout(loadGebouwenTimer);
		loadGebouwenTimer = setTimeout("loadGebouwen('"+formName+"')",500);
		
		oldTextData = callingElement.value;
	}
}
function loadGebouwenWithDelay(formName)
{
	clearTimeout(loadGebouwenTimer);
	loadGebouwenTimer = setTimeout("loadGebouwen('"+formName+"')",600);
}
function highlightGebouwen(containerResultsExpression)
{
	$(".eilandGebouwenKaartMaskers img.masker").stop(true,true);
	$(".eilandGebouwenKaartMaskers img.masker").fadeOut(100);
	
	$(containerResultsExpression + " .gebouw").each(function()
	{
		$(".eilandGebouwenKaartMaskers .eilandGebouwenKaartMasker_"+$(this).find(".pageid").html()+" img.masker").fadeIn(100);
	});
}
function hoverHighlightGebouw(containerResultsExpression, pageId)
{
	$(containerResultsExpression + " .gebouw").each(function()
	{
		$(".eilandGebouwenKaartMaskers img.masker").removeClass("hovered");
	});
	
	$(".eilandGebouwenKaartMaskers .eilandGebouwenKaartMasker_"+pageId+" img.masker").addClass("hovered");
}
function unhoverHighlightGebouwen(containerResultsExpression, pageId)
{
	$(containerResultsExpression + " .gebouw").each(function()
	{
		$(".eilandGebouwenKaartMaskers img.masker").removeClass("hovered");
	});
}
function loadGebouwen(formName)
{
	$("#eilandZoekresultatenLoader").stop(true,true);
	$("#eilandZoekresultatenLoader").fadeIn(100);
	$("#eilandZoekresultatenWoningen").animate({opacity:0.0},{queue:false,duration:400});
	//$("#testUrl").html(generateLoopUrl(formName));
	
	var generatedLoopUrl = generateLoopUrl(formName);
	
	if (generatedLoopUrl.match(/_value=(?=[A-Za-z0-9])/))
	{
		$.post(generatedLoopUrl,
			function(data)
			{
				var data = eval('(' + data + ')');
				var dataToPaste = "";
				
				var gebouwIndex = 0;
				
				for (gebouwIndex; gebouwIndex<data.gebouwen.length-1; gebouwIndex++)
				{
					dataToPaste += ""+
						"<div class='gebouw' onmouseover='hoverHighlightGebouw(\"#eilandZoekresultatenWoningen\",\""+data.gebouwen[gebouwIndex].gebouw[0].pageid+"\");' onmouseout='unhoverHighlightGebouwen(\"#eilandZoekresultatenWoningen\");'>"+
							"<a title='"+data.gebouwen[gebouwIndex].gebouw[0].naam+"' class='gebouwLink' href='/cms/publish/content/showpage.asp?pageid="+data.gebouwen[gebouwIndex].gebouw[0].pageid+"'><span class='hidden pageid'>"+data.gebouwen[gebouwIndex].gebouw[0].pageid+"</span>"+
								"<div class='gebouw_data'>"+
									"<h3>Woning ("+data.gebouwen[gebouwIndex].gebouw[0].bouwnummer+"):</h3>"+
									//"<em>Type: </em><ul>"+voorkeurenFormatForView(data.gebouwen[gebouwIndex].gebouw[0].woningtype,'type_searchresult',false)+"</ul>"+
									"<em>GBO: </em>"+data.gebouwen[gebouwIndex].gebouw[0].woningoppervlakte+" m&sup2;<br>"+
									"<em>Kavel: </em>"+data.gebouwen[gebouwIndex].gebouw[0].kaveloppervlakte+" m&sup2;<br><br>"+
								"</div>"+
								"<div class='gebouw_pic'>"+
									"<a href='/cms/publish/content/showpage.asp?pageid="+data.gebouwen[gebouwIndex].gebouw[0].pageid+"'><img src='"+data.gebouwen[gebouwIndex].gebouw[0].pic1+"' alt='"+data.gebouwen[gebouwIndex].gebouw[0].naam+"' title='"+data.gebouwen[gebouwIndex].gebouw[0].naam+"' border='0'></a>"+
								"</div>"+
							"</a>"+
						"</div>";
				}
				
				if (gebouwIndex == 0)
				{
					dataToPaste = "Er zijn geen gebouwen gevonden die aan de opgegeven criteria voldoen.";
				}
				
				$("#eilandZoekresultatenLoader").fadeOut(400);
				$("#eilandZoekresultatenWoningen").html(dataToPaste);
				$("#eilandZoekresultatenWoningen").animate({opacity:1},{queue:false,duration:400});
				
				highlightGebouwen("#eilandZoekresultatenWoningen");
			}
		);
	}
	else
	{
		unloadGebouwen("#eilandZoekresultatenWoningen");
		
		$("#eilandZoekresultatenLoader").fadeOut(400);
		$("#eilandZoekresultatenWoningen").animate({opacity:1},{queue:false,duration:400});
	}
}
function unloadGebouwen(containerResultsExpression)
{
	$(".eilandGebouwenKaartMaskers img.masker").stop(true,true);
	$(".eilandGebouwenKaartMaskers img.masker").fadeOut(100);
	$(containerResultsExpression).html("");
}
/*== ==*/

/*== Voorkeuren ==*/
var voorkeurenFormName = "frm_appartement_voorkeuren";
var voorkeurenOverzichtId = "voorkeuren_stored";
var voorkeurenOverzichtHeaderId = "voorkeuren_tabel_header";
var voorkeurenOverzichtUrl = "/cms/publish/content/showpage.asp?pageid=315";
var voorkeurenAantal = 0;
var voorkeurenMaximumAantal = 5;
var voorkeurenButtonPressed = "none";
var voorkeurenStandaardAanhef = "heer/mevrouw";
var voorkeurenVerzendenNaar = "Kristal Projectontwikkeling";
var voorkeurenMeldingAlInVoorkeuren = "Deze woning bestaat al reeds in uw favorieten!";
var voorkeurenMeldingMaximum = "Maximaal [voorkeurenAantal] voorkeur(en) toegestaan!";
var voorkeurenMeldingGeenVerwijderen = "Er zijn geen voorkeuren om te verwijderen";
var voorkeurenMeldingGeenVoorkeuren = "Er zijn geen voorkeuren om te versturen!";
var voorkeurenMeldingGegevensVerzondenNaarBezoeker = "Gegevens zijn verzonden naar '[bezoekerEmail]'!";
var voorkeurenMeldingGegevensVerzondenNaarBezoekerEnMaatwerk = "Gegevens zijn verzonden naar '[bezoekerEmail]' en naar [voorkeurenVerzendenNaar]!";
var voorkeurenBevestigingGegevensVerzending = "De voorkeursgegevens incl. uw persoonsgegevens worden naar '[bezoekerEmail]' en naar [voorkeurenVerzendenNaar] verzonden. Wilt u doorgaan?"
var voorkeurenBevestigingVoorkeurVerwijderen = "De voorkeur met het nummer '[voorkeurNummer]' wordt verwijderd. Wilt u doorgaan?";
var voorkeurenScriptVerwijzerBij1Voorkeur = "/dezwanen/scriptverwijzer/voorkeuren1.htm";
var voorkeurenScriptVerwijzerBij2Voorkeuren = "/dezwanen/scriptverwijzer/voorkeuren2.htm";
var voorkeurenScriptVerwijzerBij3Voorkeuren = "/dezwanen/scriptverwijzer/voorkeuren3.htm";
var voorkeurenScriptVerwijzerBij4Voorkeuren = "/dezwanen/scriptverwijzer/voorkeuren4.htm";
var voorkeurenScriptVerwijzerBij5Voorkeuren = "/dezwanen/scriptverwijzer/voorkeuren5.htm";
var voorkeurenNAWdatum = "DD-MM-JJJJ";
var voorkeurenMaatwerkUrl = "/dezwanen/maatwerk/renewVisitorsVoorkeuren.asp";
var voorkeurenHeader = 	'<div class="voorkeur_nummer">Voorkeurnummer</div>'+
						'<div class="voorkeur_type">Naam</div>'+
						'<div class="voorkeur_woningoppervlakte">GBO (m&sup2;)</div>'+
						'<div class="voorkeur_kaveloppervlakte">Kaveloppervlakte (m&sup2;)</div>';
var voorkeurenOverzichtMeldingGeenVoorkeuren = "Geen voorkeuren aanwezig";
var voorkeurenDataRijStart = "naam";
var voorkeurenEmailScript = '/cms/publish/scripts/email.asp';
	
	/*= addVoorkeur =*/
	function addVoorkeur(type)
	{
		// Definieer een variabele welke de ruwe data van de cookie zal bevatten
		var cookieContent = false;
		
		// Definieer een variabele  welke de nieuwe gegevens bevat voor in de cookie
		var voorkeurenToStore = "";
		
		// Controleer of alle gegevens aanwezig zijn
		if (voorkeurDataTypes && voorkeurDataUses && voorkeurDataValues)
		{
			//[DEBUG]alert("data arrays available");
			// Haal de huidige cookie gegevens op
			cookieContent = unescape(readCookie("AppartementVoorkeuren"));
			
			// Controleer of er huidige gegevens aanwezig zijn, zoja splits deze op en voeg de nieuwe voorkeur gegevens toe
			if (!cookieContent || cookieContent == "null")
			{
				//[DEBUG]alert("cookie not available");
				// Voeg de nieuwe voorkeur toe aan het geheel (aangezien er nog geen bestaande voorkeuren zijn, hoeft hier geen ~ symbool voor)
				for (var voorkeurDataIndex = 0; voorkeurDataIndex < voorkeurDataTypes.length; voorkeurDataIndex++)
				{
					if (voorkeurDataIndex == 0)
					{
						voorkeurenToStore = voorkeurDataValues[voorkeurDataIndex];
					}
					else
					{
						voorkeurenToStore += "," + voorkeurDataValues[voorkeurDataIndex];
					}
				}
			}
			else
			{
				//[DEBUG]alert("cookie IS available");
				// Definieer variabelen om door verschillende voorkeuren te kunnen lopen en splits de voorkeuren op
				var voorkeuren = cookieContent.split(/~/);
				
				var voorkeur = "";
				var voorkeurSeparator = "";
				
				var voorkeurData = "";
				var voorkeurDataSeparator = "";
				
				// Als er al een maximum aantal voorkeuren aanwezig is geef een melding weer en stop de functie
				if (voorkeuren.length >= voorkeurenMaximumAantal)
				{
					var meldingMax = voorkeurenMeldingMaximum.replace(/\[voorkeurenAantal\]/g,voorkeurenMaximumAantal);
					
					alert(meldingMax);
					
					if (type == "return")
					{
						history.back(-1);
					}
					else if (type == "contact")
					{
						window.location.href = voorkeurenOverzichtUrl;
					}
					
					return;
				}
				
				// Loop door de bestaande voorkeuren heen
				for (var indexVoorkeur = 0; indexVoorkeur < voorkeuren.length; indexVoorkeur++)
				{
					// Splits de voorkeur data op
					var voorkeur = "";
					voorkeurData = voorkeuren[indexVoorkeur];
					voorkeurData = voorkeurData.split(/,/);
					
					// Loop door de voorkeur data heen
					for (var indexVoorkeurData = 0; indexVoorkeurData < voorkeurDataTypes.length; indexVoorkeurData++)
					{
						/* Als er een veld undefined bevat is de data verouderd en moet de cookie worden geleegd (nieuwe velden kunnen zijn toegevoegd)
						if (voorkeurData[indexVoorkeurData] == "undefined")
						{
							alert("Verouderde data: " + voorkeurDataTypes[indexVoorkeurData] + " = " + voorkeurData[indexVoorkeurData] + " in:\n" + voorkeuren);
							
							createCookie("AppartementVoorkeuren","",-1,"/","","");
							
							return;
						}*/
						
						if (indexVoorkeurData == 0)
						{
							// Als er al in de bestaande voorkeuren een pageId aanwezig is die nu zou worden toegevoegd, een melding weergeven en stop de functie
							if (voorkeurData[indexVoorkeurData] == voorkeurDataValues[0])
							{
								alert(voorkeurenMeldingAlInVoorkeuren);
								
								if (type == "return")
								{
									history.back(-1);
								}
								else if(type == "contact")
								{
									window.location.href = voorkeurenOverzichtUrl;
								}
								
								return;
							}
							
							// Reset de huidige voorkeur variabele, zodat er geen dubbele gegevens in kunnen komen
							voorkeur = voorkeurData[indexVoorkeurData];
						}
						else
						{
							voorkeurDataSeparator = ",";
							
							// Stel de huidige voorkeur samen
							voorkeur += voorkeurDataSeparator + voorkeurData[indexVoorkeurData];
						}
					}
					
					// Na de eerste voorkeur een tilde voor de voorkeur plaatsen, voor gemakkelijke onderscheiding van verschillende voorkeuren
					if (indexVoorkeur > 0)
					{
						voorkeurSeparator = "~";
					}
					
					// Voeg de samengestelde voorkeur toe aan het geheel
					voorkeurenToStore += voorkeurSeparator + "" + voorkeur + "";
				}
				
				
				// Voeg de nieuwe voorkeur toe aan het geheel (aangezien er nog geen bestaande voorkeuren zijn, hoeft hier geen ~ symbool voor)
				voorkeurenToStore += "~";
				
				for (var voorkeurDataIndex = 0; voorkeurDataIndex < voorkeurDataTypes.length; voorkeurDataIndex++)
				{
					if (voorkeurDataIndex == 0)
					{
						voorkeurenToStore += voorkeurDataValues[voorkeurDataIndex];
					}
					else
					{
						voorkeurenToStore += "," + voorkeurDataValues[voorkeurDataIndex];
					}
				}
				
			}
			
			// Schrijf de nieuwe voorkeuren naar de cookie
			createCookie("AppartementVoorkeuren",voorkeurenToStore,365,"/","","");
			//document.getElementById("debug").innerHTML = unescape(document.cookie);
			//document.getElementById("debug").innerHTML = voorkeurenToStore;
		}
		
		if (type == "return")
		{
			history.back(-1);
		}
		else if (type == "contact")
		{
			window.location.href = voorkeurenOverzichtUrl;
		}
		else if (type == "confirm")
		{
			alert("De woning is aan uw voorkeurenlijst toegevoegd!");
		}
	}
	/*= =*/
	
	/*= removeVoorkeur =*/
	function removeVoorkeur(voorkeurNummerToBeErased)
	{
		var meldingVoorkeurVerwijderen = voorkeurenBevestigingVoorkeurVerwijderen.replace(/\[voorkeurNummer\]/g,voorkeurNummerToBeErased);
		
		/*if (confirm(meldingVoorkeurVerwijderen))
		{*/
			var cookieContent = unescape(readCookie("AppartementVoorkeuren"));
			
			if (cookieContent && cookieContent != "null")
			{
				var existingCookieContent = "";
				var voorkeurenAantalRestored = 0;
				
				// Definieer variabelen om door verschillende voorkeuren te kunnen lopen en splits de voorkeuren op
				var voorkeuren = cookieContent.split(/~/);
				var voorkeur = "";
				
				for (var indexVoorkeur = 0; indexVoorkeur < voorkeuren.length; indexVoorkeur++)
				{
					var voorkeurNummer = indexVoorkeur + 1;
					voorkeurData = voorkeuren[indexVoorkeur];
					voorkeurData = voorkeurData.split(/,/);
					
					if (voorkeurNummer != voorkeurNummerToBeErased)
					{
						if (voorkeurenAantalRestored == 0)
						{
							existingCookieContent += voorkeuren[indexVoorkeur];
						}
						else
						{
							existingCookieContent += "~" + voorkeuren[indexVoorkeur];
						}
						
						voorkeurenAantalRestored++;
					}
				}
				
				voorkeurenAantal = voorkeurenAantalRestored;
				
				//alert(existingCookieContent);
				
				createCookie("AppartementVoorkeuren",existingCookieContent,365,"/","","");
				
				loadVoorkeuren(voorkeurenOverzichtId);
			}
		/*}*/
	}
	/*= =*/
	
	/*= Verzendfuncties =*/
	function setSendTypeFields()
	{
		var voorkeurenStored = false;
		
		if (document.getElementById(voorkeurenOverzichtId) && voorkeurenButtonPressed != "none")
		{
			var currentInputElement = false;
			voorkeurenStored = document.getElementById(voorkeurenOverzichtId);
			
			for (var currentInputElementIndex = 0; currentInputElementIndex < voorkeurenStored.getElementsByTagName("input").length; currentInputElementIndex++)
			{
				currentInputElement = voorkeurenStored.getElementsByTagName("input")[currentInputElementIndex];
				
				if (currentInputElement.name.match(/sendtype/))
				{
					switch(voorkeurenButtonPressed)
					{
						case("eraseList"):
							
							currentInputElement.value = "Leeg mijn voorkeurenlijst";
							
						break;
						
						case("submitSelf"):
							
							currentInputElement.value = "Stuur mijn voorkeur naar mijzelf";
							
						break;
						
						case("submitAll"):
							
							currentInputElement.value = "Verzend mijn voorkeuren naar "+voorkeurenVerzendenNaar;
							
						break;
						
					}
				}
			}
		}
	}
	/* Optie 1 - Legen van lijst en anoniem geegvens verzenden naar maatwerk */
	function voorkeurenEraseList()
	{
		if (voorkeurenAantal < 1)
		{
			alert(voorkeurenMeldingGeenVerwijderen);
			
			return;
		}
		
		voorkeurenButtonPressed = "eraseList";
		
		emptyNAWdata();
		
		setSendTypeFields();
		
		document.forms[voorkeurenFormName].action = voorkeurenMaatwerkUrl;
		document.forms[voorkeurenFormName].submit();
	}
	/* Optie 2 - Gegevens naar invuller verzenden en anoniem verzenden naar maatwerk */
	function voorkeurenSubmitSelf()
	{
		voorkeurenButtonPressed = "submitSelf";
		
		if (!document.getElementById('fld_naw_email').value.match(/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/))
		{
			alert('E-mail is een verplicht veld!');
			
			document.getElementById('fld_naw_email').focus();
			
			return;
		}
		else
		{
			document.getElementById('to_email_address').value = document.getElementById('fld_naw_email').value;
			
			switch(voorkeurenAantal)
			{
				case(0):
					
					alert(voorkeurenMeldingGeenVoorkeuren);
					
					return;
					
				break;
				
				case(1):
					
					document.getElementById('body_template_url').value = voorkeurenScriptVerwijzerBij1Voorkeur;
					
				break;
				
				case(2):
					
					document.getElementById('body_template_url').value = voorkeurenScriptVerwijzerBij2Voorkeuren;
					
				break;
				
				case(3):
					
					document.getElementById('body_template_url').value = voorkeurenScriptVerwijzerBij3Voorkeuren;
					
				break;
				
				case(4):
					
					document.getElementById('body_template_url').value = voorkeurenScriptVerwijzerBij4Voorkeuren;
					
				break;
				
				case(5):
					
					document.getElementById('body_template_url').value = voorkeurenScriptVerwijzerBij5Voorkeuren;
					
				break;
			}
			
			if (document.getElementById('fld_naw_naam').value == "")
			{
				document.getElementById('fld_naw_naam').value = voorkeurenStandaardAanhef;
			}
			
			document.forms[voorkeurenFormName].action = voorkeurenEmailScript;
			document.forms[voorkeurenFormName].submit();
		}
	}
	/* Optie 3 - Gegevens naar invuller en maatwerk verzenden */
	function voorkeurenSubmitAll()
	{
		voorkeurenButtonPressed = "submitAll";
		
		if (document.getElementById('fld_naw_aanhef').value.length < 1)
		{
			alert('Aanhef is een verplicht!');
			
			document.getElementById('fld_naw_aanhef').focus();
			
			return;
		}
		if (document.getElementById('fld_naw_naam').value.length < 1)
		{
			alert('Voorletters + achternaam is een verplicht veld!');
			
			document.getElementById('fld_naw_naam').focus();
			
			return;
		}
		else if (document.getElementById('fld_naw_adres').value.length < 1)
		{
			alert('Adres + huisnummer is een verplicht veld!');
			
			document.getElementById('fld_naw_adres').focus();
			
			return;
		}
		else if (document.getElementById('fld_naw_postcode').value.length < 1)
		{
			alert('Postcode is een verplicht veld!');
			
			document.getElementById('fld_naw_postcode').focus();
			
			return;
		}
		else if (document.getElementById('fld_naw_woonplaats').value.length < 1)
		{
			alert('Woonplaats is een verplicht veld!');
			
			document.getElementById('fld_naw_woonplaats').focus();
			
			return;
		}
		else if (document.getElementById('fld_naw_geboortedatum').value.length < 1 || document.getElementById('fld_naw_geboortedatum').value == 'DD-MM-JJJJ')
		{
			alert('Geboortedatum is een verplicht veld!');
			
			document.getElementById('fld_naw_geboortedatum').focus();
			
			return;
		}
		else if (document.getElementById('fld_naw_gezinssamenstelling').value.length < 1)
		{
			alert('Gezinsamenstelling is een verplicht veld!');
			
			document.getElementById('fld_naw_gezinssamenstelling').focus();
			
			return;
		}
		else if (!document.getElementById('fld_naw_email').value.match(/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/))
		{
			alert('E-mail is een verplicht veld!');
			
			document.getElementById('fld_naw_email').focus();
			
			return;
		}
		/*else if (document.getElementById('code_captcha').value.length < 1)
		{
			alert('Controlegetal is een verplicht veld!');
			
			document.getElementById('code_captcha').focus();
			
			return;
		}*/
		else if (document.getElementById('fld_naw_telefoonnummer').value.length < 1)
		{
			alert('Telefoon/mobiel is een verplicht veld!');
			
			document.getElementById('fld_naw_telefoonnummer').focus();
			
			return;
		}
		else
		{
			document.getElementById('to_email_address').value = document.getElementById('fld_naw_email').value;
			
			switch(voorkeurenAantal)
			{
				case(0):
					
					alert(voorkeurenMeldingGeenVoorkeuren);
					
					return;
					
				break;
				
				case(1):
					
					document.getElementById('body_template_url').value = voorkeurenScriptVerwijzerBij1Voorkeur;
					
				break;
				
				case(2):
					
					document.getElementById('body_template_url').value = voorkeurenScriptVerwijzerBij2Voorkeuren;
					
				break;
				
				case(3):
					
					document.getElementById('body_template_url').value = voorkeurenScriptVerwijzerBij3Voorkeuren;
					
				break;
				
				case(4):
					
					document.getElementById('body_template_url').value = voorkeurenScriptVerwijzerBij4Voorkeuren;
					
				break;
				
				case(5):
					
					document.getElementById('body_template_url').value = voorkeurenScriptVerwijzerBij5Voorkeuren;
					
				break;
			}
			
			var meldingGegevensVerzending = voorkeurenBevestigingGegevensVerzending.replace(/\[bezoekerEmail\]/g,document.getElementById('to_email_address').value);
			meldingGegevensVerzending = meldingGegevensVerzending.replace(/\[voorkeurenVerzendenNaar\]/g,voorkeurenVerzendenNaar);
			
			if (confirm(meldingGegevensVerzending))
			{
				if (document.getElementById('fld_naw_naam').value == "")
				{
					document.getElementById('fld_naw_naam').value = voorkeurenStandaardAanhef;
				}
				
				document.forms[voorkeurenFormName].action = voorkeurenEmailScript;
				document.forms[voorkeurenFormName].submit();
			}
		}
	}
	/*= =*/
	
	/*= Callbackhandlers voor succesvolle verzendingen van e-mails en maatwerk =*/
	// Functie die wordt aangeroepen als een email succesvol is verzonden
	function voorkeurEmailSuccessCallbackHandler()
	{
		if (document.getElementById('fld_naw_naam').value == voorkeurenStandaardAanhef)
		{
			document.getElementById('fld_naw_naam').value = "";
		}
		if (document.getElementById('fld_naw_geboortedatum').value == voorkeurenNAWdatum)
		{
			document.getElementById('fld_naw_geboortedatum').value = "";
		}
		
		if (voorkeurenButtonPressed == "eraseList" || voorkeurenButtonPressed == "submitSelf")
		{
			emptyNAWdata();
		}
		
		setSendTypeFields();
		
		document.forms[voorkeurenFormName].action = voorkeurenMaatwerkUrl;
		document.forms[voorkeurenFormName].submit();
	}

	// Functie die wordt aangeroepen als het ASP script in de verborgen iframe klaar is met laden
	function voorkeurCallbackHandler()
	{
		switch(voorkeurenButtonPressed)
		{
			case("none"):
				
				// Do nothing
				
			break;
			
			case("eraseList"):
				
				createCookie('AppartementVoorkeuren','',-1,'/','','');
				loadVoorkeuren('voorkeuren_stored');
				voorkeurenButtonPressed = "none";
				voorkeurenAantal = 0;
				
				alert("Voorkeuren gewist!");
				
			break;
			
			case("submitSelf"):
				
				var meldingSubmitSelf = voorkeurenMeldingGegevensVerzondenNaarBezoeker.replace(/\[bezoekerEmail\]/g,$("#to_email_address").attr("value"));
				var meldingSubmitSelf = meldingSubmitSelf.replace(/\[voorkeurenVerzendenNaar\]/g,voorkeurenVerzendenNaar);
				
				alert(meldingSubmitSelf);
				
			break;
			
			case("submitAll"):
			
				var meldingSubmitAll = voorkeurenMeldingGegevensVerzondenNaarBezoekerEnMaatwerk.replace(/\[bezoekerEmail\]/g,$("#to_email_address").attr("value"));
				var meldingSubmitAll = meldingSubmitAll.replace(/\[voorkeurenVerzendenNaar\]/g,voorkeurenVerzendenNaar);
				
				alert(meldingSubmitAll);
				
			break;
		}
	}
	/*= =*/
	
	/*= Voorkeuren tonen =*/
	function loadVoorkeuren(voorkeurenId)
	{
		// Definieer een variabele welke een object zal bevatten waarin de huidige toegevoegde voorkeuren zullen worden weergegeven
		var voorkeurenObject = false;
		
		if (document.getElementById(voorkeurenId))
		{
			voorkeurenObject = document.getElementById(voorkeurenId);
			
			voorkeurenObject.innerHTML = "";
			
			// Definieer een variabele welke de ruwe data van de cookie zal bevatten
			var cookieContent = unescape(readCookie("AppartementVoorkeuren"));
			
			// Controleer of er huidige gegevens aanwezig zijn, zoja splits deze op en voeg de nieuwe voorkeur gegevens toe
			if (cookieContent && cookieContent != "null")
			{
				// Definieer variabelen om door verschillende voorkeuren te kunnen lopen en splits de voorkeuren op
				var voorkeuren = cookieContent.split(/~/);
				var voorkeur = "";
				
				var huidigeVoorkeurData = "";
				
				// Definieer een variabele welke de opgehaalde voorkeuren bevat in html formaat
				var voorkeurenContent = "";
				
				for (var indexVoorkeur = 0; indexVoorkeur < voorkeuren.length; indexVoorkeur++)
				{
					var voorkeurNummer = indexVoorkeur + 1;
					voorkeurData = voorkeuren[indexVoorkeur];
					voorkeurData = voorkeurData.split(/,/);
					
					var voorkeurPageId = false;
					
					// Voeg een nieuwe voorkeur toe
					if (indexVoorkeur % 2 == 0)
					{
						voorkeurenContent += "<div class='voorkeur_item'>";
					}
					else
					{
						voorkeurenContent += "<div class='voorkeur_item voorkeur_item_odd'>";
					}
					
					for (var indexVoorkeurData = 0; indexVoorkeurData < voorkeurDataTypes.length; indexVoorkeurData++)
					{
						var voorkeur = "";
						
						var voorkeur_dateValue = deReplaceSpecialSymbols(voorkeurData[indexVoorkeurData]);
						var voorkeur_dateUse = deReplaceSpecialSymbols(voorkeurDataUses[indexVoorkeurData]);
						var voorkeur_dateType = deReplaceSpecialSymbols(voorkeurDataTypes[indexVoorkeurData]);
						
						if (voorkeur_dateType == "prijsklasse")
						{
							voorkeur_dateValue = voorkeurenFormatForView(voorkeur_dateValue, "prijsklasse_excel");
						}
						if (voorkeur_dateType == "opties")
						{
							voorkeur_dateValue = voorkeurenFormatForView(voorkeur_dateValue, "opties", true);
						}
						if (voorkeur_dateType == "ligging")
						{
							voorkeur_dateValue = voorkeurenFormatForView(voorkeur_dateValue, "ligging");
						}
						
						if (voorkeur_dateUse == "identifier")
						{
							voorkeurPageId = voorkeur_dateValue;
							voorkeur += "<div class='voorkeur_item_rij'><div class='voorkeur_nummer'><a href='/cms/publish/content/showpage.asp?pageid="+voorkeurPageId+"'>Voorkeur "+voorkeurNummer+"</a><input type='hidden' name='fld_voorkeur"+voorkeurNummer+"_voorkeurnummer' value='"+voorkeurNummer+"'><input type='hidden' name='fld_voorkeur"+voorkeurNummer+"_pageid' value='"+voorkeurPageId+"'></div>";
						}
						else if (voorkeur_dateUse == "text")
						{
							if (voorkeurPageId)
							{
								voorkeur += "<div class='voorkeur_"+voorkeur_dateType+"'><a href='/cms/publish/content/showpage.asp?pageid="+voorkeurPageId+"'><input type='text' readonly='readonly' name='fld_voorkeur"+voorkeurNummer+"_"+voorkeur_dateType+"' value='"+voorkeur_dateValue+"' /></a></div>";
							}
							else
							{
								voorkeur += "<div class='voorkeur_"+voorkeur_dateType+"'><input type='text' readonly='readonly' name='fld_voorkeur"+voorkeurNummer+"_"+voorkeur_dateType+"' value='"+voorkeur_dateValue+"' /></div>";
							}
						}
						else if (voorkeur_dateUse == "hidden")
						{
							voorkeur += "<div class='voorkeur_"+voorkeur_dateType+" invisible'><input type='hidden' name='fld_voorkeur"+voorkeurNummer+"_"+voorkeur_dateType+"' value='"+voorkeur_dateValue+"' /></div>";
						}
						
						voorkeurenContent += voorkeur;
					}
					
					voorkeurenContent += "</div><div class='voorkeur_item_rij_right'></div><div class='verwijderen'><div><a href='#' onclick='removeVoorkeur("+voorkeurNummer+"); return false;' title='Verwijder deze voorkeur'>Verwijder</a><span></span></div></div>";
					
					// Sluit deze voorkeur af
					voorkeurenContent += "</div>";
				}
				
				voorkeurenAantal = voorkeurNummer;
				
				if ($('#'+voorkeurenOverzichtHeaderId).length)
				{
					$('#'+voorkeurenOverzichtHeaderId).html(voorkeurenHeader);
				}

				voorkeurenObject.innerHTML = voorkeurenContent;
			}
			else
			{
				if ($('#'+voorkeurenOverzichtId).length)
				{
					$('#'+voorkeurenOverzichtId).html("<div id='voorkeuren_melding_geen_voorkeuren'>"+voorkeurenOverzichtMeldingGeenVoorkeuren+"</div>");
					$('#'+voorkeurenOverzichtHeaderId).html("");
				}
			}
		}
	}
	/*= =*/
	
	/*= Utility functies =*/
	// Maak alle velden met persoonsgegevens leeg
	function emptyNAWdata()
	{
		if (document.forms[voorkeurenFormName])
		{
			for(var formElementIndex = 0; formElementIndex < document.forms[voorkeurenFormName].elements.length; formElementIndex++)
			{
				var currentFormElement = document.forms[voorkeurenFormName].elements[formElementIndex];
				
				if (currentFormElement.name.match(/naw/) || currentFormElement.name.match(/captcha/))
				{
					currentFormElement.value = '';
				}
			}
		}
	}
	function currencyFormatted(amount)
	{
		var i = parseFloat(amount);
		if(isNaN(i)) { i = 0.00; }
		var minus = '';
		if(i < 0) { minus = '-'; }
		i = Math.abs(i);
		i = parseInt((i + .005) * 100);
		i = i / 100;
		s = new String(i);
		if(s.indexOf('.') < 0) { s += '.00'; }
		if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
		s = minus + s;
		return s;
	}
	function commaFormatted(amount)
	{
		var delimiter = "."; // replace comma if desired
		var a = amount.split('.',2)
		var d = a[1];
		var i = parseInt(a[0]);
		if(isNaN(i)) { return ''; }
		var minus = '';
		if(i < 0) { minus = '-'; }
		i = Math.abs(i);
		var n = new String(i);
		var a = [];
		while(n.length > 3)
		{
			var nn = n.substr(n.length-3);
			a.unshift(nn);
			n = n.substr(0,n.length-3);
		}
		if(n.length > 0) { a.unshift(n); }
		n = a.join(delimiter);
		if(d.length < 1) { amount = n; }
		else { amount = n + '.' + d; }
		amount = minus + amount;
		return amount.replace(/.00$/,"");
	}
	function replaceOptionValue(optionlist,value,replacement)
	{
		var regExpToExec = false;
		var regExpFirst = new RegExp("(?=^|^.*~)"+value+"(?=$|~)","igm");
		var regExpOthers = new RegExp("(?!=^|^.*~)"+value+"(?=$|~)","igm");
		
		if (regExpFirst.test(optionlist))
		{
			regExpToExec = regExpFirst;
		}
		else if (regExpOthers.test(optionlist))
		{
			regExpToExec = regExpOthers;
		}
		
		if (regExpToExec)
		{
			optionlist = optionlist.replace(regExpToExec,replacement);
		}
		
		return optionlist;
	}
	function voorkeurenFormatForView(text, type, submitType)
	{
		var textFormatted = text;
		
		if (type == "type")
		{
			textFormatted = replaceOptionValue(textFormatted,"A[)]Woning_op_uiterste_hoek","Woning op uiterste hoek");
			textFormatted = replaceOptionValue(textFormatted,"B[)]Woning_met_extra_grote_zolderverdieping_door_dakkapel","Woning met extra grote zolderverdieping door dakkapel");
			textFormatted = replaceOptionValue(textFormatted,"C[)]Woning_met_voor_zij_en_achtertuin","Woning met voor-, zij- en achtertuin");
			textFormatted = replaceOptionValue(textFormatted,"D[)]Woning_met_roodbruine_baksteen","Woning met roodbruine baksteen");
			textFormatted = replaceOptionValue(textFormatted,"E[)]Woning_met_oker_baksteen","Woning met oker baksteen");
		}
		else if (type == "type_searchresult")
		{
			textFormatted = replaceOptionValue(textFormatted,"A[)]Woning_op_uiterste_hoek","<li>2-onder-1 kapwoning op uiterste hoek</li>");
			textFormatted = replaceOptionValue(textFormatted,"B[)]Woning_met_extra_grote_zolderverdieping_door_dakkapel","<li>Woning met extra grote zolderverdieping door dakkapel</li>");
			textFormatted = replaceOptionValue(textFormatted,"C[)]Woning_met_voor_zij_en_achtertuin","<li>Woning met voor-, zij- en achtertuin</li>");
			textFormatted = replaceOptionValue(textFormatted,"D[)]Woning_met_roodbruine_baksteen","<li>Woning met roodbruine baksteen</li>");
			textFormatted = replaceOptionValue(textFormatted,"E[)]Woning_met_oker_baksteen","<li>Woning met oker baksteen</li>");
		}
		else if (type == "kamers")
		{
			textFormatted = replaceOptionValue(textFormatted,"Ruime_woonkamer","Ruime woonkamer");
			textFormatted = replaceOptionValue(textFormatted,"Woonkeuken","Woonkeuken");
			textFormatted = replaceOptionValue(textFormatted,"3_slaapkamers_op_2e_verdieping","3 slaapkamers op 2e verdieping");
			textFormatted = replaceOptionValue(textFormatted,"Multifunctionele_zolderverdieping","Multifunctionele zolderverdieping");
		}
		else if (type == "tuin")
		{
			textFormatted = replaceOptionValue(textFormatted,"A[)]Voortuin","Voortuin");
			textFormatted = replaceOptionValue(textFormatted,"B[)]Achtertuin_op_het_Oosten","Achtertuin op het Oosten aan het water");
			textFormatted = replaceOptionValue(textFormatted,"C[)]Achtertuin_op_het_Westen","Achtertuin op het Westen aan het water");
		}
		else if (type == "parkeren")
		{
			textFormatted = replaceOptionValue(textFormatted,"A[)]Eigen_parkeerplaats_op_eigen_terrein","Eigen parkeerplaats op eigen terrein");
			textFormatted = replaceOptionValue(textFormatted,"B[)]Parkeren_op_naastgelegen_parkeerhof","Parkeren op naastgelegen parkeerhof ");
		}
		else if (type == "berging")
		{
			textFormatted = replaceOptionValue(textFormatted,"Aparte_stenen_berging_in_achtertuin","Aparte stenen berging in achtertuin");
		}
		else if (type == "architectuur")
		{
			textFormatted = replaceOptionValue(textFormatted,"Traditionele_architectonische_uitstraling","Traditionele architectonische uitstraling");
			textFormatted = replaceOptionValue(textFormatted,"Oker_baksteen","Oker baksteen");
			textFormatted = replaceOptionValue(textFormatted,"Roodbruine_baksteen","Roodbruine baksteen");
		}
		else if (type == "opties")
		{
			textFormatted = replaceOptionValue(textFormatted,"Uitbouw","Uitbouw");
			textFormatted = replaceOptionValue(textFormatted,"Dakkapel","Dakkapel");
			textFormatted = replaceOptionValue(textFormatted,"Carport","Carport");
			textFormatted = replaceOptionValue(textFormatted,"Garage","Garage");
		}
		else if (type == "prijsklasse")
		{
			textFormatted = replaceOptionValue(textFormatted,"A[)]325.000-335.000","&euro; 325.000-335.000");
			textFormatted = replaceOptionValue(textFormatted,"B[)]335.000-345.000","&euro; 335.000-345.000");
			textFormatted = replaceOptionValue(textFormatted,"C[)]345.000-355.000","&euro; 345.000-355.000");
			textFormatted = replaceOptionValue(textFormatted,"D[)]355.000-365.000","&euro; 355.000-365.000");
			textFormatted = replaceOptionValue(textFormatted,"E[)]365.000-375.000","&euro; 365.000-375.000");
		}
		else if (type == "prijs")
		{
			textFormatted = commaFormatted(currencyFormatted(textFormatted));
		}
		
		if (submitType)
		{
			textFormatted = textFormatted.replace(/~/g,", ");
			textFormatted = textFormatted.replace(/&euro; /g,"");
		}
		else if (type == "type_searchresult")
		{
			textFormatted = textFormatted.replace(/~/g,"");
		}
		else
		{
			textFormatted = textFormatted.replace(/~/g,"<br/>");
		}
		
		return textFormatted;
	}
	function setActivePicture(picUrl,linkElementToSetActive)
	{
		$('#woningPictureBig img').attr("src",picUrl);
		
		$('#woningPicturesSmall a').each(function()
		{
			if ($(this)[0] == linkElementToSetActive)
			{
				$(this).addClass("active");
			}
			else
			{
				$(this).removeClass("active");
			}
		});
	}
	function setThumbNavigation()
	{
		for (var thumbLinkIndex = 0; thumbLinkIndex < document.getElementById("foto_thumbs").getElementsByTagName("span").length; thumbLinkIndex++)
		{
			var currentElement = document.getElementById("foto_thumbs").getElementsByTagName("span")[thumbLinkIndex];
			
			if (currentElement.innerHTML.match(/shownoimg/))
			{
				currentElement.parentNode.className = "thumbs invisible";
			}
		}
	}
	function replaceSpecialSymbols(text)
	{
		text = text.replace(/~/g,"<tilde>");
		text = text.replace(/,/g,"<komma>");
		
		return text;
	}
	function deReplaceSpecialSymbols(text)
	{
		var textToReplace = "";
		
		if (text)
		{
			textToReplace = text;
		}
		
		textToReplace = textToReplace.replace(/<tilde>/g,"-");
		textToReplace = textToReplace.replace(/<komma>/g,",");
		
		return textToReplace;
	}
	/*= =*/
	
/*== ==*/

/*== hideEmptyElements ==*/
function hideEmptyElements(expression)
{
	$(expression+":empty").css("display","none");
}
/*== ==*/

/*== hideParentFromEmptyElements ==*/
function hideParentFromEmptyElements(expression,parentExpression)
{
	$(expression+":empty").parents(parentExpression).css("display","none");
}
/*== ==*/

/*== hideParentFromEmptyImage ==*/
function hideParentFromEmptyImage(expression,parentExpression)
{
	$(expression+" img").each(function()
	{
		if ($(this).attr("src").match("spacer.gif") || $(this).attr("src").match("shownoimg.gif"))
		{
			$(this).parents(parentExpression).css("display","none");
		}
	});
}
/*== ==*/

/*== initTemplateFunctions ==*/
function initTemplateFunctions()
{
	if (typeof(templateFunctions) == "function")
	{
		templateFunctions();
	}
}
/*== ==*/

/*== init ==*/
$(document).ready(function()
{
	HideEmptyImages();
	deleteEmptyImagesAt("imgRotator");
	deleteEmptyImagesAt("imgRotator");
	deleteEmptyImagesAt("imgRotator");
	hideParentFromEmptyImage(".hideIfEmptyImage",".woningPictureSmall");
	setActiveNavNeighbourAndFirstItem("menubuilder_dezwanen_sub_0");
	
	$('#imgRotator').cycle({
	    fx:    'fade', 
	    speed:  2500,
		timeout: 1500
	});
	initTemplateFunctions();
	loadGebouwen('frmGebouwenFilter');
});
/*== ==*/
