HEX
Server: LiteSpeed
System: Linux kapuas.iixcp.rumahweb.net 5.14.0-427.42.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Nov 1 14:58:02 EDT 2024 x86_64
User: mirz4654 (1666)
PHP: 8.1.33
Disabled: system,exec,escapeshellarg,escapeshellcmd,passthru,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,shell_exec,popen,pclose,dl,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setsid,posix_setuid,posix_setpgid,ini_alter,show_source,define_syslog_variables,symlink,syslog,openlog,openlog,closelog,ocinumcols,listen,chgrp,apache_note,apache_setenv,debugger_on,debugger_off,ftp_exec,dll,ftp,myshellexec,socket_bind,mail,posix_getwpuid
Upload Files
File: //home/mirz4654/public_html/wp-content/themes/mira-yosomite/assets/js/script.js
/*
 –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
 Yosomite - Minimal Interior Design, Decoration, and Architecture Template
 –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
 
 - File           : script.js
 - Desc           : Template - JavaScript
 - Version        : 1.1
 - Date           : 2017-03-26
 - Author         : EvenThemes
 - Author URI     : https://themeforest.net/user/eventhemes
 
 –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
 */


(function ($) {

    "use strict";

    var bodySelector = $("body"),
            htmlAndBody = $("html, body"),
            windowSelector = $(window);
    $.fn.hasAttr = function (attr) {
        if (typeof attr !== typeof undefined && attr !== false && attr !== undefined) {
            return true;
        }
        return false;
    };

    /* -------------------------------------
     Background Image
     ------------------------------------- */
    var background_image = function () {
        $("[data-bg-img]").each(function () {
            var attr = $(this).attr('data-bg-img');
            if (typeof attr !== typeof undefined && attr !== false && attr !== "") {
                $(this).css('background-image', 'url(' + attr + ')');
            }
        });
    };

    /* -------------------------------------
     Preloader
     ------------------------------------- */
    var preloader = function () {
        var pageLoader = $('#preloader');
        if (pageLoader.length) {
            pageLoader.children().fadeOut(); /* will first fade out the loading animation */
            pageLoader.delay(150).fadeOut('slow'); /* will fade out the white DIV that covers the website.*/
            bodySelector.delay(150).removeClass('preloader-active');
        }
    };

    /* -------------------------------------
     BACK TO TOP
     ------------------------------------- */
    var back_to_top = function () {
        var backTop = $('#backTop');
        if (backTop.length) {
            var scrollTrigger = 200,
                    scrollTop = $(window).scrollTop();
            if (scrollTop > scrollTrigger) {
                backTop.addClass('show');
            } else {
                backTop.removeClass('show');
            }
        }
    };
    var click_back = function () {
        var backTop = $('#backTop');
        backTop.on('click', function (e) {
            htmlAndBody.animate({
                scrollTop: 0
            }, 700);
            e.preventDefault();
        });
    };


    /*-------------------------------------
     Navbar Functions
     -------------------------------------*/
    var navbar = function () {
        windowSelector.on('resize', function () {
            $(".navbar-collapse").css({maxHeight: windowSelector.height() - $(".navbar-header").height() + "px"});
        });
        $('.navbar-collapse ul li a.page-scroll').on('click', function () {
            $('.navbar-toggle:visible').click();
        });
        $('a.page-scroll').on('click', function (event) {
            var $anchor = $(this);
            htmlBodySelector.stop().animate({
                scrollTop: $($anchor.attr('href')).offset().top - 70
            }, 1500, 'easeInOutExpo');
            event.preventDefault();
        });
    };

    /*-------------------------------------
     Carousel slider initiation
     -------------------------------------*/
    var owl_carousel = function () {
        $('.owl-carousel').each(function () {
            var carousel = $(this),
                    autoplay_hover_pause = carousel.data('autoplay-hover-pause'),
                    loop = carousel.data('loop'),
                    items_general = carousel.data('items'),
                    margin = carousel.data('margin'),
                    autoplay = carousel.data('autoplay'),
                    autoplayTimeout = carousel.data('autoplay-timeout'),
                    smartSpeed = carousel.data('smart-speed'),
                    nav_general = carousel.data('nav'),
                    navSpeed = carousel.data('nav-speed'),
                    xxs_items = carousel.data('xxs-items'),
                    xxs_nav = carousel.data('xxs-nav'),
                    xs_items = carousel.data('xs-items'),
                    xs_nav = carousel.data('xs-nav'),
                    sm_items = carousel.data('sm-items'),
                    sm_nav = carousel.data('sm-nav'),
                    md_items = carousel.data('md-items'),
                    md_nav = carousel.data('md-nav'),
                    lg_items = carousel.data('lg-items'),
                    lg_nav = carousel.data('lg-nav'),
                    center = carousel.data('center'),
                    dots_global = carousel.data('dots'),
                    xxs_dots = carousel.data('xxs-dots'),
                    xs_dots = carousel.data('xs-dots'),
                    sm_dots = carousel.data('sm-dots'),
                    md_dots = carousel.data('md-dots'),
                    lg_dots = carousel.data('lg-dots');

            carousel.owlCarousel({
                animateOut: 'fadeOut',
                autoplayHoverPause: autoplay_hover_pause,
                loop: (loop ? loop : false),
                items: (items_general ? items_general : 1),
                lazyLoad: true,
                margin: (margin ? margin : 0),
                autoplay: (autoplay ? autoplay : false),
                autoplayTimeout: (autoplayTimeout ? autoplayTimeout : 1000),
                smartSpeed: (smartSpeed ? smartSpeed : 250),
                dots: (dots_global ? dots_global : false),
                nav: (nav_general ? nav_general : false),
                navText: [
                    "<img src='" + themeurl + "/assets/images/icons/prev.png' alt=''>",
                    "<img src='" + themeurl + "/assets/images/icons/next.png' alt=''>"
                ],
                navSpeed: (navSpeed ? navSpeed : false),
                center: (center ? center : false),
                responsiveClass: true,
                responsive: {
                    0: {
                        items: (xxs_items ? xxs_items : (items_general ? items_general : 1)),
                        nav: (xxs_nav ? xxs_nav : (nav_general ? nav_general : false)),
                        dots: (xxs_dots ? xxs_dots : (dots_global ? dots_global : false))
                    },
                    480: {
                        items: (xs_items ? xs_items : (items_general ? items_general : 1)),
                        nav: (xs_nav ? xs_nav : (nav_general ? nav_general : false)),
                        dots: (xs_dots ? xs_dots : (dots_global ? dots_global : false))
                    },
                    768: {
                        items: (sm_items ? sm_items : (items_general ? items_general : 1)),
                        nav: (sm_nav ? sm_nav : (nav_general ? nav_general : false)),
                        dots: (sm_dots ? sm_dots : (dots_global ? dots_global : false))
                    },
                    992: {
                        items: (md_items ? md_items : (items_general ? items_general : 1)),
                        nav: (md_nav ? md_nav : (nav_general ? nav_general : false)),
                        dots: (md_dots ? md_dots : (dots_global ? dots_global : false))
                    },
                    1199: {
                        items: (lg_items ? lg_items : (items_general ? items_general : 1)),
                        nav: (lg_nav ? lg_nav : (nav_general ? nav_general : false)),
                        dots: (lg_dots ? lg_dots : (dots_global ? dots_global : false))
                    }
                }
            });

        });
    };


    var progress_bar = function () {
        $('.skill-percentage').each(function () {
            var $this = $(this);
            var width = $(this).data('percent');
            $this.html('<span class="progress-tooltip">' + width + ' %</span>');
            $this.css({
                'transition': 'width 3s'
            });
            setTimeout(function () {
                $this.appear(function () {
                    $this.css('width', width + '%');
                    setTimeout(function () {
                        $this.find('.progress-tooltip').css({
                            'opacity': '1'
                        });
                    }, 200);
                });
            }, 1000);
        });
    };

    /*-------------------------------------
     MAGNIFIC POPUP
     -------------------------------------*/
    var magnific_popup = function () {
        $('.img-lightbox').magnificPopup({
            type: 'image',
            mainClass: 'mfp-fade',
            gallery: {
                enabled: true
            }

        });
        $('.iframe-lightbox').magnificPopup({
            disableOn: 700,
            type: 'iframe',
            mainClass: 'mfp-fade',
            removalDelay: 160,
            preloader: false,
            fixedContentPos: false,
            iframe: {
                patterns: {
                    youtube: {
                        src: 'https://www.youtube.com/embed/%id%?autoplay=1' /* URL that will be set as a source for iframe. */
                    },
                    vimeo: {
                        src: 'https://player.vimeo.com/video/%id%?autoplay=1'
                    },
                    gmaps: {
                        index: 'https://maps.google.'
                    }
                }
            }
        });
    };

    /*-------------------------------------
     Contact Form JS
     -------------------------------------*/
    var validateEmail = function (email) {
        var patt = /^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/;
        if (patt.test(email) === true) {
            return true;
        }
        return false;
    };
    var validatePhone = function (phone) {
        var patt = /^[0-9]{8,20}$/;
        if (patt.test(phone) === true) {
            return true;
        }
        return false;
    };

    var bootstrapAlert = function (type, text) {
        var alert = '<div class="alert alert-' + type + ' alert-dismissable">';
        alert += '<a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>';
        alert += text;
        alert += '</div>';
        return alert;
    }
    var contactResponse = function (responseNode, type, response) {
        if (response !== '') {
            responseNode.html(bootstrapAlert(type, response));
        } else {
            responseNode.html(bootstrapAlert('danger', 'Oops! An error occured.'));
        }
        bootstrapAlert();
    };

    var contactForm = function () {
        var contactForm = $("#contactForm");
        var responseNode = $('#contactResponse');
        contactForm.on("submit", function (e) {
            e.preventDefault();

            var self = $(this);
            var valid_form = true;
            var fname = contactForm.find($("input[name='contactFname']"));
            var lname = contactForm.find($("input[name='contactLname']"));
            var email = contactForm.find($("input[name='contactEmail']"));
            var subject = contactForm.find($("input[name='contactSubject']"));
            var message = contactForm.find($("textarea[name='contactMessage']"));
            var formFields = [fname, lname, message, subject];

            formFields.forEach(function (input) {
                if (input.val() == '') {
                    input.addClass('input-error');
                    valid_form = false;
                }
            });

            if (email.val() == '' || validateEmail(email.val()) !== true) {
                email.addClass('input-error');
                valid_form = false;
            }

            self.find('input, textarea, select').on('change', function () {
                $(this).removeClass('input-error');
            });

            if (valid_form === true) {
                $.ajax({
                    type: "POST",
                    url: contactForm.attr('action'),
                    data: self.serialize()
                })
                        .done(function (response) {
                            self[0].reset();
                            console.log(response);
                            contactResponse(responseNode, "success", response);
                        })
                        .fail(function (data) {
                            contactResponse(responseNode, "danger", data.responseText);
                        });
            }

        });
    };


    /* =======================================
     When document is ready, do
     ======================================= */

    $(document).on('ready', function () {
        background_image();
        preloader();
        click_back();
        navbar();
        owl_carousel();
        progress_bar();
        magnific_popup();
        contactForm();
    });

    /* ======================================
     When document is loading, do
     ====================================== */

    windowSelector.on('load', function () {
        preloader();
    });

    /* ======================================
     When document is Scrollig, do
     ======================================= */
    windowSelector.on('scroll', function () {
        back_to_top();
    });


})(jQuery);