			
	

$(document).ready(function(){
	links_blur();
	init_forms();
	
	var accIndex = 0;
	if(location.hash){
		var hash = location.hash;
		var target = $(hash)[0];
		if(target){
			accIndex =  target.getAttribute("index");
		}
	}
		
	var acc = $(".accordion")
	acc.accordion({
		collapsible: false,
		autoHeight: false,
		navigation: true,
		header: 'dt',
		fillspace:true
	});
	
	if(accIndex) target.onclick();
	
	$(".antwoord").hide();
	$(".vraag").click(function(){
		$(this).next(".antwoord").slideToggle();
	});
	$("#zoekform").find("dt").click(function(){
		$(this).next("dd").slideToggle();
	});
	$("#lijst").find("dt").click(function(event){
		$(this).next("dd").slideToggle();
	});
	
	$("#AJAX_MESSAGE").click(function(){$(this).hide()});


}); 


function links_blur(){
	var links = document.getElementsByTagName("a");
	for (i=0; i<links.length; i++) {
		var link = links[i];
		link.onfocus = blur;
	}
}

function blur(){
	this.blur();
}

function init_forms(){
	var forms = document.getElementsByTagName("form");
	for (i=0; i<forms.length; i++) {
		var form = forms[i];
		if(form.getAttribute('method') == "ajax"){
			document.AJAXFORM = form;
			form.onsubmit = AJAXFORM_SUBMIT;
			
			for(var e = 0; e <= form.elements.length ; e++){
				var element = form.elements[e];
				if(element){
					element.onchange = function(){
						AJAXFORM_SUBMIT();
					}
				}
			}
			AJAXFORM_SUBMIT();			
		}
		else{
			form.onsubmit = form_submit;
		}
	}
}

function AJAXFORM_SUBMIT(moveto){

	$("#lijst").find("dt").unbind("click");				
	
	var query = $(document.AJAXFORM).serialize() + '&moveto=' + (moveto ? moveto : 'first');
	var url = document.AJAXFORM.action;
	$("#AJAXLIST_TARGET").html("");	
	$("#AJAXFORM_TARGET").load(url, query, AJAXFORM_CALLBACK);
	
	
	return false;
}


function AJAXFORM_CALLBACK(){
	var data = document.getElementById('AJAXFORM_DATA');

	var recordcount = parseInt(data.getAttribute('recordcount'));
	var pagecount = data.getAttribute('pagecount');
	var page = data.getAttribute('page');
	
	if (recordcount){
		$('#AJAXFORM_PAGEINFO').html('pagina ' + page + ' van ' + pagecount);
		$('#AJAXFORM_RECORDCOUNT').html(' (' + recordcount + ')');
		
		var firstChild = data.firstChild;
//		if(recordcount ==1 ){
		if(location.href.indexOf(firstChild.getAttribute('uid')) != -1) {
			firstChild.onclick(firstChild);
			$('#zoekform').find('dd').hide();
			$('#lijst').find('dd').hide();
		}
		else{
			
			$('#lijst').find('dd').show();
			
			$("#lijst").find("dt").click(function(event){
				$(this).next("dd").slideToggle();
			});
		}
	}
	else{
		$('#AJAXFORM_PAGEINFO').html(' - ');
		$('#AJAXFORM_RECORDCOUNT').html(' (0)');
	}	
}

function AJAXLIST_SUBMIT(elem){
	if(	elem.parentNode.activeItem ) {
		$(elem.parentNode.activeItem).removeClass('selected');
		$(elem.parentNode.activeItem.firstChild).removeClass('selected');
	}
	elem.parentNode.activeItem = elem;
	$(elem).addClass('selected');
	$(elem.firstChild).addClass('selected');
	
	var query = 'ID=' + elem.getAttribute('uid');
	var url = document.AJAXFORM.action;
	$("#AJAXLIST_TARGET").load(url, query, AJAXLIST_CALLBACK);
	return false;
}

function AJAXLIST_CALLBACK(){
	var data = document.getElementById('AJAXFORM_DATA');
	var firstChild = data.firstChild;
	//if(location.href.indexOf(firstChild.getAttribute('uid')) != -1) {
		location.hash = 'details';
	//}
	
	$("#details").accordion(
							{
		collapsible: true,
		autoHeight: false,
		navigation: true,
		header: 'dt'
	});

/*	$("#reactie-toggler").click(function(){
		$(this).next("dd").slideToggle(600);
	});
	$("#detail-toggler").click(function(){
		$(this).next("dd").slideToggle(600);
	});
*/

	$("#reactie").find("form").submit(function(){
		if(! form_validate(this)){
			return false;
		}
	});
}

function AJAXMESSAGE_CALLBACK(){
	$("#AJAX_MESSAGE").show();
}



show_hide_anders = function(elem){
	if(elem.value =='anders'){
		$('#input-anders').show();
	}
	else{
		$('#input-anders').hide();
	}
}

form_submit = function(){
	if(! form_validate(this)) return false;
}

form_validate = function(form){

	this.valid = true;
	
	var elems = form.elements;
	for(n=0; n<elems.length && this.valid; n++){
		elem = elems[n];
		
		var required = elem.getAttribute("required");
		var vartype = elem.getAttribute("vartype");
		var message = elem.name;
		
		if(required != null){
			switch(required){
				case "true":
					if (vartype == "email"){
						if(is_email(elem.value)){
							this.valid = false;
							elem.select();
							alert("Het veld '" + message + "' is niet of niet correct ingevuld.");
						}						
					}
					else if(elem.value.trim().length == 0){
						this.valid = false;
						elem.select();
						alert("Het veld '" + message + "' is niet of niet correct ingevuld.");
					}
					break;
		
				default:
					if(test = elem.form.elements[required]){
						if(test.value != elem.value){
							this.valid = false;
							elem.select();
							alert("De waarden van de velden '" + required + "' komen niet overeen.");
						}
					}
					break;				
			}
		}
	}

	return this.valid;
}


function is_email(email){
	var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
	var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$");
	return ! (!r1.test(email) && r2.test(email));	
}

String.prototype.trim = function() { return this.replace(/^\s+|\s+$/, ''); };


