$(document).ready(function(){
	
	/**
	 * Simpele functie voor het checken van e-mail adres
	 */
	var isValidEmail = function (str) {
		
		var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
		
		if (filter.test(str))
		{
			return true;
		}
		else
		{
			return false;
		}

		// Was eerst
		//return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
	}

	/**
	 * Functie voor het checken van een formulier
	 */
	var checkForm = function (arrayMandatory) {

		var arrMandatory = arrayMandatory;
		
		var error = parseInt(0);
		
		for(var i = 0;i < arrMandatory.length;i++)
		{
			//alert(arrMandatory[i]);
			var fieldElm = $('[name=' + arrMandatory[i] + ']');

			if(fieldElm.attr('type') == "radio" || fieldElm.attr('type') == "checkbox")
			{
				fieldElm = $('[name=' + arrMandatory[i] + ']:checked');
				
				if(!fieldElm || !fieldElm.attr('checked'))
				{
					$('[for=' + arrMandatory[i] + ']').css("color","#FF0000");
					
					error++;
				}
				
			}	
			else if((arrMandatory[i] == "email" || arrMandatory[i] == "email_new") && !isValidEmail(fieldElm.val()))
			{
				$('[for=' + arrMandatory[i] + ']').css("color","#FF0000");
				
				error++;
			}
			else if(fieldElm.length > 0)
			{
				fieldElm.each(function () {
					if($(this).val().length == 0)
					{
						$('[for=' + arrMandatory[i] + ']').css("color","#FF0000");
						
						error++;
					}
				});
			}
			else if(fieldElm && fieldElm.val().length == 0)
			{
				$('[for=' + arrMandatory[i] + ']').css("color","#FF0000");
				
				error++;
			}
			
		}
		
		if(error > 0)
		{
			return false;
		}
		else
		{
			return true;
		}
	
	}
	
	var oldLabelColor = $('label[for]').css("color");
	
	/**
	 * Als er op een veld geklikt word het gekoppelde label weer
	 * de normale kleur geven.
	 */
	$('input[type=text]').focus(function (e) {
		var fieldName = $(this).attr("name");
		$('[for=' + fieldName + ']').css("color",oldLabelColor);
	});
	
	$('select').change(function (e) {
		var fieldName = $(this).attr("name");
		$('[for=' + fieldName + ']').css("color",oldLabelColor);
	});
	
	$('input[type=radio]').change(function (e) {
		var fieldName = $(this).attr("name");
		$('[for=' + fieldName + ']').css("color",oldLabelColor);
	});

	$('input[type=checkbox]').change(function (e) {
		var fieldName = $(this).attr("name");
		$('[for=' + fieldName + ']').css("color",oldLabelColor);
	});
	
	/**
	 * 
	 */
	$('#slagzin_form').submit(function () {
		return checkForm(Array('voornaam','achternaam','slagzin','email'));
	});
	
	/**
	 * Magazine digitaal formulier
	 */
	$('#magazine-digitaal').submit(function () {
		return checkForm(Array('voorletters','achternaam','postcode','woonplaats','huisnummer','email','magazine-digitaal'));
	});
	
	/**
	 * Newsletter signup checken
	 */
	$('#newsletterSignup').submit(function () {
		return checkForm(Array('voorletters','achternaam','email'));
	});
	
	/**
	 * Donatie formulier checken
	 */
	$('#donation').submit(function () {
		return checkForm(Array('voorletters','achternaam','email','huisnummer','postcode','straat','rekeningnr','woonplaats'));
	});
	
	/**
	 * E-mail wijziging
	 */
	$('#email_change').submit(function () {
		return checkForm(Array('email','email_new'));
	});
	/**
	 * Adres wijziging
	 */
	$('#member_change').submit(function () {
		return checkForm(Array('voorletters','achternaam'));
	});
	
	/**
	 * Vrijwilliger
	 */
	$('#volunteer_signup').submit(function () {
		return checkForm(Array('voornaam','voorletters','achternaam','email','huisnummer','postcode','straat','woonplaats','telefoon','choice_work','choice','birthday[]', 'algvoorwaarde'));
	});

	/**
	 * Send to a friend
	 */
	$('#send_to_a_friend').submit(function () {
		return checkForm(Array('from-voornaam','from-achternaam','from-email','voornaam','achternaam','email'));
	});	
	
	$('.selectdonate').change(function () {
		
		if($(this).val() == "other")
		{	
			$('#other_'+ $(this).attr('rel')).css('display','');
		}
		else
		{
			$('#other_'+ $(this).attr('rel')).css('display','none');
		}
	
	});
	
	$('.donateradio').click(function () {
		enableSelect($(this).val());
	
	});
	
	$('[name=steun]').click(function () {
		
		if($(this).val() == 'eenmalig')
		{
			//alert('show');
			
			$('.donate').hide();
			$('.donate-once').show();
			//$('.donate').closest('label').hide();
		}
		else
		{
			$('.donate-once').hide();
			$('.donate').show();
		}
		
	});

	$('.donateradio').each(function () {
		if ($(this).attr('checked')) {
			enableSelect($(this).val());
		}
	});

	function enableSelect(strEnableSelectName) {
		
		// Disable de rest
		$('.selectdonate').each(function () {
			$(this).attr('disabled', 'disabled');
		});
		
		$('#donateselect_'+strEnableSelectName).removeAttr('disabled');
		
	}
	
	checkOtherSelected();
	
	function checkOtherSelected() {
		
		$('.selectdonate').each(function () {
			
			if($(this).get('value')=="other")
			{	
				$('#other_'+ $(this).attr('rel')).css('display','');
			}
		});
		
	}
	
	$('#idealAmount').keyup(function () {
		
		var strValue = $(this).val();
		strValue = strValue.replace(/[^\d]/, '');
		$(this).val(strValue);
		
	});
	

	$('#paymentIdeal').change(function () {

		if($(this).attr('checked'))
		{
			// 
			$('label[for=rekeningnr]').hide();
			$('input[name=rekeningnr]').val('ideal').hide();
		}
		else
		{		
			$('label[for=rekeningnr]').show();
			$('input[name=rekeningnr]').val('').show();
		}

	});
	
	$('.otheramount').change(function () {
		
		var strValue = $(this).val();
		var strDondateDate = $(this).attr('dondatedate');
		
		strValue.replace(",",".");
				
		if(strDondateDate=="month" && strValue<'2.49' && strValue!="")
		{
			displayMinimumError();
		}
		else if(strDondateDate=="trimester" && strValue<'4.99' && strValue!="")
		{
			displayMinimumError();
		}
		else if(strDondateDate=="year" && strValue<'19.99' && strValue!="")
		{
			displayMinimumError();
		}
		else
		{
			hideMinimumError();
		}
	
	});
	
	function displayMinimumError() {
		$('div#minimumerror').css('display','');
	}
	
	function hideMinimumError() {
		$('div#minimumerror').css('display','none');
	}

	
    $('#hierdehash').val(window.location.hash);
    

	
	
});