$(function () {

    $('body').append('<div id="lightbox_video" class="lightbox"></div>'); 
/* setup backurl */
	var hParams = new String(location.hash);
	hParams = hParams.substr(1);
	params = hParams.split(':');
	var pageNumber = 0;
	
	for (var ip in params) {
		vals = params[ip].split('=');
		if (vals[0]=='page') { pageNumber = vals[1]; break;}
	}
	if (pageNumber>0) {
		$('.back a').get(0).href+= '#page'+pageNumber;
	}

	/* sku thumbs */
	$('#sku_thumbs img').click(function(){
        $('#product_img').get(0).src = this.src.replace('thumbnail', 'medium');
	});
	
/*	color functions		*/
	function selectSku(skuId){
		for(var i in Skus[skuId].images) {
			if (Skus[skuId].images[i].default_img) {
				$('#product_img').attr({src:Skus[skuId].images[i].medium});
			}
		}		
		setColor(Skus[skuId].colorNameAlias, -1);
		setSize(Skus[skuId].sizeAlias);
	}
	
	function hideSizes(color){
		$('#size_select li a').each(function(){$(this).addClass('none');});
		for(var i in Skus) if(color==Skus[i].colorNameAlias) $('#size_select .s'+Skus[i].sizeAlias+' a').removeClass('none');
	}

	function hideColors(size){
		$('#colour_select li a').each(function(){$(this).addClass('none');});
		for(var i in Skus) if(size==Skus[i].sizeAlias) $('#colour_select .c'+Skus[i].colorNameAlias+' a').removeClass('none');
	}
	
	function getColorOrSize(obj){
		if (obj.attr('class')) {
			var sColor=$('#colour_select .selected').removeClass('selected');
			var sSize=$('#size_select .selected').removeClass('selected');
			var hColor=$('#colour_select .hover').removeClass('hover');
			var hSize=$('#size_select .hover').removeClass('hover');
	
			var ret=obj.attr('class').substr(1);
			
			sColor.addClass('selected');
			sSize.addClass('selected');
			hColor.addClass('hover');
			hSize.addClass('hover');
	
			return ret;
		}
	}
	
	function setColor(color, doRender){
		$('#colour_select .selected').removeClass('selected');
		$('#colour_select .c'+color).addClass('selected').find('.none').removeClass('none');
		hideSizes(color);
		if($('#size_select .selected .none').length){
			$('#size_select .selected').removeClass('selected');
			$('#size_select a').not('.none').parent('li').eq(0).addClass('selected');
			hideColors(getColorOrSize($('#size_select .selected')));
		}
		if (!doRender || doRender!=-1)
			render();
	}

	function setSize(size, doRender){
		$('#size_select .selected').removeClass('selected');
		$('#size_select .s'+size).addClass('selected').find('.none').removeClass('none');
		hideColors(size);
		if($('#colour_select .selected .none').length){
			$('#colour_select .selected').removeClass('selected');
			$('#colour_select a').not('.none').parent('li').eq(0).addClass('selected');
			hideSizes(getColorOrSize($('#colour_select .selected')));
		}
		if (!doRender || doRender!=-1)
			render();
	}
	
	function render(){
		//$('#small_image_select').remove();
		//$('#sku_price').hide();
		
		if(($('#colour_select .selected').length || $('#colour_select li').length==1)&& ($('#size_select .selected').length || $('#size_select li').length==1)){
			$('.produc_image_container:hidden').slideDown('slow');
			var sku=getSku(getColorOrSize($('#colour_select .selected')),getColorOrSize($('#size_select .selected')));
			CurrentSkuId=Skus[sku].id;
			
			location.hash="#color="+Skus[sku].colorNameAlias+":size="+Skus[sku].sizeAlias;
			//$('#sku_hidden').val(Skus[sku].id);
			if(!$('#small_image_select').length) $('#colour_select').before('<ul id="small_image_select"></ul>');
			$('#small_image_select li').remove();
			if(Skus[sku].images[0]!=undefined){
				disableAddToCart(Skus[sku].disabledAddToCart);
				$('#product_img').attr({src:Skus[sku].images[0].medium});
				$('#jq_zoom').attr({href:Skus[sku].images[0].large}).find('img').attr({src:Skus[sku].images[0].medium});
				if($('.jq_z_zoom_img').length) $('.jq_z_zoom_img').attr({src:Skus[sku].images[0].large});
				$("#jq_zoom").jq_z_zoom({img_w:750,img_h:557,lnk_w:350,lnk_h:260});
				for(var i in Skus[sku].images){
					$('#small_image_select').append('<li><a href="'+Skus[sku].images[i].medium+'" ' + (Skus[sku].images[i].default_img ? 'class="selected"' : '') + '><img src="'+Skus[sku].images[i].small+'" alt=""/></a></li>');
					if(Skus[sku].images[i].default_img){
						$('#product_img').attr({src:Skus[sku].images[i].medium});
						$('#jq_zoom').attr({href:Skus[sku].images[i].large}).find('img').attr({src:Skus[sku].images[i].medium});
						if($('.jq_z_zoom_img').length) $('.jq_z_zoom_img').attr({src:Skus[sku].images[i].large});
						$("#jq_zoom").jq_z_zoom({img_w:750,img_h:557,lnk_w:350,lnk_h:260});
					}
				}
			}else{
				if(Skus[default_sku]!=undefined){
					disableAddToCart(Skus[default_sku].disabledAddToCart);
					if(Skus[default_sku].images[0]!=undefined){
						$('.produc_image_container:hidden').slideDown('slow');
						$('#product_img').attr({src:Skus[default_sku].images[0].medium});
						$('#jq_zoom').attr({href:Skus[default_sku].images[0].large}).find('img').attr({src:Skus[default_sku].images[0].medium});
						if($('.jq_z_zoom_img').length) $('.jq_z_zoom_img').attr({src:Skus[default_sku].images[0].large});
						$("#jq_zoom").jq_z_zoom({img_w:750,img_h:557,lnk_w:350,lnk_h:260});
						for(var i in Skus[default_sku].images){
							$('#small_image_select').append('<li><a href="'+Skus[default_sku].images[i].medium+'" ' + (Skus[default_sku].images[i].default_img ? 'class="selected"' : '') + '><img src="'+Skus[default_sku].images[i].small+'" alt=""/></a></li>');
							if(Skus[default_sku].images[i].default_img){
								$('#product_img').attr({src:Skus[default_sku].images[i].medium});
								$('#jq_zoom').attr({href:Skus[default_sku].images[i].large}).find('img').attr({src:Skus[default_sku].images[i].medium});
								if($('.jq_z_zoom_img').length) $('.jq_z_zoom_img').attr({src:Skus[default_sku].images[i].large});
								$("#jq_zoom").jq_z_zoom({img_w:750,img_h:557,lnk_w:350,lnk_h:260});
							}
						}
					}else{
						$('.produc_image_container:visible').slideUp('slow');
					}
				}
			}
			if(!$('#small_image_select .selected').length) $('#small_image_select li:first a').addClass('selected');
			$('#small_image_select a').hover(function(){
				$(this).addClass('hover');
			},function(){
				$(this).removeClass('hover');
			}).click(function(event){
				event.preventDefault();
				$('#small_image_select .selected').removeClass('selected');
				$(this).addClass('selected');
				$('#product_img').attr({src:$(this).attr('href')});
				for(var i in Skus[sku].images){
					//if($(this).attr('href')==Skus[sku].images[i].medium){
					if($(this).attr('href').search(Skus[sku].images[i].medium)>=0){		// IE fixed
						$('#jq_zoom').attr({href:Skus[sku].images[i].large}).find('img').attr({src:Skus[sku].images[i].medium});
						if($('.jq_z_zoom_img').length) $('.jq_z_zoom_img').attr({src:Skus[sku].images[i].large});
						$("#jq_zoom").jq_z_zoom({img_w:750,img_h:557,lnk_w:350,lnk_h:260});
						break;
					}
				}
			}).find('[href@]').addClass('selected');
			if(Skus[sku].price_original){
				$('#sku_price').show().find('.old').show();
				$('#sku_price').show().find('.old').html(Skus[sku].price);
				$('#sku_price').show().find('.new').html(Skus[sku].price_original);
				$('#sku_price').show().find('.new').attr("style", "color:#c00;")
			}else{
				$('#sku_price').show().find('.old').hide();
				$('#sku_price').show().find('.new').html(Skus[sku].price);
				$('#sku_price').show().find('.new').attr("style", "color:#94b70c;")
			}
			showVideo(CurrentSkuId);
		}
	}
	
	function getSku(color, size){
        for(var i in Skus) {
        	if(Skus[i].colorNameAlias==color&&Skus[i].sizeAlias==size) return i;
        }
	}
/*	color constructor	*/
	var isColor=false;
	var isSize=false;
	var empty=true;
	for(var i in Skus){
		if(Skus[i].colorNameAlias!='') isColor=true;
		if(Skus[i].sizeAlias!='') isSize=true;
		empty = false;
	}
	$('#color_hidden').val('');
	$('#size_hidden').val('');
	$('#colour_select').append('<ul></ul>');
	$('#size_select').append('<ul></ul>');
	var colors=new Array();
	var sizes=new Array();
	for(var i in Skus){
		for(var img in Skus[i].images){
			$('body').append('<div style="display:none;"><img src="'+Skus[i].images[img].medium+'"></div>');
			$('body').append('<div style="display:none;"><img src="'+Skus[i].images[img].small+'"></div>');
			$('body').append('<div style="display:none;"><img src="'+Skus[i].images[img].large+'"></div>');
		}
		var tmpbool=true;
		for(var c in colors){if(colors[c]==Skus[i].colorNameAlias){tmpbool=false; break;}}
		if(tmpbool){
			colors.push(Skus[i].colorNameAlias);
			iUrl = Skus[i].images[0] ? Skus[i].images[0].medium : '#';
			$('#colour_select ul').append('<li class="c'+Skus[i].colorNameAlias+'"><a id="'+i.substring(3)+'" href="'+ iUrl +'" style="background:#'+Skus[i].color+';"><!----></a></li>');
		}
		tmpbool=true;
		for(var s in sizes){if(sizes[s]==Skus[i].sizeAlias){tmpbool=false; break;}}
		if(tmpbool){
			sizes.push(Skus[i].sizeAlias);
			$('#size_select ul').append('<li class="s'+Skus[i].sizeAlias+'"><a href="#" id="'+i.substring(3)+'">'+Skus[i].size+'</a></li>');
		}
	}
	if(!isColor){
		$('#colour_select h4').hide();
		$('#colour_select li').hide();
	}
	if(!isSize){
		$('#size_select h4').hide();
		$('#size_select li').hide();
	}
	if (!empty) {
		var sku_hash=location.hash;
		var col_pattern=new RegExp("color=(.+)");
		var size_pattern=new RegExp(":size=(.+)");
		var selected = false;
		if(col_pattern.test(sku_hash)){
			if(size_pattern.test(sku_hash)){
				col_pattern=new RegExp("color=(.+):");
				if (col_pattern.test(sku_hash)) {
					selectSku(getSku(col_pattern.exec(sku_hash)[1],size_pattern.exec(sku_hash)[1]));
				}
			}else{
				col_pattern1=new RegExp("color=(.+):");
				if (col_pattern1.exec(sku_hash)) col_pattern = col_pattern1;
				for(var sss in Skus){
					if(col_pattern.exec(sku_hash)[1]==Skus[sss].colorNameAlias){
						selectSku(sss);
						selected = true;
						break;
					}
				}
			}
		}
		if (!selected) {
			if(Skus[default_sku]!=undefined){
				selectSku(default_sku);
			}else{
				for(var sss in Skus){
					selectSku('id_'+Skus[sss].id);
					break;
				}
			}
		}
	}

	$('.product_view').append('<div class="clear"><!----></div>');
/*	color events	*/
	$('#colour_select a').hover(
		function(){
			hideSizes(getColorOrSize($(this).parent()));
			$(this).parent().addClass('hover');
		},
		function(){
			$(this).parent().removeClass('hover');
			if($('#colour_select .selected').length){
				hideSizes(getColorOrSize($('#colour_select .selected')));
			}else{
				hideColors(getColorOrSize($('#size_select .selected')));
			}
		}
	).click(function(event){
		event.preventDefault();
		setColor(getColorOrSize($(this).parent()));
//		showVideo(this.id);
	});

	$('#size_select a').hover(
		function(){
			hideColors(getColorOrSize($(this).parent()));
			$(this).parent().addClass('hover');
		},
		function(){
			$(this).parent().removeClass('hover');
			if($('#size_select .selected').length){
				hideColors(getColorOrSize($('#size_select .selected')));
			}else{
				hideSizes(getColorOrSize($('#colour_select .selected')));
			}
		}
	).click(function(event){
		event.preventDefault();
		setSize(getColorOrSize($(this).parent()));
//		showVideo(this.id);
	});

/*	/color block*/

	$('body').append('<div id="lightbox_2" class="lightbox"></div>');

	$("#jq_zoom").jq_z_zoom({
		img_w:750,
		img_h:557,
		lnk_w:350,
		lnk_h:260
	});
	$('#lightbox_2_big').jqm({
		trigger: '#zoom_open a',
		closeClass: 'close'
	});
	$('#lightbox_info').jqm({closeClass: 'close'});
	
	// SPAM friend	
	$('#lightbox_tell_friend').jqm({
		trigger: '#report_to_friend a',
		closeClass: 'close'
	});	
	
	$('#lightbox_tell_friend button').click(function () {
		if ($('#friend_form').validate().form()) {
			$('#lightbox_tell_friend').jqmHide();
			$('#friend_form').ajaxSubmit({'clearForm': false});
		}
	});
	
	// Adding into cart
	
	$lp = $('#lightbox_personalization');
	if ($lp.length) {
		$lp.jqm({
			trigger: '#add_to_cart',
			closeClass: 'close'
		});
		$('#lightbox_personalization button[@type="submit"]').click(function (e) {
			if ($('#personalization').validate().form()) {
				e.preventDefault();
				$('#id_sku').val(CurrentSkuId);
				$('#lightbox_addtocart').jqm({closeClass: 'close'});
				$('#lightbox_personalization').jqmHide();
				$('#lightbox_addtocart').jqmShow();
				
				$('#lightbox_personalization form').ajaxSubmit({
					dataType: 'json',
					resetForm: true,
					success: addResponse
				});
			}
		});
	} else {
		$('#lightbox_addtocart').jqm({closeClass: 'close'});
		$('#add_to_cart').click(function(event){
			event.preventDefault();
			$('#lightbox_addtocart p.process').show();
			$('#lightbox_addtocart p.completed').hide();
			$('#confirm_to_cart')
				.unbind('click')
				.click(function (e) {e.preventDefault()})
				.parent().addClass('disabled');			
			$('#lightbox_addtocart').jqmShow();
			$.getJSON(
				CartControllerUrl + 'add',
				{id_sku: CurrentSkuId},
				addResponse
			);
		});
	}
});

var CurrentSkuId;

function addResponse(r){
	$('#lightbox_addtocart .buttons a').click(function(event){
		event.preventDefault();
		$('#lightbox_addtocart').jqmHide();
		//addToCart($(this).attr('href'));
		if($(this).attr('href')!='') window.location.href=$(this).attr('href');
	});
	if (r.error) {
		//$('#lightbox_info h2').text(Tr['lightbox-error-title'].replace(/%number%/g, r.error.number));
		$('#lightbox_addtocart p').html(r.error.message);
		if (r.error.number == 101) {
			disableAddToCart(true, r.id_sku);
		}
	} else {
		//$('#lightbox_info h2').text(Tr['lightbox-info-title']);
		$('#lightbox_addtocart p.process').hide();
		$('#lightbox_addtocart p.completed').show();
		$('#confirm_to_cart')
			.unbind('click')
			.parent().removeClass('disabled');
		$('#bag_amount').text(r.count);
	}
	//$('#lightbox_info').jqmShow();
}

function showVideo(skuId)
{
	if (Videos[skuId]) {
		var video = Videos[skuId];
		$('#small_image_select').append('<li><a id="'+skuId+'" class="video" href="#"><img src="'+video['preview']+'" /></a></li>');
		
		$('#lightbox_video').css({
            width: 500,
            height: 400,
			overflow:'hidden'
        });
		var myClose=function(hash) {
			hash.w.hide();
			hash.o.remove();
			$('#lightbox_video iframe').remove();
		};
        $('#lightbox_video').jqm({
			trigger: '#small_image_select li a.video', 
			ajax: '/fr/commerce/catalog/productvideo?href='+video['video']+'&thumb='+video['preview'],
			closeClass:'close',
			onHide:myClose
		});		
		$('#small_image_select li a.video').click(function(event){
			event.preventDefault();
			$('#lightbox_video').jqmShow(); 
		});
	}
}

function disableAddToCart(disable, id_sku)
{
	$('#add_to_cart').attr('disabled', disable);
	if (id_sku) {
		Skus['id_'+id_sku].disabledAddToCart = disable;
	}
	if (disable)
		$('#add_to_cart').parent().addClass('disabled');
	else
		$('#add_to_cart').parent().removeClass('disabled');
}