/**************** jQuery Easing ****************/
/*
 * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
 *
 * Uses the built in easing capabilities added In jQuery 1.1
 * to offer multiple easing options
 *
 * TERMS OF USE - jQuery Easing
 *
 * Open source under the BSD License.
 *
 * Copyright © 2008 George McGinley Smith
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without modification,
 * are permitted provided that the following conditions are met:
 *
 * Redistributions of source code must retain the above copyright notice, this list of
 * conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright notice, this list
 * of conditions and the following disclaimer in the documentation and/or other materials
 * provided with the distribution.
 *
 * Neither the name of the author nor the names of contributors may be used to endorse
 * or promote products derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 * OF THE POSSIBILITY OF SUCH DAMAGE.
 *
*/
jQuery.easing['jswing']=jQuery.easing['swing'];jQuery.extend(jQuery.easing,{def:'easeOutQuad',swing:function(x,t,b,c,d){return jQuery.easing[jQuery.easing.def](x,t,b,c,d);},easeInQuad:function(x,t,b,c,d){return c*(t/=d)*t+b;},easeOutQuad:function(x,t,b,c,d){return-c*(t/=d)*(t-2)+b;},easeInOutQuad:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t+b;return-c/2*((--t)*(t-2)-1)+b;},easeInCubic:function(x,t,b,c,d){return c*(t/=d)*t*t+b;},easeOutCubic:function(x,t,b,c,d){return c*((t=t/d-1)*t*t+1)+b;},easeInOutCubic:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t+b;return c/2*((t-=2)*t*t+2)+b;},easeInQuart:function(x,t,b,c,d){return c*(t/=d)*t*t*t+b;},easeOutQuart:function(x,t,b,c,d){return-c*((t=t/d-1)*t*t*t-1)+b;},easeInOutQuart:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t*t+b;return-c/2*((t-=2)*t*t*t-2)+b;},easeInQuint:function(x,t,b,c,d){return c*(t/=d)*t*t*t*t+b;},easeOutQuint:function(x,t,b,c,d){return c*((t=t/d-1)*t*t*t*t+1)+b;},easeInOutQuint:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t*t*t+b;return c/2*((t-=2)*t*t*t*t+2)+b;},easeInSine:function(x,t,b,c,d){return-c*Math.cos(t/d*(Math.PI/2))+c+b;},easeOutSine:function(x,t,b,c,d){return c*Math.sin(t/d*(Math.PI/2))+b;},easeInOutSine:function(x,t,b,c,d){return-c/2*(Math.cos(Math.PI*t/d)-1)+b;},easeInExpo:function(x,t,b,c,d){return(t==0)?b:c*Math.pow(2,10*(t/d-1))+b;},easeOutExpo:function(x,t,b,c,d){return(t==d)?b+c:c*(-Math.pow(2,-10*t/d)+1)+b;},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;},easeInCirc:function(x,t,b,c,d){return-c*(Math.sqrt(1-(t/=d)*t)-1)+b;},easeOutCirc:function(x,t,b,c,d){return c*Math.sqrt(1-(t=t/d-1)*t)+b;},easeInOutCirc:function(x,t,b,c,d){if((t/=d/2)<1)return-c/2*(Math.sqrt(1-t*t)-1)+b;return c/2*(Math.sqrt(1-(t-=2)*t)+1)+b;},easeInElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d)==1)return b+c;if(!p)p=d*.3;if(a<Math.abs(c)){a=c;var s=p/4;} else var s=p/(2*Math.PI)*Math.asin(c/a);return-(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;},easeOutElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d)==1)return b+c;if(!p)p=d*.3;if(a<Math.abs(c)){a=c;var s=p/4;} else var s=p/(2*Math.PI)*Math.asin(c/a);return a*Math.pow(2,-10*t)*Math.sin((t*d-s)*(2*Math.PI)/p)+c+b;},easeInOutElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d/2)==2)return b+c;if(!p)p=d*(.3*1.5);if(a<Math.abs(c)){a=c;var s=p/4;} else var s=p/(2*Math.PI)*Math.asin(c/a);if(t<1)return-.5*(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;return a*Math.pow(2,-10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p)*.5+c+b;},easeInBack:function(x,t,b,c,d,s){if(s==undefined)s=1.70158;return c*(t/=d)*t*((s+1)*t-s)+b;},easeOutBack:function(x,t,b,c,d,s){if(s==undefined)s=1.70158;return c*((t=t/d-1)*t*((s+1)*t+s)+1)+b;},easeInOutBack:function(x,t,b,c,d,s){if(s==undefined)s=1.70158;if((t/=d/2)<1)return c/2*(t*t*(((s*=(1.525))+1)*t-s))+b;return c/2*((t-=2)*t*(((s*=(1.525))+1)*t+s)+2)+b;},easeInBounce:function(x,t,b,c,d){return c-jQuery.easing.easeOutBounce(x,d-t,0,c,d)+b;},easeOutBounce:function(x,t,b,c,d){if((t/=d)<(1/2.75)){return c*(7.5625*t*t)+b;}else if(t<(2/2.75)){return c*(7.5625*(t-=(1.5/2.75))*t+.75)+b;}else if(t<(2.5/2.75)){return c*(7.5625*(t-=(2.25/2.75))*t+.9375)+b;}else{return c*(7.5625*(t-=(2.625/2.75))*t+.984375)+b;}},easeInOutBounce:function(x,t,b,c,d){if(t<d/2)return jQuery.easing.easeInBounce(x,t*2,0,c,d)*.5+b;return jQuery.easing.easeOutBounce(x,t*2-d,0,c,d)*.5+c*.5+b;}});
/*
 *
 * TERMS OF USE - EASING EQUATIONS
 *
 * Open source under the BSD License.
 *
 * Copyright © 2001 Robert Penner
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without modification,
 * are permitted provided that the following conditions are met:
 *
 * Redistributions of source code must retain the above copyright notice, this list of
 * conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright notice, this list
 * of conditions and the following disclaimer in the documentation and/or other materials
 * provided with the distribution.
 *
 * Neither the name of the author nor the names of contributors may be used to endorse
 * or promote products derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 * OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 */
/**************** jQuery Easing END ****************/

/**************** InfiniteCarousel ****************/
/* Inifinite Carousel http://jqueryfordesigners.com/automatic-infinite-carousel/ */
/* Inifinite Carousel http://jqueryfordesigners.com/automatic-infinite-carousel/ */
(function () {
    $.fn.infiniteCarousel = function () {
        function repeat(str, n) {
            return new Array( n + 1 ).join(str);
        }

        return this.each(function () {
            // magic!
            var $wrapper = $('> div', this).css('overflow', 'hidden'),
                $slider = $wrapper.find('> ul').width(9999),
                $items = $slider.find('> li'),
                $single = $items.filter(':first')

                singleWidth = $single.outerWidth(),
                visible = Math.ceil($wrapper.innerWidth() / singleWidth),
                currentPage = 1,
                pages = Math.ceil($items.length / visible);

            /* TASKS */

            // 1. pad the pages with empty element if required
            if ($items.length % visible != 0) {
                // pad
                $slider.append(repeat('<li class="empty" />', visible - ($items.length % visible)));
                $items = $slider.find('> li');
            }

            // 2. create the carousel padding on left and right (cloned)
            $items.filter(':first').before($items.slice(-visible).clone().addClass('cloned'));
            $items.filter(':last').after($items.slice(0, visible).clone().addClass('cloned'));
            $items = $slider.find('> li');

            // 3. reset scroll
            $wrapper.scrollLeft(singleWidth * visible);

            // 4. paging function
            function gotoPage(page) {
                var dir = page < currentPage ? -1 : 1,
                    n = Math.abs(currentPage - page),
                    left = singleWidth * dir * visible * n;

                $wrapper.filter(':not(:animated)').animate({
                    scrollLeft : '+=' + left
                }, 500, function () {
                    // if page == last page - then reset position
                    if (page > pages) {
                        $wrapper.scrollLeft(singleWidth * visible);
                        page = 1;
                    } else if (page == 0) {
                        page = pages;
                        $wrapper.scrollLeft(singleWidth * visible * pages);
                    }

                    currentPage = page;
                });
            }

            // 5. insert the back and forward link
            //$wrapper.after('<a href="#" class="arrow back">&lt;</a><a href="#" class="arrow forward">&gt;</a>');

            // 6. bind the back and forward links
            $('a.back', this).click(function () {
                gotoPage(currentPage - 1);
                return false;
            });

            $('a.forward', this).click(function () {
                gotoPage(currentPage + 1);
                return false;
            });

            $(this).bind('goto', function (event, page) {
                gotoPage(page);
            });

            // THIS IS NEW CODE FOR THE AUTOMATIC INFINITE CAROUSEL
            $(this).bind('next', function () {
                gotoPage(currentPage + 1);
            });
        });
    };
})(jQuery);
/**************** InfiniteCarousel END ****************/



/**************** OSEMKA.PL-Carousel ****************/
(function( $ ){
    var methods = {
        init : function( mainpath,step_interval ) {
            return this.each(function(){
                var $this = $(this),
                    cfg   = $this.data('osemkaCarousel');
                if (!cfg)
                    $(this).data('osemkaCarousel', {
                        path        : '',
                        cw          : '',    //object childrens array pointer
                        cw_item     : 10,    //one box item width
                        cw_left     : 50,    //all items summary width for clones
                        cw_buffer   : 0,     //how much pixels to move
                        cw_wait     : false, //mouse out/over switch for autoanimation
                        cw_step_int : 100    //step animation interval
                    });
                cfg = $this.data('osemkaCarousel');
                if (cfg.path!=mainpath){
                    cfg.path=mainpath;
                    cfg.cw=$(cfg.path).children();
                    //3x repeat LI items
                    var t=cfg.cw[0].innerHTML.substr(4,cfg.cw[0].innerHTML.length-9);
                    cfg.cw[0].innerHTML="<ul>"+t+t+t+"</ul>";
                    var ii=$(cfg.path+' li');//!do zmiany
                    cfg.cw_item=ii[0].clientWidth;
                    cfg.cw_left=cfg.cw_item*Math.round(ii.length/3);
                    //prev, next and mouse out/over
                    cfg.cw[1].onclick=function(){$this.osemkaCarousel('cw_prev');this.blur();return false;};
                    cfg.cw[2].onclick=function(){$this.osemkaCarousel('cw_next');this.blur();return false;};
                    $(cfg.path).mouseout (function(){cfg.cw_wait=false;});
                    $(cfg.path).mouseover(function(){cfg.cw_wait=true ;});
                }
                //scroll centering to middle
                cfg.cw[0].scrollLeft=2*cfg.cw_left;
                cfg.cw_buffer=0;
                cfg.cw_wait=false;
                cfg.cw_step_int=step_interval;
                return $this;
            });
        },
        destroy : function( ) {
            return this.each(function(){
                var $this = $(this),
                data = $this.data('osemkaCarousel');
                //$(window).unbind('.osemkaCarousel');?
                data.osemkaCarousel.remove();
                $this.removeData('osemkaCarousel');
                return $this;
            });
        },
        cw_f : function() {
            return this.each(function(){
                var $this = $(this),
                    cfg   = $this.data('osemkaCarousel');
                var step=cfg.cw_item;
                var buff=cfg.cw_buffer;
                cfg.cw_buffer=0;
                var move;
                for (var i=0;buff!=0;i++){
                    if (buff>0){
                        move=step;
                        buff=buff-step;
                        if (buff<0){
                            move=move+buff;
                            buff=0;
                        }
                    }else{
                        move=-step;
                        buff=buff+step;
                        if (buff>0){
                            move=move+buff;
                            buff=0;
                        }
                    }
                    setTimeout(function() {cfg.cw[0].scrollLeft=cfg.cw[0].scrollLeft-move;},i*cfg.cw_step_int);
                }
                return false;
            });
        },
        cw_prev : function(){
            return this.each(function(){
                var $this = $(this),
                    cfg   = $this.data('osemkaCarousel');
                var tmp=cfg.cw[0].scrollLeft-4*cfg.cw_item;
                if (tmp<cfg.cw_left){
                    cfg.cw[0].scrollLeft=cfg.cw[0].scrollLeft+cfg.cw_left;
                }
                cfg.cw_buffer=cfg.cw_buffer+4*cfg.cw_item;
                return $this.osemkaCarousel('cw_f');
             });
        },
        cw_next : function(){
            return this.each(function(){
                var $this = $(this),
                    cfg   = $this.data('osemkaCarousel');
                var tmp=cfg.cw[0].scrollLeft+4*cfg.cw_item;
                if (tmp>2*cfg.cw_left){
                    cfg.cw[0].scrollLeft=cfg.cw[0].scrollLeft-cfg.cw_left;
                }
                cfg.cw_buffer=cfg.cw_buffer-4*cfg.cw_item;
                return $this.osemkaCarousel('cw_f');
            });
        },
        cw_fauto : function(dir){
            return this.each(function(){
                var $this = $(this),
                    cfg   = $this.data('osemkaCarousel');
                window.status=cfg.cw_buffer+" cw_fauto "+cfg.cw_wait;
                if (cfg.cw_buffer==0 && cfg.cw_wait==false){
                    if (dir=='next') $this.osemkaCarousel('cw_next');
                    else if (dir=='prev') $this.osemkaCarousel('cw_prev');
                }
                return $this;
            });
        }
    };
    $.fn.osemkaCarousel = function( method ) {
        if ( methods[method] ) {
            return methods[method].apply( this, Array.prototype.slice.call( arguments, 1 ));
        } else if ( typeof method === 'object' || ! method ) {
            return methods.init.apply( this, arguments );
        } else {
            $.error( 'Method ' +  method + ' does not exist on jQuery.osemkaCarousel' );
        }    
    };
})( jQuery );

/**************** OSEMKA.PL-Carousel END ****************/


jQuery(function($){
	var Engine={
		fx:{
			carousell:function(){
                                $('.infiniteCarousel').osemkaCarousel('init','.infiniteCarousel',100);
                                setInterval(function() {$('.infiniteCarousel').osemkaCarousel('cw_fauto','next')},12000);
//				var autoscrolling=true;
//				$('.infiniteCarousel').infiniteCarousel().mouseover(function(){
//					autoscrolling=false;
//				}).mouseout(function(){
//					autoscrolling=true;
//				});
//				setInterval(function(){
//					if(autoscrolling){
//						$('.infiniteCarousel').trigger('next');
//					}
//				},12000);
			},


		}
	};

	Engine.fx.carousell();


});




