// Reacties uitklappen
$(function()
{
	$('.toggle').click(function()
	{
    	$(this).closest('.beste, .antwoord').next('.hiddenreacties').slideToggle('slow');
    	return false;
	});
});

// Positieve stem op antwoord geven
$(function()
{
	$('a.vote_up').click(function()
	{
		id = $(this).attr('id');
		
		$.ajax(
		{
			type: 'POST',
			data: 'action=vote_up&id='+id,
			url: '/ajax/vote.php',
			success: function(msg)
			{
				$("span#p"+id).fadeOut();
				$("span#p"+id).html(msg);
				$("span#p"+id).fadeIn();
			}
		}
		)
		return false;
	});
});

// Negatieve stem op antwoord geven
$(function()
{
	$('a.vote_down').click(function()
	{
		id = $(this).attr('id');
		
		$.ajax(
		{
			type: 'POST',
			data: 'action=vote_down&id='+id,
			url: '/ajax/vote.php',
			success: function(msg)
			{
				$("span#n"+id).fadeOut();
				$("span#n"+id).html(msg);
				$("span#n"+id).fadeIn();
			}
		}
		)
		return false;
	});
});

// Chained select voor pagina waarop de vraag gesteld word
$(function()
{	
	$('.cat').change(function()
	{
		var id = $(this).val();
		
		$.ajax(
		{
			type: 'POST',
			data: 'cat='+id,
			url: '/ajax/chained-select.php',
			success: function(html)
			{
				$('.subcat').html(html);
			}
		}		
		);
	});
});

function trim(value) 
{ 
	value = value.replace(/^\s+/,''); 
	value = value.replace(/\s+$/,''); 
	return value; 
} 

// Validatie van het vraag formulier
function controleer_vraagformulier(formulier)
{
	if (trim(formulier.cat.value) == '')
	{
		alert('Selecteer een categorie');
		formulier.cat.focus();
		return false;
	}
	
	if (trim(formulier.subcat.value) == '')
	{
		alert('Selecteer een subcategorie');
		formulier.subcat.focus();
		return false;
	}
	
	if (trim(formulier.titel.value) == '' || formulier.titel.value.length > 70)
	{
		alert('Vul een geldige vraag in (max. 70 karakters)');
		formulier.titel.focus();
		return false;
	}
	return true;
}

// Validatie van het antwoord formulier
function controleer_antwoordformulier(formulier)
{
	if (trim(formulier.antwoord.value) == '')
	{
		alert('Vul een antwoord in');
		formulier.antwoord.focus();
		return false;
	}
	return true;
}

// Validatie van het reactie formulier
function controleer_reactieformulier(formulier)
{
	if (trim(formulier.reactie.value) == '')
	{
		alert('Vul een reactie in');
		formulier.reactie.focus();
		return false;
	}
	return true;
}

// Validatie van het inlog formulier
function controleer_inlogformulier(formulier)
{
	if (trim(formulier.gebruikersnaam.value) == '')
	{
		alert('Vul een gebruikersnaam in');
		formulier.gebruikersnaam.focus();
		return false;
	}
	
	if (trim(formulier.wachtwoord.value) == '')
	{
		alert('Vul een wachtwoord in');
		formulier.wachtwoord.focus();
		return false;
	}
	return true;
}

// Validatie van het zoek formulier
function controleer_zoekformulier(formulier)
{
	if (trim(formulier.query.value) == '' || formulier.query.value.length < 4 || formulier.query.value == 'Vul een zoekterm in...')
	{
		alert('Vul een correcte zoekterm in (min. 4 karakters)');
		formulier.query.focus();
		return false;
	}
	return true;
}

// Validatie van het registratie formulier
function controleer_registratieformulier(formulier)
{
	var reg = new RegExp(/^[A-Za-z0-9]{3,15}$/)
	if (trim(formulier.gebruikersnaam.value) == '' || reg.exec(formulier.gebruikersnaam.value) == null)
	{
		alert('Vul een geldige gebruikersnaam in');
		formulier.gebruikersnaam.focus();
		return false;
	}
	
	var reg = new RegExp(/^[A-Za-z0-9\+._-]+@[A-Za-z0-9._-]+\.[A-Za-z]{2,6}$/)
	if (trim(formulier.email.value) == '' || reg.exec(formulier.email.value) == null)
	{
		alert('Vul een geldig e-mailadres in');
		formulier.email.focus();
		return false;
	}
	
	if (trim(formulier.wachtwoord.value) == '' | formulier.wachtwoord.value.length < 6)
	{
		alert('Vul een geldig wachtwoord in (min. 6 karakters)');
		formulier.wachtwoord.focus();
		return false;
	}
	
	if (formulier.wachtwoord_herhaal.value != formulier.wachtwoord.value)
	{
		alert('Herhaal wachtwoord komt niet overeen met wachtwoord');
		formulier.wachtwoord_herhaal.focus();
		return false;
	}	
	return true;
}

// Validatie van het leden wijzigen formulier
function controleer_leden_wijzigformulier(formulier)
{		
	if (trim(formulier.wachtwoord_huidig.value) != '' && trim(formulier.wachtwoord_nieuw.value) != '' && trim(formulier.wachtwoord_nieuw_herhaal.value) != '')
	{
		if (formulier.wachtwoord_huidig.value.length < 6)
		{
			alert('Vul een geldig huidige wachtwoord in (min. 6 karakters)');
			formulier.wachtwoord_huidig.focus();
			return false;
		}
		
		if (formulier.wachtwoord_nieuw.value.length < 6)
		{
			alert('Vul een geldig nieuw wachtwoord in (min. 6 karakters)');
			formulier.wachtwoord_nieuw.focus();
			return false;
		}
		
		if (formulier.wachtwoord_nieuw_herhaal.value != formulier.wachtwoord_nieuw.value)
		{
			alert('Herhaal wachtwoord komt niet overeen met wachtwoord');
			formulier.wachtwoord_nieuw_herhaal.focus();
			return false;
		}
	}
	
	else if (trim(formulier.wachtwoord_huidig.value) != '' || trim(formulier.wachtwoord_nieuw.value) != '' || trim(formulier.wachtwoord_nieuw_herhaal.value) != '')
	{
		
		if (trim(formulier.wachtwoord_huidig.value) == '' | formulier.wachtwoord_huidig.value.length < 6)
		{
			alert('Vul een geldig huidige wachtwoord in (min. 6 karakters)');
			formulier.wachtwoord_huidig.focus();
			return false;
		}
		
		if (trim(formulier.wachtwoord_nieuw.value) == '' | formulier.wachtwoord_nieuw.value.length < 6)
		{
			alert('Vul een geldig nieuw wachtwoord in (min. 6 karakters)');
			formulier.wachtwoord_nieuw.focus();
			return false;
		}
		
		if (formulier.wachtwoord_nieuw_herhaal.value != formulier.wachtwoord_nieuw.value)
		{
			alert('Herhaal wachtwoord komt niet overeen met wachtwoord');
			formulier.wachtwoord_nieuw_herhaal.focus();
			return false;
		}
	}
		
	var reg = new RegExp(/^[A-Za-z0-9\+._-]+@[A-Za-z0-9._-]+\.[A-Za-z]{2,6}$/)
	if (trim(formulier.email.value) == '' || reg.exec(formulier.email.value) == null)
	{
		alert('Vul een geldig e-mailadres in');
		formulier.email.focus();
		return false;
	}

	if ((trim(formulier.geboortedag.value) != '' || trim(formulier.geboortemaand.value) != '' || trim(formulier.geboortejaar.value) != '') && (trim(formulier.geboortedag.value) == '' || trim(formulier.geboortemaand.value) == '' || trim(formulier.geboortejaar.value) == ''))
	{
		alert('Vul een geldige geboortedatum in');
		formulier.geboortedag.focus();
		return false;
	}
	
	var reg = new RegExp(/^pub-[0-9]{16}$/)
	if (trim(formulier.adsense_code.value) != '' && reg.exec(formulier.adsense_code.value) == null)
	{
		alert('Vul een geldige adsense code in');
		formulier.adsense_code.focus();
		return false;
	}

	return true;
}

// Validatie van het contactformulier
function controleer_contactformulier(formulier)
{
	if (trim(formulier.naam.value) == '')
	{
		alert('Vul een naam in');
		formulier.naam.focus();
		return false;
	}
	
	var reg = new RegExp(/^[A-Za-z0-9\+._-]+@[A-Za-z0-9._-]+\.[A-Za-z]{2,6}$/)
	if (formulier.email.value == '' || reg.exec(formulier.email.value) == null)
	{
		alert('Vul een geldig e-mailadres in');
		formulier.email.focus();
		return false;
	}
	
	if (trim(formulier.bericht.value) == '')
	{
		alert('Vul een bericht in');
		formulier.bericht.focus();
		return false;
	}
	return true;
}
