var Cart = {
	ToggleShippingEstimation: function()
	{
		$('.EstimatedShippingMethods').hide();
		$('.EstimateShipping').toggle();
		$('.EstimateShippingLink').toggle();
		$('.EstimateShipping select:eq(0)').focus();
	},
	validateZIP: function(field) {
		var valid = "0123456789-";
		var hyphencount = 0;
		
		if (field.length!=5 && field.length!=10) {
		alert("Please enter your 5 digit or 5 digit+4 zip code.");
		return false;
		}
		for (var i=0; i < field.length; i++) {
		temp = "" + field.substring(i, i+1);
		if (temp == "-") hyphencount++;
		if (valid.indexOf(temp) == "-1") {
		alert("Invalid characters in your zip code.  Please try again.");
		return false;
		}
		if ((hyphencount > 1) || ((field.length==10) && ""+field.charAt(5)!="-")) {
		alert("The hyphen character should be used with a properly formatted 5 digit+four zip code, like '12345-6789'.   Please try again.");
		return false;
		   }
		}
		return true;
	},
	EstimateTruckShipping: function()
	{
		var callbefore=-1;
		var lift_gate=-1;
		var typedelevry=-1;
		var valide=true;
		if(document.getElementById("liftgate1").checked==true)
			lift_gate=1;
		if(document.getElementById("liftgate2").checked==true)
			lift_gate=3;
		if(document.getElementById("type_delevry1").checked==true)
			typedelevry=0;
		if(document.getElementById("type_delevry2").checked==true)
			typedelevry=1;
		if(document.getElementById("call_before1").checked==true)
			callbefore=1;
		if(document.getElementById("call_before2").checked==true)
			callbefore=0;
			
		valide=this.validateZIP(document.getElementById("shippingZoneZip").value);
		
		if(valide==true)
		if(typedelevry==-1)
		{
			alert("You Must Specify Type of Delivery");
			valide=false;
		}
		if(valide==true)
		if(lift_gate==-1)
		{
			alert("You Must Specify if you need a Lift Gate");
			valide=false;
		}
		if(valide==true)
		if(callbefore==-1)
		{
			alert("You Must Specify if you need Inside Delivery");
			valide=false;
		}
		if(valide==true)
		{
			document.getElementById("ain_reloadTruck").innerHTML="<img src='/images/bars.gif'>  Searching for lowest shipping price... Please wait...";
			$('.EstimatedShippingMethods').hide();
			$('.EstimateShipping .EstimateShippingButtons span').hide();
			$('.EstimateShipping .EstimateShippingButtons input').val(lang.Calculating);
			$('.EstimateShipping .EstimateShippingButtons input').attr('disabled', true);
			$.ajax({
				url: 'remote.php',
				type: 'post',
				data: {
					w: 'getShippingQuotes',
					countryId: $('#shippingZoneCountry').val(),
					stateId: $('#shippingZoneState').val(),
					stateName: escape($('#shippingZoneStateName').val()),
					zipCode: $('#shippingZoneZip').val(),
					call_before: callbefore,
					liftgate: lift_gate,
					type_delevry: typedelevry
				},
				success: function(data)
				{
					document.getElementById("ain_reloadTruck").innerHTML='<a href="javascript:Cart.EstimateTruckShipping();"><img src="images/go.jpg" /></a>';	
					
					$('.EstimatedShippingMethods .ShippingMethodList').html(data);
					$('.EstimatedShippingMethods').show();
					$('.EstimateShipping .EstimateShippingButtons span').show();
					$('.EstimateShipping .EstimateShippingButtons input').val(lang.CalculateShipping);
					$('.EstimateShipping .EstimateShippingButtons input').attr('disabled', false);
				}
			});
		}
	},

// created for items that require non-trucking shipping so no need for liftgate/delivery questions on clickshipngo box; so take the defaults on them. ??? abs 3.25.10
	EstimateShipping: function()
	{
		var callbefore=-1;    // just take defaults for these
		var lift_gate=-1;
		var typedelevry=-1;
		var valide=true;
			
		valide=this.validateZIP(document.getElementById("shippingZoneZip").value);
		
		if(valide==true)
		{
			document.getElementById("ain_reload").innerHTML="<img src='/images/bars.gif'>  Connecting... Please wait...";
			$('.EstimatedShippingMethods').hide();
			$('.EstimateShipping .EstimateShippingButtons span').hide();
			$('.EstimateShipping .EstimateShippingButtons input').val(lang.Calculating);
			$('.EstimateShipping .EstimateShippingButtons input').attr('disabled', true);
			$.ajax({
				url: 'remote.php',
				type: 'post',
				data: {
					w: 'getShippingQuotes',
					countryId: $('#shippingZoneCountry').val(),
					stateId: $('#shippingZoneState').val(),
					stateName: escape($('#shippingZoneStateName').val()),
					zipCode: $('#shippingZoneZip').val(),
					call_before: callbefore,
					liftgate: lift_gate,
					type_delevry: typedelevry
				},
				success: function(data)
				{
					document.getElementById("ain_reload").innerHTML='<a href="javascript:Cart.EstimateShipping();"><img src="images/go.jpg" /></a>';	
					
					$('.EstimatedShippingMethods .ShippingMethodList').html(data);
					$('.EstimatedShippingMethods').show();
					$('.EstimateShipping .EstimateShippingButtons span').show();
					$('.EstimateShipping .EstimateShippingButtons input').val(lang.CalculateShipping);
					$('.EstimateShipping .EstimateShippingButtons input').attr('disabled', false);
				}
			});
		}
	},

	ToggleShippingEstimateCountry: function()
	{
		var countryId = $('#shippingZoneCountry').val();
		$.ajax({
			url: 'remote.php',
			type: 'post',
			data: 'w=countryStates&c='+countryId,
			success: function(data)
			{
				$('#shippingZoneState option:gt(0)').remove();
				var states = data.split('~');
				var numStates = 0;
				for(var i =0; i < states.length; ++i) {
					vals = states[i].split('|');
					if(!vals[0]) {
						continue;
					}
					$('#shippingZoneState').append('<option value="'+vals[1]+'">'+vals[0]+'</option>');
					++numStates;
				}

				if(numStates == 0) {
					$('#shippingZoneState').hide();
					$('#shippingZoneStateName').show();
				}
				else {
					$('#shippingZoneState').show();
					$('#shippingZoneStateName').hide();
				}
				$('#shippingZoneState').val('0');
			}
		});
	},

	UpdateShippingCost: function()
	{
		
		var returnVal = true;
		var method = $('.EstimatedShippingMethods table').each(function() {
			var method = $('input[type=radio]:checked', this).val();
			if(typeof(method) == 'undefined' || method == '') {
				alert(lang.ChooseShippingMethod);
				$('input[type=radio]:eq(0)', this).focus();
				returnVal = false;
				
			}
		});

		if(returnVal == true) {
			$.ajax({
				url: 'remote.php',
				type: 'post',
				data:{w :'applyValuesEstimate'},
				success:$('#cartForm').submit()
			});
		}
	},

	RemoveItem: function(itemId)
	{
		if(confirm(lang.CartRemoveConfirm)) {
			document.location.href = "cart.php?action=remove&item="+itemId;
		}
	},

	UpdateQuantity: function(qty)
	{
		if(qty == 0) {
			if(confirm(lang.CartRemoveConfirm)) {
				$('#cartForm').submit();
			}
			else {
				return false;
			}
		}
		else {
			$('#cartForm').submit();
		}
	},

	ValidateQuantityForm: function(form)
	{
		var valid = true;
		var qtyInputs = $(form).find('input.qtyInput');
		qtyInputs.each(function() {
			if(isNaN($(this).val()) || $(this).val() < 0) {
				alert(lang.InvalidQuantity);
				this.focus();
				this.select();
				valid = false;
				return false;
			}
		});
		if(valid == false) {
			return false;
		}

		return true;
	},

	CheckCouponCode: function()
	{
		if($('#couponcode').val() == '') {
			alert(lang.EnterCouponCode);
			$('#couponcode').focus();
			return false;
		}
	},

	CheckGiftCertificateCode: function()
	{
		if($('#giftcertificatecode').val() == '') {
			alert(lang.EnterGiftCertificateCode);
			$('#giftcertificatecode').focus();
			return false;
		}
	},

	ManageGiftWrapping: function(itemId)
	{
		$.iModal({
			type: 'ajax',
			url: 'remote.php?w=selectGiftWrapping&itemId='+itemId
		});
	},

	ToggleGiftWrappingType: function(option)
	{
		if($(option).hasClass('HasPreview')) {
			$('.GiftWrappingPreviewLinks').hide();
			$('#GiftWrappingPreviewLink'+$(option).val()).show();
		}
		else {
			$('.GiftWrappingPreviewLinks').hide();
		}

		if($(option).hasClass('AllowComments')) {
			$(option).parents('.WrappingOption').find('.WrapComments').show();
		}
		else {
			$(option).parents('.WrappingOption').find('.WrapComments').hide();
		}
	},

	ToggleMultiWrapping: function(value)
	{
		if(value == 'same') {
			$('.WrappingOptionsSingle').show();
			$('.WrappingOptionsMultiple').hide();
		}
		else {
			$('.WrappingOptionsSingle').hide();
			$('.WrappingOptionsMultiple').show();
		}
	},

	RemoveGiftWrapping: function(itemId)
	{
		if(confirm(lang.ConfirmRemoveGiftWrapping)) {
			return true;
		}
		else {
			return false;
		}
	},

	ShowEditOptionsInCartForm: function(itemId)
	{
		$.iModal({
			type: 'ajax',
			url: 'remote.php?w=editconfigurablefieldsincart&itemid='+itemId
		});
	},

	DeleteUploadedFile: function(fieldid, itemid)
	{
		if(confirm(lang.DeleteProductFieldFileConfirmation)) {
			$.ajax({
				url: 'remote.php',
				type: 'post',
				data: 'w=deleteuploadedfileincart&field='+fieldid+'&item='+itemid,
				success: function(data) {
					document.getElementById('CurrentProductFile_'+fieldid).value = '';
					$('#CartFileName_'+fieldid).hide();
				}
			});
		}
		return;
	},

	ReloadCart: function()
	{
		window.location = "cart.php";
	}

};