var app = { // Initialize init: function() { this.welcomeSlider(); this.categoryNavbarPosition(); this.categoryNavbarActiveLink(); this.buildSimpleTooltip(); this.scrollSmoothly(); this.scrollToTop(); this.likePost(); this.unlikePost(); this.comment(); }, welcomeSlider: function() { var swiper = new Swiper('.swiper-container', { pagination: { el: '.swiper-pagination', clickable: true, renderBullet: function(index, className) { return '' + (index + 1) + ''; }, }, navigation: { nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', }, loop: true, centeredSlides: true, autoplay: { delay: 2500, disableOnInteraction: false, }, }); }, categoryNavbarPosition: function() { if ($(".categoryNavbar").length) { var distance = $(".navbar").offset().top; var $window = $(window); var navbar = $(".navbar"); $window.scroll(function() { if ($window.scrollTop() >= distance) { navbar.addClass("fixed-top"); } else { navbar.removeClass("fixed-top"); } }); } }, categoryNavbarActiveLink: function() { if ($(".categoryNavbar").length) { $(".categoryNavbar a[href='http://technoblog.test/category/" + window.location.pathname + "']").addClass("active"); } }, buildSimpleTooltip: function() { if (!$("a.elemWithTooltip").length || !$("a.elemWithTooltip").data("tooltip-info")) { return false; } var tooltipElem = $("a.elemWithTooltip"); var placements = ["top", "right", "bottom", "left"]; tooltipElem.each(function(i) { var $this = $(this); var tooltipData = $this.data("tooltip-info"); var title = tooltipData.substring(tooltipData.indexOf("-") + 1); var placement = tooltipData.substring(0, tooltipData.indexOf("-")); if (tooltipData.indexOf("-") === -1 || tooltipData.charAt(0) === "-") { $this.addClass("Error_SimpleTooltip"); return false; } $.each(placements, function(j) { if (placement === placements[j]) { $this.not(".Error_SimpleTooltip").attr({ "data-toggle": "tooltip", "data-placement": placement, "title": title }).tooltip(); } }); }); }, scrollSmoothly: function() { var scroll = new SmoothScroll("a.scrollBtn", { easing: "linear" }); }, scrollToTop: function() { if ($(".scrollUpArrow").length) { var distance = 150; var $window = $(window); var scrollUp = $(".scrollUpArrow"); scrollUp.hide(); $window.scroll(function() { if ($window.scrollTop() >= distance) { scrollUp.fadeIn("slow"); } else { scrollUp.fadeOut("slow"); } }); } }, likePost: function() { $(".post-reaction").on("click", ".likePost", function() { var data = $(this).data("post-id"); var _token = $("meta[name='csrf-token']").attr("content"); $.ajax({ url: "/like", type: "post", data: { post_id : data, _token : _token, }, dataType: "json", success: function(response) { $(".post-reaction i").remove(); $(".post-reaction").append(""); $(".likeCounter").text(response.likeCounter); }, error: function(data) { console.log(data); } }); }) }, unlikePost: function() { $(".post-reaction").on("click", ".unlikePost", function() { var data = $(this).data("unlike-id"); var _token = $("meta[name='csrf-token']").attr("content"); $.ajax({ url: "/unlike", type: "post", data: { unlike_id : data, _token : _token, }, dataType: "json", success: function(response) { $(".post-reaction i").remove(); $(".post-reaction").append(""); $(".likeCounter").text(response.likeCounter); }, error: function(data) { console.log(data); } }); }) }, comment: function() { if($("comment-alert").length > 0) { $(".comment-alert").hide(); } $(".commentForm").submit(function(e) { e.preventDefault(); $(this).find("input[type='submit']").prop("disabled", true); $(this).find("input[type='submit']").val("Processing..."); var name = $(this).find("input[name='name']").val(); var email = $(this).find("input[name='email']").val(); var comment = $(this).find("textarea[name='comment']").val(); var post_id = $(this).find("input[name='post_id']").val(); var _token = $("meta[name='csrf-token']").attr("content"); $.ajax({ url: "/comment", type: "post", data: { name: name, email: email, comment: comment, post_id: post_id, _token : _token, }, dataType: "json", success: function(response) { $(".comment-alert").show(); $(".comment-alert").addClass(response.type); $(".comment-alert").find("strong").text(response.message); $(".commentForm").find("input[type='submit']").prop("disabled", false); $(".commentForm").find("input[type='submit']").val("Comment"); $(".commentForm")[0].reset(); }, error: function(data) { console.log(data); } }); }); } }; $(function() { app.init(); });