jQuery.fn.extend({
	switchImages: function() {
		var switchEm = function(link, vGallery) {
			var vActive = vGallery.find('.active');
			var json = vGallery.data('json');

			if (link.href != vActive.attr('href') && json.status == 'ok') {
				var vIndex;

				for (var j = 0; j < json.data.length; j++) {
					if (link.href == json.data[j].url) { vIndex = j; }
				}

				vActive
					.removeClass('active')
					.find('.arrow').remove();

				$(link)
					.addClass('active')
					.append('<span class="arrow">&nbsp;</span>');

				$('.large-thumbnail img').fadeOut('fast', function() {
					var i = new Image();
					i.onload = function() {
						$('.large-thumbnail').attr('href', link);
						$('.large-thumbnail img')
								.removeData('cache')
								.attr('src', this.src)
								.fadeIn('fast');
					}

					i.src = json.data[vIndex].urlDetail;
				});
			}
		};

		return this.click(function(event) {
			var vGallery = $(this).parents('#product-image');
			var aUrl = vGallery.find('input.gallery-json').val();
			var link = this;

			if (!vGallery.data('json')) {
				$.ajax({
					type: 'GET',
					dataType: 'json',
					url: aUrl,
					/*beforeSend: function() {
					},*/
					error: function() {
						alert(iUrl);
					},
					/*complete: function() {
					},*/
					success: function(json) {
						vGallery.data('json', json);
						switchEm(link, vGallery);
					}
				});
			}
			else {
				switchEm(link, vGallery);
			}

			event.preventDefault();
		});

	}
});

