segunda-feira, 11 de julho de 2016

quiz ecologia

// */ var API = null; /* SCORM API */ /* look up through the frameset hierarchy for the SCORM API */ function findAPI(win) { while ((win.API == null) && (win.parent != null) && (win.parent != win)) { win = win.parent; } API = win.API; } /* initialize the SCORM API */ function initAPI(win) { /* look for the SCORM API up in the frameset */ findAPI(win); /* if we still have not found the API, look at the opener and its frameset */ if ((API == null) && (win.opener != null)) { findAPI(win.opener); } } var ScormSubmitted = false; //use this to check whether LMSFinish has been called later. function ScormStartUp(){ initAPI(window); if (API != null){ API.LMSInitialize(''); API.LMSSetValue('cmi.core.lesson_status', 'browsed'); API.LMSSetValue('cmi.core.score.min', 0); API.LMSSetValue('cmi.core.score.max', 100); API.LMSCommit(''); } } function CheckLMSFinish(){ if (API != null){ if (ScormSubmitted == false){ API.LMSCommit(''); API.LMSFinish(''); ScormSubmitted = true; } } } function SetScormIncomplete(){ if (ScormSubmitted == true){ return; } SetScormScore(); if (API != null){ API.LMSSetValue('cmi.core.lesson_status', 'incomplete'); API.LMSSetValue('cmi.core.session_time', MillisecondsToTime((new Date()).getTime() - ScormStartTime)); API.LMSCommit(''); } } function SetScormComplete(){ if (API != null){ API.LMSSetValue('cmi.core.session_time', MillisecondsToTime((new Date()).getTime() - ScormStartTime)); API.LMSSetValue('cmi.core.lesson_status', 'completed'); SetScormScore(); API.LMSCommit(''); API.LMSFinish(''); ScormSubmitted = true; } } var ScormStartTime = (new Date()).getTime(); var SuspendData = ''; function SetScormTimedOut(){ if (API != null){ if (ScormSubmitted == false){ SetScormScore(); API.LMSSetValue('cmi.core.exit', 'time-out'); API.LMSCommit(''); CheckLMSFinish(); } } } //TIME RENDERING FUNCTION function MillisecondsToTime(Seconds){ Seconds = Math.round(Seconds/1000); var S = Seconds % 60; Seconds -= S; if (S < 10){S = '0' + S;} var M = (Seconds / 60) % 60; if (M < 10){M = '0' + M;} var H = Math.floor(Seconds / 3600); if (H < 10){H = '0' + H;} return H + ':' + M + ':' + S; } function Client(){ //if not a DOM browser, hopeless this.min = false; if (document.getElementById){this.min = true;}; this.ua = navigator.userAgent; this.name = navigator.appName; this.ver = navigator.appVersion; //Get data about the browser this.mac = (this.ver.indexOf('Mac') != -1); this.win = (this.ver.indexOf('Windows') != -1); //Look for Gecko this.gecko = (this.ua.indexOf('Gecko') > 1); if (this.gecko){ this.geckoVer = parseInt(this.ua.substring(this.ua.indexOf('Gecko')+6, this.ua.length)); // if (this.geckoVer < 20020000){this.min = false;} } //Look for Firebird this.firebird = (this.ua.indexOf('Firebird') > 1); //Look for Safari this.safari = (this.ua.indexOf('Safari') > 1); if (this.safari){ this.gecko = false; } //Look for IE this.ie = (this.ua.indexOf('MSIE') > 0); if (this.ie){ this.ieVer = parseFloat(this.ua.substring(this.ua.indexOf('MSIE')+5, this.ua.length)); if (this.ieVer < 5.5){this.min = false;} } //Look for Opera this.opera = (this.ua.indexOf('Opera') > 0); if (this.opera){ this.operaVer = parseFloat(this.ua.substring(this.ua.indexOf('Opera')+6, this.ua.length)); if (this.operaVer < 7.04){this.min = false;} } if (this.min == false){ // alert('Your browser may not be able to handle this page.'); } //Special case for the horrible ie5mac this.ie5mac = (this.ie&&this.mac&&(this.ieVer<6)); } var C = new Client(); //for (prop in C){ // alert(prop + ': ' + C[prop]); //} //CODE FOR HANDLING NAV BUTTONS AND FUNCTION BUTTONS //[strNavBarJS] function NavBtnOver(Btn){ if (Btn.className != 'NavButtonDown'){Btn.className = 'NavButtonUp';} } function NavBtnOut(Btn){ Btn.className = 'NavButton'; } function NavBtnDown(Btn){ Btn.className = 'NavButtonDown'; } //[/strNavBarJS] function FuncBtnOver(Btn){ if (Btn.className != 'FuncButtonDown'){Btn.className = 'FuncButtonUp';} } function FuncBtnOut(Btn){ Btn.className = 'FuncButton'; } function FuncBtnDown(Btn){ Btn.className = 'FuncButtonDown'; } function FocusAButton(){ if (document.getElementById('CheckButton1') != null){ document.getElementById('CheckButton1').focus(); } else{ if (document.getElementById('CheckButton2') != null){ document.getElementById('CheckButton2').focus(); } else{ document.getElementsByTagName('button')[0].focus(); } } } //CODE FOR HANDLING DISPLAY OF POPUP FEEDBACK BOX var topZ = 1000; function ShowMessage(Feedback){ var Output = Feedback + '

'; document.getElementById('FeedbackContent').innerHTML = Output; var FDiv = document.getElementById('FeedbackDiv'); topZ++; FDiv.style.zIndex = topZ; FDiv.style.top = TopSettingWithScrollOffset(30) + 'px'; FDiv.style.display = 'block'; ShowElements(false, 'input'); ShowElements(false, 'select'); ShowElements(false, 'object'); ShowElements(true, 'object', 'FeedbackContent'); //Focus the OK button setTimeout("document.getElementById('FeedbackOKButton').focus()", 50); // // RefreshImages(); // } function ShowElements(Show, TagName, ContainerToReverse){ // added third argument to allow objects in the feedback box to appear //IE bug -- hide all the form elements that will show through the popup //FF on Mac bug : doesn't redisplay objects whose visibility is set to visible //unless the object's display property is changed //get container object (by Id passed in, or use document otherwise) TopNode = document.getElementById(ContainerToReverse); var Els; if (TopNode != null) { Els = TopNode.getElementsByTagName(TagName); } else { Els = document.getElementsByTagName(TagName); } for (var i=0; i ReduceToSize){ ItemToDump = Math.floor(InArray.length*Math.random()); InArray.splice(ItemToDump, 1); } } function Shuffle(InArray){ var Num; var Temp = new Array(); var Len = InArray.length; var j = Len; for (var i=0; i InArray[Longest].length){ Longest = i; } } return Longest; } //UNICODE CHARACTER FUNCTIONS function IsCombiningDiacritic(CharNum){ var Result = (((CharNum >= 0x0300)&&(CharNum <= 0x370))||((CharNum >= 0x20d0)&&(CharNum <= 0x20ff))); Result = Result || (((CharNum >= 0x3099)&&(CharNum <= 0x309a))||((CharNum >= 0xfe20)&&(CharNum <= 0xfe23))); return Result; } function IsCJK(CharNum){ return ((CharNum >= 0x3000)&&(CharNum < 0xd800)); } //SETUP FUNCTIONS //BROWSER WILL REFILL TEXT BOXES FROM CACHE IF NOT PREVENTED function ClearTextBoxes(){ var NList = document.getElementsByTagName('input'); for (var i=0; i -1)||(NList[i].id.indexOf('Gap') > -1)){ NList[i].value = ''; } if (NList[i].id.indexOf('Chk') > -1){ NList[i].checked = ''; } } } //EXTENSION TO ARRAY OBJECT function Array_IndexOf(Input){ var Result = -1; for (var i=0; i 0){ ThisItemScore = Math.floor(State[i][0] * 100) + ''; ThisItemStatus = 'completed'; } else{ ThisItemScore = '0'; ThisItemStatus = 'incomplete'; } API.LMSSetValue('cmi.objectives.' + i + '.score.raw', ThisItemScore); API.LMSSetValue('cmi.objectives.' + i + '.status', ThisItemStatus); API.LMSSetValue('cmi.interactions.' + i + '.weighting', I[i][0]); //We can only use the performance type, because we're storing multiple responses of various types. API.LMSSetValue('cmi.interactions.' + i + '.type', 'performance'); API.LMSSetValue('cmi.interactions.' + i + '.student_response', State[i][5]); } } API.LMSCommit(''); } } //JQUIZ CORE JAVASCRIPT CODE var CurrQNum = 0; var CorrectIndicator = 'Parabéns! resposta correta.'; var IncorrectIndicator = 'Resposta incorreta.'; var YourScoreIs = 'A sua pontuação é'; //New for 6.2.2.0 var CompletedSoFar = 'Perguntas respondidas até o momento'; var ExerciseCompleted = 'Você completou o exercício'; var ShowCompletedSoFar = true; var ContinuousScoring = true; var CorrectFirstTime = 'Questions answered correctly first time: '; var ShowCorrectFirstTime = true; var ShuffleQs = true; var ShuffleAs = true; var DefaultRight = 'Resposta correta'; var DefaultWrong = 'Resposta incorreta'; var QsToShow = 1; var Score = 0; var Finished = false; var Qs = null; var QArray = new Array(); var ShowingAllQuestions = false; var ShowAllQuestionsCaption = 'Show all questions'; var ShowOneByOneCaption = 'Show questions one by one'; var State = new Array(); var Feedback = ''; var TimeOver = false; var strInstructions = ''; var Locked = false; //The following variable can be used to add a message explaining that //the question is finished, so no further marking will take place. var strQuestionFinished = ''; function CompleteEmptyFeedback(){ var QNum, ANum; for (QNum=0; QNum 0){ I[QNum][3][ANum][1] = DefaultRight; } else{ I[QNum][3][ANum][1] = DefaultWrong; } } } } } } function SetUpQuestions(){ var AList = new Array(); var QList = new Array(); var i, j; Qs = document.getElementById('Questions'); while (Qs.getElementsByTagName('li').length > 0){ QList.push(Qs.removeChild(Qs.getElementsByTagName('li')[0])); } var DumpItem = 0; if (QsToShow > QList.length){ QsToShow = QList.length; } while (QsToShow < QList.length){ DumpItem = Math.floor(QList.length*Math.random()); for (j=DumpItem; j<(QList.length-1); j++){ QList[j] = QList[j+1]; } QList.length = QList.length-1; } if (ShuffleQs == true){ QList = Shuffle(QList); } if (ShuffleAs == true){ var As; for (var i=0; i 0){ AList.push(As.removeChild(As.getElementsByTagName('li')[0])); } AList = Shuffle(AList); for (j=0; j= QArray.length)){return;} QArray[CurrQNum].style.display = 'none'; CurrQNum += ChangeBy; QArray[CurrQNum].style.display = ''; //Undocumented function added 10/12/2004 ShowSpecialReadingForQuestion(); SetQNumReadout(); SetFocusToTextbox(); } var HiddenReadingShown = false; function ShowSpecialReadingForQuestion(){ //Undocumented function for showing specific reading text elements which change with each question //Added on 10/12/2004 if (document.getElementById('ReadingDiv') != null){ if (HiddenReadingShown == true){ document.getElementById('ReadingDiv').innerHTML = ''; } if (QArray[CurrQNum] != null){ //Fix for 6.0.4.25 var Children = QArray[CurrQNum].getElementsByTagName('div'); for (var i=0; i= QArray.length){ if (document.getElementById('NextQButton') != null){ document.getElementById('NextQButton').style.visibility = 'hidden'; } } else{ if (document.getElementById('NextQButton') != null){ document.getElementById('NextQButton').style.visibility = 'visible'; } } if (CurrQNum <= 0){ if (document.getElementById('PrevQButton') != null){ document.getElementById('PrevQButton').style.visibility = 'hidden'; } } else{ if (document.getElementById('PrevQButton') != null){ document.getElementById('PrevQButton').style.visibility = 'visible'; } } } var I=new Array(); I[0]=new Array();I[0][0]=100; I[0][1]=''; I[0][2]='0'; I[0][3]=new Array(); I[0][3][0]=new Array('etanol, obtido a partir da decomposi\u00E7\u00E3o da mat\u00E9ria org\u00E2nica por bact\u00E9rias.','',0,0,1); I[0][3][1]=new Array('g\u00E1s natural, formado pela a\u00E7\u00E3o de fungos decompositores da mat\u00E9ria org\u00E2nica.','',0,0,1); I[0][3][2]=new Array('\u00F3leo de xisto, obtido pela decomposi\u00E7\u00E3o da mat\u00E9ria org\u00E2nica pelas bact\u00E9rias anaer\u00F3bias.','',0,0,1); I[0][3][3]=new Array('g\u00E1s metano, obtido pela atividade de bact\u00E9rias anaer\u00F3bias na decomposi\u00E7\u00E3o da mat\u00E9ria org\u00E2nica.','',1,100,1); I[0][3][4]=new Array('g\u00E1s liquefeito de petr\u00F3leo, obtido pela decomposi\u00E7\u00E3o de vegetais presentes nos restos de comida.','',0,0,1); I[1]=new Array();I[1][0]=100; I[1][1]=''; I[1][2]='0'; I[1][3]=new Array(); I[1][3][0]=new Array('Evitando a rota\u00E7\u00E3o de culturas.','',0,0,1); I[1][3][1]=new Array('Liberando o CO2 presente no solo.','',0,0,1); I[1][3][2]=new Array('Aumentando a quantidade de mat\u00E9ria org\u00E2nica do solo.','',1,100,1); I[1][3][3]=new Array('Queimando a mat\u00E9ria org\u00E2nica que se deposita no solo.','',0,0,1); I[1][3][4]=new Array('Atenuando a concentra\u00E7\u00E3o de res\u00EDduos vegetais do solo.','',0,0,1); I[2]=new Array();I[2][0]=100; I[2][1]=''; I[2][2]='0'; I[2][3]=new Array(); I[2][3][0]=new Array('Consumidor prim\u00E1rio, pois ataca diretamente uma esp\u00E9cie herb\u00EDvora.','',0,0,1); I[2][3][1]=new Array('Consumidor secund\u00E1rio, pois se alimenta diretamente dos tecidos da lagarta.','',1,100,1); I[2][3][2]=new Array('Organismo heter\u00F3trofo de primeira ordem, pois se alimenta de p\u00F3len na fase adulta.','',0,0,1); I[2][3][3]=new Array('Organismo heter\u00F3trofo de segunda ordem, pois apresenta o maior n\u00EDvel energ\u00E9tico na cadeia.','',0,0,1); I[2][3][4]=new Array('Decompositor, pois se alimenta de tecidos do interior do corpo da lagarta e a leva \u00E0 morte.','',0,0,1); function StartUp(){ RemoveBottomNavBarForIE(); //If there's only one question, no need for question navigation controls if (QsToShow < 2){ document.getElementById('QNav').style.display = 'none'; } //Stash the instructions so they can be redisplayed strInstructions = document.getElementById('InstructionsDiv').innerHTML; ScormStartUp(); GetUserName(); PreloadImages('../../../../../../Pictures/Ciclo de vida.png'); CompleteEmptyFeedback(); SetUpQuestions(); ClearTextBoxes(); CreateStatusArray(); setTimeout('StartTimer()', 50); //Check search string for q parameter if (document.location.search.length > 0){ if (ShuffleQs == false){ var JumpTo = parseInt(document.location.search.substring(1,document.location.search.length))-1; if (JumpTo <= QsToShow){ ChangeQ(JumpTo); } } } //Undocumented function added 10/12/2004 ShowSpecialReadingForQuestion(); } function ShowHideQuestions(){ FuncBtnOut(document.getElementById('ShowMethodButton')); document.getElementById('ShowMethodButton').style.display = 'none'; if (ShowingAllQuestions == false){ for (var i=0; i -1){ //Add an extra message explaining that the question // is finished if defined by the user if (strQuestionFinished.length > 0){Feedback += '
' + strQuestionFinished;} //Show the feedback ShowMessage(Feedback); //New for 6.2.2.1: If you want to mark an answer as correct even when it's the final choice, uncomment this line. // if (I[QNum][3][ANum][2] >= 1){Btn.innerHTML = CorrectIndicator;}else{Btn.innerHTML = IncorrectIndicator;} return; } //Hide the button while processing Btn.style.display = 'none'; //Increment the number of tries State[QNum][2]++; //Add the percent-correct value of this answer State[QNum][3] += I[QNum][3][ANum][3]; //Store the try number in the answer part of the State array, for tracking purposes State[QNum][1][ANum] = State[QNum][2]; if (State[QNum][5].length > 0){State[QNum][5] += ' | ';} State[QNum][5] += String.fromCharCode(65+ANum); //Should this answer be accepted as correct? if (I[QNum][3][ANum][2] < 1){ //It's wrong //Mark the answer Btn.innerHTML = IncorrectIndicator; //Remove any previous score unless exercise is finished (6.0.3.8+) if (Finished == false){ WriteToInstructions(strInstructions); } //Check whether this leaves just one MC answer unselected, in which case the Q is terminated var RemainingAnswer = FinalAnswer(QNum); if (RemainingAnswer > -1){ //Behave as if the last answer had been selected, but give no credit for it //Increment the number of tries State[QNum][2]++; //Calculate the score for this question CalculateMCQuestionScore(QNum); //Get the overall score and add it to the feedback CalculateOverallScore(); //New for 6.2.2.1 var QsDone = CheckQuestionsCompleted(); if ((ContinuousScoring == true)||(Finished == true)){ Feedback += '
' + YourScoreIs + ' ' + Score + '%.' + '
' + QsDone; WriteToInstructions(YourScoreIs + ' ' + Score + '%.' + '
' + QsDone); } else{ WriteToInstructions(QsDone); } } } else{ //It's right //Mark the answer Btn.innerHTML = CorrectIndicator; //Calculate the score for this question CalculateMCQuestionScore(QNum); //New for 6.2.2.0 var QsDone = CheckQuestionsCompleted(); //Get the overall score and add it to the feedback if (ContinuousScoring == true){ CalculateOverallScore(); if ((ContinuousScoring == true)||(Finished == true)){ Feedback += '
' + YourScoreIs + ' ' + Score + '%.' + '
' + QsDone; WriteToInstructions(YourScoreIs + ' ' + Score + '%.' + '
' + QsDone); } } else{ WriteToInstructions(QsDone); } } //Show the button again Btn.style.display = 'inline'; //Finally, show the feedback ShowMessage(Feedback); //Check whether all questions are now done CheckFinished(); } function CalculateMCQuestionScore(QNum){ var Tries = State[QNum][2] + State[QNum][4]; //include tries and hint penalties var PercentCorrect = State[QNum][3]; var TotAns = GetTotalMCAnswers(QNum); var HintPenalties = State[QNum][4]; //Make sure it's not already complete if (State[QNum][0] < 0){ //Allow for Hybrids if (HintPenalties >= 1){ State[QNum][0] = 0; } else{ //This line calculates the score for this question if (TotAns == 1){ State[QNum][0] = 1; } else{ State[QNum][0] = ((TotAns-((Tries*100)/State[QNum][3]))/(TotAns-1)); } } //Fix for Safari bug added for version 6.0.3.42 (negative infinity problem) if ((State[QNum][0] < 0)||(State[QNum][0] == Number.NEGATIVE_INFINITY)){ State[QNum][0] = 0; } } } function GetTotalMCAnswers(QNum){ var Result = 0; for (var ANum=0; ANum -1){ TotalWeighting += I[QNum][0]; TotalScore += (I[QNum][0] * State[QNum][0]); } } } if (TotalWeighting > 0){ Score = Math.floor((TotalScore/TotalWeighting)*100); } else{ //if TotalWeighting is 0, no questions so far have any value, so //no penalty should be shown. Score = 100; } } //New for 6.2.2.0 function CheckQuestionsCompleted(){ if (ShowCompletedSoFar == false){return '';} var QsCompleted = 0; for (var QNum=0; QNum= 0){ QsCompleted++; } } } //Fixes for 6.2.2.2 if (QsCompleted >= QArray.length){ return ExerciseCompleted; } else{ return CompletedSoFar + ' ' + QsCompleted + '/' + QArray.length + '.'; } } function CheckFinished(){ var FB = ''; var AllDone = true; for (var QNum=0; QNum= 1){ CFT++; } } } FB += '
' + CorrectFirstTime + ' ' + CFT + '/' + QsToShow; } //New for 6.2.2.0 FB += '
' + ExerciseCompleted; WriteToInstructions(FB); Finished == true; window.clearInterval(Interval); if (TimeOver == true){ SetScormTimedOut(); } else{ SetScormComplete(); } TimeOver = true; Locked = true; setTimeout('SendResults(' + Score + ')', 50); Finished = true; Detail = ''; for (QNum=0; QNum 0){ Detail += 'Question #' + (QNum+1) + 'question-trackingQ ' + (QNum+1) + 'QuestionTrackingField' + State[QNum][5] + ''; } } } Detail += ''; setTimeout('Finish()', SubmissionTimeout); } else{ SetScormIncomplete(); } } function TimesUp(){ document.getElementById('Timer').innerHTML = 'Your time is over!'; RefreshImages(); TimeOver = true; Finished = true; ShowMessage('Your time is over!'); //Set all remaining scores to 0 for (var QNum=0; QNum //]]> // */ var API = null; /* SCORM API */ /* look up through the frameset hierarchy for the SCORM API */ function findAPI(win) { while ((win.API == null) && (win.parent != null) && (win.parent != win)) { win = win.parent; } API = win.API; } /* initialize the SCORM API */ function initAPI(win) { /* look for the SCORM API up in the frameset */ findAPI(win); /* if we still have not found the API, look at the opener and its frameset */ if ((API == null) && (win.opener != null)) { findAPI(win.opener); } } var ScormSubmitted = false; //use this to check whether LMSFinish has been called later. function ScormStartUp(){ initAPI(window); if (API != null){ API.LMSInitialize(''); API.LMSSetValue('cmi.core.lesson_status', 'browsed'); API.LMSSetValue('cmi.core.score.min', 0); API.LMSSetValue('cmi.core.score.max', 100); API.LMSCommit(''); } } function CheckLMSFinish(){ if (API != null){ if (ScormSubmitted == false){ API.LMSCommit(''); API.LMSFinish(''); ScormSubmitted = true; } } } function SetScormIncomplete(){ if (ScormSubmitted == true){ return; } SetScormScore(); if (API != null){ API.LMSSetValue('cmi.core.lesson_status', 'incomplete'); API.LMSSetValue('cmi.core.session_time', MillisecondsToTime((new Date()).getTime() - ScormStartTime)); API.LMSCommit(''); } } function SetScormComplete(){ if (API != null){ API.LMSSetValue('cmi.core.session_time', MillisecondsToTime((new Date()).getTime() - ScormStartTime)); API.LMSSetValue('cmi.core.lesson_status', 'completed'); SetScormScore(); API.LMSCommit(''); API.LMSFinish(''); ScormSubmitted = true; } } var ScormStartTime = (new Date()).getTime(); var SuspendData = ''; function SetScormTimedOut(){ if (API != null){ if (ScormSubmitted == false){ SetScormScore(); API.LMSSetValue('cmi.core.exit', 'time-out'); API.LMSCommit(''); CheckLMSFinish(); } } } //TIME RENDERING FUNCTION function MillisecondsToTime(Seconds){ Seconds = Math.round(Seconds/1000); var S = Seconds % 60; Seconds -= S; if (S < 10){S = '0' + S;} var M = (Seconds / 60) % 60; if (M < 10){M = '0' + M;} var H = Math.floor(Seconds / 3600); if (H < 10){H = '0' + H;} return H + ':' + M + ':' + S; } function Client(){ //if not a DOM browser, hopeless this.min = false; if (document.getElementById){this.min = true;}; this.ua = navigator.userAgent; this.name = navigator.appName; this.ver = navigator.appVersion; //Get data about the browser this.mac = (this.ver.indexOf('Mac') != -1); this.win = (this.ver.indexOf('Windows') != -1); //Look for Gecko this.gecko = (this.ua.indexOf('Gecko') > 1); if (this.gecko){ this.geckoVer = parseInt(this.ua.substring(this.ua.indexOf('Gecko')+6, this.ua.length)); // if (this.geckoVer < 20020000){this.min = false;} } //Look for Firebird this.firebird = (this.ua.indexOf('Firebird') > 1); //Look for Safari this.safari = (this.ua.indexOf('Safari') > 1); if (this.safari){ this.gecko = false; } //Look for IE this.ie = (this.ua.indexOf('MSIE') > 0); if (this.ie){ this.ieVer = parseFloat(this.ua.substring(this.ua.indexOf('MSIE')+5, this.ua.length)); if (this.ieVer < 5.5){this.min = false;} } //Look for Opera this.opera = (this.ua.indexOf('Opera') > 0); if (this.opera){ this.operaVer = parseFloat(this.ua.substring(this.ua.indexOf('Opera')+6, this.ua.length)); if (this.operaVer < 7.04){this.min = false;} } if (this.min == false){ // alert('Your browser may not be able to handle this page.'); } //Special case for the horrible ie5mac this.ie5mac = (this.ie&&this.mac&&(this.ieVer<6)); } var C = new Client(); //for (prop in C){ // alert(prop + ': ' + C[prop]); //} //CODE FOR HANDLING NAV BUTTONS AND FUNCTION BUTTONS //[strNavBarJS] function NavBtnOver(Btn){ if (Btn.className != 'NavButtonDown'){Btn.className = 'NavButtonUp';} } function NavBtnOut(Btn){ Btn.className = 'NavButton'; } function NavBtnDown(Btn){ Btn.className = 'NavButtonDown'; } //[/strNavBarJS] function FuncBtnOver(Btn){ if (Btn.className != 'FuncButtonDown'){Btn.className = 'FuncButtonUp';} } function FuncBtnOut(Btn){ Btn.className = 'FuncButton'; } function FuncBtnDown(Btn){ Btn.className = 'FuncButtonDown'; } function FocusAButton(){ if (document.getElementById('CheckButton1') != null){ document.getElementById('CheckButton1').focus(); } else{ if (document.getElementById('CheckButton2') != null){ document.getElementById('CheckButton2').focus(); } else{ document.getElementsByTagName('button')[0].focus(); } } } //CODE FOR HANDLING DISPLAY OF POPUP FEEDBACK BOX var topZ = 1000; function ShowMessage(Feedback){ var Output = Feedback + '

'; document.getElementById('FeedbackContent').innerHTML = Output; var FDiv = document.getElementById('FeedbackDiv'); topZ++; FDiv.style.zIndex = topZ; FDiv.style.top = TopSettingWithScrollOffset(30) + 'px'; FDiv.style.display = 'block'; ShowElements(false, 'input'); ShowElements(false, 'select'); ShowElements(false, 'object'); ShowElements(true, 'object', 'FeedbackContent'); //Focus the OK button setTimeout("document.getElementById('FeedbackOKButton').focus()", 50); // // RefreshImages(); // } function ShowElements(Show, TagName, ContainerToReverse){ // added third argument to allow objects in the feedback box to appear //IE bug -- hide all the form elements that will show through the popup //FF on Mac bug : doesn't redisplay objects whose visibility is set to visible //unless the object's display property is changed //get container object (by Id passed in, or use document otherwise) TopNode = document.getElementById(ContainerToReverse); var Els; if (TopNode != null) { Els = TopNode.getElementsByTagName(TagName); } else { Els = document.getElementsByTagName(TagName); } for (var i=0; i ReduceToSize){ ItemToDump = Math.floor(InArray.length*Math.random()); InArray.splice(ItemToDump, 1); } } function Shuffle(InArray){ var Num; var Temp = new Array(); var Len = InArray.length; var j = Len; for (var i=0; i InArray[Longest].length){ Longest = i; } } return Longest; } //UNICODE CHARACTER FUNCTIONS function IsCombiningDiacritic(CharNum){ var Result = (((CharNum >= 0x0300)&&(CharNum <= 0x370))||((CharNum >= 0x20d0)&&(CharNum <= 0x20ff))); Result = Result || (((CharNum >= 0x3099)&&(CharNum <= 0x309a))||((CharNum >= 0xfe20)&&(CharNum <= 0xfe23))); return Result; } function IsCJK(CharNum){ return ((CharNum >= 0x3000)&&(CharNum < 0xd800)); } //SETUP FUNCTIONS //BROWSER WILL REFILL TEXT BOXES FROM CACHE IF NOT PREVENTED function ClearTextBoxes(){ var NList = document.getElementsByTagName('input'); for (var i=0; i -1)||(NList[i].id.indexOf('Gap') > -1)){ NList[i].value = ''; } if (NList[i].id.indexOf('Chk') > -1){ NList[i].checked = ''; } } } //EXTENSION TO ARRAY OBJECT function Array_IndexOf(Input){ var Result = -1; for (var i=0; i 0){ ThisItemScore = Math.floor(State[i][0] * 100) + ''; ThisItemStatus = 'completed'; } else{ ThisItemScore = '0'; ThisItemStatus = 'incomplete'; } API.LMSSetValue('cmi.objectives.' + i + '.score.raw', ThisItemScore); API.LMSSetValue('cmi.objectives.' + i + '.status', ThisItemStatus); API.LMSSetValue('cmi.interactions.' + i + '.weighting', I[i][0]); //We can only use the performance type, because we're storing multiple responses of various types. API.LMSSetValue('cmi.interactions.' + i + '.type', 'performance'); API.LMSSetValue('cmi.interactions.' + i + '.student_response', State[i][5]); } } API.LMSCommit(''); } } //JQUIZ CORE JAVASCRIPT CODE var CurrQNum = 0; var CorrectIndicator = 'Parabéns! resposta correta.'; var IncorrectIndicator = 'Resposta incorreta.'; var YourScoreIs = 'A sua pontuação é'; //New for 6.2.2.0 var CompletedSoFar = 'Perguntas respondidas até o momento'; var ExerciseCompleted = 'Você completou o exercício'; var ShowCompletedSoFar = true; var ContinuousScoring = true; var CorrectFirstTime = 'Questions answered correctly first time: '; var ShowCorrectFirstTime = true; var ShuffleQs = true; var ShuffleAs = true; var DefaultRight = 'Resposta correta'; var DefaultWrong = 'Resposta incorreta'; var QsToShow = 1; var Score = 0; var Finished = false; var Qs = null; var QArray = new Array(); var ShowingAllQuestions = false; var ShowAllQuestionsCaption = 'Show all questions'; var ShowOneByOneCaption = 'Show questions one by one'; var State = new Array(); var Feedback = ''; var TimeOver = false; var strInstructions = ''; var Locked = false; //The following variable can be used to add a message explaining that //the question is finished, so no further marking will take place. var strQuestionFinished = ''; function CompleteEmptyFeedback(){ var QNum, ANum; for (QNum=0; QNum 0){ I[QNum][3][ANum][1] = DefaultRight; } else{ I[QNum][3][ANum][1] = DefaultWrong; } } } } } } function SetUpQuestions(){ var AList = new Array(); var QList = new Array(); var i, j; Qs = document.getElementById('Questions'); while (Qs.getElementsByTagName('li').length > 0){ QList.push(Qs.removeChild(Qs.getElementsByTagName('li')[0])); } var DumpItem = 0; if (QsToShow > QList.length){ QsToShow = QList.length; } while (QsToShow < QList.length){ DumpItem = Math.floor(QList.length*Math.random()); for (j=DumpItem; j<(QList.length-1); j++){ QList[j] = QList[j+1]; } QList.length = QList.length-1; } if (ShuffleQs == true){ QList = Shuffle(QList); } if (ShuffleAs == true){ var As; for (var i=0; i 0){ AList.push(As.removeChild(As.getElementsByTagName('li')[0])); } AList = Shuffle(AList); for (j=0; j= QArray.length)){return;} QArray[CurrQNum].style.display = 'none'; CurrQNum += ChangeBy; QArray[CurrQNum].style.display = ''; //Undocumented function added 10/12/2004 ShowSpecialReadingForQuestion(); SetQNumReadout(); SetFocusToTextbox(); } var HiddenReadingShown = false; function ShowSpecialReadingForQuestion(){ //Undocumented function for showing specific reading text elements which change with each question //Added on 10/12/2004 if (document.getElementById('ReadingDiv') != null){ if (HiddenReadingShown == true){ document.getElementById('ReadingDiv').innerHTML = ''; } if (QArray[CurrQNum] != null){ //Fix for 6.0.4.25 var Children = QArray[CurrQNum].getElementsByTagName('div'); for (var i=0; i= QArray.length){ if (document.getElementById('NextQButton') != null){ document.getElementById('NextQButton').style.visibility = 'hidden'; } } else{ if (document.getElementById('NextQButton') != null){ document.getElementById('NextQButton').style.visibility = 'visible'; } } if (CurrQNum <= 0){ if (document.getElementById('PrevQButton') != null){ document.getElementById('PrevQButton').style.visibility = 'hidden'; } } else{ if (document.getElementById('PrevQButton') != null){ document.getElementById('PrevQButton').style.visibility = 'visible'; } } } var I=new Array(); I[0]=new Array();I[0][0]=100; I[0][1]=''; I[0][2]='0'; I[0][3]=new Array(); I[0][3][0]=new Array('etanol, obtido a partir da decomposi\u00E7\u00E3o da mat\u00E9ria org\u00E2nica por bact\u00E9rias.','',0,0,1); I[0][3][1]=new Array('g\u00E1s natural, formado pela a\u00E7\u00E3o de fungos decompositores da mat\u00E9ria org\u00E2nica.','',0,0,1); I[0][3][2]=new Array('\u00F3leo de xisto, obtido pela decomposi\u00E7\u00E3o da mat\u00E9ria org\u00E2nica pelas bact\u00E9rias anaer\u00F3bias.','',0,0,1); I[0][3][3]=new Array('g\u00E1s metano, obtido pela atividade de bact\u00E9rias anaer\u00F3bias na decomposi\u00E7\u00E3o da mat\u00E9ria org\u00E2nica.','',1,100,1); I[0][3][4]=new Array('g\u00E1s liquefeito de petr\u00F3leo, obtido pela decomposi\u00E7\u00E3o de vegetais presentes nos restos de comida.','',0,0,1); I[1]=new Array();I[1][0]=100; I[1][1]=''; I[1][2]='0'; I[1][3]=new Array(); I[1][3][0]=new Array('Evitando a rota\u00E7\u00E3o de culturas.','',0,0,1); I[1][3][1]=new Array('Liberando o CO2 presente no solo.','',0,0,1); I[1][3][2]=new Array('Aumentando a quantidade de mat\u00E9ria org\u00E2nica do solo.','',1,100,1); I[1][3][3]=new Array('Queimando a mat\u00E9ria org\u00E2nica que se deposita no solo.','',0,0,1); I[1][3][4]=new Array('Atenuando a concentra\u00E7\u00E3o de res\u00EDduos vegetais do solo.','',0,0,1); I[2]=new Array();I[2][0]=100; I[2][1]=''; I[2][2]='0'; I[2][3]=new Array(); I[2][3][0]=new Array('Consumidor prim\u00E1rio, pois ataca diretamente uma esp\u00E9cie herb\u00EDvora.','',0,0,1); I[2][3][1]=new Array('Consumidor secund\u00E1rio, pois se alimenta diretamente dos tecidos da lagarta.','',1,100,1); I[2][3][2]=new Array('Organismo heter\u00F3trofo de primeira ordem, pois se alimenta de p\u00F3len na fase adulta.','',0,0,1); I[2][3][3]=new Array('Organismo heter\u00F3trofo de segunda ordem, pois apresenta o maior n\u00EDvel energ\u00E9tico na cadeia.','',0,0,1); I[2][3][4]=new Array('Decompositor, pois se alimenta de tecidos do interior do corpo da lagarta e a leva \u00E0 morte.','',0,0,1); function StartUp(){ RemoveBottomNavBarForIE(); //If there's only one question, no need for question navigation controls if (QsToShow < 2){ document.getElementById('QNav').style.display = 'none'; } //Stash the instructions so they can be redisplayed strInstructions = document.getElementById('InstructionsDiv').innerHTML; ScormStartUp(); GetUserName(); PreloadImages('../../../../../../Pictures/Ciclo de vida.png'); CompleteEmptyFeedback(); SetUpQuestions(); ClearTextBoxes(); CreateStatusArray(); setTimeout('StartTimer()', 50); //Check search string for q parameter if (document.location.search.length > 0){ if (ShuffleQs == false){ var JumpTo = parseInt(document.location.search.substring(1,document.location.search.length))-1; if (JumpTo <= QsToShow){ ChangeQ(JumpTo); } } } //Undocumented function added 10/12/2004 ShowSpecialReadingForQuestion(); } function ShowHideQuestions(){ FuncBtnOut(document.getElementById('ShowMethodButton')); document.getElementById('ShowMethodButton').style.display = 'none'; if (ShowingAllQuestions == false){ for (var i=0; i -1){ //Add an extra message explaining that the question // is finished if defined by the user if (strQuestionFinished.length > 0){Feedback += '
' + strQuestionFinished;} //Show the feedback ShowMessage(Feedback); //New for 6.2.2.1: If you want to mark an answer as correct even when it's the final choice, uncomment this line. // if (I[QNum][3][ANum][2] >= 1){Btn.innerHTML = CorrectIndicator;}else{Btn.innerHTML = IncorrectIndicator;} return; } //Hide the button while processing Btn.style.display = 'none'; //Increment the number of tries State[QNum][2]++; //Add the percent-correct value of this answer State[QNum][3] += I[QNum][3][ANum][3]; //Store the try number in the answer part of the State array, for tracking purposes State[QNum][1][ANum] = State[QNum][2]; if (State[QNum][5].length > 0){State[QNum][5] += ' | ';} State[QNum][5] += String.fromCharCode(65+ANum); //Should this answer be accepted as correct? if (I[QNum][3][ANum][2] < 1){ //It's wrong //Mark the answer Btn.innerHTML = IncorrectIndicator; //Remove any previous score unless exercise is finished (6.0.3.8+) if (Finished == false){ WriteToInstructions(strInstructions); } //Check whether this leaves just one MC answer unselected, in which case the Q is terminated var RemainingAnswer = FinalAnswer(QNum); if (RemainingAnswer > -1){ //Behave as if the last answer had been selected, but give no credit for it //Increment the number of tries State[QNum][2]++; //Calculate the score for this question CalculateMCQuestionScore(QNum); //Get the overall score and add it to the feedback CalculateOverallScore(); //New for 6.2.2.1 var QsDone = CheckQuestionsCompleted(); if ((ContinuousScoring == true)||(Finished == true)){ Feedback += '
' + YourScoreIs + ' ' + Score + '%.' + '
' + QsDone; WriteToInstructions(YourScoreIs + ' ' + Score + '%.' + '
' + QsDone); } else{ WriteToInstructions(QsDone); } } } else{ //It's right //Mark the answer Btn.innerHTML = CorrectIndicator; //Calculate the score for this question CalculateMCQuestionScore(QNum); //New for 6.2.2.0 var QsDone = CheckQuestionsCompleted(); //Get the overall score and add it to the feedback if (ContinuousScoring == true){ CalculateOverallScore(); if ((ContinuousScoring == true)||(Finished == true)){ Feedback += '
' + YourScoreIs + ' ' + Score + '%.' + '
' + QsDone; WriteToInstructions(YourScoreIs + ' ' + Score + '%.' + '
' + QsDone); } } else{ WriteToInstructions(QsDone); } } //Show the button again Btn.style.display = 'inline'; //Finally, show the feedback ShowMessage(Feedback); //Check whether all questions are now done CheckFinished(); } function CalculateMCQuestionScore(QNum){ var Tries = State[QNum][2] + State[QNum][4]; //include tries and hint penalties var PercentCorrect = State[QNum][3]; var TotAns = GetTotalMCAnswers(QNum); var HintPenalties = State[QNum][4]; //Make sure it's not already complete if (State[QNum][0] < 0){ //Allow for Hybrids if (HintPenalties >= 1){ State[QNum][0] = 0; } else{ //This line calculates the score for this question if (TotAns == 1){ State[QNum][0] = 1; } else{ State[QNum][0] = ((TotAns-((Tries*100)/State[QNum][3]))/(TotAns-1)); } } //Fix for Safari bug added for version 6.0.3.42 (negative infinity problem) if ((State[QNum][0] < 0)||(State[QNum][0] == Number.NEGATIVE_INFINITY)){ State[QNum][0] = 0; } } } function GetTotalMCAnswers(QNum){ var Result = 0; for (var ANum=0; ANum -1){ TotalWeighting += I[QNum][0]; TotalScore += (I[QNum][0] * State[QNum][0]); } } } if (TotalWeighting > 0){ Score = Math.floor((TotalScore/TotalWeighting)*100); } else{ //if TotalWeighting is 0, no questions so far have any value, so //no penalty should be shown. Score = 100; } } //New for 6.2.2.0 function CheckQuestionsCompleted(){ if (ShowCompletedSoFar == false){return '';} var QsCompleted = 0; for (var QNum=0; QNum= 0){ QsCompleted++; } } } //Fixes for 6.2.2.2 if (QsCompleted >= QArray.length){ return ExerciseCompleted; } else{ return CompletedSoFar + ' ' + QsCompleted + '/' + QArray.length + '.'; } } function CheckFinished(){ var FB = ''; var AllDone = true; for (var QNum=0; QNum= 1){ CFT++; } } } FB += '
' + CorrectFirstTime + ' ' + CFT + '/' + QsToShow; } //New for 6.2.2.0 FB += '
' + ExerciseCompleted; WriteToInstructions(FB); Finished == true; window.clearInterval(Interval); if (TimeOver == true){ SetScormTimedOut(); } else{ SetScormComplete(); } TimeOver = true; Locked = true; setTimeout('SendResults(' + Score + ')', 50); Finished = true; Detail = ''; for (QNum=0; QNum 0){ Detail += 'Question #' + (QNum+1) + 'question-trackingQ ' + (QNum+1) + 'QuestionTrackingField' + State[QNum][5] + ''; } } } Detail += ''; setTimeout('Finish()', SubmissionTimeout); } else{ SetScormIncomplete(); } } function TimesUp(){ document.getElementById('Timer').innerHTML = 'Your time is over!'; RefreshImages(); TimeOver = true; Finished = true; ShowMessage('Your time is over!'); //Set all remaining scores to 0 for (var QNum=0; QNum //]]>

Nenhum comentário:

Postar um comentário