﻿/*
* 		Developed by Josh Wilkerson
*			Powerserve
*			www.powerserve.net / 
*		Based on SlidingGallery by Justin Mead
*       	©2009 MeadMiracle
*			www.meadmiracle.com / meadmiracle@gmail.com
*      		Version 1.0
*       	Licensed under the Creative Commons GPL http://creativecommons.org/licenses/GPL/2.0/
*
*       OPTIONS LISTING:
*			*container				- select the Container name
*			*containerHeight		- Set to ontainer height
*			*containerWidth			- set to container width
*           *iHeight, iWidth		- the height and width to use for the center image
*           *shrink					- the function to use when shrinking an image to a smaller size.
*			*useZoom				- True to use zoom / False do not use zoom
*           *zoom					- the function to use when enlarging an image for the zoom view.
*           *zoomSpeed				- the animation speed of zooming. use jQuery animation speed values
*           *startRandom			- Set to true to start with random images or false to start with 1st image
*           *slideSpeed				- the animation speed of sliding. use jQuery animation speed values
*           *gutterWidth			- the horizontal distance between each of the images. use a pixel value		
*			*sideImgOpacity			- Sets the opacity of the side images
*			*useButtons				- set to true to use prev & next buttons / set to false to not use prev & next buttons
*			*buttonWidth			- set prev & next buttons widths
*			*buttonHeight			- set prev & next buttons height
*           *useCaptions			- allow captions to be shown
*           *captionClass			- the CSS class to apply to the captions
*           *captionTextAttribute	- the attribute containing the text to use in captions
*			*captionFadeSpeed		- Caption Fade to next speed
*			*captionOpacity			- Set the opacity to the caption
*			*captionPadding			- Set to same as css padding for caption
*
*       All options have default values, and as such, are optional.  Check the 'options' JSON object below to see the defaults.
*/

(function($) {
    $.galleryUtility = {};
    $.galleryUtility.centerImage = {};
    $.galleryUtility.rightImage = {};
    $.galleryUtility.leftImage = {};
    $.galleryUtility.rightImageStorage = {};
    $.galleryUtility.leftImageStorage = {};
    $.galleryUtility.zoomImage = {};
    $.galleryUtility.gallery = {};

    $.galleryUtility.Options = {
        container				: 'gallery',
		containerHeight			: 200,
		containerWidth			: 400,
        iHeight					: 300,
        iWidth					: 400,
		shrink					: .75,
		useZoom					: false,
		zoom					: 2,
        zoomSpeed				: 'fast',
        startRandom				: false,
        slideSpeed				: 'normal',
        autoSlide				: false,
        autoSlideSpeed			: 5000,
        gutterWidth				: 50,
		sideImgOpacity			: .50,
		useButtons				: true,
		buttonWidth				: 40,
		buttonHeight			: 40,
        useCaptions				: false,
	    captionClass			: 'caption',
        captionTextAttribute	: 'description',
		captionFadeSpeed		: 250,
		captionOpacity			: .50,
		captionPadding			: 10
    };
    $.fn.slidingGallery = function(options) {
		
		//global settings
        $.extend($.galleryUtility.Options, options);
        $('.' + $.galleryUtility.Options.container).css('position', 'relative');
		$.galleryUtility.gallery = $(this).children().css('cursor', 'pointer');
        //setup existing images
        var lastIndex = 0;
        var gallerySize = $.galleryUtility.gallery.each(function(i) {
            $(this).attr({
                'index': i,
                'prev': (i - 1),
                'next': (i + 1)
            }).css('position', 'absolute');
            lastIndex = i;
        }).hide().size();
		
		
        //fill in gallery with duplicates until there are at least 7
        var currIndex = 0;
        while (gallerySize < 5) {
            var $clone = $.galleryUtility.gallery.filter('[index=' + currIndex + ']').clone().attr({
                'index': lastIndex + 1,
                'prev': lastIndex,
                'next': lastIndex + 2
            });
            $.galleryUtility.gallery.filter('[index=' + (lastIndex) + ']').after($clone);
            $.galleryUtility.gallery = $.galleryUtility.gallery.add('img[index=' + (lastIndex + 1) + ']');
            lastIndex++;
            currIndex++;
            gallerySize++;
        }
		
		
		$.galleryUtility.gallery.filter('[index=' + lastIndex + ']').attr('next', 0);
        $.galleryUtility.gallery.filter('[index=0]').attr('prev', lastIndex);
		
        $.galleryUtility.definePositions(); 
		
        //set images
		if ($.galleryUtility.Options.startRandom == true){
			randonIndex = (Math.floor(Math.random()*gallerySize));
			$.galleryUtility.setCenter($.galleryUtility.gallery.filter('[index=' + randonIndex + ']').show());
		} else {
			$.galleryUtility.setCenter($.galleryUtility.gallery.filter('[index=0]').show());
		}
        $.galleryUtility.setLeft($.galleryUtility.gallery.filter('[index=' + $.galleryUtility.centerImage.image.attr('prev') + ']').show());
        $.galleryUtility.setRight($.galleryUtility.gallery.filter('[index=' + $.galleryUtility.centerImage.image.attr('next') + ']').show());
        $.galleryUtility.setLeftStorage($.galleryUtility.gallery.filter('[index=' + $.galleryUtility.leftImage.image.attr('prev') + ']'));
        $.galleryUtility.setRightStorage($.galleryUtility.gallery.filter('[index=' + $.galleryUtility.rightImage.image.attr('next') + ']'));

        //bind events
        $.galleryUtility.leftImage.image.one('click', $.galleryUtility.slideRight);
        $.galleryUtility.rightImage.image.one('click', $.galleryUtility.slideLeft);
        $.galleryUtility.centerImage.image.one('click', $.galleryUtility.zoomIn);
        $.galleryUtility.centerImage.image.one('click', $.galleryUtility.getUrl);
		
		if ($.galleryUtility.Options.autoSlide == true){
			autoSlideInt = setInterval($.galleryUtility.slideLeft, $.galleryUtility.Options.autoSlideSpeed);
			$(this).bind({
				mouseenter: function() {
					clearInterval (autoSlideInt);
				},
				mouseleave: function() {
						autoSlideInt = setInterval($.galleryUtility.slideLeft, $.galleryUtility.Options.autoSlideSpeed);
				}
			});


		}
		
		
		$(window).load(function() {
			$.galleryUtility.slideLeft();
            $.galleryUtility.definePositions();
        });
        //return the objects (for chaining purposes)
        return $(this);
		
    };
	
/***********Sliding Right***********/
    $.galleryUtility.slideRight = function() {
        var liLeft = $.galleryUtility.leftImage.left($.galleryUtility.leftImageStorage.image, $.galleryUtility.leftImage.image);
        var riLeft = $.galleryUtility.rightImage.left($.galleryUtility.leftImage.image);
        var risLeft = $.galleryUtility.rightImageStorage.left($.galleryUtility.centerImage.image);
	
		var altText = $.galleryUtility.leftImage.image.attr($.galleryUtility.Options.captionTextAttribute);
		var CaltText = $.galleryUtility.centerImage.image.attr($.galleryUtility.Options.captionTextAttribute);
		var classname = $.galleryUtility.Options.captionClass;
		var captionFadeSpeed = $.galleryUtility.Options.captionFadeSpeed;
		var captionOpacity = $.galleryUtility.Options.captionOpacity;	
		$('.' + classname).fadeTo(captionFadeSpeed,0, function() {
			$(this).html(altText).fadeTo(captionFadeSpeed,captionOpacity);
		});

		$.galleryUtility.leftImageStorage.image.css('z-index',1).animate({
			'top': $.galleryUtility.leftImage.Ltop,
			'left': liLeft,
			'height': $.galleryUtility.leftImage.iHeight,
			'width': $.galleryUtility.leftImage.iWidth,
			'opacity': $.galleryUtility.Options.sideImgOpacity
		},
		$.galleryUtility.Options.slideSpeed, 'linear', function() {
			$(this).one('click', $.galleryUtility.slideRight);
		});
		$.galleryUtility.leftImage.image.unbind().animate({
			'top': $.galleryUtility.centerImage.Ltop,
			'left': $.galleryUtility.centerImage.Lleft,
			'height': $.galleryUtility.centerImage.iHeight,
			'width': $.galleryUtility.centerImage.iWidth,
			'opacity': 1
		},
		$.galleryUtility.Options.slideSpeed, 'linear', function() {
			$(this).one('click', $.galleryUtility.zoomIn);
			$(this).one('click', $.galleryUtility.getUrl);
		}).css('z-index',90);
		$.galleryUtility.centerImage.image.unbind().css('z-index',1).animate({
			'top': $.galleryUtility.rightImage.Ltop,
			'left': riLeft,
			'height': $.galleryUtility.rightImage.iHeight,
			'width': $.galleryUtility.rightImage.iWidth,
			'opacity': $.galleryUtility.Options.sideImgOpacity
		},
		$.galleryUtility.Options.slideSpeed, 'linear', function() {
			$(this).one('click', $.galleryUtility.slideLeft);
		});
		$.galleryUtility.rightImage.image.unbind().animate({
			'top': $.galleryUtility.rightImageStorage.Ltop,
			'left': risLeft,
			'height': $.galleryUtility.rightImageStorage.iHeight,
			'width': $.galleryUtility.rightImageStorage.iWidth,
			'opacity': 'hide'
		},
		$.galleryUtility.Options.slideSpeed, 'linear');
        $.galleryUtility.rightImageStorage.image = $.galleryUtility.rightImage.image;
        $.galleryUtility.rightImage.image = $.galleryUtility.centerImage.image;
        $.galleryUtility.centerImage.image = $.galleryUtility.leftImage.image;
        $.galleryUtility.leftImage.image = $.galleryUtility.leftImageStorage.image;
        $.galleryUtility.setLeftStorage($.galleryUtility.gallery.filter('[index=' + $.galleryUtility.leftImageStorage.image.attr('prev') + ']'));
    };

/***********Sliding Left***********/
    $.galleryUtility.slideLeft = function() {
        var riLeft = $.galleryUtility.rightImage.left($.galleryUtility.rightImage.image);
        var liLeft = $.galleryUtility.leftImage.left($.galleryUtility.centerImage.image, $.galleryUtility.rightImage.image);
        var lisLeft = $.galleryUtility.leftImageStorage.left($.galleryUtility.leftImage.image, $.galleryUtility.centerImage.image, $.galleryUtility.rightImage.image);
		
		var altText = $.galleryUtility.rightImage.image.attr($.galleryUtility.Options.captionTextAttribute);
		var classname = $.galleryUtility.Options.captionClass;
		var captionFadeSpeed = $.galleryUtility.Options.captionFadeSpeed
		var captionOpacity = $.galleryUtility.Options.captionOpacity		
		$('.' + classname).fadeTo(captionFadeSpeed,0, function() {
			$(this).html(altText).fadeTo(captionFadeSpeed,captionOpacity);
		});
			
		$.galleryUtility.rightImageStorage.image.css('z-index',1).animate({
			'top': $.galleryUtility.rightImage.Ltop,
			'left': riLeft,
			'height': $.galleryUtility.rightImage.iHeight,
			'width': $.galleryUtility.rightImage.iWidth,
			'opacity': $.galleryUtility.Options.sideImgOpacity
		},
		$.galleryUtility.Options.slideSpeed, 'linear', function() {
			$(this).one('click', $.galleryUtility.slideLeft);
		});
		$.galleryUtility.rightImage.image.unbind().animate({
			'top': $.galleryUtility.centerImage.Ltop,
			'left': $.galleryUtility.centerImage.Lleft,
			'height': $.galleryUtility.centerImage.iHeight,
			'width': $.galleryUtility.centerImage.iWidth,
			'opacity': 1
		},
		$.galleryUtility.Options.slideSpeed, 'linear', function() {
			$(this).one('click', $.galleryUtility.zoomIn);
			$(this).one('click', $.galleryUtility.getUrl);
		}).css('z-index',90);	
		$.galleryUtility.centerImage.image.unbind().css('z-index',1).animate({
			'top': $.galleryUtility.leftImage.Ltop,
			'left': liLeft,
			'height': $.galleryUtility.leftImage.iHeight,
			'width': $.galleryUtility.leftImage.iWidth,
			'opacity': $.galleryUtility.Options.sideImgOpacity
		},
		$.galleryUtility.Options.slideSpeed, 'linear', function() {
			$(this).one('click', $.galleryUtility.slideRight);
		});
		$.galleryUtility.leftImage.image.unbind().animate({
			'top': $.galleryUtility.leftImageStorage.Ltop,
			'left': lisLeft,
			'height': $.galleryUtility.leftImageStorage.iHeight,
			'width': $.galleryUtility.leftImageStorage.iWidth, 
			'opacity': 'hide'
		},
        $.galleryUtility.Options.slideSpeed, 'linear');
        $.galleryUtility.leftImageStorage.image = $.galleryUtility.leftImage.image;
        $.galleryUtility.leftImage.image = $.galleryUtility.centerImage.image;
        $.galleryUtility.centerImage.image = $.galleryUtility.rightImage.image;
        $.galleryUtility.rightImage.image = $.galleryUtility.rightImageStorage.image;
        $.galleryUtility.setRightStorage($.galleryUtility.gallery.filter('[index=' + $.galleryUtility.rightImageStorage.image.attr('next') + ']'));
    };

/***********Go to URL***********/
	$.galleryUtility.getUrl = function() {
		if ($.galleryUtility.Options.useZoom == false){
			window.location = $.galleryUtility.centerImage.image.attr('url');
		}
	};
	
/***********Zoom In***********/
	$.galleryUtility.zoomIn = function() {
		if ($.galleryUtility.Options.useZoom == true){
			$.galleryUtility.gallery.unbind();
			
			$('span.' + $.galleryUtility.Options.captionClass).animate({
				'bottom': $.galleryUtility.zoomImage.Ltop-1,
				'left': $.galleryUtility.zoomImage.Lleft,
				'width': $.galleryUtility.zoomImage.iWidth-20
			},
			$.galleryUtility.Options.zoomSpeed, 'linear', function() {
			});
			
			$.galleryUtility.centerImage.image.css('z-index', '99').animate({
				'top': $.galleryUtility.zoomImage.Ltop,
				'left': $.galleryUtility.zoomImage.Lleft,
				'height': $.galleryUtility.zoomImage.iHeight,
				'width': $.galleryUtility.zoomImage.iWidth
			},
			$.galleryUtility.Options.zoomSpeed, 'linear', function() {
				$.galleryUtility.centerImage.image.one('click', $.galleryUtility.zoomOut);
			});
		}
	};

/***********Zoom Out***********/
    $.galleryUtility.zoomOut = function() {
		$.galleryUtility.zoomOutBody();
    };

    $.galleryUtility.zoomOutBody = function() {
		$('span.' + $.galleryUtility.Options.captionClass).animate({
			'bottom': $.galleryUtility.centerImage.Ltop,
			'left': $.galleryUtility.centerImage.Lleft,
			'width': $.galleryUtility.centerImage.iWidth-20
		},
		$.galleryUtility.Options.zoomSpeed, 'linear', function() {});
		$.galleryUtility.centerImage.image.animate({
			'top': $.galleryUtility.centerImage.Ltop,
			'left': $.galleryUtility.centerImage.Lleft,
			'height': $.galleryUtility.centerImage.iHeight,
			'width': $.galleryUtility.centerImage.iWidth
		},
		$.galleryUtility.Options.zoomSpeed, 'linear', function() {
			$(this).css('z-index', '90').one('click', $.galleryUtility.zoomIn);
			$(this).one('click', $.galleryUtility.getUrl);
			$.galleryUtility.leftImage.image.one('click', $.galleryUtility.slideRight);
			$.galleryUtility.rightImage.image.one('click', $.galleryUtility.slideLeft);
		});
    };

/***********Right side image storage***********/
	$.galleryUtility.setRightStorage = function(image) {
        $.galleryUtility.rightImageStorage.image = image;
		$.galleryUtility.rightImageStorage.image.hide().css({
			'top': $.galleryUtility.rightImageStorage.Ltop,
			'height': $.galleryUtility.rightImageStorage.iHeight,
			'width': $.galleryUtility.rightImageStorage.iWidth,
			'opacity': $.galleryUtility.Options.sideImgOpacity
		});
        $.galleryUtility.rightImageStorage.image.css('left', $.galleryUtility.rightImageStorage.left($.galleryUtility.rightImage.image));
    };

/***********Left side image storage***********/
    $.galleryUtility.setLeftStorage = function(image) {
        $.galleryUtility.leftImageStorage.image = image;
		$.galleryUtility.leftImageStorage.image.hide().css({
			'top': $.galleryUtility.leftImageStorage.Ltop,
			'height': $.galleryUtility.leftImageStorage.iHeight,
			'width': $.galleryUtility.leftImageStorage.iWidth,
			'opacity': $.galleryUtility.Options.sideImgOpacity
		});
        $.galleryUtility.leftImageStorage.image
             .css('left', $.galleryUtility.leftImageStorage.left($.galleryUtility.leftImageStorage.image, $.galleryUtility.leftImage.image, $.galleryUtility.centerImage.image));
    };

/***********Set Center Image***********/	
    $.galleryUtility.setCenter = function(image) {
        $.galleryUtility.centerImage.image = image;
		
		var currUrl = $.galleryUtility.gallery
		$.galleryUtility.gallery.filter('[url=' + currUrl + ']')
		
		$.galleryUtility.centerImage.image
		
		if ($.galleryUtility.Options.useButtons == true) {
			$('.' + $.galleryUtility.Options.container).append('<span class="prev">&laquo; prev</span><span class="next">next &raquo;</span>');
			$('span.prev').css({
				'cursor': 'pointer',
				'display': 'block',
				'position': 'absolute',
				'top': Math.round(($.galleryUtility.centerImage.iHeight / 2) - ($.galleryUtility.Options.buttonHeight / 2)),
				'left': $.galleryUtility.centerImage.Lleft - $.galleryUtility.Options.buttonWidth,
				'z-index': 80,
				'height': $.galleryUtility.Options.buttonHeight,
				'width': $.galleryUtility.Options.buttonWidth
				}).live('click', $.galleryUtility.slideRight);
			$('span.next').css({
				'cursor': 'pointer',
				'display': 'block',
				'position': 'absolute',
				'top': Math.round(($.galleryUtility.centerImage.iHeight / 2) - ($.galleryUtility.Options.buttonHeight / 2)),
				'right': $.galleryUtility.centerImage.Lleft - $.galleryUtility.Options.buttonWidth,
				'z-index': 80,
				'height': $.galleryUtility.Options.buttonHeight,
				'width': $.galleryUtility.Options.buttonWidth
				}).live('click', $.galleryUtility.slideLeft);
		} else {
			//nada
		}		
		
		var altText = $.galleryUtility.centerImage.image.attr($.galleryUtility.Options.captionTextAttribute);
		if ($.galleryUtility.Options.useCaptions == true) {
			$('.' + $.galleryUtility.Options.container).append('<span class="' + $.galleryUtility.Options.captionClass + '">' + altText + '</span>');
			$('span.' + $.galleryUtility.Options.captionClass).css({
				'position': 'absolute',
				'bottom': $.galleryUtility.centerImage.Ltop,
				'left': $.galleryUtility.centerImage.Lleft,
				'z-index': 99,
            	'opacity': $.galleryUtility.Options.captionOpacity,
				'width': $.galleryUtility.Options.iWidth - ($.galleryUtility.Options.captionPadding * 2)
				});
		} else {
			//nada
		}

		$.galleryUtility.centerImage.image.css({
			'top': $.galleryUtility.centerImage.Ltop,
			'left': $.galleryUtility.centerImage.Lleft,
			'height': $.galleryUtility.centerImage.iHeight,
			'width': $.galleryUtility.centerImage.iWidth,
			'z-index': 90
		});
    };

/***********Set Right Image***********/	
    $.galleryUtility.setRight = function(image) {
        $.galleryUtility.rightImage.image = image;
		$.galleryUtility.rightImage.image.css({
			'top': $.galleryUtility.rightImage.Ltop,
			'height': $.galleryUtility.rightImage.iHeight,
			'width': $.galleryUtility.rightImage.iWidth,
			'opacity': $.galleryUtility.Options.sideImgOpacity
		});
        $.galleryUtility.rightImage.image.css('left', $.galleryUtility.rightImage.left($.galleryUtility.centerImage.image));
    };

/***********Set Left Image***********/	
    $.galleryUtility.setLeft = function(image) {
        $.galleryUtility.leftImage.image = image;
		$.galleryUtility.leftImage.image.css({
			'top': $.galleryUtility.leftImage.Ltop,
			'height': $.galleryUtility.leftImage.iHeight,
			'width': $.galleryUtility.leftImage.iWidth,
			'opacity': $.galleryUtility.Options.sideImgOpacity
		});
        $.galleryUtility.leftImage.image.css('left', $.galleryUtility.leftImage.left($.galleryUtility.leftImage.image, $.galleryUtility.centerImage.image));
    };

/***********Positioning***********/		
    $.galleryUtility.definePositions = function() {
        //var Gheight = ($.galleryUtility.Options.Gheight || $(window).height());
        //var Gwidth = ($.galleryUtility.Options.Gwidth || $(window).width());
        var container = $.galleryUtility.Options.container;
        var Gheight = $.galleryUtility.Options.containerHeight;
        var Gwidth = $.galleryUtility.Options.containerWidth;
		var shrink = $.galleryUtility.Options.shrink;
		var zoom = $.galleryUtility.Options.zoom;
		var Lshrink = function(dimension) { return dimension * shrink; };
		var Lzoom= function(dimension) { return dimension * zoom; };
        $.galleryUtility.centerImage.iHeight = Math.round($.galleryUtility.Options.iHeight);
        $.galleryUtility.centerImage.iWidth = Math.round($.galleryUtility.Options.iWidth);
        $.galleryUtility.centerImage.Ltop = (Gheight / 2) - ($.galleryUtility.centerImage.iHeight / 2);
        $.galleryUtility.centerImage.Lleft = Math.round(Gwidth / 2) - ($.galleryUtility.centerImage.iWidth / 2);
        $.galleryUtility.zoomImage.iHeight = Math.round(Lzoom($.galleryUtility.centerImage.iHeight));
        $.galleryUtility.zoomImage.iWidth = Math.round(Lzoom($.galleryUtility.centerImage.iWidth));
        $.galleryUtility.zoomImage.Ltop = Math.round((Gheight / 2) - ($.galleryUtility.zoomImage.iHeight / 2));
        $.galleryUtility.zoomImage.Lleft = Math.round((Gwidth / 2) - ($.galleryUtility.zoomImage.iWidth / 2));
        $.galleryUtility.leftImage.iHeight = Math.round(Lshrink($.galleryUtility.centerImage.iHeight));
        $.galleryUtility.leftImage.iWidth = Math.round(Lshrink($.galleryUtility.centerImage.iWidth));
        $.galleryUtility.leftImage.Ltop = Math.round($.galleryUtility.centerImage.Ltop + (($.galleryUtility.centerImage.iHeight - $.galleryUtility.leftImage.iHeight) / 2));
        $.galleryUtility.leftImage.left = function(left, center) {
        	return Math.round($.galleryUtility.centerImage.Lleft - ($.galleryUtility.leftImage.iWidth + $.galleryUtility.Options.gutterWidth));
        };
        $.galleryUtility.rightImage.iHeight = Math.round(Lshrink($.galleryUtility.centerImage.iHeight));
        $.galleryUtility.rightImage.iWidth = Math.round(Lshrink($.galleryUtility.centerImage.iWidth));
        $.galleryUtility.rightImage.Ltop = Math.round($.galleryUtility.centerImage.Ltop + (($.galleryUtility.centerImage.iHeight - $.galleryUtility.rightImage.iHeight) / 2));
        $.galleryUtility.rightImage.left = function(center) {
        	return Math.round($.galleryUtility.centerImage.Lleft + ($.galleryUtility.centerImage.iWidth + $.galleryUtility.Options.gutterWidth));
        };
        $.galleryUtility.leftImageStorage.iHeight = Math.round(Lshrink($.galleryUtility.leftImage.iHeight));
        $.galleryUtility.leftImageStorage.iWidth = Math.round(Lshrink($.galleryUtility.leftImage.iWidth));
        $.galleryUtility.leftImageStorage.Ltop = Math.round($.galleryUtility.leftImage.Ltop + (($.galleryUtility.leftImage.iHeight - $.galleryUtility.leftImageStorage.iHeight) / 2));
        $.galleryUtility.leftImageStorage.left = function(leftStorage, left, center) {
        	return Math.round($.galleryUtility.leftImage.left(left, center) - ($.galleryUtility.leftImageStorage.iWidth + $.galleryUtility.Options.gutterWidth));
        };
        $.galleryUtility.rightImageStorage.iHeight = Math.round(Lshrink($.galleryUtility.rightImage.iHeight));
        $.galleryUtility.rightImageStorage.iWidth = Math.round(Lshrink($.galleryUtility.rightImage.iWidth));
        $.galleryUtility.rightImageStorage.Ltop = Math.round($.galleryUtility.rightImage.Ltop + (($.galleryUtility.rightImage.iHeight - $.galleryUtility.rightImageStorage.iHeight) / 2));
        $.galleryUtility.rightImageStorage.left = function(right) {
        	return Math.round($.galleryUtility.rightImage.left(right) + ($.galleryUtility.rightImage.iWidth + $.galleryUtility.Options.gutterWidth));
        };
    };
})(jQuery);
