vanilla.namespace('campagnepublique.visuel');

campagnepublique.visuel = 
{
    init : function(properties)
    {
	/*
	   Prévisualisation
	*/

	var view = $("#view-" + properties.viewId);
	var self = this;

	$("ul.visuels li.visuel div.image a", view).click
	(
	    function(e)
	    { 
		e.stopPropagation();
		e.preventDefault();

		var href = $(this).attr("href");
		var title = $(this).attr("alt");

		var img = new Image();
		img.onload = function()
		{
		    var c = $("<div class=\"preview\"></div>").width(img.width)
			.append(img)
			.append($("<div></div>").addClass("legende").text(title) )
			.append($("<a></a>").attr("href", "#").addClass("close").html("<span>Fermer</span>") )
			.click
			(
			    function(e)
			    {   
				e.preventDefault();
				e.stopPropagation();

				campagnepublique.util.overlay.close();
			    }
			);

		    campagnepublique.util.overlay.open(c);	
		};

		campagnepublique.util.overlay.show();
		img.src = href;
	    }
	);
    },

    onFavorisClick : function(a, id)
    {
	var div = $(a).parent();

	if ( div.is(".loading") )
	{
	    return;
	}

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

	campagnepublique.panier.deamon.manageVisuel
	(
	    id, action,

	    // success
	    function(json, top)
	    {
		if ( json.result.type == "success" )
		{
		    div.toggleClass("selected", json.panier);
		    div.find("span").text(json.panier ? "Déselectionner" : "Sélectionner");

		    if ( json.panier ) 
		    {
			var from	= div;
			var to		= top;
			var fromPos	= from.offset();
			var toPos	= to.offset();

			var fly = $("<div></div>")
			    .addClass("flyingItem")
			    .css({position:"absolute", top:fromPos.top, left:fromPos.left})
			    .appendTo($("body"));

			fly.animate
			(
			    {top:(toPos.top+1), left:(toPos.left)}, 700, "easeOutQuad"
			)
			.fadeOut
			(
			    "slow", 
			    function()
			    {
				$(this).remove();
			    }
			);
		    }
		}
	    },

	    // error
	    function(request, textStatus, error)
	    {
		//alert("");
	    },

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

