/*

	Mosaic - Sliding Boxes and Captions jQuery Plugin

	Version 1.0.1

	www.buildinternet.com/project/mosaic

	

	By Sam Dunn / One Mighty Roar (www.onemightyroar.com)

	Released under MIT License / GPL License

*/



(function($){



    if(!$.omr){

        $.omr = new Object();

    };

    

    $.omr.mosaic = function(el, options){

    

        var base = this;

       

        // Access to jQuery and DOM versions of element

        base.$el = $(el);

        base.el = el;

       

        // Add a reverse reference to the DOM object

        base.$el.data("omr.mosaic", base);

        

        base.init = function(){

            base.options = $.extend({},$.omr.mosaic.defaultOptions, options);

            

            base.load_box();

        };

        

        // Preload Images

        base.load_box = function(){

        	// Hide until window loaded, then fade in

			if (base.options.preload){

				$(base.options.backdrop, base.el).hide();

				$(base.options.overlay, base.el).hide();

			

				$(window).load(function(){

					// IE transparency fade fix

					if(base.options.options.animation == 'fade' && $(base.options.overlay, base.el).css('opacity') == 0 ) $(base.options.overlay, base.el).css('filter', 'alpha(opacity=0)');

					

					$(base.options.overlay, base.el).fadeIn(200, function(){

						$(base.options.backdrop, base.el).fadeIn(200);

					});

					

					base.allow_hover();

				});

			}else{

				$(base.options.backdrop, base.el).show();

				$(base.options.overlay , base.el).show();

				 

				base.allow_hover();

				

			}

		

        };

        

        // Initialize hover animations

        base.allow_hover = function(){

        	// Select animation

			

				// $(base.el).css("border", "2px dotted blue");

			//var taille=$(base.el).height();

						

						//alert(taille);

						//$(base.options.overlay, base.el).css("height","300");

			switch(base.options.animation){

			

				// Handle fade animations

				case 'fade':

					$(base.el).hover(function () {

						
			        	$(base.options.overlay, base.el).stop().fadeTo(base.options.speed, base.options.opacity);

			        },function () {

			        	$(base.options.overlay, base.el).stop().fadeTo(base.options.speed, 0);

			      	});

			      	

			    	break;

			    

			    // Handle slide animations

	      		case 'slide':

	      			// Grab default overlay x,y position

					startX = $(base.options.overlay, base.el).css(base.options.anchor_x) != 'auto' ? $(base.options.overlay, base.el).css(base.options.anchor_x) : '0px';

					startY = $(base.options.overlay, base.el).css(base.options.anchor_y) != 'auto' ? $(base.options.overlay, base.el).css(base.options.anchor_y) : '0px';

	      			
					
			      	var hoverState = {};

			      	hoverState[base.options.anchor_x] = base.options.hover_x;

			      	hoverState[base.options.anchor_y] = base.options.hover_y;

			      	

			      	var endState = {};

			      	endState[base.options.anchor_x] = startX;

			      	endState[base.options.anchor_y] = startY;

			      	

					$(base.el).hover(function () {

			        	$(base.options.overlay, base.el).stop().animate(hoverState, base.options.speed);

			        },function () {

			        	$(base.options.overlay, base.el).stop().animate(endState, base.options.speed);

			      	});

			      	

			      	break;

			};

        };

        

        // Make it go!

        base.init();

    };

    

    $.omr.mosaic.defaultOptions = {

        animation	: 'fade',

        speed		: 600,

        opacity		: 1,

        preload		: 0,

        anchor_x	: 'left',

        anchor_y	: 'bottom',

        hover_x		: '200px',

        hover_y		: '200px',

        overlay  	: '.mosaic-overlay',	//Mosaic overlay

		backdrop 	: '.mosaic-backdrop'	//Mosaic backdrop

    };

    

    $.fn.mosaic = function(options){

        return this.each(function(){

            (new $.omr.mosaic(this, options));

        });

    };

    

})(jQuery);


