function Quiz(id){this.id=id;this.questionDiv=$('quiz'+id);this.ajaxServer='scripts/quizajaxserver.php';this._userId=null;this._userName=null;this._userGroup=null;this.pathToRoot='';this.allowBlankAnswers=false;this.questionId='';this.memoCheckTimer='';this.preloaderHTML=this.questionDiv.innerHTML;}
Quiz.prototype.init=function(){this.ajaxServer=this.pathToRoot+this.ajaxServer;var pars='action=getStartScreen&quizId='+this.id;if(this._userId&&this._userName){pars+='&userId='+this._userId+'&userName='+this._userName+'&userGroup='+this._userGroup;}
new Ajax.Updater('quiz'+this.id,this.ajaxServer,{method:'get',parameters:pars,onFailure:this.reportError,evalScripts:true});}
Quiz.prototype.setUserInfo=function(id,name,group){this._userId=id;this._userName=name;this._userGroup=group;}
Quiz.prototype.sendLogin=function(){var form=$('quizLoginForm'+this.id);if(validateMailform(form)){var pars='action=doLogin&quizId='+this.id+'&'+Form.serialize(form);new Ajax.Updater('quiz'+this.id,this.ajaxServer,{method:'get',parameters:pars,onFailure:this.reportError,evalScripts:true});}}
Quiz.prototype.reset=function(){var pars='action=reset&quizId='+this.id;new Ajax.Updater('quiz'+this.id,this.ajaxServer,{method:'get',parameters:pars,onFailure:this.reportError,evalScripts:true});}
Quiz.prototype.nextQuestion=function(){var form=$('quizForm'+this.id);var pars='action=getNextQuestion&quizId='+this.id;var extraPars;var answerGiven=form.elements.length==0?true:false;extraPars=this._encodeFormData(form);if(extraPars!=''){answerGiven=true;}
pars+=extraPars;if(!this.allowBlankAnswers&&!answerGiven){alert('Kies eerst een antwoord.');}else{this.showPreloader();new Ajax.Updater('quiz'+this.id,this.ajaxServer,{method:'get',parameters:pars,onFailure:this.reportError,evalScripts:true});}}
Quiz.prototype.previousQuestion=function(){var form=$('quizForm'+this.id);var pars='action=getPrevQuestion&quizId='+this.id;pars+=this._encodeFormData(form);this.showPreloader();new Ajax.Updater('quiz'+this.id,this.ajaxServer,{method:'get',parameters:pars,onFailure:this.reportError,evalScripts:true});}
Quiz.prototype._encodeFormData=function(form){var pars='';for(var i=0;i<form.elements.length;i++){var element=form.elements[i];var type=element.type;if(type=='radio'||type=='checkbox'||type=='select-one'||type=='select-multiple'||type=='text'||type=='textarea'){if(element.name.match('answer')){switch(type){case'radio':case'checkbox':if(element.checked){pars+='&'+element.name+'='+encodeURIComponent(element.value);}
break;case'select-multiple':pars+='&'+Form.serialize('quizForm'+this.id);break;default:if(element.value!=''){pars+='&'+element.name+'='+encodeURIComponent(element.value);}
break;}}}}
return pars;}
Quiz.prototype.displayQuizMessage=function(title,txt,okAction){var d=document;var agent=navigator.userAgent.toLowerCase();var mObj;if(d.getElementById("modalContainer"))return;mObj=d.getElementsByTagName("body")[0].appendChild(d.createElement("div"));mObj.id="modalContainer";mObj.style.height=document.documentElement.scrollHeight+"px";alertObj=mObj.appendChild(d.createElement("div"));alertObj.id="alertBox";if(d.all&&!window.opera&&agent.indexOf("msie 7")==-1){alertObj.style.top=document.documentElement.scrollTop+"px";var selects=document.getElementsByTagName('select');for(var i=0;i<selects.length;i++){selects[i].style.visibility='hidden';}}else{alertObj.style.position='fixed';}
alertObj.style.left=(d.documentElement.scrollWidth-alertObj.offsetWidth)/2+"px";alertDrag=new Draggable('alertBox',{revert:false});messageHtml='<h1>'+title+'</h1>';messageHtml+='<p>'+unescape(txt)+'</p>'
switch(okAction){case'next':messageHtml+='<a href="#" id="closeBtn" onclick="quiz'+this.id+'.onQuizOkNext();return false;">Ok</a>';break;case'prev':messageHtml+='<a href="#" id="closeBtn" onclick="quiz'+this.id+'.onQuizOkPrev();return false;">Ok</a>';break;default:messageHtml+='<a href="#" id="closeBtn" onclick="quiz'+this.id+'._removeQuizMessage();return false;">Ok</a>';break;}
alertObj.innerHTML=messageHtml;document.onkeydown=function(e){var evt=window.event==null?e:window.event;var key=(evt.charCode)?evt.charCode:((evt.keyCode)?evt.keyCode:((evt.which)?evt.which:0));if(key==13){onQuizMessageOk(goToNext);}else{if(window.event){window.event.keyCode=505;}
return false;}}}
Quiz.prototype.onQuizOkNext=function(){this._removeQuizMessage();this.nextQuestion();}
Quiz.prototype.onQuizOkPrev=function(){this._removeQuizMessage();this.previousQuestion();}
Quiz.prototype._unhideSelects=function(){var selects=document.getElementsByTagName('select');for(var i=0;i<selects.length;i++){selects[i].style.visibility='visible';}}
Quiz.prototype._removeQuizMessage=function(){this._unhideSelects();alertDrag.destroy();document.onkeydown='';document.getElementsByTagName("body")[0].removeChild(document.getElementById("modalContainer"));}
Quiz.prototype.addQuestionMemo=function(){var message=escape($F('memoTxt'));if(message==''){alert('Geef een memo bericht op a.u.b.');return false;}
var args='action=addQuestionMemo&questionId='+this.questionId+'&message='+message;var myAjax=new Ajax.Request(this.ajaxServer,{method:'get',parameters:args,onComplete:updateQuestionMemoText()});$('memoTxt').value='';}
Quiz.prototype.updateQuestionMemoText=function(){var pars='action=getQuestionMemo&questionId='+this.questionId;new Ajax.Updater('questionCurrentMemoTxt',this.ajaxServer,{method:'get',parameters:pars,onFailure:this.reportError});}
Quiz.prototype.toggleQuestionMemo=function(){var visible=$('questionMemo').style.display=='none';if(visible){Element.show('questionMemo');this.memoCheckTimer=setInterval('quiz'+this.id+'.updateQuestionMemoText()',2000);}else{Element.hide('questionMemo');clearInterval(this.memoCheckTimer);}
return false;}
Quiz.prototype.showPreloader=function(){this.questionDiv.update(this.preloaderHTML);}
Quiz.prototype.reportError=function(request){alert('Er heeft zich een fout voorgedaan bij communicatie met de server.');}
var quizPopUp;function openQuizPopUp(id,pathToRoot){var height=Math.round(0.75*screen.height);quizPopUp=window.open(pathToRoot+'/scripts/showquiz.php?id='+id,'quizPopup','resizable=yes,location=no,menubar=no,scrollbars=yes,status=no,toolbar=no,fullscreen=no,dependent=no,width=590,height='+height);quizPopUp.focus();}
function openCalcPopUp(){calcPopUp=window.open('scripts/calculator.html','calculator','resizable=no,location=no,menubar=no,scrollbars=no,status=no,toolbar=no,fullscreen=no,dependent=no,width=195,height=185');calcPopUp.focus();}
