diff --git a/server.py b/server.py
index 23226f11fd234bc24d85382616e87e449d72dfbd..c5216683ffa33777901ee3d1ea159ed4091da660 100644
--- a/server.py
+++ b/server.py
@@ -196,6 +196,7 @@ def course(id=None, handle=None):
 	lectures = query('SELECT * FROM lectures WHERE course_id = ? AND (? OR visible) ORDER BY time, duration DESC', course['id'], ismod())
 	for lecture in lectures:
 		lecture['auth'] = []
+		lecture['course'] = course
 		for auth in auths:
 			if auth['lecture_id'] == lecture['id']:
 				lecture['auth'].append(auth)
diff --git a/static/moderator.js b/static/moderator.js
index af6a7d9fee86a51f6f363d88129ba2ebb693d82d..f61adebd04d10fa8d87bc788f6aa71f5102d719f 100644
--- a/static/moderator.js
+++ b/static/moderator.js
@@ -1,11 +1,55 @@
-var moderatorinterface = {
-	init: function () {
-		$(function () {
-			var editable = $('.modeditable');
+var moderator = {
+	api: {
+		init: function () {
+
+		},
+		set: function(path,value,reload=false) {
+			var req = {};
+			req[path] = value;
+			moderator.api.set_multi(req,reload)
+		},
+		set_multi: function(dict,reload=false) {
+			$.ajax({
+				method: "POST",
+				url: "/edit",
+				dataType: "text",
+				contentType: "application/json",
+				data: JSON.stringify(dict),
+				success: function () {
+					if (reload) {
+						window.location.reload();
+					}
+				}
+			});
+		},
+		add_new: function(value,type,reload=false) {
+			$.ajax({
+				method: "POST",
+				url: "/new/"+type,
+				dataType: "text",
+				contentType: "application/json",
+				data: JSON.stringify(value),
+				success: function () {
+					if (reload) {
+						window.location.reload();
+					}
+				}
+			})
+		},
+		gethttp: function (url){
+			$.ajax({
+				method: "GET",
+				url: url,
+				dataType: "text",
+			})
+		}
+	},
+	editor: {
+		init: function() {
+			var editable = $('.moderator_editor');
 			for (var i=0; i<editable.length; i++) {
 				var e = $(editable[i]);
-
-				$('.modeditablesign',e).popover(
+				$('.moderator_editor_sign',e).popover(
 					{
 						title: e.data('path'),
 						html: true,
@@ -14,17 +58,57 @@ var moderatorinterface = {
 						content: function() {
 							return '<div class="row form-group">'+
 									'<span class="col-xs-12">'+
-										'<textarea class="form-control editorvalue" rows="3" data-path="'+$(this.parentElement).data('path')+'">'+this.parentElement.getElementsByClassName('modeditablevalue')[0].innerHTML+'</textarea>'+
+										'<textarea class="form-control editor_value" rows="3" data-path="'+$(this.parentElement).data('path')+'">'+this.parentElement.getElementsByClassName('moderator_editor_value')[0].innerHTML+'</textarea>'+
 									'</span>'+
 									'<span class="col-xs-12">'+
-										'<input class="btn btn-default pull-right editorbtn" type="submit" data-path="'+$(this.parentElement).data('path')+'" value="save" onClick="moderatorinterface.edit(this)">'+
+										'<input class="btn btn-default pull-right" type="submit" data-path="'+$(this.parentElement).data('path')+'" value="save" onClick="moderator.editor.editbtnclick(this)">'+
 									'</span>'+
 								'</div>';
 						}
 					}		
 				);
 			}
-			$('.modeditacl').popover(
+		},
+		editbtnclick: function (src) {
+			var path  = $($(src)[0]).data('path');
+			var value = $('.editor_value',src.parentElement.parentElement).val();
+//			var value = $(".editor_value")[0].value;
+
+			var editable = $('.moderator_editor');
+			for (var i=0; i<editable.length; i++) {
+				var e = $(editable[i]);
+
+				if (e.data('path') == path) {
+					$('.moderator_editor_sign',e).click();
+					$(".moderator_editor_value",e).html(value);
+				}
+			}
+			moderator.api.set(path,value);
+		},
+		changeboxclick: function(src) {
+			var value = $(src)[0].checked;
+			var path = $(src).data('path');
+			moderator.api.set(path,value ? 1 : 0);
+		},
+		deletebtnclick: function(src) {
+			if (confirm('Realy delete this?')) { 
+				moderator.api.set($(src).data('path'),1,true); 
+			}
+		}
+	},
+	acleditor: {
+		acls: [],
+		setacls: function(value) {
+			var idlist = [];
+			for (i in value) {
+				if (idlist.indexOf(value[i]['auth_id']) == -1) {
+					idlist[idlist.length] = value[i]['auth_id'];
+					moderator.acleditor.acls[moderator.acleditor.acls.length] = value[i];
+				}
+			}
+		},
+		init: function () {
+			$('.modmoderator_acleditor').popover(
 				{
 					title: "acls",
 					html: true,
@@ -36,139 +120,67 @@ var moderatorinterface = {
 						var id = $(this).data('id');
 						var type = $(this).data('type');
 						html += '<div width="300px" class="row" data-id="'+id+'" data-type="'+type+'">'; 
-						html += '<select onchange="moderatorinterface.selectacl(this)" size="6" class="col-xs-12 acllist">';
+						html += '<select onchange="moderator.acleditor.selectacl(this)" size="6" class="col-xs-12 acllist">';
 						var idlist = [];
-						for (i in moderatorinterface.acls) {
-							if ((moderatorinterface.acls[i][type+'_id'] == id)) {
+						for (i in moderator.acleditor.acls) {
+							if ((moderator.acleditor.acls[i][type+'_id'] == id)) {
 								var auth = {};
-								auth.type = moderatorinterface.acls[i]['auth_type'];
-								auth.user = moderatorinterface.acls[i]['auth_user'];
-								auth.password = moderatorinterface.acls[i]['auth_passwd'];
-								auth.id = moderatorinterface.acls[i]['auth_id'];
+								auth.type = moderator.acleditor.acls[i]['auth_type'];
+								auth.user = moderator.acleditor.acls[i]['auth_user'];
+								auth.password = moderator.acleditor.acls[i]['auth_passwd'];
+								auth.id = moderator.acleditor.acls[i]['auth_id'];
 								idlist[idlist.length] = auth.id;
 								html += '<option data-auth_id="'+auth.id+'">#'+auth.id+' '+auth.type+' '+ ( auth.type == "password" ? ' ("'+auth.user+'":"'+auth.password+'")' : '' ) +'</option>';
 							}
-							console.log(moderatorinterface.acls[i]['deleted']);
 						}
 						html += '</select>';
-						html += '<select class="col-xs-12 authtype" onchange="moderatorinterface.acltypechange(this)"><option value="public">public</option><option selected value="password">password</option></select>';
+						html += '<select class="col-xs-12 authtype" onchange="moderator.acleditor.acltypechange(this)"><option value="public">public</option><option selected value="password">password</option></select>';
 						html += '<input class="col-xs-12 passwordinput authuser" type="text" placeholder="username">';
 						html += '<input class="col-xs-12 passwordinput authpassword" type="text" placeholder="password">';
-						html += '<button class="col-xs-6" onclick="moderatorinterface.addacl(this)">Add</button>';
-						//html += '<button class="col-xs-4" onclick="moderatorinterface.delacl(this)">Update</button>';
-						html += '<button class="col-xs-6" onclick="moderatorinterface.delacl(this)">Delete</button>';
+						html += '<button class="col-xs-6" onclick="moderator.acleditor.addbtnclick(this)">Add</button>';
+						//html += '<button class="col-xs-4" onclick="moderator.acleditor.updatebtnclick(this)">Update</button>';
+						html += '<button class="col-xs-6" onclick="moderator.acleditor.delbtnclick(this)">Delete</button>';
 						html += '</div>';
 						return html;
 					}
 				}		
 			);
-		})
-	},
-	selectacl: function (element) {
+		},
+		selectacl: function (element) {
 
-	},
-	delacl: function (element) {
-		moderatorinterface.set("auth."+$(".acllist  option:selected", element.parentElement).data('auth_id')+".deleted",1,true);
-	},
-	addacl: function (element) {
-		var auth = {};
-		auth.type = $(".authtype", element.parentElement).val();
-		if (auth.type == "password") {
-			auth.user = $(".authuser", element.parentElement).val();
-			auth.password = $(".authpassword", element.parentElement).val();
-		}
-		moderatorinterface.set('')
-		dict = {}
-		dict['auth_type'] = auth.type;
-		dict['auth_user'] = auth.user;
-		dict['auth_passwd'] = auth.password;
-		dict[$(element.parentElement).data('type')+'_id'] = $(element.parentElement).data('id');
-		
-		moderatorinterface.add_new(dict,'auth',true);
-		var option = $('<option>', {
-			"text": auth.type+' '+( auth.type == "password" ? ' ("'+auth.user+'":"'+auth.password+'")' : '' ) ,
-			"data-auth": JSON.stringify(auth)
-		});
-		$(".acllist",element.parentElement).append(option);
-	},
-	acltypechange: function (element) {
-		$(".passwordinput",element.parentElement).toggle();
-	},
-	edit: function (src) {
-		var path = $($(src)[0]).data('path');
-		var value = $(".editorvalue")[0].value;
-
-		var editable = $('.modeditable');
-		for (var i=0; i<editable.length; i++) {
-			var e = $(editable[i]);
-
-			if (e.data('path') == path) {
-				$('.modeditablesign',e).click();
-				$(".modeditablevalue",e).html(value);
+		},
+		delbtnclick: function (element) {
+			moderator.api.set("auth."+$(".acllist  option:selected", element.parentElement).data('auth_id')+".deleted",1,true);
+		},
+		addbtnclick: function (element) {
+			var auth = {};
+			auth.type = $(".authtype", element.parentElement).val();
+			if (auth.type == "password") {
+				auth.user = $(".authuser", element.parentElement).val();
+				auth.password = $(".authpassword", element.parentElement).val();
 			}
+			dict = {}
+			dict['auth_type'] = auth.type;
+			dict['auth_user'] = auth.user;
+			dict['auth_passwd'] = auth.password;
+			dict[$(element.parentElement).data('type')+'_id'] = $(element.parentElement).data('id');
+
+			moderator.api.add_new(dict,'auth',true);
+			var option = $('<option>', {
+				"text": auth.type+' '+( auth.type == "password" ? ' ("'+auth.user+'":"'+auth.password+'")' : '' ) ,
+				"data-auth": JSON.stringify(auth)
+			});
+			$(".acllist",element.parentElement).append(option);
+		},
+		acltypechange: function (element) {
+			$(".passwordinput",element.parentElement).toggle();
 		}
-		moderatorinterface.set(path,value);
-	},
-	change: function(src) {
-		var value = $(src)[0].checked;
-		var path = $(src).data('path');
-		moderatorinterface.set(path,value ? 1 : 0);
-	},
-	set: function(path,value,reload=false) {
-		var req = {};
-		req[path] = value;
-		moderatorinterface.set_multi(req,reload)
-	},
-	set_multi: function(dict,reload=false) {
-		$.ajax({
-			method: "POST",
-			url: "/edit",
-			dataType: "text",
-			contentType: "application/json",
-			data: JSON.stringify(dict),
-			success: function () {
-				if (reload) {
-					window.location.reload();
-				}
-			}
-		})
-	},
-	add_new: function(dict,table,reload=false) {
-		$.ajax({
-			method: "POST",
-			url: "/new/"+table,
-			dataType: "text",
-			contentType: "application/json",
-			data: JSON.stringify(dict),
-			success: function () {
-				if (reload) {
-					window.location.reload();
-				}
-			}
-		})
-	},
-	delete: function(src) {
-		if (confirm('Realy delete this?')) { 
-			moderatorinterface.set($(src).data('path'),1,true); 
-		}
-	},
-	gethttp: function (url){
-		$.ajax({
-			method: "GET",
-			url: url,
-			dataType: "text",
-		})
 	},
-	acls: [],
-	setacls: function(value) {
-		var idlist = [];
-		for (i in value) {
-			if (idlist.indexOf(value[i]['auth_id']) == -1) {
-				idlist[idlist.length] = value[i]['auth_id'];
-				moderatorinterface.acls[moderatorinterface.acls.length] = value[i];
-			}
-		}
+	init: function () {
+		moderator.api.init();
+		moderator.editor.init();
+		moderator.acleditor.init();
 	}
 };
 
-$( document ).ready( moderatorinterface.init() );
+$( document ).ready( function () {  moderator.init(); } );
diff --git a/templates/base.html b/templates/base.html
index 7456c33d621db29aca1c98cf8c8996e7b826138d..0244e70913aacc7fa92c5504df6c024525bd863d 100644
--- a/templates/base.html
+++ b/templates/base.html
@@ -2,7 +2,7 @@
 {% set global_acls = [] %}
 {% set min_announcement_level = min_announcement_level|default(1) %}
 {% set levels = {0: ('info', 'Nur auf Hauptseite sichtbar'), 1: ('info', 'Überall sichtbar (Hinweis)'), 2: ('warning', 'Überall sichtbar (Warnung)'), 3: ('danger', 'Überall sichtbar (Wichtig)')} %}
-{% from 'macros.html' import valueeditor, valuecheckbox, valuedeletebtn %}
+{% from 'macros.html' import moderator_editor, moderator_checkbox, moderator_delete %}
 
 <!DOCTYPE html>
 <html>
@@ -142,7 +142,9 @@
 	</body>
 	{% if ismod() %}
 		<script>
-			moderatorinterface.setacls({{global_acls|tojson|safe}})	
+			$( function () {
+				moderator.acleditor.setacls({{global_acls|tojson|safe}}); 
+			});	
 		</script>
 	{% endif %}
 </html>
diff --git a/templates/course.html b/templates/course.html
index ac4c5d6440806d4bb442821cd489cb7d7614df30..bd2baafd30043d97f34918b049e3826166449b42 100644
--- a/templates/course.html
+++ b/templates/course.html
@@ -1,18 +1,18 @@
 {% from 'macros.html' import lecture_list_item %}
-{% from 'macros.html' import valueeditor %}
-{% from 'macros.html' import valuedeletebtn %}
-{% from 'macros.html' import valuecheckbox %}
+{% from 'macros.html' import moderator_editor %}
+{% from 'macros.html' import moderator_delete %}
+{% from 'macros.html' import moderator_checkbox %}
 {% from 'macros.html' import preview %}
-{% from 'macros.html' import editacl %}
+{% from 'macros.html' import moderator_acleditor %}
 
 {% extends "base.html" %}
 {% block content %}
 <div class="panel panel-default">
 	<div class="panel-heading">
-		<h1 class="panel-title">{{ valueeditor(['courses',course.id,'title'], course.title)}}
+		<h1 class="panel-title">{{ moderator_editor(['courses',course.id,'title'], course.title)}} {% if ismod() %}<i>({{course.id}})</i>{% endif %}
 			<ul class="pull-right list-inline">
-				<li>{{ valuedeletebtn(['courses',course.id,'deleted']) }}</li>
-				<li>{{ editacl('course',course.id,course.auth, global_acls) }}</li>
+				<li>{{ moderator_delete(['courses',course.id,'deleted']) }}</li>
+				<li>{{ moderator_acleditor('course',course.id,course.auth, global_acls) }}</li>
 			</ul>
 		</h1>
 	</div>
@@ -20,9 +20,9 @@
 		<div class="col-xs-12">
 			<table class="table-top-aligned table-condensed">
 				<tbody>
-					<tr><td>Semester:</td><td>{{ valueeditor(['courses',course.id,'semester'], course.semester) }}</td></tr>
-					<tr><td>Veranstalter:</td><td>{{ valueeditor(['courses',course.id,'organizer'], course.organizer) }}</td></tr>
-					<tr><td>Bemerkungen:</td><td>{{ valueeditor(['courses',course.id,'description'], course.description) }}</td></tr>
+					<tr><td>Semester:</td><td>{{ moderator_editor(['courses',course.id,'semester'], course.semester) }}</td></tr>
+					<tr><td>Veranstalter:</td><td>{{ moderator_editor(['courses',course.id,'organizer'], course.organizer) }}</td></tr>
+					<tr><td>Bemerkungen:</td><td>{{ moderator_editor(['courses',course.id,'description'], course.description) }}</td></tr>
 				</tbody>
 			</table>
 		</div>
@@ -30,13 +30,13 @@
 		<div class="col-xs-12" style="margin-top: 20px">
 			<table class="table-condensed table-top-aligned">
 				<tbody>
-					<tr><td>Sichtbar:</td><td>{{ valuecheckbox(['courses',course.id,'visible'], course.visible) }}</td></tr>
-					<tr><td>Gelistet:</td><td>{{ valuecheckbox(['courses',course.id,'listed'], course.listed) }}</td></tr>
-					<tr><td>Downloadable:</td><td>{{ valuecheckbox(['courses',course.id,'downloadable'], course.downloadable) }}</td></tr>
-					<tr><td>Short:</td><td>{{ valueeditor(['courses',course.id,'short'], course.short) }}</td></tr>
-					<tr><td>Handle:</td><td>{{ valueeditor(['courses',course.id,'handle'], course.handle) }}</td></tr>
-					<tr><td>Thema:</td><td>{{ valueeditor(['courses',course.id,'subject'], course.subject) }}</td></tr>
-					<tr><td>Zuständig:</td><td>{{ valueeditor(['courses',course.id,'responsible'], course.responsible) }}</td></tr>
+					<tr><td>Sichtbar:</td><td>{{ moderator_checkbox(['courses',course.id,'visible'], course.visible) }}</td></tr>
+					<tr><td>Gelistet:</td><td>{{ moderator_checkbox(['courses',course.id,'listed'], course.listed) }}</td></tr>
+					<tr><td>Downloadable:</td><td>{{ moderator_checkbox(['courses',course.id,'downloadable'], course.downloadable) }}</td></tr>
+					<tr><td>Short:</td><td>{{ moderator_editor(['courses',course.id,'short'], course.short) }}</td></tr>
+					<tr><td>Handle:</td><td>{{ moderator_editor(['courses',course.id,'handle'], course.handle) }}</td></tr>
+					<tr><td>Thema:</td><td>{{ moderator_editor(['courses',course.id,'subject'], course.subject) }}</td></tr>
+					<tr><td>Zuständig:</td><td>{{ moderator_editor(['courses',course.id,'responsible'], course.responsible) }}</td></tr>
 				</tbody>
 			</table>
 		</div>
diff --git a/templates/import_campus.html b/templates/import_campus.html
index 3a5819f6ec729836a183d4d439597b60f3d0854a..46ca64ef0eefc485b57c92e4c838ac9fcda5d25f 100644
--- a/templates/import_campus.html
+++ b/templates/import_campus.html
@@ -1,4 +1,4 @@
-{% from 'macros.html' import valuedeletebtn %}
+{% from 'macros.html' import moderator_delete %}
 {% extends "base.html" %}
 {% block content %}
 <div class="panel-group">
@@ -87,7 +87,7 @@
 					<span class="col-xs-1">
 						<span class="pull-right">
 							{% if (i.type == 'lecture') %}
-								{{ valuedeletebtn(['lectures',i.id,'deleted']) }}
+								{{ moderator_delete(['lectures',i.id,'deleted']) }}
 							{% endif%}
 							{% if (i.type == 'import')  %}
 								<button class="btn btn-default newlecture" onclick="moderatorinterface.gethttp('{{ url_for('create', table='lecture', course_id=course.id, time=i.time, title=i.title, place=i.place) }}')">anlegen</a>
diff --git a/templates/index.html b/templates/index.html
index 01851e1e32c0efd90b50c7a2c60b77ec5d05d503..460728b033134804737f11a0b199f19c8307e148 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -14,8 +14,8 @@
 		{% for msg in get_announcements() %}
 		<div class="alert alert-{{levels.get(msg.level, ('info', ''))[0]}}" role="alert">
 			<div>
-				<div class="pull-right">{{ valuedeletebtn(('announcements',msg.id,'deleted')) }}</div>
-				<div>{{ valueeditor(('announcements',msg.id,'text'), msg.text) }}</div>
+				<div class="pull-right">{{ moderator_delete(('announcements',msg.id,'deleted')) }}</div>
+				<div>{{ moderator_editor(('announcements',msg.id,'text'), msg.text) }}</div>
 			</div>
 			<div>
 				<ul class="list-inline">
@@ -39,10 +39,10 @@
 						</ul>
 					</li>
 					<li>
-						Aktiv von {{ valueeditor(('announcements',msg.id,'time_publish'), msg.time_publish) }}
+						Aktiv von {{ moderator_editor(('announcements',msg.id,'time_publish'), msg.time_publish) }}
 					</li>
 					<li>
-						bis {{ valueeditor(('announcements',msg.id,'time_expire'), msg.time_expire) }}
+						bis {{ moderator_editor(('announcements',msg.id,'time_expire'), msg.time_expire) }}
 					</li>
 				</ul>
 			</div>
@@ -97,9 +97,9 @@
 								<div class="item {% if loop.first %}active{% endif %}">
 									{% if ismod() %}
 										<div class="center-block">
-											{{ valueeditor(('featured',i.id,'text'), i.text) }}
-											{{ valueeditor(('featured',i.id,'title'), i.title) }}
-											{{ valuecheckbox(('featured',i.id,'visible'),i.visible) }}
+											{{ moderator_editor(('featured',i.id,'text'), i.text) }}
+											{{ moderator_editor(('featured',i.id,'title'), i.title) }}
+											{{ moderator_checkbox(('featured',i.id,'visible'),i.visible) }}
 										</div>
 									{% else %}
 										{{i.text|safe}}
diff --git a/templates/lecture.html b/templates/lecture.html
index d745d6114a01846b450239b1592f90f6c4bec6ce..84d07c6e05e3357309e87ff836d5607f1a4dcf42 100644
--- a/templates/lecture.html
+++ b/templates/lecture.html
@@ -2,9 +2,9 @@
 {% from 'macros.html' import video_download_btn %}
 {% from 'macros.html' import video_embed_btn %}
 {% from 'macros.html' import vtttime %}
-{% from 'macros.html' import valueeditor %}
-{% from 'macros.html' import valuedeletebtn %}
-{% from 'macros.html' import valuecheckbox %}
+{% from 'macros.html' import moderator_editor %}
+{% from 'macros.html' import moderator_delete %}
+{% from 'macros.html' import moderator_checkbox %}
 {% set page_border = 0 -%}
 
 {% extends "base.html" %}
@@ -44,9 +44,9 @@
 				<tr onclick="videojs('videoplayer').currentTime({{c['time']}})">
 					<td>{{ loop.index }}</td>
 					<td>{{ vtttime(c['time']) }}</td>
-					<td>{{ valueeditor(['chapters',c.id,'text'],c['text']) }}</td>
-					<td>{{ valuecheckbox(['chapters',c.id,'visible'], c.visible) }}</td>
-					<td>{{ valuedeletebtn(['chapters',c.id,'deleted']) }}</td>
+					<td>{{ moderator_editor(['chapters',c.id,'text'],c['text']) }}</td>
+					<td>{{ moderator_checkbox(['chapters',c.id,'visible'], c.visible) }}</td>
+					<td>{{ moderator_delete(['chapters',c.id,'deleted']) }}</td>
 				</tr>
 				{% endfor %}
 				</table>
diff --git a/templates/macros.html b/templates/macros.html
index 54215f9ab7f93d3cca9932bce3fdff5c40eb0841..16b0ed309562b375331d6e45fe4f308d210a0c3f 100644
--- a/templates/macros.html
+++ b/templates/macros.html
@@ -4,7 +4,8 @@
 		<div class="row">
 			<img class="col-xs-4" style="max-height: 100px; width: auto;" src="{{ config.VIDEOPREFIX }}/{{ lecture['titlefile'] }}" alt="Vorschaubild" onerror="this.src='{{url_for('static',filename='no-thumbnail.png')}}'; this.onerror=''; ">
 			<div class="col-xs-4">
-				<span><strong>{{ lecture.course.short }}</strong></span><br>
+				<span><strong>{{ lecture.course.short }}</strong>{% if ismod() %} <i>({{lecture.course_id}})</i>{% endif %}</span><br>
+				<span>{% if ismod() %}ID: {{lecture.id}}{% endif %}</span><br>
 				<span>{{ lecture['time'] }}</span>
 				{% if lecture['speaker'] %}
 					<div class="small">Gehalten von {{ lecture['speaker'] }} </div>
@@ -46,7 +47,7 @@
 	{% for v in videos|sort(attribute='player_prio', reverse=True) %}
 		<source type="video/mp4" src="{{ config.VIDEOPREFIX }}/{{ v.path }}" label="{{ v.format_description }}"/>
 	{% endfor %}
-	<track srclang="en" kind="chapters" src="{{ url_for('chapters',lectureid=lecture.id) }}" />
+	<track srclang="de" kind="chapters" src="{{ url_for('chapters',lectureid=lecture.id) }}" />
 </video>
 <script>
 $('#videoplayer').addClass("vjs-16-9");
@@ -66,7 +67,7 @@ $('#videoplayer').css("width");
 				<span class="col-xs-12 col-md-7">
 			{% endif %}
 				<a href="{{url_for('course', handle=course.handle)}}">
-				{{ course.title }}
+					{{ course.title }}{% if ismod() %}<i> ({{course.id}})</i>{% endif %}
 				</a>
 			</span>
 			<span class="col-xs-8 col-md-3">
@@ -80,11 +81,11 @@ $('#videoplayer').css("width");
 {% endmacro %}
 
 {% macro video_download_btn(videos) %}
-<span class="btn btn-primary dropdown-toggle{% if videos|length is equalto 0 %} disabled{% endif %}" type="button" data-toggle="dropdown">Download <span class="caret"></span></span>
+<span class="btn btn-default dropdown-toggle{% if videos|length is equalto 0 %} disabled{% endif %}" type="button" data-toggle="dropdown">Download <span class="caret"></span></span>
 <ul class="dropdown-menu">
 	{% for v in videos|sort(attribute='prio', reverse=True) %}
 		{% if v.downloadable %}	
-			<li><a href="{{ config.VIDEOPREFIX }}/{{v.path}}">{{ valuecheckbox(['videos',v.id,'visible'], v.visible) }} {{v.format_description}} ({{v.file_size|filesizeformat(true)}})</a></li>
+		<li><a href="{{ config.VIDEOPREFIX }}/{{v.path}}">{{ moderator_checkbox(['videos',v.id,'visible'], v.visible) }} {{v.format_description}} ({{v.file_size|filesizeformat(true)}}) {{moderator_delete(['videos',v.id,'deleted'])}} </a></li>
 		{% endif %}
 	{% endfor %}
 </ul>
@@ -113,27 +114,28 @@ $('#embedcodebtn').popover(
 </script>
 {% endmacro %}
 
-{% macro lecture_list_item(lecture,videosi,global_acls) %}
+{% macro lecture_list_item(lecture,videos,global_acls) %}
 <li class="list-group-item" id="lecture-{{lecture.id}}">
 	<div class="row">
 		<img class="col-sm-2 col-xs-12"src="{{ config.VIDEOPREFIX }}/{{lecture.titlefile}}" alt="Vorschaubild" onerror="this.src='{{url_for('static',filename='no-thumbnail.png')}}'; this.onerror=''; ">
 		<span class="col-sm-3 col-xs-12">
 			<ul class="list-unstyled">
-				<li>{{ valueeditor(['lectures',lecture.id,'title'], lecture.title) }}</li>
-				{% if lecture.speaker or ismod() %}<li>Gehalten von {{ valueeditor(['lectures',lecture.id,'speaker'], lecture.speaker) }}</li>{% endif %}
-				<li>{{ valueeditor(['lectures',lecture.id,'time'], lecture.time) }} </li>
-				<li>Dauer: {{ valueeditor(['lectures',lecture.id,'duration'], lecture.duration) }} min</li>
+				<li>{{ moderator_editor(['lectures',lecture.id,'title'], lecture.title) }}</li>
+				{% if lecture.speaker or ismod() %}<li>Gehalten von {{ moderator_editor(['lectures',lecture.id,'speaker'], lecture.speaker) }}</li>{% endif %}
+				<li>{{ moderator_editor(['lectures',lecture.id,'time'], lecture.time) }} </li>
+				<li>Dauer: {{ moderator_editor(['lectures',lecture.id,'duration'], lecture.duration) }} min</li>
 				{% if  ismod() %}
+				<li>ID: <a href="{{url_for('course',handle=lecture.course.handle)}}#lecture-{{lecture.id}}">{{lecture.id}}</a></i>
 				{% endif %}
 			</ul>
 		</span>
 		<span class="col-sm-3 col-xs-12">
 			<ul class="list-unstyled">
-				<li>{{ valueeditor(['lectures',lecture.id,'comment'], lecture.comment) }}</li>
+				<li>{{ moderator_editor(['lectures',lecture.id,'comment'], lecture.comment) }}</li>
 				{% if  ismod() %}
-				<li>{{ valueeditor(['lectures',lecture.id,'internal'], lecture.internal) }}</li>
-				<li>Sichtbar: {{ valuecheckbox(['lectures',lecture.id,'visible'], lecture.visible) }}</li>
-				<li>Hörsaal: {{ valueeditor(['lectures',lecture.id,'place'], lecture.place) }} </li>
+				<li>{{ moderator_editor(['lectures',lecture.id,'internal'], lecture.internal) }}</li>
+				<li>Sichtbar: {{ moderator_checkbox(['lectures',lecture.id,'visible'], lecture.visible) }}</li>
+				<li>Hörsaal: {{ moderator_editor(['lectures',lecture.id,'place'], lecture.place) }} </li>
 				{% endif %}
 			</ul>
 		</span>
@@ -149,10 +151,10 @@ $('#embedcodebtn').popover(
 					</a>
 				</li>
 				<li>
-					{{ valuedeletebtn(['lectures',lecture.id,'deleted']) }}
+					{{ moderator_delete(['lectures',lecture.id,'deleted']) }}
 				</li>
 				<li>
-					{{ editacl('lecture', lecture.id, lecture.auth, global_acls) }}
+					{{ moderator_acleditor('lecture', lecture.id, lecture.auth, global_acls) }}
 				</li>
 			</ul>
 		</div>
@@ -160,39 +162,39 @@ $('#embedcodebtn').popover(
 </li>
 {% endmacro %}
 
-{% macro valueeditor (path,value) %}
+{% macro moderator_editor (path,value) %}
 	{% if ismod() %}
-	<span class="modeditable" data-path="{{path|join('.')}}" ><a class="modeditablesign btn btn-default" tabindex="0" style="padding: 3px; margin-right: 5px;"><span class="glyphicon glyphicon-pencil"></span></a><span class="modeditablevalue">{{ value|safe }}</span></span>
+	<span class="moderator_editor" data-path="{{path|join('.')}}" ><a class="moderator_editor_sign btn btn-default" tabindex="0" style="padding: 3px; margin-right: 5px;"><span class="glyphicon glyphicon-pencil"></span></a><span class="moderator_editor_value">{{ value|safe }}</span></span>
 	{% else %}
 		{{value|fixnl|safe}}
 	{% endif %}
 {% endmacro %}
 
-{% macro valuecheckbox (path,value) %}
+{% macro moderator_checkbox (path,value) %}
 	{% if ismod() %}
-	<input type="checkbox" data-path="{{path|join('.')}}" {% if value %} checked {% endif %} onchange="moderatorinterface.change(this)"/>
+	<input type="checkbox" data-path="{{path|join('.')}}" {% if value %} checked {% endif %} onchange="moderator.editor.changeboxclick(this)"/>
 	{% endif %}
 {% endmacro %}
 
-{% macro valuedeletebtn (path) %}
+{% macro moderator_delete (path) %}
 	{% if ismod() %}
-	<button class="btn btn-default" style="background-color: red;" data-path="{{path|join('.')}}" onclick="moderatorinterface.delete(this)">
+	<button class="btn btn-default" style="background-color: red;" data-path="{{path|join('.')}}" onclick="moderator.editor.deletebtnclick(this)">
 		<span class="glyphicon glyphicon-trash"></span>
 	</button>
 	{% endif %}
 {% endmacro %}
 
-{% macro editacl(type,id,acl,global_acls) %}
+{% macro moderator_acleditor(type,id,acl,global_acls) %}
 	{% set tmp = global_acls.extend(acl) %}
 	{% if (not acl) %}
 		{% if ismod() %}
-		<button class="btn btn-default modeditacl" data-type="{{ type }}" data-id="{{ id }}">
+		<button class="btn btn-default modmoderator_acleditor" data-type="{{ type }}" data-id="{{ id }}">
 			<span class="fa fa-unlock" aria-hidden="true" style="color: green;"></span>
 		</button>
 		{% endif %}
 	{% else %}
 			{% if ismod() %}
-			<button class="btn btn-default modeditacl" data-type="{{ type }}" data-id="{{ id }}" onclick="">
+			<button class="btn btn-default modmoderator_acleditor" data-type="{{ type }}" data-id="{{ id }}" onclick="">
 			{% else %}
 			<a>
 			{% endif %}