// 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 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 deDatum			= input.split('-');
	
	var month 			= deDatum[1];
	var day 			= deDatum[0];
	var year 			= deDatum[2];
	
	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).addClass('wrong');
		this_check	= false
	}else{
		$(field).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, 2)){
				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_form){
	switch(target_form){
		case 'form_login':
			if($('form_login')){
				setSomeForm('form_login','login_form','login_form','', false, 'submit_btn');
			}else{
				ChangeAnim('height', $('login_area'), 105, 400, Fx.Transitions.Cubic.easeOut);
				ChangeAnim('height', $('login_area_background'), 65, 400, Fx.Transitions.Cubic.easeOut);
				
				if(active_item!=0){
					viewComments(active_item);
				}
				//if($('return_to') && $('type')){
//					if($('return_to').value > 0 && ($('type').value == 'image' || $('type').value == 'video' ) ){
//						window.location = 'index.php?items_id='+$('return_to').value+'&type='+$('type').value;
//					}
//				}
				
				//$('lost_password').setStyle('display','none');
				//$('new_user').setStyle('display','none');
			}
		break;
		case 'form_account':
			if($('form_account')){
				setSomeForm('form_account','account_form','account_form','info_creation', false, 'submit_btn');
			}else{
				ChangeAnim('height', $('login_area'), 105, 400, Fx.Transitions.Cubic.easeOut);
				ChangeAnim('height', $('login_area_background'), 105, 400, Fx.Transitions.Cubic.easeOut);
				//$('has_account').setStyle('display','none');
			}
		break;
		case 'form_comment':
			//cancelReply();
			if(active_item!=0){
				viewComments(active_item);
			}
		break;
	}
}


//forms//

var active_form 		= '';
var active_form_busy 	= false;

function cancelSubmit(){

}

function setSomeForm(target_form, target_loading, target_output, info_box, has_files, btn_id, message){
	
	$(target_form).removeEvent('submit');
	$(target_form).addEvent('submit', function(e){
		
		new Event(e).stop();
									   
		if(active_form_busy	== false){
			active_form_busy	= true;
			
			if(info_box!=''){
				$(info_box).innerHTML = error_message;	
			}
			
			$(target_output).set('spinner', {message : message});
			$(target_output).spin();
		
			
			var formCheck = checkForm(target_form , 0);
			if(formCheck){
				if(has_files){
					if(!swfUpload){	
						$(target_form).submit();
					}else{
						try {
							switch(active_soort){
							case 1:
								swfu_video.startUpload();
							break;
							case 2:
								swfu_image.startUpload();
							break;
							}
						} catch (ex) {
							if($(btn_id)){
								$(btn_id).setStyle('display','block');
								$(btn_id+'_loading').setStyle('display','none');
							}
							active_form_busy	= false;
							$(target_loading).removeClass('loading');
						}	
					}
				}else{
					this.set('send', {
						method: 'post',
						data: $(target_form),                                      
						onSuccess: function(responseText, responseXML) {
							//$(target_loading).removeClass('loading');
							var result = responseText;
							$(target_output).innerHTML = responseText;
							
							$(target_output).unspin();
							
							active_form_busy	= false;
							afterSubMitting(target_form);
						}
					});
					this.send(this.action); 
				}
			}else{
			
				$(target_output).unspin();
		
				active_form_busy	= false;
				$(target_loading).removeClass('loading');
				
				if(info_box!=''){
					$(info_box).innerHTML = error_message;	
				}
				
				error_message	= '';
				
			}
		}
		
	});	
	
	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_output).unspin();
			
			var result = responseText;
			$(target_output).innerHTML = responseText;
			
			active_form_busy	= false;
			afterSubMitting(target_form);
			
		}
	});
	$(target_form).send(); 
}


var allowStepping		= true;
var active_form_busy 	= false;

var swfUpload			= false;
var swfUploadTarget;

function SendRequest(target_form, target_loading, target_output, info_box, has_files, btn_id, message){
	if(active_form_busy	== false){
		active_form_busy	= true;
		
		if(info_box!=''){
			$(info_box).innerHTML = error_message;	
		}
		
		$(target_output).set('spinner', {message : message});
		$(target_output).spin();
		
		var formCheck 	= false;
		formCheck		= checkForm(target_form);
		if(formCheck){
			if(has_files){
				if(!swfUpload){	
					$(target_form).submit();
				}else{
					//alert(1);
					try {
						switch(active_soort){
						case 1:
							swfu_video.startUpload();
						break;
						case 2:
							swfu_image.startUpload();
						break;
						}
					} catch (ex) {
						if($(btn_id)){
							$(btn_id).setStyle('display','block');
							$(btn_id+'_loading').setStyle('display','none');
						}
						active_form_busy	= false;
						$(target_loading).removeClass('loading');
					}	
				}
			}else{
				sendForm(target_form, target_loading, target_output);
			}
			
		}else{
			active_form_busy	= false;
			$(target_output).unspin();
			
			
			if(info_box!=''){
				$(info_box).innerHTML = error_message;	
			}
			error_message	= '';
		}
	}
}
var error_message;
function checkForm(target_form){
	var form_checked 	= true;
	error_message		= '';
	switch(target_form){
		case 'newsletter':
			if(!checkEmail('emailNewsletter')){
				form_checked 	= false;
				error_message	+= '<li>no valid e-mail.</li>';
			}
			if(!checkData('nameNewsletter', 1, 2)){
				form_checked 	= false;
				error_message	+= '<li>no valid name".</li>';
			}
			if(!form_checked){
				error_message	= 'no correct values!';
			}
		break;
		case 'form_comment':
			if(!checkData('text_reply', 1, 1)){
				form_checked 	= false;
				error_message	+= '<li>No valid comment</li>';
			}
			if(!form_checked){
				error_message	= '<ul>'+error_message+'</ul>';
			}
		break;
		case 'form_login':
			if(!checkEmail('user')){
				form_checked 	= false;
				error_message	+= '<li>Vul een geldige gebruikersnaam (e-mail) in.</li>';
			}
			
			if(!checkData('password', 1, 1)){
				form_checked 	= false;
				error_message	+= '<li>Vul een geldige waarde in voor het veld wachtwoord.</li>';
			}
			
			if(!form_checked){
				error_message	= '<ul>'+error_message+'</ul>';
			}
		break;
		case 'form_account':
			if(!checkEmail('email')){
				form_checked 	= false;
				error_message	+= '<li class="error">No valid e-mail.</li>';
			}
			
			if($('action_user').value == 'edit'){
				if(!compareValues('password', 'password_repeat', true)){
					form_checked 	= false;
					error_message	+= '<li>Vul je wachtwoord twee maal in.</li>';
				}
				
				var array_standardField 		= new Array('naam','achternaam','password','password_repeat');
				var array_standardField_desc 	= new Array('voornaam','achternaam','wachtwoord (min. 5 leestekens)','herhaal wachtwoord (min. 5 leestekens)');
				var array_standardField_sort 	= new Array(1,1,1,1);
				var array_standardField_min 	= new Array(2,2,5,5);
			}else{
				
				var array_standardField 		= new Array('naam','achternaam');
				var array_standardField_desc 	= new Array('name','last name');
				var array_standardField_sort 	= new Array(1,1);
				var array_standardField_min 	= new Array(2,2);
			}
			
			for(i=0;i<array_standardField.length;i++){
				if(!checkData(array_standardField[i], array_standardField_sort[i], array_standardField_min[i])){
					form_checked 	= false;
					error_message	+= '<li class="error">No valid '+array_standardField_desc[i]+'.</li>';
				}	
			}
			/*
			if(!checkDate('geboortedatum', true)){
				form_checked 	= false;
				error_message	+= '<li>Vul een geldige geboortedatum in.</li>';
			}
			*/
			if(!form_checked){
				//alert(error_message);
				error_message	= '<ul>'+error_message+'</ul>';
			}
		break;
	}
	return form_checked;	
}


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){
		var target_error = $(field).getProperty('id') + '_error';
		var target_value = $(field).value;
		if($(target_error)){
			//alert(content_folder[active_current]+'/check_email.php?emailvalue='+target_value)
			email_is_checking	= true;
			loadNshow('account_check_email.php?include_header=1&emailvalue='+target_value, target_error, 'get', false);
			this_check 			= true;
		}else{
			var target_error = $(field).getProperty('id') + '_error';
			if($(target_error)){
				$(target_error).innerHTML = '';
			}
			$(field).removeClass('wrong');
		}
	}else{
		$(field).addClass('wrong');
	}
	
	return(this_check);
}

function checkEmailQuick(field){
	checkEmail(field);
}
