diff --git a/src/main/webapp/static/js/tinymce4/tinymce/plugins/olatqti/plugin.js b/src/main/webapp/static/js/tinymce4/tinymce/plugins/olatqti/plugin.js
index 8b42c57144cd3fe42b13a1204380122c7be57f48..c9e0e52ac34c3717edc6794d5082111dd25a6db3 100644
--- a/src/main/webapp/static/js/tinymce4/tinymce/plugins/olatqti/plugin.js
+++ b/src/main/webapp/static/js/tinymce4/tinymce/plugins/olatqti/plugin.js
@@ -14,7 +14,7 @@
 				author : 'frentix GmbH',
 				authorurl : 'http://www.frentix.com',
 				infourl : 'http://www.frentix.com',
-				version : '1.2.5'
+				version : '1.2.6'
 			};
 		},
 
@@ -226,6 +226,12 @@
 						var checked = jQuery(el).attr('data-qti-checked');
 						jQuery(el).prepend("<a class='o_check " + ("true" == checked ? "checked" : "") + "' contenteditable='false'><i contenteditable='false'> </i></a>");
 					}
+					
+					//remove the placeholder for Firefox
+					if(jQuery("span[contenteditable='true']", el).text() == "x-y-x" && jQuery(el).attr('data-qti-empty') == "true") {
+						jQuery("span[contenteditable='true']", el).text("");
+						jQuery(el).attr('data-qti-empty', 'false');
+					}
 
 					jQuery("a.o_check", jQuery(el)).each(function(aIndex, aEl) {
 						var ev = jQuery._data(aEl, 'events');
@@ -249,6 +255,12 @@
 						jQuery(el).append("<a class='o_ops' contenteditable='false'><i contenteditable='false'> </i></a>");
 					}
 					
+					//remove the placeholder for Firefox
+					if(jQuery("span[contenteditable='true']", el).text() == "x-y-x" && jQuery(el).attr('data-qti-empty') == "true") {
+						jQuery("span[contenteditable='true']", el).text("");
+						jQuery(el).attr('data-qti-empty', 'false');
+					}s
+					
 					jQuery("a.o_ops", jQuery(el)).each(function(aIndex, aEl) {
 						var ev = jQuery._data(aEl, 'events');
 						if(ev && ev.click) {
@@ -505,6 +517,13 @@
 					var hotId = 'ht' + guid();
 					jQuery(el).attr('data-qti-identifier', hotId);
 					jQuery(el).attr('data-copy', 'needlistener');
+					jQuery(el).attr('data-copy-empty', 'false');
+					
+					var empty = jQuery("span[contenteditable='true']", el).text();
+					if(empty == null || empty.length == 0) {
+						jQuery("span[contenteditable='true']", el).text("x-y-x");
+						jQuery(el).attr('data-copy-empty', 'true');
+					}
 					replace = true;
 				});
 				
@@ -512,6 +531,8 @@
 					var entryId = 'te' + guid();
 					jQuery(el).attr('data-qti-response-identifier', entryId);
 					jQuery(el).attr('data-copy', 'needlistener');
+					jQuery(el).attr('data-copy-empty', 'false');
+					
 					var gapType = jQuery(el).attr("data-qti-gap-type");
 					var solution = jQuery(el).attr("data-qti-solution");
 					var ffxhrevent = ed.getParam("ffxhrevent");
@@ -519,6 +540,13 @@
 							'cmd', 'copy-gapentry', 'responseIdentifier', entryId, 'newEntry', true, 'selectedText', solution, 'gapType', gapType);
 					//add it because tiny delete it
 					jQuery("a.o_ops", el).append(jQuery("<i class='visible'>&nbsp;</i>"));
+					
+					var empty = jQuery("span[contenteditable='true']", el).text();
+					if(empty == null || empty.length == 0) {
+						jQuery("span[contenteditable='true']", el).text("x-y-x");
+						jQuery(el).attr('data-copy-empty', 'true');
+					}
+					
 					replace = true;
 				});
 				
diff --git a/src/main/webapp/static/js/tinymce4/tinymce/plugins/olatqti/plugin.min.js b/src/main/webapp/static/js/tinymce4/tinymce/plugins/olatqti/plugin.min.js
index 4fbfe839ab09a9927082d88832040e073650c4de..bb70fc83724805d7b59b7924cc301da0042b4333 100644
--- a/src/main/webapp/static/js/tinymce4/tinymce/plugins/olatqti/plugin.min.js
+++ b/src/main/webapp/static/js/tinymce4/tinymce/plugins/olatqti/plugin.min.js
@@ -1 +1 @@
-(function(){tinymce.create("org.olat.ims.qti21.ui.editor",{getInfo:function(){return{longname:"OpenOLATQTI",author:"frentix GmbH",authorurl:"http://www.frentix.com",infourl:"http://www.frentix.com",version:"1.2.5"}},createControl:function(n,cm){return null},init:function(ed,url){var $=ed.$,selection=ed.selection;var cachedTrans,cachedCoreTrans;var cachedHelp;var lastSelectedGap,lastSelectedHottext;function translator(){if(cachedTrans){return cachedTrans}var mainWin=o_getMainWin();if(mainWin){cachedTrans=jQuery(document).ooTranslator().getTranslator(mainWin.o_info.locale,"org.olat.ims.qti21.ui.editor")}else{cachedTrans={translate:function(key){return key}}}return cachedTrans}function coreTranslator(){if(cachedCoreTrans){return cachedCoreTrans}var mainWin=o_getMainWin();if(mainWin){cachedCoreTrans=jQuery(document).ooTranslator().getTranslator(mainWin.o_info.locale,"org.olat.core")}else{cachedCoreTrans={translate:function(key){return key}}}return cachedCoreTrans}function showTextDialog(e){showDialog(e,"string")}function showNumericalDialog(e){showDialog(e,"float")}function showDialog(e,gapType){var ffxhrevent=ed.getParam("ffxhrevent");if(typeof lastSelectedGap!="undefined"){var textEntryEl=jQuery(lastSelectedGap).closest("span[data-qti='textentryinteraction']");var responseIdentifier=textEntryEl.attr("data-qti-response-identifier");var solution=jQuery(textEntryEl).children().html();var emptySolution=(solution==""||solution=="&nbsp;"?"true":"false");o_ffXHREvent(ffxhrevent.formNam,ffxhrevent.dispIdField,ffxhrevent.dispId,ffxhrevent.eventIdField,2,false,false,false,"cmd","gapentry","responseIdentifier",responseIdentifier,"selectedText",solution,"emptySolution",emptySolution,"newEntry",false)}else{var counter=1;var newSelectedText=ed.selection.getContent({format:"text"});tinymce.each(ed.dom.select("span[data-qti]"),function(node){var identifier=jQuery(node).attr("data-qti-response-identifier");if(identifier.lastIndexOf("RESPONSE_",0)==0){var id=parseInt(identifier.substring(9,identifier.length));if(id>counter){counter=id}}});var responseIdentifier="RESPONSE_"+(counter+1);if(typeof newSelectedText==="undefined"||newSelectedText.length==0){newSelectedText="gap"}var placeholder=createTextEntryPlaceholder(responseIdentifier,newSelectedText,"textentryinteraction",gapType);var holderHtml=new tinymce.html.Serializer().serialize(placeholder);ed.insertContent(holderHtml);o_ffXHREvent(ffxhrevent.formNam,ffxhrevent.dispIdField,ffxhrevent.dispId,ffxhrevent.eventIdField,2,false,false,false,"cmd","gapentry","responseIdentifier",responseIdentifier,"newEntry",true,"selectedText",newSelectedText,"gapType",gapType)}ed.setDirty(true)}function guid(){function s4(){return Math.floor((1+Math.random())*65536).toString(16).substring(1)}return s4()+s4()+s4()+s4()+s4()+s4()+s4()}function createHottext(e){var responseIdentifier;if(typeof lastSelectedHottext!="undefined"){responseIdentifier=jQuery(lastSelectedHottext).data("data-identifier")}else{var counter=1;var selectedText=ed.selection.getContent({format:"text"});var preSelect=false;if(selectedText==null||selectedText.length==0){selectedText="text";preSelect=true}var identifier="ht"+guid();var placeholder=createHottextPlaceholder(identifier,selectedText,false,"hottext");var holderHtml=new tinymce.html.Serializer().serialize(placeholder);ed.insertContent(holderHtml);if(preSelect){var selectedNode=ed.dom.select("span[data-qti-identifier="+identifier+"] span[contenteditable=true]");ed.selection.select(selectedNode[0],true)}jQuery("span.hottext[data-qti-identifier='"+identifier+"'] a",ed.getBody()).each(function(index,el){correctHottextEvent(el)})}}ed.addButton("olatqtifibtext",{title:translator().translate("new.fib"),icon:"gaptext",stateSelector:["span[data-qti-gap-type=string]"],onclick:showTextDialog});ed.addButton("olatqtifibnumerical",{title:translator().translate("new.fib")+" Numerical",icon:"gapnumerical",stateSelector:["span[data-qti-gap-type=float]"],onclick:showNumericalDialog});ed.addButton("olatqtihottext",{title:translator().translate("new.hottext"),icon:"hottext",stateSelector:["span[data-qti=hottext]"],onclick:createHottext});ed.addButton("editgap",{title:"edit",icon:"edit",onclick:showDialog});ed.addMenuItem("olatqtifibtext",{text:translator().translate("new.fib"),icon:"gapnumerical",stateSelector:["span[data-qti-gap-type=string]"],onclick:showNumericalDialog});ed.addMenuItem("olatqtifibnumerical",{text:translator().translate("new.fib.numerical")+" Numerical",icon:"gaptext",stateSelector:["span[data-qti-gap-type=float]"],onclick:showTextDialog});ed.addMenuItem("olatqtihottext",{text:translator().translate("new.hottext"),icon:"hottext",stateSelector:["span[data-qti=hottext]"],onclick:createHottext});ed.on("NodeChange",function(e){if(lastSelectedGap&&lastSelectedGap.id!=e.element.src){lastSelectedGap=undefined}if(lastSelectedHottext&&lastSelectedHottext.id!=e.element.src){lastSelectedHottext=undefined}if(ed.dom.is(e.element,"span[data-qti=textentryinteraction]")){lastSelectedGap=e.element}else{if(jQuery(e.element).parent("span[data-qti='textentryinteraction']").size()>0){lastSelectedGap=e.element}}if(jQuery(e.element).parent("span.hottext").size()>0){lastSelectedHottext=e.element}jQuery(e.element).parent("span[data-qti-gap-type=float]").each(function(index,el){if(jQuery(e.element).prop("tagName").toLowerCase()=="span"){var solution=jQuery(e.element).text();if(!jQuery.isNumeric(solution)){jQuery(el).addClass("error")}else{jQuery(el).removeClass("error")}}});jQuery("span.hottext[data-copy='needlistener']",e.element).each(function(index,el){if(jQuery("a.o_check",el).size()==0){var checked=jQuery(el).attr("data-qti-checked");jQuery(el).prepend("<a class='o_check "+("true"==checked?"checked":"")+"' contenteditable='false'><i contenteditable='false'> </i></a>")}jQuery("a.o_check",jQuery(el)).each(function(aIndex,aEl){var ev=jQuery._data(aEl,"events");if(ev&&ev.click){}else{correctHottextEvent(aEl);if(jQuery(aEl).hasClass("checked")){var ffxhrevent=ed.getParam("ffxhrevent");var identifier=jQuery(el).data("qti-identifier");o_ffXHRNFEvent(ffxhrevent.formNam,ffxhrevent.dispIdField,ffxhrevent.dispId,ffxhrevent.eventIdField,2,"cmd","hottext","identifier",identifier,"correct","true")}}})});jQuery("span.textentryinteraction[data-copy='needlistener']",e.element).each(function(index,el){if(jQuery("a.o_ops",el).size()==0){jQuery(el).append("<a class='o_ops' contenteditable='false'><i contenteditable='false'> </i></a>")}jQuery("a.o_ops",jQuery(el)).each(function(aIndex,aEl){var ev=jQuery._data(aEl,"events");if(ev&&ev.click){}else{textEntryEvent(el)}})})});function createTextEntryPlaceholder(responseIdentifier,content,interaction,gapType){var placeholder=new tinymce.html.Node("span",1);placeholder.attr({"data-qti":interaction,"data-qti-response-identifier":responseIdentifier,"data-qti-solution":content,"data-qti-gap-type":gapType,"data-mce-placeholder":"","data-textentryinteraction":"empty","class":interaction,contenteditable:"false"});var readonly=ed.getParam("readonly");var editable=readonly=="1"?"false":"true";var contentholder=new tinymce.html.Node("span",1);contentholder.attr({contenteditable:editable});var textNode=new tinymce.html.Node("#text",3);textNode.raw=true;textNode.value=content;contentholder.append(textNode);placeholder.append(contentholder);var aHolder=new tinymce.html.Node("a",1);aHolder.attr({contenteditable:"false","class":"o_ops"});var aTextHolder=new tinymce.html.Node("i",1);aTextHolder.attr({contenteditable:"false"});var aTextNode=new tinymce.html.Node("#text",3);aTextNode.raw=true;aTextNode.value="&nbsp;";aTextHolder.append(aTextNode);aHolder.append(aTextHolder);placeholder.append(aHolder);return placeholder}function createHottextPlaceholder(identifier,content,correct,interaction){var placeholder=new tinymce.html.Node("span",1);placeholder.attr({"data-qti":interaction,"data-qti-identifier":identifier,"data-qti-checked":(correct?"true":"false"),"class":interaction,contenteditable:"false"});var readonly=ed.getParam("readonly");var editable=readonly=="1"?"false":"true";var checkHolder=new tinymce.html.Node("a",1);checkHolder.attr({contenteditable:"false","class":"o_check "+(correct?"checked":"")});var aTextHolder=new tinymce.html.Node("i",1);aTextHolder.attr({contenteditable:"false"});var aTextNode=new tinymce.html.Node("#text",3);aTextNode.raw=true;aTextNode.value="&nbsp;";aTextHolder.append(aTextNode);checkHolder.append(aTextHolder);placeholder.append(checkHolder);var contentholder=new tinymce.html.Node("span",1);contentholder.attr({contenteditable:editable});if(typeof content==="string"){var textNode=new tinymce.html.Node("#text",3);textNode.raw=true;textNode.value=content;contentholder.append(textNode)}else{var node,collection=[];for(node=content.firstChild;node;node=node.walk()){if(node.parent==content){collection.push(node)}if(node==content.lastChild){break}}for(var i=0;i<collection.length;i++){contentholder.append(collection[i])}}placeholder.append(contentholder);return placeholder}function correctHottextEvent(linkEl){jQuery(linkEl).click(function(){var ffxhrevent=ed.getParam("ffxhrevent");var jLinkEl=jQuery(linkEl);var identifier=jLinkEl.parent("span.hottext").data("qti-identifier");o_ffXHRNFEvent(ffxhrevent.formNam,ffxhrevent.dispIdField,ffxhrevent.dispId,ffxhrevent.eventIdField,2,"cmd","hottext","identifier",identifier,"correct",jLinkEl.hasClass("checked")?"false":"true");if(jLinkEl.hasClass("checked")){jLinkEl.removeClass("checked");jLinkEl.parent("span.hottext").attr("data-qti-checked","false")}else{jLinkEl.addClass("checked");jLinkEl.parent("span.hottext").attr("data-qti-checked","true")}ed.setDirty(true)})}function textEntryEvent(textEntryEl){jQuery("a.o_ops",textEntryEl).click(function(){var ffxhrevent=ed.getParam("ffxhrevent");var responseIdentifier=jQuery(textEntryEl).attr("data-qti-response-identifier");var solution=jQuery(textEntryEl).children().html();var emptySolution=(solution==""||solution=="&nbsp;"?"true":"false");o_ffXHREvent(ffxhrevent.formNam,ffxhrevent.dispIdField,ffxhrevent.dispId,ffxhrevent.eventIdField,2,false,false,false,"cmd","gapentry","responseIdentifier",responseIdentifier,"selectedText",solution,"emptySolution",emptySolution);ed.setDirty(true)})}function getTextContent(node){var content="";var walker=new tinymce.dom.TreeWalker(node);var textNode;while((textNode=walker.next())){if(textNode.type==3){if(content.length>0){content+=" "}content+=textNode.value}else{if(textNode.nodeType==3){if(content.length>0){content+=" "}content+=textNode.nodeValue}}}return content}ed.addCommand("qtiUpdateTextEntry",function(ui,value){var val=eval(value);var responseIdentifier=val.responseIdentifier;var solution=val["data-qti-solution"];jQuery("span[data-qti-response-identifier='"+responseIdentifier+"']>span",ed.getBody()).each(function(index,el){jQuery(el).text(solution)});jQuery("span[data-qti-response-identifier='"+responseIdentifier+"']",ed.getBody()).each(function(index,el){textEntryEvent(jQuery(el))})});ed.on("init",function(){if(ed.settings.content_css!==false){ed.dom.loadCSS(url+"/css/content.css")}jQuery(".textentryinteraction",ed.getBody()).each(function(index,el){textEntryEvent(el)});jQuery("span.hottext a.o_check",ed.getBody()).each(function(index,el){correctHottextEvent(el)})});ed.on("preInit",function(){ed.parser.addNodeFilter("textentryinteraction,hottext",function(nodes){var i=nodes.length,node,placeHolder,videoScript;while(i--){node=nodes[i];if(node.name=="textentryinteraction"){var responseIdentifier=node.attr("responseidentifier");var gapType=node.attr("openolattype");var solution=node.attr("data-qti-solution");if(typeof solution==="undefined"){solution="&nbsp;"}if(typeof gapType==="undefined"){gapType="string"}var placeHolder=createTextEntryPlaceholder(responseIdentifier,solution,"textentryinteraction",gapType);node.replace(placeHolder)}else{if(node.name=="hottext"){var identifier=node.attr("identifier");var correctHottexts=ed.getParam("correctHottexts");var correct=jQuery.inArray(identifier,correctHottexts)>=0;var content=node;var placeHolder=createHottextPlaceholder(identifier,content,correct,"hottext","hottext");node.replace(placeHolder)}}}})});ed.on("PreProcess",function(e){tinymce.each(ed.dom.select("span[data-qti=textentryinteraction]"),function(node){var identifier=jQuery(node).attr("data-qti-response-identifier");var solution=jQuery(node).children().html();var textNode=ed.dom.create("textEntryInteraction",{responseIdentifier:identifier,"data-qti-solution":solution,"data-qti-solution-empty":(solution==""||solution=="&nbsp;"?"true":"false")});var alone=node.previousSibling==null&&(node.nextSibling==null||jQuery(node.nextSibling).attr("type")=="_moz");ed.dom.replace(textNode,node,false);if(alone){jQuery(textNode).after(String.fromCharCode(160))}});tinymce.each(ed.dom.select("span[data-qti=hottext]"),function(node){var identifier=jQuery(node).data("qti-identifier");var hottextNode=ed.dom.create("hottext",{identifier:identifier});var hottextContent=jQuery('span[contenteditable="true"]',node);jQuery(hottextNode).append(hottextContent.contents());ed.dom.replace(hottextNode,node,false)})});ed.on("PastePreProcess",function(e){var selectedNode=ed.selection.getNode();if(selectedNode!=null&&(jQuery(selectedNode).parent("span.hottext").size()>0||jQuery(selectedNode).parent("span.textentryinteraction").size()>0)){var wrappedContent='<div id="'+guid()+'">'+e.content+"</div>";var htmlContent=jQuery(wrappedContent);e.content=jQuery(htmlContent).text();return}var replace=false;var wrappedContent='<div id="'+guid()+'">'+e.content+"</div>";var htmlContent=jQuery(wrappedContent);jQuery(htmlContent).find("span[data-qti='hottext']").each(function(index,el){var hotId="ht"+guid();jQuery(el).attr("data-qti-identifier",hotId);jQuery(el).attr("data-copy","needlistener");replace=true});jQuery(htmlContent).find("span[data-qti='textentryinteraction']").each(function(index,el){var entryId="te"+guid();jQuery(el).attr("data-qti-response-identifier",entryId);jQuery(el).attr("data-copy","needlistener");var gapType=jQuery(el).attr("data-qti-gap-type");var solution=jQuery(el).attr("data-qti-solution");var ffxhrevent=ed.getParam("ffxhrevent");o_ffXHRNFEvent(ffxhrevent.formNam,ffxhrevent.dispIdField,ffxhrevent.dispId,ffxhrevent.eventIdField,2,"cmd","copy-gapentry","responseIdentifier",entryId,"newEntry",true,"selectedText",solution,"gapType",gapType);jQuery("a.o_ops",el).append(jQuery("<i class='visible'>&nbsp;</i>"));replace=true});if(replace){e.content=jQuery(htmlContent).html()}})}});tinymce.PluginManager.add("olatqti",org.olat.ims.qti21.ui.editor)})();
\ No newline at end of file
+(function(){tinymce.create("org.olat.ims.qti21.ui.editor",{getInfo:function(){return{longname:"OpenOLATQTI",author:"frentix GmbH",authorurl:"http://www.frentix.com",infourl:"http://www.frentix.com",version:"1.2.6"}},createControl:function(n,cm){return null},init:function(ed,url){var $=ed.$,selection=ed.selection;var cachedTrans,cachedCoreTrans;var cachedHelp;var lastSelectedGap,lastSelectedHottext;function translator(){if(cachedTrans){return cachedTrans}var mainWin=o_getMainWin();if(mainWin){cachedTrans=jQuery(document).ooTranslator().getTranslator(mainWin.o_info.locale,"org.olat.ims.qti21.ui.editor")}else{cachedTrans={translate:function(key){return key}}}return cachedTrans}function coreTranslator(){if(cachedCoreTrans){return cachedCoreTrans}var mainWin=o_getMainWin();if(mainWin){cachedCoreTrans=jQuery(document).ooTranslator().getTranslator(mainWin.o_info.locale,"org.olat.core")}else{cachedCoreTrans={translate:function(key){return key}}}return cachedCoreTrans}function showTextDialog(e){showDialog(e,"string")}function showNumericalDialog(e){showDialog(e,"float")}function showDialog(e,gapType){var ffxhrevent=ed.getParam("ffxhrevent");if(typeof lastSelectedGap!="undefined"){var textEntryEl=jQuery(lastSelectedGap).closest("span[data-qti='textentryinteraction']");var responseIdentifier=textEntryEl.attr("data-qti-response-identifier");var solution=jQuery(textEntryEl).children().html();var emptySolution=(solution==""||solution=="&nbsp;"?"true":"false");o_ffXHREvent(ffxhrevent.formNam,ffxhrevent.dispIdField,ffxhrevent.dispId,ffxhrevent.eventIdField,2,false,false,false,"cmd","gapentry","responseIdentifier",responseIdentifier,"selectedText",solution,"emptySolution",emptySolution,"newEntry",false)}else{var counter=1;var newSelectedText=ed.selection.getContent({format:"text"});tinymce.each(ed.dom.select("span[data-qti]"),function(node){var identifier=jQuery(node).attr("data-qti-response-identifier");if(identifier.lastIndexOf("RESPONSE_",0)==0){var id=parseInt(identifier.substring(9,identifier.length));if(id>counter){counter=id}}});var responseIdentifier="RESPONSE_"+(counter+1);if(typeof newSelectedText==="undefined"||newSelectedText.length==0){newSelectedText="gap"}var placeholder=createTextEntryPlaceholder(responseIdentifier,newSelectedText,"textentryinteraction",gapType);var holderHtml=new tinymce.html.Serializer().serialize(placeholder);ed.insertContent(holderHtml);o_ffXHREvent(ffxhrevent.formNam,ffxhrevent.dispIdField,ffxhrevent.dispId,ffxhrevent.eventIdField,2,false,false,false,"cmd","gapentry","responseIdentifier",responseIdentifier,"newEntry",true,"selectedText",newSelectedText,"gapType",gapType)}ed.setDirty(true)}function guid(){function s4(){return Math.floor((1+Math.random())*65536).toString(16).substring(1)}return s4()+s4()+s4()+s4()+s4()+s4()+s4()}function createHottext(e){var responseIdentifier;if(typeof lastSelectedHottext!="undefined"){responseIdentifier=jQuery(lastSelectedHottext).data("data-identifier")}else{var counter=1;var selectedText=ed.selection.getContent({format:"text"});var preSelect=false;if(selectedText==null||selectedText.length==0){selectedText="text";preSelect=true}var identifier="ht"+guid();var placeholder=createHottextPlaceholder(identifier,selectedText,false,"hottext");var holderHtml=new tinymce.html.Serializer().serialize(placeholder);ed.insertContent(holderHtml);if(preSelect){var selectedNode=ed.dom.select("span[data-qti-identifier="+identifier+"] span[contenteditable=true]");ed.selection.select(selectedNode[0],true)}jQuery("span.hottext[data-qti-identifier='"+identifier+"'] a",ed.getBody()).each(function(index,el){correctHottextEvent(el)})}}ed.addButton("olatqtifibtext",{title:translator().translate("new.fib"),icon:"gaptext",stateSelector:["span[data-qti-gap-type=string]"],onclick:showTextDialog});ed.addButton("olatqtifibnumerical",{title:translator().translate("new.fib")+" Numerical",icon:"gapnumerical",stateSelector:["span[data-qti-gap-type=float]"],onclick:showNumericalDialog});ed.addButton("olatqtihottext",{title:translator().translate("new.hottext"),icon:"hottext",stateSelector:["span[data-qti=hottext]"],onclick:createHottext});ed.addButton("editgap",{title:"edit",icon:"edit",onclick:showDialog});ed.addMenuItem("olatqtifibtext",{text:translator().translate("new.fib"),icon:"gapnumerical",stateSelector:["span[data-qti-gap-type=string]"],onclick:showNumericalDialog});ed.addMenuItem("olatqtifibnumerical",{text:translator().translate("new.fib.numerical")+" Numerical",icon:"gaptext",stateSelector:["span[data-qti-gap-type=float]"],onclick:showTextDialog});ed.addMenuItem("olatqtihottext",{text:translator().translate("new.hottext"),icon:"hottext",stateSelector:["span[data-qti=hottext]"],onclick:createHottext});ed.on("NodeChange",function(e){if(lastSelectedGap&&lastSelectedGap.id!=e.element.src){lastSelectedGap=undefined}if(lastSelectedHottext&&lastSelectedHottext.id!=e.element.src){lastSelectedHottext=undefined}if(ed.dom.is(e.element,"span[data-qti=textentryinteraction]")){lastSelectedGap=e.element}else{if(jQuery(e.element).parent("span[data-qti='textentryinteraction']").size()>0){lastSelectedGap=e.element}}if(jQuery(e.element).parent("span.hottext").size()>0){lastSelectedHottext=e.element}jQuery(e.element).parent("span[data-qti-gap-type=float]").each(function(index,el){if(jQuery(e.element).prop("tagName").toLowerCase()=="span"){var solution=jQuery(e.element).text();if(!jQuery.isNumeric(solution)){jQuery(el).addClass("error")}else{jQuery(el).removeClass("error")}}});jQuery("span.hottext[data-copy='needlistener']",e.element).each(function(index,el){if(jQuery("a.o_check",el).size()==0){var checked=jQuery(el).attr("data-qti-checked");jQuery(el).prepend("<a class='o_check "+("true"==checked?"checked":"")+"' contenteditable='false'><i contenteditable='false'> </i></a>")}if(jQuery("span[contenteditable='true']",el).text()=="x-y-x"&&jQuery(el).attr("data-qti-empty")=="true"){jQuery("span[contenteditable='true']",el).text("");jQuery(el).attr("data-qti-empty","false")}jQuery("a.o_check",jQuery(el)).each(function(aIndex,aEl){var ev=jQuery._data(aEl,"events");if(ev&&ev.click){}else{correctHottextEvent(aEl);if(jQuery(aEl).hasClass("checked")){var ffxhrevent=ed.getParam("ffxhrevent");var identifier=jQuery(el).data("qti-identifier");o_ffXHRNFEvent(ffxhrevent.formNam,ffxhrevent.dispIdField,ffxhrevent.dispId,ffxhrevent.eventIdField,2,"cmd","hottext","identifier",identifier,"correct","true")}}})});jQuery("span.textentryinteraction[data-copy='needlistener']",e.element).each(function(index,el){if(jQuery("a.o_ops",el).size()==0){jQuery(el).append("<a class='o_ops' contenteditable='false'><i contenteditable='false'> </i></a>")}if(jQuery("span[contenteditable='true']",el).text()=="x-y-x"&&jQuery(el).attr("data-qti-empty")=="true"){jQuery("span[contenteditable='true']",el).text("");jQuery(el).attr("data-qti-empty","false")}s;jQuery("a.o_ops",jQuery(el)).each(function(aIndex,aEl){var ev=jQuery._data(aEl,"events");if(ev&&ev.click){}else{textEntryEvent(el)}})})});function createTextEntryPlaceholder(responseIdentifier,content,interaction,gapType){var placeholder=new tinymce.html.Node("span",1);placeholder.attr({"data-qti":interaction,"data-qti-response-identifier":responseIdentifier,"data-qti-solution":content,"data-qti-gap-type":gapType,"data-mce-placeholder":"","data-textentryinteraction":"empty","class":interaction,contenteditable:"false"});var readonly=ed.getParam("readonly");var editable=readonly=="1"?"false":"true";var contentholder=new tinymce.html.Node("span",1);contentholder.attr({contenteditable:editable});var textNode=new tinymce.html.Node("#text",3);textNode.raw=true;textNode.value=content;contentholder.append(textNode);placeholder.append(contentholder);var aHolder=new tinymce.html.Node("a",1);aHolder.attr({contenteditable:"false","class":"o_ops"});var aTextHolder=new tinymce.html.Node("i",1);aTextHolder.attr({contenteditable:"false"});var aTextNode=new tinymce.html.Node("#text",3);aTextNode.raw=true;aTextNode.value="&nbsp;";aTextHolder.append(aTextNode);aHolder.append(aTextHolder);placeholder.append(aHolder);return placeholder}function createHottextPlaceholder(identifier,content,correct,interaction){var placeholder=new tinymce.html.Node("span",1);placeholder.attr({"data-qti":interaction,"data-qti-identifier":identifier,"data-qti-checked":(correct?"true":"false"),"class":interaction,contenteditable:"false"});var readonly=ed.getParam("readonly");var editable=readonly=="1"?"false":"true";var checkHolder=new tinymce.html.Node("a",1);checkHolder.attr({contenteditable:"false","class":"o_check "+(correct?"checked":"")});var aTextHolder=new tinymce.html.Node("i",1);aTextHolder.attr({contenteditable:"false"});var aTextNode=new tinymce.html.Node("#text",3);aTextNode.raw=true;aTextNode.value="&nbsp;";aTextHolder.append(aTextNode);checkHolder.append(aTextHolder);placeholder.append(checkHolder);var contentholder=new tinymce.html.Node("span",1);contentholder.attr({contenteditable:editable});if(typeof content==="string"){var textNode=new tinymce.html.Node("#text",3);textNode.raw=true;textNode.value=content;contentholder.append(textNode)}else{var node,collection=[];for(node=content.firstChild;node;node=node.walk()){if(node.parent==content){collection.push(node)}if(node==content.lastChild){break}}for(var i=0;i<collection.length;i++){contentholder.append(collection[i])}}placeholder.append(contentholder);return placeholder}function correctHottextEvent(linkEl){jQuery(linkEl).click(function(){var ffxhrevent=ed.getParam("ffxhrevent");var jLinkEl=jQuery(linkEl);var identifier=jLinkEl.parent("span.hottext").data("qti-identifier");o_ffXHRNFEvent(ffxhrevent.formNam,ffxhrevent.dispIdField,ffxhrevent.dispId,ffxhrevent.eventIdField,2,"cmd","hottext","identifier",identifier,"correct",jLinkEl.hasClass("checked")?"false":"true");if(jLinkEl.hasClass("checked")){jLinkEl.removeClass("checked");jLinkEl.parent("span.hottext").attr("data-qti-checked","false")}else{jLinkEl.addClass("checked");jLinkEl.parent("span.hottext").attr("data-qti-checked","true")}ed.setDirty(true)})}function textEntryEvent(textEntryEl){jQuery("a.o_ops",textEntryEl).click(function(){var ffxhrevent=ed.getParam("ffxhrevent");var responseIdentifier=jQuery(textEntryEl).attr("data-qti-response-identifier");var solution=jQuery(textEntryEl).children().html();var emptySolution=(solution==""||solution=="&nbsp;"?"true":"false");o_ffXHREvent(ffxhrevent.formNam,ffxhrevent.dispIdField,ffxhrevent.dispId,ffxhrevent.eventIdField,2,false,false,false,"cmd","gapentry","responseIdentifier",responseIdentifier,"selectedText",solution,"emptySolution",emptySolution);ed.setDirty(true)})}function getTextContent(node){var content="";var walker=new tinymce.dom.TreeWalker(node);var textNode;while((textNode=walker.next())){if(textNode.type==3){if(content.length>0){content+=" "}content+=textNode.value}else{if(textNode.nodeType==3){if(content.length>0){content+=" "}content+=textNode.nodeValue}}}return content}ed.addCommand("qtiUpdateTextEntry",function(ui,value){var val=eval(value);var responseIdentifier=val.responseIdentifier;var solution=val["data-qti-solution"];jQuery("span[data-qti-response-identifier='"+responseIdentifier+"']>span",ed.getBody()).each(function(index,el){jQuery(el).text(solution)});jQuery("span[data-qti-response-identifier='"+responseIdentifier+"']",ed.getBody()).each(function(index,el){textEntryEvent(jQuery(el))})});ed.on("init",function(){if(ed.settings.content_css!==false){ed.dom.loadCSS(url+"/css/content.css")}jQuery(".textentryinteraction",ed.getBody()).each(function(index,el){textEntryEvent(el)});jQuery("span.hottext a.o_check",ed.getBody()).each(function(index,el){correctHottextEvent(el)})});ed.on("preInit",function(){ed.parser.addNodeFilter("textentryinteraction,hottext",function(nodes){var i=nodes.length,node,placeHolder,videoScript;while(i--){node=nodes[i];if(node.name=="textentryinteraction"){var responseIdentifier=node.attr("responseidentifier");var gapType=node.attr("openolattype");var solution=node.attr("data-qti-solution");if(typeof solution==="undefined"){solution="&nbsp;"}if(typeof gapType==="undefined"){gapType="string"}var placeHolder=createTextEntryPlaceholder(responseIdentifier,solution,"textentryinteraction",gapType);node.replace(placeHolder)}else{if(node.name=="hottext"){var identifier=node.attr("identifier");var correctHottexts=ed.getParam("correctHottexts");var correct=jQuery.inArray(identifier,correctHottexts)>=0;var content=node;var placeHolder=createHottextPlaceholder(identifier,content,correct,"hottext","hottext");node.replace(placeHolder)}}}})});ed.on("PreProcess",function(e){tinymce.each(ed.dom.select("span[data-qti=textentryinteraction]"),function(node){var identifier=jQuery(node).attr("data-qti-response-identifier");var solution=jQuery(node).children().html();var textNode=ed.dom.create("textEntryInteraction",{responseIdentifier:identifier,"data-qti-solution":solution,"data-qti-solution-empty":(solution==""||solution=="&nbsp;"?"true":"false")});var alone=node.previousSibling==null&&(node.nextSibling==null||jQuery(node.nextSibling).attr("type")=="_moz");ed.dom.replace(textNode,node,false);if(alone){jQuery(textNode).after(String.fromCharCode(160))}});tinymce.each(ed.dom.select("span[data-qti=hottext]"),function(node){var identifier=jQuery(node).data("qti-identifier");var hottextNode=ed.dom.create("hottext",{identifier:identifier});var hottextContent=jQuery('span[contenteditable="true"]',node);jQuery(hottextNode).append(hottextContent.contents());ed.dom.replace(hottextNode,node,false)})});ed.on("PastePreProcess",function(e){var selectedNode=ed.selection.getNode();if(selectedNode!=null&&(jQuery(selectedNode).parent("span.hottext").size()>0||jQuery(selectedNode).parent("span.textentryinteraction").size()>0)){var wrappedContent='<div id="'+guid()+'">'+e.content+"</div>";var htmlContent=jQuery(wrappedContent);e.content=jQuery(htmlContent).text();return}var replace=false;var wrappedContent='<div id="'+guid()+'">'+e.content+"</div>";var htmlContent=jQuery(wrappedContent);jQuery(htmlContent).find("span[data-qti='hottext']").each(function(index,el){var hotId="ht"+guid();jQuery(el).attr("data-qti-identifier",hotId);jQuery(el).attr("data-copy","needlistener");jQuery(el).attr("data-copy-empty","false");var empty=jQuery("span[contenteditable='true']",el).text();if(empty==null||empty.length==0){jQuery("span[contenteditable='true']",el).text("x-y-x");jQuery(el).attr("data-copy-empty","true")}replace=true});jQuery(htmlContent).find("span[data-qti='textentryinteraction']").each(function(index,el){var entryId="te"+guid();jQuery(el).attr("data-qti-response-identifier",entryId);jQuery(el).attr("data-copy","needlistener");jQuery(el).attr("data-copy-empty","false");var gapType=jQuery(el).attr("data-qti-gap-type");var solution=jQuery(el).attr("data-qti-solution");var ffxhrevent=ed.getParam("ffxhrevent");o_ffXHRNFEvent(ffxhrevent.formNam,ffxhrevent.dispIdField,ffxhrevent.dispId,ffxhrevent.eventIdField,2,"cmd","copy-gapentry","responseIdentifier",entryId,"newEntry",true,"selectedText",solution,"gapType",gapType);jQuery("a.o_ops",el).append(jQuery("<i class='visible'>&nbsp;</i>"));var empty=jQuery("span[contenteditable='true']",el).text();if(empty==null||empty.length==0){jQuery("span[contenteditable='true']",el).text("x-y-x");jQuery(el).attr("data-copy-empty","true")}replace=true});if(replace){e.content=jQuery(htmlContent).html()}})}});tinymce.PluginManager.add("olatqti",org.olat.ims.qti21.ui.editor)})();
\ No newline at end of file