
jQuery.fn.ForceNumericOnly = function() {
    return this.each(function() {
        $(this).keydown(function(e) {
            var key = e.charCode || e.keyCode || 0;
            // allow backspace, tab, delete, arrows, numbers and keypad numbers ONLY
            return (
                key == 8 || 
                key == 9 ||
                key == 46 ||
                (key >= 37 && key <= 40) ||
                (key >= 48 && key <= 57) ||
                (key >= 96 && key <= 105));
        })
    })
};


$(document).ready(function() {
						   
	$('.hideme').hide();
	$("#accordion").accordion({
			autoHeight: false,
			navigation: true
		});
	
	$('.toggler').click(function() {
		$(this).parent('h2').siblings('.toggle').slideToggle();
		return false;
	});
	
	$('#c').change(function() {
		$(this).parent('p').parent('form').submit();
	});
	
	$('.qty').ForceNumericOnly();
	
	$('#paging_container').pajinate();
	
	
	$('.addbasket').click(function() {
		var form = $(this).parent('p').parent('form');
		var lnk = $(this);
		
		if (parseInt($(form).children('#instock').val())) {
			$.ajax({
				type: 'post',
				url: 'ajax_basket.php',
				data: $(form).serialize(),
				dataType: "json",
				success: function(dat) {
					if (dat.status == 'success') {
						$('#basket_count').text('Your Basket: '+dat.basket_count+' Items');
						$(lnk).parent('p').replaceWith('<p>Done! <a href="products.php?sub='+$('#sub_category_id').val()+'" title="Continue shopping">Continue shopping</a> or <a href="basket.php" title="Checkout">checkout?</a></p>');
					}
				}
			});
		}
		
		return false;
	});
	
	
	$('.removebasket').click(function() {
		var tr = $(this).parent('td').parent('tr');
		var qty = $(tr).find('.qty').val();
		var var_id = $(tr).attr('id');
		
		$.ajax({
			type: 'post',
			url: 'ajax_basket.php',
			data: 'var_id='+var_id+'&a=del',
			dataType: "json",
			success: function(dat) {
				if (dat.status == 'success') {
					$('#basket_count').text('Your Basket: '+dat.basket_count+' Items');
					$('#subtotal').text(dat.subtotal);
					$('#vat_total').text(dat.vat_total);
					$('#total').text(dat.total);
					
					$('#shoppingbasket').effect("bounce", { times:2, distance:8 }, 250);
					
					$(tr).fadeOut('slow', function() {
						var num = $(tr).siblings().length;
						if (num > 0) {
							$(tr).remove();
						}
						else {
							$(tr).replaceWith('<tr><td colspan="9" class="emptybasket">Your basket is currently empty.</td></tr>');
						}
					});
				}
			}
		});
		
		
		return false;										
	});
	
	$('.basket_qty').keyup(function() {
		var tr = $(this).parent('td').parent('tr');
		var qty = $(this).val();
		var var_id = $(tr).attr('id');
		//var num = tr.prevAll().length + 1;
		
		if (qty == '' || qty == '0') {
			qty = 1;
		}
		
		$.ajax({
			type: 'post',
			url: 'ajax_basket.php',
			data: 'var_id='+var_id+'&qty='+qty,
			dataType: "json",
			success: function(dat) {
				if (dat.status == 'success') {
					$(tr).find('.item_subtotal').text(dat.item_subtotal);
					$(tr).find('.item_vat').text(dat.item_vat);
					$(tr).find('.item_total').text(dat.item_total);
					
					$('#basket_count').text('Your Basket: '+dat.basket_count+' Items');
					$('#subtotal').text(dat.subtotal);
					$('#vat_total').text(dat.vat_total);
					$('#total').text(dat.total);
				}
			}
		});
		
		return false;										
	});
	
	$('.basket_qty').blur(function() {
		if ($(this).val() == '' || $(this).val() == '0') {
			$(this).val('1');
		}
		
		return false;
	});
	
	$('#checkout').validate();
						  
});

