/*
 * all rights reserved (also includes) 2010 - tomorow Sascha Bast
 * -> it's a feature not a bug
 */
(function($){
    $.shopUtility={};

    $.shopUtility.centerImage={};

    $.shopUtility.rightImage={};

    $.shopUtility.leftImage={};

    $.shopUtility.rightImageStorage={};

    $.shopUtility.leftImageStorage={};

    $.shopUtility.zoomImage={};

    $.shopUtility.shop={};

    $.shopUtility.Options={
        container:null,
        Lheight:300,
        Lwidth:400,
        Lshrink:function(dimension){
            return dimension*0.75;
        },
        Lzoom:function(dimension){
            return dimension*2;
        },
        Pheight:400,
        Pwidth:300,
        Pshrink:function(dimension){
            return dimension*0.75;
        },
        Pzoom:function(dimension){
            return dimension*2;
        },
        defaultLayout:'landscape',
        startClass:'start',
        slideSpeed:'normal',
        zoomSpeed:'fast',
        gutterWidth:50,
        captionUpPath:'Images/Slidingshop/captionUpArrow.png',
        captionUpWidth:24,
        captionUpHeight:17,
        captionUpID:'captionArrowUp',
        captionDownPath:'Images/Slidingshop/captionDownArrow.png',
        captionDownWidth:24,
        captionDownHeight:17,
        captionDownID:'captionArrowDown',
        captionHeight:function(zoomHeight){
            return zoomHeight*0.1;
        },
        captionStyle:'background-color:white; color:black; opacity: 0.6; filter: alpha(opacity = 60); font-size: 16px; text-align:center;',
        captionClass:'captionBox',
        captionID:'activeCaption',
        captionTextAttribute:'caption',
        useCaptions:false
    };

    $.fn.slidingshop=function(options){
        $.extend($.shopUtility.Options,options);
        $('body').css('overflow-x','hidden');
        var container=null;
        if(!$.shopUtility.Options.container){
            $.shopUtility.Options.container=$('body');
        }else{
            $.shopUtility.Options.container.css('position','relative');
        }
        $.shopUtility.shop=$(this).css('cursor','pointer');
        $.shopUtility.shop=$(this).css('background-color','#ffffff');
        $.shopUtility.definePositions();
        if($.shopUtility.Options.useCaptions){
            $.shopUtility.Options.container.append('<img src="'+$.shopUtility.Options.captionUpPath+'" style="width: '+$.shopUtility.Options.captionUpWidth+'; display: none; border-width:0px;"'+'id="'+$.shopUtility.Options.captionUpID+'" />').append('<img src="'+$.shopUtility.Options.captionDownPath+'" style="width: '+$.shopUtility.Options.captionDownWidth+'; display: none;background-color:#ffffff; border-width:0px;"'+'id="'+$.shopUtility.Options.captionDownID+'" />');
            $('#'+$.shopUtility.Options.captionUpID+',#'+$.shopUtility.Options.captionDownID).css('cursor','help');
        }
        
        var lastIndex=0;
        var shopSize=$.shopUtility.shop.each(function(i){
            $(this).attr({
                'index':i,
                'prev':(i-1),
                'next':(i+1)
                }).css('position','absolute');
            if(($(this).attr('layout')!=='portrait')&&($(this).attr('layout')!=='landscape')){
                $(this).attr('layout',$.shopUtility.Options.defaultLayout);
            }
            lastIndex=i;
        }).hide().size();
        var currIndex=0;
        while(shopSize<7){
            var $clone=$.shopUtility.shop.filter('[index='+currIndex+']').clone().attr({
                'index':lastIndex+1,
                'prev':lastIndex,
                'next':lastIndex+2
                }).removeClass($.shopUtility.Options.startClass);
            $.shopUtility.shop.filter('[index='+(lastIndex)+']').after($clone);
            $.shopUtility.shop=$.shopUtility.shop.add('img[index='+(lastIndex+1)+']');
            lastIndex++;
            currIndex++;
            shopSize++;
        }
        $.shopUtility.shop.filter('[index='+lastIndex+']').attr('next',0);
        $.shopUtility.shop.filter('[index=0]').attr('prev',lastIndex);
        $.shopUtility.setCenter($.shopUtility.shop.filter('.'+$.shopUtility.Options.startClass).show());
        $.shopUtility.setLeft($.shopUtility.shop.filter('[index='+$.shopUtility.centerImage.image.attr('prev')+']').show());
        $.shopUtility.setRight($.shopUtility.shop.filter('[index='+$.shopUtility.centerImage.image.attr('next')+']').show());
        $.shopUtility.setLeftStorage($.shopUtility.shop.filter('[index='+$.shopUtility.leftImage.image.attr('prev')+']'));
        $.shopUtility.setRightStorage($.shopUtility.shop.filter('[index='+$.shopUtility.rightImage.image.attr('next')+']'));
        $.shopUtility.leftImage.image.one('click',$.shopUtility.slideRight);
        $.shopUtility.rightImage.image.one('click',$.shopUtility.slideLeft);
        $.shopUtility.centerImage.image.one('click',$.shopUtility.zoomIn);
        $(window).resize(function(){
            $.shopUtility.definePositions();
            $.shopUtility.setCenter($.shopUtility.centerImage.image);
            $.shopUtility.setLeft($.shopUtility.leftImage.image);
            $.shopUtility.setRight($.shopUtility.rightImage.image);
            $.shopUtility.setLeftStorage($.shopUtility.leftImageStorage.image);
            $.shopUtility.setRightStorage($.shopUtility.rightImageStorage.image);
        });
        return $(this);
    };

    $.shopUtility.slideRight=function(){
        currentDisplayedShopItem = $.shopUtility.leftImage.image.attr('id');
        switchShopCaption($.shopUtility.leftImage.image.attr('id'));
        var liLeft=$.shopUtility.leftImage.left($.shopUtility.leftImageStorage.image,$.shopUtility.leftImage.image);
        var riLeft=$.shopUtility.rightImage.left($.shopUtility.leftImage.image);
        var risLeft=$.shopUtility.rightImageStorage.left($.shopUtility.centerImage.image);
        if($.shopUtility.leftImageStorage.image.attr('layout')==='landscape'){
            $.shopUtility.leftImageStorage.image.animate({
                'top':$.shopUtility.leftImage.Ltop,
                'left':liLeft,
                'height':$.shopUtility.leftImage.Lheight,
                'width':$.shopUtility.leftImage.Lwidth,
                'opacity':'show'
            },$.shopUtility.Options.slideSpeed,'linear',function(){
                $(this).one('click',$.shopUtility.slideRight);
            });
        }else{
            $.shopUtility.leftImageStorage.image.animate({
                'top':$.shopUtility.leftImage.Ptop,
                'left':liLeft,
                'height':$.shopUtility.leftImage.Pheight,
                'width':$.shopUtility.leftImage.Pwidth,
                'opacity':'show'
            },$.shopUtility.Options.slideSpeed,'linear',function(){
                $(this).one('click',$.shopUtility.slideRight);
            });
        }
        if($.shopUtility.leftImage.image.attr('layout')==='landscape'){
            $.shopUtility.leftImage.image.unbind().animate({
                'top':$.shopUtility.centerImage.Ltop,
                'left':$.shopUtility.centerImage.Lleft,
                'height':$.shopUtility.centerImage.Lheight,
                'width':$.shopUtility.centerImage.Lwidth
                },$.shopUtility.Options.slideSpeed,'linear',function(){
                $(this).one('click',$.shopUtility.zoomIn);
            });
        }else{
            $.shopUtility.leftImage.image.unbind().animate({
                'top':$.shopUtility.centerImage.Ptop,
                'left':$.shopUtility.centerImage.Pleft,
                'height':$.shopUtility.centerImage.Pheight,
                'width':$.shopUtility.centerImage.Pwidth
                },$.shopUtility.Options.slideSpeed,'linear',function(){
                $(this).one('click',$.shopUtility.zoomIn);
            });
        }
        if($.shopUtility.centerImage.image.attr('layout')==='landscape'){
            $.shopUtility.centerImage.image.unbind().animate({
                'top':$.shopUtility.rightImage.Ltop,
                'left':riLeft,
                'height':$.shopUtility.rightImage.Lheight,
                'width':$.shopUtility.rightImage.Lwidth
                },$.shopUtility.Options.slideSpeed,'linear',function(){
                $(this).one('click',$.shopUtility.slideLeft);
            });
        }else{
            $.shopUtility.centerImage.image.unbind().animate({
                'top':$.shopUtility.rightImage.Ptop,
                'left':riLeft,
                'height':$.shopUtility.rightImage.Pheight,
                'width':$.shopUtility.rightImage.Pwidth
                },$.shopUtility.Options.slideSpeed,'linear',function(){
                $(this).one('click',$.shopUtility.slideLeft);
            });
        }
        if($.shopUtility.rightImage.image.attr('layout')==='landscape'){
            $.shopUtility.rightImage.image.unbind().animate({
                'top':$.shopUtility.rightImageStorage.Ltop,
                'left':risLeft,
                'height':$.shopUtility.rightImageStorage.Lheight,
                'width':$.shopUtility.rightImageStorage.Lwidth,
                'opacity':'hide'
            },$.shopUtility.Options.slideSpeed,'linear');
        }else{
            $.shopUtility.rightImage.image.unbind().animate({
                'top':$.shopUtility.rightImageStorage.Ptop,
                'left':risLeft,
                'height':$.shopUtility.rightImageStorage.Pheight,
                'width':$.shopUtility.rightImageStorage.Pwidth,
                'opacity':'hide'
            },$.shopUtility.Options.slideSpeed,'linear');
        }
        $.shopUtility.rightImageStorage.image=$.shopUtility.rightImage.image;
        $.shopUtility.rightImage.image=$.shopUtility.centerImage.image;
        $.shopUtility.centerImage.image=$.shopUtility.leftImage.image;
        $.shopUtility.leftImage.image=$.shopUtility.leftImageStorage.image;
        $.shopUtility.setLeftStorage($.shopUtility.shop.filter('[index='+$.shopUtility.leftImageStorage.image.attr('prev')+']'));
    };

    $.shopUtility.slideLeft=function(){
        currentDisplayedShopItem = $.shopUtility.rightImage.image.attr('id');
        switchShopCaption($.shopUtility.rightImage.image.attr('id'));
        var riLeft=$.shopUtility.rightImage.left($.shopUtility.rightImage.image);
        var liLeft=$.shopUtility.leftImage.left($.shopUtility.centerImage.image,$.shopUtility.rightImage.image);
        var lisLeft=$.shopUtility.leftImageStorage.left($.shopUtility.leftImage.image,$.shopUtility.centerImage.image,$.shopUtility.rightImage.image);
        if($.shopUtility.rightImageStorage.image.attr('layout')==='landscape'){
            $.shopUtility.rightImageStorage.image.animate({
                'top':$.shopUtility.rightImage.Ltop,
                'left':riLeft,
                'height':$.shopUtility.rightImage.Lheight,
                'width':$.shopUtility.rightImage.Lwidth,
                'opacity':'show'
            },$.shopUtility.Options.slideSpeed,'linear',function(){
                $(this).one('click',$.shopUtility.slideLeft);
            });
        }else{
            $.shopUtility.rightImageStorage.image.animate({
                'top':$.shopUtility.rightImage.Ptop,
                'left':riLeft,
                'height':$.shopUtility.rightImage.Pheight,
                'width':$.shopUtility.rightImage.Pwidth,
                'opacity':'show'
            },$.shopUtility.Options.slideSpeed,'linear',function(){
                $(this).one('click',$.shopUtility.slideLeft);
            });
        }
        if($.shopUtility.rightImage.image.attr('layout')==='landscape'){
            $.shopUtility.rightImage.image.unbind().animate({
                'top':$.shopUtility.centerImage.Ltop,
                'left':$.shopUtility.centerImage.Lleft,
                'height':$.shopUtility.centerImage.Lheight,
                'width':$.shopUtility.centerImage.Lwidth
                },$.shopUtility.Options.slideSpeed,'linear',function(){
                $(this).one('click',$.shopUtility.zoomIn);
            });
        }else{
            $.shopUtility.rightImage.image.unbind().animate({
                'top':$.shopUtility.centerImage.Ptop,
                'left':$.shopUtility.centerImage.Pleft,
                'height':$.shopUtility.centerImage.Pheight,
                'width':$.shopUtility.centerImage.Pwidth
                },$.shopUtility.Options.slideSpeed,'linear',function(){
                $(this).one('click',$.shopUtility.zoomIn);
            });
        }
        if($.shopUtility.centerImage.image.attr('layout')==='landscape'){
            $.shopUtility.centerImage.image.unbind().animate({
                'top':$.shopUtility.leftImage.Ltop,
                'left':liLeft,
                'height':$.shopUtility.leftImage.Lheight,
                'width':$.shopUtility.leftImage.Lwidth
                },$.shopUtility.Options.slideSpeed,'linear',function(){
                $(this).one('click',$.shopUtility.slideRight);
            });
        }else{
            $.shopUtility.centerImage.image.unbind().animate({
                'top':$.shopUtility.leftImage.Ptop,
                'left':liLeft,
                'height':$.shopUtility.leftImage.Pheight,
                'width':$.shopUtility.leftImage.Pwidth
                },$.shopUtility.Options.slideSpeed,'linear',function(){
                $(this).one('click',$.shopUtility.slideRight);
            });
        }
        if($.shopUtility.leftImage.image.attr('layout')==='landscape'){
            $.shopUtility.leftImage.image.unbind().animate({
                'top':$.shopUtility.leftImageStorage.Ltop,
                'left':lisLeft,
                'height':$.shopUtility.leftImageStorage.Lheight,
                'width':$.shopUtility.leftImageStorage.Lwidth,
                'opacity':'hide'
            },$.shopUtility.Options.slideSpeed,'linear');
        }else{
            $.shopUtility.leftImage.image.unbind().animate({
                'top':$.shopUtility.leftImageStorage.Ptop,
                'left':lisLeft,
                'height':$.shopUtility.leftImageStorage.Pheight,
                'width':$.shopUtility.leftImageStorage.Pwidth,
                'opacity':'hide'
            },$.shopUtility.Options.slideSpeed,'linear');
        }
        $.shopUtility.leftImageStorage.image=$.shopUtility.leftImage.image;
        $.shopUtility.leftImage.image=$.shopUtility.centerImage.image;
        $.shopUtility.centerImage.image=$.shopUtility.rightImage.image;
        $.shopUtility.rightImage.image=$.shopUtility.rightImageStorage.image;
        $.shopUtility.setRightStorage($.shopUtility.shop.filter('[index='+$.shopUtility.rightImageStorage.image.attr('next')+']'));
    };

    $.shopUtility.zoomIn=function(){
        $.shopUtility.shop.unbind();
        if($.shopUtility.centerImage.image.attr('layout')==='landscape'){
            $.shopUtility.centerImage.image.css('z-index','99').animate({
                'top':$.shopUtility.zoomImage.Ltop,
                'left':$.shopUtility.zoomImage.Lleft,
                'height':$.shopUtility.zoomImage.Lheight,
                'width':$.shopUtility.zoomImage.Lwidth
                },$.shopUtility.Options.zoomSpeed,'linear',function(){
                $.shopUtility.centerImage.image.one('click',$.shopUtility.zoomOut);
                if($.shopUtility.Options.useCaptions){
                    $('#'+$.shopUtility.Options.captionDownID).css({
                        'height':0,
                        'top':$.shopUtility.zoomImage.Ltop+parseInt($.shopUtility.centerImage.image.css('borderTopWidth'),10),
                        'left':$.shopUtility.zoomImage.Lleft+($.shopUtility.zoomImage.Lwidth-$.shopUtility.Options.captionDownWidth)+parseInt($.shopUtility.centerImage.image.css('borderLeftWidth'),10),
                        'z-index':1000,
                        'position':'absolute'
                    }).show().animate({
                        'height':$.shopUtility.Options.captionDownHeight
                        },'fast','linear',function(){
                        $('#'+$.shopUtility.Options.captionDownID).one('click',$.shopUtility.LcaptionDown);
                    });
                }
            });
    }else{
        $.shopUtility.centerImage.image.css('z-index','99').animate({
            'top':$.shopUtility.zoomImage.Ptop,
            'left':$.shopUtility.zoomImage.Pleft,
            'height':$.shopUtility.zoomImage.Pheight,
            'width':$.shopUtility.zoomImage.Pwidth
            },$.shopUtility.Options.zoomSpeed,'linear',function(){
            $.shopUtility.centerImage.image.one('click',$.shopUtility.zoomOut);
            if($.shopUtility.Options.useCaptions){
                $('#'+$.shopUtility.Options.captionDownID).css({
                    'height':0,
                    'top':$.shopUtility.zoomImage.Ptop+parseInt($.shopUtility.centerImage.image.css('borderTopWidth'),10),
                    'left':$.shopUtility.zoomImage.Pleft+($.shopUtility.zoomImage.Pwidth-$.shopUtility.Options.captionDownWidth)+parseInt($.shopUtility.centerImage.image.css('borderLeftWidth'),10),
                    'z-index':100,
                    'position':'absolute'
                }).show().animate({
                    'height':$.shopUtility.Options.captionDownHeight
                    },'fast','linear',function(){
                    $('#'+$.shopUtility.Options.captionDownID).one('click',$.shopUtility.PcaptionDown);
                });
            }
        });
}
};

$.shopUtility.LcaptionDown=function(){
    $.shopUtility.centerImage.image.unbind();
    $.shopUtility.Options.container.append('<span id="'+$.shopUtility.Options.captionID+'" style="'+$.shopUtility.Options.captionStyle+'" class="'+$.shopUtility.Options.captionClass+'">'+$.shopUtility.centerImage.image.attr($.shopUtility.Options.captionTextAttribute)+'</span>');
    $('#'+$.shopUtility.Options.captionID).css({
        'top':$.shopUtility.zoomImage.Ltop+parseInt($.shopUtility.centerImage.image.css('borderTopWidth'),10),
        'left':$.shopUtility.zoomImage.Lleft+parseInt($.shopUtility.centerImage.image.css('borderLeftWidth'),10),
        'width':$.shopUtility.zoomImage.Lwidth,
        'height':0,
        'position':'absolute',
        'z-index':'100'
    }).animate({
        'height':Math.round($.shopUtility.Options.captionHeight($.shopUtility.zoomImage.Lheight))
        },'normal','linear');
    $('#'+$.shopUtility.Options.captionDownID).animate({
        'height':0,
        'top':$.shopUtility.zoomImage.Ltop+(Math.round($.shopUtility.Options.captionHeight($.shopUtility.zoomImage.Lheight)))+parseInt($.shopUtility.centerImage.image.css('borderTopWidth'),10)
        },'normal','linear',function(){
        $('#'+$.shopUtility.Options.captionDownID).hide();
    });
    $('#'+$.shopUtility.Options.captionUpID).css({
        'top':$.shopUtility.zoomImage.Ltop+$.shopUtility.Options.captionDownHeight+parseInt($.shopUtility.centerImage.image.css('borderTopWidth'),10),
        'left':$.shopUtility.zoomImage.Lleft+($.shopUtility.zoomImage.Lwidth-$.shopUtility.Options.captionUpWidth)+parseInt($.shopUtility.centerImage.image.css('borderLeftWidth'),10),
        'height':0,
        'position':'absolute',
        'z-index':'100'
    }).show().animate({
        'top':$.shopUtility.zoomImage.Ltop+(Math.round($.shopUtility.Options.captionHeight($.shopUtility.zoomImage.Lheight)))+parseInt($.shopUtility.centerImage.image.css('borderTopWidth'),10),
        'height':$.shopUtility.Options.captionUpHeight
        },'normal','linear',function(){
        $('#'+$.shopUtility.Options.captionUpID).one('click',function(){
            $.shopUtility.LcaptionUp(false);
        });
        $.shopUtility.centerImage.image.one('click',function(){
            $.shopUtility.LcaptionUp(true);
        });
    });
};

$.shopUtility.PcaptionDown=function(){
    $.shopUtility.centerImage.image.unbind();
    $.shopUtility.Options.container.append('<span id="'+$.shopUtility.Options.captionID+'" style="'+$.shopUtility.Options.captionStyle+'" class="'+$.shopUtility.Options.captionClass+'">'+$.shopUtility.centerImage.image.attr($.shopUtility.Options.captionTextAttribute)+'</span>');
    $('#'+$.shopUtility.Options.captionID).css({
        'top':$.shopUtility.zoomImage.Ptop+parseInt($.shopUtility.centerImage.image.css('borderTopWidth'),10),
        'left':$.shopUtility.zoomImage.Pleft+parseInt($.shopUtility.centerImage.image.css('borderLeftWidth'),10),
        'width':$.shopUtility.zoomImage.Pwidth,
        'height':0,
        'position':'absolute',
        'z-index':'100'
    }).animate({
        'height':Math.round($.shopUtility.Options.captionHeight($.shopUtility.zoomImage.Pheight))
        },'normal','linear');
    $('#'+$.shopUtility.Options.captionDownID).animate({
        'height':0,
        'top':$.shopUtility.zoomImage.Ptop+(Math.round($.shopUtility.Options.captionHeight($.shopUtility.zoomImage.Pheight)))+parseInt($.shopUtility.centerImage.image.css('borderTopWidth'),10)
        },'normal','linear',function(){
        $('#'+$.shopUtility.Options.captionDownID).hide();
    });
    $('#'+$.shopUtility.Options.captionUpID).css({
        'top':$.shopUtility.zoomImage.Ptop+$.shopUtility.Options.captionDownHeight+parseInt($.shopUtility.centerImage.image.css('borderTopWidth'),10),
        'left':$.shopUtility.zoomImage.Pleft+($.shopUtility.zoomImage.Pwidth-$.shopUtility.Options.captionUpWidth)+parseInt($.shopUtility.centerImage.image.css('borderLeftWidth'),10),
        'height':0,
        'position':'absolute',
        'z-index':'100'
    }).show().animate({
        'top':$.shopUtility.zoomImage.Ptop+(Math.round($.shopUtility.Options.captionHeight($.shopUtility.zoomImage.Pheight)))+parseInt($.shopUtility.centerImage.image.css('borderTopWidth'),10),
        'height':$.shopUtility.Options.captionUpHeight
        },'normal','linear',function(){
        $('#'+$.shopUtility.Options.captionUpID).one('click',function(){
            $.shopUtility.PcaptionUp(false);
        });
        $.shopUtility.centerImage.image.one('click',function(){
            $.shopUtility.PcaptionUp(true);
        });
    });
};

$.shopUtility.LcaptionUp=function(unzoom){
    $('#'+$.shopUtility.Options.captionID).animate({
        'height':0
    },'normal','linear',function(){
        $('#'+$.shopUtility.Options.captionID).remove();
    });
    $('#'+$.shopUtility.Options.captionUpID).animate({
        'top':$.shopUtility.zoomImage.Ltop+$.shopUtility.Options.captionDownHeight+parseInt($.shopUtility.centerImage.image.css('borderTopWidth'),10),
        'height':0
    },'normal','linear',function(){
        $('#'+$.shopUtility.Options.captionUpID).hide();
    });
    $('#'+$.shopUtility.Options.captionDownID).show().animate({
        'height':$.shopUtility.Options.captionDownHeight,
        'top':$.shopUtility.zoomImage.Ltop+parseInt($.shopUtility.centerImage.image.css('borderTopWidth'),10)
        },'normal','linear',function(){
        if(unzoom){
            $('#'+$.shopUtility.Options.captionUpID).unbind();
            $.shopUtility.zoomOut();
        }else{
            $('#'+$.shopUtility.Options.captionDownID).one('click',$.shopUtility.LcaptionDown);
            $.shopUtility.centerImage.image.one('click',$.shopUtility.zoomOut);
        }
    });
};

$.shopUtility.PcaptionUp=function(unzoom){
    $('#'+$.shopUtility.Options.captionID).animate({
        'height':0
    },'normal','linear',function(){
        $('#'+$.shopUtility.Options.captionID).remove();
    });
    $('#'+$.shopUtility.Options.captionUpID).animate({
        'top':$.shopUtility.zoomImage.Ptop+$.shopUtility.Options.captionDownHeight+parseInt($.shopUtility.centerImage.image.css('borderTopWidth'),10),
        'height':0
    },'normal','linear',function(){
        $('#'+$.shopUtility.Options.captionUpID).hide();
    });
    $('#'+$.shopUtility.Options.captionDownID).show().animate({
        'height':$.shopUtility.Options.captionDownHeight,
        'top':$.shopUtility.zoomImage.Ptop+parseInt($.shopUtility.centerImage.image.css('borderTopWidth'),10)
        },'normal','linear',function(){
        if(unzoom){
            $('#'+$.shopUtility.Options.captionUpID).unbind();
            $.shopUtility.zoomOut();
        }else{
            $('#'+$.shopUtility.Options.captionDownID).one('click',$.shopUtility.PcaptionDown);
            $.shopUtility.centerImage.image.one('click',$.shopUtility.zoomOut);
        }
    });
};

$.shopUtility.zoomOut=function(){
    if($.shopUtility.Options.useCaptions){
        $('#'+$.shopUtility.Options.captionDownID).animate({
            'height':0
        },50,'linear',$.shopUtility.zoomOutBody).unbind();
    }else{
        $.shopUtility.zoomOutBody();
    }
};

$.shopUtility.zoomOutBody=function(){
    if($.shopUtility.centerImage.image.attr('layout')==='landscape'){
        $.shopUtility.centerImage.image.animate({
            'top':$.shopUtility.centerImage.Ltop,
            'left':$.shopUtility.centerImage.Lleft,
            'height':$.shopUtility.centerImage.Lheight,
            'width':$.shopUtility.centerImage.Lwidth
            },$.shopUtility.Options.zoomSpeed,'linear',function(){
            $(this).css('z-index','0').one('click',$.shopUtility.zoomIn);
            $.shopUtility.leftImage.image.one('click',$.shopUtility.slideRight);
            $.shopUtility.rightImage.image.one('click',$.shopUtility.slideLeft);
        });
    }else{
        $.shopUtility.centerImage.image.animate({
            'top':$.shopUtility.centerImage.Ptop,
            'left':$.shopUtility.centerImage.Pleft,
            'height':$.shopUtility.centerImage.Pheight,
            'width':$.shopUtility.centerImage.Pwidth
            },$.shopUtility.Options.zoomSpeed,'linear',function(){
            $(this).css('z-index','0').one('click',$.shopUtility.zoomIn);
            $.shopUtility.leftImage.image.one('click',$.shopUtility.slideRight);
            $.shopUtility.rightImage.image.one('click',$.shopUtility.slideLeft);
        });
    }
};

$.shopUtility.setRightStorage=function(image){
    $.shopUtility.rightImageStorage.image=image;
    if($.shopUtility.rightImageStorage.image.attr('layout')==='landscape'){
        $.shopUtility.rightImageStorage.image.hide().css({
            'top':$.shopUtility.rightImageStorage.Ltop,
            'height':$.shopUtility.rightImageStorage.Lheight,
            'width':$.shopUtility.rightImageStorage.Lwidth
            });
    }else{
        $.shopUtility.rightImageStorage.image.hide().css({
            'top':$.shopUtility.rightImageStorage.Ptop,
            'height':$.shopUtility.rightImageStorage.Pheight,
            'width':$.shopUtility.rightImageStorage.Pwidth
            });
    }
    $.shopUtility.rightImageStorage.image.css('left',$.shopUtility.rightImageStorage.left($.shopUtility.rightImage.image));
};

$.shopUtility.setLeftStorage=function(image){
    $.shopUtility.leftImageStorage.image=image;
    if($.shopUtility.leftImageStorage.image.attr('layout')==='landscape'){
        $.shopUtility.leftImageStorage.image.hide().css({
            'top':$.shopUtility.leftImageStorage.Ltop,
            'height':$.shopUtility.leftImageStorage.Lheight,
            'width':$.shopUtility.leftImageStorage.Lwidth
            });
    }else{
        $.shopUtility.leftImageStorage.image.hide().css({
            'top':$.shopUtility.leftImageStorage.Ptop,
            'height':$.shopUtility.leftImageStorage.Pheight,
            'width':$.shopUtility.leftImageStorage.Pwidth
            });
    }
    $.shopUtility.leftImageStorage.image.css('left',$.shopUtility.leftImageStorage.left($.shopUtility.leftImageStorage.image,$.shopUtility.leftImage.image,$.shopUtility.centerImage.image));
};

$.shopUtility.setCenter=function(image){
    $.shopUtility.centerImage.image=image;
    if($.shopUtility.centerImage.image.attr('layout')==='landscape'){
        $.shopUtility.centerImage.image.css({
            'top':$.shopUtility.centerImage.Ltop,
            'left':$.shopUtility.centerImage.Lleft,
            'height':$.shopUtility.centerImage.Lheight,
            'width':$.shopUtility.centerImage.Lwidth
            });
    }else{
        $.shopUtility.centerImage.image.css({
            'top':$.shopUtility.centerImage.Ptop,
            'left':$.shopUtility.centerImage.Pleft,
            'height':$.shopUtility.centerImage.Pheight,
            'width':$.shopUtility.centerImage.Pwidth
            });
    }
};

$.shopUtility.setRight=function(image){
    $.shopUtility.rightImage.image=image;
    if($.shopUtility.rightImage.image.attr('layout')==='landscape'){
        $.shopUtility.rightImage.image.css({
            'top':$.shopUtility.rightImage.Ltop,
            'height':$.shopUtility.rightImage.Lheight,
            'width':$.shopUtility.rightImage.Lwidth
            });
    }else{
        $.shopUtility.rightImage.image.css({
            'top':$.shopUtility.rightImage.Ptop,
            'height':$.shopUtility.rightImage.Pheight,
            'width':$.shopUtility.rightImage.Pwidth
            });
    }
    $.shopUtility.rightImage.image.css('left',$.shopUtility.rightImage.left($.shopUtility.centerImage.image));
};

$.shopUtility.setLeft=function(image){
    $.shopUtility.leftImage.image=image;
    if($.shopUtility.leftImage.image.attr('layout')==='landscape'){
        $.shopUtility.leftImage.image.css({
            'top':$.shopUtility.leftImage.Ltop,
            'height':$.shopUtility.leftImage.Lheight,
            'width':$.shopUtility.leftImage.Lwidth
            });
    }else{
        $.shopUtility.leftImage.image.css({
            'top':$.shopUtility.leftImage.Ptop,
            'height':$.shopUtility.leftImage.Pheight,
            'width':$.shopUtility.leftImage.Pwidth
            });
    }
    $.shopUtility.leftImage.image.css('left',$.shopUtility.leftImage.left($.shopUtility.leftImage.image,$.shopUtility.centerImage.image));
};

$.shopUtility.definePositions=function(){
    var container=$.shopUtility.Options.container;
    if(container[0].tagName=='BODY'){
        container=$(window);
    }
    var Gheight=container.height();
    var Gwidth=container.width();
    $.shopUtility.centerImage.Lheight=Math.round($.shopUtility.Options.Lheight);
    $.shopUtility.centerImage.Lwidth=Math.round($.shopUtility.Options.Lwidth);
    $.shopUtility.centerImage.Ltop=Math.round(Gheight/2)-($.shopUtility.centerImage.Lheight/2);
    $.shopUtility.centerImage.Lleft=Math.round(Gwidth/2)-($.shopUtility.centerImage.Lwidth/2);
    $.shopUtility.centerImage.Pheight=Math.round($.shopUtility.Options.Pheight);
    $.shopUtility.centerImage.Pwidth=Math.round($.shopUtility.Options.Pwidth);
    $.shopUtility.centerImage.Ptop=Math.round((Gheight/2)-($.shopUtility.centerImage.Pheight/2));
    $.shopUtility.centerImage.Pleft=Math.round((Gwidth/2)-($.shopUtility.centerImage.Pwidth/2));
    $.shopUtility.zoomImage.Lheight=Math.round($.shopUtility.Options.Lzoom($.shopUtility.centerImage.Lheight));
    $.shopUtility.zoomImage.Lwidth=Math.round($.shopUtility.Options.Lzoom($.shopUtility.centerImage.Lwidth));
    $.shopUtility.zoomImage.Ltop=Math.round((Gheight/2)-($.shopUtility.zoomImage.Lheight/2));
    $.shopUtility.zoomImage.Lleft=Math.round((Gwidth/2)-($.shopUtility.zoomImage.Lwidth/2));
    $.shopUtility.zoomImage.Pheight=Math.round($.shopUtility.Options.Pzoom($.shopUtility.centerImage.Pheight));
    $.shopUtility.zoomImage.Pwidth=Math.round($.shopUtility.Options.Pzoom($.shopUtility.centerImage.Pwidth));
    $.shopUtility.zoomImage.Ptop=Math.round((Gheight/2)-($.shopUtility.zoomImage.Pheight/2));
    $.shopUtility.zoomImage.Pleft=Math.round((Gwidth/2)-($.shopUtility.zoomImage.Pwidth/2));
    $.shopUtility.leftImage.Lheight=Math.round($.shopUtility.Options.Lshrink($.shopUtility.centerImage.Lheight));
    $.shopUtility.leftImage.Lwidth=Math.round($.shopUtility.Options.Lshrink($.shopUtility.centerImage.Lwidth));
    $.shopUtility.leftImage.Ltop=Math.round($.shopUtility.centerImage.Ltop+(($.shopUtility.centerImage.Lheight-$.shopUtility.leftImage.Lheight)/2));
    $.shopUtility.leftImage.left=function(left,center){
        if(center.attr('layout')==='landscape'){
            if(left.attr('layout')==='landscape'){
                return Math.round($.shopUtility.centerImage.Lleft-($.shopUtility.leftImage.Lwidth+$.shopUtility.Options.gutterWidth));
            }else{
                return Math.round($.shopUtility.centerImage.Lleft-($.shopUtility.leftImage.Pwidth+$.shopUtility.Options.gutterWidth));
            }
        }else{
        if(left.attr('layout')==='landscape'){
            return Math.round($.shopUtility.centerImage.Pleft-($.shopUtility.leftImage.Lwidth+$.shopUtility.Options.gutterWidth));
        }else{
            return Math.round($.shopUtility.centerImage.Pleft-($.shopUtility.leftImage.Pwidth+$.shopUtility.Options.gutterWidth));
        }
    }
};

$.shopUtility.leftImage.Pheight=Math.round($.shopUtility.Options.Pshrink($.shopUtility.centerImage.Pheight));
$.shopUtility.leftImage.Pwidth=Math.round($.shopUtility.Options.Pshrink($.shopUtility.centerImage.Pwidth));
$.shopUtility.leftImage.Ptop=Math.round($.shopUtility.centerImage.Ptop+(($.shopUtility.centerImage.Pheight-$.shopUtility.leftImage.Pheight)/2));
$.shopUtility.rightImage.Lheight=Math.round($.shopUtility.Options.Lshrink($.shopUtility.centerImage.Lheight));
$.shopUtility.rightImage.Lwidth=Math.round($.shopUtility.Options.Lshrink($.shopUtility.centerImage.Lwidth));
$.shopUtility.rightImage.Ltop=Math.round($.shopUtility.centerImage.Ltop+(($.shopUtility.centerImage.Lheight-$.shopUtility.rightImage.Lheight)/2));
$.shopUtility.rightImage.left=function(center){
    if(center.attr('layout')==='landscape'){
        return Math.round($.shopUtility.centerImage.Lleft+($.shopUtility.centerImage.Lwidth+$.shopUtility.Options.gutterWidth));
    }else{
        return Math.round($.shopUtility.centerImage.Pleft+($.shopUtility.centerImage.Pwidth+$.shopUtility.Options.gutterWidth));
    }
};

$.shopUtility.rightImage.Pheight=Math.round($.shopUtility.Options.Pshrink($.shopUtility.centerImage.Pheight));
$.shopUtility.rightImage.Pwidth=Math.round($.shopUtility.Options.Pshrink($.shopUtility.centerImage.Pwidth));
$.shopUtility.rightImage.Ptop=Math.round($.shopUtility.centerImage.Ptop+(($.shopUtility.centerImage.Pheight-$.shopUtility.leftImage.Pheight)/2));
$.shopUtility.leftImageStorage.Lheight=Math.round($.shopUtility.Options.Lshrink($.shopUtility.leftImage.Lheight));
$.shopUtility.leftImageStorage.Lwidth=Math.round($.shopUtility.Options.Lshrink($.shopUtility.leftImage.Lwidth));
$.shopUtility.leftImageStorage.Ltop=Math.round($.shopUtility.leftImage.Ltop+(($.shopUtility.leftImage.Lheight-$.shopUtility.leftImageStorage.Lheight)/2));
$.shopUtility.leftImageStorage.left=function(leftStorage,left,center){
    if(leftStorage.attr('layout')==='landscape'){
        return Math.round($.shopUtility.leftImage.left(left,center)-($.shopUtility.leftImageStorage.Lwidth+$.shopUtility.Options.gutterWidth));
    }else{
        return Math.round($.shopUtility.leftImage.left(left,center)-($.shopUtility.leftImageStorage.Pwidth+$.shopUtility.Options.gutterWidth));
    }
};

$.shopUtility.leftImageStorage.Pheight=Math.round($.shopUtility.Options.Pshrink($.shopUtility.leftImage.Pheight));
$.shopUtility.leftImageStorage.Pwidth=Math.round($.shopUtility.Options.Pshrink($.shopUtility.leftImage.Pwidth));
$.shopUtility.leftImageStorage.Ptop=Math.round($.shopUtility.leftImage.Ptop+(($.shopUtility.leftImage.Pheight-$.shopUtility.leftImageStorage.Pheight)/2));
$.shopUtility.rightImageStorage.Lheight=Math.round($.shopUtility.Options.Lshrink($.shopUtility.rightImage.Lheight));
$.shopUtility.rightImageStorage.Lwidth=Math.round($.shopUtility.Options.Lshrink($.shopUtility.rightImage.Lwidth));
$.shopUtility.rightImageStorage.Ltop=Math.round($.shopUtility.rightImage.Ltop+(($.shopUtility.rightImage.Lheight-$.shopUtility.rightImageStorage.Lheight)/2));
$.shopUtility.rightImageStorage.left=function(right){
    if(right.attr('layout')==='landscape'){
        return Math.round($.shopUtility.rightImage.left(right)+($.shopUtility.rightImage.Lwidth+$.shopUtility.Options.gutterWidth));
    }else{
        return Math.round($.shopUtility.rightImage.left(right)+($.shopUtility.rightImage.Pwidth+$.shopUtility.Options.gutterWidth));
    }
};

$.shopUtility.rightImageStorage.Pheight=Math.round($.shopUtility.Options.Pshrink($.shopUtility.rightImage.Pheight));
$.shopUtility.rightImageStorage.Pwidth=Math.round($.shopUtility.Options.Pshrink($.shopUtility.rightImage.Pwidth));
$.shopUtility.rightImageStorage.Ptop=Math.round($.shopUtility.rightImage.Ptop+(($.shopUtility.rightImage.Pheight-$.shopUtility.rightImageStorage.Pheight)/2));
};

})(jQuery);
