/*****************************************************************************************************/
/*                                                                                                   */
/*                                     'QUIZZ PANEL' CLASS                                           */          
/*                                                                                                   */
/*****************************************************************************************************/

function QUIZZ_GINFO(parent, nr_questions){
	var JSObject = this;
	
	this.scroller;
	
	this.container_validate_enabled = document.getElementById("validate_btn_enabled");
	this.container_validate_disabled = document.getElementById("validate_btn_disabled");
	this.btn_validate = this.container_validate_enabled.getElementsByTagName("img")[0];
	
	this.container_nextquestion_enabled = document.getElementById("nextquestion_btn_enabled");
	this.container_nextquestion_disabled = document.getElementById("nextquestion_btn_disabled");
	this.btn_nextquestion = this.container_nextquestion_enabled.getElementsByTagName("img")[0];
	
	this.container_reset = document.getElementById("restart_btn_enabled");
	this.btn_reset = this.container_reset.getElementsByTagName("img")[0];
	
	this.container_previous = document.getElementById("previousquestion_btn_enabled");
	this.btn_previous = this.container_previous.getElementsByTagName("img")[0];
	
	this.arr_answers = new Array(); //true or false
	
	this.current_question = 0;
	this.nr_questions = nr_questions;
	
	
	/*****************************************************************************************************/
	/*                                                                                                   */
	/*                                           FUNCTION INIT                                           */          
	/*                                                                                                   */
	/*****************************************************************************************************/
	this.init = function(){
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                   FUNCTION NEXT QUESTION                                          */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		this.btn_nextquestion.onclick = function(){
			
			//document.getElementById("question_container_"+JSObject.current_question).style.display = 'none';
			JSObject.current_question++;
			
			var current_question_container = document.getElementById("question_container_"+JSObject.current_question);
			//animatedcollapse.toggle("question_container_"+JSObject.current_question);
			current_question_container.style.display = "block";
			
					
			//activate radio btns
			JSObject.setRadioActions();
			
			
			JSObject.container_nextquestion_enabled.style.display = "none";
			JSObject.container_nextquestion_disabled.style.display = "none";
			
			JSObject.container_previous.style.display = "none";
			
			JSObject.container_validate_enabled.style.display = "none";
			JSObject.container_validate_disabled.style.display = "block";
			
			
			//scroll moving
			var yCoord = ((YAHOO.util.Dom.getY(document.getElementById('validate_btn_disabled')) - 6) < 0) ? 0 : YAHOO.util.Dom.getY(document.getElementById('validate_btn_disabled')) - 6;
			var top = (document.body.scrollTop == 0) ? document.documentElement.scrollTop : document.body.scrollTop;
			var height = document.documentElement.clientHeight;
			
			if (parseInt(yCoord) > parseInt(top) + parseInt(height)){
				distance = parseInt(yCoord)-(parseInt(top) + parseInt(height))+50;
				JSObject.scroller = new SCROLLER();
				JSObject.scroller.moveScroll(distance,1000,top);
			}
			
			
		}
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                   FUNCTION VALIDATE QUESTION                                      */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		this.btn_validate.onclick = function(){
			//alert('dsa');
			var current_question_container = document.getElementById("question_container_"+JSObject.current_question);
			var question_id = current_question_container.getElementsByTagName("input")[0].value;
			
			//AJAX, verify the answer	
			if (www != null){
				//alert(LOCALPATH+"quiz_action.php?"+'question_id='+question_id+'&answer_id='+JSObject.getAnswerId());
				www.post(LOCALPATH+"quiz_action.php",
				 'question_id='+question_id+
				 '&answer_id='+JSObject.getAnswerId(), 
				 function(response) {
					
					if (typeof(response) != "object" && typeof(response) != "string") return;
					
					var myObject = eval('(' + response + ')');
					//alert(myObject)
					var valid = Boolean(myObject.valid);
					var msg = myObject.message;
					JSObject.showMessage(valid, msg);
					 
				 }
				 );	
			}	
			
			JSObject.setRadioDisabled();
			
			if (JSObject.current_question+1 <= JSObject.nr_questions-1){
				JSObject.container_nextquestion_enabled.style.display = "block";
				JSObject.container_nextquestion_disabled.style.display = "none";
				
				JSObject.container_previous.style.display = "block";
				
				JSObject.container_validate_enabled.style.display = "none";
				JSObject.container_validate_disabled.style.display = "none";
				
				var yCoord = ((YAHOO.util.Dom.getY(document.getElementById('nextquestion_btn_enabled')) - 6) < 0) ? 0 : YAHOO.util.Dom.getY(document.getElementById('nextquestion_btn_enabled')) - 6;
			}
			else{
				
				JSObject.container_nextquestion_enabled.style.display = "none";
				JSObject.container_nextquestion_disabled.style.display = "none";
				
				JSObject.container_previous.style.display = "block";
				
				JSObject.container_validate_enabled.style.display = "none";
				JSObject.container_validate_disabled.style.display = "none";
				
				JSObject.container_reset.style.display = "block";
				
				var yCoord = ((YAHOO.util.Dom.getY(document.getElementById('restart_btn_enabled')) - 6) < 0) ? 0 : YAHOO.util.Dom.getY(document.getElementById('restart_btn_enabled')) - 6;
			}
			
			
			//scroll moving
			
			var top = (document.body.scrollTop == 0) ? document.documentElement.scrollTop : document.body.scrollTop;
			var height = document.documentElement.clientHeight;
						
			//alert(yCoord+" "+top+" "+height)
			if (parseInt(yCoord)+100 > parseInt(top) + parseInt(height)){
				distance = parseInt(yCoord)-(parseInt(top) + parseInt(height))+100;
				JSObject.scroller = new SCROLLER();
				JSObject.scroller.moveScroll(distance,1000,top);
			}
			
		}
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                   FUNCTION RESTART QUESTION                                       */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		this.btn_previous.onclick = function(){
			
			//document.getElementById("question_container_"+JSObject.current_question).style.display = 'none';
			//JSObject.current_question++;
			
			var current_question_container = document.getElementById("question_container_"+JSObject.current_question);
			//animatedcollapse.toggle("question_container_"+JSObject.current_question);
			//current_question_container.style.display = "block";
			
			JSObject.hideMessage();
					
			//activate radio btns
			JSObject.setRadioActions();
			
			
			JSObject.container_nextquestion_enabled.style.display = "none";
			JSObject.container_nextquestion_disabled.style.display = "none";
			
			JSObject.container_validate_enabled.style.display = "none";
			JSObject.container_validate_disabled.style.display = "block";
			
			JSObject.container_previous.style.display = "none";
			JSObject.container_reset.style.display = "none";
		}
		
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                     FUNCTION RESET QUIZZ                                          */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		this.btn_reset.onclick = function(){
			
			
			//document.getElementById("question_container_"+JSObject.current_question).style.display = 'none';
			JSObject.current_question = 0;
			
			for (var i=1; i<JSObject.nr_questions; i++){
				
				var current_question_container = document.getElementById("question_container_"+i);
				animatedcollapse.toggle("question_container_"+i);
				//current_question_container.style.display = "none";
				
				var message_container = document.getElementById("response_container_"+i);
				animatedcollapse.toggle("response_container_"+i);
				//message_container.style.display = "none";
				message_container.innerHTML = "";
				
				JSObject.setRadioEnable(i);
			}
			
			
			var current_question_container = document.getElementById("question_container_"+JSObject.current_question);
			current_question_container.style.display = "block";
			
			var message_container = document.getElementById("response_container_"+JSObject.current_question);
			animatedcollapse.toggle("response_container_"+JSObject.current_question);
			//message_container.style.display = "none";
			message_container.innerHTML = "";
			JSObject.setRadioEnable(JSObject.current_question);
			
			
			JSObject.container_validate_disabled.style.display = "block";
			JSObject.container_reset.style.display = "none";
			JSObject.container_previous.style.display = "none";
			
			window.scrollTo(0,0);
		}
		
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                   FUNCTION SET ACTIONS TO RADIO BTNS                              */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		this.setRadioActions = function(){
			var nr_answers = document.getElementsByName("answer_"+this.current_question).length;
			for (var i=0; i<nr_answers; i++){
				
				var radioBtn = document.getElementsByName("answer_"+this.current_question)[i];
				radioBtn.disabled = false;
				radioBtn.checked = false;
				var span = radioBtn.parentNode.getElementsByTagName("span")[0];
				span.radio = radioBtn;
				radioBtn.onclick = function(){
					if (this.checked == true){
						JSObject.container_validate_enabled.style.display = "block";
						JSObject.container_validate_disabled.style.display = "none";
					}
				}
				
				span.onclick = function(){
					if (this.radio.disabled == true) return;
					
					this.radio.checked = !(this.radio.checked);
					if (this.radio.checked == true){
						JSObject.container_validate_enabled.style.display = "block";
						JSObject.container_validate_disabled.style.display = "none";
					}
				}
				
			}	
		}
		this.setRadioActions();
		
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                   FUNCTION GET ANSWER ID                                          */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		this.getAnswerId = function(){
			var nr_answers = document.getElementsByName("answer_"+this.current_question).length;
			for (var i=0; i<nr_answers; i++){
				
				var radioBtn = document.getElementsByName("answer_"+this.current_question)[i];
				if (radioBtn.checked == true){
					return radioBtn.value;
				}
			}	
			
			return -1;
		}
		
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                   FUNCTION SET RADIO DISABLE                                      */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		this.setRadioDisabled = function(){
			var nr_answers = document.getElementsByName("answer_"+this.current_question).length;
			for (var i=0; i<nr_answers; i++){
				
				var radioBtn = document.getElementsByName("answer_"+this.current_question)[i];
				radioBtn.disabled = true;
			}	
		}
		
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                   FUNCTION SET RADIO ENABLE                                       */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		this.setRadioEnable = function(index){
			
			var nr_answers = document.getElementsByName("answer_"+index).length;
			for (var i=0; i<nr_answers; i++){
				
				var radioBtn = document.getElementsByName("answer_"+index)[i];
				radioBtn.disabled = false;
				radioBtn.checked = false;
			}	
		}
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                   FUNCTION SHOW MESSAGE                                           */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		this.showMessage = function(type, msg){
			var message_container = document.getElementById("response_container_"+this.current_question);
			
			if (type == true){
				message_container.innerHTML = '<span class="blackContentText" style="color:#0c9f1d;"><strong>Bonne r&eacute;ponse !</strong></span>';
			}
			else{
				message_container.innerHTML = '<span class="blackContentText"><strong><font style="color:#f80014;">Mauvaise r&eacute;ponse !</font></strong></span>';
			}
			
			if (msg.length > 1){
				message_container.innerHTML += '<span class="blackContentText"><br />'+msg+'</span>';
			}
			
			animatedcollapse.toggle("response_container_"+this.current_question);
			//message_container.style.display = 'block';
		}
		
		
		
		/*****************************************************************************************************/
		/*                                                                                                   */
		/*                                   FUNCTION HIDE MESSAGE                                           */          
		/*                                                                                                   */
		/*****************************************************************************************************/
		this.hideMessage = function(){
			var message_container = document.getElementById("response_container_"+this.current_question);
			animatedcollapse.hide("response_container_"+this.current_question);
		}
	}
	
	
	
	
	/*****************************************************************************************************/
	/*                                                                                                   */
	/*                                           FUNCTION INIT  ON LOAD                                  */          
	/*                                                                                                   */
	/*****************************************************************************************************/
	this.initOnLoad = function(){
		
		if (this.getAnswerId() != -1){
			JSObject.container_validate_enabled.style.display = "block";
			JSObject.container_validate_disabled.style.display = "none";	
		}
	
	}
	
}
