// Atualiza a interface do leitor (número de páginas, página atual etc.) // edicao_interface_atualiza = function () { var edicao = $j(".edicao"), leitor = edicao.find("#carousel-leitor"), paginas = leitor.find(".item"), pagina_atual = leitor.find(".item.active"), pagination = edicao.find(".pagination"), display = pagination.find(".display"), current = display.find(".current"), total = display.find(".total"); current.html(pagina_atual.attr("data-page-numbers")); total.html(leitor.attr("data-pages-total")); } // ===================================================================== // // Constrói o carousel da seleção de páginas // $j(document).ready(function () { var edicao = $j(".edicao"), paginas = edicao.find("#carousel-paginas"), itens = paginas.find(".item"); itens.each(function () { var item = $j(this), next = null, last = null, i; for (i = 0; i < 5; i++) { if (next == null) next = item; next = next.next(); if (!next.length) next = $j(this).siblings(":first"); last = next.children(":first-child").clone().appendTo($j(this)); } last.addClass("rightest"); }); itens.each(function () { $j(this).children(":first-child").addClass("leftest"); }); }); // ========================================= // // Constrói a paginação do leitor // $j(document).ready(function () { var edicao = $j(".edicao"), leitor = edicao.find("#carousel-leitor"), paginas = leitor.find(".item"), pagination = edicao.find(".pagination"), button_first = pagination.find(".button.first"), button_prev = pagination.find(".button.prev"), button_next = pagination.find(".button.next"), button_last = pagination.find(".button.last"); button_first.bind("click", function () { leitor.carousel(0); return false; }); button_prev.bind("click", function () { leitor.carousel("prev"); return false; }); button_next.bind("click", function () { leitor.carousel("next"); return false; }); button_last.bind("click", function () { leitor.carousel(paginas.length - 1); return false; }); paginas.find("a").bind("click", function () { return false; }); edicao_interface_atualiza(); leitor.bind("slid.bs.carousel", function () { edicao_interface_atualiza(); }); }); // ============================== // // Lazy Load das imagens da edição // $j(document).ready(function () { var janela = $j(window), edicao = $j(".edicao"), paginas = edicao.find("#carousel-paginas"), leitor = edicao.find("#carousel-leitor"); $j.each([paginas, leitor], function () { var carousel = $j(this); carousel.bind("slide.bs.carousel", function (e) { var last_item = carousel.find(".item:last"), active_item, next_item, prev_item, item, images = null; active_item = $j(".item.active", this); prev_item = active_item.prev(".item"); next_item = active_item.next(".item"); switch (e.direction) { case "left": item = next_item; break; case "right": item = active_item.index() == 0 ? last_item : prev_item; break; default: item = active_item; break; } images = item.find("img"); images.each(function () { var image = $j(this), src = image.attr("lazy-load-src"); if (typeof src !== "undefined" && src != "") image.attr("src", src).attr("lazy-load-src", null); }); }); carousel.bind("slid.bs.carousel", function (e) { var item = carousel.find(".item.active"), images = item.find("img"); images.each(function () { var image = $j(this), src = image.attr("lazy-load-src"); if (typeof src !== "undefined" && src != "") image.attr("src", src).attr("lazy-load-src", null); }); }); janela.bind("load", function () { carousel.trigger("slid.bs.carousel"); }); }); }); // =============================== // // Scroll automático ao mudar de página // $j(document).ready(function () { var body = $j("html, body"), edicao = body.find(".edicao"), leitor = edicao.find("#carousel-leitor"); leitor.bind("slid.bs.carousel", function () { body.animate({ scrollTop: leitor.position().top + "px" }, 500); }); }); // ==================================== // // Faz as imagens serem carregadas em outra janela // $j(document).ready(function () { var edicao = $j(".edicao"), leitor = edicao.find("#carousel-leitor"), imagens = leitor.find(".item img"); imagens.each(function () { var image = $j(this), link = image.parent("a"); link.bind("click", function () { window.open(this); return false }); }); }); // =============================================== // /*// Zoom das páginas do leitor // zoom_cursor_show = function (show, event) { try { var cursor = $j(".cursor-zoom-animation"), offset = { left: -30, top: -20 }, l, t; cursor.css("display", show ? "block" : "none"); if (show) { l = event.pageX - offset.left, t = event.pageY - offset.top; cursor.offset({ left: l, top: t }); } } catch (e) {} } zoom_controls_assign = function (img) { try { var edicao = $j(".edicao"), zoom_controls = edicao.find(".zoom-controls"), plus_btn = zoom_controls.find("a.plus"), minus_btn = zoom_controls.find("a.minus"), image = $j(img), zoom = image.data("elevateZoom"), zoom_container = zoom.zoomContainer, zoom_window = zoom.zoomWindow; zoom_controls_unassign(); plus_btn.unbind("click").bind("click", function () { if (zoom.currentZoomLevel >= zoom.minZoomLevel) { zoom.changeZoomLevel(zoom.currentZoomLevel - zoom.options.scrollZoomIncrement); } }); minus_btn.unbind("click").bind("click", function () { if (zoom.options.maxZoomLevel) { if (zoom.currentZoomLevel <= zoom.options.maxZoomLevel) { zoom.changeZoomLevel(parseFloat(zoom.currentZoomLevel) + zoom.options.scrollZoomIncrement); } } else { zoom.changeZoomLevel(parseFloat(zoom.currentZoomLevel) + zoom.options.scrollZoomIncrement); } }); $j.each([plus_btn, minus_btn], function () { $j(this).bind("click", function () { zoom_container.show(); zoom_window.show(); return false; }); }); zoom_controls.addClass("active"); } catch (e) {} } zoom_controls_unassign = function () { var edicao = $j(".edicao"), zoom_controls = edicao.find(".zoom-controls"), plus_btn = zoom_controls.find("a.plus"), minus_btn = zoom_controls.find("a.minus"); zoom_controls.removeClass("active"); $j.each([plus_btn, minus_btn], function (btn) { $j(this).unbind("click").bind("click", function () { return false; }); }); } zoom_remove = function (img) { var image = $j(img), zoom = image.data("elevateZoom"); try { zoom.zoomContainer.remove(); } catch (e) { $j(".zoomContainer").remove(); } image.removeData("elevateZoom"); zoom_controls_unassign(); } $j(document).ready(function () { var edicao = $j(".edicao"), leitor = edicao.find("#carousel-leitor"), imagens = leitor.find(".item img"), zoom_activate_events = "mouseover click"; imagens.each(function () { var image = $j(this), link = image.parent("a"); if (!is_mobile_device) { var zoom_prepare_func = function () { zoom_controls_assign(image); zoom_cursor_show(false); } image.bind(zoom_activate_events, function (event) { image.elevateZoom({ zoomType: "inner", cursor: "crosshair", responsive: true, scrollZoom: true, onZoomedImageLoaded: function (zoomed_image) { var zoom = image.data("elevateZoom"), zoom_container = zoom.zoomContainer, zoom_window = zoom.zoomWindow, events = "mouseenter mouseover mousemove touchmove touchend click"; zoomed_image.bind(events, zoom_prepare_func); zoom_container.bind(events, zoom_prepare_func); zoom_window.bind(events, zoom_prepare_func); zoom_controls_unassign(); image.removeClass("no-cursor"); zoom_cursor_show(false); zoom.changeZoomLevel(3.5); } }).bind("mouseover mousemove", function (event) { image.addClass("no-cursor"); zoom_cursor_show(true, event); }).bind("mouseout mouseleave", function (event) { image.removeClass("no-cursor"); zoom_cursor_show(false, event); }); image.addClass("no-cursor"); zoom_cursor_show(true, event); }); } else { link.magnifik({ ratio: 2.7 }); } }); leitor.bind("slide.bs.carousel", function () { imagens.each(function () { zoom_remove(this); }); }); zoom_controls_unassign(); }); // ========================== // // Ativa o zoom pelos botões do teclado // $j(document).bind("keypress", function (event) { var edicao = $j(".edicao"), zoom_controls = edicao.find(".zoom-controls"), plus_btn = zoom_controls.find("a.plus"), minus_btn = zoom_controls.find("a.minus"), key = event.which, plus_key = key == 43, minus_key = key == 45; if (plus_key) plus_btn.click(); if (minus_key) minus_btn.click(); }); // ==================================== // // Mostra o modal das instruções // $j(document).ready(function () { $j("#edicao-instrucoes-modal").modal("show"); });// ============================= //*/