var debug=0;
var testing=0;
var red=0;

var show_names = /^\s*(naam|telefoon|training|activiteit|datum)\s*$/,i;
var validate_no_fields = /^\s*(opmerkingen|tussenvoegsel|opleiding_beroep)\s*$/i;
var validate_bedrijf = /bedrijf/i;

var days = new Array('zondag','maandag','dinsdag','woensdag','donderdag','vrijdag','zaterdag');
var months = new Array('januari','februari','maart','april','mei','juni','juli','augustus','september','oktober','november','december');

var re_days = /(zo(ndag)?|ma(andag)?|di(nsdag)?|wo(ensdag)?|do(nderdag)?|vr(ijdag)?|za(terdag)?)/i;
var re_month = /jan(uari)?|feb(ruari)?|m(aa)?rt|apr(il)?|mei|juni?|juli?|aug(ustus)?|sep(tember)?|okt(ober)?|nov(ember)?|dec(ember)?/i;
var re_date_str = /(zo(?:ndag)?|ma(?:andag)?|di(?:nsdag)?|wo(?:ensdag)?|do(?:nderdag)?|vr(?:ijdag)?|za(?:terdag)?)\s+\d\d?\s+(jan(?:uari)?|feb(?:ruari)?|m(?:aa)?rt|apr(?:il)|mei|juni?|juli?|aug(?:ustus)?|sep(?:tember)?|okt(?:ober)?|nov(?:ember)?|dec(?:ember)?)/gi;

var Today = new Date();
var CurrentYear = Today.getFullYear();
var CurrentMonth = Today.getMonth();
var CurrentDay = Today.getDate();
//alert(CurrentYear+' '+CurrentMonth+' '+CurrentDay);

var start_date;
var start_day_name;
var start_day;
var start_month;

var end_date ;
var end_day_name;
var end_day;
var end_month;

var Obj_trainingen;
var Obj_activiteiten;
var Obj_data;

function init_form_trainingen(formname)
{
	
	getObj(formname).reset();
	Obj_trainingen = getObj("trainingen_id");
	Obj_data = getObj("data");
	
	Obj_trainingen.options.length = 1;
	Obj_data.options.length = 1;

	window.location.href.match(/\?(.*?)(?:\&(.*?))?$/);
	var default_name = RegExp.$1;
	var default_course = RegExp.$2;
	default_name = url_to_string(default_name); 
	default_course = url_to_string(default_course);

	if(default_name == 'confirm') {alert('De aanmelding is verstuurd!'); location.href='aanmelden.htm'; return;}
		 
	for(var j=1; j<cursus_name.length;j++){
		if(cursus_name[j].search(/^(.*)\|overig(e|en)?$/) == -1){
			var myindex = Obj_trainingen.options.length;
			Obj_trainingen.options[myindex] = new Option(' ' + cursus_name[j],j, false, false);
			if(default_name && url_to_string(cursus_name[j]) == default_name)
				Obj_trainingen.options[myindex].selected=true;
		}
	}

	if(Obj_trainingen.selectedIndex) toon_data(Obj_trainingen,default_course);
}	

function init_form_activiteiten(formname)
{
	getObj(formname).reset();

	Obj_activiteiten = getObj("activiteiten_id");
	Obj_data = getObj("data");
	
	Obj_activiteiten.options.length = 1;
	Obj_data.options.length = 1;

	window.location.href.match(/\?(.*?)(?:\&(.*?))?$/);
	var default_name = RegExp.$1;
	var default_course = RegExp.$2;
	default_name = url_to_string(default_name); 
	default_course = url_to_string(default_course);

	if(default_name == 'confirm') {alert('De aanmelding is verstuurd!'); location.href='aanmelden.htm'; return;}
		 
	for(var j=1; j<cursus_name.length;j++){
		if(cursus_name[j].search(/^(.*)\|overig(e|en)?$/) != -1){
			var name=RegExp.$1;
			var myindex = Obj_activiteiten.options.length;
			Obj_activiteiten.options[myindex] = new Option(' ' + name,j, false, false);
			if(default_name && url_to_string(name) == default_name)
				Obj_activiteiten.options[myindex].selected='true';
		}
	}

	if(Obj_activiteiten.selectedIndex) toon_data(Obj_activiteiten,default_course);
}		

function init_form_algemeen(formname)
{
	getObj(formname).reset();

}


function toon_data(obj,default_course)
{
	var j = obj.options[obj.selectedIndex].value; 
	Obj_data.options.length = 1;

	if(!j) return;
	
	for(var i=1;i<cursus_data[j].length;i++){

		if(cursus_data[j][i].search(/^(.*?)\|(.*?)\|(.*?)$/) != -1) {
			This_Year = RegExp.$1; 
			This_Name = RegExp.$2;
			This_Date = RegExp.$3;
			
		  myindex = Obj_data.options.length;
		  //Obj_data.options[myindex] = new Option(This_Date + ' - ' + This_Name,i, false, false);
		  Obj_data.options[myindex] = new Option(This_Date + ' ' + This_Year,i, false, false);
		  if(cursus_data[j].length == 2) Obj_data.options[myindex].selected=true;
			else if(url_to_string(This_Name) == default_course) Obj_data.options[myindex].selected=true;
		}
	}
}
	
function url_to_string(url)
{
	return url.replace(/(%[0-9,a-f,A-F]{2})|[^\w]/g,'').toLowerCase();
}


//******* send_form  ****************************************
function send_form(myform,dada_list,pinnr)
{
	red=0;
	
	if(debug)  
		myform.action = 'mailto:f.gouverne@casema.nl';
	if(testing)
		myform.recipient.value = 'venwoude_test';	

	if(Obj_trainingen != undefined){
		remove_red(Obj_trainingen);
		if(Obj_trainingen.selectedIndex) myform.training.value = Obj_trainingen[Obj_trainingen.selectedIndex].innerHTML.replace(/^\-/,'');
		else 	{
			make_red(Obj_trainingen);			
			myform.training.value = '';
			scroll_to();
			alert('Selecteer de gewenste training en de bijbehorende datum.');
			return false;
		}
	}

	if(Obj_activiteiten != undefined){
		remove_red(Obj_activiteiten);
		if(Obj_activiteiten.selectedIndex) myform.activiteit.value = Obj_activiteiten[Obj_activiteiten.selectedIndex].innerHTML.replace(/^\-/,'');
		else 	{
			make_red(Obj_activiteiten);
			myform.activiteit.value = '';
			scroll_to();
			alert('Selecteer de gewenste activiteit en de bijbehorende datum.');
			return false;
		}				
	}
	
	if(Obj_data != undefined){
		remove_red(Obj_data);
		if(!Obj_data.selectedIndex){
			myform.datum.value = '';		
			make_red(Obj_data);
			scroll_to();
			alert('Selecteer de gewenste datum.');
			return false;
		}
	}
	
	if(!validate_form(myform,validate_no_fields)) {
			alert('Het formulier is nog niet volledig of correct ingevuld.\nControleer de met rood gemarkeerde velden.'); 
			return false;
	}

	
	if(myform.nieuwsbrief && myform.nieuwsbrief.checked && myform.email.value.search(/(\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+)/) == -1) 
	{
			make_red(myform.email);
			scroll_to();
			make_red(myform.nieuwsbrief);
			alert('Graag je email adres invullen als je de nieuwsbrief wilt ontvangen.');
			return false;
	}

	
	if(myform.id == 'Form_trainingen' || myform.id == 'Form_activiteiten')
	{
		var str='Controleer de volgende gegevens:\n\n';
		for(i=0;i<myform.length;i++)
			if(myform[i].name.search(show_names) != -1)
				if(myform[i].value.search(/^\s*$/) == -1) str += '\n' + myform[i].name + ':   ' + myform[i].value;
			
		str += '\n\nDruk op OK om de aanmelding te versturen.\nDruk op Annuleren of Cancel om gegevens te wijzigen.\n\n';
		
		if(!confirm(str)) return 0;		
		if( window.print && confirm('Wil je het formulier nog afdrukken?\n(OK=afdrukken en versturen, Annuleren of Cancel=alleen versturen)') ) 
				window.print();
	}

	if(myform.id == "Form_dagopening") 	myform.excel_info.value = '\n<MG>aanmelding</MG><FN>'+myform.voornaam.value+'</FN> <MN>'+myform.tussenvoegsel.value+'</MN> <LN>'+myform.achternaam.value+'</LN> <ZC>'+myform.postcode.value+'</ZC> <CY>'+myform.woonplaats.value+'</CY> <PH>'+myform.telefoon.value+'</PH> <EMAIL>'+myform.email.value+'</EMAIL>';

	
	if(dada_list && pinnr){
			var my_dada_frame = parent.frames["send_dada_frame"];

			if(!my_dada_frame) {
				myform.redirect.value = 'http://www.venwoude.nl/cgi-bin/dada/venwoude.nl.cgi/s/' + dada_list + '/' + myform.email.value + '?nr=' + pinnr; 
				if(myform.waarschuwing) myform.waarschuwing.value='';
			} else {
				if(myform.nieuwsbrief && myform.nieuwsbrief.checked){
					my_dada_frame.location.replace('http://www.venwoude.nl/cgi-bin/dada/venwoude.nl.cgi/s/' + dada_list + '/' + myform.email.value + '?nr=' + pinnr);
					myform.nieuwsbrief.value='ja';
				}
			}
	}

	myform.submit();
}

function send_dada(dada_frame)
{
	myframe = document.getElementById ? document.getElementById(dada_frame) : eval(dada_frame);
	if(window.location.href.search(/^[^?]+\?([^&]+)&([^&]+)&([^&]+)(&.+)?$/) != -1){	
		var lijstnaam = RegExp.$1;
		var emailadres = RegExp.$2;
		var lijstnummer = RegExp.$3;
		var test = RegExp.$4;
		
		emailadres = emailadres.replace(/@/,'/');
		myframe.src = 'http://www.venwoude.nl/cgi-bin/dada/venwoude.nl.cgi/s/' + lijstnaam + '/' + emailadres + '?nr=' + lijstnummer; 
		
		if(test == '&test') {
			myframe.style.width=700;
			myframe.style.height=500;
			myframe.style.display='block';
		}
	
	}
}

function validate_form(myform,nofields)
{
	red=0;

	for(i=0;i<myform.length;i++)  //remove 'red' 
		 remove_red(myform[i]); 

	for(i=0;i<myform.length;i++){  //make red if not correct
		
		var field = myform[i];

		if(field.name.search(nofields) == -1 )
			if(field.tagName == 'INPUT' && field.type == 'text' || field.type == 'textarea' ) { //test input text fields
				switch(field.name)
				{
					case 'telefoon': 
					case 'nood_telefoon':
						if(field.value.search(/[\s\-\.\d]{9,}/) == -1)
							if(field.className.search(/niet_verplicht/i) == -1 || field.value.search(/(^\s*$)/) == -1)
								make_red(field)
						break;
					case 'postcode':
						if(field.value.search(/^\s*\d{4}\s*(\w{2})?\s*$/) == -1)						
							if(field.className.search(/niet_verplicht/i) == -1 || field.value.search(/(^\s*$)/) == -1)
								make_red(field)
						break;						
					case 'huisnummer':
						if(field.value.search(/^\s*\w+\s*$/) == -1)						
							if(field.className.search(/niet_verplicht/i) == -1 || field.value.search(/(^\s*$)/) == -1)
								make_red(field)
						break;		
					case 'email':
						if(field.value.search(/(\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+)/) == -1) 
							if(field.className.search(/niet_verplicht/i) == -1 || field.value.search(/(^\s*$)/) == -1)
								make_red(field)
						break;									
					case 'geboorte_datum':
						if(field.value.search(/[\s\d\W]{4,}/) == -1)					 
							if(field.className.search(/niet_verplicht/i) == -1 || field.value.search(/(^\s*$)/) == -1)
								make_red(field)
						break;
					default:
						if(field.name.search(validate_bedrijf)  == -1 || getObj('vergoed_ja').checked == true)
							if(field.value.search(/[a-z,A-Z]{2,}/i) == -1)
								if(field.className.search(/niet_verplicht/i) == -1 || field.value.search(/(^\s*$)/) == -1)
									make_red(field)
				}
			}
			
			else if(field.tagName == 'INPUT' && field.type == 'radio' ){  //test input radio fields
				var radio = eval('myform.' + field.name);
	
				for(j=0;j<radio.length;j++)
					if(radio[j].checked) {break;}
					
				if(j>=radio.length) make_red(field);
			}
			
			else if(field.tagName == 'SELECT'){  //test select fields
				switch(field.name)
				{
					case '???':
						//if(field.options[field.selectedIndex].value.search(/.../) == -1) make_red(field);
						break;
					default: 
						if(field.options[field.selectedIndex].value.search(/[a-z,A-Z]{2,}/i) == -1) make_red(field);
				}
			}
	}

	
	if(red) {  //some fields are not entered correctly...
		scroll_to(); 
		return 0;
	} 

			
	if(myform.voornaam && myform.tussenvoegsel && myform.achternaam){
		myform.realname.value = myform.voornaam.value + ' ' + myform.tussenvoegsel.value + ' ' + myform.achternaam.value;
		myform.naam.value = myform.realname.value;
	}else myform.realname.value = myform.naam.value;
		
	myform.onderwerp.value = myform.subject.value + '\n\nVerstuurd via URL: ' + window.location.href;
	myform.emailadres.value = myform.email.value;			

	if(Obj_data != undefined) myform.datum.value = Obj_data[Obj_data.selectedIndex].innerHTML;

	return 1;
}

function make_red(form_el)
{
	var el = document.getElementById('red_' + form_el.name.toString());
	if(!red) red=el;
	
	if(el != undefined && el.style){
		el.style.color = 'red';
		el.style.fontWeight = 'bold';
	}
}

function remove_red(form_el)
{
	var el = document.getElementById('red_' + form_el.name.toString());
	if(el != undefined && el.style){
		el.style.color='';
		el.style.fontWeight='';
	}
}

function getObj(obj_name)
{
	return document.getElementById ? document.getElementById(obj_name) : eval(obj_name);
}

function scroll_to()
{
	if(red.scrollIntoView) red.scrollIntoView(); if(scrollBy) scrollBy(0,-10);
}