/* Auteur: Martijn van Leeuwen
Datum: 16-2-2004
Doel:  Universeel formcheck script. 

0.1: toegevoegd regexp voor bestandsnamen
Datum: 07-07-2005
Auteur: DB
*/
function CheckFormFields(inp,form){
	
	var msg = false;
	
	// set an filters
	var _email  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	var _number = /[\D]/i;	
	var _zip 	= /^[1-9]{1}[0-9]{3} ?[a-zA-Z]{2}$/;	
	var _spaces = /\s/;
	/* 0.1 */
	var _files  = /^[0-9a-zA-Z|+|-|_]([\.-]?[0-9a-zA-Z|+|-|_]+)+$/;
	  
	var addMsg = function(){
		if(!msg)
			msg="";
		msg = msg + "\n - " + in_msg + " ";		
	}
	
	var check_element = function(name){
		if(!in_obj){
			alert('Dev Error :: formulier element "' + in_name + '" bestaat niet.');
			return false;
		}	
		return true;
	}
		
	for (var i = 0; i < inp.length; i++){
		
		var in_name		= inp[i][0];
		var in_type		= inp[i][1];
		var in_msg		= inp[i][2];
		var in_obj		= form.elements[in_name];
		
		// check of element bestaat in formulier
		if(!check_element(in_obj))
			return false;
					
		if(in_obj.value)
			if (in_type !=='email') var in_value = in_obj.value.replace(_spaces,"");
			else var in_value = in_obj.value;
		else 
			var in_value = false;
		
		switch(in_type){
			case 'tinymce':
				if (tinyMCE.getContent(in_name) == '') addMsg();
				break;
			case 'email':
				if (!_email.test(in_value))
					addMsg();
				break;
			case 'password':
				checkfield=form.elements[in_name+'_retype'];
				if (!in_value || in_value !== checkfield.value)
					addMsg();
				break;	
			case 'number':
				if (_number.test(in_value))
					addMsg();
				break;
			case 'radio':				
				checked = false;                                        
				for (y = 0; y < in_obj.length; y++){
					checked = in_obj[y].checked;
					if (checked) break;                                                
				}
				if (!checked) 
					addMsg();
				break;
			case 'checkbox':
				/*alert(in_obj.checked);*/
				if (!in_obj.checked) 
					addMsg();
				break;
			case 'select':
				if (in_obj[0].selected && !in_obj[0].value) 
					addMsg();
				break;
			case 'zip':
				if (!_zip.test(in_value))
					addMsg();
				break;
			case 'http':
				// nog niet geset.
				if (in_value=="")
					addMsg();
				break;
			case 'file':
				if (in_value) {
					var filename = in_value.split('\\');
					filename = filename[filename.length-1];
					if (!_files.test(filename)) addMsg();
				} else addMsg();
				break;
			case '':
			case 'text':
			default:				
				if (!in_value || in_value == "")
					addMsg();
				break;			
		}                                                  
	}
    
	if (msg){
		alert("De volgende fouten hebben zich voorgedaan:" + msg);
		return false;
	}
	else return true;
}