var logSeq=1;

/**
* Logs log in
*/
function logLogIn(probRef) {
	var logaction="PROBLEM_START";
	var logtext="<tool_message><semantic_event id='js"+logSeq+"' name='"+logaction+"'><description>"
		+"The starts the problem "+probRef+"</description>"
		+"<problem_start_operation title='"+probRef+"' /></semantic_event><event_descriptor><action></action><selection>"
		+"</selection><input></input></event_descriptor></tool_message>";
		
	if(window.logUserAction) logUserAction(logaction, "text/xml", logtext);
	logSeq++;
}

/**
* Logs scaffolding
*/
function logScaffold(probRef) {
	var logaction="PROBLEM_SCAFFOLD";
	var logtext="<tool_message><semantic_event id='js"+logSeq+"' name='"+logaction+"'><description>"
		+"The users asked for the scaffolded version of "+probRef+"</description>"
		+"<problem_scaffold_operation title='"+probRef+"' /></semantic_event><event_descriptor><action></action><selection>"
		+"</selection><input></input></event_descriptor></tool_message>";
		
	if(window.logUserAction) logUserAction(logaction, "text/xml", logtext);
	logSeq++;
}

/**
* Logs form check
*/
function logFormCheck(formId,nAttempts,userAnswer,correctAnswer,feedbackMessage,isCorrect,errorType) {
	var logaction="FORM_CHECK";
	var logtext="<tool_message><semantic_event id='js"+logSeq+"' name='"+logaction+"'><description>"
		+(isCorrect?"Correct":"Wrong")+" checking of the student's answer in form "+formId
		+"(attempt "+nAttempts+"). The submitted answer is "+ userAnswer+ ". ";
	if (correctAnswer!="") logtext+="The correct value is "+correctAnswer+". "
	if (feedbackMessage!="") logtext+="The system answers: "+feedbackMessage+". "
	logtext+="<description><form_check_operation form_id='"+formId
			+"' n_attempt='"+nAttempts+"' is_correct='"+isCorrect+"' error_type='"+errorType+"' submitted='"+userAnswer+"' "
			+"expected='"+correctAnswer+"'/></semantic_event><event_descriptor><action></action><selection>"
			+"</selection><input></input></event_descriptor></tool_message>";
		
	if(window.logUserAction) logUserAction(logaction, "text/xml", logtext);
	logSeq++;
}

/**
* Logs hint request
*/
function logHint(formId,hintIndex,hintText) {
	var logaction="HINT_DELIVER";
	var logtext="<tool_message><semantic_event id='js"+logSeq+"' name='"+logaction+"'><description>"
		+"Hint "+hintIndex+" of form "+formId+ " delivered: "+hintText;
	logtext+="<description><hint_deliver_operation form_id='"+formId
			+"' hint_index='"+hintIndex+"' hint_text='"+hintText+"' />"+
			"</semantic_event><event_descriptor><action></action><selection>"
			+"</selection><input></input></event_descriptor></tool_message>";
		
	if(window.logUserAction) logUserAction(logaction, "text/xml", logtext);
	logSeq++;
}

/**
* Logs form check
*/
function logTextboxChange(formId,elementId,userInput,correctInput,feedbackMessage,isCorrect,errorType) {
	var logaction="TEXTBOX_CHANGE";
	var logtext="<tool_message><semantic_event id='js"+logSeq+"' name='"+logaction+"'><description>"
		+(isCorrect?"Correct":"Wrong")+" input in element "+elementId+" of form "+formId
		+". The submitted answer is "+ userInput+ ". ";
	if (correctInput!="") logtext+="The correct value is "+correctInput+". "
	if (feedbackMessage!="") logtext+="The system answers: "+feedbackMessage+". "
	logtext+="<description><textbox_change_operation element_id='"+formId+"/"+elementId
			+"' is_correct='"+isCorrect+"' error_type='"+errorType+"' submitted='"+userInput+"' "
			+"expected='"+correctInput+"'/></semantic_event><event_descriptor><action></action><selection>"
			+"</selection><input></input></event_descriptor></tool_message>";
		
	if(window.logUserAction) logUserAction(logaction, "text/xml", logtext);
	logSeq++;
}

