function MDS_SBBTestMeal_AddVariant( els, v, opt ) {
	for( var i = 0 ; i < els.length ; i++ ) {
		var e = els[ i ] ;
		if( e[ 0 ] == v[ 1 ] && ( opt || ( e[ 2 ] == v[ 2 ] ) ) ) {
			// found
			e[ 1 ] += parseInt( v[ 0 ] ) ;
			return ;
		}
	}
	var a = new Array() ;
	a[ 0 ] = v[ 1 ] ; // variant name
	a[ 1 ] = parseInt( v[ 0 ] ) ; // count
	a[ 2 ] = parseInt( v[ 2 ] ) ; // price
	els[ els.length ] = a ;
}

function MDS_SBBTestMeal_GetData( opt ) {
	var els = Array() ;
	var sel = GetNamedElement( 'SBB_TestSelection' ).value.split( ',' ) ;
	for( var i = 0 ; i < sel.length ; i++ ) {
		var s = sel[ i ].split( ':' ) ;
		if( s.length == 3 ) {
			MDS_SBBTestMeal_AddVariant( els, s, opt ) ;
		}
	}
	return( els ) ;
}

function MDS_SBBTestMealOrder_Update() {
	var dd = GetNamedElement( 'SBB_TestMeals_Delivery' ).value ;
	if( VSCSM_IsEmpty( dd ) ) {
		document.getElementById( 'SBB_OrderInfo_Delivery' ).innerHTML = document.getElementById( 'SBB_OrderInfo_Msg_3' ).innerHTML ;
	} else {
		document.getElementById( 'SBB_OrderInfo_Delivery' ).innerHTML = dd ;
	}
	var otd = document.getElementById( 'SBB_OrderInfo_OrderTD' ) ;
	var els = MDS_SBBTestMeal_GetData( true ) ;
	if( els.length > 0 ) {
		var s = '' ;
		for( var i = 0 ; i < els.length ; i++ ) {
			var e = els[ i ] ;
			s += e[ 1 ] + " X " + e[ 0 ] + "<br/>" ;
		}
		otd.innerHTML = s ;
	} else {
		otd.innerHTML = document.getElementById( 'SBB_OrderInfo_Msg_2' ).innerHTML ;
	}
}

function MDS_SBBTestMealPrice_Update() {
	var total = 0 ;
	var tma = document.getElementById( 'SBB_TestMeal_AmountTD' ) ;
	var tmp = document.getElementById( 'SBB_TestMeal_PriceTD' ) ;
	var ftr = document.getElementById( 'SBB_TestMeal_FragtTR' ) ;
	var ftd = document.getElementById( 'SBB_TestMeal_FragtTD' ) ;
	var ttd = document.getElementById( 'SBB_TestMeal_TotalTD' ) ;
	var dtr = document.getElementById( 'SBB_TestMeal_DiscountTR' ) ;
	var dmn = document.getElementById( 'SBB_TestMeal_DiscountMoney' ) ;
	var els = MDS_SBBTestMeal_GetData( false ) ;
	if( els.length > 0 ) {
		var discount = 0 ;
		var a = '' ;
		var p = '' ;
		var meals = 0 ;
		for( var i = 0 ; i < els.length ; i++ ) {
			var e = els[ i ] ;
			if( e[ 1 ] > 0 ) {
				var c = e[ 1 ] * e[ 2 ] ;
				a += e[ 1 ] + " X " + FormatNumber( e[ 2 ], 2 ) + " kr.<br/>" ;
				p += FormatNumber( c, 2 ) + " kr.<br/>" ;
				total += c ;
				meals += e[ 1 ] ;
			}
		}
		tma.innerHTML = a ;
		tmp.innerHTML = p ;
		if( total > 0 ) {
			var fragt = GetFreightRate( total, meals ) ;
			ftr.style.display = 'inline' ;
			ftd.innerHTML = FormatNumber( fragt, 2 ) + " kr." ;
			total += fragt ;
		} else {
			ftr.style.display = 'none' ;
		}
		if( discount > 0 ) {
			dmn.innerHTML = FormatNumber( discount, 2 ) + " kr." ;
			dtr.style.display = 'inline' ;
		} else {
			dtr.style.display = 'none' ;
		}
	} else {
		dtr.style.display = 'none' ;
		ftd.innerHTML = FormatNumber( 0, 2 ) + " kr." ;
		tma.innerHTML = document.getElementById( 'SBB_TestMeal_Msg_1' ).innerHTML ;
		ftr.style.display = 'none' ;
	}
	ttd.innerHTML = FormatNumber( total, 2 ) + " kr." ;
}

function SBB_ThisDelivery_Update() {
	var date = GetNamedElement( 'SBB_DeliveryDate' ).value ;
	if( VSCSM_IsEmpty( date ) ) {
		document.getElementById( 'SBB_ThisDelivery_DateTD' ).innerHTML = document.getElementById( 'SBB_ThisDelivery_Msg_2' ).innerHTML ;
	} else {
		document.getElementById( 'SBB_ThisDelivery_DateTD' ).innerHTML = date ;
	}

	var otd = document.getElementById( 'SBB_ThisDelivery_OrderTD' ) ;
	
	var els = MDS_SBBTestMeal_GetData( true ) ;
	if( els.length > 0 ) {
		var s = '' ;
		for( var i = 0 ; i < els.length ; i++ ) {
			var e = els[ i ] ;
			s += e[ 1 ] + " X " + e[ 0 ] + "<br/>" ;
		}
		otd.innerHTML = s ;
	} else {
		otd.innerHTML = document.getElementById( 'SBB_ThisDelivery_Msg_1' ).innerHTML ;
	}
}

function SBB_ThisDeliveryPrice() {
	var di = LoadDiscountInfo() ;
	var discount = di[ 1 ] ;
	var fragt_discount = di[ 2 ] ;
	var max_products = di[ 3 ] ;
	var fragt_amount = 29 ;
	var total_products = 0 ;
	var total = 0 ;
	var total_discount = 0 ;

	var els = MDS_SBBTestMeal_GetData() ;
	if( els.length > 0 ) {
		var a = '' ;
		var p = '' ;
		for( var i = 0 ; i < els.length ; i++ ) {
			var e = els[ i ] ;
			var c = e[ 1 ] * e[ 2 ] ;
			if( e[ 1 ] > 0 ) {
				a += e[ 1 ] + " X " + FormatNumber( e[ 2 ], 2 ) + " kr.<br/>" ;
				p += FormatNumber( c, 2 ) + " kr.<br/>" ;
				if( max_products == -1 || max_products >= ( total_products + e[ 1 ] ) ) {
					total_discount += c ;
				} else {
					if( max_products <= total_products ) {
						total += c ;
					} else {
						var products = max_products - total_products ;
						total_discount += e[ 2 ] * products ;
						total += e[ 2 ] * ( e[ 1 ] - products ) ;
					}
				}
			}
			total_products += e[ 1 ] ;
		}
		if( p != '' ) {
			document.getElementById( 'SBB_ThisDeliveryPrice_BoxTD' ).innerHTML = a ;
			document.getElementById( 'SBB_ThisDeliveryPrice_MealsPriceTD' ).innerHTML = p ;
			/*if( total_products != 1 ) {
				fragt_amount = 0 ;
			}*/
			document.getElementById( 'SBB_ThisDeliveryPrice_InfoTR' ).style.display = 'inline' ;
			document.getElementById( 'SBB_ThisDeliveryPrice_NoMealsTR' ).style.display = 'none' ;
			document.getElementById( 'SBB_ThisDeliveryPrice_FraghtTR' ).style.display = 'inline' ;
		} else {
			document.getElementById( 'SBB_ThisDeliveryPrice_InfoTR' ).style.display = 'none' ;
			document.getElementById( 'SBB_ThisDeliveryPrice_NoMealsTR' ).style.display = 'inline' ;
			document.getElementById( 'SBB_ThisDeliveryPrice_FraghtTR' ).style.display = 'none' ;
			fragt_amount = 0 ;
		}
	} else {
		document.getElementById( 'SBB_ThisDeliveryPrice_InfoTR' ).style.display = 'none' ;
		document.getElementById( 'SBB_ThisDeliveryPrice_NoMealsTR' ).style.display = 'inline' ;
		fragt_amount = 0 ;
	}

	var discount_amount = 0 ;

	if( (total + total_discount) > 0 ) {
		fragt_amount = GetFreightRate( total + total_discount, total_products ) ;

		discount_amount = total_discount * discount / 100 + fragt_amount * fragt_discount / 100 ;

		document.getElementById( 'SBB_ThisDeliveryPrice_FragtTD' ).innerHTML = FormatNumber( fragt_amount, 2 ) + ' kr.' ;
		document.getElementById( 'SBB_ThisDeliveryPrice_DiscountTD' ).innerHTML = FormatNumber( discount_amount, 2 ) + ' kr.' ;
		document.getElementById( 'SBB_ThisDeliveryPrice_TotalTD' ).innerHTML = FormatNumber( total + total_discount + fragt_amount - discount_amount, 2 ) + ' kr.' ;

	} else {
		document.getElementById( 'SBB_ThisDeliveryPrice_TotalTD' ).innerHTML = FormatNumber( 0, 2 ) + ' kr.' ;
	}
	
	SetVisible( 'SBB_ThisDeliveryPrice_DiscountTR', discount_amount>0 ) ;
	SetVisible( 'SBB_ThisDeliveryPrice_FraghtTR', fragt_amount>0 ) ;
}

function SBB_Delivery_Update() {
	var zipcode = '' ;
	var city = '' ;
	var ar = GetNamedElement( 'SBB_DeliveryZipCode' ).value.split( ':' ) ;
	if( ar.length == 2 ) {
		zipcode = ar[ 0 ] ;
		city = ar[ 1 ] ;
	}
	if( zipcode != '' ) {
		document.getElementById( 'DeliveryInfo_ZipCode' ).innerHTML = zipcode ;
		document.getElementById( 'DeliveryInfo_City' ).innerHTML = city ;
		var dt = GetNamedElement( 'SBB_DeliveryDate' ).value ;
		if( dt != '' ) {
			var ss = dt.split( ':' ) ;
			document.getElementById( 'DeliveryInfo_Weekday' ).innerHTML = ss[ 0 ] ;
			document.getElementById( 'DeliveryInfo_FirstDay' ).innerHTML = ss[ 1 ] ;
		} else {
			document.getElementById( 'DeliveryInfo_FirstDay' ).innerHTML = '' ;
			document.getElementById( 'DeliveryInfo_Weekday' ).innerHTML = '' ;
		}
		var dl = GetNamedElement( 'SBB_DeliveryDoorLocked' ).value ;
		if( dl == 'True' ) {
			document.getElementById( 'DeliveryInfo_FirstDay' ).innerHTML = document.getElementById( 'SBB_Delivery_Msg_WaitingForKey' ).innerHTML ;
		}
	} else {
		var msg = document.getElementById( 'SBB_Delivery_Msg_SelectZipCode' ).innerHTML ;
		document.getElementById( 'DeliveryInfo_ZipCode' ).innerHTML = msg ;
		document.getElementById( 'DeliveryInfo_City' ).innerHTML = msg ;
		document.getElementById( 'DeliveryInfo_Weekday' ).innerHTML = msg ;
		document.getElementById( 'DeliveryInfo_FirstDay' ).innerHTML = msg ;
	}
	var fdtr = document.getElementById( 'DeliveryInfo_FirstDeliveryTR' ) ;
	if( document.getElementById( 'SBB_Delivery_DisableFirstDate' ) != null ) {
		fdtr.style.display = 'none' ;
	} else {
		fdtr.style.display = 'inline' ;
	}
}

function SBB_Price_Update() {
	var di = LoadDiscountInfo() ;
	var discount = di[ 1 ] ;
	var discount_freight = di[ 2 ] ;
	var max_products = di[ 3 ] ;
	var deliveries = di[ 4 ] ;
	var expiration = di[ 5 ] ;

	var box_size = 0 ;
	var box_price = 0 ;
	var fragt = 29 ;
	var total_price = 0 ;
	var discount_money = 0 ;

	var ar = GetNamedElement( 'SBB_MealVariant' ).value.split( ':' ) ;
	if( ar.length >= 3 ) {
		box_size = parseInt( ar[ 1 ] ) ;
		box_price = parseInt( ar[ 2 ] ) ;
	}

	var meals = 0 ;
	var ar1 = GetNamedElement( 'SBB_Meals' ).value.split( ':' ) ;
	if( ar1.length == 2 ) {
		meals = parseInt( ar1[ 0 ] ) ;
	}

	if( meals > 0 ) {
		if( max_products > 0 && max_products < meals ) {
			total_price = max_products * box_price ;
			discount_money = discount / 100.0 * total_price ;
			total_price += ( meals - max_products ) * box_price ;
		} else {
			total_price = meals * box_price ;
			discount_money = discount / 100.0 * total_price ;
		}

		/*if( meals == 1 ) {
			fragt = 29 ;
			total_price += fragt ;
			discount_money += discount_freight / 100.0 * fragt ;
		}*/

		fragt = GetFreightRate( total_price, meals ) ;

		document.getElementById( 'PricePerDelivery_MealsPrice' ).innerHTML = FormatNumber( meals * box_price, 2 ) + ' kr.' ;
	} else {
		total_price = 0 ;
		document.getElementById( 'PricePerDelivery_MealsPrice' ).innerHTML = FormatNumber( 0, 2 ) + ' kr.' ;
	}

	if( box_size > 0 && meals > 0 ) {
		document.getElementById( 'PricePerDelivery_Box' ).innerHTML = meals + ' X ' + FormatNumber( box_price, 2 ) + ' kr.' ;
		document.getElementById( 'PricePerDelivery_FragtTR' ).style.display = 'inline' ;
		document.getElementById( 'PricePerDelivery_MealsPriceTD' ).style.display = 'inline' ;
		document.getElementById( 'PricePerDelivery_BoxTD' ).colSpan = 1 ;
		if( discount_money > 0 ) {
			document.getElementById( 'PricePerDelivery_DiscountMoney' ).innerHTML = FormatNumber( discount_money, 2 ) + ' kr.' ;
			document.getElementById( 'PricePerDelivery_DiscountTR' ).style.display = 'inline' ;
		} else {
			document.getElementById( 'PricePerDelivery_DiscountTR' ).style.display = 'none' ;
		}
	} else {
		document.getElementById( 'PricePerDelivery_Box' ).innerHTML = document.getElementById( 'SBB_Price_Msg_1' ).innerHTML ;
		document.getElementById( 'PricePerDelivery_MealsPrice' ).innerHTML = '' ;
		document.getElementById( 'PricePerDelivery_FragtTR' ).style.display = 'none' ;
		document.getElementById( 'PricePerDelivery_DiscountTR' ).style.display = 'none' ;
		document.getElementById( 'PricePerDelivery_MealsPriceTD' ).style.display = 'none' ;
		document.getElementById( 'PricePerDelivery_BoxTD' ).colSpan = 3 ;
	}

	if( fragt == 0 ) {
		document.getElementById( 'PricePerDelivery_FragtTD' ).innerHTML = document.getElementById( 'SBB_Price_Msg_2' ).innerHTML ;
	} else {
		document.getElementById( 'PricePerDelivery_FragtTD' ).innerHTML = document.getElementById( 'SBB_Price_Msg_3' ).innerHTML ;
	}

	//alert( 'total_price=' + total_price + ', discount_money=' + discount_money + ', discount_freight=' + discount_freight + ', 11=' + (total_price - discount_money) ) ;

	document.getElementById( 'PricePerDelivery_Fragt' ).innerHTML = FormatNumber( fragt, 2 ) + ' kr.' ;
	document.getElementById( 'PricePerDelivery_Total' ).innerHTML = FormatNumber( total_price - discount_money + fragt, 2 ) + ' kr.' ;
}

function SBB_Selection_Update() {
	// variant
	var box_size = 0 ;
	var box_name = 'person' ;
	var ar = GetNamedElement( 'SBB_MealVariant' ).value.split( ':' ) ;
	if( ar.length >= 4 ) {
		box_size = parseInt( ar[ 1 ] ) ;
		box_name = ar[ 3 ] ;
	}
	if( box_size > 0 ) {
		document.getElementById( 'SubscriptionInfo_BoxSizeText' ).innerHTML = box_name ;
	} else {
		document.getElementById( 'SubscriptionInfo_BoxSizeText' ).innerHTML = document.getElementById( 'SBB_Subscription_Msg_1' ).innerHTML ;
	}

	// meals
	var meals_label ;
	var meals = 0 ;
	var ar1 = GetNamedElement( 'SBB_Meals' ).value.split( ':' ) ;
	if( ar1.length == 2 ) {
		meals = parseInt( ar1[ 0 ] ) ;
		meals_label = ar1[ 1 ] ;
	}
	if( meals > 0 ) {
		document.getElementById( 'SubscriptionInfo_Meals' ).innerHTML = meals_label ;
	} else {
		document.getElementById( 'SubscriptionInfo_Meals' ).innerHTML = document.getElementById( 'SBB_Subscription_Msg_2' ).innerHTML ;
	}

	// freq
	var freq = GetNamedElement( 'SBB_DeliveryFreq' ).value ;
	if( freq != '' ) {
		document.getElementById( 'SubscriptionInfo_Freq' ).innerHTML = freq.split( ':' )[1] ;
	} else {
		document.getElementById( 'SubscriptionInfo_Freq' ).innerHTML = document.getElementById( 'SBB_Subscription_Msg_3' ).innerHTML ;
	}
}
