/* CHECKFORM */
$(document).ready(function(){
	$('.hasCheckfield input[type=text], .hasCheckfield input[type=password], .hasCheckfield input[type=checkbox], .hasCheckfield select, .hasCheckfield textarea').each(function(){
		var hasSpan = 0;
		$(this).parent().find('span.checkfield').each(function(){
			hasSpan++;
		});
		var noCheckfield = $(this).hasClass('noCheckfield');
		if(!hasSpan && !noCheckfield){
			$('<span class="checkfield"></span>').insertAfter(this);
		}
	});
	$('.hasCheckfield input, .hasCheckfield select, .hasCheckfield textarea').blur(function(){ checkfield(this); }).change(function(){ checkfield(this); });
});

function checkform(form){
	
	$('.editor').each( function(){
		var editor = tinyMCE.get($('.editor').attr('name')); 
		$('.editor').val( editor.getContent() );
	});

	var succes = true;
	$('#'+form+' input, #'+form+' select, #'+form+' textarea').each(function(){ 
		var check=checkfield(this); 
		succes=!succes?succes:check; 
	});

	return succes;
}

function checkfield(e){
	if($(e).attr('type')!='hidden'){
				 
		var error = false;
		if($(e).attr('type')=='radio' || $(e).attr('type')=='checkbox'){
			var name = $(e).attr('name');
			if($(e).hasClass('verplicht') && !$("input[name='"+name+"']:checked").val()){
				error = 'verplicht';
			}
		} else {
			if($(e).hasClass('verplicht') && ($(e).val()=='' || $(e).val()==$(e).attr('alt'))){
				error = 'verplicht';
			} else
			if($(e).hasClass('validate_postcode') && !checkpostcode($(e).val())){
				error = 'incorrecte postcode';
			} else
			if($(e).hasClass('validate_email') && !checkmail($(e).val())){
				error = 'incorrecte e-mail';
			} else
			if($(e).hasClass('aantal') && !checknum($(e).val())){
				error = 'dit is geen getal';
			} else
			if($(e).hasClass('validate_telefoonnr') && !checktelefoon($(e).val())){
				error = 'incorrecte telefoonnummer';
			}
		}
	
		if(error!=''){
			$(e).parent().find('span.checkfield').removeClass('valide').addClass('error');
			$(e).parent().find('span.checkfield').text(error);
			if(($(e).attr('type')=='radio' || $(e).attr('type')=='checkbox') && ($(e).parent().find('span.checkfield').text()!=error)){
				$(e).parent().parent().find('span.checkfield').removeClass('valide').addClass('error');
				$(e).parent().parent().find('span.checkfield').text(error);
			}
			return false;
		} else {
			if($(e).val()){
				$(e).parent().find('span.checkfield').removeClass('error').addClass('valide');
				if(($(e).attr('type')=='radio' || $(e).attr('type')=='checkbox') && (!$(e).parent().find('span.checkfield').hasClass('valide'))){
					$(e).parent().parent().find('span.checkfield').removeClass('error').addClass('valide');
					$(e).parent().parent().find('span.checkfield').html('&nbsp;');
				}
			} else {
				$(e).parent().find('span.checkfield').removeClass('valide').removeClass('error');
			} 
			$(e).parent().find('span.checkfield').html('&nbsp;');
			return true;
		}
	}
	return true;
}


function checkmail(email){
	var regExp= new RegExp("\\w+([-+.\']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*");
	if(!regExp.test(email)){
		return false;
	} else {
		return true;
	}
}

function checktelefoon(tel){
var regExp1= new RegExp("^[0-9]{2}[- ]{0,1}[0-9]{8}$");
var regExp2= new RegExp("^[0-9]{3}[- ]{0,1}[0-9]{7}$");
var regExp3= new RegExp("^[0-9]{4}[- ]{0,1}[0-9]{6}$");
var regExp4= new RegExp("^[0-9]{4}[- ]{0,1}[0-9]{1}[- ]{0,1}[0-9]{8}$");
var regExp5= new RegExp("^[0-9]{4}[- ]{0,1}[0-9]{2}[- ]{0,1}[0-9]{7}$");
var regExp6= new RegExp("^[0-9]{4}[- ]{0,1}[0-9]{3}[- ]{0,1}[0-9]{6}$");
var regExp7= new RegExp("^[+][0-9]{2}[- ]{0,1}[0-9]{1}[- ]{0,1}[0-9]{8}$");
var regExp8= new RegExp("^[+][0-9]{2}[- ]{0,1}[0-9]{2}[- ]{0,1}[0-9]{7}$");
var regExp9= new RegExp("^[+][0-9]{2}[- ]{0,1}[0-9]{3}[- ]{0,1}[0-9]{6}$");

	if(	regExp1.test(tel) ||
		regExp2.test(tel) ||
		regExp3.test(tel) ||
		regExp4.test(tel) ||
		regExp5.test(tel) ||
		regExp6.test(tel) ||
		regExp7.test(tel) ||
		regExp8.test(tel) ||
		regExp9.test(tel)
	){
		return true;
	} else {
		return false;
	}
}

function checkpostcode(postcode, id){
	if(id){
		var land = $('#'+id).val();
		if(land=='BE'){
			var regExp= new RegExp("^[0-9]{4}$");
		} else {
			var regExp= new RegExp("^[1-9][0-9]{3}\\s?[a-zA-Z]{2}$");
		}
	} else {
		var regExp= new RegExp("^[1-9][0-9]{3}\\s?[a-zA-Z]{2}$");
	}
	if(!regExp.test(postcode)){
		return false;
	} else {
		return true;
	}
}

function checknum(value, convert){

	if(convert==null){
		convert=true;
	}
	
	if(convert){
		value=value.replace(',', '.');
	}
	
	if(isNaN(value)){
		return false;
	} else {
		return true;
	}
}

function checkverplicht(id, c){
	var error = false;
	
	$('#'+id+' .'+c).each( 
		function(){
			if($(this).val()=='' || $(this).val()==$(this).attr('alt')){
				$(this).css('border-color', 'red');
				error=1;
			} else {
				$(this).css('border-color', '');
			}
		}
	);

	if(error){
		alert('Niet alle verplichte velden zijn ingevuld');
		return false;
	} else {
		return true;
	}
}


function validation(id, c, func, msg, extra){
	var error = false;
	if(extra){
		func+='($(this).val(),"'+extra+'")';
	} else {
		func+='($(this).val())';
	}
	$('#'+id+' .'+c).each( 
		function(){
			if(this.value && !eval(func)){
				$(this).css('color', 'red');
				error=true;
			} else {
				$(this).css('color', '');
			}
		}
	);

	if(error){
		alert(msg);
		return false;
	} else {
		return true;
	}
	
}

function check_keuze(naam, c, variabel){
	if(!$("input[name='"+naam+"']:checked").val()){
		$('.'+c).each( 
			function(){
				$(this).css('color', 'red');
			}
		);
		alert('U heeft geen keuze opgegeven voor '+variabel);
		return false;
	} else {
		$('.'+c).each( 
			function(){
				$(this).css('color', '');
			}
		);
		return true;
	};
}

function compare(id, c, msg){
	var error = false;
	var values = new Array;
	$('#'+id+' .'+c).each( 
		function(){
			values[values.length]=$(this).val();
		}
	);

	for(var i=0;i<values.length;i++){
		for(var j=(i+1);j<values.length;j++){
			if(values[i]!=values[j]){
				error = true;
			}
		}
	}
	if(error){
		alert(msg);
		return false;
	} else {
		return true;
	}
	
}

