if(typeof $j == "undefined") var $j=jQuery.noConflict();

$j.ajaxSetup({
   url: "/bs_ajax.php",
   type: "POST",
   cache: false,
   dataType: 'json'
});
// @todo: discounts aufräumen
var Cashbox = {

   action : false,

   vat_exempt : 0,
   net_prices : 0,

   liespeprob : 0,

   mlm_field_1 : false,
   mlm_field_2 : false,
   mlm_field_3 : false,

   bonus_points : false,

   errors : new Array(),
   error : "",

   sum_net 							: new Array(),
   sum_gross 						: new Array(),
   sum_summe 						: new Object(),
   sum_total_basket 				: new Object(),
   sum_sum_discount 				: new Array(),
   discounts 						: new Object(),
   sum_sum_vouchers 				: new Array(),
   vouchers  						: new Object(),
   total_sum 						: new Object(),
   sum_method_of_payment 			: 0,
   sum_method_of_payment_by_basekt 	: new Object(),

   no_shipping_type_needed : new Object(),

   shipping_types : new Object(),
   shipping_costs : new Object(),

   abo_states : new Object(),

   edit_address : false,
   saveOk : false,

   payment_params : new Object(),
   payment_costs : new Object(),

   typeOfRounding : false,
   id_method_of_payment : 0,
   arr_method_of_payment : new Object(),
   newWindowEdit : false,

   /**
	* gueltige Zahlungstechniken
	**/
   valid_payment_technique_keys : [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60],

   /**
	* Versandart <> gueltige Zahlungstechnik
	**/
   shipping_type_payment_techniques : new Object(),
   payment_techniques : new Object(),


   loadAfterClose : "/shop.php?show_startpage=true", // link nach schließen der Cashbox

   price: function(val) {
	   var rounding = false;
	   val = parseFloat(val);
	   if (Cashbox.typeOfRounding == true && Cashbox.price.arguments.length > 1) {
			val = Cashbox.roundForChf(val);
	   }
	   return '<nobr>'+ number_format(val.toFixed(2), 2, ',', '.') + " " + $j('#currency_html').html()+'</nobr>';
   },

   roundForChf : function(val) {
		val = (Math.round((20 * (val * 100 + 0.0000001) / 100), 0) / 20);

		return val;
   },

   percent: function(val){
	  return '<nobr>'+ number_format(parseFloat(val).toFixed(2), 2, ',', '.') + " %" + '</nobr>';
   },

   login: function(user,password){
	// anmeldung, ajax; hat sich durch cashbox_dialog erübrigt...
   },

   hideLogin: function(){
	  Cashbox.close_dialog('_login');
   },

   displayLogin: function(){
	  Cashbox.dialog("/bs_login.php",500,240,'_login',500);
   },

   post2session: function(formular_selector){
	  var post=new Object();
	  post=$j.extend(post,$j(formular_selector+' input').serializeArray());
	  //post=$j.extend(post,$j(formular_selector+' ').serializeArray());
	  //post=$j.extend(post,$j(formular_selector+' ').serializeArray());
	  /*+"&"
			   +$j(formular_selector+' :checkbox').serializeArray()+"&"
			   +$j(formular_selector+' :hidden').serializeArray(); //Cashbox.makeQueryObject(formular_selector);
	 */
	  var pdata=new Object({action: 'post2session',key: '___cashbox2_additional_post_data',postkeys: 'order,abo'});

	  $j.each(post,function(i,field){
		 pdata[field.name]=field.value;
	  });
	  //var pobj=new Object(data: stringify(pdata)});

	  $j.ajax({data:
			pdata,
		 success:function(response){

		  },
		  error:function (xhr, ajaxOptions, thrownError){
			Cashbox.ajaxError(xhr, ajaxOptions, thrownError);
		  }
	  });
   },

   setPayed: function(stat){
	  $j('#___payment_status').val((stat?'ok':'')); // hidden feld mit payment_status setzen>interne zahlungssysteme
   },

   reload: function(ms){
	  Cashbox.redirect(location.href+"&0",ms);
   },

   redirect: function(){
	  if(Cashbox.redirect.arguments.length>0) var url=Cashbox.redirect.arguments[0];
	  else var url=location.href+"&0";
	  if(Cashbox.redirect.arguments.length>1) var ms=Cashbox.redirect.arguments[1];
	  else var ms=200;
	  window.setTimeout("location.href='"+url+"'",ms);
   },

   reload_basket: function(vendor_id,data){
	  if($j('#basket_'+vendor_id)){
		 if(Cashbox.errors[vendor_id]!="") {
			$j('#errors_'+vendor_id).show();
			$j('#errors_'+vendor_id).html(Cashbox.errors[vendor_id]);
			Cashbox.errors[vendor_id]="";
		 }else $j('#errors_'+vendor_id).hide();
		 if(!data.positions)  return Cashbox.redirect(location.href+"&empty",50);
		 if(data.positions.length==0){
			if(window.opera)  return Cashbox.redirect(location.href+"&opera=true",50);
			else{
			   delete(Cashbox.sum_summe[vendor_id]);
			   $j('#basket_'+vendor_id).remove(); // basket leer, weg damit!
			   var baskets=trim($j('#basket_list').html());
			   window.status=baskets.length;
			   if(baskets.length==0){
				  // alle warenkörbe sind leer > seite neuladen...
				  Cashbox.reload(100);
			   }
			}
			return Cashbox.calculate_total();
		 }
		 //$j('#basket_'+vendor_id+' .vendor').css({backgroundImage:'url(/media/images/ajax-loader-mini.gif)',backgroundPosition:'2px',backgroundRepeat:'no-repeat'});

		 var sum_net=0;
		 var sum_gross=0;
		 var sum_vat=0;
		 var vat_sums=$j('.vat_sum_'+vendor_id);
		 var percent_sums_gross=new Object();
		 var sum_discount_net=0;
		 var sum_discount_gross=0;
		 var sum_voucher_net=0;
		 var sum_voucher_gross=0;
		 var tmp_sum=0;

		 jQuery.each(vat_sums,function(vid,o){
			// alle verfügbaren steuer-sätze nullen
			id = o.id.replace("_", ".");
			percent_sums_gross[id] = 0;
		 });

		 jQuery.each(data.positions, function(pos_id,pos_data){
			if(pos_data.sum_articles==0) Cashbox.deleteBasketRow(pos_id);
			else{
				//laden
			   if($j('#loading_pos_'+pos_id)) $j('#loading_pos_'+pos_id).show();
			   sum_net   += pos_data.sum_net;
			   sum_gross += pos_data.sum_gross;
			   sum_vat   += pos_data.sum_vat;

			   // Todo: hier prüfen ob net_price==1 noch etwas zu sagen hat...
			   // soweit ich weiß dient net_prices nur der ansicht im shop, hat aber keinen einfluss auf den "echten" preis.
			   if(Cashbox.vat_exempt==1 || Cashbox.net_prices == 1) tmp_sum=pos_data.sum_net;
			   else tmp_sum=pos_data.sum_gross;
			   //rabatte..

			   if(typeof percent_sums_gross['v'+pos_data.vat_percent+'_'+vendor_id]=='undefined')
				  percent_sums_gross['v'+pos_data.vat_percent+'_'+vendor_id] = 0;

			   percent_sums_gross['v'+pos_data.vat_percent+'_'+vendor_id]+=pos_data.sum_vat;

			   sum_discount_net+=pos_data.discount_sum_net;
			   sum_discount_gross+=pos_data.discount_sum_gross;

			   // Gutscheine
			   sum_voucher_net		+= pos_data.sum_vouchers_net;
			   sum_voucher_gross	+= pos_data.sum_vouchers_gross;

			   if(Cashbox.vat_exempt==1 || Cashbox.net_prices == 1){
				  if(pos_data.sum_discount_net > 0){
					  if($j('#pos_'+pos_id+'_discount')) $j('#pos_'+pos_id+'_discount').html(Cashbox.price(-1 * pos_data.sum_discount_net));
				  }
				  var single_price=pos_data.price_per_unit_net;
			   }else{
				  if(pos_data.sum_discount_gross > 0){
					  if($j('#pos_'+pos_id+'_discount')) $j('#pos_'+pos_id+'_discount').html(Cashbox.price(-1 * pos_data.sum_discount_gross));
				  }
				  var single_price=pos_data.price_per_unit_gross;
			   }

			   if($j('#pos_'+pos_id+'_single_price')) $j('#pos_'+pos_id+'_single_price').html(Cashbox.price(single_price));

			   // Summe
			   if($j('#pos_'+pos_id+'_sum')) $j('#pos_'+pos_id+'_sum').html(Cashbox.price(tmp_sum));

			   // optionale MLM Felder
			   if(Cashbox.mlm_field_1 && $j('#pos_'+pos_id+'_mlm_field_1')) $j('#pos_'+pos_id+'_mlm_field_1').html(number_format(pos_data.sum_field_1,2,',','.'));
			   if(Cashbox.mlm_field_2 && $j('#pos_'+pos_id+'_mlm_field_2')) $j('#pos_'+pos_id+'_mlm_field_2').html(number_format(pos_data.sum_field_2,2,',','.'));
			   if(Cashbox.mlm_field_3 && $j('#pos_'+pos_id+'_mlm_field_3')) $j('#pos_'+pos_id+'_mlm_field_3').html(number_format(pos_data.sum_field_3,2,',','.'));

			   if($j('#pos_sum_'+pos_id)) $j('#pos_sum_'+pos_id).val(pos_data.sum_articles)
			   // "ent"laden
			   if($j('#loading_pos_'+pos_id)) $j('#loading_pos_'+pos_id).hide();
			}


		 });

		 // Rabattierungen
		 if(data.discounted){
			Cashbox.update_discounts(vendor_id, data.discounts);
		 }

		 // Gutscheine
		 if (data.vouchered) {
			 jQuery('#voucher_tr_' + vendor_id).show();
			 Cashbox.update_voucher(vendor_id, data.vouchers);
		 } else {
			jQuery('#voucher_tr_' + vendor_id).hide();
		 }

		 if (data.voucherMinOrderValue) {
			 jQuery('#voucher_min_order_value').hide();
		 } else {
			jQuery('#voucher_min_order_value').show();
		 }

		 if(data.shipping_types && !Cashbox.no_shipping_type_needed[vendor_id]){
			$j('.shipping_type_'+vendor_id+'_layer').hide();
			jQuery.each(data.shipping_types, function(sti,st_data){
			   $j('#shipping_type_'+vendor_id+'_'+sti).show();
			   var stcsum=(Cashbox.vat_exempt ? Cashbox.price(st_data.costs) : Cashbox.price(st_data.costs_gross))
			   if(jQuery.browser.msie) {
					$j('shipping_type_cost_'+vendor_id+'_'+sti).innerHTML = stcsum;
			   } else {
				   $j('#shipping_type_cost_'+vendor_id+'_'+sti).html(stcsum);  //Funktioniert nicht im IE! http://docs.jquery.com/Attributes/html
			   }


			   if(Cashbox.shipping_types[vendor_id]==sti){
				  Cashbox.shipping_costs[vendor_id]=st_data.costs_gross;
				  $j('shipping_costs_'+vendor_id).innerHTML = Cashbox.price(st_data.costs_gross);
			   }
			   //alert(Cashbox.shipping_types[vendor_id] + " - " + sti);
			});

		 }

		 // Zahlungsartkosten einblenden
		var mopCharge = data.sum_method_of_payment;
		if (typeof mopCharge != "undefined") {
			if (mopCharge != 0 && jQuery('#cashbox_central_method_of_payment_' + vendor_id + ':visible').length > 0) {
				jQuery('#cashbox_central_method_of_payment_costs_' + vendor_id).html(Cashbox.price(mopCharge));

				Cashbox.sum_method_of_payment += mopCharge;
				Cashbox.sum_method_of_payment_by_basekt[vendor_id] = mopCharge;
			}
		}

		 if(Cashbox.vat_exempt==1){
			// ust befreit, zeige netto preise
			var summe=sum_net;
			var sum_discount=sum_discount_net;
			var sum_voucher=sum_voucher_net;
		 }
		 else{
			if(Cashbox.net_prices==1) var summe=sum_gross;
			else var summe=sum_gross; // siehe Todo in shopping_cart_type_2.inc
			var sum_discount=sum_discount_gross;
			var sum_voucher=sum_voucher_gross;
		 }



		 //alert(Cashbox.sum_sum_discount[vendor_id]+"="+data.sum_discount + " / "+sum_discount);

		 Cashbox.sum_net[vendor_id]				= sum_net; 			// ok
		 Cashbox.sum_gross[vendor_id]			= sum_gross; 		// ok
		 Cashbox.sum_summe[vendor_id]			= summe; 			// ok
		 Cashbox.sum_total_basket[vendor_id] 	= data.sum_total; 	// ok

		 Cashbox.sum_sum_discount[vendor_id] = data.sum_discount;
		 Cashbox.sum_sum_vouchers[vendor_id] = data.sum_voucher;

		 // Basissumme
		 if ($j('#base_sum_'+vendor_id)) {
			$j('#base_sum_'+vendor_id).html(Cashbox.price(data.summe))
		 };
		 //if($j('#discount_sum_'+vendor_id)) $j('#discount_sum_'+vendor_id).html(Cashbox.price(data.sum_discount));

		 // Totalsumme des WKs
		 if ($j('#total_'+vendor_id)) {
			$j('#total_'+vendor_id).html(Cashbox.price(data.sum_total));
		 }

		 jQuery.each(vat_sums,function(vid,o){
			 baseId = o.id.replace("_", ".");
			 htmlId = o.id.replace(".", "_");
			 $j('#'+htmlId).html(Cashbox.price(percent_sums_gross[htmlId]));
		 });

		 Cashbox.calculate_total();



		 // Gesamtsumme berechnen
		 //$j('#basket_'+vendor_id+' .vendor').css({backgroundImage:'none'});
	  }
   },

   // Rabatte aktualisieren
   update_discounts: function(vendor_id, discounts) {
	  /*jQuery.each(Cashbox.discounts, function(d,e)
	  {
		 alert(d + " => "+e);
	  });*/
	  Cashbox.discounts[vendor_id] = new Array();
	  jQuery.each(discounts, function(discount_id, discount_data){
			if(Cashbox.vat_exempt == 1 || Cashbox.net_prices == 1){
				Cashbox.discounts[vendor_id][discount_id] = discount_data.discount_net;
				if($j('#discount_sum_'+vendor_id+'_'+discount_id)) $j('#discount_sum_'+vendor_id+'_'+discount_id).html(Cashbox.price(-1 * discount_data.discount_net));
			} else {
				Cashbox.discounts[vendor_id][discount_id] = discount_data.discount_gross;
				if($j('#discount_sum_'+vendor_id+'_'+discount_id)) $j('#discount_sum_'+vendor_id+'_'+discount_id).html(Cashbox.price(-1 * discount_data.discount_gross));
			}

			if($j('#discount_percent_'+vendor_id+'_'+discount_id)) $j('#discount_percent_'+vendor_id+'_'+discount_id).html(Cashbox.percent(discount_data.discount_percent));
	  });
   },

   /**
   * Gutscheine aktualisieren
   */
   update_voucher: function(vendor_id, voucher) {
		Cashbox.vouchers[vendor_id] = new Array();
		if(Cashbox.vat_exempt == 1 || Cashbox.net_prices == 1) {
			Cashbox.vouchers[vendor_id] = voucher.net;
			if ($j('#voucher_sum_'+vendor_id)) {
				$j('#voucher_sum_'+vendor_id).html(Cashbox.price(-1 * voucher.net));
			}
		} else {
			Cashbox.vouchers[vendor_id] = voucher.gross;
			if ($j('#voucher_sum_'+vendor_id)) {
				$j('#voucher_sum_'+vendor_id).html(Cashbox.price(-1 * voucher.gross));
			}
		}
		/*
		if ($j('#voucher_percent_'+vendor_id)) {
			$j('#voucher_percent_'+vendor_id).html(Cashbox.percent(discount_data.discount_percent));
		}
		*/
   },


   load_basket: function(vendor){
	// warenkorb(e) laden; opt_argument[0] == lieferant

	if(typeof vendor == "undefined") var vendor=0;
	if(vendor<1) vendor='all';
	$j.ajax({data:
			   {
				  action: 'load',
				  vendor: vendor
			   },
			   success:function(response){
				  /* na was nun? */
				  jQuery.each(response,function(v_id,v_data){
					 Cashbox.reload_basket(v_id,v_data);
						Cashbox.action=false;
					 if(typeof Cashbox.shipping_types[v_id] != "undefined")
						Cashbox.changeDelivery(v_id,Cashbox.shipping_types[v_id],null,false);

					 if(vendor == 'all')
						Cashbox.changeMethodOfPayment();
				  });
				  //alert(response[vendor]);
				},
				error:function (xhr, ajaxOptions, thrownError){
				  Cashbox.ajaxError(xhr, ajaxOptions, thrownError);
						   Cashbox.action=false;
				}
			});
   },

   deletePos: function(id,vendor_id){
	  Cashbox.setSum(id,0,vendor_id,true);
   },

   deleteBasketRow: function(id){
	  if($j('#basket_pos_'+id)){
		 $j('#basket_pos_'+id).hideRow();
		 Cashbox.reload(20);
	  }
   },

   setSum: function(id,newAm,vendor_id,loadAll){
	  if(!Cashbox.action){
		 Cashbox.action=true;
		 if($j('#loading_pos_'+id)) $j('#loading_pos_'+id).show();
		   $j.ajax({data:
					 {
						action: 'adjustSum',
						id_ord_order_position: id,
						sum_articles: newAm
					 },
				  success:function(response){
					 if(response.error){
						Cashbox.errors[vendor_id]=response.error;
						Cashbox.action=false;
						Cashbox.load_basket(vendor_id);
					 }else{
						   if(newAm==0){
							  //artikel entfernen
							  Cashbox.action=false;
							  Cashbox.deleteBasketRow(id);
						  }
						   //$j('#pos_sum_'+id).val(newAm);
						   if(loadAll){
							  Cashbox.action=false;
							  Cashbox.load_basket();
						   }
						   else {
							  Cashbox.action=false;
							  Cashbox.load_basket(vendor_id);
						   }
					 }
				   },
				   error:function (xhr, ajaxOptions, thrownError){
					 Cashbox.ajaxError(xhr, ajaxOptions, thrownError);
				   }
			   });
	  }
   },

   adjustSum: function(id,amount,vendor_id){
	  if($j('#pos_sum_'+id)){
		 var newAm=Math.floor(parseInt($j('#pos_sum_'+id).val())+amount);
		 this.setSum(id,newAm,vendor_id);
	  }
   },

   confirm_abo: function(id_addr_address){
	  // Diese Funktion ist überflüssig...
	  return;
	  // Todo: ausserdem mal nachsehen ob man bei den Zahlungssystemen entsprechende abo-zahlungen gibt; zurückgestellt
	  //alert($j('input[name=abo['+id_addr_address+'][active]]'));
	 var abo_active = $j('input[name="abo['+id_addr_address+'][active]"]').is(':checked');
	 var abo_d_first = $j('input[name="abo['+id_addr_address+'][d_first_delivery]"]').val();

	 //alert(abo_active);
	// alert(abo_d_first);
   },

   close_dialog: function(u_id){
	  $j('.UID'+u_id).remove();
	  if(u_id=="wk" && Cashbox.loadAfterClose){
		 Cashbox.redirect(Cashbox.loadAfterClose);
	  }
	  if(Cashbox.close_dialog.arguments.length>1){
		 if(Cashbox.close_dialog.arguments[1]==true) Cashbox.redirect(Cashbox.loadAfterClose+'&'+u_id);
	  }
   },
   // url, w, h, u_id, z-index-add, attr, css
   dialog: function(url,w,h){

		 var sL = $j(window).scrollLeft();
		 var sT = $j(window).scrollTop();
		 var wW = $j(window).width();
		 var wH = $j(window).height();

		 if(w<0) w = wW + w;
		 if(h<0) h = wH + h;

		 var p_top = Math.round((wH - h) / 2);
		 if(p_top < 0) p_top = 10;

		 var p_left = Math.round((wW - w) / 2);
		 if(p_left < 0) p_left = 10;

		 if(Cashbox.dialog.arguments.length>4){
			var zI_g=Math.floor(3000+Cashbox.dialog.arguments[4]);
			var zI_o=Math.floor(2500+Cashbox.dialog.arguments[4]);
		 }else{
			var zI_g=3000;
			var zI_o=2500;
		 }

		 var gb=$j("<iframe frameborder='0' />");
		 if(Cashbox.dialog.arguments.length>3){
			gb.addClass('UID'+Cashbox.dialog.arguments[3]);
		 }
		 if(Cashbox.dialog.arguments.length>5){
			$j.each(Cashbox.dialog.arguments[5],function(_k,_v){
			   gb.attr(_k,_v);
			});
		 }else{
			gb.attr("id","cashbox_dialog");
		 }
		 gb.attr("src",url);
		 if(Cashbox.dialog.arguments.length>6){
			gb.css(Cashbox.dialog.arguments[6]);
		 }else{
			gb.css({
			 width: w+"px",
			 height: h+"px",
			 top: p_top+'px',
			 left: p_left+'px',
			 position: "fixed",
			 zIndex: zI_g,
			 backgroundColor: "#fff",
			 border: "1px solid #000"
		   });
		 }

		 if(isIEversion(6) || isIEversion(7) || isIEversion(8)) gb.css({position: "absolute"});


		 var boxclose=$j('<div />');
		 var imgclose=$j('<img />');
		 if(Cashbox.dialog.arguments.length>3){
			if(Cashbox.dialog.arguments[3]=='wk') {
				imgclose.attr('src','/media/images/cb2_dialog_close_wk.png');
				imgclose.attr('onclick', 'Cashbox.close_dialog(\'wk\');');
			} else {
				imgclose.attr('src','/media/images/cb2_dialog_close.png');
			}

			 imgclose.attr('alt','close');

			boxclose.addClass('closeUID'+Cashbox.dialog.arguments[3]);
		 boxclose.css({
			width:"50px",
			height:"50px",
			zIndex: Math.floor(zI_g+5),
			top: (p_top)+'px',
			left: (p_left+w+2)+'px',
			position: "fixed",
			border: "none",
			cursor: "pointer"
		 });
		 boxclose.append($j(imgclose));
		 //boxclose.attr('onclick',parent.Cashbox.close_dialog(""+Cashbox.dialog.arguments[3]+""));/*

		 var _arg=Cashbox.dialog.arguments[3];
		 boxclose.bind('click',function(e){
			Cashbox.close_dialog(_arg);
		 });
		 if(isIEversion(6) || isIEversion(7) || isIEversion(8)) boxclose.css({position: "absolute"});
		 }

		 var box=$j("<div />");
		 box.addClass('gb_container');
		// box.hide();
		 if(Cashbox.dialog.arguments.length>3){
			box.addClass('UID'+Cashbox.dialog.arguments[3]);
		 }

		 var overlay=$j("<div />");
		 overlay.addClass('gb_doverlay');
		 overlay.css({zIndex:zI_o,backgroundColor:'#ffffff',left:0,opacity:'0.7',position:'absolute',top:'0'});
		 //overlay.hide();
		 if(Cashbox.dialog.arguments.length>3){
			overlay.addClass('UID'+Cashbox.dialog.arguments[3]);
		 }
		 box.append($j(boxclose));
		 box.append($j(gb));

		 if(ie) $j(gb).attr("src",url);
		 if(isIEversion(6)) window.setTimeout("$j('.UID"+Cashbox.dialog.arguments[3]+"').attr('src','"+url+"');",50);

		 if(isIEversion(7) || isIEversion(6)){
			//window.setTimeout("$j('.UID"+Cashbox.dialog.arguments[3]+"').css({top:'"+p_top+"px'});",100);
			//window.setTimeout("$j('.UID"+Cashbox.dialog.arguments[3]+"').attr('frameborder','0');",1000);
		 }

		 if(isIEversion(6) || isIEversion(7) || isIEversion(8)) {
			overlay.width(($j('body').width()) + 'px');
			overlay.height($j('body').height() + 'px');
		 } else {
			overlay.width($j(document).width() + 'px');
			overlay.height($j(document).height() + 'px');
		 }
		 $j('body').append($j(overlay));
		 $j('body').append($j(box));
		 overlay.show();
		 box.show();
   },

   calculate_total: function(){
	  var tot=Cashbox.total();

	  //alert("calculate_total; Cashbox.total() =  " + tot );
		 var arr_methods_of_payment=$j('input[name="order[method_of_payment]"]');
		 $j.each(arr_methods_of_payment,function(n,e){
			var _params=Cashbox.payment_params[$j(e).val()];
			if(_params.id_account_amount){
			   //wenn das geld im id-konto nicht ausreicht...zahlungsmethode "ausblenden"
			   if(_params.id_account_amount<tot){
				  $j(e).attr("checked", false);
				  $j(e).hide();
			   }else{
				  $j(e).show();
			   }
			}
		 });
	  if(tot){
		 $j('#cashbox2_central_total_sum').html(Cashbox.price(tot, true));
		 $j('#cashbox2_central_total').show();
	  }else{
		 $j('#cashbox2_central_total').hide();
	  }
   },

   abo: function(id_addr_address, abo_active_field){
	  var state=false;
	  if($j(abo_active_field).is(':checked')){
		 $j('#abo_block_'+id_addr_address).show();
		 Cashbox.abo_states[id_addr_address]=1;
	  }
	  else{
		 $j('#abo_block_'+id_addr_address).hide();
		 Cashbox.abo_states[id_addr_address]=0;
	  }
	  Cashbox.aboChange(id_addr_address);

   },

   aboChange: function(id_addr_address){
	  if($j('#abo_'+id_addr_address+'_active').is(':checked')) var abo_active=1;
	  else var abo_active=0;
		$j.ajax({data:
			{
			   action: 'aboChange',
			   addr_address_id: id_addr_address,
			   active: abo_active,
			   d_first_delivery: $j('#abo_'+id_addr_address+'_d_first_delivery').val(),
			   d_last_delivery: $j('#abo_'+id_addr_address+'_d_last_delivery').val(),
			   interval_step: $j('#abo_'+id_addr_address+'_interval_step').val(),
			   interval_unit: $j('#abo_'+id_addr_address+'_interval_unit').val()
			},
			 success:function(response){
				  var abolist="";
				  $j.each(Cashbox.abo_states,function(e,n){
					 if(n==1) abolist+=","+e;
				  });
				  if((!Cashbox.abo_prices && abolist!="") || (Cashbox.abo_prices && abolist=="")){
					 var loc=location.href.replace(/abolist/,"oldal");
					 Cashbox.redirect(loc+"&abolist="+abolist,20);
				  }
				},
			   error:function (xhr, ajaxOptions, thrownError){
				  Cashbox.ajaxError(xhr, ajaxOptions, thrownError);
				}
			});
   },

   total: function(){
	  var _mops=$j('input[name="order[method_of_payment]"]:checked');
	  var error="";
	  var log = "";
	  //error+= CashboxTrans.please_select_payment_method+"<br />\n";
	  if(error.length==0){
		 if(_mops.length==0) var mops_key=$j(_mops).val();
		 var tot=0;
		 log+= "0";
		 $j.each(Cashbox.sum_summe,function(n,s){
			if(Cashbox.total.arguments.length == 1 && Cashbox.total.arguments[0] != n)
			{}
			else
			{
			//   tot+=s;
			//   tot2+=n;
			// Steuer Total
			/*var _vat_total = Cashbox.sum_gross[n] - Cashbox.sum_net[n];
			log+= "0";

			//alert(Cashbox.sum_gross[n] +"/"+ Cashbox.sum_net[n] +" _ "+_vat_total +" - " + Cashbox.sum_summe[n]);


			//alert(Cashbox.sum_net[n] + " gross " + Cashbox.sum_gross[n] + " _net " + _net + " vat " + _vat);

			//alert("+" + s);
					*/
			// Positionssumme
			// Steuersatz
			var _vat_rate  = (Cashbox.sum_gross[n] / Cashbox.sum_net[n]).toFixed(2);
			var _sub_sum = 0;

			shipping_c = Cashbox.shipping_costs[n];
			if (typeof shipping_c == "undefined") shipping_c = 0;

			_sub_sum += s + shipping_c;

			if(Cashbox.discounts[n].length > 0){
			   /*

			   });*/
			   if(typeof Cashbox.sum_sum_discount[n] == "undefined")
			   {
				  Cashbox.load_basket("all");
				  return;
				  $j.each(Cashbox.discounts[n],function(discount_id,discount_value){

					 if(Cashbox.vat_exempt == 1) var _net_disc = discount_value;
					 else var _net_disc = discount_value * _vat_rate;

					 _sub_sum-= _net_disc; //discount_value;
					 //alert(discount_value + " _ " + _net_disc + " = " + _sub_sum + "|"+Cashbox.sum_sum_discount[n]);
					 //alert(Cashbox.net_prices + " / " + Cashbox.vat_exempt + " | " + _sub_sum + " net disc: "+_net_disc + " = " + _sub_sum);

					 //alert("-" + discount_value);
				  });
			   }
			   else _sub_sum+=Cashbox.sum_sum_discount[n];
			   //alert(Cashbox.sum_sum_discount[n]);
			}

			// Gutscheine
			if (Cashbox.sum_sum_vouchers[n]) {
				_sub_sum += Cashbox.sum_sum_vouchers[n];
			}

			// Shipping Type Checkboxen
			var _sts = $j('input[name="shipping_type\['+n+'\]"]');

			// Shipping Type gewaehlt?
			var _sts_c = false;

			$j.each(_sts,function(sn,ss) {
				if($j(ss).is(':checked')) _sts_c = true;
			});

			if(!_sts_c && !Cashbox.no_shipping_type_needed[n]) error+=CashboxTrans.please_check_shipping_types+"<br />\n";

			tot+=_sub_sum;
			}
			//alert(s);//14.98
			//alert(n);//2803
		   // alert(Cashbox.sum_sum_discount[n] + " + " +Cashbox.shipping_costs[n]);
		 });

		 /*if(parseFloat(tot)==0) error+="es gibt nichts zu zahlen..?!";
		 else {
			if (Cashbox.error == "es gibt nichts zu zahlen..?!") Cashbox.error = "";
		 }*/

		 // Neue Summenberechnung
		 var tot_new = 0;
		 jQuery.each(Cashbox.sum_total_basket, function(n,s) {
			 if(Cashbox.total.arguments.length == 1 && Cashbox.total.arguments[0] != n) {
				 // Do nothing
			 } else {
				 tot_new += s;
			 }
		 });

		 if(error.length==0) {
			//if(mops_key && parseFloat(Cashbox.payment_costs[mops_key])>0) tot+=Cashbox.payment_costs[mops_key];
			return tot_new;
		 } else {
			Cashbox.error = error;
		 }
	  }

   },

   dbg: function(msg)
   {
	  if(typeof console != 'undefined')
		 console.info(msg);
   },

   pay_after_save: function(which) {
	  if(!Cashbox.saveOk) {
		 Cashbox.dbg("pay_after_save!saveOk");
	  }
	  else{
		 Cashbox.dbg("pay_after_save#post2session (which="+which+")");
		 Cashbox.post2session('#cashbox2');
		 if (which=="central"){
			//alle bezahlen > formular absenden...
			var _mops=$j('input[name="order[method_of_payment]"]:checked');
			var error="";
			if(_mops.length==0) error+= CashboxTrans.please_select_payment_method+"<br />";
			var _acc=$j('input.page_settings_acc');
			var _acc_error = false;
			jQuery.each(_acc,function(n,e){
			   if(!$j(e).is(':checked')) _acc_error = true;
			});

			for(basket_addr_id in Cashbox.shipping_types)
			{
			   var st_id = Cashbox.shipping_types[basket_addr_id];
			   jQuery(".shipping_type_depot_document_"+basket_addr_id+"_"+st_id).each(function(n,e){
				  if(!jQuery(e).is(":checked")) _acc_error = true;
			   });
			}

			if(_acc_error == true) error+= CashboxTrans.please_confirm_all_documents+"<br />";
			if(error.length == 0 && Cashbox.liespeprob != 0)
			{
			   error+= CashboxTrans.liespe_connection_problem+"<br/>";
			}

			//alert(Cashbox.total);
			if(error.length==0){
			   var mops_key=$j(_mops).val();

			   if(Cashbox.payment_params[mops_key]){
				  var _pp=Cashbox.payment_params[mops_key];
				  if(_pp.quickdialog){
					 //var tot=0;
					 //alert(Cashbox.sum_summe);

					 /*$j.each(Cashbox.sum_summe,function(n,s){
					 //   tot+=s;
					 //   tot2+=n;
					   tot+=parseFloat(s);

					 if(Cashbox.discounts[n].length > 0){
						for(var isd = 0; isd < Cashbox.discounts[n].length; isd++){
						   //alert(tot + " - " + Cashbox.discounts[n][isd]);
						   tot -= parseFloat(Cashbox.discounts[n][isd]);
						}
					 }
					 //if(Cashbox.discounts[n] > 0) tot += parseFloat(Cashbox.discounts[n]);
					 if(Cashbox.shipping_costs[n] > 0) tot += parseFloat(Cashbox.shipping_costs[n]);

						var _sts=$j('input[name="shipping_type\['+n+'\]"]');
						var _sts_c=false;
						$j.each(_sts,function(sn,ss){
						   if($j(ss).is(':checked')) _sts_c=true;
						});
						if(!_sts_c && !Cashbox.no_shipping_type_needed[n]) error+=CashboxTrans.please_check_shipping_types+"<br />\n";
						//alert(s);//14.98
						//alert(n);//2803
					   // alert(Cashbox.sum_sum_discount[n] + " + " +Cashbox.shipping_costs[n]);
					 });
		  */

					 var tot = Cashbox.total();

					 //if(parseFloat(tot)==0) error+="es gibt nichts zu zahlen..?!";
					 //alert(tot);
					 if(Cashbox.error.length > 0 && error.length == 0)
					 {
						error = Cashbox.error;
						Cashbox.error = "";
					 }
					 else if(Cashbox.error.length > 0 && error.length > 0){
						error+="\n"+Cashbox.error;
						Cashbox.error = "";
					 }
					 if(error.length==0){
						//tot+=Cashbox.payment_costs[mops_key];
						Cashbox.dialog(_pp.quickdialog_url+"&total="+parseFloat(tot).toFixed(2),500,200,'payment_dialog');
					 }else{
						 Cashbox.dialog('bs_info.php?action=error&message='+Base64.encode(escape(error)), 300, 200, 'info_window');
					 }
				  }
				  else if(_pp.redirect_url){
					 Cashbox.dialog(_pp.redirect_url,600,400,'payment_dialog');
				  /*$j.each(_pp,function(k,v){
					 alert(k);
					 alert(v);
				  });*/
				  }
			   }
			   else alert("Kein Zahlungsvorgang programmiert.");

			} else Cashbox.dialog('bs_info.php?action=error&message='+Base64.encode(error), 300, 200, 'info_window');
		 }else
		 {
			// Einzelkassensystem
			var _mops=$j('input[name="order[arr_method_of_payment]['+which+']"]:checked');
			var error="";
			if(_mops.length==0) error+= CashboxTrans.please_select_payment_method+"<br />";
			var _acc=$j('input.page_settings_acc_'+which);
			var _acc_error = false;
			jQuery.each(_acc,function(n,e){
			   if(!$j(e).is(':checked')) _acc_error = true;
			});

			var st_id = Cashbox.shipping_types[which];
			jQuery(".shipping_type_depot_document_"+which+"_"+st_id).each(function(n,e){
			   if(!jQuery(e).is(":checked")) _acc_error = true;
			});

			if(_acc_error == true) error+= CashboxTrans.please_confirm_all_documents+"<br />";
			if(error.length == 0 && Cashbox.liespeprob != 0)
			{
			   error+= CashboxTrans.liespe_connection_problem+"<br/>";
			}

			//alert(Cashbox.total);
			if(error.length==0){
			   //alert("Einzel "+which+" alles klar!");
			   var mops_key=$j(_mops).val();

			   if(Cashbox.payment_params[mops_key]){
				  var _pp=Cashbox.payment_params[mops_key];
				  if(_pp.quickdialog){

					 var tot = Cashbox.total(which);

					 //if(parseFloat(tot)==0) error+="es gibt nichts zu zahlen..?!";
					 //alert(tot);
					 if(Cashbox.error.length > 0 && error.length == 0)
					 {
						error = Cashbox.error;
						Cashbox.error = "";
					 }
					 else if(Cashbox.error.length > 0 && error.length > 0){
						error+="\n"+Cashbox.error;
						Cashbox.error = "";
					 }
					 if(error.length==0){
						//tot+=Cashbox.payment_costs[mops_key];
						Cashbox.dialog(_pp.quickdialog_url+"&total="+parseFloat(tot).toFixed(2)+"&vendor="+which,500,200,'payment_dialog');
					 }else{
						 Cashbox.dialog('bs_info.php?action=error&message='+Base64.encode(escape(error)), 300, 200, 'info_window');
					 }
				  }
				  else if(_pp.redirect_url){
					 Cashbox.dialog(_pp.redirect_url + "&vendor="+which,600,400,'payment_dialog');
				  }
			   }
			   else alert("Kein Zahlungsvorgang programmiert.");
			}
			else Cashbox.dialog('bs_info.php?action=error&message='+Base64.encode(error), 300, 200, 'info_window');
		 }
	  }
   },

   pay: function(which){
	   // Error aus dem Cashbox Objekt entfernen, da sonst doppelte Fehler angezeigt werden
	   Cashbox.error = "";

	   Cashbox.pay_progress = true;
	   Cashbox.pay_which = which;
	   Cashbox.saveAddress('customer_info_1');

   },

   saveComment: function(fld){
	  if($j(fld)){
		 var fldname = fld.name;
		 var fldid = fld.id;
		 eval("$j.ajax({data:{action:'tmpSavePost', '"+fldname+"': $j('#"+fldid+"').val()}});");
	  }
   },

	changeDelivery: function(id_addr_address, id_ord_shipping_type, fld)
	{
	  if(id_ord_shipping_type < 1)
		 return;
		if (Cashbox.changeDelivery.arguments.length > 3) {
			var loadBaskets = Cashbox.changeDelivery.arguments[3];
		} else {
			loadBaskets = true;
		}

		$j('#no_shipping_type_'+id_addr_address).hide();
		var sum_sums = 0;
		if(Cashbox.discounts[id_addr_address].length > 0){
			for(var isd = 0; isd < Cashbox.discounts[id_addr_address].length; isd++){
				//if(parseFloat(Cashbox.discounts[id_addr_address][isd]) < 0){
				//   sum_sums += parseFloat(Cashbox.discounts[id_addr_address][isd]);
				//}else+#
				if (Cashbox.discounts[id_addr_address][isd] !== undefined) {
					sum_sums -= parseFloat(Cashbox.discounts[id_addr_address][isd]);
				}
			}
		}
		jQuery.ajax({data:
			{
				action: 'changeDelivery',
				id_addr_address: id_addr_address,
				id_ord_shipping_type: id_ord_shipping_type,
				sum_net: Cashbox.sum_net[id_addr_address],
				sum_gross: Cashbox.sum_gross[id_addr_address] - sum_sums
			},
			success:function(response){
				if (response.error) {
					Cashbox.errors[id_addr_address] = response.error;
				}else{
					Cashbox.shipping_types[id_addr_address] = id_ord_shipping_type;




					var _t = Cashbox.total(id_addr_address);
					if(parseFloat(_t) > 0)
						Cashbox.total_sum[id_addr_address] = _t;
					else
						Cashbox.total_sum[id_addr_address] 	= Cashbox.sum_summe[id_addr_address]
															+ Cashbox.sum_sum_discount[id_addr_address]
															+ Cashbox.sum_sum_vouchers[id_addr_address]
															+ response.shipping_costs;

					Cashbox.shipping_costs[id_addr_address] = response.shipping_costs;
					//alert("741: " + Cashbox.sum_summe[id_addr_address] +"+"+Cashbox.sum_sum_discount[id_addr_address]+"+"+response.shipping_costs + " = "+Cashbox.total_sum[id_addr_address]);
					response.shipping_costs = parseFloat(response.shipping_costs) + 0.0000001;
					//alert(response.shipping_costs + " toFixed " + parseFloat(response.shipping_costs).toFixed(2));
					$j('#no_shipping_type_'+id_addr_address).hide();
					//$j('#shipping_type_'+id_addr_address+'_'+id_ord_shipping_type).html(" ");
					$j('#shipping_type_'+id_addr_address+'_'+id_ord_shipping_type).html("<span class='shipping_type_cost'>" + Cashbox.price(response.shipping_costs) + "</span>");
					//console.log(Cashbox.total_sum);
					$j('#total_'+id_addr_address).html(Cashbox.price(Cashbox.total_sum[id_addr_address]));
					$j('#shipping_cost_row_'+id_addr_address).show();
					$j('#total_row_'+id_addr_address).show();

					 jQuery('.shipping_type_depot_document_row_'+id_addr_address).hide();
					 jQuery('.shipping_type_depot_document_row_'+id_addr_address+'_'+id_ord_shipping_type).show();

					if (response.shipping_costs > 0.001) {
						$j('#shipping_costs_'+id_addr_address).html(Cashbox.price(response.shipping_costs));
						$j('#shipping_cost_row_'+id_addr_address).show();
					} else {
						 $j('#shipping_cost_row_'+id_addr_address).hide();
					}

					/**
					* jetzt die Zahlungsarten ausblenden, die eine unzulässige Technik haben
					**/
					if(Cashbox.shipping_type_payment_techniques[id_ord_shipping_type] !== undefined){
						Cashbox.valid_payment_technique_keys = Cashbox.shipping_type_payment_techniques[id_ord_shipping_type];
					}
					Cashbox.commitValidPaymentTechniqueKeys();

					// Benachrichtigung anzeigen?
					if (response.notification != false && response.notification != null) {
						jQuery('#shipping_type_notification_content_' + id_addr_address).html(response.notification);
						jQuery('#shipping_type_notification_' + id_addr_address).show();
					} else {
						jQuery('#shipping_type_notification_' + id_addr_address).hide();
					}
				}
				if(loadBaskets) Cashbox.load_basket(id_addr_address);

			},
			error:function (xhr, ajaxOptions, thrownError){
				Cashbox.ajaxError(xhr, ajaxOptions, thrownError);
			}
		});
	},

	changeMethodOfPayment : function ()
	{
		var basket_id = -1;
		if(Cashbox.changeMethodOfPayment.arguments.length > 2)
		{
		 basket_id = Cashbox.changeMethodOfPayment.arguments[2];
		}

		if (Cashbox.changeMethodOfPayment.arguments.length > 0) {
		 if(basket_id == -1)
			Cashbox.id_method_of_payment = Cashbox.changeMethodOfPayment.arguments[0];
		 else
			Cashbox.arr_method_of_payment[basket_id] = Cashbox.changeMethodOfPayment.arguments[0];
		}

		var reload_basket = false;
		if (Cashbox.changeMethodOfPayment.arguments.length > 1) {
			reload_basket = Cashbox.changeMethodOfPayment.arguments[1];
		}

		var ajaxIdMethodOfPayment = Cashbox.changeMethodOfPayment.arguments[0];
		if (typeof ajaxIdMethodOfPayment != "undefined") {
			jQuery.ajax({data: {
					action: 'changeMethodOfPayment',
					id_method_of_payment: ajaxIdMethodOfPayment,
					vendor: basket_id
				},
				success:function(response) {

					Cashbox.sum_method_of_payment = 0;

					jQuery(response).each(function(n, res) {
						if (res.method_of_payment_costs != 0) {
							jQuery('#cashbox_central_method_of_payment_' + res.basket).show();
							jQuery('#cashbox_central_method_of_payment_descr_' + res.basket).html(res.method_of_payment_text + " (" + res.method_of_payment_percent + "%)");
							jQuery('#cashbox_central_method_of_payment_costs_' + res.basket).html(Cashbox.price(res.method_of_payment_costs));

							Cashbox.sum_method_of_payment += res.method_of_payment_costs;
							Cashbox.sum_method_of_payment_by_basekt[res.basket] = res.method_of_payment_costs;

						} else {
							jQuery('#cashbox_central_method_of_payment_' + res.basket).hide();
						}

						if (reload_basket) {
							Cashbox.load_basket(res.basket);
						}
					});

					// Gesamtsumme neuberechnen
					Cashbox.calculate_total();
				},
				error:function (xhr, ajaxOptions, thrownError) {
					Cashbox.ajaxError(xhr, ajaxOptions, thrownError);
				}
			});
		}
	},

   commitValidPaymentTechniqueKeys : function()
   {
	  // dürfen: Cashbox.valid_payment_technique_keys
	  for(i in Cashbox.payment_techniques)
	  {
		 if(!in_array(Cashbox.payment_techniques[i],Cashbox.valid_payment_technique_keys))
		 {
			// verstecken...
			jQuery('#order_method_of_payment_'+i).attr('disabled','disabled');
			jQuery('#order_method_of_payment_'+i).attr('checked',false);
		 }else{
			jQuery('#order_method_of_payment_'+i).removeAttr('disabled');
		 }
	  }
   },
   ajaxError: function(xhr, ajaxOptions, thrownError){
	  // Todo: ErrorHandler erstellen mit entsprechenden Fehlermeldungen für den _USER_
	  //alert(xhr.status);
	  Cashbox.action=false;
	  //alert(ajaxOptions);
	  //alert(thrownError);
   },

   editAddress: function(which){
	   if(Cashbox.edit_address==which){
		 $j('.customer_info_edit[id='+which+']').hide();
		 Cashbox.saveAddress(which);
	  }else{
		 Cashbox.edit_address=which;

		 $j('#edit_default_' + which).show();
		 $j('#select_' + which).show();
		 $j('#'+which+' span.customer_info_value_text').hide();
		 $j('#'+which+' .customer_info_value_input').show();
		 $j('#'+which+' span#'+which+'_edit_button').hide();
		 $j('#'+which+' span#'+which+'_save_button').show();
		 $j('.'+which+'_save_button').addClass('save_button');
		 jQuery('.select_' + which + '_label').show();

	  }
   },

   toggleAddressLabels : function(typ, dir) {
		if(typ == 1) which = "billing_address";
		else which = "delivery_address";
		if(dir == "in") {
			var pos = jQuery('#customer_info_block_'+typ).position();
			jQuery('#'+which+'_labels').css({top: pos.top+'px', left: (pos.left-1-jQuery('#'+which+'_labels').width())+'px', height: jQuery('#customer_info_block_'+typ).height()+'px'});
			jQuery('#'+which+'_labels').fadeIn(400);
			jQuery('#customer_info_block_'+typ).addClass("border_edit");
		} else {
			jQuery('#customer_info_block_'+typ).removeClass("border_edit");
			jQuery('#'+which+'_labels').fadeOut(400);
		}
   },

   saveAddress: function(which){
	  var changed_address_fields=$j('.customer_info_value_input');
	  var _ajaxdata=new Object({action:'changeAddress',type:which});
	  $j.each(changed_address_fields,function(n,o){
		 _ajaxdata[$j(o).attr('name')]=$j(o).val();
		 //changed_fields[n]=$j(o).attr('name');
	  });
	  if(jQuery('#default_delivery_address').attr('checked') == true) {
			_ajaxdata['default_delivery_address'] = true;
	  }

	  if(jQuery('#default_billing_address').attr('checked') == true) {
			_ajaxdata['default_billing_address'] = true;
	  }

	  if (jQuery('#selected_billing_address_id').length > 0) {
			_ajaxdata['selected_billing_address_id'] = jQuery('#selected_billing_address_id').val();
	  }

	  if (jQuery('#selected_delivery_address_id').length > 0) {
			_ajaxdata['selected_delivery_address_id'] = jQuery('#selected_delivery_address_id').val();
	  }

	  $j.ajax({data:_ajaxdata,
		 success:function(response){
			 // Keine Fehler, bei der neuen Bearbeitung anzeigen
			 if (response.error && Cashbox.newWindowEdit != true) {
			   //Cashbox.errors[id_addr_address]=response.error;
			   var message="";
			   jQuery.each(response.error['messages'],function(n,msg){
				  message+=msg+"\n";
			   });
			   jQuery.each(response.error['fields'],function(f,v){
				  $j('.'+f).css({borderColor:'#d33'});
			   });
			   $j('.customer_info_edit[id='+which+']').show();
			   $j('#'+which+' span#'+which+'_save_button').show();
			   //alert(message);
			   Cashbox.dialog('bs_info.php?action=error&message='+Base64.encode(message), 300, 150, 'info_window');
			   Cashbox.saveOk = false;

			   Cashbox.pay_progress = false;
			   Cashbox.pay_which = null;
			} else {
			   var refreshBaskets = false;
			   $j.each(response,function(k,v){
				  if(k == '__refresh_baskets')
				  {
					 refreshBaskets = v;
				  }
				  else $j('#customer_info_value_text_'+which+'_'+k).html(v);
				  //changed_fields[n]=$j(o).attr('name');
			   });
			   $j('.customer_info_edit[id='+which+']').show();
			   $j('#'+which+' .customer_info_value_input').hide();
			   $j('#'+which+' span.customer_info_value_text').show();
			   $j('#'+which+' span#'+which+'_edit_button').show();
			   $j('#'+which+' span#'+which+'_save_button').hide();
			   $j('.'+which+'_save_button').removeClass('save_button');
			   $j('#edit_default_' + which).hide();
			   $j('#select_' + which).hide();
			   jQuery('.select_' + which + '_label').hide();

			   Cashbox.edit_address=false;
			   Cashbox.saveOk = true;

			   if(Cashbox.pay_progress == true) {
					Cashbox.pay_after_save(Cashbox.pay_which);
			   }

			   Cashbox.pay_progress = false;
			   Cashbox.pay_which = null;

			   if(which == "billing_address") typ = 1;
			   else typ = 2;
			   Cashbox.toggleAddressLabels(typ);
			   if(refreshBaskets)
			   {
				  Cashbox.reload(10);
			   }
			}

			//??Cashbox.load_basket(id_addr_address);
		  },
		 error:function (xhr, ajaxOptions, thrownError){
			Cashbox.ajaxError(xhr, ajaxOptions, thrownError);
		  }
	  });
   },

   deleteDeliveryAddress : function() {
		jQuery('#customer_info_block_2 input').val('');
		jQuery('#customer_info_block_2 span.customer_info_value_text').html('');

		if (Cashbox.newWindowEdit == true) {
			jQuery('#address_2_container').hide();
		}
   },

   /**
   * Laedt die Daten einer Subadresse
   * @param int id_addr_address ID der Subadresse
   * @param int type			Typ der Subadresse. 1 = Rechnungsanschrift, 2 = Lieferanschrift
   */
   loadAddressFromSelection : function(id_addr_address, type) {
		if (id_addr_address > 0) {
			jQuery.ajax({
				data : {
					action 			: 'loadAddressFromSelection',
					id_addr_address : id_addr_address
				},
				success : function(response) {
					if (response.success == true) {
						if (typeof response.addressData != "undefined") {
							// Werte einsetzen
							jQuery.each(response.addressData, function(key, val) {
								if (jQuery('.order_order_addresses_' + type + '_0_' + key).length > 0) {
									if (!jQuery('.order_order_addresses_' + type + '_0_' + key).attr('disabled')) {
										if (key == "base_country_key") {
											if (response.billCountryEqDeliveryCountry == true) {
												if (type == 1) {
													jQuery('.order_order_addresses_' + type + '_0_' + key).val(val);
													jQuery('.order_order_addresses_2_0_' + key).val(val);
												}
											} else {
												jQuery('.order_order_addresses_' + type + '_0_' + key).val(val);
											}
										} else {
											jQuery('.order_order_addresses_' + type + '_0_' + key).val(val);
										}
									}
								}

								jQuery('#disp_address_' + type + '_0_' + key).html(val);
							});

							// Gewaehlte Adress id setzen
							switch (type) {
								case '1':
									jQuery('#selected_billing_address_id').val(id_addr_address);
									break;

								case '2':
									jQuery('#selected_delivery_address_id').val(id_addr_address);
									jQuery('#address_2_container').show();
									break;
							}

							if (Cashbox.newWindowEdit == true) {
								var typ = type == 1
										? 'billing_address'
										: 'delivery_address';
								Cashbox.saveAddress(typ);
							}
						}
					}
				}
			});
		}
   },

   /**
   * Gutschein anwenden
   */
   useVoucher : function() {
	   if (jQuery('#voucher_code').val().length > 0) {
		   jQuery('#voucher_code_submit').addClass('voucher_submit_loading');
		   /*
		   jQuery.get('/bs_ajax.php', {
					'action' : 'useVoucher',
					'codeNr' : jQuery('#voucher_code').val()
				}, function(data) {

			  alert('Load was performed.');
			});
			*/


		   jQuery.ajax({
				data 	: {
					'action' : 'useVoucher',
					'codeNr' : jQuery('#voucher_code').val()
				},
				success	: function(response) {
					if (response.success == true) {
						jQuery('#voucher_response').html("<span class=\"confirm\">" + response.message + "</span>");
						Cashbox.reload(100);
					} else {
						jQuery('#voucher_response').html("<span class=\"error\">" + response.message + "</span>");
					}
					jQuery('#voucher_code_submit').removeClass('voucher_submit_loading');
				},
				error	: function (xhr, ajaxOptions, thrownError){
					jQuery('#voucher_code_submit').removeClass('voucher_submit_loading');
					Cashbox.ajaxError(xhr, ajaxOptions, thrownError);
				}
		   });

	   }
   },

   /**
   * Gutschein etnfernen
   */
   removeVoucher : function() {
		jQuery.ajax({
			data 	: {
				'action' : 'removeVoucher'
			},
			success	: function(response) {
				if (response.success == true) {
					jQuery('#voucher_response').html("<span class=\"confirm\">" + response.message + "</span>");
					Cashbox.reload(100);
				} else {
					jQuery('#voucher_response').html("<span class=\"error\">" + response.message + "</span>");
				}
			},
			error	: function (xhr, ajaxOptions, thrownError){
				Cashbox.ajaxError(xhr, ajaxOptions, thrownError);
			}
	   });
   }
};

