$(function() {

	// Activate Formulier.
	// Zet een link in het document met een class "frm_btn"
	// geef deze link een attribuut name met de formuliernaam (bijv "contact_formulier") dit is de naam van de div waar het formulier in staat.
	
	$('a.frm_btn').unbind('click').live('click', function(){
		
		function trim(s) {
			return rtrim(ltrim(s));
		}
		
		function ltrim(s) {
			var l=0;
			while(l < s.length && s[l] == ' ')
			{	l++; }
			return s.substring(l, s.length);
		}
		
		function rtrim(s) {
			var r=s.length -1;
			while(r > 0 && s[r] == ' ')
			{	r-=1;	}
			return s.substring(0, r+1);
		}
		
				
		var frm = '#' + $(this).attr('name');
		
		// before showing the modal window, reset the form incase of previous use.
		$('.frm_success, .frm_error').hide();
		$('.frm, .frm_head').show();
		
		// Reset all the default values in the form fields
		// We zetten de titel van de input er in om de velden te duiden
		$(frm).find('.frm_inp').each(function(){
			$(this).val($(this).attr('title').toUpperCase());
			$(frm).find('.formError').remove();
			if ($(this).attr('pre')) {
				$(this).val($(this).attr('pre'));
			}
		});

		//show the mask and contact divs
		$('#mask').show().fadeTo('', 0.7);
		$(frm).fadeIn();

		// close the modal window if close div or mask div are clicked.
		$('.frm_close, .frm_ready, #mask').click(function() {
			$(frm +', #mask').stop().fadeOut();
		});
	
		$(frm).find('.frm_inp').focus(function() {
			//$(this).val('');
			$(this).parent().find('.formError').fadeOut();
			if ($(this).val().toUpperCase() == $(this).attr('title').toUpperCase()) {
				$(this).val('');
			}
		});

		$(frm).find('.frm_inp').keydown(function() {
			if ($(this).val().toUpperCase() == $(this).attr('title').toUpperCase()) {
				$(this).val('');
			}
		});


		$(frm).find('.frm_inp').blur(function() {
			if (trim($(this).val())==''){
				$(this).val($(this).attr('title').toUpperCase());	
				$(this).parent().find('.formError').fadeIn();
			}
		});
		
		function appendError(th, tekst) {
			$(th).parent().append('<div class="formError" ><div class="formErrorContent">' + tekst + '</div>'
				+ '<div class="formErrorArrow"><div class="line10"></div><div class="line9"></div><div class="line8"></div><div class="line7"></div>'
				+ '<div class="line6"></div><div class="line5"></div><div class="line4"></div><div class="line3"></div><div class="line2"></div>'
				+ '<div class="line1"></div></div></div>', function(){$(th).parent().find('.formError').fadeIn();});
		}
		
		// when the Submit button is clicked...
		$(frm).find('.frm_submit').click(function() {
			$(frm).find('.formError').remove();
			//Error Count
			var error_count = 0;
			
			//Regex Strings
			var email_regex = /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/;
			var formdata = 'Titel=' + $(frm).attr('title');
			
			$(frm).find('.frm_inp').each(function(){
				var error_tekst = '';
				var veldTitel = $(this).attr('title');
				var prefill = $(this).attr('title');
				var waarde = '';
				if ($(this).hasClass('filename_box')) {
					waarde = "<a href='http://www.sagiuswervingenselectie.nl" + $(this).text() + "'>" + $(this).text() + "</a>";	
				} else {
					waarde = $(this).val();
				}
				if (waarde.toUpperCase() == prefill.toUpperCase()) {waarde = ''}
				if ($(this).hasClass('req')) {
					// vereist veld
					if (waarde == '') {
						error_count += 1;
						error_tekst = $(this).attr('errortekst');
					}
				}
				if ($(this).hasClass('naam')) {
					if (waarde.indexOf(' ')<0) {
						error_count += 1;
						error_tekst = $(this).attr('errortekst');
					}
				}
				if ($(this).hasClass('email') && (waarde != '')) {
					// email invoer controleren
					if(!email_regex.test(waarde)) {
						error_count += 1;
						error_tekst = 'Ongeldig email adres ingevoerd';					
					}
				}
				if (error_tekst != '') {
					appendError($(this), error_tekst);
				} //else {
					if (waarde == '') {waarde=' '}
					formdata = formdata + "&" + veldTitel + "=" + waarde;
				//}
			});

			//No Errors?
			if(error_count == 0) {
				$.ajax({
					type: "post",
					url: "php/send.php",
					data: formdata,
					error: function() {
						$('.error').hide();
						$(frm).find('.sendError').slideDown('slow');
					},
					success: function () {
						$('.error').hide();
						$('body,html').scrollTop();
						$(frm).find('form').hide();
						$(frm).find('.frm_success').slideDown('slow');
					}				
				});	
			}
							
			return false;
		});
		
		// stop the modal link from doing its default action
		return false;

	});
	
});
