// zmienione slidy widgetu na 25sek z 20 sek
// zmiana: visible = Math.ceil($wrapper.innerWidth() / singleWidth), => visible = Math.ceil($wrapper.width() / singleWidth),
// przed zmiana przy jednym elemencie szerokim na caly .wrapper przesuwal co 2 pozycje zamiast co jedna
var widgetIsOpen = false;

$.fn.infiniteCarousel = function () {

    function repeat(str, num) {
        return new Array( num + 1 ).join( str );
    }

    return this.each(function () {
        var $wrapper = $('> div', this).css('overflow', 'hidden'),
            $slider = $wrapper.find('> ul'),
            $items = $slider.find('> li'),
            $single = $items.filter(':first'),

            singleWidth = $single.outerWidth(),
            visible = Math.ceil($wrapper.width() / singleWidth), // note: doesn't include padding or border; oryginalnie było $wrapper.innerWidth()
            currentPage = 1,
            pages = Math.ceil($items.length / visible);


        // 1. Pad so that 'visible' number will always be seen, otherwise create empty items
        if (($items.length % visible) != 0) {
            $slider.append(repeat('<li class="empty" />', visible - ($items.length % visible)));
            $items = $slider.find('> li');
        }

        // 2. Top and tail the list with 'visible' number of items, top has the last section, and tail has the first
        $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'); // reselect

        // 3. Set the left position to the first 'real' item
        $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 == 0) {
                    $wrapper.scrollLeft(singleWidth * visible * pages);
                    page = pages;
                } else if (page > pages) {
                    $wrapper.scrollLeft(singleWidth * visible);
                    // reset back to start position
                    page = 1;
                }

                currentPage = page;
            });

            return false;
        }

				function next()
				{
					gotoPage(currentPage + 1);
				}

        $wrapper.after('<a class="arrow back">&lt;</a><a class="arrow forward">&gt;</a>');

        // 5. Bind to the forward and back buttons
        $('a.back', this).click(function () {
            return gotoPage(currentPage - 1);
        });

        $('a.forward', this).click(function () {
            return gotoPage(currentPage + 1);
        });

        // create a public interface to move to a specific page
        $(this).bind('goto', function (event, page) {
            gotoPage(page);
        });

				function slide(){
					next();
				}
				//Launch the scroll every 10 seconds
				intervalId = window.setInterval(slide, 10000);

				//On user click deactivate auto-scrolling
				$('.infiniteCarousel').hover(
				 function(){
					clearInterval(intervalId);
				 },
				 function()
				 {
					intervalId = window.setInterval(slide, 10000);
				 }
				);
    });
};

$.fn.widget = function() {

	return this.each(function () {
		var open = [-1,0];
		var items = [null,null,null,null];

		items[0] = $('#panel1 .list li', this).hide();
		items[1] = $('#panel2 .list li', this).hide();
		items[2] = $('#panel3 .list li', this).hide();
		items[3] = $('#panel4 .list li', this).hide();

 		$('.panel-join', this).hide();
 		$('.panel-list', this).hide();

		for(var a=1;a<5;a++)
		{
			$('#panel'+a+' .panel-navigator', this).append('<li class="prev"><a href="#" onclick="_gaq.push([\'_trackEvent\', \'Widget SG\', \'Click\', \'Widget Navigation#prev\']);return false"><img src="/images/www/layout_default/panelprev.png" alt="" /></a></li>');
			for(var i=0;i<items[a-1].length;i++)
			{
				$('#panel'+a+' .panel-navigator', this).append('<li'+((i==open[1])?' class="selected"':'')+'><a href="#" onclick="_gaq.push([\'_trackEvent\', \'Widget SG\', \'Click\', \'Widget Navigation#' + a + '-' + (i+1) + '\']);gotoWidgetControl('+(a-1)+', '+i+');return false"><img src="/images/www/layout_default/panelspoints.png" alt="" /></a></li>');
			}

			$('#panel'+a+' .panel-navigator', this).append('<li class="next"><a href="#" onclick="_gaq.push([\'_trackEvent\', \'Widget SG\', \'Click\', \'Widget Navigation#next\']);return false"><img src="/images/www/layout_default/panelnext.png" alt="" /></a></li>');
		}

		$('.prev a', this).click(function () {
		clearInterval(intervalIdpanel);
			return gotoPage(open[0], open[1] - 1, 'control');
		});

		$('.next a', this).click(function () {
		clearInterval(intervalIdpanel);
			return gotoPage(open[0], open[1] + 1, 'control');
		});

// Wyłączenie animacji po kliknięciu w przyciski w navigatorze

		$('.panel-navigator a', this).click(function () {
		widgetIsOpen = false;
    });

// Wstrzymuje animację (przejcia) po najechaniu kursorem na div

		$('.panel-list', this).hover(
    function () {
		clearInterval(intervalIdpanel);
		  },
		  function()
				 {
					intervalIdpanel = window.setInterval(slidepanel, 25000);
				 }
      );

		if(open[0]>-1)
		{
			$(items[open[0]][open[1]]).show();
			$('#panel'+(open[0]+1)).show();
			$($('#widget .panels li')[open[0]]).addClass('focus');
		}
		else
		{
			$(this).css('height', '35px');
		}

		function gotoPage(x, y, mode)
		{
			if(open[0]==-1)
			{
				$('#widget').animate({height: '285' }, 500);
				open[0]=x;
				if(y>=items[open[0]].length) { y=0; }
				else if(y<0) { y=items[open[0]].length-1; }
				open[1]=y;
				$(items[open[0]][open[1]]).show();
				$('#panel'+(open[0]+1)).show();
				$($('#widget .panels li')[open[0]]).addClass('focus');
				$('#panel'+(x+1)+' .panel-navigator').show();
				$('#panel'+(open[0]+1)).fadeIn();
    			widgetIsOpen = true;
			}
			else if(x==open[0])
			{
				if($('#widget.close').length>0&&mode!='control'&&x==open[0])
				{
					$($('#widget .panels li')[open[0]]).removeClass('focus');
					$(items[open[0]][open[1]]).fadeOut();
					$('#widget').animate({height: '35' }, 500);
					$('#panel'+(x+1)+' .panel-navigator').hide();
					open[0]=-1;
        			widgetIsOpen = false;
// usuwa buga w widgecie gdzie przy zwinietym widgecie przez ZLOTY KLUB po rozwinieciu pokazuje sie tylko to zakladka wszedzie
        			$('.panel-join').css('display','none');
				}
				else
				{
					$(items[open[0]][open[1]]).fadeOut(
						function()
						{
							links = $('#panel'+(x+1)+' .panel-navigator li');
							open[0]=x;
							if(y>=items[open[0]].length) { y=0; }
							else if(y<0) { y=items[open[0]].length-1; }
							open[1]=y;

							$('#panel'+(x+1)+' .panel-navigator .selected').removeClass('selected');
							$(links[open[1]+1]).addClass('selected');
						}
					);
					open[0]=x;
					if(y>=items[open[0]].length) { y=0; }
					else if(y<0) { y=items[open[0]].length-1; }
					open[1]=y;
					$(items[open[0]][open[1]]).fadeIn();
        			widgetIsOpen = true;
				}
			}
			else
			{
				$('#panel'+(open[0]+1)).fadeOut(
					function()
					{
						$('#widget .panels .focus').removeClass('focus');
						$('#panel'+(open[0]+1)+' .list li').hide();
						$('#panel'+(x+1)+' .panel-navigator').show();
						links = $('#panel'+(x+1)+' .panel-navigator li');
						open[0]=x;
						if(y>=items[open[0]].length) { y=0; }
						else if(y<0) { y=items[open[0]].length-1; }
						open[1]=y;
						$($('#widget .panels li')[open[0]]).addClass('focus');
						$('#panel'+(x+1)+' .panel-navigator .selected').removeClass('selected');
						$(links[open[1]+1]).addClass('selected');
						$(items[open[0]][open[1]]).show();

					}
				);
				open[0]=x;
				if(y>=items[open[0]].length) { y=0; }
				else if(y<0) { y=items[open[0]].length-1; }
				open[1]=y;
				$('#panel'+(open[0]+1)).fadeIn();
			}
		}

		function slajd()
		{
      gotoWidgetControl(1,0);return false;
    }

    function slajd2()
		{
      gotoWidgetControl(0,0);
      widgetIsOpen = true;
    }

		function next()
				{
					return gotoPage(open[0], open[1] + 1, 'control');
					}

        	function slidepanel(){

// Sprawdzenie ile elementów li jest w items[0] i items [1] i przejcie do nastepnego open[x] po dojechaniu do ostatniego elementu li. open[0] - zakładki, open[1] elementy li

        	    if(false == widgetIsOpen)
        	    { return; }
        	  var li = items[0].length;
        	  var li2 = items[1].length;

          if(open[1]==li-1) {
              slajd();
                 }
          else if(open[0]==1&&open[1]==li2-1) {
              slajd2();
                 }
          next();

				  }


				//Launch the scroll every 10 seconds
				intervalIdpanel = window.setInterval(slidepanel, 25000);


		gotoWidget = function(x, y) { gotoPage(x, y); };
		gotoWidgetControl = function(x, y) { gotoPage(x, y, 'control'); };
	});
};



$(document).ready(function () {
  $('.infiniteCarousel').infiniteCarousel();
	$('#widget').widget();
});

