/*	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			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		: 230,        opacity		: 1,        preload		: 0,        anchor_x	: 'left',        anchor_y	: 'bottom',        hover_x		: '0px',        hover_y		: '0px',        overlay  	: '.mosaic-overlay',	//Mosaic overlay		backdrop 	: '.mosaic-backdrop'	//Mosaic backdrop    };        $.fn.mosaic = function(options){        return this.each(function(){            (new $.omr.mosaic(this, options));        });    };    })(jQuery);
