(function(){

	var Colorpicker = function() {
		// VARIABLES DEFINED HERE ARE PRIVATE

		var checkout_uri_prefix = null;

		function colors() {
			$('.colors a').live('click', function(e) {
				e.preventDefault();

				var color = $(this).attr('class');

				var arrow_left = $(this).position().left + $(this).outerWidth()/2 - 10;

				$('#colorpicker').removeClass().addClass(color);

				$('.color-picked .arrow').css({left:arrow_left});
				$('.color-picked .color').text($(this).find('img').attr('title'));

				$('.no-color').hide();
				$('.color-picked').hide().fadeIn(500);

				loadImgViewer(color);
			});

		}

		function addToCart() {
			$('#colorpicker .color-picked a.add').live('click', function(e) {
				e.preventDefault();

				var html =	'<td class="filled">+</td>'+
							'<td class="filled skin"></td>'+
							'<td class="filled">+</td>'+
							'<td class="filled bag"></td>'+
							'<td class="filled"><a href="#" class="delete"><span>Delete</span></a></td>';

				$('#colorpicker .cart table').removeClass().addClass($('#colorpicker').attr('class'));

				$('#colorpicker .cart td.filled').remove();
				$(html).insertAfter('#colorpicker .cart td:last');
				$('#colorpicker .cart .price.normal').fadeOut(350, function(){
					$('#colorpicker .cart .price.combi').fadeIn(350);
				});

				// update url
				var skin_sku = $('#colorpicker .colors a.'+ $('#colorpicker').attr('class')).attr('rev');
				var sku_uri_segment = '&articles[]=' + skin_sku;

				$('#colorpicker a.checkout').attr('href', checkout_uri_prefix + sku_uri_segment);
			});
		}

		function deleteCart() {
			$('#colorpicker .cart a.delete').live('click', function(e) {
				e.preventDefault();

				$('.color-picked').hide();
				$('.no-color').hide().fadeIn();
				$('#colorpicker .cart td.filled').remove();
				$('#colorpicker .cart .price.combi').fadeOut(350, function(){
					$('#colorpicker .cart .price.normal').fadeIn(350);
				});

				loadImgViewer('default');

				// update url
				$('#colorpicker a.checkout').attr('href',checkout_uri_prefix);
			});
		}

		function imgViewers() {
			$('#colorpicker .img-viewer li a').live('click', function(e) {
				e.preventDefault();
				loadImg($(this));
			});
		}

		function loadImgViewer(className) {
			$('.img-viewer ul').hide();
			$('.img-viewer ul.'+ className).show();
			loadImg($('.img-viewer ul.'+ className + ' a:first'));
		}

		function loadImg(img) {
			var img_uri = $(img).attr('href');
			$('#colorpicker .enlarged img').attr('src', img_uri);
			$(img).closest('li').addClass('active').siblings().removeClass('active');
		}

		$(document).ready(function(){
			checkout_uri_prefix = $('#colorpicker a.checkout').attr('href');
			colors();
			addToCart();
			deleteCart();
			imgViewers();
		});
	}();



})();
