/*
 * SHOPPING
 */
var startVisionneuseShopping = function(item) {
	$('<a href="#">VISIONNEUSE SHOPPING</a>').css({ 
		'display': 'none'
	}).appendTo('body').fancybox({	
		'href': '/visionneuse_shopping',
		'width': 900,
		'height': 580,
		'margin': 0,
		'padding': 0,
		'autoDimensions': false,
		'type': 'ajax',
		'centerOnScroll': true,
		'onComplete': function() {
			$(window).bind('resize.visionneuse', function(){
				resizeShopping();
			});
			$(window).bind('hashchange.visionneuse', function(){
				if( $('#visionneuse .thumbs-shopping li').length==0 ) {
					var params = location.hash.replace(/#(.*)(shopping)=([0-9]+)(.*)/, '$1id=$3$4');
					viewShopping(params);
				}
				else {
					var params = location.hash.replace(/#.*shopping=([0-9]+).*/, 'id=$1');
					viewShopping(params);
				}
			});
			var hash  = $.param(item).replace(/(.*)id=(.*)/, '$1shopping=$2');
			if( '#'+hash==location.hash ) { // si hash déja initialisé : lancer viewShopping
				$(window).trigger('hashchange.visionneuse');
			}
			else {
				location.hash = hash; // changer hash
			}
			$(window).bind('keypress.visionneuse', function(e){
				switch(e.keyCode) {
				case 37:
					if($('#visionneuse-shopping-prev').attr('href')=='#') break;
					location.href = $('#visionneuse-shopping-prev').attr('href');
					break;
				case 39:
					if($('#visionneuse-shopping-next').attr('href')=='#') break;
					location.href = $('#visionneuse-shopping-next').attr('href');
					break;
				}
			});
			$('<a href="#" id="visionneuse-shopping-prev"></a>').appendTo('body');
			$('<a href="#" id="visionneuse-shopping-next"></a>').appendTo('body');
			resizeShopping();
		},
		'onClosed': function() {
			// remove events enregistrés au chargement de la visionneuse
			$(window).unbind('hashchange.visionneuse');
			$(window).unbind('resize.visionneuse');
			$(window).unbind('keypress.visionneuse');
			// réinitialiser le hash
			location.hash = '0';
			// nav
			$('#visionneuse-shopping-prev').remove();
			$('#visionneuse-shopping-next').remove();
		}
	}).click();
}

var resizeShopping = function() {
	// hauteur de la box
	$('#fancybox-content').css('height', 580);
	// nav
	var top = ($(window).height()-$('#visionneuse-shopping-next').height())/2;
	var dist = parseInt( ($(window).width()-$('#visionneuse').width())/2-$('#visionneuse-shopping-next').width()-20 );
	if(dist<0) return;
	$('#visionneuse-shopping-next').css({
		right: dist,
		top: top
	});
	$('#visionneuse-shopping-prev').css({
		left: dist,
		top: top
	});
}

var viewShopping = function(params) {
	$.ajax({
		'url': '/visionneuse_shopping/ajax',
		'data': params,
		'dataType': 'json',
		'success': function(data) {
			// analytics tracking code
			if( typeof _gaq != 'undefined' ) {
				_gaq.push(['_trackPageview', '/shopping/'+data.item.id+'-'+data.item.url]);
			}
			// addthis
			if( typeof addthis != 'undefined' ) {
				var url = 'http://www.ckoitonstyle.com/shopping/'+data.item.id+'-'+data.item.url;
				addthis.toolbox('#addthis-visionneuse', {}, { url:url });
			}
			// mise en place du produit
			$('#visionneuse .shopping .title').html(data.item.title);
			$('#visionneuse .shopping .txt').html(data.item.txt);
			if(data.item.pro) {
				$('<div class="marque">Marque : <a href="/marque/'+data.item.pro.url+'">'+data.item.pro.title+'</a></div>').appendTo($('#visionneuse .shopping .txt'));
			}
			$('#visionneuse .buy').html(data.item.prix+' &euro;');
			if( data.item.www ) {
				$('#visionneuse .image-shopping').html('<a href="'+data.item.www+'" target="_blank"><img src="/mini/400m380/shopping/'+data.item.photo+'" /></a>');
				$('<a href="'+data.item.www+'" target="_blank">acheter en ligne</a>').appendTo($('#visionneuse .buy'));
			}
			else {
				$('#visionneuse .image-shopping').html('<img src="/mini/400m380/shopping/'+data.item.photo+'" />');
			}
			// mise en place des miniatures
			if(data.thumbs) {
				$('#visionneuse .thumbs-shopping').html('<div class="title">'+data.thumbs.title+'</div><ul></ul>');
				var link = '#'+data.thumbs.type+'='+data.thumbs.id+'&shopping=';
				$.each(data.thumbs.items, function(i, e){
					$('#visionneuse .thumbs-shopping ul').append( $('<li id="vshopping-'+e.id+'"><a href="'+link+e.id+'"><img src="/mini/120/shopping/'+e.photo+'"><span>'+e.title+'</span></a></li>') );
				});
				$('#visionneuse .thumbs-shopping ul').css({ 
					'width': $('#visionneuse .thumbs-shopping li').outerWidth(true)*$('#visionneuse .thumbs-shopping li').length+'px' 
				});
			}
			// contenu lié
			$('#visionneuse .related').empty();
			if(data.related) {
				$('#visionneuse .related').html('<div class="tags-label"></div>');
				$.each(data.related, function(i, e){
					$('<a href="'+e.url+'">'+e.tag+'</a>').appendTo($('#visionneuse .tags-label'));
				})
			}
			// photo en cours parmi les miniature
			$('#visionneuse .thumbs-shopping li').removeClass('active');
			$('#visionneuse .thumbs-shopping li').each(function(i){
				if( data.item.id == parseInt($(this).attr('id').replace(/vshopping-/, '')) )
				{
					$(this).addClass('active');
					// navigation
					if( i>0 ) {
						$('#visionneuse-shopping-prev').attr('href', $(this).prev().find('a').attr('href'));
						$('#visionneuse-shopping-prev:hidden').fadeIn();
					}
					else {
						$('#visionneuse-shopping-prev:visible').fadeOut();
					}
					if( i<($('#visionneuse .thumbs-shopping li').length-1) ) {
						$('#visionneuse-shopping-next').attr('href', $(this).next().find('a').attr('href'));
						$('#visionneuse-shopping-next:hidden').fadeIn();
					}
					else {
						$('#visionneuse-shopping-next:visible').fadeOut();
					}
					// calcul de la position idéale
					var v = $('#visionneuse .thumbs-shopping').width(); // largeur de la page affichée
					var w = $('#visionneuse .thumbs-shopping li:first').outerWidth(true); // largeur d'une miniature
					var nb = $('#visionneuse .thumbs-shopping li').length; // nb de miniatures
					var total = w*nb; // largeur de toutes les miniatures
					var offset; // positionnement à gauche de l'ensemble des miniatures
//console.log('i = '+i);
//console.log('total = '+total);
//console.log('v = '+v);
//console.log('w = '+w);
//console.log('nb = '+nb);
					if( total<v || i==0)
					{
						offset = 0;
					}
					else if( i>Math.ceil(nb-(v/w)) ) {
						offset = v-total;
//console.log('^^ cas 2 : '+offset);
					}
					else {
						offset = -w*(i-1);
					}
					$(this).parent().animate({ 'left':offset+'px' });
				}
			});
		},
		'error': function(jqXHR, textStatus) {
			if(textStatus=='parsererror')
				$.fancybox.close();
				//alert(jqXHR.responseText);
		}
	});
}



$(function(){
	// liens
	$('a.box-shopping').click(function(e){
		e.preventDefault();
		// extraire infos depuis le lien
		var href = $(this).attr('href');
		var item = {
			'id': parseInt(href.replace(/\/shopping\/([0-9]+).*/, '$1')),
		};
		if( href.match(/#.*tag=/) )
			item.tag = parseInt(href.replace(/.*#.*tag=([0-9]+).*/, '$1'));
		if( href.match(/#.*content=/) )
			item.content = parseInt(href.replace(/.*#.*content=([0-9]+).*/, '$1'));
		startVisionneuseShopping(item);
	});
	// si ya déja un hash : afficher la visionneuse à l'endroit voulu
	if(location.hash.match(/shopping=[0-9]/)) {
		var item = {
			'id': parseInt(location.hash.replace(/.*shopping=([0-9]+).*/, '$1'))	
		};
		if(location.hash.match(/tag=[0-9]/)) 
			item.tag = parseInt(location.hash.replace(/.*tag=([0-9]+).*/, '$1'));
		if(location.hash.match(/content=[0-9]/)) 
			item.content = parseInt(location.hash.replace(/.*content=([0-9]+).*/, '$1'));
		startVisionneuseShopping(item);
	}
});
