Index: /controller/wpsg_BasketController.class.php
===================================================================
--- /controller/wpsg_BasketController.class.php	(revision 6148)
+++ /controller/wpsg_BasketController.class.php	(revision 6149)
@@ -111,6 +111,20 @@
 			$this->shop->view['colspan'] = 3;			
 			if ($this->get_option('wpsg_showMwstAlways') == '1' || sizeof($this->shop->view['basket']['mwst']) > 1) $this->shop->view['colspan'] ++;
-						
-			$content = $this->shop->render(WPSG_PATH_VIEW.'/warenkorb/basket.phtml', false);
+			
+			if ($this->shop->hasMod('wpsg_mod_onepagecheckout') && ($this->get_option('wpsg_mod_onepagecheckout_basket') == 1))
+			{
+				$this->shop->view['arShipping'] = $this->shop->arShipping;
+				$this->shop->view['arPayment'] = $this->shop->arPayment;
+				$this->shop->view['pflicht'] = $this->shop->loadPflichtFeldDaten();
+				$this->shop->view['laender'] = $this->db->fetchAssoc("SELECT * FROM `".WPSG_TBL_LAND."` ORDER BY `name` ASC");
+				
+				$content = $this->shop->render(WPSG_PATH_VIEW.'/mods/mod_onepagecheckout/onepage.phtml', false);
+				
+			}
+			else 
+			{
+				$content = $this->shop->render(WPSG_PATH_VIEW.'/warenkorb/basket.phtml', false);
+				
+			}
 			
 		} // public function basketAction()
@@ -196,12 +210,17 @@
 			// Sollte die Session noch nicht mit Werten gefÃŒllt sein dann hier die Kundenvoreinstellungen laden
 			$this->shop->checkCustomerPreset();
-							
+				
 			if ($this->shop->hasMod('wpsg_mod_onepagecheckout'))
 			{
-
-				$content = $this->shop->callMod('wpsg_mod_onepagecheckout', 'onepage');	return;
-				
-			}			
- 
+				if ($this->shop->get_option('wpsg_mod_onepagecheckout_basket') == 1)
+				{
+					$this->basketAction($content); return;
+				}
+				else
+				{
+					$content = $this->shop->callMod('wpsg_mod_onepagecheckout', 'onepage');	return;
+				}
+			}
+				
 			$this->shop->view['pflicht'] = $this->shop->loadPflichtFeldDaten();
 						
@@ -275,6 +294,14 @@
 			{
 				
-				$this->checkoutAction($content);
-				return;
+				if ($this->shop->hasMod('wpsg_mod_onepagecheckout') && ($this->shop->get_option('wpsg_mod_onepagecheckout_basket') == 1))
+				{
+					$this->basketAction($content);
+					return;
+				}
+				else
+				{
+					$this->checkoutAction($content);
+					return;
+				}
 				
 			}
@@ -696,5 +723,5 @@
 						
 					}
-					else if (!$this->shop->hasMod('wpsg_mod_ordercondition') && $_REQUEST['wpsg']['agb'] != '1' )
+					else if (!$this->shop->hasMod('wpsg_mod_ordercondition') && wpsg_getStr($_REQUEST['wpsg']['agb']) != '1' )
 					{
 						
Index: /controller/wpsg_ProduktController.class.php
===================================================================
--- /controller/wpsg_ProduktController.class.php	(revision 6148)
+++ /controller/wpsg_ProduktController.class.php	(revision 6149)
@@ -733,5 +733,5 @@
 					{
 				
-						$arVarianten = $this->shop->callMod('wpsg_mod_productvariants', 'loadVarianten', array($p_id));
+						$arVarianten = $this->shop->callMod('wpsg_mod_productvariants', 'getVariants', array($p_id, true, true, true));
 				
 						if (wpsg_isSizedArray($arVarianten))
Index: /controller/wpsg_ShopController.class.php
===================================================================
--- /controller/wpsg_ShopController.class.php	(revision 6148)
+++ /controller/wpsg_ShopController.class.php	(revision 6149)
@@ -1249,5 +1249,5 @@
 				
 			/* Varianten=true -> ï¿œffnet Lightbox mit Variantenauswahl */
-			$strReturn .= (($this->callMod('wpsg_mod_productvariants', 'isVariantProduct', array($product_id)))?'wpsg_variantProduct':'');
+			$strReturn .= (($this->callMod('wpsg_mod_productvariants', 'isVariantsProduct', array($product_id)))?'wpsg_variantProduct':'');
 				
 			$strReturn .= '" ';
Index: /mods/wpsg_mod_kundenverwaltung.class.php
===================================================================
--- /mods/wpsg_mod_kundenverwaltung.class.php	(revision 6148)
+++ /mods/wpsg_mod_kundenverwaltung.class.php	(revision 6149)
@@ -1080,5 +1080,5 @@
 					{
 						
-						if ($this->shop->hasMod('wpsg_mod_varianten'))
+						if ($this->shop->hasMod('wpsg_mod_productvariants'))
 						{
 							
@@ -1109,5 +1109,5 @@
 							$produkt = $this->shop->loadProduktArray($v2['p_id']);
 							
-							if ($this->shop->hasMod('wpsg_mod_varianten'))
+							if ($this->shop->hasMod('wpsg_mod_productvariants'))
 							{
 								
Index: /mods/wpsg_mod_onepagecheckout.class.php
===================================================================
--- /mods/wpsg_mod_onepagecheckout.class.php	(revision 6148)
+++ /mods/wpsg_mod_onepagecheckout.class.php	(revision 6149)
@@ -54,5 +54,6 @@
 			
 			$this->shop->createPage(__('Kasse', 'wpsg'), 'wpsg_mod_onepagecheckout_page', $_REQUEST['wpsg_mod_onepagecheckout_page']);
-						
+			$this->shop->update_option('wpsg_mod_onepagecheckout_basket', $_REQUEST['wpsg_mod_onepagecheckout_basket']);
+				
 		} // public function settings_save()
 			 
@@ -113,5 +114,19 @@
 			$this->shop->view['arShipping'] = $this->shop->arShipping;
 			$this->shop->view['arPayment'] = $this->shop->arPayment;
+
+			$this->shop->view['arLander'] = $this->db->fetchAssocField("SELECT L.`id`, L.`name` FROM `".WPSG_TBL_LAND."` AS L ORDER BY L.`name` ", "id", "name");
+				
+			// colspan fÃŒr die Zusammenfassung berechnen je nach Option
+			$this->shop->view['colspan'] = 3;
+			if ($this->shop->get_option('wpsg_showMwstAlways') == '1' || sizeof($this->shop->view['basket']['mwst']) > 1) $this->shop->view['colspan'] ++;
 			
+			if ($this->shop->get_option('wpsg_mod_onepagecheckout_basket') == 0) 
+			{
+				//return $this->shop->render(WPSG_PATH_VIEW.'/mods/mod_onepagecheckout/onepage.phtml', false);
+			}
+			else
+			{
+				//return $this->shop->render(WPSG_PATH_VIEW.'/warenkorb/overview.phtml', false);
+			}
 			return $this->shop->render(WPSG_PATH_VIEW.'/mods/mod_onepagecheckout/onepage.phtml', false);
 			
Index: /mods/wpsg_mod_productvariants.class.php
===================================================================
--- /mods/wpsg_mod_productvariants.class.php	(revision 6148)
+++ /mods/wpsg_mod_productvariants.class.php	(revision 6149)
@@ -292,5 +292,5 @@
         	if (isset($_REQUEST['cmd']) && $_REQUEST['cmd'] == 'wpsg_vp_add')
         	{
-        			
+        		die('wpsg_vp_add');
         		$vp_data = $this->loadVarianten($_REQUEST['edit_id']);
         
@@ -321,5 +321,5 @@
         	else if ($_REQUEST['cmd'] == 'wpsg_var_reorder')
         	{
-        
+        		die('wpsg_var_reorder');
         		parse_str($_REQUEST['wpsg_reorder'], $wpsg_reorder);
         
@@ -362,5 +362,5 @@
         	else if ($_REQUEST['cmd'] == 'wpsg_vari_reorder')
         	{
-        
+        		die('wpsg_vari_reorder');
         		parse_str($_REQUEST['wpsg_reorder'], $wpsg_reorder);
         
@@ -397,5 +397,5 @@
         	else if ($_REQUEST['cmd'] == 'wpsg_vp_refreh')
         	{
-        
+        		die('wpsg_vp_refreh');
         		die($this->drawVarianten($_REQUEST['edit_id']));
         
@@ -403,5 +403,5 @@
         	else if ($_REQUEST['cmd'] == "wpsg_vp_del")
         	{
-        
+        		die('wpsg_vp_del');
         		$vp_data = $this->loadVarianten($_REQUEST['edit_id']);
         
@@ -416,5 +416,5 @@
         	else if ($_REQUEST['cmd'] == "wpsg_vp_deaktiv")
         	{
-        
+        		die('wpsg_vp_deaktiv');
         		$vp_data = $this->loadVarianten($_REQUEST['edit_id']);
         
@@ -440,5 +440,5 @@
         	else if ($_REQUEST['cmd'] == "wpsg_vp_addVariation")
         	{
-        
+        		die('wpsg_vp_addVariation');
         		$vp_data = $this->loadVarianten($_REQUEST['edit_id']);
         
@@ -457,5 +457,5 @@
         	else if ($_REQUEST['cmd'] == "wpsg_vp_vari_del")
         	{
-        
+        		die('wpsg_vp_vari_del');
         		$vp_data = $this->loadVarianten($_REQUEST['edit_id']);
         
@@ -482,5 +482,5 @@
         	else if ($_REQUEST['cmd'] == "wpsg_vp_vari_deaktiv")
         	{
-        
+        		die('wpsg_vp_vari_deaktiv');
         		$vp_data = $this->loadVarianten($_REQUEST['edit_id']);
         
@@ -507,6 +507,8 @@
         	{
         
-        		$vp_data = $this->loadVarianten($_REQUEST['edit_id']);
-        
+        		//$vp_data = $this->loadVarianten($_REQUEST['edit_id']);
+        		$vp_data = $this->getVariants($_REQUEST['edit_id'], true, true, true);
+        		$this->unserializeVariant($vp_data);
+        		
         		if ($_REQUEST['vari_id'] == -1)
         		{
@@ -518,9 +520,9 @@
         		{
         
-        			$vp_data[$_REQUEST['var_id']]['vari'][$_REQUEST['vari_id']]['picOrder'] = $_REQUEST['wpsg_reorder'];
+        			$vp_data[$_REQUEST['var_id']]['arVariation'][$_REQUEST['iid']]['picOrder'] = $_REQUEST['wpsg_reorder'];
         				
         		}
         			
-        		$this->saveVarianten($_REQUEST['edit_id'], $vp_data);
+        		$this->saveVariation($_REQUEST['edit_id'], $vp_data);
         
         		die("1");
@@ -530,10 +532,12 @@
         	{
         		//die('wpsg_vp_vari_setPic');
-        		$vp_data = $this->loadVarianten($_REQUEST['edit_id']);
-        
+        		//$vp_data = $this->loadVarianten($_REQUEST['edit_id']);
+        		$vp_data = $this->getVariants($_REQUEST['edit_id'], true, true, true);
+        		$this->unserializeVariant($vp_data);
+        		
         		if ($_REQUEST['vari_id'] >= 0)
         		{
         				
-        			$arPic = explode(",", $vp_data[$_REQUEST['var_id']]['vari'][$_REQUEST['vari_id']]['pic']);
+        			$arPic = explode(",", $vp_data[$_REQUEST['var_id']]['arVariation'][$_REQUEST['iid']]['pic']);
         				
         			if (in_array($_REQUEST['pic'], $arPic))
@@ -546,5 +550,5 @@
         			}
         				
-        			$vp_data[$_REQUEST['var_id']]['vari'][$_REQUEST['vari_id']]['pic'] = implode(",", $arPic);
+        			$vp_data[$_REQUEST['var_id']]['arVariation'][$_REQUEST['iid']]['pic'] = implode(",", $arPic);
         				
         		}
@@ -567,5 +571,5 @@
         		}
         
-        		$this->saveVarianten($_REQUEST['edit_id'], $vp_data);
+        		$this->saveVariation($_REQUEST['edit_id'], $vp_data);
         
         		die("1");
@@ -574,5 +578,5 @@
         	else if ($_REQUEST['cmd'] == 'wpsg_vp_vari_inlineEdit')
         	{
-        
+        		die('wpsg_vp_vari_inlineEdit');
         
         		$vp_data = $this->loadVarianten($_REQUEST['edit_id']);
@@ -746,4 +750,5 @@
         	$vp_data = $this->clearArrayForSerialization($vp_data);
         		
+        	$temp = wpsg_q(serialize($vp_data));
         	$this->db->UpdateQuery(WPSG_TBL_PRODUCTS_VARIATION, array(
         		"images" => wpsg_q(serialize($vp_data))
@@ -751,4 +756,22 @@
 			
         } // public function saveVarianten($produkt_id, $vp_data)
+
+        /**
+         * Speichert die Variationen
+         */
+        public function saveVariation($produkt_id, $vp_data)
+        {
+        
+        	$vp_data = $this->clearArrayForSerialization($vp_data);
+        
+        	$temp = wpsg_q(serialize($vp_data));
+        	$vdata['pic'] = $vp_data[wpsg_q($_REQUEST['var_id'])]['arVariation'][wpsg_q($_REQUEST['iid'])]['pic'];
+        	$vdata['picOrder'] = $vp_data[wpsg_q($_REQUEST['var_id'])]['arVariation'][wpsg_q($_REQUEST['iid'])]['picOrder'];
+        	
+        	$this->db->UpdateQuery(WPSG_TBL_PRODUCTS_VARIATION, array(
+        			"images" => wpsg_q(serialize($vdata))
+        	), "`variation_id` = '".wpsg_q($_REQUEST['vari_id'])."'");
+        		
+        } // public function saveVariation($produkt_id, $vp_data)
         
         /**
@@ -882,6 +905,8 @@
         	$_REQUEST['vari_id'] = $vari_id;
         	 
-        	$vp_data = $this->loadVarianten($product_id);
-        	
+        	//$vp_data = $this->loadVarianten($product_id);
+        	$vp_data = $this->getVariants($product_id, true, true, true);
+        	$this->unserializeVariant($vp_data);
+        	 
         	$arProductBilder = $this->shop->callMod('wpsg_mod_produktbilder', 'getProduktBilder_MT', array($product_id));
         
@@ -889,10 +914,11 @@
         
         	if (!isset($vp_data[$var_id])) return $arProductBilder;
-        	if (!wpsg_isSizedArray($vp_data[$var_id]['vari'][$vari_id]['picOrder']) && !wpsg_isSizedArray($vp_data[$var_id]['picOrder'])) return $arProductBilder;
-        	
+        	//if (!wpsg_isSizedArray($vp_data[$var_id]['vari'][$vari_id]['picOrder']) && !wpsg_isSizedArray($vp_data[$var_id]['picOrder'])) return $arProductBilder;
+        	if (!wpsg_isSizedArray($vp_data[$var_id]['arVariation'][$vari_id]['picOrder'])) return $arProductBilder;
+        	 
         	// Sortierung
         	// Bilder in Reihenfolge
         	if (isset($vp_data[$var_id]['typ']) && ($vp_data[$var_id]['typ'] == 'checkbox') && wpsg_isSizedArray($vp_data[$var_id]['picOrder'])) $arReturn = $vp_data[$var_id]['picOrder'];
-        	else if (wpsg_isSizedArray($vp_data[$var_id]['vari'][$vari_id]['picOrder'])) $arReturn = $vp_data[$var_id]['vari'][$vari_id]['picOrder'];
+        	else if (wpsg_isSizedArray($vp_data[$var_id]['arVariation'][$vari_id]['picOrder'])) $arReturn = $vp_data[$var_id]['arVariation'][$vari_id]['picOrder'];
         	
         	/*
@@ -914,5 +940,5 @@
         		
         	}
-        	sort($arProductBilderSort);
+        	ksort($arProductBilderSort);
         	
         	// Bilder aus dem ProduktArray noch hinzufÃŒgen, die eventuell nicht im sortierten Array enthalten sind
@@ -930,6 +956,7 @@
         	{
         	
-        		if ($vp_data[$var_id]['typ'] == 'checkbox' && wpsg_isSizedString($vp_data[$var_id]['pic'])) $arImageSelect = explode(',', $vp_data[$var_id]['pic']);
-        		else if (wpsg_isSizedString($vp_data[$var_id]['vari'][$vari_id]['pic'])) $arImageSelect = explode(',', $vp_data[$var_id]['vari'][$vari_id]['pic']);
+        		//if ($vp_data[$var_id]['typ'] == 'checkbox' && wpsg_isSizedString($vp_data[$var_id]['pic'])) $arImageSelect = explode(',', $vp_data[$var_id]['pic']);
+        		if ($vp_data[$var_id]['type'] == '3' && wpsg_isSizedString($vp_data[$var_id]['pic'])) $arImageSelect = explode(',', $vp_data[$var_id]['pic']);
+        		else if (wpsg_isSizedString($vp_data[$var_id]['arVariation'][$vari_id]['pic'])) $arImageSelect = explode(',', $vp_data[$var_id]['arVariation'][$vari_id]['pic']);
         	
         		foreach ($arReturn as $k => $v)
@@ -995,6 +1022,16 @@
 			}
 		
-			$vp_data = $this->loadVarianten($produkt_id);
-
+			//$vp_data = $this->loadVarianten($produkt_id);
+			
+			//public function getVariants($product_id = false, $global = true, $onlyActive = false, $loadVariationen = false)
+			$vp_data = $this->getVariants($produkt_id, true, true, true);
+			$this->unserializeVariant($vp_data);
+			//$vdata['pic'] = $vp_data[4]['arVariation'][2]['pic'];
+			//$vdata['picOrder'] = $vp_data[4]['arVariation'][2]['picOrder'];
+			//$temp = $vp_data[4]['arVariation'][1]['images'];
+			//$temp = wpsg_q(serialize($vdata));
+			//saveVarianten($produkt_id, $vdata);
+				
+			
 			if (is_array($vp_data) && sizeof($vp_data) > 0)
 			{
@@ -1010,71 +1047,47 @@
 				// Bilddaten ergÃ€nzen
 				foreach ($vp_data as $k1 => &$v1) {
-					$arpic = explode(',', $v1['pic']);
-					$v1['showpic'] = '';
-					if (wpsg_isSizedArray($v1['picOrder'])) {
-						// Bilder umsortiert, Reihenfolge checken
-						$k = 5000;
-						foreach ($arpic as $ap)
-							foreach ($v1['picOrder'] as $kp => $vp) {
-								if ($ap == $vp)
-									if ($kp < $k) $k = $kp; 
-								
-							}
-						$v1['showpic'] = $v1['picOrder'][$k];
-					}
-					else
-					{
-						$max = sizeof($arpic);
-						if (isset($arpic[$max - 1]))
-							$v1['showpic'] = $arpic[$max - 1];		// 1 wegen Komma am Anfang
-					}
-					$found = -1;
-					foreach ($arpb as $k2 => $v2) {
-						if ($v1['showpic'] === $v2['basename']) $found = $k2;
-					}
-					if ($found != -1) {
-						$v1['guid'] = $arpb[$found]['guid'];
-						$v1['post_id'] = $arpb[$found]['post_id'];
+					foreach ($v1['arVariation'] as $k2 => &$v2) {
+						$arpic = explode(',', $v2['pic']);
+						$v2['showpic'] = '';
+						if (wpsg_isSizedArray($v2['picOrder'])) {
+							// Bilder umsortiert, Reihenfolge checken
+							$k = 5000;
+							foreach ($arpic as $ap)
+								foreach ($v2['picOrder'] as $kp => $vp) {
+									if ($ap == $vp)
+										if ($kp < $k) $k = $kp; 
+									
+								}
+							$v2['showpic'] = $v2['picOrder'][$k];
+						}
+						else
+						{
+							$max = sizeof($arpic);
+							if (isset($arpic[$max - 1]))
+								$v2['showpic'] = $arpic[$max - 1];		// 1 wegen Komma am Anfang
+						}
+						$found = -1;
+						$v2['guid'] = '';
+						$v2['post_id'] = 0;
+						foreach ($arpb as $k3 => $v3) {
+							if ($v2['showpic'] === $v3['basename']) $found = $k3;
+						}
+						if ($found != -1) {
+							$v2['guid'] = $arpb[$found]['guid'];
+							$v2['post_id'] = $arpb[$found]['post_id'];
+						}
 					}
 				}
-
-				// Daten umstrukturieren 
-				$vp = Array();
-				$variant_id_alt = 0;
-				$i = -1;
-				$j = 0;
-				foreach ($vp_data as $k1 => $var) {
-					if ($var['variant_id'] != $variant_id_alt) {
-						$j = 0;	
-						$variant_id_alt = $var['variant_id'];
-						$i++;
-						$vp[$i]['id'] = $var['variant_id'];
-						$vp[$i]['iid'] = $var['id'];
-						$vp[$i]['product_id'] = $var['product_id'];
-						$vp[$i]['pos'] = $var['PVpos'];
-						if ($var['type'] == 0) $vp[$i]['typ'] = 'select';
-						if ($var['type'] == 1) $vp[$i]['typ'] = 'radio';
-						if ($var['type'] == 2) $vp[$i]['typ'] = 'image';
-						$vp[$i]['name'] = $var['Vname'];
-						$vp[$i]['aktiv'] = 1;
-						$vp[$i]['preis'] = 0;
-						$vp[$i]['pic'] = '';
-					}
-					$vp[$i]['vari'][$j] = Array();
-					$vp[$i]['vari'][$j]['id'] = $var['variation_id'];
-					$vp[$i]['vari'][$j]['name'] = $var['shortname'];
-					$vp[$i]['vari'][$j]['lname'] = $var['VVname'];
-					$vp[$i]['vari'][$j]['pos'] = $var['VVpos'];
-					$vp[$i]['vari'][$j]['preis'] = $var['price'];
-					$vp[$i]['vari'][$j]['aktiv'] = 1;
-					$vp[$i]['vari'][$j]['stock'] = $var['stock'];
-					$vp[$i]['vari'][$j]['pic'] = $var['pic'];
-					$vp[$i]['vari'][$j]['picOrder'] = $var['picOrder'];
-					$vp[$i]['vari'][$j]['showpic'] = $var['showpic'];
-					$j++;
-					
+				unset($v1);
+				unset($v2);
+				
+				foreach ($vp_data as $k1 => &$var) {
+					if ($var['type'] == 0) $var['typ'] = 'select';
+					if ($var['type'] == 1) $var['typ'] = 'radio';
+					if ($var['type'] == 2) $var['typ'] = 'image';
+					$var['active'] = 1;
 				}
 				
-				$this->shop->view['data']['vp_data'] = $vp;
+				$this->shop->view['data']['vp_data'] = $vp_data;
 				
 				foreach ($this->shop->view['data']['vp_data'] as $k => $v)
@@ -1092,6 +1105,6 @@
 		
 						// Preis an Ausgabe im Frontend anpassen
-						if ($this->shop->getFrontendTaxview() == WPSG_NETTO && $this->shop->getBackendTaxview() == WPSG_BRUTTO) $this->shop->view['data']['vp_data'][$k]['preis'] = wpsg_calculatePreis($v['preis'], WPSG_NETTO, $tax_value);
-						else if ($this->shop->getFrontendTaxview() == WPSG_BRUTTO && $this->shop->getBackendTaxview() == WPSG_NETTO) $this->shop->view['data']['vp_data'][$k]['preis'] = wpsg_calculatePreis($v['preis'], WPSG_BRUTTO, $tax_value);
+						//if ($this->shop->getFrontendTaxview() == WPSG_NETTO && $this->shop->getBackendTaxview() == WPSG_BRUTTO) $this->shop->view['data']['vp_data'][$k]['preis'] = wpsg_calculatePreis($v['preis'], WPSG_NETTO, $tax_value);
+						//else if ($this->shop->getFrontendTaxview() == WPSG_BRUTTO && $this->shop->getBackendTaxview() == WPSG_NETTO) $this->shop->view['data']['vp_data'][$k]['preis'] = wpsg_calculatePreis($v['preis'], WPSG_BRUTTO, $tax_value);
 						
 					}
@@ -1099,5 +1112,5 @@
 					{
 		
-						foreach ($v['vari'] as $k2 => $v2)
+						foreach ($v['arVariation'] as $k2 => $v2)
 						{
 		
@@ -1110,6 +1123,6 @@
 								
 							// Preis an Ausgabe im Frontend anpassen
-							if ($this->shop->getFrontendTaxview() == WPSG_NETTO && $this->shop->getBackendTaxview() == WPSG_BRUTTO) $this->shop->view['data']['vp_data'][$k]['vari'][$k2]['preis'] = wpsg_calculatePreis($v2['preis'], WPSG_NETTO, $tax_value);
-							else if ($this->shop->getFrontendTaxview() == WPSG_BRUTTO && $this->shop->getBackendTaxview() == WPSG_NETTO) $this->shop->view['data']['vp_data'][$k]['vari'][$k2]['preis'] = wpsg_calculatePreis($v2['preis'], WPSG_BRUTTO, $tax_value);
+							if ($this->shop->getFrontendTaxview() == WPSG_NETTO && $this->shop->getBackendTaxview() == WPSG_BRUTTO) $this->shop->view['data']['vp_data'][$k]['arVariation'][$k2]['price'] = wpsg_calculatePreis($v2['price'], WPSG_NETTO, $tax_value);
+							else if ($this->shop->getFrontendTaxview() == WPSG_BRUTTO && $this->shop->getBackendTaxview() == WPSG_NETTO) $this->shop->view['data']['vp_data'][$k]['arVariation'][$k2]['price'] = wpsg_calculatePreis($v2['price'], WPSG_BRUTTO, $tax_value);
 								
 						}
@@ -1125,23 +1138,4 @@
 				
 		} // public function renderTemplate($produkt_id)
-		
-		/**
-		 * Gibt das Bild fÃŒr die Grafikauswahl zurÃŒck
-		 * @param int $product_id
-		 * @param int $var_id
-		 * @param int $vari_id
-		 */
-		public function getImageSelectImage($product_id, $var_id, $vari_id, $vari_key)
-		{
-		
-			$arVariBilder = $this->getVariImages($product_id, $var_id, $vari_id);
-			$arVariPossibleBilder = $this->getKombiVariImages($vari_key, $var_id);
-				
-			$arBilderIntersect = array_intersect($arVariBilder, $arVariPossibleBilder);
-			if (wpsg_isSizedArray($arBilderIntersect)) $arVariBilder = $arBilderIntersect;
-				
-			return array_shift($arVariBilder);
-				
-		} // public function getImageSelectImage($product_id, $var_id, $vari_id)
 		
 		/**
@@ -1184,4 +1178,32 @@
 			
 		} // public function explodeProductKey($product_key)
+
+		/**
+		 * Gibt true zurÃŒck, wenn der Preis im Produkttemplate angezeigt werden soll
+		 * Andersrum programmiert, da die Default Einstellung anzeigen ist
+		 */
+		public function showVariPrice($vari_price)
+		{
+				
+			switch ($this->shop->get_option('wpsg_mod_varianten_showvariprice'))
+			{
+		
+				case '1': // nur wenn grÃ¶Ãer 0
+						
+					if ($vari_price <= 0) return false;
+						
+					break;
+						
+				case '2': // nie anzeigen
+						
+					return false;
+						
+					break;
+		
+			}
+				
+			return true;
+				
+		} // public function showVariPrice($vari_price)
 		
 		private function calculateVariantsPrice($price, $arVariant, $product_key)
@@ -1467,5 +1489,5 @@
 							
 				$strQueryJOIN .= " LEFT JOIN `".WPSG_TBL_PRODUCTS_VARIATION."` AS PV ON (PV.`variation_id` = VI.`id` AND PV.`product_id` = '".wpsg_q($product_id)."') ";
-				$strQuerySELECT .= " , PV.`active`, PV.`anr`, PV.`price`, PV.`stock`, PV.`images` ";
+				$strQuerySELECT .= " , PV.`id` AS iid, PV.`variation_id`, PV.`active`, PV.`anr`, PV.`price`, PV.`stock`, PV.`images` ";
 							
 			}
@@ -1507,11 +1529,45 @@
 				if (wpsg_isSizedArray($ar)) {
 					foreach($ar as $k => $v) {
-						$arr = $ar[$k]['vari'][$vi['id']];
-						foreach ($arr as $kk => $vv)
-							$vi[$kk] = $vv;
+						$vi[$k] = $v;
+						//$arr = $ar[$k]['vari'][$vi['id']];
+						//foreach ($arr as $kk => $vv)
+						//	$vi[$kk] = $vv;
 					}
 				}
 			}					
-		}
+		}	// private function unserializeVariation(&$arVari)
+
+		private function unserializeVariant(&$arVar) {
+			foreach ($arVar as &$va) {
+				foreach ($va['arVariation'] as &$vi) {
+					$ar = @unserialize($vi['images']);
+					$vi['pic'] = '';
+					$vi['picOrder'] = Array();
+					if (wpsg_isSizedArray($ar)) {
+						foreach($ar as $k => $v) {
+							$vi[$k] = $v;
+							//$arr = $ar[$k]['vari'][$vi['id']];
+							//foreach ($arr as $kk => $vv)
+							//	$vi[$kk] = $vv;
+						}
+					}
+				}
+			}
+		}	// private function unserializeVariant(&$arVar)
+		
+		public function stockVarianten($product_id)
+		{
+				
+			$this->shop->view['product_id'] = wpsg_getStr($product_id, '0');
+			//$this->shop->view['variant'] = $this->getVariant($_REQUEST['variant_id']);
+			//$this->shop->view['arVariation'] = $this->getVariationOfVariant($_REQUEST['variant_id'], $_REQUEST['product_id']);
+			$this->shop->view['arVariant'] = $this->getVariants($product_id, true, true, true);
+			
+			//die($this->shop->render(WPSG_PATH_VIEW.'/mods/mod_productvariants/stockVarianten.phtml'));
+			//$html = ($this->shop->render(WPSG_PATH_VIEW.'/mods/mod_productvariants/admin_html.phtml', false));
+			$html = ($this->shop->render(WPSG_PATH_VIEW.'/mods/mod_productvariants/stock2.phtml', false));
+			echo $html;	
+			
+		} // private function admin_editAction()
 		
 		/**
Index: /mods/wpsg_mod_stock.class.php
===================================================================
--- /mods/wpsg_mod_stock.class.php	(revision 6148)
+++ /mods/wpsg_mod_stock.class.php	(revision 6149)
@@ -89,10 +89,10 @@
 			{
 				
-				if ($this->shop->hasMod('wpsg_mod_varianten'))
-				{
-					
-					$arVari = $this->shop->callMod('wpsg_mod_varianten', 'loadVarianten', array($_REQUEST['edit_id']));
-					
-					foreach ((array)$arVari as $var_id => $var)
+				if ($this->shop->hasMod('wpsg_mod_productvariants'))
+				{
+					/*
+					$arVar = $this->shop->callMod('wpsg_mod_productvariants', 'getVariants', array($_REQUEST['edit_id'], true, true, true));
+					
+					foreach ((array)$arVar as $var_id => $var)
 					{
 						
@@ -100,5 +100,5 @@
 						echo '<ul>';
 						
-						foreach ((array)$var['vari'] as $vari_id => $vari)
+						foreach ((array)$var['arVariation'] as $vari_id => $vari)
 						{
 							
@@ -112,4 +112,6 @@
 						
 					}
+					*/
+					$this->shop->callMod('wpsg_mod_productvariants', 'stockVarianten', array($_REQUEST['edit_id']));
 					
 				}
Index: /views/mods/mod_onepagecheckout/onepage.phtml
===================================================================
--- /views/mods/mod_onepagecheckout/onepage.phtml	(revision 6148)
+++ /views/mods/mod_onepagecheckout/onepage.phtml	(revision 6149)
@@ -4,5 +4,5 @@
 	 * Template fÃŒr den Bestellablauf auf einer Seite
 	 */
-
+ 
 ?>
 <div class="wpsg wpsg_onepagecheckout wpsg_checkout wpsg_checkout2 <?php echo ((isset($_REQUEST['wpsg_basket_ajax']))?'wpsg_basket_ajax':''); ?>">
@@ -10,11 +10,16 @@
 	<?php echo $this->writeFrontendMessage(); ?>
 	 
-	<?php $GLOBALS['step'] = 2; $this->render(WPSG_PATH_VIEW.'/warenkorb/progress.phtml'); ?>
-	 
+	<?php if ($this->get_option('wpsg_mod_onepagecheckout_basket') == 0) { ?>
+		<?php $GLOBALS['step'] = 2; $this->render(WPSG_PATH_VIEW.'/warenkorb/progress.phtml'); ?>
+	<?php } ?> 
 	<form id="wpsg_basket_form" name="wpsg_basket_form"  method="post" action="<?php echo $this->getURL(wpsg_ShopController::URL_BASKET); ?>" enctype="multipart/form-data">
+		
+		<?php if ($this->get_option('wpsg_mod_onepagecheckout_basket') == 1) { ?>
+			<?php $this->view['noFormTag'] = true; $this->render(WPSG_PATH_VIEW.'/warenkorb/basket.phtml'); ?>
+		<?php } ?> 
 				    
 		<div class="wpsg_clear"></div>
 		 
-		<?php /* Einbindung des Logins im Checokut */ ?>	
+		<?php /* Einbindung des Logins im Checkout */ ?>	
 		<?php $this->callMod('wpsg_mod_kundenverwaltung', 'checkout_login'); ?>
 		 
@@ -23,4 +28,5 @@
 		 	<div class="wpsg_inner">
 		 	
+		 		<?php if ($this->get_option('wpsg_mod_onepagecheckout_basket') == 0) { ?>
 		 		<div class="wpsg_shipping">
 		 		
@@ -54,8 +60,10 @@
 		 			
 				</div>
+				<?php } ?>
 				
 				<?php if ($this->callMods('checkout_handlePayment') === true) { ?>
 				
 					<?php if (!$this->hasMod('wpsg_mod_crefopay')) { ?>
+					<?php if ($this->get_option('wpsg_mod_onepagecheckout_basket') == 0) { ?>
 					<div class="wpsg_payment">
 					
@@ -87,7 +95,8 @@
 		 				</div>
 		 				<?php } ?>
-		 			</div>
+		 				</div>
 					
 					</div>
+					<?php } ?>
 					<?php } ?>
 					
@@ -198,5 +207,12 @@
 				</div>
 				
-				<div class="wpsg_checkoutblock">
+				<?php
+					$lhidden = '';
+					if ($this->hasMod('wpsg_mod_onepagecheckout') && ($this->get_option('wpsg_mod_onepagecheckout_basket') == 1 )) { 
+						$lhidden = 'hidden="hidden"';
+					}
+				?>
+				
+				<div class="wpsg_checkoutblock" <?php echo $lhidden;?>>
 					<label for="wpsg_land" class="wpsg_checkout"><?php echo __("Land", "wpsg"); ?> 
 					<?php if ($this->view['pflicht']['land'] != '1') { ?><span class="wpsg_required">*</span><?php } ?>:
@@ -275,5 +291,7 @@
 		<br /> 
 		
+		<?php if ($this->get_option('wpsg_mod_onepagecheckout_basket') == 0) { ?>
 		<input type="submit" onclick="location.href='<?php echo $this->getURL(wpsg_ShopController::URL_BASKET); ?>'; return false;" class="wpsg_button wpsg_basketbutton" value="<?php echo __('ZurÃŒck zum Warenkorb', 'wpsg'); ?>" name="wpsg_redirect_basket" />
+		<?php } ?>
 		<input type="submit" id="wpsg_checkout2button" class="wpsg_button wpsg_checkout2button" value="<?php echo __('Weiter', 'wpsg'); ?>" name="wpsg_checkout" />
 			
@@ -397,4 +415,9 @@
 			 			
 			<?php } ?>			
+
+			// Land der Rechnungsadresse setzen
+			land = jQuery('#set_land').val();
+			jQuery('#wpsg_land').val(land);
+			//alert('land: ' + land);
 		 	
 		} );
Index: /views/mods/mod_onepagecheckout/settings_edit.phtml
===================================================================
--- /views/mods/mod_onepagecheckout/settings_edit.phtml	(revision 6148)
+++ /views/mods/mod_onepagecheckout/settings_edit.phtml	(revision 6149)
@@ -7,2 +7,3 @@
 ?>
 <?php echo wpsg_drawForm_Select('wpsg_mod_onepagecheckout_page', __('Seite fÃŒr den "EinSeitenCheckout"', 'wpsg'), $this->view['arPages'], $this->get_option('wpsg_mod_onepagecheckout_page'), array('help' => 'wpsg_mod_onepagecheckout_page')); ?>
+<?php echo wpsg_drawForm_Checkbox('wpsg_mod_onepagecheckout_basket', __('Warenkorb in EinSeitenCheckout integrieren', 'wpsg'), $this->get_option('wpsg_mod_onepagecheckout_basket'), array('help' => 'wpsg_mod_onepagecheckout_basket')); ?>
Index: /views/mods/mod_productvariants/admin_edit.phtml
===================================================================
--- /views/mods/mod_productvariants/admin_edit.phtml	(revision 6148)
+++ /views/mods/mod_productvariants/admin_edit.phtml	(revision 6149)
@@ -110,5 +110,8 @@
 					/* ]]> */</script>	
     			</td>
-    			<td class="col1"><span class="wpsg_editable" id="productvariation_name_<?php echo $vari['id']; ?>"><?php echo wpsg_hspc($vari['name']); ?></span></td>
+    			<td class="col1"><span class="wpsg_editable" id="productvariation_name_<?php echo $vari['id']; ?>"><?php echo wpsg_hspc($vari['name']); ?></span>
+    			<?php if (!isset($vari['iid'])) $vari['iid'] = $vari['id'];  ?>
+    			<input type="hidden" id="productvariation_iid_<?php echo $vari['id']; ?>" value="<?php echo wpsg_getStr($vari['iid']); ?>" />
+    			</td>
     			<td class="col_shortname"><span class="wpsg_editable" id="productvariation_shortname_<?php echo $vari['id']; ?>"><?php echo wpsg_hspc($vari['shortname']); ?></span></td>
     			
@@ -135,5 +138,5 @@
 				$k = $this->view['variant']['id'];
 				$kv = $vari['id'];
-				$temp = $this->callMod('wpsg_mod_productvariants', 'getVariImages', array($this->view['product_id'], $k, $kv));
+				$temp = $this->callMod('wpsg_mod_productvariants', 'getVariImages', array($this->view['product_id'], $k, $vari['iid']));
 				?>
     			<td class="ui-sortable" colspan="<?php echo $colspan; ?>"  id="wpsg_mod_productvariants_productimage_<?php echo $k; ?>_<?php echo $kv; ?>" >
@@ -162,4 +165,7 @@
 									
 									var wpsg_reorder = jQuery(this).sortable('toArray');
+									var iid = jQuery('#productvariation_iid_' + <?php echo $kv; ?>).val();
+									//alert('iid: ' + iid);
+														
 
 									jQuery.ajax( {			
@@ -169,4 +175,5 @@
 											'var_id': <?php echo $k; ?>,
 											'vari_id': <?php echo $kv; ?>,
+											'iid': iid,
 											'wpsg_reorder': wpsg_reorder
 										},
@@ -204,4 +211,6 @@
 
 		wpsg_vp_ajaxloading_show();
+		iid = jQuery('#productvariation_iid_' + vari_id).val();
+		//alert('iid:' + iid);
 		
 		jQuery.ajax( {
@@ -211,4 +220,5 @@
 				var_id: var_id,
 				vari_id: vari_id,
+				iid: iid,
 				pic: pic
 			},
@@ -267,9 +277,13 @@
 
 
-		<?php 
-		$p1 = wpsg_getInt($this->view['product_id']);
-		$p2 = ($this->view['variant']['product_id']);
+		<?php
+			$b1 = wpsg_isSizedInt($this->view['product_id']);
+			$b2 = wpsg_isSizedInt($this->view['variant']['product_id']);
+			if (!wpsg_isSizedInt($this->view['product_id']) || wpsg_isSizedInt($this->view['variant']['product_id'])) { 
 		?>
-		<?php if (!wpsg_isSizedInt($this->view['product_id']) || wpsg_isSizedInt($this->view['variant']['product_id'])) { ?>
+			<?php 
+				$p1 = wpsg_getInt($this->view['product_id']);
+				$p2 = ($this->view['variant']['product_id']);
+			?>
 
 		jQuery('.wpsg_mod_productvariants_table_variation').sortable( {
@@ -280,5 +294,5 @@
 				var wpsg_reorder = jQuery(this).sortable('toArray');
 				var product_id = jQuery('#wpsg_mod_productvariants_product_id').val();
-	
+				
 				jQuery.ajax( {
 					url: '<?php echo WPSG_URL_WP; ?>wp-admin/admin.php?page=wpsg-Admin&action=module&modul=wpsg_mod_productvariants&subaction=admin_inlineEdit&noheader=1',
Index: /views/mods/mod_productvariants/produkt.phtml
===================================================================
--- /views/mods/mod_productvariants/produkt.phtml	(revision 6148)
+++ /views/mods/mod_productvariants/produkt.phtml	(revision 6149)
@@ -15,7 +15,9 @@
 <?php $vAktiv = false; if (is_array($this->view['data']['vp_data']) && sizeof($this->view['data']['vp_data']) > 0) { ?>
 
-	<?php foreach ($this->view['data']['vp_data'] as $k => $var) { 
+	<?php $kk = -1; 
+		foreach ($this->view['data']['vp_data'] as $k => $var) { 
 		
-		if ($var['aktiv'] == "1") { 
+		$kk++;
+		if ($var['active'] == "1") { 
 
 			$vAktiv = true; ?>
@@ -43,6 +45,6 @@
 						<label>			 			
 							<select onchange="wpsg_vp_switch(<?php echo $this->getProduktId($this->view['data']['id']); ?>, <?php echo $this->view['product_index']; ?>);" name="wpsg_vp[<?php echo $k; ?>]" id="wpsg_vpfield_<?php echo $this->getProduktId($this->view['data']['id']); ?>_<?php echo $k; ?>">
-							<?php /*foreach ($var['vari'] as $kv => $vari)*/ { 
-								if ($vari['aktiv'] == "1") { $j ++; ?>
+							<?php foreach ($var['arVariation'] as $kv => $vari) { $j = -1;
+								if ($vari['active'] == "1") { $j++; ?>
 									<?php if (!$this->hasMod('wpsg_mod_stock') || $vari['stock'] > 0 || $this->get_option('wpsg_mod_vp_showProduct') === '1') { ?>
 											
@@ -50,11 +52,11 @@
 										<?php if (!$this->hasMod('wpsg_mod_stock') || $vari['stock'] > 0) { ?>
 										
-											<option value="<?php echo $kv; ?>" <?php echo (($this->view['wpsg_mod_productvariants']['set'][$k] == $kv)?'selected="selected"':''); ?>>						
+											<option value="<?php echo $kv; ?>" <?php echo ((wpsg_getStr($this->view['wpsg_mod_productvariants']['set'][$j]) == $kv)?'selected="selected"':''); ?>>						
 											<?php echo $vari['name']; ?>
 												
 												<?php /* Abfrage Preisanzeige nur fÃŒr eingeloggte Benutzer START */?>
 												<?php if (($this->callMod('wpsg_mod_kundenverwaltung', 'isLoggedIn') && ($this->get_option('wpsg_mod_kundenverwaltung_preisAnzeige') == '1')) || ($this->get_option('wpsg_mod_kundenverwaltung_preisAnzeige') == '0')) { ?>			
-													<?php if ($this->callMod('wpsg_mod_productvariants', 'showVariPrice', array($vari['preis']))) { ?>
-														(<?php echo wpsg_ff($vari['preis'], $this->get_option('wpsg_currency')); ?>)
+													<?php if ($this->callMod('wpsg_mod_productvariants', 'showVariPrice', array($vari['price']))) { ?>
+														(<?php echo wpsg_ff($vari['price'], $this->get_option('wpsg_currency')); ?>)
 													<?php } ?>
 												<?php }else{?>
@@ -68,6 +70,6 @@
 											<option disabled="disabled" value="<?php echo $kv; ?>" <?php echo (($this->view['wpsg_mod_productvariants']['set'][$k] == $kv)?'selected="selected"':''); ?>>						
 												<?php echo $vari['name']; ?>
-												<?php if ($this->callMod('wpsg_mod_productvariants', 'showVariPrice', array($vari['preis']))) { ?>
-													(<?php echo wpsg_ff($vari['preis'], $this->get_option('wpsg_currency')); ?>)
+												<?php if ($this->callMod('wpsg_mod_productvariants', 'showVariPrice', array($vari['price']))) { ?>
+													(<?php echo wpsg_ff($vari['price'], $this->get_option('wpsg_currency')); ?>)
 												<?php } ?>
 											</option>
@@ -80,10 +82,10 @@
 							<?php if ($this->get_option("wpsg_vp_showpic") == "1" && $this->hasMod('wpsg_mod_produktbilder')) { ?>
 								<span class="wpsg_vp_field_image">				
-									<?php foreach ($var['vari'] as $kv => $vari) { 
-										if ($vari['aktiv'] == "1" && isset($vari['showpic'])) { ?>
+									<?php foreach ($var['arVariation'] as $kv => $vari) { 
+										if ($vari['active'] == "1" && isset($vari['showpic'])) { ?>
 											<span class="wpsg_vp_image wpsg_vp_image_<?php echo $kv; ?>" style="display:<?php echo (($this->view['wpsg_mod_productvariants']['set'][$k] == $kv)?'block':'none'); ?>;">
 												
 												<?php 
-													
+												/*
 												$img_src = $this->callMod('wpsg_mod_produktbilder', 'makeTn', array(
 													$this->getProduktId($this->view['data']['id']), 
@@ -93,6 +95,9 @@
 													's'
 												));
-													
-												?><img src="<?php echo $img_src; ?>" alt="" />
+												*/
+												$pbw = $this->get_option("wpsg_vp_showpic_width");
+												$pbh = $this->get_option("wpsg_vp_showpic_height");
+												$img_src = $vari['guid'];
+												?><img src="<?php echo $img_src; ?>" width="<?php echo $pbw; ?>" height="<?php echo $pbh; ?>" alt="" />
 																		
 											</span>
@@ -107,11 +112,14 @@
 					<?php if ($var['typ'] == 'image' && $this->hasMod('wpsg_mod_produktbilder')) { ?>
 						<div class="wpsg_mod_varianten_imageselect wpsg_mod_varianten_imageselect_<?php echo $k; ?>">
-						<input type="hidden" name="wpsg_vp[<?php echo $k; ?>]" value="<?php echo $this->view['wpsg_mod_productvariants']['set'][$k]; ?>" />
-							<?php foreach ($var['vari'] as $kv => $vari) { 
-								if ($vari['aktiv'] == '1' && (!$this->hasMod('wpsg_mod_stock') || $vari['stock'] > 0)) { ?>
-									<?php $img = $this->callMod('wpsg_mod_productvariants', 'getImageSelectImage', array($this->getProduktId($this->view['data']['id']), $k, $kv, $this->view['data']['product_key'])); ?>								
-									<?php if (wpsg_isSizedString($img)) { ?>
-										<a data-wpsg-id="<?php echo $kv; ?>" class="image <?php echo (($this->view['wpsg_mod_productvariants']['set'][$k] == $kv)?'akt':''); ?>" onclick="jQuery(this).parent().find('a').removeClass('akt'); jQuery(this).addClass('akt'); wpsg_vp_switch(<?php echo $this->getProduktId($this->view['data']['id']); ?>, <?php echo $this->view['product_index']; ?>); return false;" href="#">
-											<img src="<?php echo $this->callMod('wpsg_mod_produktbilder', 'makeTn', array($this->getProduktId($this->view['data']['id']), $img, $this->get_option('wpsg_vp_imageselect_width'), $this->get_option('wpsg_vp_imageselect_height'), $this->get_option('wpsg_vp_imageselect_mode'))); ?>" />
+						<input type="hidden" name="wpsg_vp[<?php echo $k; ?>]" value="<?php echo wpsg_getStr($this->view['wpsg_mod_productvariants']['set'][$k]); ?>" />
+							<?php $kkv = -1; foreach ($var['arVariation'] as $kv => $vari) { $kkv++;
+								if ($vari['active'] == '1' && (!$this->hasMod('wpsg_mod_stock') || $vari['stock'] > 0)) { ?>
+									<?php $img = $vari['guid']; ?>								
+									<?php if (wpsg_isSizedString($img)) { 
+										$pbw = $this->get_option('wpsg_vp_imageselect_width');
+										$pbh = $this->get_option('wpsg_vp_imageselect_height');
+									?>
+										<a data-wpsg-id="<?php echo $kv; ?>" class="image <?php echo ((wpsg_getStr($this->view['wpsg_mod_productvariants']['set'][$k]) == $kv)?'akt':''); ?>" onclick="jQuery(this).parent().find('a').removeClass('akt'); jQuery(this).addClass('akt'); wpsg_vp_switch(<?php echo $this->getProduktId($this->view['data']['id']); ?>, <?php echo $this->view['product_index']; ?>); return false;" href="#">
+											<img src="<?php echo $img; ?>" width="<?php echo $pbw; ?>" height="<?php echo $pbh; ?>"/>
 										</a>
 									<?php } ?>
@@ -123,10 +131,13 @@
 					<?php /* Radio-Buttons START */ ?>
 					<?php if ($var['typ'] == "radio") { ?>			
-						<?php $j = 0; foreach ($var['vari'] as $kv => $vari) { if ($vari['aktiv'] == "1") { $j ++; ?>
+						<?php $j = 0; foreach ($var['arVariation'] as $kv => $vari) { if ($vari['active'] == "1") { $j ++; ?>
 							<?php if (!$this->hasMod('wpsg_mod_stock') || $vari['stock'] > 0 || $this->get_option('wpsg_mod_vp_showProduct') === '1') { ?>					
 								<label>
 								
 									<?php if (!$this->hasMod('wpsg_mod_stock') || $vari['stock'] > 0) { ?>
-										<input <?php echo (($this->view['wpsg_mod_productvariants']['set'][$k] == $kv)?'checked="checked"':''); ?> id="wpsg_vpfield_<?php echo $this->getProduktId($this->view['data']['id']); ?>_<?php echo $k; ?>_<?php echo $j; ?>" onclick="wpsg_vp_switch(<?php echo $this->getProduktId($this->view['data']['id']); ?>, <?php echo $this->view['product_index']; ?>);" type="radio" name="wpsg_vp[<?php echo $k; ?>]" value="<?php echo $kv; ?>" />&nbsp;<?php echo $vari['name']; ?>
+										<input <?php echo ((wpsg_getStr($this->view['wpsg_mod_productvariants']['set'][$kk]) == $kv)?'checked="checked"':''); ?> 
+										id="wpsg_vpfield_<?php echo $this->getProduktId($this->view['data']['id']); ?>_<?php echo $k; ?>_<?php echo $j; ?>" 
+										onclick="wpsg_vp_switch(<?php echo $this->getProduktId($this->view['data']['id']); ?>, <?php echo $this->view['product_index']; ?>);" 
+										type="radio" name="wpsg_vp[<?php echo $k; ?>]" value="<?php echo $kv; ?>" />&nbsp;<?php echo $vari['name']; ?>
 									<?php /* Lagerbestand der Variante=0 - wird angezeigt, ist aber nicht auswÃ€hlbar */ ?>
 									<?php } else { ?>
@@ -137,6 +148,6 @@
 									<?php if (($this->callMod('wpsg_mod_kundenverwaltung', 'isLoggedIn') && ($this->get_option('wpsg_mod_kundenverwaltung_preisAnzeige') == '1')) || ($this->get_option('wpsg_mod_kundenverwaltung_preisAnzeige') == '0')) { ?>			
 							
-										<?php if ($this->callMod('wpsg_mod_productvariants', 'showVariPrice', array($vari['preis']))) { ?>
-											<span class="wpsg_vp_vari_preisinfo">(<?php echo wpsg_ff($vari['preis'], $this->get_option('wpsg_currency')); ?>)</span>
+										<?php if ($this->callMod('wpsg_mod_productvariants', 'showVariPrice', array($vari['price']))) { ?>
+											<span class="wpsg_vp_vari_preisinfo">(<?php echo wpsg_ff($vari['price'], $this->get_option('wpsg_currency')); ?>)</span>
 										<?php } ?>
 										
@@ -150,5 +161,5 @@
 										
 											<?php 
-													
+											/*
 											$img_src = $this->callMod('wpsg_mod_produktbilder', 'makeTn', array(
 												$this->getProduktId($this->view['data']['id']), 
@@ -158,7 +169,11 @@
 												's'
 											));
-									
-											?><img src="<?php echo $img_src; ?>" alt="" />
-								
+											*/
+											
+											$pbw = $this->get_option("wpsg_vp_showpic_width");
+											$pbh = $this->get_option("wpsg_vp_showpic_height");
+											$img_src = $vari['guid'];
+											?><img src="<?php echo $img_src; ?>" width="<?php echo $pbw; ?>" height="<?php echo $pbh; ?>" alt="" />
+											
 										</span>
 										<?php } /* if image */ ?>		
@@ -169,5 +184,5 @@
 
 					<?php /* Checkboxen START */ ?>
-					<?php if ($var['typ'] == "checkbox" && $var['aktiv'] == 1) { ?>
+					<?php if ($var['typ'] == "checkbox" && $var['active'] == 1) { ?>
 					<label>
 						<input onchange="wpsg_vp_switch(<?php echo $this->getProduktId($this->view['data']['id']); ?>, <?php echo $this->view['product_index']; ?>);" type="hidden" value="0" name="wpsg_vp[<?php echo $k; ?>]" />
@@ -175,6 +190,6 @@
 						<?php /* Abfrage Preisanzeige nur fÃŒr eingeloggte Benutzer START */?>
 						<?php if (($this->callMod('wpsg_mod_kundenverwaltung', 'isLoggedIn') && ($this->get_option('wpsg_mod_kundenverwaltung_preisAnzeige') == '1')) || ($this->get_option('wpsg_mod_kundenverwaltung_preisAnzeige') == '0')) { ?>
-							<?php if ($this->callMod('wpsg_mod_productvariants', 'showVariPrice', array($var['preis']))) { ?>
-								<span class="wpsg_vp_vari_preisinfo">(<?php echo wpsg_ff($var['preis'], $this->get_option('wpsg_currency')); ?>)</span>
+							<?php if ($this->callMod('wpsg_mod_productvariants', 'showVariPrice', array($var['price']))) { ?>
+								<span class="wpsg_vp_vari_preisinfo">(<?php echo wpsg_ff($var['price'], $this->get_option('wpsg_currency')); ?>)</span>
 							<?php } ?>
 						<?php } else {?>
@@ -187,5 +202,5 @@
 
 							<?php
-
+							/*
 							$img_src = $this->callMod('wpsg_mod_produktbilder', 'makeTn', array(
 								$this->getProduktId($this->view['data']['id']),
@@ -195,6 +210,10 @@
 								's'
 							));
-
-							?><img src="<?php echo $img_src; ?>" alt="" />
+							*/
+							$pbw = $this->get_option("wpsg_vp_showpic_width");
+							$pbh = $this->get_option("wpsg_vp_showpic_height");
+							$img_src = $vari['guid'];
+							?><img src="<?php echo $img_src; ?>" width="<?php echo $pbw; ?>" height="<?php echo $pbh; ?>" alt="" />
+														
 						</span>
 						<?php } ?>
@@ -207,5 +226,5 @@
             </div>
 
-		<?php } /* $var['aktiv'] == "1" */ ?>
+		<?php } /* $var['active'] == "1" */ ?>
 	<?php } /* foreach ($this->view['data']['vp_data'] as $k => $var) */ ?>
 <?php } /* $vAktiv = false; ENDE */ ?>
Index: /views/mods/mod_productvariants/stock2.phtml
===================================================================
--- /views/mods/mod_productvariants/stock2.phtml	(revision 6149)
+++ /views/mods/mod_productvariants/stock2.phtml	(revision 6149)
@@ -0,0 +1,59 @@
+<?php
+
+	/**
+	 * HTML Teil fÃŒr die Produktvariablenverwaltung
+	 * (GLOBAL und Produktbezogen)
+	 */
+
+?>
+
+<div id="wpsg_mod_productvariants_dialog_modal" class="modal fade" tabindex="-1" role="dialog">
+	<div class="modal-dialog" role="document">
+		<div class="modal-content">
+			<div class="modal-header">
+				<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
+				<h4 class="modal-title"><?php echo __('Produktvariation bearbeiten', 'wpsg'); ?></h4>
+			</div>
+			<div class="modal-body">
+
+			</div>
+			<div class="modal-footer">
+
+				<button type="button" class="btn-sm wpsg_mod_productvariants_variation_add_button btn btn-default" id="wpsg_mod_productvariants_variation_add_button" style="display:none;" onclick="return wpsg_mod_productvariants_variation_add();"><span class="glyphicon glyphicon-plus"></span>&nbsp;<?php echo __('Neue Variation', 'wpsg'); ?></button>
+				<button type="button" class="btn-sm wpsg_mod_productvariants_variants_close wpsg_mod_productvariants_variants_vari btn btn-default" style="display:none;" onclick="return wpsg_mod_productvariants_back();"><span class="glyphicon glyphicon-remove"></span>&nbsp;<?php echo __('SchlieÃen', 'wpsg'); ?></button>
+
+			</div>
+		</div>
+	</div>
+</div>
+
+<script type="text/javascript">/* <![CDATA[ */
+
+	function wpsg_mod_productvariants_show(product_id)
+	{
+
+		jQuery('#wpsg_mod_productvariants_dialog button').prop('disabled', true);
+		jQuery('#wpsg_mod_productvariants_dialog .modal-body').html('<img src="<?php echo WPSG_URL; ?>views/gfx/ajax-loader.gif" alt="<?php echo __('Bitte warten ...', 'wpsg'); ?>" />');
+		 
+		jQuery.ajax( {
+			url: '<?php echo WPSG_URL_WP; ?>wp-admin/admin.php?page=wpsg-Admin&action=module&modul=wpsg_mod_productvariants&noheader=1',
+			data: {  
+				'subaction': 'admin_show',
+				'product_id': product_id
+			},
+			success: function(data) { 
+
+				jQuery('.wpsg_mod_productvariants_variants').show();
+				jQuery('.wpsg_mod_productvariants_variants_vari').hide();
+				
+				jQuery('#wpsg_mod_productvariants_dialog .modal-body').html(data);
+				jQuery('#wpsg_mod_productvariants_dialog button').prop('disabled', false); 
+
+			}
+    	} ); 
+		 
+		return false;
+		
+	} // function wpsg_mod_productvariants_show()
+
+/* ]]> */</script>
Index: /views/mods/mod_productvariants/stockVarianten.phtml
===================================================================
--- /views/mods/mod_productvariants/stockVarianten.phtml	(revision 6149)
+++ /views/mods/mod_productvariants/stockVarianten.phtml	(revision 6149)
@@ -0,0 +1,59 @@
+<?php
+
+	/**
+	 * Template um eine Variante zu bearbeiten
+	 */
+
+?>
+
+<?php if (wpsg_isSizedArray($this->view['arVariant'])) { ?>
+
+	<table class="table wpsg_mod_productvariants_table_variation">
+    	<tbody >
+
+    	<?php foreach ($this->view['arVariant'] as $var) { ?>
+    		<tr>    		
+    		
+    			<td class="col_shortname" colspan="3"><?php echo wpsg_hspc($var['name']); ?></td>
+
+    			
+    		</tr>
+    		<?php foreach ($var['arVariation'] as $vari) {  ?>
+	    		<tr>    		
+    			<td class="col_active">
+    			</td>
+    			<?php 
+    			$txt = wpsg_hspc($vari['name']).' : '.wpsg_hspc($vari['stock']);
+    			 
+    			?>
+    			<td class="col_shortname"><?php echo $txt; ?></td>
+    			<td class="col_1">
+    			</td>
+
+				</tr>
+			<?php } ?>
+    	<?php } ?>    	
+
+    	</tbody>
+    </table>
+
+	<script type="text/javascript">/* <![CDATA[ */
+
+		
+	function wpsg_vp_ajaxloading_show()
+	{
+
+		jQuery('.wpsg_mod_productvariants_ajaxloading').show();
+		
+	}
+
+	function wpsg_vp_ajaxloading_hide()
+	{
+
+		jQuery('.wpsg_mod_productvariants_ajaxloading').hide();
+		
+	} 
+
+	/* ]]> */</script> 
+    
+<?php } ?>
Index: /views/order/index.phtml
===================================================================
--- /views/order/index.phtml	(revision 6148)
+++ /views/order/index.phtml	(revision 6149)
@@ -230,5 +230,5 @@
                             <?php if ($oOrder->hasShippingAdress()) { ?>
                                 <br />
-                                <?php echo $oOrder->getShippingTitle(); ?><?php echo $oOrder->getShippingFirstName(); ?> <?php echo $oOrder->getShippingName(); ?><br />
+                                <?php echo $oOrder->getShippingTitle(); ?> <?php echo $oOrder->getShippingFirstName(); ?> <?php echo $oOrder->getShippingName(); ?><br />
                                 <span class="wpsg_grey">
                                     <?php echo $oOrder->getShippingStreet(); ?>
Index: /views/produkt/index.phtml
===================================================================
--- /views/produkt/index.phtml	(revision 6148)
+++ /views/produkt/index.phtml	(revision 6149)
@@ -172,7 +172,7 @@
                            		<?php }?>
                             </div>                            
-                            <?php if ($this->hasMod('wpsg_mod_varianten')) $arVarianten = $this->callMod('wpsg_mod_varianten', 'loadVarianten', array($d['id'])); if (wpsg_isSizedArray($arVarianten)) { ?>
+                            <?php if ($this->hasMod('wpsg_mod_productvariants')) $arVarianten = $this->callMod('wpsg_mod_productvariants', 'getVariants', array($d['id'], true, true, true)); if (wpsg_isSizedArray($arVarianten)) { ?>
                             <div style="line-height:inherit; padding:2px 0px 0px;">
-                                <a class="clueTip" href="#" rel="<?php echo WPSG_URL_WP; ?>wp-admin/admin.php?page=wpsg-Produkt&action=ajax&mod=wpsg_mod_stock&edit_id=<?php echo $d['id']; ?>&noheader=1&wpsg_cmd=getVariInfo"><?php echo __('Variantenbestand', 'wpsg'); ?></a>
+                                <a class="clueTip" rel="#" href="<?php echo WPSG_URL_WP; ?>wp-admin/admin.php?page=wpsg-Produkt&action=ajax&mod=wpsg_mod_stock&edit_id=<?php echo $d['id']; ?>&noheader=1&wpsg_cmd=getVariInfo"><?php echo __('Variantenbestand', 'wpsg'); ?></a>
                             </div>
                             <?php } ?>
Index: /views/warenkorb/basket.phtml
===================================================================
--- /views/warenkorb/basket.phtml	(revision 6148)
+++ /views/warenkorb/basket.phtml	(revision 6149)
@@ -12,5 +12,8 @@
 <div class="wpsg wpsg_basket <?php echo ((isset($_REQUEST['wpsg_basket_ajax']))?'wpsg_basket_ajax':''); ?>">
 	
+	<?php if ($this->hasMod('wpsg_mod_onepagecheckout') && ($this->get_option('wpsg_mod_onepagecheckout_basket') == 1)) { ?>
+	<?php } else {?>
 	<?php echo $this->writeFrontendMessage(); ?>
+	<?php } ?>
 	
 	<?php $this->callMods('basket_top'); ?>
@@ -18,7 +21,12 @@
 	<?php if (sizeof($this->view['basket']['produkte']) > 0) { ?>
 
-	<?php $GLOBALS['step'] = 1; $this->render(WPSG_PATH_VIEW.'/warenkorb/progress.phtml'); ?>
-		
+	<?php if ($this->hasMod('wpsg_mod_onepagecheckout') && ($this->get_option('wpsg_mod_onepagecheckout_basket') == 1)) { ?>
+	<?php } else {?> 
+		<?php $GLOBALS['step'] = 1; $this->render(WPSG_PATH_VIEW.'/warenkorb/progress.phtml'); ?>
+	<?php } ?> 
+
+	<?php if (!isset($this->view['noFormTag'])) { ?>	
 	<form id="wpsg_basket_form" name="wpsg_basket_form"  method="post" action="<?php echo $this->getURL(wpsg_ShopController::URL_CHECKOUT); ?>">
+	<?php } ?>
 	
 		<h2><?php echo __('Bestellte Produkte', 'wpsg'); ?></h2>
@@ -158,5 +166,5 @@
 					<?php } ?>
 					<?php if ($this->get_option('wpsg_hideBasketCountrySelect') != '1') { ?>
-					<select name="set_land" class="wpsg_form_submit set_land">
+					<select name="set_land" id="set_land" class="wpsg_form_submit set_land">
 						<?php foreach ($this->view['arLander'] as $l_id => $l) { ?>
 						<option <?php echo (($l_id == $this->getFrontendCountry(true))?'selected="selected"':''); ?> value="<?php echo $l_id; ?>"><?php echo wpsg_hspc(__($l, 'wpsg')); ?></option>
@@ -284,15 +292,19 @@
 		
 		<input type="submit" class="wpsg_button wpsg_refreshbutton" value="<?php echo __('aktualisieren', 'wpsg'); ?>" name="wpsg_basket_refresh" />
-		<input type="submit" class="wpsg_button wpsg_checkoutbutton" value="<?php echo __('zur Kasse', 'wpsg'); ?>" name="wpsg_checkout" />
-		
-		<br /><br />
-		
-		<a href="<?php echo WPSG_URL_WP;?>" class="wpsg_basket_weiter_shoppen"><?php echo __('weiter shoppen', 'wpsg'); ?></a>  	
-					
+		<?php if ($this->hasMod('wpsg_mod_onepagecheckout') && ($this->get_option('wpsg_mod_onepagecheckout_basket') == 1)) { ?>
+		<?php } else { ?>
+			<input type="submit" class="wpsg_button wpsg_checkoutbutton" value="<?php echo __('zur Kasse', 'wpsg'); ?>" name="wpsg_checkout" />
+			
+			<br /><br />
+			
+			<a href="<?php echo WPSG_URL_WP;?>" class="wpsg_basket_weiter_shoppen"><?php echo __('weiter shoppen', 'wpsg'); ?></a>
+		<?php } ?>	
 		<div class="wpsg_clear"></div>
 			
 		<?php $this->ClearSessionErrors(); ?>
-			
+		
+	<?php if (!isset($this->view['noFormTag'])) { ?>	
 	</form>
+	<?php } ?>
 	
 	<?php $this->callMods('basket_after', array(&$this->view)); ?>
@@ -327,4 +339,15 @@
 		} );
 
+		jQuery('#set_land').bind('change', function() {
+			  
+			land = jQuery('#set_land').val();
+			jQuery('#wpsg_land').val(land);
+		
+		} );
+
+		// Land der Rechnungsadresse setzen
+		land = jQuery('#set_land').val();
+		jQuery('#wpsg_land').val(land);
+		
 	} );
 
Index: /views/warenkorb/overview.phtml
===================================================================
--- /views/warenkorb/overview.phtml	(revision 6148)
+++ /views/warenkorb/overview.phtml	(revision 6149)
@@ -13,5 +13,8 @@
 	<?php echo $this->writeFrontendMessage(); ?>
 
-	<?php $GLOBALS['step'] = 4; $this->render(WPSG_PATH_VIEW.'/warenkorb/progress.phtml'); ?>
+	<?php if ($this->hasMod('wpsg_mod_onepagecheckout') && ($this->get_option('wpsg_mod_onepagecheckout_basket') == 1)) { ?>
+	<?php } else {?>
+		<?php $GLOBALS['step'] = 4; $this->render(WPSG_PATH_VIEW.'/warenkorb/progress.phtml'); ?>
+	<?php } ?>
 
 	<form method="post" action="<?php echo $this->getURL(wpsg_ShopController::URL_BASKET); ?>">
@@ -43,4 +46,8 @@
 		</div>
 		
+		<?php
+			$arAnrede = explode('|', $this->get_option('wpsg_admin_pflicht')['anrede_auswahl']);
+		?>
+		
 		<?php if (wpsg_getStr($this->view['basket']['checkout']['diff_shippingadress']) == '1') { ?>
 		<div class="anschrift">
@@ -51,5 +58,5 @@
 			<?php echo wpsg_hspc($this->view['basket']['checkout']['firma']); ?><br />
 			<?php } ?>
-			<?php echo wpsg_hspc(($this->view['basket']['checkout']['title'] != '' && $this->view['basket']['checkout']['title'] != '-1')?$this->view['basket']['checkout']['title']:''); ?> <?php echo wpsg_hspc($this->view['basket']['checkout']['vname']); ?> <?php echo wpsg_hspc($this->view['basket']['checkout']['name']); ?><br />
+			<?php echo wpsg_hspc(($this->view['basket']['checkout']['title'] != '' && $this->view['basket']['checkout']['title'] != '-1')?$arAnrede[$this->view['basket']['checkout']['title']]:''); ?> <?php echo wpsg_hspc($this->view['basket']['checkout']['vname']); ?> <?php echo wpsg_hspc($this->view['basket']['checkout']['name']); ?><br />
 			<?php echo wpsg_hspc($this->view['basket']['checkout']['strasse']); ?><br />
 			<?php echo wpsg_hspc($this->view['basket']['checkout']['plz']); ?> <?php echo wpsg_hspc($this->view['basket']['checkout']['ort']); ?><br />
@@ -67,5 +74,5 @@
 			<?php echo wpsg_hspc($this->view['basket']['checkout']['shipping_firma']); ?><br />
 			<?php } ?>
-			<?php echo (($this->view['basket']['checkout']['shipping_title'] != '' && $this->view['basket']['checkout']['shipping_title'] != '-1')?$this->view['basket']['checkout']['shipping_title']:''); ?> <?php echo wpsg_hspc($this->view['basket']['checkout']['shipping_vname']); ?> <?php echo wpsg_hspc($this->view['basket']['checkout']['shipping_name']); ?><br />
+			<?php echo (($this->view['basket']['checkout']['shipping_title'] != '' && $this->view['basket']['checkout']['shipping_title'] != '-1')?$arAnrede[$this->view['basket']['checkout']['shipping_title']]:''); ?> <?php echo wpsg_hspc($this->view['basket']['checkout']['shipping_vname']); ?> <?php echo wpsg_hspc($this->view['basket']['checkout']['shipping_name']); ?><br />
 			<?php echo wpsg_hspc($this->view['basket']['checkout']['shipping_strasse']); ?><br />
 			<?php echo wpsg_hspc($this->view['basket']['checkout']['shipping_plz']); ?> <?php echo wpsg_hspc($this->view['basket']['checkout']['shipping_ort']); ?><br />
@@ -80,10 +87,14 @@
 		<div class="anschrift">
 			<div class="subtitle"><?php echo __('Liefer- und Rechnungsanschrift', 'wpsg'); ?>&nbsp;
-				<span class="sublink"><?php echo wpsg_translate(__('[<a href="#1#">Ãndern</a>]', 'wpsg'), $this->getURL(wpsg_ShopController::URL_CHECKOUT)); ?></span>
+				<?php if ($this->hasMod('wpsg_mod_onepagecheckout') && ($this->get_option('wpsg_mod_onepagecheckout_basket') == 1)) { ?>
+				<span class="sublink"><?php echo wpsg_translate(__('[<a href="#1#">Ãndern</a>]', 'wpsg'), $this->getURL(wpsg_ShopController::URL_CHECKOUT)); ?></span>
+				<?php } else { ?>
+				<span class="sublink"><?php echo wpsg_translate(__('[<a href="#1#">Ãndern</a>]', 'wpsg'), $this->getURL(wpsg_ShopController::URL_CHECKOUT)); ?></span>
+				<?php } ?>
 			</div>
 			<?php if (trim($this->view['basket']['checkout']['firma']) != '') { ?>			
 			<?php echo wpsg_hspc($this->view['basket']['checkout']['firma']); ?><br />
 			<?php } ?>
-			<?php echo wpsg_hspc(($this->view['basket']['checkout']['title'] != '' && $this->view['basket']['checkout']['title'] != '-1')?$this->view['basket']['checkout']['title']:''); ?> <?php echo $this->view['basket']['checkout']['vname']; ?> <?php echo $this->view['basket']['checkout']['name']; ?><br />
+			<?php echo wpsg_hspc(($this->view['basket']['checkout']['title'] != '' && $this->view['basket']['checkout']['title'] != '-1')?$arAnrede[$this->view['basket']['checkout']['title']]:''); ?> <?php echo $this->view['basket']['checkout']['vname']; ?> <?php echo $this->view['basket']['checkout']['name']; ?><br />
 			<?php echo wpsg_hspc($this->view['basket']['checkout']['strasse']); ?><br />
 			<?php echo wpsg_hspc($this->view['basket']['checkout']['plz']); ?> <?php echo wpsg_hspc($this->view['basket']['checkout']['ort']); ?><br />
