/* * jQuery Panel Gallery * @author admin@catchmyfame.com - http://www.catchmyfame.com * @version 2.0.0 * @date September 10, 2010 * @category jQuery plugin * @copyright (c) 2010 admin@catchmyfame.com (www.catchmyfame.com) * @license CC Attribution-Share Alike 3.0 - http://creativecommons.org/licenses/by-sa/3.0/ */jQuery.extend( jQuery.easing,{    easeInOutExpo: function (x, t, b, c, d) {        if (t==0) return b;        if (t==d) return b+c;        if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;        return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;    }});(function($){    $.fn.extend({        panelGallery: function(options)        {            var defaults =            {                viewDuration: 4000,                transitionDuration: 1000,                boxSize:  35,                boxFadeDuration: 1000,                boxTransitionDuration: 100,                panelWidth: 40,                panelTransitionDuration: 100,                pauseOnHover: false,                FX: new Array('panelSouthLeftRight,true','panelZipperUp,true','panelTeethUpReveal','boxSouthWest')            };            var options = $.extend(defaults, options);            return this.each(function() {                var randID = Math.round(Math.random()*100000000);                var o=options;                var obj = $(this);                var numImages = $('img', obj).length;                var imgDimensions = {                    width:$('img:first', obj).width(),                    height:$('img:first', obj).height()                };                var currentImage = 0;                var imageArray = new Array();                var imageNameArray = new Array();                var timeout;                var firstTime = true; // special case for pausing the first image.                var mouseover = false;                $(obj).width(imgDimensions.width).height(imgDimensions.height).css({                    'position':'relative',                    'overflow':'hidden'                });                $('img', obj).each(function(){                    imageArray.push($(this).attr('src'));                    imageNameArray.push($(this).attr('name'));                    $(this).remove();                });                if(o.pauseOnHover)                {                    $(obj).mouseenter(function(){                        mouseover = true;                        clearTimeout(timeout);                        $(this).css({                            'cursor':'wait'                        });                    }).mouseleave(function(){                        mouseover = false;                        timeout=setTimeout(function(){                            if(!firstTime)                            {                                imageArray.push(imageArray.shift()); // moves first array element to last spot                                imageNameArray.push(imageNameArray.shift()); // moves first array element to last spot                            }                            $('img',obj).remove();                            pickFX();                        },o.viewDuration);                    });                }                $(obj).css({                    'background':'#666 url("loading.gif") no-repeat 50% 50%'                }).append('<img src="'+imageArray[0]+'">');                timeout=setTimeout(function(){                    pickFX()                    },o.viewDuration); // Start the show                function galleryFX(name,opt1)                {                    if(name=='fade')                    {                        $('img', obj).remove();                        $(obj).append('<img src="'+imageArray[0]+'"><img src="'+imageArray[1]+'">');                        $('img:eq(1)',obj).css({                            'position':'absolute',                            'top':'0',                            'left':'0'                        }).hide().fadeIn(o.transitionDuration);                        cleanupAndProceed();                    }                    if(name=='boxSouthWest' || name=='boxSouthEast' || name=='boxNorthWest' || name=='boxNorthEast' || name=='boxRandom')                    {                        var rows = Math.floor(imgDimensions.height/o.boxSize);                        var cols = Math.floor(imgDimensions.width/o.boxSize);                        var boxes = new Array();                        for(r=0;r<=rows;r++)                        {                            for(c=0;c<=cols;c++)                            {                                boxLeft=c*o.boxSize;                                boxTop=r*o.boxSize;                                $(obj).append('<div id="r'+r+'c'+c+'_'+randID+'" class="box" style="top:'+boxTop+'px;left:'+boxLeft+'px;background-position:-'+boxLeft+'px -'+boxTop+'px"></div>');                                boxes.push('r'+r+'c'+c+'_'+randID);                            }                        }                        $('.box',obj).css({                            'position':'absolute',                            'background-image':'url('+imageArray[currentImage+1]+')'                            }).width(o.boxSize).height(o.boxSize).hide();                        // Done building matrix                        $(obj).append('<img src="'+imageArray[currentImage]+'">');                        if(name=='boxRandom')                        {                            boxes.shuffle();                            function boxRandom()                            {                                if(boxes.length>0)                                {                                    box = boxes.shift();                                    $('#'+box).fadeIn(o.boxFadeDuration);                                    setTimeout(boxRandom,o.boxTransitionDuration/10);                                    return;                                }                                cleanupAndProceed(o.boxFadeDuration);                            }                            boxRandom();                        }                        if(name=='boxSouthEast')                        {                            var total=0;                            function boxSouthEast()                            {                                for(var x=0;x<=total;x++)                                {                                    for(var y=0;y<=total;y++)                                    {                                        if(x+y==total) $('#r'+x+'c'+y+'_'+randID).fadeIn(o.boxFadeDuration);                                    }                                }                                total++;                                if(total<=rows+cols)                                {                                    setTimeout(boxSouthEast,o.boxTransitionDuration);                                }                                else                                {                                    cleanupAndProceed();                                }                            }                            boxSouthEast();                        }                        if(name=='boxNorthWest')                        {                            var total=rows+cols;                            function boxNorthWest()                            {                                for(var x=total;x>=0;x--)                                {                                    for(var y=total;y>=0;y--)                                    {                                        if(x+y==total) $('#r'+x+'c'+y+'_'+randID).fadeIn(o.boxFadeDuration);                                    }                                }                                total--;                                if(total>=0)                                {                                    setTimeout(boxNorthWest,o.boxTransitionDuration);                                }                                else                                {                                    cleanupAndProceed();                                }                            }                            boxNorthWest();                        }                        if(name=='boxNorthEast')                        {                            var i=rows;                            function boxNorthEast()                            {                                var total = 0;                                for(var j=i;j<=rows;j++)                                {                                    $('#r'+j+'c'+total+'_'+randID).fadeIn(o.boxFadeDuration);                                    total++;                                }                                i--;                                if(i>=-cols) // may need to see if row or cols is greater and use the negative of the larger value                                {                                    setTimeout(boxNorthEast,o.boxTransitionDuration);                                }                                else                                {                                    cleanupAndProceed();                                }                            }                            boxNorthEast();                        }                        if(name=='boxSouthWest')                        {                            var i=cols;                            function boxSouthWest()                            {                                var total = 0;                                for(var j=i;j<=cols;j++)                                {                                    $('#r'+total+'c'+j+'_'+randID).fadeIn(o.boxFadeDuration);                                    total++;                                }                                i--;                                if(i>=-cols) // may need to see if row or cols is greater and use the negative of the larger value                                {                                    setTimeout(boxSouthWest,o.boxTransitionDuration);                                }                                else                                {                                    cleanupAndProceed();                                }                            }                            boxSouthWest();                        }                    }                    if(name=='panelEastTopDown' || name=='panelEastBottomUp' || name=='panelWestTopDown' || name=='panelWestBottomUp'                        || name=='panelNorthLeftRight' || name=='panelNorthRightLeft' || name=='panelSouthLeftRight'                        || name=='panelSouthRightLeft' || name=='panelZipperDown' || name=='panelZipperUp'                        || name=='panelZipperLeft' || name=='panelZipperRight' || name=='panelEastTopDown'                        || name=='panelEastBottomUp' || name=='panelWestTopDown' || name=='panelWestBottomUp'                        || name=='panelNorthLeftRight' || name=='panelNorthRightLeft' || name=='panelSouthLeftRight'                        || name=='panelSouthRightLeft' || name=='panelZipperDown' || name=='panelZipperUp'                        || name=='panelZipperLeft' || name=='panelZipperRight' || name=='panelEastTopDownReveal'                        || name=='panelEastBottomUpReveal' || name=='panelWestTopDownReveal' || name=='panelWestBottomUpReveal'                        || name=='panelNorthLeftRightReveal' || name=='panelNorthRightLeftReveal' || name=='panelSouthLeftRightReveal'                        || name=='panelSouthRightLeftReveal' || name=='panelTeethDown' || name=='panelTeethUp'                        || name=='panelTeethDown' || name=='panelTeethUp' || name=='panelTeethLeft'                        || name=='panelTeethRight' || name=='panelTeethLeft' || name=='panelTeethRight' || name=='panelTeethDownReveal'                        || name=='panelTeethUpReveal' || name=='panelTeethLeftReveal' || name=='panelTeethRightReveal'	)                        {                        var vertPanels = Math.floor(imgDimensions.height/o.panelWidth);                        var horizPanels = Math.floor(imgDimensions.width/o.panelWidth);                        for(var h=0;h<=horizPanels;h++)                        {                            panelLeft=h*o.panelWidth;                            $(obj).append('<div id="top_'+h+'_'+randID+'" class="horizPanel" style="top:-'+imgDimensions.height+'px;left:'+panelLeft+'px;background-position:-'+panelLeft+'px -'+0+'px"></div>');                            $(obj).append('<div id="bottom_'+h+'_'+randID+'" class="horizPanel" style="top:'+imgDimensions.height+'px;left:'+panelLeft+'px;background-position:-'+panelLeft+'px -'+0+'px"></div>');                        }                        for(var v=0;v<=vertPanels;v++)                        {                            panelTop=v*o.panelWidth;                            $(obj).append('<div id="left_'+v+'_'+randID+'" class="vertPanel" style="top:'+panelTop+'px;left:-'+imgDimensions.width+'px;background-position:-'+0+'px -'+panelTop+'px"></div>');                            $(obj).append('<div id="right_'+v+'_'+randID+'" class="vertPanel" style="top:'+panelTop+'px;left:'+imgDimensions.width+'px;background-position:-'+0+'px -'+panelTop+'px"></div>');                        }                        $('.horizPanel',obj).css({                            'position':'absolute',                            'background-image':'url('+imageArray[currentImage+1]+')'                            }).width(o.panelWidth).height(imgDimensions.height);                        $('.vertPanel',obj).css({                            'position':'absolute',                            'background-image':'url('+imageArray[currentImage+1]+')'                            }).width(imgDimensions.width).height(o.panelWidth);                        if(opt1)                        {                            $('.horizPanel',obj).css('opacity','0');                            $('.vertPanel',obj).css('opacity','0');                        }                        // Done building panels                        $(obj).append('<img src="'+imageArray[currentImage]+'">');                        if(name=='panelEastTopDown' || name=='panelEastBottomUp' || name=='panelWestTopDown' || name=='panelWestBottomUp' || name===undefined)                        {                            var i = (name=='panelEastTopDown' || name=='panelWestTopDown' || name===undefined) ? 0:vertPanels;                            function slideLeft()                            {                                if(name=='panelEastTopDown' || name=='panelEastBottomUp')                                {                                    $('#right_'+i+'_'+randID).animate({                                        left:'0',                                        opacity:'1'                                    });                                }                                else                                {                                    $('#left_'+i+'_'+randID).animate({                                        left:'0',                                        opacity:'1'                                    })                                }                                i = (name=='panelEastTopDown' || name=='panelWestTopDown' || name===undefined) ? i+1:i-1;                                if( (name=='panelEastTopDown' || name=='panelWestTopDown' || name===undefined) && i<=vertPanels)                                {                                    setTimeout(slideLeft,o.panelTransitionDuration);                                }                                else if( (name=='panelEastBottomUp' || name=='panelWestBottomUp') && i>=0)                                {                                    setTimeout(slideLeft,o.panelTransitionDuration);                                }                                else                                {                                    cleanupAndProceed();                                }                            }                            slideLeft();                        }                        if(name=='panelNorthLeftRight' || name=='panelNorthRightLeft' || name=='panelSouthLeftRight' || name=='panelSouthRightLeft')                        {                            var i = (name=='panelNorthLeftRight' || name=='panelSouthLeftRight') ? 0:horizPanels;                            function slideDown()                            {                                if(name=='panelNorthLeftRight' || name=='panelNorthRightLeft')                                {                                    $('#top_'+i+'_'+randID).animate({                                        top:'0',                                        opacity:'1'                                    });                                }                                else                                {                                    $('#bottom_'+i+'_'+randID).animate({                                        top:'0',                                        opacity:'1'                                    });                                }                                i = (name=='panelNorthLeftRight' || name=='panelSouthLeftRight') ? i+1:i-1;                                if( (name=='panelNorthLeftRight' || name=='panelSouthLeftRight') && i<=horizPanels)                                {                                    setTimeout(slideDown,o.panelTransitionDuration);                                }                                else if( (name=='panelNorthRightLeft' || name=='panelSouthRightLeft') && i>=0)                                {                                    setTimeout(slideDown,o.panelTransitionDuration);                                }                                else                                {                                    cleanupAndProceed();                                }                            }                            slideDown();                        }                        if(name=='panelZipperDown' || name=='panelZipperUp')                        {                            // alternate left and right panels                            var zip = 'left';                            var i = (name=='panelZipperDown') ? 0:vertPanels;                            function zipper1()                            {                                if(zip=='left') $('#left_'+i+'_'+randID).animate({                                    left:'0',                                    opacity:'1'                                });                                if(zip=='right') $('#right_'+i+'_'+randID).animate({                                    left:'0',                                    opacity:'1'                                });                                i = (name=='panelZipperDown') ? i+1:i-1;                                zip = (zip=='left') ? 'right':'left';                                if( (name=='panelZipperDown') && i<=vertPanels)                                {                                    setTimeout(zipper1,o.panelTransitionDuration);                                }                                else if( name=='panelZipperUp' && i>=0)                                {                                    setTimeout(zipper1,o.panelTransitionDuration);                                }                                else                                {                                    cleanupAndProceed();                                }                            }                            zipper1();                        }                        if(name=='panelZipperLeft' || name=='panelZipperRight')                        {                            // alternate left and right panels                            var zip = 'top';                            var i = (name=='panelZipperLeft') ? 0:horizPanels;                            function zipper2()                            {                                if(zip=='top') $('#top_'+i+'_'+randID).animate({                                    top:'0',                                    opacity:'1'                                });                                if(zip=='bottom') $('#bottom_'+i+'_'+randID).animate({                                    top:'0',                                    opacity:'1'                                });                                i = (name=='panelZipperLeft') ? i+1:i-1;                                zip = (zip=='top') ? 'bottom':'top';                                if( (name=='panelZipperLeft') && i<=horizPanels)                                {                                    setTimeout(zipper2,o.panelTransitionDuration);                                }                                else if( name=='panelZipperRight' && i>=0)                                {                                    setTimeout(zipper2,o.panelTransitionDuration);                                }                                else                                {                                    cleanupAndProceed();                                }                            }                            zipper2();                        }                        if(name=='panelEastTopDownReveal' || name=='panelEastBottomUpReveal' || name=='panelWestTopDownReveal' || name=='panelWestBottomUpReveal')                        {                            $('.horizPanel',obj).remove();                            $('.vertPanel',obj).css({                                'left':'0',                                'opacity':'1',                                'background-image':'url('+imageArray[currentImage]+')'                                });                            $('img',obj).attr('src',imageArray[currentImage+1]);                            var i = (name=='panelEastTopDownReveal' || name=='panelWestTopDownReveal') ? 0:vertPanels;                            function slideLeftReveal()                            {                                $('#left_'+i+'_'+randID).remove();                                if(name=='panelEastTopDownReveal' || name=='panelEastBottomUpReveal')                                {                                    $('#right_'+i+'_'+randID).animate({                                        left:imgDimensions.width+'px'                                        });                                }                                else                                {                                    $('#right_'+i+'_'+randID).animate({                                        left:'-'+imgDimensions.width+'px'                                        });                                }                                i = (name=='panelEastTopDownReveal' || name=='panelWestTopDownReveal') ? i+1:i-1;                                if( (name=='panelEastTopDownReveal' || name=='panelWestTopDownReveal') && i<=vertPanels)                                {                                    setTimeout(slideLeftReveal,o.panelTransitionDuration);                                }                                else if( (name=='panelEastBottomUpReveal' || name=='panelWestBottomUpReveal') && i>=0)                                {                                    setTimeout(slideLeftReveal,o.panelTransitionDuration);                                }                                else                                {                                    cleanupAndProceed();                                }                            }                            slideLeftReveal();                        }                        if(name=='panelNorthLeftRightReveal' || name=='panelNorthRightLeftReveal' || name=='panelSouthLeftRightReveal' || name=='panelSouthRightLeftReveal')                        {                            $('.vertPanel',obj).remove();                            $('.horizPanel',obj).css({                                'top':'0',                                'opacity':'1',                                'background-image':'url('+imageArray[currentImage]+')'                                });                            $('img',obj).attr('src',imageArray[currentImage+1]);                            var i = (name=='panelNorthLeftRightReveal' || name=='panelSouthLeftRightReveal') ? 0:horizPanels;                            function slideUpReveal()                            {                                $('#bottom_'+i+'_'+randID).remove();                                if(name=='panelSouthLeftRightReveal' || name=='panelSouthRightLeftReveal')                                {                                    $('#top_'+i+'_'+randID).animate({                                        top:imgDimensions.height+'px'                                        });                                }                                else                                {                                    $('#top_'+i+'_'+randID).animate({                                        top:'-'+imgDimensions.height+'px'                                        });                                }                                i = (name=='panelNorthLeftRightReveal' || name=='panelSouthLeftRightReveal') ? i+1:i-1;                                if( (name=='panelNorthLeftRightReveal' || name=='panelSouthLeftRightReveal') && i<=horizPanels)                                {                                    setTimeout(slideUpReveal,o.panelTransitionDuration);                                }                                else if( (name=='panelNorthRightLeftReveal' || name=='panelSouthRightLeftReveal') && i>=0)                                {                                    setTimeout(slideUpReveal,o.panelTransitionDuration);                                }                                else                                {                                    cleanupAndProceed();                                }                            }                            slideUpReveal();                        }                        if(name=='panelTeethDown' || name=='panelTeethUp')                        {                            $('.horizPanel',obj).remove();                            var i = (name=='panelTeethDown') ? 0:vertPanels;                            function teeth1()                            {                                var v=i*o.panelWidth;                                $('#left_'+i+'_'+randID).css('background-position',imgDimensions.width/2+'px -'+v+'px').animate({                                    left:'-'+imgDimensions.width/2+'px',                                    opacity:'1'                                });                                $('#right_'+i+'_'+randID).css('background-position','-'+imgDimensions.width/2+'px -'+v+'px').animate({                                    left:imgDimensions.width/2+'px',                                    opacity:'1'                                });                                i = (name=='panelTeethDown') ? i+1:i-1;                                if( (name=='panelTeethDown') && i<=vertPanels)                                {                                    setTimeout(teeth1,o.panelTransitionDuration);                                }                                else if( name=='panelTeethUp' && i>=0)                                {                                    setTimeout(teeth1,o.panelTransitionDuration);                                }                                else                                {                                    cleanupAndProceed();                                }                            }                            teeth1();                            return;                        }                        if(name=='panelTeethLeft' || name=='panelTeethRight')                        {                            $('.vertPanel',obj).remove();                            var i = (name=='panelTeethLeft') ? 0:horizPanels;                            function teeth2()                            {                                var h=i*o.panelWidth;                                $('#top_'+i+'_'+randID).css('background-position','-'+h+'px '+imgDimensions.height/2+'px').animate({                                    top:'-'+imgDimensions.height/2+'px',                                    opacity:'1'                                });                                $('#bottom_'+i+'_'+randID).css('background-position','-'+h+'px '+'-'+imgDimensions.height/2+'px').animate({                                    top:imgDimensions.height/2+'px',                                    opacity:'1'                                });                                i = (name=='panelTeethLeft') ? i+1:i-1;                                if( (name=='panelTeethLeft') && i<=horizPanels)                                {                                    setTimeout(teeth2,o.panelTransitionDuration);                                }                                else if( name=='panelTeethRight' && i>=0)                                {                                    setTimeout(teeth2,o.panelTransitionDuration);                                }                                else                                {                                    cleanupAndProceed();                                }                            }                            teeth2();                            return;                        }                        if(name=='panelTeethDownReveal' || name=='panelTeethUpReveal')                        {                            $('.horizPanel',obj).remove();                            var i = (name=='panelTeethDownReveal') ? 0:vertPanels;                            $('.vertPanel',obj).css({                                'background-image':'url('+imageArray[currentImage]+')',                                'opacity':'1'                            });                            $('img',obj).attr('src',imageArray[currentImage+1]);                            for(var j=0;j<=vertPanels;j++)                            {                                $('#left_'+j+'_'+randID).css({                                    'left':'-'+imgDimensions.width/2+'px',                                    'background-position':imgDimensions.width/2+'px -'+j*o.panelWidth+'px'                                    });                                $('#right_'+j+'_'+randID).css({                                    'left':imgDimensions.width/2+'px',                                    'background-position':imgDimensions.width/2+'px -'+j*o.panelWidth+'px'                                    });                            }                            function teeth3()                            {                                $('#left_'+i+'_'+randID).animate({                                    left:'-'+imgDimensions.width+'px',                                    opacity:'1'                                });                                $('#right_'+i+'_'+randID).animate({                                    left:imgDimensions.width+'px',                                    opacity:'1'                                });                                i = (name=='panelTeethDownReveal') ? i+1:i-1;                                if( (name=='panelTeethDownReveal') && i<=vertPanels)                                {                                    setTimeout(teeth3,o.panelTransitionDuration);                                }                                else if( name=='panelTeethUpReveal' && i>=0)                                {                                    setTimeout(teeth3,o.panelTransitionDuration);                                }                                else                                {                                    cleanupAndProceed();                                }                            }                            teeth3();                        }                        if(name=='panelTeethLeftReveal' || name=='panelTeethRightReveal')                        {                            $('.vertPanel',obj).remove();                            var i = (name=='panelTeethLeftReveal') ? 0:horizPanels;                            $('.horizPanel',obj).css({                                'background-image':'url('+imageArray[currentImage]+')',                                'opacity':'1'                            });                            $('img',obj).attr('src',imageArray[currentImage+1]);                            for(var j=0;j<=horizPanels;j++)                            {                                $('#top_'+j+'_'+randID).css({                                    'top':'-'+imgDimensions.height/2+'px',                                    'background-position':'-'+j*o.panelWidth+'px '+imgDimensions.height/2+'px'                                    });                                $('#bottom_'+j+'_'+randID).css({                                    'top':imgDimensions.height/2+'px',                                    'background-position':'-'+j*o.panelWidth+'px '+imgDimensions.height/2+'px'                                    });                            }                            function teeth4()                            {                                $('#top_'+i+'_'+randID).animate({                                    top:'-'+imgDimensions.height+'px',                                    opacity:'1'                                });                                $('#bottom_'+i+'_'+randID).animate({                                    top:imgDimensions.height+'px',                                    opacity:'1'                                });                                i = (name=='panelTeethLeftReveal') ? i+1:i-1;                                if( (name=='panelTeethLeftReveal') && i<=horizPanels)                                {                                    setTimeout(teeth4,o.panelTransitionDuration);                                }                                else if( name=='panelTeethRightReveal' && i>=0)                                {                                    setTimeout(teeth4,o.panelTransitionDuration);                                }                                else                                {                                    cleanupAndProceed();                                }                            }                            teeth4();                        }                    }                    if(name=='overlayTopDown' || name=='overlayBottomUp' || name=='overlayLeftRight' || name=='overlayRightLeft')                    {                        var vertPanels = Math.floor(imgDimensions.height/o.panelWidth);                        var horizPanels = Math.floor(imgDimensions.width/o.panelWidth);                        var blinds = opt1;                        for(var h=0;h<=horizPanels;h++)                        {                            panelLeft=h*o.panelWidth;                            $(obj).append('<div id="top_'+h+'_'+randID+'" class="horizPanel" style="top:0px;left:'+panelLeft+'px;background-position:-'+panelLeft+'px -'+0+'px"></div>');                        }                        for(v=0;v<=vertPanels;v++)                        {                            panelTop=v*o.panelWidth;                            $(obj).append('<div id="left_'+v+'_'+randID+'" class="vertPanel" style="top:'+panelTop+'px;left:0px;background-position:-'+0+'px -'+panelTop+'px"></div>');                        }                        $('.horizPanel',obj).css({                            'opacity':'0',                            'position':'absolute',                            'background-image':'url('+imageArray[currentImage+1]+')'                            }).width(o.panelWidth).height(imgDimensions.height);                        $('.vertPanel',obj).css({                            'opacity':'0',                            'position':'absolute',                            'background-image':'url('+imageArray[currentImage+1]+')'                            }).width(imgDimensions.width).height(o.panelWidth);                        // Done building panels                        $(obj).append('<img src="'+imageArray[currentImage]+'">');                        if(name=='overlayTopDown' || name=='overlayBottomUp')                        {                            var i = (name=='overlayTopDown') ? 0:vertPanels;                            function overlayDown()                            {                                if(blinds) $('#left_'+i+'_'+randID).height(0);                                $('#left_'+i+'_'+randID).animate({                                    opacity:'1',                                    height:o.panelWidth+'px'                                    },o.transitionDuration);                                i = (name=='overlayTopDown') ? i+1:i-1;                                if( (name=='overlayTopDown') && i<=vertPanels)                                {                                    setTimeout(overlayDown,o.panelTransitionDuration);                                }                                else if( name=='overlayBottomUp' && i>=0)                                {                                    setTimeout(overlayDown,o.panelTransitionDuration);                                }                                else                                {                                    cleanupAndProceed();                                }                            }                            overlayDown();                        }                        if(name=='overlayLeftRight' || name=='overlayRightLeft')                        {                            var i = (name=='overlayLeftRight') ? 0:horizPanels;                            function overlay2()                            {                                if(blinds) $('#top_'+i+'_'+randID).width(0);                                $('#top_'+i+'_'+randID).animate({                                    opacity:'1',                                    width:o.panelWidth+'px'                                    },o.transitionDuration);                                i = (name=='overlayLeftRight') ? i+1:i-1;                                if( (name=='overlayLeftRight') && i<=horizPanels)                                {                                    setTimeout(overlay2,o.panelTransitionDuration);                                }                                else if( name=='overlayRightLeft' && i>=0)                                {                                    setTimeout(overlay2,o.panelTransitionDuration);                                }                                else                                {                                    cleanupAndProceed();                                }                            }                            overlay2();                        }                    }                    if(name=='jackpot')                    {                        for(var h=0;h<=2;h++)                        {                            var imageArrayCopy = imageArray.slice(0); // The easy way to copy an array. Equals alone clones.                            imageArrayCopy.push(imageArrayCopy.shift());                            var panelLeft=h*(imgDimensions.width/3);                            $(obj).append('<div id="top_'+h+'_'+randID+'" class="horizPanel" style="overflow:hidden;top:-'+imgDimensions.height*10+'px;left:'+panelLeft+'px;background-position:-'+panelLeft+'px -'+0+'px"></div>');                            for(var i=0;i<=9;i++)                            {                                $('#top_'+h+'_'+randID).append('<img style="position:relative;left:-'+panelLeft+'px" src="'+imageArrayCopy[0]+'"><br />');                                imageArrayCopy.push(imageArrayCopy.shift());                            }                            $('#top_'+h+'_'+randID).append('<img style="position:relative;left:-'+panelLeft+'px" src="'+imageArray[0]+'"><br />');                        }                        $('.horizPanel',obj).css({                            'position':'absolute',                            'background-image':'url('+imageArray[currentImage+1]+')'                            }).width(imgDimensions.width/3).height(imgDimensions.height*11);                        // Done building panels                        $(obj).append('<img src="'+imageArray[currentImage]+'">');                        var i=0;                        function jackpot()                        {                            $('#top_'+i+'_'+randID).animate({                                top:'0px'                            }, {                                duration:o.transitionDuration*3,                                easing:'easeInOutExpo'                            });                            i++;                            if( i<=2)                            {                                setTimeout(jackpot,500);                            }                            else                            {                                cleanupAndProceed(o.transitionDuration+(3*500));                            }                        }                        jackpot();                    }                }                function cleanupAndProceed(delay)                {                    delay = (!delay) ? o.transitionDuration:delay;                    setTimeout( function(){                        if(!mouseover)                        {                            firstTime=false;                            $(obj).append('<img style="position:absolute;top:0;left:0" src="'+imageArray[currentImage+1]+'">');                            $('.box',obj).remove(); // Remove all div boxes - we'll rebuild them quickly                            $('.horizPanel',obj).remove(); // Remove all panels - we'll rebuild them quickly                            $('.vertPanel',obj).remove(); // Remove all panels - we'll rebuild them quickly                            timeout = setTimeout(function(){                                imageArray.push(imageArray.shift()); // moves first array element to last spot                                imageNameArray.push(imageNameArray.shift());                                $('img',obj).remove(); // Remove all images from container                                pickFX();                            },o.viewDuration);                        }                    }, delay);                }                function pickFX()                {                    // If an image has a name tag then use it, else use the FX array, else random. E.g. 'panelTeethRight,fade'                    randomFXarray = new Array(                        "fade",                        "boxSouthWest",                        "boxSouthEast",                        "boxNorthWest",                        "boxNorthEast",                        "boxRandom",                        "panelEastTopDown,true",                        "panelEastBottomUp,true",                        "panelWestTopDown,true",                        "panelWestBottomUp,true",                        "panelNorthLeftRight,true",                        "panelNorthRightLeft,true",                        "panelSouthLeftRight,true",                        "panelSouthRightLeft,true",                        "panelZipperDown,true",                        "panelZipperUp,true",                        "panelZipperLeft,true",                        "panelZipperRight,true",                        "panelEastTopDown,false",                        "panelEastBottomUp,false",                        "panelWestTopDown,false",                        "panelWestBottomUp,false",                        "panelNorthLeftRight,false",                        "panelNorthRightLeft,false",                        "panelSouthLeftRight,false",                        "panelSouthRightLeft,false",                        "panelZipperDown,false",                        "panelZipperUp,false",                        "panelZipperLeft,false",                        "panelZipperRight,false",                        "panelEastTopDownReveal",                        "panelEastBottomUpReveal",                        "panelWestTopDownReveal",                        "panelWestBottomUpReveal",                        "panelNorthLeftRightReveal",                        "panelNorthRightLeftReveal",                        "panelSouthLeftRightReveal",                        "panelSouthRightLeftReveal",                        "panelTeethDown,true",                        "panelTeethUp,true",                        "panelTeethDown,false",                        "panelTeethUp,false",                        "panelTeethLeft,true",                        "panelTeethRight,true",                        "panelTeethLeft,false",                        "panelTeethRight,false",                        "panelTeethDownReveal",                        "panelTeethUpReveal",                        "panelTeethLeftReveal",                        "panelTeethRightReveal",                        "overlayTopDown,true",                        "overlayBottomUp,true",                        "overlayLeftRight,true",                        "overlayRightLeft,true",                        "overlayTopDown,false",                        "overlayBottomUp,false",                        "overlayLeftRight,false",                        "overlayRightLeft,false",                        "jackpot"                        );                    var randFX = Math.floor(Math.random() * randomFXarray.length);                    if(imageNameArray[0]) opt = imageNameArray[0];  // e.g. 'panelTeethRight,fade'                    else if(o.FX.length>0) {                        opt=o.FX[0];                        o.FX.push(o.FX.shift());                    }                    else opt=randomFXarray[randFX];                    opt1 = opt.split(',');                    bool = (opt1[1]=='true') ? true:false;                    str = {                        name:opt1[0],                        opt1:bool                    };                    galleryFX(str.name,str.opt1);                }            });        }    });})(jQuery);Array.prototype.shuffle = function() {    var s = [];    while (this.length) s.push(this.splice(Math.random() * this.length, 1));    while (s.length) this.push(s.pop());    return this;}
