diff --git a/_import.html b/_import.html
index a7f3d08..5ea2346 100644
--- a/_import.html
+++ b/_import.html
@@ -140,7 +140,7 @@
 						<!--{{vtSet: ReachedLimit="1"}}-->
 						<!--{{vtExit}}-->
 					<!--{{vtElseIf: {vtResult} .bw. ERROR-2 }}-->
-						FEHLER: Bilder konnten nicht importiert werden, da Bilderordner nicht existiert
+						FEHLER: Bilder konnten nicht importiert werden, da Galerie nicht existiert
 					<!--{{vtElseIf: {vtResult} .eq. 0 }}-->
 						keine Bilder zum Importieren gefunden
 					<!--{{vtElseIf: {vtResult} .gt. 0 }}-->
diff --git a/_importdialog.html b/_importdialog.html
index 71d4a47..d67e406 100644
--- a/_importdialog.html
+++ b/_importdialog.html
@@ -183,7 +183,7 @@
 				<tr>
 					<td colspan="3">
 						Wenn Sie unten auf &raquo;Importvorgang starten&laquo; klicken, prüft Pixtacy, ob neue Bilder hochgeladen wurden, und importiert
-						diese mit den Einstellungen, die Sie festgelegt haben. <!--{{vtIf: {vtGet:bereits_importiert} .gt. 0 }}-->Es werden nur die Unterordner überprüft, deren Änderungsdatum sich seit 
+						diese mit den Einstellungen, die Sie festgelegt haben. <!--{{vtIf: {vtGet:bereits_importiert} .gt. 0 }}-->Es werden nur die Galerien überprüft, deren Änderungsdatum sich seit 
 						dem letzten Import verändert hat, es sei denn, Sie erzwingen eine erneute Prüfung.<!--{{vtEndIf}}-->
 						<!--{{vtIf: {vtID} .neq. {vtGet:ID_Bilder} .or. {vtGet:bereits_importiert} .gt. 0 }}-->
 						<br>
@@ -191,15 +191,15 @@
 						<!--{{vtEndIf}}-->
 						<!--{{vtIf: {vtID} .neq. {vtGet:ID_Bilder} }}-->
 							<select name="-action">
-								<option value="0">nur aktuellen Ordner und dessen Unterordner auf neue Bilder prüfen</option>
-								<option value="1">alle Ordner auf neue Bilder prüfen</option>
+								<option value="0">nur aktuelle Galerie und Untergalerien auf neue Bilder prüfen</option>
+								<option value="1">alle Galerien auf neue Bilder prüfen</option>
 							</select>
 							&nbsp;&nbsp;&nbsp;
 						<!--{{vtEndIf}}-->
 						<!--{{vtIf: {vtGet:bereits_importiert} .gt. 0 }}-->
 							<input type="hidden" name="import_ignore_dates" value="">
 							<input id="checkbox_ignore_dates" type="checkbox" name="import_ignore_dates" value="1">
-							<label for="checkbox_ignore_dates">erneute Prüfung erzwingen (Änderungsdatum der Ordner ignorieren)</label>
+							<label for="checkbox_ignore_dates">erneute Prüfung erzwingen (Änderungsdatum der Galerien ignorieren)</label>
 						<!--{{vtEndIf}}-->
 						<br>
 						<br>
@@ -211,7 +211,7 @@
 						<label for="source_hires">High-res-Bilder</label><br>
 						<br>
 						<label for="hires_blacklist" class="{{vtGet:BlacklistStatus}}">
-							Unterordner ignorieren:
+							Verzeichnisse ignorieren:
 						</label>
 						<!--{{vtIf: {vtGet:AutoBlacklist} .neq. }}-->
 						<input type="text" readonly name="hires_autoblacklist" id="hires_autoblacklist" value="{{vtGet:AutoBlacklist}}" size="{{vtGet:AutoBlacklist|strlen}}" {{vtGet:BlacklistStatus}}
@@ -221,7 +221,7 @@
 				<tr>
 					<td colspan="3">
 						<br>
-						<h2 class="box">Einstellungen für neue Bilderordner</h2>
+						<h2 class="box">Einstellungen für neue Galerien</h2>
 					</td>
 				</tr>
 				<tr>
@@ -254,7 +254,7 @@
 					<td>
 						<input type="hidden" name="import_inherit_sharing" value="">
 						<input type="checkbox" name="import_inherit_sharing" id="import_inherit_sharing" value="1" {{vtIf:{vtSession:import_inherit_sharing}.eq.1}}checked{{vtEndIf}}>
-						<label for="import_inherit_sharing">Unterordner erben Freigabeeinstellung des Hauptordners</label>
+						<label for="import_inherit_sharing">Untergalerien erben Freigabeeinstellung der Hauptgalerie</label>
 					</td>
 				</tr>
 				<tr><td colspan="3">&nbsp;</td></tr>
@@ -326,7 +326,7 @@
 					<td>
 							<input type="hidden" name="import_inherit_products" value="">
 							<input type="checkbox" name="import_inherit_products" id="import_inherit_products" value="1" {{vtIf:{vtSession:import_inherit_products}.eq.1}}checked{{vtEndIf}}>
-							<label for="import_inherit_products">Unterordner erben Sortiment des Hauptordners</label>
+							<label for="import_inherit_products">Untergalerien erben Sortiment der Hauptgalerie</label>
 					</td>
 				</tr>
 				<tr><td colspan="3">&nbsp;</td></tr>
diff --git a/_move.html b/_move.html
index 12c7259..7dda383 100644
--- a/_move.html
+++ b/_move.html
@@ -71,7 +71,7 @@
 		{
 			if ( f.target_id.value == '{{vtContainerId}}' )
 			{
-				alert( 'Das Bild liegt bereits im ausgewählten Ordner.' );
+				alert( 'Das Bild gehört befindet sich bereits in der ausgewählten Galerie.' );
 				return false;
 			}
 
@@ -190,13 +190,13 @@
 
 			<!--{{vtIf: {vtPageType} .eq. image }}-->
 				<h1>Bild &raquo;{{vtIf:{Name}.neq.}}{{Name}}{{vtElse}}{{vtName}}{{vtEndIf}}&laquo; verschieben</h1>
-				<p>Bitte wählen Sie den Ordner, in den das Bild verschoben werden soll:</p>
+				<p>Bitte wählen Sie die Galerie, in die das Bild verschoben werden soll:</p>
 			<!--{{vtElseIf: {vtPageType} .eq. imagelist }}-->
-				<h1>Bilderordner &raquo;{{vtIf:{Name}.neq.}}{{Name}}{{vtElse}}{{vtName}}{{vtEndIf}}&laquo; verschieben</h1>
-				<p>Bitte wählen Sie aus, wohin der Bilderordner verschoben werden soll:</p>
+				<h1>Galerie &raquo;{{vtIf:{Name}.neq.}}{{Name}}{{vtElse}}{{vtName}}{{vtEndIf}}&laquo; verschieben</h1>
+				<p>Bitte wählen Sie aus, wohin die Galerie verschoben werden soll:</p>
 			<!--{{vtElseIf: {vtPageType} .eq. lightbox }}-->
 				<h1>Bilder verschieben</h1>
-				<p>Bitte wählen Sie den Ordner, in den die Bilder aus der Lightbox verschoben werden sollen:</p>
+				<p>Bitte wählen Sie die Galerie, in welche die Bilder aus der Lightbox verschoben werden sollen:</p>
 			<!--{{vtEndIf}}-->
 
 			<div id="outertree">
diff --git a/_register_pp.html b/_register_pp.html
index bd1c9a2..946649c 100644
--- a/_register_pp.html
+++ b/_register_pp.html
@@ -19,7 +19,7 @@
 					{{vtElseIf: {vtPostValue:receiver_email} .neq. {vtGlobal:pxtcPaypalID} }}
 						{{vtSet: MailSubject="PayPal-Zahlung mit falschem Empfaenger ({vtPostValue:receiver_email})"}}
 					{{vtElse}}
-						{{vtIf: {vtPostValue:payment_status} .eq. Completed }}
+						{{vtIf: {vtPostValue:payment_status} .eq. Pending }}
 							{{vtSet: MailSubject="Nicht-ausgeführte PayPal-Zahlung ({vtPostValue:pending_reason})" }}
 							{{vtSet: bezahlt = "1" }}
 						{{vtEndIf}}
diff --git a/_repair.html b/_repair.html
index 517b2fc..28b0b34 100644
--- a/_repair.html
+++ b/_repair.html
@@ -3,7 +3,7 @@
 <html>
 <head>
 	<!--{{vtInclude: includes/initialize.html}}-->
-	<title>Bilderordner überprüfen</title>
+	<title>Galerie überprüfen</title>
 	<meta http-equiv="content-type" content="text/html;charset=utf-8">
 	{{vtInclude: includes/html_headers_internal.html }}
 	<script type="text/javascript">
@@ -27,7 +27,7 @@
 
 		<!--{{vtIf: {vtGetValue:-act} .eq. delete}}-->
 
-			<h1>Bilderordner gelöscht</h1>
+			<h1>Galerie gelöscht</h1>
 
 			<!--{{vtIf: {vtResult} .eq. 1}}-->
 				<p>Der Löschvorgang wurde erfolgreich ausgeführt.</p>
@@ -66,12 +66,12 @@
 							{{vtSet: Verzeichnis="" }}
 							{{vtSet: FolderExists="" }}
 
-							# prüfe Ordner {{vtDbRow:verzeichnis}} ({{vtDbRow:id}})
+							# prüfe Galerie {{vtDbRow:verzeichnis}} ({{vtDbRow:id}})
 
 							{{vtIf: {vtDbRow:verzeichnis} .bw. / }}
 								{{vtCalc: file_exists( '{vtGlobal:pxtcPathLores}{vtDbRow:verzeichnis}' ) ? '1' : '0' }}
 								{{vtIf: {vtResult} .eq. 1 }}
-									# Ordner existiert - keine Reparatur erforderlich (nur fs_status setzen)
+									# Galerie existiert - keine Reparatur erforderlich (nur fs_status setzen)
 									{{vtDo: -act="update", -obj="{vtDbRow:id}", fs_status="1"}}
 									{{vtSet: FolderExists="1" }}
 								{{vtEndIf}}
@@ -79,7 +79,7 @@
 
 							{{vtIf: {vtGet:FolderExists} .neq. 1}}
 
-								# Ordner existiert nicht - prüfe enthaltene Bilder
+								# Galerie existiert nicht - prüfe enthaltene Bilder
 								{{vtSelect: -origin="{vtDbRow:id}", -type="image", -filter="{Verzeichnis} .bw. /, {Verzeichnis} .neq. {vtDbRow:verzeichnis}", -depth="1", -max="3"}}
 									{{vtLoop: -size="3"}}
 										# prüfe Bild {{vtID}}: {{Verzeichnis:raw}}/{{Dateiname}}
@@ -93,13 +93,13 @@
 								{{vtEndSelect}}
 
 								{{vtIf: {vtGet:Verzeichnis} .eq.}}
-									## kein Bild gefunden, prüfe enthaltene Bilderordner
+									## kein Bild gefunden, prüfe enthaltene Galerien
 									{{vtSelect: -origin="{vtDbRow:id}", -type="imagelist", -filter="{Verzeichnis} .bw. /, {Verzeichnis} .neq. {vtDbRow:verzeichnis}", -depth="1", -max="3"}}
 										{{vtLoop: -size="3"}}
-											# prüfe Bilderordner {{vtID}}: {{Verzeichnis:raw}}
+											# prüfe Galerie {{vtID}}: {{Verzeichnis:raw}}
 											{{vtCalc: file_exists( '{vtGlobal:pxtcPathLores}/{Verzeichnis:raw}' ) ? '1' : '0' }}
 											{{vtIf: {vtResult} .eq. 1}}
-												# Bilderordner existiert!
+												# Verzeichnis existiert!
 												{{vtCalc: dirname( '{Verzeichnis:escaped}' ) }}
 												{{vtSet: Verzeichnis}}
 												{{vtExit}}
@@ -109,25 +109,25 @@
 								{{vtEndIf}}
 
 								{{vtIf: {vtGet:Verzeichnis} .neq.}}
-									## Verzeichnis gefunden, aber gibt es evtl. schon einen zugehörigen Bilderordner?
+									## Verzeichnis gefunden, aber gibt es evtl. schon eine zugehörigen Galerie?
 									{{vtSelect: -origin="{vtGet:ID_Bilder}", -type="imagelist", -filter="{Verzeichnis} .eq. {vtGet:Verzeichnis}"}}
 										{{vtIf: {vtCountSelection} .eq. 0}}
-											## es gibt noch keinen zugehörigen Bilderordner - Verzeichnisangabe des aktuellen Bilderordners ändern in {{vtGet:Verzeichnis}}
+											## es gibt noch keine zugehörige Galerie - Verzeichnisangabe der aktuellen Galerie ändern in {{vtGet:Verzeichnis}}
 											{{vtDo: -act="update", -obj="{vtDbRow:id}", Verzeichnis="{vtGet:Verzeichnis}", fs_status="1"}}
 											{{vtCalc: {vtGet:Counter} + 1 }}
 											{{vtSet: Counter}}
 										{{vtElse}}
-											## es gibt bereits einen Bilderordner mit derselben Verzeichnisangabe - nichts zu machen
+											## es gibt bereits eine Galerie mit derselben Verzeichnisangabe - nichts zu machen
 											{{vtSet: Verzeichnis="xxx" }}
 											{{vtLoop}}
-												# Bilderordner:  {{Verzeichnis}} ({{vtID}})
+												# Galerie:  {{Verzeichnis}} ({{vtID}})
 											{{vtEndLoop}}
 										{{vtEndIf}}
 									{{vtEndSelect}}
 								{{vtEndIf}}
 
 								{{vtIf: {vtGet:Verzeichnis} .eq. }}
-									# lösche Bilderordner
+									# lösche Galerie
 									{{vtSet: Item[id]="{vtDbRow:id}", Item[name]="{vtDbRow:name}"}}
 									{{vtSet: DeletionList[]="{vtGet:Item}"}}
 								{{vtEndIf}}
@@ -143,19 +143,19 @@
 
 			<!--{{vtIf: {vtGet:Counter} .gt. 0}}-->
 				<!--{{vtSet: Message="1"}}-->
-				<p>Es wurde(n) {{vtGet:Counter}} Bilderordner repariert</p>
+				<p>Es wurde(n) {{vtGet:Counter}} Galerie(n) repariert</p>
 			<!--{{vtEndIf}}-->
 
 			<!--{{vtIf: {vtGet:DeletionList} .neq. }}-->
 				<form action="{{vtLink:-met='repair',-act='delete',-force='1'}}" method="post" onsubmit="return handleSubmit(this)">
-				<p>Die folgenden Bilderordner haben keinen Bezug zu einem Verzeichnis auf der Serverfestplatte und sollten daher entfernt werden:</p>
+				<p>Die folgenden Galerien haben keinen Bezug zu einem Verzeichnis auf der Serverfestplatte und sollten daher entfernt werden:</p>
 				<ul style="height:160px; border:1px solid #ccc; overflow:auto">
 				<!--{{vtRepeat:{vtGet:DeletionList} }}-->
 					<li><a href="{{vtLink:{vtItem:id} }}" class="text_item" target="_blank">{{vtItem:name}}</a></li>
 					<input type="hidden" name="-obj[]" value="{{vtItem:id}}">
 				<!--{{vtEndRepeat}}-->
 				</ul>
-				<input type="submit" name="btnSubmit" value="Aufgelistete Bilderordner löschen">
+				<input type="submit" name="btnSubmit" value="Aufgelistete Galerien löschen">
 				&nbsp;&nbsp;
 				<!--{{vtIf: {vtGet:Message} .neq. 1}}-->
 					<span id="cancel">oder <a href="{{vtLink}}" class="text_link">abbrechen</a></span>
@@ -167,7 +167,7 @@
 			<!--{{vtEndIf}}-->
 			
 			<!--{{vtIf: {vtGet:Message} .neq. 1}}-->
-				<p>Es wurden keine reparaturbedürftigen Bilderordner gefunden.</p>
+				<p>Es wurden keine reparaturbedürftigen Galerien gefunden.</p>
 			<!--{{vtEndIf}}-->
 
 			<!--{{vtIf: {vtGet:HideCancel} .neq. 1}}-->
@@ -176,11 +176,11 @@
 
 		<!--{{vtElse}}-->
 
-			<h1>Bilderordner überprüfen</h1>
+			<h1>Galerien überprüfen</h1>
 			<form action="{{vtLink:-met='repair',x='1'}}" method="post" onsubmit="return handleSubmit(this)">
 				<p>
 					In dieser Pixtacy-Version wurde die Art der Datenhaltung gegenüber früheren Versionen geändert. Aus diesem Grund
-					ist es notwendig, dass alle Bilderordner einer Prüfung unterzogen und gegebenenfalls repariert werden.
+					ist es notwendig, dass alle Galerien einer Prüfung unterzogen und gegebenenfalls repariert werden.
 				</p>
 				<p>
 					Erst wenn die Überprüfung durchgeführt worden ist, stehen die folgende Funktionen zur Verfügung:
@@ -188,8 +188,8 @@
 				<ul>
 					<li>neue Bilder importieren</li>
 					<li>Bilder über den eingebauten Uploader hochladen</li>
-					<li>neue Unterordner anlegen</li>
-					<li>Dateien bzw. Ordner von der Serverfestplatte löschen</li>
+					<li>neue Untergalerie anlegen</li>
+					<li>Dateien bzw. Verzeichnisse von der Serverfestplatte löschen</li>
 				</ul>
 				<p>&nbsp;</p>
 				<p>
diff --git a/_serp.html b/_serp.html
index 83e96af..b39cfa3 100644
--- a/_serp.html
+++ b/_serp.html
@@ -46,6 +46,14 @@
 		{{vtSet: ShowCartButtons = "1" }}
 	{{vtEndIf}}
 
+	{{vtIf: {vtGlobal:pxtcSearchSortfield} .eq.}}
+		{{vtSet: SortField="name"}}
+	{{vtElseIf: {vtGlobal:pxtcSearchSortfield} .cn. .}}
+		{{vtSet: SortField="{vtGlobal:pxtcSearchSortfield}"}}
+	{{vtElse}}
+		{{vtSet: SortField="vt{vtGlobal:pxtcSearchSortfield}"}}
+	{{vtEndIf}}
+
 	{{vtIf: {vtGetValue:-search} .eq. % .or. {vtPostValue:-search} .eq. % }}
 		{{vtDo: -act="setSelection", -name="mainsearch", -origin="{vtID}", -type="image", 
 			-max="{vtGlobal:pxtcSearchLimit}",
@@ -70,14 +78,6 @@
 		{{vtCalc: analyzeSearchString() }}
 		{{vtSet: Search}}
 		
-		{{vtIf: {vtGlobal:pxtcSearchSortfield} .eq.}}
-			{{vtSet: SortField="name"}}
-		{{vtElseIf: {vtGlobal:pxtcSearchSortfield} .cn. .}}
-			{{vtSet: SortField="{vtGlobal:pxtcSearchSortfield}"}}
-		{{vtElse}}
-			{{vtSet: SortField="vt{vtGlobal:pxtcSearchSortfield}"}}
-		{{vtEndIf}}
-
 		{{vtDo: -act="setSelection", -name="mainsearch", -origin="{vtID}", -type="image", 
 			-max="{vtGlobal:pxtcSearchLimit}",
 			-sortfield="{vtGet:SortField}", -sortorder="{vtGlobal:pxtcSearchSortorder}",
diff --git a/ajax/cart_change.html b/ajax/cart_change.html
index 0aa5335..56ee847 100644
--- a/ajax/cart_change.html
+++ b/ajax/cart_change.html
@@ -1,5 +1,6 @@
 {{vtScript}}
 
+	{{vtPromo}}
 	{{vtInclude: includes/initialize.html}}
 	
 	{{vtIf: {vtGetValue:q} .lt. 1 }}
diff --git a/ajax/count_images.html b/ajax/count_images.html
index d1f3890..1c0de68 100644
--- a/ajax/count_images.html
+++ b/ajax/count_images.html
@@ -1,6 +1,6 @@
 {{vtScript}}
 
-	### liefert die Anzahl der Bilder zurück, die sich im aktuellen Bilderordner befinden ###
+	### liefert die Anzahl der Bilder zurück, die sich in der aktuellen Galerie befinden ###
 
 	{{vtInclude: includes/initialize.html}}
 
diff --git a/ajax/get_filelist.html b/ajax/get_filelist.html
index 37aea48..5a67c16 100644
--- a/ajax/get_filelist.html
+++ b/ajax/get_filelist.html
@@ -29,17 +29,14 @@
 		{{vtSet: dir }}
 
 		{{vtIf: {vtGet:dir} .eq. /}}
-			{{vtSet: folder=""}}
 			{{vtSet: pfad="{vtGet:BasePath}/"}}
 			{{vtUse: {vtGet:ID_Bilder} }}
 				{{vtSet: ImagelistID="{vtID}"}}
 				{{vtSet: ImagelistCountPages="{vtCountPages}"}}
 			{{vtEndUse}}
 		{{vtElse}}
-			{{vtCalc: substr( '{vtGet:dir|utf8_decode}', 1 ) }}
-			{{vtSet: folder}}
-			{{vtSet: pfad="{vtGet:BasePath}/{vtGet:folder,raw}/"}}
-			{{vtSelect: -origin="{vtGet:ID_Bilder}", -type="imagelist", -filter="{Verzeichnis} .eq. {vtGet:dir|utf8_decode}"}}
+			{{vtSet: pfad="{vtGet:BasePath}/{vtGet:dir,raw}/"}}
+			{{vtSelect: -origin="{vtGet:ID_Bilder}", -type="imagelist", -filter="{Verzeichnis} .eq. {vtGet:dir}"}}
 				{{vtLoop: -show="all"}}
 					{{vtSet: ImagelistID="{vtID}"}}
 					{{vtSet: ImagelistCountPages="{vtCountPages}"}}
@@ -153,7 +150,7 @@
 			{{vtEndIf}}
 
 			{{vtCall: -name="create_imagelist", 
-							Dir="{vtGet:dir|utf8_decode}", 
+							Dir="{vtGet:dir}", 
 							PagePath="{vtGet:PagePath}",
 							Title="{vtGet:Title}",
 							Description="{vtGet:FolderInfo[description]}",
@@ -170,9 +167,9 @@
 			}}
 
 			{{vtUse: {vtResult} }}
-				{{vtSet: Ergebnis = 'Verzeichnis <a href="{vtLink}">{vtGet:dir|utf8_decode}</a> erstellt' }}
+				{{vtSet: Ergebnis = 'Verzeichnis <a href="{vtLink}">{vtGet:dir}</a> erstellt' }}
 				{{vtIf: {vtGet:UserCreationError} .eq. 1 }}
-					{{vtSet: Ergebnis = '{vtGet:Ergebnis} <span style="color:red">Benutzer {vtGet:FolderInfo[user_name]} konnte nicht erstellt werden &mdash; Ordner nicht freigegeben</span>' }}
+					{{vtSet: Ergebnis = '{vtGet:Ergebnis} <span style="color:red">Benutzer {vtGet:FolderInfo[user_name]} konnte nicht erstellt werden &mdash; Galerie nicht freigegeben</span>' }}
 				{{vtEndIf}}
 				{{vtIf: {vtGet:SetUserStartpage} .eq. * }}
 					{{vtDo: -act="update", -obj="{vtGet:User}", startpage="{vtId}" }}
diff --git a/ajax/get_images.html b/ajax/get_images.html
index 0e4f46b..4d9018b 100644
--- a/ajax/get_images.html
+++ b/ajax/get_images.html
@@ -1,6 +1,6 @@
 {{vtScript}}
 
-	### liefert Liste aller Bilder zurück, die sich im aktuellen Bilderordner befinden ###
+	### liefert Liste aller Bilder zurück, die sich in der aktuellen Galerie befinden ###
 
 	{{vtInclude: includes/initialize.html}}
 
diff --git a/ajax/import_image.html b/ajax/import_image.html
index d149a44..8638c5d 100644
--- a/ajax/import_image.html
+++ b/ajax/import_image.html
@@ -8,23 +8,23 @@
 	{{vtCalc: str_replace( '&amp;', '&', '{vtGetValue:path}' ) }}
 	{{vtSet: Path }}
 
-	{{vtSet: Ergebnis="FEHLER: '{vtGet:Path|utf8_decode}' konnte nicht importiert werden"}}
+	{{vtSet: Ergebnis="FEHLER: '{vtGet:Path}' konnte nicht importiert werden"}}
 
 	{{vtIf: {vtGetValue:src} .eq. hires }}
 		{{vtCalc: update_lores_image( '{vtGet:Path}', TRUE ) }}
 	{{vtEndIf}}
 	
-	{{vtLog: ajax/import_image.html: {vtGet:Path|utf8_decode} }}
+	{{vtLog: ajax/import_image.html: {vtGet:Path} }}
 
-	{{vtCall: -name="create_image", Path="{vtGet:Path|utf8_decode}", Charset="{vtSession:import_charset}", AdditionalKeywords="{vtSession:import_keywords}" }}
+	{{vtCall: -name="create_image", Path="{vtGet:Path}", Charset="{vtSession:import_charset}", AdditionalKeywords="{vtSession:import_keywords}" }}
 
 	{{vtIf: {vtResult} .bw. ERROR-1 }}
 		{{vtSet: Ergebnis="FEHLER: Limit der Demoversion erreicht"}}
 	{{vtElseIf: {vtResult} .bw. ERROR-2 }}
-		{{vtSet: Ergebnis="FEHLER: '{vtGet:Path|utf8_decode}' konnte nicht importiert werden, da Bilderordner nicht existiert"}}
+		{{vtSet: Ergebnis="FEHLER: '{vtGet:Path}' konnte nicht importiert werden, da Galerie nicht existiert"}}
 	{{vtElse}}
 		{{vtUse: {vtResult} }}
-			{{vtSet: Ergebnis='<a href="{vtLink}">{vtGet:Path|utf8_decode}</a> importiert'}}
+			{{vtSet: Ergebnis='<a href="{vtLink}">{vtGet:Path}</a> importiert'}}
 		{{vtEndUse}}
 	{{vtEndIf}}
 
diff --git a/ajax/order_dialog.html b/ajax/order_dialog.html
index 05bb0f4..7307443 100644
--- a/ajax/order_dialog.html
+++ b/ajax/order_dialog.html
@@ -1,6 +1,7 @@
 {{vtInclude: includes/initialize.html}}
 
 <div class="modal-dialog modal-lg" data-type="{{vtPageType}}">
+	<!-- {{vtPromo}} -->
 	<div class="modal-content">
 		<div class="modal-header">
 			<!--{{vtIf: {vtPageType} .eq. image }}-->
diff --git a/assortment.html b/assortment.html
index 356dfe2..2f8ed6c 100644
--- a/assortment.html
+++ b/assortment.html
@@ -18,7 +18,7 @@
 		<p style="margin-bottom:2em"><a href="{{vtLink:..}}">&Uuml;bersicht</a></p>
 		<h1>
 			Sortiment &raquo;{{Name}}&laquo;
-			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1 .and. {Name_en} .neq.}}-->
+			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1 .and. {Name_en} .neq.}}-->
 				/ &raquo;{{Name_en}}&laquo;
 			<!--{{vtEndIf}}-->
 		</h1>
diff --git a/assortment.vtedit.html b/assortment.vtedit.html
index 1a57519..fa5f902 100644
--- a/assortment.vtedit.html
+++ b/assortment.vtedit.html
@@ -78,7 +78,7 @@
 						<!--{{vtEndIf}}-->
 					</td>
 				</tr>
-				<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+				<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 				<tr>
 					<td align="right" class="normal">Name engl.</td>
 					<td class="normal" style="padding-bottom:15px">
diff --git a/checkout.html b/checkout.html
index dd01597..5d8fd09 100644
--- a/checkout.html
+++ b/checkout.html
@@ -493,8 +493,8 @@
 
 				<!--{{vtIf: {vtGet:IncludeCouponButton} .eq. 1 }}-->
 					<div class="form-group">
-						<label for="fldCouponCode">{{vtGet:s_fld_voucher_code}}:</label>
-						<input class="form-control" type="text" name="input_couponcode" id="fldCouponCode" value="{{vtSession:Gutscheincode}}" placeholder="{{vtGet:s_fld_voucher_code}}">
+						<label for="input_couponcode">{{vtGet:s_fld_voucher_code}}:</label>
+						<input class="form-control" type="text" name="input_couponcode" id="input_couponcode" value="{{vtSession:Gutscheincode}}" placeholder="{{vtGet:s_fld_voucher_code}}">
 					</div>
 				<!--{{vtEndIf}}-->
 
@@ -1004,8 +1004,6 @@
 
 		function handleSubmit( f )
 		{
-			console.log( f );
-
 			if ( f.Anrede.options[ f.Anrede.selectedIndex ].value == '' || f.Vorname.value == '' || f.Name.value == '' || f.Strasse.value == '' || f.PLZ.value == '' || f.Ort.value == '' || f.Email.value == '' )
 			{
 				my_dialog('{{vtGet:s_msg_0015,escaped}}');
diff --git a/checkout.vtedit.html b/checkout.vtedit.html
index 2470faf..296ff59 100644
--- a/checkout.vtedit.html
+++ b/checkout.vtedit.html
@@ -100,7 +100,7 @@
 					<i>Tragen Sie hier einen Text ein, der als Beschriftung für das Ankreuzfeld zum Abonnieren dienen soll. Lassen Sie das Feld leer, wenn Sie kein Abonnement anbieten wollen.</i>
 				</td>
 			</tr>
-			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 			<tr>
 				<td align="right" class="normal" width="120">Abonnieren-Text engl.</td>
 				<td class="normal" width="360">
@@ -141,7 +141,7 @@
 				<td align="right" class="normal">Headline</td>
 				<td class="normal" colspan="2">
 					<input type="text" name="Finish_Headline" size="50" value="{{Finish_Headline}}">
-					<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+					<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 					&nbsp;&nbsp;&nbsp;
 					engl.:
 					<input type="text" name="Finish_Headline_en" size="50" value="{{Finish_Headline_en}}">
@@ -156,7 +156,7 @@
 				</td>
 			</tr>
 			<tr><td colspan="3">&nbsp;</td></tr>
-			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 			<tr>
 				<td align="right" class="normal">Text engl.</td>
 				<td class="normal" colspan="2">
@@ -189,7 +189,7 @@
 					<i></i>
 				</td>
 			</tr>
-			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 			<tr>
 				<td align="right" class="normal">Anfang engl.</td>
 				<td class="normal">
@@ -209,7 +209,7 @@
 					<i></i>
 				</td>
 			</tr>
-			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 			<tr>
 				<td align="right" class="normal">Ende engl.</td>
 				<td class="normal">
diff --git a/contact.vtedit.html b/contact.vtedit.html
index 02e4980..6f87083 100644
--- a/contact.vtedit.html
+++ b/contact.vtedit.html
@@ -49,7 +49,7 @@
 				<td align="right" class="normal" width="120">Headline</td>
 				<td class="normal" width="360" colspan="2">
 					<input type="text" name="Headline" size="50" value="{{Headline}}">
-					<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+					<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 					&nbsp;&nbsp;&nbsp;
 					engl.:
 					<input type="text" name="Headline_en" size="50" value="{{Headline_en}}">
@@ -64,7 +64,7 @@
 				</td>
 			</tr>
 			<tr><td colspan="3">&nbsp;</td></tr>
-			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 			<tr>
 				<td align="right" class="normal">Text engl.</td>
 				<td class="normal" colspan="2">
@@ -83,7 +83,7 @@
 				<td align="right" class="normal">Headline</td>
 				<td class="normal" colspan="2">
 					<input type="text" name="Headline_gesendet" size="50" value="{{Headline_gesendet}}">
-					<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+					<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 					&nbsp;&nbsp;&nbsp;
 					engl.:
 					<input type="text" name="Headline_gesendet_en" size="50" value="{{Headline_gesendet_en}}">
@@ -98,7 +98,7 @@
 				</td>
 			</tr>
 			<tr><td colspan="3">&nbsp;</td></tr>
-			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 			<tr>
 				<td align="right" class="normal">Text engl.</td>
 				<td class="normal" colspan="2">
@@ -136,7 +136,7 @@
 					<i>Tragen Sie hier einen Text ein, der als Beschriftung für das Ankreuzfeld zum Abonnieren dienen soll. Lassen Sie das Feld leer, wenn Sie kein Abonnement anbieten wollen.</i>
 				</td>
 			</tr>
-			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 			<tr>
 				<td align="right" class="normal" width="120">Abonnieren-Text engl.</td>
 				<td class="normal" width="360">
diff --git a/download.vtedit.html b/download.vtedit.html
index 0737a41..cd14182 100644
--- a/download.vtedit.html
+++ b/download.vtedit.html
@@ -50,7 +50,7 @@
 				<td align="right" class="normal">Headline</td>
 				<td class="normal" colspan="2">
 					<input type="text" name="Headline" size="50" value="{{Headline}}">
-					<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+					<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 					&nbsp;&nbsp;&nbsp;
 					engl.:
 					<input type="text" name="Headline_en" size="50" value="{{Headline_en}}">
@@ -65,7 +65,7 @@
 				</td>
 			</tr>
 			<tr><td colspan="3">&nbsp;</td></tr>
-			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 			<tr>
 				<td align="right" class="normal">Text engl.</td>
 				<td class="normal" colspan="2">
@@ -84,7 +84,7 @@
 				<td align="right" class="normal">Headline</td>
 				<td class="normal">
 					<input type="text" name="Headline_unbezahlt" size="50" value="{{Headline_unbezahlt}}">
-					<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+					<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 					&nbsp;&nbsp;&nbsp;
 					engl.:
 					<input type="text" name="Headline_unbezahlt_en" size="50" value="{{Headline_unbezahlt_en}}">
@@ -102,7 +102,7 @@
 				</td>
 			</tr>
 			<tr><td colspan="3">&nbsp;</td></tr>
-			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 			<tr>
 				<td align="right" class="normal">Text engl.</td>
 				<td class="normal" colspan="2">
@@ -121,7 +121,7 @@
 				<td align="right" class="normal">Headline</td>
 				<td class="normal">
 					<input type="text" name="Headline_error" size="50" value="{{Headline_error}}">
-					<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+					<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 					&nbsp;&nbsp;&nbsp;
 					engl.:
 					<input type="text" name="Headline_error_en" size="50" value="{{Headline_error_en}}">
@@ -139,7 +139,7 @@
 				</td>
 			</tr>
 			<tr><td colspan="3">&nbsp;</td></tr>
-			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 			<tr>
 				<td align="right" class="normal">Text engl.</td>
 				<td class="normal" colspan="2">
diff --git a/image.delete.html b/image.delete.html
index e6e5dd0..467ca1e 100644
--- a/image.delete.html
+++ b/image.delete.html
@@ -50,7 +50,7 @@
 			-->
 				
 			<!--{{vtIf: {vtGet:AccessRights} .ncn. add }}-->
-				<p>Sie haben kein "Erweitern"-Recht für den Ordner, der dieses Bild enthält, deshalb können Sie es nicht löschen.</p>
+				<p>Sie haben kein "Erweitern"-Recht für die Galerie, die dieses Bild enthält, deshalb können Sie es nicht löschen.</p>
 				<p><a href="{{vtLink}}">zurück</a></p>
 				<!--{{vtReturn}}-->
 			<!--{{vtEndIf}}-->
@@ -60,7 +60,7 @@
 
 				<!--{{vtIf: {vtGet:ContainerPageType} .neq. imagelist .or. {vtGet:ContainerVerzeichnis} .eq. - }}-->
 			
-					<p>Dieses Bild gehört zu einem virtuellen Bilderordner, der mit keinem Verzeichnis auf dem Server verknüpft ist. Daher wird
+					<p>Dieses Bild gehört zu einer virtuellen Galerie, die mit keinem Verzeichnis auf dem Server verknüpft ist. Daher wird
 						nur der Eintrag aus dem Pixtacy-Katalog entfernt, aber es werden keine Objekte vom Server gelöscht.</p>
 					
 					<!--
@@ -113,7 +113,7 @@
 						<tr>
 							<td>&nbsp;</td>
 							<td>
-								<p style="color:red">Wenn Sie diese Option wählen, werden auch alle Kopien des Bildes aus ihren jeweiligen Ordnern entfernt:</p>
+								<p style="color:red">Wenn Sie diese Option wählen, werden auch alle Kopien des Bildes aus ihren jeweiligen Galerien entfernt:</p>
 								<ul>
 									<!--{{vtLoop}}-->
 										<li>
diff --git a/image.domove.html b/image.domove.html
index c057e51..355c5bc 100644
--- a/image.domove.html
+++ b/image.domove.html
@@ -19,25 +19,25 @@
 			<!--{{vtIf: {vtResult} .bw. ERROR }}-->
 				<p>Das Bild konnte nicht verschoben werden. </p>
 				<!--{{vtIf: {vtResult} .bw. ERROR-03 }}-->
-					<p>Das Bild befindet sich bereits im Zielordner.</p>
+					<p>Das Bild befindet sich bereits in der Zielgalerie.</p>
 				<!--{{vtElseIf: {vtResult} .bw. ERROR-04 }}-->
 					<p>Das Bild liegt außerhalb des gültigen Bereichs.</p>
 				<!--{{vtElseIf: {vtResult} .bw. ERROR-06 }}-->
-					<p>Als Ziel muss ein Bilderordner gewählt werden.</p>
+					<p>Als Ziel muss eine Galerie gewählt werden.</p>
 				<!--{{vtElseIf: {vtResult} .bw. ERROR-07 }}-->
-					<p>Der Zielordner liegt außerhalb des gültigen Bereichs.</p>
+					<p>Die Zielgalerie liegt außerhalb des gültigen Bereichs.</p>
 				<!--{{vtElseIf: {vtResult} .bw. ERROR-07 }}-->
-					<p>Der Zielordner ist mit keinem oder einem falschen Verzeichnis auf dem Server verknüpft.</p>
+					<p>Die Zielgalerie ist mit keinem oder einem falschen Verzeichnis auf dem Server verknüpft.</p>
 				<!--{{vtElseIf: {vtResult} .bw. ERROR-09 }}-->
-					<p>Im Zielordner befindet sich bereits ein Bild mit diesem Namen.</p>
+					<p>In der Zielgalerie befindet sich bereits ein Bild mit diesem Namen.</p>
 				<!--{{vtElseIf: {vtResult} .bw. ERROR-11 }}-->
-					<p>Im Low-res-Verzeichnis konnte der erforderliche Unterordner nicht erstellt werden.</p>
+					<p>Im Low-res-Verzeichnis konnte das erforderliche Unterverzeichnis nicht erstellt werden.</p>
 				<!--{{vtElseIf: {vtResult} .bw. ERROR-12 }}-->
 					<p>Das Verschieben des Low-res-Bildes per FTP ist fehlgeschlagen.</p>
 				<!--{{vtElseIf: {vtResult} .bw. ERROR-13 }}-->
 					<p>Das Verschieben des Low-res-Bildes auf dem Server ist fehlgeschlagen.</p>
 				<!--{{vtElseIf: {vtResult} .bw. ERROR-21 }}-->
-					<p>Im High-res-Verzeichnis konnte der erforderliche Unterordner nicht erstellt werden.</p>
+					<p>Im High-res-Verzeichnis konnte das erforderliche Unterverzeichnis nicht erstellt werden.</p>
 				<!--{{vtElseIf: {vtResult} .bw. ERROR-22 }}-->
 					<p>Das Verschieben des High-res-Bildes per FTP ist fehlgeschlagen.</p>
 				<!--{{vtElseIf: {vtResult} .bw. ERROR-23 }}-->
@@ -45,9 +45,9 @@
 				<!--{{vtElseIf: {vtResult} .bw. ERROR-91 }}-->
 					<p>Sie haben kein Ändern-Recht für das Bild.</p>
 				<!--{{vtElseIf: {vtResult} .bw. ERROR-92 }}-->
-					<p>Sie haben kein Erweitern-Recht für den Zielordner.</p>
+					<p>Sie haben kein Erweitern-Recht für die Zielgalerie.</p>
 				<!--{{vtElseIf: {vtResult} .bw. ERROR-93 }}-->
-					<p>Sie haben kein Erweitern-Recht für den Ordner, aus dem das Objekt verschoben werden soll.</p>
+					<p>Sie haben kein Erweitern-Recht für die Galerie, aus dem das Objekt verschoben werden soll.</p>
 				<!--{{vtElse}}-->
 					<p>Unbekannter Fehler ({{vtResult}}).</p>
 				<!--{{vtEndIf}}-->
@@ -57,10 +57,10 @@
 				<p>
 					<a href="{{vtLink}}" class="text_link">zum Bild</a> |
 					<!--{{vtUse:{vtGet:OldContainer} }}-->
-						<a href="{{vtLink}}" class="text_link">zum vorherigen Ordner ({{vtName}})</a> |
+						<a href="{{vtLink}}" class="text_link">zur vorherigen Galerie ({{vtName}})</a> |
 					<!--{{vtEndUse}}-->
 					<!--{{vtUse: {vtPostValue:target_id} }}-->
-						<a href="{{vtLink}}" class="text_link">zum neuen Ordner ({{vtName}})</a>
+						<a href="{{vtLink}}" class="text_link">zur neuen Galerie ({{vtName}})</a>
 					<!--{{vtEndUse}}-->
 				</p>
 			<!--{{vtEndIf}}-->
diff --git a/image.vtedit.html b/image.vtedit.html
index 8d65fd9..ba131c4 100644
--- a/image.vtedit.html
+++ b/image.vtedit.html
@@ -112,14 +112,16 @@
 				<td align="right" class="normal">Sortiment</td>
 				<td class="normal" style="padding-bottom:15px">
 					<select id="fldSortiment" name="Sortiment">
-						<option value="0">&lt;wie Bilderordner&gt;</option>
+						<option value="0">&lt;wie Galerie&gt;</option>
 						<option value="-1" {{vtIf: {Sortiment} .eq. -1 }}selected{{vtEndIf}}>&lt;ohne&gt;</option>
-						<option disabled>&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;</option>
 						<!--{{vtSet: Sortiment = "{Sortiment}" }}-->
 						<!--{{vtSelect: -origin="//Verwaltung/Sortimente", -type="assortment", -sortfield="vtName"}}-->
+						<!--{{vtIf: {vtCountSelection} .gt. 0 }}-->
+						<option disabled>&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;</option>
 						<!--{{vtLoop}}-->
 							<option value="{{vtId}}" {{vtIf: {vtId} .eq. {vtGet:Sortiment} }}selected{{vtEndIf}}>{{Name}} &ndash; {{Anzahl}} Produkte</option>
 						<!--{{vtEndLoop}}-->
+						<!--{{vtEndIf}}-->
 						<!--{{vtEndSelect}}-->
 					</select>
 				</td>
diff --git a/imagelist.batch_edit.html b/imagelist.batch_edit.html
index 5211706..12b75f1 100644
--- a/imagelist.batch_edit.html
+++ b/imagelist.batch_edit.html
@@ -71,13 +71,13 @@
 
 			<!--{{vtIf: {vtGet:ImageCount} .eq. 0 }}-->
 
-				<p>Dieser Ordner enthält keine Bilder.</p>
+				<p>Diese Galerie enthält keine Bilder.</p>
 
 			<!--{{vtElse}}-->
 
 				<p>
-					Sie können die Metadaten aller {{vtGet:ImageCount}} Bilder in 
-					<!--{{vtIf: {vtPageType} .eq. lightbox }}-->dieser Lightbox<!--{{vtElse}}-->diesem Ordner<!--{{vtEndIf}}-->
+					Sie können die Metadaten aller {{vtGet:ImageCount}} Bilder in dieser
+					<!--{{vtIf: {vtPageType} .eq. lightbox }}-->Lightbox<!--{{vtElse}}-->Galerie<!--{{vtEndIf}}-->
 					gleichzeitig verändern.
 				</p>
 				<p>&nbsp;</p>
diff --git a/imagelist.createfolder.html b/imagelist.createfolder.html
index f21b92c..a6486c7 100644
--- a/imagelist.createfolder.html
+++ b/imagelist.createfolder.html
@@ -21,7 +21,7 @@
 			{{vtIf: {vtPageType} .eq. imagelist}}
 				{{vtCalc: checkDirectory( '{Verzeichnis:escaped}' ) }}
 				{{vtIf: {vtResult} .neq. 1}}
-					{{vtSet: Createfolder_Error="Zum übergeordneten Bilderordner ({vtResult}) existiert kein entsprechendes Verzeichnis auf dem Webserver"}}
+					{{vtSet: Createfolder_Error="Zur übergeordneten Galerie ({vtResult}) existiert kein entsprechendes Verzeichnis auf dem Webserver"}}
 				{{vtElse}}
 					{{vtSet: ParentDir="{Verzeichnis:raw}"}}
 					{{vtIf: {istKategorie} .nin. 1|2 }}
@@ -33,7 +33,7 @@
 					{{vtEndIf}}
 				{{vtEndIf}}
 			{{vtElseIf: {vtID} .neq. {vtGet:ID_Bilder} }}
-				{{vtSet: Createfolder_Error="Bilderordner liegt außerhalb des Pixtacy-Bilderbereichs"}}
+				{{vtSet: Createfolder_Error="Galerie liegt außerhalb des Pixtacy-Bilderbereichs"}}
 			{{vtEndIf}}
 		{{vtEndUse}}
 	{{vtEndIf}}
@@ -58,7 +58,7 @@
 		{{vtCalc: str_replace( '//', '/', '{vtGet:ParentDir}/{vtResult}' ) }}
 		{{vtSet: Verzeichnis}}
 
-		### Verzeichnisnamen anpassen, falls bereits Bilderordner für dieses Verzeichnis existiert
+		### Verzeichnisnamen anpassen, falls bereits Galerie für dieses Verzeichnis existiert
 
 		{{vtDBQuery: SELECT d.verzeichnis FROM {vtDBTable:content} c, {vtDBTable:data_imagelist} d 
 							WHERE c.id = d.vtid AND c.path LIKE '%,128,%' AND d.verzeichnis LIKE '{vtGet:Verzeichnis}%'
diff --git a/imagelist.delete.html b/imagelist.delete.html
index 57133f2..8c1eac8 100644
--- a/imagelist.delete.html
+++ b/imagelist.delete.html
@@ -3,7 +3,7 @@
 <html>
 <head>
 	<!--{{vtInclude: includes/initialize.html}}-->
-	<title>Bilderordner löschen</title>
+	<title>Galerie löschen</title>
 	<meta http-equiv="content-type" content="text/html;charset=utf-8">
 	{{vtInclude: includes/html_headers_internal.html }}
 	<script type="text/javascript">
@@ -12,7 +12,7 @@
 
 		function handleSubmit(f) {
 			if( f.filesync[1] && f.filesync[1].checked ){
-				if( !confirm( 'Sind Sie sicher, dass Sie alle Dateien und Ordner vom Server löschen wollen?' ) ){
+				if( !confirm( 'Sind Sie sicher, dass Sie alle Dateien und Verzeichnisse vom Server löschen wollen?' ) ){
 					return false;
 				}
 			}
@@ -36,7 +36,7 @@
 		
 	<!--{{vtIf: workspace }}-->
 
-		<h1>Bilderordner &raquo;{{Titel}}&laquo; löschen</h1>
+		<h1>Galerie &raquo;{{Titel}}&laquo; löschen</h1>
 		
 		<!--{{vtIf: {vtPostValue:action} .neq. delete}}-->
 		
@@ -47,7 +47,7 @@
 			-->
 
 			<!--{{vtIf: {vtGet:AccessRights} .ncn. add }}-->
-				<p>Sie haben kein "Erweitern"-Recht für den Ordner, der diesen Ordner enthält, deshalb können Sie ihn nicht löschen.</p>
+				<p>Sie haben kein "Erweitern"-Recht für die Galerie, die diese Galerie enthält, deshalb können Sie ihn nicht löschen.</p>
 				<p><a href="{{vtLink}}">zurück</a></p>
 				<!--{{vtReturn}}-->
 			<!--{{vtEndIf}}-->
@@ -57,41 +57,41 @@
 
 				<!--{{vtIf: {Verzeichnis} .eq. - }}-->
 			
-					<p>Dies ist ein virtueller Bilderordner, der mit keinem Verzeichnis auf dem Server verknüpft ist. Daher werden
+					<p>Dies ist eine virtuelle Galerie, die mit keinem Verzeichnis auf dem Server verknüpft ist. Daher werden
 						nur die Einträge aus dem Pixtacy-Katalog entfernt, aber keine Objekte vom Server gelöscht.</p>
 			
 				<!--{{vtElse}}-->
 
-				<p>Bitte entscheiden Sie, was mit den Dateien und Ordnern geschehen soll, die zu diesem Bilderordner gehören:</p>
+				<p>Bitte entscheiden Sie, was mit den Dateien und Verzeichnissen geschehen soll, die zu dieser Galerie gehören:</p>
 				<table class="form">
 					<tr>
 						<td><input type="radio" name="filesync" id="filesync_0" value="0" checked></td>
 						<td>
-							<label for="filesync_0"><strong>Dateien und Ordner auf Server belassen</strong></label>
+							<label for="filesync_0"><strong>Dateien und Verzeichnisse auf Server belassen</strong></label>
 						</td>
 					</tr>
 					<tr>
 						<td>&nbsp;</td>
-						<td>Wenn Sie diese Option wählen, wird der Bilderordner aus dem Pixtacy-Katalog entfernt, die Low-res- und High-res-Dateien 
-							bleiben aber auf dem Server erhalten. Sie müssen die Dateien und Ordner selbst mit Hilfe Ihres FTP-Programms vom Server 
+						<td>Wenn Sie diese Option wählen, wird die Galerie aus dem Pixtacy-Katalog entfernt, die Low-res- und High-res-Dateien 
+							bleiben aber auf dem Server erhalten. Sie müssen die Dateien und Verzeichnisse selbst mit Hilfe Ihres FTP-Programms vom Server 
 							löschen, ansonsten werden die Bilder beim nächsten Import erneut in den Pixtacy-Katalog aufgenommen.</td>
 					</tr>
 					<tr>
 						<td><input type="radio" name="filesync" id="filesync_1" value="1"></td>
 						<td>
-							<label for="filesync_1"><strong>Dateien und Ordner vom Server entfernen</strong></label>
+							<label for="filesync_1"><strong>Dateien und Verzeichnisse vom Server entfernen</strong></label>
 						</td>
 					</tr>
 					<tr>
 						<td>&nbsp;</td>
-						<td>Wenn Sie diese Option wählen, werden die Low-res- und High-res-Dateien sowie alle Verzeichnisse, die zu dem Bilderordner gehören, unwiederbringlich von der Serverfestplatte gelöscht.</td>
+						<td>Wenn Sie diese Option wählen, werden die Low-res- und High-res-Dateien sowie alle Verzeichnisse, die zu der Galerie gehören, unwiederbringlich vom Server gelöscht.</td>
 					</tr>
 				</table>
 			
 				<!--{{vtEndIf}}-->
 
 				<p>
-					<input id="submitButton" type="submit" name="btnSubmit" value="Bilderordner löschen">
+					<input id="submitButton" type="submit" name="btnSubmit" value="Galerie löschen">
 					<span id="cancel">oder <a href="{{vtLink}}" class="text_link">Abbruch</a></span>
 					<img id="wait" style="display:none; margin-left:20px" src="resources/ajax-loader-grey.gif" width="16" height="16" alt="Ajax Loader Grey">
 				</p>
@@ -104,7 +104,7 @@
 				
 				{{vtIf: {vtPostValue:filesync} .eq. 1 }}
 
-					### Bilderordner löschen
+					### Galerie löschen
 
 					{{vtIf: {Verzeichnis} .cn. / .and. {Verzeichnis} .neq. / }}
 						{{vtIf: {vtGlobal:pxtcLocalAccess} .eq. direct .or. {vtFtpCheck} .neq. 1 }}
diff --git a/imagelist.delete_hires.html b/imagelist.delete_hires.html
index 7239c90..79b7a73 100644
--- a/imagelist.delete_hires.html
+++ b/imagelist.delete_hires.html
@@ -146,7 +146,7 @@ function delete_files( $directory )
 
 		<!--{{vtIf: {vtCountSelection} .gt. 0 }}-->
 		
-			<p>Bitte wählen Sie einen Ordner zur Bearbeitung aus:</p>
+			<p>Bitte wählen Sie eine Galerie zur Bearbeitung aus:</p>
 			<ul>
 				<!--{{vtLoop}}-->
 					<li><a href="{{vtLink:-met='delete_hires'}}" class="text_link">{{vtName}}</a></li>
diff --git a/imagelist.domove.html b/imagelist.domove.html
index 74ab564..f18096d 100644
--- a/imagelist.domove.html
+++ b/imagelist.domove.html
@@ -4,7 +4,7 @@
 <head>
 	<!--{{vtInclude: includes/initialize.html}}-->
 	<!--{{vtInclude: includes/functions.html}}-->
-	<title>Bilderordner verschieben</title>
+	<title>Galerie verschieben</title>
 	<meta http-equiv="content-type" content="text/html;charset=utf-8">
 	{{vtInclude: includes/html_headers_internal.html }}
 </head>
@@ -18,48 +18,48 @@
 
 			<!--{{vtIf: {vtResult} .bw. ERROR }}-->
 				<h1>Verzeihung!</h1>
-				<p>Der Bilderordner konnte nicht verschoben werden.</p>
+				<p>Die Galerie konnte nicht verschoben werden.</p>
 				<!--{{vtIf: {vtResult} .bw. ERROR-01 }}-->
 					<p>Quelle und Ziel sind identisch.</p>
 				<!--{{vtElseIf: {vtResult} .bw. ERROR-02 }}-->
 					<p>Die Seite "Bilder" darf nicht verschoben werden.</p>
 				<!--{{vtElseIf: {vtResult} .bw. ERROR-04 }}-->
-					<p>Der Bilderordner liegt außerhalb des gültigen Bereichs.</p>
+					<p>Die Galerie liegt außerhalb des gültigen Bereichs.</p>
 				<!--{{vtElseIf: {vtResult} .bw. ERROR-06 }}-->
-					<p>Als Ziel muss ein Bilderordner gewählt werden.</p>
+					<p>Als Ziel muss eine Galerie gewählt werden.</p>
 				<!--{{vtElseIf: {vtResult} .bw. ERROR-07 }}-->
-					<p>Der Zielordner liegt außerhalb des gültigen Bereichs.</p>
+					<p>Die Zielgalerie liegt außerhalb des gültigen Bereichs.</p>
 				<!--{{vtElseIf: {vtResult} .bw. ERROR-08 }}-->
-					<p>Der Zielordner ist mit keinem oder einem falschen Verzeichnis auf dem Server verknüpft.</p>
+					<p>Die Zielgalerie ist mit keinem oder einem falschen Verzeichnis auf dem Server verknüpft.</p>
 				<!--{{vtElseIf: {vtResult} .bw. ERROR-09 }}-->
-					<p>Im Zielordner existiert bereits ein Bilderordner mit diesem Namen.</p>
+					<p>In der Zielgalerie existiert bereits eine Galerie mit diesem Namen.</p>
 				<!--{{vtElseIf: {vtResult} .bw. ERROR-11 }}-->
-					<p>Im Low-res-Verzeichnis konnte der erforderliche Unterordner nicht erstellt werden.</p>
+					<p>Im Low-res-Verzeichnis konnte das erforderliche Unterverzeichnis nicht erstellt werden.</p>
 				<!--{{vtElseIf: {vtResult} .bw. ERROR-12 }}-->
-					<p>Das Verschieben des Low-res-Ordners auf dem Server ist fehlgeschlagen.</p>
+					<p>Das Verschieben des Low-res-Verzeichnisses auf dem Server ist fehlgeschlagen.</p>
 				<!--{{vtElseIf: {vtResult} .bw. ERROR-21 }}-->
-					<p>Im High-res-Verzeichnis konnte der erforderliche Unterordner nicht erstellt werden.</p>
+					<p>Im High-res-Verzeichnis konnte das erforderliche Unterverzeichnis nicht erstellt werden.</p>
 				<!--{{vtElseIf: {vtResult} .bw. ERROR-22 }}-->
-					<p>Das Verschieben des High-res-Ordners auf dem Server ist fehlgeschlagen.</p>
+					<p>Das Verschieben des High-res-Verzeichnisses auf dem Server ist fehlgeschlagen.</p>
 				<!--{{vtElseIf: {vtResult} .bw. ERROR-91 }}-->
 					<p>Sie haben kein Ändern-Recht für das Bild.</p>
 				<!--{{vtElseIf: {vtResult} .bw. ERROR-92 }}-->
-					<p>Sie haben kein Erweitern-Recht für den Zielordner.</p>
+					<p>Sie haben kein Erweitern-Recht für die Zielgalerie.</p>
 				<!--{{vtElseIf: {vtResult} .bw. ERROR-93 }}-->
-					<p>Sie haben kein Erweitern-Recht für den Ordner, aus dem das Objekt verschoben werden soll.</p>
+					<p>Sie haben kein Erweitern-Recht für die Galerie, aus der das Objekt verschoben werden soll.</p>
 				<!--{{vtElse}}-->
 					<p>Unbekannter Fehler ({{vtResult}}).</p>
 				<!--{{vtEndIf}}-->
 				<a href="{{vtLink}}" class="text_link">zurück</a>
 			<!--{{vtElse}}-->
-				<p>Der Bilderordner wurde erfolgreich verschoben.</p>
+				<p>Die Galerie wurde erfolgreich verschoben.</p>
 				<p>
-					<a href="{{vtLink}}" class="text_link">zum Bilderordner</a> |
+					<a href="{{vtLink}}" class="text_link">zur Galerie</a> |
 					<!--{{vtUse:{vtGet:OldContainer} }}-->
-						<a href="{{vtLink}}" class="text_link">zum vorherigen Ordner ({{vtName}})</a> |
+						<a href="{{vtLink}}" class="text_link">zur vorherigen übergeordneten Galerie ({{vtName}})</a> |
 					<!--{{vtEndUse}}-->
 					<!--{{vtUse: {vtPostValue:target_id} }}-->
-						<a href="{{vtLink}}" class="text_link">zum neuen Ordner ({{vtName}})</a>
+						<a href="{{vtLink}}" class="text_link">zur neuen übergeordneten Galerie ({{vtName}})</a>
 					<!--{{vtEndUse}}-->
 				</p>
 			<!--{{vtEndIf}}-->
diff --git a/imagelist.download.html b/imagelist.download.html
index 874359b..5390efe 100644
--- a/imagelist.download.html
+++ b/imagelist.download.html
@@ -178,15 +178,15 @@
 
 			{{vtIf: {vtGetValue:rule} .neq. }}
 				{{vtIf: {vtGet:Notify} .eq. 1 }}
-					{{vtDo: -act="mail", -to="{vtGet:Recipient}", -subject="Pixtacy-Download von {vtGet:User} (Ordner/{vtGetValue:rule})", -message="{vtGet:Mailtext,raw}" }}
+					{{vtDo: -act="mail", -to="{vtGet:Recipient}", -subject="Pixtacy-Download von {vtGet:User} (Galerie/{vtGetValue:rule})", -message="{vtGet:Mailtext,raw}" }}
 				{{vtEndIf}}
 			{{vtElseIf: {vtGetValue:v} .neq. }}
 				{{vtIf: {vtGlobal:pxtcNotifyHiresDownload} .eq. 1}}
-					{{vtDo: -act="mail", -to="{vtGet:Recipient}", -subject="Pixtacy-Download von {vtGet:User} (Ordner/High-res)", -message="{vtGet:Mailtext,raw}" }}
+					{{vtDo: -act="mail", -to="{vtGet:Recipient}", -subject="Pixtacy-Download von {vtGet:User} (Galerie/High-res)", -message="{vtGet:Mailtext,raw}" }}
 				{{vtEndIf}}
 			{{vtElse}}
 				{{vtIf: {vtGlobal:pxtcNotifyLoresDownload} .eq. 1}}
-					{{vtDo: -act="mail", -to="{vtGet:Recipient}", -subject="Pixtacy-Download von {vtGet:User} (Ordner/Low-res)", -message="{vtGet:Mailtext,raw}" }}
+					{{vtDo: -act="mail", -to="{vtGet:Recipient}", -subject="Pixtacy-Download von {vtGet:User} (Galerie/Low-res)", -message="{vtGet:Mailtext,raw}" }}
 				{{vtEndIf}}
 			{{vtEndIf}}
 
diff --git a/imagelist.html b/imagelist.html
index b80017f..c3d42c4 100644
--- a/imagelist.html
+++ b/imagelist.html
@@ -442,7 +442,8 @@
 						{{vtEndIf}}
 						{{vtSet: Button[onclick] = "" }}
 						{{vtSet: Button[confirm] = "" }}
-						{{vtSet: Button[href] = "{vtLink:-met='download', v='{vtItem:rule,raw}'}" }}
+						{{vtCapture}}{{vtLink: -met='download', v='{vtItem:rule,raw}' }}{{vtEndCapture}}
+						{{vtSet: Button[href] = "{vtResult}" }}
 						{{vtSet: Buttons[] = "{vtGet:Button}" }}
 					{{vtEndRepeat}}
 				{{vtEndIf}}
@@ -643,12 +644,12 @@
 			<!--{{vtEndIf}}-->
 		<!--{{vtElseIf: workspace}}-->
 			<!--{{vtIf: {vtID} .eq. {vtGet:ID_Bilder} }}-->
-				<p><i>Sie haben noch keine Bilderordner angelegt.</i></p>
-				<p><a href="{{vtLink:-met='vtnew',-template='imagelist'}}">Bilderordner erstellen</a></p>
+				<p><i>Sie haben noch keine Galerien angelegt.</i></p>
+				<p><a href="{{vtLink:-met='vtnew',-template='imagelist'}}">Galerie erstellen</a></p>
 			<!--{{vtElse}}-->
-				<p><i>Dieser Ordner ist leer.</i></p>
+				<p><i>Diese Galerie ist leer.</i></p>
 				<p>
-					<a href="{{vtLink:-met='vtnew',-template='imagelist'}}">Unterordner erstellen</a>
+					<a href="{{vtLink:-met='vtnew',-template='imagelist'}}">Untergalerie erstellen</a>
 					<!--{{vtIf: {Verzeichnis} .neq. - }}-->
 						| <a href="{{vtLink:-met='upload'}}">Bilder hochladen</a>
 					<!--{{vtEndIf}}-->
@@ -672,12 +673,12 @@
 		<!--{{vtElseIf: workspace}}-->
 			<!--{{vtSet: TextOnly = "1" }}-->
 			<!--{{vtIf: {vtID} .eq. {vtGet:ID_Bilder} }}-->
-				<p><i>Sie haben noch keine Bilderordner angelegt.</i></p>
-				<p><a href="{{vtLink:-met='vtnew',-template='imagelist'}}">Bilderordner erstellen</a></p>
+				<p><i>Sie haben noch keine Galerien angelegt.</i></p>
+				<p><a href="{{vtLink:-met='vtnew',-template='imagelist'}}">Galerie erstellen</a></p>
 			<!--{{vtElse}}-->
-				<p><i>Dieser Ordner ist leer.</i></p>
+				<p><i>Diese Galerie ist leer.</i></p>
 				<p>
-					<a href="{{vtLink:-met='vtnew',-template='imagelist'}}">Unterordner erstellen</a>
+					<a href="{{vtLink:-met='vtnew',-template='imagelist'}}">Untergalerie erstellen</a>
 					<!--{{vtIf: {Verzeichnis} .neq. - }}-->
 						| <a href="{{vtLink:-met='upload'}}">Bilder hochladen</a>
 					<!--{{vtEndIf}}-->
@@ -714,7 +715,7 @@
 
 	<!--{{vtCapture:ActionPanel}}-->
 		<!--{{vtIf: {Verzeichnis} .eq. - }}-->
-			<p><i>Dies ist ein virtueller Ordner</i></p>
+			<p><i>Dies ist eine virtuelle Galerie</i></p>
 		<!--{{vtEndIf}}-->
 		<p>
 			<!--{{vtIf: {vtPageUserID} .eq. 52}}-->
@@ -771,19 +772,19 @@
 					<p>
 						<a href="{{vtLink:-met='vtnew',-template='imagelist'}}" 
 							{{vtIf: {vtGet:ContainsImages} .gt. 0 .and. {vtGet:ContainsFolders} .eq. 0 }}
-							data-confirm="Dieser Ordner enthält bereits Bilder. Es kann für Besucher unübersichtlich werden, wenn Sie Bilder und Unterordner auf derselben Ebene mischen. Trotzdem fortfahren?"
+							data-confirm="Diese Galerie enthält bereits Bilder. Es kann für Besucher unübersichtlich werden, wenn Sie Bilder und Untergalerien auf derselben Ebene mischen. Trotzdem fortfahren?"
 							{{vtEndIf}}
 						>
 							<!--{{vtIf: {vtID} .eq. {vtGet:ID_Bilder} }}-->
-								Bilderordner erstellen
+								Galerie erstellen
 							<!--{{vtElse}}-->
-								Unterordner erstellen
+								Untergalerie erstellen
 							<!--{{vtEndIf}}-->
 						</a>
 					</p>
 				<!--{{vtIf: {vtID} .neq. {vtGet:ID_Bilder} }}-->
-					<p><a href="{{vtLink:-met='move'}}">Bilderordner verschieben</a></p>
-					<p><a href="{{vtLink:-met='delete'}}">Bilderordner löschen</a></p>
+					<p><a href="{{vtLink:-met='move'}}">Galerie verschieben</a></p>
+					<p><a href="{{vtLink:-met='delete'}}">Galerie löschen</a></p>
 				<!--{{vtEndIf}}-->
 				<!--{{vtIf: {vtGet:ContainsFolders} .eq. 0 .and. {Verzeichnis} .neq. - }}-->
 					<p><a href="{{vtLink:-met='delete_hires'}}">High-res-Dateien löschen</a></p>
@@ -793,7 +794,7 @@
 				<!--{{vtElse}}-->
 				<!--{{vtIf: {vtGet:Unlimited} .eq. 1 .or. {vtGet:GlobalRemaining} .gt. 0 }}-->
 				<!--{{vtIf: {vtGet:ContainsFolders} .gt. 0 .and. {vtGet:ContainsImages} .eq. 0 }}-->
-					<p><a href="{{vtLink:-met='upload'}}" data-confirm="Dieser Ordner enthält bereits Unterordner. Es kann für Besucher unübersichtlich werden, wenn Sie Bilder und Unterordner auf derselben Ebene mischen. Trotzdem fortfahren?">Bilder hochladen</a></p>
+					<p><a href="{{vtLink:-met='upload'}}" data-confirm="Diese Galerie enthält bereits Untergalerien. Es kann für Besucher unübersichtlich werden, wenn Sie Bilder und Untergalerien auf derselben Ebene mischen. Trotzdem fortfahren?">Bilder hochladen</a></p>
 				<!--{{vtElse}}-->
 					<p><a href="{{vtLink:-met='upload'}}">Bilder hochladen</a></p>
 				<!--{{vtEndIf}}-->
@@ -802,13 +803,13 @@
 				<!--{{vtEndIf}}-->
 			<!--{{vtElse}}-->
 				<!--{{vtIf: {vtGet:Createfolder_Error} .neq. }}-->
-					<p>Zu diesem Bilderordner konnte kein Verzeichnis auf dem Webserver erstellt werden. Fehlermeldung: {{vtGet:Createfolder_Error}}</p>
+					<p>Zu dieser Galerie konnte kein Verzeichnis auf dem Server erstellt werden. Fehlermeldung: {{vtGet:Createfolder_Error}}</p>
 					<a href="{{vtLink}}">erneut versuchen</a>
 				<!--{{vtEndIf}}-->
 				<!--{{vtIf: {vtID} .neq. {vtGet:ID_Bilder} .and. {vtCountPages} .eq.}}-->
-					<p><a href="{{vtLink:-pg='..',-act='delete',-obj='{vtID}',-force='1'}}" data-confirm="Sind Sie sicher, dass Sie diesen Bilderordner endgültig löschen wollen?">Bilderordner löschen</a></p>
+					<p><a href="{{vtLink:-pg='..',-act='delete',-obj='{vtID}',-force='1'}}" data-confirm="Sind Sie sicher, dass Sie diese Galerie endgültig löschen wollen?">Galerie löschen</a></p>
 				<!--{{vtElse}}-->
-					<p><a href="{{vtLink:-met='delete'}}">Bilderordner löschen</a></p>
+					<p><a href="{{vtLink:-met='delete'}}">Galerie löschen</a></p>
 				<!--{{vtEndIf}}-->
 			<!--{{vtEndIf}}-->
 		<!--{{vtElse}}-->
@@ -850,7 +851,7 @@
 
 	<!--{{vtCapture:ActionPanel_r}}-->
 		<!--{{vtIf: {Verzeichnis} .eq. - }}-->
-			<h6 class="dropdown-header">Dies ist ein virtueller Ordner</h6>
+			<h6 class="dropdown-header">Dies ist eine virtuelle Galerie</h6>
 		<!--{{vtEndIf}}-->
 
 		<h6 class="dropdown-header">
@@ -909,18 +910,18 @@
 			<!--{{vtIf: {vtID} .eq. {vtGet:ID_Bilder} .or. {Verzeichnis} .neq. .and. {Verzeichnis} .neq. / }}-->
 				<a class="dropdown-item" href="{{vtLink:-met='vtnew',-template='imagelist'}}" 
 					{{vtIf: {vtGet:ContainsImages} .gt. 0 .and. {vtGet:ContainsFolders} .eq. 0 }}
-					data-confirm="Dieser Ordner enthält bereits Bilder. Es kann für Besucher unübersichtlich werden, wenn Sie Bilder und Unterordner auf derselben Ebene mischen. Trotzdem fortfahren?"
+					data-confirm="Diese Galerie enthält bereits Bilder. Es kann für Besucher unübersichtlich werden, wenn Sie Bilder und Untergalerien auf derselben Ebene mischen. Trotzdem fortfahren?"
 					{{vtEndIf}}
 				>
 					<!--{{vtIf: {vtID} .eq. {vtGet:ID_Bilder} }}-->
-						Bilderordner erstellen
+						Galerie erstellen
 					<!--{{vtElse}}-->
-						Unterordner erstellen
+						Untergalerie erstellen
 					<!--{{vtEndIf}}-->
 				</a>
 				<!--{{vtIf: {vtID} .neq. {vtGet:ID_Bilder} }}-->
-					<a class="dropdown-item" href="{{vtLink:-met='move'}}">Bilderordner verschieben</a>
-					<a class="dropdown-item" href="{{vtLink:-met='delete'}}">Bilderordner löschen</a>
+					<a class="dropdown-item" href="{{vtLink:-met='move'}}">Galerie verschieben</a>
+					<a class="dropdown-item" href="{{vtLink:-met='delete'}}">Galerie löschen</a>
 				<!--{{vtEndIf}}-->
 				<!--{{vtIf: {vtGet:ContainsFolders} .eq. 0 .and. {Verzeichnis} .neq. - }}-->
 					<a class="dropdown-item" href="{{vtLink:-met='delete_hires'}}">High-res-Dateien löschen</a>
@@ -930,7 +931,7 @@
 				<!--{{vtElse}}-->
 				<!--{{vtIf: {vtGet:Unlimited} .eq. 1 .or. {vtGet:GlobalRemaining} .gt. 0 }}-->
 				<!--{{vtIf: {vtGet:ContainsFolders} .gt. 0 .and. {vtGet:ContainsImages} .eq. 0 }}-->
-					<a class="dropdown-item" href="{{vtLink:-met='upload'}}" data-confirm="Dieser Ordner enthält bereits Unterordner. Es kann für Besucher unübersichtlich werden, wenn Sie Bilder und Unterordner auf derselben Ebene mischen. Trotzdem fortfahren?">Bilder hochladen</a>
+					<a class="dropdown-item" href="{{vtLink:-met='upload'}}" data-confirm="Diese Galerie enthält bereits Untergalerien. Es kann für Besucher unübersichtlich werden, wenn Sie Bilder und Untergalerien auf derselben Ebene mischen. Trotzdem fortfahren?">Bilder hochladen</a>
 				<!--{{vtElse}}-->
 					<a class="dropdown-item" href="{{vtLink:-met='upload'}}">Bilder hochladen</a>
 				<!--{{vtEndIf}}-->
@@ -939,13 +940,13 @@
 			<!--{{vtEndIf}}-->
 		<!--{{vtElse}}-->
 			<!--{{vtIf: {vtGet:Createfolder_Error} .neq. }}-->
-				<p>Zu diesem Bilderordner konnte kein Verzeichnis auf dem Webserver erstellt werden. Fehlermeldung: {{vtGet:Createfolder_Error}}</p>
+				<p>Zu dieser Galerie konnte kein Verzeichnis auf dem Server erstellt werden. Fehlermeldung: {{vtGet:Createfolder_Error}}</p>
 				<a href="{{vtLink}}">erneut versuchen</a>
 			<!--{{vtEndIf}}-->
 			<!--{{vtIf: {vtID} .neq. {vtGet:ID_Bilder} .and. {vtCountPages} .eq.}}-->
-				<a class="dropdown-item" href="{{vtLink:-pg='..',-act='delete',-obj='{vtID}',-force='1'}}" data-confirm="Sind Sie sicher, dass Sie diesen Bilderordner endgültig löschen wollen?">Bilderordner löschen</a>
+				<a class="dropdown-item" href="{{vtLink:-pg='..',-act='delete',-obj='{vtID}',-force='1'}}" data-confirm="Sind Sie sicher, dass Sie diese Galerie endgültig löschen wollen?">Galerie löschen</a>
 			<!--{{vtElse}}-->
-				<a class="dropdown-item" href="{{vtLink:-met='delete'}}">Bilderordner löschen</a>
+				<a class="dropdown-item" href="{{vtLink:-met='delete'}}">Galerie löschen</a>
 			<!--{{vtEndIf}}-->
 		<!--{{vtEndIf}}-->
 
diff --git a/imagelist.invite.html b/imagelist.invite.html
index e05d816..8f0013a 100644
--- a/imagelist.invite.html
+++ b/imagelist.invite.html
@@ -41,7 +41,7 @@
 			<input type="hidden" name="action" value="send">
 			<table width="750" border="0" cellpadding="4"> 
 				<tr>
-					<td align="right" class="normal">Bilderordner</td>
+					<td align="right" class="normal">Galerie</td>
 					<td class="normal" style="padding-bottom:15px">
 						<!--{{vtIf: {Titel}.neq.}}-->{{Titel}}<!--{{vtElse}}-->{{vtName}}<!--{{vtEndIf}}-->
 						<!--{{vtIf: {vtCountPages}.eq.0}}-->
diff --git a/imagelist.update.html b/imagelist.update.html
index 91a446a..f1dd05c 100644
--- a/imagelist.update.html
+++ b/imagelist.update.html
@@ -3,7 +3,7 @@
 <html>
 <head>
 	<!--{{vtInclude: includes/initialize.html}}-->
-	<title>Bilderordner aktualisieren</title>
+	<title>Galeriebilder aktualisieren</title>
 	<meta http-equiv="content-type" content="text/html;charset=utf-8">
 	<link rel="stylesheet" type="text/css" href="resources/internal.css">
 </head>
@@ -12,7 +12,7 @@
 
 	<div class="content">
 		
-		<h1>Bilderordner aktualisieren</h1>
+		<h1>Galeriebilder aktualisieren</h1>
 
 		<!--
 			{{vtSet: Counter="0"}}
diff --git a/imagelist.update_images.html b/imagelist.update_images.html
index e1e8f4a..0a3bf99 100644
--- a/imagelist.update_images.html
+++ b/imagelist.update_images.html
@@ -25,7 +25,7 @@
 				return false;
 			}
 			if( f.update_iptc[1].checked || f.update_iptc[2].checked ){
-				if( ! confirm( 'Beim Aktualisieren der IPTC-Daten gehen alle Änderungen an Bildtiteln, Beschreibungen, Stichwörtern etc. verloren, die Sie in Pixtacy nachträglich für diesen Bilderordner vorgenommen haben. Sind Sie sicher, dass Sie fortfahren wollen?' ) ){
+				if( ! confirm( 'Beim Aktualisieren der IPTC-Daten gehen alle Änderungen an Bildtiteln, Beschreibungen, Stichwörtern etc. verloren, die Sie in Pixtacy nachträglich für Bilder dieser Galerie vorgenommen haben. Sind Sie sicher, dass Sie fortfahren wollen?' ) ){
 					return false;
 				}
 			}
@@ -228,10 +228,10 @@
 						<td align="right" class="normal" width="120">Bildauswahl</td>
 						<td>
 							<input type="radio" name="update_recursive" id="update_recursive_no" value="" {{vtIf:{vtSession:update_recursive}.eq.}}checked{{vtEndIf}}>
-							<label for="update_recursive_no">nur Bilder in diesem Ordner aktualisieren</label>
+							<label for="update_recursive_no">nur Bilder in dieser Galerie aktualisieren</label>
 							<br>
 							<input type="radio" name="update_recursive" id="update_recursive_yes" value="1" {{vtIf:{vtSession:update_recursive}.eq.1}}checked{{vtEndIf}}>
-							<label for="update_recursive_yes">auch Bilder in Unterordnern aktualisieren</label>
+							<label for="update_recursive_yes">auch Bilder in Untergalerien aktualisieren</label>
 							<br><br>
 							<input type="hidden" name="update_ignore" value=""> 
 							<input type="checkbox" name="update_ignore" id="update_ignore" value="1" {{vtIf:{vtSession:update_ignore}.eq.1}}checked{{vtEndIf}} onchange="handleChange_ignore(this)"> 
diff --git a/imagelist.vtedit.html b/imagelist.vtedit.html
index 486b559..6cf586d 100644
--- a/imagelist.vtedit.html
+++ b/imagelist.vtedit.html
@@ -3,7 +3,7 @@
 <html>
 <head>
 	<!--{{vtInclude: includes/initialize.html}}-->
-	<title>Bilderordner bearbeiten</title>
+	<title>Galerie bearbeiten</title>
 	<meta http-equiv="content-type" content="text/html;charset=utf-8">
 	{{vtInclude: includes/html_headers_internal.html }}
 	<script type="text/javascript" src="{{vtConfig:baseURLResources}}tiny_mce/tinymce.min.js"></script>
@@ -19,7 +19,7 @@
 				<td align="right" class="normal">Titel</td>
 				<td class="normal" style="padding-bottom:15px" colspan="2">
 					<input type="text" name="Titel" value="{{vtIf:{Titel}.neq.}}{{Titel:rawhtml}}{{vtElse}}{{vtName}}{{vtEndIf}}" style="width:280px">
-					<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+					<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 					&nbsp;&nbsp;&nbsp;
 					engl.: 
 					<input type="text" name="Titel_en" value="{{Titel_en:rawhtml}}" style="width:280px">
@@ -108,9 +108,9 @@
 						<input type="checkbox" name="-applySharing" id="applySharing" value="1">
 						<label for="applySharing">
 						<!--{{vtIf: {vtID} .eq. {vtGet:ID_Bilder} }}-->
-							Freigabeeinstellung auf ALLE Bilderordner übertragen
+							Freigabeeinstellung auf ALLE Galerien übertragen
 						<!--{{vtElse}}-->
-							Freigabeeinstellung auf enthaltene Bilderordner übertragen
+							Freigabeeinstellung auf Untergalerien übertragen
 						<!--{{vtEndIf}}-->
 						</label>
 					<!--{{vtElse}}-->
@@ -192,9 +192,9 @@
 						<input type="checkbox" name="-applyProducts" id="applyProducts" value="1">
 						<label for="applyProducts">
 						<!--{{vtIf: {vtID} .eq. {vtGet:ID_Bilder} }}-->
-							Auswahl auf ALLE Bilderordner übertragen
+							Auswahl auf ALLE Galerien übertragen
 						<!--{{vtElse}}-->
-							Auswahl auf enthaltene Bilderordner übertragen
+							Auswahl auf Untergalerien übertragen
 						<!--{{vtEndIf}}-->
 						</label>
 					<!--{{vtEndIf}}-->
@@ -206,7 +206,7 @@
 					<textarea class="tinymce" name="Beschreibung" cols="50" rows="15" style="float:left">{{Beschreibung:edit_html}}</textarea>
 				</td>
 			</tr>
-			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 			<tr>
 				<td align="right" class="normal">Beschreibung engl.</td>
 				<td class="normal" style="padding-bottom:15px" colspan="2">
@@ -244,20 +244,20 @@
 				}
 
 				if( $('#fldVerzeichnis').val() == '' && ! $('#fldVerzeichnis').prop('disabled') 
-						&& ! confirm( 'Wenn Sie kein Verzeichnis angeben, lassen sich für diesen Bilderordner keine Bilder hochladen oder Unterordner anlegen. Sind Sie sicher, dass Sie fortfahren wollen?') )
+						&& ! confirm( 'Wenn Sie kein Verzeichnis angeben, lassen sich für diese Galerie keine Bilder hochladen oder Untergalerien anlegen. Sind Sie sicher, dass Sie fortfahren wollen?') )
 				{
 					$('#fldVerzeichnis').focus().select();
 					return false;
 				}
 			
 				if( isRootFolder && $('#applySharing').prop('checked') 
-						&& ! confirm( 'Sind Sie sicher, dass Sie die Freigabeeinstellungen auf ALLE Bilderordner übertragen wollen?' ) )
+						&& ! confirm( 'Sind Sie sicher, dass Sie die Freigabeeinstellungen auf ALLE Galerien übertragen wollen?' ) )
 				{
 					return false;
 				}
 
 				if( isRootFolder && $('#applyProducts').prop('checked') 
-						&& ! confirm( 'Sind Sie sicher, dass Sie die Produktzuordnung auf ALLE Bilderordner übertragen wollen?' ) )
+						&& ! confirm( 'Sind Sie sicher, dass Sie die Produktzuordnung auf ALLE Galerien übertragen wollen?' ) )
 				{
 					return false;
 				}
@@ -265,7 +265,7 @@
 
 			$('#btnRelease').click( function(){
 				if ( $('#fldVerzeichnis').val() != '' 
-						&& ! confirm( 'Sie sollten dieses Feld nur ändern, wenn Sie Probleme beim Hochladen von Bildern oder Erstellen von Unterordnern haben. Sind Sie sicher, dass Sie fortfahren wollen?' ) )
+						&& ! confirm( 'Sie sollten dieses Feld nur ändern, wenn Sie Probleme beim Hochladen von Bildern oder Erstellen von Galerien haben. Sind Sie sicher, dass Sie fortfahren wollen?' ) )
 				{
 					return;
 				}
diff --git a/imagelist.vtnew.html b/imagelist.vtnew.html
index 2f650f8..e8ea1a8 100644
--- a/imagelist.vtnew.html
+++ b/imagelist.vtnew.html
@@ -3,7 +3,7 @@
 <html>
 <head>
 	<!--{{vtInclude: includes/initialize.html}}-->
-	<title>Bilderordner erstellen</title>
+	<title>Galerie erstellen</title>
 	<meta http-equiv="content-type" content="text/html;charset=utf-8">
 	{{vtInclude: includes/html_headers_internal.html }}
 	<script type="text/javascript" src="{{vtConfig:baseURLResources}}tiny_mce/tinymce.min.js"></script>
@@ -15,7 +15,7 @@
 
 		<!--{{vtIf: {vtCurrentAccessRights} .ncn. add }}-->
 		
-		<p>Ihre Berechtigungen reichen nicht aus, um innerhalb dieses Bilderordners einen Unterordner zu erstellen. Bitte
+		<p>Ihre Berechtigungen reichen nicht aus, um innerhalb dieser Galerie eine Untergalerie zu erstellen. Bitte
 			versuchen Sie es an einer anderen Stelle, oder wenden Sie sich an den Administrator.</p>
 
 		<script type="text/javascript">
@@ -31,7 +31,7 @@
 				<td align="right" class="normal">Titel</td>
 				<td class="normal" style="padding-bottom:15px;" colspan="2">
 					<input id="fldTitel" type="text" name="Titel" value="" style="width:280px">
-					<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+					<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 					&nbsp;&nbsp;&nbsp;
 					engl.: 
 					<input type="text" name="Titel_en" style="width:280px">
@@ -194,7 +194,7 @@
 					<textarea class="tinymce" name="Beschreibung" cols="50" rows="15" style="float:left"></textarea>
 				</td>
 			</tr>
-			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 			<tr>
 				<td align="right" class="normal">Beschreibung engl.</td>
 				<td class="normal" style="padding-bottom:15px" colspan="2">
@@ -205,7 +205,7 @@
 			<tr>
 				<td align="right" class="normal" valign="top">&nbsp;</td>
 				<td class="normal" id="buttontd" colspan="2">
-					<input id="submitButton" type="submit" value="Bilderordner erstellen">
+					<input id="submitButton" type="submit" value="Galerie erstellen">
 				</td>
 			</tr>
 		</table>
@@ -233,7 +233,7 @@
 					$('#fldVerzeichnis').val('-');
 				}
 				else if( $('#fldVerzeichnis').val() == '' && ! $('#fldVerzeichnis').prop('disabled') 
-						&& ! confirm( 'Wenn Sie kein Verzeichnis angeben, lassen sich für diesen Bilderordner keine Bilder hochladen oder Unterordner anlegen. Sind Sie sicher, dass Sie fortfahren wollen?') )
+						&& ! confirm( 'Wenn Sie kein Verzeichnis angeben, lassen sich für diese Galerie keine Bilder hochladen oder Untergalerien anlegen. Sind Sie sicher, dass Sie fortfahren wollen?') )
 				{
 					$('#fldVerzeichnis').focus().select();
 					return false;
diff --git a/includes/footer_r.html b/includes/footer_r.html
index 184f481..f84f5fc 100644
--- a/includes/footer_r.html
+++ b/includes/footer_r.html
@@ -51,16 +51,10 @@
 		{{vtEndIf}}
 	{{vtEndIf}}
 -->
-<!--{{vtIf: {vtGet:hidePromoLink} .neq. 1 .or. {vtGlobal:pxtcNaviFooter} .gt. 0 }}-->
+<!--{{vtIf: {vtGet:hidePromoLink} .neq. 1 .or. {vtGlobal:pxtcNaviFooter} .neq. }}-->
 	<footer class="border-top mt-4 pt-1">
 		<div class="container">
 			<!--{{vtIf: {vtGlobal:pxtcNaviFooter} .gt. 0 }}-->
-				<!--
-					{{vtSet: FooterPageId = "{vtGlobal:pxtcNaviFooter}" }}
-					{{vtIf: {vtGet:Language} .neq. de .and. {vtGlobal:pxtcNaviFooter_en} .neq.}}
-						{{vtSet: FooterPageId = "{vtGlobal:pxtcNaviFooter_en}" }}
-					{{vtEndIf}}
-				-->
 				<div class="float-right mt-2">
 					<small class="text-muted">
 						<!--{{vtIf: {vtGet:Language} .neq. de .and. {vtGlobal:pxtcFooterTextRight_en} .neq.}}-->
@@ -79,6 +73,13 @@
 						<!--{{vtEndIf}}-->
 					</small>
 				</div>
+				<!--{{vtIf: {vtGlobal:pxtcNaviFooter} .gt. 1 }}-->
+					<!--
+						{{vtSet: FooterPageId = "{vtGlobal:pxtcNaviFooter}" }}
+						{{vtIf: {vtGet:Language} .neq. de .and. {vtGlobal:pxtcNaviFooter_en} .neq.}}
+							{{vtSet: FooterPageId = "{vtGlobal:pxtcNaviFooter_en}" }}
+						{{vtEndIf}}
+					-->
 				<!--{{vtUse: {vtGet:FooterPageId} }}-->
 					<ul class="nav justify-content-center">
 						<!--{{vtLoop}}-->
@@ -110,6 +111,7 @@
 					</ul>
 				<!--{{vtEndUse}}-->
 			<!--{{vtEndIf}}-->
+			<!--{{vtEndIf}}-->
 			<!--{{vtIf: {vtGet:hidePromoLink} .neq. 1 }}-->
 				<div class="text-center mt-2">
 					<!--
diff --git a/includes/functions.html b/includes/functions.html
index e141ab4..83d2551 100644
--- a/includes/functions.html
+++ b/includes/functions.html
@@ -1,10 +1,10 @@
 {{vtScript}}
 
-### Diese Funktion legt zu einem Verzeichnis auf dem Server einen neuen Bilderordner in Pixtacy an.
+### Diese Funktion legt zu einem Verzeichnis auf dem Server eine neue Galerie in Pixtacy an.
 
 ### PARAMETER:
 ### Dir: relativer Pfad zum Verzeichnis auf dem Server (mit Schrägstrich am Anfang)
-### PagePath: Seitenpfad zum obersten Bilderordner in Pixtacy (optional)
+### PagePath: Seitenpfad zur obersten Galerie in Pixtacy (optional)
 ### InheritSharing: Angabe, ob Freigabeeinstellung geerbt werden soll (1) oder nicht
 ### InheritProducts: Angabe, ob Produktzuordnung geerbt werden soll (1) oder nicht
 ### UserSetting: die gewünschte Freigabeeinstellung
@@ -141,7 +141,7 @@
 
 ### PARAMETER:
 ### Path: relativer Pfad zur Bilddatei auf dem Server (mit Schrägstrich am Anfang)
-### PagePath: Seitenpfad zum obersten Bilderordner in Pixtacy (optional)
+### PagePath: Seitenpfad zur obersten Galerie in Pixtacy (optional)
 ### Charset: Zeichencodierung für die IPTC-Daten
 ### AdditionalKeywords: Stichwörter, die zusätzlich hinzugefügt werden sollen
 
@@ -242,12 +242,12 @@
 {{vtEndFunction}}
 
 
-### Diese Funktion importiert alle neuen Bilddateien zu einem bestehenden Bilderordner.
+### Diese Funktion importiert alle neuen Bilddateien zu einer bestehenden Galerie.
 
 ### PARAMETER:
-### Imagelist: ID oder Seitenpfad des Bilderordners
-### IsEmpty: Kennzeichen, ob Bilderordner mit Sicherheit leer ist (1); erspart zusätzliche Prüfung
-### PagePath: Seitenpfad zum obersten Bilderordner in Pixtacy (optional)
+### Imagelist: ID oder Seitenpfad der Galerie
+### IsEmpty: Kennzeichen, ob Galerie mit Sicherheit leer ist (1); erspart zusätzliche Prüfung
+### PagePath: Seitenpfad zur obersten Galerie in Pixtacy (optional)
 ### Source: "hires" oder "lores"
 ### Charset: Zeichencodierung für die IPTC-Daten
 ### AdditionalKeywords: Stichwörter, die zusätzlich hinzugefügt werden sollen
@@ -323,13 +323,13 @@
 {{vtEndFunction}}
 
 
-### Diese Funktion verschiebt ein Bild oder einen Bilderordner in einen anderen Ordner.
+### Diese Funktion verschiebt ein Bild oder eine Galerie in eine andere Galerie.
 
 ### PARAMETER:
-### Object_ID: Seiten-ID des Bildes bzw. des Bilderordners
+### Object_ID: Seiten-ID des Bildes bzw. der Galerie
 ### Object_Path: Pfad zur Datei bzw. zum Verzeichnis auf dem Server (ausgehend vom lores-Verzeichnis, beginnend mit /)
-### Target_ID: Seiten-ID des Zielordners
-### Target_Path: Pfad zum Zielordner auf dem Server (ausgehend vom lores-Verzeichnis, beginnend mit /)
+### Target_ID: Seiten-ID der Zielgalerie
+### Target_Path: Pfad zur Zielgalerie auf dem Server (ausgehend vom lores-Verzeichnis, beginnend mit /)
 
 ### GLOBALE VARIABLEN:
 ### ftpBasePath: FTP-Pfad zum Pixtacy-Verzeichnis
diff --git a/includes/get_products.html b/includes/get_products.html
index 9fdad32..ed8421f 100644
--- a/includes/get_products.html
+++ b/includes/get_products.html
@@ -13,7 +13,7 @@
 		### Argumente:
 		### ProductFolderId = ID der Produkt-Containerseite
 		### ImageId = ID des Bildes
-		### ImageFolder = relatives Verzeichnis des Bilderordners
+		### ImageFolder = relatives Verzeichnis der Galerie
 		### ImageFilename = Name des Bildes
 	
 		{{vtIf: {vtPageType} .neq. product .or. {vtContainerId} .neq. {vtArg:ProductFolderId} }}
diff --git a/includes/get_products_lb.html b/includes/get_products_lb.html
index 1fe351f..77139b6 100644
--- a/includes/get_products_lb.html
+++ b/includes/get_products_lb.html
@@ -15,6 +15,7 @@
 				{{vtSet: ShowRow=""}}
 				{{vtIf: {Benutzer} .neq. .and. {Benutzer} .neq. guest .and. {vtUser:groups} .ncn. {Benutzer} .and. {vtUser:admin} .neq. 1 }}
 				{{vtElseIf: {Benutzer} .eq. guest .and. {vtUser:name} .neq. .and. {vtUser:admin} .neq. 1 }}
+				{{vtElseIf: {Preis|num-en} .gt. 0 .and. {vtGet:Bezahlmethoden} .eq.}}
 				{{vtElseIf: {Zuordnung} .eq. 1 .and. {Kennung} .eq.}}
 					{{vtSet: ShowRow="1"}}
 				{{vtEndIf}}
diff --git a/includes/header.html b/includes/header.html
index ab17684..471eef6 100644
--- a/includes/header.html
+++ b/includes/header.html
@@ -225,7 +225,7 @@
 	</form>
 </div>
 
-<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 	<div id="languages" style="position:absolute; top:20px; right:300px; width:100px; text-align:right">
 		<!--
 			{{vtIf: {vtGetValue:o} .neq.}}
diff --git a/includes/header2.html b/includes/header2.html
index a0a920a..19a44b1 100644
--- a/includes/header2.html
+++ b/includes/header2.html
@@ -176,7 +176,7 @@
 -->
 <div id="navi_top_right">
 
-	<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+	<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 		<div id="language_switch">
 			<!--
 				{{vtIf: {vtGetValue:o} .neq.}}
diff --git a/index.vtedit.html b/index.vtedit.html
index 96be87a..473fa84 100644
--- a/index.vtedit.html
+++ b/index.vtedit.html
@@ -83,7 +83,7 @@
 				<td>&nbsp;</td>
 			</tr>
 			<tr><td colspan="3">&nbsp;</td></tr>
-			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 			<tr>
 				<td align="right" class="normal">Inhalt links engl.</td>
 				<td class="normal" colspan="2">
@@ -128,7 +128,7 @@
 				<td>&nbsp;</td>
 			</tr>
 			<tr><td colspan="3">&nbsp;</td></tr>
-			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 			<tr>
 				<td align="right" class="normal">Inhalt rechts engl.</td>
 				<td class="normal" colspan="2">
@@ -142,7 +142,7 @@
 				<td align="right" class="normal">Link zu allen Bildern</td>
 				<td class="normal" colspan="2">
 					<select name="Link_zu_Bildern" onchange="handleChange(this)">
-						<option value="">zeigt Liste der Bilderordner</option>
+						<option value="">zeigt Liste der Galerien</option>
 						<option value="1" {{vtIf:{Link_zu_Bildern}.eq.1}}selected{{vtEndIf}}>zeigt Liste aller Bilder</option>
 						<option value="9" {{vtIf:{Link_zu_Bildern}.eq.9}}selected{{vtEndIf}}>wird nicht angezeigt</option>
 					</select>
@@ -151,7 +151,7 @@
 						&nbsp;&nbsp;
 						Beschriftung:
 						<input type="text" name="Link_Beschriftung" value="{{vtIf:{Link_Beschriftung}.neq.}}{{Link_Beschriftung}}{{vtElse}}{{vtGet:s_btn_show_all_pics}}{{vtEndIf}}" size="30" {{vtIf:{Link_zu_Bildern}.eq.9}}disabled{{vtEndIf}}>
-						<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+						<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 						&nbsp;&nbsp;
 						engl.:
 						<input type="text" name="Link_Beschriftung_en" value="{{Link_Beschriftung_en}}" size="30" {{vtIf:{Link_zu_Bildern}.eq.9}}disabled{{vtEndIf}}>
diff --git a/languages/de.txt b/languages/de.txt
index 9ee16df..508a966 100644
--- a/languages/de.txt
+++ b/languages/de.txt
@@ -140,7 +140,7 @@
 {{vtSet: s_msg_0016 = "Bitte bestätigen Sie, dass Sie die AGB kennen und akzeptieren."}}
 {{vtSet: s_msg_0017 = "Das System hat Ihre Anfrage als Spam eingestuft und daher nicht weitergeleitet.<br> Bitte ändern Sie Ihre Angaben, und versuchen Sie es noch einmal."}}
 {{vtSet: s_msg_0018 = "Ihre Angaben waren nicht vollständig. Die Anfrage wurde daher nicht abgesendet."}}
-{{vtSet: s_msg_0019 = "Keine Bilderordner vorhanden."}}
+{{vtSet: s_msg_0019 = "Keine Galerien vorhanden."}}
 {{vtSet: s_msg_0020 = "Bitte warten"}}
 {{vtSet: s_msg_0021 = "1 Bild gefunden"}}
 {{vtSet: s_msg_0022 = "%s Bilder gefunden"}}
@@ -150,8 +150,8 @@
 {{vtSet: s_msg_0026 = "Sie haben nicht die erforderlichen Zugriffsrechte, um dieses Bild herunterzuladen."}}
 {{vtSet: s_msg_0027 = "bitte warten..."}}
 {{vtSet: s_msg_0028 = "Bild befindet sich in der Lightbox"}}
-{{vtSet: s_msg_0029 = "Dieser Bilderordner ist leer."}}
-{{vtSet: s_msg_0030 = "Dieses Bild gehört zu einem passwortgeschützten Bilderordner. Folgen Sie dem ursprünglichen Einladungslink, um das Bild sichtbar zu machen."}}
+{{vtSet: s_msg_0029 = "Diese Galerie ist leer."}}
+{{vtSet: s_msg_0030 = "Dieses Bild gehört zu einer passwortgeschützten Galerie. Folgen Sie dem ursprünglichen Einladungslink, um das Bild sichtbar zu machen."}}
 {{vtSet: s_msg_0031 = "Einige Lightbox-Bilder wurden in der Zwischenzeit gelöscht oder können wegen mangelnder Zugriffsrechte nicht dargestellt werden."}}
 {{vtSet: s_msg_0032 = "Einige Lightbox-Bilder sind nicht öffentlich zugänglich oder wurden in der Zwischenzeit gelöscht. Möglicherweise erzielen Sie ein besseres Ergebnis, wenn Sie sich %1$seinloggen%2$s."}}
 {{vtSet: s_msg_0033 = "Die Lightbox-Bilder wurden inzwischen gelöscht, oder Ihre Zugriffsrechte reichen nicht aus, um sie darzustellen."}}
@@ -175,7 +175,7 @@
 {{vtSet: s_msg_0051 = 'Das "Blindfeld" dient dem Spamschutz und muss leer bleiben.'}}
 {{vtSet: s_msg_0052 = 'Ihre Zugriffsrechte reichen nicht aus, um die angeforderte Seite aufzurufen.'}}
 {{vtSet: s_msg_0053 = 'Beim Erstellen der ZIP-Datei ist ein Fehler aufgetreten.'}}
-{{vtSet: s_msg_0054 = 'Ihre Zugriffsrechte reichen nicht aus, um die Inhalte dieses Ordners zu sehen.'}}
+{{vtSet: s_msg_0054 = 'Ihre Zugriffsrechte reichen nicht aus, um die Inhalte dieser Galerie zu sehen.'}}
 {{vtSet: s_msg_0055 = "Bitte bestätigen Sie, dass Sie die Datenschutzerklärung zur Kenntnis genommen haben."}}
 {{vtSet: s_msg_0056 = "Bitte bestätigen Sie, dass Sie auf Ihr Widerrufsrecht verzichten."}}
 {{vtSet: s_msg_0057 = "Der Benutzername darf nur Buchstaben und Ziffern sowie Punkte, Unter- und Bindestriche enthalten."}}
@@ -239,11 +239,10 @@
 {{vtSet: s_txt_0008 = "Ich kenne und akzeptiere die AGB"}}
 {{vtSet: s_txt_0009 = "Bitte überprüfen Sie noch einmal alle Angaben zu Ihrer Bestellung."}}
 {{vtSet: s_txt_0010 = "Artikel"}}
-{{vtSet: s_txt_0011 = "Ordner %1$s bis %2$s von %3$s"}}
 {{vtSet: s_txt_0012 = "Aus der Lightbox entfernen"}}
 {{vtSet: s_txt_0013 = "Zur Lightbox hinzufügen"}}
 {{vtSet: s_txt_0014 = "Foto"}}
-{{vtSet: s_txt_0015 = "Bilderordner"}}
+{{vtSet: s_txt_0015 = "Galerie"}}
 {{vtSet: s_txt_0016 = "Weitere Informationen zu diesem Produkt einblenden"}}
 {{vtSet: s_txt_0017 = "Download"}}
 {{vtSet: s_txt_0018 = "im Warenkorb"}}
@@ -260,13 +259,12 @@
 {{vtSet: s_txt_0029 = "Alle Preise verstehen sich inklusive Mehrwertsteuer."}}
 {{vtSet: s_txt_0030 = "Alle Preise verstehen sich zuzüglich Mehrwertsteuer."}}
 {{vtSet: s_txt_0031 = "Unsere Artikel unterliegen nicht der Mehrwertsteuerpflicht."}}
-{{vtSet: s_txt_0036 = "Ordner"}}
+{{vtSet: s_txt_0036 = "Galerie"}}
 {{vtSet: s_txt_0037 = "Bild(er)"}}
 {{vtSet: s_txt_0038 = "Mehrwertsteuer"}}
 {{vtSet: s_txt_0039 = "leer"}}
-{{vtSet: s_txt_0040 = "Ordner"}}
 {{vtSet: s_txt_0041 = "MwSt."}}
-{{vtSet: s_txt_0042 = "Gesamten Bilderordner zur Lightbox hinzufügen"}}
+{{vtSet: s_txt_0042 = "Alle Galeriebilder zur Lightbox hinzufügen"}}
 {{vtSet: s_txt_0043 = "Bitte liefern Sie an eine andere Adresse"}}
 {{vtSet: s_txt_0044 = "Das Benutzerkonto konnte nicht aktiviert werden. Bitte stellen Sie sicher, dass der Aktivierungslink vollständig ist und nicht einzelne Zeichen am Ende fehlen."}}
 {{vtSet: s_txt_0045 = "Ihre Registrierung unter"}}
@@ -298,6 +296,9 @@ ich habe Ihre Bilder jetzt online gestellt. Klicken Sie auf den folgenden Link,
 
 Viele Grüße
 "}}
+{{vtSet: s_txt_0067 = "Markierung umschalten"}}
+{{vtSet: s_txt_0068 = "Bild kaufen ..."}}
+{{vtSet: s_txt_0069 = "Vollbildansicht aufrufen"}}
 
 {{vtSet: s_payment_vorkasse           = "Vorkasse"}}
 {{vtSet: s_payment_sepa               = "SEPA-Lastschrift"}}
diff --git a/languages/en.txt b/languages/en.txt
index bc67d57..3e481a6 100644
--- a/languages/en.txt
+++ b/languages/en.txt
@@ -150,8 +150,8 @@
 {{vtSet: s_msg_0026 = "You have not the neccessary privileges to download this image."}}
 {{vtSet: s_msg_0027 = "please wait..."}}
 {{vtSet: s_msg_0028 = "Image is in the lightbox"}}
-{{vtSet: s_msg_0029 = "This image folder is empty."}}
-{{vtSet: s_msg_0030 = "This image is part of a locked image folder. Please follow the original invitation link in order to make it visible."}}
+{{vtSet: s_msg_0029 = "This gallery is empty."}}
+{{vtSet: s_msg_0030 = "This image is part of a locked gallery. Please follow the original invitation link in order to make it visible."}}
 {{vtSet: s_msg_0031 = "Some lightbox images could not be displayed due to missing privileges or because they have been deleted in the meantime."}}
 {{vtSet: s_msg_0032 = "Some lightbox images are not publicly available or have been deleted in the meantime. You might get a better result if you %1$slog in%2$s."}}
 {{vtSet: s_msg_0033 = "The lightbox images have been deleted in the meantime, or you have not the neccessary privileges for displaying them."}}
@@ -175,7 +175,7 @@
 {{vtSet: s_msg_0051 = 'The "Blindfeld" field is a spam trap and must be empty.'}}
 {{vtSet: s_msg_0052 = 'You have not the neccessary privileges to access this page.'}}
 {{vtSet: s_msg_0053 = 'The ZIP file could not be created due to an error.'}}
-{{vtSet: s_msg_0054 = 'You have not the neccessary privileges to view the content of this folder.'}}
+{{vtSet: s_msg_0054 = 'You have not the neccessary privileges to view the contents of this gallery.'}}
 {{vtSet: s_msg_0055 = "Please confirm that you have read our privacy statement."}}
 {{vtSet: s_msg_0056 = "Please confirm that you waive your right of revocation."}}
 {{vtSet: s_msg_0057 = "The user name may only contain letters, numbers, periods, hyphens and underscore characters."}}
@@ -239,11 +239,10 @@
 {{vtSet: s_txt_0008 = "I have read and agree to the terms and conditions"}}
 {{vtSet: s_txt_0009 = "Please review the details of your order."}}
 {{vtSet: s_txt_0010 = "article(s)"}}
-{{vtSet: s_txt_0011 = "folder %1$s to %2$s of %3$s"}}
 {{vtSet: s_txt_0012 = "Remove from lightbox"}}
 {{vtSet: s_txt_0013 = "Add to lightbox"}}
 {{vtSet: s_txt_0014 = "Image"}}
-{{vtSet: s_txt_0015 = "Image folder"}}
+{{vtSet: s_txt_0015 = "Gallery"}}
 {{vtSet: s_txt_0016 = "Display more information about this product"}}
 {{vtSet: s_txt_0017 = "Download"}}
 {{vtSet: s_txt_0018 = "in your cart"}}
@@ -260,13 +259,12 @@
 {{vtSet: s_txt_0029 = "All prices include VAT."}}
 {{vtSet: s_txt_0030 = "All prices are understood plus VAT."}}
 {{vtSet: s_txt_0031 = "Our articles are not taxable for VAT."}}
-{{vtSet: s_txt_0036 = "Folder"}}
+{{vtSet: s_txt_0036 = "Gallery"}}
 {{vtSet: s_txt_0037 = "image(s)"}}
 {{vtSet: s_txt_0038 = "VAT"}}
 {{vtSet: s_txt_0039 = "empty"}}
-{{vtSet: s_txt_0040 = "folder(s)"}}
 {{vtSet: s_txt_0041 = "VAT"}}
-{{vtSet: s_txt_0042 = "Add all images of this folder to the lightbox"}}
+{{vtSet: s_txt_0042 = "Add all gallery images to the lightbox"}}
 {{vtSet: s_txt_0043 = "Please ship to another address"}}
 {{vtSet: s_txt_0044 = "The user account could not be activated. Please ensure that the activation link is complete and not a single character is missing at the end."}}
 {{vtSet: s_txt_0045 = "Your registration at"}}
@@ -290,6 +288,17 @@
 {{vtSet: s_txt_0063 = "There are no products available for this image."}}
 {{vtSet: s_txt_0064 = "Loading next image"}}
 {{vtSet: s_txt_0065 = "Loading previous image"}}
+{{vtSet: s_txt_0066 = "Dear customer,
+
+I've put your pictures online now. Click on the following link to view them:
+
+%s
+
+Regards,
+"}}
+{{vtSet: s_txt_0067 = "Toggle favorite status"}}
+{{vtSet: s_txt_0068 = "Buy image ..."}}
+{{vtSet: s_txt_0069 = "Toggle full screen display"}}
 
 {{vtSet: s_payment_vorkasse           = "Prepayment"}}
 {{vtSet: s_payment_sepa               = "SEPA Direct Debit"}}
diff --git a/lightbox.domove.html b/lightbox.domove.html
index 3b2d169..feedde5 100644
--- a/lightbox.domove.html
+++ b/lightbox.domove.html
@@ -16,15 +16,15 @@
 			<!--
 				{{vtUse: {vtPostValue:target_id} }}
 					{{vtIf: {vtPageType} .neq. imagelist }}
-						{{vtSet: Error = "Als Ziel muss ein Bilderordner gewählt werden." }}
+						{{vtSet: Error = "Als Ziel muss eine Galerie gewählt werden." }}
 					{{vtEndIf}}
 
 					{{vtIf: {vtPathIDs} .ncn. {vtGet:ID_Bilder} .and. {vtId} .neq. {vtGet:ID_Bilder} }}
-						{{vtSet: Error = "Der Zielordner liegt außerhalb des gültigen Bereichs." }}
+						{{vtSet: Error = "Die Zielgalerie liegt außerhalb des gültigen Bereichs." }}
 					{{vtEndIf}}
 
 					{{vtIf: {Verzeichnis} .neq. {vtPostValue:target_path} .and. {Verzeichnis} .neq. - }}
-						{{vtSet: Error = "Der Zielordner ist mit keinem oder einem falschen Verzeichnis auf dem Server verknüpft." }}
+						{{vtSet: Error = "Die Zielgalerie ist mit keinem oder einem falschen Verzeichnis auf dem Server verknüpft." }}
 					{{vtEndIf}}
 
 					{{vtCalc: file_exists('data/pixtacy_thumbnails{Verzeichnis:escaped}') ? 1 : 0 }}
@@ -57,25 +57,25 @@
 							<span style="color:red">
 								FEHLER: 
 								<!--{{vtIf: {vtResult} .bw. ERROR-03 }}-->
-									Das Bild befindet sich bereits im Zielordner.
+									Das Bild befindet sich bereits in der Zielgalerie.
 								<!--{{vtElseIf: {vtResult} .bw. ERROR-04 }}-->
 									Das Bild liegt außerhalb des gültigen Bereichs.
 								<!--{{vtElseIf: {vtResult} .bw. ERROR-06 }}-->
-									Als Ziel muss ein Bilderordner gewählt werden.
+									Als Ziel muss eine Galerie gewählt werden.
 								<!--{{vtElseIf: {vtResult} .bw. ERROR-07 }}-->
-									Der Zielordner liegt außerhalb des gültigen Bereichs.
+									Die Zielgalerie liegt außerhalb des gültigen Bereichs.
 								<!--{{vtElseIf: {vtResult} .bw. ERROR-07 }}-->
-									Der Zielordner ist mit keinem oder einem falschen Verzeichnis auf dem Server verknüpft.
+									Die Zielgalerie ist mit keinem oder einem falschen Verzeichnis auf dem Server verknüpft.
 								<!--{{vtElseIf: {vtResult} .bw. ERROR-09 }}-->
-									Im Zielordner befindet sich bereits ein Bild mit diesem Namen.
+									In der Zielgalerie befindet sich bereits ein Bild mit diesem Namen.
 								<!--{{vtElseIf: {vtResult} .bw. ERROR-11 }}-->
-									Im Low-res-Verzeichnis konnte der erforderliche Unterordner nicht erstellt werden.
+									Im Low-res-Verzeichnis konnte das erforderliche Unterverzeichnis nicht erstellt werden.
 								<!--{{vtElseIf: {vtResult} .bw. ERROR-12 }}-->
 									Das Verschieben des Low-res-Bildes per FTP ist fehlgeschlagen.
 								<!--{{vtElseIf: {vtResult} .bw. ERROR-13 }}-->
 									Das Verschieben des Low-res-Bildes auf dem Server ist fehlgeschlagen.
 								<!--{{vtElseIf: {vtResult} .bw. ERROR-21 }}-->
-									Im High-res-Verzeichnis konnte der erforderliche Unterordner nicht erstellt werden.
+									Im High-res-Verzeichnis konnte das erforderliche Unterverzeichnis nicht erstellt werden.
 								<!--{{vtElseIf: {vtResult} .bw. ERROR-22 }}-->
 									Das Verschieben des High-res-Bildes per FTP ist fehlgeschlagen.
 								<!--{{vtElseIf: {vtResult} .bw. ERROR-23 }}-->
@@ -94,7 +94,7 @@
 				<p>
 					<a href="{{vtLink}}" class="text_link">zurück</a> |
 					<!--{{vtUse: {vtPostValue:target_id} }}-->
-						<a href="{{vtLink}}" class="text_link">zum Zielordner ({{vtName}})</a>
+						<a href="{{vtLink}}" class="text_link">zur Zielgalerie ({{vtName}})</a>
 					<!--{{vtEndUse}}-->
 				</p>
 
diff --git a/lightbox.html b/lightbox.html
index fe9f177..61765dc 100644
--- a/lightbox.html
+++ b/lightbox.html
@@ -123,25 +123,9 @@
 	{{vtSet: LightboxListe}}
 
 	{{vtAsAdmin}}
-
-		{{vtInclude: includes/get_payment_methods.html}}
-
 		{{vtSelect: -origin="{vtGet:ID_Bilder}", -type="image", -filter="{vtID} .in. {vtGet:LightboxListe}", -sortfield="vtName" }}
 			{{vtSet: LightboxCount="{vtCountSelection}"}}
 		{{vtEndSelect}}
-
-		{{vtUse:{vtGet:ID_Produkte} }}
-			{{vtLoop}}
-				{{vtIf: {Benutzer} .neq. .and. {Benutzer} .neq. guest .and. {vtUser:groups} .ncn. {Benutzer} .and. {vtUser:admin} .neq. 1 }}
-				{{vtElseIf: {Benutzer} .eq. guest .and. {vtUser:name} .neq. .and. {vtUser:admin} .neq. 1 }}
-				{{vtElseIf: {Preis|num-en} .gt. 0 .and. {vtGet:Bezahlmethoden} .eq.}}
-				{{vtElseIf: {Zuordnung} .eq. 1 .and. {Kennung} .eq.}}
-					{{vtSet: ProductsAvailable="1"}}
-					{{vtExit}}
-				{{vtEndIf}}
-			{{vtEndLoop}}
-		{{vtEndUse}}
-
 	{{vtEndAsAdmin}}
 
 	{{vtInclude: includes/get_products_lb.html }}
@@ -302,7 +286,7 @@
 		<!--{{vtCalc: encodeNumberList('{vtGet:Lightbox}') }}-->
 		<p id="lb_btn_permalink"><a id="permalink" href="{{vtSelf}}?_&amp;-pg={{vtID}}&amp;lb={{vtResult}}" onclick="my_dialog( '{{vtGet:s_txt_0020}}:', this.href ); return false;" target="_blank" title="{{vtGet:s_txt_0024}}">{{vtGet:s_btn_lightbox_url}}</a></p>
 
-		<!--{{vtIf: {vtGet:ProductsAvailable} .eq. 1}}-->
+		<!--{{vtIf: {vtGet:ProductCount} .gt. 0 }}-->
 			<p id="btn_buy"><a href="#void">{{vtGet:s_btn_buy_lb}}</a></p>
 		<!--{{vtEndIf}}-->
 
@@ -635,7 +619,7 @@
 		</div>
 	<!--{{vtEndIf}}-->
 
-	<!--{{vtIf: {vtGet:ProductsAvailable} .eq. 1 .and. {vtCountSelection} .gt. 0 }}-->
+	<!--{{vtIf: {vtGet:ProductCount} .gt. 0 .and. {vtCountSelection} .gt. 0 }}-->
 		{{vtInclude: includes/lightbox_order_dialogs.html }}
 	<!--{{vtEndIf}}-->
 
diff --git a/lightbox.save.html b/lightbox.save.html
index d929f01..06facaa 100644
--- a/lightbox.save.html
+++ b/lightbox.save.html
@@ -3,7 +3,7 @@
 <html>
 <head>
 	<!--{{vtInclude: includes/initialize.html}}-->
-	<title>Lightbox als virtuellen Ordner speichern</title>
+	<title>Lightbox als virtuelle Galerie speichern</title>
 	<meta http-equiv="content-type" content="text/html;charset=utf-8">
 	{{vtInclude: includes/html_headers_internal.html }}
 	<link rel="stylesheet" href="{{vtResource:jquery/jquery-ui.custom.min.css}}" >
@@ -71,7 +71,7 @@
 		{
 			if ( f.target_id.value == '{{vtContainerId}}' )
 			{
-				alert( 'Das Bild liegt bereits im ausgewählten Ordner.' );
+				alert( 'Das Bild befindet sich bereits in der ausgewählten Galerie.' );
 				return false;
 			}
 
@@ -211,7 +211,7 @@
 		<!--{{vtElse}}-->
 		
 			<!--
-				{{vtDo: -act="create", -target="{vtPostValue:target_id}", -template="imagelist", Titel = "Virtueller Ordner",
+				{{vtDo: -act="create", -target="{vtPostValue:target_id}", -template="imagelist", Titel = "Virtuelle Galerie",
 					Verzeichnis = "-", Sortiment = "-1", -properties[accessRights]="111000000", -properties[userID]="0"
 				}}
 				{{vtSet: ImagelistId }}
diff --git a/modules/PmConnector.class.php b/modules/PmConnector.class.php
index 8ffc107..4b78723 100644
--- a/modules/PmConnector.class.php
+++ b/modules/PmConnector.class.php
@@ -595,7 +595,6 @@ class PmConnector {
 		// $criteria muss ein assoziatives Array mit den Elementen 'field', 'operator', 'value' und optional 'metadataTag' sein
 
 		extract( $criteria );
-		$value = utf8_decode( $value );
 		$str = '';
 
 		switch ( $operator )
diff --git a/modules/PmConnector_xml3.class.php b/modules/PmConnector_xml3.class.php
index fc16c0f..a555b8b 100644
--- a/modules/PmConnector_xml3.class.php
+++ b/modules/PmConnector_xml3.class.php
@@ -639,7 +639,6 @@ class PmConnector {
 		// $criteria muss ein assoziatives Array mit den Elementen 'field', 'operator', 'value' und optional 'metadataTag' sein
 
 		extract( $criteria );
-		$value = utf8_decode( $value );
 		$str = '';
 
 		switch ( $operator )
diff --git a/page.vtedit.html b/page.vtedit.html
index fe08c0c..4ed0469 100644
--- a/page.vtedit.html
+++ b/page.vtedit.html
@@ -46,7 +46,7 @@
 				<td style="width:80px">Name</td>
 				<td>
 					<input type="text" name="Name" value="{{Name:edit_html}}" size="50">
-					<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+					<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 					&nbsp;&nbsp;&nbsp;
 					engl.:
 					<input type="text" name="Name_en" value="{{Name_en:edit_html}}" size="50">
@@ -60,7 +60,7 @@
 					<textarea class="tinymce" name="Text" cols="50" rows="15">{{Text:edit_html}}</textarea>
 				</td>
 			</tr>
-			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 			<tr><td colspan="2">&nbsp;</td></tr>
 			<tr>
 				<td>Text engl.</td>
diff --git a/page.vtnew.html b/page.vtnew.html
index e60fef2..84963a5 100644
--- a/page.vtnew.html
+++ b/page.vtnew.html
@@ -48,7 +48,7 @@
 				<td style="width:80px">Name</td>
 				<td>
 					<input type="text" name="Name" size="50">
-					<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+					<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 					&nbsp;&nbsp;&nbsp;
 					engl.:
 					<input type="text" name="Name_en" size="50">
@@ -62,7 +62,7 @@
 					<textarea class="tinymce" name="Text" cols="50" rows="15"></textarea>
 				</td>
 			</tr>
-			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 			<tr><td colspan="2">&nbsp;</td></tr>
 			<tr>
 				<td>Text engl.</td>
diff --git a/page2.vtedit.html b/page2.vtedit.html
index 1fe4f59..3c03a2b 100644
--- a/page2.vtedit.html
+++ b/page2.vtedit.html
@@ -46,7 +46,7 @@
 				<td style="width:80px">Name</td>
 				<td>
 					<input type="text" name="Name" value="{{Name:edit_html}}" size="50">
-					<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+					<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 					&nbsp;&nbsp;&nbsp;
 					engl.:
 					<input type="text" name="Name_en" value="{{Name_en:edit_html}}" size="50">
@@ -83,7 +83,7 @@
 					<textarea class="tinymce" name="Text" cols="50" rows="15">{{Text:edit_html}}</textarea>
 				</td>
 			</tr>
-			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 			<tr><td colspan="2">&nbsp;</td></tr>
 			<tr>
 				<td>Text links engl.</td>
@@ -122,7 +122,7 @@
 					<textarea class="tinymce" name="Text_rechts" cols="50" rows="15">{{Text_rechts:edit_html}}</textarea>
 				</td>
 			</tr>
-			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 			<tr><td colspan="2">&nbsp;</td></tr>
 			<tr>
 				<td>Text rechts engl.</td>
diff --git a/page2.vtnew.html b/page2.vtnew.html
index 32d2116..d810bfd 100644
--- a/page2.vtnew.html
+++ b/page2.vtnew.html
@@ -48,7 +48,7 @@
 				<td style="width:80px">Name</td>
 				<td>
 					<input type="text" name="Name" size="50">
-					<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+					<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 					&nbsp;&nbsp;&nbsp;
 					engl.:
 					<input type="text" name="Name_en" size="50">
@@ -78,7 +78,7 @@
 					<textarea class="tinymce" name="Text" cols="50" rows="15"></textarea>
 				</td>
 			</tr>
-			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 			<tr><td colspan="2">&nbsp;</td></tr>
 			<tr>
 				<td>Text links engl.</td>
@@ -110,7 +110,7 @@
 					<textarea class="tinymce" name="Text_rechts" cols="50" rows="15"></textarea>
 				</td>
 			</tr>
-			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 			<tr><td colspan="2">&nbsp;</td></tr>
 			<tr>
 				<td>Text rechts engl.</td>
diff --git a/product.html b/product.html
index 9a908ea..a863ef1 100644
--- a/product.html
+++ b/product.html
@@ -71,14 +71,14 @@
 					<!--{{vtIf:{Zuordnung} .eq. 1}}-->
 						Produkt wird allen Bildern automatisch zugeordnet
 					<!--{{vtElse}}-->
-						Produkt muss Bilderordnern manuell zugeordnet werden
+						Produkt muss Galerien manuell zugeordnet werden
 					<!--{{vtEndIf}}-->
 					<!--{{vtIf:{Kennung} .neq.}}-->
 						<br><br>Produkt wird nur Bildern zugeordnet, bei denen High-Res-Datei vorliegt<br>
                   <!--{{vtIf: {Erzeugungsregel} .neq. }}-->
 							Erzeugungsregel: <a href="{{vtLink:///Einstellungen/Eigene Einstellungen/Bilderzeugung}}">{{Erzeugungsregel}}</a>
 						<!--{{vtElseIf: {Kennung} .eq. *}}-->
-							(Datei muss direkt im High-res-Verzeichnis des jeweiligen Bilderordners liegen)
+							(Datei muss direkt im High-res-Verzeichnis der jeweiligen Galerie liegen)
 						<!--{{vtElse}}-->
 							(Datei muss in einem Unterverzeichnis mit dem Namen <strong>{{Kennung}}</strong> liegen)
 						<!--{{vtEndIf}}-->
diff --git a/product.vtedit.html b/product.vtedit.html
index 8771bcc..4ebeec3 100644
--- a/product.vtedit.html
+++ b/product.vtedit.html
@@ -244,7 +244,7 @@
 					<a href="{{vtLink:-pg='..',-act='trash',-obj='{vtID}'}}" onclick="return confirm('Sind Sie sicher, dass dieses Produkt gelöscht werden soll?')" class="text_link">Produkt löschen...</a>
 				</td>
 			</tr>
-			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 			<tr>
 				<td align="right" class="normal" width="100">Bezeichnung engl.</td>
 				<td class="normal" style="padding-bottom:15px">
@@ -330,7 +330,7 @@
 								<input id="input_hires_path_1" type="radio" name="-hires_path" value="1" {{vtIf:{Kennung} .eq. *}}checked{{vtEndIf}}>&nbsp;
 							</td>
 							<td>
-								<label for="input_hires_path_1">High-res-Datei muss direkt im High-res-Verzeichnis des jeweiligen Bilderordners liegen</label>
+								<label for="input_hires_path_1">High-res-Datei muss direkt im High-res-Verzeichnis der jeweiligen Galerie liegen</label>
 							</td>
 						</tr>
 						<tr>
@@ -397,7 +397,7 @@
 					<textarea name="Beschreibung" class="tinymce" cols="50" rows="5">{{Beschreibung:edit_html}}</textarea>
 				</td>
 			</tr>
-			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 			<tr>
 				<td align="right" class="normal">Beschreibung engl.</td>
 				<td class="normal" style="padding-bottom:15px">
diff --git a/product.vtnew.html b/product.vtnew.html
index ce2989d..290a484 100644
--- a/product.vtnew.html
+++ b/product.vtnew.html
@@ -231,7 +231,7 @@
 					<input type="text" name="Bezeichnung" size="50">
 				</td>
 			</tr>
-			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 			<tr>
 				<td align="right" class="normal" width="100">Bezeichnung engl.</td>
 				<td class="normal" style="padding-bottom:15px">
@@ -300,7 +300,7 @@
 					<label for="input_zuordnung_1">Produkt wird allen Bildern automatisch zugeordnet</label>
 					<br>
 					<input id="input_zuordnung_2" type="radio" name="Zuordnung" value=""> 
-					<label for="input_zuordnung_2">Produkt muss Bilderordnern manuell zugeordnet werden</label>
+					<label for="input_zuordnung_2">Produkt muss Galerien manuell zugeordnet werden</label>
 					<br><br>
 					<input type="hidden" name="Kennung" value="">
 						<input id="input_hires_switch" type="checkbox" name="-hires_switch" value="1">
@@ -311,7 +311,7 @@
 								<input id="input_hires_path_1" type="radio" name="-hires_path" value="1" checked>&nbsp;
 							</td>
 							<td>
-								<label for="input_hires_path_1">High-res-Datei muss direkt im High-res-Verzeichnis des jeweiligen Bilderordners liegen</label>
+								<label for="input_hires_path_1">High-res-Datei muss direkt im High-res-Verzeichnis der jeweiligen Galerie liegen</label>
 							</td>
 						</tr>
 						<tr>
@@ -374,7 +374,7 @@
 					<textarea class="tinymce" name="Beschreibung" cols="50" rows="5"></textarea>
 				</td>
 			</tr>
-			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 			<tr>
 				<td align="right" class="normal">Beschreibung engl.</td>
 				<td class="normal" style="padding-bottom:15px">
diff --git a/productlist.html b/productlist.html
index f3df704..4561ea5 100644
--- a/productlist.html
+++ b/productlist.html
@@ -179,7 +179,7 @@
 					<th width="250" class="{{vtIf: {vtSession:ProductlistSortfield} .eq. name}}active{{vtEndIf}}">
 						<a href="{{vtLink:sort='name'}}">Bezeichnung</a>
 					</th>
-					<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+					<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 						<th width="250" class="{{vtIf: {vtSession:ProductlistSortfield} .eq. name_en}}active{{vtEndIf}}">
 							<a href="{{vtLink:sort='name_en'}}">Bezeichnung engl.</a>
 						</th>
@@ -224,7 +224,7 @@
 						<a href="#" onclick="showInfo({{vtID}}); return false;"><img src="resources/btn_info.gif" width="10" height="10" alt="Btn Info" border="0" style="vertical-align:baseline"></a>
 						<!--{{vtEndIf}}-->
 					</td>
-					<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+					<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 						<td class="fieldContent">{{Bezeichnung_en}}</td>
 					<!--{{vtEndIf}}-->
 					<td class="fieldContent" style="text-align:center">
diff --git a/register.vtedit.html b/register.vtedit.html
index 6d40ceb..2e395d3 100644
--- a/register.vtedit.html
+++ b/register.vtedit.html
@@ -49,7 +49,7 @@
 				<td align="right" class="normal" width="120">Headline</td>
 				<td class="normal" colspan="2">
 					<input type="text" name="Headline" size="50" value="{{Headline}}">
-					<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+					<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 					&nbsp;&nbsp;&nbsp;
 					engl.:
 					<input type="text" name="Headline_en" size="50" value="{{Headline_en}}">
@@ -64,7 +64,7 @@
 				</td>
 			</tr>
 			<tr><td colspan="3">&nbsp;</td></tr>
-			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 			<tr>
 				<td align="right" class="normal">Text engl.</td>
 				<td class="normal" colspan="2">
@@ -86,7 +86,7 @@
 				</td>
 			</tr>
 			<tr><td colspan="3">&nbsp;</td></tr>
-			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 			<tr>
 				<td align="right" class="normal">Text engl.</td>
 				<td class="normal" colspan="2">
@@ -108,7 +108,7 @@
 				</td>
 			</tr>
 			<tr><td colspan="3">&nbsp;</td></tr>
-			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 			<tr>
 				<td align="right" class="normal">Text engl.</td>
 				<td class="normal" colspan="2">
@@ -137,7 +137,7 @@
 						muss, um seinen Benutzerzugang freizuschalten.</i>
 				</td>
 			</tr>
-			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 				<tr>
 					<td align="right" class="normal">Benachrichtigung engl.</td>
 					<td class="normal">
diff --git a/resources/functions.php b/resources/functions.php
index 16b134b..0d330af 100644
--- a/resources/functions.php
+++ b/resources/functions.php
@@ -235,7 +235,7 @@ function getDirectoryTree( $path, $tree = '', $basePath = '' )
 		}
 		else
 		{
-			$tree .= ', ' . substr( utf8_decode( $path ), strlen( utf8_decode( $basePath ) ) );
+			$tree .= ', ' . substr( $path, strlen( $basePath ) );
 		}
 
 		while ( FALSE !== ( $item = readdir( $handle ) ) )
@@ -381,7 +381,7 @@ function countList( $jList )
 
 	if ( $jList[0] == '[' )
 	{
-		$list = json_decode( utf8_encode( $jList ), TRUE );
+		$list = json_decode( $jList, TRUE );
 	}
 	else
 	{
@@ -396,7 +396,7 @@ function evalList( $jList, $attribute, $operator = 'sum' )
 {
 	if ( $jList )
 	{
-		$list = json_decode( utf8_encode( $jList ), TRUE );
+		$list = json_decode( $jList, TRUE );
 		$result = 0;
 
 		foreach ( $list as $item )
@@ -703,16 +703,16 @@ function analyzeSearchString()
 		{
 			if ( empty( $result[ strtolower( $field[1] ) ] ) )
 			{
-				$result[ strtolower( $field[1] ) ] = utf8_encode( substr( $criteria, strlen( $field[1] ) + 1 ) ) . ' ';
+				$result[ strtolower( $field[1] ) ] = substr( $criteria, strlen( $field[1] ) + 1 ) . ' ';
 			}
 			else
 			{
-				$result[ strtolower( $field[1] ) ] .= utf8_encode( substr( $criteria, strlen( $field[1] ) + 1 ) ) . ' ';
+				$result[ strtolower( $field[1] ) ] .= substr( $criteria, strlen( $field[1] ) + 1 ) . ' ';
 			}
 		}
 		else
 		{
-			$result['all'] .= utf8_encode( $criteria ) . ' ';
+			$result['all'] .= $criteria . ' ';
 		}
 	}
 	
@@ -965,7 +965,7 @@ function convertToFtpPath( $path )
 
 function getFtpPaths( $path, $is_dir = FALSE )
 {
-	// liefert eine Liste mit absoluten FTP-Pfaden zu allen Bilddateien bzw. -ordnern,
+	// liefert eine Liste mit absoluten FTP-Pfaden zu allen Bilddateien bzw. -verzeichnissen,
 	// die zu $path gehören (lores, hires, thumbnails)
 	// $path ist eine Pfadangabe relativ zum lores-Verzeichnis
 
@@ -1009,7 +1009,7 @@ function getFtpPaths( $path, $is_dir = FALSE )
 
 function ftpDelete( $path, $is_dir = FALSE )
 {
-	// löscht das Bild bzw. den Bilderordner $path vom Server (lores, hires, thumbnails)
+	// löscht die Dateien, die zu einem Bild bzw. zu einer Galerie gehören, vom Server
 	// $path muss relativ zum lores-Verzeichnis angegeben sein
 
 	if ( $path == '' || $path == '/' || strpos( $path, '../' ) !== FALSE )
@@ -1048,7 +1048,7 @@ function ftpDelete( $path, $is_dir = FALSE )
 
 function ftpDeleteThumbs( $path )
 {
-	// löscht zu einem Bild bzw. Bilderordner die zugehörigen Thumbnails vom Server
+	// löscht zu einem Bild bzw. zu einer Galerie die zugehörigen Thumbnails vom Server
 	// $path muss relativ zum lores-Verzeichnis angegeben sein
 
 	if ( $path == '' || $path == '/' || strpos( $path, '../' ) !== FALSE )
@@ -1151,7 +1151,7 @@ function transferToPxprintNet( $userId, $items, $key, $contact, $delivery, $subj
 		. '&inv_state=' . urlencode( $contact['state'] )
 		. '&inv_phone=' . urlencode( $contact['phone'] )
 		. '&inv_email=' . urlencode( $contact['email'] )
-		. '&ship_to_enduser=' . ( $delivery == 'SHOP' ? '1' : '0' );
+		. '&ship_to_enduser=' . ( $delivery == 'SHOP' ? '0' : '1' );
 
 	if ( ! empty( $delivery ) && $delivery != 'SHOP' )
 	{
@@ -1308,17 +1308,17 @@ function createEasybillInvoice( $customer_id,  $customer_number )
 
 	### Kundendatensatz erstellen bzw. aktualisieren ###
 
-	$customer['salutation'] = utf8_encode( v::vtpage( 'Anrede' ) );
-	$customer['firstName'] = utf8_encode( v::vtpage( 'Vorname' ) );
-	$customer['lastName'] = utf8_encode( v::vtpage( 'Name' ) );
-	$customer['companyName'] = utf8_encode( v::vtpage( 'Firma' ) );
-	$customer['street'] = utf8_encode( v::vtpage( 'Strasse' ) );
-	$customer['zipCode'] = utf8_encode( v::vtpage( 'PLZ' ) );
-	$customer['city'] = utf8_encode( v::vtpage( 'Ort' ) );
-	$customer['country'] = utf8_encode( v::vtpage( 'Land' ) );
-	$customer['ustid'] = utf8_encode( v::vtpage( 'USt_ID' ) );
-	$customer['email'] = utf8_encode( v::vtpage( 'Email' ) );
-	$customer['phone_1'] = utf8_encode( v::vtpage( 'Telefon' ) );
+	$customer['salutation'] = v::vtpage( 'Anrede' );
+	$customer['firstName'] = v::vtpage( 'Vorname' );
+	$customer['lastName'] = v::vtpage( 'Name' );
+	$customer['companyName'] = v::vtpage( 'Firma' );
+	$customer['street'] = v::vtpage( 'Strasse' );
+	$customer['zipCode'] = v::vtpage( 'PLZ' );
+	$customer['city'] = v::vtpage( 'Ort' );
+	$customer['country'] = v::vtpage( 'Land' );
+	$customer['ustid'] = v::vtpage( 'USt_ID' );
+	$customer['email'] = v::vtpage( 'Email' );
+	$customer['phone_1'] = v::vtpage( 'Telefon' );
 
 	$response = $easybill->set_customer( $customer );
 
@@ -1346,7 +1346,7 @@ function createEasybillInvoice( $customer_id,  $customer_number )
 				(
 					'positionType' => 'POSITION',
 					'itemNumber' => $item['product'],
-					'itemDescription' => utf8_encode( $item['title'] ),
+					'itemDescription' => $item['title'],
 					'count' => $item['quantity'],
 					'unit' => '',
 					'singlePriceNetto' => 100 * $item['netprice'],
@@ -1363,7 +1363,7 @@ function createEasybillInvoice( $customer_id,  $customer_number )
 		$products[] = array
 			(
 				'positionType' => 'POSITION',
-				'itemDescription' => utf8_encode( v::vtget( 's_fld_discount' ) ),
+				'itemDescription' => v::vtget( 's_fld_discount' ),
 				'count' => 1,
 				'unit' => '',
 				'singlePriceNetto' => -100 * v::vtpage( 'Rabatt_netto' ),
@@ -1378,7 +1378,7 @@ function createEasybillInvoice( $customer_id,  $customer_number )
 		$products[] = array
 			(
 				'positionType' => 'POSITION',
-				'itemDescription' => utf8_encode( v::vtglobal( 'pxtcDeliveryDownloadablesText2de' ) ),
+				'itemDescription' => v::vtglobal( 'pxtcDeliveryDownloadablesText2de' ),
 				'count' => 1,
 				'unit' => '',
 				'singlePriceNetto' => 100 * v::vtpage( 'CD_Versand_netto' ),
@@ -1393,7 +1393,7 @@ function createEasybillInvoice( $customer_id,  $customer_number )
 		$products[] = array
 			(
 				'positionType' => 'POSITION',
-				'itemDescription' => utf8_encode( v::vtget( 's_fld_lumpsum' ) ),
+				'itemDescription' => v::vtget( 's_fld_lumpsum' ),
 				'count' => 1,
 				'unit' => '',
 				'singlePriceNetto' => 100 * v::vtpage( 'Auftragspauschale_netto' ),
@@ -1408,7 +1408,7 @@ function createEasybillInvoice( $customer_id,  $customer_number )
 		$products[] = array
 			(
 				'positionType' => 'POSITION',
-				'itemDescription' => utf8_encode( v::vtget( 's_fld_shipping_costs' ) . ' (' . v::vtpage( 'Liefermethode' ) . ')' ),
+				'itemDescription' => v::vtget( 's_fld_shipping_costs' ) . ' (' . v::vtpage( 'Liefermethode' ) . ')',
 				'count' => 1,
 				'unit' => '',
 				'singlePriceNetto' => 100 * v::vtpage( 'Versandkosten_netto' ),
@@ -1421,11 +1421,11 @@ function createEasybillInvoice( $customer_id,  $customer_number )
 	$document['customerID'] = $customer['customerID'];
 	$document['documentType'] = 'INVOICE';
 	$document['currency'] = v::vtglobal('pxtcEasybillCurrency');
-	$document['contactLabel'] = utf8_encode( v::vtget('s_fld_order_number') );
-	$document['contactText'] = utf8_encode( v::vtpage('Nummer') );
+	$document['contactLabel'] = v::vtget('s_fld_order_number');
+	$document['contactText'] = v::vtpage('Nummer');
 	$document['documentPosition'] = array_values( $products );
-	$document['templateName'] = utf8_encode( v::vtglobal('pxtcEasybillTemplate_' . v::vtpage('Language') ) );
-	$document['text'] = utf8_encode( v::vtget( 's_invoice_text_' . strtolower( v::vtpage('Bezahlmethode') ) ) );
+	$document['templateName'] = v::vtglobal('pxtcEasybillTemplate_' . v::vtpage('Language') );
+	$document['text'] = v::vtget( 's_invoice_text_' . strtolower( v::vtpage('Bezahlmethode') ) );
 	$document['sendasemail'] = ( v::vtglobal( 'pxtcEasybillAutoSend' ) == '1' );
 
 	if ( v::vtpage('nicht_steuerbar') == '1' )
@@ -1544,14 +1544,14 @@ function addCleverreachReceiver( $email, $lastname = '', $firstname = '', $salut
 			'email' => $email,
 			'registered' => time(),
 			'activated' => time(),
-			'source' => utf8_encode( v::vtglobal('siteName') ),
+			'source' => v::vtglobal('siteName'),
 			'attributes' => array (
-			array ( 'key' => 'firstname', 'value' => utf8_encode( $firstname ) ),
-			array ( 'key' => 'vorname', 'value' => utf8_encode( $firstname ) ),
-			array ( 'key' => 'lastname', 'value' => utf8_encode( $lastname ) ),
-			array ( 'key' => 'nachname', 'value' => utf8_encode( $lastname ) ),
-			array ( 'key' => 'salutation', 'value' => utf8_encode( $salutation ) ),
-			array ( 'key' => 'anrede', 'value' => utf8_encode( $salutation ) )
+			array ( 'key' => 'firstname', 'value' => $firstname ),
+			array ( 'key' => 'vorname', 'value' => $firstname ),
+			array ( 'key' => 'lastname', 'value' => $lastname ),
+			array ( 'key' => 'nachname', 'value' => $lastname ),
+			array ( 'key' => 'salutation', 'value' => $salutation ),
+			array ( 'key' => 'anrede', 'value' => $salutation )
 			)
 		);
 
@@ -1879,7 +1879,7 @@ function get_cart_price( $product_id )
 		}
 	}
 
-	$quantity = isset( $quantities[ $product_id ] ) ? $quantities[ $product_id ] + 1 : 1;
+	$quantity = isset( $quantities[ $product_id ] ) ? $quantities[ $product_id ] : 1;
 	$price = (float) v::vtpage('Preis');
 	$factor = v::vtuser('Preisfaktor') == '' ? 1 : (float) str_replace( ',', '.', v::vtuser('Preisfaktor') );
 
@@ -2179,7 +2179,7 @@ function generate_image_file( $filePath, $imagingRule, $pageId = NULL )
 
 	foreach ( $rules as $item )
 	{
-		if ( utf8_decode( $item['name'] ) == $imagingRule )
+		if ( $item['name'] == $imagingRule )
 		{
 			$rule = $item;
 			break;
diff --git a/resources/jscolor/arrow.gif b/resources/jscolor/arrow.gif
deleted file mode 100644
index 246478a..0000000
Binary files a/resources/jscolor/arrow.gif and /dev/null differ
diff --git a/resources/jscolor/cross.gif b/resources/jscolor/cross.gif
deleted file mode 100644
index 0ee9c7a..0000000
Binary files a/resources/jscolor/cross.gif and /dev/null differ
diff --git a/resources/jscolor/demo.html b/resources/jscolor/demo.html
deleted file mode 100644
index cb86066..0000000
--- a/resources/jscolor/demo.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<html>
-<head>
-	<title>jscolor demo</title>
-</head>
-<body>
-
-	<script type="text/javascript" src="jscolor.js"></script>
-
-	Click here: <input class="color" value="66ff00">
-
-</body>
-</html>
diff --git a/resources/jscolor/hs.png b/resources/jscolor/hs.png
deleted file mode 100644
index 3d94486..0000000
Binary files a/resources/jscolor/hs.png and /dev/null differ
diff --git a/resources/jscolor/hv.png b/resources/jscolor/hv.png
deleted file mode 100644
index 1c5e01f..0000000
Binary files a/resources/jscolor/hv.png and /dev/null differ
diff --git a/resources/jscolor/jscolor.js b/resources/jscolor/jscolor.js
deleted file mode 100644
index 47c8961..0000000
--- a/resources/jscolor/jscolor.js
+++ /dev/null
@@ -1,1010 +0,0 @@
-/**
- * jscolor, JavaScript Color Picker
- *
- * @version 1.4.4
- * @license GNU Lesser General Public License, http://www.gnu.org/copyleft/lesser.html
- * @author  Jan Odvarko, http://odvarko.cz
- * @created 2008-06-15
- * @updated 2014-12-09
- * @link    http://jscolor.com
- */
-
-
-var jscolor = {
-
-
-	dir : '', // location of jscolor directory (leave empty to autodetect)
-	bindClass : 'color', // class name
-	binding : true, // automatic binding via <input class="...">
-	preloading : true, // use image preloading?
-
-
-	install : function() {
-		jscolor.addEvent(window, 'load', jscolor.init);
-	},
-
-
-	init : function() {
-		if(jscolor.binding) {
-			jscolor.bind();
-		}
-		if(jscolor.preloading) {
-			jscolor.preload();
-		}
-	},
-
-
-	getDir : function() {
-		if(!jscolor.dir) {
-			var detected = jscolor.detectDir();
-			jscolor.dir = detected!==false ? detected : 'jscolor/';
-		}
-		return jscolor.dir;
-	},
-
-
-	detectDir : function() {
-		var base = location.href;
-
-		var e = document.getElementsByTagName('base');
-		for(var i=0; i<e.length; i+=1) {
-			if(e[i].href) { base = e[i].href; }
-		}
-
-		var e = document.getElementsByTagName('script');
-		for(var i=0; i<e.length; i+=1) {
-			if(e[i].src && /(^|\/)jscolor\.js([?#].*)?$/i.test(e[i].src)) {
-				var src = new jscolor.URI(e[i].src);
-				var srcAbs = src.toAbsolute(base);
-				srcAbs.path = srcAbs.path.replace(/[^\/]+$/, ''); // remove filename
-				srcAbs.query = null;
-				srcAbs.fragment = null;
-				return srcAbs.toString();
-			}
-		}
-		return false;
-	},
-
-
-	bind : function() {
-		var matchClass = new RegExp('(^|\\s)('+jscolor.bindClass+')(\\s*(\\{[^}]*\\})|\\s|$)', 'i');
-		var e = document.getElementsByTagName('input');
-		for(var i=0; i<e.length; i+=1) {
-			if(jscolor.isColorAttrSupported && e[i].type.toLowerCase() == 'color') {
-				// skip inputs of type 'color' if the browser supports this feature
-				continue;
-			}
-			var m;
-			if(!e[i].color && e[i].className && (m = e[i].className.match(matchClass))) {
-				var prop = {};
-				if(m[4]) {
-					try {
-						prop = (new Function ('return (' + m[4] + ')'))();
-					} catch(eInvalidProp) {}
-				}
-				e[i].color = new jscolor.color(e[i], prop);
-			}
-		}
-	},
-
-
-	preload : function() {
-		for(var fn in jscolor.imgRequire) {
-			if(jscolor.imgRequire.hasOwnProperty(fn)) {
-				jscolor.loadImage(fn);
-			}
-		}
-	},
-
-
-	images : {
-		pad : [ 181, 101 ],
-		sld : [ 16, 101 ],
-		cross : [ 15, 15 ],
-		arrow : [ 7, 11 ]
-	},
-
-
-	imgRequire : {},
-	imgLoaded : {},
-
-
-	requireImage : function(filename) {
-		jscolor.imgRequire[filename] = true;
-	},
-
-
-	loadImage : function(filename) {
-		if(!jscolor.imgLoaded[filename]) {
-			jscolor.imgLoaded[filename] = new Image();
-			jscolor.imgLoaded[filename].src = jscolor.getDir()+filename;
-		}
-	},
-
-
-	fetchElement : function(mixed) {
-		return typeof mixed === 'string' ? document.getElementById(mixed) : mixed;
-	},
-
-
-	addEvent : function(el, evnt, func) {
-		if(el.addEventListener) {
-			el.addEventListener(evnt, func, false);
-		} else if(el.attachEvent) {
-			el.attachEvent('on'+evnt, func);
-		}
-	},
-
-
-	fireEvent : function(el, evnt) {
-		if(!el) {
-			return;
-		}
-		if(document.createEvent) {
-			var ev = document.createEvent('HTMLEvents');
-			ev.initEvent(evnt, true, true);
-			el.dispatchEvent(ev);
-		} else if(document.createEventObject) {
-			var ev = document.createEventObject();
-			el.fireEvent('on'+evnt, ev);
-		} else if(el['on'+evnt]) { // alternatively use the traditional event model (IE5)
-			el['on'+evnt]();
-		}
-	},
-
-
-	getElementPos : function(e) {
-		var e1=e, e2=e;
-		var x=0, y=0;
-		if(e1.offsetParent) {
-			do {
-				x += e1.offsetLeft;
-				y += e1.offsetTop;
-			} while(e1 = e1.offsetParent);
-		}
-		while((e2 = e2.parentNode) && e2.nodeName.toUpperCase() !== 'BODY') {
-			x -= e2.scrollLeft;
-			y -= e2.scrollTop;
-		}
-		return [x, y];
-	},
-
-
-	getElementSize : function(e) {
-		return [e.offsetWidth, e.offsetHeight];
-	},
-
-
-	getRelMousePos : function(e) {
-		var x = 0, y = 0;
-		if (!e) { e = window.event; }
-		if (typeof e.offsetX === 'number') {
-			x = e.offsetX;
-			y = e.offsetY;
-		} else if (typeof e.layerX === 'number') {
-			x = e.layerX;
-			y = e.layerY;
-		}
-		return { x: x, y: y };
-	},
-
-
-	getViewPos : function() {
-		if(typeof window.pageYOffset === 'number') {
-			return [window.pageXOffset, window.pageYOffset];
-		} else if(document.body && (document.body.scrollLeft || document.body.scrollTop)) {
-			return [document.body.scrollLeft, document.body.scrollTop];
-		} else if(document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) {
-			return [document.documentElement.scrollLeft, document.documentElement.scrollTop];
-		} else {
-			return [0, 0];
-		}
-	},
-
-
-	getViewSize : function() {
-		if(typeof window.innerWidth === 'number') {
-			return [window.innerWidth, window.innerHeight];
-		} else if(document.body && (document.body.clientWidth || document.body.clientHeight)) {
-			return [document.body.clientWidth, document.body.clientHeight];
-		} else if(document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
-			return [document.documentElement.clientWidth, document.documentElement.clientHeight];
-		} else {
-			return [0, 0];
-		}
-	},
-
-
-	URI : function(uri) { // See RFC3986
-
-		this.scheme = null;
-		this.authority = null;
-		this.path = '';
-		this.query = null;
-		this.fragment = null;
-
-		this.parse = function(uri) {
-			var m = uri.match(/^(([A-Za-z][0-9A-Za-z+.-]*)(:))?((\/\/)([^\/?#]*))?([^?#]*)((\?)([^#]*))?((#)(.*))?/);
-			this.scheme = m[3] ? m[2] : null;
-			this.authority = m[5] ? m[6] : null;
-			this.path = m[7];
-			this.query = m[9] ? m[10] : null;
-			this.fragment = m[12] ? m[13] : null;
-			return this;
-		};
-
-		this.toString = function() {
-			var result = '';
-			if(this.scheme !== null) { result = result + this.scheme + ':'; }
-			if(this.authority !== null) { result = result + '//' + this.authority; }
-			if(this.path !== null) { result = result + this.path; }
-			if(this.query !== null) { result = result + '?' + this.query; }
-			if(this.fragment !== null) { result = result + '#' + this.fragment; }
-			return result;
-		};
-
-		this.toAbsolute = function(base) {
-			var base = new jscolor.URI(base);
-			var r = this;
-			var t = new jscolor.URI;
-
-			if(base.scheme === null) { return false; }
-
-			if(r.scheme !== null && r.scheme.toLowerCase() === base.scheme.toLowerCase()) {
-				r.scheme = null;
-			}
-
-			if(r.scheme !== null) {
-				t.scheme = r.scheme;
-				t.authority = r.authority;
-				t.path = removeDotSegments(r.path);
-				t.query = r.query;
-			} else {
-				if(r.authority !== null) {
-					t.authority = r.authority;
-					t.path = removeDotSegments(r.path);
-					t.query = r.query;
-				} else {
-					if(r.path === '') {
-						t.path = base.path;
-						if(r.query !== null) {
-							t.query = r.query;
-						} else {
-							t.query = base.query;
-						}
-					} else {
-						if(r.path.substr(0,1) === '/') {
-							t.path = removeDotSegments(r.path);
-						} else {
-							if(base.authority !== null && base.path === '') {
-								t.path = '/'+r.path;
-							} else {
-								t.path = base.path.replace(/[^\/]+$/,'')+r.path;
-							}
-							t.path = removeDotSegments(t.path);
-						}
-						t.query = r.query;
-					}
-					t.authority = base.authority;
-				}
-				t.scheme = base.scheme;
-			}
-			t.fragment = r.fragment;
-
-			return t;
-		};
-
-		function removeDotSegments(path) {
-			var out = '';
-			while(path) {
-				if(path.substr(0,3)==='../' || path.substr(0,2)==='./') {
-					path = path.replace(/^\.+/,'').substr(1);
-				} else if(path.substr(0,3)==='/./' || path==='/.') {
-					path = '/'+path.substr(3);
-				} else if(path.substr(0,4)==='/../' || path==='/..') {
-					path = '/'+path.substr(4);
-					out = out.replace(/\/?[^\/]*$/, '');
-				} else if(path==='.' || path==='..') {
-					path = '';
-				} else {
-					var rm = path.match(/^\/?[^\/]*/)[0];
-					path = path.substr(rm.length);
-					out = out + rm;
-				}
-			}
-			return out;
-		}
-
-		if(uri) {
-			this.parse(uri);
-		}
-
-	},
-
-
-	//
-	// Usage example:
-	// var myColor = new jscolor.color(myInputElement)
-	//
-
-	color : function(target, prop) {
-
-
-		this.required = true; // refuse empty values?
-		this.adjust = true; // adjust value to uniform notation?
-		this.hash = false; // prefix color with # symbol?
-		this.caps = true; // uppercase?
-		this.slider = true; // show the value/saturation slider?
-		this.valueElement = target; // value holder
-		this.styleElement = target; // where to reflect current color
-		this.onImmediateChange = null; // onchange callback (can be either string or function)
-		this.hsv = [0, 0, 1]; // read-only  0-6, 0-1, 0-1
-		this.rgb = [1, 1, 1]; // read-only  0-1, 0-1, 0-1
-		this.minH = 0; // read-only  0-6
-		this.maxH = 6; // read-only  0-6
-		this.minS = 0; // read-only  0-1
-		this.maxS = 1; // read-only  0-1
-		this.minV = 0; // read-only  0-1
-		this.maxV = 1; // read-only  0-1
-
-		this.pickerOnfocus = true; // display picker on focus?
-		this.pickerMode = 'HSV'; // HSV | HVS
-		this.pickerPosition = 'bottom'; // left | right | top | bottom
-		this.pickerSmartPosition = true; // automatically adjust picker position when necessary
-		this.pickerButtonHeight = 20; // px
-		this.pickerClosable = false;
-		this.pickerCloseText = 'Close';
-		this.pickerButtonColor = 'ButtonText'; // px
-		this.pickerFace = 10; // px
-		this.pickerFaceColor = 'ThreeDFace'; // CSS color
-		this.pickerBorder = 1; // px
-		this.pickerBorderColor = 'ThreeDHighlight ThreeDShadow ThreeDShadow ThreeDHighlight'; // CSS color
-		this.pickerInset = 1; // px
-		this.pickerInsetColor = 'ThreeDShadow ThreeDHighlight ThreeDHighlight ThreeDShadow'; // CSS color
-		this.pickerZIndex = 10000;
-
-
-		for(var p in prop) {
-			if(prop.hasOwnProperty(p)) {
-				this[p] = prop[p];
-			}
-		}
-
-
-		this.hidePicker = function() {
-			if(isPickerOwner()) {
-				removePicker();
-			}
-		};
-
-
-		this.showPicker = function() {
-			if(!isPickerOwner()) {
-				var tp = jscolor.getElementPos(target); // target pos
-				var ts = jscolor.getElementSize(target); // target size
-				var vp = jscolor.getViewPos(); // view pos
-				var vs = jscolor.getViewSize(); // view size
-				var ps = getPickerDims(this); // picker size
-				var a, b, c;
-				switch(this.pickerPosition.toLowerCase()) {
-					case 'left': a=1; b=0; c=-1; break;
-					case 'right':a=1; b=0; c=1; break;
-					case 'top':  a=0; b=1; c=-1; break;
-					default:     a=0; b=1; c=1; break;
-				}
-				var l = (ts[b]+ps[b])/2;
-
-				// picker pos
-				if (!this.pickerSmartPosition) {
-					var pp = [
-						tp[a],
-						tp[b]+ts[b]-l+l*c
-					];
-				} else {
-					var pp = [
-						-vp[a]+tp[a]+ps[a] > vs[a] ?
-							(-vp[a]+tp[a]+ts[a]/2 > vs[a]/2 && tp[a]+ts[a]-ps[a] >= 0 ? tp[a]+ts[a]-ps[a] : tp[a]) :
-							tp[a],
-						-vp[b]+tp[b]+ts[b]+ps[b]-l+l*c > vs[b] ?
-							(-vp[b]+tp[b]+ts[b]/2 > vs[b]/2 && tp[b]+ts[b]-l-l*c >= 0 ? tp[b]+ts[b]-l-l*c : tp[b]+ts[b]-l+l*c) :
-							(tp[b]+ts[b]-l+l*c >= 0 ? tp[b]+ts[b]-l+l*c : tp[b]+ts[b]-l-l*c)
-					];
-				}
-				drawPicker(pp[a], pp[b]);
-			}
-		};
-
-
-		this.importColor = function() {
-			if(!valueElement) {
-				this.exportColor();
-			} else {
-				if(!this.adjust) {
-					if(!this.fromString(valueElement.value, leaveValue)) {
-						styleElement.style.backgroundImage = styleElement.jscStyle.backgroundImage;
-						styleElement.style.backgroundColor = styleElement.jscStyle.backgroundColor;
-						styleElement.style.color = styleElement.jscStyle.color;
-						this.exportColor(leaveValue | leaveStyle);
-					}
-				} else if(!this.required && /^\s*$/.test(valueElement.value)) {
-					valueElement.value = '';
-					styleElement.style.backgroundImage = styleElement.jscStyle.backgroundImage;
-					styleElement.style.backgroundColor = styleElement.jscStyle.backgroundColor;
-					styleElement.style.color = styleElement.jscStyle.color;
-					this.exportColor(leaveValue | leaveStyle);
-
-				} else if(this.fromString(valueElement.value)) {
-					// OK
-				} else {
-					this.exportColor();
-				}
-			}
-		};
-
-
-		this.exportColor = function(flags) {
-			if(!(flags & leaveValue) && valueElement) {
-				var value = this.toString();
-				if(this.caps) { value = value.toUpperCase(); }
-				if(this.hash) { value = '#'+value; }
-				valueElement.value = value;
-			}
-			if(!(flags & leaveStyle) && styleElement) {
-				styleElement.style.backgroundImage = "none";
-				styleElement.style.backgroundColor =
-					'#'+this.toString();
-				styleElement.style.color =
-					0.213 * this.rgb[0] +
-					0.715 * this.rgb[1] +
-					0.072 * this.rgb[2]
-					< 0.5 ? '#FFF' : '#000';
-			}
-			if(!(flags & leavePad) && isPickerOwner()) {
-				redrawPad();
-			}
-			if(!(flags & leaveSld) && isPickerOwner()) {
-				redrawSld();
-			}
-		};
-
-
-		this.fromHSV = function(h, s, v, flags) { // null = don't change
-			if(h !== null) { h = Math.max(0.0, this.minH, Math.min(6.0, this.maxH, h)); }
-			if(s !== null) { s = Math.max(0.0, this.minS, Math.min(1.0, this.maxS, s)); }
-			if(v !== null) { v = Math.max(0.0, this.minV, Math.min(1.0, this.maxV, v)); }
-
-			this.rgb = HSV_RGB(
-				h===null ? this.hsv[0] : (this.hsv[0]=h),
-				s===null ? this.hsv[1] : (this.hsv[1]=s),
-				v===null ? this.hsv[2] : (this.hsv[2]=v)
-			);
-
-			this.exportColor(flags);
-		};
-
-
-		this.fromRGB = function(r, g, b, flags) { // null = don't change
-			if(r !== null) { r = Math.max(0.0, Math.min(1.0, r)); }
-			if(g !== null) { g = Math.max(0.0, Math.min(1.0, g)); }
-			if(b !== null) { b = Math.max(0.0, Math.min(1.0, b)); }
-
-			var hsv = RGB_HSV(
-				r===null ? this.rgb[0] : r,
-				g===null ? this.rgb[1] : g,
-				b===null ? this.rgb[2] : b
-			);
-			if(hsv[0] !== null) {
-				this.hsv[0] = Math.max(0.0, this.minH, Math.min(6.0, this.maxH, hsv[0]));
-			}
-			if(hsv[2] !== 0) {
-				this.hsv[1] = hsv[1]===null ? null : Math.max(0.0, this.minS, Math.min(1.0, this.maxS, hsv[1]));
-			}
-			this.hsv[2] = hsv[2]===null ? null : Math.max(0.0, this.minV, Math.min(1.0, this.maxV, hsv[2]));
-
-			// update RGB according to final HSV, as some values might be trimmed
-			var rgb = HSV_RGB(this.hsv[0], this.hsv[1], this.hsv[2]);
-			this.rgb[0] = rgb[0];
-			this.rgb[1] = rgb[1];
-			this.rgb[2] = rgb[2];
-
-			this.exportColor(flags);
-		};
-
-
-		this.fromString = function(hex, flags) {
-			var m = hex.match(/^\W*([0-9A-F]{3}([0-9A-F]{3})?)\W*$/i);
-			if(!m) {
-				return false;
-			} else {
-				if(m[1].length === 6) { // 6-char notation
-					this.fromRGB(
-						parseInt(m[1].substr(0,2),16) / 255,
-						parseInt(m[1].substr(2,2),16) / 255,
-						parseInt(m[1].substr(4,2),16) / 255,
-						flags
-					);
-				} else { // 3-char notation
-					this.fromRGB(
-						parseInt(m[1].charAt(0)+m[1].charAt(0),16) / 255,
-						parseInt(m[1].charAt(1)+m[1].charAt(1),16) / 255,
-						parseInt(m[1].charAt(2)+m[1].charAt(2),16) / 255,
-						flags
-					);
-				}
-				return true;
-			}
-		};
-
-
-		this.toString = function() {
-			return (
-				(0x100 | Math.round(255*this.rgb[0])).toString(16).substr(1) +
-				(0x100 | Math.round(255*this.rgb[1])).toString(16).substr(1) +
-				(0x100 | Math.round(255*this.rgb[2])).toString(16).substr(1)
-			);
-		};
-
-
-		function RGB_HSV(r, g, b) {
-			var n = Math.min(Math.min(r,g),b);
-			var v = Math.max(Math.max(r,g),b);
-			var m = v - n;
-			if(m === 0) { return [ null, 0, v ]; }
-			var h = r===n ? 3+(b-g)/m : (g===n ? 5+(r-b)/m : 1+(g-r)/m);
-			return [ h===6?0:h, m/v, v ];
-		}
-
-
-		function HSV_RGB(h, s, v) {
-			if(h === null) { return [ v, v, v ]; }
-			var i = Math.floor(h);
-			var f = i%2 ? h-i : 1-(h-i);
-			var m = v * (1 - s);
-			var n = v * (1 - s*f);
-			switch(i) {
-				case 6:
-				case 0: return [v,n,m];
-				case 1: return [n,v,m];
-				case 2: return [m,v,n];
-				case 3: return [m,n,v];
-				case 4: return [n,m,v];
-				case 5: return [v,m,n];
-			}
-		}
-
-
-		function removePicker() {
-			delete jscolor.picker.owner;
-			document.getElementsByTagName('body')[0].removeChild(jscolor.picker.boxB);
-		}
-
-
-		function drawPicker(x, y) {
-			if(!jscolor.picker) {
-				jscolor.picker = {
-					box : document.createElement('div'),
-					boxB : document.createElement('div'),
-					pad : document.createElement('div'),
-					padB : document.createElement('div'),
-					padM : document.createElement('div'),
-					sld : document.createElement('div'),
-					sldB : document.createElement('div'),
-					sldM : document.createElement('div'),
-					btn : document.createElement('div'),
-					btnS : document.createElement('span'),
-					btnT : document.createTextNode(THIS.pickerCloseText)
-				};
-				for(var i=0,segSize=4; i<jscolor.images.sld[1]; i+=segSize) {
-					var seg = document.createElement('div');
-					seg.style.height = segSize+'px';
-					seg.style.fontSize = '1px';
-					seg.style.lineHeight = '0';
-					jscolor.picker.sld.appendChild(seg);
-				}
-				jscolor.picker.sldB.appendChild(jscolor.picker.sld);
-				jscolor.picker.box.appendChild(jscolor.picker.sldB);
-				jscolor.picker.box.appendChild(jscolor.picker.sldM);
-				jscolor.picker.padB.appendChild(jscolor.picker.pad);
-				jscolor.picker.box.appendChild(jscolor.picker.padB);
-				jscolor.picker.box.appendChild(jscolor.picker.padM);
-				jscolor.picker.btnS.appendChild(jscolor.picker.btnT);
-				jscolor.picker.btn.appendChild(jscolor.picker.btnS);
-				jscolor.picker.box.appendChild(jscolor.picker.btn);
-				jscolor.picker.boxB.appendChild(jscolor.picker.box);
-			}
-
-			var p = jscolor.picker;
-
-			// controls interaction
-			p.box.onmouseup =
-			p.box.onmouseout = function() { target.focus(); };
-			p.box.onmousedown = function() { abortBlur=true; };
-			p.box.onmousemove = function(e) {
-				if (holdPad || holdSld) {
-					holdPad && setPad(e);
-					holdSld && setSld(e);
-					if (document.selection) {
-						document.selection.empty();
-					} else if (window.getSelection) {
-						window.getSelection().removeAllRanges();
-					}
-					dispatchImmediateChange();
-				}
-			};
-			if('ontouchstart' in window) { // if touch device
-				var handle_touchmove = function(e) {
-					var event={
-						'offsetX': e.touches[0].pageX-touchOffset.X,
-						'offsetY': e.touches[0].pageY-touchOffset.Y
-					};
-					if (holdPad || holdSld) {
-						holdPad && setPad(event);
-						holdSld && setSld(event);
-						dispatchImmediateChange();
-					}
-					e.stopPropagation(); // prevent move "view" on broswer
-					e.preventDefault(); // prevent Default - Android Fix (else android generated only 1-2 touchmove events)
-				};
-				p.box.removeEventListener('touchmove', handle_touchmove, false)
-				p.box.addEventListener('touchmove', handle_touchmove, false)
-			}
-			p.padM.onmouseup =
-			p.padM.onmouseout = function() { if(holdPad) { holdPad=false; jscolor.fireEvent(valueElement,'change'); } };
-			p.padM.onmousedown = function(e) {
-				// if the slider is at the bottom, move it up
-				switch(modeID) {
-					case 0: if (THIS.hsv[2] === 0) { THIS.fromHSV(null, null, 1.0); }; break;
-					case 1: if (THIS.hsv[1] === 0) { THIS.fromHSV(null, 1.0, null); }; break;
-				}
-				holdSld=false;
-				holdPad=true;
-				setPad(e);
-				dispatchImmediateChange();
-			};
-			if('ontouchstart' in window) {
-				p.padM.addEventListener('touchstart', function(e) {
-					touchOffset={
-						'X': e.target.offsetParent.offsetLeft,
-						'Y': e.target.offsetParent.offsetTop
-					};
-					this.onmousedown({
-						'offsetX':e.touches[0].pageX-touchOffset.X,
-						'offsetY':e.touches[0].pageY-touchOffset.Y
-					});
-				});
-			}
-			p.sldM.onmouseup =
-			p.sldM.onmouseout = function() { if(holdSld) { holdSld=false; jscolor.fireEvent(valueElement,'change'); } };
-			p.sldM.onmousedown = function(e) {
-				holdPad=false;
-				holdSld=true;
-				setSld(e);
-				dispatchImmediateChange();
-			};
-			if('ontouchstart' in window) {
-				p.sldM.addEventListener('touchstart', function(e) {
-					touchOffset={
-						'X': e.target.offsetParent.offsetLeft,
-						'Y': e.target.offsetParent.offsetTop
-					};
-					this.onmousedown({
-						'offsetX':e.touches[0].pageX-touchOffset.X,
-						'offsetY':e.touches[0].pageY-touchOffset.Y
-					});
-				});
-			}
-
-			// picker
-			var dims = getPickerDims(THIS);
-			p.box.style.width = dims[0] + 'px';
-			p.box.style.height = dims[1] + 'px';
-
-			// picker border
-			p.boxB.style.position = 'absolute';
-			p.boxB.style.clear = 'both';
-			p.boxB.style.left = x+'px';
-			p.boxB.style.top = y+'px';
-			p.boxB.style.zIndex = THIS.pickerZIndex;
-			p.boxB.style.border = THIS.pickerBorder+'px solid';
-			p.boxB.style.borderColor = THIS.pickerBorderColor;
-			p.boxB.style.background = THIS.pickerFaceColor;
-
-			// pad image
-			p.pad.style.width = jscolor.images.pad[0]+'px';
-			p.pad.style.height = jscolor.images.pad[1]+'px';
-
-			// pad border
-			p.padB.style.position = 'absolute';
-			p.padB.style.left = THIS.pickerFace+'px';
-			p.padB.style.top = THIS.pickerFace+'px';
-			p.padB.style.border = THIS.pickerInset+'px solid';
-			p.padB.style.borderColor = THIS.pickerInsetColor;
-
-			// pad mouse area
-			p.padM.style.position = 'absolute';
-			p.padM.style.left = '0';
-			p.padM.style.top = '0';
-			p.padM.style.width = THIS.pickerFace + 2*THIS.pickerInset + jscolor.images.pad[0] + jscolor.images.arrow[0] + 'px';
-			p.padM.style.height = p.box.style.height;
-			p.padM.style.cursor = 'crosshair';
-
-			// slider image
-			p.sld.style.overflow = 'hidden';
-			p.sld.style.width = jscolor.images.sld[0]+'px';
-			p.sld.style.height = jscolor.images.sld[1]+'px';
-
-			// slider border
-			p.sldB.style.display = THIS.slider ? 'block' : 'none';
-			p.sldB.style.position = 'absolute';
-			p.sldB.style.right = THIS.pickerFace+'px';
-			p.sldB.style.top = THIS.pickerFace+'px';
-			p.sldB.style.border = THIS.pickerInset+'px solid';
-			p.sldB.style.borderColor = THIS.pickerInsetColor;
-
-			// slider mouse area
-			p.sldM.style.display = THIS.slider ? 'block' : 'none';
-			p.sldM.style.position = 'absolute';
-			p.sldM.style.right = '0';
-			p.sldM.style.top = '0';
-			p.sldM.style.width = jscolor.images.sld[0] + jscolor.images.arrow[0] + THIS.pickerFace + 2*THIS.pickerInset + 'px';
-			p.sldM.style.height = p.box.style.height;
-			try {
-				p.sldM.style.cursor = 'pointer';
-			} catch(eOldIE) {
-				p.sldM.style.cursor = 'hand';
-			}
-
-			// "close" button
-			function setBtnBorder() {
-				var insetColors = THIS.pickerInsetColor.split(/\s+/);
-				var pickerOutsetColor = insetColors.length < 2 ? insetColors[0] : insetColors[1] + ' ' + insetColors[0] + ' ' + insetColors[0] + ' ' + insetColors[1];
-				p.btn.style.borderColor = pickerOutsetColor;
-			}
-			p.btn.style.display = THIS.pickerClosable ? 'block' : 'none';
-			p.btn.style.position = 'absolute';
-			p.btn.style.left = THIS.pickerFace + 'px';
-			p.btn.style.bottom = THIS.pickerFace + 'px';
-			p.btn.style.padding = '0 15px';
-			p.btn.style.height = '18px';
-			p.btn.style.border = THIS.pickerInset + 'px solid';
-			setBtnBorder();
-			p.btn.style.color = THIS.pickerButtonColor;
-			p.btn.style.font = '12px sans-serif';
-			p.btn.style.textAlign = 'center';
-			try {
-				p.btn.style.cursor = 'pointer';
-			} catch(eOldIE) {
-				p.btn.style.cursor = 'hand';
-			}
-			p.btn.onmousedown = function () {
-				THIS.hidePicker();
-			};
-			p.btnS.style.lineHeight = p.btn.style.height;
-
-			// load images in optimal order
-			switch(modeID) {
-				case 0: var padImg = 'hs.png'; break;
-				case 1: var padImg = 'hv.png'; break;
-			}
-			p.padM.style.backgroundImage = "url('"+jscolor.getDir()+"cross.gif')";
-			p.padM.style.backgroundRepeat = "no-repeat";
-			p.sldM.style.backgroundImage = "url('"+jscolor.getDir()+"arrow.gif')";
-			p.sldM.style.backgroundRepeat = "no-repeat";
-			p.pad.style.backgroundImage = "url('"+jscolor.getDir()+padImg+"')";
-			p.pad.style.backgroundRepeat = "no-repeat";
-			p.pad.style.backgroundPosition = "0 0";
-
-			// place pointers
-			redrawPad();
-			redrawSld();
-
-			jscolor.picker.owner = THIS;
-			document.getElementsByTagName('body')[0].appendChild(p.boxB);
-		}
-
-
-		function getPickerDims(o) {
-			var dims = [
-				2*o.pickerInset + 2*o.pickerFace + jscolor.images.pad[0] +
-					(o.slider ? 2*o.pickerInset + 2*jscolor.images.arrow[0] + jscolor.images.sld[0] : 0),
-				o.pickerClosable ?
-					4*o.pickerInset + 3*o.pickerFace + jscolor.images.pad[1] + o.pickerButtonHeight :
-					2*o.pickerInset + 2*o.pickerFace + jscolor.images.pad[1]
-			];
-			return dims;
-		}
-
-
-		function redrawPad() {
-			// redraw the pad pointer
-			switch(modeID) {
-				case 0: var yComponent = 1; break;
-				case 1: var yComponent = 2; break;
-			}
-			var x = Math.round((THIS.hsv[0]/6) * (jscolor.images.pad[0]-1));
-			var y = Math.round((1-THIS.hsv[yComponent]) * (jscolor.images.pad[1]-1));
-			jscolor.picker.padM.style.backgroundPosition =
-				(THIS.pickerFace+THIS.pickerInset+x - Math.floor(jscolor.images.cross[0]/2)) + 'px ' +
-				(THIS.pickerFace+THIS.pickerInset+y - Math.floor(jscolor.images.cross[1]/2)) + 'px';
-
-			// redraw the slider image
-			var seg = jscolor.picker.sld.childNodes;
-
-			switch(modeID) {
-				case 0:
-					var rgb = HSV_RGB(THIS.hsv[0], THIS.hsv[1], 1);
-					for(var i=0; i<seg.length; i+=1) {
-						seg[i].style.backgroundColor = 'rgb('+
-							(rgb[0]*(1-i/seg.length)*100)+'%,'+
-							(rgb[1]*(1-i/seg.length)*100)+'%,'+
-							(rgb[2]*(1-i/seg.length)*100)+'%)';
-					}
-					break;
-				case 1:
-					var rgb, s, c = [ THIS.hsv[2], 0, 0 ];
-					var i = Math.floor(THIS.hsv[0]);
-					var f = i%2 ? THIS.hsv[0]-i : 1-(THIS.hsv[0]-i);
-					switch(i) {
-						case 6:
-						case 0: rgb=[0,1,2]; break;
-						case 1: rgb=[1,0,2]; break;
-						case 2: rgb=[2,0,1]; break;
-						case 3: rgb=[2,1,0]; break;
-						case 4: rgb=[1,2,0]; break;
-						case 5: rgb=[0,2,1]; break;
-					}
-					for(var i=0; i<seg.length; i+=1) {
-						s = 1 - 1/(seg.length-1)*i;
-						c[1] = c[0] * (1 - s*f);
-						c[2] = c[0] * (1 - s);
-						seg[i].style.backgroundColor = 'rgb('+
-							(c[rgb[0]]*100)+'%,'+
-							(c[rgb[1]]*100)+'%,'+
-							(c[rgb[2]]*100)+'%)';
-					}
-					break;
-			}
-		}
-
-
-		function redrawSld() {
-			// redraw the slider pointer
-			switch(modeID) {
-				case 0: var yComponent = 2; break;
-				case 1: var yComponent = 1; break;
-			}
-			var y = Math.round((1-THIS.hsv[yComponent]) * (jscolor.images.sld[1]-1));
-			jscolor.picker.sldM.style.backgroundPosition =
-				'0 ' + (THIS.pickerFace+THIS.pickerInset+y - Math.floor(jscolor.images.arrow[1]/2)) + 'px';
-		}
-
-
-		function isPickerOwner() {
-			return jscolor.picker && jscolor.picker.owner === THIS;
-		}
-
-
-		function blurTarget() {
-			if(valueElement === target) {
-				THIS.importColor();
-			}
-			if(THIS.pickerOnfocus) {
-				THIS.hidePicker();
-			}
-		}
-
-
-		function blurValue() {
-			if(valueElement !== target) {
-				THIS.importColor();
-			}
-		}
-
-
-		function setPad(e) {
-			var mpos = jscolor.getRelMousePos(e);
-			var x = mpos.x - THIS.pickerFace - THIS.pickerInset;
-			var y = mpos.y - THIS.pickerFace - THIS.pickerInset;
-			switch(modeID) {
-				case 0: THIS.fromHSV(x*(6/(jscolor.images.pad[0]-1)), 1 - y/(jscolor.images.pad[1]-1), null, leaveSld); break;
-				case 1: THIS.fromHSV(x*(6/(jscolor.images.pad[0]-1)), null, 1 - y/(jscolor.images.pad[1]-1), leaveSld); break;
-			}
-		}
-
-
-		function setSld(e) {
-			var mpos = jscolor.getRelMousePos(e);
-			var y = mpos.y - THIS.pickerFace - THIS.pickerInset;
-			switch(modeID) {
-				case 0: THIS.fromHSV(null, null, 1 - y/(jscolor.images.sld[1]-1), leavePad); break;
-				case 1: THIS.fromHSV(null, 1 - y/(jscolor.images.sld[1]-1), null, leavePad); break;
-			}
-		}
-
-
-		function dispatchImmediateChange() {
-			if (THIS.onImmediateChange) {
-				var callback;
-				if (typeof THIS.onImmediateChange === 'string') {
-					callback = new Function (THIS.onImmediateChange);
-				} else {
-					callback = THIS.onImmediateChange;
-				}
-				callback.call(THIS);
-			}
-		}
-
-
-		var THIS = this;
-		var modeID = this.pickerMode.toLowerCase()==='hvs' ? 1 : 0;
-		var abortBlur = false;
-		var
-			valueElement = jscolor.fetchElement(this.valueElement),
-			styleElement = jscolor.fetchElement(this.styleElement);
-		var
-			holdPad = false,
-			holdSld = false,
-			touchOffset = {};
-		var
-			leaveValue = 1<<0,
-			leaveStyle = 1<<1,
-			leavePad = 1<<2,
-			leaveSld = 1<<3;
-
-		jscolor.isColorAttrSupported = false;
-		var el = document.createElement('input');
-		if(el.setAttribute) {
-			el.setAttribute('type', 'color');
-			if(el.type.toLowerCase() == 'color') {
-				jscolor.isColorAttrSupported = true;
-			}
-		}
-
-		// target
-		jscolor.addEvent(target, 'focus', function() {
-			if(THIS.pickerOnfocus) { THIS.showPicker(); }
-		});
-		jscolor.addEvent(target, 'blur', function() {
-			if(!abortBlur) {
-				window.setTimeout(function(){ abortBlur || blurTarget(); abortBlur=false; }, 0);
-			} else {
-				abortBlur = false;
-			}
-		});
-
-		// valueElement
-		if(valueElement) {
-			var updateField = function() {
-				THIS.fromString(valueElement.value, leaveValue);
-				dispatchImmediateChange();
-			};
-			jscolor.addEvent(valueElement, 'keyup', updateField);
-			jscolor.addEvent(valueElement, 'input', updateField);
-			jscolor.addEvent(valueElement, 'blur', blurValue);
-			valueElement.setAttribute('autocomplete', 'off');
-		}
-
-		// styleElement
-		if(styleElement) {
-			styleElement.jscStyle = {
-				backgroundImage : styleElement.style.backgroundImage,
-				backgroundColor : styleElement.style.backgroundColor,
-				color : styleElement.style.color
-			};
-		}
-
-		// require images
-		switch(modeID) {
-			case 0: jscolor.requireImage('hs.png'); break;
-			case 1: jscolor.requireImage('hv.png'); break;
-		}
-		jscolor.requireImage('cross.gif');
-		jscolor.requireImage('arrow.gif');
-
-		this.importColor();
-	}
-
-};
-
-
-jscolor.install();
diff --git a/resources/style_r.css b/resources/style_r.css
index ecdbbd1..b7b5a89 100644
--- a/resources/style_r.css
+++ b/resources/style_r.css
@@ -97,4 +97,8 @@ body.view_default2_r  > .container {
 }
 .brand-logo {
 	max-height: 3rem;
+}
+
+#meta_keywords {
+	line-height: 2rem;
 }
\ No newline at end of file
diff --git a/setup_appearance.html b/setup_appearance.html
index ffe9abf..73602c8 100644
--- a/setup_appearance.html
+++ b/setup_appearance.html
@@ -41,7 +41,21 @@
 				<td>{{siteName}}</td>
 			</tr>
 			<tr><td colspan="2">&nbsp;</td></tr>
-         <tr class="responsive-only">
+         <tr>  
+				<td>Design</td>
+				<td>
+					<!--{{vtIf: {pxtcDesign} .eq. 1 }}-->
+						adaptiv
+               <!--{{vtElseIf: {pxtcDesign} .eq. 2 }}-->
+						responsiv
+					<!--{{vtElse}}-->
+						klassisch
+					<!--{{vtEndIf}}-->
+				</td>
+			</tr>
+			<tr><td colspan="2">&nbsp;</td></tr>
+         <!--{{vtIf: {pxtcDesign} .eq. 2 }}-->
+         <tr>
 				<td align="right" class="normal">Marke</td>
 				<td class="normal">
 					<!--{{vtIf: {pxtcNaviBrand} .eq. -1 }}-->
@@ -55,7 +69,8 @@
 					<!--{{vtEndIf}}-->
 				</td>
 			</tr>
-			<tr class="responsive-only"><td colspan="2">&nbsp;</td></tr>
+			<tr><td colspan="2">&nbsp;</td></tr>
+         <!--{{vtEndIf}}-->
          <!--{{vtIf: {pxtcDesign} .neq. 2 .or. {pxtcNaviBrand} .eq. 2 }}-->
 			<tr>
 				<td>Logo</td>
@@ -85,22 +100,9 @@
 			</tr> 
 			<tr><td colspan="2">&nbsp;</td></tr>
          <!--{{vtEndIf}}-->
-			<tr>  
-				<td>Design</td>
-				<td>
-					<!--{{vtIf: {pxtcDesign} .eq. 1 }}-->
-						adaptiv
-               <!--{{vtElseIf: {pxtcDesign} .eq. 2 }}-->
-						responsiv
-					<!--{{vtElse}}-->
-						klassisch
-					<!--{{vtEndIf}}-->
-				</td>
-			</tr>
-			<tr><td colspan="2">&nbsp;</td></tr>
 			<tr>  
 				<td>
-					<!--{{vtIf: {pxtcTheme} .eq. 2 }}-->Thema<!--{{vtElse}}-->Farbschema<!--{{vtEndIf}}-->
+					<!--{{vtIf: {pxtcDesign} .eq. 2 }}-->Thema<!--{{vtElse}}-->Farbschema<!--{{vtEndIf}}-->
 				</td>
 				<td>
 					<!--{{vtIf: {pxtcTheme} .neq. }}-->
@@ -189,7 +191,7 @@
 					<!--{{vtIf: {pxtcNaviImagesBehaviour} .eq. 1}}-->
 						zeigt Liste aller Bilder
 					<!--{{vtElse}}-->
-						zeigt Liste der Bilderordner
+						zeigt Liste der Galerien
 					<!--{{vtEndIf}}-->
 					&mdash; Beschriftung: 
 					&raquo;{{pxtcNaviImagesLabel}}&laquo;
@@ -339,6 +341,8 @@
 				<td class="normal">
 					<!--{{vtIf: {pxtcNaviFooter} .eq. }}-->
 						ausblenden
+					<!--{{vtElseIf: {pxtcNaviFooter} .eq. 1 }}-->
+						nur Zusätze zeigen
 					<!--{{vtElse}}-->
                   <!--{{vtUse: {pxtcNaviFooter} }}-->
 						   verknüpft mit <a href="{{vtLink}}">{{vtName}}</a>
@@ -351,6 +355,7 @@
 					<!--{{vtEndIf}}-->
 				</td>
 			</tr>
+			<!--{{vtIf: {pxtcNaviFooter} .neq. }}-->
 			<tr><td colspan="2">&nbsp;</td></tr>
 			<tr>
 				<td align="right" class="normal">Zusatz unten links</td>
@@ -380,6 +385,7 @@
 				</td>
 			</tr>
 			<tr><td colspan="2">&nbsp;</td></tr>
+			<!--{{vtEndIf}}-->
          <!--{{vtEndIf}}-->
 			<tr>
 				<td colspan="2">
diff --git a/setup_appearance.vtedit.html b/setup_appearance.vtedit.html
index 190e577..cf384a8 100644
--- a/setup_appearance.vtedit.html
+++ b/setup_appearance.vtedit.html
@@ -61,10 +61,10 @@
 			$('.brand-target').toggle( value != '-1' );
 			
 			if ( value == '1' ){
-				$('#pxtcNaviBrandText').prop( 'disabled', false ).show().focus().select();
+				$('#fldPxtcNaviBrandText').prop( 'disabled', false ).show().focus().select();
 			}
 			else {
-				$('#pxtcNaviBrandText').prop( 'disabled', true ).hide();
+				$('#fldPxtcNaviBrandText').prop( 'disabled', true ).hide();
 			}
 		}
 
@@ -241,20 +241,6 @@
 			}
 		}
 
-		function handleChange_pxtcNaviFooter(elm) {
-			if( ! ShowEnglish ){
-				return;
-			}
-			var f = elm.form;
-			if( elm.selectedIndex == 0 ){
-				f.pxtcNaviFooter_en.disabled = true;
-				document.getElementById('pxtcNaviFooter_en').style.display = 'none';
-			} else {
-				f.pxtcNaviFooter_en.disabled = false;
-				document.getElementById('pxtcNaviFooter_en').style.display = 'inline';
-			}
-		}
-
 		function handleChange_pxtcPromoLinkType(elm) {
 			var f = elm.form;
 			if( elm.selectedIndex != 1 ){
@@ -270,16 +256,17 @@
 		
 		$( function(){
 			$('#fldPxtcDesign').change( function(){
-				var selectedTheme = $('#fldPxtcTheme').val();
 				if ( $(this).val() == '2' ){
 					$('#labelTheme').text('Thema');
 					$('.responsive-only').show().find('input,select').addBack('input,select').prop( 'disabled', false );
 					$('.classic-only').hide().find('input,select').addBack('input,select').prop( 'disabled', true );
+					$('.brand-logo,.brand-target').toggle( $('#fldPxtcNaviBrand').val() == '2' );
 				}
 				else {
 					$('#labelTheme').text('Farbschema');
 					$('.responsive-only').hide().find('input,select').addBack('input,select').prop( 'disabled', true );
 					$('.classic-only').show().find('input,select').addBack('input,select').prop( 'disabled', false );
+					$('.brand-logo,.brand-target').show();
 				}
 				if ( $('#fldPxtcTheme option:selected').css('display') == 'none' ){
 					$('#fldPxtcTheme').val('')
@@ -304,9 +291,15 @@
 			$('#fldPxtcAllowLanguageSwitch').change( function(){
 				$('.english').toggle( $('#fldPxtcAllowLanguageSwitch').val() > 0 );
 			});
+			$('#fldPxtcNaviFooter').change( function(){
+				$('.footer_only').toggle( $(this).val() != '' );
+				$('#pxtcNaviFooter_en').toggle( ShowEnglish && $(this).val() > 1 )
+					.prop( 'disabled', ShowEnglish && $(this).val() > 1 );
+			});
 
 			$('#fldPxtcDesign').change();
 			$('#fldPxtcAllowLanguageSwitch').change();
+			$('#fldPxtcNaviFooter').change();
 		});
 	</script>
 	<script type="text/javascript" src="resources/validations.js"></script>
@@ -346,13 +339,13 @@
 			<tr class="responsive-only">
 				<td align="right" class="normal">Marke</td>
 				<td class="normal">
-					<select name="pxtcNaviBrand" onchange="handleChange_pxtcNaviBrand(this)" style="width:20em">
+					<select id="fldPxtcNaviBrand" name="pxtcNaviBrand" onchange="handleChange_pxtcNaviBrand(this)" style="width:20em">
 						<option value="">Titel der Website</option>
 						<option value="1" {{vtIf:{pxtcNaviBrand}.eq.1}}selected{{vtEndIf}}>eigener Text</option>
 						<option value="2" {{vtIf:{pxtcNaviBrand}.eq.2}}selected{{vtEndIf}}>Logo</option>
 						<option value="-1" {{vtIf:{pxtcNaviBrand}.eq.-1}}selected{{vtEndIf}}>ausblenden</option>
 					</select>
-					<span id="pxtcNaviBrandText" style="display:{{vtIf:{pxtcNaviBrand} .neq. 1}}none{{vtElse}}inline{{vtEndIf}}">
+					<span id="fldPxtcNaviBrandText" style="display:{{vtIf:{pxtcNaviBrand} .neq. 1}}none{{vtElse}}inline{{vtEndIf}}">
 						&nbsp;&nbsp;&nbsp;
 						Text:
 						<input type="text" name="pxtcNaviBrandText" value="{{pxtcNaviBrandText}}" size="40">
@@ -529,7 +522,7 @@
 				<td align="right" class="normal">Button &raquo;Bilder&laquo;</td>
 				<td class="normal">
 					<select name="pxtcNaviImagesBehaviour" onchange="handleChange_pxtcNaviImagesBehaviour(this)" style="width:20em">
-						<option value="">zeigt Liste der Bilderordner</option>
+						<option value="">zeigt Liste der Galerien</option>
 						<option value="1" {{vtIf:{pxtcNaviImagesBehaviour}.eq.1}}selected{{vtEndIf}}>zeigt Liste aller Bilder</option>
 						<option value="-1" {{vtIf:{pxtcNaviImagesBehaviour}.eq.-1}}selected{{vtEndIf}}>ausblenden</option>
 					</select>
@@ -760,8 +753,9 @@
 			<tr class="responsive-only">
 				<td align="right" class="normal">Untere Navigation</td>
 				<td class="normal">
-					<select name="pxtcNaviFooter" onchange="handleChange_pxtcNaviFooter(this)" style="width:20em">
+					<select name="pxtcNaviFooter" id="fldPxtcNaviFooter" style="width:20em">
 						<option value="">ausblenden</option>
+						<option value="1" {{vtIf: {pxtcNaviFooter} .eq. 1 }}selected{{vtEndIf}}>nur Zusätze zeigen</option>
 						<optgroup label="verknüpft mit">
 							<!--{{vtUse: /}}-->
 							<!--{{vtLoop: vtfolder}}-->
@@ -788,8 +782,8 @@
 					</span>
 				</td>
 			</tr>
-			<tr><td colspan="2">&nbsp;</td></tr>
-			<tr class="responsive-only">
+			<tr class="responsive_only footer_only"><td colspan="2">&nbsp;</td></tr>
+			<tr class="responsive-only footer_only">
 				<td align="right" class="normal">Zusatz unten links</td>
 				<td class="normal">
 					<input type="text" name="pxtcFooterTextLeft" value="{{pxtcFooterTextLeft}}" size="40">
@@ -800,8 +794,8 @@
 					</span>
 				</td>
 			</tr>
-			<tr><td colspan="2">&nbsp;</td></tr>
-			<tr class="responsive-only">
+			<tr class="responsive_only footer_only"><td colspan="2">&nbsp;</td></tr>
+			<tr class="responsive-only footer_only">
 				<td align="right" class="normal">Zusatz unten rechts</td>
 				<td class="normal">
 					<input type="text" name="pxtcFooterTextRight" value="{{pxtcFooterTextRight}}" size="40">
diff --git a/setup_cookies.html b/setup_cookies.html
index 6c3b07f..6be931a 100644
--- a/setup_cookies.html
+++ b/setup_cookies.html
@@ -42,13 +42,13 @@
 			
 			<p>&nbsp;</p>
 			
-			<h2>Hinweistext <!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1 }}-->deutsch<!--{{vtEndIf}}--></h2>
+			<h2>Hinweistext <!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1 }}-->deutsch<!--{{vtEndIf}}--></h2>
 
 			<div class="html-content">
 				{{pxtcCookieText:raw}}
 			</div>
 
-			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1 }}-->
+			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1 }}-->
 
 				<p>&nbsp;</p>
 
diff --git a/setup_cookies.vtedit.html b/setup_cookies.vtedit.html
index 0e2922b..83ac727 100644
--- a/setup_cookies.vtedit.html
+++ b/setup_cookies.vtedit.html
@@ -74,11 +74,11 @@
 			
 			<div id="cookieText" style="{{vtIf: {pxtcCookieHint} .eq.}}display:none{{vtEndIf}}">
 
-				<h2>Hinweistext <!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1 }}-->deutsch<!--{{vtEndIf}}--></h2>
+				<h2>Hinweistext <!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1 }}-->deutsch<!--{{vtEndIf}}--></h2>
 				
 				<textarea class="tinymce" name="pxtcCookieText" cols="50" rows="15" style="">{{vtGlobal:pxtcCookieText,edit_html}}</textarea>
 				
-				<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1 }}-->
+				<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1 }}-->
 					<br><br>
 					<h2>Hinweistext englisch</h2>
 					<textarea class="tinymce" name="pxtcCookieText_en" cols="50" rows="15" style="">{{vtGlobal:pxtcCookieText_en,edit_html}}</textarea>
diff --git a/setup_delivery.html b/setup_delivery.html
index 9119e7b..5cceff0 100644
--- a/setup_delivery.html
+++ b/setup_delivery.html
@@ -21,7 +21,7 @@
 			<tr>
 				<th style="width:4em">aktiv</th>
 				<th style="width:20em">Bezeichnung</th>
-				<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1 }}-->
+				<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1 }}-->
 				<th style="width:20em">Bezeichnung engl.</th>
 				<!--{{vtEndIf}}-->
 				<th style="width:10em">Preis</th>
@@ -35,7 +35,7 @@
 				<td class="normal">
 					{{pxtcDeliveryMethod1}}
 				</td>
-				<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1 }}-->
+				<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1 }}-->
 				<td class="normal">
 					{{pxtcDeliveryMethod1_en}}
 				</td>
@@ -56,7 +56,7 @@
 				<td class="normal">
 					{{pxtcDeliveryMethod2}}
 				</td>
-				<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1 }}-->
+				<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1 }}-->
 				<td class="normal">
 					{{pxtcDeliveryMethod2_en}}
 				</td>
@@ -77,7 +77,7 @@
 				<td class="normal">
 					{{pxtcDeliveryMethod3}}
 				</td>
-				<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1 }}-->
+				<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1 }}-->
 				<td class="normal">
 					{{pxtcDeliveryMethod3_en}}
 				</td>
@@ -98,7 +98,7 @@
 				<td class="normal">
 					{{pxtcDeliveryMethod4}}
 				</td>
-				<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1 }}-->
+				<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1 }}-->
 				<td class="normal">
 					{{pxtcDeliveryMethod4_en}}
 				</td>
@@ -119,7 +119,7 @@
 				<td class="normal">
 					{{pxtcDeliveryMethod5}}
 				</td>
-				<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1 }}-->
+				<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1 }}-->
 				<td class="normal">
 					{{pxtcDeliveryMethod5_en}}
 				</td>
@@ -133,7 +133,7 @@
 			</tr>
 			<!--{{vtEndIf}}-->
 			<!--
-				{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1 }}
+				{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1 }}
 					{{vtSet: Colspan="5"}}
 				{{vtElse}}
 					{{vtSet: Colspan="4"}}
@@ -205,7 +205,7 @@
 				</td>
 			</tr>
 			<!--{{vtEndIf}}-->
-			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1 .and. {pxtcDeliveryDescription_en} .neq. }}-->
+			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1 .and. {pxtcDeliveryDescription_en} .neq. }}-->
 			<tr><td colspan="{{vtGet:Colspan}}">&nbsp;</td></tr>
 			<tr><td colspan="{{vtGet:Colspan}}">Beschreibung engl.:</td></tr>
 			<tr>
diff --git a/setup_delivery.vtedit.html b/setup_delivery.vtedit.html
index add84b0..1857280 100644
--- a/setup_delivery.vtedit.html
+++ b/setup_delivery.vtedit.html
@@ -187,7 +187,7 @@
 			<tr>
 				<th style="text-align:center">aktiv</th>
 				<th>Bezeichnung</th>
-				<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+				<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 				<th>Bezeichnung engl.</th>
 				<!--{{vtEndIf}}-->
 				<th>
@@ -208,7 +208,7 @@
 				<td class="normal" style="width:20em">
 					<input type="text" name="pxtcDeliveryMethod1" value="{{pxtcDeliveryMethod1}}" size="30">
 				</td>
-				<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+				<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 				<td class="normal" style="width:20em">
 					<input type="text" name="pxtcDeliveryMethod1_en" value="{{pxtcDeliveryMethod1_en}}" size="30">
 				</td>
@@ -230,7 +230,7 @@
 				<td class="normal">
 					<input type="text" name="pxtcDeliveryMethod2" value="{{pxtcDeliveryMethod2}}" size="30">
 				</td>
-				<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+				<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 				<td class="normal">
 					<input type="text" name="pxtcDeliveryMethod2_en" value="{{pxtcDeliveryMethod2_en}}" size="30">
 				</td>
@@ -252,7 +252,7 @@
 				<td class="normal">
 					<input type="text" name="pxtcDeliveryMethod3" value="{{pxtcDeliveryMethod3}}" size="30">
 				</td>
-				<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+				<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 				<td class="normal">
 					<input type="text" name="pxtcDeliveryMethod3_en" value="{{pxtcDeliveryMethod3_en}}" size="30">
 				</td>
@@ -274,7 +274,7 @@
 				<td class="normal">
 					<input type="text" name="pxtcDeliveryMethod4" value="{{pxtcDeliveryMethod4}}" size="30">
 				</td>
-				<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+				<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 				<td class="normal">
 					<input type="text" name="pxtcDeliveryMethod4_en" value="{{pxtcDeliveryMethod4_en}}" size="30">
 				</td>
@@ -296,7 +296,7 @@
 				<td class="normal">
 					<input type="text" name="pxtcDeliveryMethod5" value="{{pxtcDeliveryMethod5}}" size="30">
 				</td>
-				<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+				<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 				<td class="normal">
 					<input type="text" name="pxtcDeliveryMethod5_en" value="{{pxtcDeliveryMethod5_en}}" size="30">
 				</td>
@@ -311,7 +311,7 @@
 				</td>
 			</tr>
 			<!--
-				{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}
+				{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}
 					{{vtSet:Colspan="5"}}
 				{{vtElse}}
 					{{vtSet:Colspan="4"}}
@@ -378,7 +378,7 @@
 				<td colspan="{{vtGet:Colspan}}">
 					<h2>Hilfetext zu den Liefermethoden</h2>
 					<textarea class="tinymce" name="pxtcDeliveryDescription" cols="50" rows="15" style="float:left">{{vtGlobal:pxtcDeliveryDescription,edit_html}}</textarea>
-					<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+					<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 					<br><br>
 					Hilfetext engl.<br>
 					<textarea class="tinymce" name="pxtcDeliveryDescription_en" cols="50" rows="15" style="float:left">{{vtGlobal:pxtcDeliveryDescription_en,edit_html}}</textarea>
diff --git a/setup_details.html b/setup_details.html
index a531417..b7446a7 100644
--- a/setup_details.html
+++ b/setup_details.html
@@ -122,7 +122,7 @@
 					<!--{{vtIf: {pxtcDetailMetadata} .cn. copyright }}-->Copyright<br><!--{{vtEndIf}}-->
 					<!--{{vtIf: {pxtcDetailMetadata} .cn. credit }}-->Credit<br><!--{{vtEndIf}}-->
 					<!--{{vtIf: {pxtcDetailMetadata} .cn. instructions }}-->Anweisungen<br><!--{{vtEndIf}}-->
-					<!--{{vtIf: {pxtcDetailMetadata} .cn. folder }}-->Ordner<br><!--{{vtEndIf}}-->
+					<!--{{vtIf: {pxtcDetailMetadata} .cn. folder }}-->Galerie<br><!--{{vtEndIf}}-->
 				</td>
 			</tr>
 			<tr><td colspan="2">&nbsp;</td></tr>
diff --git a/setup_details.vtedit.html b/setup_details.vtedit.html
index b21b2ca..dcb0cfc 100644
--- a/setup_details.vtedit.html
+++ b/setup_details.vtedit.html
@@ -154,7 +154,7 @@
 					<input type="checkbox" name="pxtcDetailMetadata[]" id="pxtcDetailMetadata_instructions" value="instructions" {{vtIf:{pxtcDetailMetadata}.cn.instructions}}checked{{vtEndIf}}>
 					<label for="pxtcDetailMetadata_instructions">Anweisungen</label><br>
 					<input type="checkbox" name="pxtcDetailMetadata[]" id="pxtcDetailMetadata_folder" value="folder" {{vtIf:{pxtcDetailMetadata}.cn.folder}}checked{{vtEndIf}}>
-					<label for="pxtcDetailMetadata_folder">Ordner</label>
+					<label for="pxtcDetailMetadata_folder">Galerie</label>
 				</td>
 			</tr>
 			<tr><td colspan="2">&nbsp;</td></tr>
diff --git a/setup_files.vtedit.html b/setup_files.vtedit.html
index d00c981..28e6e97 100644
--- a/setup_files.vtedit.html
+++ b/setup_files.vtedit.html
@@ -114,7 +114,7 @@
 						<option value="direct" {{vtIf: {pxtcLocalAccess} .eq. direct}}selected{{vtEndIf}}>direkt</option>
 					</select>
 					&nbsp;&nbsp;&nbsp;
-					<i>gilt für das Erstellen, Verschieben und Löschen von Dateien und Ordnern</i>
+					<i>gilt für das Erstellen, Verschieben und Löschen von Dateien und Verzeichnissen</i>
 				</td>
 			</tr>
 			<tr><td colspan="3">&nbsp;</td></tr>
diff --git a/setup_gallery.html b/setup_gallery.html
index 9ef44cd..e243586 100644
--- a/setup_gallery.html
+++ b/setup_gallery.html
@@ -39,11 +39,11 @@
 				<td align="right" class="normal">Symbole</td>
 				<td class="normal">
 					<!--{{vtIf: {pxtcFolderIcons} .eq. 1}}-->
-						Bilderordner werden stets als Ordnersymbol dargestellt
+						Galerien werden stets als Ordnersymbol dargestellt
 					<!--{{vtElseIf: {pxtcFolderIcons} .eq. 2}}-->
-						Bilderordner werden durch Frontbild (falls vorhanden) oder als Ordnersymbol dargestellt
+						Galerien werden durch Frontbild (falls vorhanden) oder als Ordnersymbol dargestellt
 					<!--{{vtElse}}-->
-						Bilderordner werden durch Frontbild (falls vorhanden) oder durch das erste enthaltene Bild dargestellt
+						Galerien werden durch Frontbild (falls vorhanden) oder durch das erste enthaltene Bild dargestellt
 					<!--{{vtEndIf}}-->
 				</td>
 			</tr>
@@ -52,9 +52,9 @@
 				<td align="right" class="normal">Beschriftung</td>
 				<td class="normal">
 					<!--{{vtIf: {pxtcHideFolderCount} .eq. 1 }}-->
-						Zahl der enthaltenen Bilder wird in Ordnerbeschriftung ausgeblendet
+						Zahl der enthaltenen Bilder wird in Beschriftung ausgeblendet
 					<!--{{vtElse}}-->
-						Zahl der enthaltenen Bilder wird in Ordnerbeschriftung eingeblendet
+						Zahl der enthaltenen Bilder wird in Beschriftung eingeblendet
 					<!--{{vtEndIf}}-->
 				</td>
 			</tr>
@@ -101,9 +101,9 @@
                <!--{{vtEndIf}}-->
                <br>
                <!--{{vtIf: {vtGlobal:pxtcGalleryShowFolder} .eq. 1 }}-->
-                  Ordner-Buttons werden in Thumbnails eingeblendet
+                  Galerie-Buttons werden in Thumbnails eingeblendet
                <!--{{vtElse}}-->
-                  Ordner-Buttons werden in Thumbnails <strong>nicht</strong> eingeblendet
+                  Galerie-Buttons werden in Thumbnails <strong>nicht</strong> eingeblendet
                <!--{{vtEndIf}}-->
                <br>
 					<!--{{vtCalc: isZipAvailable() }}-->
diff --git a/setup_gallery.vtedit.html b/setup_gallery.vtedit.html
index 050ab13..7dea79a 100644
--- a/setup_gallery.vtedit.html
+++ b/setup_gallery.vtedit.html
@@ -62,9 +62,9 @@
 				<td align="right" class="normal" width="120">Symbole</td>
 				<td class="normal">
 					<select name="pxtcFolderIcons">
-						<option value="">Bilderordner durch Frontbild oder das erste enthaltene Bild darstellen</option>
-						<option value="2" {{vtIf:{pxtcFolderIcons} .eq. 2}}selected{{vtEndIf}}>Bilderordner durch Frontbild oder als Ordnersymbol darstellen</option>
-						<option value="1" {{vtIf:{pxtcFolderIcons} .eq. 1}}selected{{vtEndIf}}>Bilderordner stets als Ordnersymbol darstellen</option>
+						<option value="">Galerien durch Frontbild oder das erste enthaltene Bild darstellen</option>
+						<option value="2" {{vtIf:{pxtcFolderIcons} .eq. 2}}selected{{vtEndIf}}>Galerien durch Frontbild oder als Ordnersymbol darstellen</option>
+						<option value="1" {{vtIf:{pxtcFolderIcons} .eq. 1}}selected{{vtEndIf}}>Galerien stets als Ordnersymbol darstellen</option>
 					</select>
 				</td>
 			</tr>
@@ -73,8 +73,8 @@
 				<td align="right" class="normal">Beschriftung</td>
 				<td class="normal">
 					<select name="pxtcHideFolderCount">
-						<option value="">Zahl der enthaltenen Bilder in Ordnerbeschriftung einblenden</option>
-						<option value="1" {{vtIf:{pxtcHideFolderCount} .eq. 1}}selected{{vtEndIf}}>Zahl der enthaltenen Bilder in Ordnerbeschriftung ausblenden</option>
+						<option value="">Zahl der enthaltenen Bilder in Beschriftung einblenden</option>
+						<option value="1" {{vtIf:{pxtcHideFolderCount} .eq. 1}}selected{{vtEndIf}}>Zahl der enthaltenen Bilder in Beschriftung ausblenden</option>
 					</select>
 				</td>
 			</tr>
@@ -118,7 +118,7 @@
 						<input type="checkbox" id="pxtcGalleryViewer" name="pxtcGalleryViewer" value="1" {{vtIf: {pxtcGalleryViewer} .eq. 1}}checked{{vtEndIf}}>
 						<label for="pxtcGalleryViewer">interaktiven Bildbetrachter verwenden</label><br>
 						<input type="checkbox" id="pxtcGalleryShowFolder" name="pxtcGalleryShowFolder" value="1" {{vtIf: {pxtcGalleryShowFolder} .eq. 1}}checked{{vtEndIf}}>
-						<label for="pxtcGalleryShowFolder">Ordner-Buttons in Thumbnails einblenden</label><br>
+						<label for="pxtcGalleryShowFolder">Galerie-Buttons in Thumbnails einblenden</label><br>
 					<!--{{vtEndIf}}-->
 					<!--{{vtCalc: isZipAvailable() }}-->
 					<!--{{vtIf: {vtResult} .gt. 0 }}-->
diff --git a/setup_imaging.html b/setup_imaging.html
index 143c035..7b100f0 100644
--- a/setup_imaging.html
+++ b/setup_imaging.html
@@ -119,7 +119,7 @@
 							<tr id="row_pxtcImagingLoresWatermarkColor">
 								<td>- Farbe:</td>
 								<td>
-									<span style="display:inline-block; width:10px; height:10px; border:1px solid black; background-color:#{{pxtcImagingLoresWatermarkColor}}"></span>
+									<span style="display:inline-block; width:10px; height:10px; border:1px solid black; background-color:{{pxtcImagingLoresWatermarkColor}}"></span>
 									{{pxtcImagingLoresWatermarkColor}}
 								</td>
 							</tr>
diff --git a/setup_imaging.vtedit.html b/setup_imaging.vtedit.html
index 459eb1b..c1205e6 100644
--- a/setup_imaging.vtedit.html
+++ b/setup_imaging.vtedit.html
@@ -10,7 +10,6 @@
 	<style type="text/css" media="screen">
 		.options td { padding: 0 1em 1em 0 }
 	</style>
-	<script type="text/javascript" src="resources/jscolor/jscolor.js"></script>
 	<script type="text/javascript">
 
 		$( document ).ready( function(){
@@ -281,7 +280,7 @@
 							<tr class="watermark-color">
 								<td>- Farbe:</td>
 								<td>
-									<input type="color" class="color" name="pxtcImagingLoresWatermarkColor" value="{{vtIf: {pxtcImagingLoresWatermarkColor} .eq. }}ffffff{{vtElse}}{{pxtcImagingLoresWatermarkColor}}{{vtEndIf}}" size="6" maxlength="6" placeholder="ffffff">
+									<input type="color" class="color" name="pxtcImagingLoresWatermarkColor" value="{{vtIf: {pxtcImagingLoresWatermarkColor} .eq. }}#ffffff{{vtElse}}{{pxtcImagingLoresWatermarkColor}}{{vtEndIf}}" size="7" maxlength="7" placeholder="#rrbbgg">
 								</td>
 							</tr>
 							<tr class="watermark-opacity">
@@ -388,7 +387,7 @@
 								<tr class="watermark-color">
 									<td>- Farbe:</td>
 									<td>
-										<input type="color" class="color" name="ruleWmColor" value="{{vtIf: {vtItem:wmcolor} .eq. }}ffffff{{vtElse}}{{vtItem:wmcolor}}{{vtEndIf}}" size="6" maxlength="6" placeholder="ffffff">
+										<input type="color" class="color" name="ruleWmColor" value="{{vtIf: {vtItem:wmcolor} .eq. }}#ffffff{{vtElse}}{{vtItem:wmcolor}}{{vtEndIf}}" size="7" maxlength="7" placeholder="#rrbbgg">
 									</td>
 								</tr>
 								<tr class="watermark-opacity">
@@ -482,7 +481,7 @@
 										<option value="nw">oben links</option>
 										<option value="n" >oben zentriert</option>
 										<option value="ne">oben rechts</option>
-										<option value="c" >zentriert</option>
+										<option value="c" selected>zentriert</option>
 										<option value="sw">unten links</option>
 										<option value="s" >unten zentriert</option>
 										<option value="se">unten rechts</option>
@@ -492,16 +491,15 @@
 							<tr class="watermark-color">
 								<td>- Farbe:</td>
 								<td>
-									<input type="color" class="color" name="ruleWmColor" value="{{vtIf: {vtItem:wmcolor} .eq. }}ffffff{{vtElse}}{{vtItem:wmcolor}}{{vtEndIf}}" size="6" maxlength="6" placeholder="ffffff">
+									<input type="color" class="color" name="ruleWmColor" value="#ffffff" size="7" maxlength="7" placeholder="#rrbbgg">
 								</td>
 							</tr>
 							<tr class="watermark-opacity">
 								<td>- Deckkraft:</td>
 								<td>
 									<select name="ruleWmOpacity">
-										<!--{{vtSet: Opacity = "{vtItem:wmopacity}"}}-->
 										<!--{{vtRepeat:100,90,80,70,60,50,40,30,20,10}}-->
-										<option value="{{vtItem}}" {{vtIf: {vtGet:Opacity} .eq. {vtItem} }}selected{{vtEndIf}}>{{vtItem}}%</option>
+										<option value="{{vtItem}}">{{vtItem}}%</option>
 										<!--{{vtEndRepeat}}-->
 									</select>
 								</td>
diff --git a/setup_import.html b/setup_import.html
index d9f7ef0..62c423b 100644
--- a/setup_import.html
+++ b/setup_import.html
@@ -71,7 +71,7 @@
 			<tr><td colspan="3">&nbsp;</td></tr>
 			<tr>
 				<td colspan="3">
-					<h2 class="box">Einstellungen für neue Ordner</h2>
+					<h2 class="box">Einstellungen für neue Galerien</h2>
 				</td>
 			</tr>
 			<tr>
@@ -120,7 +120,7 @@
 				</td>
 				<td>
 					<!--{{vtIf: {vtGlobal:pxtcImportInheritSharing} .eq. 1}}-->
-						Unterordner erben Freigabeeinstellung des Hauptordners
+						Untergalerien erben Freigabeeinstellung der Hauptgalerie
 					<!--{{vtEndIf}}-->
 				</td>
 			</tr>
@@ -174,7 +174,7 @@
 				</td>
 				<td>
 					<!--{{vtIf: {vtGlobal:pxtcImportInheritProducts} .eq. 1}}-->
-						Unterordner erben Sortiment des Hauptordners
+						Untergalerien erben Sortiment des Hauptgalerie
 					<!--{{vtEndIf}}-->
 				</td>
 			</tr>
diff --git a/setup_import.vtedit.html b/setup_import.vtedit.html
index 991302f..f5089d2 100644
--- a/setup_import.vtedit.html
+++ b/setup_import.vtedit.html
@@ -174,7 +174,7 @@
 					<label for="source_hires">High-res-Bilder</label><br>
 					<br>
 					<label for="hires_blacklist" class="{{vtGet:BlacklistStatus}}">
-						Unterordner ignorieren:
+						Unterverzeichnisse ignorieren:
 					</label>
 					<!--{{vtIf: {vtGet:AutoBlacklist} .neq. }}-->
 					<input type="text" readonly name="" id="hires_autoblacklist" value="{{vtGet:AutoBlacklist}}" size="{{vtGet:AutoBlacklist|strlen}}" {{vtGet:BlacklistStatus}}
@@ -184,7 +184,7 @@
 			<tr><td colspan="3">&nbsp;</td></tr>
 			<tr>
 				<td colspan="3">
-					<h2 class="box">Einstellungen für neue Ordner</h2>
+					<h2 class="box">Einstellungen für neue Galerien</h2>
 				</td>
 			</tr>
 			<tr>
@@ -215,7 +215,7 @@
 				<td>
 					<input type="hidden" name="pxtcImportInheritSharing" value="">
 					<input type="checkbox" name="pxtcImportInheritSharing" id="pxtcImportInheritSharing" value="1" {{vtIf:{pxtcImportInheritSharing}.eq.1}}checked{{vtEndIf}}>
-					<label for="pxtcImportInheritSharing">Unterordner erben Freigabeeinstellung des Hauptordners</label>
+					<label for="pxtcImportInheritSharing">Untergalerien erben Freigabeeinstellung der Hauptgalerie</label>
 				</td>
 			</tr>
 			<tr><td colspan="3">&nbsp;</td></tr>
@@ -286,7 +286,7 @@
 				<td>
 					<input type="hidden" name="pxtcImportInheritProducts" value="">
 					<input type="checkbox" name="pxtcImportInheritProducts" id="pxtcImportInheritProducts" value="1" {{vtIf: {vtGlobal:pxtcImportInheritProducts} .eq. 1}}checked{{vtEndIf}}>
-					<label for="pxtcImportInheritProducts">Unterordner erben Sortiment des Hauptordners</label>
+					<label for="pxtcImportInheritProducts">Untergalerien erben Sortiment der Hauptgalerie</label>
 				</td>
 			</tr>
 			<tr>
diff --git a/setup_privileges.vtedit.html b/setup_privileges.vtedit.html
index 305feb0..6a807a0 100644
--- a/setup_privileges.vtedit.html
+++ b/setup_privileges.vtedit.html
@@ -337,8 +337,8 @@
 			<p>
 				Sie können an dieser Stelle festlegen, welche Benutzer die Buttons zum Herunterladen von Low-res-Bildern ("Layoutdaten")
 				und High-res-Bildern ("Feindaten") eingeblendet bekommen und ob Pixtacy Ihnen bei jedem Download eine Benachrichtigung
-				per E-Mail senden soll. Beachten Sie, dass Sie das Recht zum High-res-Download auch für jeden Bilderordner getrennt
-				einstellen können &ndash; ein auf dieser Seite erteiltes Recht gilt dagegen für alle Bilderordner, auf die ein bestimmter
+				per E-Mail senden soll. Beachten Sie, dass Sie das Recht zum High-res-Download auch für jede Galerie getrennt
+				einstellen können &ndash; ein auf dieser Seite erteiltes Recht gilt dagegen für alle Galerien, auf die ein bestimmter
 				Benutzer Zugriff hat.
 			</p>
 		
diff --git a/setup_search.html b/setup_search.html
index 8960a50..9ec9db5 100644
--- a/setup_search.html
+++ b/setup_search.html
@@ -86,6 +86,8 @@
 							nach Titel
 						<!--{{vtElseIf: {pxtcSearchSortfield} .eq. image.creationdate}}-->
 							nach Aufnahmedatum
+						<!--{{vtElseIf: {pxtcSearchSortfield} .eq. sortValue}}-->
+							manuell
 						<!--{{vtEndIf}}-->
 						<!--{{vtIf: {pxtcSearchSortorder} .bw. desc}}-->
 							(absteigend)
diff --git a/setup_search.vtedit.html b/setup_search.vtedit.html
index bc6a756..576b5d2 100644
--- a/setup_search.vtedit.html
+++ b/setup_search.vtedit.html
@@ -54,6 +54,18 @@
 			}
 		}
 
+		$( function(){
+			$('#pxtcSearchSortfield').change( function(){
+				if ( $(this).val() == 'sortValue' ){
+					$('#pxtcSearchSortorderDesc').prop( 'checked', false );
+					$('#pxtcSearchSortorder').css( 'display', 'none' );
+				}
+				else {
+					$('#pxtcSearchSortorder').css( 'display', 'inline' );
+				}
+			});
+		});
+
 	</script>
 	<script type="text/javascript" src="resources/validations.js"></script>
 	<style type="text/css" media="screen">
@@ -169,7 +181,7 @@
 			<tr>
 				<td align="right" class="normal" style="width:12em">Sortierung</td>
 				<td colspan="2" class="normal" style="padding-top:3px">
-					<select name="pxtcSearchSortfield">
+					<select name="pxtcSearchSortfield" id="pxtcSearchSortfield">
 						<optgroup label="nach Metadaten">
 							<option value="name" {{vtIf:{pxtcSearchSortfield}.eq.name}}selected{{vtEndIf}}>Dateiname</option>
 							<option value="image.name" {{vtIf: {pxtcSearchSortfield} .eq. image.name}}selected{{vtEndIf}}>Titel</option>
@@ -179,9 +191,12 @@
 							<option value="creationTime" {{vtIf:{pxtcSearchSortfield}.eq.creationTime}}selected{{vtEndIf}}>Erstellungsdatum</option>
 							<option value="modificationTime" {{vtIf:{pxtcSearchSortfield}.eq.modificationTime}}selected{{vtEndIf}}>Änderungsdatum</option>
 						</optgroup>
+						<optgroup label="sonstige">
+							<option value="sortValue" {{vtIf:{pxtcSearchSortfield}.eq.sortValue}}selected{{vtEndIf}}>manuell</option>
+						</optgroup>
 					</select>&nbsp;&nbsp;&nbsp;
 					<input type="hidden" name="pxtcSearchSortorder" value="ascending">
-					<span id="pxtcSearchSortorder">
+					<span id="pxtcSearchSortorder" style="{{vtIf: {pxtcSearchSortfield} .eq. sortValue}}display:none{{vtEndIf}}">
 						<input type="checkbox" name="pxtcSearchSortorder" id="pxtcSearchSortorderDesc" value="descending" {{vtIf: {{vtIf: {pxtcSearchSortorder} .bw. desc}}checked{{vtEndIf}}>
 						<label for="pxtcSearchSortorderDesc">absteigende Folge</label>
 					</span>
diff --git a/topic.html b/topic.html
index 77ea44f..b19c096 100644
--- a/topic.html
+++ b/topic.html
@@ -2,7 +2,7 @@
 <html>
 <head>
 	{{vtInclude: includes/initialize.html}}
-	<title>Ordner {{vtName}}</title>
+	<title>Thema {{vtName}}</title>
 	<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
 	{{vtInclude: includes/html_headers_internal.html }}
 </head>
@@ -23,7 +23,7 @@
 				<td>&nbsp;</td>
 			</tr>
 			<tr>
-				<!--{{vtSelect:-origin="{vtGet:ID_Bilder}", -type="image", -search="{Suchwort}"}}-->
+				<!--{{vtSelect:-origin="{vtGet:ID_Bilder}", -type="image", -search="{Suchwort}", -ftmode="boolean" }}-->
 				<td>Treffer:</td>
 				<td>
 					<!--{{vtIf: {vtCountSelection} .eq. 0}}-->
diff --git a/topic.vtedit.html b/topic.vtedit.html
index 33efea4..7b50eea 100644
--- a/topic.vtedit.html
+++ b/topic.vtedit.html
@@ -51,7 +51,7 @@
 				</td>
 				<td>&nbsp;</td>
 			</tr>
-			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 			<tr>
 				<td align="right" class="normal" width="100">Name engl.</td>
 				<td class="normal" style="padding-bottom:15px">
diff --git a/topic.vtnew.html b/topic.vtnew.html
index 8c55c0b..efa6468 100644
--- a/topic.vtnew.html
+++ b/topic.vtnew.html
@@ -48,7 +48,7 @@
 				</td>
 				<td>&nbsp;</td>
 			</tr>
-			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+			<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 			<tr>
 				<td align="right" class="normal" width="100">Name engl.</td>
 				<td class="normal" style="padding-bottom:15px">
diff --git a/topiclist.html b/topiclist.html
index 51a042a..f67aca7 100644
--- a/topiclist.html
+++ b/topiclist.html
@@ -49,7 +49,7 @@
 		<table border="0" cellpadding="2" cellspacing="2">
 			<tr>
 				<th width="150" class="fieldHeading">Name</th>
-				<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+				<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 				<th width="150" class="fieldHeading">Name engl.</th>
 				<!--{{vtEndIf}}-->
 				<th width="250" class="fieldHeading">Suchbegriff</th>
@@ -59,13 +59,13 @@
 			<!--{{vtLoop:topic}}-->
 			<tr onclick="clickRow('{{vtLink:-met='vtedit'}}')">
 				<td class="fieldContent">{{Name}}</td>
-				<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .eq. 1}}-->
+				<!--{{vtIf: {vtGlobal:pxtcAllowLanguageSwitch} .gte. 1}}-->
 				<td class="fieldContent">{{Name_en}}</td>
 				<!--{{vtEndIf}}-->
 				<td class="fieldContent">{{Suchwort}}</td>
 				<td class="fieldContent" style="text-align:right">
 					<!--{{vtIf: {vtGet:Treffer_ausblenden} .neq. 1}}-->
-						<!--{{vtSelect:-origin="{vtGet:ID_Bilder}", -type="image", -search="{Suchwort}"}}-->
+						<!--{{vtSelect:-origin="{vtGet:ID_Bilder}", -type="image", -search="{Suchwort}", -ftmode="boolean"}}-->
 							<!--{{vtIf: {vtCountSelection} .gt. 0}}-->
 								<a class="text_link" href="{{vtLink:-pg='{vtGet:ID_Bilder}',-met='serp',-search='{Suchwort}'}}">{{vtCountSelection}}</a>
 							<!--{{vtElse}}-->
diff --git a/views/default2_r.html b/views/default2_r.html
index af25676..f2b6002 100644
--- a/views/default2_r.html
+++ b/views/default2_r.html
@@ -30,7 +30,7 @@
 			</div>
 			<div class="col-lg-6 col-md-12">
 				<!--{{vtIf: {vtGet:ImageRight} .neq. }}-->
-					<img src="{{vtGet:ImageRight}}" alt="" style="float:right; max-height:100%">
+					<img src="{{vtGet:ImageRight}}" alt="" style="float:right; max-width:100%">
 				<!--{{vtEndIf}}-->
 				<!--{{vtIf: {vtGet:PageContentRight} .neq. }}-->
 					<div class="textbox">
diff --git a/views/gallery_r.html b/views/gallery_r.html
index dc465fc..aa39d32 100644
--- a/views/gallery_r.html
+++ b/views/gallery_r.html
@@ -111,7 +111,7 @@
 		#action-panel { z-index:1010; position:fixed; bottom:20px; right:20px; }
 		
 		.lg-prev, .lg-next { display: none !important; }
-		.hasHover .lg-prev, .hasHover .lg-next { display: block; }
+		.hasHover .lg-prev, .hasHover .lg-next { display: block !important; }
 		
 		
 	</style>
@@ -221,17 +221,17 @@
 									<!--{{vtSet: Height }}-->
 									<!--{{vtCalc: round( {vtGet:Height} * {vtItem:width} / {vtItem:height} ) }}-->
 									<!--{{vtSet: Width }}-->
-									<img class="img-thumbnail {{vtItem:orientation}}" data-src="{{vtItem:preview,raw}}" style="background-image:url('{{vtItem:src}}'); width:{{vtGet:Width}}px; height:{{vtGet:Height}}px;" src="{{vtResource:clear.gif}}" alt="{{vtItem:title}}" title="{{vtItem:title}}" data-pageid="{{vtItem:id}}" data-src="{{vtItem:preview,raw}}">
+									<img class="img-thumbnail {{vtItem:orientation}}" data-src="{{vtItem:preview,raw}}" style="background-image:url('{{vtItem:src}}'); width:{{vtGet:Width}}px; height:{{vtGet:Height}}px;" src="{{vtResource:clear.gif}}" alt="{{vtItem:title}}" title="{{vtItem:title}}" data-pageid="{{vtItem:id}}">
 								<!--{{vtElse}}-->
 									<img class="img-thumbnail" src="{{vtResource:clear.gif}}" style="width:{{vtGet:FolderSize}}px; height:{{vtGet:FolderSize}}px" alt="">
 								<!--{{vtEndIf}}-->
 								<!--{{vtIf: {vtGlobal:pxtcNaviLightboxBehaviour} .neq. -1 }}-->
-								<div class="flag-box" data-id="{{vtItem:id}}" title="Markierung umschalten">
+								<div class="flag-box" data-id="{{vtItem:id}}" title="{{vtGet:s_txt_0067}}">
 									<i class="far fa-heart"></i>
 								</div>
 								<!--{{vtEndIf}}-->
 								<!--{{vtIf: {vtGet:ShowCartButtons} .eq. 1 .and. {vtItem:src} .neq. .and. {vtItem:width} .gt. 0 }}-->
-								<div class="cart-box" title="Bild kaufen ...">
+								<div class="cart-box" title="{{vtGet:s_txt_0068}}">
 									<i class="fas fa-shopping-cart"></i>
 								</div>
 								<!--{{vtEndIf}}-->
@@ -270,6 +270,7 @@
 			<!--{{vtIf: {vtGet:ShowCartButtons} .eq. 1 }}-->
 				<script src="resources/lightgallery/modules/lg-cart.js"></script>
 			<!--{{vtEndIf}}-->
+			<?php function remove_linebreaks( $string ) { return str_replace( array( "\r\n", "\r", "\n" ), ' ', $string ); } ?>
 		<!--{{vtEndIf}}-->
 		<!--{{vtIf: {vtGet:ShowCartButtons} .eq. 1 }}-->
 			<script src="resources/order_dialog.js"></script>
@@ -307,7 +308,7 @@
 							{
 								'src': '{{vtItem:preview}}',
 								'thumb': '{{vtItem:src}}',
-								'subHtml': '<span id="lgSubHtml"><br> {{vtItem:title}} <a href="{{vtItem:link}}" class="text-nowrap"><i class="fas fa-info-circle ml-2 mr-1"></i>{{vtGet:s_btn_details}}</a></span>',
+								'subHtml': '<span id="lgSubHtml"><br>{{vtItem:title,escaped|remove_linebreaks}} <a href="{{vtItem:link}}" class="text-nowrap"><i class="fas fa-info-circle ml-2 mr-1"></i>{{vtGet:s_btn_details}}</a></span>',
 								'elementId': 'gallery-item-{{vtItem:id}}',
 								'productList': '{{vtLink:-pg="{vtItem:id}",-met="ajax/order_dialog.html"}}'
 							},
diff --git a/views/image_r.html b/views/image_r.html
index 86be1df..924f762 100644
--- a/views/image_r.html
+++ b/views/image_r.html
@@ -89,17 +89,17 @@
 					<img id="preview_image" class="img-fluid img-thumbnail" src="{{vtGet:ImageSource}}" alt="Preview {{Dateiname}}">
 
 					<!--{{vtIf: {vtGet:ShowLightbox} .eq. 1 }}-->
-						<div id="btnFlag" class="btn-flag kcd-88">
+						<div id="btnFlag" class="btn-flag kcd-88" title="{{vtGet:s_txt_0067}}">
 							<i class="far fa-heart"></i>
 						</div>
 					<!--{{vtEndIf}}-->
 					<!--{{vtIf: {vtGet:ProductCount} .gt. 0 }}-->
-						<div id="btnCart" class="btn-buy">
+						<div id="btnCart" class="btn-buy" title="{{vtGet:s_txt_0068}}">
 							<i class="fas fa-shopping-cart"></i>
 						</div>
 					<!--{{vtEndIf}}-->
 					<!--{{vtIf: {vtGet:ZoomAllowed} .eq. 1 }}-->
-						<div id="btnZoom" class="btn-zoom kcd-99">
+						<div id="btnZoom" class="btn-zoom kcd-99" title="{{vtGet:s_txt_0069}}">
 							<i class="fa fa-expand"></i>
 						</div>
 					<!--{{vtEndIf}}-->
diff --git a/views/namelist_r.html b/views/namelist_r.html
index fbf6d30..a9c6a95 100644
--- a/views/namelist_r.html
+++ b/views/namelist_r.html
@@ -7,6 +7,10 @@
 	<title>{{vtGet:PageTitle}}</title>
 	<!--{{vtInclude: includes/html_headers_r.html}}-->
 	{{vtGet:PageAdditionalHeaders,raw}}
+	<style type="text/css">
+		#action-panel { z-index:1010; position:fixed; bottom:20px; right:20px; }
+	</style>
+	
 </head>
 <body id="{{vtGet:PageBodyId}}" class="view_default_r {{vtGet:PageBodyClass}}">
 
@@ -92,6 +96,19 @@
 
 	</div>
 
+	<!--{{vtIf: {vtGet:ActionPanel_r} .neq. }}-->
+
+		<div id="action-panel" class="btn-group dropup">
+			<button type="button" class="btn btn-warning dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+				<i class="fas fa-cog"></i>
+			</button>
+			<div class="dropdown-menu dropdown-menu-right">
+				{{vtGet:ActionPanel_r,raw}}
+			</div>
+		</div>
+	
+	<!--{{vtEndIf}}-->
+
 	{{vtGet:PageFooter,raw}}
 	{{vtInclude: includes/footer_r.html}}
 	{{vtInclude: includes/custom_footer.html}}
