// slightly modified cart.js for nemaco

var initForm = function(e) {
	if ($('#countryCode').val() == 'US'){
		$('#stateTr').show();
		$('#stateTr').addClass('required');
	} else{
		$('#stateTr').hide();
		$('#stateTr').removeClass('required');
	}
	if ($('#deliveryCountryCode').val() == 'US'){
		$('#deliveryStateTr').show();
		$('#deliveryStateTr').addClass('required');
	} else {
		$('#deliveryStateTr').hide();
		$('#deliveryStateTr').removeClass('required');
	}

	if (!$('#deliveryIsInvoice').attr('checked')){
		$('#deliveryAddress').show();
		$('#deliveryStreet, #deliveryStreetNumber, #deliveryZipcode, #deliveryCity, #deliveryCountryCode').addClass('required');
	} else {
		$('#deliveryAddress').hide();
		$('#deliveryStreet, #deliveryStreetNumber, #deliveryZipcode, #deliveryCity, #deliveryCountryCode').removeClass('required');
	}
}

var updateCart = function() {
		$('#cartForm').attr('action','/cart?localAction=updateCart').submit();
	}

var submitCart = function () {
	if ($('#termsAndConditions').is(':checked')) {
		$('#cartForm').attr('action','/cart?localAction=updateCartAndContinue').submit();
	} else {
		alert('U dient akkoord te gaan met de algemene voorwaarden');
	}
	return false;
}

$(document).ready(function(e) {
	$('#editCustomerForm').validate();
	$('#cartForm').validate();

	$('#submitCartForm').click(submitCart);
	$('#updateQuantitiesImg').click(updateCart);
	$('#shippingMethodId').change(updateCart);

	$('.buttonEditCart').click(function() {
		location.href = '/cart';
	});

	$('.buttonEditCustomer, #createNewAccountButton').click(function() {
		location.href = '/cart?localAction=customerEdit';
	});

	$('#buttonSubmitOrder').click(function() {
		location.href = '/cart?localAction=finaliseOrder';
	});

	//this check is needed, or it breaks the script??
	if ($('#paymentMethodId').length > 0) $('#paymentMethodId').rules("add", { required: true });

	$('#deliveryIsInvoice').click(initForm);
	$('#countryCode, #deliveryCountryCode').change(initForm);

	$('#paymentMethodId').change(function() {
		$('#nemacoClientNumber').removeClass('required');
		$('#paymentBankAccount').removeClass('required');
		updateCart();
	});

	initForm(e);

	//non cart shizzle
	// category collection
	$('#mainCategorySearchSelect').change(function() {
		$('#categorySearchSelect').removeOption(/./).addOption('0', '<Categorie>');
		$('#subCategorySearchSelect').removeOption(/./).addOption('0', '<Subcategorie>');
		if($(this).val() > 0) {
			$('#categorySearchSelect').ajaxAddOption('/gateway/json/?webProductCollectionId='+$(this).val(), '', false);
		}
	});

	// subcategory collection
	$('#categorySearchSelect').change(function() {
		$('#subCategorySearchSelect').removeOption(/./).addOption('0', '<Subcategorie>')
		if($(this).val() > 0) {
			$('#subCategorySearchSelect').ajaxAddOption('/gateway/json/?webProductCollectionId='+$(this).val(), '', false);
		}
	});

	// menu effect + IE select box fix
	$("#menu").superfish().find('ul').bgIframe({opacity:false});

	// remove the link from menu's with a submenu, requested #10567454
	//$('#menu > li:has(ul) > a').attr('href', '#');

		// label hiding
	if ($('input.hideMyLabel').val() != '') {
	    $('label.hideMe[for='+$(this).attr('id')+']').hide();
	}
	$('input.hideMyLabel').focus(function() {
	     $('label.hideMe[for='+$(this).attr('id')+']').hide();
	});
	$('input.hideMyLabel').blur(function() {
	     if ($(this).val() == '') {
	         $('label.hideMe[for='+$(this).attr('id')+']').show();
	     }
	});
});