(function($){ 
	$.fn.extend({ 
		flipper: function(options) {
			var defaults = {
					backSrc : 'back.jpg',
					infinite : true,
					bindClass : false
			}				 
			var options =  $.extend(defaults, options);
			var id = 0;
			return this.each(function() {
				$(this).data('flipper.ogW', $(this).width());
				$(this).data('flipper.ogH', $(this).height());
				$(this).data('flipper.ogSrc', $(this).attr('src'));
				$(this).data('flipper.id', ++id);
				$(this).attr('src', options.backSrc);
				if (options.bindClass !== false) $(this).data('flipper.bindClass', options.bindClass);
				var alt = 0;
				$(this).click( function() {
					var flipEl = $(this);
					if (alt%2 == 0) {
						flipEl.animate({height:flipEl.data('flipper.ogH')+'px', width: 0+'px', marginLeft: flipEl.data('flipper.ogW')/2+'px'},140);
						flipEl.attr('src', flipEl.data('flipper.ogSrc'));
						flipEl.animate({height:flipEl.data('flipper.ogH')+'px', width: flipEl.data('flipper.ogW')+'px', marginLeft: 0+'px'},240);
					} else {
						flipEl.animate({height:flipEl.data('flipper.ogH')+'px', width: 0+'px', marginLeft: flipEl.data('flipper.ogW')/2+'px'},140);
						flipEl.attr('src', options.backSrc);
						flipEl.animate({height:flipEl.data('flipper.ogH')+'px', width: flipEl.data('flipper.ogW')+'px', marginLeft: 0+'px'},240);
					}	
					alt++;
					if (options.infinite === false) $(this).unbind('click');
					if (options.bindClass !== false) {
						$(options.bindClass).each(function(el) {
							if ( $(this).data('flipper.id') != flipEl.data('flipper.id') && $(this).data('flipper.ogSrc') == flipEl.data('flipper.ogSrc') ) {$(this).trigger('click'); /*$('<p>'+$(this).data('flipper.id')+'</p>').appendTo('body');*/}
						});
					}
				});
			});
		}
	});
})(jQuery);
