
// WHEN THE PAGE LOADS
$(function(){

	// HIDE THE UPDATE AND EMPTY BUTTONS
	$('.jcart-hide').remove();

	// WHEN AN ADD-TO-CART FORM IS SUBMITTED
	$('form.jcart').submit(function(){

		// GET INPUT VALUES FOR USE IN AJAX POST
		var itemId = $(this).find('input[name=my_item_id]').val();
		var itemPrice = $(this).find('input[name=my_item_price]').val();
		var itemName = $(this).find('input[name=my_item_name]').val();
		var itemQty = $(this).find('input[name=my_item_qty]').val();
		var itemAdd = $(this).find('input[name=my_add_button]').val();
		var itemBlock = $(this).find('input[name=block]').val();
		var checkboxes = $(this).find('input[name=usecheckboxes]').val();
		
		if (checkboxes == null )
			checkboxes = '';

		var newItemId = itemId;
		
		if ( itemBlock == "no" )
		{
			var optie = 0;
			var itemExtra;
			
			while( (itemExtra = $(this).find('select[name=extraoptie'+optie+'] option:selected')).val() != null )
			{
				if (itemExtra.text() != "Geen")
				{
					newItemId += itemExtra.text();
					itemName += " " + itemExtra.text();
					var tempPrice = itemPrice * 1; //convert to number
					var addPrice = itemExtra.val() * 1; //convert to number
					itemPrice = (tempPrice + addPrice).toString();
				}
					optie++;
			}

			itemExtra = $("input:checkbox[id='checkbox_"+checkboxes+"']:checked"); //get all checked checkboxes
			for( i=0; i < itemExtra.length; i++ )
			{
				if (itemExtra[i].title != "Geen")
				{
					newItemId += itemExtra[i].title;
					var tempPrice = itemPrice * 1; //convert to number
					var addPrice = itemExtra[i].value * 1; //convert to number
					itemPrice = (tempPrice + addPrice).toString();
					if (addPrice > 0 )
						itemName += " (" + itemExtra[i].title + " +" + itemExtra[i].value + ")";
					else
						itemName += " (" + itemExtra[i].title + ")";
				}	
			}

			
		newItemId = hex_md5(newItemId); //create a hash for itemID because of all nasty stuff we now include like extra options
				
		// SEND ITEM INFO VIA POST TO INTERMEDIATE SCRIPT WHICH CALLS jcart.php AND RETURNS UPDATED CART HTML
		$.post('jcart/jcart-relay.php', { my_item_id: newItemId, my_item_price: itemPrice, my_item_name: itemName, my_item_qty: itemQty, origItemId: itemId, my_add_button : itemAdd }, function(data) {

			// REPLACE EXISTING CART HTML WITH UPDATED CART HTML
			$('#jcart').html(data);
			$('.jcart-hide').remove();

			});
		}
		// PREVENT DEFAULT FORM ACTION
		return false;

		})


	// WHEN THE VISITOR HITS THEIR ENTER KEY
	// THE UPDATE AND EMPTY BUTTONS ARE ALREADY HIDDEN
	// BUT THE VISITOR MAY UPDATE AN ITEM QTY, THEN HIT THEIR ENTER KEY BEFORE FOCUSING ON ANOTHER ELEMENT
	// THIS MEANS WE'D HAVE TO UPDATE THE ENTIRE CART RATHER THAN JUST THE ITEM WHOSE QTY HAS CHANGED
	// PREVENT ENTER KEY FROM SUBMITTING FORM SO USER MUST CLICK CHECKOUT OR FOCUS ON ANOTHER ELEMENT WHICH TRIGGERS CHANGE FUNCTION BELOW
	$('#jcart').keydown(function(e) {

		// IF ENTER KEY
		if(e.which == 13) {

		// PREVENT DEFAULT ACTION
		return false;
		}
	});


	// JQUERY live METHOD MAKES FUNCTIONS BELOW AVAILABLE TO ELEMENTS ADDED DYNAMICALLY VIA AJAX

	// WHEN A REMOVE LINK IS CLICKED
	$('#jcart a').live('click', function(){

		// GET THE QUERY STRING OF THE LINK THAT WAS CLICKED
		var queryString = $(this).attr('href');
		
		queryString = queryString.split('=');

		// THE ID OF THE ITEM TO REMOVE
		var removeId = queryString[1];
		// SEND ITEM ID VIA POST TO INTERMEDIATE SCRIPT WHICH CALLS jcart.php AND RETURNS UPDATED CART HTML
		$.get('jcart/jcart-relay.php', { jcart_remove: removeId },
			function(data) {

			// REPLACE EXISTING CART HTML WITH UPDATED CART HTML
			$('#jcart').html(data);
			$('.jcart-hide').remove();

			});

		// PREVENT DEFAULT LINK ACTION
		return false;

		})


	// WHEN AN ITEM QTY CHANGES
	$('#jcart input').live('change', function(){

		// GET ITEM ID FROM THE ITEM QTY INPUT ID VALUE, FORMATTED AS jcart-item-id-n
		var updateId = $(this).attr('id');

		updateId = updateId.split('-');

		// THE ID OF THE ITEM TO UPDATE
		updateId = updateId[3];

		// GET THE NEW QTY
		var updateQty = $(this).val();

		// SEND ITEM INFO VIA POST TO INTERMEDIATE SCRIPT WHICH CALLS jcart.php AND RETURNS UPDATED CART HTML
		$.post('jcart/jcart-relay.php', { item_id: updateId, item_qty: updateQty, jcart_update_item: 'Updaten' }, function(data) {
			// REPLACE EXISTING CART HTML WITH UPDATED CART HTML
			$('#jcart').html(data);
			$('.jcart-hide').remove();

			});

		})

	})


