function activateSwatchChoice(productId, groupName, partId) {
	if (!$('#swatchImage_' + String(groupName) + '_' + String(partId)).hasClass('active')) {
		showSwatchLoader();
	
		$('.swatchImage.' + String(groupName) + '.active').each(function(index) { $(this).removeClass('active'); });
		$('#swatchImage_' + String(groupName) + '_' + String(partId)).addClass('active');
		$('#' + String(groupName) + '_partId').val(partId);
		
		if (String(groupName) == "frames") {
			reloadPartBlock('rimChoices', groupName, partId, productId);
		} else
			readSwatchChoices(groupName, productId, partId);
	}
}

function showSwatchLoader() {
	$('#selectorLoader').height($('#swatchBoxes').height());
	$('#selectorLoader').width($('#swatchBoxes').width());
	$('#selectorLoader').css({ display: 'block' });
}

function hideSwatchLoader() {
	$('#selectorLoader').css({ display: 'none' });
}

function readSwatchChoices() {
	var activeFrame = $('.swatchImage.frames.active');
	activeFrame = activeFrame.attr('id').split('_');
	activeFrame = activeFrame[2];
	$('#frames_partId').val(activeFrame);
	
	var activeRims = $('.swatchImage.rims.active');
	if (activeRims.length) {
		activeRims = activeRims.attr('id').split('_');
		activeRims = activeRims[2];
		$('#rims_partId').val(activeRims);
	} else
		$('#rims_partId').val('0')
	
	var activeHandleBars = $('.swatchImage.handlebars.active');
	activeHandleBars = activeHandleBars.attr('id').split('_');
	activeHandleBars = activeHandleBars[2];
	$('#handlebars_partId').val(activeHandleBars);
	
	productId = $('#theProductId').val();
	
	rebuildBuilder();
	
	$.ajax({
		url: 'tickets/engine/services/builderPricingBlock.php',
		type: 'POST',
		data: $('#addProductTickets_' + String(productId)).serializeArray(),
		success: function(transport) {
			if (transport != '')
				$('#currentSelectionPrice').html(transport);
			hideSwatchLoader();
		}
	});
}

function reloadPartBlock(blockId, groupName, partId, productId) {
	$.ajax({
		url: 'tickets/engine/services/reloadPartBlock.php',
		type: 'POST',
		data: [{ name: 'blockId', value: blockId }, { name: 'partId', value: partId }, { name: 'productId', value: productId }],
		success: function(transport) {
			$('#' + String(blockId)).html(transport);
			readSwatchChoices(groupName, partId);
		}
	});
}

function rebuildBuilder() {
	$('#builderCombinedImage').attr('src', 'bike_' + String($('#frames_productId').val()) + '_' + String($('#frames_partId').val()) + '_' + String($('#handlebars_partId').val()) + '_' + String($('#rims_partId').val()) + '.png') 
	/*$.ajax({
		url: 'tickets/engine/services/builderImage.php',
		type: 'POST',
		data: [{ name: 'groupName', value: 'rims' }, { name: 'partId', value: $('#rims_partId').val() }],
		success: function(transport) {
			if (transport != '')
				$('.bigBuilderImage.' + String('rims')).attr('src', transport);
		}
	});
	
	$.ajax({
		url: 'tickets/engine/services/builderImage.php',
		type: 'POST',
		data: [{ name: 'groupName', value: 'frames' }, { name: 'partId', value: $('#frames_partId').val() }],
		success: function(transport) {
			if (transport != '')
				$('.bigBuilderImage.' + String('frames')).attr('src', transport);
		}
	});
	
	$.ajax({
		url: 'tickets/engine/services/builderImage.php',
		type: 'POST',
		data: [{ name: 'groupName', value: 'handlebars' }, { name: 'partId', value: $('#handlebars_partId').val() }],
		success: function(transport) {
			if (transport != '')
				$('.bigBuilderImage.' + String('handlebars')).attr('src', transport);
		}
	});*/
}

function killPartsLoader() {
	$('#partsLoaderBox').fadeOut('fast', function() {
		$('#partsLoaderBox').css({ display: 'none' });
	});
}
