File: D:/HostingSpaces/JTent/tentje.com/wwwroot/2015_02_13/layout/tsg_mobile/content/js/template_stamp.js
var liOKLeft = null;
var liOKTop = null;
var liFeedbackLeft = null;
var liFeedbackTop = null;
var laStamps = new Array();
var loFillers = new Array();
var lsSelectedStamp = "";
var liSelectedStamp = 0;
var iResult = 0;
var liTries = 0;
var bEval = false;
var lbEvaluated = false;
var lbOKVisible = true;
function addStamp(psID, psFile, psColor) {
loOtherScreenObjects.push({'type':'Stamp','obj':document.getElementById(psID)});
laStamps[laStamps.length] = new Array(psID, psFile, psColor);
}
function selectStamp(psID, psFile, psFiller) {
if (lbEvaluated == true)
return;
for (var i=0; i<laStamps.length; i++) {
document.getElementById(laStamps[i][0]).src = laStamps[i][1];
}
document.getElementById(psID).src = psFile;
lsSelectedStamp = psFiller;
liSelectedStamp = parseInt(psID.substring(1));
}
function getColor(psID, psPos) {
if (lbEvaluated == true)
return;
if ((obj = document.getElementById("filler_tg" + psID + "_" + psPos)) != null) {
obj.src = lsSelectedStamp;
}
for (var i=0; i<loFillers.length; i++) {
for (var j=0; j<loFillers[i][1].length; j++) {
if ((obj = document.getElementById("marker_tg" + (i+1) + "_" + (j+1))) != null)
obj.style.visibility = "hidden";
}
}
loFillers[psID - 1][2][psPos - 1] = liSelectedStamp;
}
function initInteraction() {
// OK- und Loesungsbutton positionieren, wenn left und top in pagesettings angegeben
if (liOKLeft != null) {
loOkButton.shiftTo(liOKLeft,liOKTop);
loSolution.shiftTo(liOKLeft,liOKTop);
} else {
loOkButton.shiftTo(giStampOKLeft,giStampOKTop);
loSolution.shiftTo(giStampOKLeft,giStampOKTop);
}
// Alle Feedbacks positionieren, wenn left und top in pagesettings angegeben
addFeedback('FBsummary');
if (liFeedbackLeft != null) {
for (i=0; i<laFeedbacks.length; i++) {
document.getElementById(laFeedbacks[i]).style.left = liFeedbackLeft;
document.getElementById(laFeedbacks[i]).style.top = liFeedbackTop;
}
}
// Loeschwerkzeug definieren
liSelectedStamp = liEraser;
for (var i=0; i<loFillers.length; i++) {
loFillers[i][2] = new Array();
loOtherScreenObjects.push({'type':'StampText','obj':document.getElementById(loFillers[i][0])});
for (var j=0; j<loFillers[i][1].length; j++) {
loFillers[i][2][j] = liSelectedStamp;
loOtherScreenObjects.push({'type':'StampTarget','obj':document.getElementById('filler_'+loFillers[i][0]+'_'+(j+1))});
loOtherScreenObjects.push({'type':'StampMarker','obj':document.getElementById('marker_'+loFillers[i][0]+'_'+(j+1))});
}
}
}
var liMaxTrue;
function evaluate() {
liMaxTrue = 0;
var liTrue = 0;
var liFalse = 0;
var lsResult = '';
liTries++;
resetPageResult();
for (var i=0; i<loFillers.length; i++) {
for (var j=0; j<loFillers[i][2].length; j++) {
if (loFillers[i][1][j] != liEraser)
liMaxTrue++;
var lbFound = false;
if (loFillers[i][1][j] == liEraser && loFillers[i][2][j] == liEraser) {
// mach nix
} else {
for (var k=0; k<loFillers[i][1].length; k++) {
if (loFillers[i][1][k] == loFillers[i][2][j]) {
if (loFillers[i][2][j] != liEraser) {
lbFound = true;
}
}
}
}
if (lbFound == true) {
if ((obj = document.getElementById("marker_tg" + (i+1) + "_" + (j+1))) != null) {
obj.src = '../../../../../layout/tsg_mobile/content/globalimages/mark_true.gif';
obj.style.visibility = 'visible';
}
lsResult += '1';
liTrue++;
} else {
if (loFillers[i][2][j] != liEraser) {
if ((obj = document.getElementById("marker_tg" + (i+1) + "_" + (j+1))) != null) {
obj.src = '../../../../../layout/tsg_mobile/content/globalimages/mark_false.gif';
obj.style.visibility = 'visible';
}
lsResult += '0';
liFalse++
} else {
if ((obj = document.getElementById("marker_tg" + (i+1) + "_" + (j+1))) != null) {
obj.src = '../../../../../layout/tsg_mobile/content/globalimages/1by1.gif';
obj.style.visibility = 'hidden';
}
}
}
}
}
if (liTrue == liMaxTrue && liFalse == 0) { // Alles Richtig
showFeedback("correct",liTries);
} else if (liTrue == liMaxTrue && liFalse != 0) {
showFeedback("all_correct_and_false",liTries);
} else if (liTrue != liMaxTrue && liFalse != 0) {
showFeedback("correct_and_false",liTries);
// ASH, 0002739
} else if (liTrue != liMaxTrue && liFalse == 0) {
showFeedback("correct_not_all",liTries);
// END ASH
} else {
showFeedback("false",1);
}
if (liTrue == liMaxTrue && liFalse == 0) { // Alles Richtig
lbEvaluated = true;
// OK-Button ausblenden
loOkButton.hide();
if (parent.goPageItem.pagetype != 'tp') {
if (gbShowSolutionOnLastEval) {
// Loesung anzeigen
finishExercise(lsResult, liTries);
showSolution();
return;
} else {
disableCursor();
}
}
// Weiter-Button freischalten
parent.goNext.enable();
// Cursor setzen
disableCursor();
} else if (liTries < liMaxTries) {
// Anzahl der Versuche kleiner maximaler Anzahl der Versuche
lbEvaluated = false;
} else {
// Anzahl der maximalen Versuche erreicht
lbEvaluated = true;
// OK-Button ausblenden
loOkButton.hide();
if (parent.goPageItem.pagetype != 'tp') {
if (gbShowSolutionOnLastEval) {
// Loesung anzeigen
finishExercise('', liTries);
showSolution();
return;
} else {
loSolution.show();
}
}
// Weiter-Button freischalten
parent.goNext.enable();
// Cursor setzen
disableCursor();
}
finishExercise(lsResult, liTries);
}
function resetPageResult() {
parent.goPageItem.result = '';
parent.goPageItem.score = 0;
parent.goPageItem.solution = 0;
}
function finishExercise(psResult, piTries) {
// Score ermitteln
var liScore = 0;
if (laExerciseScore[piTries] != null && laExerciseScore[piTries] != '') {
// Wenn es Punkte fuer die Bearbeitung der Aufgabe gibt
if (psResult.indexOf("0") == -1 && psResult.length == liMaxTrue) {
// Wenn alles richtig
liScore = parseInt(laExerciseScore[piTries]);
}
}
// Seitenstatus setzen:
// 0 = nicht richtig geloest
// 1 = richtig geloest im 1. Versuch
// 2 = richtig geloest im n. Versuch
var liSolution = 0;
if (psResult.indexOf("0") == -1 && psResult.length == liMaxTrue) {
if (piTries > 1) {
liSolution = 2;
} else {
liSolution = 1;
}
}
// Seitenstatus setzen
parent.goPageItem.vis = true;
parent.goPageItem.result = psResult;
parent.goPageItem.solution = liSolution;
parent.goPageItem.score = liScore;
//alert(liScore);
}
function showFeedback(psResult,piTries) {
var lsResult = psResult;
for (i=0; i<laFeedbacks.length; i++) {
getScreenTextObject(laFeedbacks[i]).hide();
}
if (lsResult == "all_correct_and_false") {
if (document.getElementById('FB'+piTries.toString()+lsResult) == null) {
lsResult = "correct_and_false";
if (document.getElementById('FB'+piTries.toString()+lsResult) == null) {
lsResult = "false";
}
}
} else if (lsResult == 'correct_and_false' && document.getElementById('FB'+piTries.toString()+lsResult) == null) {
lsResult = 'false';
} else if (lsResult == "correct_not_all" && document.getElementById('FB'+piTries.toString()+lsResult) == null) {
lsResult = 'false';
}
// Feedback hat selbe Position wie Anweisung; deshalb Anweisung ausblenden.
hideObjectsOfType('TextAnweisung');
// Feedback-Text anzeigen
getScreenTextObject('FB'+piTries.toString()+lsResult).show();
// Feedback-Grafik anzeigen, wenn vorhanden
var lsFeedbackImage = 'g'+lsPageName.substr(1)+'fb'+piTries.toString()+lsResult;
showObj(lsFeedbackImage);
// Feedback-Audio abspielen
var lsFeedbackAudio = 'a'+lsPageName.substr(1)+'fb'+piTries.toString()+lsResult;
if (loAudios[lsFeedbackAudio] != null) {
playAudio(lsFeedbackAudio, 'false');
}
}
function showSolution(){
if (!gbShowSolutionOnLastEval) {
// Alle Feedbacks ausblenden
for (i=0; i<laFeedbacks.length; i++) {
getScreenTextObject(laFeedbacks[i]).hide();
}
// Summary-Feedback anzeigen
if (document.getElementById('FBsummary') != null) {
getScreenTextObject('FBsummary').show();
}
}
disableCursor();
for (var i=0; i<loFillers.length; i++) {
for (var j=0; j<loFillers[i][1].length; j++) {
if ((obj = document.getElementById("marker_tg" + (i+1) + "_" + (j+1))) != null) {
obj.style.visibility = 'hidden';
}
if ((obj = document.getElementById("filler_tg" + (i+1) + "_" + (j+1))) != null) {
if ((obj1 = laStamps[loFillers[i][1][j] - 1]) != null)
obj.src = obj1[1];
}
}
}
// Button "Loesung" ausblenden;
loSolution.hide();
}
function disableCursor(){
for (var i=0; i<loFillers.length; i++) {
for (var j=0; j<loFillers[i][1].length; j++) {
if ((obj = document.getElementById("filler_tg" + (i+1) + "_" + (j+1))) != null) {
if ((obj1 = laStamps[loFillers[i][1][j] - 1]) != null)
obj.style.cursor = 'default';
}
}
}
}
function showText(psID) {
psText = '';
if (document.getElementById('Over'+psID) != null) {
psText = document.getElementById('Over'+psID).innerHTML;
lsText = '<table width="'+giStampMouseOverWidth+'" cellspacing="0" cellpadding="'+giStampMouseOverMargin+'" class="MouseOver">';
lsText += '<tr><td>'+psText+'</td></tr></table>';
document.getElementById('LayerText').innerHTML = lsText;
}
if (psText != '') {
document.onmousemove = moveText;
} else {
document.getElementById('LayerText').style.visibility = 'hidden';
document.onmousemove = null;
}
}
function moveText(e) {
document.getElementById('LayerText').style.visibility = 'visible';
var liLeft = getMousePos(e).x + 15;
var liTop = getMousePos(e).y + 15;
var liWidth = document.getElementById('LayerText').clientWidth;
var liHeight = document.getElementById('LayerText').clientHeight;
if (liLeft+liWidth > giContentWidth) {
liLeft = getMousePos(e).x - liWidth - 5;
}
if (liTop+liHeight > giContentHeight) {
liTop = getMousePos(e).y - liHeight - 5;
}
document.getElementById('LayerText').style.left = liLeft;
document.getElementById('LayerText').style.top = liTop;
}
// jw 2789 wird nur von Editor aufgerufen, um zu ueberpruefen, ob ein valider Stempel angegeben wurde
function isValidStamp(psStamp){
var lbFound = false;;
for(var i=0;i<laStamps.length;i++){
if(psStamp == laStamps[i][0]){
lbFound = true;
break;
}
}
return lbFound;
}
// end jw