HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
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