_vrg_vragen = [];
_vrg_laatste_vragen = [];
_vrg_vragen_volgnummers = [];
_vrg_ngn_dependencies = [];

var NS = (navigator.appName == "Netscape");
if(NS) var display = 'table-row';
else   var display = 'block';

// 
// this function always gets called when the page has fully loaded
function _vrg_ngn_onload() {
	_vrg_ngn_handle_dependencies();
}

function _vrg_ngn_handle_dependencies() { 
	// loop through all the questions and hide/show based on their answers
	for(var i = 0; i< _vrg_ngn_dependencies.length; i++)  {
		if(_vrg_ngn_dependencies[i].length == 3)	{
	
			var el_vrg = document.getElementById("nvrg_antwoord_"+_vrg_ngn_dependencies[i][1]);
			var antwoord = [];
			
			if(el_vrg==undefined) return;
			
			// Based on the type of input field, different methods to determine the selected value are used
			if(el_vrg.type == "radio")  {
				for(j = 0; j < document.forms[0]["nvrg_antwoord_"+_vrg_ngn_dependencies[i][1]].length; j++) {
					if(document.forms[0]["nvrg_antwoord_"+_vrg_ngn_dependencies[i][1]][j].checked) {
						antwoord.push(document.forms[0]["nvrg_antwoord_"+_vrg_ngn_dependencies[i][1]][j].value);
					}
				}
			}
			else if(el_vrg.type == 'select-multiple')	{
				for(var j = 0; j < el_vrg.options.length; j++)	{
					if(el_vrg.options[j].selected)	{
						antwoord.push(el_vrg.options[j].value);
					}
				}
			}
			else {
				antwoord.push(el_vrg.value);
			}
			
			for (var k = 0; k < antwoord.length; k++)	{
				// Does the answer given correspond with the one defined in _vrg_ngn_dependencies[ ] ?
				if(antwoord[k] == _vrg_ngn_dependencies[i][2])  {
					_vrg_ngn_show(_vrg_ngn_dependencies[i][0]);

					// get all dependencies based on this question and show them
					var vrg_arr = _vrg_get_vrg_ngn_dependencies(_vrg_ngn_dependencies[i][0]);
					for(var j = 0; j < vrg_arr.length; j++)	{
						_vrg_ngn_show(vrg_arr[j]);
					}
					
				}
				else {
					_vrg_ngn_hide(_vrg_ngn_dependencies[i][0]);

					// get all dependencies based on this question and hide them
					var vrg_arr = _vrg_get_vrg_ngn_dependencies(_vrg_ngn_dependencies[i][0]);
					for(var j = 0; j < vrg_arr.length; j++)	{
						_vrg_ngn_hide (vrg_arr[j]);
					}
					
				}                   
			}
		}
	}
	_vrg_ngn_handle_laatste_vragen();
}

function _vrg_get_vrg_ngn_dependencies(vrg_id)	{
	var temp = vrg_id;
	
	var vrg_arr = [];

	var l = true;
	while(l)	{
		for(var i = 0; i < _vrg_ngn_dependencies.length; i++)	{
			if(_vrg_ngn_dependencies[i].length == 2
			&& _vrg_ngn_dependencies[i][1] == vrg_id)	{
				vrg_id = _vrg_ngn_dependencies[i][0];						
				vrg_arr.push(vrg_id);
			}
			else	{
				if(i == _vrg_ngn_dependencies.length-1) {
					l = false;
				}
			}
		}
	}
	return vrg_arr;	
}


function _vrg_ngn_show(id)	{
	document.getElementById("nvrg_antwoord_"+id).parentNode.parentNode.style.display = display;
}
function _vrg_ngn_hide(id)	{
	
	if(!_vrg_is_visible(id)) {
		return;
	}
	
	var el = document.getElementById("nvrg_antwoord_"+id);
	// hide the row
	el.parentNode.parentNode.style.display = "none";
	// clear selected value
	_vrg_clear(id);

	// keep calling until all children are hidden unless we're calling this function from _vrg_ngn_handle_laatste_vragen()
	if(arguments.callee.caller != _vrg_ngn_handle_laatste_vragen)	{
		_vrg_ngn_handle_dependencies();
	}
}

function _vrg_clear(id)	{
	var el = document.getElementById("nvrg_antwoord_"+id);
	
	el.value = '';
	
	if(el.type == 'radio')	{
		el = document.forms[0]['nvrg_antwoord_'+id];
		for(var i = 0; i < el.length; i++)	{
			el[i].checked = false;
		}
	}
	else if(el.type == 'select-one' || el.type == 'select-multiple')	{
		for(var i = 0; i < el.options.length; i++)	{
			el.options[i].selected = false;
		}
	}
}

function _vrg_get_volgnummer(id)	{
	for(var i = 0; i < _vrg_vragen.length; i++)	{
		if(_vrg_vragen[i][0] == id)	return _vrg_vragen[i][1];
	}
	return -1;	
}

function _vrg_is_laatste_vraag(id)	{
	for(var i = 0; i < _vrg_laatste_vragen.length; i++)	{
		if(_vrg_laatste_vragen[i] == id)	return true;
	}
	return false;
}

function _vrg_is_visible(id)	{
	var el = document.getElementById("nvrg_antwoord_"+id);
	if(el.parentNode.parentNode.style.display == 'none') 
		return false;
	else
		return true;
}

function _vrg_ngn_handle_laatste_vragen()	{
	// toon alle vragen die geen verband hebben met andere vragen/antwoorden
	for(var i = 0; i < _vrg_vragen.length; i++)	{
		if(!_vrg_has_dependency(_vrg_vragen[i][0]))	{
			_vrg_ngn_show(_vrg_vragen[i][0]);
		}
	}

	// loop door de laatste vragen en hide alle vragen met een hoger volgnummer als de laatste vraag zichtbaar is
	for(var i = 0; i < _vrg_laatste_vragen.length; i++)	{
		if(_vrg_is_visible(_vrg_laatste_vragen[i]))	{

		var volgnummer = _vrg_get_volgnummer(_vrg_laatste_vragen[i]);
			
			for(var j = 0; j < _vrg_vragen.length; j++)	{
				if(_vrg_vragen[j][1] > volgnummer)	{
					_vrg_ngn_hide(_vrg_vragen[j][0]);
				}
			}
		}
	}
}

function _vrg_has_dependency(id)	{
	for(var i = 0; i < _vrg_ngn_dependencies.length; i++)	{
		if(_vrg_ngn_dependencies[i][0] == id)	return true;
	}
	return false;
}
