
function removePunctationMarksFromUserInput(inputTxt)
{var resTxt=inputTxt;if(resTxt.endsWith('?')||resTxt.endsWith('!')||resTxt.endsWith('.'))
{return resTxt.substr(0,resTxt.length-1);}
return resTxt;}
function resetInputBackground(elem)
{elem.style.background=clozeConfigStandardcolor;}
function correctcloze(sliceId,evaluateExercise)
{var exerciseObjects=eval("exerciseObjects"+sliceId);var exerciseIdArr=eval("exerciseIds"+sliceId);var exerciseIdArrLength=exerciseIdArr.length;var answersCorrectCounter=0;exerciseIdArr.each(function(exerciseId){var exerciseObject=exerciseObjects["item"+exerciseId];var exerciseObjectType=exerciseObject.type;var exerciseElemId='cloze'+sliceId+'item'+exerciseId;var exerciseElem=$(exerciseElemId);var userinput;if(exerciseObjectType=="toinsert")
{userinput=exerciseElem.getValue();userinput=handleUserInput(userinput);}
else if(exerciseObjectType=="toselect")
{var optionsArr=exerciseElem.options;var optionSelected=optionsArr[exerciseElem.selectedIndex];userinput=handleUserInput(optionSelected.innerHTML);}
var solutions=exerciseObject.solutions;var isCorrect=false;for(var j=0;j<solutions.length;j++)
{var solution=solutions[j];if(userinput==solution||removePunctationMarksFromUserInput(userinput)==solution)
{isCorrect=true;answersCorrectCounter++;}}
if(evaluateExercise==0)
{exerciseElem.style.background=clozeConfigStandardcolor;if(isCorrect)
{exerciseElem.style.background=clozeConfigCorrectColor;}
else
{new Effect.Highlight(exerciseElemId,{startcolor:clozeConfigIncorrectStartcolor,endcolor:clozeConfigIncorrectEndcolor,restorecolor:clozeConfigIncorrectRestorecolor,duration:clozeConfigEffectDuration});}}
else if(evaluateExercise==1)
{showExerciseRepeatLink(sliceId);var styleClass="";var explanation="";var isEmpty;if(exerciseObjectType=="toinsert")
{isEmpty=userinput.blank();}
else if(exerciseObjectType=="toselect")
{isEmpty=(optionSelected.value==0);}
if(isCorrect)
{styleClass="correct";Element.replace(exerciseElem,'<span class="cloze-correct-feedback">'+userinput+'</span>');explanation=exerciseObject.feedback.correct;}
else
{styleClass="incorrect";var userinputOutput=userinput;if(isEmpty)
{userinputOutput="---";}
Element.replace(exerciseElem,'<span class="cloze-incorrect-feedback">'+userinputOutput+'</span>');explanationTemp=exerciseObject.feedback.incorrect;if(explanationTemp!=undefined)
{explanation=explanationTemp;}
if(isEmpty)
{styleClass="empty";explanationTemp=exerciseObject.feedback.empty;if(explanationTemp!=undefined)
{explanation+='&nbsp;'+explanationTemp;}}
else
{var exacts=exerciseObject.feedback.exacts;var isExact=false;if(exacts!=undefined)
{for(var j=0;j<exacts.length;j++)
{var exact=exacts[j];var exactCondition=exact.condition;if(exerciseObjectType=="toinsert")
{isExact=(exactCondition==userinput);}
else if(exerciseObjectType=="toselect")
{isExact=(exactCondition==optionSelected.value);}
if(isExact)
{explanationTemp=exact.content;explanation+='&nbsp;'+explanationTemp;break;}}}
if(isExact==false);{if(exerciseObjectType=="toinsert")
{var numWord=getWordCount(userinput);var hasWordcount=false;var wordcounts=exerciseObject.feedback.wordcount;if(wordcounts!=undefined)
{for(var j=0;j<wordcounts.length;j++)
{var wordcount=wordcounts[j];var wordcountCondition=wordcount.condition;if(wordcountCondition==numWord)
{hasWordcount=true;explanationTemp=wordcount.content;if(explanationTemp!=undefined)
{explanation+='&nbsp;'+explanationTemp;}}}}
if(hasWordcount==false)
{var numChar=userinput.length;var charcounts=exerciseObject.feedback.charcount;if(charcounts!=undefined)
{for(var j=0;j<charcounts.length;j++)
{var charcount=charcounts[j];var charcountCondition=charcount.condition;if(charcountCondition==numChar)
{explanationTemp=charcount.content;if(explanationTemp!=undefined)
{explanation+='&nbsp;'+explanationTemp;}}}}}}}}}
exerciseElem.className=styleClass;$('explanation'+sliceId+'item'+exerciseId).update('<div class="'+styleClass+'">'+explanation+'</div>');$('explanationwrapper'+sliceId+'item'+exerciseId).style.display="inline";var hintwrapper=$("cloze"+sliceId+'item'+exerciseId+'hintwrapper');hintwrapper.style.whiteSpace="normal";}});if(evaluateExercise==0)
{handleCorrectFunctionCounterElem(sliceId);if(answersCorrectCounter==exerciseIdArrLength)
{correctcloze(sliceId,1);}}
else if(evaluateExercise==1)
{var overallresulttext=getOverallResultExplanationText(answersCorrectCounter,exerciseIdArrLength,sliceId);showOverallResult(overallresulttext,sliceId);hideControlButtons(sliceId);var visualcombinationElem=$('cloze-'+sliceId).down('.visualcombination');if(visualcombinationElem!==undefined)
{visualcombinationElem.removeClassName('visualcombination');}}
$('cloze-'+sliceId).scrollTo();return;}
