diff --git a/js/textedit.js b/js/textedit.js
index f7d5ee57f6..be4cd770a8 100644
--- a/js/textedit.js
+++ b/js/textedit.js
@@ -63,7 +63,7 @@ function commentExpand(id) {
 
 function commentClose(obj,id) {
 	if(obj.value == '') {
-		obj.value = '{{$comment}}';
+		obj.value = aStr.comment;
 		$("#comment-edit-text-" + id).removeClass("comment-edit-text-full");
 		$("#comment-edit-text-" + id).addClass("comment-edit-text-empty");
 		$("#mod-cmnt-wrap-" + id).hide();
@@ -81,3 +81,83 @@ function showHideCommentBox(id) {
 		$('#comment-edit-form-' + id).show();
 	}
 }
+
+function commentOpenUI(obj, id) {
+	$(document).unbind( "click.commentOpen", handler );
+
+	var handler = function() {
+		if(obj.value == aStr.comment) {
+			obj.value = '';
+			$("#comment-edit-text-" + id).addClass("comment-edit-text-full").removeClass("comment-edit-text-empty");
+			// Choose an arbitrary tab index that's greater than what we're using in jot (3 of them)
+			// The submit button gets tabindex + 1
+			$("#comment-edit-text-" + id).attr('tabindex','9');
+			$("#comment-edit-submit-" + id).attr('tabindex','10');
+			$("#comment-edit-submit-wrapper-" + id).show();
+		}
+	};
+
+	$(document).bind( "click.commentOpen", handler );
+}
+
+function commentCloseUI(obj, id) {
+	$(document).unbind( "click.commentClose", handler );
+
+	var handler = function() {
+		if(obj.value === '') {
+		obj.value = aStr.comment;
+			$("#comment-edit-text-" + id).removeClass("comment-edit-text-full").addClass("comment-edit-text-empty");
+			$("#comment-edit-text-" + id).removeAttr('tabindex');
+			$("#comment-edit-submit-" + id).removeAttr('tabindex');
+			$("#comment-edit-submit-wrapper-" + id).hide();
+		}
+	};
+
+	$(document).bind( "click.commentClose", handler );
+}
+function commentOpen(obj,id) {
+	if(obj.value == aStr.comment) {
+		obj.value = '';
+		$("#comment-edit-text-" + id).addClass("comment-edit-text-full");
+		$("#comment-edit-text-" + id).removeClass("comment-edit-text-empty");
+		$("#mod-cmnt-wrap-" + id).show();
+		openMenu("comment-edit-submit-wrapper-" + id);
+		return true;
+	}
+	return false;
+}
+
+function commentInsert(obj,id) {
+	var tmpStr = $("#comment-edit-text-" + id).val();
+	if(tmpStr == aStr.comment) {
+		tmpStr = '';
+		$("#comment-edit-text-" + id).addClass("comment-edit-text-full");
+		$("#comment-edit-text-" + id).removeClass("comment-edit-text-empty");
+		openMenu("comment-edit-submit-wrapper-" + id);
+	}
+	var ins = $(obj).html();
+	ins = ins.replace('&lt;','<');
+	ins = ins.replace('&gt;','>');
+	ins = ins.replace('&amp;','&');
+	ins = ins.replace('&quot;','"');
+	$("#comment-edit-text-" + id).val(tmpStr + ins);
+}
+
+function qCommentInsert(obj,id) {
+	var tmpStr = $("#comment-edit-text-" + id).val();
+	if(tmpStr == aStr.comment) {
+		tmpStr = '';
+		$("#comment-edit-text-" + id).addClass("comment-edit-text-full");
+		$("#comment-edit-text-" + id).removeClass("comment-edit-text-empty");
+		openMenu("comment-edit-submit-wrapper-" + id);
+	}
+	var ins = $(obj).val();
+	ins = ins.replace('&lt;','<');
+	ins = ins.replace('&gt;','>');
+	ins = ins.replace('&amp;','&');
+	ins = ins.replace('&quot;','"');
+	$("#comment-edit-text-" + id).val(tmpStr + ins);
+	$(obj).val('');
+}
+
+function confirmDelete() { return confirm(aStr.delitem); }
diff --git a/templates/comment_item.tpl b/templates/comment_item.tpl
index b430ff7e61..116a7b7d4d 100644
--- a/templates/comment_item.tpl
+++ b/templates/comment_item.tpl
@@ -1,39 +1,3 @@
-<script>
-	function commentOpenUI(obj, id) {
-		$(document).unbind( "click.commentOpen", handler );
-
-		var handler = function() {
-			if(obj.value == '{{$comment}}') {
-				obj.value = '';
-				$("#comment-edit-text-" + id).addClass("comment-edit-text-full").removeClass("comment-edit-text-empty");
-				// Choose an arbitrary tab index that's greater than what we're using in jot (3 of them)
-				// The submit button gets tabindex + 1
-				$("#comment-edit-text-" + id).attr('tabindex','9');
-				$("#comment-edit-submit-" + id).attr('tabindex','10');
-				$("#comment-edit-submit-wrapper-" + id).show();
-			}
-		};
-
-		$(document).bind( "click.commentOpen", handler );
-}
-
-	function commentCloseUI(obj, id) {
-		$(document).unbind( "click.commentClose", handler );
-
-		var handler = function() {
-			if(obj.value === '') {
-			obj.value = '{{$comment}}';
-				$("#comment-edit-text-" + id).removeClass("comment-edit-text-full").addClass("comment-edit-text-empty");
-				$("#comment-edit-text-" + id).removeAttr('tabindex');
-				$("#comment-edit-submit-" + id).removeAttr('tabindex');
-				$("#comment-edit-submit-wrapper-" + id).hide();
-			}
-		};
-
-		$(document).bind( "click.commentClose", handler );
-	}
-
-</script>
 
 {{if $threaded}}
 <div class="comment-wwedit-wrapper threaded" id="comment-edit-wrapper-{{$id}}" style="display: block;">
diff --git a/templates/head.tpl b/templates/head.tpl
index ba48228b98..afdfaa7857 100644
--- a/templates/head.tpl
+++ b/templates/head.tpl
@@ -81,57 +81,10 @@
 <script type="text/javascript" src="view/theme/frio/js/textedit.js"></script>
 
 <script>
-
-	var updateInterval = {{$update_interval}};
-	var localUser = {{if $local_user}}{{$local_user}}{{else}}false{{/if}};
-
-	function confirmDelete() { return confirm("{{$delitem}}"); }
-
-	function commentOpen(obj,id) {
-		if(obj.value == '{{$comment}}') {
-			obj.value = '';
-			$("#comment-edit-text-" + id).addClass("comment-edit-text-full");
-			$("#comment-edit-text-" + id).removeClass("comment-edit-text-empty");
-			$("#mod-cmnt-wrap-" + id).show();
-			openMenu("comment-edit-submit-wrapper-" + id);
-			return true;
-		}
-		return false;
-	}
-
-	function commentInsert(obj,id) {
-		var tmpStr = $("#comment-edit-text-" + id).val();
-		if(tmpStr == '{{$comment}}') {
-			tmpStr = '';
-			$("#comment-edit-text-" + id).addClass("comment-edit-text-full");
-			$("#comment-edit-text-" + id).removeClass("comment-edit-text-empty");
-			openMenu("comment-edit-submit-wrapper-" + id);
-		}
-		var ins = $(obj).html();
-		ins = ins.replace('&lt;','<');
-		ins = ins.replace('&gt;','>');
-		ins = ins.replace('&amp;','&');
-		ins = ins.replace('&quot;','"');
-		$("#comment-edit-text-" + id).val(tmpStr + ins);
-	}
-
-	function qCommentInsert(obj,id) {
-		var tmpStr = $("#comment-edit-text-" + id).val();
-		if(tmpStr == '{{$comment}}') {
-			tmpStr = '';
-			$("#comment-edit-text-" + id).addClass("comment-edit-text-full");
-			$("#comment-edit-text-" + id).removeClass("comment-edit-text-empty");
-			openMenu("comment-edit-submit-wrapper-" + id);
-		}
-		var ins = $(obj).val();
-		ins = ins.replace('&lt;','<');
-		ins = ins.replace('&gt;','>');
-		ins = ins.replace('&amp;','&');
-		ins = ins.replace('&quot;','"');
-		$("#comment-edit-text-" + id).val(tmpStr + ins);
-		$(obj).val('');
-	}
-
 	window.showMore = "{{$showmore}}";
 	window.showFewer = "{{$showfewer}}";
 </script>
+
+{{* Include the strings which are needed for some js functions (e.g. translation)
+They are loaded into the html <head> so that js functions can use them *}}
+{{include file="js_strings.tpl"}}
diff --git a/templates/js_strings.tpl b/templates/js_strings.tpl
new file mode 100644
index 0000000000..0535c70562
--- /dev/null
+++ b/templates/js_strings.tpl
@@ -0,0 +1,13 @@
+
+
+{{* Strings which are needed for some js functions (e.g. translation or the interval for page update)
+They are loaded into the html <head> so that js functions can use them *}}
+<script>
+	var updateInterval = {{$update_interval}};
+
+	var localUser = {{if $local_user}}{{$local_user}}{{else}}false{{/if}};
+	var aStr = {
+		'delitem'     : "{{$delitem}}",
+		'comment'     : "{{$comment}}"
+	};
+</script>