$(document).ready(function() {
	// setup for merchandise item page
	$("#merchandise").each(function() {
		if(document.location.search.match(/&tickets=(\d+\.\d+;)*(\d+\.\d+)$/)) {
			var matches = /&tickets=((\d+\.\d+;)*(\d+\.\d+))$/.exec(document.location.search);
			var tickets = matches[1].split(';');
			tickets_to_add = {};
			for(var i = 0; i < tickets.length; i++) {
				var ticket_id = tickets[i].split('.')[0];
				var ticket_quantity = tickets[i].split('.')[1];
				tickets_to_add[ticket_id] = ticket_quantity;
			}
			tickets_to_add.size = tickets.length;
		}
	});
	
	// Thumbnail click in merchandise index
	$("DIV.roundedBox1 #prodContainer [id^='merchandise-thumbnail-']").click(function() {
		var parts = this.id.split("-");
		var id = parts[2];
		
		$(this).parent().parent().parent().children("DIV.image").addClass('hidden');
		$(this).parent().parent().parent().children("#merchandise-image-" + id).removeClass('hidden');

		return false;
	});
	
	// Other items links in merchandise item page
	$("A[id^='more-info-']").click(function() {
		var parts = this.id.split("-");
		var id = parts[2];
		var tickets = [];
		var tickets_str = '';
		
		if(tickets_to_add.size > 0) {
			for(var ticket_id in tickets_to_add) {
				if(ticket_id.match(/^\d+$/)) {
					tickets.push(ticket_id+'.'+tickets_to_add[ticket_id]);
				}
			}

			if(tickets.length > 0) {
				tickets_str = '&tickets='+tickets.join(';');
			}
		}
		
		document.location = '/merchandise/item/?id='+id+tickets_str;
		
		return false;
	});

	$("DIV.merchandise-shop DIV.image IMG.image").hover(function() {
		$(this).parent().children(".zoom").css('visibility', 'visible');
	}, function() {
		$(this).parent().children(".zoom").css('visibility', 'hidden');
	});

	$("DIV.merchandise-shop DIV.image IMG.image").click(function() {
		var parts = $(this).parent().attr('id').split("-");
		var id = parts[2]; 
			
		$.facebox({image:'/uploaded_images/cache/fitw_640x480_'+id+'.jpg'});
	});

	$("#skip-merchandise-link").click(function() {
		if(tickets_to_add.size > 0) {
			var index = 0;
			for(var ticket_id in tickets_to_add) {
				if(ticket_id.match(/^\d+$/)) {
					$("#merchandise").hfeSet('ticket_id_'+index, ticket_id).hfeSet('ticket_quantity_'+index, tickets_to_add[ticket_id]);
				}
				index++;
			}
			$("#merchandise SELECT[name^='merchandise_']").attr('name', '');
			$("#merchandise").attr('action', '/buy_tickets/shopping_basket/').submit();
		} else {
			document.location = '/buy_tickets/shopping_basket/';
		}
	});

	/* Item details page */
	
	// ask a question
	$("#merchandise #merchandise-question").click(function(event) {
		document.location = "/merchandise/item/question/?id="+$("#merchandise #item_id").val();
		event.preventDefault();
	});
	
	// add any selected variants to basket
	$("#merchandise #merchandise-add").click(function() {
		if(tickets_to_add.size > 0) {
			var index = 0;
			for(var ticket_id in tickets_to_add) {
				if(ticket_id.match(/^\d+$/)) {
					$("#merchandise").hfeSet('ticket_id_'+index, ticket_id).hfeSet('ticket_quantity_'+index, tickets_to_add[ticket_id]);
				}
				index++;
			}
		}
		$("#merchandise").attr('action', '/buy_tickets/shopping_basket/').submit();
	});

	// go back to merchandise index
	$("#merchandise #merchandise-index").click(function() {
		document.location = '/merchandise/';
		return false;
	});

	// skip to basket without adding any items
	$("#merchandise #merchandise-skip").click(function() {
		if(tickets_to_add.size > 0) {
			var index = 0;
			for(var ticket_id in tickets_to_add) {
				if(ticket_id.match(/^\d+$/)) {
					$("#merchandise").hfeSet('ticket_id_'+index, ticket_id).hfeSet('ticket_quantity_'+index, tickets_to_add[ticket_id]);
				}
				index++;
			}
			$("#merchandise SELECT[name^='merchandise_']").attr('name', '');
			$("#merchandise").attr('action', '/buy_tickets/shopping_basket/').submit();
		} else {
			document.location = '/buy_tickets/shopping_basket/';
			return false;
		}
	});
	
	// keep track of items count and update "Add to basket button"
	var initialCount = itemsCount();
	updateSubmitButton();
	
	jQuery("#merchandise").change(function() {
		updateSubmitButton();
	});
	
	function updateSubmitButton() {
		var selectedItems = itemsCount();
		
		if(initialCount > 0) {
			jQuery("#merchandise #merchandise-add").val('Update trolley');
		} else if((initialCount == 0) && (selectedItems > 0)) {
			jQuery("#merchandise #merchandise-add").val('Add to trolley');
		} else {
			jQuery("#merchandise #merchandise-add").val('Add to trolley');
		}
	}
	
	function itemsCount() {
		var selectedItems = 0;
		jQuery("#merchandise .count").each(function() {
			if(jQuery(this).val() > 0) {
				selectedItems += parseInt(jQuery(this).val());
			}
		});
		return selectedItems;
	}
	
	// animate skip to basket link
	if($("#skip-merchandise-link").size() > 0) {
		animateSkipLinkCount = 0;
		
		animateSkipLink = function() {
			if(animateSkipLinkCount < 5) {
				$("#skip-merchandise-link").animate({left: '5px'}, 200).animate({left: '0px'}, 200).animate({left: '5px'}, 200).animate({left: '0px'}, 200);
			}
			animateSkipLinkCount++;
		};
		
		animateSkipLink();
		setInterval("animateSkipLink();", 3000);
	}
	
	$("DIV.merchandise-shop DIV.menu > UL > LI").mouseenter(function() {
		$("LI", $(this).parent()).removeClass('mouse-over');
		$(this).addClass('mouse-over');
	}).mouseleave(function() {
		$(this).removeClass('mouse-over');
	});
	
	$("#search-merchandise").focus(function() {
		if($(this).val() == 'Search by pack name or music genre') {
			$(this).val('');
		}
		$(this).addClass('active');
	}).blur(function() {
		if($(this).val() == '') {
			$(this).val('Search by pack name or music genre');
		}
		$(this).removeClass('active');
	});
});

