function _viewport() { var e = window, a = 'inner'; if (!('innerWidth' in window)) { a = 'client'; e = document.documentElement || document.body; } return {width: e[ a + 'Width' ], height: e[ a + 'Height' ]}; } function _getWidthViewport() { return _viewport().width; } function _winOpen(e, a, s) { var r = screen.height / 2 - s / 2, o = screen.width / 2 - a / 2; window.open(e, "sharer", "top=" + r + ",left=" + o + ",toolbar=0,status=0,width=" + a + ",height=" + s) } function socialSharer() { $(".btn-social-share-js").on("click", function(e) { e.preventDefault(); var a = this.href; _winOpen(a, 520, 350); }); } function inputSearch(){ var input = $(".input-search-js"), iconClose = $('.icon-close'); input.focus(function(){ var self = $(this), selfWrapper = self.parents(".wrapper-input-search"), selfIconSearch = selfWrapper.find(".icon-search"), selfIconClose = selfWrapper.find(".icon-close"); selfWrapper.addClass("isFocused"); }); input.blur(function(){ var self = $(this), selfWrapper = self.parents(".wrapper-input-search"), selfIconSearch = selfWrapper.find(".icon-search"), selfIconClose = selfWrapper.find(".icon-close"); selfWrapper.removeClass("isFocused"); }); input.keyup(function(){ var self = $(this), selfWrapper = self.parents(".wrapper-input-search"), selfIconSearch = selfWrapper.find(".icon-search"), selfIconClose = selfWrapper.find(".icon-close"); if(self.val() !== ''){ selfWrapper.addClass('isNotEmpty'); }else{ selfWrapper.removeClass('isNotEmpty'); } }); iconClose.on("click", function(){ var self = $(this), selfWrapper = self.parents('.wrapper-input-search'), selfInput = selfWrapper.find('.input-search-js'); selfInput.val('').focus(); selfWrapper.removeClass('isNotEmpty'); }); } function siteStatus(){ var ele = $('#site-status'); var t = setTimeout(function(){ ele.addClass('active'); }, 300); } function carruselNavigation(){ var amount = '', self = this, carrusel = $('.wrapper-carrusel'), navPrev = carrusel.find(".btn-nav-prev"), navNext = carrusel.find(".btn-nav-next"); self.scroll = function(carrusel) { carrusel.stop(true).animate({ scrollLeft: amount }, 100, 'linear',function() { if (amount != '') { scroll(carrusel); } }); }; $('.carrusel-inner').on('scroll', function(){ var self = $(this); selfWrapperCarrusel = self.parents(".wrapper-carrusel"); if(self.scrollLeft() + self.innerWidth() >= self[0].scrollWidth - 2){ selfWrapperCarrusel.addClass("endPosition"); }else{ selfWrapperCarrusel.removeClass("endPosition"); } if($(this).scrollLeft() == 0){ selfWrapperCarrusel.addClass("startPosition"); }else{ selfWrapperCarrusel.removeClass("startPosition"); } }); navPrev.hover(function() { carrusel = $(this).parents(".wrapper-carrusel").find(".carrusel-inner"); amount = '-=40'; self.scroll(carrusel); }, function() { amount = ''; }); navNext.hover(function() { carrusel = $(this).parents(".wrapper-carrusel").find(".carrusel-inner"); amount = '+=40'; self.scroll(carrusel); }, function() { amount = ''; }); } function menuResponsive() { var btn = $(".btn-menu-responsive-js"), menu = $('#top menu'), body = $('body'); btn.on("click", function (e) { e.preventDefault(); var self = $(this); if (!btn.hasClass("active")) { body.addClass("menu-open"); menu.addClass("active"); btn.addClass("active"); } else { body.removeClass("menu-open"); menu.removeClass("active"); btn.removeClass("active"); } }); $(window).click(function () { if(menu.hasClass("active")){ body.removeClass("menu-open"); menu.removeClass("active"); btn.removeClass("active"); } }); btn.click(function (e) { e.stopPropagation(); }); $(".search-publicar-top").click(function (e) { e.stopPropagation(); }); } function scrollSpy() { var lastId, menuItems_top = $("#menu .btn-navigation-scroll-js"), menuItems = $(".btn-navigation-scroll-js"), scrollItems = menuItems_top.map(function() { var item = $($(this).data("href")); if (item.length) { return item; } }); if (location.hash !== "" && $(location.hash).length === 1) { var offsetTop = location.hash === "#" ? 0 : $(location.hash).offset().top + 1; } menuItems.click(function(e) { var href = $(this).data("href"); if ($(href).length === 1) { var offsetTop = href === "#" ? 0 : $(href).offset().top + 1; if (offsetTop !== 0) { e.preventDefault(); TweenLite.to($(window), .4, {scrollTo: {y: $(href).offset().top - 58}, ease: Sine.easeInOut}); } } }); $(window).scroll(function() { var self = $(this); var fromTop = self.scrollTop(); var cur = scrollItems.map(function() { if ($(this).offset().top < fromTop + 1) return this; }); cur = cur[cur.length - 1]; var id = cur && cur.length ? cur[0].id : ""; if (lastId !== id) { lastId = id; // Set/remove active class menuItems.removeClass("active"); if ($("#" + id).length === 1) { $("a[data-href=#" + id + "]").addClass("active"); } } }); } function headerFixedScrolling(){ var reference = $('body'), header = $('body.inicio header'); if(!header.length) return false; reference.waypoint(function (direction) { if (direction === "down") { header.addClass("active"); } else { header.removeClass("active"); } }, {offset: '-150'}); } function btnUp() { var btn = $('.btn-up-js'); if(btn.length == 0) return false; $("footer").waypoint(function (direction) { if (direction === "down") { TweenLite.to(btn, 1, {top: "0", autoAlpha: 1, ease: Power4.easeInOut}); } else { TweenLite.to(btn, 1, {top: '20px', autoAlpha: 0, ease: Power4.easeInOut}); } }, {offset: '100%'}); btn.on('click', function () { TweenLite.to($(window), .6, {scrollTo: {y: 0}, ease: Sine.easeInOut}); }); } function setLinksToOpenInNewWindow(){ $(".post-content a").attr("target", "_blank"); } function removeRepeatedPosts() { var $ultimasNoticias = $("body.inicio #ultimas-noticias .post-box"); var $destacados = $("body.inicio #destacados .post-box"); $.each($.merge( $.merge( [], $ultimasNoticias ), $destacados ), function(i,v){ $("body.inicio .post-box[data-id='" + $(v).data("id") + "']:gt(0)").remove(); }); } function loadPostsForCarousel(carouselId, space, domain,type, endpoint, callback) { console.log('Cargando ' + carouselId + '...'); //var url = 'api.json'; type = type || ""; var url; switch (endpoint) { case 'posts_by_tags': url = '//apieditorial.'+ domain +'/api/editorial/posts_by_tags/?tag=' + carouselId + '&space=' + space + '&type=' + type; break; default: if (carouselId == "ultimas-noticias"){ url = '//apieditorial.'+ domain +'/api/editorial/posts/?without_topics=True&space=default&without_stats=True&page=1&collab_blogs=3495'; } else if (carouselId == "comunidad") { url = '//apieditorial.'+ domain +'/api/editorial/posts/?space=default&page=1&without_topics=True&without_stats=True&banned_blogs=3495'; } else{ url = '//apieditorial.'+ domain +'/api/editorial/posts_by_spaces/?space=' + carouselId + '&type=' + type; } break; } console.log("=== endpoint === > "+url); ajax_load_post(url, carouselId, domain,callback); } function ajax_load_post(url, carouselId, domain, callback){ moment.locale('es'); $.ajax({ dataType: 'json', url: url }).done(function(json) { // obtiene los items con carouselId igual al indicado var result = json; var r_abs = "//"+ domain +"/media/uploads/"; var image_elem = 'thumbnail_url'; if ($.inArray(carouselId, ["ultimas-noticias", "comunidad" ]) < 0){ result = json.flow; r_abs = ""; } result.forEach(function(v, i) { var imageUrl = v.thumbnail_url; var postUrl = v.absolute_url.replace("https:",""); var title = v.title; var excerpt = v.subtitle; var classRedaccionMulera = (v.author.username == 'redaccionmulera') ? 'redaccionmulera' : ''; var authorUrl = '//'+ domain +'/perfil/' + v.author.username + '/seguidores/'; var authorImageUrl = v.author.avatar; var authorName = v.author.name; var time = v.publish_date; $item = $('.post-box-template').clone(); $item.addClass(classRedaccionMulera); $item.removeClass('post-box-template'); $item.find('.figure').css('background-image', 'url(' + imageUrl + ')'); $item.find('.figure a').attr('href', postUrl); $item.find('.figure img').attr('src', imageUrl); $item.find('.figure img').attr('alt', title); $item.find('h3 a').attr('href', postUrl); $item.find('h3 a').text(title); $item.find('.excerpt-box').html('
' + excerpt + '
'); $item.find('.meta img').attr('src', authorImageUrl); $item.find('.meta figure.figure-meta').css('background-image', 'url(' + authorImageUrl + ')'); $item.find('.meta .author a').attr('href', authorUrl); $item.find('.meta .author a').text(authorName); $item.find('.meta .author a').attr('title', authorName); $item.find('.meta .txt time').text(moment.utc(time).local().fromNow()); $('#' + carouselId + ' .carrusel-inner').append($item); setTimeout(function(){ callback(); }, 100); }); //console.log(result); }); } function showHideButtonRefreshHome(){ var btn = $('.refresh-button-js'), timeoutHandle, iconClose = $('.refresh-button-close-js'), delay = 5 * 1000 * 60; // mili seconds timeoutHandle = window.setTimeout(function(){ btn.addClass('active') }, delay); iconClose.on('click', function(){ btn.removeClass('active'); window.clearTimeout(timeoutHandle); timeoutHandle = window.setTimeout(function(){ btn.addClass('active') }, delay); }); } function showHideSearchResponsive(){ var btn = $('.btn-search-responsive-js'), ele = $('.search-header-js'); btn.on('click', function(){ var self = $(this); if(!self.hasClass('active')){ self.addClass('active'); ele.addClass('active'); }else{ self.removeClass('active'); ele.removeClass('active'); } }); $('body').on('click', function(){ if(btn.hasClass('active')){ btn.removeClass('active'); ele.removeClass('active'); } }); btn.on('click', function(e){ e.stopPropagation(); }); ele.on('click', function(e){ e.stopPropagation(); }); } $(document).ready(function(){ headerFixedScrolling(); socialSharer(); inputSearch(); carruselNavigation(); menuResponsive(); scrollSpy(); btnUp(); setLinksToOpenInNewWindow(); showHideButtonRefreshHome(); showHideSearchResponsive(); // removeRepeatedPosts(); // Carga según se scrollea // cuando del top del div está a 80% de distancia del top de la ventana if ($('.wrapper-carrusel.startPosition').length == 0) return false; var waypoints = $('.wrapper-carrusel.startPosition').waypoint({ handler: function(direction) { var host = window.location.host; var id = this.element.id; var domain = host; var $carousel = $('#' + id); var pathname = window.location.pathname; var space = $carousel.data('space'); var type = (pathname.indexOf("/comunidad/") == -1)? "" : "comunidad"; var endpoint = $carousel.data('endpoint'); if (!$carousel.hasClass('loaded')) { loadPostsForCarousel(id, space, domain, type, endpoint, function(){ $carousel.addClass('loaded'); }); } }, offset: '80%' }); });