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.rivSlideBlock1 = 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);
                $(opts.navBlock, elem).html(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"});
                // wstawienie pre-next
                var lpre = '';
                var lnext = '';
                var lang ='pl_PL';
                
                var pre_next = $("div.pre_next",elem);
                
                var lpre = '';
                var lnext = '';
                var lang ='';
                var pre_next = $("div.pre_next",elem);
                for (i=0; i<pre_next.length; i++) {
                   if (lang == '') {
                       lang = $(pre_next[i]).attr("lang");
                       switch (lang) {
                           case 'pl_PL': lpre = '&laquo; poprzedni'; lnext = 'następny &raquo;'; break;
                           case 'en_US': lpre = '&laquo; previous'; lnext = 'next &raquo;'; break;
                           case 'de_DE': lpre = 'previous'; lnext = 'next'; break;
                           case 'fr_FR': lpre = 'Précédent'; lnext = 'Suivant'; break;
                       }
                   }
                   var html = '';
                   if (i >0) { 
                       html = html+'<span class="pre"><a href="#" title="'+(i)+'">'+lpre+'</a></span>';
                   }
                   if (i+1 < pre_next.length ) { 
                       html = html+'<span class="next"><a href="#" title="'+(i+2)+'">'+lnext+'</a></span>';
                   }
                   $(pre_next[i]).html(html);
                }
                //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 listClickPreNext = function(clicked){
                //zatrzymanie slideshow
                if (runId) clearInterval(runId);
                //pokazanie wybranego bloku
                //var elementIndex = $(listClass +" li", elem).index($(clicked).parent());
                var elementIndex = $(clicked).attr('title');
                makeActive(elementIndex-1);
            };
            var addClickEvent = function(){
                $(listClass + " li a", elem).click(function(e){
                    e.preventDefault();
                    listClick($(this));
                });
                $("div.pre_next a", elem).click(function(e){
                    e.preventDefault();
                    listClickPreNext($(this));
                });
                
            };

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

$.fn.rivSlideBlock2 = 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);
                $(opts.navBlock, elem).html(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"});
                // wstawienie pre-next
                var lpre = '';
                var lnext = '';
                var lang ='';
                var pre_next = $("div.pre_next",elem);
                for (i=0; i<pre_next.length; i++) {
                   if (lang == '') {
                       lang = $(pre_next[i]).attr("lang");
                       switch (lang) {
                           case 'pl_PL': lpre = '&laquo; poprzedni'; lnext = 'następny &raquo;'; break;
                           case 'en_US': lpre = '&laquo; previous'; lnext = 'next &raquo;'; break;
                           case 'de_DE': lpre = 'previous'; lnext = 'next'; break;
                           case 'fr_FR': lpre = 'Précédent'; lnext = 'Suivant'; break;
                       }
                   }
                   var html = '';
                   if (i >0) { 
                       html = html+'<span class="pre"><a href="#" title="'+(i)+'">'+lpre+'</a></span>';
                   }
                   if (i+1 < pre_next.length ) { 
                       html = html+'<span class="next"><a href="#" title="'+(i+2)+'">'+lnext+'</a></span>';
                   }
                   $(pre_next[i]).html(html);
                }
                //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 listClickPreNext = function(clicked){
                //zatrzymanie slideshow
                if (runId) clearInterval(runId);
                //pokazanie wybranego bloku
                //var elementIndex = $(listClass +" li", elem).index($(clicked).parent());
                var elementIndex = $(clicked).attr('title');
                makeActive(elementIndex-1);
            };
            var addClickEvent = function(){
                $(listClass + " li a", elem).click(function(e){
                    e.preventDefault();
                    listClick($(this));
                });
                $("div.pre_next a", elem).click(function(e){
                    e.preventDefault();
                    listClickPreNext($(this));
                });
                
            };

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