/**
 * @version    2.11 (rolling release)
 * @package    K2
 * @author     JoomlaWorks https://www.joomlaworks.net
 * @copyright  Copyright (c) 2009 - 2024 JoomlaWorks Ltd. All rights reserved.
 * @license    GNU/GPL: https://gnu.org/licenses/gpl.html
 */

var $K2 = jQuery.noConflict();

$K2(document).ready(function() {

    // Magnific popup
    if (typeof($K2.magnificPopup) !== 'undefined') {
        // Images
        $K2('[data-k2-modal="image"]').magnificPopup({
            type: 'image',
            image: {
                titleSrc: function() {
                    return '';
                }
            }
        });
        // Edit links
        $K2('[data-k2-modal="edit"]').magnificPopup({
            type: 'iframe',
            modal: true
        });
        // Generic iframe
        $K2('[data-k2-modal="iframe"]').magnificPopup({
            type: 'iframe'
        });
    }

    // Generic function to get URL params passed in .js script include
    function getUrlParams(targetScript, varName) {
        var scripts = document.getElementsByTagName('script');
        var scriptCount = scripts.length;
        for (var a = 0; a < scriptCount; a++) {
            var scriptSrc = scripts[a].src;
            if (scriptSrc.indexOf(targetScript) >= 0) {
                varName = varName.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
                var re = new RegExp("[\\?&]" + varName + "=([^&#]*)");
                var parsedVariables = re.exec(scriptSrc);
                if (parsedVariables !== null) {
                    return parsedVariables[1];
                }
            }
        }
    }

    // Set the site root path
    var K2SitePath = getUrlParams('k2.frontend.js', 'sitepath');

    // Comments
    $K2('#comment-form').submit(function(event) {
        event.preventDefault();
        $K2('#formLog').empty().addClass('formLogLoading');
        $K2.ajax({
            url: $K2('#comment-form').attr('action'),
            type: 'post',
            dataType: 'json',
            data: $K2('#comment-form').serialize(),
            success: function(response) {
                $K2('#formLog').removeClass('formLogLoading').html(response.message).addClass(response.cssClass);
                if (typeof(Recaptcha) != "undefined") {
                    Recaptcha.reload();
                }
                if (response.refresh) {
                    window.location.reload();
                }
            }
        });
    });

    $K2('.commentRemoveLink').click(function(event) {
        event.preventDefault();
        var element = $K2(this);
        $K2(element).parent().addClass('commentToolbarLoading');
        $K2.ajax({
            url: $K2(element).attr('href'),
            type: 'post',
            data: $K2('#comment-form input:last').serialize(),
            success: function(response) {
                $K2(element).parent().removeClass('commentToolbarLoading');
                if (response == 'true') {
                    $K2(element).parent().parent().remove();
                }
            }
        });
    });

    $K2('.commentApproveLink').click(function(event) {
        event.preventDefault();
        var element = $K2(this);
        $K2(element).parent().addClass('commentToolbarLoading');
        $K2.ajax({
            url: $K2(element).attr('href'),
            type: 'post',
            data: $K2('#comment-form input:last').serialize(),
            success: function(response) {
                $K2(element).parent().removeClass('commentToolbarLoading');
                if (response == 'true') {
                    $K2(element).parent().parent().removeClass('unpublishedComment');
                }
            }
        });
    });

    $K2('.k2ReportUserButton').click(function(event) {
        event.preventDefault();
        if (confirm(K2Language[0])) {
            var element = $K2(this);
            $K2(element).parent().addClass('commentToolbarLoading');
            $K2.ajax({
                url: $K2(element).attr('href'),
                type: 'GET',
                success: function(response) {
                    $K2(element).parent().removeClass('commentToolbarLoading');
                    alert(response);
                }
            });
        }

    });

    $K2('#k2ReportCommentForm').submit(function(event) {
        event.preventDefault();
        $K2('#k2ReportCommentFormLog').empty().addClass('formLogLoading');
        $K2.ajax({
            url: $K2('#k2ReportCommentForm').attr('action'),
            type: 'post',
            data: $K2('#k2ReportCommentForm').serialize(),
            success: function(response) {
                $K2('#formLog').removeClass('formLogLoading').html(response).css('display', 'block');
                if (typeof(Recaptcha) != "undefined") {
                    Recaptcha.reload();
                }
            }
        });
    });

    // Text Resizer
    $K2('#fontDecrease').click(function(event) {
        event.preventDefault();
        $K2('.itemFullText').removeClass('largerFontSize');
        $K2('.itemFullText').addClass('smallerFontSize');
    });
    $K2('#fontIncrease').click(function(event) {
        event.preventDefault();
        $K2('.itemFullText').removeClass('smallerFontSize');
        $K2('.itemFullText').addClass('largerFontSize');
    });

    // Smooth Scroll
    $K2('.k2Anchor').click(function(event) {
        event.preventDefault();
        var target = this.hash;
        $K2('html, body').stop().animate({
            scrollTop: $K2(target).offset().top
        }, 500);
    });

    // Rating
    $K2('.itemRatingForm a').click(function(event) {
        event.preventDefault();
        var itemID = $K2(this).attr('rel');
        if (!itemID) {
            itemID = $K2(this).data('id');
        }
        var log = $K2('#itemRatingLog' + itemID).empty().addClass('formLogLoading');
        var rating = $K2(this).html();
        $K2.ajax({
            url: K2SitePath + "index.php?option=com_k2&view=item&task=vote&format=raw&user_rating=" + rating + "&itemID=" + itemID,
            type: 'get',
            success: function(response) {
                log.removeClass('formLogLoading');
                log.html(response);
                $K2.ajax({
                    url: K2SitePath + "index.php?option=com_k2&view=item&task=getVotesPercentage&format=raw&itemID=" + itemID,
                    type: 'get',
                    success: function(percentage) {
                        $K2('#itemCurrentRating' + itemID).css('width', percentage + "%");
                        setTimeout(function() {
                            $K2.ajax({
                                url: K2SitePath + "index.php?option=com_k2&view=item&task=getVotesNum&format=raw&itemID=" + itemID,
                                type: 'get',
                                success: function(response) {
                                    log.html(response);
                                }
                            });
                        }, 2000);
                    }
                });
            }
        });
    });

    // Classic popup
    $K2('.classicPopup').click(function(event) {
        event.preventDefault();
        if ($K2(this).attr('rel')) {
            var json = $K2(this).attr('rel');
            json = json.replace(/'/g, '"');
            var options = $K2.parseJSON(json);
        } else {
            var options = {
                x: 900,
                y: 600
            }; /* use some default values if not defined */
        }
        window.open($K2(this).attr('href'), 'K2PopUpWindow', 'width=' + options.x + ',height=' + options.y + ',menubar=yes,resizable=yes');
    });

    // Live search
    $K2('div.k2LiveSearchBlock form input[name=searchword]').keyup(function(event) {
        var parentElement = $K2(this).parent().parent();
        if ($K2(this).val().length > 3 && event.key != 'enter') {
            $K2(this).addClass('k2SearchLoading');
            parentElement.find('.k2LiveSearchResults').css('display', 'none').empty();
            parentElement.find('input[name=t]').val($K2.now());
            parentElement.find('input[name=format]').val('raw');
            var url = 'index.php?option=com_k2&view=itemlist&task=search&' + parentElement.find('form').serialize();
            parentElement.find('input[name=format]').val('html');
            $K2.ajax({
                url: url,
                type: 'get',
                success: function(response) {
                    parentElement.find('.k2LiveSearchResults').html(response);
                    parentElement.find('input[name=searchword]').removeClass('k2SearchLoading');
                    parentElement.find('.k2LiveSearchResults').css('display', 'block');
                }
            });
        } else {
            parentElement.find('.k2LiveSearchResults').css('display', 'none').empty();
        }
    });

    // Calendar
    if (typeof($K2().live) == "undefined") {
        $K2('.k2CalendarBlock').on('click', '.calendarNavLink', function(event) {
            event.preventDefault();
            var parentElement = $K2(this).parent().parent().parent().parent();
            var url = $K2(this).attr('href');
            parentElement.empty().addClass('k2CalendarLoader');
            $K2.ajax({
                url: url,
                type: 'post',
                success: function(response) {
                    parentElement.html(response);
                    parentElement.removeClass('k2CalendarLoader');
                }
            });
        });
    } else {
        $K2('a.calendarNavLink').live('click', function(event) {
            event.preventDefault();
            var parentElement = $K2(this).parent().parent().parent().parent();
            var url = $K2(this).attr('href');
            parentElement.empty().addClass('k2CalendarLoader');
            $K2.ajax({
                url: url,
                type: 'post',
                success: function(response) {
                    parentElement.html(response);
                    parentElement.removeClass('k2CalendarLoader');
                }
            });
        });
    }

    // Generic Element Scroller (use .k2Scroller in the container and .k2ScrollerElement for each contained element)
    $K2('.k2Scroller').css('width', ($K2('.k2Scroller').find('.k2ScrollerElement:first').outerWidth(true)) * $K2('.k2Scroller').children('.k2ScrollerElement').length);

});

// Equal block heights for the "default" view
$K2(window).load(function() {
    var blocks = $K2('.subCategory, .k2EqualHeights');
    var maxHeight = 0;
    blocks.each(function() {
        maxHeight = Math.max(maxHeight, parseInt($K2(this).css('height')));
    });
    blocks.css('height', maxHeight);
});
