HEX
Server: Apache/2.4.65 (Unix) OpenSSL/1.1.1k
System: Linux server-manager.elshandawiily.com 4.18.0-553.87.1.el8_10.x86_64 #1 SMP Mon Dec 1 05:11:16 EST 2025 x86_64
User: elshanda (1002)
PHP: 7.4.33
Disabled: NONE
Upload Files
File: /home/elshanda/public_html/wp-content/plugins/themely/js/script.js
/* Search Premium Themes */
jQuery(document).ready(function() {
    function debounce(callback, wait) {
        let timeout;
        return (...args) => {
            clearTimeout(timeout);
            timeout = setTimeout(function () { callback.apply(this, args) }, wait);
        };
    }
    document.querySelector('#searchtermpremium').addEventListener('keyup', debounce( () => {
        var searchterm = jQuery("#searchtermpremium").val();
        var plugins_url = ThemelyScript.pluginsUrl;
        jQuery.ajax({
            url: plugins_url + '/inc/search/premium.php',
            type: "POST",
            data: {searchterm: searchterm},
            beforeSend: function () {
                jQuery("#searchspinner").show();
            },
            success: function (data) {
                jQuery("#searchresults").html(data);
                jQuery("#searchspinner").hide();
            },
            error: function (error) {
                alert("Error!");
            }
        });
    }, 800))
});

/* Search Premium Themes by Category */
jQuery(document).ready(function() {
    jQuery(document).on("change", "#searchcategory", function () {
        var searchcategory = jQuery("#searchcategory").val();
        var plugins_url = ThemelyScript.pluginsUrl;
        jQuery.ajax({
            url: plugins_url + '/inc/search/category.php',
            type: "POST",
            data: {searchcategory: searchcategory},
            success: function (data) {
                jQuery("#searchresults").html(data);
            },
            error: function (error) {
                alert("Error!");
            }
        });
    });
});

/* Search Free Themes */
jQuery(document).ready(function() {
    function debounce(callback, wait) {
        let timeout;
        return (...args) => {
            clearTimeout(timeout);
            timeout = setTimeout(function () { callback.apply(this, args) }, wait);
        };
    }
    document.querySelector('#searchtermfree').addEventListener('keyup', debounce( () => {
        var searchterm = jQuery("#searchtermfree").val();
        var plugins_url = ThemelyScript.pluginsUrl;
        jQuery.ajax({
            url: plugins_url + '/inc/search/free.php',
            type: "POST",
            data: {searchterm: searchterm},
            beforeSend: function () {
                jQuery("#searchspinner").show();
            },
            success: function (data) {
                jQuery("#searchresults").html(data);
                jQuery("#searchspinner").hide();
            },
            error: function (error) {
                alert("Error!");
            }
        });
    }, 800))
});

/* Install Theme */
jQuery(document).ready(function() {
    jQuery(document).on("click", "#installtheme", function () {
        var $button = jQuery(this);
        var download_url = $button.data("url");
        var theme_name = $button.data("name");
        var theme_slug = $button.data("slug");
        var plugins_url = ThemelyScript.pluginsUrl;
        jQuery.ajax({
            url: plugins_url + '/inc/install.php',
            type: "POST",
            data: {download_url: download_url, theme_name: theme_name, theme_slug: theme_slug},
            beforeSend: function () {
                $button.html('Installing');
            },
            success: function (data) {
                $button.replaceWith(data);
            },
            error: function (error) {
                alert("Error!");
            }
        });
    });
});

/* Modal Install Theme */
jQuery(document).ready(function() {
    jQuery(document).on("click", "#modalinstalltheme", function () {
        var $button = jQuery(this);
        var download_url = $button.data("url");
        var theme_name = $button.data("name");
        var theme_slug = $button.data("slug");
        var plugins_url = ThemelyScript.pluginsUrl;
        var modal_install = true;
        jQuery.ajax({
            url: plugins_url + '/inc/install.php',
            type: "POST",
            data: {download_url: download_url, theme_name: theme_name, theme_slug: theme_slug, modal_install: modal_install},
            beforeSend: function () {
                $button.html('Installing');
            },
            success: function (data) {
                $button.replaceWith(data);
            },
            error: function (error) {
                alert("Error!");
            }
        });
    });
});

/* Open Theme Model */
jQuery(document).ready(function() {
    jQuery(document).on("click", "#openModalbtn", function() {
        var button = jQuery(this);
        var theme_id = button.data("id");
        var plugins_url = ThemelyScript.pluginsUrl;
        jQuery.ajax({
            url: plugins_url + '/inc/modal.php',
            type: "POST",
            data: {theme_id: theme_id},
            success: function (data) {
                jQuery("#modalContent").html(data);
            },
            error: function (error) {
                alert("Error!");
            }
        });      
    });  
});

/* Destroy model contents on close */
jQuery(document).ready(function() {
    jQuery('#themeModal').on('hidden.bs.modal', function() {
        jQuery("#modalContent").html('');
    });
});

/* Get session id if exists */
jQuery(document).ready(function() {
    if( jQuery('#sessionid').val() ) {
        var plugins_url = ThemelyScript.pluginsUrl;
        var session_id = jQuery('#sessionid').val();        
        jQuery.ajax({
            url: plugins_url + '/inc/stripe/session.php',
            type: "POST",
            data: {session_id: session_id},
            beforeSend: function () {
                jQuery("#installresults").html('<div id="alert" class="alert alert-themely"><div id="installspinner" class="spinner-border install-spinner float-start" role="status"></div> Installing your new theme...</div>');
            },
            success: function (data) {
                var data = jQuery.parseJSON(data);
                var download_url = data.download_url;
                var theme_name = data.name;
                var theme_slug = data.theme_slug;
                var premium_install = true;
                jQuery.ajax({
                    url: plugins_url + '/inc/install.php',
                    type: "POST",
                    data: {download_url: download_url, theme_name: theme_name, theme_slug: theme_slug, premium_install: premium_install},
                    success: function (data) {
                        jQuery("#installresults").html(data);
                    },
                    error: function (error) {
                        alert("Error!");
                    }
                });

            },
            error: function (error) {
                jQuery("#installresults").html('');
                alert('Error!')
            }
        });
    }
});

/* Submit support ticket */
jQuery(document).ready(function() {
    jQuery(document).on("click", "#submitticket", function (e) {
        e.preventDefault();
        var ticketname = jQuery("#ticketname").val();
        var ticketemail = jQuery("#ticketemail").val();
        var ticketmessage = jQuery("#ticketmessage").val();
        var plugins_url = ThemelyScript.pluginsUrl;
        jQuery.ajax({
            url: plugins_url + '/inc/mail.php',
            type: "POST",
            data: {ticketname: ticketname, ticketemail: ticketemail, ticketmessage: ticketmessage},
            beforeSend: function () {
                jQuery("#submitticket").html('Submitting ticket...');
            },
            success: function (data) {
                jQuery("#ticketnotice").html(data);
                jQuery("#submitticket").html('Submit Ticket');
            },
            error: function (error) {
                alert("Error submitting ticket!");
            }
        });
    });
});

/* Destroy support model form on close */
jQuery(document).ready(function() {
    jQuery('#supportModal').on('hidden.bs.modal', function() {
        jQuery("#ticketname").val('');
        jQuery("#ticketemail").val('');
        jQuery("#ticketmessage").val('');
        jQuery("#ticketnotice").html('');
    });
});

/* Toggle between premium and free themes */
jQuery(document).ready(function() {
    jQuery(document).on("click", "#freetoggle", function () {
        var freetoggle = "freetoggle";
        var plugins_url = ThemelyScript.pluginsUrl;
        jQuery.ajax({
            url: plugins_url + '/inc/themes/free.php',
            type: "POST",
            data: {freetoggle: freetoggle},
            success: function (data) {
                jQuery("#premiumtoggle").removeClass('active');
                jQuery("#freetoggle").addClass('active');
                jQuery("#searchcategory").hide();
                jQuery("#searchtermpremium").hide();
                jQuery("#searchtermfree").show();
                jQuery("#searchresults").html(data);
            },
            error: function (error) {
                alert("Error!");
            }
        });
    });
});

/* Toggle between free and premium themes */
jQuery(document).ready(function() {
    jQuery(document).on("click", "#premiumtoggle", function () {
        var premiumtoggle = "premiumtoggle";
        var plugins_url = ThemelyScript.pluginsUrl;
        jQuery.ajax({
            url: plugins_url + '/inc/themes/premium.php',
            type: "POST",
            data: {premiumtoggle: premiumtoggle},
            success: function (data) {
                jQuery("#freetoggle").removeClass('active');
                jQuery("#premiumtoggle").addClass('active');
                jQuery("#searchcategory").show();
                jQuery("#searchtermfree").hide();
                jQuery("#searchtermpremium").show();
                jQuery("#searchresults").html(data);
            },
            error: function (error) {
                alert("Error!");
            }
        });
    });
});

/* Infinite Scroll
 * https://stackoverflow.com/a/5059561
 * https://stackoverflow.com/a/48899322
jQuery(window).scroll(function () { 
   if (jQuery(window).scrollTop() >= jQuery(document).height() - jQuery(window).height() - 50) {
      //Add something at the end of the page
   }
});
*/