// JavaScript Document
var preloader_img	= '<br /><br /><img src="img/assets/loading.gif" width="32" height="32" alt="loading" />';
var error_message		= '';

function checkPostcode(field){
		
	var input			= $(field).value;
	var workWith		= input.replace(/ /g,'');
	workWith			= workWith.replace(/-/g,'');
	
	$(field).value		= workWith;
	
	var format_postcode = /^([0-9]{4})([A-Za-z]{2})$/;
	
	var this_check		= format_postcode.test(workWith);

	if(this_check){
		$(field).removeClass('wrong');
	}else{
		$(field).addClass('wrong');
	}
	
	return(this_check);
}

function checkEmail(field) {
	var this_check	= true;
	var objRegExp  	= /^([a-zA-Z0-9_\-])([a-zA-Z0-9_\-\.]*)@(\[((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}|((([a-zA-Z0-9\-]+)\.)+))([a-zA-Z]{2,}|(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\])$/;
	
	if($(field).value == null || $(field).value == ''){
		this_check 	= false;
	}else if( objRegExp.test($(field).value)==false){
		this_check 	= false;
	}
	
	if(this_check){
		$(field).removeClass('wrong');
	}else{
		$(field).addClass('wrong');
	}
	
	return(this_check);
}

function checkBankNr(field){
	var this_check		= true;
	var input			= $(field).value;
	var workWith		= input.replace(/[^\d]/g, '');
	
	if(workWith>0){
		if(isNaN(workWith)){
			this_check = false;		 
		}else{
			if(workWith > 100000000){
				var elftest	= workWith.substr(0,1) * 9 	+ workWith.substr(1,1) * 8 	+ workWith.substr(2,1) * 7 	+ workWith.substr(3,1) * 6 	+ workWith.substr(4,1) * 5 	+ workWith.substr(5,1) * 4 	+ workWith.substr(6,1) * 3 	+ workWith.substr(7,1) * 2 	+ workWith.substr(8,1) * 1;
				
				elftest	= elftest % 11;
				if(elftest!=0){
					this_check = false;	
				}
			}//else postbank!
		}
	}else{
		this_check = false;		 
	}
	
	if(this_check){
		$(field).removeClass('wrong');
	}else{
		$(field).addClass('wrong');
	}
	
	return(this_check);
}

function checkData(field, numeric_text, min_length){
	var input			= $(field).value;
	var this_check		= true;
	switch(numeric_text){
		case 1:
			//text
			if(input.length	< min_length){
				this_check	= false
			}
		break;
		case 2:
			//numeric
			var workWith	= input.replace(/[^\d]/g, '');
			$(field).value	= workWith;
			if(workWith.length	< min_length || isNaN(workWith)){
				this_check	= false
			}
		break;
	}
	
	if(this_check){
		$(field).removeClass('wrong');
	}else{
		$(field).addClass('wrong');
	}
	
	return(this_check);
}

function checkBTW(field){
	var input			= $(field).value;
	var this_check		= true;

	if(checkVATNumber (input)){
		this_check		= true;
	}else{
	 	this_check		= false;
	}
	
	if(this_check){
		$(field).removeClass('wrong');
	}else{
		$(field).addClass('wrong');
	}
	
	return(this_check);
}

function checkDate(field, allow_past){
	var input			= $(field).value;
	var this_check		= true;
	var currentTime 	= new Date()
	var month 			= currentTime.getMonth() + 1
	var day 			= currentTime.getDate()
	var year 			= currentTime.getFullYear()
	
	if(day<10){
		day = '-0'+day;
	}else{
		day = '-'+day;
	}
	if(month<10){
		month = '-0'+month;
	}else{
		month = '-'+month;
	}

	var date_parts		= input.split('-');
	
	var	sum_today		= year +  month + day;
	sum_today			= sum_today.replace(/-/g,'');
	
	var	sum_input		= date_parts[2]+ date_parts[1] + date_parts[0] ;
		
	if(sum_today > sum_input){
		$(field+'_day').addClass('wrong');
		$(field+'_month').addClass('wrong');
		$(field+'_year').addClass('wrong');
		this_check	= false
	}else{
		$(field+'_day').removeClass('wrong');
		$(field+'_month').removeClass('wrong');
		$(field+'_year').removeClass('wrong');
	}
	
	return this_check;
}

function checkCheckbox(field, should_be){
	var input			= $(field).checked;
	var this_check		= true;
	
	if(input!=should_be){
		//alert('vinkje!');
		this_check		= false;
		//$(field).addClass('wrong');
	}else{
		//$(field).removeClass('wrong');
	}
	
	return this_check;
}

function compareValues(field_1, field_2, same){
	var input_1			= $(field_1).value;
	var input_2			= $(field_2).value;
	var this_check		= true;
	
	if(input_1==input_2){
		if(same){
			$(field_1).removeClass('wrong');
			$(field_2).removeClass('wrong');
		}else{
			this_check		= false;
			$(field_1).addClass('wrong');
			$(field_2).addClass('wrong');
		}
	}else{
		if(same){
			this_check		= false;
			$(field_1).addClass('wrong');
			$(field_2).addClass('wrong');
		}else{
			$(field_1).removeClass('wrong');
			$(field_2).removeClass('wrong');
		}
	}
	
	return this_check;
}

function checkRadio(field){
	var this_check	= true;
	
	if($(field).value > 0){
		this_check	= true;
		$(field+'_header').removeClass('wrong');
	}else{
		if($(field).value == 0){
			//andere waarde (manual)???
			
			var manual_value	= $(field+'_manual').value;
			
			if(!checkData(field+'_manual', 1, 5)){
				this_check		= false;
				$(field+'_header').addClass('wrong');
				//error_message	+= '<li>Vul een geldige waarde in voor het veld "'+array_standardField_desc[i]+'".</li>';
			}else{
				this_check		= true;
				$(field+'_header').removeClass('wrong');
			}
		
		}else{
			this_check		= false;
			$(field+'_header').addClass('wrong');
		}
	}	
	
	return(this_check);
}

function afterSubMitting(target_output){
	switch(target_output){
		case 'div_maindata':
		break;
	}
}


//forms//

var active_form 		= '';
var active_form_busy 	= false;


function setSomeForm(target_form, target_loading, target_output, has_files, btn_id){
	$(target_form).addEvent('submit', function(e){

		if(active_form_busy	== false){
			active_form_busy	= true;
			new Event(e).stop();
			
			if($(btn_id)){
				$(btn_id).setStyle('display','none');
				$(btn_id+'_loading').setStyle('display','block');
			}
			$(target_loading).addClass('loading');
			var formCheck = checkForm(target_form , 0);
			if(formCheck){
				if(has_files){
					$(target_form).submit();
				}else{
					this.set('send', {
						method: 'post',
						data: $(target_form),                                      
						onSuccess: function(responseText, responseXML) {
							$(target_loading).removeClass('loading');
							var result = responseText;
							$(target_output).innerHTML = responseText;
							active_form_busy	= false;
							afterSubMitting(target_output);
						}
					});
					this.send(this.action); 
				}
			}else{
				if($(btn_id)){
					$(btn_id).setStyle('display','block');
					$(btn_id+'_loading').setStyle('display','none');
				}
				active_form_busy	= false;
				$(target_loading).removeClass('loading');
			}
		}
		
	});	
	
	active_form			= target_form;
	active_form_busy	= false;
	
}

function sendForm(target_form, target_loading, target_output){
	$(target_form).set('send', {
		method: 'post',
		data: $(target_form),                                      
		onSuccess: function(responseText, responseXML) {
			
			$(target_loading).removeClass('loading');
			var result = responseText;
			$(target_output).innerHTML = responseText;
			
			active_form_busy	= false;
			afterSubMitting(target_output);
			
		}
	});
	$(target_form).send($(target_form).action); 
}


var allowStepping	= true;
var active_form_busy = false;
function SendRequest(target_form, target_loading, target_output, info_box, has_files, btn_id){
	if(active_form_busy	== false){
		active_form_busy	= true;
		$(target_loading).addClass('loading');
		if($(btn_id)){
			$(btn_id).setStyle('display','none');
			$(btn_id+'_loading').setStyle('display','block');
		}
		
		var formCheck 	= false;
		formCheck		= checkForm(target_form);
		if(formCheck){
			if(has_files){
				$(target_form).submit();
			}else{
				sendForm(target_form, target_loading, target_output);
			}
			
		}else{
			$(target_loading).removeClass('loading');
			active_form_busy	= false;
			
			if($(btn_id)){
				$(btn_id).setStyle('display','block');
				$(btn_id+'_loading').setStyle('display','none');
			}
		}
	}
}
var error_message;
function checkForm(target_form){
	var form_checked 	= true;
	error_message		= '';
	switch(target_form){
		case 'aanvragen':
			if(!checkEmail('email')){
				form_checked 	= false;
				error_message	+= '<li>Vul een geldige e-mail in.</li>';
			}
			
			
			var array_standardField 		= new Array('','contactpersoon');
			var array_standardField_desc 	= new Array('','uw naam');
			var array_standardField_sort 	= new Array('',1);
			var array_standardField_min 	= new Array('',3);
			
			for(i=1;i<array_standardField.length;i++){
				if(!checkData(array_standardField[i], array_standardField_sort[i], array_standardField_min[i])){
					form_checked 	= false;
					error_message	+= '<li>Vul een geldige waarde in voor het veld "'+array_standardField_desc[i]+'".</li>';
				}	
			}
			
			if(!form_checked){
				error_message	= '<ul>'+error_message+'</ul>';
			}
		break;
	}
	return form_checked;	
}
