/*
 * tinyLightbox original animation extension 2.4 - Plugin for jQuery
 * 
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 *
 * Depends:
 *  jquery.js
 *    jquery.tinyLightbox.js
 * 
 *
 *  Copyright (c) 2008 Oleg Slobodskoi (ajaxsoft.de)
 */
;(function($) {

$.fn.tinyLightbox.original = function( inst ) {
    
    return {
        start: function( callback ) {
            inst.$overlay.animate({opacity: 'show' }, inst.s.speed, function(){
                inst.$box.css({
                    visibility: 'visible',
                    left: inst.boxData.left,
                    top: inst.boxData.top
                });
                callback();
            });            
        },
    
        animate: function( callback ) {
            inst.$box.animate({height: inst.boxData.height}, inst.s.speed, function (){
                $(this).animate(
                    { 
                        width: inst.boxData.width, 
                        left: inst.boxData.left
                    }, 
                    inst.s.speed, 
                    function() {
                        // show image
                        inst.$image.css('background-image','url('+inst.path+')')    
                        .fadeIn(inst.s.speed, function(){
                            inst.$bar.css({
                                top: inst.boxData.top+inst.boxData.height+inst.boxData.borderWidth*2,
                                left: inst.boxData.left,
                                width: inst.boxData.width
                            }).slideDown(inst.s.speed, callback);
                        });            
                    }
                );
            });
        },
    
        prepare: function( callback ) {
            inst.$bar.slideUp(inst.s.speed, function(){
                inst.$image.fadeOut(inst.s.speed, callback);
            });
        },
    
        limit: function( callback )    {
            shake(4, inst.s.speed/2, 40, '+', 0);
            function shake (times, speed, distance, dir, timesNow) {
                timesNow++;
                dir = dir=='+' ? '-' : '+';
                inst.$bar.hide();
                inst.$box.animate({left: dir+'='+distance}, speed, function(){
                    timesNow < times ? shake(times, speed, distance, dir, timesNow) : inst.$bar.show() && callback();
                });
            };
        },
                    
        close: function ( callback ) {
            this.prepare(function(){
                inst.$box.fadeOut(inst.s.speed, function(){
                    inst.$overlay.fadeOut(inst.s.speed, callback);
                });    
            });
        }
        
    };
};


})( jQuery );
