Index: /controller/wpsg_AdminController.class.php
===================================================================
--- /controller/wpsg_AdminController.class.php	(revision 5371)
+++ /controller/wpsg_AdminController.class.php	(revision 5382)
@@ -759,5 +759,5 @@
 										
 					// Plugin deaktivieren
-					deactivate_plugins('wpshopgermany/wpshopgermany.php');
+					deactivate_plugins(WPSG_FOLDERNAME.'/wpshopgermany.php');
 
 					// Einstellungen lÃ¶schen
@@ -765,5 +765,5 @@
 					
 					// Plugindaten lÃ¶schen
-					wpsg_rrmdir(WP_PLUGIN_DIR.'../wpshopgermany/');
+					wpsg_rrmdir(WP_PLUGIN_DIR.'../'.WPSG_FOLDERNAME.'/');
 					
 					$this->shop->clearMessages();					
@@ -1254,9 +1254,11 @@
 									
 			$this->shop->loadModule(true);
-
+			
 			if (isset($_REQUEST['submit'])) { $this->submitAction(); }
 			
 			foreach ($this->shop->arAllModule as $mod_key => $m)
 			{
+				
+				if ($mod_key == 'wpsg_mod_core') continue;
 				
 				$group = $m->group;
@@ -1478,5 +1480,5 @@
 									
 			$this->shop->view['arGeoMode'][3] = __('Anhand der Browsersprache', 'wpsg');
-			$this->shop->view['aRGeoMode'][4] = __('nicht anzeigen', 'wpsg');
+			$this->shop->view['arGeoMode'][4] = __('nicht anzeigen', 'wpsg');
 			
 		} // public function extendedAction()
@@ -1535,4 +1537,5 @@
 				$this->update_option('wpsg_removeWpAutoOp', $_REQUEST['wpsg_removeWpAutoOp']);
 				$this->update_option('wpsg_removeWpTrimExcerpt', $_REQUEST['wpsg_removeWpTrimExcerpt']);
+				$this->update_option('wpsg_lockOrderTables', $_REQUEST['wpsg_lockOrderTables']);
 				$this->update_option('wpsg_autoraw', $_REQUEST['wpsg_autoraw']);
 				$this->update_option('wpsg_nocache', $_REQUEST['wpsg_nocache']);
Index: /controller/wpsg_BasketController.class.php
===================================================================
--- /controller/wpsg_BasketController.class.php	(revision 5371)
+++ /controller/wpsg_BasketController.class.php	(revision 5382)
@@ -92,5 +92,5 @@
 			// Es kann vorkommen, das eine Zahlungsart voreingestellt ist die nicht mehr verfÃŒgbar ist
 			// Ist nicht ganz schÃ¶n, da aber checkShippingAvailable von toArray() abhÃ€ngig ist
-			if (isset($_SESSION['wpsg']['checkout']['shipping']) && !array_key_exists($_SESSION['wpsg']['checkout']['shipping'], $this->shop->arShipping))
+			if (isset($_SESSION['wpsg']['checkout']['shipping']) && (is_array($this->shop->arShipping) && !array_key_exists($_SESSION['wpsg']['checkout']['shipping'], $this->shop->arShipping)))
 			{
 				
@@ -356,4 +356,11 @@
 				
 			}
+			else if (wpsg_isSizedString($_REQUEST['wpsg']['action'], 'widget'))
+			{
+				
+				the_widget('wpsg_basket_widget');
+				die();
+				
+			}
 			
 			// Der Warenkorb wurde abgeschickt
@@ -406,10 +413,14 @@
 				$this->shop->callMods('basket_preInsert');
 
-				// Produktdaten
-				$product_data = $this->shop->cache->loadProduct($this->shop->getProduktID($_REQUEST['wpsg']['produkt_id']));
-				
+				// Produktdaten 
+				//$product_data = $this->shop->cache->loadProduct($this->shop->getProduktID($_REQUEST['wpsg']['produkt_id']));
+				$product_data = $this->shop->loadProduktArray($this->shop->getProduktID($_REQUEST['wpsg']['produkt_id']));
+				$product_data['id'] = $this->shop->getProduktID($_REQUEST['wpsg']['produkt_id']);
+								
 				// Produkt hinzufÃŒgen
 				$bOK = $this->shop->basket->addProduktToSession($_REQUEST['wpsg']['produkt_id'], $_REQUEST['wpsg']['menge']);
-
+				
+				if ($this->shop->get_option('wpsg_afterinsert') == '2') die();
+				
 				if ($this->shop->get_option('wpsg_afterinsert') == '3')
 				{
@@ -419,5 +430,13 @@
 					$this->shop->view['amount_add'] = $_REQUEST['wpsg']['menge'];
 					$this->shop->view['amount_basket'] = $this->shop->basket->getBasketAmount($_REQUEST['wpsg']['produkt_id']);
-						
+					$this->shop->view['product_index'] = $GLOBALS['wpsg_lastInsertIndex'];	
+					
+				}
+				 
+				if ($this->shop->get_option('wpsg_afterinsert') == '4') 
+				{
+						
+					$this->redirect($_REQUEST['myReferer']);
+				
 				}
 				
@@ -428,4 +447,5 @@
 
 					// Hier Warenkorb ohne Meldung anzeigen / FÃŒr den Fall, dass das Produkt nur einmal im Warenkorb auftauchen darf
+					
 				}
 				else 
@@ -477,27 +497,4 @@
 				}
 								
-			}
-			else if (isset($_REQUEST['wpsg_widget_ajax']))
-			{
-				
-				$this->shop->basket->reset();
-				$this->shop->basket->initFromSession();
-				$this->shop->view['basket'] = $this->shop->basket->toArray();
-				 
-				
-				if (is_array($this->shop->view['basket']) && sizeof($this->shop->view['basket']['produkte']) > 0)
-				{
-					$this->shop->view['countArtikel'] = sizeof($this->shop->view['basket']['produkte']);
-				}
-				else
-				{
-					$this->shop->view['countArtikel'] = 0;
-				}
-				 
-				$this->shop->view['wpsg_versandhinweis'] = $settings['wpsg_versandhinweis'];
-				$this->shop->view['wpsg_widgetsettings'] = $settings;
-				 
-				die($this->shop->render(WPSG_PATH_VIEW.'/warenkorb/index.phtml'));
-				
 			}
 			else if (isset($_REQUEST['wpsg_basket_ajax']))
@@ -889,5 +886,5 @@
 						$target_error = $this->shop->getURL(wpsg_ShopController::URL_CHECKOUT);
 						
-						if (array_key_exists($this->shop->basket->arCheckout['shipping'], $this->shop->arShipping) && array_key_exists($this->shop->basket->arCheckout['payment'], $this->shop->arPayment) && $this->shop->get_option('wpsg_skip_checkout2') === '1')
+						if (array_key_exists($this->shop->basket->arCheckout['shipping'], $this->shop->arShipping) && array_key_exists($this->shop->basket->arCheckout['payment'], $this->shop->arPayment) && $this->shop->get_option('wpsg_skip_checkout2') === '1' && $this->shop->basket->arCheckout['payment'] != 20)
 						{
 							
@@ -921,4 +918,15 @@
 				}
 				
+				// Speziell fÃŒr PayPal PLUS, da an den IFrame gesendet wird
+				if ($_REQUEST['wpsg_checkout'] === 'ppp')
+				{
+					
+					unset($_SESSION['wpsg']['checkout']['payment']);
+					
+					if (!$bOK) die('<script type="application/javascript">/* <![CDATA[ */ parent.wpsg_ppp_handleError(); /* ]]> */</script>');
+					else die('<script type="application/javascript">/* <![CDATA[ */ parent.wpsg_ppp_run(); /* ]]> */</script>');
+					
+				}
+				
 				if (!$bOK)
 				{
Index: /controller/wpsg_OrderController.class.php
===================================================================
--- /controller/wpsg_OrderController.class.php	(revision 5371)
+++ /controller/wpsg_OrderController.class.php	(revision 5382)
@@ -306,7 +306,5 @@
 			$basket->initFromDB($this->shop->view['data']['id'], true); 
 			$this->shop->view['basket'] = $basket->toArray(true);
-						
-			//wpsg_debug($this->shop->view['basket']);die();
-			
+						 
 			$this->shop->view['colspan'] = 3;
 			if ($this->shop->get_option('wpsg_showMwstAlways') == '1' || sizeof($this->shop->view['basket']['mwst']) > 1) $this->shop->view['colspan'] ++;
Index: /controller/wpsg_ProduktController.class.php
===================================================================
--- /controller/wpsg_ProduktController.class.php	(revision 5371)
+++ /controller/wpsg_ProduktController.class.php	(revision 5382)
@@ -694,17 +694,8 @@
 		{
 			
-			$this->db->UpdateQuery(WPSG_TBL_PRODUCTS, array(
-				'deleted' => '1'
-			), "`id` = '".wpsg_q($_REQUEST['edit_id'])."'");		
-			
-			$this->shop->callMods('produkt_del', array($_REQUEST['edit_id']));
-			
-			// Ãbersetzung lÃ¶schen
-			$this->db->UpdateQuerY(WPSG_TBL_PRODUCTS, array(
-				'deleted' => '1'
-			), "`lang_parent` = '".wpsg_q($_REQUEST['edit_id'])."'");
-			
+			$oProduct = wpsg_product::getInstance($_REQUEST['edit_id']);
+			$oProduct->delete();
+						
 			$this->addBackendMessage(__('Produkt erfolgreich gelÃ¶scht.', 'wpsg'));
-			
 			$this->redirect(WPSG_URL_WP.'wp-admin/admin.php?page=wpsg-Produkt&action=index');
 			
@@ -792,5 +783,5 @@
 			{
 
-				$this->shop->view['arProdukte'] = $this->db->fetchAssocField("
+				$this->shop->view['arProdukte'] = wpsg_array_merge(array('-1' => __('Alle Produkte', 'wpsg')), $this->db->fetchAssocField("
 					SELECT
 						`id`, `name`
@@ -800,5 +791,5 @@
 						`deleted` = '0' AND
 						`lang_parent` = '0'
-				", "id", "name");
+				", "id", "name"));
 				
 				if ($this->shop->hasMod('wpsg_mod_productgroups'))
Index: /controller/wpsg_ShopController.class.php
===================================================================
--- /controller/wpsg_ShopController.class.php	(revision 5371)
+++ /controller/wpsg_ShopController.class.php	(revision 5382)
@@ -21,4 +21,7 @@
 		/** Alle Versandkosten der aktivierten Module */
 		var $arShipping;
+		
+		/** Versandarten wurden schon zusammengefÃŒhrt */
+		var $bShippingMerged = false;
 		
 		/** Alle Zahlungsarten der aktivierten Module */
@@ -65,4 +68,5 @@
 		const URL_LOGOUT = 14;  
 		const URL_ONLINE_DISPUTE_RESOLUTION = 15;
+		const URL_REQUEST = 16;
 		
 		/** Status Konstanten */ 
@@ -215,4 +219,5 @@
 			), "`ID` = '".wpsg_q($page)."'");
 			 
+			if ($this->get_option('wpsg_page_request') === false) $this->createPage(__('Anfrageliste', 'wpsg'), 'wpsg_page_request', '-1');				
 			if ($this->get_option('wpsg_page_basket') === false) $this->createPage(__('Warenkorb', 'wpsg'), 'wpsg_page_basket', '-1');				
 			if ($this->get_option('wpsg_page_versand') === false) $this->createPage(__('Versandkosten', 'wpsg'), 'wpsg_page_versand', '-1');
@@ -494,5 +499,10 @@
 					$url = get_permalink($this->get_option('wpsg_page_widerrufsbelehrung'));
 					break;
-
+				
+				case self::URL_REQUEST:
+							
+					$url = get_permalink ($this->get_option('wpsg_page_request'));
+					break;
+				
 				case self::URL_ONLINE_DISPUTE_RESOLUTION:
 							
@@ -630,11 +640,11 @@
 				wp_enqueue_script('jquery-ui-dialog');
 				wp_enqueue_script('jquery-ui-sortable');
-				wp_enqueue_script('jquery-ui-datepicker', $this->url(WPSG_URL_CONTENT.'plugins/wpshopgermany/lib/ui/jquery.ui.datepicker.js'), array('jquery', 'jquery-ui-core'));
-				wp_enqueue_script('jquery-ui-datepicker-de', $this->url(WPSG_URL_CONTENT.'plugins/wpshopgermany/lib/ui/jquery.ui.datepicker-de.js'), array('jquery', 'jquery-ui-core'));
+				wp_enqueue_script('jquery-ui-datepicker', $this->url(WPSG_URL_CONTENT.'plugins/'.WPSG_FOLDERNAME.'/lib/ui/jquery.ui.datepicker.js'), array('jquery', 'jquery-ui-core'));
+				wp_enqueue_script('jquery-ui-datepicker-de', $this->url(WPSG_URL_CONTENT.'plugins/'.WPSG_FOLDERNAME.'/lib/ui/jquery.ui.datepicker-de.js'), array('jquery', 'jquery-ui-core'));
 			
 				wp_enqueue_style('wpsg-bscss', $GLOBALS['wpsg_sc']->getRessourceURL('js/bootstrap-3.3.6-dist/css/bootstrap.css'));
 				wp_enqueue_style('wpsg-bs-theme-css', $GLOBALS['wpsg_sc']->getRessourceURL('js/bootstrap-3.3.6-dist/css/bootstrap-theme.css'));
 				
-				wp_enqueue_style('wpsg-adminstyle', $GLOBALS['wpsg_sc']->getRessourceURL('css/admin.css'));
+				wp_enqueue_style('wpsg-adminstyle', $GLOBALS['wpsg_sc']->getRessourceURL('css/admin.css'), array('wpsg-bscss', 'wpsg-bs-theme-css'));
 				
 			}
@@ -647,5 +657,5 @@
 				if ($this->get_option('wpsg_load_jquery') == '1') wp_enqueue_script('jquery');
 				
-				wp_enqueue_script('wpsg_frontend', $this->getRessourceURL('js/frontend.js'));
+				wp_enqueue_script('wpsg_frontend', $this->getRessourceURL('js/frontend.js'), array('jquery'));
 				
 				wp_localize_script('wpsg_frontend', 'wpsg_ajax', array(
@@ -668,6 +678,6 @@
 						case '1': // Validierung V1
 								
-							wp_enqueue_script('jquery-validation-de', $this->getRessourceURL('js/jquery.validationEngine-de.js'));
-							wp_enqueue_script('jquery-validation', $this->getRessourceURL('js/jquery.validationEngine.js'));
+							wp_enqueue_script('jquery-validation-de', $this->getRessourceURL('js/jquery.validationEngine-de.js'), array('jquery'));
+							wp_enqueue_script('jquery-validation', $this->getRessourceURL('js/jquery.validationEngine.js'), array('jquery'));
 				
 							wp_localize_script('jquery-validation-de', 'wpsg_trans_v1', array(
@@ -711,6 +721,6 @@
 						case '2': // Validierung V2
 								
-							wp_enqueue_script('wpsg-validation', $this->getRessourceURL('js/jquery-validation-1.11.1/dist/jquery.validate.min.js'));
-							wp_enqueue_script('wpsg-validation-2', $this->getRessourceURL('js/jquery-validation-1.11.1/dist/additional-methods.min.js'));
+							wp_enqueue_script('wpsg-validation', $this->getRessourceURL('js/jquery-validation-1.11.1/dist/jquery.validate.min.js'), array('jquery'));
+							wp_enqueue_script('wpsg-validation-2', $this->getRessourceURL('js/jquery-validation-1.11.1/dist/additional-methods.min.js'), array('jquery'));
 				
 							wp_localize_script('wpsg-validation', 'wpsg_trans_v2', array(
@@ -1149,20 +1159,41 @@
 			{
 				
-				$template = $atts['template'];
+				$template = $atts['template']; 
+				
+			}
+			else if (isset($atts['produktgruppe']))
+			{
+				
+				return $this->callMod('wpsg_mod_productgroups', 'shortcode', array($atts));
+				
+			}
+			else
+			{
+				
+				$template = false;
+				
+			}
+			
+			if ($atts['product'] === '-1')
+			{
+					
+				$arProductIDs = $this->db->fetchAssocField("SELECT `id` FROM `".WPSG_TBL_PRODUCTS."` ORDER BY `id` ASC ");		
+				$content = '';
+				
+				foreach ($arProductIDs as $product_id)
+				{
+					
+					$content .= $this->renderProdukt($product_id, $template);
+					
+				}
+				
+				return $content;
+				
+			}
+			else
+			{
+			
 				return $this->renderProdukt($atts['product'], $template);
-				
-			}
-			else if (isset($atts['produktgruppe']))
-			{
-				
-				return $this->callMod('wpsg_mod_productgroups', 'shortcode', array($atts));
-				
-			}
-			else
-			{
-				
-				$template = false;
-				return $this->renderProdukt($atts['product'], $template);
-				
+					
 			}
 			
@@ -1213,5 +1244,5 @@
 			
 		} // public function checkCustomerPreset()
-				
+				 		
 		/**
 		 * Registriert die im Shop verwendeten Widgets
@@ -1357,5 +1388,5 @@
 			
 			// Preis umrechnen fÃŒr Standardland			
-			if ($this->get_option('wpsg_preisangaben') == WPSG_NETTO)
+			if ($this->get_option('wpsg_preisangaben') == WPSG_NETTO)			
 			{
 				
@@ -1367,5 +1398,5 @@
 			else 
 			{
-				
+				 
 				// Preis im Backend ist in Brutto
 				$produkt['preis_brutto'] = $produkt['preis'];
@@ -2406,8 +2437,13 @@
 			$this->checkEscape();
 			
-			if ($this->hasModulFunction($_REQUEST['wpsg_mod'], $_REQUEST['wpsg_action'].'Redirect'))
-			{
-				
-				$this->callMod($_REQUEST['wpsg_mod'], $_REQUEST['wpsg_action'].'Redirect'); return;
+			if (wpsg_isSizedString($_REQUEST['wpsg_mod']) && wpsg_isSizedString($_REQUEST['wpsg_action']))
+			{
+			
+				if ($this->hasModulFunction($_REQUEST['wpsg_mod'], $_REQUEST['wpsg_action'].'Redirect'))
+				{
+				
+					$this->callMod($_REQUEST['wpsg_mod'], $_REQUEST['wpsg_action'].'Redirect'); return;
+				
+				}
 				
 			}
@@ -2509,6 +2545,5 @@
 					
 			}
-				
-			
+				 
 			if (wpsg_isSizedString($mail_html))
 			{
@@ -3123,4 +3158,11 @@
 			}
 			
+			if ($this->hasFrontendError() || $this->hasFrontendMessage() && !$this->bMessageOut)
+			{
+								
+				echo $this->render(WPSG_PATH_VIEW.'warenkorb/messageDialog.phtml');
+												
+			}
+			
 			$this->callMods('wp_foot');
 			
@@ -3144,4 +3186,6 @@
 		public function subMwSt(&$arBasket, $value)
 		{
+			
+			if (wpsg_tf($value) <= 0) return 0;
 					
 			// Anteilig auf die SÃ€tze verteilen
@@ -3618,14 +3662,15 @@
 			if (!wpsg_isSizedArray($this->view['basket'])) $this->view['basket'] = $this->basket->toArray();
 			
-			if (wpsg_isSizedArray($this->view['basket']['produkte']))
-			{
-				
-				$arSystemShippingAllowed = array_keys($this->arShipping);
-				
-				$bWillCollect = true;
-				
-				//wpsg_debug("Im System vorhandene Versandarten:".print_r($arSystemShippingAllowed, 1));
-				 
-				$i_merge = 0;
+			if (wpsg_isSizedArray($this->view['basket']['produkte']) && !$this->bShippingMerged)
+			{
+				
+				$arSystemShippingAllowed = array_keys($this->arShipping);				
+				$arProductShippingAllowd = $arSystemShippingAllowed;
+				
+				$bDontMerge130 = wpsg_isSizedInt($this->get_option('wpsg_mod_willcollect_dontMerge'));
+				$bMerge130 = false;
+				$bMoreThen130Allowed = true;
+				
+				// Schauen welche Versandarten ÃŒbrig bleiben
 				foreach ($this->view['basket']['produkte'] as $basket_product)
 				{
@@ -3636,92 +3681,122 @@
 					{
 						
-						$arProductShippingAllowed = $oProduct->getAllowedShipping();
-
-						if (array_search('130', $arProductShippingAllowed) !== false) $bWillCollect = $bWillCollect && true;
-						else $bWillCollect = false;
-						
-						//wpsg_debug('Produkt '.$basket_product['name'].' erlaubte Versandarten:'.print_r($arProductShippingAllowed, 1));
-						//wpsg_debug('System '.print_r($arSystemShippingAllowed, 1));
-						
-						// ZusammenfÃŒgen
-						if ($i_merge === 0)
+						$arSingleProductShippingAllowed = $oProduct->getAllowedShipping();
+						$arProductShippingAllowd = array_intersect($arProductShippingAllowd, $arSingleProductShippingAllowed);
+									
+						if (sizeof($arSingleProductShippingAllowed) === 1 && in_array('130', $arSingleProductShippingAllowed)) $bMoreThen130Allowed = false;
+						else $bMoreThen130Allowed = $bMoreThen130Allowed && true;
+																		
+					}
+					else $bMoreThen130Allowed = true;
+					
+				}
+				  
+				if ($bMoreThen130Allowed === true && (!wpsg_isSizedArray($arProductShippingAllowd) || (sizeof($arProductShippingAllowd) == 1 && in_array('130', $arProductShippingAllowd))))
+				{
+					
+					// Es ist keine Versandart ÃŒbrig geblieben oder nur Selbstabholung
+					// SofortÃŒberweisung soll zusÃ€tzlich drin bleiben die anderen aber kombiniert werden
+					// SofortÃŒberweisung rausnehmen
+					$arSystemShippingAllowedMerged = $arSystemShippingAllowed;
+					
+					if (in_array('130', $arSystemShippingAllowed) && $bDontMerge130) unset($arSystemShippingAllowedMerged[array_search('130', $arSystemShippingAllowedMerged)]);
+					
+					foreach ($this->view['basket']['produkte'] as $basket_product)
+					{
+						
+						$oProduct = $this->cache->loadProductObject($this->getProduktID($basket_product['id']));
+						
+						if ($oProduct->hasLimitedShipping())
 						{
 						
-							$arSystemShippingAllowed = array_intersect($arSystemShippingAllowed, $arProductShippingAllowed);
-							
-						}
-						else 
-						{
-						
-							$arSystemShippingAllowed = $this->mergeShipping($arSystemShippingAllowed, $arProductShippingAllowed);
-							
-						}
-						
-						$i_merge ++;
-						
-					}
-					
-				}
-								
-				if (wpsg_isSizedArray($arSystemShippingAllowed) && !$this->shipping_alreadymerged)
-				{
-					
-					$this->shipping_alreadymerged = true;
-					
-					$arShippingNew = array();
-					
-					if ($this->hasMod('wpsg_mod_willcollect') && wpsg_isSizedInt($this->get_option('wpsg_mod_willcollect_aktiv')) && $bWillCollect === true && array_key_exists('130', $this->arShipping))
-					{
-						
-						$arShippingNew['130'] = $this->arShipping['130'];
-						
-					}
-
-					foreach ($arSystemShippingAllowed as $shipping)
-					{
-						
-						if (is_array($shipping))
-						{
-							
-							asort($shipping, SORT_STRING);
-							
-							$subKey = implode('-', $shipping);
-														
-							$arShippingNew[$subKey] = array(
-								'id' => $subKey,
-								'sub' => array(),
-								'price' => 0
-							);
-							
-							foreach ($shipping as $subShipping)
+							$arSingleProductShippingAllowed = $oProduct->getAllowedShipping();
+							if (in_array('130', $arSingleProductShippingAllowed) && $bDontMerge130)
 							{
 								
-								$sub = $this->arShipping[$subShipping];
+								unset($arSingleProductShippingAllowed[array_search('130', $arSingleProductShippingAllowed)]);
+								if (wpsg_isSizedArray($arSingleProductShippingAllowed) > 0) $arSystemShippingAllowedMerged = $this->mergeShipping($arSystemShippingAllowedMerged, $arSingleProductShippingAllowed);
+								else
+								{
+									
+									//$arSystemShippingAllowedMerged = array();
+									$bMerge130 = true;
+									
+								}
+								 
+							}
+							else
+							{
 								
-								$arShippingNew[$subKey]['name'] = implode(' + ', wpsg_trim(array_merge(array($sub['name']), (array)explode(',', $arShippingNew[$subKey]['name']))));
-								$arShippingNew[$subKey]['hint'] = implode('<br /><br />', wpsg_trim(array_merge(array($sub['hint']), (array)explode(',', $arShippingNew[$subKey]['hint']))));
-								
-								if (isset($arShippingNew[$subKey]['price'])) $arShippingNew[$subKey]['price'] = $arShippingNew[$subKey]['price'] + $sub['price'];
-								else if (isset($sub['price'])) $arShippingNew[$subKey]['price'] = $sub['price'];
-								
-								$arShippingNew[$subKey]['sub'][$subShipping] = $sub;
+								$arSystemShippingAllowedMerged = $this->mergeShipping($arSystemShippingAllowedMerged, $arSingleProductShippingAllowed);
 								
 							}
+								
+						}
+						
+					}
+					 
+				}
+				else 
+				{
+					
+					$arSystemShippingAllowedMerged = $arProductShippingAllowd;
+					
+				}
+				
+				// Selbstabholung wieder mit rein				
+				if ($bDontMerge130 && in_array('130', $arProductShippingAllowd) && !in_array('130', $arSystemShippingAllowedMerged)) $arSystemShippingAllowedMerged[] = '130';
+			
+				if ($bMerge130 && wpsg_isSizedArray($arSystemShippingAllowedMerged[0]) > 0 && !in_array('130', $arSystemShippingAllowedMerged))
+				{
+					
+					$arSystemShippingAllowedMerged[0][] = '130';
+					
+				}
+			
+				//$arSystemShippingAllowedMerged = wpsg_trim($arSystemShippingAllowedMerged);			
+			
+				foreach ($arSystemShippingAllowedMerged as $shipping)
+				{
+				
+					if (is_array($shipping))
+					{
 							
+						asort($shipping, SORT_STRING);
+							
+						$subKey = implode('-', $shipping);
+				
+						$arShippingNew[$subKey] = array(
+							'id' => $subKey,
+							'sub' => array(),
+							'price' => 0
+						);
+							
+						foreach ($shipping as $subShipping)
+						{
+				
+							$sub = $this->arShipping[$subShipping];
+				
+							$arShippingNew[$subKey]['name'] = implode(' + ', wpsg_trim(array_merge(array($sub['name']), (array)explode(',', $arShippingNew[$subKey]['name']))));
+							$arShippingNew[$subKey]['hint'] = implode('<br /><br />', wpsg_trim(array_merge(array($sub['hint']), (array)explode(',', $arShippingNew[$subKey]['hint']))));
+				
+							if (isset($arShippingNew[$subKey]['price'])) $arShippingNew[$subKey]['price'] = $arShippingNew[$subKey]['price'] + $sub['price'];
+							else if (isset($sub['price'])) $arShippingNew[$subKey]['price'] = $sub['price'];
+				
+							$arShippingNew[$subKey]['sub'][$subShipping] = $sub;
+				
 						}
-						else
-						{
 							
-							$arShippingNew[$shipping] = $this->arShipping[$shipping];
+					}
+					else
+					{
 							
-						}
-																		
+						$arShippingNew[$shipping] = $this->arShipping[$shipping];
+							
 					}
-					
-					$this->arShipping = $arShippingNew;
-
-					//wpsg_debug("Zur verfÃŒgung stehende Versandarten: ".print_r($arShippingNew, 1));
-					
-				}
+				
+				}
+					
+				$this->arShipping = $arShippingNew;
+				$this->bShippingMerged = true;
 				
 			}
@@ -3806,4 +3881,7 @@
 		{
 			
+			// Kleinunternehmer sehen immer im Frontend NETTO ab 17.02.2016 egal was bei Frontend/Brutto eingestellt ist
+			if ($this->get_option('wpsg_kleinunternehmer') == '1') return WPSG_NETTO;
+			
 			if (isset($_SESSION['wpsg']['customertype']) && $_SESSION['wpsg']['customertype'] == 0)
 			{
@@ -3840,5 +3918,5 @@
 			
 		} // public function getFrontendTaxview()
-		
+			
 	} // class ShopController extends SystemController
 	
Index: /controller/wpsg_SystemController.class.php
===================================================================
--- /controller/wpsg_SystemController.class.php	(revision 5371)
+++ /controller/wpsg_SystemController.class.php	(revision 5382)
@@ -304,4 +304,8 @@
 		} // public function addFrontendError($error)
 		
+		public function hasFrontendMessage() { return wpsg_isSizedArray($_SESSION['wpsg']['frontendMessage']); }
+		
+		public function hasFrontendError() { return wpsg_isSizedArray($_SESSION['wpsg']['frontendError']); }
+		
 		/**
 		 * Gibt die Fehler und Hinweise im Frontend aus
@@ -357,5 +361,5 @@
 		public function writeBackendMessage()
 		{
-return;
+
 			$this->bMessageOut = true;
 			
@@ -393,5 +397,5 @@
 			//if (!isset($_SESSION['wpsg']['backendMessage']) && !isset($_SESSION['wpsg']['backendError'])) return $strOut;
 			
-			if (is_array($_SESSION['wpsg']['backendMessage']) && sizeof($_SESSION['wpsg']['backendMessage']) > 0)
+			if (wpsg_isSizedArray($_SESSION['wpsg']['backendMessage']))
 			{
 			
@@ -453,5 +457,5 @@
 				{
 				
-					$strOut = '<div class="msg_wrap"><a href="http://shop.maennchen1.de/category/wpshopgermany/" target="_blank"><img src="'.$banner.'" /></a><br />'.$strOut.'</div>';
+					$strOut = '<div class="msg_wrap"><a href="http://shop.maennchen1.de/category/'.WPSG_FOLDERNAME.'/" target="_blank"><img src="'.$banner.'" /></a><br />'.$strOut.'</div>';
 					
 				}
@@ -533,5 +537,5 @@
 				
 				// Datei existiert im alten UserView
-				$url = WPSG_URL_CONTENT.'plugins/wpshopgermany/user_views/'.$path;
+				$url = WPSG_URL_CONTENT.'plugins/'.WPSG_FOLDERNAME.'/user_views/'.$path;
 				
 			}
@@ -539,5 +543,5 @@
 			{
 				
-				$url = WPSG_URL_CONTENT.'plugins/wpshopgermany/views/'.$path;
+				$url = WPSG_URL_CONTENT.'plugins/'.WPSG_FOLDERNAME.'/views/'.$path;
 				
 			}
Index: /lib/filter_functions.inc.php
===================================================================
--- /lib/filter_functions.inc.php	(revision 5371)
+++ /lib/filter_functions.inc.php	(revision 5382)
@@ -46,5 +46,5 @@
 			{
 			
-				echo '<tr class="plugin-update-trr '.((is_plugin_active('wpshopgermany/wpshopgermany.php'))?'active':'').'" id="wpsg-licence"><td colspan="4">';			
+				echo '<tr class="plugin-update-trr '.((is_plugin_active(WPSG_FOLDERNAME.'/wpshopgermany.php'))?'active':'').'" id="wpsg-licence"><td colspan="4">';			
 				
 				echo $GLOBALS['wpsg_sc']->writeBackendMessage();
@@ -104,5 +104,5 @@
 			{
 				
-				echo '<tr class="plugin-update-trr '.((is_plugin_active('wpshopgermany/wpshopgermany.php'))?'active':'').'" id="wpsg-licence"><td colspan="4">';
+				echo '<tr class="plugin-update-trr '.((is_plugin_active(WPSG_FOLDERNAME.'/wpshopgermany.php'))?'active':'').'" id="wpsg-licence"><td colspan="4">';
 				echo wpsg_translate(
 					__('<span style="color:red; font-weight:bold;">wpShopGermany Vollversion erwerben und weitere Funktionen freischalten.</span> [ <a target="_blank" href="#1#">Vollversion kaufen</a> ] [ <a target="_blank" href="#2#">Weitere Infos</a> ]', 'wpsg'),
@@ -197,5 +197,5 @@
 				'<p>wpShopGermany benÃ¶tigt mindestens PHP 5.4.</p>'.
 				'<ul>'.
-				'<li><a href="http://wpshopgermany.maennchen1.de/wpshopgermany/about/systemanforderungen/">Systemvoraussetzungen</a></li>'.
+				'<li><a href="http://wpshopgermany.maennchen1.de/'.WPSG_FOLDERNAME.'/about/systemanforderungen/">Systemvoraussetzungen</a></li>'.
 				'<li><a href="http://forum.maennchen1.de">Kostenloser Support</a></li>'.				
 				'</ul>',
@@ -394,4 +394,5 @@
 		wp_enqueue_style('wp-jquery-ui-dialog');		
 		wp_enqueue_style('wpsg-tooltipstyle', $GLOBALS['wpsg_sc']->getRessourceURL('js/jquery-cluetip-master/jquery.cluetip.css'));
+		wp_enqueue_style('wpsg-adminstyle', $GLOBALS['wpsg_sc']->getRessourceURL('css/admin.css'));
 		wp_enqueue_style('wpsg-tooltipadminstyle', $GLOBALS['wpsg_sc']->getRessourceURL('css/tooltip.css'));
  		
@@ -464,5 +465,5 @@
 		global $wp_filesystem;
 							
-		if ($_REQUEST['plugin'] != 'wpshopgermany/wpshopgermany.php') return;
+		if ($_REQUEST['plugin'] != WPSG_FOLDERNAME.'/wpshopgermany.php') return;
 		
 		if (!isset($_REQUEST['_ajax_nonce'])) echo __('Kopiere Shop aus dem Pluginverzeichnis ...', 'wpsg').'<br />';
@@ -537,5 +538,5 @@
 		global $wp_filesystem;
 		
-		if ($_REQUEST['plugin'] != 'wpshopgermany/wpshopgermany.php') return;
+		if ($_REQUEST['plugin'] != WPSG_FOLDERNAME.'/wpshopgermany.php') return;
 		
 		if ($GLOBALS['wpsg_sc']->get_option('wpsg_debugURL') === '1' && $GLOBALS['wpsg_sc']->hasMod('wpsg_mod_core'))
Index: /lib/helper_functions.inc.php
===================================================================
--- /lib/helper_functions.inc.php	(revision 5371)
+++ /lib/helper_functions.inc.php	(revision 5382)
@@ -583,4 +583,26 @@
 	} // function wpsg_drawForm_Checkbox($field_name, $field_label, $conf = array())
 
+	function wpsg_drawForm_TextStart() 
+	{
+		
+		ob_start();
+		
+	} // function wpsg_drawForm_TextStart()
+	
+	function wpsg_drawForm_TextEnd($field_label)
+	{
+	
+		$TC = new wpsg_ShopController();
+		
+		$TC->view['field_label'] = $field_label;
+		$TC->view['field_value'] = ob_get_contents();
+		$TC->view['field_config'] = array();
+		
+		ob_end_clean();
+		
+		return $TC->render(WPSG_PATH_VIEW.'admin/form/text.phtml', false);
+	
+	} // function wpsg_drawForm_TextEnd($field_label)
+	
 	function wpsg_drawForm_Text($field_label, $field_value, $conf = array())
 	{
@@ -588,7 +610,5 @@
 		$TC = new wpsg_ShopController();
 		
-		$TC->view['field_name'] = $field_name;
 		$TC->view['field_label'] = $field_label;
-		$TC->view['field_id'] = wpsg_drawForm_getID($field_name);
 		$TC->view['field_value'] = $field_value;
 		$TC->view['field_config'] = $conf;
Index: /lib/update.php
===================================================================
--- /lib/update.php	(revision 5371)
+++ /lib/update.php	(revision 5382)
@@ -23,4 +23,5 @@
 			{
 				
+				$wpsg_reqpage = (($pages_show['wpsg_reqpage'] == '1')?'1':'0');
 				$wpsg_agbpage = (($pages_show['wpsg_agbpage'] == '1')?'1':'0');
 			  	$wpsg_wrpage = (($pages_show['wpsg_wrpage'] == '1')?'1':'0');
@@ -36,4 +37,5 @@
 			  		{
 			  	 
+			  			$widget[$k]['wpsg_reqpage'] = $wpsg_reqpage;
 				  		$widget[$k]['wpsg_agbpage'] = $wpsg_agbpage;
 				  		$widget[$k]['wpsg_wrpage'] = $wpsg_wrpage;
Index: /lib/wpsg_basket.class.php
===================================================================
--- /lib/wpsg_basket.class.php	(revision 5371)
+++ /lib/wpsg_basket.class.php	(revision 5382)
@@ -147,4 +147,5 @@
 						}
 						 	
+						$GLOBALS['wpsg_lastInsertIndex'] = $p_key;
 						$_SESSION['wpsg']['basket'][$p_key]['menge'] += intval($menge);
 						
@@ -186,4 +187,6 @@
 			//$_SESSION['wpsg']['basket'][] = wpsg_xss($ses_data);
 			array_push($_SESSION['wpsg']['basket'], wpsg_xss($ses_data));
+			end($_SESSION['wpsg']['basket']);
+			$GLOBALS['wpsg_lastInsertIndex'] = key($_SESSION['wpsg']['basket']);
 			
 			return true;
@@ -452,5 +455,5 @@
 		public function sendOrderSaveMails($order_id, $arBasket, $bCustomerMail = true, $bAdminMail = true, $bDebug = false)
 		{
-						
+			
 			$oOrder = wpsg_order::getInstance($order_id);
 			
@@ -558,328 +561,360 @@
 		public function save($finish_order = true)
 		{
-							
-			// Berechnen
-			$arBasket = $this->toArray();
-		 
-			// Keien Produkte nix speichern 
-			// Sonst wurden schon beim Betreten des leeren Warenkorb (Bots) leere Bestellungen erzeugt 
-			if (!wpsg_isSizedArray($arBasket['produkte'])) return;
-			
-			// Eintrag in Kundentabelle
-			$data = array(
-				'title' 	=> wpsg_q($this->arCheckout['title']),
-				'name' 		=> wpsg_q($this->arCheckout['name']),
-				'vname' 	=> wpsg_q($this->arCheckout['vname']),
-				'email' 	=> wpsg_q($this->arCheckout['email']),
-				'firma' 	=> wpsg_q($this->arCheckout['firma']),
-				'fax' 		=> wpsg_q($this->arCheckout['fax']),
-				'strasse' 	=> wpsg_q($this->arCheckout['strasse']),
-				'plz' 		=> wpsg_q($this->arCheckout['plz']),
-				'ort' 		=> wpsg_q($this->arCheckout['ort']),
-				'land' 		=> wpsg_q($this->arCheckout['land']),
-				'tel' 		=> wpsg_q($this->arCheckout['tel']),
-				'geb' 		=> wpsg_q(wpsg_toDate($this->arCheckout['geb'])),
-				'ustidnr' 	=> wpsg_q($this->arCheckout['ustidnr'])
-			);	
-						
-			$this->shop->callMods('basket_save_kunde', array(&$data, &$this->arCheckout));
-			
-			$saved_order_db = array();
-			
-			if (wpsg_isSizedInt($_SESSION['wpsg']['order_id']))
-			{
-							
-				$saved_order_db = $this->db->fetchRow("SELECT * FROM `".WPSG_TBL_ORDER."` WHERE `id` = '".wpsg_q($_SESSION['wpsg']['order_id'])."' ");
-				
-				if ($saved_order_db['id'] != $_SESSION['wpsg']['order_id'])
-				{
-					
-					// Wenn die Bestellung aus der Session nicht in der Datenbank existiert lege ich sie neu an
-					unset($_SESSION['wpsg']['order_id']); 
+			
+			try
+			{
+				
+				// Berechnen
+				$arBasket = $this->toArray();
+			 
+				// Keien Produkte nix speichern 
+				// Sonst wurden schon beim Betreten des leeren Warenkorb (Bots) leere Bestellungen erzeugt 
+				if (!wpsg_isSizedArray($arBasket['produkte'])) return;
+				
+				// Eintrag in Kundentabelle
+				$data = array(
+					'title' 	=> wpsg_q($this->arCheckout['title']),
+					'name' 		=> wpsg_q($this->arCheckout['name']),
+					'vname' 	=> wpsg_q($this->arCheckout['vname']),
+					'email' 	=> wpsg_q($this->arCheckout['email']),
+					'firma' 	=> wpsg_q($this->arCheckout['firma']),
+					'fax' 		=> wpsg_q($this->arCheckout['fax']),
+					'strasse' 	=> wpsg_q($this->arCheckout['strasse']),
+					'plz' 		=> wpsg_q($this->arCheckout['plz']),
+					'ort' 		=> wpsg_q($this->arCheckout['ort']),
+					'land' 		=> wpsg_q($this->arCheckout['land']),
+					'tel' 		=> wpsg_q($this->arCheckout['tel']),
+					'geb' 		=> wpsg_q(wpsg_toDate($this->arCheckout['geb'])),
+					'ustidnr' 	=> wpsg_q($this->arCheckout['ustidnr'])
+				);	
+							
+				$this->shop->callMods('basket_save_kunde', array(&$data, &$this->arCheckout));
+				
+				$saved_order_db = array();
+				
+				if (wpsg_isSizedInt($_SESSION['wpsg']['order_id']))
+				{
+								
+					$saved_order_db = $this->db->fetchRow("SELECT * FROM `".WPSG_TBL_ORDER."` WHERE `id` = '".wpsg_q($_SESSION['wpsg']['order_id'])."' ");
+					
+					if ($saved_order_db['id'] != $_SESSION['wpsg']['order_id'])
+					{
+						
+						// Wenn die Bestellung aus der Session nicht in der Datenbank existiert lege ich sie neu an
+						unset($_SESSION['wpsg']['order_id']); 
+						
+					}
+					else
+					{
+					
+						$k_id = $saved_order_db['k_id'];
+						
+					}
+					
+				}
+				
+				// Sollte die ID des eingeloggten Kunden nicht mit der ID in der Bestellung passen
+				if (wpsg_isSizedInt($_SESSION['wpsg']['checkout']['id']))
+				{
+				
+					if (wpsg_isSizedInt($k_id) && $k_id != $_SESSION['wpsg']['checkout']['id'])
+					{
+							
+						$k_id = $_SESSION['wpsg']['checkout']['id'];
+				
+					}
+				
+				}			
+				
+				$data['custom'] = array();
+				if (isset($this->arCheckout['custom']) && wpsg_isSizedArray($this->arCheckout)) $data['custom'] = $this->arCheckout['custom'];
+						
+				if ($k_id > 0)
+				{
+					
+					// Kunde existiert bereits, hier muss aufgepasst werden dass nur abgefragte Kundenvariablen ersetzt werden
+					$kunde_data = $this->shop->cache->loadKunden($k_id);					
+					$custom_old = @unserialize($kunde_data['custom']);
+					
+					if (wpsg_isSizedArray($custom_old))
+					{
+						
+						$data['custom'] = wpsg_array_merge($custom_old, (array)$this->arCheckout['custom']);
+												
+					}
+					
+				}
+				 
+				$data['custom'] = serialize($data['custom']);
+				
+				if ($k_id > 0)
+				{
+					
+					$this->db->UpdateQuery(WPSG_TBL_KU, $data, "`id` = '".wpsg_q($k_id)."'");
+					$knr = $this->db->fetchOne("SELECT `knr` FROM `".WPSG_TBL_KU."` WHERE `id` = '".wpsg_q($k_id)."'");
+					
+					$this->shop->callMods('customer_updatePwd', array(&$k_id, &$this->arCheckout['password']));
+					$this->shop->callMods('customer_updated', array(&$k_id));
 					
 				}
 				else
 				{
-				
-					$k_id = $saved_order_db['k_id'];
-					
-				}
-				
-			}
-			
-			// Sollte die ID des eingeloggten Kunden nicht mit der ID in der Bestellung passen
-			if (wpsg_isSizedInt($_SESSION['wpsg']['checkout']['id']))
-			{
-			
-				if (wpsg_isSizedInt($k_id) && $k_id != $_SESSION['wpsg']['checkout']['id'])
-				{
-						
-					$k_id = $_SESSION['wpsg']['checkout']['id'];
-			
-				}
-			
-			}			
-			
-			$data['custom'] = array();
-			if (isset($this->arCheckout['custom']) && wpsg_isSizedArray($this->arCheckout)) $data['custom'] = $this->arCheckout['custom'];
-					
-			if ($k_id > 0)
-			{
-				
-				// Kunde existiert bereits, hier muss aufgepasst werden dass nur abgefragte Kundenvariablen ersetzt werden
-				$kunde_data = $this->shop->cache->loadKunden($k_id);					
-				$custom_old = @unserialize($kunde_data['custom']);
-				
-				if (wpsg_isSizedArray($custom_old))
-				{
-					
-					$data['custom'] = wpsg_array_merge($custom_old, (array)$this->arCheckout['custom']);
-											
-				}
-				
-			}
-			 
-			$data['custom'] = serialize($data['custom']);
-			
-			if ($k_id > 0)
-			{
-				
-				$this->db->UpdateQuery(WPSG_TBL_KU, $data, "`id` = '".wpsg_q($k_id)."'");
-				$knr = $this->db->fetchOne("SELECT `knr` FROM `".WPSG_TBL_KU."` WHERE `id` = '".wpsg_q($k_id)."'");
-				
-				$this->shop->callMods('customer_updatePwd', array(&$k_id, &$this->arCheckout['password']));
-				$this->shop->callMods('customer_updated', array(&$k_id));
-				
-			}
-			else
-			{
-				
-				if ($this->shop->hasMod('wpsg_mod_customergroup'))
-				{
-				
-					if (wpsg_isSizedInt($this->shop->get_option('wpsg_page_mod_kundenverwaltung_group_checkout'))) $data['group_id'] = $this->shop->get_option('wpsg_page_mod_kundenverwaltung_group_checkout');
-					
-				}
-
-				$k_id = $this->db->ImportQuery(WPSG_TBL_KU, $data);
-				$knr = $this->shop->buildKNR($k_id);
-				
-				$this->db->UpdateQuery(WPSG_TBL_KU, array(
-					'knr' => wpsg_q($knr)
-				), "`id` = '".wpsg_q($k_id)."'");
-			 
-				$this->shop->callMods('customer_created', array(&$k_id, &$this->arCheckout['password']));				
-				
-			}
-			
-			$arBasket['checkout']['k_id'] = $k_id;
-			$arBasket['checkout']['knr'] = $knr;
-						
-			// Der Kunde ist ab 14.08.2015 nicht mehr angemeldet
-			//$_SESSION['wpsg']['checkout']['id'] = wpsg_xss($k_id);
-			 
-			// Produkte letztmalig ÃŒberprÃŒfen			
-			foreach ($arBasket['produkte'] as $p_id => &$p)
-			{
-			
-				if ($this->shop->hasMod('wpsg_mod_stock'))
-				{
-			
-					if (!$this->shop->callMod('wpsg_mod_stock', 'checkBestand', array($p['id'], $p['menge'])) && $this->shop->get_option('wpsg_mod_stock_allow') == '1')
-					{
-							
-						$p['menge'] = $this->shop->callMod('wpsg_mod_stock', 'getBestand', array($p['id']));
-			
-					}
-						
-				}
-				
-			}
+					
+					if ($this->shop->hasMod('wpsg_mod_customergroup'))
+					{
+					
+						if (wpsg_isSizedInt($this->shop->get_option('wpsg_page_mod_kundenverwaltung_group_checkout'))) $data['group_id'] = $this->shop->get_option('wpsg_page_mod_kundenverwaltung_group_checkout');
+						
+					}
+	
+					$k_id = $this->db->ImportQuery(WPSG_TBL_KU, $data);
+					$knr = $this->shop->buildKNR($k_id);
+					
+					$this->db->UpdateQuery(WPSG_TBL_KU, array(
+						'knr' => wpsg_q($knr)
+					), "`id` = '".wpsg_q($k_id)."'");
 				 
-			$data = array(
-				'cdate' 			=> 'NOW()',
-				'k_id' 				=> $k_id,
-				'ip' 				=> wpsg_q($_SERVER['REMOTE_ADDR']),
-				'useragent' 		=> wpsg_q($_SERVER['HTTP_USER_AGENT']),
-				'comment' 			=> wpsg_q($this->arCheckout['comment']),
-				'price_gesamt' 		=> wpsg_tf(round($arBasket['sum']['preis_gesamt_brutto'], 2)),
-				'price_gesamt_netto' 		=> wpsg_tf(round($arBasket['sum']['preis_gesamt_netto'], 2)),
-				'price_gesamt_brutto' 		=> wpsg_tf(round($arBasket['sum']['preis_gesamt_brutto'], 2)),
-				'price_shipping' 	=> wpsg_tf($arBasket['sum']['preis_shipping']), // Sollte mal entfernt werden, wird aber an 1000 Stellen verwendet
-				'price_shipping_netto' => wpsg_tf($arBasket['sum']['preis_shipping_netto']),
-				'price_shipping_brutto'	=> wpsg_tf($arBasket['sum']['preis_shipping_brutto']),
-				'price_payment' 	=> wpsg_tf($arBasket['sum']['preis_payment']), // Sollte mal entfernt wedren, wird aber an 1000 Stellen verwendet
-				'price_payment_netto' 	=> wpsg_tf($arBasket['sum']['preis_payment_netto']),
-				'price_payment_brutto' 	=> wpsg_tf($arBasket['sum']['preis_payment_brutto']),
-				'price_rabatt' 		=> wpsg_tf($arBasket['sum']['preis_rabatt']),				
-				'mwst_payment' 		=> wpsg_tf($arBasket['payment']['preis_payment_brutto'] - $arBasket['payment']['preis_payment_netto']),
-				'mwst_shipping' 	=> wpsg_tf($arBasket['shipping']['preis_shipping_brutto'] - $arBasket['shipping']['preis_shipping_netto']),
-				'type_shipping' 	=> wpsg_q($this->arCheckout['shipping']),
-				'type_payment' 		=> wpsg_q($this->arCheckout['payment']),
-				'custom_data' 		=> array(
-					'basket' 				=> $arBasket,
-					'preis_backend' 		=> $this->shop->get_option('wpsg_preisangaben'),
-					'preis_frontend' 		=> $this->shop->getFrontendTaxview(),
-					'wpsg_kleinunternehmer' => $this->shop->get_option('wpsg_kleinunternehmer'),
-					'wpsg_kleinunternehmer_text' => $this->shop->get_option('wpsg_kleinunternehmer_text')
-				)				
-			);
-			
-			if ($finish_order === true) $data['status'] = wpsg_ShopController::STATUS_EINGEGANGEN; 
-			else $data['status'] = wpsg_ShopController::STATUS_UNVOLLSTAENDIG;
-			
-			// Sprache des Nutzers speichern
-			if ($this->shop->isOtherLang())
-			{
-				
-				$data['language'] = wpsg_q($this->shop->getCurrentLanguage());
-				
-			}
-			 
-			/** Gutschein speichern */
-			if ($this->gs_id !== false && $this->gs_id > 0)
-			{
-				
-				$gs_db = $this->db->fetchRow("SELECT * FROM `".WPSG_TBL_GUTSCHEIN."` WHERE `id` = '".wpsg_q($this->gs_id)."'");
-				
-				if ($gs_db['id'] != $this->gs_id) die(__('Unerwarteter Fehler bei Gutscheinzuordnung.', 'wpsg'));
-				
-				$data['gs_id'] = wpsg_q($this->gs_id);
-				$data['price_gs'] = wpsg_q($arBasket['sum']['gs']);
-								
-			}
-			
-			$this->shop->callMods('basket_save_order', array(&$data, &$this->arCheckout, &$arBasket, $finish_order));
-			
-			$data['custom_data'] = wpsg_q(serialize($data['custom_data']));
-			
-			if (wpsg_isSizedInt($_SESSION['wpsg']['order_id']))
-			{
-				
-				$this->db->UpdateQuery(WPSG_TBL_ORDER, $data, " `id` = '".wpsg_q($_SESSION['wpsg']['order_id'])."' ");
-				
-				$o_id = $_SESSION['wpsg']['order_id'];
-				$o_nr = $saved_order_db['onr'];
-				
-			}
-			else 
-			{
-				
-				$o_id = $this->db->ImportQuery(WPSG_TBL_ORDER, $data);
-				$o_nr = $this->shop->buildONR($o_id, $k_id, $knr);
-			
-				// Bestellnummer speichern
-				$this->db->UpdateQuery(WPSG_TBL_ORDER, array(
-					'onr' => wpsg_q($o_nr)
-				), "`id` = '".wpsg_q($o_id)."'");
-								
-			}
-				
-			$arBasket['checkout']['onr'] = $o_nr;			
-			$arBasket['checkout']['o_id'] = $o_id;
-			$arBasket['checkout']['datum'] = strtotime($this->db->fetchOne("SELECT `cdate` FROM `".WPSG_TBL_ORDER."` WHERE `id` = '".wpsg_q($o_id)."'")); 
-			
-			if ($finish_order === true)
-			{
-			
-				/** Gutschein der Bestellung zuordnen */
+					$this->shop->callMods('customer_created', array(&$k_id, &$this->arCheckout['password']));				
+					
+				}
+				
+				$arBasket['checkout']['k_id'] = $k_id;
+				$arBasket['checkout']['knr'] = $knr;
+							
+				// Der Kunde ist ab 14.08.2015 nicht mehr angemeldet
+				//$_SESSION['wpsg']['checkout']['id'] = wpsg_xss($k_id);
+				 
+				// Produkte letztmalig ÃŒberprÃŒfen			
+				foreach ($arBasket['produkte'] as $p_id => &$p)
+				{
+				
+					if ($this->shop->hasMod('wpsg_mod_stock'))
+					{
+				
+						if (!$this->shop->callMod('wpsg_mod_stock', 'checkBestand', array($p['id'], $p['menge'])) && $this->shop->get_option('wpsg_mod_stock_allow') == '1')
+						{
+								
+							$p['menge'] = $this->shop->callMod('wpsg_mod_stock', 'getBestand', array($p['id']));
+				
+						}
+							
+					}
+					
+				}
+					 
+				$data = array(
+					'cdate' 			=> 'NOW()',
+					'k_id' 				=> $k_id,
+					'ip' 				=> wpsg_q($_SERVER['REMOTE_ADDR']),
+					'useragent' 		=> wpsg_q($_SERVER['HTTP_USER_AGENT']),
+					'comment' 			=> wpsg_q($this->arCheckout['comment']),
+					'price_gesamt' 		=> wpsg_tf(round($arBasket['sum']['preis_gesamt_brutto'], 2)),
+					'price_gesamt_netto' 		=> wpsg_tf(round($arBasket['sum']['preis_gesamt_netto'], 2)),
+					'price_gesamt_brutto' 		=> wpsg_tf(round($arBasket['sum']['preis_gesamt_brutto'], 2)),
+					'price_shipping' 	=> wpsg_tf($arBasket['sum']['preis_shipping']), // Sollte mal entfernt werden, wird aber an 1000 Stellen verwendet
+					'price_shipping_netto' => wpsg_tf($arBasket['sum']['preis_shipping_netto']),
+					'price_shipping_brutto'	=> wpsg_tf($arBasket['sum']['preis_shipping_brutto']),
+					'price_payment' 	=> wpsg_tf($arBasket['sum']['preis_payment']), // Sollte mal entfernt wedren, wird aber an 1000 Stellen verwendet
+					'price_payment_netto' 	=> wpsg_tf($arBasket['sum']['preis_payment_netto']),
+					'price_payment_brutto' 	=> wpsg_tf($arBasket['sum']['preis_payment_brutto']),
+					'price_rabatt' 		=> wpsg_tf($arBasket['sum']['preis_rabatt']),				
+					'mwst_payment' 		=> wpsg_tf($arBasket['payment']['preis_payment_brutto'] - $arBasket['payment']['preis_payment_netto']),
+					'mwst_shipping' 	=> wpsg_tf($arBasket['shipping']['preis_shipping_brutto'] - $arBasket['shipping']['preis_shipping_netto']),
+					'type_shipping' 	=> wpsg_q($this->arCheckout['shipping']),
+					'type_payment' 		=> wpsg_q($this->arCheckout['payment']),
+					'custom_data' 		=> array(
+						'basket' 				=> $arBasket,
+						'preis_backend' 		=> $this->shop->get_option('wpsg_preisangaben'),
+						'preis_frontend' 		=> $this->shop->getFrontendTaxview(),
+						'wpsg_kleinunternehmer' => $this->shop->get_option('wpsg_kleinunternehmer'),
+						'wpsg_kleinunternehmer_text' => $this->shop->get_option('wpsg_kleinunternehmer_text')
+					)				
+				);
+				
+				if ($finish_order === true) $data['status'] = wpsg_ShopController::STATUS_EINGEGANGEN;
+				else $data['status'] = wpsg_ShopController::STATUS_UNVOLLSTAENDIG;
+				
+				// Sprache des Nutzers speichern
+				if ($this->shop->isOtherLang())
+				{
+					
+					$data['language'] = wpsg_q($this->shop->getCurrentLanguage());
+					
+				}
+				 
+				/** Gutschein speichern */
 				if ($this->gs_id !== false && $this->gs_id > 0)
 				{
-				
-					if ($gs_db['multi'] != '1')
-					{
-							
-						$this->db->UpdateQuery(WPSG_TBL_GUTSCHEIN, array('o_id' => $o_id), "`id` = '".wpsg_q($this->gs_id)."'");
-							
-					}
-				
-				}
-				
-				$this->shop->cache->clearOrderCache($o_id);
-				$this->shop->cache->clearKundenCache($k_id);
-				
-			}
-			
-			// DB bereinigen und alte zur Bestellung gespeicherte Produkte lÃ¶schen
-			$this->db->Query("DELETE FROM `".WPSG_TBL_ORDERPRODUCT."` WHERE `o_id` = '".wpsg_q($o_id)."' ");
-			 
-			// Produkte eintragen
-			foreach ($arBasket['produkte'] as $p_id => &$p)
-			{
-			 	 	 
-				// AufdrÃ¶selung der Varianten damit in der DB die korrekt Produkt ID steht
-				$produkt_id = $this->shop->getProduktID($p['id']);
-				  
-				$data = array(
-					'o_id' => wpsg_q($o_id),
-					'p_id' => wpsg_q($produkt_id),
-					'productkey' => $p['id'],
-					'product_index' => $p_id,
-					'menge' => wpsg_q($p['menge']),
-					'price' => wpsg_q($p['preis_brutto']),
-					'price_netto' => wpsg_q(wpsg_tf($p['preis_netto'])),
-					'price_brutto' => wpsg_q(wpsg_tf($p['preis_brutto'])),
-					'mwst_key' => wpsg_q($p['mwst_key']),
-					'mwst_value' => wpsg_q(wpsg_tf($p['preis_brutto'] - $p['preis_netto'])),
-					'mod_vp_varkey' => wpsg_q($p['productkey']),
-					'allowedpayments' => wpsg_q($p['allowedpayments']),
-					'allowedshipping' => wpsg_q($p['allowedshipping'])
-				);
-				
-				$this->shop->callMods('basket_save_product', array(&$data, &$p, $finish_order));
-				
-				$this->db->ImportQuery(WPSG_TBL_ORDERPRODUCT, $data);
-				
-				// Eventuelle URL Benachrichtigung bei Kauf
+					
+					$gs_db = $this->db->fetchRow("SELECT * FROM `".WPSG_TBL_GUTSCHEIN."` WHERE `id` = '".wpsg_q($this->gs_id)."'");
+					
+					if ($gs_db['id'] != $this->gs_id) die(__('Unerwarteter Fehler bei Gutscheinzuordnung.', 'wpsg'));
+					
+					$data['gs_id'] = wpsg_q($this->gs_id);
+					$data['price_gs'] = wpsg_q($arBasket['sum']['gs']);
+									
+				}
+				
+				$this->shop->callMods('basket_save_order', array(&$data, &$this->arCheckout, &$arBasket, $finish_order));
+				
+				$data['custom_data'] = wpsg_q(serialize($data['custom_data']));
+				
+				if (wpsg_isSizedInt($_SESSION['wpsg']['order_id']))
+				{
+					
+					$this->db->UpdateQuery(WPSG_TBL_ORDER, $data, " `id` = '".wpsg_q($_SESSION['wpsg']['order_id'])."' ");
+					
+					$o_id = $_SESSION['wpsg']['order_id'];
+					$o_nr = $saved_order_db['onr'];
+					
+				}
+				else 
+				{
+					
+					$o_id = $this->db->ImportQuery(WPSG_TBL_ORDER, $data);
+					$o_nr = $this->shop->buildONR($o_id, $k_id, $knr);
+				
+					// Bestellnummer speichern
+					$this->db->UpdateQuery(WPSG_TBL_ORDER, array(
+						'onr' => wpsg_q($o_nr)
+					), "`id` = '".wpsg_q($o_id)."'");
+									
+				}
+					
+				$arBasket['checkout']['onr'] = $o_nr;			
+				$arBasket['checkout']['o_id'] = $o_id;
+				$arBasket['checkout']['datum'] = strtotime($this->db->fetchOne("SELECT `cdate` FROM `".WPSG_TBL_ORDER."` WHERE `id` = '".wpsg_q($o_id)."'")); 
+				
 				if ($finish_order === true)
 				{
 				
-					$produkt_db = $this->db->fetchRow("SELECT * FROM `".WPSG_TBL_PRODUCTS."` WHERE `id` = '".wpsg_q($produkt_id)."'");
-				
-					if ($produkt_db['posturl'] != '' && $produkt_db['posturl_verkauf'] == '1')
-					{
-						
-						$this->shop->notifyURL($produkt_db['posturl'], $p['id'], $p['menge'], $o_id, 0, false, array(
-							'product_index' => $p_id
-						));
-				
-					}
-					
-				}
-				
-			}
-			
-			if ($finish_order === true)
-			{
-			
-				$this->shop->callMods('basket_save_done', array(&$o_id, &$k_id, &$this));
-				$this->shop->callMods('basket_save_done_array', array(&$o_id, &$k_id, &$arBasket));
-	
-				// Wenn CrefoPay aktiv, werden die Mails spÃ€ter versendet
-				if (!$this->shop->hasMod('wpsg_mod_crefopay')) $this->sendOrderSaveMails($o_id, $arBasket);
-				
-				// Bestellung direkt auf "Zahlung akzeptiert setzen" wenn option aktiv ist
-				if ($this->shop->get_option('wpsg_emptyorder_clear') == '1' && $arBasket['sum']['preis_gesamt_brutto'] == 0)
-				{
-					
-					$this->shop->setOrderStatus($o_id, 100, true);
-					
-				}
-				
-				// Alte BestellID muss nach AbschluÃ entfernt werden
-				unset($_SESSION['wpsg']['order_id']);
-				unset($_SESSION['wpsg']['checkout']['payment_amount']);
-				unset($_SESSION['wpsg']['checkout']['paymentId']);
-				unset($_SESSION['wpsg']['checkout']['payer_id']);
-				
-				$this->clearSession();
-				
-			}
-			else
-			{
-				
-				$_SESSION['wpsg']['order_id'] = $o_id;
-				
-			}
+					/** Gutschein der Bestellung zuordnen */
+					if ($this->gs_id !== false && $this->gs_id > 0)
+					{
+					
+						if ($gs_db['multi'] != '1')
+						{
+								
+							$this->db->UpdateQuery(WPSG_TBL_GUTSCHEIN, array('o_id' => $o_id), "`id` = '".wpsg_q($this->gs_id)."'");
+								
+						}
+					
+					}
+					
+					$this->shop->cache->clearOrderCache($o_id);
+					$this->shop->cache->clearKundenCache($k_id);
+					
+				}
+				
+				// DB bereinigen und alte zur Bestellung gespeicherte Produkte lÃ¶schen
+				$this->db->Query("DELETE FROM `".WPSG_TBL_ORDERPRODUCT."` WHERE `o_id` = '".wpsg_q($o_id)."' ");
+				
+				// Produkte eintragen
+				foreach ($arBasket['produkte'] as $p_id => $p)
+				{
+
+					// AufdrÃ¶selung der Varianten damit in der DB die korrekt Produkt ID steht
+					$produkt_id = $this->shop->getProduktID($p['id']);
+					  
+					$data = array(
+						'o_id' => wpsg_q($o_id),
+						'p_id' => wpsg_q($produkt_id),
+						'productkey' => $p['id'],
+						'product_index' => $p_id,
+						'menge' => wpsg_q($p['menge']),
+						'price' => wpsg_q($p['preis_brutto']),
+						'price_netto' => wpsg_q(wpsg_tf($p['preis_netto'])),
+						'price_brutto' => wpsg_q(wpsg_tf($p['preis_brutto'])),
+						'mwst_key' => wpsg_q($p['mwst_key']),
+						'mwst_value' => wpsg_q(wpsg_tf($p['preis_brutto'] - $p['preis_netto'])),
+						'mod_vp_varkey' => wpsg_q($p['productkey']),
+						'allowedpayments' => wpsg_q($p['allowedpayments']),
+						'allowedshipping' => wpsg_q($p['allowedshipping'])
+					);
+					
+					// Hier wird der Lagerbestand final geschrieben, sollte ein Fehler ausgelÃ¶st werden soll zum Warenkorb geleitet werden
+					if ($finish_order === true && $this->shop->hasMod('wpsg_mod_stock'))					
+					{
+						
+						$p_stock = $p;
+						$bStockError = $this->shop->callMod('wpsg_mod_stock', 'checkReduceStock', array(&$data, &$p_stock));
+						
+						if ($bStockError === false)
+						{
+							
+							$this->shop->addFrontendError(__('Lagerbestand hat sich zwischenzeitlich geÃ€ndert. Bitte Bestellung ÃŒberprÃŒfen.', 'wpsg'));
+							$this->shop->redirect($this->shop->getUrl(wpsg_ShopController::URL_BASKET));
+							
+						}
+						
+					}
+					
+					$this->shop->callMods('basket_save_product', array(&$data, &$p, $finish_order));
+					
+					$this->db->ImportQuery(WPSG_TBL_ORDERPRODUCT, $data);
+					
+					// Eventuelle URL Benachrichtigung bei Kauf
+					if ($finish_order === true)
+					{
+					
+						$produkt_db = $this->db->fetchRow("SELECT * FROM `".WPSG_TBL_PRODUCTS."` WHERE `id` = '".wpsg_q($produkt_id)."'");
+					
+						if ($produkt_db['posturl'] != '' && $produkt_db['posturl_verkauf'] == '1')
+						{
+							
+							$this->shop->notifyURL($produkt_db['posturl'], $p['id'], $p['menge'], $o_id, 0, false, array(
+								'product_index' => $p_id
+							));
+					
+						}
+						
+					}
+					
+				}
+								
+				if ($finish_order === true)
+				{
+				
+					$this->shop->callMods('basket_save_done', array(&$o_id, &$k_id, &$this));
+					$this->shop->callMods('basket_save_done_array', array(&$o_id, &$k_id, &$arBasket));
+		
+					// Wenn CrefoPay aktiv, werden die Mails spÃ€ter versendet
+					if (!$this->shop->hasMod('wpsg_mod_crefopay')) $this->sendOrderSaveMails($o_id, $arBasket);
+					
+					// Bestellung direkt auf "Zahlung akzeptiert setzen" wenn option aktiv ist
+					if ($this->shop->get_option('wpsg_emptyorder_clear') == '1' && $arBasket['sum']['preis_gesamt_brutto'] == 0)
+					{
+						
+						$this->shop->setOrderStatus($o_id, 100, true);
+						
+					}
+					
+					// Alte BestellID muss nach AbschluÃ entfernt werden
+					unset($_SESSION['wpsg']['order_id']);
+					unset($_SESSION['wpsg']['checkout']['payment_amount']);
+					unset($_SESSION['wpsg']['checkout']['paymentId']);
+					unset($_SESSION['wpsg']['checkout']['payer_id']);
+					
+					$this->clearSession();
+					
+				}
+				else
+				{
+					
+					$_SESSION['wpsg']['order_id'] = $o_id;
+					
+				}
+			
+			}
+			catch (Exception $e)
+			{
+			
+				$this->db->unlockTables();
+				
+				die($e->getMessage());
+				
+			}
+			
+			$this->db->unlockTables();
 			
 			return $o_id;
@@ -950,10 +985,7 @@
 				// Geburtsdatum
 				if (
-						$custom_config['geb'] == '0' && !wspg_isValidGeb($this->arCheckout['geb'])
-						
-						/*
-						(wspg_isValidGeb($this->arCheckout['geb']) && wpsg_isSizedString($this->arCheckout['geb'])) || 
-						$custom_config['geb'] == '0'
-						 * */
+						($custom_config['geb'] != '1' && !wspg_isValidGeb($this->arCheckout['geb'])) ||
+						(wpsg_isSizedString($this->arCheckout['geb']) && !wspg_isValidGeb($this->arCheckout['geb']))
+					
 					)
 				{
@@ -966,7 +998,10 @@
 				
 				// E-Mail Adresse
-				if ($custom_config['email'] != '1' && !wpsg_isValidEMail($this->arCheckout['email']))
-				{
-					
+				if (
+						($custom_config['email'] != '1' && !wpsg_isValidEMail($this->arCheckout['email'])) ||
+						(wpsg_isSizedString($this->arCheckout['email']) && !wpsg_isValidEMail($this->arCheckout['email']))
+					)
+				{
+									
 					$this->shop->addFrontendError(__('Bitte die Eingabe der E-Mail Adresse ÃŒberprÃŒfen!', 'wpsg'));
 					$_SESSION['wpsg']['errorFields'][] = 'email';
@@ -1133,5 +1168,5 @@
 				if (!isset($this->arCheckout['shipping']) || !array_key_exists($this->arCheckout['shipping'], $this->shop->arShipping) || $this->arCheckout['shipping'] == '')
 				{
-				
+					 
 					$this->shop->addFrontendError(__('Bitte eine gÃŒltige Versandart auswÃ€hlen.', 'wpsg'));
 					$_SESSION['wpsg']['errorFields'][] = 'shipping';
@@ -1139,5 +1174,5 @@
 					
 				}
- 
+  
 				// Zahlungsart prÃŒfen
 				if (!$this->shop->hasMod('wpsg_mod_crefopay'))
@@ -1147,7 +1182,13 @@
 					{
 					
-						$this->shop->addFrontendError(__('Bitte eine gÃŒltige Zahlungsart auswÃ€hlen.', 'wpsg'));
-						$_SESSION['wpsg']['errorFields'][] = 'payment';
-						$bError = true;
+						// Fake Zahlungsart PayPal Plus soll keinen Fehler schreiben
+						if ($this->arCheckout['payment'] != 'ppp')
+						{
+						
+							$this->shop->addFrontendError(__('Bitte eine gÃŒltige Zahlungsart auswÃ€hlen.', 'wpsg'));
+							$_SESSION['wpsg']['errorFields'][] = 'payment';
+							$bError = true;
+							
+						}
 						
 					}
@@ -1237,4 +1278,5 @@
 						{
 							
+							/*
 							if ($arBasket['noMwSt'] == '1')
 							{
@@ -1245,5 +1287,5 @@
 							else
 							{
-							
+															
 								if ($this->shop->get_option('wpsg_preisangaben') == WPSG_NETTO)
 								{
@@ -1260,4 +1302,5 @@
 								
 							}
+							*/
 							
 						}
@@ -1270,21 +1313,31 @@
 				
 			}
-
-			// MwSt. Im Frontend nicht anzeigen, weil z.B. UstIDnr angegeben wurde
-			if (wpsg_isSizedInt($this->arCheckout['shipping_land'])) $land = $this->shop->db->fetchRow("SELECT * FROM `".WPSG_TBL_LAND."` WHERE `id` = '".wpsg_q($this->arCheckout['shipping_land'])."'");				
-			else if (wpsg_isSizedInt($this->arCheckout['land'])) $land = $this->shop->db->fetchRow("SELECT * FROM `".WPSG_TBL_LAND."` WHERE `id` = '".wpsg_q($this->arCheckout['land'])."'");
-			else $land = 0;
-
+			
 			$arReturn = array();
-						
-			$arReturn['land'] = $land;
-			
-			if (wpsg_isSizedInt($this->arCheckout['shipping_land']))
-			{
-				
-				$arReturn['shipping_land'] = $this->shop->db->fetchRow("SELECT * FROM `".WPSG_TBL_LAND."` WHERE `id` = '".wpsg_q($this->arCheckout['shipping_land'])."'");
-				
-			}
-			
+
+			if (wpsg_isSizedInt($this->arCheckout['land']))
+			{
+			
+				$db_country_invoice = $this->shop->db->fetchRow("SELECT * FROM `".WPSG_TBL_LAND."` WHERE `id` = '".wpsg_q($this->arCheckout['land'])."'");
+				$arReturn['land'] = $db_country_invoice;
+				
+				if (wpsg_isSizedInt($this->arCheckout['shipping_land']))
+				{
+					
+					$db_country_shipping = $this->shop->db->fetchRow("SELECT * FROM `".WPSG_TBL_LAND."` WHERE `id` = '".wpsg_q($this->arCheckout['shipping_land'])."'");
+					$arReturn['shipping_land'] = $db_country_shipping;
+					$land = $db_country_shipping;
+					
+				}
+				else 
+				{
+					
+					$db_country_shipping = $db_country_invoice;
+					$land = $db_country_shipping;
+									
+				}
+				
+			} else $land = 0;
+						
 			if ($land['mwst'] == '1' || $this->shop->get_option('wpsg_kleinunternehmer') == '1') $noMwSt = true;
 			else if ($land['mwst'] == '2' && $this->arCheckout['ustidnr'] != '') $noMwSt = true;
@@ -1303,5 +1356,11 @@
 				'preis_shipping' => 0
 			);
-								
+					
+			// Hier sammel ich die Produktpreise
+			$arProductPrice = array(
+				WPSG_NETTO => array(),
+				WPSG_BRUTTO => array()
+			);
+			
 			foreach ($this->arProdukte as $product_index => &$b)
 			{
@@ -1310,132 +1369,154 @@
 				
 				wpsg_addSet($arReturn['menge'], $b['menge']);
-
+				
 				$country = $this->shop->getDefaultCountry();
 				
 				if (is_numeric($produkt_id))
 				{
-										
+				
 					// Preis wird berechnet daher entfernen
 					unset($b['preis']);
 					unset($b['preis_netto']);
 					unset($b['preis_brutto']);
-					
+						
 					// in $b sind eventuell auch Moduldaten drin (Produktvariablen)
 					$b = $this->shop->loadProduktArray($produkt_id, $b);
-					
+						
 					if (wpsg_isSizedInt($b['euleistungsortregel']))
 					{
-						
+				
 						$this->shop->showEULayer = true;
 						$country = $this->shop->getFrontendCountry();
-						
-					}
-					
+				
+					}
+						
 					$b['productkey'] = $b['id'];
-  
-				}
-				
-				$this->shop->callMods('basket_toArray', array(&$b, $backend, $noMwSt));
-		 				 
+									
+				}
+								
+				$this->shop->callMods('basket_toArray', array(&$b, $backend, $noMwSt));				
 				$this->checkMwSt($b['mwst_key'], $country, $arReturn);
-								
+				 	
+				if ($noMwSt)
+				{
+					
+					$price_product_netto = $b['preis_netto'];
+					$price_product_brutto = $b['preis_netto'];
+										
+				}
+				else
+				{
+					
+					$price_product_netto = $b['preis_netto'];
+					$price_product_brutto = $b['preis_brutto'];
+					
+				}
+				 			
 				// Hier wird entschieden ob der gerundete oder der genaue Wert zum Gesamtpreis hinzuaddiert wird
-				if ($this->shop->addRoundedValues === true) 
-				{
-					
-					$price_sum_brutto = round($b['preis_brutto'], 2);
-					$price_sum_netto = round($b['preis_netto'], 2);
-					
+				if ($this->shop->addRoundedValues === true)
+				{
+				 
+					$b['preis_netto'] = round($price_product_netto, 2);
+					$b['preis_brutto'] = round($price_product_brutto, 2);
+					  									
 				}
 				else
 				{
-					
-					$price_sum_brutto = $b['preis_brutto'];
-					$price_sum_netto = $b['preis_netto'];
-					
-				}
-				
-				if ($noMwSt) $b['mwst_value'] = 0;
-				else $b['mwst_value'] = $arReturn['mwst'][$b['mwst_key'].'_'.$country->id]['value'];
-				
-				if (!$noMwSt) wpsg_addSet($arReturn['sum']['mwst'], (($price_sum_brutto - $price_sum_netto) * $b['menge']));
-				else $arReturn['sum']['mwst'] = 0;
-				
-				if ($noMwSt)
-				{
-				
-					$arReturn['sum']['preis_brutto'] += $price_sum_netto * $b['menge'];
-					$arReturn['sum']['preis_gesamt_brutto'] += $price_sum_netto * $b['menge'];
-										
-				}
-				else
-				{
-									
-					$arReturn['sum']['preis_brutto'] += $price_sum_brutto * $b['menge'];
-					$arReturn['sum']['preis_gesamt_brutto'] += $price_sum_brutto * $b['menge'];
-					
-				}
-									
-				$arReturn['sum']['preis_netto'] += $price_sum_netto * $b['menge'];
-				$arReturn['sum']['preis_gesamt_netto'] += $price_sum_netto * $b['menge'];
-				
-				// Preis Spalte auswÃ€hlen
-				if ($backend)
-				{
-					
-					if ($this->shop->get_option('wpsg_preisangaben') == WPSG_NETTO || $noMwSt)
-					{
-						
-						$b['preis'] = $price_sum_netto;
-						$arReturn['sum']['preis'] += $price_sum_netto * $b['menge'];
-						$arReturn['sum']['preis_gesamt'] += $price_sum_netto * $b['menge'];
-						 
-					}
-					else 
-					{
-						
-						$b['preis'] = $price_sum_brutto;
-						$arReturn['sum']['preis'] += $price_sum_brutto * $b['menge'];
-						$arReturn['sum']['preis_gesamt'] += $price_sum_brutto * $b['menge'];
-						
-					}
-					
-				}
-				else
-				{
-					
-					if ($this->shop->getFrontendTaxview() == WPSG_NETTO || $noMwSt)
-					{ 
-						
-						$b['preis'] = $price_sum_netto;
-						wpsg_addSet($arReturn['sum']['preis'], ($price_sum_netto * $b['menge']));
-						wpsg_addSet($arReturn['sum']['preis_gesamt'], ($price_sum_netto * $b['menge']));
-						
-					}
-					else 
-					{
-						
-						$b['preis'] = $price_sum_brutto;
-						wpsg_addSet($arReturn['sum']['preis'], ($price_sum_brutto * $b['menge']));						
-						wpsg_addSet($arReturn['sum']['preis_gesamt'], ($price_sum_brutto * $b['menge']));
-						
-					}
-					
-				}
-				
-				// Steueranteil
-				if (!$noMwSt)
-				{
-					
-					wpsg_addSet($arReturn['mwst'][$b['mwst_key'].'_'.$country->id]['sum'], (($price_sum_brutto - $price_sum_netto) * $b['menge']));
-					wpsg_addSet($arReturn['mwst'][$b['mwst_key'].'_'.$country->id]['base_value'], ($price_sum_brutto * $b['menge']));
-					
-				}
-
+				
+					$b['preis_netto'] = $price_product_netto;
+					$b['preis_brutto'] = $price_product_brutto;
+														
+				}
+				
+				$price_sum_netto = $b['preis_netto'] * $b['menge'];
+				$price_sum_brutto = $b['preis_brutto'] * $b['menge'];
+				
+				if ($this->shop->getFrontendTaxView() == WPSG_NETTO) $b['preis'] = round($b['preis_netto'], 2);
+				else $b['preis'] = round($b['preis_brutto'], 2);
+								
+				$arProductPrice[WPSG_NETTO][$b['mwst_key'].'_'.$country->id][] = $price_sum_netto;
+				$arProductPrice[WPSG_BRUTTO][$b['mwst_key'].'_'.$country->id][] = $price_sum_brutto;
+												
 				$b['product_index'] = $product_index;
 				$arReturn['produkte'][$product_index] = $b;
-				
+								
 			} // foreach Produkte
 			
+			// Die Basis der Preisberechnung, wenn Brutto, dann wird Netto berechnet 
+			if ($this->shop->getFrontendTaxview() == WPSG_NETTO)
+			{
+				
+				$base = WPSG_NETTO;
+				$calc = WPSG_BRUTTO;
+				
+			}
+			else 
+			{
+			
+				$base = WPSG_BRUTTO;
+				$calc = WPSG_NETTO;
+				
+			}
+			 
+			// Jetzt die jeweilige Steuer berechnen, damit die Anzeige stimmt
+			foreach ($arProductPrice[$base] as $tax_key_lang => $tax)
+			{
+				
+				$arTaxKey = explode('_', $tax_key_lang);
+				$country_id = $arTaxKey[1];
+				$country = wpsg_country::getInstance($country_id);
+				$tax_key = $arTaxKey[0];
+				
+				if ($noMwSt === true) $tax_value = 0; else $tax_value = $country->getTax($tax_key);
+				
+				$sum_tax_value = round(wpsg_calculateSteuer(array_sum($tax), $base, $tax_value), 2);
+								
+				wpsg_addSet($arReturn['sum']['mwst'], $sum_tax_value);
+				
+				if ($calc === WPSG_NETTO)
+				{
+				 
+					$sum_netto = round(wpsg_calculatePreis(array_sum($tax), WPSG_NETTO, $tax_value), 2);
+					$sum_brutto = array_sum($tax);					
+					 
+				}
+				else
+				{
+					
+					$sum_netto = array_sum($tax);
+					$sum_brutto = round(wpsg_calculatePreis(array_sum($tax), WPSG_BRUTTO, $tax_value), 2);
+						
+				}	
+				
+				wpsg_addSet($arReturn['sum']['preis_netto'], $sum_netto);
+				wpsg_addSet($arReturn['sum']['preis_gesamt_netto'], $sum_netto);
+				wpsg_addSet($arReturn['sum']['preis_brutto'], $sum_brutto);
+				wpsg_addSet($arReturn['sum']['preis_gesamt_brutto'], $sum_brutto);
+						
+				if (!$noMwSt)
+				{
+						
+					wpsg_addSet($arReturn['mwst'][$tax_key_lang]['sum'], $sum_tax_value);
+					wpsg_addSet($arReturn['mwst'][$tax_key_lang]['base_value'], $sum_brutto);
+						
+				}
+				
+			}
+			
+			if ($base === WPSG_NETTO)
+			{
+				
+				wpsg_addSet($arReturn['sum']['preis'], $arReturn['sum']['preis_netto']);
+				wpsg_addSet($arReturn['sum']['preis_gesamt'], $arReturn['sum']['preis_gesamt_netto']);
+				
+			}
+			else
+			{
+				 
+				wpsg_addSet($arReturn['sum']['preis'], $arReturn['sum']['preis_brutto']);
+				wpsg_addSet($arReturn['sum']['preis_gesamt'], $arReturn['sum']['preis_gesamt_brutto']);
+				
+			}
+												
 			// Gutschein einberechnen
 			$this->shop->callMod('wpsg_mod_gutschein', 'basket_toArray_gs', array(&$this, &$arReturn));
@@ -1448,5 +1529,5 @@
 
 			$this->shop->callMods('basket_toArray_preshippayment', array(&$this, &$arReturn));
-			
+			  
 			// Die Versandkosten fÃŒr den Warenkorb berechnen berechnen
 			// Dies darf im checkout2 nicht passieren, oder wenn der Parameter auf true
@@ -1515,5 +1596,5 @@
 					
 					// Versandarten kÃ¶nnen gruppiert sein, vorher trennen
-					if (preg_match('/(.*)\-(.*)/', $arReturn['checkout']['shipping']))
+					if (wpsg_isSizedString($arReturn['checkout']['shipping']) && preg_match('/(.*)\-(.*)/', $arReturn['checkout']['shipping']))
 					{
 						
Index: /lib/wpsg_basket_widget.class.php
===================================================================
--- /lib/wpsg_basket_widget.class.php	(revision 5371)
+++ /lib/wpsg_basket_widget.class.php	(revision 5382)
@@ -44,5 +44,6 @@
 	  	function form($instance) 
 	  	{ 
- 	
+ 			
+	  		if (isset($instance['wpsg_requestpage'])) { $wpsg_requestpage = $instance['wpsg_requestpage']; } else { $wpsg_requestpage = 0; }
  			if (isset($instance['wpsg_agbpage'])) { $wpsg_agbpage = $instance['wpsg_agbpage']; } else { $wpsg_agbpage = 0; }
  			if (isset($instance['wpsg_wrpage'])) { $wpsg_wrpage = $instance['wpsg_wrpage']; } else { $wpsg_wrpage = 0; }
@@ -57,4 +58,5 @@
 	  		<span style="font-weight:bold;"><?php echo __("Seiten unterhalb des Widgets", "wpsg"); ?>:</span><br />
 	  		
+	  		<label><input type="checkbox" value="1" <?php echo (($wpsg_requestpage == '1')?'checked="checked"':''); ?> name="<?php echo $this->get_field_name('wpsg_requestpage'); ?>" id="<?php echo $this->get_field_id('wpsg_requestpage'); ?>" />&nbsp;<?php echo __('Anfrageliste', 'wpsg'); ?><br /></label>	  		
 	  		<label><input type="checkbox" value="1" <?php echo (($wpsg_agbpage == '1')?'checked="checked"':''); ?> name="<?php echo $this->get_field_name('wpsg_agbpage'); ?>" id="<?php echo $this->get_field_id('wpsg_agbpage'); ?>" />&nbsp;<?php echo __('AGB', 'wpsg'); ?><br /></label>	  		
 	  		<label><input type="checkbox" value="1" <?php echo (($wpsg_wrpage == '1')?'checked="checked"':''); ?> name="<?php echo $this->get_field_name('wpsg_wrpage'); ?>" id="<?php echo $this->get_field_id('wpsg_wrpage'); ?>" />&nbsp;<?php echo __('Widerrufsbelehrung', 'wpsg'); ?><br /></label>
@@ -78,4 +80,5 @@
 			$instance = array();
 			
+			$instance['wpsg_requestpage'] = $new_instance['wpsg_requestpage'];
 			$instance['wpsg_agbpage'] = $new_instance['wpsg_agbpage'];
 			$instance['wpsg_wrpage'] = $new_instance['wpsg_wrpage'];
Index: /lib/wpsg_cache.class.php
===================================================================
--- /lib/wpsg_cache.class.php	(revision 5371)
+++ /lib/wpsg_cache.class.php	(revision 5382)
@@ -50,9 +50,9 @@
 				$this->_arOrder[$order_id] = $this->_db->fetchRow("
 					SELECT
-						O.*
+						*
 					FROM
-						`".WPSG_TBL_ORDER."` AS O
+						`".WPSG_TBL_ORDER."` 
 					WHERE
-						O.`id` = '".wpsg_q($order_id)."'
+						`id` = '".wpsg_q($order_id)."'
 				");
 				
@@ -136,9 +136,9 @@
 				$this->_arProducts[$product_id] = $this->_db->fetchRow("
 					SELECT
-						P.*
+						*
 					FROM
-						`".WPSG_TBL_PRODUCTS."` AS P
+						`".WPSG_TBL_PRODUCTS."` 
 					WHERE
-						P.`id` = '".wpsg_q($product_id)."'
+						`id` = '".wpsg_q($product_id)."'
 				");
 				
@@ -205,9 +205,9 @@
 				$this->_arKunden[$kunde_id] = $this->_db->fetchRow("
 					SELECT
-						K.*
+						*
 					FROM
-						`".WPSG_TBL_KU."` AS K
+						`".WPSG_TBL_KU."` 
 					WHERE
-						K.`id` = '".wpsg_q($kunde_id)."'
+						`id` = '".wpsg_q($kunde_id)."'
 				");
 				
Index: /lib/wpsg_db.class.php
===================================================================
--- /lib/wpsg_db.class.php	(revision 5371)
+++ /lib/wpsg_db.class.php	(revision 5382)
@@ -285,4 +285,14 @@
 			 			
 		} // function Query($strQuery)
+	 		
+		/**
+		 * Entsperrt alle Tabellen
+		 */
+		function unlockTables()
+		{
+			
+			$this->Query("UNLOCK TABLES");
+ 			
+ 		} // function unlockTables()
 		
 	} // class wpsg_db
Index: /lib/wpsg_fpdf.class.php
===================================================================
--- /lib/wpsg_fpdf.class.php	(revision 5371)
+++ /lib/wpsg_fpdf.class.php	(revision 5382)
@@ -3,7 +3,8 @@
 	class wpsg_fpdf extends FPDI
 	{
-		
+		 
+		var $noHeader = false;
 		var $extgstates;
-		
+		 
 		public function Text($x, $y, $text)
 		{
@@ -12,18 +13,20 @@
 			
 		}
+ 	
+		public function Cell($w, $h = 0, $text = '', $border = 0, $ln = 0, $align = '', $fill = 0, $link = '') 
+		{
 						
-		public function Cell($w, $h, $text, $border, $ln, $align, $fill = 0)
-		{
-			
-			parent::Cell($w, $h, $this->toIso($text), $border, $ln, $align, $fill);
-			
-		}
-
-		public function MultiCell($x, $y, $h, $txt, $border = 0, $align = 'L', $fill = 0, $width = 0)
-		{
-
+			return parent::Cell($w, $h, $this->toIso($text), $border, $ln, $align, $fill, $link);
+			
+		}
+ 
+		public function wpsg_MultiCell($x, $y, $h, $txt, $border = 0, $align = 'L', $fill = 0, $width = 0)
+		{
+ 
 			//	MultiCell(float w , float h , string txt [, mixed border] [, string align] [, integer fill])
 			parent::setXY($x, $y);
-			parent::MultiCell($width, $h, $this->toIso($txt), $border, $align, $fill);
+			
+			// Hier kein toISO weil intern wieder Cell aufgerufen wird
+			parent::MultiCell($width, $h, $txt, $border, $align, $fill); 
 
 			$height = $this->getY() - $y;
@@ -33,5 +36,5 @@
 		}
 		
-		public function SetTextColor($strHEXCode)
+		public function wpsg_SetTextColor($strHEXCode)
 		{
 			
@@ -54,5 +57,5 @@
 			parent::setTextColor($r, $g, $b);
 			
-		} // public function SetTextColor($strHEXCode)
+		} // public function wpsg_SetTextColor($strHEXCode)
 		
 		function Rotate($angle,$x=-1,$y=-1)
@@ -218,7 +221,13 @@
 		{
 			
+			/* Alternative:
+				$value = utf8_decode($value);
+				$value = str_replace("â¬", chr(128), $value);
+				$value = str_replace(utf8_decode("â¬"), chr(128), $value);
+			 */
+			 			
 			$value = str_replace("â¬", '&euro;', $value);
 			$value = utf8_decode($value);
-			$value = str_replace("&euro;", chr(128), $value);			
+			$value = str_replace("&euro;", chr(128), $value); 
 			
 			return $value;
Index: /model/wpsg_customer.class.php
===================================================================
--- /model/wpsg_customer.class.php	(revision 5371)
+++ /model/wpsg_customer.class.php	(revision 5382)
@@ -15,5 +15,5 @@
 			parent::load($customer_id);
 			
-			$this->data = $this->db->fetchRow("SELECT K.* FROM `".WPSG_TBL_KU."` AS K WHERE K.`id` = '".wpsg_q($customer_id)."' ");
+			$this->data = $this->db->fetchRow("SELECT * FROM `".WPSG_TBL_KU."` WHERE `id` = '".wpsg_q($customer_id)."' ");
 			
 			return true;
Index: /model/wpsg_product.class.php
===================================================================
--- /model/wpsg_product.class.php	(revision 5371)
+++ /model/wpsg_product.class.php	(revision 5382)
@@ -47,4 +47,20 @@
 		} // public function load($product_id)
 		
+		public function delete()
+		{
+						 
+			$this->db->UpdateQuery(WPSG_TBL_PRODUCTS, array(
+				'deleted' => '1'
+			), "`id` = '".wpsg_q($this->id)."'");
+				
+			$this->shop->callMods('produkt_del', array($this->id));
+				
+			// Ãbersetzung lÃ¶schen
+			$this->db->UpdateQuerY(WPSG_TBL_PRODUCTS, array(
+				'deleted' => '1'
+			), "`lang_parent` = '".wpsg_q($this->id)."'");
+						
+		} // public function delete()
+		
 		/**
 		 * Setzt einen Wert in der META Tabelle
Index: /mods/mod_abo/demo_notification.php
===================================================================
--- /mods/mod_abo/demo_notification.php	(revision 5371)
+++ /mods/mod_abo/demo_notification.php	(revision 5382)
@@ -34,5 +34,5 @@
 	  
 	  /* Shop Plugin initiieren */
-	  require_once($path_wp_root.'wp-content/plugins/wpshopgermany/wpshopgermany.php');
+	  require_once($path_wp_root.'wp-content/plugins/'.WPSG_FOLDERNAME.'/wpshopgermany.php');
 	  
 	  if ($_REQUEST['typ'] == 'abo_firstbuy')
Index: /mods/mod_downloadplus/wpsg_fpdf.php
===================================================================
--- /mods/mod_downloadplus/wpsg_fpdf.php	(revision 5371)
+++ /mods/mod_downloadplus/wpsg_fpdf.php	(revision 5382)
@@ -26,5 +26,5 @@
 			parent::FPDF($orientation, $unit, $format);
 			
-			/* Code 128 */
+			/* Code 128 */			
 			$this->T128[] = array(2, 1, 2, 2, 2, 2);           //0 : [ ]               // composition des caractÃšres
 			$this->T128[] = array(2, 2, 2, 1, 2, 2);           //1 : [!]
@@ -176,7 +176,32 @@
 			
 		}
-				
+		
+		public function wpsg_SetTextColor($strHEXCode)
+		{
+				
+			error_reporting(E_ERROR);
+				
+			if ($strHEXCode[0] == '#')
+				$strHEXCode = substr($strHEXCode, 1);
+		
+				if (strlen($strHEXCode) == 6)
+					list($r, $g, $b) = array($strHEXCode[0].$strHEXCode[1],
+							$strHEXCode[2].$strHEXCode[3],
+							$strHEXCode[4].$strHEXCode[5]);
+					elseif (strlen($strHEXCode) == 3)
+					list($r, $g, $b) = array($strHEXCode[0].$strHEXCode[0], $strHEXCode[1].$strHEXCode[1], $strHEXCode[2].$strHEXCode[2]);
+					else
+						return false;
+		
+						$r = hexdec($r); $g = hexdec($g); $b = hexdec($b);
+						 
+						parent::setTextColor($r, $g, $b);
+							
+		} // public function wpsg_SetTextColor($strHEXCode)
+		
 		function Code128($x, $y, $code, $h) 
 		{
+			
+			$code = $this->clearCode($code);
 			
 			$w = 5 * strlen($code);
@@ -201,6 +226,10 @@
 			$crypt = "";
 			
+			$break = 0;
+			
 			while ($code > "") 
 			{
+				
+				$break ++;
 				
 				// BOUCLE PRINCIPALE DE CODAGE
@@ -255,5 +284,5 @@
 						
 					}
-					
+					 
 					$madeB = strpos($Bguid,"N");                                            // Ã©tendu du set B
 					
@@ -278,7 +307,17 @@
 				$Bguid = substr($Bguid,$made);
 				$Cguid = substr($Cguid,$made);
+				 
+				// Um Endlosschleifen zu verhindern
+				if ($break === 1000) 
+				{
+					
+					die("Code: ".$code." konnte nicht in EAN128 kodiert werden.");
+					
+					break;
+					
+				}
 				
 			}                                                                          // FIN BOUCLE PRINCIPALE
-		
+		 
 			$check = ord($crypt[0]);     
 			
@@ -528,4 +567,21 @@
 	    } 
 		    
+	    function clearCode($code)
+	    {
+	    	
+	    	$arReplace = array(
+	    		'/Ã/' => 'Ae',
+	    		'/Ã€/' => 'ae',
+    			'/Ã/' => 'Oe',
+    			'/Ã¶/' => 'oe',
+    			'/Ã/' => 'Ue',
+    			'/ÃŒ/' => 'ue',
+	    		'/Ã/' => 'ss'	    		
+	    	);
+	    	
+	    	return preg_replace(array_keys($arReplace), array_values($arReplace), $code);
+	    	
+	    }
+	    
 	} // class wpsg_fpdf extends FPDI
 
Index: /mods/wpsg_mod_autodebit.class.php
===================================================================
--- /mods/wpsg_mod_autodebit.class.php	(revision 5371)
+++ /mods/wpsg_mod_autodebit.class.php	(revision 5382)
@@ -284,5 +284,5 @@
 
 					if (trim($arCheckout['mod_autodebit_bic']) == '') { $_SESSION['wpsg']['errorFields'][] = 'mod_autodebit_bic'; $this->shop->addFrontendError(__('Bitte die BIC der Bank kontrollieren (Bankeinzug)', 'wpsg')); $error = true; }
-					if (trim($arCheckout['mod_autodebit_iban']) == '') { $_SESSION['wpsg']['errorFields'][] = 'mod_autodebit_iban'; $this->shop->addFrontendError(__('Bitet die IBAN Nr ÃŒberprÃŒfen (Bankeinzug)', 'wpsg')); $error = true; }
+					if (trim($arCheckout['mod_autodebit_iban']) == '') { $_SESSION['wpsg']['errorFields'][] = 'mod_autodebit_iban'; $this->shop->addFrontendError(__('Bitte die IBAN Nr ÃŒberprÃŒfen (Bankeinzug)', 'wpsg')); $error = true; }
 					
 				}
@@ -298,5 +298,5 @@
 			
 		} // public function checkCheckout(&$state, &$error, &$arCheckout)
-		
+		 
 		public function basket_save_order(&$data, &$checkout, &$arBasket, $finish_order) 
 		{ 
@@ -319,5 +319,5 @@
 		public function order_view_afterpayment(&$order_id) 
 		{ 
-			
+									
 			$order_data = $this->shop->cache->loadOrder($order_id);
 			
Index: /mods/wpsg_mod_basic.class.php
===================================================================
--- /mods/wpsg_mod_basic.class.php	(revision 5371)
+++ /mods/wpsg_mod_basic.class.php	(revision 5382)
@@ -91,5 +91,6 @@
 			4000	=> 'wpsg_mod_crefopay', /* Sollte die letzte Zahlungsart bleiben, da sie die anderen ausblendet */
 			3150	=> 'wpsg_mod_request',
-			5000	=> 'wpsg_mod_trustedshops' // Sollte nach den Zahlungsanbietern kommen wegen order_done			
+			5000	=> 'wpsg_mod_trustedshops', // Sollte nach den Zahlungsanbietern kommen wegen order_done
+			5100    => 'wpsg_mod_productview', 
 		);
 		
@@ -841,7 +842,7 @@
 					
 				}
-				
-				$mwst_sum = 0;
-			  				
+				 
+				$tax_sum = 0;
+				
 				$tax_netto_gesamt = 0;
 				$tax_brutto_gesamt = 0;				
Index: /mods/wpsg_mod_billsafe.class.php
===================================================================
--- /mods/wpsg_mod_billsafe.class.php	(revision 5371)
+++ /mods/wpsg_mod_billsafe.class.php	(revision 5382)
@@ -137,9 +137,9 @@
 				'mwst_null' => $this->shop->get_option('wpsg_mod_billsafe_mwstland'),
 				'hint' => __($this->shop->get_option('wpsg_mod_billsafe_hint')),
-				'logo' => WPSG_URL_CONTENT.'plugins/wpshopgermany/views/gfx/billsafe.png',
+				'logo' => WPSG_URL_CONTENT.'plugins/'.WPSG_FOLDERNAME.'/views/gfx/billsafe.png',
 				'logo_100x25' => $this->shop->getRessourceURL('mods/mod_billsafe/gfx/logo_100x25.png')
 			);
 			
-			if (isset($_REQUEST['wpsg_checkout2']))
+			if (isset($_REQUEST['wpsg_checkout2']) || ($this->shop->hasMod('wpsg_mod_onepagecheckout') && isset($_REQUEST['wpsg_checkout'])))
 			{
 
Index: /mods/wpsg_mod_cab.class.php
===================================================================
--- /mods/wpsg_mod_cab.class.php	(revision 5371)
+++ /mods/wpsg_mod_cab.class.php	(revision 5382)
@@ -166,8 +166,8 @@
 				'mwst_null' => $this->shop->get_option('wpsg_mod_cab_mwstland'),
 				'hint' => __($this->shop->get_option('wpsg_mod_cab_hint')),
-				'logo' => WPSG_URL_CONTENT.'plugins/wpshopgermany/views/gfx/cab.png' 
+				'logo' => WPSG_URL_CONTENT.'plugins/'.WPSG_FOLDERNAME.'/views/gfx/cab.png' 
 			);
 			
-			if (isset($_REQUEST['wpsg_checkout2']))
+			if (isset($_REQUEST['wpsg_checkout2']) || ($this->shop->hasMod('wpsg_mod_onepagecheckout') && isset($_REQUEST['wpsg_checkout'])))
 			{
 
Index: /mods/wpsg_mod_customergroup.class.php
===================================================================
--- /mods/wpsg_mod_customergroup.class.php	(revision 5371)
+++ /mods/wpsg_mod_customergroup.class.php	(revision 5382)
@@ -27,5 +27,5 @@
 						
 		} // public function __construct()		
-		
+		 
 		public function install()
 		{
Index: /mods/wpsg_mod_debitpayment.class.php
===================================================================
--- /mods/wpsg_mod_debitpayment.class.php	(revision 5371)
+++ /mods/wpsg_mod_debitpayment.class.php	(revision 5382)
@@ -77,5 +77,5 @@
 			);
 			
-			if (isset($_REQUEST['wpsg_checkout2']))
+			if (isset($_REQUEST['wpsg_checkout2']) || ($this->shop->hasMod('wpsg_mod_onepagecheckout') && isset($_REQUEST['wpsg_checkout'])))
 			{
 
Index: /mods/wpsg_mod_deliverynote.class.php
===================================================================
--- /mods/wpsg_mod_deliverynote.class.php	(revision 5371)
+++ /mods/wpsg_mod_deliverynote.class.php	(revision 5382)
@@ -53,5 +53,5 @@
 			
 		} // public function init()
-		
+		 
 		public function install()
 		{
@@ -321,5 +321,10 @@
 					
 					// Status setzen
-					$this->shop->setOrderStatus($_REQUEST['edit_id'], $_REQUEST['wpsg_mod_deliverynote_status'], 0);
+					if (wpsg_isSizedInt($_REQUEST['wpsg_mod_deliverynote_setstatus']))
+					{
+					
+						$this->shop->setOrderStatus($_REQUEST['edit_id'], $_REQUEST['wpsg_mod_deliverynote_status'], 0);
+						
+					}
 					
 					wpsg_header::PDFPlugin($file);					
Index: /mods/wpsg_mod_deliverytime.class.php
===================================================================
--- /mods/wpsg_mod_deliverytime.class.php	(revision 5371)
+++ /mods/wpsg_mod_deliverytime.class.php	(revision 5382)
@@ -110,4 +110,6 @@
 			if ($this->shop->get_option('wpsg_mod_deliverytime_show_mail') != '1') return;
 			
+			$this->shop->view['wpsg_mod_deliverytime']['i'] = $i;
+			$this->shop->view['wpsg_mod_deliverytime']['p'] = $p;
 			$this->shop->view['wpsg_mod_deliverytime']['deliverytime'] = $this->getProductDeliveryTime($this->shop->getProduktID($produkt['id']));
 			
@@ -132,4 +134,6 @@
 			if ($this->shop->get_option('wpsg_mod_deliverytime_show_basket') != '1') return;
 			
+			$this->shop->view['wpsg_mod_deliverytime']['i'] = $i;
+			$this->shop->view['wpsg_mod_deliverytime']['p'] = $p;
 			$this->shop->view['wpsg_mod_deliverytime']['deliverytime'] = $this->getProductDeliveryTime($this->shop->getProduktID($p['id']));
 			
@@ -143,4 +147,7 @@
 			if ($this->shop->get_option('wpsg_mod_deliverytime_show_overview') != '1') return;
 			
+
+			$this->shop->view['wpsg_mod_deliverytime']['i'] = $i;
+			$this->shop->view['wpsg_mod_deliverytime']['p'] = $p;
 			$this->shop->view['wpsg_mod_deliverytime']['deliverytime'] = $this->getProductDeliveryTime($this->shop->getProduktID($p['id']));
 			
@@ -185,5 +192,5 @@
 				{
 				
-					return $this->shop->get_option('wpsg_mod_deliverytime_mode_days_default').__(' Tage', 'wpsg');	
+					return $this->shop->get_option('wpsg_mod_deliverytime_mode_days_default').__(' Tag(e)', 'wpsg');	
 				
 				}
@@ -191,5 +198,5 @@
 				{
 					
-					return $product_data['wpsg_mod_deliverytime_deliverytime'].__(' Tage', 'wpsg');
+					return $product_data['wpsg_mod_deliverytime_deliverytime'].__(' Tag(e)', 'wpsg');
 					
 				}
Index: /mods/wpsg_mod_discount.class.php
===================================================================
--- /mods/wpsg_mod_discount.class.php	(revision 5371)
+++ /mods/wpsg_mod_discount.class.php	(revision 5382)
@@ -503,5 +503,5 @@
 					
 				}
-				else
+				else if ($discount)
 				{
 					
@@ -528,5 +528,5 @@
 							
 							$discount_tax = $this->shop->subMwSt($arReturn, $discount);
-							
+						
 						}
 						 
@@ -535,7 +535,19 @@
 				}
 				
-				$discount_brutto = $discount_value;
-				$discount_netto = $discount_value - $discount_tax;
-				 
+				if ($this->shop->addRoundedValues === true)
+				{
+					
+					$discount_brutto = round($discount_value, 2);
+					$discount_netto = round($discount_value - $discount_tax, 2);
+					
+				}
+				else 
+				{
+				
+					$discount_brutto = $discount_value;
+					$discount_netto = $discount_value - $discount_tax;
+					
+				}
+				  
 				$arReturn['sum']['preis_brutto'] -= $discount_brutto;
 				$arReturn['sum']['preis_netto'] -= $discount_netto;
@@ -909,5 +921,5 @@
 				
 			// Zeitraum und gÃŒltigen Wert ÃŒberprÃŒfen 
-			if ($rabatt[0] != "1" || !preg_match("/\d{2}\.\d{2}\.\d{4}/", $rabatt[1]) || !preg_match("/\d{2}\.\d{2}\.\d{4}/", $rabatt[2]) || !is_float((float)$rabatt[3]))
+			if (!wpsg_isSizedArray($rabatt[0]) || $rabatt[0] != "1" || !preg_match("/\d{2}\.\d{2}\.\d{4}/", $rabatt[1]) || !preg_match("/\d{2}\.\d{2}\.\d{4}/", $rabatt[2]) || !is_float((float)$rabatt[3]))
 			{
 				
Index: /mods/wpsg_mod_downloadplus.class.php
===================================================================
--- /mods/wpsg_mod_downloadplus.class.php	(revision 5371)
+++ /mods/wpsg_mod_downloadplus.class.php	(revision 5382)
@@ -28,5 +28,5 @@
 						
 		} // public function __construct()
-		
+		 
 		public function install()
 		{
@@ -928,6 +928,5 @@
 								{
 									
-									list($r, $g, $b) = wpsg_getColor($t["color"]);
-									$pdf->SetTextColor($r, $g, $b);
+									$pdf->wpsg_SetTextColor($t["color"]);
 	
 							    	$pdf->RotatedText(
@@ -997,6 +996,5 @@
 								{
 										
-									list($r, $g, $b) = wpsg_getColor($t["color"]);
-									$pdf->SetTextColor($r, $g, $b);
+									$pdf->wpsg_SetTextColor($t["color"]);
 								
 									$pdf->RotatedText(
Index: /mods/wpsg_mod_export.class.php
===================================================================
--- /mods/wpsg_mod_export.class.php	(revision 5371)
+++ /mods/wpsg_mod_export.class.php	(revision 5382)
@@ -626,5 +626,5 @@
 				
 				$arOV = array();
-				$arOrderVars = $this->db->fetchAssoc("SELECT * FROM `".WPSG_TBL_ORDERVARS."` WHERE `deleted` != '1' ORDER BY `name` ASC ");
+				$arOrderVars = $this->db->fetchAssoc("SELECT * FROM `".WPSG_TBL_ORDERVARS."` WHERE `deleted` != '1' ORDER BY `pos` ASC, `id` ASC ");
 				
 				foreach ($arOrderVars as $ov)
Index: /mods/wpsg_mod_flexipay.class.php
===================================================================
--- /mods/wpsg_mod_flexipay.class.php	(revision 5371)
+++ /mods/wpsg_mod_flexipay.class.php	(revision 5382)
@@ -260,5 +260,5 @@
 		{
 		
-			if ($_REQUEST['wpsg_plugin'] != 'wpsg_mod_flexipay') return;
+			if (!wpsg_isSizedString($_REQUEST['wpsg_plugin'], 'wpsg_mod_flexipay')) return;
 		
 			if ($_REQUEST['wpsg_action'] === 'checkStatus')
Index: /mods/wpsg_mod_fuellmenge.class.php
===================================================================
--- /mods/wpsg_mod_fuellmenge.class.php	(revision 5371)
+++ /mods/wpsg_mod_fuellmenge.class.php	(revision 5382)
@@ -56,5 +56,5 @@
 			$this->shop->update_option('wpsg_mod_fuellmenge_einheit', $_REQUEST['wpsg_mod_fuellmenge_einheit']);
 			$this->shop->update_option('wpsg_mod_fuellmenge_bezug', $_REQUEST['wpsg_mod_fuellmenge_bezug']);
-			
+			$this->shop->update_option('wpsg_mod_fuellmenge_showAjaxDialog', $_REQUEST['wpsg_mod_fuellmenge_showAjaxDialog']);
 			if ($this->shop->hasMod('wpsg_mod_fuellmenge') == '1')
 			{
@@ -62,4 +62,5 @@
 				$this->shop->update_option('wpsg_mod_fuellmenge_showProductindex_fmenge', $_REQUEST['wpsg_mod_fuellmenge_showProductindex_fmenge']);
 				$this->shop->update_option('wpsg_mod_fuellmenge_showProductindex_grundpreis', $_REQUEST['wpsg_mod_fuellmenge_showProductindex_grundpreis']);
+				
 				
 			}
Index: /mods/wpsg_mod_gutschein.class.php
===================================================================
--- /mods/wpsg_mod_gutschein.class.php	(revision 5371)
+++ /mods/wpsg_mod_gutschein.class.php	(revision 5382)
@@ -24,5 +24,5 @@
 						
 		} // public function __construct()
-		
+		 
 		public function install() 
 		{ 
Index: /mods/wpsg_mod_invoice_type.class.php
===================================================================
--- /mods/wpsg_mod_invoice_type.class.php	(revision 5371)
+++ /mods/wpsg_mod_invoice_type.class.php	(revision 5382)
@@ -70,5 +70,5 @@
 			);
 			
-			if (isset($_REQUEST['wpsg_checkout2']))
+			if (isset($_REQUEST['wpsg_checkout2']) || ($this->shop->hasMod('wpsg_mod_onepagecheckout') && isset($_REQUEST['wpsg_checkout'])))
 			{
 
Index: /mods/wpsg_mod_kundenverwaltung.class.php
===================================================================
--- /mods/wpsg_mod_kundenverwaltung.class.php	(revision 5371)
+++ /mods/wpsg_mod_kundenverwaltung.class.php	(revision 5382)
@@ -1643,5 +1643,5 @@
 			
 			// Damit "Geisterkungen" aus unvollstÃ€ndigen Bestellungen nicht erscheinen
-			$strQueryWHERE .= " AND K.`email` != '' ";
+			//$strQueryWHERE .= " AND K.`email` != '' ";
 			
 			$nPerPage = $this->shop->get_option('wpsg_mod_kundenverwaltung_perpage');
@@ -1652,12 +1652,21 @@
 			$this->shop->view['count'] = $this->db->fetchOne("
 				SELECT
-					COUNT(*)
-				FROM	
-					`".WPSG_TBL_KU."` AS K
-				WHERE 
-					1
-					".$strQueryWHERE."
+					COUNT(*) 
+				FROM
+					(
+						SELECT
+							K.`id`,
+							(SELECT COUNT(*) FROM `".WPSG_TBL_ORDER."` AS O WHERE O.`k_id` = K.`id` AND O.`status` != '".wpsg_q(wpsg_ShopController::STATUS_UNVOLLSTAENDIG)."') AS order_count,
+							(SELECT COUNT(*) FROM `".WPSG_TBL_ORDER."` AS O WHERE O.`k_id` = K.`id` AND O.`status` = '".wpsg_q(wpsg_ShopController::STATUS_UNVOLLSTAENDIG)."') AS order_count_incomplete
+						FROM	
+							`".WPSG_TBL_KU."` AS K
+						WHERE 
+							1
+							".$strQueryWHERE."
+						HAVING
+							(order_count_incomplete = 0 OR order_count > 0) 
+					) AS OUTER_TABLE
 			");
-						
+			 		
 			$this->shop->view['seite'] = $seite;
 			$this->shop->view['pages'] = ceil($this->shop->view['count'] / $nPerPage); 			
@@ -1698,5 +1707,7 @@
 			else $strQueryORDERNR = " CAST(`knr` AS UNSIGNED) AS `order_nr` ";
 			 
-			$this->shop->view['data'] = $this->db->fetchAssoc("
+			// Das HAVING ist so "kompliziert" weil ich erreichen wollte das Kunden die gÃ€nzlich keine Bestellungen haben denoch angezeigt werden
+			// Kunden die aber nur unvollstÃ€ndige Bestellungen haben aber nicht
+			$strQuery = "
 				SELECT
 					K.*,
@@ -1705,5 +1716,6 @@
 					CONCAT(K.`vname`, ' ', K.`name`) AS `order_name`,
 					".$strQueryORDERNR.",
-					(SELECT COUNT(*) FROM `".WPSG_TBL_ORDER."` AS O WHERE O.`k_id` = K.`id`) AS order_count,
+					(SELECT COUNT(*) FROM `".WPSG_TBL_ORDER."` AS O WHERE O.`k_id` = K.`id` AND O.`status` != '".wpsg_q(wpsg_ShopController::STATUS_UNVOLLSTAENDIG)."') AS order_count,
+					(SELECT COUNT(*) FROM `".WPSG_TBL_ORDER."` AS O WHERE O.`k_id` = K.`id` AND O.`status` = '".wpsg_q(wpsg_ShopController::STATUS_UNVOLLSTAENDIG)."') AS order_count_incomplete,
 					(SELECT SUM(`price_gesamt`) FROM `".WPSG_TBL_ORDER."` AS O WHERE O.`k_id` = K.`id` AND O.`status` IN (100, 110)) as order_umsatz
 				FROM 
@@ -1711,12 +1723,16 @@
 						LEFT JOIN `".WPSG_TBL_LAND."` AS L ON (K.`land` = L.`id`)
 				WHERE
-					1					 
+					1					
 					".$strQueryWHERE."
+				HAVING
+					(order_count_incomplete = 0 OR order_count > 0) 
 				ORDER BY	
 					".$strQueryORDER." ".wpsg_q($this->shop->view['filter']['ascdesc']).", K.`id` DESC 
 				LIMIT
 					".(($this->shop->view['seite'] - 1) * $nPerPage).", ".$nPerPage."
-			");  
-			
+			";
+			
+			$this->shop->view['data'] = $this->db->fetchAssoc($strQuery);  
+			 
 			// Kundengruppen laden
 			if ($this->shop->hasMod('wpsg_mod_customergroup'))
Index: /mods/wpsg_mod_ordercondition.class.php
===================================================================
--- /mods/wpsg_mod_ordercondition.class.php	(revision 5371)
+++ /mods/wpsg_mod_ordercondition.class.php	(revision 5382)
@@ -27,5 +27,5 @@
 												
 		} // public function __construct()
-		
+						
 		public function install() 
 		{ 
Index: /mods/wpsg_mod_ordervars.class.php
===================================================================
--- /mods/wpsg_mod_ordervars.class.php	(revision 5371)
+++ /mods/wpsg_mod_ordervars.class.php	(revision 5382)
@@ -32,5 +32,5 @@
 									
 		} // public function __construct()
-		
+		 
 		public function install() 
 		{ 
@@ -45,4 +45,5 @@
 		   		pflicht INT(1) NOT NULL, 
 		   		deleted INT(1) NOT NULL,
+				pos int(11) NOT NULL,
 		   		PRIMARY KEY  (id)
 		   	) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;";
@@ -85,4 +86,21 @@
 				
 			}
+			else if ($_REQUEST['do'] == 'reorder')
+			{
+			
+				parse_str($_REQUEST['wpsg_reorder'], $wpsg_reorder);
+	 
+				foreach ($wpsg_reorder['ov'] as $pos => $ov_id)
+				{
+						
+					$this->db->UpdateQuery(WPSG_TBL_ORDERVARS, array(
+						'pos' => wpsg_q($pos)
+					), " `id` = '".wpsg_q($ov_id)."' ");
+						
+				}
+			
+				die("1");
+			
+			}
 			else if ($_REQUEST['do'] == 'del')
 			{
@@ -134,5 +152,5 @@
 			
 			// VerfÃŒgbare Bestellvariablen
-			$arOV = $this->db->fetchAssoc("SELECT * FROM `".WPSG_TBL_ORDERVARS."` WHERE `deleted` != '1'");
+			$arOV = $this->db->fetchAssoc("SELECT * FROM `".WPSG_TBL_ORDERVARS."` WHERE `deleted` != '1' ORDER BY `pos` ASC, `id` ASC ");
 			
 			foreach ($arOV as $ov)
@@ -240,5 +258,5 @@
 		{
 
-			$arOV_db = $this->db->fetchAssoc("SELECT * FROM `".WPSG_TBL_ORDERVARS."` ");
+			$arOV_db = $this->db->fetchAssoc("SELECT * FROM `".WPSG_TBL_ORDERVARS."` WHERE `deleted` != '1' ORDER BY `pos` ASC, `id` ASC ");
 			$arOV = array();
 			
@@ -283,5 +301,5 @@
 		{ 
 						
-			$this->shop->view['wpsg_mod_ordervars']['data'] = $this->db->fetchAssoc("SELECT * FROM `".WPSG_TBL_ORDERVARS."` WHERE `deleted` != '1'");
+			$this->shop->view['wpsg_mod_ordervars']['data'] = $this->db->fetchAssoc("SELECT * FROM `".WPSG_TBL_ORDERVARS."` WHERE `deleted` != '1' ORDER BY `pos` ASC, `id` ASC ");
 			
 			if (!wpsg_isSizedArray($this->shop->view['wpsg_mod_ordervars']['data'])) return;
@@ -367,5 +385,7 @@
 					`".WPSG_TBL_ORDERVARS."` AS OV
 				WHERE 
-					`deleted` != '1'	
+					`deleted` != '1'
+				ORDER BY
+					`pos` ASC, `id` ASC 
 			");
 			
@@ -391,5 +411,5 @@
 		{
 			
-			$arOV = $this->db->fetchAssocField("SELECT `id` FROM `".WPSG_TBL_ORDERVARS."` WHERE `deleted` != '1'");
+			$arOV = $this->db->fetchAssocField("SELECT `id` FROM `".WPSG_TBL_ORDERVARS."` WHERE `deleted` != '1' ORDER BY `pos` ASC, `id` ASC ");
 			
 			if (!wpsg_isSizedArray($arOV)) return false;
@@ -479,5 +499,5 @@
 		{
 			
-			$this->shop->view['data'] = $this->db->fetchAssoc("SELECT * FROM `".WPSG_TBL_ORDERVARS."` ORDER BY `id` ASC");			
+			$this->shop->view['data'] = $this->db->fetchAssoc("SELECT * FROM `".WPSG_TBL_ORDERVARS."` ORDER BY `pos` ASC, `id` ASC ");			
 			$this->shop->render(WPSG_PATH_VIEW.'/mods/mod_ordervars/ov_list.phtml');
 			
Index: /mods/wpsg_mod_paypal.class.php
===================================================================
--- /mods/wpsg_mod_paypal.class.php	(revision 5371)
+++ /mods/wpsg_mod_paypal.class.php	(revision 5382)
@@ -202,5 +202,5 @@
 			);
 			
-			if (isset($_REQUEST['wpsg_checkout2']))
+			if (isset($_REQUEST['wpsg_checkout2']) || ($this->shop->hasMod('wpsg_mod_onepagecheckout') && isset($_REQUEST['wpsg_checkout'])))
 			{
 
@@ -634,5 +634,5 @@
 						
 					$this->shop->addFrontendError(__('PayPal Fehler, bitte Shop Betreiber kontaktieren.', 'wpsg'));
-					$this->shop->redirect($this->shop->getDoneURL($oOrder->id));
+					$this->shop->redirect(get_permalink($this->shop->get_option('wpsg_page_mod_paypal_error')));
 						
 				}
Index: /mods/wpsg_mod_paypalapi.class.php
===================================================================
--- /mods/wpsg_mod_paypalapi.class.php	(revision 5371)
+++ /mods/wpsg_mod_paypalapi.class.php	(revision 5382)
@@ -93,4 +93,5 @@
 			$this->shop->update_option('wpsg_mod_paypalapi_plus_hint', $_REQUEST['wpsg_mod_paypalapi_plus_hint'], false, true);
 			$this->shop->update_option('wpsg_mod_paypalapi_paypalexpress_subject', $_REQUEST['wpsg_mod_paypalapi_paypalexpress_subject']);
+			$this->shop->update_option('wpsg_mod_paypalapi_paypalexpress_forceSSL', $_REQUEST['wpsg_mod_paypalapi_paypalexpress_forceSSL']);
 			$this->shop->update_option('wpsg_mod_paypalapi_paypalexpress_details', $_REQUEST['wpsg_mod_paypalapi_paypalexpress_details']);
 			
@@ -186,5 +187,5 @@
 				);
 			
-				if (isset($_REQUEST['wpsg_checkout2']))
+				if (isset($_REQUEST['wpsg_checkout2']) || ($this->shop->hasMod('wpsg_mod_onepagecheckout') && isset($_REQUEST['wpsg_checkout'])))
 				{
 			
@@ -263,4 +264,9 @@
 		{
 				
+			// Wenn 0,- dann nix machen
+			$arBasket = $this->shop->basket->toArray();
+			if ($arBasket['sum']['preis_gesamt_brutto'] <= 0) return false;
+			
+			// Wenn PayPal nicht drin ist, dann nichts machen
 			if (!array_key_exists($this->id, $this->shop->arPayment)) return false;
 			
@@ -361,5 +367,5 @@
 			{ 
 			
-				$this->shop->view['wpsg_mod_paypalapi']['error'] = __('Sie hatten bereits eine Zahlungsart gewÃ€hlt. Aufgrund technischer EinschrÃ€nkungen muss diese Auswahl hier erneut durchgefÃŒhrt werden.', 'wpsg');
+				$this->shop->view['wpsg_mod_paypalapi']['error'] = __('Sie hatten eventuelle bereits eine Zahlungsart gewÃ€hlt. Aufgrund technischer EinschrÃ€nkungen kann es sein dass diese Auswahl hier erneut durchgefÃŒhrt werden muss.', 'wpsg');
 				
 			}
@@ -435,9 +441,9 @@
 				
 				$payment_info = $this->api_getPaymentInfo($oOrder->getMeta('wpsg_mod_paypalapi_paymentId'), true);
-				
+	 
 				$amount_approved = floatval($payment_info['transactions'][0]['amount']['total']);
 				
 				//if ($amount_approved === floatval($oOrder->getAmount()) && !wpsg_isSizedString($oOrder->getMeta('wpsg_mod_paypalapi_saleid')))
-				if ($amount_approved === floatval($oOrder->getAmount()) && !wpsg_isSizedString($oOrder->getMeta('wpsg_mod_paypalapi_saleid')) && wpsg_isSizedString($payment_info['payer']['status'], 'VERIFIED'))
+				if (in_array($payment_info['state'], array('approved', 'created')) && $amount_approved === floatval($oOrder->getAmount()) && !wpsg_isSizedString($oOrder->getMeta('wpsg_mod_paypalapi_saleid')))
 				{
 					
@@ -510,4 +516,8 @@
 		{ 
 			
+			// Bestellungen mit 0,- mÃŒssen nicht bearbeitet werden
+			if ($basket_view['basket']['sum']['preis_gesamt_brutto'] <= 0) return;
+									
+			// PayPal oder PayPal Express ist deaktiviert
 			if (!wpsg_isSizedInt($this->shop->get_option('wpsg_mod_paypalapi_aktiv')) || !wpsg_isSizedInt($this->shop->get_option('wpsg_mod_paypalapi_paypalexpress'))) return false; 
 			
@@ -708,14 +718,52 @@
 			
 			$_SESSION['wpsg']['checkout']['payment'] = $this->id;
-			$_SESSION['wpsg']['checkout']['vname'] = $json_data['payer']['payer_info']['first_name'];
-			$_SESSION['wpsg']['checkout']['name'] = $json_data['payer']['payer_info']['last_name'];
-			$_SESSION['wpsg']['checkout']['email'] = $json_data['payer']['payer_info']['email'];
-			$_SESSION['wpsg']['checkout']['email2'] = $json_data['payer']['payer_info']['email'];
-			$_SESSION['wpsg']['checkout']['tel'] = $json_data['payer']['payer_info']['phone'];
-			$_SESSION['wpsg']['checkout']['strasse'] =  $json_data['payer']['payer_info']['shipping_address']['line1'];
-			$_SESSION['wpsg']['checkout']['ort'] = $json_data['payer']['payer_info']['shipping_address']['city'];
-			$_SESSION['wpsg']['checkout']['plz'] = $json_data['payer']['payer_info']['shipping_address']['postal_code'];
-			$_SESSION['wpsg']['checkout']['land'] = $this->db->fetchOne("SELECT `id` FROM `".WPSG_TBL_LAND."` WHERE UPPER(`kuerzel`) = '".wpsg_q(strtoupper($json_data['payer']['payer_info']['shipping_address']['country_code']))."'");
-			$_SESSION['wpsg']['checkout']['payment_amount'] = $json_data['transactions'][0]['amount']['total'];
+			
+			if (!wpsg_isSizedString($_SESSION['wpsg']['checkout']['vname'])) $_SESSION['wpsg']['checkout']['vname'] = $json_data['payer']['payer_info']['first_name'];
+			if (!wpsg_isSizedString($_SESSION['wpsg']['checkout']['name'])) $_SESSION['wpsg']['checkout']['name'] = $json_data['payer']['payer_info']['last_name'];
+			if (!wpsg_isSizedString($_SESSION['wpsg']['checkout']['email'])) 
+			{
+				$_SESSION['wpsg']['checkout']['email'] = $json_data['payer']['payer_info']['email'];
+				$_SESSION['wpsg']['checkout']['email2'] = $json_data['payer']['payer_info']['email'];
+			}				
+			if (!wpsg_isSizedString($_SESSION['wpsg']['checkout']['tel'])) $_SESSION['wpsg']['checkout']['tel'] = $json_data['payer']['payer_info']['phone'];
+			if (!wpsg_isSizedString($_SESSION['wpsg']['checkout']['strasse'])) $_SESSION['wpsg']['checkout']['strasse'] =  $json_data['payer']['payer_info']['billing_address']['line1'];
+			if (!wpsg_isSizedString($_SESSION['wpsg']['checkout']['ort'])) $_SESSION['wpsg']['checkout']['ort'] = $json_data['payer']['payer_info']['billing_address']['city'];
+			if (!wpsg_isSizedString($_SESSION['wpsg']['checkout']['plz'])) $_SESSION['wpsg']['checkout']['plz'] = $json_data['payer']['payer_info']['billing_address']['postal_code'];
+			if (!wpsg_isSizedString($_SESSION['wpsg']['checkout']['land'])) $_SESSION['wpsg']['checkout']['land'] = $this->db->fetchOne("SELECT `id` FROM `".WPSG_TBL_LAND."` WHERE UPPER(`kuerzel`) = '".wpsg_q(strtoupper($json_data['payer']['payer_info']['billing_address']['country_code']))."'");
+			
+			if (wpsg_isSizedArray(wpsg_trim($json_data['payer']['payer_info']['shipping_address'])) && $this->shop->hasMod('wpsg_mod_shippingadress'))
+			{
+				 
+				if (!wpsg_isSizedString($_SESSION['wpsg']['checkout']['shipping_plz'])) $_SESSION['wpsg']['checkout']['shipping_plz'] = $json_data['payer']['payer_info']['shipping_address']['postal_code'];
+				if (!wpsg_isSizedString($_SESSION['wpsg']['checkout']['shipping_vname']) || !wpsg_isSizedString($_SESSION['wpsg']['checkout']['shipping_name'])) 
+				{
+					
+					$arName = explode(' ', $json_data['payer']['payer_info']['shipping_address']['recipient_name']);
+					
+					if (sizeof($arName) > 1) $_SESSION['wpsg']['checkout']['shipping_vname'] = $arName[0]; else $_SESSION['wpsg']['checkout']['shipping_vname'] = '';					
+					if (sizeof($arName) > 1) $_SESSION['wpsg']['checkout']['shipping_name'] = implode(' ', array_slice($arName, 1)); else $_SESSION['wpsg']['checkout']['shipping_name'] = implode(' ', $arName);
+					
+				}
+				if (!wpsg_isSizedString($_SESSION['wpsg']['checkout']['shipping_strasse'])) $_SESSION['wpsg']['checkout']['shipping_strasse'] = $json_data['payer']['payer_info']['shipping_address']['line1'];
+				if (!wpsg_isSizedString($_SESSION['wpsg']['checkout']['shipping_ort'])) $_SESSION['wpsg']['checkout']['shipping_ort'] = $json_data['payer']['payer_info']['shipping_address']['city'];
+				if (!wpsg_isSizedString($_SESSION['wpsg']['checkout']['shipping_land'])) $_SESSION['wpsg']['checkout']['shipping_land'] = $this->db->fetchOne("SELECT `id` FROM `".WPSG_TBL_LAND."` WHERE UPPER(`kuerzel`) = '".wpsg_q(strtoupper($json_data['payer']['payer_info']['shipping_address']['country_code']))."'");
+				 
+				$_SESSION['wpsg']['checkout']['diff_shippingadress'] = '1';
+							
+				/*
+						[shipping_address] => Array
+                        (
+                            [recipient_name] => Max Mustermann
+                            [line1] => ESpachstr. 1
+                            [city] => Freiburg
+                            [state] => Empty
+                            [postal_code] => 79111
+                            [country_code] => DE
+                        )
+				*/	
+				
+			}
+						
+			$_SESSION['wpsg']['checkout']['payment_amount'] = $json_data['transactions'][0]['amount']['total'];			
 			$_SESSION['wpsg']['checkout']['paymentId'] = $_REQUEST['paymentId'];
 			$_SESSION['wpsg']['checkout']['payer_id'] = $json_data['payer']['payer_info']['payer_id'];
Index: /mods/wpsg_mod_prepayment.class.php
===================================================================
--- /mods/wpsg_mod_prepayment.class.php	(revision 5371)
+++ /mods/wpsg_mod_prepayment.class.php	(revision 5382)
@@ -110,5 +110,5 @@
 			);
 			
-			if (isset($_REQUEST['wpsg_checkout2']))
+			if (isset($_REQUEST['wpsg_checkout2']) || ($this->shop->hasMod('wpsg_mod_onepagecheckout') && isset($_REQUEST['wpsg_checkout'])))
 			{
 
Index: /mods/wpsg_mod_productgroups.class.php
===================================================================
--- /mods/wpsg_mod_productgroups.class.php	(revision 5371)
+++ /mods/wpsg_mod_productgroups.class.php	(revision 5382)
@@ -25,5 +25,5 @@
 									
 		} // public function __construct()
-		
+		 
 		public function install()
 		{
Index: /mods/wpsg_mod_productindex.class.php
===================================================================
--- /mods/wpsg_mod_productindex.class.php	(revision 5371)
+++ /mods/wpsg_mod_productindex.class.php	(revision 5382)
@@ -293,9 +293,10 @@
 			if (!isset($filter['page']) || $filter['page'] > $filter['pages'] || $filter['page'] <= 0) $filter['page'] = 1;
 			
+			// Sortieren
+			uasort($arProducts, array($this, 'order'));
+			
 			// Seite selektieren
 			$arProducts = array_slice($arProducts, ($filter['page'] - 1) * $filter['perPage'], $filter['perPage']);
 			
-			uasort($arProducts, array($this, 'order'));
-			 
 			$this->shop->view['wpsg_mod_productindex']['filter'] = $filter;
 			 
Index: /mods/wpsg_mod_productvars.class.php
===================================================================
--- /mods/wpsg_mod_productvars.class.php	(revision 5371)
+++ /mods/wpsg_mod_productvars.class.php	(revision 5382)
@@ -12,5 +12,5 @@
 		var $id = 950;
 		var $hilfeURL = 'http://wpshopgermany.de/?p=815';
-		var $inline = true;
+		var $inline = false;
 		
 		/**
@@ -33,5 +33,5 @@
 									
 		} // public function __construct()
-		
+		 
 		public function install() 
 		{ 
@@ -64,4 +64,11 @@
 		} // public function settings_edit()
 		
+		public function settings_save() 
+		{
+
+			$this->shop->update_option('wpsg_mod_productvars_showProduct', $_REQUEST['wpsg_mod_productvars_showProduct']);
+			
+		}
+		
 		public function be_ajax()
 		{
@@ -462,6 +469,6 @@
 					{
 						
-						//$this->shop->addFrontendError(wpsg_translate(__('Bitte im Feld "#1#" eine Auswahl treffen!', 'wpsg'), __($pv_db['name'], 'wpsg')));
-						//$_SESSION['wpsg']['errorFields'][] = 'wpsg_mod_productvars_'.$pv_id.'_'.$ses_data['id'];
+						$this->shop->addFrontendError(wpsg_translate(__('Bitte im Feld "#1#" eine Auswahl treffen!', 'wpsg'), __($pv_db['name'], 'wpsg')));
+						$_SESSION['wpsg']['errorFields'][] = 'wpsg_mod_productvars_'.$pv_id.'_'.$ses_data['id'];
 						$bError = true;
 						
@@ -470,6 +477,6 @@
 					{
 							
-						//$this->shop->addFrontendError(wpsg_translate(__('Bitte im Feld "#1#" eine Angabe machen!', 'wpsg'), __($pv_db['name'], 'wpsg')));
-						//$_SESSION['wpsg']['errorFields'][] = 'wpsg_mod_productvars_'.$pv_id.'_'.$ses_data['id'];
+						$this->shop->addFrontendError(wpsg_translate(__('Bitte im Feld "#1#" eine Angabe machen!', 'wpsg'), __($pv_db['name'], 'wpsg')));
+						$_SESSION['wpsg']['errorFields'][] = 'wpsg_mod_productvars_'.$pv_id.'_'.$ses_data['id'];
 						$bError = true;
 						
@@ -478,6 +485,6 @@
 					{
 						
-						//$this->shop->addFrontendError(wpsg_translate(__('Bitte das Feld "#1#" aktivieren!', 'wpsg'), __($pv_db['name'], 'wpsg')));
-						//$_SESSION['wpsg']['errorFields'][] = 'wpsg_mod_productvars_'.$pv_id.'_'.$ses_data['id'];
+						$this->shop->addFrontendError(wpsg_translate(__('Bitte das Feld "#1#" aktivieren!', 'wpsg'), __($pv_db['name'], 'wpsg')));
+						$_SESSION['wpsg']['errorFields'][] = 'wpsg_mod_productvars_'.$pv_id.'_'.$ses_data['id'];
 						$bError = true;
 						
@@ -490,5 +497,5 @@
 			// Nix machen bei Warenkorbaktualisierung
 			if (isset($_REQUEST['wpsg_basket_refresh'])) return;
-							
+					 		
 			if ($bError === true) return -2; else return true;
 			
@@ -538,7 +545,10 @@
 					 
 				}
-								
-				return $this->shop->render(WPSG_PATH_VIEW.'/mods/mod_productvars/renderTemplate.phtml', false);
-
+
+				if ($this->shop->get_option('wpsg_mod_productvars_showProduct') == '1')
+					echo $this->shop->render(WPSG_PATH_VIEW.'/mods/mod_productvars/renderTemplate.phtml', false);
+				else
+					return $this->shop->render(WPSG_PATH_VIEW.'/mods/mod_productvars/renderTemplate.phtml', false);
+				
 			}
 			
Index: /mods/wpsg_mod_productview.class.php
===================================================================
--- /mods/wpsg_mod_productview.class.php	(revision 5382)
+++ /mods/wpsg_mod_productview.class.php	(revision 5382)
@@ -0,0 +1,34 @@
+<?php
+
+	/**
+	 * Modul welches ProduktÃŒbersichtsseiten ermÃ¶glicht
+	 */
+	class wpsg_mod_productview extends wpsg_mod_basic
+	{
+
+		var $lizenz = 1;
+		var $id = 5100;
+		var $hilfeURL = false;
+				
+		public function __construct()
+		{
+				
+			parent::__construct();
+				
+			$this->name = __('Produktansichten', 'wpsg');
+			$this->group = __('Produkte', 'wpsg');
+			$this->desc = __('ErmÃ¶glicht die Darstellung von Produktlisten ÃŒber Shortcodes.', 'wpsg');
+				
+		} // public function __construct()
+		
+		public function init()
+		{
+			
+				
+		} // public function init()
+
+		
+		
+	} // class wpsg_mod_productview extends wpsg_mod_basic
+		
+?>
Index: /mods/wpsg_mod_produktartikel.class.php
===================================================================
--- /mods/wpsg_mod_produktartikel.class.php	(revision 5371)
+++ /mods/wpsg_mod_produktartikel.class.php	(revision 5382)
@@ -45,10 +45,10 @@
 			{
 					
-				wp_enqueue_script('wpsg_mod_produktartikel_social', WPSG_URL_CONTENT.'plugins/wpshopgermany/lib/socialshareprivacy/jquery.socialshareprivacy.js');
+				wp_enqueue_script('wpsg_mod_produktartikel_social', WPSG_URL_CONTENT.'plugins/'.WPSG_FOLDERNAME.'/lib/socialshareprivacy/jquery.socialshareprivacy.js');
 						
 			}
 			
 		} // public function wpsg_enqueue_scripts()
-		
+		 
 		public function install() 
 		{ 
@@ -540,5 +540,5 @@
 				array(
 					'public' => true, // steht auf "true", damit andere Module/ Plugins diesen Posttype "sehen" kÃ¶nnen
-					'publicly_queryable' => false,
+					'publicly_queryable' => true,
 					'labels' => array(
 						'name' => __('wpShopGermany Produkte', 'wpsg')
@@ -549,4 +549,5 @@
  					'show_in_menu' => true,
 					'taxonomies' => array('category'),
+					'has_archive' => true,
 					'supports' => array('title', 'editor', 'thumbnail')
 				)
@@ -648,5 +649,7 @@
 			");
 			
-			if (wpsg_isSizedInt($post_id) && wpsg_isSizedString(get_permalink($post_id)))
+			$permalink = get_permalink($post_id);
+			
+			if (wpsg_isSizedInt($post_id) && wpsg_isSizedString($permalink))
 			{
 
Index: /mods/wpsg_mod_produktattribute.class.php
===================================================================
--- /mods/wpsg_mod_produktattribute.class.php	(revision 5371)
+++ /mods/wpsg_mod_produktattribute.class.php	(revision 5382)
@@ -26,5 +26,5 @@
 	
 		} // public function __construct()
-	
+	 
 		public function install()
 		{
@@ -41,4 +41,5 @@
 			   		auswahl varchar(1000) NOT NULL,  	
 			   		autoshow int(1) NOT NULL,	
+					pos int(11) NOT NULL,
 			   		PRIMARY KEY  (id)
 			   	) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;";
@@ -79,4 +80,21 @@
 	
 			}
+			else if ($_REQUEST['do'] == 'reorder')
+			{
+			
+				parse_str($_REQUEST['wpsg_reorder'], $wpsg_reorder);
+			
+				foreach ((array)$wpsg_reorder['pa'] as $pos => $pa_id)
+				{
+						
+					$this->db->UpdateQuery(WPSG_TBL_AT, array(
+						'pos' => wpsg_q($pos)
+					), " `id` = '".wpsg_q($pa_id)."' ");
+						
+				}
+			
+				die("1");
+			
+			}
 			else if ($_REQUEST['do'] == 'genPACode')
 			{
@@ -177,5 +195,5 @@
 					");
 		
-					$pa = $this->db->fetchRow("SELECT * FROM `".WPSG_TBL_AT."` WHERE `id` = '".wpsg_q($pa_id)."'");
+					$pa = $this->db->fetchRow("SELECT * FROM `".WPSG_TBL_AT."` WHERE `id` = '".wpsg_q($pa_id)."' ORDER BY `pos` ASC, `id` ASC ");
 					
 					if ($pa['typ'] == 1 && $this->shop->get_option('wpsg_options_nl2br') == '1') $pa_value = nl2br($pa_value);
@@ -235,5 +253,5 @@
 			
 		} // public function produkt_copy(&$produkt_id, &$copy_id)
-		
+				
 		public function produkt_edit_content(&$produkt_data)
 		{
@@ -243,11 +261,5 @@
 			 			
 			$this->shop->view['data'] = $produkt_data;
-			$this->shop->view['data']['pa'] = $this->db->fetchAssoc("
-				SELECT
-					A.`id`, A.`name`, A.`typ`, PA.`value`, A.`auswahl`
-				FROM
-					`".WPSG_TBL_AT."` AS A
-						LEFT JOIN `".WPSG_TBL_PRODUCTS_AT."` AS PA ON (PA.`a_id` = A.`id` AND PA.`p_id` = '".wpsg_q($produkt_data['id'])."')				  			
-			"); 
+			$this->shop->view['data']['pa'] = $this->shop->callMod('wpsg_mod_produktattribute', 'getProductAttributeByProductId', array($this->shop->getProduktID($produkt_data['id'])));
 				
 			$this->shop->render(WPSG_PATH_VIEW.'/mods/mod_produktattribute/produkt_edit_content.phtml');
@@ -280,4 +292,6 @@
 				WHERE 
 					PAT.`p_id` = '".wpsg_q($p_id)."'
+				ORDER BY
+					AT.`pos` ASC, AT.`id` ASC
 			");
 			 
@@ -301,4 +315,6 @@
 				WHERE
 					AT.`autoshow` = '1'
+				ORDER BY
+					AT.`pos` ASC, AT.`id` ASC
 			");
 			
@@ -320,4 +336,6 @@
 				WHERE
 					AT.`autoshow` = '1'
+				ORDER BY
+					AT.`pos` ASC, AT.`id` ASC
 			");
 				
@@ -334,9 +352,11 @@
 			$this->shop->view['wpsg_mod_produktattribute']['data'] = $this->db->fetchAssocField("
 				SELECT
-					AT.`id`
+					`id`
 				FROM
-					`".WPSG_TBL_AT."` AS AT
+					`".WPSG_TBL_AT."`
 				WHERE
-					AT.`autoshow` = '1'
+					`autoshow` = '1'
+				ORDER BY
+					`pos` ASC, `id` ASC
 			");
 		
@@ -365,5 +385,5 @@
 			{
 			
-				$arAttribute = $this->db->fetchAssocField("SELECT `id` FROM `".WPSG_TBL_AT."`");
+				$arAttribute = $this->db->fetchAssocField("SELECT `id` FROM `".WPSG_TBL_AT."` ORDER BY `pos` ASC, `id` ASC ");
 			
 				foreach ((array)$arAttribute as $pa_id)
@@ -386,5 +406,5 @@
 			{
 				
-				$arAttribute = $this->db->fetchAssocField("SELECT `id` FROM `".WPSG_TBL_AT."`");
+				$arAttribute = $this->db->fetchAssocField("SELECT `id` FROM `".WPSG_TBL_AT."` ORDER BY `pos` ASC, `id` ASC ");
 			
 				foreach ((array)$arAttribute as $pa_id)
@@ -398,4 +418,21 @@
 			
 		} // public function notifyURL(&$url, &$produkt_key, &$menge, &$order_id, &$typ, &$arSend)
+		
+		/* Modulfunktionen */
+		
+		public function getProductAttributeByProductId($product_id)
+		{
+			
+			return $this->db->fetchAssoc("
+				SELECT
+					A.`id`, A.`name`, A.`typ`, PA.`value`, A.`auswahl`
+				FROM
+					`".WPSG_TBL_AT."` AS A
+						LEFT JOIN `".WPSG_TBL_PRODUCTS_AT."` AS PA ON (PA.`a_id` = A.`id` AND PA.`p_id` = '".wpsg_q($product_id)."')
+				ORDER BY
+					A.`pos` ASC, A.`id` ASC
+			"); 
+			
+		} // public function getProductAttributeByProductId($product_id)
 		
 		/**
@@ -435,4 +472,6 @@
 					PA.`a_id` = '".wpsg_q($pa_id)."' AND 
 					PA.`p_id` = '".wpsg_q($p_id)."'
+				ORDER BY
+					A.`pos` ASC, A.`id` ASC
 			");
 			 
@@ -473,6 +512,6 @@
 	
 			$this->shop->view['data'] = $this->db->fetchAssoc("
-					SELECT * FROM `".WPSG_TBL_AT."` ORDER BY `id` ASC
-				");
+				SELECT * FROM `".WPSG_TBL_AT."` ORDER BY `pos` ASC, `id` ASC
+			");
 				
 			$this->shop->render(WPSG_PATH_VIEW.'/mods/mod_produktattribute/list.phtml');
Index: /mods/wpsg_mod_produktbilder.class.php
===================================================================
--- /mods/wpsg_mod_produktbilder.class.php	(revision 5371)
+++ /mods/wpsg_mod_produktbilder.class.php	(revision 5382)
@@ -200,4 +200,12 @@
 		} // public function produkt_save(&$produkt_id)
 		
+		public function produkt_del($product_id)
+		{
+			
+			$path_bilder = $this->getPicPath($product_id);
+			wpsg_rrmdir($path_bilder);
+			
+		} // public function produkt_del(&$product_id)
+		 
 		public function produkt_edit_content(&$produkt_data) 
 		{ 
@@ -395,6 +403,4 @@
 
  		/**
- 		 * VERALTET! Erstellt das Thumbnail zu dem Bild $file aus dem Produkt $p_id
- 		 *
  		 * @param int $p_id Id des Produktes
  		 * @param String $file Dateiname des Bildes (Ohne Pfad)
Index: /mods/wpsg_mod_rechnungen.class.php
===================================================================
--- /mods/wpsg_mod_rechnungen.class.php	(revision 5371)
+++ /mods/wpsg_mod_rechnungen.class.php	(revision 5382)
@@ -50,5 +50,5 @@
 						
 		} // public function __construct()
-		
+		 
 		public function install() 
 		{ 
@@ -476,7 +476,7 @@
 				*/
 				
-				include WPSG_PATH_LIB.'fpdf/fpdf.php';
-				include WPSG_PATH_LIB.'fpdf/fpdi.php';
-				include WPSG_PATH_MOD.'/mod_rechnungen/wpsg_fpdf.class.php';
+				require_once WPSG_PATH_LIB.'fpdf/fpdf.php';
+				require_once WPSG_PATH_LIB.'fpdf/fpdi.php';
+				require_once WPSG_PATH_LIB.'wpsg_fpdf.class.php';
 				
 				$pdf = new wpsg_fpdf(); 
Index: /mods/wpsg_mod_relatedproducts.class.php
===================================================================
--- /mods/wpsg_mod_relatedproducts.class.php	(revision 5371)
+++ /mods/wpsg_mod_relatedproducts.class.php	(revision 5382)
@@ -75,4 +75,7 @@
 			$this->shop->update_option('wpsg_mod_relatedproducts_showBasketLimit', $_REQUEST['wpsg_mod_relatedproducts_showBasketLimit']);
 			$this->shop->update_option('wpsg_mod_relatedproducts_showBasketTemplate', $_REQUEST['wpsg_mod_relatedproducts_showBasketTemplate']);
+			$this->shop->update_option('wpsg_mod_relatedproducts_showAjaxDialog', $_REQUEST['wpsg_mod_relatedproducts_showAjaxDialog']);
+			$this->shop->update_option('wpsg_mod_relatedproducts_showAjaxDialogLimit', $_REQUEST['wpsg_mod_relatedproducts_showAjaxDialogLimit']);
+			$this->shop->update_option('wpsg_mod_relatedproducts_showAjaxDialogTemplate', $_REQUEST['wpsg_mod_relatedproducts_showAjaxDialogTemplate']);
 			
 		} // public function settings_save
@@ -322,5 +325,5 @@
 			}
 			
-		} // public function getRelatedProducts($produkt_id)
+		} // public function getRelatedProducts($produkt_id)		
 		
 	} // class wpsg_mod_relatedproducts extends wpsg_mod_basic
Index: /mods/wpsg_mod_request.class.php
===================================================================
--- /mods/wpsg_mod_request.class.php	(revision 5371)
+++ /mods/wpsg_mod_request.class.php	(revision 5382)
@@ -271,4 +271,12 @@
 			
 			if ($this->shop->hasMod('wpsg_mod_ordervars') && wpsg_isSizedInt($this->shop->get_option('wpsg_mod_request_ordervars'))) $this->shop->view['orderVars'] = $this->shop->callMod('wpsg_mod_ordervars', 'getOrderVars');
+			
+			if (wpsg_isSizedArray($_SESSION['wpsg']['wpsg_mod_request']['error']))
+			{
+				
+				$this->shop->view['error'] = $_SESSION['wpsg']['wpsg_mod_request']['error'];
+				unset($_SESSION['wpsg']['wpsg_mod_request']['error']);
+				
+			}
 			
 			$content = $this->shop->render(WPSG_PATH_VIEW.'/mods/mod_request/requestpage.phtml', false);
@@ -347,4 +355,18 @@
 				'ov' => array()
 			);
+			
+			if ($this->shop->hasMod('wpsg_mod_kundenverwaltung'))
+			{
+				
+				$customer_login_id = $this->shop->callMod('wpsg_mod_kundenverwaltung', 'isLoggedIn');
+			
+				if (wpsg_isSizedInt($customer_login_id))
+				{
+					 
+					$arReturn['customer'] = $_SESSION['wpsg']['checkout'];
+					 
+				}
+				
+			}
 						
 			foreach ((array)$_SESSION['wpsg']['wpsg_mod_request']['products'] as $ses_key => $ses_product)
@@ -479,4 +501,5 @@
 			{
 				
+				$_SESSION['wpsg']['wpsg_mod_request']['error'][] = 'email';
 				$this->shop->addFrontendError(__('Bitte ÃŒberprÃŒfen Sie die Eingaben in der E-Mail BestÃ€tigung!', 'wpsg'));
 				$bOK = false;
@@ -495,9 +518,11 @@
 						$bOK = false;
 						
+						$_SESSION['wpsg']['wpsg_mod_request']['error'][] = $k;
+						
 						switch ($k)
 						{
 							
 							case 'firma'; $this->shop->addFrontendError(__('Bitte im Feld "Firma" eine Angabe machen!'. 'wpsg')); break;
-							case 'vname': $this->shop->addFrontendError(__('Bitte im Feld "Vorname" eine Angabe machen!', 'wpsg')); break;
+							case 'vname': $this->shop->addFrontendError(__('Bitte im Feld "Vorname" eine Angabe machen!', 'wpsg')); break;							
 							case 'name': $this->shop->addFrontendError(__('Bitte im Feld "Name" eine Angabe machen!', 'wpsg')); break; 
 							case 'fax': $this->shop->addFrontendError(__('Bitte die Eingaben im Feld "Fax" ÃŒberprÃŒfen!', 'wpsg')); break;
@@ -514,16 +539,25 @@
 				}
 				//else if (array_key_exists($k, $required_fields) && $required_fields[$k] != 1 && $k === "geb" && !wspg_isValidGeb($v))
-				if (
-						(wspg_isValidGeb($v) && wpsg_isSizedString($v)) ||
-						!array_key_exists($k, $required_fields)
-				)
-				{
-					
+				else if ($k === "geb" && 
+						(
+							($required_fields[$k] != '1' && !wspg_isValidGeb($v)) ||
+							(wpsg_isSizedString($v) && !wspg_isValidGeb($v))
+						)
+					) 
+				{ 
+					
+					$_SESSION['wpsg']['wpsg_mod_request']['error'][] = 'geb';
 					$bOK = false; $this->shop->addFrontendError(__('Bitte die Eingabe im Feld "Geburtsdatum" ÃŒberprÃŒfen!', 'wpsg'));
 					
 				}
-				else if (array_key_exists($k, $required_fields) && $required_fields[$k] != 1 && $k === "email" && !wpsg_isValidEMail($v))
-				{
-					
+				else if ($k == 'email' &&
+						(
+							($required_fields[$k] != '1' && !wpsg_isValidEMail($v)) ||
+							(wpsg_isSizedString($v) && !wpsg_isValidEMail($v))
+						)
+					)
+				{
+					
+					$_SESSION['wpsg']['wpsg_mod_request']['error'][] = 'email';
 					$bOK = false; $this->shop->addFrontendError(__('Bitte die Eingabe der E-Mail Adresse ÃŒberprÃŒfen!', 'wspg'));
 					
@@ -532,4 +566,5 @@
 				{
 					
+					$_SESSION['wpsg']['wpsg_mod_request']['error'][] = 'land';
 					$bOK = false; $this->shop->addFrontendError(__('Bitte ein Land auswÃ€hlen!', 'wpsg'));
 					
@@ -538,4 +573,5 @@
 				{
 					
+					$_SESSION['wpsg']['wpsg_mod_request']['error'][] = 'title';
 					$bOK = false; $this->shop->addFrontendError('Bitte im Feld "Anrede" eine Angabe machen!', 'wpsg');
 					
@@ -558,4 +594,5 @@
 									
 									// Textfeld ist leer
+									$_SESSION['wpsg']['wpsg_mod_request']['error'][] = 'custom_'.$custom_key;
 									$bOK = false; $this->shop->addFrontendError(wpsg_translate(__('Bitte machen Sie in Feld "#1#" eine Angabe!', 'wpsg'), __($required_fields['custom'][$custom_key]['name'], 'wpsg')));
 																			
@@ -570,4 +607,5 @@
 									{
 										
+										$_SESSION['wpsg']['wpsg_mod_request']['error'][] = 'custom_'.$custom_key;
 										$bOK = false; $this->shop->addFrontendError(wpsg_translate(__('Bitte eine Auswahl im Feld "#1#" treffen!', 'wpsg'), __($required_fields['custom'][$custom_key]['name'], 'wpsg')));
 										
@@ -579,4 +617,5 @@
 									
 									// Checkbox nicht aktiv
+									$_SESSION['wpsg']['wpsg_mod_request']['error'][] = 'custom_'.$custom_key;
 									$bOK = false; $this->shop->addFrontendError(wpsg_translate(__('Bitte "#1#" akzeptieren!', 'wpsg'), __($required_fields['custom'][$custom_key]['name'], 'wpsg')));
 									
@@ -614,4 +653,5 @@
 							{
 									
+								$_SESSION['wpsg']['wpsg_mod_request']['error'][] = 'ov_'.$ov_id;
 								$bOK = false; $this->shop->addFrontendError(wpsg_translate(__('Bitte eine Auswahl im Feld "#1#" treffen!', 'wpsg'), $ov_db[$ov_id]['name']));
 									
@@ -622,4 +662,5 @@
 						{
 							
+							$_SESSION['wpsg']['wpsg_mod_request']['error'][] = 'ov_'.$ov_id;
 							$bOK = false; $this->shop->addFrontendError(wpsg_translate(__('Bitte machen Sie in Feld "#1#" eine Angabe!', 'wpsg'), $ov_db[$ov_id]['name']));
 							
@@ -628,4 +669,5 @@
 						{
 							
+							$_SESSION['wpsg']['wpsg_mod_request']['error'][] = 'ov_'.$ov_id;
 							$bOK = false; $this->shop->addFrontendError(wpsg_translate(__('Bitte "#1#" akzeptieren!', 'wpsg'), $ov_db[$ov_id]['name']));
 							
@@ -659,4 +701,5 @@
 							{
 								
+								$_SESSION['wpsg']['wpsg_mod_request']['error'][] = 'pv_'.$pv['id'];
 								$bOK = false; $this->shop->addFrontendError(wpsg_translate(__('Bitte eine Auswahl im Feld "#1#" in Produkt "#2#" treffen!', 'wpsg'), $pv['name'], $request_product['product_data']['name']));
 								
@@ -668,4 +711,5 @@
 							
 							// Kein Text
+							$_SESSION['wpsg']['wpsg_mod_request']['error'][] = 'pv_'.$pv['id'];
 							$bOK = false; $this->shop->addFrontendError(wpsg_translate(__('Bitte machen Sie eine Angabe im Feld "#1#" in Produkt "#2#"!', 'wpsg'), $pv['name'], $request_product['product_data']['name']));
 							
@@ -675,4 +719,5 @@
 							
 							// Checkbox nicht aktiviert
+							$_SESSION['wpsg']['wpsg_mod_request']['error'][] = 'pv_'.$pv['id'];
 							$bOK = false; $this->shop->addFrontendError(wpsg_translate(__('Bitte akzeptieren Sie "#1#" in Produkt "#2#"!', 'wpsg'), $pv['name'], $request_product['product_data']['name']));
 							
Index: /mods/wpsg_mod_shs.class.php
===================================================================
--- /mods/wpsg_mod_shs.class.php	(revision 5371)
+++ /mods/wpsg_mod_shs.class.php	(revision 5382)
@@ -210,5 +210,5 @@
 			}
 			
-			if (isset($_REQUEST['wpsg_checkout2']))
+			if (isset($_REQUEST['wpsg_checkout2']) || ($this->shop->hasMod('wpsg_mod_onepagecheckout') && isset($_REQUEST['wpsg_checkout'])))
 			{
 			
Index: /mods/wpsg_mod_skrill.class.php
===================================================================
--- /mods/wpsg_mod_skrill.class.php	(revision 5371)
+++ /mods/wpsg_mod_skrill.class.php	(revision 5382)
@@ -117,9 +117,9 @@
 				'mwst_value' => $mwst_value,
 				'mwst_null' => $this->shop->get_option('wpsg_mod_skrill_mwstland'),
-				'logo' => WPSG_URL_CONTENT.'plugins/wpshopgermany/views/gfx/skrill.png',
+				'logo' => WPSG_URL_CONTENT.'plugins/'.WPSG_FOLDERNAME.'/views/gfx/skrill.png',
 				'logo_100x25' => $this->shop->getRessourceURL('mods/mod_skrill/gfx/logo_100x25.png')
 			);
 			
-			if (isset($_REQUEST['wpsg_checkout2']))
+			if (isset($_REQUEST['wpsg_checkout2']) || ($this->shop->hasMod('wpsg_mod_onepagecheckout') && isset($_REQUEST['wpsg_checkout'])))
 			{
 
Index: /mods/wpsg_mod_statistics.class.php
===================================================================
--- /mods/wpsg_mod_statistics.class.php	(revision 5371)
+++ /mods/wpsg_mod_statistics.class.php	(revision 5382)
@@ -515,5 +515,5 @@
 					foreach ($this->shop->view['charts'][$_REQUEST['id']]['type'][$_REQUEST['type']]['js'] as $index => $value)
 					{
-						wp_enqueue_script($index, WPSG_URL_CONTENT.'plugins/wpshopgermany/'.$value);		
+						wp_enqueue_script($index, WPSG_URL_CONTENT.'plugins/'.WPSG_FOLDERNAME.'/'.$value);		
 					}	
 				}
@@ -523,5 +523,5 @@
 					foreach ($this->shop->view['charts'][$_REQUEST['id']]['type'][$_REQUEST['type']]['css'] as $index => $value)
 					{
-						wp_enqueue_style($index, WPSG_URL_CONTENT.'plugins/wpshopgermany/'.$value);		
+						wp_enqueue_style($index, WPSG_URL_CONTENT.'plugins/'.WPSG_FOLDERNAME.'/'.$value);		
 					}	
 				}
@@ -580,5 +580,5 @@
 			if (isset($_REQUEST['page']) && $_REQUEST['page'] == 'wpsg-Statistics')
 			{
-				wp_enqueue_style('wpsg_mod_statistics_css_jqplot', WPSG_URL_CONTENT.'plugins/wpshopgermany/lib/jqplot/jquery.jqplot.css');
+				wp_enqueue_style('wpsg_mod_statistics_css_jqplot', WPSG_URL_CONTENT.'plugins/'.WPSG_FOLDERNAME.'/lib/jqplot/jquery.jqplot.css');
 			}
 			
Index: /mods/wpsg_mod_stock.class.php
===================================================================
--- /mods/wpsg_mod_stock.class.php	(revision 5371)
+++ /mods/wpsg_mod_stock.class.php	(revision 5382)
@@ -364,4 +364,38 @@
 		}
 		
+		public function checkCheckout(&$state, &$error, &$arCheckout) 
+		{ 
+			
+			if (!wpsg_isSizedInt($this->shop->get_option('wpsg_mod_stock_allow')) || $state !== true) return;
+			
+			foreach ((array)$this->shop->basket->arProdukte as $product_data)
+			{
+				
+				if (!$this->checkBestand($product_data['id'], $product_data['menge']))
+				{
+					
+					$nStockAvailable = $this->getBestand($product_data['id']);
+					
+					if ($nStockAvailable <= 0)
+					{
+						
+						$this->shop->addFrontendError(
+							wpsg_translate(
+								__('Der Lagerbestand von Produkt "#1#" hat sich zwischenzeitlich verÃ€ndert. Es sind nur noch #1# StÃŒck verfÃŒgbar.', 'wpsg'),
+								$this->shop->getProductName($product_data['id']),
+								$nStockAvailable
+							)
+						);
+						
+						$error = true;
+						
+					}
+					 
+				}
+				
+			} 
+			
+		} // public function checkCheckout(&$state, &$error, &$arCheckout)
+		
 		/* Modulfunktionen */
 		
@@ -519,4 +553,6 @@
 		public function basket_save_product(&$data, &$product_data_db, $finish_order) 
 		{ 
+			
+			return;
 
 			if ($finish_order !== true) return;
@@ -562,4 +598,73 @@
 		} // public function basket_save_product(&$data, &$product_data)
 				
+		/* Modulfunktionen */
+		
+		public function checkReduceStock(&$data, &$product_data)
+		{
+			
+			$product_id = $this->shop->getProduktID($data['productkey']);
+			
+			// Tabellen sperren
+			if ($this->shop->get_option('wpsg_lockOrderTables') != '1')
+			{
+				
+				$arLockTables[WPSG_TBL_PRODUCTS] = "WRITE";				
+				if ($this->shop->hasMod('wpsg_mod_productgroups')) $arLockTables[WPSG_TBL_PRODUCTS_GROUP] = "WRITE";
+								
+				$strQuery = "LOCK TABLES ";					
+				foreach ($arLockTables as $table_name => $locktype) $strQuery .= " `".$table_name."` ".$locktype.",";
+				$this->db->Query(substr($strQuery, 0, -1));
+				
+			}
+			
+			//sleep(20);
+			
+			$product_data = $this->db->fetchRow("SELECT * FROM `".WPSG_TBL_PRODUCTS."` WHERE `id` = '".wpsg_q($product_id)."' ");
+			$stock = $data['menge'];
+			
+			// Fehlerbehandlung fÃŒr Produktbestand
+			if ($product_data['stock_count'] == '1' && $stock > $product_data['stock']) return false;
+			
+			if ($this->shop->hasMod('wpsg_mod_productgroups'))
+			{
+					
+				$pgroup = $this->db->fetchRow("SELECT `stock_aktiv`, `stock_value` FROM `".WPSG_TBL_PRODUCTS_GROUP."` WHERE `id` = '".wpsg_q($product_data['pgruppe'])."' ");
+					
+				if ($pgroup['stock_aktiv'] == '1')
+				{
+					
+					if ($pgroup['stock_aktiv'] == '1' && $stock > $pgroup['stock_value']) return false;
+			
+					$this->db->Query("
+						UPDATE `".WPSG_TBL_PRODUCTS_GROUP."` SET `stock_value` = `stock_value` - '".wpsg_q($stock)."' WHERE `id` = '".wpsg_q($product_data['pgruppe'])."'
+					");
+				}
+					
+			}
+			
+			// Lagerbestand im Produkt zÃ€hlen?
+			if ($product_data['stock_count'] == '1')
+			{
+				
+				if ($this->shop->hasMod('wpsg_mod_varianten') && preg_match('/^vp_(.*)/', $data['productkey']))
+				{
+						
+					// Bestand der Variationen runterzÃ€hlen
+					$this->shop->callMod('wpsg_mod_varianten', 'reduceStock', array($data['productkey'], $stock));
+						
+				}
+				
+				// Im Produkt selbst runterzÃ€hlen
+				$this->db->Query("UPDATE `".WPSG_TBL_PRODUCTS."` SET `stock` = `stock` - '".wpsg_q($stock)."' WHERE `id` = '".wpsg_q($product_id)."' ");
+				
+			}
+			
+			// Tabellen entsperren			
+			$this->db->Query("UNLOCK TABLES");
+			
+			return true;
+			
+		} // public function checkReduceStock(&$data, &$product_data)
+		
 	} // class wpsg_mod_stock extends wpsg_mod_basic
 
Index: /mods/wpsg_mod_su.class.php
===================================================================
--- /mods/wpsg_mod_su.class.php	(revision 5371)
+++ /mods/wpsg_mod_su.class.php	(revision 5382)
@@ -151,5 +151,5 @@
 			);
 			
-			if (isset($_REQUEST['wpsg_checkout2']))
+			if (isset($_REQUEST['wpsg_checkout2']) || ($this->shop->hasMod('wpsg_mod_onepagecheckout') && isset($_REQUEST['wpsg_checkout'])))
 			{
 
Index: /mods/wpsg_mod_test.class.php
===================================================================
--- /mods/wpsg_mod_test.class.php	(revision 5371)
+++ /mods/wpsg_mod_test.class.php	(revision 5382)
@@ -115,4 +115,12 @@
 			));
 			
+			$this->db->ImportQuery(WPSG_TBL_PRODUCTS, array(
+				'id' => '8',
+				'cdate' => 'NOW()',
+				'name' => 'Produkt 19%',
+				'preis' => '20.08',
+				'mwst_key' => 'c'
+			));
+			
 			$this->db->ImportQuery(WPSG_TBL_VA, array(
 				'id' => '1',
@@ -162,5 +170,5 @@
 			
 			$this->shop->wp_load();
-   						 			
+   			
 			if ($this->shop->hasMod('wpsg_mod_gutschein'))
 			{
@@ -211,6 +219,7 @@
 			$this->test16();
 			$this->test17();
-			$this->test18();
-						 						
+			$this->test18();		 						 	
+			$this->test19();
+					
 			$this->restoreConfig();
 			 									
@@ -329,4 +338,49 @@
 						
 		} // public function restoreConfig()
+		
+		/*
+		 * http://forum.maennchen1.de/viewtopic.php?f=13&t=6834&start=30
+		 * 20,08 Brutto
+		 * - Frontend Netto
+		 * - 7 im Warenkorb 
+		 */
+		private function test19()
+		{
+			
+			$this->resetConfig();
+			
+			$this->shop->update_option('wpsg_preisangaben', WPSG_BRUTTO);
+			$this->shop->update_option('wpsg_preisangaben_frontend', WPSG_BRUTTO);
+			
+			$_SESSION['wpsg']['basket'] = array(
+				0 => array(
+					'menge' => 7,
+					'id' => 8
+				)
+			);
+			
+			$basket = new wpsg_basket();
+			$basket->initFromSession();
+			
+			$this->shop->view['test'][] = array(
+				'label' => '1 Produkte (20,08Brutto * 7)',
+				'tests' => array(
+					'sum/mwst' => array(false, 22.44),
+					'sum/preis_netto' => array(false, 118.12),
+					'sum/preis_brutto' => array(false, 140.56),
+					/*'sum/preis' => array(false, 140.56),
+					'sum/preis_gesamt_netto' => array(false, 200),
+					'sum/preis_gesamt_brutto' => array(false, 226),
+					'sum/preis_gesamt' => array(false, 226),
+					'mwst/b_1/base_value' => array(false, 107),
+					'mwst/b_1/sum' => array(false, 7),
+					'mwst/c_1/base_value' => array(false, 119),
+					'mwst/c_1/sum' => array(false, 19),*/
+				),
+				'array' => $basket->toArray(),
+				'config' => $this->showConfiguration()
+			);
+			
+		} // private function test19()
 		
 		/**
@@ -876,10 +930,10 @@
 				'tests' => array(
 					'sum/mwst' => array(false, 77.516806722689),
-					'sum/preis_netto' => array(false, 407.98319327731),
+					'sum/preis_netto' => array(false, 407.98),
 					'sum/preis_brutto' => array(false, 485.5),
-					'sum/preis' => array(false, 407.98319327731),		
-					'sum/preis_gesamt_netto' => array(false, 407.98319327731),
+					'sum/preis' => array(false, 407.98),		
+					'sum/preis_gesamt_netto' => array(false, 407.98),
 					'sum/preis_gesamt_brutto' => array(false, 485.5),
-					'sum/preis_gesamt' => array(false, 407.98319327731),						
+					'sum/preis_gesamt' => array(false, 407.98),						
 					'sum/gs_netto' => array(false, 50),
 					'sum/gs_brutto' => array(false, 59.5),
Index: /mods/wpsg_mod_userpayment.class.php
===================================================================
--- /mods/wpsg_mod_userpayment.class.php	(revision 5371)
+++ /mods/wpsg_mod_userpayment.class.php	(revision 5382)
@@ -165,5 +165,5 @@
 		{ 
 
-			if (isset($_REQUEST['wpsg_checkout2']))
+			if (isset($_REQUEST['wpsg_checkout2']) || ($this->shop->hasMod('wpsg_mod_onepagecheckout') && isset($_REQUEST['wpsg_checkout'])))
 			{
 
@@ -197,5 +197,5 @@
 				);	
 				
-				if (isset($_REQUEST['wpsg_checkout2']))
+				if (isset($_REQUEST['wpsg_checkout2']) || ($this->shop->hasMod('wpsg_mod_onepagecheckout') && isset($_REQUEST['wpsg_checkout'])))
 				{
 				
Index: /mods/wpsg_mod_versandarten.class.php
===================================================================
--- /mods/wpsg_mod_versandarten.class.php	(revision 5371)
+++ /mods/wpsg_mod_versandarten.class.php	(revision 5382)
@@ -222,5 +222,5 @@
 		public function addShipping(&$arShipping) 
 		{
-			
+			 
 			// Im Checkout2 wird der Wert berechnet und eventuell nicht verfÃŒgbare VA ausgeschlossen
 			//if (isset($_REQUEST['wpsg_checkout2']))
@@ -238,5 +238,5 @@
 					$land = $arBasket['checkout']['land'];
 				}
-				
+				 
 				$vz = $this->db->fetchOne("SELECT `vz` FROM `".WPSG_TBL_LAND."` WHERE `id` = '".wpsg_q($land)."'"); 
 				
@@ -307,7 +307,7 @@
 					
 					if ($arBasket['noMwSt'] == '1') $shipping_brutto = $shipping_netto;
-					 
+					
 					// Entsprechenden Preis anzeigen
-					if ($this->shop->getFrontendTaxview() == WPSG_NETTO || $arBasket['noMwst'] == '1')
+					if ($this->shop->getFrontendTaxview() == WPSG_NETTO || @$arBasket['noMwst'] == '1')
 					{
 						
@@ -325,5 +325,5 @@
 								
 			}
-	 
+			 
 		} // public function addShipping(&$arShipping)
 		
@@ -368,5 +368,5 @@
 					
 					$arBasket['shipping']['mwst'] = 0;
-					$this->shop->arShipping[$arBasket['checkout']['shipping']]['mwst_value'] = 0;
+					if (array_key_exists($arBasket['checkout']['shipping'], $this->shop->arShipping)) $this->shop->arShipping[$arBasket['checkout']['shipping']]['mwst_value'] = 0;
 					
 					$arBasket['shipping']['tax_rata'] = false;
@@ -517,9 +517,9 @@
 			$arPLZ = wpsg_trim(preg_split("/\r|\n/", $this->db->fetchOne("
 				SELECT
-					VZ.`param`
+					`param`
 				FROM
-					`".WPSG_TBL_VZ."` AS VZ
+					`".WPSG_TBL_VZ."` 
 				WHERE
-					VZ.`id` = '".wpsg_q($vz_id)."'
+					`id` = '".wpsg_q($vz_id)."'
 			")));
 			
Index: /mods/wpsg_mod_voucherproduct.class.php
===================================================================
--- /mods/wpsg_mod_voucherproduct.class.php	(revision 5371)
+++ /mods/wpsg_mod_voucherproduct.class.php	(revision 5382)
@@ -235,5 +235,5 @@
 					$mail_text = $this->shop->render(WPSG_PATH_VIEW.'/mods/mod_voucherproduct/gutschein_mail.phtml', false);
 				
-					if ($this->shop->htmlMail === true)
+					if ($this->get_option('wpsg_htmlmail') === '1')
 					{
 						
@@ -619,7 +619,7 @@
 			if ($this->shop->isMultiBlog())
 			{
-
-				$path = UPLOADS.'/wpsg/wpsg_mod_gutscheinprodukt/'.$order_id;
-				$htaccess = UPLOADS.'/wpsg/wpsg_mod_gutscheinprodukt/.htaccess';
+				
+				$path = WP_CONTENT_DIR.'/'.WPSG_MB_UPLOADS.'/wpsg/wpsg_mod_gutscheinprodukt/'.$order_id.'/'; 
+				$htaccess = WP_CONTENT_DIR.'/'.WPSG_MB_UPLOADS.'/wpsg/wpsg_mod_gutscheinprodukt/.htaccess'; 
 				
 				$strReturn = $path.'/'.$order_id.'/';
Index: /mods/wpsg_mod_weight.class.php
===================================================================
--- /mods/wpsg_mod_weight.class.php	(revision 5371)
+++ /mods/wpsg_mod_weight.class.php	(revision 5382)
@@ -80,4 +80,5 @@
 			$this->shop->update_option('wpsg_mod_weight_showProduct', $_REQUEST['wpsg_mod_weight_showProduct']);			
 			$this->shop->update_option('wpsg_mod_weight_showBasket', $_REQUEST['wpsg_mod_weight_showBasket']);
+			$this->shop->update_option('wpsg_mod_weight_showAjaxDialog', $_REQUEST['wpsg_mod_weight_showAjaxDialog']);
 			$this->shop->update_option('wpsg_mod_weight_showBasketProduct', $_REQUEST['wpsg_mod_weight_showBasketProduct']);
 			$this->shop->update_option('wpsg_mod_weight_showOverview', $_REQUEST['wpsg_mod_weight_showOverview']);
@@ -212,5 +213,5 @@
 		} // public function basket_save_order(&$data, &$checkout, &$arBasket, $finish_order)
 		
-		public function basket_save_product(&$data, &$product_data) 
+		public function basket_save_product(&$data, &$product_data, $finish_order) 
 		{ 
 
Index: /mods/wpsg_mod_willcollect.class.php
===================================================================
--- /mods/wpsg_mod_willcollect.class.php	(revision 5371)
+++ /mods/wpsg_mod_willcollect.class.php	(revision 5382)
@@ -62,4 +62,5 @@
 			$this->shop->update_option('wpsg_mod_willcollect_hint', $_REQUEST['wpsg_mod_willcollect_hint']);
 			$this->shop->update_option('wpsg_mod_willcollect_paymentneed', $_REQUEST['wpsg_mod_willcollect_paymentneed']);
+			$this->shop->update_option('wpsg_mod_willcollect_dontMerge', $_REQUEST['wpsg_mod_willcollect_dontMerge']);
 			
 			$this->shop->update_option('wpsg_mod_willcollect_adress', $_REQUEST['wpsg_mod_willcollect_adress']);
@@ -151,5 +152,5 @@
 				);
 				
-				if (isset($_REQUEST['wpsg_checkout2']))
+				if (isset($_REQUEST['wpsg_checkout2']) || ($this->shop->hasMod('wpsg_mod_onepagecheckout') && isset($_REQUEST['wpsg_checkout'])))
 				{
 					
@@ -295,5 +296,5 @@
 				$shipping_price = $this->getPreis($this->shop->get_option('wpsg_mod_willcollect_gebuehr'), $arBasket['sum']['preis']);
 				
-				if ($va['mwst_akt'] != '1' && $arBasket['noMwSt'])
+				if ($arBasket['noMwSt'])
 				{
 					
Index: /mods/wpsg_mod_wirecard.class.php
===================================================================
--- /mods/wpsg_mod_wirecard.class.php	(revision 5371)
+++ /mods/wpsg_mod_wirecard.class.php	(revision 5382)
@@ -183,5 +183,5 @@
 			$arPayment[$this->id]['hint'] = $this->shop->render(WPSG_PATH_VIEW.'/mods/mod_wirecard/paymenthint.phtml', false);
 							
-			if (isset($_REQUEST['wpsg_checkout2']))
+			if (isset($_REQUEST['wpsg_checkout2']) || ($this->shop->hasMod('wpsg_mod_onepagecheckout') && isset($_REQUEST['wpsg_checkout'])))
 			{
 			
Index: /system/parseChangelog.php
===================================================================
--- /system/parseChangelog.php	(revision 5371)
+++ /system/parseChangelog.php	(revision 5382)
@@ -77,4 +77,5 @@
 
 		// Klasse fÃŒr XML-RPC Schnittstelle einbinden und aufrufen
+		require($wp_home.'/wp-load.php');
 		require($wp_home.'/wp-includes/class-IXR.php');
 		$rpc = new IXR_Client('http://wpshopgermany.maennchen1.de/xmlrpc.php');
Index: /views/admin/customerpreset.phtml
===================================================================
--- /views/admin/customerpreset.phtml	(revision 5371)
+++ /views/admin/customerpreset.phtml	(revision 5382)
@@ -25,10 +25,10 @@
 	<form name="form1" method="post" enctype="multipart/form-data" action="<?php echo WPSG_URL_WP; ?>wp-admin/admin.php?page=wpsg-Admin&amp;noheader=1&amp;subaction=<?php echo $_REQUEST['subaction']; ?>">
 
-		<?php echo wpsg_drawForm_Select('wpsg_customerpreset_shipping', __('Standard Versandart', 'wpsg'), $this->view['arShipping'], $this->get_option('wpsg_customerpreset_shipping')); ?>
-		<?php echo wpsg_drawForm_Select('wpsg_customerpreset_payment', __('Standard Zahlungsart', 'wpsg'), $this->view['arPayment'], $this->get_option('wpsg_customerpreset_payment')); ?>
-		<?php echo wpsg_drawForm_Select('wpsg_defaultland', __('Standardland', 'wpsg'), $this->view['arLander'], $this->get_option('wpsg_defaultland'), array('hint' => 
+		<?php echo wpsg_drawForm_Select('wpsg_customerpreset_shipping', __('Standard Versandart', 'wpsg'), $this->view['arShipping'], $this->get_option('wpsg_customerpreset_shipping'), array('help' => 'wpsg_customerpreset_shipping')); ?>
+		<?php echo wpsg_drawForm_Select('wpsg_customerpreset_payment', __('Standard Zahlungsart', 'wpsg'), $this->view['arPayment'], $this->get_option('wpsg_customerpreset_payment'), array('help' => 'wpsg_customerpreset_payment')); ?>
+		<?php echo wpsg_drawForm_Select('wpsg_defaultland', __('Standardland', 'wpsg'), $this->view['arLander'], $this->get_option('wpsg_defaultland'), array('help' => 'wpsg_defaultland', 'hint' => 
 			'nohspc_'.wpsg_translate(__('Die LÃ€nder kÃ¶nnen in der <a href="#1#">LÃ€nderverwaltung</a> definiert werden.', 'wpsg'), WPSG_URL_WP.'wp-admin/admin.php?page=wpsg-Admin&subaction=laender')		
 		)); ?>
-		<?php echo wpsg_drawForm_Select('wpsg_customerpreset_title', __('Standardanrede', 'wpsg'), $this->view['arTitle'], $this->get_option('wpsg_customerpreset_title'), array(
+		<?php echo wpsg_drawForm_Select('wpsg_customerpreset_title', __('Standardanrede', 'wpsg'), $this->view['arTitle'], $this->get_option('wpsg_customerpreset_title'), array( 'help' => 'wpsg_customerpreset_title',
 			'hint' => 'nohspc_'.wpsg_translate(__('Die Auswahl kann in den <a href="#1#">Kundendaten</a> definiert werden.', 'wpsg'), WPSG_URL_WP.'wp-admin/admin.php?page=wpsg-Admin&subaction=kundendaten'),
 			'noIndex' => true 
Index: /views/admin/extended.phtml
===================================================================
--- /views/admin/extended.phtml	(revision 5371)
+++ /views/admin/extended.phtml	(revision 5382)
@@ -25,23 +25,24 @@
 	
 		<?php echo wpsg_drawForm_Input('wpsg_salt', __('SALT SchlÃŒssel', 'wpsg'), $this->get_option('wpsg_salt')); ?>
-		<?php echo wpsg_drawForm_Checkbox('wpsg_options_nl2br', __('RTE Felder mit nl2br speichern', 'wpsg'), $this->get_option('wpsg_options_nl2br')); ?>
-		<?php echo wpsg_drawForm_Checkbox('wpsg_debugModus', __('Debug Modus', 'wpsg'), $this->get_option('wpsg_debugModus')); ?>
+		<?php echo wpsg_drawForm_Checkbox('wpsg_options_nl2br', __('RTE Felder mit nl2br speichern', 'wpsg'), $this->get_option('wpsg_options_nl2br'), array('help' => 'wpsg_options_nl2br')); ?>
+		<?php echo wpsg_drawForm_Checkbox('wpsg_debugModus', __('Debug Modus', 'wpsg'), $this->get_option('wpsg_debugModus'), array('help' => 'wpsg_debugModus')); ?>
 		
 		<?php if ($this->hasMod('wpsg_mod_core')) { ?>
-		<?php echo wpsg_drawForm_Checkbox('wpsg_debugURL', __('Beta Updates laden', 'wpsg'), $this->get_option('wpsg_debugURL')); ?>				
+		<?php echo wpsg_drawForm_Checkbox('wpsg_debugURL', __('Beta Updates laden', 'wpsg'), $this->get_option('wpsg_debugURL'), array('help' => 'wpsg_debugURL')); ?>				
 		<?php } ?>
 		
-		<?php echo wpsg_drawForm_Checkbox('wpsg_referer_requesturi', __('RequestURI als ProduktURL verwenden', 'wpsg'), $this->get_option('wpsg_referer_requesturi')); ?>
-		<?php echo wpsg_drawForm_Checkbox('wpsg_ignoreuserview', __('User Views ignorieren', 'wpsg'), $this->get_option('wpsg_ignoreuserview')); ?>		
+		<?php echo wpsg_drawForm_Checkbox('wpsg_referer_requesturi', __('RequestURI als ProduktURL verwenden', 'wpsg'), $this->get_option('wpsg_referer_requesturi'), array('help' => 'wpsg_referer_requesturi')); ?>
+		<?php echo wpsg_drawForm_Checkbox('wpsg_ignoreuserview', __('User Views ignorieren', 'wpsg'), $this->get_option('wpsg_ignoreuserview'), array('help' => 'wpsg_ignoreuserview')); ?>		
 		<?php echo wpsg_drawForm_Checkbox('wpsg_classicupload', __('Klassisches Upload Formular', 'wpsg'), $this->get_option('wpsg_classicupload')); ?>
 		<?php echo wpsg_drawForm_Checkbox('wpsg_content_filter_direct', __('Ausgaben im Warenkorb direkt ausgeben', 'wpsg'), $this->get_option('wpsg_content_filter_direct')); ?>
 		<?php echo wpsg_drawForm_Checkbox('wpsg_options_no_rte_apply_filter', __('ApplyFilter Funktion nicht anwenden', 'wpsg'), $this->get_option('wpsg_options_no_rte_apply_filter')); ?>
-		<?php echo wpsg_drawForm_Checkbox('wpsg_options_nl2br_out', __('RTE Felder mit nl2br ausgeben', 'wpsg'), $this->get_option('wpsg_options_nl2br_out')); ?>
-		<?php echo wpsg_drawForm_Checkbox('wpsg_impexp_clearlinebreak', __('ZeilenumbrÃŒche im Export entfernen', 'wpsg'), $this->get_option('wpsg_impexp_clearlinebreak')); ?>
+		<?php echo wpsg_drawForm_Checkbox('wpsg_options_nl2br_out', __('RTE Felder mit nl2br ausgeben', 'wpsg'), $this->get_option('wpsg_options_nl2br_out'), array('help' => 'wpsg_options_n12br_out')); ?>
+		<?php echo wpsg_drawForm_Checkbox('wpsg_impexp_clearlinebreak', __('ZeilenumbrÃŒche im Export entfernen', 'wpsg'), $this->get_option('wpsg_impexp_clearlinebreak'), array('help' => 'wpsg_impexp_clearlinebreak')); ?>
 		<?php echo wpsg_drawForm_Checkbox('wpsg_removeWpAutoOp', __('wpautop deaktivieren', 'wpsg'), $this->get_option('wpsg_removeWpAutoOp'), array('help' => 'wpsg_removeWpAutoOp')); ?>
-		<?php echo wpsg_drawForm_Checkbox('wpsg_removeWpTrimExcerpt', __('wp_trim_excerpt nicht verwenden', 'wpsg'), $this->get_option('wpsg_removeWpTrimExcerpt'), array('help' => 'wpsg_removeWpTrimExcerpt')); ?>		
+		<?php echo wpsg_drawForm_Checkbox('wpsg_removeWpTrimExcerpt', __('wp_trim_excerpt nicht verwenden', 'wpsg'), $this->get_option('wpsg_removeWpTrimExcerpt'), array('help' => 'wpsg_removeWpTrimExcerpt')); ?>
+		<?php echo wpsg_drawForm_Checkbox('wpsg_lockOrderTables', __('Bestellungen nicht mit LOCK TABLES verarbeiten', 'wpsg'), $this->get_option('wpsg_lockOrderTables'), array('help' => 'wpsg_lockOrderTables')); ?>		
 		<?php echo wpsg_drawForm_Checkbox('wpsg_autoraw', __('[raw] und [/raw] um Templates ausgeben (Frontend)', 'wpsg'), $this->get_option('wpsg_autoraw')); ?>
-		<?php echo wpsg_drawForm_Checkbox('wpsg_nocache', __('Cachen von dynamischen Shopseiten verhindern', 'wpsg'), $this->get_option('wpsg_nocache')); ?>
-		<?php echo wpsg_drawForm_Checkbox('wpsg_autolineending', __('MAC KompatibilitÃ€t bei Dateiimporten', 'wpsg'), $this->get_option('wpsg_autolineending')); ?>
+		<?php echo wpsg_drawForm_Checkbox('wpsg_nocache', __('Cachen von dynamischen Shopseiten verhindern', 'wpsg'), $this->get_option('wpsg_nocache'), array('help' => 'wpsg_nocache')); ?>
+		<?php echo wpsg_drawForm_Checkbox('wpsg_autolineending', __('MAC KompatibilitÃ€t bei Dateiimporten', 'wpsg'), $this->get_option('wpsg_autolineending'), array('help' => 'wpsg_autolineending')); ?>
 		<?php echo wpsg_drawForm_Select('wpsg_geo_determination', __('Abfrage des Kundenstandortes (EU-Leistungsortregel)', 'wpsg'), $this->view['arGeoMode'], $this->get_option('wpsg_geo_determination'), array('help' => 'wpsg_geo_determination')); ?>
 								
Index: /views/admin/form/checkbox.phtml
===================================================================
--- /views/admin/form/checkbox.phtml	(revision 5371)
+++ /views/admin/form/checkbox.phtml	(revision 5382)
@@ -1,3 +1,3 @@
-<div class="form-group">
+<div class="form-group form-group-sm form-checkbox">
 
 	<div class="col-sm-offset-6 col-sm-6">
Index: /views/admin/form/input.phtml
===================================================================
--- /views/admin/form/input.phtml	(revision 5371)
+++ /views/admin/form/input.phtml	(revision 5382)
@@ -1,8 +1,8 @@
-<div class="form-group">
+<div class="form-group form-group-sm">
 
 	<label class="col-sm-6 control-label" for="<?php echo $this->view['field_id']; ?>"><?php echo $this->view['field_label']; ?></label>
 	
 	<div class="col-sm-6">
-		<input type="text" class="form-control" name="<?php echo $this->view['field_name']; ?>" value="<?php echo wpsg_hspc($this->view['field_value']); ?>" id="<?php echo $this->view['field_id']; ?>" />
+		<input type="text" class="form-control input-sm" name="<?php echo $this->view['field_name']; ?>" value="<?php echo wpsg_hspc($this->view['field_value']); ?>" id="<?php echo $this->view['field_id']; ?>" />		
 	</div>
 	
Index: /views/admin/form/select.phtml
===================================================================
--- /views/admin/form/select.phtml	(revision 5371)
+++ /views/admin/form/select.phtml	(revision 5382)
@@ -1,3 +1,3 @@
-<div class="form-group">
+<div class="form-group form-group-sm">
 
 	<label class="col-sm-6 control-label" for="<?php echo $this->view['field_id']; ?>"><?php echo $this->view['field_label']; ?></label>
@@ -5,5 +5,5 @@
 	<div class="col-sm-6">
 		
-		<select id="<?php echo $this->view['field_id']; ?>" name="<?php echo $this->view['field_name']; ?>">
+		<select id="<?php echo $this->view['field_id']; ?>" name="<?php echo $this->view['field_name']; ?>" class="form-control input-sm">
 			<?php foreach ($this->view['field_values'] as $k => $v) { ?>
 			<option <?php echo (($k == $this->view['field_value'])?'selected="selected"':''); ?> value="<?php echo wpsg_hspc($k); ?>"><?php echo wpsg_hspc($v); ?></option>
Index: /views/admin/form/text.phtml
===================================================================
--- /views/admin/form/text.phtml	(revision 5371)
+++ /views/admin/form/text.phtml	(revision 5382)
@@ -1,8 +1,8 @@
-<div class="form-group">
+<div class="form-group form-group-sm">
 
 	<label class="control-label col-sm-6" for=""><?php echo $this->view['field_label']; ?></label>
 	
 	<div class="col-sm-6">
-		<p class="form-control-static"><?php echo wpsg_hspc($this->view['field_value']); ?></p>
+		<p class="form-control-static"><?php echo $this->view['field_value']; ?></p>
 	</div>
 	
Index: /views/admin/includes.phtml
===================================================================
--- /views/admin/includes.phtml	(revision 5371)
+++ /views/admin/includes.phtml	(revision 5382)
@@ -24,10 +24,10 @@
 	<form name="form1" method="post" enctype="multipart/form-data" action="<?php echo WPSG_URL_WP; ?>wp-admin/admin.php?page=wpsg-Admin&amp;subaction=<?php echo $_REQUEST['subaction']; ?>&amp;noheader=1">
 		
-		<?php echo wpsg_drawForm_Checkbox('wpsg_load_css', __('Shop CSS styles nicht einbinden', 'wpsg'), $this->get_option('wpsg_load_css')); ?>
+		<?php echo wpsg_drawForm_Checkbox('wpsg_load_css', __('Shop CSS styles nicht einbinden', 'wpsg'), $this->get_option('wpsg_load_css'), array('help' => 'wpsg_load_css')); ?>
 		<?php echo wpsg_drawForm_Checkbox('wpsg_load_jquery', __('JQuery einbinden', 'wpsg'), $this->get_option('wpsg_load_jquery'), array('help' => 'wpsg_load_jquery')); ?>
 		<?php echo wpsg_drawForm_Checkbox('wpsg_load_thickbox_js', __('Thickbox einbinden (JavaScript)', 'wpsg'), $this->get_option('wpsg_load_thickbox_js'), array('help' => 'wpsg_load_thickbox')); ?>
 		<?php echo wpsg_drawForm_Checkbox('wpsg_load_thickbox_css', __('Thickbox einbinden (Styles)', 'wpsg'), $this->get_option('wpsg_load_thickbox_css'), array('help' => 'wpsg_load_thickbox')); ?>
-		<?php echo wpsg_drawForm_Checkbox('wpsg_load_validierung_js', __('Javascript Validierung laden', 'wpsg'), $this->get_option('wpsg_load_validierung_js')); ?>
-		<?php echo wpsg_drawForm_Checkbox('wpsg_load_validierung_css', __('CSS der Javascript Validierung laden', 'wpsg'), $this->get_option('wpsg_load_validierung_css')); ?>
+		<?php echo wpsg_drawForm_Checkbox('wpsg_load_validierung_js', __('Javascript Validierung laden', 'wpsg'), $this->get_option('wpsg_load_validierung_js'), array('help' => 'wpsg_load_validierung')); ?>
+		<?php echo wpsg_drawForm_Checkbox('wpsg_load_validierung_css', __('CSS der Javascript Validierung laden', 'wpsg'), $this->get_option('wpsg_load_validierung_css'), array('help' => 'wpsg_load_validierung')); ?>
 		
 		<?php $this->callMods('admin_includes'); ?>
Index: /views/admin/index.phtml
===================================================================
--- /views/admin/index.phtml	(revision 5371)
+++ /views/admin/index.phtml	(revision 5382)
@@ -10,5 +10,5 @@
 <div class="wpsg_admin" id="wpsg-bs">
 
-	<nav class="navbar navbar-default navbar-admin navbar-fixed-top">
+	<nav class="navbar navbar-default">
 		<div class="container-fluid">
 			<div class="navbar-header">
@@ -26,6 +26,6 @@
 					<li role="presentation" class="<?php echo (($this->view['actionName'] == 'news')?'active':''); ?>"><a href="<?php echo WPSG_URL_WP; ?>wp-admin/admin.php?page=wpsg-Admin&action=news">
 						<?php echo __('Aktuelles', 'wpsg'); ?>
-						<?php if (wpsg_isSizedInt($wpsg_news_unread = wpsg_news::countUnreadNews())) { ?>
-						<span class="badge" style="background-color:#D9534F;">4</span>
+						<?php $wpsg_news_unread = wpsg_news::countUnreadNews(); if (wpsg_isSizedInt($wpsg_news_unread)) { ?>
+						<span class="badge" style="background-color:#D9534F;"><?php echo sizeof($wpsg_news_unread); ?></span>
 						<?php } ?>			
 					</a></li>
Index: /views/admin/konfiguration.phtml
===================================================================
--- /views/admin/konfiguration.phtml	(revision 5371)
+++ /views/admin/konfiguration.phtml	(revision 5382)
@@ -19,5 +19,5 @@
 <div class="wpsg_admin_content form-horizontal">
 	<form name="form1" method="post" enctype="multipart/form-data" action="<?php echo wpsg_hspc(WPSG_URL_WP.'wp-admin/admin.php?page=wpsg-Admin&subaction=konfiguration&noheader=1'); ?>">
-  
+    
   		<?php if ($this->hasMod('wpsg_mod_core')) { ?>
   		
@@ -82,14 +82,8 @@
 		</div>
 		<?php } else { ?>
-		<div class="wpsg_form_field">
-			<div class="wpsg_form_left">
-				<?php echo __("Installierte DB Version", "wpsg"); ?>:
-			</div>
-			<div class="wpsg_form_right">
-				<p><?php echo WPSG_VERSION; ?>&nbsp;<a href="<?php echo WPSG_URL_WP; ?>wp-admin/admin.php?page=wpsg-Admin&amp;subaction=allgemein&amp;do=update&amp;submit=1&amp;noheader=1"><?php echo __("Aktualisieren", "wpsg"); ?></a></p>
-				<a rel="?page=wpsg-Admin&subaction=loadHelp&noheader=1&field=DBUpdate" href="?page=wpsg-Admin&subaction=loadHelp&noheader=1&field=DBUpdate" class="wpsg_form_help"></a>
-			</div>
-			<div class="wpsg_clear"></div>
-		</div>	
+		<?php wpsg_drawForm_TextStart(); ?>		
+		<?php echo WPSG_VERSION; ?>&nbsp;<a href="<?php echo WPSG_URL_WP; ?>wp-admin/admin.php?page=wpsg-Admin&amp;subaction=allgemein&amp;do=update&amp;submit=1&amp;noheader=1"><?php echo __("Aktualisieren", "wpsg"); ?></a>
+		<a rel="?page=wpsg-Admin&subaction=loadHelp&noheader=1&field=DBUpdate" href="?page=wpsg-Admin&subaction=loadHelp&noheader=1&field=DBUpdate" class="wpsg_form_help"></a>
+		<?php echo wpsg_drawForm_TextEnd(__('Installierte DB Version', 'wpsg')); ?>	
 		<?php } ?>
 		<br />
Index: /views/admin/module.phtml
===================================================================
--- /views/admin/module.phtml	(revision 5371)
+++ /views/admin/module.phtml	(revision 5382)
@@ -9,10 +9,18 @@
 <div class="wpsg_admin_submenu">
 	
+	<div class="wpsg_modul_search_wrap">
+		<input id="wpsg_modul_search" type="text" class="wpsg_modul_search" value="<?php echo wpsg_getStr($_COOKIE['wpsg-modulfilter-search']); ?>" />	
+		<label title="<?php echo __('Wenn aktiviert, werden nur aktive Module angezeigt'); ?>">
+			<input type="checkbox" <?php echo ((wpsg_isSizedString($_COOKIE['wpsg-modulfilter-check'], 'true'))?'checked="checked"':''); ?> id="wpsg_modul_onlyactive" class="wpsg_modul_onlyactive" />
+			<span class="glyphicon glyphicon-ok wpsg_modul_onlyactive_glyphicon" aria-hidden="true"></span>
+		</label>
+	</div>
+	
 	<?php foreach ($this->view['groups'] as $group_name => $g) { ?>
-	<div class="list-group">
-		<span class="list-group-head list-group-item"><?php echo $group_name; ?></span>		
+	<div class="list-group list-modul-group">
+		<span class="list-group-item list-group-head"><?php echo $group_name; ?></span>		
 		<?php foreach ($g as $mod_key => $m) { ?>
-		<a class="<?php echo (($this->get_option($mod_key, $this->view['global']) > 0)?'modul_akt':''); ?> list-group-item <?php echo (($mod_key == $_REQUEST['modul'])?'active':''); ?>" href="<?php echo WPSG_URL_WP; ?>wp-admin/admin.php?page=wpsg-Admin&amp;action=module&amp;modul=<?php echo $mod_key; ?>">
-			<?php echo $m->name; ?>
+		<a class="<?php echo (($this->get_option($mod_key, $this->view['global']) > 0)?'modul_akt':''); ?> list-group-modul list-group-item <?php echo (($mod_key == $_REQUEST['modul'])?'active':''); ?>" href="<?php echo WPSG_URL_WP; ?>wp-admin/admin.php?page=wpsg-Admin&amp;action=module&amp;modul=<?php echo $mod_key; ?>">
+			<span class="wpsg_modul_name"><?php echo $m->name; ?></span>
 			<?php if (($this->get_option($mod_key, $this->view['global']) > 0)?'modul_akt':'') { ?>
 			<span class="glyphicon glyphicon-ok" aria-hidden="true"></span>
@@ -26,5 +34,5 @@
 
 <?php if (isset($_REQUEST['modul'])) { ?>
-<div class="wpsg_admin_content">		
+<div class="wpsg_admin_content form-horizontal">		
 	<form name="form1" action="<?php echo WPSG_URL_WP; ?>wp-admin/admin.php?page=wpsg-Admin&amp;action=module&amp;modul=<?php echo $_REQUEST['modul']; ?>&amp;noheader=1" method="post" enctype="multipart/form-data">
 		
@@ -38,17 +46,7 @@
 		<p><?php echo $this->arAllModule[$_REQUEST['modul']]->desc; ?></p>
 		
-		<div class="wpsg_form_field">
-			<div class="wpsg_form_left">
-				<?php echo __("Modul aktiviert", "wpsg"); ?>:
-			</div>
-			<div class="wpsg_form_right">
-				<select name="aktiv">
-					<option value="0"><?php echo __('Nein', 'wpsg'); ?></option>
-					<option value="1" <?php echo (($this->get_option($_REQUEST['modul'], $this->view['global']) > 0)?'selected="selected"':''); ?>><?php echo __('Ja', 'wpsg'); ?></option>					
-				</select>
-			</div>
-			<div class="wpsg_clear"></div>
-		</div>
-		 
+		<?php $modul_install = $this->get_option($_REQUEST['modul'], $this->view['global']); ?>
+		<?php echo wpsg_drawForm_Select('aktiv', __('Modul aktiviert', 'wpsg'), array('0' => __('Nein', 'wpsg'), '1' => __('Ja', 'wpsg')), ((wpsg_isSizedInt($modul_install))?'1':'0')); ?>
+		 		 
 		<?php if (isset($this->arAllModule[$_REQUEST['modul']]->version)) { ?>
 		<?php echo wpsg_drawForm_Input('', __('Version', 'wpsg'), $this->arAllModule[$_REQUEST['modul']]->version, array('text' => true)); ?>		
@@ -129,8 +127,61 @@
 <script type="text/javascript">/* <![CDATA[ */
 
+	function wpsg_ssh_module()
+	{
+
+		jQuery('.list-modul-group').show();
+		jQuery('.wpsg_admin_submenu .list-group-item').show();
+
+		var check = jQuery('#wpsg_modul_onlyactive').prop('checked');
+		var search = jQuery('#wpsg_modul_search').val();
+
+		jQuery.cookie('wpsg-modulfilter-check', check);
+		jQuery.cookie('wpsg-modulfilter-search', search);
+		
+		jQuery('.wpsg_modul_name').each(function() {
+
+			if (!jQuery(this).parent().hasClass('active'))
+			{
+			
+				if (check && !jQuery(this).parent().hasClass('modul_akt')) jQuery(this).parent().hide();
+				else if (search != '')
+				{
+	
+					var re = new RegExp(search, 'i');
+	
+					if (!jQuery(this).html().match(re)) jQuery(this).parent().hide();
+					else jQuery(this).parent().show();
+						
+				}
+
+			}
+				
+		} ); 
+
+		jQuery('.list-modul-group').each(function() {
+
+			if (jQuery(this).find('.list-group-modul:visible').length <= 0) jQuery(this).hide();
+			else jQuery(this).show();				
+			
+		} );
+		
+	}
+
 	jQuery(document).ready(function() {
 
+		jQuery('#wpsg_modul_onlyactive').bind('change', function(event) {
+
+			wpsg_ssh_module();			
+			jQuery(this).blur();
+			
+		} );
+
+		jQuery('#wpsg_modul_search').focus().bind('blur', wpsg_ssh_module);
+		jQuery('#wpsg_modul_search').focus().bind('keyup', wpsg_ssh_module);
+		
 		jQuery('.wpsg_form_help').tipTip();
 
+		wpsg_ssh_module();
+		
 	} );
 
Index: /views/css/admin.css
===================================================================
--- /views/css/admin.css	(revision 5371)
+++ /views/css/admin.css	(revision 5382)
@@ -1,693 +1,27 @@
-/*
- * Diese Datei wird immer im Backend geladen. Hier sollten die Admin CSS Einstellungen rein, die nichts mit den Themes zu tun haben
- */
+/* Allgemein */
 
-/*
- * Allgemein
- */
-.msg_wrap img { margin-bottom:1rem; margin-top:1rem; max-width:100%; height:auto; } 
-.wpsg_error { color:#FF0000; font-weight:bold; }
-.wpsg_developer { color:#FF0000; }
-.wpsg_change_error { background-color:#EE3B3B !important; }
-.wpsg_erfolg { color:green; }
-.wpsg_hinweis { font-style:italic; }
-.wpsg_table .odd td { background-color:#DEDEDE; }
-.wpsg_table .even td { }
-.wpsg_message img { float:right; }
-#wikipage h1 { line-height:100%; font-size:13px; }
-.wpsg_placeholder { border-style: dashed; border-width: 1px; height: 26px; margin: 0 auto 20px; }
-#icon-wpsg-Admin { background-image:url("../../../../../wp-admin/images/icons32.png"); background-position: -370px -5px; }
-/*.tablenav-pages-wrap { width:300px !important; }*/
-.tooltip { text-decoration:none; color:inherit; cursor:inherit; }
-.tooltip:hover { color:inherit; }
-.sortable_handler { cursor:move; }
-.toplevel_page_wpsg-Admin .settings-error { display:none; }
+/* Konfiguration */
+.wpsg_admin { margin-top:20px; }
+.wpsg_admin_wrap { position:relative; }
+.wpsg_admin_submenu { width:180px; float:left; }
+.wpsg_admin_content { padding-left:20px; width:800px; float:left; }
+.wpsg_admin_content h3 { margin-top:0px; margin-bottom:25px; }
+.wpsg_admin_submenu .list-group-item { padding:5px 10px; }
+.wpsg_admin nav.navbar { margin-right:20px; } 
+.wpsg_admin nav.navbar li { margin-bottom:0px; }
+.wpsg_admin .list-group-head { background-color:#666666; color:#FFFFFF; border:1px solid #666666; }
+.list-group { margin-bottom:15px !important; }
 
-/*
- * Datepicker
- */
-.ui-datepicker { width: 17em; padding:0; display: none; border:1px solid #444444; background-color:#F1F1F1; }
-.ui-datepicker-header { color:#FFFFFF; background-color:#444444; }
-.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
-.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
-.ui-datepicker .ui-icon { width: 16px; height: 16px; background-image: url('../../lib/ui/smoothness/images/ui-icons_888888_256x240.png'); }
-.ui-datepicker .ui-icon-circle-triangle-w { background-position: -80px -192px; }
-.ui-datepicker .ui-icon-circle-triangle-e { background-position: -48px -192px; }
-.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
-.ui-datepicker .ui-datepicker-prev { left:2px; }
-.ui-datepicker .ui-datepicker-next { right:2px; }
-.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
-.ui-datepicker .ui-datepicker-next-hover { right:1px; }
-.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
-.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
-.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
-.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
-.ui-datepicker select.ui-datepicker-month, 
-.ui-datepicker select.ui-datepicker-year { width: 49%;}
-.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
-.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
-.ui-datepicker td { border: 0; padding: 1px; }
-.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
-.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
-.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
-.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
+/* Modulverwaltung */
+.wpsg_admin_submenu .list-group-item.modul_akt { color:#3c763d; font-weight:bold; }
+.wpsg_admin_submenu .list-group-item.modul_akt .glyphicon { position:absolute; right:5px; top:5px; color:#3c763d; }
+.wpsg_admin_submenu .list-group-item.active { color:#dff0d8; }
+.wpsg_admin_submenu .list-group-item.active .glyphicon { position:absolute; right:5px; top:5px; color:#dff0d8; }
+.wpsg_modul_search_wrap { width:100%; position:relative; }
+.wpsg_modul_search { margin-bottom:15px; width:70%; }
+.wpsg_modul_onlyactive { position:absolute; }
+.wpsg_modul_onlyactive_glyphicon { position:absolute !important; right:5px; top:7px !important; color:#3c763d; }
+.wpsg_modul_search_wrap input[type="checkbox"] { right:25px; top:3px; position:absolute; }
 
-/* with multiple calendars */
-.ui-datepicker.ui-datepicker-multi { width:auto; }
-.ui-datepicker-multi .ui-datepicker-group { float:left; }
-.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
-.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
-.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
-.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
-.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
-.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
-
-/* RTL support */
-.ui-datepicker-rtl { direction: rtl; }
-.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-
-/*
- * Allgemein Icons ...
- */
- .branch-3-8 #adminmenu .toplevel_page_wpsg-Admin .wp-menu-image:before { content: "\f174"; }
- .branch-3-8 #adminmenu .toplevel_page_wpsg-Admin .wp-menu-image img { position:absolute; left:-100px; top:-100px; height:1px; width:1px; }
- 
-.wpsg_icon { display:block; width:16px; height:16px; float:left; margin-right:4px; background-repeat:no-repeat; background-position:50% 50%; }
-.wpsg_icon_center { margin:auto; }
-.wpsg_icon_right { float:right; }
-.wpsg_icon_add { background-image:url('../gfx/add.png'); }
-.wpsg_icon_edit { background-image:url('../gfx/edit.png'); }
-.wpsg_icon_html { background-image:url('../gfx/html.png'); }
-.wpsg_icon_remove { background-image:url('../gfx/delete.png'); }
-.wpsg_icon_plzedit { background-image:url('../gfx/edit.png'); width:32px; margin-right:5px; }
-.wpsg_form_language img { margin-left:2px; margin-top:5px; margin-right:5px; }
-.wpsg_form_language a { text-decoration:none; }
-.cluetip-inner img { max-width:100%; }
-
-/* Link Klassen */
-.wpsg_link_add { background-image:url('../gfx/add.png'); padding-left:20px; background-repeat:no-repeat; line-height:20px; background-position:left 50%; height:20px; display:block; }
-
-/*
- * Admin 
- */
-.wpsg_admin_theme { width:600px; border: 1px solid #AAAAAA; border-bottom-left-radius:6px; border-bottom-right-radius:6px; border-top-left-radius: 6px; border-top-right-radius: 6px; padding:10px; margin-bottom:10px; }
-.wpsg_admin_theme_akt { background-color:#FFFFFF !important; }
-.wpsg_admin_theme_image { width:75px; height:75px; border:1px solid #AAAAAA; float:left; }
-.wpsg_admin_theme_content { float:left; margin-left:10px; }
-.wpsg_admin_theme_name { font-weight:bold; font-size:14px; }
-.wpsg_admin_theme_info { color:#555555; }
-.wpsg_admin_theme_new { width:600px; border: 1px solid #AAAAAA; border-bottom-left-radius:6px; border-bottom-right-radius:6px; border-top-left-radius: 6px; border-top-right-radius: 6px; padding:10px; margin-bottom:10px; }
-.wpsg_admin_theme_new .button { float:right; }
-.wpsg_admin_topmenu { border-top: 1px solid #AAAAAA; }
-.wpsg_admin_topmenu ul { margin-top: -1px; list-style: none; width: 100%; margin-bottom: 10px; }
-.wpsg_admin_topmenu li { padding: 0px; margin: 0px; display: inline; }
-.wpsg_admin_topmenu li a { display: block; float: left; padding-left: 12px; padding-right: 12px; font: 11px/ 18px "Lucida Grande", Verdana, Arial, "Bitstream Vera Sans", sans-serif; color: #21759B; line-height: 30px; text-decoration: none !important; }
-.wpsg_admin_topmenu li.current a { background-image: url("../gfx/tab_top.gif"); background-repeat: no-repeat; background-position: top center; }
-.wpsg_admin_topmenu li a:hover { }
-.wpsg_admin_submenu { float:left; width:200px; }
-.wpsg_admin_submenu .head { cursor:pointer; margin-left:0px; width:180px; line-height:18px;   border-style: solid solid none; border-top-left-radius: 6px; border-top-right-radius: 6px; border-width: 1px 1px 0; border-color:#AAAAAA; color: #21759B; cursor:pointer !important; background-color:#F1F1F1; }
-.wpsg_admin_submenu .title { float:left; padding:5px; padding-left:12px; }
-.wpsg_admin_submenu .toggle { clear: right; cursor: default; float: right; height:26px; margin: 1px 0 0; padding: 1px 2px 0 0; width: 22px; cursor:pointer !important; }
-.wpsg_admin_submenu ul { border-bottom:1px solid #AAAAAA; border-right: 1px solid #AAAAAA; width: 181px; float: left; padding: 0px; margin: 0px; margin-left:0px; }
-.wpsg_admin_submenu ul li { border-left: 1px solid #AAAAAA; margin: 0px; }
-.wpsg_admin_submenu ul li.current { background-color: #F5F5F5; border-left: 0px; border-left:1px solid #AAAAAA; }
-.wpsg_admin_submenu ul li a { display: block; padding-left: 12px; font: 11px/ 18px "Lucida Grande", Verdana, Arial, "Bitstream Vera Sans", sans-serif; color: #21759B; line-height: 20px; text-decoration: none !important; }
-.wpsg_admin_submenu ul li a:hover { background-color: #EAF2FA; } 
-.wpsg_admin_submenu ul li.modul_akt a { background-image: url("../gfx/tick.png"); background-position: right center; background-repeat: no-repeat; font-weight: bold !important; width: 165px; }
-.wpsg_admin_content { float:left; }
-.wpsg_admin_box { width:770px; }
-.wpsg_admin_box .title { line-height:18px; padding:0px; border-style: solid solid none; border-top-left-radius: 6px; border-top-right-radius: 6px; border-width: 1px 1px 0; border-color:#AAAAAA; color: #21759B; cursor:pointer !important; background-color:#F1F1F1; }
-.wpsg_admin_box .content { border-bottom:1px solid #AAAAAA; border-right:1px solid #AAAAAA; border-left:1px solid #AAAAAA; min-height:18px; padding:5px; padding-left:12px; }
-.wpsg_admin_box .head .title { cursor:default !important; }
-.wpsg_admin_box .head .title .tab { cursor:pointer; float:left; padding-left:12px; padding-right:15px; border-right:1px solid #AAAAAA; padding-top:5px; padding-bottom:5px; }
-.wpsg_admin_box .head .title .tabright { float:right; border-left:1px solid #AAAAAA; border-right:0px; }
-.wpsg_admin_box .head .title .tab:first-child { border-top-left-radius:6px; }
-.wpsg_admin_box .head .title .tabright-last { border-top-right-radius:6px !important; }
-.wpsg_admin_box .head .title .tab:hover, .wpsg_admin_box .head .title .akttab { background-color:#FFFFFF; }
-.wpsg_admin_box .head .title .fulltab { cursor:pointer; padding:5px 5px 5px 12px; }
-.wpsg_admin_box .head .title .tablink { padding:5px; float:right; }
-.wpsg_admin_date_from { margin-right:4px;}
-.wpsg_admin_date_to { margin-right:4px; margin-left:25px; }
-.wpsg_clear { clear:both; }
-.wpsg_form_field { width:770px; margin-bottom:5px; }
-.wpsg_form_field_fullrow { position:relative; }
-.wpsg_form_field_fullrow label { font-weight:bold; line-height:25px; }
-.wpsg_form_field .wpsg_form_left { line-height:24px; font-weight:bold; width:350px; float:left; }
-.wpsg_form_field .wpsg_form_right { width:420px; float:left; position:relative; }
-.wpsg_form_field .wpsg_form_right select, .wpsg_form_field .wpsg_form_right input, .wpsg_form_field .wpsg_form_right textarea { width:95%; }
-.wpsg_form_field .wpsg_form_right input.button { width:auto; }
-.wpsg_form_field .wpsg_form_right label { line-height:25px; }
-.wpsg_form_field_max select { width:100%; }
-.postbox .wpsg_form_field .wpsg_form_left  { width:330px; } /* z.B. Bestellverwaltung Bankalignment Modul */
-.wpsg_order_top { }
-.wpsg_order_top .wpsg_form_field { width:100%; }
-.wpsg_order_top .wpsg_form_field .wpsg_form_left { max-width:200px; width:50% !important; }
-.wpsg_order_top .wpsg_form_field .wpsg_form_right { width:50% !important; }
-.wpsg_order_top .wpsg_form_field .wpsg_form_right select { width:50%; float:left; }  
-.wpsg_admin_box .wpsg_form_field { margin-bottom:0px; }
-.wpsg_admin_box .wpsg_form_field .wpsg_form_right { width:401px ; }
-.wpsg_form_field .wpsg_form_right_unit select, .wpsg_form_field .wpsg_form_right_unit input, .wpsg_form_field .wpsg_form_right_unit textarea { width:80%; float:left; }
-.wpsg_form_field .wpsg_form_right_unit p.wpsg_unit { width:15%; float:left; }
-.wpsg_form_field .wpsg_form_right textarea { height:100px; }
-.wpsg_form_field .wpsg_form_right input.checkbox { width:auto !important; float:left; margin-left:2px; margin-top:5px; }
-.wpsg_form_field .wpsg_form_right p { padding:4px 0px 4px 6px; margin:0px; }
-.wpsg_formfield_small .wpsg_form_left { line-height:12px; }
-.wpsg_formfield_small .wpsg_form_right p { line-height:12px; padding-top:0px; padding-bottom:0px; }
-.widget-inside .wpsg_form_field { width:100%; }
-.widget-inside .wpsg_form_left { width:100%; }
-.widget-inside .wpsg_form_right { width:100%; }
-.widget-inside .wpsg_form_field .wpsg_form_right select, 
-.widget-inside .wpsg_form_field .wpsg_form_right input,
-.widget-inside .wpsg_form_field .wpsg_form_right textarea { width:100%; }  
-.timestamp-wrap input, .timestamp-wrap select { width:auto !important; }
-.produktwrap .wpsg_form_field { width:780px; }
-.produktwrap .wpsg_form_left { width:380px; }
-.produktwrap .wpsg_form_right { width:400px; }
-.wpsg_form_help { right:0px; top:4px; position:absolute; display:block; width:16px; height:16px; background-image:url('../gfx/help.png'); }
-.widget-content .wpsg_form_help { position:relative; float:right; margin-top:-2px; }
-.wpsg_form_help_notip { right:0px; top:4px; position:absolute; display:block; width:16px; height:16px; background-image:url('../gfx/help.png'); }
-.wpsg_admin_content { padding:0px; margin:0px; float:left; width:750px; }
-.wpsg_admin_content h3 { position:relative; }
-.wpsg_admin_table { width:100%; }
-.wpsg_admin_box .wpsg_admin_table { margin-left:-3px; } 
-.wpsg_admin_table th { font-weight:bold; text-align:left; padding:3px; }
-.wpsg_admin_table td { padding:3px; } 
-.wpsg_admin_wpsg_list .col_name { }
-.wpsg_admin_wpsg_list .col_value { width:100px; }
-.wpsg_admin_wpsg_list .col_aktion { width:50px; }
-.wpsg_editable { border-bottom:1px dotted #666666; cursor:pointer; }
-.wpsg_editable input, .wpsg_editable select { height:24px !important; font-size:12px; }
-.wpsg_editable input { width:100%; }
-.wpsg_pflichtfelder { border-spacing:0px; width:100%; }
-.wpsg_pflichtfelder td { padding:0px; }
-.wpsg_pflichtfelder tr th { text-align:left; }
-.wpsg_pflichtfelder td.col1 select, 
-.wpsg_pflichtfelder td.col1 input { width:100%; }
-.wpsg_customfields { border-spacing:0px; width:100%; }
-.wpsg_customfields td { padding:0px; }
-.wpsg_customfields tr th { text-align:left; }
-.wpsg_customfields td select { width:100%; }
-.wpsg_customfields .col0 { width:45px; }
-.wpsg_customfields .col1 { width:305px; }
-.wpsg_customfields .col4 { width:25px; }
-.wpsg_customfields .col5 { text-align:center; }
-.wpsg_customfields .col2345 input { width:100%; }
-table.wpsg_admin_laender_list { font-size:12px; }
-table.wpsg_admin_laender_list tr.odd td { background-color:#DEDEDE; }
-table.wpsg_admin_laender_list tr.even td {}
-.wpsg_admin_laender_list .col_vz { width:100px; } 
-.wpsg_admin_laender_list .col_default { width:75px; text-align:center; }
-.wpsg_admin_laender_list .col_mwst { width:55px; }
-.wpsg_admin_laender_list .col_mwstsetting { width:100px; } 
-.wpsg_admin_laender_list .col_action { width:40px; }
-.wpsg_mod_produktattribute_table { width:100%; table-layout:fixed; }
-.wpsg_mod_produktattribute_table .col_id { width:25px; text-align:left; }
-.wpsg_mod_produktattribute_table .col_name { text-align:left; }
-.wpsg_mod_produktattribute_table .col_typ { width:100px; text-align:left; }
-.wpsg_mod_produktattribute_table .col_typ select { width:100%; }
-.wpsg_mod_produktattribute_table .col_html { width:35px; }
-.wpsg_mod_produktattribute_table .col_aktion { width:50px; text-align:center; }
-.wpsg_dialog { padding:10px; }
-.wpsg_code { background-color:#EFEFEF; border:1px solid #000000; padding:3px; margin-top:5px; margin-bottom:5px; font-family:monospace; font-size:12px; }
-.wpsg_tablerow td { padding:2px 0px 2px 0px; }
-.wpsg_odd:hover, .wpsg_even:hover, .wpsg_tablerow:hover, .wpsg_tablerow:hover td, .wpsg_tablerow_hover, .wpsg_tablerow_hover td { background-color:#EFEFEF !important; }
-.wpsg_odd td {  }
-.wpsg_even td {  }
-.wpsg_widerrufstext .wpsg_form_field .wpsg_form_left { width:270px; }
-.wpsg_widerrufstext .wpsg_form_field .wpsg_form_right { width:500px; }
-.wpsg_widerrufstext .wpsg_form_field .wpsg_form_right textarea { height:200px; }
-.tabcontent .wpsg_form_right { width:400px; }
-.tabcontent .wpsg_form_right input, .tabcontent .wpsg_form_right select { width:94%; } 
-.wpsg_mail_head { border-bottom:1px solid #AAAAAA; }
-.wpsg_mail_content, wpsg_admin_box_content { display:none; }
-.wpsg_handlediv .handlediv { position:absolute; right:0px; top:0px; }
-.wpsg_handlediv span a.wpsg_form_help { float:left; display:block; position:relative; top:0px; margin-right:5px; }
-.wpsg_register_modullist { width:100%; }
-.wpsg_register_modullist th { text-align:left; }
-.wpsg_register_modullist .wpsg_col_aktion { text-align:right; }
-.wpsg_modultable { width:100%; }
-.wpsg_modultable tr th { text-align:left; }
-.wpsg_modultable tr .wpsg_col_name { padding-right:25px; }
-.wpsg_modultable tr .wpsg_col_instversion { padding-right:25px; }
-.wpsg_modultable tr .wpsg_col_licence { padding-right:25px; }
-.wpsg_modultable tr .wpsg_col_availableversion { padding-right:25px; }
-.wpsg_admin_vz_list .col_aktion .wpsg_icon_remove { float:right; }
-.wpsg_admin_vz_list .col_aktion { width:75px; }
-.wpsg_admin_vz_list .col_innereu { text-align:center; width:75px; }
-.navbar-admin { left:180px; top:32px; margin-top:-5px; margin-bottom:20px; margin-left:-25px; }
-.navbar-admin .navbar-brand { padding-left:-10px; text-align:center; width:240px; }
-.navbar-nav li { margin-bottom:0px; }
-.wpsg_admin { padding-top:75px; }
-.wpsg_admin_submenu .list-group-item { padding-top:3px; padding-bottom:3px; }
-.wpsg_admin_submenu .list-group-item .glyphicon { float:right; color:#2b542c; }
-.wpsg_admin_submenu .list-group-head { background-color:#E1E1E1 !important; padding-top:10px; padding-bottom:10px; }
-.wpsg_admin_submenu .modul_akt { background-color:#DFF0D8; } 
-.wpsg_admin_content { margin-left:15px; }
-
-/*
- * Dialog im Backend
- * z.B. Ãnderung der Adresse in Bestellverwaltung
- */
-.wpsg_dialog { }
-.wpsg_dialog_content { margin:10px; }
-.wpsg_dialog .wpsg_form_field { box-sizing:border-box; padding-left:5px; padding-right:5px; width:100%; }
-.wpsg_dialog .wpsg_form_field input, .wpsg_dialog .wpsg_form_field select { width:100%; box-sizing:border-box; }
-.wpsg_dialog .wpsg_form_field .wpsg_form_left { width:50%; }
-.wpsg_dialog .wpsg_form_field .wpsg_form_right { width:50%; }
-
-/*
- * Seitenrefresh im Backend
- * z.B. in der Bestellverwaltung 
- */
-#wpsg_backend_loading { position:fixed; z-index:100000; width:100%; height:100%; left:0px; top:0px; background-color:rgba(0, 0, 0, 0.75); } 
-#wpsg_backend_loading .wpsg_inner { color:#FFFFFF; font-size:2rem; margin:auto; text-align:center; margin-top:20%; }
-
-/*
- * Produktverwaltung
- */
-.wpsg_produktindex .wpsg_pic_col { width:50px; }
-.wpsg_produktindex #wpsg_product_search_button { background-position:50% 50%; background-repeat:no-repeat; background-image:url('../gfx/lupe.png'); }
-.wpsg_produkt_addedit .wpsg_form_field { width:100%; }
-.wpsg_produkt_addedit .wpsg_form_field .wpsg_form_left { width:20%; font-weight:bold; line-height:24px; }
-.wpsg_produkt_addedit .wpsg_form_field .wpsg_form_right { width:80%; float:left; }
-.wpsg_produkt_addedit .wpsg_form_field .wpsg_form_right input { width:100%; }
-.wpsg_produkt_addedit .wpsg_form_field .wpsg_form_right textarea { width:100%; }
-.wpsg_produkt_addedit .wpsg_form_field .wpsg_form_right_unit input { width:95%; }
-.wpsg_produkt_addedit .wpsg_form_field .wpsg_form_right .wp-editor-wrap input { width:auto !important; }
-.wpsg_produkt_addedit .wpsg_form_field .wpsg_form_right_unit p.wpsg_unit { width:4%; float:right; }
-.wpsg_produkt_addedit .wpsg_form_field .wpsg_form_right input.wpsg-datepicker { width:85%; }
-.wpsg_produkt_addedit .wpsg_form_field .wpsg_form_right .ui-datepicker-trigger { margin-left:3px; margin-top:5px; }
-.wpsg_produkt_addedit .wpsg_form_field .wpsg_form_right select { width:100%; }
-.wpsg_produkt_addedit .wpsg_form_field .wpsg_form_right_help select { width:95%; }
-.wpsg_produkt_addedit .wpsg_form_field .wpsg_form_right input.wpsg_preis { width:60%; }
-.wpsg_produkt_addedit .wpsg_form_field .wpsg_form_right .waehrung { float:right; }
-.wpsg_produkt_addedit #side-info-column .wpsg_form_field .wpsg_form_left { width:50%; }
-.wpsg_produkt_addedit #side-info-column .wpsg_form_field .wpsg_form_right { width:50%; }
-.wpsg_posturl { margin-bottom:5px; }
-
-/*
- * Bestellverwaltung
- */
-.wpsg_order_datum { color:#999999; }
-.wpsg_order_adress { color:#999999; }
-.wpsg_order_view .inner-sidebar .wpsg_form_field { width:100%; }
-.wpsg_order_view .inner-sidebar .wpsg_form_field .wpsg_form_left { width:100%; }
-.wpsg_order_view .inner-sidebar .wpsg_form_field .wpsg_form_right { width:100%; margin-top:-5px; }
-.wpsg_order_view #post-body-content .wpsg_form_field { width:100%; }
-.wpsg_order_view #post-body-content .wpsg_form_field .wpsg_form_left { width:20%; min-width:200px; }
-.wpsg_order_view #post-body-content .wpsg_form_field .wpsg_form_right { width:auto; }
-.wpsg_order_view .wpsg_produkte { width:100%; }
-.wpsg_order_view tr.wpsg_kopf th { text-align:left; }
-.wpsg_order_view .wpsg_cell_preis { width:100px; text-align:right !important; padding-right:10px; }
-.wpsg_order_view .wpsg_cell_mwst { width:100px; text-align:right !important; padding-right:10px; }
-.wpsg_order_view .wpsg_cell_menge { width:100px; text-align:center !important; padding-right:10px; }
-.wpsg_order_view .wpsg_cell_gesamtpreis { width:100px; text-align:right !important; }
-.wpsg_order_view .wpsg_cell_summe_value { text-align:right !important; text-decoration:underline; }
-.wpsg_order_view .wpsg_cell_shipping_value { text-align:right !important; }
-.wpsg_order_view .wpsg_cell_payment_value { text-align:right !important; }
-.wpsg_order_view .wpsg_cell_payment_value { text-align:right !important; }
-.wpsg_order_view .wpsg_cell_rabatt_value { text-align:right !important; }
-.wpsg_order_view .wpsg_cell_mwst_value { text-align:right !important; }
-.wpsg_order_view .wpsg_cell_mwst_value, .wpsg_order_view  .wpsg_cell_mwst_label { font-size: 10px; line-height: 18px; }
-.wpsg_order_view .wpsg_cell_gesamt_value { text-align:right !important; font-weight:bold; text-decoration:underline; }
-.wpsg_order_view .wpsg_order_admincomment { width:100%; height:100px; }
-.wpsg_order_view .wpsg_order_admincomment_submit { margin-top:5px; margin-bottom:5px; }
-.wpsg_order_view #wpsg_generally .wpsg_form_left { width:200px; }
-.wpsg_orderlog { width:100%; }
-.wpsg_orderlog .col_date { width:135px; text-align:left; }
-.wpsg_orderlog .col_aktion { width:100px; text-align:right; }
-.wpsg_orderlog .col_title { text-align:left; }
-.wpsg_orderlog .col_mailtext { background-color:#FFFFFF; font-family:monospace; }
-.wpsg_orderlog .col_mailtext textarea { width:100%; height:250px; overflow:scroll; border:0px; background-color:#DSDSDS; border:1px solid #C4C4C4; overflow:auto; max-width:100%; }
-.wpsg_order_index_status { float:none !important; margin:0px 300px 0px 0px; }
-.wpsg_order_index_status .akt { font-weight:bold; color:#000000; }
-.wpsg_order_index_status li { float:left !important; }
-.wpsg_order_index_status li span { line-height:2; padding:0.2em; }
-.wpsg_tablenav { clear:right; float:right; }
-.wpsg-search-box { margin-top:-6px !important; }
-	
-/* 
- * Produktbilder
- */
-.wpsg_mod_produktbilder_admin_bild { float:left; margin-right:5px; }
-
-/*
- * Downloadprodukte
- */
-.wpsg_mod_downloadprodukte_admin_delete { height:16px; width:16px; float:right; background-image:url('../gfx/delete.png'); cursor:pointer; }
-
-/*
- * Kundenverwaltung
- */
-#wpsg_customercomment textarea, #postbox_kunde_kommentar textarea { width:100%; height:150px; }
-.wpsg_mod_kundenverwaltung_customeramount .wpsg_storno { color:#000000; }
-.wpsg_mod_kundenverwaltung_customeramount .wpsg_open { color:#FF0000; }
-.wpsg_mod_kundenverwaltung_customeramount .wpsg_payed { color:#008000; }
-.wpsg_customer_index .wpsg-row-actions > div { visibility:hidden; }
-.wpsg_customer_index .wpsg-row-actions:hover > div { visibility:visible; } /* Bug:? Chrome */
-
-/* Kundengruppenverwaltung */
-.wpsg_mod_kundenverwaltung_customergroup_index .col-id { width:55px; }
-.wpsg_mod_kundenverwaltung_customergroup_index .col-name { }
-.wpsg_mod_kundenverwaltung_customergroup_index .col-customercount { width:150px; }
-.wpsg_mod_kundenverwaltung_customergroup_index .col-calculation { width:150px; }
-.wpsg_mod_kundenverwaltung_customergroup_addedit .wpsg_form_field .wpsg_form_left  { width:100%; }
-.wpsg_mod_kundenverwaltung_customergroup_addedit .wpsg_form_field .wpsg_form_right  { width:100%; }
-
-/*
- * Versandarten
- */
-.va_table { width:100%; table-layout:fixed; border-collapse: collapse; }
-.va_table .wpsg_label { font-weight:bold; width:250px; padding:2px; }
-.va_table .wpsg_value { padding:2px; }
-.va_table .wpsg_delcol { position:relative; width:25px; text-align:right; padding:2px 0px 2px 2px; }
-.va_table .wpsg_delcol .wpsg_form_help { position:relative; }
-.va_table .wpsg_delcol a { float:right; }
-.va_table .wpsg_mwst_checkbox { width:20px; }
-
-/*
- * Rechnungsmoudl
- */
-.wpsg_mod_rechnungen_fieldtable { width:100%; } 
-.wpsg_mod_rechnungen_fieldtable th { text-align:left; }
-.wpsg_mod_rechnungen_fieldtable th.col_x, .wpsg_mod_rechnungen_fieldtable th.col_y { text-align:center; }
-.wpsg_mod_rechnungen_fieldtable .col_bezeichnung { width:100px; }
-.wpsg_mod_rechnungen_fieldtable .col_freitext { }
-.wpsg_mod_rechnungen_fieldtable .col_x { width:50px; }
-.wpsg_mod_rechnungen_fieldtable .col_y { width:50px; }
-.wpsg_mod_rechnungen_fieldtable .col_color { width:50px; }
-.wpsg_mod_rechnungen_fieldtable .col_groesse { width:50px; }
-.wpsg_mod_rechnungen_fieldtable .col_action { width:50px; }
-.wpsg_foottextlist { width:100%; }
-.wpsg_foottextlist th { text-align:left; }
-.col_standard { text-align:center; width:50px; } 
-
-/* Lieferscheinmodul (wpsg_mod_deliverynote) */
-.wpsg_mod_deliverynote_fieldtable { width:100%; } 
-.wpsg_mod_deliverynote_fieldtable th { text-align:left; }
-.wpsg_mod_deliverynote_fieldtable th.col_x, .wpsg_mod_rechnungen_fieldtable th.col_y { text-align:center; }
-.wpsg_mod_deliverynote_fieldtable .col_bezeichnung { width:100px; }
-.wpsg_mod_deliverynote_fieldtable .col_freitext { }
-.wpsg_mod_deliverynote_fieldtable .col_x { width:50px; }
-.wpsg_mod_deliverynote_fieldtable .col_y { width:50px; }
-.wpsg_mod_deliverynote_fieldtable .col_color { width:50px; }
-.wpsg_mod_deliverynote_fieldtable .col_groesse { width:50px; }
-.wpsg_mod_deliverynote_fieldtable .col_action { width:50px; }
-
-/*
- * Videodownload Modul
- */
-.wpsg_mod_videodownload_fieldtable { width:100%; } 
-.wpsg_mod_videodownload_fieldtable th { text-align:left; }
-.wpsg_mod_videodownload_fieldtable .col_bezeichnung { width:25px; }
-.wpsg_mod_videodownload_fieldtable .col_freitext_label { font-weight:bold; }
-.wpsg_mod_videodownload_fieldtable .col_freitext { }
-.wpsg_mod_videodownload_fieldtable .col_x { width:35px; }
-.wpsg_mod_videodownload_fieldtable .col_y { width:35px; }
-.wpsg_mod_videodownload_fieldtable .col_color { width:50px; }
-.wpsg_mod_videodownload_fieldtable .col_alpha { width:35px; }
-.wpsg_mod_videodownload_fieldtable .col_align { width:35px; text-align:center; }
-.wpsg_mod_videodownload_fieldtable .col_angle { width:50px; }
-.wpsg_mod_videodownload_fieldtable .col_groesse { width:50px; }
-.wpsg_mod_videodownload_fieldtable .col_font { width:150px; }
-.wpsg_mod_videodownload_fieldtable .col_font select { width:100%; }
-.wpsg_mod_videodownload_fieldtable .col_action { width:75px; }
-.wpsg_mod_videodownload_admin_delete { height:16px; width:16px; float:right; background-image:url('../gfx/delete.png'); cursor:pointer; }
-.wpsg_mod_videodownload_order_view_filelist { width:100%; }
-.wpsg_mod_videodownload_order_view_filelist .col_file { text-align:left; }
-.wpsg_mod_videodownload_order_view_filelist .col_status { text-align:left; }
-.wpsg_mod_videodownload_order_view_filelist .col_action { text-align:left; }
-.wpsg_mod_videodownload_order_view_filelist .row_raid td { color:red; }
-
-/*
- * PDFdownload Modul
- */
-.wpsg_mod_downloadplus_fieldtable { width:100%; } 
-.wpsg_mod_downloadplus_fieldtable th { text-align:left; }
-.wpsg_mod_downloadplus_fieldtable .col_bezeichnung { width:25px; }
-.wpsg_mod_downloadplus_fieldtable .col_freitext_label { font-weight:bold; }
-.wpsg_mod_downloadplus_fieldtable .col_freitext { }
-.wpsg_mod_downloadplus_fieldtable .col_x { width:35px; }
-.wpsg_mod_downloadplus_fieldtable .col_y { width:35px; }
-.wpsg_mod_downloadplus_fieldtable .col_color { width:50px; }
-.wpsg_mod_downloadplus_fieldtable .col_alpha { width:35px; }
-.wpsg_mod_downloadplus_fieldtable .col_align { width:35px; text-align:center; }
-.wpsg_mod_downloadplus_fieldtable .col_bg { width:35px; text-align:center; }
-.wpsg_mod_downloadplus_fieldtable .col_angle { width:50px; }
-.wpsg_mod_downloadplus_fieldtable .col_groesse { width:50px; }
-.wpsg_mod_downloadplus_fieldtable .col_font { width:150px; }
-.wpsg_mod_downloadplus_fieldtable .col_font select { width:100%; }
-.wpsg_mod_downloadplus_fieldtable .col_action { width:75px; }
-.wpsg_mod_downloadplus_admin_delete { height:16px; width:16px; float:right; background-image:url('../gfx/delete.png'); cursor:pointer; }
-.wpsg_mod_downloadplus_order_view_filelist { width:100%; }
-.wpsg_mod_downloadplus_order_view_filelist .col_file { text-align:left; }
-.wpsg_mod_downloadplus_order_view_filelist .col_status { text-align:left; }
-.wpsg_mod_downloadplus_order_view_filelist .col_action { text-align:left; }
-.wpsg_mod_downloadplus_order_view_filelist .row_raid td { color:red; } 
-.wpsg_mod_downloadplus_security input { float:left; width:auto !important; }
-.wpsg_mod_downloadplus .wpsg_border_bottom td { border-top:1px solid #DEDEDE; height:1	px; }
-
-/*
- * Variantenverwaltung
- */
-#wpsg_vp_drawVarianten div.wpsg_editable { width:auto; display:inline-block; }
-#wpsg_vp_drawVarianten .col_preis { width:150px; text-align:left; }
-#wpsg_vp_drawVarianten .col_fmenge { width:100px; text-align:left; }
-#wpsg_vp_drawVarianten .col_variname { width:350px; }
-#wpsg_vp_drawVarianten .col_variartnr { width:200px; text-align:left; }
-#wpsg_vp_drawVarianten .col_stock { width:100px; text-align:left; }
-#wpsg_vp_drawVarianten .wpsg_mod_varianten_productimage_row .pic { display:block; float:left; margin-right:5px; padding:5px; height:25px; width:25px; }
-#wpsg_vp_drawVarianten .wpsg_mod_varianten_productimage_row .mark { background-color:rgb(174, 174, 174); }
-#wpsg_vp_drawVarianten .wpsg_mod_varianten_orderwrap_image .wpsg_mod_varianten_productimage_row .mark:first-of-type { background-color:black; }
-#wpsg_vp_drawVarianten .wpsg_mod_varianten_ajaxloading { width:100%; height:100%; position:absolute; left:0px; top:0px; background-color:rgba(125, 125, 125, 0.5); margin-top:-10px; padding-bottom:21px; }
-#wpsg_vp_drawVarianten .wpsg_mod_varianten_ajaxloading img { position:absolute; left:50%; top:50%;  margin-left:-8px; margin-top:-5.5px; }
-
-/*
- * Gutscheinmodul
- */
-.wpsg_mod_gutschein .vouchertable { width:100%; }
-.wpsg_mod_gutschein .column-checkbox { width:25px; text-align:center; }
-.wpsg_mod_gutschein .column-nr { width:50px; text-align:left; }
-
-/*
- * Related Products
- */
-.wpsg_productselect { padding:15px; }
-.wpsg_productselect .wpsg_form_field { width:100%; }
-.wpsg_productselect .wpsg_form_left { width:50%; }
-.wpsg_productselect .wpsg_form_right { width:50%; }
-.wpsg_productselect .wpsg_form_right select { float:right; }
-#relatedproducts_list select { width:105px !important; }
-#relatedproducts_list .wpsg_icon { margin-top:5px; }
-
-/* Export Profile */
-#profil_content .wpsg_form_field { width:745px; }
-#profil_content .wpsg_form_field .wpsg_form_right { width:395px; min-height:24px; line-height:24px; }
-#profil_content #message { margin-left:0px; }
-#profil_content .wpsg_mod_export_fieldlist { width:100%; }
-#profil_content .wpsg_mod_export_fieldlist th { text-align:left; padding:2px 5px 2px 0px; }
-#profil_content .wpsg_mod_export_fieldlist td { text-align:left; padding:2px 5px 2px 0px; }
-#profil_content .wpsg_mod_export_fieldlist .odd td { background-color:#DEDEDE; }
-#profil_content .wpsg_mod_export_fieldlist .even { }
-#profil_content .wpsg_mod_export_col_field_user { font-weight:bold; }
-#wpsg_modexport .wpsg_mod_export_profillabel { margin-right:15px; display:block; float:left; }
-
-/* Produktvariablen */ 
-.wpsg_pv_table { width:100%; }
-.wpsg_pv_table tr td { vertical-align:top; }
-.wpsg_pv_table .wpsg_id { width:20px; text-align:left; cursor:move; }
-.wpsg_pv_table .wpsg_delcol { width:24px; text-align:center; }
-.wpsg_pv_table .wpsg_typ { width:100px; text-align:left; }
-.wpsg_pv_table .wpsg_pflicht { width:100px; text-align:center; }
-.wpsg_pv_table .wpsg_label { text-align:left; }
-
-/* Bestellvariablen */
-.wpsg_ov_table { width:100%; }
-.wpsg_ov_table .wpsg_id { width:20px; text-align:left; }
-.wpsg_ov_table .wpsg_delcol { width:24px; text-align:center; }
-.wpsg_ov_table .wpsg_typ { width:100px; text-align:left; }
-.wpsg_ov_table .wpsg_pflicht { width:100px; text-align:center; }
-.wpsg_ov_table .wpsg_label { text-align:left; }
-
-/* Statistikmodul */
-.wpsg_mod_statistics_totals_row { width:100%; }
-.wpsg_mod_statistics_totals_block { float:left; width:auto; text-align:center; font-family: Georgia,"Times New Roman","Bitstream Charter",Times,serif; }
-.wpsg_mod_statistics_totals_block .number { font-size:18px; color:#21759B; display:block; padding-bottom:10px; padding-top:5px; }
-.wpsg_mod_statistics_totals_block .label { font-size:16px; color:#8F8F8F; display:block; padding-bottom:5px; }
-.wpsg_mod_statistics_totals_block .label a { color:#8F8F8F; border-bottom:1px solid #ECECEC; padding-left:10px; padding-right:15px; padding-bottom:5px; }
-.subsubsub #table-data .th-right span { float:right; }
-.subsubsub #table-data .td-right { text-align:right; }
-
-/* Zahlvarianten */
-.zv_table { width:100%; table-layout:fixed; border-collapse: collapse; }
-.zv_table .wpsg_label { font-weight:bold; width:250px; padding:2px; }
-.zv_table .wpsg_value { padding:2px; }
-.zv_table .wpsg_delcol { width:25px; position:relative; text-align:right; padding:2px 0px 2px 2px; }
-.zv_table .wpsg_delcol .wpsg_form_help { position:relative; top:0px; }
-.zv_table .wpsg_delcol a { float:right; }
-.zv_table .wpsg_mwst_checkbox { width:20px; }
-
-/* Auftragsbestï¿œtigung */
-.wpsg_order_view_auftragsbestaetigung { width:100%; }
-.wpsg_order_view_auftragsbestaetigung_submit { margin-top:5px; margin-bottom:5px; }
-
-/* Rabattmodul */
-.wpsg_mod_discount_generalcol { float:left; width:33%; }
-.wpsg_mod_discount_seriescol { float:left; width:50%; line-height:25px; vertical-align:middle; }
-.wpsg_mod_discount_seriescol_sub { width:25%; }
-.wpsg_mod_discount_seriescol input[type=text] { width:70% !important; }
-.wpsg_mod_discount_seriescol input[type=checkbox] { width:auto !important; margin-right:5px; }
-.wpsg_mod_discount_settings #wpsg_mod_discount_hierarchie ul { margin-top:0px; }
-.wpsg_mod_discount_settings #wpsg_mod_discount_hierarchie input[type="checkbox"] { width:auto; }
-.wpsg_mod_discount_settings #wpsg_mod_discount_hierarchie ul li { padding-left:5px; width:96%; line-height:25px; height:25px; background-color:#DDDDDD; cursor:move; }
-.wpsg_mod_discount_settings #wpsg_mod_discount_hierarchie ul li input { display:none; }
-
-/* Registrierung */
-.wpsg_registerform { padding:10px; }
-.wpsg_registersuccess { color:green; }
-.wpsg_registerfailure { color:red; }
-
-/* Berechtigungsverwaltung */
-.wpsg_access_table { width:100%; table-layout:fixed; margin-top:50px; }
-.wpsg_access_table .wpsg_col_capname { width:150px; padding-right:25px; }
-.wpsg_access_table th.wpsg_col_cap { -webkit-transform: rotate(-90deg); -moz-transform: rotate(-90deg); height:40px; text-align:center; width:25px; }
-.wpsg_access_table td.wpsg_col_cap { text-align:center; }
-
-/* Gutscheinproduktmodul */
-.wpsg_mod_voucherproduct_list .wpsg_mod_voucherproduct_code { float:left; }
-.wpsg_mod_voucherproduct_list .wpsg_mod_voucherproduct_status { width:auto; float:right; text-align:right; }
-#wpsg_voucherproduct_target .wpsg_button { float:left; }
-
-/* Statistimodul */
-#wpsg_statistics_form .wpsg_form_field .wpsg_form_left { width:70px; }
-.wpsg-table-data-wrapper { float:left; margin-right:15px; }
-td.jqplot-table-legend { vertical-align:middle !important; white-space:no-wrap !important; }
-.orderdown .sorting-indicator { background-image: url("../../../../../wp-admin/images/sort.gif"); background-position:0% 50%; display:inline-block; height:10px; width:7px; }
-.orderup .sorting-indicator { background-image: url("../../../../../wp-admin/images/sort.gif"); background-position:100% 50%; display:inline-block; height:10px; width:7px; }
-.orderdown span, .orderup span { cursor: pointer; float:none !important; }
-
-/* Bankabgleichsmodul (mod_bankalignment) */
-.wpsg_mod_bankalignment_order_ajax .row-details { font-family:monospace; display:none; }
-
-/* E-Bay Schnittstelle (mod_ebay) */
-#wpsg_mod_ebay_categorieselect_dialog { padding:10px; }
-#wpsg_mod_ebay_categorieselect_dialog select { width:100%; }
-#wpsg_mod_ebay_categorietext { float:left; }
-.wpsg_mod_ebay_cattarget img { margin-top:5px; }
-
-/* Staffelpreismodul (mod_scaleprice) */
-.wpsg_mod_scaleprice_label_scale { float:left; width:25%; font-weight:normal; }
-.wpsg_mod_scaleprice_label_value { float:right; width:25%; text-align:center; font-weight:normal; }
-.wpsg_mod_scaleprice_value { width:48% !important; float:left !important; }
-.wpsg_mod_scaleprice_scale { width:48%; float:left; }
-.wpsg_mod_scaleprice_row .wpsg_form_left .wpsg_editable { width:48%; float:left; text-align:right; font-weight:normal; }
-.wpsg_mod_scaleprice_row .wpsg_form_right .wpsg_editable { line-height: 24px; text-align:right; width:48%; float:left; font-weight:normal; }
-#wpsg_mod_scaleprice_target p.waehrung { width:25%; float:left; padding-top:3px; }
-#wpsg_mod_scaleprice_target .wpsg_icon_add { margin-top:3px; }
-#wpsg_mod_scaleprice_target .wpsg_icon_remove { margin-top:3px; }
-
-/* Hï¿œndlerbund (mod_haendlerbund) */
-.wpsg_mod_haendlerbund_settings .wpsg_mod_haendlerbund_date { float:right; line-height:25px; margin-right:25px; }
-
-/* Rechtstexte */
-.wpsg_ps_update input[type="checkbox"] { width:auto !important; margin-top:5px; margin-right:5px; float:left; }
-
-/* Micropayment (mod_micropayment) */
-#wpsg_mod_micropayment_handypay_infolayer, #wpsg_mod_micropayment_call2pay_infolayer { line-height:0.65rem; padding-top:0.5rem; padding-bottom:0.5rem; }
-#wpsg_mod_micropayment_handypay_infolayer ul, #wpsg_mod_micropayment_call2pay_infolayer ul { list-style:circle; margin-left:15px; }
-
-.wpsg_mod_test_table table { width:100%; }
-.wpsg_mod_test_table table th { text-align:left; font-size:12px; line-height:16px; }
-.wpsg_mod_test_table table td { test-align:left; font-size:12px; line-height:16px; }
-
-/* Hilfetooltip */
-.cluetip-title { background-color:#767676 !important; color:#FFFFFF !important; }
-.cluetip-title a { color:#FFFFFF !important; }
-.cluetip-inner { background-color: #F7F7F7; }
-.clue-left-default .cluetip-arrows { background-image:url('../gfx/darrowright.gif') !important; margin-top:5px !important; }
-.clue-right-default .cluetip-arrows { background-image:url('../gfx/darrowleft.gif') !important; margin-top:5px !important; }
-
-/* Bankeinzug (wpsg_mod_autodebit) */
-input.wpsg_mod_autodebit_button { width:100% !important; }
-
-/* 3.8 Kompatibilitï¿œt */
-.version-3-8 .wpsg_order_view .inner-sidebar .wpsg_form_field .wpsg_form_left { width:40%; }
-.version-3-8 .wpsg_order_view .inner-sidebar .wpsg_form_field .wpsg_form_right { width:60%; }
-
-/* Modul "Wirecard" */
-.wpsg_mod_wirecard_paymenttypeselect input[type="checkbox"] { width:auto; margin-left:5px; margin-top:-3px; }
-.wpsg_mod_wirecard_paymenttypeselect li { padding-left:5px; width:100%; line-height:25px; height:25px; background-color:#DDDDDD; cursor:move; }
-
-/* Modul "Bestellbedingungen" */
-.wpsg_mod_ordercondition_text { width:100%; height:300px; }
-
-/* Modul "Kundenkontakt" */
-#kk_text { font-family:"Courier New"; }
-
-/* Rechtstexte */
-.wpsg_mod_legaltexts_protectedshops_table { width:100%; }
-.wpsg_mod_legaltexts_protectedshops_table th { text-align:left; width:343px; }
-.wpsg_ps_update { float:right; }
-.wpsg_ps_status { float:left; }
-select.wpsg_ps_page { width:73%; }
-select.wpsg_ps_format { float:right; width:23%; }
-#wpshopgermany_ts_shopid { width:100%; }
-#wpsgitrecht_message { margin-left:5px; }
-.wpsgitrecht_clear { clear:both; }
-.wpsgitrecht_form_field { width:770px; margin-bottom:5px; }
-.wpsgitrecht_form_field .wpsgitrecht_form_left { line-height:24px; font-weight:bold; width:350px; float:left; }
-.wpsgitrecht_form_field .wpsgitrecht_form_right { width:420px; float:left; position:relative; line-height:28px; }
-.wpsgitrecht_form_field .wpsgitrecht_form_right select, .wpsgitrecht_form_field .wpsgitrecht_form_right input { width:95%; }
-.wpsgitrecht_form_field .wpsgitrecht_form_right input.checkbox { width:auto !important; float:left; margin-left:2px; margin-top:5px; }
-.wpsgitrecht_form_field .wpsgitrecht_form_right p { padding:4px 0px 4px 6px; margin:0px; }
-.wpsgitrecht_form { padding:10px; }
-.wpsgitrecht_date { float:right; padding-right:5%; }
-.wpsgitrecht_hinweis { font-style:italic; }
-.wpsgitrecht_table { border-spacing:0px; border-collapse:collapse; }
-.wpsgitrecht_table .col0 { width:347px; }
-.wpsgitrecht_table .col1 { width:400px; }
-.wpsgitrecht_table .col1 p { padding:2px 0px 2px 10px; display:inline-block; margin:0px; }
-.wpsgitrecht_table .col1 select { width:100%; }
-.wpsg_itrecht_generatebutton { width:16px; height:16px; background-image:url('../gfx/arrow_refresh_small.png'); ?>); display:inline-block; float:right; margin-top:6px; }
-
-/* Modul "Paketverfolgung" */
-.wpsg_mod_packagetracking_settings_edit_list .trackingprovider_table { width:100%; table-layout:fixed; border-collapse: collapse; }
-.wpsg_mod_packagetracking_settings_edit_list .trackingprovider_table .wpsg_label { font-weight:bold; width:150px; padding:2px; }
-.wpsg_mod_packagetracking_settings_edit_list .trackingprovider_table .wpsg_value { padding:2px; }
-.wpsg_mod_packagetracking_settings_edit_list .trackingprovider_table .wpsg_delcol { position:relative; width:25px; text-align:right; padding:2px 0px 2px 2px; }
-.wpsg_mod_packagetracking_settings_edit_list .trackingprovider_table .wpsg_delcol .wpsg_form_help { position:relative; }
-.wpsg_mod_packagetracking_settings_edit_list .trackingprovider_table .wpsg_delcol a { float:right; }
-.wpsg_mod_versandarten_packagetracking .wpsg_mod_packagetracking_provider { width:100%; }
-
-/* Modul CrefoPay */
-.wpsg_mod_crefopay_order_sidebar .button { margin-right:5px; margin-top:5px; float:left; }
-.wpsg_mod_crefopay_mnsstatemapping { display:none; }
-.wpsg_mod_crefopay_mnsstatemapping .wpsg_form_field { margin-bottom:0px; }
-
-/* Modul TrustedShops */
-.wpsg_mod_protectedshops #wpsg_mod_trustedshops_reminderDays { width:50px; float:left; margin-right:5px; }
-.wpsg_mod_protectedshops .wpsg_form_field .wpsg_form_trustedshops_reminderDays p { float:left; padding-right:5px; padding-left:2px; } 
- 
-/* News Bereich */
-.wpsg_news_wrap {}
-.wpsg_news_wrap .wpsg_news .markRead { text-align:right; width:100px; display:none; position:absolute; right:15px; top:15px; }
-.wpsg_news_wrap .wpsg_news_read .markRead img { float:right; margin-left:5px; }
-.wpsg_news_wrap .wpsg_news { width:100%; box-sizing:border-box; position:relative; padding:5px 10px 10px 10px; margin-bottom:15px; background-color:#FFFFFF; }
-.wpsg_news_wrap .wpsg_news h2 a { text-decoration:none; color:inherit !important; }
-.wpsg_news_wrap .wpsg_news_read {  }
-.wpsg_news_wrap .wpsg_news_read .markRead { display:block; }
-.wpsg_news_unreadhint { color:#FFFFFF; background-color:#FF0000; padding:0px 4px; line-height:16px; font-size:8px; display:inline-block; font-weight:bold; border-radius:15px; width:8px; text-align:center; vertical-align:top; margin-top:4px; margin-left:0px; }
-
-
-
+/* Formularanpassungen */
+.form-checkbox label { font-size:12px; line-height:200%; }
Index: /views/mods/mod_deliverynote/deliverynote_pdf.phtml
===================================================================
--- /views/mods/mod_deliverynote/deliverynote_pdf.phtml	(revision 5371)
+++ /views/mods/mod_deliverynote/deliverynote_pdf.phtml	(revision 5382)
@@ -100,7 +100,7 @@
 						
 					$pdf->SetFont('Arial', 'B', ((intval($text['fontsize']) > 0)?intval($text['fontsize']):10));
-					$pdf->SetTextColor($text['color']);
-					$pdf->MultiCell($text['x'], $text['y'], 5, utf8_encode($text['text']));
-					$pdf->SetTextColor("#000000");
+					$pdf->wpsg_SetTextColor($text['color']);
+					$pdf->wpsg_MultiCell($text['x'], $text['y'], 5, $text['text']);
+					$pdf->wpsg_SetTextColor("#000000");
 						
 				}
@@ -250,5 +250,5 @@
 		
 		$height_y = $pdf->getY();
-		$height = 2 + $pdf->MultiCell($prod_left + 10, $prod_top + $offset + 1.5, 5, utf8_encode($produkt_text), 0, 'L', 0, $produkt_text_cell_width);
+		$height = 2 + $pdf->wpsg_MultiCell($prod_left + 10, $prod_top + $offset + 1.5, 5, $produkt_text, 0, 'L', 0, $produkt_text_cell_width);
 		
 		$pdf->setXY($prod_left + 147, $prod_top + $offset);
@@ -272,5 +272,5 @@
 				
 			$cellY = $pdf->getY();
-			$pdf->MultiCell($prod_left + 10, $prod_top + $height + $offset - 1, 5, utf8_encode($produktBeschreibung), 0, 'L', 0, $produkt_text_cell_width);
+			$pdf->wpsg_MultiCell($prod_left + 10, $prod_top + $height + $offset - 1, 5, $produktBeschreibung, 0, 'L', 0, $produkt_text_cell_width);
 			$pBeschreibungHeight = $pdf->getY() - $cellY - $height + 1;
 			$pdf->SetFont('Arial', '', 9);
@@ -288,5 +288,5 @@
 			$variInfo = $this->callMod('wpsg_mod_varianten', 'getVariantenInfoArray', array($p['productkey']));
 		
-			$height += $pdf->MultiCell($prod_left + 10, $prod_top + $height + $offset - 1.5, 5, utf8_encode(wpsg_translate(__('Variante: #1#', 'wpsg'), $variInfo['key'])), 0, 'L', 0, $produkt_text_cell_width);
+			$height += $pdf->wpsg_MultiCell($prod_left + 10, $prod_top + $height + $offset - 1.5, 5, wpsg_translate(__('Variante: #1#', 'wpsg'), $variInfo['key']), 0, 'L', 0, $produkt_text_cell_width);
 				 
 		}
@@ -319,5 +319,5 @@
 	{
 	
-		$pdf->MultiCell($prod_left - 1, $prod_top + $offset, 5, utf8_encode($this->view['fussText']));
+		$pdf->wpsg_MultiCell($prod_left - 1, $prod_top + $offset, 5, $this->view['fussText']);
 		$pdf->SetFont('Arial', 'B', 9);
 		$offset += 10;
Index: /views/mods/mod_downloadplus/settings_edit.phtml
===================================================================
--- /views/mods/mod_downloadplus/settings_edit.phtml	(revision 5371)
+++ /views/mods/mod_downloadplus/settings_edit.phtml	(revision 5382)
@@ -218,5 +218,5 @@
 			<p>
 				<?php echo __('HTTP Aufruf des Cron Scriptes:', 'wpsg'); ?><br /><br />
-				<a href="<?php echo WPSG_PLUGIN_URL; ?>/wpshopgermany/cron.php" target="_blank"><?php echo WPSG_PLUGIN_URL; ?>/wpshopgermany/cron.php</a>
+				<a href="<?php echo WPSG_PLUGIN_URL; ?>/<?php echo WPSG_FOLDERNAME; ?>/cron.php" target="_blank"><?php echo WPSG_PLUGIN_URL; ?>/wpshopgermany/cron.php</a>
 			</p>		
 			
Index: /views/mods/mod_fuellmenge/settings_edit.phtml
===================================================================
--- /views/mods/mod_fuellmenge/settings_edit.phtml	(revision 5371)
+++ /views/mods/mod_fuellmenge/settings_edit.phtml	(revision 5382)
@@ -9,4 +9,5 @@
 <?php echo wpsg_drawForm_Input('wpsg_mod_fuellmenge_einheit', __('MÃ¶gliche Einheiten (Kommagetrennt)', 'wpsg'), $this->get_option('wpsg_mod_fuellmenge_einheit'), array('help' => 'wpsg_mod_fuellmenge_einheit')); ?>
 <?php echo wpsg_drawForm_Input('wpsg_mod_fuellmenge_bezug', __('BezugsgrÃ¶Ãe', 'wpsg'), $this->get_option('wpsg_mod_fuellmenge_bezug'), array('help' => 'wpsg_mod_fuellmenge_bezug')); ?>
+<?php echo wpsg_drawForm_Checkbox('wpsg_mod_fuellmenge_showAjaxDialog', __('In der Warenkorb-Lightbox anzeigen', 'wpsg'), $this->get_option('wpsg_mod_fuellmenge_showAjaxDialog'), array('help' => 'wpsg_mod_fuellmenge_showAjaxDialog')); ?>
 <?php if ($this->hasMod('wpsg_mod_productindex')) { ?>
 <?php echo wpsg_drawForm_Checkbox('wpsg_mod_fuellmenge_showProductindex_fmenge', __('FÃŒllmenge auf ProduktÃŒbersichtsseiten anzeigen', 'wpsg'), $this->get_option('wpsg_mod_fuellmenge_showProductindex_fmenge'), array('help' => 'wpsg_mod_fuellmenge_showProductindex_fmenge')); ?>
Index: /views/mods/mod_gutschein/index.phtml
===================================================================
--- /views/mods/mod_gutschein/index.phtml	(revision 5371)
+++ /views/mods/mod_gutschein/index.phtml	(revision 5382)
@@ -221,5 +221,5 @@
 						<?php if (trim($g['comment']) != '') { ?>
 						<a href="#" style="cursor:default;" title="<?php echo wpsg_hspc($g['comment']); ?>">
-							<img src="<?php echo WPSG_URL_CONTENT; ?>plugins/wpshopgermany/views/gfx/comment.png" alt="<?php echo wpsg_hspc($g['comment']); ?>" />
+							<img src="<?php echo WPSG_URL_CONTENT; ?>plugins/<?php echo WPSG_FOLDERNAME; ?>/views/gfx/comment.png" alt="<?php echo wpsg_hspc($g['comment']); ?>" />
 						</a>
 						<?php } ?>
Index: /views/mods/mod_kundenverwaltung/edit.phtml
===================================================================
--- /views/mods/mod_kundenverwaltung/edit.phtml	(revision 5371)
+++ /views/mods/mod_kundenverwaltung/edit.phtml	(revision 5382)
@@ -94,5 +94,71 @@
 		}
 		
-	} );
+// Visualisierung der PasswortstÃ€rke 
+
+	jQuery('input[type=password]').keyup(function(){
+
+			var password = jQuery(this).val();
+			
+			if (password.length < 6) {
+				
+				jQuery('#wpsg_pwd_length').removeClass('valid').addClass('invalid');
+
+			}else{
+
+				jQuery('#wpsg_pwd_length').removeClass('invalid').addClass('valid');
+	
+			}
+
+			if (password.match(/([a-z])/)) {
+				
+				jQuery('#wpsg_pwd_letter').removeClass('invalid').addClass('valid');
+
+			}else{
+
+				jQuery('#wpsg_pwd_letter').removeClass('valid').addClass('invalid');
+	
+			}
+
+			if (password.match(/([A-Z])/)) {
+				
+				jQuery('#wpsg_pwd_capital').removeClass('invalid').addClass('valid');
+
+			}else{
+
+				jQuery('#wpsg_pwd_capital').removeClass('valid').addClass('invalid');
+	
+			}
+			
+			if (password.match(/([0-9])/)) {
+				
+				jQuery('#wpsg_pwd_number').removeClass('invalid').addClass('valid');
+
+			}else{
+
+				jQuery('#wpsg_pwd_number').removeClass('valid').addClass('invalid');
+	
+			}
+
+			if (password.match(/([~,!,%,@,&,#,Â°,^,$,?,_,*,Â§])/)) {
+				
+				jQuery('#wpsg_pwd_speziell').removeClass('invalid').addClass('valid');
+
+			}else{
+
+				jQuery('#wpsg_pwd_speziell').removeClass('valid').addClass('invalid');
+	
+			}
+			
+
+			jQuery('#wpsg_pwd_info').show(); 
+
+			jQuery(this).blur(function(){
+
+				jQuery('#wpsg_pwd_info').hide(); 
+				
+			});
+		});	
+	});		
+		
 
 /* ]]> */
@@ -122,5 +188,17 @@
 						<div class="inside">
 							<?php echo wpsg_drawForm_Input('password1', __('Passwort', 'wpsg'), ''); ?>
+							<span id="wpsg_customerpassword_result"></span>	
 							<?php echo wpsg_drawForm_Input('password2', __('Wiederholung', 'wpsg'), ''); ?>
+							<div id="wpsg_pwd_info"> 
+							<h4><?php echo __('Passwort sollte folgende Regeln befolgen:','wpsg') ?></h4>
+							<ul>
+									<li id="wpsg_pwd_length" class="invalid"><?php echo __('Das Passwort ist zu kurz!','wpsg')?></li>
+									<li id="wpsg_pwd_letter" class="invalid"><?php echo __('Mindestens ein Kleinbuchstabe','wpsg') ?></li>
+									<li id="wpsg_pwd_capital" class="invalid"><?php echo __('Mindestens ein GroÃbuchstabe','wpsg') ?></li>
+									<li id="wpsg_pwd_number" class="invalid"><?php echo __('Mindestens eine Zahl','wpsg') ?></li>
+									<li id="wpsg_pwd_speziell" class="invalid"><?php echo __('Mindestens ein Sonderzeichen','wpsg') ?></li>
+								</ul>
+							</div>
+							<div class="wpsg_clear"></div>	
 						</div>
 					</div>
Index: /views/mods/mod_kundenverwaltung/profil.phtml
===================================================================
--- /views/mods/mod_kundenverwaltung/profil.phtml	(revision 5371)
+++ /views/mods/mod_kundenverwaltung/profil.phtml	(revision 5382)
@@ -10,8 +10,107 @@
 
 	jQuery(document).ready(function() {
-		
-		jQuery("#form-profil").validationEngine('attach', {promptPosition : "centerRight", scroll: false});
-		
-	} );
+
+		<?php if ($this->get_option('wpsg_form_validation') == '1') { ?>
+
+		if (typeof jQuery.validationEngine == "object")
+		{
+
+			jQuery("#form-profil").validationEngine('attach', {promptPosition : "centerRight", scroll: false});
+
+		}
+
+		<?php } else if ($this->get_option('wpsg_form_validation') == '2') { ?>
+
+		jQuery.validator.addMethod("cRequired", jQuery.validator.methods.required, "<?php echo __('Dieses Feld ist ein Pflichtfeld.', 'wpsg'); ?>");
+		jQuery.validator.addClassRules('validate[required]', { cRequired: true } );
+		jQuery("#form-profil").validate( { 
+			ignore: '',
+			errorClass: 'wpsg_error',
+			onsubmit: false,
+			showErrors: function(errorMap, errorList) {
+
+				this.defaultShowErrors();	
+
+			}
+		} ); 
+
+		jQuery('#wpsg_mod_kundenverwaltung_save').bind('click', function() { 
+
+			var bReturn = jQuery('#form-profil').validate().form();
+			if (jQuery('#form-profil input.wpsg_error').length > 0) jQuery('#form-profil input.wpsg_error')[0].focus();
+			return bReturn;
+			  
+		} );
+		
+		<?php } ?>
+		
+// Visualisierung der PasswortstÃ€rke 
+
+		jQuery('input[type=password]').keyup(function(){
+
+			var password = jQuery(this).val();
+			
+			if (password.length < 6) {
+				
+				jQuery('#wpsg_pwd_length').removeClass('valid').addClass('invalid');
+
+			}else{
+
+				jQuery('#wpsg_pwd_length').removeClass('invalid').addClass('valid');
+	
+			}
+
+			if (password.match(/([a-z])/)) {
+				
+				jQuery('#wpsg_pwd_letter').removeClass('invalid').addClass('valid');
+
+			}else{
+
+				jQuery('#wpsg_pwd_letter').removeClass('valid').addClass('invalid');
+	
+			}
+
+			if (password.match(/([A-Z])/)) {
+				
+				jQuery('#wpsg_pwd_capital').removeClass('invalid').addClass('valid');
+
+			}else{
+
+				jQuery('#wpsg_pwd_capital').removeClass('valid').addClass('invalid');
+	
+			}
+			
+			if (password.match(/([0-9])/)) {
+				
+				jQuery('#wpsg_pwd_number').removeClass('invalid').addClass('valid');
+
+			}else{
+
+				jQuery('#wpsg_pwd_number').removeClass('valid').addClass('invalid');
+	
+			}
+
+			if (password.match(/([~,!,%,@,&,#,Â°,^,$,?,_,*,Â§])/)) {
+				
+				jQuery('#wpsg_pwd_speziell').removeClass('invalid').addClass('valid');
+
+			}else{
+
+				jQuery('#wpsg_pwd_speziell').removeClass('valid').addClass('invalid');
+	
+			}
+			
+
+			jQuery('#wpsg_pwd_info').show(); 		
+			
+			jQuery(this).blur(function(){
+
+				jQuery('#wpsg_pwd_info').hide(); 
+				
+			});
+			
+		});	
+
+	});	
 		
 </script>
@@ -142,19 +241,19 @@
 			<label class="wpsg_cv" for="wpsg_cv_<?php echo $c_id; ?>">
 				<?php echo wpsg_hspc(__($c['name'], 'wpsg')); ?><?php if ($c['show'] == '0') { ?> <span class="wpsg_required">*</span><?php } ?>:
-				<?php if ($c['typ'] == '0') { // Textfeld ?>
-				<input class="<?php echo (($c['show'] == '0')?'validate[required]':''); ?> <?php echo ((in_array("custom_".$c_id, (array)$this->view['error']))?'wpsg_error':''); ?>" name="wpsg[profil][custom][<?php echo $c_id; ?>]" type="text" value="<?php echo wpsg_hspc($this->view['data']['custom'][$c_id]); ?>" />
-				<?php } else if ($c['typ'] == '1') { $arAuswahl = explode("|", $c['auswahl']); // Auswahlfeld ?>
-				<select class="<?php echo (($c['show'] == '0')?'validate[required]':''); ?> <?php echo ((in_array("custom_".$c_id, (array)$this->view['error']))?'wpsg_error':''); ?>" name="wpsg[profil][custom][<?php echo $c_id; ?>]">
-					<option value="-1"><?php echo __('Bitte AuswÃ€hlen', 'wpsg'); ?></option>
-					<?php foreach ((array)$arAuswahl as $a) { ?>
-					<option value="<?php echo wpsg_hspc($a); ?>" <?php echo (($a == $this->view['data']['custom'][$c_id])?'selected="selected"':''); ?>><?php echo wpsg_hspc($a); ?></option>
-					<?php } ?>
-				</select>
-				<?php } else if ($c['typ'] == '2') { // Checkbox ?>
-				<input type="hidden" name="wpsg[profil][custom][<?php echo $c_id; ?>]" value="0" />
-				<input id="wpsg_cv_<?php echo $c_id; ?>" class="<?php echo (($c['show'] == '0')?'validate[required]':''); ?> checkbox" type="checkbox" value="1" name="wpsg[profil][custom][<?php echo $c_id; ?>]" value="1" <?php echo wpsg_hspc(($this->view['data']['custom'][$c_id] == '1')?'checked="checked"':''); ?> />
-				<span class="wpsg_clear"></span> 
+			</label>
+			<?php if ($c['typ'] == '0') { // Textfeld ?>
+			<input class="<?php echo (($c['show'] == '0')?'validate[required]':''); ?> <?php echo ((in_array("custom_".$c_id, (array)$this->view['error']))?'wpsg_error':''); ?>" name="wpsg[profil][custom][<?php echo $c_id; ?>]" type="text" value="<?php echo wpsg_hspc($this->view['data']['custom'][$c_id]); ?>" />
+			<?php } else if ($c['typ'] == '1') { $arAuswahl = explode("|", $c['auswahl']); // Auswahlfeld ?>
+			<select class="<?php echo (($c['show'] == '0')?'validate[required]':''); ?> <?php echo ((in_array("custom_".$c_id, (array)$this->view['error']))?'wpsg_error':''); ?>" name="wpsg[profil][custom][<?php echo $c_id; ?>]">
+				<option value="-1"><?php echo __('Bitte AuswÃ€hlen', 'wpsg'); ?></option>
+				<?php foreach ((array)$arAuswahl as $a) { ?>
+				<option value="<?php echo wpsg_hspc($a); ?>" <?php echo (($a == $this->view['data']['custom'][$c_id])?'selected="selected"':''); ?>><?php echo wpsg_hspc($a); ?></option>
 				<?php } ?>
-			</label>
+			</select>
+			<?php } else if ($c['typ'] == '2') { // Checkbox ?>
+			<input type="hidden" name="wpsg[profil][custom][<?php echo $c_id; ?>]" value="0" />
+			<input id="wpsg_cv_<?php echo $c_id; ?>" class="<?php echo (($c['show'] == '0')?'validate[required]':''); ?> checkbox" type="checkbox" value="1" name="wpsg[profil][custom][<?php echo $c_id; ?>]" value="1" <?php echo wpsg_hspc(($this->view['data']['custom'][$c_id] == '1')?'checked="checked"':''); ?> />
+			<span class="wpsg_clear"></span> 
+			<?php } ?>			
 		</div>
 		<?php } } ?>
@@ -167,5 +266,5 @@
 			<?php if ($this->get_option('wpsg_mod_kundenverwaltung_showCheckoutRegisterzwand') == '1') { ?><span class="wpsg_required">*</span><?php } ?>:
 			</label>
-			<input class="wpsg_checkout <?php echo ((in_array("mod_kundenverwaltung_pwd1", (array)$this->view['error']))?'wpsg_error':''); ?>" type="password" id="mod_kundenverwaltung_pwd1" name="wpsg[mod_kundenverwaltung][register_pwd1]" value="" />	
+			<input class="wpsg_checkout <?php echo ((in_array("mod_kundenverwaltung_pwd1", (array)$this->view['error']))?'wpsg_error':''); ?>" type="password" id="wpsg_mod_kundenverwaltung_pw1" name="wpsg[mod_kundenverwaltung][register_pwd1]" value="" /><span id="wpsg_mod_kundenverwaltung_password_result"></span>	
 		</div>
 		
@@ -177,4 +276,15 @@
 		</div>
 		
+		<div id="wpsg_pwd_info"> 
+		<h4><?php echo __('Passwort sollte folgende Regeln befolgen:','wpsg') ?></h4>
+			<ul>
+				<li id="wpsg_pwd_length" class="invalid"><?php echo __('Das Passwort ist zu kurz!','wpsg')?></li>
+				<li id="wpsg_pwd_letter" class="invalid"><?php echo __('Mit mindestens einem Kleinbuchstaben wird das Passwort noch sicherer','wpsg') ?></li>
+				<li id="wpsg_pwd_capital" class="invalid"><?php echo __('Mit mindestens einem GroÃbuchstaben wird das Passwort noch sicherer','wpsg') ?></li>
+				<li id="wpsg_pwd_number" class="invalid"><?php echo __('Mit mindestens einer Zahl wird das Passwort noch sicherer','wpsg') ?></li>
+				<li id="wpsg_pwd_speziell" class="invalid"><?php echo __('Mit mindestens einem Sonderzeichen wird das Passwort noch sicherer','wpsg') ?></li>
+			</ul>
+		</div>
+		
 		<div class="wpsg_clear"></div><br />
 	
@@ -185,5 +295,5 @@
 		<div class="wpsg_clear"></div><br />
 		
-		<input type="submit" class="wpsg_button wpsg_saveButton" value="<?php echo __('Speichern', 'wpsg'); ?>" name="wpsg_mod_kundenverwaltung_save" />
+		<input type="submit" class="wpsg_button wpsg_saveButton" id="wpsg_mod_kundenverwaltung_save" value="<?php echo __('Speichern', 'wpsg'); ?>" name="wpsg_mod_kundenverwaltung_save" />
 	
 		<?php $this->ClearSessionErrors(); ?>
Index: /views/mods/mod_kundenverwaltung/register.phtml
===================================================================
--- /views/mods/mod_kundenverwaltung/register.phtml	(revision 5371)
+++ /views/mods/mod_kundenverwaltung/register.phtml	(revision 5382)
@@ -49,13 +49,85 @@
 		<?php } ?>
 		
-	} );
-		
+
+// Visualisierung der PasswortstÃ€rke 
+
+		jQuery('input[type=password]').keyup(function(){
+
+			var password = jQuery(this).val();
+			
+			if (password.length < 6) {
+				
+				jQuery('#wpsg_pwd_length').removeClass('valid').addClass('invalid');
+
+			}else{
+
+				jQuery('#wpsg_pwd_length').removeClass('invalid').addClass('valid');
+	
+			}
+
+			if (password.match(/([a-z])/)) {
+				
+				jQuery('#wpsg_pwd_letter').removeClass('invalid').addClass('valid');
+
+			}else{
+
+				jQuery('#wpsg_pwd_letter').removeClass('valid').addClass('invalid');
+	
+			}
+
+			if (password.match(/([A-Z])/)) {
+				
+				jQuery('#wpsg_pwd_capital').removeClass('invalid').addClass('valid');
+
+			}else{
+
+				jQuery('#wpsg_pwd_capital').removeClass('valid').addClass('invalid');
+	
+			}
+			
+			if (password.match(/([0-9])/)) {
+				
+				jQuery('#wpsg_pwd_number').removeClass('invalid').addClass('valid');
+
+			}else{
+
+				jQuery('#wpsg_pwd_number').removeClass('valid').addClass('invalid');
+	
+			}
+
+			if (password.match(/([~,!,%,@,&,#,Â°,^,$,?,_,*,Â§])/)) {
+				
+				jQuery('#wpsg_pwd_speziell').removeClass('invalid').addClass('valid');
+
+			}else{
+
+				jQuery('#wpsg_pwd_speziell').removeClass('valid').addClass('invalid');
+	
+			}
+			
+
+			jQuery('#wpsg_pwd_info').show(); 
+
+
+			jQuery(this).blur(function(){
+
+				jQuery('#wpsg_pwd_info').hide(); 
+				
+			});
+			
+		});
+
+		
+// Validierung Spam	
+
 	<?php
-   		if ($_GET["wpsg_spam_email"] != "") {
-     		echo "<p>Sie haben ein Feld ausgefÃŒllt, das frei bleiben muss.</p>";
-     		exit;
-  		}
+	   		if ($_GET["wpsg_spam_email"] != "") {
+	     		echo "<p>Sie haben ein Feld ausgefÃŒllt, das frei bleiben muss.</p>";
+	     		exit;
+	  		}
 	?>
-		
+
+	});	
+	
 </script>
 
@@ -116,5 +188,5 @@
 			<?php if ($this->view['pflicht']['pwd1'] != '1') { ?><span class="wpsg_required">*</span><?php } ?>:
 			</label>
-			<input class="<?php echo (($this->view['pflicht']['pwd1'] != '1')?'validate[required]':''); ?> wpsg_register <?php echo ((in_array("mod_kundenverwaltung_pwd1", (array)$this->view['error']))?'wpsg_error':''); ?>" type="password" id="pwd1" name="wpsg[register][register_pwd1]" value="" />
+			<input class="<?php echo (($this->view['pflicht']['pwd1'] != '1')?'validate[required]':''); ?> wpsg_register <?php echo ((in_array("mod_kundenverwaltung_pwd1", (array)$this->view['error']))?'wpsg_error':''); ?>" type="password" id="pwd1" name="wpsg[register][register_pwd1]" value="" /><span id="wpsg_checkoutblock_password_result"></span>
 		</div>
 		
@@ -124,4 +196,15 @@
 			</label>
 			<input class="<?php echo (($this->view['pflicht']['pwd2'] != '1')?'validate[required]':''); ?> wpsg_register <?php echo ((in_array("mod_kundenverwaltung_pwd2", (array)$this->view['error']))?'wpsg_error':''); ?>" type="password" id="pwd2" name="wpsg[register][register_pwd2]" value="" />
+		</div>
+		
+		<div id="wpsg_pwd_info"> 
+			<h4><?php echo __('Passwort sollte folgende Regeln befolgen:','wpsg') ?></h4>
+			<ul>
+				<li id="wpsg_pwd_length" class="invalid"><?php echo __('Das Passwort ist zu kurz!','wpsg')?></li>
+				<li id="wpsg_pwd_letter" class="invalid"><?php echo __('Mit mindestens einem Kleinbuchstaben wird das Passwort noch sicherer','wpsg') ?></li>
+				<li id="wpsg_pwd_capital" class="invalid"><?php echo __('Mit mindestens einem GroÃbuchstaben wird das Passwort noch sicherer','wpsg') ?></li>
+				<li id="wpsg_pwd_number" class="invalid"><?php echo __('Mit mindestens einer Zahl wird das Passwort noch sicherer','wpsg') ?></li>
+				<li id="wpsg_pwd_speziell" class="invalid"><?php echo __('Mit mindestens einem Sonderzeichen wird das Passwort noch sicherer','wpsg') ?></li>
+			</ul>
 		</div>
 		
Index: /views/mods/mod_kundenverwaltung/settings_edit.phtml
===================================================================
--- /views/mods/mod_kundenverwaltung/settings_edit.phtml	(revision 5371)
+++ /views/mods/mod_kundenverwaltung/settings_edit.phtml	(revision 5382)
@@ -32,8 +32,8 @@
 
 <br />
-<?php echo wpsg_drawForm_Select('wpsg_page_mod_kundenverwaltung_profil', __('Profilseite', 'wpsg'), $this->view['pages'], $this->get_option('wpsg_page_mod_kundenverwaltung_profil')); ?>
-<?php echo wpsg_drawForm_Select('wpsg_page_mod_kundenverwaltung_registrierung', __('Registrierungsseite', 'wpsg'), $this->view['pages'], $this->get_option('wpsg_page_mod_kundenverwaltung_registrierung')); ?>
-<?php echo wpsg_drawForm_Select('wpsg_page_mod_kundenverwaltung_weiterleitung_nach_registrierung', __('Weiterleitung nach Registrierung', 'wpsg'), $this->view['pages'], $this->get_option('wpsg_page_mod_kundenverwaltung_weiterleitung_nach_registrierung')); ?>
-<?php echo wpsg_drawForm_Select('wpsg_page_mod_kundenverwaltung_order', __('BestellÃŒbersichtsseite', 'wpsg'), $this->view['pages'], $this->get_option('wpsg_page_mod_kundenverwaltung_order')); ?>
+<?php echo wpsg_drawForm_Select('wpsg_page_mod_kundenverwaltung_profil', __('Profilseite', 'wpsg'), $this->view['pages'], $this->get_option('wpsg_page_mod_kundenverwaltung_profil'), array('help' => 'wpsg_page_mod_kundenverwaltung_profil')); ?>
+<?php echo wpsg_drawForm_Select('wpsg_page_mod_kundenverwaltung_registrierung', __('Registrierungsseite', 'wpsg'), $this->view['pages'], $this->get_option('wpsg_page_mod_kundenverwaltung_registrierung'), array('help' => 'wpsg_page_mod_kundenverwaltung_registrierung')); ?>
+<?php echo wpsg_drawForm_Select('wpsg_page_mod_kundenverwaltung_weiterleitung_nach_registrierung', __('Weiterleitung nach Registrierung', 'wpsg'), $this->view['pages'], $this->get_option('wpsg_page_mod_kundenverwaltung_weiterleitung_nach_registrierung'), array('help' => 'wpsg_page_mod_kundenverwaltung_weiterleitung_nach_registrierung')); ?>
+<?php echo wpsg_drawForm_Select('wpsg_page_mod_kundenverwaltung_order', __('BestellÃŒbersichtsseite', 'wpsg'), $this->view['pages'], $this->get_option('wpsg_page_mod_kundenverwaltung_order'), array('help' => 'wpsg_mod_kundenverwaltung_order')); ?>
 <?php echo wpsg_drawForm_Checkbox('wpsg_mod_kundenverwaltung_onlylogin', __('Bestellungen nur fÃŒr registrierte Kunden zulassen', 'wpsg'), $this->get_option('wpsg_mod_kundenverwaltung_onlylogin'), array('help' => 'wpsg_mod_kundenverwaltung_onlylogin')); ?>
 <br />
Index: /views/mods/mod_legaltexts/settings_edit.phtml
===================================================================
--- /views/mods/mod_legaltexts/settings_edit.phtml	(revision 5371)
+++ /views/mods/mod_legaltexts/settings_edit.phtml	(revision 5382)
@@ -11,5 +11,5 @@
 	wpsg_mod_legaltexts::PROVIDER_HAENDLERBUND => __('HÃ€ndlerbund', 'wpsg'),
 	wpsg_mod_legaltexts::PROVIDER_ITRECHT => __('IT-Recht Kanzlei MÃŒnchen', 'wpsg')
-), $this->get_option('wpsg_mod_legaltexts_provider')); ?>
+), $this->get_option('wpsg_mod_legaltexts_provider'), array('help' => 'wpsg_mod_legaltexts_provider')); ?>
 
 <br />
Index: /views/mods/mod_micropayment/settings_edit.phtml
===================================================================
--- /views/mods/mod_micropayment/settings_edit.phtml	(revision 5371)
+++ /views/mods/mod_micropayment/settings_edit.phtml	(revision 5382)
@@ -6,8 +6,8 @@
 
 ?>
-<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_accountid', __('Account ID', 'wpsg'), $this->get_option('wpsg_mod_micropayment_accountid')); ?>
+<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_accountid', __('Account ID', 'wpsg'), $this->get_option('wpsg_mod_micropayment_accountid'), array('help' => 'wpsg_mod_micropayment_accountid')); ?>
 <?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_projectid', __('Projekt ID', 'wpsg'), $this->get_option('wpsg_mod_micropayment_projectid'), array('help' => 'wpsg_mod_micropayment_projectid')); ?>
 <?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_accesskey', __('AccessKey', 'wpsg'), $this->get_option('wpsg_mod_micropayment_accesskey'), array('help' => 'wpsg_mod_micropayment_accesskey')); ?>
-<?php echo wpsg_drawForm_Select('wpsg_mod_micropayment_successPage', __('Seite nach erfolgreicher Zahlung', 'wpsg'), $this->view['wpsg_mod_micropayment']['arPages'], $this->get_option('wpsg_mod_micropayment_successPage')); ?>
+<?php echo wpsg_drawForm_Select('wpsg_mod_micropayment_successPage', __('Seite nach erfolgreicher Zahlung', 'wpsg'), $this->view['wpsg_mod_micropayment']['arPages'], $this->get_option('wpsg_mod_micropayment_successPage'), array('help' => 'wpsg_mod_micropayment_successpage')); ?>
 <?php echo wpsg_drawForm_Checkbox('wpsg_mod_micropayment_paystart', __('Zahlungs sofort starten', 'wpsg'), $this->get_option('wpsg_mod_micropayment_paystart')); ?>
 <?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_apiURL', __('API URL', 'wpsg'), $this->view['wpsg_mod_micropayment']['apiURL'], array('readonly' => true, 'hint' => __('Muss im micropaymentâ¢ Interface hinterlegt werden.', 'wpsg'), 'help' => 'wpsg_mod_micropayment_apiURL')); ?>
@@ -18,5 +18,5 @@
 <?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_bgcolor', __('Hintergrundfarbe', 'wpsg'), $this->get_option('wpsg_mod_micropayment_bgcolor'), array('help' => 'wpsg_mod_micropayment_bgcolor')); ?>
 <?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_campaign', __('Kampagne des Projektinhabers', 'wpsg'), $this->get_option('wpsg_mod_micropayment_campaign'), array('help' => 'wpsg_mod_micropayment_campaign')); ?>
-<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_bggfx', __('Hintergrundgrafik fÃŒr Zahlfenster', 'wpsg'), $this->get_option('wpsg_mod_micropayment_bggfx')); ?>
+<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_bggfx', __('Hintergrundgrafik fÃŒr Zahlfenster', 'wpsg'), $this->get_option('wpsg_mod_micropayment_bggfx'), array ('help' => 'wpsg_mod_micropayment_bggfx')); ?>
 <br />
 <div class="wpsg_admin_box" id="wpsg_mod_micropayment_creditcard">
@@ -29,10 +29,10 @@
 				/* 'hint' => wpsg_translate(__('FÃŒr AbrechnungsbetrÃ€ge zwischen #1# und #2#', 'wpsg'), wpsg_ff(2.50, $this->get_option('wpsg_currency')), wpsg_ff(500, $this->get_option('wpsg_currency'))) */
 			)); ?>
-			<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_creditcard_name', __('Bezeichnung', 'wpsg'), $this->get_option('wpsg_mod_micropayment_creditcard_name')); ?>
-			<?php echo wpsg_drawForm_Textarea('wpsg_mod_micropayment_creditcard_hint', __('Hinweistext', 'wpsg'), $this->get_option('wpsg_mod_micropayment_creditcard_hint')); ?>
-			<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_creditcard_logo', __('Alternative Logo URL', 'wpsg'), $this->get_option('wpsg_mod_micropayment_creditcard_logo')); ?>
-			<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_creditcard_gebuehr', __('GebÃŒhr/Rabatt', 'wpsg'), wpsg_ff($this->get_option('wpsg_mod_micropayment_creditcard_gebuehr'), true), array('unit' => $this->get_option('wpsg_currency').' / %')); ?>
-			<?php echo wpsg_drawForm_Select('wpsg_mod_micropayment_creditcard_mwst', __('Mehrwertsteuersatz', 'wpsg'), wpsg_tax_groups(), $this->get_option('wpsg_mod_micropayment_creditcard_mwst')); ?>
-			<?php echo wpsg_drawForm_Checkbox('wpsg_mod_micropayment_creditcard_mwstland', __('Keine MwSt. wenn Land steuerfrei', 'wpsg'), $this->get_option('wpsg_mod_micropayment_creditcard_mwstland')); ?>			
+			<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_creditcard_name', __('Bezeichnung', 'wpsg'), $this->get_option('wpsg_mod_micropayment_creditcard_name'), array('help' => 'wpsg_mod_micropayment_name')); ?>
+			<?php echo wpsg_drawForm_Textarea('wpsg_mod_micropayment_creditcard_hint', __('Hinweistext', 'wpsg'), $this->get_option('wpsg_mod_micropayment_creditcard_hint'), array('help' => 'wpsg_mod_micropayment_hint')); ?>
+			<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_creditcard_logo', __('Alternative Logo URL', 'wpsg'), $this->get_option('wpsg_mod_micropayment_creditcard_logo'), array('help' => 'wpsg_mod_micropayment_logo')); ?>
+			<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_creditcard_gebuehr', __('GebÃŒhr/Rabatt', 'wpsg'), wpsg_ff($this->get_option('wpsg_mod_micropayment_creditcard_gebuehr'), true), array('unit' => $this->get_option('wpsg_currency').' / %', 'help' => 'wpsg_mod_micropayment_name')); ?>
+			<?php echo wpsg_drawForm_Select('wpsg_mod_micropayment_creditcard_mwst', __('Mehrwertsteuersatz', 'wpsg'), wpsg_tax_groups(), $this->get_option('wpsg_mod_micropayment_creditcard_mwst'), array('help' => 'wpsg_mod_micropayment_mwst')); ?>
+			<?php echo wpsg_drawForm_Checkbox('wpsg_mod_micropayment_creditcard_mwstland', __('Keine MwSt. wenn Land steuerfrei', 'wpsg'), $this->get_option('wpsg_mod_micropayment_creditcard_mwstland'), array('help' => 'wpsg_mod_micropayment_mwstland')); ?>			
 		</div>
 	</div>
@@ -48,10 +48,10 @@
 				/* 'hint' => wpsg_translate(__('FÃŒr AbrechnungsbetrÃ€ge zwischen #1# und #2#', 'wpsg'), wpsg_ff(2.50, $this->get_option('wpsg_currency')), wpsg_ff(500, $this->get_option('wpsg_currency'))) */
 			)); ?>
-			<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_creditcardreservation_name', __('Bezeichnung', 'wpsg'), $this->get_option('wpsg_mod_micropayment_creditcardreservation_name')); ?>
-			<?php echo wpsg_drawForm_Textarea('wpsg_mod_micropayment_creditcardreservation_hint', __('Hinweistext', 'wpsg'), $this->get_option('wpsg_mod_micropayment_creditcardreservation_hint')); ?>
-			<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_creditcardreservation_logo', __('Alternative Logo URL', 'wpsg'), $this->get_option('wpsg_mod_micropayment_creditcardreservation_logo')); ?>
-			<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_creditcardreservation_gebuehr', __('GebÃŒhr/Rabatt', 'wpsg'), wpsg_ff($this->get_option('wpsg_mod_micropayment_creditcardreservation_gebuehr'), true), array('unit' => $this->get_option('wpsg_currency').' / %')); ?>
-			<?php echo wpsg_drawForm_Select('wpsg_mod_micropayment_creditcardreservation_mwst', __('Mehrwertsteuersatz', 'wpsg'), wpsg_tax_groups(), $this->get_option('wpsg_mod_micropayment_creditcardreservation_mwst')); ?>			
-			<?php echo wpsg_drawForm_Checkbox('wpsg_mod_micropayment_creditcardreservation_mwstland', __('Keine MwSt. wenn Land steuerfrei', 'wpsg'), $this->get_option('wpsg_mod_micropayment_creditcardreservation_mwstland')); ?>			
+			<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_creditcardreservation_name', __('Bezeichnung', 'wpsg'), $this->get_option('wpsg_mod_micropayment_creditcardreservation_name'), array('help' => 'wpsg_mod_micropayment_name')); ?>
+			<?php echo wpsg_drawForm_Textarea('wpsg_mod_micropayment_creditcardreservation_hint', __('Hinweistext', 'wpsg'), $this->get_option('wpsg_mod_micropayment_creditcardreservation_hint'), array('help' => 'wpsg_mod_micropayment_hint')); ?>
+			<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_creditcardreservation_logo', __('Alternative Logo URL', 'wpsg'), $this->get_option('wpsg_mod_micropayment_creditcardreservation_logo'), array('help' => 'wpsg_mod_micropayment_logo')); ?>
+			<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_creditcardreservation_gebuehr', __('GebÃŒhr/Rabatt', 'wpsg'), wpsg_ff($this->get_option('wpsg_mod_micropayment_creditcardreservation_gebuehr'), true), array('unit' => $this->get_option('wpsg_currency').' / %', 'help' => 'wpsg_mod_micropayment_gebuehr')); ?>
+			<?php echo wpsg_drawForm_Select('wpsg_mod_micropayment_creditcardreservation_mwst', __('Mehrwertsteuersatz', 'wpsg'), wpsg_tax_groups(), $this->get_option('wpsg_mod_micropayment_creditcardreservation_mwst'), array('help' => 'wpsg_mod_micropayment_mwst')); ?>			
+			<?php echo wpsg_drawForm_Checkbox('wpsg_mod_micropayment_creditcardreservation_mwstland', __('Keine MwSt. wenn Land steuerfrei', 'wpsg'), $this->get_option('wpsg_mod_micropayment_creditcardreservation_mwstland'), array('help' => 'wpsg_mod_micropayment_cmwstland')); ?>			
 		</div>
 	</div>
@@ -64,12 +64,12 @@
 		</div>
 		<div class="content wpsg_admin_box_content" style="display: block;">
-			<?php echo wpsg_drawForm_Checkbox('wpsg_mod_micropayment_directdebit_activ', __('Zahlungsart "Lastschrift" aktiv', 'wpsg'), $this->get_option('wpsg_mod_micropayment_directdebit_activ')); ?>
-			<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_directdebit_name', __('Bezeichnung', 'wpsg'), $this->get_option('wpsg_mod_micropayment_directdebit_name')); ?>
-			<?php echo wpsg_drawForm_Textarea('wpsg_mod_micropayment_directdebit_hint', __('Hinweistext', 'wpsg'), $this->get_option('wpsg_mod_micropayment_directdebit_hint')); ?>
-			<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_directdebit_logo', __('Alternative Logo URL', 'wpsg'), $this->get_option('wpsg_mod_micropayment_directdebit_logo')); ?>
-			<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_directdebit_gebuehr', __('GebÃŒhr/Rabatt', 'wpsg'), wpsg_ff($this->get_option('wpsg_mod_micropayment_directdebit_gebuehr'), true), array('unit' => $this->get_option('wpsg_currency').' / %')); ?>
-			<?php echo wpsg_drawForm_Select('wpsg_mod_micropayment_directdebit_mwst', __('Mehrwertsteuersatz', 'wpsg'), wpsg_tax_groups(), $this->get_option('wpsg_mod_micropayment_directdebit_mwst')); ?>			
-			<?php echo wpsg_drawForm_Checkbox('wpsg_mod_micropayment_directdebit_mwstland', __('Keine MwSt. wenn Land steuerfrei', 'wpsg'), $this->get_option('wpsg_mod_micropayment_directdebit_mwstland')); ?>
-			<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_directdebit_subject', __('Betreff der Zahlung', 'wpsg'), $this->get_option('wpsg_mod_micropayment_directdebit_subject')); ?>			
+			<?php echo wpsg_drawForm_Checkbox('wpsg_mod_micropayment_directdebit_activ', __('Zahlungsart "Lastschrift" aktiv', 'wpsg'), $this->get_option('wpsg_mod_micropayment_activ')); ?>
+			<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_directdebit_name', __('Bezeichnung', 'wpsg'), $this->get_option('wpsg_mod_micropayment_directdebit_name'), array('help' => 'wpsg_mod_micropayment_name')); ?>
+			<?php echo wpsg_drawForm_Textarea('wpsg_mod_micropayment_directdebit_hint', __('Hinweistext', 'wpsg'), $this->get_option('wpsg_mod_micropayment_directdebit_hint'), array('help' => 'wpsg_mod_micropayment_hint')); ?>
+			<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_directdebit_logo', __('Alternative Logo URL', 'wpsg'), $this->get_option('wpsg_mod_micropayment_directdebit_logo'), array('help' => 'wpsg_mod_micropayment_logo')); ?>
+			<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_directdebit_gebuehr', __('GebÃŒhr/Rabatt', 'wpsg'), wpsg_ff($this->get_option('wpsg_mod_micropayment_directdebit_gebuehr'), true), array('unit' => $this->get_option('wpsg_currency').' / %', 'help' => 'wpsg_mod_micropayment_gebuehr')); ?>
+			<?php echo wpsg_drawForm_Select('wpsg_mod_micropayment_directdebit_mwst', __('Mehrwertsteuersatz', 'wpsg'), wpsg_tax_groups(), $this->get_option('wpsg_mod_micropayment_directdebit_mwst'), array('help' => 'wpsg_mod_micropayment_mwst')); ?>	
+			<?php echo wpsg_drawForm_Checkbox('wpsg_mod_micropayment_directdebit_mwstland', __('Keine MwSt. wenn Land steuerfrei', 'wpsg'), $this->get_option('wpsg_mod_micropayment_directdebit_mwstland'), array('help' => 'wpsg_mod_micropayment_mwstland')); ?>
+			<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_directdebit_subject', __('Betreff der Zahlung', 'wpsg'), $this->get_option('wpsg_mod_micropayment_directdebit_subject'), array('help' => 'wpsg_mod_micropayment_subject')); ?>		
 		</div>
 	</div>
@@ -85,10 +85,10 @@
 				/* 'hint' => wpsg_translate(__('FÃŒr AbrechnungsbetrÃ€ge zwischen #1# und #2#', 'wpsg'), wpsg_ff(0.50, $this->get_option('wpsg_currency')), wpsg_ff(500, $this->get_option('wpsg_currency'))) */ 
 			)); ?>
-			<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_ebank2pay_name', __('Bezeichnung', 'wpsg'), $this->get_option('wpsg_mod_micropayment_ebank2pay_name')); ?>
-			<?php echo wpsg_drawForm_Textarea('wpsg_mod_micropayment_ebank2pay_hint', __('Hinweistext', 'wpsg'), $this->get_option('wpsg_mod_micropayment_ebank2pay_hint')); ?>
-			<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_ebank2pay_logo', __('Alternative Logo URL', 'wpsg'), $this->get_option('wpsg_mod_micropayment_ebank2pay_logo')); ?>
-			<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_ebank2pay_gebuehr', __('GebÃŒhr/Rabatt', 'wpsg'), wpsg_ff($this->get_option('wpsg_mod_micropayment_ebank2pay_gebuehr'), true), array('unit' => $this->get_option('wpsg_currency').' / %')); ?>
-			<?php echo wpsg_drawForm_Select('wpsg_mod_micropayment_ebank2pay_mwst', __('Mehrwertsteuersatz', 'wpsg'), wpsg_tax_groups(), $this->get_option('wpsg_mod_micropayment_ebank2pay_mwst')); ?>
-			<?php echo wpsg_drawForm_Checkbox('wpsg_mod_micropayment_ebank2pay_mwstland', __('Keine MwSt. wenn Land steuerfrei', 'wpsg'), $this->get_option('wpsg_mod_micropayment_ebank2pay_mwstland')); ?>						
+			<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_ebank2pay_name', __('Bezeichnung', 'wpsg'), $this->get_option('wpsg_mod_micropayment_ebank2pay_name'), array('help' => 'wpsg_mod_micropayment_name')); ?>
+			<?php echo wpsg_drawForm_Textarea('wpsg_mod_micropayment_ebank2pay_hint', __('Hinweistext', 'wpsg'), $this->get_option('wpsg_mod_micropayment_ebank2pay_hint'), array('help' => 'wpsg_mod_micropayment_hint')); ?>
+			<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_ebank2pay_logo', __('Alternative Logo URL', 'wpsg'), $this->get_option('wpsg_mod_micropayment_ebank2pay_logo'), array('help' => 'wpsg_mod_micropayment_logo')); ?>
+			<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_ebank2pay_gebuehr', __('GebÃŒhr/Rabatt', 'wpsg'), wpsg_ff($this->get_option('wpsg_mod_micropayment_ebank2pay_gebuehr'), true), array('unit' => $this->get_option('wpsg_currency').' / %', 'help' => 'wpsg_mod_micropayment_gebuehr')); ?>
+			<?php echo wpsg_drawForm_Select('wpsg_mod_micropayment_ebank2pay_mwst', __('Mehrwertsteuersatz', 'wpsg'), wpsg_tax_groups(), $this->get_option('wpsg_mod_micropayment_ebank2pay_mwst'), array('help' => 'wpsg_mod_micropayment_mwst')); ?>
+			<?php echo wpsg_drawForm_Checkbox('wpsg_mod_micropayment_ebank2pay_mwstland', __('Keine MwSt. wenn Land steuerfrei', 'wpsg'), $this->get_option('wpsg_mod_micropayment_ebank2pay_mwstland'), array('help' => 'wpsg_mod_micropayment_mwstland')); ?>						
 		</div>
 	</div>
@@ -102,11 +102,11 @@
 		<div class="content wpsg_admin_box_content" style="display: block;">
 			<?php echo wpsg_drawForm_Checkbox('wpsg_mod_micropayment_prepayment_activ', __('Zahlungsart "Vorkasse" aktiv', 'wpsg'), $this->get_option('wpsg_mod_micropayment_prepayment_activ')); ?>
-			<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_prepayment_name', __('Bezeichnung', 'wpsg'), $this->get_option('wpsg_mod_micropayment_prepayment_name')); ?>
-			<?php echo wpsg_drawForm_Textarea('wpsg_mod_micropayment_prepayment_hint', __('Hinweistext', 'wpsg'), $this->get_option('wpsg_mod_micropayment_prepayment_hint')); ?>
-			<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_prepayment_logo', __('Alternative Logo URL', 'wpsg'), $this->get_option('wpsg_mod_micropayment_prepayment_logo')); ?>
-			<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_prepayment_gebuehr', __('GebÃŒhr/Rabatt', 'wpsg'), wpsg_ff($this->get_option('wpsg_mod_micropayment_prepayment_gebuehr'), true), array('unit' => $this->get_option('wpsg_currency').' / %')); ?>
-			<?php echo wpsg_drawForm_Select('wpsg_mod_micropayment_prepayment_mwst', __('Mehrwertsteuersatz', 'wpsg'), wpsg_tax_groups(), $this->get_option('wpsg_mod_micropayment_prepayment_mwst')); ?>
-			<?php echo wpsg_drawForm_Checkbox('wpsg_mod_micropayment_prepayment_mwstland', __('Keine MwSt. wenn Land steuerfrei', 'wpsg'), $this->get_option('wpsg_mod_micropayment_prepayment_mwstland')); ?>
-			<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_prepayment_subject', __('Betreff der Zahlung', 'wpsg'), $this->get_option('wpsg_mod_micropayment_prepayment_subject')); ?>			
+			<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_prepayment_name', __('Bezeichnung', 'wpsg'), $this->get_option('wpsg_mod_micropayment_prepayment_name'), array('help' => 'wpsg_mod_micropayment_name')); ?>
+			<?php echo wpsg_drawForm_Textarea('wpsg_mod_micropayment_prepayment_hint', __('Hinweistext', 'wpsg'), $this->get_option('wpsg_mod_micropayment_prepayment_hint'), array('help' => 'wpsg_mod_micropayment_hint')); ?>
+			<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_prepayment_logo', __('Alternative Logo URL', 'wpsg'), $this->get_option('wpsg_mod_micropayment_prepayment_logo'), array('help' => 'wpsg_mod_micropayment_logo')); ?>
+			<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_prepayment_gebuehr', __('GebÃŒhr/Rabatt', 'wpsg'), wpsg_ff($this->get_option('wpsg_mod_micropayment_prepayment_gebuehr'), true), array('unit' => $this->get_option('wpsg_currency').' / %', 'help' => 'wpsg_mod_micropayment_gebuehr')); ?>
+			<?php echo wpsg_drawForm_Select('wpsg_mod_micropayment_prepayment_mwst', __('Mehrwertsteuersatz', 'wpsg'), wpsg_tax_groups(), $this->get_option('wpsg_mod_micropayment_prepayment_mwst'), array('help' => 'wpsg_mod_micropayment_mwst')); ?>
+			<?php echo wpsg_drawForm_Checkbox('wpsg_mod_micropayment_prepayment_mwstland', __('Keine MwSt. wenn Land steuerfrei', 'wpsg'), $this->get_option('wpsg_mod_micropayment_prepayment_mwstland'), array('help' => 'wpsg_mod_micropayment_mwstland')); ?>
+			<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_prepayment_subject', __('Betreff der Zahlung', 'wpsg'), $this->get_option('wpsg_mod_micropayment_prepayment_subject'), array('help' => 'wpsg_mod_micropayment_subject')); ?>			
 		</div>
 	</div>
@@ -124,10 +124,10 @@
 					/* 'hint' => wpsg_translate(__('FÃŒr AbrechnungsbetrÃ€ge zwischen #1# und #2#', 'wpsg'), wpsg_ff(0.05, $this->get_option('wpsg_currency')), wpsg_ff(50, $this->get_option('wpsg_currency'))) */
 				)); ?>
-				<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_call2pay_name', __('Bezeichnung', 'wpsg'), $this->get_option('wpsg_mod_micropayment_call2pay_name')); ?>
-				<?php echo wpsg_drawForm_Textarea('wpsg_mod_micropayment_call2pay_hint', __('Hinweistext', 'wpsg'), $this->get_option('wpsg_mod_micropayment_call2pay_hint')); ?>
-				<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_call2pay_logo', __('Alternative Logo URL', 'wpsg'), $this->get_option('wpsg_mod_micropayment_call2pay_logo')); ?>
-				<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_call2pay_gebuehr', __('GebÃŒhr/Rabatt', 'wpsg'), wpsg_ff($this->get_option('wpsg_mod_micropayment_call2pay_gebuehr'), true), array('unit' => $this->get_option('wpsg_currency').' / %')); ?>
-				<?php echo wpsg_drawForm_Select('wpsg_mod_micropayment_call2pay_mwst', __('Mehrwertsteuersatz', 'wpsg'), wpsg_tax_groups(), $this->get_option('wpsg_mod_micropayment_call2pay_mwst')); ?>
-				<?php echo wpsg_drawForm_Checkbox('wpsg_mod_micropayment_call2pay_mwstland', __('Keine MwSt. wenn Land steuerfrei', 'wpsg'), $this->get_option('wpsg_mod_micropayment_call2pay_mwstland')); ?>
+				<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_call2pay_name', __('Bezeichnung', 'wpsg'), $this->get_option('wpsg_mod_micropayment_call2pay_name'), array('help' => 'wpsg_mod_micropayment_name')); ?>
+				<?php echo wpsg_drawForm_Textarea('wpsg_mod_micropayment_call2pay_hint', __('Hinweistext', 'wpsg'), $this->get_option('wpsg_mod_micropayment_call2pay_hint'), array('help' => 'wpsg_mod_micropayment_hint')); ?>
+				<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_call2pay_logo', __('Alternative Logo URL', 'wpsg'), $this->get_option('wpsg_mod_micropayment_call2pay_logo'), array('help' => 'wpsg_mod_micropayment_logo')); ?>
+				<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_call2pay_gebuehr', __('GebÃŒhr/Rabatt', 'wpsg'), wpsg_ff($this->get_option('wpsg_mod_micropayment_call2pay_gebuehr'), true), array('unit' => $this->get_option('wpsg_currency').' / %', 'help' => 'wpsg_mod_micropayment_gebuehr')); ?>
+				<?php echo wpsg_drawForm_Select('wpsg_mod_micropayment_call2pay_mwst', __('Mehrwertsteuersatz', 'wpsg'), wpsg_tax_groups(), $this->get_option('wpsg_mod_micropayment_call2pay_mwst'), array('help' => 'wpsg_mod_micropayment_mwst')); ?>
+				<?php echo wpsg_drawForm_Checkbox('wpsg_mod_micropayment_call2pay_mwstland', __('Keine MwSt. wenn Land steuerfrei', 'wpsg'), $this->get_option('wpsg_mod_micropayment_call2pay_mwstland'), array('help' => 'wpsg_mod_micropayment_mwstland')); ?>
 			</div>
 			
@@ -170,10 +170,10 @@
 					/* 'hint' => wpsg_translate(__('FÃŒr AbrechnungsbetrÃ€ge zwischen #1# und #2#', 'wpsg'), wpsg_ff(0.50, $this->get_option('wpsg_currency')), wpsg_ff(5.00, $this->get_option('wpsg_currency'))) */
 				)); ?>
-				<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_handypay_name', __('Bezeichnung', 'wpsg'), $this->get_option('wpsg_mod_micropayment_handypay_name')); ?>
-				<?php echo wpsg_drawForm_Textarea('wpsg_mod_micropayment_handypay_hint', __('Hinweistext', 'wpsg'), $this->get_option('wpsg_mod_micropayment_handypay_hint')); ?>
-				<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_handypay_logo', __('Alternative Logo URL', 'wpsg'), $this->get_option('wpsg_mod_micropayment_handypay_logo')); ?>
-				<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_handypay_gebuehr', __('GebÃŒhr/Rabatt', 'wpsg'), wpsg_ff($this->get_option('wpsg_mod_micropayment_handypay_gebuehr'), true), array('unit' => $this->get_option('wpsg_currency').' / %')); ?>
-				<?php echo wpsg_drawForm_Select('wpsg_mod_micropayment_handypay_mwst', __('Mehrwertsteuersatz', 'wpsg'), wpsg_tax_groups(), $this->get_option('wpsg_mod_micropayment_handypay_mwst')); ?>
-				<?php echo wpsg_drawForm_Checkbox('wpsg_mod_micropayment_handypay_mwstland', __('Keine MwSt. wenn Land steuerfrei', 'wpsg'), $this->get_option('wpsg_mod_micropayment_handypay_mwstland')); ?>						
+				<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_handypay_name', __('Bezeichnung', 'wpsg'), $this->get_option('wpsg_mod_micropayment_handypay_name'), array('help' => 'wpsg_mod_micropayment_name')); ?>
+				<?php echo wpsg_drawForm_Textarea('wpsg_mod_micropayment_handypay_hint', __('Hinweistext', 'wpsg'), $this->get_option('wpsg_mod_micropayment_handypay_hint'), array('help' => 'wpsg_mod_micropayment_hint')); ?>
+				<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_handypay_logo', __('Alternative Logo URL', 'wpsg'), $this->get_option('wpsg_mod_micropayment_handypay_logo'), array('help' => 'wpsg_mod_micropayment_logo')); ?>
+				<?php echo wpsg_drawForm_Input('wpsg_mod_micropayment_handypay_gebuehr', __('GebÃŒhr/Rabatt', 'wpsg'), wpsg_ff($this->get_option('wpsg_mod_micropayment_handypay_gebuehr'), true), array('unit' => $this->get_option('wpsg_currency').' / %', 'help' => 'wpsg_mod_micropayment_gebuehr')); ?>
+				<?php echo wpsg_drawForm_Select('wpsg_mod_micropayment_handypay_mwst', __('Mehrwertsteuersatz', 'wpsg'), wpsg_tax_groups(), $this->get_option('wpsg_mod_micropayment_handypay_mwst'), array('help' => 'wpsg_mod_micropayment_mwst')); ?>
+				<?php echo wpsg_drawForm_Checkbox('wpsg_mod_micropayment_handypay_mwstland', __('Keine MwSt. wenn Land steuerfrei', 'wpsg'), $this->get_option('wpsg_mod_micropayment_handypay_mwstland'), array('help' => 'wpsg_mod_micropayment_mwstland')); ?>						
 			</div>
 		
Index: /views/mods/mod_newsletter/settings_edit.phtml
===================================================================
--- /views/mods/mod_newsletter/settings_edit.phtml	(revision 5371)
+++ /views/mods/mod_newsletter/settings_edit.phtml	(revision 5382)
@@ -23,4 +23,5 @@
 				<?php } ?>
 			</select>
+			<a style="float:right; position:relative;" class="wpsg_form_help" href="?page=wpsg-Admin&subaction=loadHelp&noheader=1&field=mod_newsletter_imoprtgroups" rel="?page=wpsg-Admin&subaction=loadHelp&noheader=1&field=mod_newsletter_imoprtgroups"></a>						
 			<input type="button" onclick="return wpsg_doImport();" value="<?php echo __('Kunden importieren', 'wpsg'); ?>" class="button" style="width:auto;" />
 		</div>
Index: /views/mods/mod_onepagecheckout/onepage.phtml
===================================================================
--- /views/mods/mod_onepagecheckout/onepage.phtml	(revision 5371)
+++ /views/mods/mod_onepagecheckout/onepage.phtml	(revision 5382)
@@ -9,4 +9,6 @@
 
 	<?php echo $this->writeFrontendMessage(); ?>
+	 
+	<?php $GLOBALS['step'] = 2; $this->render(WPSG_PATH_VIEW.'/warenkorb/progress.phtml'); ?>
 	 
 	<form id="wpsg_basket_form" name="wpsg_basket_form"  method="post" action="<?php echo $this->getURL(wpsg_ShopController::URL_BASKET); ?>" enctype="multipart/form-data">
@@ -186,5 +188,5 @@
 					<?php if ($this->view['pflicht']['plz'] != '1') { ?><span class="wpsg_required">*</span><?php } ?>:
 					</label>
-					<input class="wpsg_input_text <?php echo (($this->view['pflicht']['plz'] != '1')?'validate[required]':''); ?> wpsg_checkout <?php echo ((in_array("plz", (array)$this->view['error']))?'wpsg_error':''); ?>" type="number" id="plz" name="wpsg[checkout][plz]" value="<?php echo htmlspecialchars($this->view['basket']['checkout']['plz']); ?>" />
+					<input class="wpsg_input_text <?php echo (($this->view['pflicht']['plz'] != '1')?'validate[required]':''); ?> wpsg_checkout <?php echo ((in_array("plz", (array)$this->view['error']))?'wpsg_error':''); ?>" type="text" id="plz" name="wpsg[checkout][plz]" value="<?php echo htmlspecialchars($this->view['basket']['checkout']['plz']); ?>" />
 				</div>
 				
@@ -399,4 +401,4 @@
 			
 	/* ]]> */</script>
-	 	
+	
 </div>
Index: /views/mods/mod_orderupload/checkout_inner_prebutton.phtml
===================================================================
--- /views/mods/mod_orderupload/checkout_inner_prebutton.phtml	(revision 5371)
+++ /views/mods/mod_orderupload/checkout_inner_prebutton.phtml	(revision 5382)
@@ -11,9 +11,9 @@
 			
 		<input type="file" name="wpsg_mod_orderupload_file" />
-	
-		<?php if (wpsg_isSizedArray($_SESSION['wpsg']['checkout']['wpsg_mod_orderupload'])) { ?>
+ 
+		<?php if (wpsg_isSizedArray($_SESSION['wpsg']['wpsg_mod_orderupload'])) { ?>
 			<br />
 			<label class="wpsg_checkout"><?php echo __('Bisher hochgeladene Dokumente', 'wpsg'); ?>:</label><br />
-			<?php foreach ($_SESSION['wpsg']['checkout']['wpsg_mod_orderupload'] as $ou_index => $ou) { ?>
+			<?php foreach ($_SESSION['wpsg']['wpsg_mod_orderupload'] as $ou_index => $ou) { ?>
 			<a onclick="return confirm('<?php echo __('Sind Sie sich sicher, dass Sie dieses Dokument aus der Bestellung entfernen mÃ¶chten?', 'wpsg'); ?>');" href="?wpsg_plugin=wpsg_mod_orderupload&wpsg_action=remove&file_index=<?php echo $ou_index; ?>" class="wpsg_mod_orderupload_removelink">
 				<?php echo __('Entfernen', 'wpsg'); ?>
Index: /views/mods/mod_ordervars/ov_list.phtml
===================================================================
--- /views/mods/mod_ordervars/ov_list.phtml	(revision 5371)
+++ /views/mods/mod_ordervars/ov_list.phtml	(revision 5382)
@@ -9,5 +9,5 @@
 <table class="wpsg_ov_table">
 	 <tr>
-	 	<th class="wpsg_id"><?php echo __('ID', 'wpsg'); ?></th>
+	 	<th><?php echo __('ID', 'wpsg'); ?></th>
     	<th class="wpsg_label"><?php echo __('Name', 'wpsg'); ?></th>
     	<th class="wpsg_typ"><?php echo __('Typ', 'wpsg'); ?></th>
@@ -16,5 +16,5 @@
   	</tr>
   	<?php $i = 0; foreach ($this->view['data'] as $ov) { $i ++; ?>
-	<tr class="wpsg_table wpsg_tablerow <?php echo (($i % 2 == 0)?'odd':'even'); ?>">
+	<tr class="wpsg_table wpsg_tablerow <?php echo (($i % 2 == 0)?'odd':'even'); ?>" id="ov_<?php echo $ov['id']; ?>">
 		<td class="wpsg_id"><?php echo $ov['id']; ?></td>
 		<td id="wpsg_ov_name_<?php echo $ov['id']; ?>" class="wpsg_label wpsg_editable"><?php echo wpsg_hspc(__($ov['name'], 'wpsg')); ?></td>
@@ -117,4 +117,37 @@
 	<?php } ?>
 </table>
+<p class="wpsg_hinweis"><?php echo __('Die Reihenfolge lÃ€sst sich mittels Drag&Drop verÃ€ndern.', 'wpsg'); ?>
+
+<script type="text/javascript">/* <![CDATA[ */
+
+	jQuery(document).ready(function() {
+
+		jQuery('.wpsg_ov_table').sortable( {
+			helper: wpsg_Tablefix,
+			items: 'tr.wpsg_tablerow',
+			handler: '.wpsg_id',
+			update: function(event, ui) {
+
+				var wpsg_reorder = jQuery(this).sortable('serialize');
+
+				jQuery.ajax( {
+					url: '<?php echo WPSG_URL_WP; ?>wp-admin/admin.php?page=wpsg-Admin&action=module&modul=wpsg_mod_ordervars&noheader=1&do=reorder',
+					data: { 
+						wpsg_reorder: wpsg_reorder
+					},
+					success: function(data) {
+
+						if (data !== "1") alert(data);
+						
+					}
+				} );
+				
+			}
+		} );
+		
+	} );
+			
+/* ]]> */</script>
+
 <?php } else { ?>
 <?php echo __('Bisher noch keine Bestellvariablen angelegt.', 'wpsg'); ?>
Index: /views/mods/mod_paypal/settings_edit.phtml
===================================================================
--- /views/mods/mod_paypal/settings_edit.phtml	(revision 5371)
+++ /views/mods/mod_paypal/settings_edit.phtml	(revision 5382)
@@ -89,6 +89,6 @@
 
 <br />
-<?php echo wpsg_drawForm_Input('wpsg_mod_paypal_currency', __('WÃ€hrungscode (Standard: EUR)', 'wpsg'), $this->get_option('wpsg_mod_paypal_currency')); ?>
-<?php echo wpsg_drawForm_Select('wpsg_mod_paypal_language', __('Sprache im PayPal Interface', 'wpsg'), array('DE' => __('Deutsch', 'wpsg'), 'US' => __('Englisch', 'wpsg'), 'FR' => __('FranzÃ¶sisch', 'wpsg')), $this->get_option('wpsg_mod_paypal_language')); ?>
+<?php echo wpsg_drawForm_Input('wpsg_mod_paypal_currency', __('WÃ€hrungscode (Standard: EUR)', 'wpsg'), $this->get_option('wpsg_mod_paypal_currency'), array('help' => 'wpsg_mod_paypal_currency')); ?>
+<?php echo wpsg_drawForm_Select('wpsg_mod_paypal_language', __('Sprache im PayPal Interface', 'wpsg'), array('DE' => __('Deutsch', 'wpsg'), 'US' => __('Englisch', 'wpsg'), 'FR' => __('FranzÃ¶sisch', 'wpsg')), $this->get_option('wpsg_mod_paypal_language'), array('help' => 'wpsg_mod_paypal_language')); ?>
 <?php echo wpsg_drawForm_Checkbox('wpsg_mod_paypal_autostart', __('Zahlung sofort starten', 'wpsg'), $this->get_option('wpsg_mod_paypal_autostart'), array('help' => 'wpsg_shippay_paystart')); ?>
 <?php echo wpsg_drawForm_Select('wpsg_page_mod_paypal_success', __('Erfolgsseite', 'wpsg'), $this->view['pages'], $this->get_option('wpsg_page_mod_paypal_success'), array('help' => 'wpsg_page_mod_paypal_success')); ?>
Index: /views/mods/mod_paypalapi/checkout_handlePayment.phtml
===================================================================
--- /views/mods/mod_paypalapi/checkout_handlePayment.phtml	(revision 5371)
+++ /views/mods/mod_paypalapi/checkout_handlePayment.phtml	(revision 5382)
@@ -42,5 +42,5 @@
 		
 		<?php if (wpsg_isSizedString($this->view['wpsg_mod_paypalapi']['error'])) { ?>
-		<div id="wpsg_error" class="published error">
+		<div id="wpsg_notice" class="published error">
 			<p><?php echo $this->view['wpsg_mod_paypalapi']['error']; ?>
 		</div>		
@@ -48,6 +48,21 @@
 	    
 	</div>
-	           
+	         
+	<iframe name="wpsg_hiddenTarget" style="display:none; width:0px; height:0px;"></iframe>  
 	<script type="application/javascript">/* <![CDATA[ */
+
+		function wpsg_ppp_handleError()
+		{
+			
+			location.href = '<?php echo $this->getUrl(wpsg_ShopController::URL_CHECKOUT); ?>';
+			
+		}
+
+		function wpsg_ppp_run()
+		{
+
+			PAYPAL.apps.PPP.doCheckout();
+
+		}
 	
 		var wpsg_mod_paypalapi_shipping_id = '<?php echo wpsg_getStr($this->view['basket']['checkout']['shipping']); ?>';
@@ -79,5 +94,5 @@
 			jQuery('input[name="wpsg_checkout2"], input[name="wpsg_checkout"]').show().bind('click', function() {
 	
-				var test = ppp.doContinue();			
+				PAYPAL.apps.PPP.doCheckout();
 				return false;
 				
Index: /views/mods/mod_paypalapi/paypalplus.phtml
===================================================================
--- /views/mods/mod_paypalapi/paypalplus.phtml	(revision 5371)
+++ /views/mods/mod_paypalapi/paypalplus.phtml	(revision 5382)
@@ -13,5 +13,20 @@
 		"language": "de_DE",
 		"preselection": "<?php echo (($_SESSION['wpsg']['checkout']['payment'] == '10')?'paypal':'none')?>",
-		"country": "DE",	
+		"country": "DE",
+		<?php if ($this->hasMod('wpsg_mod_onepagecheckout') && get_the_id() == $this->get_option('wpsg_mod_onepagecheckout_page')) { ?>
+		"onContinue": function(event) {
+			
+			jQuery('#wpsg_basket_form').attr('target', 'wpsg_hiddenTarget');
+			jQuery('#wpsg_basket_form').append('<input name="wpsg_checkout" value="ppp" id="wpsg_hidden_action" />');
+			jQuery('#wpsg_basket_form').append('<input name="wpsg[checkout][payment]" value="ppp" id="wpsg_hidden_payment" />');
+			jQuery('#wpsg_basket_form').submit();
+			jQuery('#wpsg_basket_form').removeAttr('target');
+			jQuery('#wpsg_hidden_action').remove();
+			jQuery('#wpsg_hidden_payment').remove();
+			
+			//PAYPAL.apps.PPP.doCheckout();
+			
+		},
+		<?php } ?>
 		<?php if ($this->view['wpsg_order_done'] !== true) { ?>
 		"onLoad": function() { if (typeof wpsg_mod_paypalapi_load == 'function') wpsg_mod_paypalapi_load(); }, 
Index: /views/mods/mod_paypalapi/settings_edit.phtml
===================================================================
--- /views/mods/mod_paypalapi/settings_edit.phtml	(revision 5371)
+++ /views/mods/mod_paypalapi/settings_edit.phtml	(revision 5382)
@@ -64,6 +64,18 @@
 
 <?php echo wpsg_drawForm_Checkbox('wpsg_mod_paypalapi_aktiv', __('PayPal fÃŒr neue Bestellungen erlauben', 'wpsg'), $this->get_option('wpsg_mod_paypalapi_aktiv'), array('help' => 'wpsg_shippay_activ')); ?>
+<?php echo wpsg_drawForm_Checkbox('wpsg_mod_paypalapi_plus_aktiv', __('PayPal Plus aktivieren', 'wpsg'), $this->get_option('wpsg_mod_paypalapi_plus_aktiv'), array('help' => 'wpsg_mod_paypalapi_plus_aktiv')); ?>
 <?php echo wpsg_drawForm_Checkbox('wpsg_mod_paypalapi_paypalexpress', __('PayPal Express aktivieren (Button im Warenkorb)', 'wpsg'), $this->get_option('wpsg_mod_paypalapi_paypalexpress'), array('help' => 'wpsg_mod_paypalapi_paypalexpress')); ?>
-<?php echo wpsg_drawForm_Checkbox('wpsg_mod_paypalapi_plus_aktiv', __('PayPal Plus aktivieren', 'wpsg'), $this->get_option('wpsg_mod_paypalapi_plus_aktiv'), array('help' => 'wpsg_mod_paypalapi_plus_aktiv')); ?>
+<div class="wpsg_mod_paypalapi_plus_aktiv">
+	<?php echo wpsg_drawForm_Checkbox('wpsg_mod_paypalapi_paypalexpress_forceSSL', __('SSL fÃŒr ReturnURL erzwingen', 'wpsg'), $this->get_option('wpsg_mod_paypalapi_paypalexpress_forceSSL'), array('help' => 'wpsg_mod_paypalapi_paypalexpress_forceSSL')); ?>
+	<?php echo wpsg_drawForm_Input('', __('Return URL', 'wpsg'), $this->getUrl(
+		wpsg_ShopController::URL_BASKET, 
+		'wpsg_mod_paypalapi', 
+		'startPayPalExpress', 
+		array(), 
+		((wpsg_isSizedInt($this->get_option('wpsg_mod_paypalapi_paypalexpress_forceSSL')))?true:false)
+	), array('readonly' => true, 'help' => 'wpsg_mod_paypalapi_paypalexpress_returnurl')); ?>
+	<br />
+</div>
+
 <?php echo wpsg_drawForm_Checkbox('wpsg_mod_paypalapi_paypalexpress_details', __('Warenkorbdetails ÃŒbertragen', 'wpsg'), $this->get_option('wpsg_mod_paypalapi_paypalexpress_details'), array('help' => 'wpsg_mod_paypalapi_paypalexpress_details')); ?>
 
Index: /views/mods/mod_productvars/pv_list.phtml
===================================================================
--- /views/mods/mod_productvars/pv_list.phtml	(revision 5371)
+++ /views/mods/mod_productvars/pv_list.phtml	(revision 5382)
@@ -9,5 +9,5 @@
 <table class="wpsg_pv_table">
 	 <tr>
-	 	<th class="wpsg_id"><?php echo __('ID', 'wpsg'); ?></th>
+	 	<th><?php echo __('ID', 'wpsg'); ?></th>
     	<th class="wpsg_label"><?php echo __('Name', 'wpsg'); ?></th>
     	<th class="wpsg_typ"><?php echo __('Typ', 'wpsg'); ?></th>
Index: /views/mods/mod_productvars/settings_edit.phtml
===================================================================
--- /views/mods/mod_productvars/settings_edit.phtml	(revision 5371)
+++ /views/mods/mod_productvars/settings_edit.phtml	(revision 5382)
@@ -45,4 +45,12 @@
 </script>
 
+<br />
+	
+<div class="wpsg_productvars_form">
+	<?php echo wpsg_drawForm_Checkbox('wpsg_mod_productvars_showProduct', __('Produktvariable(n) im Produkttemplate abfragen', 'wpsg'), $this->get_option('wpsg_mod_productvars_showProduct'), array('help' => 'wpsg_mod_productvars_showProduct')); ?>
+</div>
+
+<br />
+
 <div class="wpsg_admin_box">		
 		  		
Index: /views/mods/mod_produktartikel/produkt.phtml
===================================================================
--- /views/mods/mod_produktartikel/produkt.phtml	(revision 5371)
+++ /views/mods/mod_produktartikel/produkt.phtml	(revision 5382)
@@ -19,17 +19,17 @@
         			'facebook': {
             			'status': '<?php echo (($this->get_option('wpsg_mod_produktartikel_facebook') == '1')?'on':'off'); ?>',
-            			'dummy_img': '<?php echo WPSG_URL_CONTENT.'plugins/wpshopgermany/lib/socialshareprivacy/socialshareprivacy/images/dummy_facebook.png'; ?>'
+            			'dummy_img': '<?php echo WPSG_URL_CONTENT.'plugins/'.WPSG_FOLDERNAME.'/lib/socialshareprivacy/socialshareprivacy/images/dummy_facebook.png'; ?>'
         			}, 	
     				'twitter': {
     					'status': '<?php echo (($this->get_option('wpsg_mod_produktartikel_twitter') == '1')?'on':'off'); ?>',
-    					'dummy_img': '<?php echo WPSG_URL_CONTENT.'plugins/wpshopgermany/lib/socialshareprivacy/socialshareprivacy/images/dummy_twitter.png'; ?>'
+    					'dummy_img': '<?php echo WPSG_URL_CONTENT.'plugins/'.WPSG_FOLDERNAME.'/lib/socialshareprivacy/socialshareprivacy/images/dummy_twitter.png'; ?>'
 					},
 					'gplus': {
 						'status': '<?php echo (($this->get_option('wpsg_mod_produktartikel_google') == '1')?'on':'off'); ?>',
-            			'dummy_img': '<?php echo WPSG_URL_CONTENT.'plugins/wpshopgermany/lib/socialshareprivacy/socialshareprivacy/images/dummy_gplus.png'; ?>'
+            			'dummy_img': '<?php echo WPSG_URL_CONTENT.'plugins/'.WPSG_FOLDERNAME.'/lib/socialshareprivacy/socialshareprivacy/images/dummy_gplus.png'; ?>'
         			}
         		},
         		'uri': '<?php echo $this->view['data']['url']; ?>',
-    			css_path: '<?php echo WPSG_URL_CONTENT; ?>plugins/wpshopgermany/lib/socialshareprivacy/socialshareprivacy/socialshareprivacy.css'    			
+    			css_path: '<?php echo WPSG_URL_CONTENT; ?>plugins/'.WPSG_FOLDERNAME.'/lib/socialshareprivacy/socialshareprivacy/socialshareprivacy.css'    			
 			} ); 
 
Index: /views/mods/mod_produktattribute/list.phtml
===================================================================
--- /views/mods/mod_produktattribute/list.phtml	(revision 5371)
+++ /views/mods/mod_produktattribute/list.phtml	(revision 5382)
@@ -19,6 +19,6 @@
 	</tr>
 	<?php foreach ($this->view['data'] as $pa) { ?>
-	<tr>
-		<td class="col_id"><?php echo $pa['id']; ?></td>
+	<tr id="pa_<?php echo $pa['id']; ?>" class="wpsg_tablerow">
+		<td class="col_id wpsg_id"><?php echo $pa['id']; ?></td>
 		<td colspan="2" id="pa_<?php echo $pa['id']; ?>_name" class="col_name wpsg_editable"><?php echo wpsg_hspc($pa['name']); ?></td>
 		<td class="col_html">
@@ -126,3 +126,38 @@
 	<?php } ?>
 </table>
+
+<p class="wpsg_hinweis"><?php echo __('Die Reihenfolge lÃ€sst sich mittels Drag&Drop verÃ€ndern.', 'wpsg'); ?>
+
+<script type="text/javascript">/* <![CDATA[ */
+
+	jQuery(document).ready(function() {
+
+		jQuery('.wpsg_mod_produktattribute_table').sortable( {
+			helper: wpsg_Tablefix,
+			items: 'tr.wpsg_tablerow',
+			handler: '.wpsg_id',
+			update: function(event, ui) {
+
+				var wpsg_reorder = jQuery(this).sortable('serialize');
+
+				jQuery.ajax( {
+					url: '<?php echo WPSG_URL_WP; ?>wp-admin/admin.php?page=wpsg-Admin&action=module&modul=wpsg_mod_produktattribute&noheader=1&do=reorder',
+					data: { 
+						wpsg_reorder: wpsg_reorder
+					},
+					success: function(data) {
+
+						if (data !== "1") alert(data);
+						
+					}
+				} );
+				
+			}
+		} );
+		
+	} );
+			
+/* ]]> */</script>
+
+
 <?php } ?>
Index: /views/mods/mod_rechnungen/rechnung_pdf.phtml
===================================================================
--- /views/mods/mod_rechnungen/rechnung_pdf.phtml	(revision 5371)
+++ /views/mods/mod_rechnungen/rechnung_pdf.phtml	(revision 5382)
@@ -7,5 +7,5 @@
 	require_once WPSG_PATH_LIB.'fpdf/fpdf.php';
 	require_once WPSG_PATH_LIB.'fpdf/fpdi.php';
-	require_once WPSG_PATH_MOD.'mod_rechnungen/wpsg_fpdf.class.php';
+	require_once WPSG_PATH_LIB.'wpsg_fpdf.class.php';
   
 	global $absender_left, $absender_top, $adress_left, $adress_top, $rdata_left, $rdata_top;
@@ -140,7 +140,7 @@
 					
 					$pdf->SetFont('Arial', 'B', ((intval($text['fontsize']) > 0)?intval($text['fontsize']):10));
-					$pdf->SetTextColor($text['color']);
-					$pdf->MultiCell($text['x'], $text['y'], 5, utf8_encode($text['text'])); 
-					$pdf->SetTextColor("#000000");
+					$pdf->wpsg_SetTextColor($text['color']);
+					$pdf->wpsg_MultiCell($text['x'], $text['y'], 5, $text['text']); 
+					$pdf->wpsg_SetTextColor("#000000");
 					
 				}
@@ -152,5 +152,5 @@
 	}
 	//wpsg_debug($this->view); die();
-	$pdf = new wpsg_fpdf();	 
+	$pdf = new wpsg_fpdf();	
 	$pdf->SetAutoPageBreak(true, 5);
 	AddRechnungPage($this, $pdf);
@@ -265,5 +265,5 @@
 		
 		$height_y = $pdf->getY();
-		$height = 2 + $pdf->MultiCell($prod_left + 10, $prod_top + $offset + 1.5, 5, utf8_encode($produkt_text), 0, 'L', 0, $produkt_text_cell_width);
+		$height = 2 + $pdf->wpsg_MultiCell($prod_left + 10, $prod_top + $offset + 1.5, 5, $produkt_text, 0, 'L', 0, $produkt_text_cell_width);
 		
 		//$height += 3 + 5 + $pdf->getY() - $height_y;
@@ -280,26 +280,6 @@
 		$pdf->setXY($prod_left + 112, $prod_top + $offset);
 		$pdf->Cell(15, 8, $p['menge'], 0, 0, 'C');
-		
-		// Preis eines Produktes
-		if ($this->view['basket']['noMwSt'] == '1')
-		{
-			
-			// Innergemeinschaftliche Lieferung, hier Netto Preis
-			$preis = $p['preis_netto'];
-			
-		}
-		else
-		{
-			
-			if ($this->getFrontendTaxview() == WPSG_BRUTTO || $this->get_option('wpsg_kleinunternehmer') == '1')
-			{
-				$preis = $p['preis_brutto'];
-			}
-			else
-			{
-				$preis = $p['preis_netto'];			
-			}
-			
-		}
+						
+		$preis = $p['preis'];
 		
 		$pdf->setXY($prod_left + 127, $prod_top + $offset);
@@ -326,5 +306,5 @@
 			
 			$cellY = $pdf->getY();
-			$pdf->MultiCell($prod_left + 10, $prod_top + $height + $offset - 1, 5, utf8_encode($produktBeschreibung), 0, 'L', 0, $produkt_text_cell_width);			
+			$pdf->wpsg_MultiCell($prod_left + 10, $prod_top + $height + $offset - 1, 5, $produktBeschreibung, 0, 'L', 0, $produkt_text_cell_width);			
 			$pBeschreibungHeight = $pdf->getY() - $cellY - $height + 1;
 			$pdf->SetFont('Arial', '', 9);
@@ -342,5 +322,5 @@
 			$variInfo = $this->callMod('wpsg_mod_varianten', 'getVariantenInfoArray', array($p['productkey']));
 
-			$height += $pdf->MultiCell($prod_left + 10, $prod_top + $height + $offset - 0.5, 5, utf8_encode(wpsg_translate(__('Variante: #1#', 'wpsg'), $variInfo['key'])), 0, 'L', 0, $produkt_text_cell_width);			
+			$height += $pdf->wpsg_MultiCell($prod_left + 10, $prod_top + $height + $offset - 0.5, 5, wpsg_translate(__('Variante: #1#', 'wpsg'), $variInfo['key']), 0, 'L', 0, $produkt_text_cell_width);			
 			
 			//$height += 5;
@@ -361,5 +341,5 @@
 				{
 				
-					$height += $pdf->MultiCell($prod_left + 10, $prod_top + $height + $offset - 0.5, 5, utf8_encode(wpsg_translate(__('Lieferdatum: #1#', 'wpsg'), date('d.m.Y', $deliveryTimeProduct))), 0, 'L', 0, $produkt_text_cell_width);
+					$height += $pdf->wpsg_MultiCell($prod_left + 10, $prod_top + $height + $offset - 0.5, 5, wpsg_translate(__('Lieferdatum: #1#', 'wpsg'), date('d.m.Y', $deliveryTimeProduct)), 0, 'L', 0, $produkt_text_cell_width);
 					
 				}
@@ -781,5 +761,5 @@
 	{
  
-		$pdf->MultiCell($prod_left - 1, $prod_top + $offset + 5, 5, utf8_encode($this->get_option('wpsg_kleinunternehmer_text'))); 
+		$pdf->wpsg_MultiCell($prod_left - 1, $prod_top + $offset + 5, 5, $this->get_option('wpsg_kleinunternehmer_text')); 
 		$offset += 15;
 		
@@ -798,7 +778,5 @@
 			$offset += 10; 
 			
-			$pdf->MultiCell($prod_left, $prod_top + $offset, 5, utf8_encode(
-				wpsg_translate(__('Lieferung: #1#', 'wpsg'), date('d.m.Y', $delivery_date))
-			));
+			$pdf->wpsg_MultiCell($prod_left, $prod_top + $offset, 5, wpsg_translate(__('Lieferung: #1#', 'wpsg'), date('d.m.Y', $delivery_date)));
 
 			$offset += 5;
@@ -813,5 +791,6 @@
 	{
 	
-		$pdf->MultiCell($prod_left - 1, $prod_top + $offset, 5, utf8_encode($this->view['fussText']));
+		//$pdf->wpsg_MultiCell($prod_left - 1, $prod_top + $offset, 5, utf8_encode($this->view['fussText']));		
+		$pdf->wpsg_MultiCell($prod_left - 1, $prod_top + $offset, 5, $this->view['fussText']);
 		$pdf->SetFont('Arial', 'B', 9);
 		$offset += 10;	
@@ -844,5 +823,5 @@
 		
 		$start = $pdf->getY();
-		$pdf->MultiCell($prod_left - 1, $prod_top + $offset, 5, utf8_encode($shipping_adress), 0, 'L', 0, 100);
+		$pdf->wpsg_MultiCell($prod_left - 1, $prod_top + $offset, 5, $shipping_adress, 0, 'L', 0, 100);
 		$offset += $pdf->getY() - $start;
 		
@@ -865,5 +844,5 @@
 		{
 				
-			$bvars = $this->db->fetchRow("SELECT * FROM `".wpsg_q(WPSG_TBL_ORDERVARS)."` WHERE `id` = '".wpsg_q($bvars_id)."'");
+			$bvars = $this->db->fetchRow("SELECT * FROM `".wpsg_q(WPSG_TBL_ORDERVARS)."` WHERE `id` = '".wpsg_q($bvars_id)."' ORDER BY `pos` ASC, `id` ASC ");
 			
 			if ($bvars['typ'] == "1") // Auswahl
@@ -888,5 +867,5 @@
 		$pdf->Text($prod_left, $prod_top + $offset, __("Angaben wÃ€hrend der Bestellung", "wpsg").":");
 		$pdf->SetFont('Arial', '', 9);
-		$pdf->MultiCell($prod_left - 1, $prod_top + $offset, 5, utf8_encode($strBVars));
+		$pdf->wpsg_MultiCell($prod_left - 1, $prod_top + $offset, 5, $strBVars);
 		
 	}  
Index: /views/mods/mod_relatedproducts/settings_edit.phtml
===================================================================
--- /views/mods/mod_relatedproducts/settings_edit.phtml	(revision 5371)
+++ /views/mods/mod_relatedproducts/settings_edit.phtml	(revision 5382)
@@ -12,5 +12,11 @@
 <div class="wpsg_mod_relatedproducts_showBasket_activ" style="display:none;">
 <?php echo wpsg_drawForm_Input('wpsg_mod_relatedproducts_showBasketLimit', __('Maximale Anzahl an angezeigten Produkten', 'wpsg'), $this->get_option('wpsg_mod_relatedproducts_showBasketLimit'), array('help' => 'wpsg_mod_relatedproducts_showBasketLimits')); ?>
-<?php echo wpsg_drawForm_Select('wpsg_mod_relatedproducts_showBasketTemplate', __('Tempalte fÃŒr die ZubehÃ¶rprodukte im Warenkorn', 'wpsg'), $this->view['wpsg_mod_relatedproducts']['arTemplates'], $this->get_option('wpsg_mod_relatedproducts_showBasketTemplate'), array('help' => 'wpsg_mod_relatedproducts_showBasketTemplate')); ?>
+<?php echo wpsg_drawForm_Select('wpsg_mod_relatedproducts_showBasketTemplate', __('Tempalte fÃŒr die ZubehÃ¶rprodukte im Warenkorb', 'wpsg'), $this->view['wpsg_mod_relatedproducts']['arTemplates'], $this->get_option('wpsg_mod_relatedproducts_showBasketTemplate'), array('help' => 'wpsg_mod_relatedproducts_showBasketTemplate')); ?>
+</div>
+
+<?php echo wpsg_drawForm_Checkbox('wpsg_mod_relatedproducts_showAjaxDialog', __('ZubehÃ¶rprodukte im Warenkorb-Lightbox anpreisen', 'wpsg'), $this->get_option('wpsg_mod_relatedproducts_showAjaxDialog'), array('help' => 'wpsg_mod_relatedproducts_showAjaxDialog')); ?>
+<div class="wpsg_mod_relatedproducts_showAjaxDialog_activ" style="display:none;">
+<?php echo wpsg_drawForm_Input('wpsg_mod_relatedproducts_showAjaxDialogLimit', __('Maximale Anzahl an angezeigten Produkten', 'wpsg'), $this->get_option('wpsg_mod_relatedproducts_showAjaxDialogLimit'), array('help' => 'wpsg_mod_relatedproducts_showAjaxDialogLimits')); ?>
+<?php echo wpsg_drawForm_Select('wpsg_mod_relatedproducts_showAjaxDialogTemplate', __('Tempalte fÃŒr die ZubehÃ¶rprodukte in der Lightbox', 'wpsg'), $this->view['wpsg_mod_relatedproducts']['arTemplates'], $this->get_option('wpsg_mod_relatedproducts_showAjaxDialogTemplate'), array('help' => 'wpsg_mod_relatedproducts_showAjaxDialogTemplate')); ?>
 </div>
 
@@ -25,4 +31,11 @@
 			
 		} ).change();
+
+		jQuery('#wpsg_mod_relatedproducts_showAjaxDialog').bind('change', function() {
+
+			if (jQuery(this).is(':checked')) jQuery('.wpsg_mod_relatedproducts_showAjaxDialog_activ').show();
+			else jQuery('.wpsg_mod_relatedproducts_showAjaxDialog_activ').hide();
+			
+		} ).change();
 		
 	} );
Index: /views/mods/mod_request/requestpage.phtml
===================================================================
--- /views/mods/mod_request/requestpage.phtml	(revision 5371)
+++ /views/mods/mod_request/requestpage.phtml	(revision 5382)
@@ -169,5 +169,5 @@
 						
 							<?php if ($pv['typ'] === '1') { $possible_options = explode('|', $pv['auswahl']); /* Auswahl */ ?>
-							<select id="wpsg_request_pv_<?php echo $pv['id']; ?>_<?php echo $request_product['product_index']; ?>" name="wpsg[request][pv][<?php echo $request_product['product_index']; ?>][<?php echo $pv['id']; ?>]">							
+							<select id="wpsg_request_pv_<?php echo $pv['id']; ?>_<?php echo $request_product['product_index']; ?>" name="wpsg[request][pv][<?php echo $request_product['product_index']; ?>][<?php echo $pv['id']; ?>]" class="<?php echo ((in_array("pv_".$pv['id'], (array)$this->view['error']))?'wpsg_error':''); ?>">							
 								<option value="-1"><?php echo __('Bitte AuswÃ€hlen', 'wpsg'); ?></option>
 								<?php foreach ((array)$possible_options as $option) { ?>
@@ -176,8 +176,8 @@
 							</select>
 							<?php } else if ($pv['typ'] === '2') { /* Text */ ?>
-							<input id="wpsg_request_pv_<?php echo $pv['id']; ?>_<?php echo $request_product['product_index']; ?>" type="text" name="wpsg[request][pv][<?php echo $request_product['product_index']; ?>][<?php echo $pv['id']; ?>]" value="<?php echo wpsg_hspc(wpsg_getStr($request_product['pv'][$pv['id']])); ?>" />
+							<input id="wpsg_request_pv_<?php echo $pv['id']; ?>_<?php echo $request_product['product_index']; ?>" type="text" name="wpsg[request][pv][<?php echo $request_product['product_index']; ?>][<?php echo $pv['id']; ?>]" value="<?php echo wpsg_hspc(wpsg_getStr($request_product['pv'][$pv['id']])); ?>" class="<?php echo ((in_array("pv_".$pv['id'], (array)$this->view['error']))?'wpsg_error':''); ?>" />
 							<?php } else if ($pv['typ'] === '3') { /* Checkbox */ ?>
 							<input type="hidden" name="wpsg[request][pv][<?php echo $request_product['product_index']; ?>][<?php echo $pv['id']; ?>]" value="0" />
-							<input id="wpsg_request_pv_<?php echo $pv['id']; ?>_<?php echo $request_product['product_index']; ?>" type="checkbox" name="wpsg[request][pv][<?php echo $request_product['product_index']; ?>][<?php echo $pv['id']; ?>]" value="1" <?php echo ((wpsg_isSizedInt($request_product['pv'][$pv['id']]))?'checked="checked"':''); ?>/>							
+							<input id="wpsg_request_pv_<?php echo $pv['id']; ?>_<?php echo $request_product['product_index']; ?>" type="checkbox" name="wpsg[request][pv][<?php echo $request_product['product_index']; ?>][<?php echo $pv['id']; ?>]" value="1" <?php echo ((wpsg_isSizedInt($request_product['pv'][$pv['id']]))?'checked="checked"':''); ?> class="<?php echo ((in_array("pv_".$pv['id'], (array)$this->view['error']))?'wpsg_error':''); ?>" />							
 							<?php } ?>
 												
@@ -303,5 +303,5 @@
 			
 			<div class="wpsg_checkoutblock" id="wpsg_geburtsdatum">
-				<label for="geb" class="wpsg_checkout"><?php echo __('Geburtsdatum',"wpsg"); ?>
+				<label for="geb" class="wpsg_checkout"><?php echo __('Geburtsdatum (Format: TT.MM.JJJJ)',"wpsg"); ?>
 				<?php if ($this->view['pflicht']['geb'] != '1') { ?><span class="wpsg_required">*</span><?php } ?>:
 				</label>
@@ -367,10 +367,11 @@
 			<?php foreach ((array)$this->view['pflicht']['custom'] as $c_id => $c) { if ($c['show'] != '2') { ?>
 			<div class="wpsg_checkoutblock">
-				<label class="wpsg_cv wpsg_checkout" for="wpsg_cv_<?php echo $c_id; ?>">					
-					<?php if ($c['typ'] == '0') { // Textfeld ?>
+				<label class="wpsg_cv wpsg_checkout" for="wpsg_cv_<?php echo $c_id; ?>">
 					<?php echo wpsg_hspc(__($c['name'], 'wpsg')); ?><?php if ($c['show'] == '0') { ?> <span class="wpsg_required">*</span><?php } ?>:
-					<input id="wpsg_cv_<?php echo $c_id; ?>" class="<?php echo (($c['show'] == '0')?'validate[required]':''); ?> <?php echo ((in_array("custom_".$c_id, (array)$this->view['error']))?'wpsg_error':''); ?>" name="wpsg[request][customer][custom][<?php echo $c_id; ?>]" type="text" value="<?php echo wpsg_hspc(wpsg_getStr($this->view['requestlist']['customer']['custom'][$c_id])); ?>" />
-					<?php } else if ($c['typ'] == '1') { $arAuswahl = explode("|", $c['auswahl']); // Auswahlfeld ?>
-					<?php echo wpsg_hspc(__($c['name'], 'wpsg')); ?><?php if ($c['show'] == '0') { ?> <span class="wpsg_required">*</span><?php } ?>:
+				</label>					
+				<?php if ($c['typ'] == '0') { // Textfeld ?>					
+				<input id="wpsg_cv_<?php echo $c_id; ?>" class="<?php echo (($c['show'] == '0')?'validate[required]':''); ?> <?php echo ((in_array("custom_".$c_id, (array)$this->view['error']))?'wpsg_error':''); ?>" name="wpsg[request][customer][custom][<?php echo $c_id; ?>]" type="text" value="<?php echo wpsg_hspc(wpsg_getStr($this->view['requestlist']['customer']['custom'][$c_id])); ?>" />
+				<?php } else if ($c['typ'] == '1') { $arAuswahl = explode("|", $c['auswahl']); // Auswahlfeld ?>
+					<?php if ($c['show'] == '0') { ?>
 					<select id="wpsg_cv_<?php echo $c_id; ?>" class="<?php echo (($c['show'] == '0')?'validate[required]':''); ?> <?php echo ((in_array("custom_".$c_id, (array)$this->view['error']))?'wpsg_error':''); ?>" name="wpsg[request][customer][custom][<?php echo $c_id; ?>]">
 						<option value="-1"><?php echo __('Bitte AuswÃ€hlen', 'wpsg'); ?></option>
@@ -382,7 +383,6 @@
 					<input type="hidden" name="wpsg[request][customer][custom][<?php echo $c_id; ?>]" value="0" /> 
 					<input id="wpsg_cv_<?php echo $c_id; ?>" class="<?php echo (($c['show'] == '0')?'validate[required]':''); ?> checkbox" type="checkbox" value="1" name="wpsg[request][customer][custom][<?php echo $c_id; ?>]" value="1" <?php echo ((wpsg_getStr($this->view['requestlist']['customer']['custom'][$c_id]) == '1')?'checked="checked"':''); ?> />
-					<?php echo wpsg_hspc(__($c['name'], 'wpsg')); ?><?php if ($c['show'] == '0') { ?> <span class="wpsg_required">*</span><?php } ?>					
-					<?php } ?>
-				</label>
+					<?php } ?>				
+				<?php } ?>
 			</div>
 			<?php } } ?>
Index: /views/mods/mod_skrill/order_done.phtml
===================================================================
--- /views/mods/mod_skrill/order_done.phtml	(revision 5371)
+++ /views/mods/mod_skrill/order_done.phtml	(revision 5382)
@@ -42,5 +42,5 @@
 	<input type="hidden" name="detail1_text" value="<?php echo wpsg_hspc($this->view['order']['onr']); ?>" />
 		
-	<input type="image" src="<?php echo WPSG_URL_CONTENT; ?>plugins/wpshopgermany/views/mods/mod_skrill/skrill-moneybookers-payby-border_de_150x106.png" alt="<?php echo __('Bezahlen mit Skrill', 'wpsg'); ?>" />
+	<input type="image" src="<?php echo WPSG_URL_CONTENT; ?>plugins/<?php echo WPSG_FOLDERNAME; ?>/views/mods/mod_skrill/skrill-moneybookers-payby-border_de_150x106.png" alt="<?php echo __('Bezahlen mit Skrill', 'wpsg'); ?>" />
 
 	<p>
Index: /views/mods/mod_su/order_done.phtml
===================================================================
--- /views/mods/mod_su/order_done.phtml	(revision 5371)
+++ /views/mods/mod_su/order_done.phtml	(revision 5382)
@@ -9,5 +9,5 @@
 <p>
 	<a title="<?php echo __('Mit SofortÃŒberweisung bezahlen', 'wpsg'); ?>" href="<?php echo $this->view['suLink']; ?>">
-		<img src="<?php echo WPSG_URL_CONTENT.'plugins/wpshopgermany/views/gfx/'; ?>banner_300x100.png" align="left" alt="<?php echo __('Mit SofortÃŒberweisung bezahlen', 'wpsg'); ?>" style="margin-right:7px;">
+		<img src="<?php echo WPSG_URL_CONTENT.'plugins/'.WPSG_FOLDERNAME.'/views/gfx/'; ?>banner_300x100.png" align="left" alt="<?php echo __('Mit SofortÃŒberweisung bezahlen', 'wpsg'); ?>" style="margin-right:7px;">
 	</a>
 </p>
Index: /views/mods/mod_su/settings_edit.phtml
===================================================================
--- /views/mods/mod_su/settings_edit.phtml	(revision 5371)
+++ /views/mods/mod_su/settings_edit.phtml	(revision 5382)
@@ -38,22 +38,22 @@
 </script>
 
-<?php echo wpsg_drawForm_Input('wpsg_mod_su_bezeichnung', __('Bezeichnung', 'wpsg'), $this->get_option('wpsg_mod_su_bezeichnung')); ?>
+<?php echo wpsg_drawForm_Input('wpsg_mod_su_bezeichnung', __('Bezeichnung', 'wpsg'), $this->get_option('wpsg_mod_su_bezeichnung'), array('help' => 'wpsg_mod_su_bezeichnung')); ?>
 <?php echo wpsg_drawForm_Checkbox('wpsg_mod_su_aktiv', __('Aktiv', 'wpsg'), $this->get_option('wpsg_mod_su_aktiv')); ?>
-<?php echo wpsg_drawForm_Textarea('wpsg_mod_su_hint', __('Hinweistext', 'wpsg'), $this->get_option('wpsg_mod_su_hint')); ?>
-<?php echo wpsg_drawForm_Input('wpsg_mod_su_subject1', __('Betreff fÃŒr Ãberweisung (Zeile 1)', 'wpsg'), $this->get_option('wpsg_mod_su_subject1')); ?>
-<?php echo wpsg_drawForm_Input('wpsg_mod_su_subject2', __('Betreff fÃŒr Ãberweisung (Zeile 2)', 'wpsg'), $this->get_option('wpsg_mod_su_subject2')); ?>
+<?php echo wpsg_drawForm_Textarea('wpsg_mod_su_hint', __('Hinweistext', 'wpsg'), $this->get_option('wpsg_mod_su_hint'), array('help' => 'wpsg_mod_su_hint')); ?>
+<?php echo wpsg_drawForm_Input('wpsg_mod_su_subject1', __('Betreff fÃŒr Ãberweisung (Zeile 1)', 'wpsg'), $this->get_option('wpsg_mod_su_subject1'), array('help' => 'wpsg_mod_su_subject1')); ?>
+<?php echo wpsg_drawForm_Input('wpsg_mod_su_subject2', __('Betreff fÃŒr Ãberweisung (Zeile 2)', 'wpsg'), $this->get_option('wpsg_mod_su_subject2'), array('help' => 'wpsg_mod_su_subject2')); ?>
 <br />
-<?php echo wpsg_drawForm_Input('wpsg_mod_su_gebuehr', __('GebÃŒhr/Rabatt', 'wpsg'), wpsg_ff($this->get_option('wpsg_mod_su_gebuehr'), true), array('unit' => $this->get_option('wpsg_currency').' / %')); ?>
-<?php echo wpsg_drawForm_Select('wpsg_mod_su_mwst', __('Mehrwertsteuersatz', 'wpsg'), wpsg_tax_groups(), $this->get_option('wpsg_mod_su_mwst')); ?>
-<?php echo wpsg_drawForm_Checkbox('wpsg_mod_su_mwstland', __('Keine MwSt. wenn Land steuerfrei', 'wpsg'), $this->get_option('wpsg_mod_su_mwstland')); ?>
+<?php echo wpsg_drawForm_Input('wpsg_mod_su_gebuehr', __('GebÃŒhr/Rabatt', 'wpsg'), wpsg_ff($this->get_option('wpsg_mod_su_gebuehr'), true), array('unit' => $this->get_option('wpsg_currency').' / %', 'help' => 'wpsg_mod_su_gebuehr')); ?>
+<?php echo wpsg_drawForm_Select('wpsg_mod_su_mwst', __('Mehrwertsteuersatz', 'wpsg'), wpsg_tax_groups(), $this->get_option('wpsg_mod_su_mwst'), array('help' => 'wpsg_mod_su_mwst')); ?>
+<?php echo wpsg_drawForm_Checkbox('wpsg_mod_su_mwstland', __('Keine MwSt. wenn Land steuerfrei', 'wpsg'), $this->get_option('wpsg_mod_su_mwstland'), array('help' => 'wpsg_mod_su_mwstland')); ?>
 
 <br />
-<?php echo wpsg_drawForm_Select('wpsg_mod_su_currency', __('Verwendete WÃ€hrung', 'wpsg'), array('EUR' => __('Euro', 'wpsg'), 'CHF' => __('Schweizer Franken', 'wpsg'), 'GBP' => __('Britische Pfund', 'wpsg')), $this->get_option('wpsg_mod_su_currency')); ?>
-<?php echo wpsg_drawForm_Input('wpsg_mod_su_userid', __('Kunden-Nr fÃŒr SofortÃŒberweisung.de', 'wpsg'), $this->get_option('wpsg_mod_su_userid')); ?>
-<?php echo wpsg_drawForm_Input('wpsg_mod_su_projectid', __('Projekt ID fÃŒr SofortÃŒberweisung.de', 'wpsg'), $this->get_option('wpsg_mod_su_projectid')); ?>
-<?php echo wpsg_drawForm_Input('wpsg_mod_su_projectpassword', __('Projekt Passwort', 'wpsg'), $this->get_option('wpsg_mod_su_projectpassword')); ?>
-<?php echo wpsg_drawForm_Input('wpsg_mod_su_noticepassword', __('Benachrichtigungs Passwort', 'wpsg'), $this->get_option('wpsg_mod_su_noticepassword')); ?>
-<?php echo wpsg_drawForm_Select('wpsg_mod_su_language', __('Sprache bei SofortÃŒberweisung.de', 'wpsg'), array('DE' => __('deutsch', 'wpsg'), 'EN' => __('englisch', 'wpsg'), 'FR' => __('franzÃ¶sisch', 'wpsg'), 'NL' => __('niederlÃ€ndisch', 'wpsg')), $this->get_option('wpsg_mod_su_language')); ?>
-<?php echo wpsg_drawForm_Select('wpsg_mod_su_hash', __('Verwendetes HASH Verfahren', 'wpsg'), array('md5' => 'MD5', 'sha1' => 'SHA1', 'sha256' => 'SHA256', 'sha512' => 'SHA512'), $this->get_option('wpsg_mod_su_hash')); ?>
+<?php echo wpsg_drawForm_Select('wpsg_mod_su_currency', __('Verwendete WÃ€hrung', 'wpsg'), array('EUR' => __('Euro', 'wpsg'), 'CHF' => __('Schweizer Franken', 'wpsg'), 'GBP' => __('Britische Pfund', 'wpsg')), $this->get_option('wpsg_mod_su_currency'), array('help' => 'wpsg_mod_su_currency')); ?>
+<?php echo wpsg_drawForm_Input('wpsg_mod_su_userid', __('Kunden-Nr fÃŒr SofortÃŒberweisung.de', 'wpsg'), $this->get_option('wpsg_mod_su_userid'), array('help' => 'wpsg_mod_su_userid')); ?>
+<?php echo wpsg_drawForm_Input('wpsg_mod_su_projectid', __('Projekt ID fÃŒr SofortÃŒberweisung.de', 'wpsg'), $this->get_option('wpsg_mod_su_projectid'), array('help' => 'wpsg_mod_su_projectid')); ?>
+<?php echo wpsg_drawForm_Input('wpsg_mod_su_projectpassword', __('Projekt Passwort', 'wpsg'), $this->get_option('wpsg_mod_su_projectpassword'), array('help' => 'wpsg_mod_su_projectpassword')); ?>
+<?php echo wpsg_drawForm_Input('wpsg_mod_su_noticepassword', __('Benachrichtigungs Passwort', 'wpsg'), $this->get_option('wpsg_mod_su_noticepassword'), array('help' => 'wpsg_mod_su_noticepassword')); ?>
+<?php echo wpsg_drawForm_Select('wpsg_mod_su_language', __('Sprache bei SofortÃŒberweisung.de', 'wpsg'), array('DE' => __('deutsch', 'wpsg'), 'EN' => __('englisch', 'wpsg'), 'FR' => __('franzÃ¶sisch', 'wpsg'), 'NL' => __('niederlÃ€ndisch', 'wpsg')), $this->get_option('wpsg_mod_su_language'), array('help' => 'wpsg_mod_su_language')); ?>
+<?php echo wpsg_drawForm_Select('wpsg_mod_su_hash', __('Verwendetes HASH Verfahren', 'wpsg'), array('md5' => 'MD5', 'sha1' => 'SHA1', 'sha256' => 'SHA256', 'sha512' => 'SHA512'), $this->get_option('wpsg_mod_su_hash'), array('help' => 'wpsg_mod_su_hash')); ?>
 <div class="wpsg_form_field">
 	<div class="wpsg_form_left">
Index: /views/mods/mod_test/settings_edit.phtml
===================================================================
--- /views/mods/mod_test/settings_edit.phtml	(revision 5371)
+++ /views/mods/mod_test/settings_edit.phtml	(revision 5382)
@@ -16,5 +16,5 @@
 				<?php echo ($test_index + 1); ?>. Test - <?php echo $test['label']; ?>
 				<?php if ($this->callMod('wpsg_mod_test', 'checkTest', array($test)) === true) { ?>
-				<img src="<?php echo WPSG_URL_CONTENT; ?>plugins/wpshopgermany/views/css/../gfx/tick.png" alt="" style="float:right;" />
+				<img src="<?php echo WPSG_URL_CONTENT; ?>plugins/<?php echo WPSG_FOLDERNAME; ?>/views/css/../gfx/tick.png" alt="" style="float:right;" />
 				<?php } ?>
 			</div>
@@ -47,5 +47,5 @@
 						<td>
 							<?php if ($this->callMod('wpsg_mod_test', 'checkValue', array($key, $t[1], $test['array'])) === true) { ?>
-							<img src="<?php echo WPSG_URL_CONTENT; ?>plugins/wpshopgermany/views/css/../gfx/tick.png" alt="" />
+							<img src="<?php echo WPSG_URL_CONTENT; ?>plugins/<?php echo WPSG_FOLDERNAME; ?>/views/css/../gfx/tick.png" alt="" />
 							<?php } ?>						
 						</td>
Index: /views/mods/mod_voucherproduct/voucher_pdf.phtml
===================================================================
--- /views/mods/mod_voucherproduct/voucher_pdf.phtml	(revision 5371)
+++ /views/mods/mod_voucherproduct/voucher_pdf.phtml	(revision 5382)
@@ -33,6 +33,5 @@
 			if ($t['alpha'] > 0) $pdf->setAlpha($t['alpha']);
 			
-			list($r, $g, $b) = wpsg_getColor($t["color"]);
-			$pdf->SetTextColor($r, $g, $b);
+			$pdf->wpsg_SetTextColor($t['color']);
 			 
 			$pdf->SetFont('Arial', '', $t['fontsize']);																	    
@@ -74,5 +73,5 @@
 			
 			$pdf->SetFont('Arial', '', $t['fontsize']);
-			$pdf->SetTextColor($t["color"]);
+			$pdf->wpsg_SetTextColor($t["color"]);
 																			    
 	    	$pdf->RotatedText(
Index: /views/mods/mod_weight/settings_edit.phtml
===================================================================
--- /views/mods/mod_weight/settings_edit.phtml	(revision 5371)
+++ /views/mods/mod_weight/settings_edit.phtml	(revision 5382)
@@ -9,4 +9,5 @@
 <?php echo wpsg_drawForm_Checkbox('wpsg_mod_weight_showProduct', __('Im Produkt anzeigen', 'wpsg'), $this->get_option('wpsg_mod_weight_showProduct'), array('help' => 'wpsg_mod_weight_showProduct')); ?>
 <?php echo wpsg_drawForm_Checkbox('wpsg_mod_weight_showBasket', __('Im Warenkorb anzeigen', 'wpsg'), $this->get_option('wpsg_mod_weight_showBasket'), array('help' => 'wpsg_mod_weight_showBasket')); ?>
+<?php echo wpsg_drawForm_Checkbox('wpsg_mod_weight_showAjaxDialog', __('In der Warenkorb-Lightbox anzeigen', 'wpsg'), $this->get_option('wpsg_mod_weight_showAjaxDialog'), array('help' => 'wpsg_mod_weight_showAjaxDialog')); ?>
 <?php echo wpsg_drawForm_Checkbox('wpsg_mod_weight_showBasketProduct', __('Im Warenkorb im Produkt anzeigen', 'wpsg'), $this->get_option('wpsg_mod_weight_showBasketProduct'), array('help' => 'wpsg_mod_weight_showBasketProduct')); ?>
 <?php echo wpsg_drawForm_Checkbox('wpsg_mod_weight_showOverview', __('In Zusammenfassung anzeigen', 'wpsg'), $this->get_option('wpsg_mod_weight_showOverview'), array('help' => 'wpsg_mod_weight_showOverview')); ?>
Index: /views/mods/mod_willcollect/settings_edit.phtml
===================================================================
--- /views/mods/mod_willcollect/settings_edit.phtml	(revision 5371)
+++ /views/mods/mod_willcollect/settings_edit.phtml	(revision 5382)
@@ -10,4 +10,5 @@
 <?php echo wpsg_drawForm_Textarea('wpsg_mod_willcollect_hint', __('Hinweistext', 'wpsg'), $this->get_option('wpsg_mod_willcollect_hint'), array('help' => 'wpsg_mod_willcollect_hint')); ?>
 <?php echo wpsg_drawForm_Checkbox('wpsg_mod_willcollect_paymentneed', __('Selbstabholung erfordert Barzahlung', 'wpsg'), $this->get_option('wpsg_mod_willcollect_paymentneed'), array('help' => 'wpsg_mod_willcollect_paymentneed')); ?>
+<?php echo wpsg_drawForm_Checkbox('wpsg_mod_willcollect_dontMerge', __('Selbstabholung nicht kombinieren', 'wpsg'), $this->get_option('wpsg_mod_willcollect_dontMerge'), array('help' => 'wpsg_mod_willcollect_dontMerge')); ?>
 <br />
 <?php echo wpsg_drawForm_Input('wpsg_mod_willcollect_adress', __('Anschrift', 'wpsg'), $this->get_option('wpsg_mod_willcollect_adress'), array('help' => 'wpsg_mod_willcollect_adress')); ?>
Index: /views/mods/mod_wirecard/settings_edit.phtml
===================================================================
--- /views/mods/mod_wirecard/settings_edit.phtml	(revision 5371)
+++ /views/mods/mod_wirecard/settings_edit.phtml	(revision 5382)
@@ -67,15 +67,15 @@
 	'en' => __('Englisch', 'wpsg'),
 	'fr' => __('FranzÃ¶sisch', 'wpsg')	
-), $this->get_option('wpsg_mod_wirecard_language')); ?>
+), $this->get_option('wpsg_mod_wirecard_language'), array('help' => 'wpsg_mod_wirecard_language')); ?>
 
 <?php echo wpsg_drawForm_Input('wpsg_mod_wirecard_subject', __('Bestellbeschreibung', 'wpsg'), $this->get_option('wpsg_mod_wirecard_subject'), array('help' => 'wpsg_mod_wirecard_subject')); ?>
 
-<?php echo wpsg_drawForm_Select('wpsg_page_mod_wirecard_success', __('Erfolgsseite', 'wpsg'), $this->view['pages'], $this->get_option('wpsg_page_mod_wirecard_success')); ?>
-<?php echo wpsg_drawForm_Select('wpsg_page_mod_wirecard_cancel', __('Seite bei Abbruch', 'wpsg'), $this->view['pages'], $this->get_option('wpsg_page_mod_wirecard_cancel')); ?>
-<?php echo wpsg_drawForm_Select('wpsg_page_mod_wirecard_error', __('Fehlerseite', 'wpsg'), $this->view['pages'], $this->get_option('wpsg_page_mod_wirecard_error')); ?>
-<?php echo wpsg_drawForm_Select('wpsg_page_mod_wirecard_pending', __('Seite bei keinem Ergebnis', 'wpsg'), $this->view['pages'], $this->get_option('wpsg_page_mod_wirecard_pending')); ?>
-<?php echo wpsg_drawForm_Select('wpsg_mod_wirecard_mode', __('Integrationsmodus', 'wpsg'), array('0' => __('IFrame', 'wpsg'), '1' => __('Popup', 'wpsg'), '2' => __('Weiterleitung', 'wpsg')), $this->get_option('wpsg_mod_wirecard_mode'), array('help' => 'wpsg_mod_wirecard_mode')); ?>
+<?php echo wpsg_drawForm_Select('wpsg_page_mod_wirecard_success', __('Erfolgsseite', 'wpsg'), $this->view['pages'], $this->get_option('wpsg_page_mod_wirecard_success'), array('help' => 'wpsg_mod_wirecard_success')); ?>
+<?php echo wpsg_drawForm_Select('wpsg_page_mod_wirecard_cancel', __('Seite bei Abbruch', 'wpsg'), $this->view['pages'], $this->get_option('wpsg_page_mod_wirecard_cancel'), array('help' => 'wpsg_mod_wirecard_cancel')); ?>
+<?php echo wpsg_drawForm_Select('wpsg_page_mod_wirecard_error', __('Fehlerseite', 'wpsg'), $this->view['pages'], $this->get_option('wpsg_page_mod_wirecard_error'), array('help' => 'wpsg_mod_wirecard_error')); ?>
+<?php echo wpsg_drawForm_Select('wpsg_page_mod_wirecard_pending', __('Seite bei keinem Ergebnis', 'wpsg'), $this->view['pages'], $this->get_option('wpsg_page_mod_wirecard_pending'), array('help' => 'wpsg_mod_wirecard_pending')); ?>
+<?php echo wpsg_drawForm_Select('wpsg_mod_wirecard_mode', __('Integrationsmodus', 'wpsg'), array('0' => __('IFrame', 'wpsg'), '1' => __('Popup', 'wpsg'), '2' => __('Weiterleitung', 'wpsg')), $this->get_option('wpsg_mod_wirecard_mode'), array('help' => 'wpsg_mod_wirecard_mode', 'help' => 'wpsg_mod_wirecard_mode')); ?>
 <div id="wpsg_mod_wirecard_mode_2" style="display:none;">
-	<?php echo wpsg_drawForm_Checkbox('wpsg_mod_wirecard_autostart', __('Zahlung sofort starten', 'wpsg'), $this->get_option('wpsg_mod_wirecard_autostart'), array('help' => 'wpsg_shippay_paystart')); ?>
+	<?php echo wpsg_drawForm_Checkbox('wpsg_mod_wirecard_autostart', __('Zahlung sofort starten', 'wpsg'), $this->get_option('wpsg_mod_wirecard_autostart'), array('help' => 'wpsg_shippay_paystart', 'help' => 'wpsg_shippay_paystart')); ?>
 </div>
 <br />
Index: /views/order/index.phtml
===================================================================
--- /views/order/index.phtml	(revision 5371)
+++ /views/order/index.phtml	(revision 5382)
@@ -383,10 +383,10 @@
 						<?php if (trim($o['order_comment']) != '') { ?>
 						<a title="<?php echo wpsg_translate(__('Kommentar (Kunde): #1#', 'wpsg'), wpsg_hspc($o['order_comment'])); ?>" onclick="return false" href="">
-							<img alt="" src="<?php echo WPSG_URL_CONTENT; ?>plugins/wpshopgermany/views/gfx/comment.png" />
+							<img alt="" src="<?php echo WPSG_URL_CONTENT; ?>plugins/<?php echo WPSG_FOLDERNAME; ?>/views/gfx/comment.png" />
 						</a>
 						<?php } ?>
 						<?php if (trim($o['admincomment']) != "") { ?>
 						<a title="<?php echo __("Kommentar (Admin): ", "wpsg").htmlspecialchars($o['admincomment']); ?>" onclick="return false;" href="">
-							<img alt="" src="<?php echo WPSG_URL_CONTENT; ?>plugins/wpshopgermany/views/gfx/comment_admin.png" />
+							<img alt="" src="<?php echo WPSG_URL_CONTENT; ?>plugins/<?php echo WPSG_FOLDERNAME; ?>/views/gfx/comment_admin.png" />
 						</a>
 						<?php } ?>
Index: /views/order/view.phtml
===================================================================
--- /views/order/view.phtml	(revision 5371)
+++ /views/order/view.phtml	(revision 5382)
@@ -418,5 +418,5 @@
 					</div>					
 				</div>
-								
+							  
 				<div class="postbox" id="wpsg_orderdata">		
 					<h3 class="wpsg_handlediv">
Index: /views/produkttemplates/standard.phtml
===================================================================
--- /views/produkttemplates/standard.phtml	(revision 5371)
+++ /views/produkttemplates/standard.phtml	(revision 5382)
@@ -107,8 +107,8 @@
 			<?php /* Lagerbestand START*/?>
 			<?php if ($this->hasMod('wpsg_mod_stock') && $this->get_option('wpsg_mod_stock_showProduct') == '1') { ?>
-							<div class="wpsg_mod_produktindex_stock">
-								<?php echo wpsg_translate(__('Lagerbestand: #1#','wpsg'), $this->view['data']['stock']);  ?>	
-							</div>
-						<?php } ?>
+			<div class="wpsg_mod_produktindex_stock">
+				<?php echo wpsg_translate(__('Lagerbestand: #1#','wpsg'), $this->view['data']['stock']);  ?>	
+			</div>
+			<?php } ?>
 			<?php /* Lagerbestand ENDE*/?>
 						
@@ -121,5 +121,6 @@
 				
 			<?php } ?>
-			<?php /* Lieferzeit Anzeige ENDE */ ?> 
+			<?php /* Lieferzeit Anzeige ENDE */ ?>
+			
 			
 			<?php /* Gewichtsanzeige START */ ?>
@@ -133,8 +134,8 @@
 			<?php /* Varianten START */ ?>
 			<div class="wpsg_produkt_varianten">
-			<?php echo $this->callMod('wpsg_mod_varianten', 'renderTemplate', array($this->view['data']['product_key'])); ?>
+				<?php echo $this->callMod('wpsg_mod_varianten', 'renderTemplate', array($this->view['data']['product_key'])); ?>
 			</div>
 			<?php /* Varianten ENDE */ ?>
-					
+										
 			<?php if ($this->callMods('productForSale', array($this->view['data']['product_key'])) || ($this->hasMod('wpsg_mod_request') && $this->callMod('wpsg_mod_request', 'isRequestProduct', array($this->view['data']['id'])))) { ?>
 			<div class="wpsg_produkt_add_basket_wrapper">	
@@ -159,5 +160,5 @@
 								data:
 								{
-									wpsg_form_data: jQuery('#wpsg_produktform_<?php echo $this->getTemplateIndex(); ?>').serialize(),
+									'wpsg_form_data': jQuery('#wpsg_produktform_<?php echo $this->getTemplateIndex(); ?>').serialize(),
 									'wpsg[ajax]': '1',
 									'wpsg[submit]': '1'					
@@ -175,4 +176,5 @@
 									<?php } ?>
 
+									wpsg_refreshBasketWidget();
 									jQuery('.wpsg_add_basket_<?php echo $this->getTemplateIndex(); ?>').prop('disabled', false);
 									
Index: /views/warenkorb/ajaxDialog.phtml
===================================================================
--- /views/warenkorb/ajaxDialog.phtml	(revision 5371)
+++ /views/warenkorb/ajaxDialog.phtml	(revision 5382)
@@ -10,27 +10,115 @@
 	// $this->view['amount_basket'] // So oft befindet sich das hinzugefÃŒgte Produkt im Warenkorb
 	// $this->view['product_data'] // Array mit Produktdaten
-	
+	// $this->view['product_index'] // Index des Produktes im Warenkorb	 	
+
 ?><div id="wpsg_basket_ajax_message">
  	
  	<div class="wpsg_basket_ajax_message_content">
+ 	 
+ 		<?php if ($this->view['error'] === true) { ?>
+
+			<h3><?php echo __('Es sind folgende Fehler aufgetreten:', 'wpsg'); ?></h3>
+
+			<?php echo $this->writeFrontendMessage(); ?>
+ 		 		 
+ 			<div class="wpsg_button_wrap">
+	 			<button class="wpsg_button wpsg_button_continue_shopping" onclick="return wpsg_basket_ajax_message_close();"><?php echo __('Weiter Einkaufen', 'wpsg'); ?></button>	 		
+	 		</div>
+	 	
+	 		<div class="wpsg_clear"></div>
  		
- 		<?php if ($this->view['error'] === true) { echo $this->writeFrontendMessage(); } else { ?>
- 		 
- 		 	<span class="wpsg_basket_ajax_message_content_success">
- 			<?php echo wpsg_translate(
- 				__('Es wurde #1#x "#2#" in den Warenkorb gelegt.', 'wpsg'),
- 				$this->view['amount_add'],
- 				$this->getProductName($this->view['product_data']['id'], true)); ?>
- 			</span>
- 				
- 		<?php } ?> 
- 		
- 		<div class="wpsg_button_wrap">
- 			<button class="wpsg_button wpsg_button_continue_shopping" onclick="return wpsg_basket_ajax_message_close();"><?php echo __('Weiter Einkaufen', 'wpsg'); ?></button>
- 			<a href="<?php echo $this->getUrl(wpsg_ShopController::URL_BASKET); ?>"><button class="wpsg_button wpsg_button_basket"><?php echo __('Zum Warenkorb', 'wpsg'); ?></button></a>
- 			<div class="wpsg_clear"></div>
- 		</div>
- 		
- 		<?php $this->clearFrontendMessage(); ?>
+ 		<?php } else { ?>
+ 	
+	 		<div class="wpsg_basket_ajax_message_content_left">
+	 		<?php if ($this->hasMod('wpsg_mod_produktbilder')) { ?> 
+	 			<?php $arBilder = $this->callMod('wpsg_mod_produktbilder', 'getProduktBilder', array($this->getProduktId($this->view['product_data']['id']))); ?>
+	  			<?php if (wpsg_isSizedArray($arBilder)) { ?> 
+	  				<img src="<?php echo $this->callMod('wpsg_mod_produktbilder', 'makeTn', array($this->getProduktId($this->view['product_data']['id']), $arBilder[0], 150, 150, 's')); ?>" alt="" />
+	  			<?php } ?>
+	 		<?php } ?>
+	 		</div>
+	 		
+	 		<div class="wpsg_basket_ajax_message_content_right">
+	 		<?php if ($this->view['error'] === true) { echo $this->writeFrontendMessage(); } else { ?>
+	 		 
+	 		 	<span class="wpsg_basket_ajax_message_content_success">
+	 			<?php echo wpsg_translate(
+	 				__('Es wurde #1#x "#2#" in den Warenkorb gelegt.', 'wpsg'),
+	 				$this->view['amount_add'],
+	 				$this->getProductName($this->view['product_data']['id'], true)); ?>
+	 			</span>
+	 			<?php } ?>
+				<div class="wpsg_clear"></div>
+	 			
+	 			<?php /* Preisanzeige Start */ ?>
+	 			<div class=wpsg_ajaxdialog_form>
+	 				<?php echo __('Der Preis fÃŒr das Produkt betrÃ€gt:','wpsg')?>
+	 				<?php echo wpsg_ff($this->view['product_data']['preis'], $this->get_option('wpsg_currency')); ?>
+	 			</div>
+	 			<div class="wpsg_clear"></div>
+	 			<?php /* Preisanzeige ENDE */ ?>
+	
+	 			<?php /* FÃŒllmengenanzeige START */ ?>
+				<?php if ($this->hasMod('wpsg_mod_fuellmenge') && $this->get_option('wpsg_mod_fuellmenge_showAjaxDialog') === '1') { ?>
+					<div class="wpsg_ajaxdialog_form">
+					<?php echo wpsg_translate(__('FÃŒllmenge: #1# #2#', 'wpsg'),'<span class="wpsg_fmenge">'.wpsg_ff($this->view['product_data']['fmenge']).'</span>', $this->view['product_data']['feinheit']); ?> 
+					</div>	
+				<?php } ?>	
+				<div class="wpsg_clear"></div>	
+				<?php /* FÃŒllmengenanzeige ENDE */ ?>
+	 			
+	 			<?php /* Gewichtsanzeige Start */ ?>
+	 			<?php if ($this->hasMod('wpsg_mod_weight') && $this->get_option('wpsg_mod_weight_showAjaxDialog') === '1') { ?>
+					<div class="wpsg_ajaxdialog_form">
+						<?php echo wpsg_translate(__('Gewicht: #1# #2#', 'wpsg'), '<span class="wpsg_weight"">'.wpsg_ff($this->view['product_data']['weight']).'</span>', $this->view['product_data']['weight_unit']); ?>
+					</div>
+				<?php } ?>
+				<div class="wpsg_clear"></div>
+				<?php /* Gewichtsanzeige ENDE */ ?>
+				
+			</div>
+			
+			<div class="wpsg_clear"></div>
+	 		
+	 		<?php /* ZubehÃ¶rprodukte START */?>
+	 		<?php if ($this->hasMod('wpsg_mod_relatedproducts') && $this->get_option('wpsg_mod_relatedproducts_showAjaxDialog') === '1') { ?>
+	 			<?php $arRelatedProducts = $this->callMod('wpsg_mod_relatedproducts', 'getRelatedProducts', array($this->getProduktID($this->view['product_key']))); ?>
+	 			<?php if (wpsg_isSizedArray($arRelatedProducts)) { ?> 			 
+	 				<div class="wpsg_ajaxdialog_relatedproducts">
+	 				 	<h3><?php echo __('Das kÃ¶nnte Ihnen auch gefallen:', 'wpsg'); ?></h3>
+	 	
+	 					<div class="wpsg_clear"></div>
+	 					
+	 					<?php foreach ($arRelatedProducts as $rp_data) { $product_data = $this->loadProduktArray($rp_data['product_id']); ?>
+	 					
+	 					<div class="wpsg_ajaxdialog_productrow">
+	 						<h4><?php echo $this->getProductName($rp_data['product_id']); ?></h4>
+	 						<a href="<?php echo $this->getProduktLink($rp_data['product_id']); ?>">
+	 							<?php if ($this->hasMod('wpsg_mod_produktbilder')) { ?> 
+	 								<?php $arBilder = $this->callMod('wpsg_mod_produktbilder', 'getProduktBilder', array($rp_data['product_id'])); ?>
+	  								<?php if (wpsg_isSizedArray($arBilder)) { ?> 
+	  									<img src="<?php echo $this->callMod('wpsg_mod_produktbilder', 'makeTn', array($rp_data['product_id'], $arBilder[0], 150, 150, 's')); ?>" alt="" />
+	  								<?php } ?>
+	 							<?php } ?>
+	 						</a>
+	 					</div>
+	 					
+						<?php } ?>
+					</div>
+	 			<?php }?>	
+	 		<?php } ?>	
+	 		
+	 		<div class="wpsg_clear"></div>
+	 		<?php /* ZubehÃ¶rprodukte ENDE*/?>
+	 		
+	 		<div class="wpsg_button_wrap">
+	 			<button class="wpsg_button wpsg_button_continue_shopping" onclick="return wpsg_basket_ajax_message_close();"><?php echo __('Weiter Einkaufen', 'wpsg'); ?></button>
+	 			<a href="<?php echo $this->getUrl(wpsg_ShopController::URL_BASKET); ?>"><button class="wpsg_button wpsg_button_basket"><?php echo __('Zum Warenkorb', 'wpsg'); ?></button></a>
+	 			<div class="wpsg_clear"></div>
+	 		</div>
+	 			 		
+	 	<?php } ?>
+	 	
+	 	<?php $this->clearFrontendMessage(); ?>
  		
  	</div>
Index: /views/warenkorb/done.phtml
===================================================================
--- /views/warenkorb/done.phtml	(revision 5371)
+++ /views/warenkorb/done.phtml	(revision 5382)
@@ -4,5 +4,5 @@
 	 * Template, welches nach erfolgreicher Bestellung angezeigt wird
 	 */
-
+ 
 	/*
 	BestellID: <?php echo $this->view['o_id']; ?>
Index: /views/warenkorb/index.phtml
===================================================================
--- /views/warenkorb/index.phtml	(revision 5371)
+++ /views/warenkorb/index.phtml	(revision 5382)
@@ -95,4 +95,7 @@
 	
 	<ul>
+		<?php if ($this->view['wpsg_widgetsettings']['wpsg_requestpage'] == 1) { ?>
+		<li class="page_item"><a href="<?php echo $this->getURL(wpsg_ShopController::URL_REQUEST); ?>"><?php echo get_the_title($this->get_option('wpsg_page_request')); ?></a></li>
+		<?php } ?>
 		<?php if ($this->view['wpsg_widgetsettings']['wpsg_agbpage'] == 1) { ?>
 		<li class="page_item"><a href="<?php echo $this->getURL(wpsg_ShopController::URL_AGB); ?>"><?php echo get_the_title($this->get_option('wpsg_page_agb')); ?></a></li>
Index: /views/warenkorb/messageDialog.phtml
===================================================================
--- /views/warenkorb/messageDialog.phtml	(revision 5382)
+++ /views/warenkorb/messageDialog.phtml	(revision 5382)
@@ -0,0 +1,33 @@
+<?php
+
+	/**
+	 * Template wird verwendet wenn Meldungen vom Shop nicht ausgegeben werden konnte.
+	 * Beispielsweise wenn Produktvariable auf einem Produkttemplate abgefragt und Pflichtfeld ist 
+	 */
+
+?>
+
+<div id="wpsg_basket_ajax_message_wrap">
+	<div id="wpsg_basket_ajax_message">
+		<div class="wpsg_basket_ajax_message_content">
+			<?php echo $this->writeFrontendMessage(); $this->clearFrontendMessage(); ?>	
+			<br />
+			<input type="button" id="wpsg_basket_messageDialog_closeButton" value="<?php echo __('SchlieÃen', 'wpsg'); ?>" />			
+		</div>
+	</div>
+	<div id="wpsg_basket_ajax_layer"></div></div>
+				
+<script type="text/javascript">/* <![CDATA[ */
+
+	jQuery(document).ready(function() {
+
+		jQuery('#wpsg_basket_messageDialog_closeButton, #wpsg_basket_ajax_layer').bind('click', function() {
+			
+			jQuery('#wpsg_basket_ajax_message').remove(); 
+			jQuery('#wpsg_basket_ajax_layer').remove();
+			
+		} );
+		
+	} );
+                                            
+/* ]]> */</script>
Index: /views/warenkorb/progress.phtml
===================================================================
--- /views/warenkorb/progress.phtml	(revision 5371)
+++ /views/warenkorb/progress.phtml	(revision 5382)
@@ -1,60 +1,55 @@
+<?php 
 
-<div class="wpsg_progress">
-		
-	<a href="<?php echo $this->getUrl(wpsg_ShopController::URL_BASKET); ?>">		
+	/**
+	 * Fortschrittsbalken
+	 */
+
+?>
+
+<div class="wpsg_progress <?php echo (($this->get_option('wpsg_mod_onepagecheckout') == '')?'':'only3steps'); ?>">
+      
+	<a href="<?php echo $this->getUrl(wpsg_ShopController::URL_BASKET); ?>">      
 		<span class="step step1 <?php echo (($GLOBALS['step'] === 1)?'current':'done'); ?>" title="<?php echo __('Hier gelangen Sie zum Warenkorb', 'wpsg'); ?>"><span class="dot"></span><span class="text"><?php echo __('Warenkorb', 'wpsg'); ?></span></span>
 	</a>
-	
-	<?php if ($GLOBALS['step'] > 1) { ?>
-	<a href=""><?php } ?>
+        
+	<?php if ($this->get_option('wpsg_mod_onepagecheckout') == '') { ?>
+           
+	<?php if ($GLOBALS['step'] > 1) { ?><a href="<?php echo $this->getURL(wpsg_ShopController::URL_CHECKOUT); ?>"><?php } ?>
 	<span class="step step2 <?php echo (($GLOBALS['step'] ===2)?'current':''); ?> <?php echo (($GLOBALS['step'] > 2)?'done':''); ?>" title="<?php echo __('Hier gelangen Sie zum Formular der Kundendaten', 'wpsg'); ?>">
 		<span class="dot"></span><span class="text"><?php echo __('Kundendaten', 'wpsg'); ?></span>
-	</span>
-	<?php if ($GLOBALS['step'] > 1) { ?>
-	</a><?php } ?>
+	</span>            
+	<?php if ($GLOBALS['step'] > 1) { ?></a><?php } ?>
 	
-	<?php if ($GLOBALS['step'] > 2) { ?>
-	<a href=""><?php } ?>
+	<?php if ($GLOBALS['step'] > 2) { ?><a href="<?php echo $this->getURL(wpsg_ShopController::URL_CHECKOUT2); ?>"><?php } ?>
 	<span class="step step3 <?php echo (($GLOBALS['step'] === 3)?'current':''); ?> <?php echo (($GLOBALS['step'] > 3)?'done':''); ?>" title="<?php echo __('Hier gelangen Sie zur Auswahl der Bezahlmethode und der Versandart', 'wpsg'); ?>">
 		<span class="dot"></span><span class="text"><?php echo __('Zahlung / Versand', 'wpsg'); ?></span>
-	</span>
-	<?php if ($GLOBALS['step'] > 2) { ?>
-	</a><?php } ?>
-	
-	<?php if ($GLOBALS['step'] > 3) { ?>
-	<a href=""><?php } ?>
+	</span>            
+	<?php if ($GLOBALS['step'] > 2) { ?></a><?php } ?>
+            
+	<?php if ($GLOBALS['step'] > 3) { ?><a href="<?php echo $this->getURL(wpsg_ShopController::URL_OVERVIEW); ?>"><?php } ?>
 	<span class="step step4 <?php echo (($GLOBALS['step'] === 4)?'current':''); ?> <?php echo (($GLOBALS['step'] > 4)?'done':''); ?>" title="<?php echo __('Hier gelangen Sie zum BestellÃŒbersicht', 'wpsg'); ?>">
 		<span class="dot"></span><span class="text"><?php echo __('AbschluÃ', 'wpsg'); ?></span>
 	</span>
-	<?php if ($GLOBALS['step'] > 3) { ?>
-	</a><?php } ?>
+	<?php if ($GLOBALS['step'] > 3) { ?></a><?php } ?>
+   
+	<?php } else { ?>
+        	
+		<?php /* Onepagecheckout */ ?>
+		<?php if ($GLOBALS['step'] > 1) { ?><a href="<?php echo $this->getURL(wpsg_ShopController::URL_CHECKOUT); ?>"><?php } ?>
+		<span class="step step2 <?php echo (($GLOBALS['step'] ===2)?'current':''); ?> <?php echo (($GLOBALS['step'] > 2)?'done':''); ?>" title="<?php echo __('Hier gelangen Sie zum Formular der Kundendaten, Bezahlmethode und der Versandart', 'wpsg'); ?>">
+			<span class="dot"></span><span class="text"><?php echo __('Kundendaten / Zahlung  / Versand', 'wpsg'); ?></span>
+		</span>
+		<?php if ($GLOBALS['step'] > 1) { ?></a><?php } ?>
+	
+		<?php if ($GLOBALS['step'] > 2) { ?><a href=""><?php } ?>
+		<span class="step step3 <?php echo (($GLOBALS['step'] === 3)?'current':''); ?> <?php echo (($GLOBALS['step'] > 3)?'done':''); ?>" title="<?php echo __('Hier gelangen Sie zum BestellÃŒbersicht', 'wpsg'); ?>">
+			<span class="dot"></span><span class="text"><?php echo __('AbschluÃ', 'wpsg'); ?></span>
+		</span>
+		<?php if ($GLOBALS['step'] > 2) { ?></a><?php } ?>
+   
+	<?php } ?>
 
 </div>
 
 <div class="wpsg_clear"></div>
-
-<?php /* ?>
-<div class="steps">
 	
-	<a class="step1 <?php echo (($GLOBALS['step'] === 1)?'current':''); ?>" href="<?php echo $this->getURL(wpsg_ShopController::URL_BASKET); ?>" title="<?php echo __('Hier gelangen Sie zum Warenkorb', 'wpsg'); ?>"><span><?php echo __('Warenkorb', 'wpsg'); ?></span></a>
-	
-	<?php if ($GLOBALS['step'] > 1) { ?>
-	<a class="step2 <?php echo (($GLOBALS['step'] === 2)?'current':''); ?>" href="<?php echo $this->getURL(wpsg_ShopController::URL_CHECKOUT); ?>" title="<?php echo __('Hier gelangen Sie zum Formular der Kundendaten', 'wpsg'); ?>"><span><?php echo __('Kundendaten', 'wpsg'); ?></span></a>
-	<?php } else { ?>
-	<p class="step2"><span><?php echo __('Kundendaten','wpsg')?></span></p>		
-	<?php } ?>
-	
-	<?php if ($GLOBALS['step'] > 2) { ?>
-	<a class="step3 <?php echo (($GLOBALS['step'] === 3)?'current':''); ?>" href="<?php echo $this->getURL(wpsg_ShopController::URL_CHECKOUT2); ?>" title="<?php echo __('Hier gelangen Sie zur Auswahl der Bezahlmethode und der Versandart', 'wpsg'); ?>"><span><?php echo __('Bezahlung', 'wpsg'); ?></span></a>
-	<?php } else { ?>	
-	<p class="step3"><span><?php echo __('Bezahlung','wpsg')?></span></p>		
-	<?php } ?>
-	
-	<?php if ($GLOBALS['step'] > 3) { ?>
-	<a class="step4 <?php echo (($GLOBALS['step'] === 4)?'current':''); ?>" href="<?php echo $this->getURL(wpsg_ShopController::URL_OVERVIEW); ?>" title="<?php echo __('Hier gelangen Sie zum BestellÃŒbersicht', 'wpsg'); ?>"><span><?php echo __('Abschluss', 'wpsg'); ?></span></a>
-	<?php } else { ?>
-	<p class="step4"><span><?php echo __('Abschluss','wpsg')?></span></p>
-	<?php } ?>
-
-</div> */ ?>
-	
Index: /wpshopgermany.php
===================================================================
--- /wpshopgermany.php	(revision 5371)
+++ /wpshopgermany.php	(revision 5382)
@@ -62,4 +62,5 @@
 		
 	// Slug
+ 	define('WPSG_FOLDERNAME', basename(dirname(__FILE__)));
 	define('WPSG_SLUG', 'wpshopgermany/wpshopgermany.php');
 	
@@ -86,5 +87,5 @@
 	define('WPSG_PATH_PRODUKTTEMPLATES_UV_OLD', WPSG_PATH_USERVIEW_OLD.'produkttemplates/');
 	define('WPSG_PATH_PRODUKTTEMPLATES_TV', WPSG_PATH_TEMPLATEVIEW.'produkttemplates/');
-	define('WPSG_URL', plugins_url().'/wpshopgermany/');	
+	define('WPSG_URL', plugins_url().'/'.WPSG_FOLDERNAME.'/');
 	define('WPSG_URL_WP', site_url().'/');
 	define('WPSG_URL_CONTENT', content_url().'/');
