               jQuery.fn.fadeIn = function(speed, callback) { 
    return this.animate({opacity: 'show'}, speed, function() { 
        if (jQuery.browser.msie)  
            this.style.removeAttribute('filter');  
        if (jQuery.isFunction(callback)) 
            callback();  
    }); 
}; 
 
jQuery.fn.fadeOut = function(speed, callback) { 
    return this.animate({opacity: 'hide'}, speed, function() { 
        if (jQuery.browser.msie)  
            this.style.removeAttribute('filter');  
        if (jQuery.isFunction(callback)) 
            callback();  
    }); 
}; 
			   
			   $.fn.rivSlideBlock = function(options){

				var defaults = {timer : 1000, blocks : ".news_wrapper", navBlock : ".navi_aktualnosci", listName : "listPager", activeClass : "listAct", link : "&nbsp;", slide : false, anim : false};				
				var opts = $.extend({}, defaults, options);
				
				var listClass = "." + opts.listName;
				
                    this.each(function(e, i){
						var elem = $(this);                 
                        var slideActive = true;
                        var makePager = false;
                        var slideIndex = 0;
                        var howMany = $(opts.blocks, elem).length;
						var maxIndex = howMany - 1;
						var link;
						var animTypeH = "slideUp";
						var animTypeS = "show";	
								
                        if (howMany > 1) {
                            makePager = true;
                        };

                        var runSlide = function(){
                            //włączanie aktualnego bloku
                            makeActive(slideIndex);

                            //aktualizacja stanu licznika
                            slideIndex += (slideIndex < maxIndex) ? 1 : -maxIndex;
                        };

                        var makeActive = function(subIndex){
						
                            //pokazanie wybranego bloku
							if (true === opts.anim) {
									if ($(opts.blocks + ":eq(" + subIndex + ")", elem).is(":hidden")) {
									$(listClass, elem).hide();
												$(opts.blocks + ":visible", elem).slideUp(300,function(){
																
															$(opts.blocks + ":eq(" + subIndex + ")", elem).slideDown(300, function(){$(listClass, elem).show();});
															
															$(opts.blocks + ":visible", elem).hide();
															
												});
													
									};
								
							} else {
								$(opts.blocks + ":visible", elem).hide();
								$(opts.blocks + ":eq(" + subIndex + ")", elem).show();
							}
							//alert(animTypeH);


                            //ustawienie aktywnej klasy
                            $(listClass + " li", elem).removeClass(opts.activeClass);
							
                            $(listClass + " li:eq(" + subIndex + ")", elem).addClass(opts.activeClass);
							//alert($(listClass + " li:eq(" + subIndex + ")", elem).attr("class"));
                        };

                        var makeNav = function(){
                            //dynamiczne tworzenie nawigacji
                            var elementyListy = '<ul class="' + opts.listName + '">';
                                for (var i = 1; i <= howMany; i++)
                                {
									if (true === opts.link) link = i; else link = "&nbsp;";
                                    elementyListy += '<li><a href="#" title="' + i + '">' + link + '</a></li>';
                                };
                            elementyListy += '</ul>';

                            //implementacja nawigacji w dokumencie (przed blokiem)
                            $(opts.navBlock, elem).prepend(elementyListy);

                            //pokazanie pierwszego bloku
                            $(opts.blocks + ":visible", elem).hide();
                            $(opts.blocks + ":first", elem).show();

                            //ustawienie początkowego wyglądu nawigacji
                            $(listClass + " li:first", elem).addClass(opts.activeClass);
                            $(listClass + " li:last", elem).css({"background" : "none"});

                            //podpięcie do elementów nawigacji zdarzenia "click"
                            addClickEvent();
                         };

                         var listClick = function(clicked){
                             //zatrzymanie slideshow
                            if (runId)
								clearInterval(runId);

                            //pokazanie wybranego bloku
                            var elementIndex = $(listClass +" li", elem).index($(clicked).parent());
                            makeActive(elementIndex);
                         };

                       var addClickEvent = function(){
                           $(listClass + " li a", elem).click(function(e){
                                e.preventDefault();
                                listClick($(this));
                            }
							);
                       };

                        if ( true === makePager ) {
                            //tworzenie nawigacji                        
                            makeNav();
                            if ( true === opts.slide ) {
                                var runId = setInterval(function(){
                                                                        runSlide();
                                                                    }, opts.timer);
                            } ;
                        };

                    });

                };
