document.observe('dom:loaded', initErosionsQuiz);


function initErosionsQuiz(){
	
	gabaQuestions = [
		{ antwort: 'antwort1', frageblock: 'frageblock1', fragetrigger: 'fragetrigger1', frage: 'frage1', richtigeAntwort: 1 },
		{ antwort: 'antwort2', frageblock: 'frageblock2', fragetrigger: 'fragetrigger2', frage: 'frage2', richtigeAntwort: 1 },
		{ antwort: 'antwort3', frageblock: 'frageblock3', fragetrigger: 'fragetrigger3', frage: 'frage3', richtigeAntwort: 2 },
		{ antwort: 'antwort4', frageblock: 'frageblock4', fragetrigger: 'fragetrigger4', frage: 'frage4', richtigeAntwort: 2 },
		{ antwort: 'antwort5', frageblock: 'frageblock5', fragetrigger: 'fragetrigger5', frage: 'frage5', richtigeAntwort: 2 },
		{ antwort: 'antwort6', frageblock: 'frageblock6', fragetrigger: 'fragetrigger6', frage: 'frage6', richtigeAntwort: 2 }
	];
	initStates();
	
	$('fragetrigger_all').observe('click', function(){
		showAllGabaQuestions();
	});
	
	$('submit_all').down('input[type="submit"]').observe('click', function(){
		answerAllGabaQuestions();
	});

}




function initStates(){
	
	for(i = 0; i<gabaQuestions.length; i++){
		$(gabaQuestions[i].antwort).hide();
		$(gabaQuestions[i].frageblock).hide();
		
		$(gabaQuestions[i].frageblock).select('input[type="radio"]').each(function(el){
			el.checked = false;
			el.writeAttribute('disabled', false);			
		});		

	
		$(gabaQuestions[i].fragetrigger).observe('click', function(frageblock, fragetrigger){
			if($(frageblock).visible()){
				$(frageblock).hide();
				$(fragetrigger).innerHTML = 'Frage beantworten';
			}
			else{
				$(frageblock).show();
				$(fragetrigger).innerHTML = 'Antworten ausblenden';
			}
		}.bind(this, gabaQuestions[i].frageblock, gabaQuestions[i].fragetrigger));
		
		$(gabaQuestions[i].frageblock).down('input[type="submit"]').observe('click', function(frageblock, richtigeAntwort, frage, antwort){
			userAntwort = getRadioValue(frageblock);
			if(userAntwort){
			
				$(frageblock).select('input[type="radio"]').each(function(el){
					el.writeAttribute('disabled', 'disabled');
				});
				$(frageblock).down('input[type="submit"]').hide();
				
				markiereFrage(userAntwort, richtigeAntwort, frage, antwort);
			}
		}.bind(this, gabaQuestions[i].frageblock, gabaQuestions[i].richtigeAntwort, gabaQuestions[i].frage, gabaQuestions[i].antwort));
	
	}
}



function markiereFrage(userAntwort, richtigeAntwort, frage, antwort){
	var feedback = new Element('p', { 'class': 'feedback' } );

	hicolor = '#269215';
	feedback.innerHTML = 'Korrekt';
	$(frage + '[' + richtigeAntwort + ']').setStyle({ color: hicolor });
	
	if(userAntwort != richtigeAntwort || userAntwort == false){
		hicolor = '#cc4328';
		feedback.innerHTML = 'Leider falsch';
		if(userAntwort){
			$(frage + '[' + userAntwort + ']').setStyle({ color: hicolor });
		}
	}
	$(antwort).show();
	new Effect.Highlight(antwort, { startcolor: hicolor, endcolor: '#ffffff', duration: 1.0 });

	feedbackStyle = { color: hicolor, fontFamily: 'Arial, Helvetica, Verdana, Geneva', fontSize: '12px', lineHeight: '18px' };	
	feedback.setStyle(feedbackStyle);	
	if($(antwort).select('.feedback').length == 0){
		 var antwort = $(antwort).firstChild;
		 $(antwort).insert({before:feedback});
	}
}


function getRadioValue(block_id){
	radiobuttons = $(block_id).select('input[type="radio"]');
	for(var i=0; i<radiobuttons.length; i++){
		if(radiobuttons[i].checked){
			return radiobuttons[i].value;
		}
	}
	return false;
}


function showAllGabaQuestions(){
	for(var i = 0; i<gabaQuestions.length; i++){
		$(gabaQuestions[i].frageblock).show();
		$(gabaQuestions[i].fragetrigger).innerHTML = 'Antworten ausblenden';		
	}
}

function answerAllGabaQuestions(){
	showAllGabaQuestions();

	for(var k = 0; k<gabaQuestions.length; k++){
		userAntwort = getRadioValue(gabaQuestions[k].frageblock);
		if(userAntwort){
			$(gabaQuestions[k].frageblock).select('input[type="radio"]').each(function(el){
				el.writeAttribute('disabled', 'disabled');
			});
			$(gabaQuestions[k].frageblock).down('input[type="submit"]').hide();
			markiereFrage(userAntwort, gabaQuestions[k].richtigeAntwort, gabaQuestions[k].frage, gabaQuestions[k].antwort);		
		}
		
	}
}



