'); panel.on('panel:update', function() { updateButtons(); if (prev) $('#btn-prev').show(); if (next) $('#btn-next').show(); }) panel.insertAfter(el); } function fillPanel(article) { var data = $.parseJSON(article.attr('data-popup')), type = article.hasClass('auction')?'auction':'article'; data.article = article.attr('id'); var html = tmpl('template-' + type + '-popup', data); // $('.detail-container-body').html(html); panel.html(html); // pozycjonowanie górnej strzałki if (panel.closest('.articles.listing-album').length) { var arrow = panel.find('.popup-arrow.top'), left = current.position().left + current.width() / 2 - arrow.outerWidth() / 2; arrow.show(); arrow.css('left', left + 'px'); } switch(type) { case 'auction': if (typeof(data['seller']) === 'undefined') { var sellerInfo = panel.find('.seller .detail'); if (typeof(sellers[data.created_by]) === 'undefined') { $.ajax({ url: '/search?task=auction.sellerInfoBox', data: { uid: data.created_by } }) .success(function(res) { sellers[data.created_by] = res; sellerInfo.html(res); }); } else { sellerInfo.html(sellers[data.created_by]); } } break; case 'article': break; } // var slider = panel.find(".royalSlider"); var slider = panel.find(".royalSlider").royalSlider({ arrowsNav: false, autoScaleSlider: true, autoScaleSliderWidth: 400, autoScaleSliderHeight: 350, navigateByClick: false, fullscreen: { enabled: true }, controlNavigation: 'thumbnails', imageScaleMode: 'fit', thumbs: { appendSpan: true, firstMargin: true, paddingBottom: 4 } }).data('royalSlider'); slider.ev.on('rsSlideClick', function(){ window.location = data.href; }); var ah = article.innerHeight(), ph = panel.innerHeight(), wh = window.innerHeight, at = 0; // pozycjonowanie top przycisków nawigacji wewnątrz panelu var top = ph/2 - $('.ex2D6e').height()/2; $('.ex2D6e').css('top', top + 'px'); if (!prev) $('#btn-prev').hide(); if (!next) $('#btn-next').hide(); // okno więsze od panelu if (wh > ph) { var th = wh - ah - ph; // gdy ukryty, a tak jest w przypadku list. wybieramy pierwszy widoczny element if (article.is(':hidden')) { var c = panel.prevAll('article:visible').first(); // gdy istnieje bieżemy offset z niego if (c.length) at = c.offset().top; } // położenie klikniętego elementu else at = article.offset().top; // wymagane przesunięcie + mały offset od dołu aby ładnie wyglądało at += (th>0)?0:Math.abs(th) + 20; // nowa pozycja panelu $(window).scrollTop(at); } // okno mniejsze od panelu, równamy panel do góry else $(window).scrollTop(panel.offset().top); } $(document).on('click', '#popup-close', function(e){ e.preventDefault(); $('.detail-container-body').fadeOut(200); panel.slideUp( "fast", function(){ if (!isAlbum()) current.show(); current = false; prev = false; next = false; panel.remove(); } ) }) $(document).on('click', '#btn-prev, #btn-next', function(e) { e.preventDefault(); var el = (this.id == 'btn-prev')?prev:next; if (el) el.find('img').trigger('click'); }) var isAlbum = function() { return $.contains(document, $('.articles.listing-album')[0]); } $(document).on('click', '.item.article img, .item.auction img', function(e) { e.preventDefault(); var el = $(this), clicked = el.closest('article'); if (clicked.is(current)) { $('#popup-close').trigger('click'); return; } if (!isAlbum()) { clicked.hide(); if (current) current.show(); } //bieżący element current = clicked; updateButtons(); var ib = createContainer(current); // nowe położenie panelu? if (insertBefore !== ib) { createPanel(ib); insertBefore = ib; } fillPanel(current); }) function updateButtons() { var c; //poprzedni. ważne kolekcja zwracana w odwrotnej kolejności stąd .first() c = current.prevAll('article:visible').first(); prev = (c.length)?c:false; //następny c = current.nextAll('article').first(); next = (c.length)?c:false; } }); })(jQuery)