if (! LW.cart) {
	LW.cart = {
		options: {},
		product: {},
		init: function () {
			$('.lw_cart_pricing').show();
			$('[class^="lw_price_"]').empty().html(LW.vars.loadingImg);
			var form = $('form[name="configForm"]').first();
			LW.cart.product.code  = form.attr('product');
			LW.cart.product.plan_type = form.attr('plan_type');
			LW.cart.product.series = form.attr('series');
			LW.cart.product.plan = form.attr('plan');
			$('.toggleSuboptions').click( function () {
				LW.cart.toggleSuboptions($(this));
			});
			$('form[name="configForm"] input').click( function () {
				LW.cart.updateProductPricing();
			});
			$('form[name="configForm"] select').change( function () {
				LW.cart.updateProductPricing();
			});
		},
		updateForm: function (options) {
			$.each(
				options,
				function( key, value ) {
					$('form[name="configForm"] input[name="'+key+'"][value="'+value+'"]')
						.attr('checked','checked');
					$('[name="'+key+'_subOption"]')
						.hide()
						.find('select').attr('disabled', true);
					$('.subOption_value_'+value+'[name="'+key+'_subOption"]')
						.show()
						.find('select').attr('disabled', false);
					$('form[name="configForm"] select[name="'+key+'"] option[value="'+value+'"]')
						.attr('selected','selected');
				}
			)
		},
		loadForm: function () {
			$('form[name="configForm"] input:checked').each(
				function (index) {
					var key = $(this).attr('name');
					var value = $(this).attr('value');
					LW.cart.options[key] = value;
					$('.subOption_value_'+value+'[name="'+key+'_subOption"] select option:selected').each(
						function (index) {
							var key = $(this).parent().first().attr('name');
							var value = $(this).attr('value');
							//alert('sub found:'+key+'-'+value);
							LW.cart.options[key] = value;
						}
					)
				}
			);
		},
		toggleSuboptions: function (self) {
			var elementName = self.attr('name');
			var trs = $("tr[name=" + elementName + "_subOption]");
			trs.hide().find('select').attr('disabled', true);
			
			var subopt_row = $('.subOption_value_' + self.val());
			
			subopt_row.show().find('select').attr('disabled', false);
			return false;
		},
		updateProductPricing: function () {
			var pricing;
			LW.cart.loadForm();
			if ( LW.cart.options ) {
				$('.lw_price_product').empty().html(LW.vars.loadingImg);
				$('.lw_cart_setup').hide();
				var vars = {
					product: LW.cart.product,
					options: LW.cart.options
				};
				$.postJSON('/json/cart/get_product_pricing.html', vars, function (res) {
					$('.lw_price_product').empty().html(parseFloat(res.mrc).toFixed(2));
					if (res.setupFee > 0) {
						$('.lw_price_setup').empty().html(parseFloat(res.setupFee).toFixed(2));
						$('.lw_cart_setup').css({'display':'inline'}); // Jquery 1.4 shows with block
					}
				});
			}
		},
		updateCartTotals: function () {
			var pricing;
			var vars = {};
			$('.lw_price_total').empty().html(LW.vars.loadingImg);
			$('.lw_cart_setup').hide();
			$('.lw_cart_setup_total').hide();
			$.postJSON('/json/cart/get_cart_totals.html', vars, function (res) {
				$('.lw_price_total').empty().html(res.mrc.toFixed(2));
				$('.lw_price_setup_total').empty().html(parseFloat(res.setup).toFixed(2));
				$('.lw_cart_setup_total').show();
				if (res.mrc > 0) {
					$('#lw_cart_float').show();
					if (res.setup > 0) {
						$('.lw_cart_setup').css({'display':'inline'}); // Jquery 1.4 shows with block
					}
				}
				else {
					$('#lw_cart_float').hide();
				}
			});
		}
	}
}

