vanilla.namespace('biknok.vente');

biknok.vente.detail =
{
    properties : null,

    init : function(properties, articleId)
    {
	this.properties = properties;
	this.view = $("#view-" + properties.viewId);

	/*
	   Images
	*/

	var imgs = $("div.img ul li a", this.view).lightBox
	({
	    imageLoading    : wisy.toURL('/layout/img/lightbox/lightbox-ico-loading.gif'),
	    imageBtnPrev    : wisy.toURL('/layout/img/lightbox/lightbox-btn-prev.gif'),
	    imageBtnNext    : wisy.toURL('/layout/img/lightbox/lightbox-btn-next.gif'),
	    imageBtnClose   : wisy.toURL('/layout/img/lightbox/lightbox-btn-close.gif'),
	    imageBlank      : wisy.toURL('/layout/img/lightbox/lightbox-blank.gif')
	});

	imgs.not(":first").hide();

	if ( imgs.length > 1 )
	{
	    var pastilles = $("<div class=\"pastilles\"></div>").appendTo(imgs.parents("div.img"));

	    // on rajoute des puces
	    imgs.each
	    (
		function(i)
		{
		    i++;
		    pastilles.append("<span class=\"pastille pastille-" + i + "\">" + i + "</span>");
		}
	    );

	    pastilles.find("span").eq(0).addClass("selected");

	    var i = 0;
	    function slide()
	    {
		var last = i;
		i = (i+1) % imgs.length;

		pastilles.find("span").toggleClass("selected", false).eq(i).toggleClass("selected", true);

		imgs.eq(last).fadeOut();
		imgs.eq(i).fadeIn().wait(5000, slide);
	    }

	    imgs.eq(0).wait(3000, slide);
	}

	$("div.img div.more a").click
	(
	    function()
	    {
		imgs.eq(0).click();
	    }
	);

	biknok.vente.popup.init(this.view);

	/*
	   Gestion du bouton favoris
	*/

	var _this = this;

	$("div.action.favoris a").click
	(
	    function()
	    {
		_this.manageFavoris($(this).parent(), articleId);	
	    }
	);

	$("div.action.basket a").click
	(
	    function()
	    {
		_this.manageBasket($(this).parent(), articleId);	
	    }
	);
    },

    manageFavoris : function(div, articleId)
    {
	if ( div.is(".loading") )
	{
	    return;
	}

	div.toggleClass("loading", true);

	var action = div.is(".selected") ? "remove" : "add";
	var _this = this;

	biknok.vente.deamon.manageFavoris
	(
	    articleId, action,

	    // success
	    function(json, top)
	    {
		biknok.common.message.draw(div, json.result);
		div.toggleClass("selected", json.favoris);

		if ( json.result.type == "success" )
		{
		    if ( json.favoris )
		    {
			biknok.common.flyingItem.flyTo("flying-favoris-on", div, top);
		    }
		    else
		    {
			biknok.common.flyingItem.fadeOn("flying-favoris-on", div);
		    }
		}
	    },

	    // error
	    function(request, textStatus, error)
	    {
		biknok.common.message.draw(div, {type:"error", message:"Une erreur est survenue"});
	    },

	    // complete
	    function()
	    {
		div.toggleClass("loading", false);
	    }
	);
    },

    manageBasket : function(div, articleId)
    {
	if ( div.is(".loading") )
	{
	    return;
	}

	div.toggleClass("loading", true);

	var action = div.is(".selected") ? "remove" : "add";
	var _this = this;

	biknok.panier.deamon.manageArticle
	(
	    articleId, action,

	    // success
	    function(json, top)
	    {
		biknok.common.message.draw(div, json.result);
		div.toggleClass("selected", json.panier);

		if ( json.result.type == "success" )
		{
		    if ( json.panier )
		    {
			biknok.common.flyingItem.flyTo("flying-panier-on", div, top);
		    }
		    else
		    {
			biknok.common.flyingItem.fadeOn("flying-panier-on", div);
		    }
		}
	    },

	    // error
	    function(request, textStatus, error)
	    {
		biknok.common.message.draw(div, {type:"error", message:"Une erreur est survenue"});
	    },

	    // complete
	    function()
	    {
		div.toggleClass("loading", false);
	    }
	);
    }
};

biknok.vente.list =
{
    init : function(properties)
    {
	var view = $("#view-" + properties.viewId);
	biknok.vente.popup.init(view);
    }
};

biknok.vente.popup =
{
    init : function(view)
    {
	/*
	   Select de tri
	*/

	var ul		= $("div.tri ul", view);
	var selected	= ul.find("li.selected").text();
	var current	= $("<div class=\"current button\"><a href=\"#\"><span>" + selected + "</span></a></div>");
	var popup	= ul.wrap("<div class=\"select\"></div>").before(current).parent();

	current.find("a").click
	(
	    function(e)
	    {
		ul.slideToggle("fast");
		e.preventDefault();
		e.stopPropagation();
	    }
	);

	$(document).click
	(
	    function(e)
	    {
		if ( ul.is(":visible") && $(e.target).closest("div.select").index(popup) < 0 )
		{
		    ul.slideUp("fast");
		}
	    }
	);
    }
};

