var timerId;

function now() {
    return (new Date).getTime();
}

jQuery.fx.prototype.custom = function( from, to, unit ) {
    this.startTime = now();
    this.start = from;
    this.end = to;
    this.unit = unit || this.unit || "px";
    this.now = this.start;
    this.pos = this.state = 0;

    var self = this;
    function t( gotoEnd ) {
        return self.step(gotoEnd);
    }

    t.elem = this.elem;

        if ( t() && jQuery.timers.push(t) && !timerId ) {
    timerId = setInterval(function(){
        var timers = jQuery.timers;

        for ( var i = 0; i < timers.length; i++ )
            if ( !timers[i]() )
                timers.splice(i--, 1);

        if ( !timers.length ) {
            clearInterval( timerId );
            timerId = undefined;
        }
    }, 45);
}
};


(function($){

 $.fn.moveInit = function() {     
    var kontejnerInstance = $(this);
    var way = "left"; // right
    var mcas = 0;
    var mkolik = 0;
    var rychlost = 30;
    var wrapper = $('#fotky #wrapper');
    var boxy = $('#fotky #wrapper .box');
    
    function prepareKontejner() {       
       
        var kontejner = kontejnerInstance.css('width');
        
        kontejner = parseInt(kontejner.replace('px',''));
        var last = boxy.length-1;
        var i = 0;
            $.each(boxy,function(ii,n){
                var objekt = $(this);
                var w = objekt.css('width');
                w = w.replace('px','');
                i+= parseInt(w);                
                w = objekt.css('margin-left');
                w = w.replace('px','');
                i+= parseInt(w);
                w = objekt.css('margin-right');
                w = w.replace('px','');
                i+= parseInt(w);
                if (ii==last) {
                    var kolik = i-kontejner;
                    
                    if (kolik>0) {
                        var cas = kolik/rychlost*1000;
                        Math.round(cas);                        
                        mcas = cas;
                        mkolik = kolik;
                        moveKontejner(kolik,cas);
                    }
                }                
            });
            
            wrapper.css('width',i+'px');
    }
    
    function moveKontejner(kolik,cas) {
        
        if (way=='left') {
            var prvni = -kolik;
            var druhy = 0;
            var ways='right';
        } else if (way=='right') {
            var prvni = 0;
            var druhy = -kolik;
            var ways = 'left';
        }

        wrapper.animate({'left':prvni+'px'},cas,'linear',function() {
            way = ways;            
            wrapper.animate({'left':druhy+'px'},mcas,'linear',function() {
                if (way=='left') {
                    way='right';
                } else if (way=='right') {
                    way = 'left';
                }

                moveKontejner(mkolik,mcas);
                
            });
        });
    }   

    wrapper.mouseover(function() {
        wrapper.stop();
    });
    wrapper.mouseout(function() {
        var kontejner = $(this).css('left');
        kontejner = parseInt(kontejner.replace('px',''));
        if (way=="left")
            var kolik = mkolik+kontejner;
        else
            var kolik = kontejner*-1;
        if (kolik>0) {
            var cas = kolik/rychlost*1000;
            Math.round(cas);
            moveKontejner(mkolik,cas);
        }        
    });
    if (kontejnerInstance.length>0)
      prepareKontejner();

 };
 
})(jQuery);
