/*
*	isotope.tiles.js	
*	Depends on jquery.isotope.min.js
*
*/

Publicis.namespace('Publicis.Tiles', function ()
{
	var configObj = {

	},init = function ()
	{
		Publicis.Tiles.Resize.Init(function ()
		{
			// Run Isotope
			Publicis.Global.config.$container.isotope(
			{
				itemSelector: Publicis.Global.config.tile_selector,
				layoutMode: 'fitRows',
				animationEngine: 'none',
				transformsEnabled: false,
				animationOptions: {
					queue: false,
					duration: 800,
					easing: 'easeInOutExpo'
				}
			});

			Publicis.NavScroll.UpdateWindowSize();

			// Configure Tile Hover

			Publicis.Global.config.$container.delegate('.tile', 'hover', function ()
			{
				var $this = $(this);

				$this.toggleClass('tile-hover');

			});

			Publicis.Global.config.$container.delegate('.tile', 'click', function ()
			{
				var $this = $(this),
					hash = $.address.value() + $this.attr('data-key');

				$.address.value(hash);

				return false;
			});

			$.address.update();

			$('#loader').hide();

			var doFade = !($('html').is('.ie6,.ie7,.ie8')),
				counter = Publicis.Global.config.$tiles.length;

			var deepLinking = Publicis.Global.config.deepLinking;

			$(Publicis.Global.config.tile_selector).filter(':not(.isotope-hidden)').each(function (idx)
			{
				var that = $(this);

				setTimeout(function ()
				{
					if (doFade && !deepLinking)
					{
						if (counter === idx - 1)
						{
							that.fadeOut(0).css('visibility', 'visible').fadeIn(500, function () { $.address.update(); });
						}
						else
						{
							that.fadeOut(0).css('visibility', 'visible').fadeIn(500);
						}
					}
					else
					{
						that.css('visibility', 'visible');
					}

				}, deepLinking ? 0 : 125 * (idx + 1));
			}).end().filter('.isotope-hidden').css('visibility', 'visible');
		});
	},

	firstUpdate = true,

 	updateTiles = function (filterSelector, contentKey)
 	{
 		Publicis.Global.config.$container.isotope({ filter: filterSelector });

 		if (firstUpdate)
 		{
 			Publicis.Global.config.$container.isotope('option', { animationEngine: 'jquery' });
 		}
 	};
	return {
		initialize: init,
		update: updateTiles
	};
});


