// FLASH
function getFlashMovie(movieName) {
	var isIE = navigator.appName.indexOf("Microsoft") != -1;
	return (isIE) ? window[movieName] : document[movieName];
}

function includeFlash(movie,name,w,h,flashvars) {
	if (AC_FL_RunContent == 0) {
		alert("This page requires AC_RunActiveContent.js.");
	} else {
		AC_FL_RunContent(
			'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0',
			'width', w,
			'height', h,
			'src', movie,
			'quality', 'high',
			'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
			'align', 'middle',
			'play', 'true',
			'loop', 'true',
			'scale', 'noscale',
			'wmode', 'transparent',
			'devicefont', 'false',
			'id', name,
			'bgcolor', '#000000',
			'name', name,
			'menu', 'true',
			'allowFullScreen', 'false',
			'allowScriptAccess','always',
			'movie', movie,
			'flashvars', flashvars,
			'salign', 'top'
			); //end AC code
	}
}

function reloadpngfix() {
	if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){ //test for MSIE x.x;
		var ieversion=new Number(RegExp.$1) // capture x.x portion and store as a number
		if (ieversion<7) {
			pngfix();	
		}		
	}
	
}

//FORM VALIDATION
function checkForm(formId) {
	var form = document.getElementById('form_'+formId);
	var elements = form.elements;
	var errorfields = new Array();
	var feedback = '';
	for(var i = 0; i < elements.length; i++) {
		var id_parts = elements[i].id.split("_");
		if (id_parts[0] == 'formitem') {			
			var validationObj = document.getElementById('validate_'+id_parts[1]);
			if (validationObj != null) {
				var validation = validationObj.value;
				if (validation != "" && validation != "none") {
					//validate
					var legal = new Array();
					legal['letters'] = 'abcdefghijklmnopqrstuvwxyz';
					legal['numbers'] = '0123456789';
					legal['letters_numbers'] = 'abcdefghijklmnopqrstuvwxyz0123456789';
					switch (elements[i].type) {
						case 'text':
						case 'textarea':
							switch	(validation) {
								case 'notempty':
									if (elements[i].value == '') {
										errorfields.push(elements[i].title);
										feedback += 'Het veld \''+elements[i].title+'\' is niet ingevuld.<br />';										
									}
									break;
								case 'letters':
								case 'numbers':
								case 'letters_numbers':
									if (elements[i].value == '') {
										errorfields.push(elements[i].title);
										feedback += 'Het veld \''+elements[i].title+'\' is niet ingevuld.<br />';										
									} else {
										if (!validateString(elements[i].value, legal[validation])) {
											errorfields.push(elements[i].title);
											if (validation == 'letters') var only = 'letters';
											if (validation == 'numbers') var only = 'cijfers';
											if (validation == 'letters_numbers') var only = 'letters en cijfers';
											feedback += 'Het veld \''+elements[i].title+'\' mag alleen '+only+' bevatten.<br />';
										}
									}
									break;							
								case 'email':
									if (!validateEmail(elements[i].value)) {
										errorfields.push(elements[i].title);
										feedback += 'Het veld \''+elements[i].title+'\' is geen correct e-mailadres.<br />';
									}
									break;
								case 'postal':
									if (elements[i].value == '') {
										errorfields.push(elements[i].title);
										feedback += 'Het veld \''+elements[i].title+'\' is niet ingevuld.<br />';										
									} else {
										// 1234AB
										if (elements[i].value.length != 6) {
											errorfields.push(elements[i].title);
											feedback += 'Het veld \''+elements[i].title+'\' moet 6 karakters bevatten.<br />';
										} else {
											var numbers = elements[i].value.substr(0,4);
											var letters = elements[i].value.substr(4,2);
											if (!validateString(numbers, legal['numbers']) || !validateString(letters, legal['letters'])) {
												errorfields.push(elements[i].title);
												feedback += 'Het veld \''+elements[i].title+'\' is geen correcte postcode.<br />';
											}
										}
									}
									break;
							}
							break;
						case 'checkbox':
							//str += "Value:" + elements[i].checked + "\n";
							if (validation == 'notempty' && !elements[i].checked) {
								errorfields.push(elements[i].title);
								feedback += 'Het veld \''+elements[i].title+'\' moet worden aangevinkt.<br />';
							}
							break;
						case 'select-multiple':
							var selected = new Array(); 
							for (var j = 0; j < elements[i].options.length; j++) {
								if (elements[i].options[j].selected) selected.push(elements[i].options[j].value);
							}
							if (validation == 'notempty' && selected.length == 0) {
								errorfields.push(elements[i].title);
								feedback += 'Bij het veld \''+elements[i].title+'\' is geen keuze gemaakt.<br />';
							}
							break;
					}
				}
			}
		}
	}
	
	if (errorfields.length == 0) {
		//no errors -> submit form
		form.submit();
	} else {
		//display errors
		$('#feedback_'+formId).html(feedback);
		$('#feedback_'+formId).removeClass("feedback_green");
		$('#feedback_'+formId).addClass("feedback_red");
		window.location.hash = 'pointer_'+formId;
	}
}

function checkCommentForm() {
	var form = document.getElementById('comment_form');
	
	stripHttpFromInput(form);
	stripTagsFromInput(form);
	
	var path = getRelativePath();
	
	var feedback = '';			
			
	if (form.name.value == '' || form.name.value == 'Naam') {
		feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'Naam\' is niet ingevuld.<br />';										
	}
	
	if (form.email.value == '' || form.email.value == 'E-mailadres') {
		feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'E-mail\' is niet ingevuld.<br />';
	} else if (!validateEmail(form.email.value)) {
		feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'E-mail\' is geen correct e-mailadres.<br />';
	}
	
	if (form.message.value == '' || form.message.value == 'Uw bericht') {
		feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'Bericht\' is niet ingevuld.<br />';										
	}
	
	if (form.captcha == undefined) {
		//no captcha
		if (feedback == '') {
			//no errors -> submit form
			form.submit();
		} else {
			//display errors
			$('#feedback').html(feedback);
			$('#feedback').show();
		}
	} else {		
		$.ajax({
			type: 'POST',
			data: {	code: form.captcha.value
					},
			url: path+"captcha/check.php"+'?uniq='+Math.random(),
			success: function(response) {
				if (response != 'OK') {
					feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'Code\' is niet correct ingevuld.<br />';
				}
				if (feedback == '') {
					//no errors -> submit form
					form.submit();
				} else {
					//display errors
					$('#feedback').html(feedback);
					$('#feedback').show();
				}
			}
		});	
	}
}

function checkUserDataForm(formid, emailCheckType, userId) {
	if (emailCheckType == undefined) emailCheckType = false;
	if (userId == undefined) userId = '';
	
	var form = document.getElementById(formid);
	
	stripHttpFromInput(form);
	stripTagsFromInput(form);
	
	var path = getRelativePath();
	
	var feedback = '';			
			
	if (form.bedrijfsnaam.value == '') {
		feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'Bedrijfsnaam\' is niet ingevuld.<br />';										
	}
	
	if (form.voorletters.value == '') {
		feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'Voorletters\' is niet ingevuld.<br />';										
	}
	
	if (form.achternaam.value == '') {
		feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'Achternaam\' is niet ingevuld.<br />';										
	}
	
	if (form.adres.value == '') {
		feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'Adres\' is niet ingevuld.<br />';										
	}
	
	if (form.pc_cijfers.value == '') {
		feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'Postcode cijfers\' is niet ingevuld.<br />';
	} else if (!validateString(form.pc_cijfers.value, '0123456789') || form.pc_cijfers.value.length != 4) {
		feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'Postcode cijfers\' moet uit vier cijfers bestaan.<br />';
	}
	
	if (form.pc_letters.value == '') {
		feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'Postcode letters\' is niet ingevuld.<br />';										
	} else if (!validateString(form.pc_letters.value, 'abcdefghijklmnopqrstuvwxyz') || form.pc_letters.value.length != 2) {
		feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'Postcode letters\' moet uit twee letters bestaan.<br />';
	}
	
	if (form.woonplaats.value == '') {
		feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'Woonplaats\' is niet ingevuld.<br />';										
	}
	
	if (form.telefoon.value == '') {
		feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'Telefoon\' is niet ingevuld.<br />';										
	}
	
	if (form.email.value == '') {
		feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'E-mail\' is niet ingevuld.<br />';
		//prevent ajax call -> already an e-mail error
		checkEmailUsers = false;
	} else if (!validateEmail(form.email.value)) {
		feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'E-mail\' is geen correct e-mailadres.<br />';
		//prevent ajax call -> already an e-mail error
		checkEmailUsers = false;
	} else if (form.confirm_email != undefined && form.email.value != form.confirm_email.value) {
		feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> De velden \'E-mail\' en \'Bevestig e-mail\' komen niet overeen.<br />';
		//prevent ajax call -> already an e-mail error
		checkEmailUsers = false;
	}
	
	if (form.new_pass != undefined) {
		if (form.new_pass.value != '') {
			if (form.new_pass.value != form.confirm_pass.value) {
				feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het nieuwe wachtwoord en de bevestiging komen niet overeen.<br />';
			}
		} else if (form.confirm_pass.value != '') {
			feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het nieuwe wachtwoord en de bevestiging komen niet overeen.<br />';
		}
	}
	if (emailCheckType) {
		$.ajax({
			type: 'POST',
			data: {	call: "emailExists",
					email: form.email.value,
					checkType: emailCheckType,
					userId: userId
					},
			url: path+"ajax.php"+'?uniq='+Math.random(),
			success: function(response) {				
				if (response != 'OK') {
					if (emailCheckType == 'tempaccount') {
						feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Er is al een proefnummer naar het ingevulde e-mailadres verstuurd.<br />';
					} else {
						feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Er is al een abonnement op dit e-mailadres bekend. Als u zich reeds als abonnee heeft aangemeld en geen e-mail heeft ontvangen raden wij u aan ons e-mailadres (info@belastingbelangen.nl) toe te voegen aan de lijst met veilige (vertrouwde) afzenders in uw e-mail programma en/of exchange server. Anders bestaat er een gerede kans dat de e-mail van BelastingBelangen als spam wordt aangemerkt en derhalve niet door u ontvangen wordt.<br />';
					}
				}
				if (feedback == '') {
					//no errors -> check captcha
					if (form.captcha == undefined) {
						//no captcha
						if (feedback == '') {
							//no errors -> submit form
							form.submit();
						} else {
							//display errors
							$('#feedback_'+formid).html(feedback);
							$('#feedback_'+formid).show();
						}
					} else {		
						$.ajax({
							type: 'POST',
							data: {	code: form.captcha.value
									},
							url: path+"captcha/check.php"+'?uniq='+Math.random(),
							success: function(response) {
								if (response != 'OK') {
									feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'Code\' is niet correct ingevuld.<br />';
								}
								if (feedback == '') {
									//no errors -> submit form
									form.submit();
								} else {
									//display errors
									$('#feedback_'+formid).html(feedback);
									$('#feedback_'+formid).show();
								}
							}
						});	
					}
				} else {
					//display errors
					$('#feedback_'+formid).html(feedback);
					$('#feedback_'+formid).show();
				}
			}
		});	
	} else {
		if (form.captcha == undefined) {
			//no captcha
			if (feedback == '') {
				//no errors -> submit form
				form.submit();
			} else {
				//display errors
				$('#feedback_'+formid).html(feedback);
				$('#feedback_'+formid).show();
			}
		} else {		
			$.ajax({
				type: 'POST',
				data: {	code: form.captcha.value
						},
				url: path+"captcha/check.php"+'?uniq='+Math.random(),
				success: function(response) {
					if (response != 'OK') {
						feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'Code\' is niet correct ingevuld.<br />';
					}
					if (feedback == '') {
						//no errors -> submit form
						form.submit();
					} else {
						//display errors
						$('#feedback_'+formid).html(feedback);
						$('#feedback_'+formid).show();
					}
				}
			});	
		}
	}
}


function checkNewPasswordForm(formid) {
	//if (emailCheckType == undefined) emailCheckType = false;
	//if (userId == undefined) userId = '';
	
	var form = document.getElementById(formid);
	
	stripHttpFromInput(form);
	stripTagsFromInput(form);
	
	var path = getRelativePath();
	
	var feedback = '';			
		
	
	if (form.new_pass != undefined) {
		if (form.new_pass.value != '') {
			if (form.new_pass.value != form.confirm_pass.value) {
				feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het nieuwe wachtwoord en de bevestiging komen niet overeen.<br />';
			}
		} else if (form.confirm_pass.value != '') {
			feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het nieuwe wachtwoord en de bevestiging komen niet overeen.<br />';
		}
	}
	
	if (form.new_pass.value == '' && form.confirm_pass.value == '') {
		feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Er is geen nieuw wachtwoord ingevuld.<br />';
	}
	
	if (feedback == '') {
		//no errors -> submit form
		form.submit();
	} else {
		//display errors
		$('#feedback_'+formid).html(feedback);
		$('#feedback_'+formid).show();
	}
}


function checkContactForm(formid) {
	var form = document.getElementById(formid);
	
	stripHttpFromInput(form);
	stripTagsFromInput(form);
	
	var path = getRelativePath();
	
	var feedback = '';			
			
	if (form.bedrijfsnaam.value == '') {
		feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'Bedrijfsnaam\' is niet ingevuld.<br />';										
	}
	
	if (form.voorletters.value == '') {
		feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'Voorletters\' is niet ingevuld.<br />';										
	}
	
	if (form.achternaam.value == '') {
		feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'Achternaam\' is niet ingevuld.<br />';										
	}
	
	if (form.email.value == '') {
		feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'E-mailadres\' is niet ingevuld.<br />';
	} else if (!validateEmail(form.email.value)) {
		feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'E-mailadres\' is geen correct e-mailadres.<br />';
	}
	
	if (form.message.value == '') {
		feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'Bericht\' is niet ingevuld.<br />';										
	}
	
	if (form.captcha == undefined) {
		//no captcha
		if (feedback == '') {
			//no errors -> submit form
			form.submit();
		} else {
			//display errors
			$('#feedback').html(feedback);
			$('#feedback').show();
		}
	} else {
		$.ajax({
			type: 'POST',
			data: {	code: form.captcha.value
					},
			url: path+"captcha/check.php"+'?uniq='+Math.random(),
			success: function(response) {
				if (response != 'OK') {
					feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'Code\' is niet correct ingevuld.<br />';
				}
				if (feedback == '') {
					//no errors -> submit form
					form.submit();
				} else {
					//display errors
					$('#feedback').html(feedback);
					$('#feedback').show();
				}
			}
		});	
	}
}

function checkSendafriendForm(formid) {
	var form = document.getElementById(formid);
	
	stripHttpFromInput(form);
	stripTagsFromInput(form);
	
	var path = getRelativePath();
	
	var feedback = '';			
			
	if (form.s_voorletters.value == '') {
		feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'Uw naam: voorletters\' is niet ingevuld.<br />';										
	}
	
	if (form.s_achternaam.value == '') {
		feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'Uw naam: achternaam\' is niet ingevuld.<br />';										
	}
	
	if (form.s_email.value == '') {
		feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'Uw e-mailadres\' is niet ingevuld.<br />';
	} else if (!validateEmail(form.s_email.value)) {
		feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'Uw e-mailadres\' is geen correct e-mailadres.<br />';
	}
	
	if (form.r_voorletters.value == '') {
		feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'Naam ontvanger: voorletters\' is niet ingevuld.<br />';										
	}
	
	if (form.r_achternaam.value == '') {
		feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'Naam ontvanger: achternaam\' is niet ingevuld.<br />';										
	}
	
	if (form.r_email.value == '') {
		feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'E-mailadres ontvanger\' is niet ingevuld.<br />';
	} else if (!validateEmail(form.r_email.value)) {
		feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'E-mailadres ontvanger\' is geen correct e-mailadres.<br />';
	}
	
	if (form.message.value == '') {
		feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'Persoonlijk bericht\' is niet ingevuld.<br />';										
	}
	$.ajax({
		type: 'POST',
		data: {	call: "emailExists",
				email: form.r_email.value,
				checkType: 'send_a_friend'
				},
		url: path+"ajax.php"+'?uniq='+Math.random(),
		success: function(response) {				
			if (response != 'OK') {
				feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het e-mailadres van de ontvanger komt al in onze database voor.<br />';
			}
			if (feedback == '') {
				//no errors -> check captcha
				if (form.captcha == undefined) {
					//no captcha
					if (feedback == '') {
						//no errors -> submit form
						form.submit();
					} else {
						//display errors
						$('#feedback').html(feedback);
						$('#feedback').show();
					}
				} else {		
					$.ajax({
						type: 'POST',
						data: {	code: form.captcha.value
								},
						url: path+"captcha/check.php"+'?uniq='+Math.random(),
						success: function(response) {
							if (response != 'OK') {
								feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'Code\' is niet correct ingevuld.<br />';
							}
							if (feedback == '') {
								//no errors -> submit form
								form.submit();
							} else {
								//display errors
								$('#feedback').html(feedback);
								$('#feedback').show();
							}
						}
					});	
				}
			} else {
				//display errors
				$('#feedback').html(feedback);
				$('#feedback').show();
			}
		}
	});		
}


function checkPassForm(formid) {
	var form = document.getElementById(formid);
	
	stripHttpFromInput(form);
	stripTagsFromInput(form);
	
	var path = getRelativePath();
	
	var feedback = '';		
	
	if (form.email.value == '') {
		feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'E-mailadres\' is niet ingevuld.<br />';
	} else if (!validateEmail(form.email.value)) {
		feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'E-mailadres\' is geen correct e-mailadres.<br />';
	} 
	
	if (feedback == '') {
		$.ajax({
			type: 'POST',
			data: {	call: "emailExists",
					email: form.email.value,
					checkType: 'forgot_pass'
					},
			url: path+"ajax.php"+'?uniq='+Math.random(),
			success: function(response) {
				if (response != 'EXISTS') {
					feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het ingevulde e-mailadres komt niet voor in de database of het bijbehorende account is (nog) niet geactiveerd.<br />';
				}
				if (feedback == '') {
					//no errors -> submit form
					form.submit();
				} else {
					//display errors
					$('#feedback').html(feedback);
					$('#feedback').show();
				}
			}
		});	
	} else {
		//display errors
		$('#feedback').html(feedback);
		$('#feedback').show();
	}
	
}


function checkSubsForm(formid, subtype) {
	var form = document.getElementById(formid);
	
	stripHttpFromInput(form);
	stripTagsFromInput(form);
	
	var path = getRelativePath();
	
	var feedback = '';		
	
	var emails = new Array();
	//loop through form fields
	var subnr = 0;
	for(i = 0; i < form.elements.length; i++) {
		var field = form.elements[i];
		if (field.type == 'select-one') {
			subnr++;
		} else if (field.type == 'text') {
			var nameparts = field.name.split('_');
			if (nameparts[0]+nameparts[1] == 'subemail' || nameparts[0]+nameparts[1] == 'newsubemail') {
				//email field
				if (field.value == '') {
					feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'E-mailadres\' van uw '+subnr+'e relatie is niet ingevuld.<br />';
				} else if (!validateEmail(field.value)) {
					feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'E-mailadres\' van uw '+subnr+'e relatie is geen correct e-mailadres.<br />';
				}
				if (nameparts[0]+nameparts[1] == 'newsubemail') {
					emails.push("0:"+field.value);
				} else {
					emails.push(nameparts[2]+":"+field.value);
				}
			} else if (nameparts[0]+nameparts[1] == 'subvoorletters' || nameparts[0]+nameparts[1] == 'newsubvoorletters') {
				//voorletters
				var thissubtype = $(field).attr('name').split("_")[0];
				var thissubid = $(field).attr('name').split("_")[2];
				if (field.value == '' && $('#'+thissubtype+'_geslacht_'+thissubid).val() != 'd') {
					feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'Voorletters\' van uw '+subnr+'e relatie is niet ingevuld.<br />';	
				}
			} else if (nameparts[0]+nameparts[1] == 'subachternaam' || nameparts[0]+nameparts[1] == 'newsubachternaam') {
				//achternaam
				var thissubtype = $(field).attr('name').split("_")[0];
				var thissubid = $(field).attr('name').split("_")[2];
				if (field.value == '') {
					if ($('#'+thissubtype+'_geslacht_'+thissubid).val() != 'd') {
						feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'Achternaam\' van uw '+subnr+'e relatie is niet ingevuld.<br />';	
					} else {
						feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het veld \'Bedrijfsnaam\' van uw '+subnr+'e relatie is niet ingevuld.<br />';
					}
				}
			}
		}
	}
	$.ajax({
		type: 'POST',
		data: {	call: 'checkSubEmails',
				emails: emails.join(",")
				},
		url: path+"ajax.php"+'?uniq='+Math.random(),
		success: function(response) {
			if (response != 'OK') {
				feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Aan de volgende e-mailadressen is reeds een abonnement gekoppeld:<br /><ul>';
				var emails = response.split(",");
				for (var i = 0; i < emails.length; i++) {
					feedback += '<li>'+emails[i]+'</li>';
				}
				feedback += '</ul>';
			}
			if (feedback == '') {
				form.submit();
			} else {
				//display errors
				$('#'+subtype+'_feedback').html(feedback);
				$('#'+subtype+'_feedback').show();
			}
		}
	});
}


// form field checks
function validateString(string,legal) {
	if (string == '') return false;
	string = string.toLowerCase();
	for (var i = 0; i < string.length; i++) {
		if (legal.indexOf(string.charAt(i)) == -1) {
			return false;
		}
	}
	return true;
}

function validateEmail(address) {	
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	return reg.test(address);
}

function checkCode() {
	var path = getRelativePath();
	$.ajax({
		type: 'POST',
		data: {	call: 'checkCode',
				code: $('#code').val()
				},
		url: path+"ajax.php"+'?uniq='+Math.random(),
		success: function(response) {
			if (response == 'empty') {
				//no code
				$('#discounttxt').hide();
				$('#discounttxt_error').html('<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Er is geen actiecode ingevuld.');
				$('.error').show();
			} else if (response == 'false') {
				//wrong code
				$('#discounttxt').hide();
				$('#discounttxt_error').html('<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Er is geen geldige actiecode ingevuld.');
				$('.error').show();
			} else {
				//discount
				var response_items = response.split("{!!}");
				$('.error').hide();
				$('#discounttxt').html(response_items[0]);
				$('#discounttxt').show();
				$('#pricetxt').html(response_items[1]);
			}
		}
	});
}

function newCaptcha(url) {
	$('#captcha_img').attr('src',url+'?uniq='+Math.random());
}

// form check functions
function stripHttpFromInput(formObj) {
	for(i = 0; i < formObj.elements.length; i++) {
		var field = formObj.elements[i];
		if (field.name != '' && (field.type == 'text' || field.type == 'hidden' || field.type == 'textarea') && field.value != '') {
			field.value = field.value.replace(/http:\/\//gi,"");
		}
	}
}

function stripTagsFromInput(formObj) {
	for(i = 0; i < formObj.elements.length; i++) {
		var field = formObj.elements[i];
		if (field.name != '' && (field.type == 'text' || field.type == 'hidden' || field.type == 'textarea') && field.value != '') {
			var tag = /<\S[^>]*>/g; 
			field.value = field.value.replace(tag,""); 
		}
	}
}

function getRelativePath() {	
	var path_name = document.location.pathname;
	
	//rootdirname in index.php
	path_name = path_name.replace(rootdirname,'');	
	var path_items = path_name.split("/");
	var rel_path = '';
	for (var i = 0; i < path_items.length-1; i++) {
		rel_path += '../';
	}
	return rel_path;
}


// MY BB
function addRemoveMyBB(article_id, action) {
	var path = getRelativePath();
	$("#add_to_my_bb_btn").hide();
	//$("#remove_from_my_bb_btn").hide();
	$("#add_to_my_bb_msg").html('<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Het artikel wordt toegevoegd.');
	$("#add_to_my_bb_msg").show();	
	var path = getRelativePath();
	$.ajax({
		type: 'POST',
		data: {	call: 'addRemoveMyBB',
				article_id: article_id,
				action: action
				},
		url: path+"ajax.php"+'?uniq='+Math.random(),
		success: function(response) {			
			if (response == "ADDED") {
				$("#add_to_my_bb_msg").html('<img src="'+path+'images/general/ok.png" alt="Ok" align="left" /> Het artikel is toegevoegd aan <a href="'+path+'mijn_belastingbelangen">uw selectie</a>.');
				//setTimeout(function() { $("#add_to_my_bb_msg").hide(); $("#remove_from_my_bb_btn").show(); }, 5000);
				updateMyBBAmount();
			/*} else if (response == "REMOVED") {
				$("#add_to_my_bb_msg").html("Het artikel is verwijderd uit uw selectie");
				setTimeout(function() { $("#add_to_my_bb_msg").hide(); $("#add_to_my_bb_btn").show(); }, 5000);
				updateMyBBAmount();*/
			} else {
				//error
				alert('error');
			}
			reloadpngfix();
		}
	});
}

function removeFromMyBBOverview(article_id) {
	var path = getRelativePath();
	$.ajax({
		type: 'POST',
		data: {	call: 'addRemoveMyBB',
				article_id: article_id,
				action: 'remove'
				},
		url: path+"ajax.php"+'?uniq='+Math.random(),
		success: function(response) {			
			if (response == "REMOVED") {
				$("#article_"+article_id).slideUp("normal",function() { 
					//check if category is empty
					var populated_lists = new Array();
					$(".category_articles_check > li:visible").each(function() {
						if (!inArray(populated_lists, this.parentNode.id) && $(this).is(":visible")) populated_lists.push(this.parentNode.id);
					});
					$(".category_articles_check").each(function() {
						if (!inArray(populated_lists, this.id)) {
							var catid = this.id.split("_")[1];
							$("#categoryholder_"+catid).slideUp();
						}
					});
				});
				updateMyBBAmount();
			} else {
				//error
				alert('error');
			}
		}
	});
}

function removeAllFromMyBBOverview() {
	var path = getRelativePath();
	$.ajax({
		type: 'POST',
		data: {	call: 'addRemoveMyBB',
				action: 'remove-all'
				},
		url: path+"ajax.php"+'?uniq='+Math.random(),
		success: function(response) {			
			if (response == "REMOVED") {
				$("#categoriesholder").slideUp();				
				updateMyBBAmount();
			} else {
				//error
				alert('error');
			}
		}
	});
}

function updateMyBBAmount() {
	var path = getRelativePath();
	$.ajax({
		type: 'POST',
		data: {	call: 'getMyBBAmount'
				},
		url: path+"ajax.php"+'?uniq='+Math.random(),
		success: function(response) {
			var amount = parseInt(response);
			if (isNaN(amount)) {
				//error
				alert('Er is een fout opgetreden.');				
			} else {
				var str = (amount == 1) ? ' artikel' : ' artikelen';
				$(".my_bb_amount").html(amount+str);
				if (amount > 0) {
					$("#my_bb_actions").slideDown();
				} else {
					$("#no_selection_msg").show();
					$("#emailselect_feedback").hide();
					$("#emailselect_btn").hide();
					$("#my_bb_actions").slideUp();
				}
			}
		}
	});	
}


function addMagazineArticlesToMyBB(formid) {
	var aid = formid.split("_")[1];
	var form = document.getElementById(formid);
	
	var path = getRelativePath();
	
	var articles = new Array();
	//loop through form fields
	var subnr = 0;
	for(var i = 0; i < form.elements.length; i++) {
		var field = form.elements[i];
		if (field.type == 'checkbox' && $(field).is(':checked')) {
			var article_id = field.name.split("_")[1];
			if (!inArray(articles, article_id)) articles.push(article_id);
		}
	}
	var articles_str = articles.join(",");
	if (articles.length > 0) {
		$.ajax({
			type: 'POST',
			data: {	call: 'addRemoveMyBB',
					action: 'add-multiple',
					articles: articles_str
					},
			url: path+"ajax.php"+'?uniq='+Math.random(),
			success: function(response) {
				if (response == "ADDED") {
					$('#feedback_addmybb_'+aid).html('<img src="'+path+'images/general/ok.png" alt="Ok" align="left" /> De artikelen zijn aan <a href="'+path+'mijn_belastingbelangen">uw selectie</a> toegevoegd.');					
					for (i = 0; i < articles.length; i++) {
						$('.check_'+articles[i]).hide();
						$('.added_'+articles[i]).show();
					}
					updateMyBBAmount();
				} else {
					//error
					$('#feedback_addmybb_'+aid).html('<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Er is een technische fout opgetreden. We verzoeken u contact op te nemen met BelastingBelangen. Onze excuses voor het ongemak.');
				}
				if (!$('#feedback_addmybb_'+aid).is(':visible')) {
					var footer_h = $('#footer_'+aid).height();
					var msg_h = $('#feedback_addmybb_'+aid).height();
					$('#footer_'+aid).height(footer_h+msg_h+30); // +30 for padding..
				}
				$('#feedback_addmybb_'+aid).show();
				reloadpngfix();
			}
		});
	} else {
		
		$('#feedback_addmybb_'+aid).html('<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Selecteer minimaal &eacute;&eacute;n artikel om toe te voegen.');		
		if (!$('#feedback_addmybb_'+aid).is(':visible')) {
			var footer_h = $('#footer_'+aid).height();
			var msg_h = $('#feedback_addmybb_'+aid).height();
			$('#footer_'+aid).height(footer_h+msg_h+30); // +30 for padding..
		}
		$('#feedback_addmybb_'+aid).show();
	}
}


function showComment(articleId) {
	if (!$("#commentbox_"+articleId).is(':visible')) {
		$(".commentbox").hide();
		//resizeTextarea(articleId)
		$("#commentbox_"+articleId).show();
		//interval = setInterval(function() { resizeTextarea(articleId); }, 10);//resizeTextarea(articleId);
	}
}

function closeComment() {
	$(".commentbox").hide();
	clearInterval(interval);
}

function saveComment(articleId) {
	var comment = $("#comment_"+articleId).val();
	if (comment == '') {
		$('#note_icon_empty_'+articleId).show();
		$('#note_icon_'+articleId).hide();
		$('#comment_title_'+articleId).html('');
	} else {
		$('#note_icon_empty_'+articleId).hide();
		$('#note_icon_'+articleId).show();
		$('#comment_title_'+articleId).html(today().toUpperCase());
	}
	var path = getRelativePath();	
	$.ajax({
		type: 'POST',
		data: {	call: 'saveMyBBComment',
				articleId: articleId,
				comment: comment
				},
		url: path+"ajax.php"+'?uniq='+Math.random(),
		success: function(response) {
			$(".commentbox").hide();
		}
	});
}


function deleteComment(articleId) {
	$("#comment_"+articleId).val('');
	saveComment(articleId);
}

/*function resizeTextarea(articleId) {
	var comment = $('#comment_'+articleId).val();
	var commentparts = comment.split("\n")
	comment = commentparts.join("<br />");
	if (commentparts[commentparts.length-1] == '') {
		comment += '.';
	}
	$("#heightcheck_"+articleId).html(comment);
	var h = ($("#heightcheck_"+articleId).height() < 16) ? 16 : $("#heightcheck_"+articleId).height();
	$('#comment_'+articleId).height(h);
} */


function switchSubusers(type) {
	$('.subusers_overview').hide();
	$('#'+type+'_subusers').show();
	if (type == 'professional') {
		setSubuserTab('professional', true);
		setSubuserTab('medium', false);
		setSubuserTab('basic', false);
	} else if (type == 'medium') {
		setSubuserTab('professional', false);
		setSubuserTab('medium', true);
		setSubuserTab('basic', false);
	} else {
		setSubuserTab('professional', false);
		setSubuserTab('medium', false);
		setSubuserTab('basic', true);
	}
}

function setSubuserTab(type, bActive) {
	if (bActive) {
		$('#tab_left_'+type).show();
		$('#tab_txt_'+type).css('color','#000000');
		$('#tab_txt_'+type).css('text-decoration','none');
		$('#tab_txt_'+type).css('font-weight','bold');
		$('#tab_txt_'+type).removeClass("inactive");
		$('#tab_right_'+type).show();
	} else {
		$('#tab_left_'+type).hide();
		$('#tab_txt_'+type).css('color','#49C3F6');
		$('#tab_txt_'+type).css('text-decoration','underline');
		$('#tab_txt_'+type).css('font-weight','normal');
		$('#tab_txt_'+type).addClass("inactive");
		$('#tab_right_'+type).hide();
	}
}

function addSub(subnr, type) {
	var path = getRelativePath();	
	$.ajax({
		type: 'POST',
		data: {	call: 'addSub',
				type: type,
				subnr: subnr
				},
		url: path+"ajax.php"+'?uniq='+Math.random(),
		success: function(response) {
			$('#'+type+'_subusers_form').append(response);
			subsadded[type]++;
			updateAddedSubsCount(type);
		}
	});
}

function removeSub(boxid, wasadded, type) {
	$('#'+boxid).remove();
	if (wasadded) {
		subsadded[type]--;
		updateAddedSubsCount(type);
	}
}

function updateAddedSubsCount(type) {
	var feedback = '';
	var price = parseFloat(subprice) * subsadded[type];
	price = price.toFixed(2).split(".").join(",");
	if (subsadded[type] >= 1) {
		if (subsadded[type] == 1) {
			//(<strong>kosten: &euro; "+price+"</strong>)
			feedback = subsadded[type]+" nieuwe '"+type+"' relatie toevoegen";
		} else {
			feedback = subsadded[type]+" nieuwe '"+type+"' relaties toevoegen";
		}
		$('#'+type+'_subscount').html(feedback);
		$('#'+type+'_subscount').show();
	} else {
		$('#'+type+'_subscount').hide();
	}
}


function checkSubTitle(titleDropdown) {
	//sub or newsub?
	var subtype = $(titleDropdown).attr('name').split("_")[0];
	var subid = $(titleDropdown).attr('name').split("_")[2];
	var voorlettersInput = $('#'+subtype+"_voorletters_"+subid);
	if ($(titleDropdown).val() == 'd') {
		voorlettersInput.attr('disabled', 'disabled');
		voorlettersInput.val('');
		voorlettersInput.css('border', '1px solid #DEDEDE');
		voorlettersInput.css('background-image', 'none');
		voorlettersInput.css('background-color', '#FFFFFF');
	} else {
		voorlettersInput.attr('disabled', '');
		voorlettersInput.css('border', '1px solid #61635E');
		voorlettersInput.css('background-image', 'url("../../images/general/field-bg.gif")');
	}
}

function emailArticleselection(articleselectionId) {	
	var path = getRelativePath();
	$('#mailaction_'+articleselectionId).html('<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> De e-mail wordt voorbereid..');
	$('#mailaction_'+articleselectionId).css('margin','10px 0 -12px 0');
	$('#mailaction_'+articleselectionId).show();
	$.ajax({
		type: 'POST',
		data: {	call: 'emailArticleselection',
				articleselectionId: articleselectionId
				},
		url: path+"ajax.php"+'?uniq='+Math.random(),
		success: function(response) {
			if (response == 'OK') {
				$('#mailaction_'+articleselectionId).html('<img src="'+path+'images/general/ok.png" alt="Ok" align="left" /> Het nummer is naar uw e-mailadres verstuurd.');				
			} else {
				$('#mailaction_'+articleselectionId).html('<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Er is een technische fout opgetreden. We verzoeken u contact op te nemen met BelastingBelangen. Onze excuses voor het ongemak.');
			}
			reloadpngfix();
		}
	});
}

function emailArticles(type) {
	var articleIds, feedbackbox, feedback;
	var all=false;
	var ok=true;
	var path = getRelativePath();
	if (type == 'selection') {
		//email selection of articles (loop through selectboxes)
		var form = document.getElementById('categoriesholder');
		articleIds = new Array();
		for(var i = 0; i < form.elements.length; i++) {
			var field = form.elements[i];
			if (field.type == 'checkbox' && $(field).is(':checked')) {
				var articleId = field.name.split("_")[1];
				if (!inArray(articleIds, articleId)) articleIds.push(articleId);
			}
		}
		feedbackbox = $('#emailselect_feedback');
		if (articleIds.length > 0) {
			articleIds = articleIds.join(",");	
		} else {
			ok = false;
			feedbackbox.html('<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Selecteer minimaal &eacute;&eacute;n artikel.');
			feedbackbox.show();
		}
		
		feedback = 'De selectie is naar uw e-mailadres verstuurd.';
	} else if (type == 'all') {
		//email all articles in mybb
		all	= true;
		articleIds = '';
		feedbackbox = $('#mail_all_mybb');
		feedback = 'De selectie is naar uw e-mailadres verstuurd.';
	} else if (!isNaN(type)) {
		//specific article by id
		articleIds = type;
		feedbackbox = $('#feedback_'+type);
		$('#article_'+type).height(70);
		feedback = 'Het artikel is naar uw e-mailadres verstuurd.';
	}
	if (ok) {		
		feedbackbox.html('<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> De e-mail wordt voorbereid..');
		feedbackbox.show();
		$.ajax({
			type: 'POST',
			data: {	call: 'emailArticles',
					articleIds: articleIds,
					all: all
					},
			url: path+"ajax.php"+'?uniq='+Math.random(),
			success: function(response) {
				if (response == 'OK') {
					feedbackbox.html('<img src="'+path+'images/general/ok.png" alt="Ok" align="left" /> '+feedback);
				} else {
					feedbackbox.html('<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Er is een technische fout opgetreden. We verzoeken u contact op te nemen met BelastingBelangen. Onze excuses voor het ongemak.');
				}
				reloadpngfix();
			}
		});
	}
}

function mailMyData() {
	var path = getRelativePath();
	$("#maildata_feedback").html('<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> De e-mail wordt voorbereid..');
	$("#maildata_feedback").show();
	$.ajax({
		type: 'POST',
		data: {	call: 'mailData'
				},
		url: path+"ajax.php"+'?uniq='+Math.random(),
		success: function(response) {
			if (response == 'OK') {
				$("#maildata_feedback").html('<img src="'+path+'images/general/ok.png" alt="Ok" align="left" /> Een overzicht van uw gegevens is naar uw e-mailadres verstuurd.');
			} else {
				$("#maildata_feedback").html('<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Er is een technische fout opgetreden. We verzoeken u contact op te nemen <br />met BelastingBelangen. Onze excuses voor het ongemak.');
			}
			reloadpngfix();
		}
	});
}

function mailSubs() {
	var path = getRelativePath();
	$("#mailsubs_feedback").html('<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> De e-mail wordt voorbereid..');
	$("#mailsubs_feedback").show();
	$.ajax({
		type: 'POST',
		data: {	call: 'mailSubs'
				},
		url: path+"ajax.php"+'?uniq='+Math.random(),
		success: function(response) {
			if (response == 'OK') {
				$("#mailsubs_feedback").html('<img src="'+path+'images/general/ok.png" alt="Ok" align="left" /> Een overzicht van uw relaties is naar uw e-mailadres verstuurd.');
			} else {
				$("#mailsubs_feedback").html('<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Er is een technische fout opgetreden. We verzoeken u contact op te nemen <br />met BelastingBelangen. Onze excuses voor het ongemak.');
			}
			reloadpngfix();
		}
	});
}

//OTHER

function shareBlog(blogId) {
	var path = getRelativePath();
	$.ajax({
		type: 'POST',
		data: {	call: 'shareBlog',
				blogId: blogId
				},
		url: path+"ajax.php"+'?uniq='+Math.random(),
		success: function(response) {
			$("#share_blog").html(response);
			
		}
	});
}

function checkDossierTitles() {
	$('h4').each(function() {
		//two line height = 55
		var h = $(this).height();
		$(this).css('margin-top',Math.round((55-h)/2));
	});
}

function slideToggle(id) {
	var content = $("#toggle_content_"+id);
	var open_btn = $("#toggle_btn_open_"+id);
	var close_btn = $("#toggle_btn_close_"+id);
	if ($(content).is(":hidden")) {
		content.slideDown("normal",function() {  } );
		open_btn.hide();
		close_btn.show();
		$("#extratoggle_"+id).hide();		
	} else {
		content.slideUp();
		open_btn.show();
		close_btn.hide();
		$("#extratoggle_"+id).show();
	}
}

function toggleRegisterForm(subj) {
	var btn_tempaccount = document.getElementById('showTempaccountForm');
	var btn_tempaccount_parts = btn_tempaccount.src.split("/");
	btn_tempaccount_parts.pop();
	var btn_tempaccount_src = btn_tempaccount_parts.join("/");
	var btn_register = document.getElementById('showRegisterForm');
	var btn_register_parts = btn_register.src.split("/");
	btn_register_parts.pop();
	var btn_register_src = btn_register_parts.join("/");
	if (subj == 'register')	{
		$("#tempaccount_area").hide();
		btn_tempaccount.src = btn_tempaccount_src+'/btn-gratisproefnummer.gif';
		$("#register_area").show();	
		btn_register.src = btn_register_src+'/btn-abonnement-active.gif';
	} else {
		$("#register_area").hide();
		btn_register.src = btn_register_src+'/btn-abonnement.gif';
		$("#tempaccount_area").show();	
		btn_tempaccount.src = btn_tempaccount_src+'/btn-gratisproefnummer-active.gif';
	}
}

function tagSearch(tag) {
	$("#searchfield").val('tag:'+tag);
	document.getElementById('searchbox').submit();
}


function activateField(field, activate, defaultval) {
	if (activate) {
		if (field.value == '' || field.value == defaultval) {
			field.value = '';
			$("#"+field.id).css('color','#5c5c56');
		}
	} else {
		if (field.value == '' || field.value == defaultval) {
			field.value = defaultval;
			$("#"+field.id).css('color','#c5c5c5');
		}
	}
}

function activateButton(button, activate, addon) {
	var srcparts = button.src.split("/");
	var img = srcparts.pop();
	if (activate) {
		img = img.split(".");
		var ext = img.pop();
		var name_end = img.pop();
		name_end = name_end+addon;
		img.push(name_end);
		img.push(ext);
		img = img.join(".");
	} else {
		img = img.split(".");
		var ext = img.pop();
		var name_end = img.pop();
		name_end = name_end.substr(0,name_end.length-addon.length);
		img.push(name_end);
		img.push(ext);
		img = img.join(".");
	}
	srcparts.push(img);
	button.src = srcparts.join("/");
}


function statsRegister(subject) {
	var path = getRelativePath();
	$.ajax({
		type: 'POST',
		data: {	call: 'statsRegister',
				subject: subject
				},
		url: path+"ajax.php"+'?uniq='+Math.random()
	});
}



function inArray(arr, el) {
	var i;
	for	(i = 0; i < arr.length; i++) {
		if (el.toString() == arr[i].toString()) return true;
	}
	return false;
}

function removeFromArray(arr, el) {
	var i;
	var new_arr = new Array();
	for	(i = 0; i < arr.length; i++) {
		if (el.toString() != arr[i].toString()) new_arr.push(arr[i]);
	}
	return new_arr;
}

function today() {
	var d=new Date();
	var months = new Array();
	months.push('januari');
	months.push('februari');
	months.push('maart');
	months.push('april');
	months.push('mei');
	months.push('juni');
	months.push('juli');
	months.push('augustus');
	months.push('september');
	months.push('oktober');
	months.push('november');
	months.push('december');
	return d.getDate()+" "+months[d.getMonth()]+" "+d.getFullYear();
}


function showAdvancedSearch(show) {
	if (show) {
		$("#search_period").show();
		$("#search_slide_out").show();
		$("#pagesearch_fieldbtn").hide();
		$("#pagesearch_fieldend").show();
		$("#toggle_btn_open").hide();
		$("#toggle_btn_close").show();
	} else {
		$("#search_period").hide();
		$("#search_slide_out").hide();
		$("#pagesearch_fieldbtn").show();
		$("#pagesearch_fieldend").hide();
		$("#toggle_btn_open").show();
		$("#toggle_btn_close").hide();
	}
}


function selectTag(tagid) {
	var s_tagids = $("#form_tagids").val();
	var a_tagids = s_tagids.split(",");
	if (inArray(a_tagids, tagid)) {
		$("#searchtag_"+tagid).removeClass("tag_selected");
		$("#searchtag_"+tagid).css("background","");
		var new_tagids = removeFromArray(a_tagids, tagid);
		s_tagids = new_tagids.join(",");
		$("#form_tagids").val(s_tagids);
	} else {
		$("#searchtag_"+tagid).addClass("tag_selected");
		s_tagids += ","+tagid;
		$("#form_tagids").val(s_tagids);
	}
}



function setDatePicker(fieldId, buttonId, startDate, endDate, otherFieldId, otherButtonId, otherType) {
	$('#'+buttonId)
		.datePicker(
					{
						createButton:false,
						startDate: startDate,
						endDate: endDate
					}
		)
		.unbind('click')
		.bind(
			'click',
			function()
			{
				$(this).dpDisplay();
				this.blur();
				return false;
			}
		)
		.unbind('dateSelected')
		.bind(
			'dateSelected',
			function(e, selectedDate, $td)
			{
				//set date
				var d = selectedDate.getDate();
				if (d < 10) d = "0"+d;
				var m = selectedDate.getMonth()+1;
				if (m < 10) m = "0"+m;
				var y = selectedDate.getFullYear();
				$('#'+fieldId).val(d+'-'+m+'-'+y);
				$('#'+fieldId).css('color','#5c5c56');
				//make sure other date box can only select right dates
				if (otherType == 'start') {
					setDatePicker(otherFieldId, otherButtonId, '01/11/2006', (d+'/'+m+'/'+y), fieldId, buttonId, 'end');
				} else {
					setDatePicker(otherFieldId, otherButtonId, (d+'/'+m+'/'+y), (new Date()).asString(), fieldId, buttonId, 'start');
				}
			}
		);
}

function checkAdvancedSearchForm() {	
	var path = getRelativePath();
	var keyword, startdate, enddate, tags, feedback;
	feedback = '';
	//keyword
	keyword = $('#pagesearchfield').val();
	if (keyword == 'Trefwoord') keyword = '';
	//dates
	startdate = $('#search_start_date').val();
	if (startdate == 'dd-mm-jjjj') startdate = '';
	enddate = $('#search_end_date').val();
	if (enddate == 'dd-mm-jjjj') enddate = '';
	//tags
	var tmptags = $('#form_tagids').val();
	tmptags.split(',');
	tags = new Array();
	for (var i = 0; i < tmptags.length; i++) {
		if (tmptags[i] != '') tags.push(tmptags[i]);
	}
	//nothing filled in?
	if (keyword == '' && startdate == '' && enddate == '' && tags.length == 0) {
		feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Vul een trefwoord of een publicatieperiode in of selecteer een aantal tags.<br />';
	}
	//check dates
	var sdparts, edparts, checkstartend;
	checkstartend = true;
	startdate.split("/").join("-");
	enddate.split("/").join("-");
	startparts = startdate.split("-");
	endparts = enddate.split("-");
	if (startdate != '' && !isDate(startparts[1] + '-' + startparts[0] + '-' +  startparts[2])) {
		feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Vul een geldige startdatum in.<br />';
		checkstartend = false;
	}
	
	if (enddate != '' && !isDate(endparts[1] + '-' + endparts[0] + '-' +  endparts[2])) {
		feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> Vul een geldige einddatum in.<br />';
		checkstartend = false;
	}
	if (startdate != '' && enddate != '' && checkstartend) {		
		startdate = new Date(startparts[2], startparts[1]-1, startparts[0]);		
		enddate = new Date(endparts[2], endparts[1]-1, endparts[0]);
		if (startdate > enddate){
			feedback += '<img src="'+path+'images/general/list-arrow.gif" alt="Pijl" align="left" /> De einddatum moet later zijn dan de startdatum.<br />';
		}
	}
	
	if (feedback == '') {
		//no errors -> submit form
		$('#form_search_mode').val('advanced'); 
		$('#pagesearchbox').submit();
	} else {
		//display errors
		$('#feedback').html(feedback);
		$('#feedback').show();
	}
}

function isDate(dateStr) {
	//dateStr -> mm/dd/yyyy or mm-dd-yyyy
	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
	var matchArray = dateStr.match(datePat); // is the format ok?
	
	if (matchArray == null) {
		return false;
	}

	month = matchArray[1];
	day = matchArray[3];
	year = matchArray[5];
	
	if (month < 1 || month > 12) {
		return false;
	}
	
	if (day < 1 || day > 31) {
		return false;
	}
	
	if ((month==4 || month==6 || month==9 || month==11) && day==31) {
		return false;
	}
	
	if (month == 2) { 
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day > 29 || (day==29 && !isleap)) {
			return false;
		}
	}
	return true;
}


