$(document).ready(function(){	$('.questionnaire_questions .questionnaire_item :input').live('click', function() {		$(this).closest('.questionnaire_item').removeClass('error');	});
	
	$('.questionnaire_questions input[name="questionnaire_submit"]').live('click', function()	{
		var form = $(this).closest('form');
		var parent = $('.questionnaire_questions', form);
		var oldQuestion = $('.current_question', parent);
		
		return check_question(parent, oldQuestion);
	});
	
	$('.questionnaire_questions .questionnaire_radio_answer input[type="radio"]').live('change', function()
	{
		var parent = $(this).closest('.questionnaire_questions');
		var questions = $('.questionnaire_item', parent);
		var index = questions.index($('.current_question', parent));
		
		if (index == questions.length - 1) {
			return;
		}
				var next_button = $('.questionaire_navigation .next_button', parent);		var submit_button = $('.questionnaire_submit', parent);
		
		if ($(this).hasClass('answer_end'))
		{
			var checked = ($(this).filter(':checked').length == 1);
			next_button.toggle(!checked);
			submit_button.toggle(checked);
		}
		else
		{
			next_button.show();
			submit_button.hide();
		}
	});		$('.questionnaire_questions').each(function() {		var parent = this;		var sections = $('.questionaire_section', parent);		var questions = $('.questionnaire_item', parent);						$(parent).addClass('fixed');		$('.questionaire_section', parent).hide();		$('.questionnaire_item', parent).hide();		$('.questionaire_navigation', parent).show();				$('.questionaire_section:eq(0)', parent).addClass('current_section').show();		$('.questionaire_section:eq(0) .questionnaire_item:eq(0)', parent).addClass('current_question').show();				var prev_button = $('.questionaire_navigation .prev_button', parent);		var next_button = $('.questionaire_navigation .next_button', parent);		var submit_button = $('.questionnaire_submit', parent);		var toggle_navigation = function() {			var index = questions.index($('.current_question', parent));			prev_button.toggleClass('hide', (index == 0));			next_button.toggleClass('hide', (index == questions.length - 1));			submit_button.toggle(index == questions.length - 1);		};		toggle_navigation();				$('.questionaire_navigation a', parent).click(function() {			if ($(this).hasClass('busy')) {				return false;			}					$('.questionaire_navigation a', parent).addClass('busy');			var step = parseInt($(this).attr('rel'));						var oldQuestion = $('.current_question', parent);			if (step > 0 && !check_question(parent, oldQuestion)) {
				return false;
			}						var oldQuestionIndex = questions.index(oldQuestion);			
			var newQuestionIndex = oldQuestionIndex + step;
			var newQuestion = $('.questionnaire_item:eq('+newQuestionIndex+')', parent);
			
			var skipBackVal = $('input[name="skip_back"]', oldQuestion).val();
			if (step > 0)
			{
				if ($(oldQuestion).hasClass('questionnaire_item_radio'))
				{
					var selectedAnswer = $('.questionnaire_item_answers :radio:checked', oldQuestion).closest('.questionnaire_radio_answer');
					var skip = $('input[name="radio_skip"]', selectedAnswer);
					if (skip.length)
					{
						newQuestion = $('input[name="question_number"][value="'+skip.val()+'"]', parent).closest('.questionnaire_item');
						var oldNumber = $('input[name="question_number"]', oldQuestion).val();
						$('input[name="skip_back"]', newQuestion).val(oldNumber);
					}
					else {
						$('input[name="skip_back"]', newQuestion).val('');
					}
				}
				else {
					$('input[name="skip_back"]', newQuestion).val('');
				}
			}
			else if (step < 0 && skipBackVal != '')
			{
				newQuestion = $('input[name="question_number"][value="'+skipBackVal+'"]', parent).closest('.questionnaire_item');
			}						var oldSection = $('.current_section', parent);			var oldSectionIndex = sections.index(oldSection);			var newSection = newQuestion.closest('.questionaire_section');			var newSectionIndex = sections.index(newSection);						oldQuestion.removeClass('current_question');			newQuestion.addClass('current_question');			oldSection.removeClass('current_section');			newSection.addClass('current_section');						if (oldSectionIndex == newSectionIndex)			{				oldQuestion.fadeOut('normal', function() {					newQuestion.fadeIn('normal', function() {						toggle_navigation();						$('.questionaire_navigation a', parent).removeClass('busy');					});				});			}			else			{				newQuestion.show();				oldSection.fadeOut('normal', function() {					newSection.fadeIn('normal', function() {						oldQuestion.hide();						toggle_navigation();						$('.questionaire_navigation a', parent).removeClass('busy');					});				});			}			return false;		});	});});

function check_question(parent, question)
{
	var valid = true;	if ($(question).hasClass('questionnaire_item_text') || $(question).hasClass('questionnaire_item_string')) {		if ($.trim($(':input:not(:hidden)', question).val()) == '') {			valid = false;			$(question).addClass('error');		}	}	else if ($(question).hasClass('questionnaire_item_radio') || 			 $(question).hasClass('questionnaire_item_checkbox'))	{		if ($(':checked', question).length == 0) {			valid = false;			$(question).addClass('error');		}	}		if (!valid)	{		$.dialogutils.message_dialog('Invoer incompleet',			'De huidige vraag is niet beantwoord. Vul alstublieft de huidige vraag in.');		$('.questionaire_navigation a', parent).removeClass('busy');		return false;	}
	return true;
}
