/* Minification failed. Returning unminified contents.
(4560,72-73): run-time error JS1195: Expected expression: .
(4560,79-80): run-time error JS1195: Expected expression: .
(4561,22-23): run-time error JS1004: Expected ';': :
(4566,33-34): run-time error JS1197: Too many errors. The file might not be a JavaScript file: :
 */
jQuery(document).ready(function ($) {
    // This is to fix a known sitecore bug where the target is inserted with Active Browser instead of _self
    $('a[target="Active Browser"]').attr('target', '_self');
    $('a[target="New Browser"]').attr('target', '_blank');

    $("#myModal .modal-dialog .modal-content").clone().appendTo(".navbar-nav li.enquiry .form");
    $(".row-offcanvas").click(function (e) {
        if ($('.row-offcanvas').hasClass('active') && (!$(e.target).hasClass("sidebar-offcanvas") && !$(e.target).parents().hasClass("sidebar-offcanvas"))) {
            //alert('close nav')
            closeNav(e);
        }
        else {
            if ($(e.target).hasClass("navbar-toggle") || $(e.target).parent().hasClass("navbar-toggle")) {
                //  alert("toggle navbar")
                $('.row-offcanvas').addClass('active');
                bindNavClosingEvents();
            }
            else if (e.target.id == "mobile-search-button-link" || $(e.target).parents("#mobile-search-button-link").length) {
                $('.row-offcanvas').addClass('active');
                setTimeout(function () {
                    $('#globalautocompletemob').focus();
                }, 500);
                bindNavClosingEvents();
            }
        }
    })

    function bindNavClosingEvents() {
        //close navbar when swiperight
        $('.row-offcanvas.active').bind('swiperight', closeNav);
        $('.row-left-canvas').css('z-index', '100');
        //close navbar when click close button
        $('.navbar-close').bind('click', closeNav);
    }
    function closeNav(e) {
        event.stopPropagation();
        event.preventDefault();
        $('.row-offcanvas.active').unbind('swiperight');
        $('.navbar-close').unbind('click', closeNav);
        $('.row-offcanvas').removeClass('active');
        $('.row-left-canvas').css('z-index', '-100');

    }


    /******Menu script modified for mobile/IPAD friendly******/
    $(window).resize(function (e) {

        if ($(window).width() > 1200) {
            $(".subnav").find("div").addClass("sub-menu").hide();

            $('ul.nav > li').mouseenter(function () { $('.sub-menu').hide(); });

            $('ul.nav > li, subnav div.sub-menu > li').hover(function () {
                if ($('.sub-menu', this).length > 0) {
                    $('.sub-menu', this).show();
                    $('.subnav').addClass('show').addClass("open");
                    $('.subnav div').addClass('temp');
                }
            }, function () {
            });
            $(".sub-menu, #mainNav").mouseleave(function () {
                $(".sub-menu").hide();
            });
        }
        else {

            $(".subnav").find("div").removeClass("sub-menu");
            $(".subnav").find("div").removeClass("open");
        }
    }).resize();

    if ($(window).width() < 1200) {
        if ($(".subnav").find("brand2023-menu-font")) {
            $("a.brand2023-menu-font svg#brand2023-dropdown-icon").hide();
         
        };
    }

    if ($(window).width() < 768) {
        if ($(".top-nav").find("pull-right")) {
            $("header .top-nav .nav > a:first-of-type").hide();

        };
    }

    $(window).resize(function (e) {
        $('ul.nav > li, subnav div.sub-menu > li').keyup(function (evt) {
            if (evt.keyCode == 9) {
                if ($('.sub-menu', this).length > 0) {
                    $('.sub-menu', this).show();
                    $('.subnav').addClass('show').addClass("open");
                    $('.subnav div').addClass('temp');
                    e.preventDefault;
                }
                else {
                    $(".sub-menu").hide();
                }
            }
        });
    }).resize();

    $(window).resize(function (e) {
        if ($(window).width() > 1200) {
            $('nav').keydown(function (e) {
                if ($('.sub-menu', this).length > 0) {
                    $('.sub-menu', this).show();
                    $('.subnav').addClass('show').addClass("open");
                    $('.subnav div').addClass('temp');
                }
            }, function () {
            });
        }
        else {

            $(".subnav").find("div").removeClass("sub-menu");
            $(".subnav").find("div").removeClass("open");
        }
    }).resize();

    $("nav li a").on({
        'keydown': function (e) {
            // if tab key pressed - run keyup now
            if (e.keyCode == 9) {
                $(this).keyup();
                e.preventDefault;
                $(this).css("color", "");
            }
        },
       
        'keyup': function () {
            if (!$(this).is(".dropdown-toggle.btn.btn-primary.btn-sm.enquireFormBtn")) {
                $(this).css("color", "#226f8f");
            }   
        }
    });

    $("main").mouseenter(function () {
        $(this).parents("body").find('.subnav.show').removeClass('show');
    });


    //activate bootstrap sicky nav
    $('#mainNav').affix({
        offset: {
            top: 40
        }
    });

    //activate bootstrap sicky for Refine/Sort and Save search button row

    //TODO: Remove in next sprint.
    //$('.hold-card-results .more-options-bar, .hold-card-results .refine-results-bar').affix({
    //    offset: {
    //        top: 80
    //    }
    //});

    $(".search-box input").keyup(function () {//when key in text show close icon
        var searchValue = $.trim($(this).val());
        if (searchValue.length > 0)
            $(".search-box i").addClass("icon-cross");
        else
            $(".search-box i").removeClass("icon-cross");

        $(".search-box .icon-cross").click(function () { //onclick close icon empty searchbox value
            $(".search-box input").val("");
            $(".search-box i").removeClass("icon-cross");
            return false;
        });
    });

    $("#searchForm .search-box input").keyup(function () {//when key in text show close icon
        var searchValue = $.trim($(this).val());
        if (searchValue.length > 0)
            $("#searchForm .search-box").append("<i class='icon-cross-search'></i>");
        else
            $("#searchForm .search-box i").remove();

        $("#searchForm .search-box .icon-cross-search").click(function () { //onclick close icon empty searchbox value
            $("#searchForm .search-box input").val("");
            $("#searchForm .search-box i").remove();
            return false;
        });
    });

    //Mobile X button 
    $("#bs-navbarcol-sm-3 .navbar-form input").keyup(function () {//when key in text show close icon
        var searchValue = $.trim($(this).val());
        if (searchValue.length > 0) {
            $(".navbar-form .form-group #searchBtn i").addClass("icon-cross");
            $(".navbar-form .form-group #searchBtnDesktop i").addClass("icon-cross");
        }
        else {
            $(".navbar-form .form-group #searchBtn i").removeClass("icon-cross");
            $(".navbar-form .form-group #searchBtnDesktop i").removeClass("icon-cross");
        }

        $(".navbar-form .icon-cross").click(function () { //onclick close icon empty searchbox value
            $(".navbar-form input").val("");
            $(".navbar-form i").removeClass("icon-cross");
            return false;
        });
    });

    //form increament buttons
    //First
    $("#number").blur(function () {
        syncBedBathCarHiddenFieldFromTextField($("#number"), $("#numberOfBedrooms"));
    });

    $("#increment").click(function () {
        if ($('#numberOfBedrooms').val() != "10") {
            var $n = $("#numberOfBedrooms");
            $n.val(Number($n.val()) + 1);

            //needed for GTM tagging of hidden fields
            $n.trigger('change');

            var value = $n.val();
            $("#number").val(value + '+');
        }
    });

    $("#decrement").click(function () {
        if ($('#numberOfBedrooms').val() != "1") {
            var $n = $("#numberOfBedrooms");
            $n.val(Number($n.val()) - 1);

            //needed for GTM tagging of hidden fields
            $n.trigger('change');

            var value = $n.val();
            $("#number").val(value + '+');
        }
    });

    //Second
    $("#number2").blur(function () {
        syncBedBathCarHiddenFieldFromTextField($("#number2"), $("#numberOfBaths"));
    });

    $("#increment1").click(function () {
        if ($('#numberOfBaths').val() != "10") {
            var $n = $("#numberOfBaths");
            $n.val(Number($n.val()) + 1);

            //needed for GTM tagging of hidden fields
            $n.trigger('change');

            var value = $n.val();
            $("#number2").val(value + '+');
        }
    });

    $("#decrement1").click(function () {
        if ($('#numberOfBaths').val() != "0") {
            var $n = $("#numberOfBaths");
            $n.val(Number($n.val()) - 1);

            //needed for GTM tagging of hidden fields
            $n.trigger('change');

            var value = $n.val();
            $("#number2").val(value + '+');
        }
    });

    //Third
    $("#number3").blur(function () {
        syncBedBathCarHiddenFieldFromTextField($("#number3"), $("#numberOfCars"));
    });

    $("#increment2").click(function () {
        if ($('#numberOfCars').val() != "10") {
            var $n = $("#numberOfCars");
            $n.val(Number($n.val()) + 1);

            //needed for GTM tagging of hidden fields
            $n.trigger('change');

            var value = $n.val();
            $("#number3").val(value + '+');
        }
    });

    $("#decrement2").click(function () {
        if ($('#numberOfCars').val() != "0") {
            var $n = $("#numberOfCars");
            $n.val(Number($n.val()) - 1);

            //needed for GTM tagging of hidden fields
            $n.trigger('change');

            var value = $n.val();
            $("#number3").val(value + '+');
        }
    });

    //back button
    $('a.back').click(function () {
        e.preventDefault();
        parent.history.back();
        return false;
    });

    $('.target-items').each(function () {
        $(this).children('.setHeight').find('.bg').matchHeight({
            target: $(this).find('.getHeight')
        });
    });


    $('.carousel').each(function () {
        if ($("#" + this.id).find('.item').length === 1) {
            $("#" + this.id + ' .carousel-control').hide();
            $("#" + this.id + ' .carousel-indicators').hide();
        }
        else {
            $("#" + this.id + ' .carousel-control').show();
            $("#" + this.id + ' .carousel-indicators').show();
        }
    });

    $(".navbar-form").click(function (e) {
        e.preventDefault();
        var topPosition = "22";
        if (window.pageYOffset < 70)
            topPosition = "0";
        else
            topPosition = "5";
        $('#searchForm').animate({ top: topPosition }, 2);
        if (!$(this).hasClass("open")) {
            $('#globalautocomplete').select();
            $('#globalautocomplete').click();
            $("#searchForm, .navbar-form").addClass("open");
            $("#searchBtnDesktop svg").attr("stroke", "#ffffff");
        }
        else {
            if ($("#globalautocomplete").length && $("#globalautocomplete").val().trim() != "") {
                if ($("#searchBtn").length && !$("#searchBtn").parent().parent('.open').length) {
                    $("#searchForm, .navbar-form").removeClass("open");
                    $("#searchForm .search-box i").remove();
                }
                else if ($("#searchBtnDesktop").length && !$("#searchBtnDesktop").parent().parent('.open').length) {
                    $("#searchForm, .navbar-form").removeClass("open");
                    $("#searchForm .search-box i").remove();
                }
            } else {
                $("#searchForm, .navbar-form").removeClass("open");
                $("#searchBtnDesktop svg").attr("stroke", "#191919");
            }
        }
    }).resize();

    // remove class open button
    $(document).on("click", function (event) {
        var $trigger = $(".navbar-form, #searchForm, .autocomplete-suggestions");
        if ($trigger !== event.target && !$trigger.has(event.target).length) {
            $("#searchForm, .navbar-form").removeClass("open");
            $("#searchForm .search-box i").remove();
            $("#searchBtnDesktop svg").attr("stroke", "#191919");
        }
    });

    $(window).scroll(function () {
        var topPosition = "22";
        if (window.pageYOffset < 70)
            topPosition = "0";
        else
            topPosition = "5";
        try {
            $('#searchForm').animate({ top: topPosition }, 2);
        } catch (err) {
            // console.log(err);
        }

    });

    //rotate accordion chevron

    $("#panel-title a").click(function (e) {
        $(this).parents('li').addClass('visible');
    });

    //temporary code - dodgy hack for main nav dropdown form
    $("li.open .dropdown-menu.form form").click(function (e) {
        $(this).parents('li').addClass('visible');
    });

    //For close button
    $(".navbar-nav > li.enquiry button.close").click(function (e) {
        $(this).parents('body').removeClass('overflow');//remove class
        if ($(window).width() > 767) {
            $('.navbar-nav > li.enquiry').toggleClass("open");
            $('.navbar-nav li.enquiry .form').toggleClass('active');
        }
    });

    $(".collapse").collapse({ toggle: false });

    $(".panel-title a").click(function (e) {
        $(this).parents('.panel-default').toggleClass('open');
    });

    $("dropdown-menu.form").click(function (e) {
        $(this).parents('body').addClass('overflow');
    });
    $("li.enquiry").click(function (e) {
        $(this).parents('body').addClass('overflow');
    });

    $("dropdown-menu.form h6").click(function (e) {
        e.preventDefault();
    });
    $.fn.extend({
        toggleText: function (a, b) {
            if (this.text() == a) {
                this.text(b);
            }
            else {
                this.text(a)
            }
        }
    });

    // Controlling different behaviour for bootstrap collapse
    function collapseInit() {
        if ($(window).width() < 768) {
            $('.main-media-filters').slideUp();
        } else {
            $('.main-media-filters').slideDown();
        }
    }

    collapseInit();

    $(document).on('click', '.toggleLinkMedia', function (e) {
        e.preventDefault();
        if (!$('.toggleLinkMedia').hasClass('open')) {
            $(this).toggleClass('open').toggleText("Less Filters", "More Filters");
        }
        if ($('.toggleLinkMedia').hasClass('collapsed')) {
            $(this).toggleClass('open').toggleText("Less Filters", "More Filters");
        }
    }).on('hide.bs.collapse', function (e) {
        if ($(window).width() < 768) {
            $('.main-media-filters').slideUp();
        }
    }).on('show.bs.collapse', function (e) {
        if ($(window).width() < 768) {
            $('.main-media-filters').slideDown();
        }
    });

    $(document).on('click', '.toggleLinkMultiMedia', function (e) {
        e.preventDefault();
        if (!$('.toggleLinkMultiMedia').hasClass('open')) {
            $(this).toggleClass('open').toggleText("Less Filters", "More Filters");
        }
        if ($('.toggleLinkMultiMedia').hasClass('collapsed')) {
            $(this).toggleClass('open').toggleText("Less Filters", "More Filters");
        }
    }).on('hide.bs.collapse', function (e) {
        if ($(window).width() < 768) {
            $('.main-media-filters').slideUp();
        }
    }).on('show.bs.collapse', function (e) {
        if ($(window).width() < 768) {
            $('.main-media-filters').slideDown();
        }
    });

    $(document).on('click', '.toggleLinkSearch', function (e) {
        e.preventDefault();
        $(this).toggleClass('open').toggleText("Hide Advanced Search", "Advanced Search");
        if (!$(this).hasClass('open')) {
            var targetDiv = $(this).attr('href');
            $('html, body').animate({
                scrollTop: $(targetDiv).offset().top - 300
            }, 100);
        }
    });

    $(".navbar-toggle").on('click', function (e) {
        e.preventDefault();

        $('html, body').animate({
            scrollTop: 0
        }, 100);
    });

    $(document).on('click', '.show-hide', function (e) {
        $(this).toggleClass('open').toggleText("Show less", "Show more info");
    }).on('hide.bs.collapse', function (e) {
        $('.hidden-content').slideUp();
    }).on('show.bs.collapse', function (e) {
        $('.hidden-content').slideDown();
    });

    var start = 3;
    // List view normal and with details function.

    function ShowMore(contentSelector, showingMoreDetails, minLimit) {
        var size_li = $(contentSelector).length;
        var x = minLimit;

        $(contentSelector + ':lt(' + x + ')').css("display", "flex");
        var moreDetails = ' Showing ' + x + ' of ' + size_li + ' results ';
        $(showingMoreDetails + ' .more-results-details').html(moreDetails);
        $('#totalResult').html(size_li);
        $(showingMoreDetails).click(function (e) {
            //write code for showing Loading image
            if ($('.more-results button:has(img)').length == 0) {
                $(".more-results button").prepend("<img src='/assets/images/spinner.gif' />");
            }
            setTimeout(function () {
                if (size_li > x || size_li == x) {

                    x = (x + 3 <= size_li) ? x + 3 : size_li;
                    $(contentSelector + ':lt(' + x + ')').css("display", "flex");
                    var moreDetails = 'Showing ' + x + ' of ' + size_li + ' results ';
                    $(showingMoreDetails + ' .more-results-details').html(moreDetails);
                    //Remove code for showing Loading image
                    $('.more-results button > img').remove();
                    if (size_li == x) {
                        $('.more-results button').hide();
                    }
                }
            }, 1000);
        });
    }

    ShowMore('#newsList .eq', '.more-results-a', 5);
    ShowMore('#newsList1 .eq', '.more-results-a-tab', 5);
    ShowMore('#eventsList .eq', '.more-results-events', 6);
    ShowMore('#m35 .eq', '.more-results-m35', 2);

    var starts = 4;
    // List view normal and with details function.

    function ShowMoreGallery(contentSelector, showingMoreDetails, minLimit) {
        var size_li = $(contentSelector).length;
        var x = minLimit;

        $(contentSelector + ':lt(' + x + ')').css("display", "flex");
        var moreDetails = ' Showing ' + x + ' of ' + size_li + ' results ';
        $(showingMoreDetails + ' .more-results-details').html(moreDetails);
        $('#totalResult').html(size_li);
        $(showingMoreDetails).click(function (e) {
            //write code for showing Loading image
            if ($('.more-results button:has(img)').length == 0) {
                $(".more-results button").prepend("<img src='/assets/images/spinner.gif' />");
            }
            setTimeout(function () {
                if (size_li > x || size_li == x) {

                    x = (x + 4 <= size_li) ? x + 4 : size_li;
                    $(contentSelector + ':lt(' + x + ')').css("display", "flex");
                    var moreDetails = 'Showing ' + x + ' of ' + size_li + ' results ';
                    $(showingMoreDetails + ' .more-results-details').html(moreDetails);
                    //Remove code for showing Loading image
                    $('.more-results button > img').remove();
                    if (size_li == x) {
                        $('.more-results button').attr("disabled", "disabled");
                    }
                }
            }, 1000);
        });
    }

    ShowMoreGallery('#image-Gallery .eq', '.more-results-image', 8);

    var masonrystarts = 2;
    // List view normal and with details function.

    function ShowMoreMasonry(contentSelector, showingMoreDetails, minLimit) {
        var size_li = $(contentSelector).length;
        var x = minLimit;

        $(contentSelector + ':lt(' + x + ')').css("display", "flex");
        var moreDetails = ' Showing ' + x + ' of ' + size_li + ' results ';
        $(showingMoreDetails + ' .more-results-details').html(moreDetails);
        $('#totalResult').html(size_li);
        $(showingMoreDetails).click(function (e) {
            var current_element = $(this);
            //write code for showing Loading image
            if ($('.more-results button:has(img)').length == 0) {
                $(".more-results button").prepend("<img src='/assets/images/spinner.gif' />");
            }

            setTimeout(function () {
                if (size_li > x || size_li == x) {

                    x = (x + 6 <= size_li) ? x + 6 : size_li;
                    $(contentSelector + ':lt(' + x + ')').css("display", "flex");
                    var moreDetails = 'Showing ' + x + ' of ' + size_li + ' results ';
                    $(showingMoreDetails + ' .more-results-details').html(moreDetails);
                    //Remove code for showing Loading image
                    $('.more-results button > img').remove();
                    if (size_li == x) {
                        //$('.more-results button').hide();
                        current_element.hide();
                    }
                }
            }, 1000);
        });
    }

    ShowMoreMasonry('#mm02 .eq', '.more-results-masonry', 2);
    ShowMoreMasonry('#mm03 .eq', '.more-results-masonry-second', 2);
    ShowMoreMasonry('#mm-03 .eq', '.more-results-masonry-third', 2);
    ShowMoreMasonry('#mm-03-1 .eq', '.more-results-masonry-third-one', 2);
    ShowMoreMasonry('#mm-04 .eq', '.more-results-masonry-forth', 2);
    ShowMoreMasonry('#mm04-1 .eq', '.more-results-masonry-fifth', 2);
    ShowMoreMasonry('#demo-charts .eq', '.more-results-masonry-sixth', 2);
    ShowMoreMasonry('#mm04-2 .eq', '.more-results-masonry-seventh', 2);
    ShowMoreMasonry('#mm05-2 .eq', '.more-results-masonry-eighth', 2);
    ShowMoreMasonry('#mm-03-multi .eq', '.more-results-masonry-multi', 2);

    var startFaq = 10;
    // List view normal and with details function.

    function ShowMoreFaq(contentSelector, showingMoreDetails, minLimit) {
        var size_li = $(contentSelector).length;
        var x = minLimit;

        $(contentSelector + ':lt(' + x + ')').css("display", "block");
        var moreDetails = ' Showing ' + x + ' of ' + size_li + ' results ';
        $(showingMoreDetails + ' .more-results-details').html(moreDetails);
        $('#totalResult').html(size_li);
        $(showingMoreDetails).click(function (e) {
            //write code for showing Loading image
            if ($('.more-results button:has(img)').length == 0) {
                $(".more-results button").prepend("<img class='spinner-skype' src='/assets/images/spinner.gif' />");
            }
            setTimeout(function () {
                if (size_li > x || size_li == x) {

                    x = (x + 10 <= size_li) ? x + 10 : size_li;
                    $(contentSelector + ':lt(' + x + ')').css("display", "block");
                    var moreDetails = 'Showing ' + x + ' of ' + size_li + ' results ';
                    $(showingMoreDetails + ' .more-results-details').html(moreDetails);
                    //Remove code for showing Loading image
                    $('.more-results button > img').remove();
                    if (size_li == x) {
                        $('.more-results button').hide();
                    }
                }
            }, 1000);
        });
    }

    ShowMoreFaq('#m36 .panel-default', '.more-results-m36 ', 10);


    function closeModalPopup(strPopup, e) {
        var container = $(strPopup);
        if (!container.is(e.target) // if the target of the click isn't the container...
            && container.has(e.target).length === 0) // ... nor a descendant of the container
        {
            $("li.enquiry").removeClass('open');
            $(".enquiry .form").removeClass('active');
            $("body").removeClass('overflow');
            $("#bs-navbarcol-sm-3").css({ overflow: "hidden" });
        }
    }

    function animateCss(element_ID, animation) {
        $(element_ID).addClass(animation);
        var wait = window.setTimeout(function () {
            $(element_ID).removeClass(animation);
        }, 12000
        );
    }

    function openModalPopup(strPopup, e) {
        var container = $(strPopup);
        $("li.enquiry").addClass('open');
        $(".enquiry .form").addClass('active');
        $('#searchForm').removeClass("open");
        $("#bs-navbarcol-sm-3").css({ overflow: "visible" });

        animateCss("#loadEnquiryForm", 'fadeIn animated');
    }

    var modalCount = 0;
    $("li.enquiry .enquireFormBtn").click(function (e) {
        if ($('#loadEnquiry').length > 0) {
            var offset = $(document.body).scrollTop() > 40 ? 94 : 188;
            $("html,body").animate({ 'scrollTop': $('#enquiryDisplayForm').offset().top - offset }, 'slow');
        }
        else {
            if ($(window).width() < 1200) {
                $("#headerEnquireButton").click();
            } else {
                openModalPopup('li.enquiry', e);
            }
        }
        return false;
    });
    // 79494 - trigger navigating to or opening the enquiry form
    $('.hp__enquirybutton').on('click', function () {
        if ($('#enquiryDisplayForm').length > 0) {
            $("html,body").animate({
                scrollTop: $("#enquiryDisplayForm").offset().top - 50
            }, "slow");
        }
        else {
            $('.enquireFormBtn').click();
        }
    })
    // 79494
    $(".navbar-nav > li.enquiry .close").click(function (e) {
        closeModalPopup('.modal-content', e);
    });

    $("#compareProducts").hide();

    $('.compare-tab-menu').on('click', function (e) {
        //var activeTab = $.trim($(".productFilter-select-all").parent().parent().find('.active').attr('id'));
        var activeTab = $.trim($(this).attr('id'));

        var selectAll = $('.productFilter-select-all input:checkbox').is(":checked");
        if (activeTab == "document-bulk" && selectAll) {
            $('.bulk-items').addClass('hidden');

            $('.doc-items').show();
        }
        else {
            $('.bulk-items').removeClass('hidden');
            $('.doc-items').hide();
        }
    });

    $(".checkbox-field:checked").change(function () {
        $("#multi-compare").hide();
        $("#compareProducts").show();
    })
    $("#multi-enquiry, #multi-share").click(function () {
        return false;
    });

    $('#multi-share').click(function (e) {
        intCountSelectedCheckbox = $(".media-body [type='checkbox']:checked").length;
        if (!intCountSelectedCheckbox) {
            $('.errorShortlist').removeClass("hidden");
        }
    });



    if ($("ul").hasClass("shortlist-menu")) {
        $(".change-font").css("right", "107px");
    }

    $('.change-font .btn-group label:nth-child(1)').click(function () {
        localStorage.Bigfont = "on";
        $('html').addClass("on-off");
    });

    $('.change-font .btn-group label:nth-child(2)').click(function () {
        localStorage.Bigfont = "off";
        $('html').removeClass("on-off");
    });

    $('html').removeClass("on-off");
    $('.change-font .btn-group label:nth-child(1)').removeClass("active");

    /*on page load check localStorage Bigfont variable for FontSize variation */
    if (localStorage.Bigfont != null) {
        if (localStorage.Bigfont == "on") {
            $('html').addClass("on-off");
            $('.change-font .btn-group label:nth-child(1)').addClass("active");
            $('.change-font .btn-group label:nth-child(2)').removeClass("active");
        }
    }
    else {
        $('html').removeClass("on-off");
        $('.change-font .btn-group label:nth-child(2)').addClass("active");
        $('.change-font .btn-group label:nth-child(1)').removeClass("active");
    }

    $('#eventsList .footer a.rsvp').click(function () {
        var text = $(this).text();
        if ($.trim($(this).text()) == $.trim('RSVP')) {
            $(this).text('Attending').prepend("<i class='icon-tick'></i>");
        }
        else {
            $(this).replaceWith($(this).text('RSVP'));
        }
    });

    $('#readMore .footer a').click(function () {
        var text = $(this).text();
        if ($.trim($(this).text()) == $.trim('Read more')) {
            $(this).text('Attending').prepend("<i class='icon-tick'></i>");
        }
        else {
            $(this).replaceWith($(this).text('Read more'));
        }
    });


    $('.dropdown-menu.shortlist-menu').click(function (event) {
        event.stopPropagation();
    })

    $(".dropdown-menu .shortlist-menu").click(function () {
        $(".shortlist-scroll").parent().closest('span').addClass("open");
    });



    $('.shortlist-menu .media-body .remove').on("click", function (event) {
        $(event.target).closest("li").remove();
    });

    $("#mapView1").on("click", function () {
        $(".section-for-map").css("display", "block");
        $(".map-container").css("display", "block");
        $("#googleMap").css("height", "80vh");
        $('.search-and-result-panel').addClass('hidden-xs');
        $('.search-and-result-panel').addClass('hidden-sm');
        $('.mobile-footer').addClass('hidden-xs');
        $('.mobile-footer').addClass('hidden-sm');

        if (typeof (maps) == "function") {
            maps();
        }

        // Below is taken out for consistency
        //if ($(".fullScreen div div").text() == "Expand map") {
        //    $(".fullScreen").click();
        //}

        stockland.modules.maps.mapResize();
    });
    $("#exitMap").on("click", function () {
        $(".section-for-map").css("display", "none");
        $(".map-container").css("display", "none");
        $("#googleMap").css("height", "80vh !important");
        $('.search-and-result-panel').removeClass('hidden-xs');
        $('.search-and-result-panel').removeClass('hidden-sm');
        $('.mobile-footer').removeClass('hidden-xs');
        $('.mobile-footer').removeClass('hidden-sm');
        $("#mapView1").show();
    });

    $("#mapViewTab").on("click", function () {
        $(".placematcher-pages").find(".section-for-map").addClass("open-map-on-tablet");
        $(".placematcher-pages").find(".map").addClass("open-map-on-tablet");
        $(".placematcher-pages").find(".row .eqHeight").addClass("hidden-sm");
        $(".placematcher-pages").find(".pagination").addClass("hidden-sm");
        $("#mapViewSm").removeClass('hide');
        $("#mapViewTab").hide();
        $("#mapViewSm").show();
    });

    $("#mapViewSm").on("click", function () {
        $(".placematcher-pages").find(".section-for-map").removeClass("open-map-on-tablet");
        $(".placematcher-pages").find(".map").removeClass("open-map-on-tablet");
        $(".placematcher-pages").find(".row .eqHeight").removeClass("hidden-sm");
        $(".placematcher-pages").find(".pagination").removeClass("hidden-sm");
        $("#mapViewSm").hide();
        $("#mapViewTab").show();
    });

    $("#refine-sort-btn").on("click", function () {
        var $elementClicked = $(this);
        //call gtm tracking code
        if (dataLayer) {
            dataLayer.push({
                'event': 'PlaceMatcherRefineSort',
                'eventAction': $elementClicked.data('gtm-event-action'),
                'eventCategory': $elementClicked.data('gtm-event-category'),
                'eventLabel': $elementClicked.data('gtm-event-label'),
                'eventValue': $elementClicked.data('gtm-event-value'),
                'elementID': $elementClicked.data('gtm-id')
            });
        }
        $(".placematcher-pages").find(".search-and-result-panel").removeClass("hidden");
        $(".hold-card-results").addClass("hidden");
        $("#resultsPanel").css("display", "block");
        $(".refine-footer").addClass("hidden");
        $(".search-bar").addClass("hidden");
        $(".no-footer").hide();

        $('.more-options-bar').addClass('render-xs');
        $('.search-bar-container').addClass('reduce-height');

        mapResize();
    });

    $(".refine-sort-btn-cancel").on("click", function () {
        var $elementClicked = $(this);
        //call gtm tracking code
        if (dataLayer) {
            dataLayer.push({
                'event': 'PlaceMatcherCancelRefineSort',
                'eventAction': $elementClicked.data('gtm-event-action'),
                'eventCategory': $elementClicked.data('gtm-event-category'),
                'eventLabel': $elementClicked.data('gtm-event-label'),
                'eventValue': $elementClicked.data('gtm-event-value'),
                'elementID': $elementClicked.data('gtm-id')
            });
        }
        $(".hold-card-results").removeClass("hidden");
        $("#resultsPanel").css("display", "none");
        $(".refine-footer").removeClass("hidden");
        $(".search-bar").removeClass("hidden");
        $(".no-footer").show();
        $('.more-options-bar').removeClass('render-xs');
        $('.search-bar-container').removeClass('reduce-height');
        mapResize();
    });

    //Map resize funtion Start
    function mapResize() {
        if ($(window).width() > 1023) {
            $("#googleMap").css("height", ($('.set-card-height-map').outerHeight() + "px"));
        }
        if ($(window).width() <= 991) {
            if ($(".section-for-map")) {
                $(".section-for-map").hide();
            }
        }
        else {
            if ($(".section-for-map")) {
                $(".section-for-map").show();
            }
        }
    }
    setTimeout(function () { mapResize(); }, 1);

    //Map resize funtion End
    function setCardHeights() {
        var max_height = 0;
        var all_height = [];
        $('.set-card-height .card .media-body').each(function () {
            all_height.push($(this).outerHeight());
        });
        //debugger;
        max_height = Math.max.apply(Math, all_height);
        if (max_height > 0) {
            $('.set-card-height .card .media-body').css('height', max_height);
        }
    }

    setCardHeights();

    function setCardHeightvariation() {
        var max_height = 0;
        var all_height = [];
        $('.set-card-height-last .card .media-body').each(function () {
            all_height.push($(this).outerHeight());
        });
        max_height = Math.max.apply(Math, all_height);
        if (max_height > 0) {
            $('.set-card-height-last .card .media-body').css('height', max_height);
        }

        all_height = [];
        $('.set-card-height-last .card .specs-footer-default').each(function () {
            all_height.push($(this).outerHeight());
        });

        max_height = Math.max.apply(Math, all_height);
        if (max_height > 0) {
            $('.set-card-height-last .card .specs-footer-default').css('height', max_height);
        }

        all_height = [];
        $('.set-card-height-last .card .second-row-footer').each(function () {
            all_height.push($(this).outerHeight());
        });

        max_height = Math.max.apply(Math, all_height);
        if (max_height > 0) {
            $('.set-card-height-last .card .second-row-footer').css('height', max_height);
        }
        //debugger;
    }

    setCardHeightvariation();
    $(window).resize(function () {
        setCardHeightvariation();
    });

    $(".advancedSearch").on("click", function () {
        $(".advancedSearch span").removeClass("icon-chevron").addClass("icon-up")
        $(".advancedSearch").toggleClass("advance-searched");
        $(this).toggleText("Advanced Search", "Hide Advanced Search");
    });

    $('.totalSlides').text($('.testcode li').length - 1);
    $('.totalSlides2').text($('.testcode2 li').length - 1);
    $('.totalSlides3').text($('.testcode3 li').length);
    $('.totalSlides4').text($('.testcode4 li').length);

    $('#imageSlideModule').on('slid.bs.carousel', function (e) { //attach its event
        var current = $(e.target).find('.item.active'); //get the current active slide
        var indx = $(current).index(); //get its index
        $('.carouIndex').text(indx + 1);
    });

    $('#imageSliderNameLeft').on('slid.bs.carousel', function (e) { //attach its event
        var current = $(e.target).find('.item.active'); //get the current active slide
        var indx = $(current).index(); //get its index
        $('.carouIndex1').text(indx + 1);
    });

    $('#imageSliderNameRight').on('slid.bs.carousel', function (e) { //attach its event
        var current = $(e.target).find('.item.active'); //get the current active slide
        var indx = $(current).index(); //get its index
        $('.carouIndex2').text(indx + 1);
    });

    $('#imageSlideModuleSmall').on('slid.bs.carousel', function (e) { //attach its event
        var current = $(e.target).find('.item.active'); //get the current active slide
        var indx = $(current).index(); //get its index
        $('.carouIndex3').text(indx + 1);
    });

    $('#m25').on('slid.bs.carousel', function (e) { //attach its event
        var current = $(e.target).find('.item.active'); //get the current active slide
        var indx = $(current).index(); //get its index
        $('.carouIndex4').text(indx + 1);
    });

    autoPlayYouTubeModal();

    //FUNCTION TO GET AND AUTO PLAY YOUTUBE VIDEO FROM DATATAG    
    function autoPlayYouTubeModal() {
        var trigger = $("body").find('[data-toggle="modal"]');

        const onClick = function () {
            var theModal = $(this).data("target"),
                videoSRC = $(this).attr("data-theVideo"),
                //videoSRCauto = videoSRC + "?autoplay=1";				
                videoSRCauto = videoSRC;
            $(theModal + ' iframe').attr('src', videoSRCauto);

            if ($(theModal + ' iframe')[0]) {
                $(theModal + ' iframe')[0].src += "?autoplay=1";
            }

            $(theModal + ' button.close').click(function () {
                $(theModal + ' iframe').attr('src', videoSRC);
            });
        };
        trigger.click(onClick);
        $(document).on('click', '.video-click', onClick);
    }

    //Function for Password Strength
    function checkPassword(password) {
        if (password.match(/^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9!%&@#$^*?_~]+){8,}$/)) {
            $('#result').removeClass()
            $('#result').addClass('strong-pass icon-tick')
            return ' '
        }
        else {
            $('#result').removeClass();
            return ' '
        }
    }

    $('#Password').keyup(function () {
        $('#result').html(checkPassword($('#Password').val()))
        matchPassword();
    })

    function matchPassword() {
        var pass = $('#Password').val();
        var pass2 = $('#ConfirmPassword').val();
        if (pass != pass2) {
            $('#validate-status').removeClass('strong-pass icon-tick');
            //alert('the passwords didn\'t match!');
        }
        else if (pass2 != "" && pass2.match(/^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9!%&@#$^*?_~]+){8,}$/)) {

            $('#validate-status').addClass('strong-pass icon-tick');
        }
    }

    $('#ConfirmPassword').keyup(matchPassword);

    //location back from account page
    if (window.location.hash === '#changeBack') {
        $("#collapse1").addClass("in");
    }
    if (window.location.hash === '#changeBackSubs') {
        $("#collapse2").addClass("in");
    }

    $(".toggle-accordian-masonry").on("click", function () {
        $(".toggle-accordian").toggleClass("toggle-accordian-masonry");
        $(".toggle-accordian").parent().toggleClass("toggle-accordian-mas-parent");
        $(".toggle-accordian a").css('background', '#F5F7F9');
        if ($("section").hasClass("showmorebg")) {
            $(".toggle-accordian a").css('background', '#eceff4');
        }
    });
    $('.reveal-phone-number').each(function () {
        const editNumberText = function (newText) {
            const numberText = $(this).find('.hidden-phone-number').first();
            if (newText) numberText.text(newText);
            else return numberText.text();
        }.bind(this);

        this.originalNumber = editNumberText().trim();
        const numberLen = this.originalNumber.length;
        const newNumber = this.originalNumber.substring(0, numberLen - 3).replace(/[0-9]/g, '\u2022') + this.originalNumber.substring(numberLen - 3, numberLen);
        editNumberText(newNumber);
        $(this).on('click', function () {
            editNumberText(this.originalNumber);
            $(this).find('.reveal-text').first().hide();
        });

    });

    $(".gridder-list .icon-chevron").on("click", function () {
        //$(this).toggleClass("icon-chevron-toggle");
    });

    $('.carousel').carousel({
        pause: true,
        interval: false
    });

    $(".checkbox #callback").on("click", function () {
        $(".best-time-call").toggleClass("hidden");

    });

    //M15 - If image is missing the module is displayed incorrectly
    $('.relative > .col-xs-12.col-sm-6').each(function () {
        if ($(this).find('img').length) {
            //console.log("has image");
        }
        else {
            $('.vertical-center.right').removeClass('col-sm-6 vertical-center right').addClass('col-sm-12');
        }
    });

    //M38
    $('#m38 .row .col-sm-6').each(function () {
        if ($(this).parent().find('img').length == 0) {
            $(this).parent().find(".vertical-center.right").addClass('col-sm-12').removeClass('col-sm-6 vertical-center right');
            $(this).parent().find(".vertical-center.left").addClass('col-sm-12').removeClass('col-sm-6 vertical-center left');
        }
    });

    //Subscribe form list function start
    if ($('#subscribeForm .form-group').length > 2) {
        $('#subscribeForm .form-group:lt(2)').show();
        /*$('#subscribeForm').append('<div class="toggle-accordian module27" style="margin-bottom: -18px"><a class="icon-chevron show-hide collapsed bg-white" href="javascript:void(0)">Show more</a></div>');*/
        $('#subscribeForm .form-group').show();
    }
    else {
        $('#subscribeForm .form-group').show();
    }

    $('#subscribeForm .icon-chevron').click(function () {
        if ($("#subscribeForm .icon-chevron").hasClass("open")) {
            $('#subscribeForm .form-group:gt(1)').hide();
        }
        else {
            $('#subscribeForm .form-group').show();
        }
    });

    //Subscribe form list function start end
    /***********login form, when email textbox value change - password field will be empty ************/
    $("#loadEnquiryForm .close").click(function () {
        $('#loadEnquiryForm').modal('hide');
    });

    function loadImageGallery(imgGalleryId) { //generate dynamic carousel image-gallery from selected carousel item
        $('#imgCarousel').find('.carousel-inner').empty();
        $(imgGalleryId + ' .item').each(function (i) {

            //console.log(" Before replace >>>>>" +$(this).find('div:first-child').attr("style"));
            var imageBgURL = $(this).find('div:first-child').attr("style"),
                imageURL = imageBgURL.replace("background-image:", "").replace("url(", "").replace("')", "").replace(";", "").replace("'", ""),
                imgDesc = "";
            if ($(this).find(".description").text())
                imgDesc = $(this).find(".description").text();

            if (i == 0) //when index is 0 addClass active
                itemDiv = "<div class='item active'><img class='thumbnails img-responsive' title='" + imgDesc + "'  src='" + imageURL + "'></div>";
            else
                itemDiv = "<div class='item'><img class='thumbnails img-responsive' title='" + imgDesc + "'   src='" + imageURL + "'> </div>";
            $('.img-gallery .carousel-inner').append(itemDiv);
        });
    }

    $('#imageSlideModuleSmall .item, #imageSliderNameLeft .item, #imageSliderNameRight .item').click(function (event) {
        var imgGalleryId = "#" + event.currentTarget.closest(".carousel").id;
        loadImageGallery(imgGalleryId);
        var idx = $(this).index();
        var ids = parseInt(idx);
        $('#imgCarousel').carousel(ids);
        $('#imgGallery').modal('show'); // show the modal

        // slide carousel to selected
        $('.currentSlide').text(ids + 1);
        var totalSlide = $("#imgCarousel .item").length; //get total items
        $('.totalSlides').text(totalSlide);
        $('#imgGallery').find(".modal-footer .title").html($(this).find('.description').text());
    });

    $('#imgCarousel').on('slid.bs.carousel', function (e) { //attach its event
        var current = $(e.target).find('.item.active'); //get the current active slide
        var indx = $(current).index(); //get its index
        $('.currentSlide').text(indx + 1);
        var totalSlide = $("#imgCarousel .item").length; //get total items
        $('.totalSlides').text(totalSlide);
        $('#imgGallery').find(".modal-footer .title").html($("#imgCarousel").find('.active img').attr("title"));
    });

    //Image thumbnail carosoul
    /* copy loaded thumbnails into carousel */
    $('#image-Gallery .row .thumbnails').each(function (i) {
        var item = $('<div class="item"></div>');
        var itemDiv = $(this).parents('div');
        var title = $(this).parent('a').attr("title");
        item.attr("title", title);
        $(itemDiv.html()).appendTo(item);
        item.appendTo('.img-preview .carousel-inner');
        if (i == 0) { // set first item active
            item.addClass('active');
        }
    });

    /* activate the carousel */
    $('#modalCarousel').carousel({ interval: false });

    /* change modal title when slide changes */
    $('#modalCarousel').on('slid.bs.carousel', function (e) {//attach its event
        $('#myModal1').find(".modal-footer .title").html($(this).find('.active img').attr("title"));
        var current = $(e.target).find('.item.active'); //get the current active slide
        var indx = $(current).index(); //get its index
        $('.current-image').text(indx + 1);
        var totalSlide = $("#modalCarousel .item").length;
        $('.total-images').text(totalSlide);
    });

    /* when clicking a thumbnail */
    $('#image-Gallery .row .thumbnails').click(function () {
        var idx = $(this).closest('div.card').index();
        var id = parseInt(idx);
        $('#myModal1').modal('show'); // show the modal
        $('#modalCarousel').carousel(id); // slide carousel to selected
        var desc = $(this).closest(".card").find(".content-wrapper").text();
        $('#myModal1').find(".modal-footer .title").text(desc);
        $('.current-image').text(id + 1);
        var totalSlide = $("#modalCarousel .item").length;
        $('.total-images').text(totalSlide);
    });
    $(document).on('swiperight', '.enable-swipe', function () {//add touch effect to slider
        $(this).carousel('prev');
    });
    $(document).on('swipeleft', '.enable-swipe', function () {//add touch effect to slider
        $(this).carousel('next');
    });
    if ($(".carousel").length > 0) {
        $(".carousel").swiperight(function () {//add touch effect to slider
            if ($(this).find(".chart-h-scroll").length == 0)
                $(this).carousel('prev');
            if ($(this).find(".enable-swipe").length == 0)
                $(this).carousel('prev');

        });
        $(".carousel").swipeleft(function () {
            if ($(this).find(".chart-h-scroll").length == 0)
                $(this).carousel('next');
            if ($(this).find(".enable-swipe").length == 0)
                $(this).carousel('next');
        });
    }

    if ($("form[class='stacked'] div > input")) {
        if ($('.has-error')) {
            $('.has-error').first().find('.input-validation-error').focus();
        }
        else {
            $("form[class='stacked'] div > input").first().focus();
        }
    }

    $('.example-getting-started').multiselect();


    //autocomplete-suggestions responsive width and top left position
    $(window).resize(function (e) {
        e.preventDefault();
        e.stopPropagation();
        var autoSuggestWidth = $("#bs-navbarcol-sm-3").width() + 5;
        if ($(window).width < 1024) {
            autoSuggestWidth = $("#bs-navbarcol-sm-3").width() - 124;
        }
        var position = $("#bs-navbarcol-sm-3").offset();
        var topPosition;
        if (window.pageYOffset > 70) {
            topPosition = "60";
            $(".autocomplete-suggestions").animate({ top: topPosition }, 20);
        }
        if (window.pageYOffset < 70) {
            topPosition = "104";
            $(".autocomplete-suggestions").animate({ top: topPosition }, 20);
        }
    }).resize();

    //autocomplete-suggestions responsive width and top left position
    $(window).scroll(function (e) {
        e.preventDefault();
        e.stopPropagation();
        var topPosition;

        if (window.pageYOffset > 70) {
            topPosition = "60";
            try {
                $(".autocomplete-suggestions").animate({ top: topPosition }, 20);
            } catch (err) {
                //console.log(err);
            }
        }
        if (window.pageYOffset < 70) {
            topPosition = "104";
            try {
                $(".autocomplete-suggestions").animate({ top: topPosition }, 20);
            } catch (err) {
                // console.log(err);
            }
        }
    });

    // Allow anchor scroll to offset fixed header
    $(".anchor").each(function (index) {
        let currentPaddingTop = parseInt($(this).css("padding-top"));
        let currentMarginTop = parseInt($(this).css("margin-top"));
        let mainNavHeight = $("#mainNav").outerHeight();
        $(this).css("padding-top", currentPaddingTop + mainNavHeight);
        $(this).css("margin-top", currentMarginTop - mainNavHeight);
    })
});


//eojquery
function syncBedBathCarHiddenFieldFromTextField($textField, $hiddenField) {
    if ($textField.val() && $textField.val() != '' && $textField.val().match(/^[0-9]+\+?$/g)) {
        var numberValueOnly = $textField.val().replace(/\+$/g, '');
        if (numberValueOnly != $hiddenField.val()) {
            //populate hidden value
            $hiddenField.val(numberValueOnly);
            //enforce trailing + postfix
            $textField.val(numberValueOnly + '+');

            //needed for GTM tagging of hidden fields
            $hiddenField.trigger('change');
        }
    } else {
        //restore from hidden value
        $textField.val($hiddenField.val() + '+');
    }
}

// crazy long regex for detect mobile and tablets from http://stackoverflow.com/questions/11381673/detecting-a-mobile-browser
function isDeviceMobileOrTablet() {
    var check = false;
    (function (a) { if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4))) check = true })(navigator.userAgent || navigator.vendor || window.opera);
    //alert(check);
    return check;
}

// crazy long regex for detect mobile and tablets from http://stackoverflow.com/questions/11381673/detecting-a-mobile-browser
function isDeviceMobileOrTablet() {
    var check = false;
    (function (a) { if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4))) check = true })(navigator.userAgent || navigator.vendor || window.opera);
    //alert(check);
    return check;
}

// crazy long regex for detect mobile and tablets from http://stackoverflow.com/questions/11381673/detecting-a-mobile-browser
function isDeviceMobileOrTablet() {
    var check = false;
    (function (a) { if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4))) check = true })(navigator.userAgent || navigator.vendor || window.opera);
    //alert(check);
    return check;
}

//Returns the queryString value for the specified key
function getQueryStringKey(key) {
    var query = window.location.search.substring(1);
    var vars = query.split("&");
    for (var i = 0; i < vars.length; i++) {
        var pair = vars[i].split("=");
        if (pair[0].toLowerCase() == key.toLowerCase()) { return pair[1]; }
    }
    return (false);
};
jQuery(document).ready(function ($) {
    if ($('#stockland_module_pricerangeslider_init').val() == 'true') {
        var nonLinearSlider = document.getElementById('nonlinear');
        if (nonLinearSlider != null) {
            if (stockland_module_min_price == stockland_module_max_price) {
                noUiSlider.create(nonLinearSlider, {
                    connect: true,
                    behaviour: 'tap',
                    start: [stockland_module_min_price, stockland_module_max_price],
                    range: {
                        'min': [stockland_module_default_min_price],
                        'max': [stockland_module_default_max_price]
                    },
                    format: wNumb({
                        decimals: 0,
                        thousand: ',',
                        prefix: '$',
                    })
                });
            }
            else {
                noUiSlider.create(nonLinearSlider, {
                    connect: true,
                    behaviour: 'tap',
                    step: 2500,
                    start: [stockland_module_min_price, stockland_module_max_price],
                    range: {
                        'min': [stockland_module_default_min_price],
                        'max': [stockland_module_default_max_price]
                    },
                    format: wNumb({
                        decimals: 0,
                        thousand: ',',
                        prefix: '$',
                    })
                });
            }
            //end form slider


            // Write the CSS 'left' value to a span.
            function leftValue(handle) {
                return handle.parentElement.style.left;
            }

            lowerValue = document.getElementById('lower-value');
            upperValue = document.getElementById('upper-value');
            
            var handles = nonLinearSlider.getElementsByClassName('noUi-handle');

            // Display the slider value and how far the handle moved
            // from the left edge of the slider.
            nonLinearSlider.noUiSlider.on('update', function (values, handle) {
                if (!handle) {
                    lowerValue.innerHTML = values[handle];
                } else {
                    upperValue.innerHTML = values[handle];
                }
            });
        }
    }
});
;
jQuery(document).ready(function ($) {
    if ($('#stockland_module_nationalsearchinput_init').val() == 'true') {
        var ids = $('#tabs').find('.active').attr('id');
        var productTypes = "";
        var propertyTypes = "";
        var builders = '';
        var isRecommended = "";
        var numberCars = 0;
        var numberBath = 0;
        var numberBed = 1;
        var priceRange = '';
        var frontage = '';
        var storeys = '';
        var lotSize = '';
        var searchStr = '';
        var numberPark = 0;
        var lonlat = '';
        var state = '';
        var states = ['VIC', 'TAS', 'NSW', 'SA', 'WA', 'NT', 'QLD'];

        if ($('#propMultiSelect').val() != null
            && $('#propMultiSelect').val() != "")
        {
            propertyTypes = $('#propMultiSelect').val().join();
            updateSlider();
        }


        $('#propMultiSelect')
            .change(function (e) {
                if ($('#propMultiSelect').val() != null) {
                    propertyTypes = $('#propMultiSelect').val().join();
                }
                else {
                    propertyTypes = "";
                }

                updateSlider();

                if (propertyTypes == "All" && propertyTypes.indexOf("All") != -1) {
                    propertyTypes = $('#propMultiSelect').val().join();
                }
            });


        function updateSlider() {
            //call a method to update the price range
            var currentItemId = $('.enquireFormBtn').attr('id');
            var request = $.ajax({
                url: '/public/placematcher/updatenationalpropertytype',
                dataType: 'json',
                data: {
                    'currentItemId': currentItemId,
                    'propertyType': propertyTypes
                },
                success: function (response) {
                    var minPrice = Math.floor(response.MinPrice / 100000) * 100000;
                    var maxPrice = Math.ceil(response.MaxPrice / 100000) * 100000;
                    if (response.MinPrice && response.MaxPrice) {
                        document.getElementById('nonlinear').noUiSlider.updateOptions({
                            range: {
                                'min': minPrice,
                                'max': maxPrice
                            }
                        });
                        document.getElementById('nonlinear').noUiSlider.set([minPrice, maxPrice]);
                    }
                },
                error: function (exception) {  }
            });
        }
        updateSlider();
        //Property level filters - Begin
        $('#builderMultiSelect').change(function (e) {
            if ($('#builderMultiSelect').val() != null) {
                builders = $('#builderMultiSelect').val().join();
            }
        });

        $('#community')
            .change(function (e) {
                ids = $('#tabs').find('.active').attr('id');
            });

        //$('#increment')
        //    .click(function (e) {
        //        numberBed = Number($('#numberOfBedrooms').val()) + 1;
        //    });
        //$('#increment1')
        //    .click(function (e) {

        //        numberBath = Number($('#numberOfBaths').val()) + 1;
        //    });
        //$('#increment2')
        //    .click(function (e) {
        //        numberCars = Number($('#numberOfCars').val()) + 1;
        //    });
        //$('#decrement')
        //    .click(function (e) {

        //        if (Number($('#numberOfBedrooms').val()) > 1) {
        //            numberBed = Number($('#numberOfBedrooms').val()) - 1;
        //        }
        //    });
        //$('#decrement1')
        //    .click(function (e) {
        //        if (Number($('#numberOfBaths').val()) > 0) {
        //            numberBath = Number($('#numberOfBaths').val()) - 1;
        //        }
        //    });
        //$('#decrement2')
        //    .click(function (e) {
        //        if (Number($('#numberOfCars').val()) > 0) {
        //            numberCars = Number($('#numberOfCars').val()) - 1;
        //        }
        //    });
        $('#incrementParking')
            .click(function (e) {

                if ($('#numberPark').val() != "10") {
                    var $n = $("#numberPark");
                    $n.val(Number($n.val()) + 1);
                    var value = $n.val();
                    $("#parkingTxt").val(value + '+');
                }
                numberPark = Number($('#parkingTxt').val()) + 1;
            });

        $('#decrementParking')
            .click(function (e) {
                if ($('#numberPark').val() != "0") {
                    var $n = $("#numberPark");
                    $n.val(Number($n.val()) - 1);
                    var value = $n.val();
                    $("#parkingTxt").val(value + '+');
                }
                if (Number($('#numberPark').val()) > 0) {
                    numberPark = Number($('#numberPark').val()) - 1;
                }
            });

        //================================================================Number of Storeys============================================
        $('#Any')
            .change(function (e) {
                storeys = "";
                $('#storeyTab')
                    .find('.active')
                    .each(function () {
                        storeys = storeys + " " + $(this).attr('id');
                    });
                storeys = $.trim(storeys);
            });
        $('#One')
            .change(function (e) {

                storeys = "";
                $('#storeyTab')
                    .find('.active')
                    .each(function () {
                        storeys = storeys + " " + $(this).attr('id');
                    });
                storeys = $.trim(storeys);
            });
        $('#two')
            .change(function (e) {

                storeys = "";
                $('#storeyTab')
                    .find('.active')
                    .each(function () {
                        storeys = storeys + " " + $(this).attr('id');
                    });
                storeys = $.trim(storeys);
            });
        $('#threePlus')
            .change(function (e) {
                storeys = "";
                $('#storeyTab')
                    .find('.active')
                    .each(function () {
                        storeys = storeys + " " + $(this).attr('id');
                    });
                storeys = $.trim(storeys);
            });

        //========================================================End of Storeys==============================================================
        $('#searchButton, #nationalCommunityMobileSearchBtn, #nationalPropertyMobileSearchBtn')
            .click(function (e) {

                //console.log('searchButton clicked');

                var $elementClicked = $(this);

                if ('#communitytab .active')
                    var features = "";
                try {
                    getLocation();
                }
                catch (err) { }
                $('#communitytab')
                    .find('.active').not('#productTypes .active')
                    .each(function () {
                        features = features + "," + $(this).attr('id');
                    });

                if (features.length > 0) {
                    features = 'features=' + features.substring(1, features.length);
                    features = features.replace(/%20/g, " ");
                } else {
                    features = '';
                }

                $('#communitytab')
                        .find('#productTypes .active')
                        .each(function () {
                            productTypes = productTypes + "," + $(this).attr('id');
                        });

                if (productTypes.length > 0) {
                    productTypes = '&productTypes=' + productTypes.substring(1, productTypes.length);
                    productTypes = productTypes.replace(/%20/g, " ");
                } else {
                    productTypes = '';
                }

                lonlat = $('#currentLocationLonLat').val();
                if (lonlat !== '' && (typeof lonlat != 'undefined')) {
                    lonlat = '&lonlat=' + lonlat;
                }
                else {
                    lonlat = '';
                }

                state = $('#currentState').val();
                if (state !== '') {
                    if ($.inArray(state, states) > -1) {
                        state = '&state=' + state;
                    }
                    else {
                        state = '';
                    }
                }
                else {
                    state = '';
                }

                var ids = $('#tabs').find('.active').attr('id');
                e.preventDefault();

                if (ids == "propertyTab") {
                    var searchStr = $('#autocompleteSearch').val();
                    if (searchStr == undefined) {
                        searchStr = '';
                        lonlat = '';
                    }

                    if ($('#propMultiSelect').val() != null) {
                        propertyTypes = $('#propMultiSelect').val().join();
                    }

                    else if (propertyTypes == "All" && propertyTypes.indexOf("All") != -1) {
                        propertyTypes = $('#propMultiSelect').val().join();
                    }
                    else {
                        propertyTypes = "";
                    }

                    if (propertyTypes.length > 0) {
                        propertyTypes = '&productTypes=' + propertyTypes;
                        propertyTypes = propertyTypes.replace(/%20/g, " ");
                    } else {
                        $('#propMultiSelect').find('option').each(function () {
                            propertyTypes = propertyTypes + "," + $(this).attr('value');
                        });
                        propertyTypes = '&productTypes=' + propertyTypes.substring(1, propertyTypes.length);
                        propertyTypes = propertyTypes.replace(/%20/g, " ");
                    }

                    $('#isRecommended').find('.active').each(function () {
                        isRecommended = true;
                        isRecommended = '&isRecommended=' + isRecommended;
                    });

                    if (builders != "") {
                        builders = '&builders=' + builders;
                    }

                    numberBed = Number($('#numberOfBedrooms').val());
                    numberBath = Number($('#numberOfBaths').val());
                    numberCars = Number($('#numberOfCars').val());

                    if (numberCars == 0) {
                        numberCars = "";
                    } else {
                        numberCars = '&cars=' + numberCars;
                    }

                    if (numberBath == 0) {
                        numberBath = "";
                    } else {
                        numberBath = '&baths=' + numberBath;
                    }

                    if (numberBed == 0) {
                        numberBed = "";
                    } else {
                        numberBed = '&beds=' + numberBed;
                    }

                    if (storeys == 0) {
                        storeys = "";
                    } else {
                        storeys = '&storeys=' + storeys;
                    }

                    if (typeof lowerValue !== "undefined" &&
                        typeof upperValue !== "undefined" &&
                        lowerValue != null &&
                        upperValue != null) {
                        var minPrice = lowerValue.innerHTML.replace("$", "").replace(",", "");
                        var maxPrice = upperValue.innerHTML.replace("$", "").replace(",", "");
                        if (minPrice != "" && maxPrice != "") {
                            priceRange = minPrice + "-" + maxPrice;
                            if (priceRange != "") {
                                priceRange = 'priceRange=' + priceRange;
                            }
                        }
                    }
         
                    var slider1Value = document.getElementById('slider1-span'),
                    slider11Value = document.getElementById('slider11-span'),
                    slider2Value = document.getElementById('slider2-span'),
                    slider22Value = document.getElementById('slider22-span');

                    if (slider1Value != null && slider11Value != null) {
                        //lotsize
                        var minlotsize = slider1Value.innerHTML.replace("m", "").replace("<sup>2</sup>", "");
                        var maxlotsize = slider11Value.innerHTML.replace("m", "").replace("<sup>2</sup>", "");
                        if (minlotsize != "" && maxlotsize != "") {
                            lotSize = minlotsize + "-" + maxlotsize;
                            if (lotSize != "") {
                                lotSize = '&lotsize=' + lotSize;
                            }
                        }
                    }
                    if (slider2Value != null && slider22Value != null) {
                        //frontage
                        var minfrontage = slider2Value.innerHTML.replace("m", "");
                        var maxfrontage = slider22Value.innerHTML.replace("m", "");
                        if (minfrontage != "" && maxfrontage != "") {
                            frontage = minfrontage + "-" + maxfrontage;
                            if (frontage != "") {
                                frontage = '&frontage=' + frontage;
                            }
                        }
                    }

                    //just before changing the browser url, call gtm tracking code
                    if (dataLayer) {
                        dataLayer.push({
                            'event': 'PlaceMatcherFormSubmit',
                            'eventAction': $elementClicked.data('gtm-event-action'),
                            'eventCategory': $elementClicked.data('gtm-event-category'),
                            'eventLabel': $elementClicked.data('gtm-event-label'),
                            'eventValue': $elementClicked.data('gtm-event-value'),
                            'elementID': $elementClicked.data('gtm-id')
                        });
                    }
                    window.location.href = stockland_module_nationalpropurl + '?' +
                        priceRange +
                        lotSize +
                        frontage +
                        propertyTypes +
                        numberBed +
                        numberBath +
                        numberCars +
                        builders +
                        storeys +
                        isRecommended +
                        lonlat +
                        state +
                        '&query=' +
                        searchStr;
                } else if (ids == "communityTab") {
                    var searchStr = $('#autocompleteSearch').val();
                    if (searchStr == undefined) {
                        searchStr = "";
                    }

                    //just before changing the browser url, call gtm tracking code
                    if (dataLayer) {
                        dataLayer.push({
                            'event': 'PlaceMatcherFormSubmit',
                            'eventAction': $elementClicked.data('gtm-event-action'),
                            'eventCategory': $elementClicked.data('gtm-event-category'),
                            'eventLabel': $elementClicked.data('gtm-event-label'),
                            'eventValue': $elementClicked.data('gtm-event-value'),
                            'elementID': $elementClicked.data('gtm-id')
                        });
                    }
                    window.location.href = stockland_module_nationalcomurl +
                        '?' +
                        features +
                        productTypes +
                        '&numberPark=' +
                        numberPark +
                        '&query=' +
                        searchStr +
                        lonlat +
                        state;
                } else {
                    var searchStr1 = $('#autocompleteSearch').val();
                    if (searchStr1 == undefined) {
                        searchStr1 = "";
                    }

                    //just before changing the browser url, call gtm tracking code
                    if (dataLayer) {
                        dataLayer.push({
                            'event': 'PlaceMatcherFormSubmit',
                            'eventAction': $elementClicked.data('gtm-event-action'),
                            'eventCategory': $elementClicked.data('gtm-event-category'),
                            'eventLabel': $elementClicked.data('gtm-event-label'),
                            'eventValue': $elementClicked.data('gtm-event-value'),
                            'elementID': $elementClicked.data('gtm-id')
                        });
                    }
                    window.location.href = stockland_module_nationalcomurl +
                        '?' +
                        productTypes +
                        '&numberPark=' +
                        numberPark +
                        '&query=' +
                        searchStr1 +
                        //'&isApplySort=false&isSortAsync=true' +
                        lonlat + state;
                }
            });
    }
});
;
jQuery(document).ready(function ($) {
    if ($('#stockland_module_localsearchinputandresults_init').val() === 'true') {
        var numberCars = 0;
        var numberBath = 0;
        var numberBed = 1;
        var propertyTypes = "";
        var builderType = "";
        var designStyles = "";
        var isRecommended = '';
        var priceRange = '';
        var frontage = '';
        var storeys = '';
        var lotSize = '';


        $("div.media a, div.media-body a").hover(
            function () {
                stockland.modules.maps.highlightProperty($(this).attr("arcgisobjectid"));
            },
            function () {
                stockland.modules.maps.unhighlightProperty($(this).attr("arcgisobjectid"));
            }
        );

        $('#builderMultiSelect')
            .change(function (e) {
                if ($('#builderMultiSelect').val() != null) {
                    builderType = $('#builderMultiSelect').val().join();
                    builderType = $.trim(builderType);
                }
            });

        $('#designsMultiSelect')
            .change(function (e) {
                if ($('#designsMultiSelect').val() != null) {
                    designStyles = $('#designsMultiSelect').val().join();
                    designStyles = $.trim(designStyles);
                }
            });

        if ($('#propMultiSelect').val() != null
            && $('#propMultiSelect').val() != "") {
            propertyTypes = $('#propMultiSelect').val().join();
            updateSlider();
        }

        $('#propMultiSelect')
            .change(function (e) {
                if ($('#propMultiSelect').val() != null) {
                    propertyTypes = $('#propMultiSelect').val().join();
                }
                else {
                    propertyTypes = "";
                }
                updateSlider();
                if (propertyTypes === "All" && propertyTypes.indexOf("All") !== -1) {
                    propertyTypes = $('#propMultiSelect').val().join();
                }
            });

        function updateSlider() {
            //call a method to update the price range
            var currentItemId = $('.enquireFormBtn').attr('id');
            var request = $.ajax({
                url: '/public/placematcher/updatelocalpropertytype',
                dataType: 'json',
                data: {
                    'currentItemId': currentItemId,
                    'propertyType': propertyTypes
                },
                success: function (response) {
                    var minPrice = Math.floor(response.MinPrice / 100000) * 100000;
                    var maxPrice = Math.ceil(response.MaxPrice / 100000) * 100000;
                    if (response.MinPrice && response.MaxPrice) {
                        document.getElementById('nonlinear').noUiSlider.updateOptions({
                            range: {
                                'min': minPrice,
                                'max': maxPrice
                            }
                        });
                        document.getElementById('nonlinear').noUiSlider.set([minPrice, maxPrice]);
                    }
                },
                error: function (exception) { }
            });
        }
        updateSlider();

        $('#Any')
            .change(function (e) {
                storeys = "";
                $('#storeyTab')
                    .find('.active')
                    .each(function () {
                        storeys = storeys + " " + $(this).attr('id');
                    });
                storeys = $.trim(storeys);
            });
        $('#One')
            .change(function (e) {

                storeys = "";
                $('#storeyTab')
                    .find('.active')
                    .each(function () {
                        storeys = storeys + " " + $(this).attr('id');
                    });
                storeys = $.trim(storeys);
            });
        $('#two')
            .change(function (e) {

                storeys = "";
                $('#storeyTab')
                    .find('.active')
                    .each(function () {
                        storeys = storeys + " " + $(this).attr('id');
                    });
                storeys = $.trim(storeys);
            });
        $('#threePlus')
            .change(function (e) {
                storeys = "";
                $('#storeyTab')
                    .find('.active')
                    .each(function () {
                        storeys = storeys + " " + $(this).attr('id');
                    });
                storeys = $.trim(storeys);
            });

        $("#searchBtn12, #searchFiltrBtn, #localMobileSearchBtn")
            .click(function (e) {
                var $elementClicked = $(this);

                var searchStr = $('#autocompleteSearch').val();
                if (searchStr == undefined) {
                    searchStr = "";
                }
                e.preventDefault();

                // sort order
                var sortOrder = "default";
                if (sessionStorage.getItem("sortSelection")) {
                    sortOrder = sessionStorage.getItem("sortSelection");
                }

                //*productTypes
                var productTypes = "";
                if (this.id === 'searchBtn12' || this.id === 'localMobileSearchBtn') {
                    if (propertyTypes.length > 0) {
                        productTypes = '&productTypes=' + propertyTypes;
                        productTypes = productTypes.replace(/%20/g, " ");
                    } else {
                        $('#propMultiSelect').find('option').each(function () {
                            productTypes = productTypes + "," + $(this).attr('value');
                        });
                        productTypes = '&productTypes=' + productTypes.substring(1, productTypes.length);
                        productTypes = productTypes.replace(/%20/g, " ");
                    }
                } else {
                    $('#productTypes')
                        .find('.active')
                        .each(function () {
                            if ($(this).attr('id') == 'all') {
                                productTypes = ',all';
                                return false;
                            }
                            productTypes = productTypes + "," + $(this).attr('id');
                            return true;
                        });
                    if (productTypes !== "" && productTypes !== "undefined") {
                        productTypes = productTypes.substring(1, productTypes.length);
                        productTypes = "&productTypes=" + productTypes.replace(/%20/g, " ");
                    } else {
                        productTypes = "";
                    }
                }

                $('#IsRecommended')
                    .find('.active')
                    .each(function () {
                        isRecommended = true;
                        isRecommended = '&isrecommended=' + isRecommended;
                    });

                var builders = '';
                if ($('#builderMultiSelect').val() != null) {
                    builders = $('#builderMultiSelect').val().join();
                }
                if (builders != "") {
                    builders = '&builders=' + builders;
                }

                var designs = '';
                if ($('#designsMultiSelect').val() != null) {
                    designs = $('#designsMultiSelect').val().join();
                }
                if (designs != "") {
                    designs = '&designs=' + designs;
                }

                numberBed = Number($('#numberOfBedrooms').val());
                numberBath = Number($('#numberOfBaths').val());
                numberCars = Number($('#numberOfCars').val());

                if (numberCars === 0 || isNaN(numberCars)) {
                    numberCars = "";
                } else {
                    numberCars = '&cars=' + numberCars;
                }

                if (numberBath === 0 || isNaN(numberBath)) {
                    numberBath = "";
                } else {
                    numberBath = '&baths=' + numberBath;
                }

                if (numberBed === 0 || isNaN(numberBed)) {
                    numberBed = "";
                } else {
                    numberBed = '&beds=' + numberBed;
                }

                if (storeys === 0) {
                    storeys = "";
                } else {
                    storeys = '&storeys=' + storeys;
                }

                if (typeof lowerValue !== "undefined" && typeof upperValue !== "undefined" && lowerValue != null && upperValue != null) {
                    //priceRange
                    var minPrice = lowerValue.innerHTML.replace("$", "").replace(",", "").trim();
                    var maxPrice = upperValue.innerHTML.replace("$", "").replace(",", "").trim();
                    if (minPrice !== "" && maxPrice !== "") {
                        priceRange = minPrice + "-" + maxPrice;
                        if (priceRange !== "") {
                            priceRange = 'pricerange=' + priceRange;
                        }
                    }
                }

                var slider1Value = document.getElementById('slider1-span'),
                    slider11Value = document.getElementById('slider11-span'),
                    slider2Value = document.getElementById('slider2-span'),
                    slider22Value = document.getElementById('slider22-span');

                if (slider1Value != null && slider11Value != null) {
                    //lotsize
                    var minlotsize = slider1Value.innerHTML.replace("m", "").replace("<sup>2</sup>", "").trim();
                    var maxlotsize = slider11Value.innerHTML.replace("m", "").replace("<sup>2</sup>", "").trim();
                    if (minlotsize !== "" && maxlotsize !== "") {
                        lotSize = minlotsize + "-" + maxlotsize;
                        if (lotSize !== "") {
                            lotSize = '&lotsize=' + lotSize;
                        }
                    }
                }

                if (slider2Value != null && slider22Value != null) {
                    //frontage
                    var minfrontage = slider2Value.innerHTML.replace("m", "").trim();
                    var maxfrontage = slider22Value.innerHTML.replace("m", "").trim();
                    if (minfrontage !== "" && maxfrontage !== "") {
                        frontage = minfrontage + "-" + maxfrontage;
                        if (frontage !== "") {
                            frontage = '&frontage=' + frontage;
                        }
                    }
                }

                var leasingarea = '';
                if (typeof silderarealowervalue !== "undefined" && typeof silderareauppervalue !== "undefined" && silderarealowervalue != null && silderareauppervalue != null) {
                    //frontage
                    var minleasingarea = silderarealowervalue.innerHTML.replace("m", "").trim();
                    var maxleasingarea = silderareauppervalue.innerHTML.replace("m", "").trim();
                    if (minleasingarea !== "" && maxleasingarea !== "") {
                        leasingarea = minleasingarea + "-" + maxleasingarea;
                        if (leasingarea !== "") {
                            leasingarea = '&leasingarea=' + leasingarea;
                        }
                    }
                }

                // cml locations
                var cmlLocations = '';
                $('#cmlLocations')
                    .find('.active')
                    .each(function () {
                        cmlLocations = cmlLocations + "," + $(this).attr('id');
                    });
                if (cmlLocations.length > 0) {
                    cmlLocations = '&cmlLocations=' + cmlLocations.substring(1, cmlLocations.length);
                    cmlLocations = cmlLocations.replace(/%20/g, " ");
                } else {
                    cmlLocations = '';
                }

                var leasingpower = '';
                leasingpower = $('input[id=powerradioyes]:checked', '#formradiopower').val();
                if (leasingpower === "on") {
                    leasingpower = '&leasingpower=true';
                } else {
                    leasingpower = '';
                }

                //just before changing the browser url, call gtm tracking code
                if (dataLayer) {
                    dataLayer.push({
                        'event': 'PlaceMatcherFormSubmit',
                        'eventAction': $elementClicked.data('gtm-event-action'),
                        'eventCategory': $elementClicked.data('gtm-event-category'),
                        'eventLabel': $elementClicked.data('gtm-event-label'),
                        'eventValue': $elementClicked.data('gtm-event-value'),
                        'elementID': $elementClicked.data('gtm-id')
                    });
                }
                window.location.href = stockland_module_targetitemurl + '?' +
                    priceRange +
                    lotSize +
                    frontage +
                    numberBed +
                    numberBath +
                    numberCars +
                    builders +
                    designs +
                    storeys +
                    productTypes +
                    isRecommended +
                    leasingarea +
                    cmlLocations +
                    leasingpower +
                    '&sort=' + sortOrder +
                    '&searchString=' + searchStr;
            });
    }
});;
jQuery(document).ready(function ($) {
    if ($('#stockland_module_leasingparking_slider_init').val() == 'true') {
        var nonLinearSlider = document.getElementById('leasing_parking_slider');
        if (nonLinearSlider != null) {
            noUiSlider.create(nonLinearSlider, {
                connect: true,
                behaviour: 'tap',
                start: [stockland_module_min_leasingparkings, stockland_module_max_leasingparkings],
                range: {
                    'min': [stockland_module_min_leasingparkings],
                    'max': [stockland_module_max_leasingparkings]
                },
                format: wNumb({
                    decimals: 0,
                    thousand: ',',
                })
            });
            //end form slider


            // Write the CSS 'left' value to a span.
            function leftValue(handle) {
                return handle.parentElement.style.left;
            }

            silderparkinglowervalue = document.getElementById('lower-leasing-parking');
            silderparkinguppervalue = document.getElementById('upper-leasing-parking');

            var handles = nonLinearSlider.getElementsByClassName('noUi-handle');

            // Display the slider value and how far the handle moved
            // from the left edge of the slider.
            nonLinearSlider.noUiSlider.on('update', function (values, handle) {
                if (!handle) {
                    silderparkinglowervalue.innerHTML = values[handle];
                } else {
                    silderparkinguppervalue.innerHTML = values[handle];
                }
            });
        }
    }
});
;
jQuery(document).ready(function ($) {
    if ($('#stockland_module_leasingarea_slider_init').val() == 'true') {
        var nonLinearSlider = document.getElementById('leasing_area_slider');
        if (nonLinearSlider != null) {
            noUiSlider.create(nonLinearSlider, {
                connect: true,
                behaviour: 'tap',
                start: [stockland_module_min_leasingarea, stockland_module_max_leasingarea],
                range: {
                    'min': [stockland_module_min_leasingarea],
                    'max': [stockland_module_max_leasingarea]
                },
                format: wNumb({
                    decimals: 0,
                    thousand: ',',
                })
            });

            silderarealowervalue = document.getElementById('lower-leasing-area');
            silderareauppervalue = document.getElementById('upper-leasing-area');

            var handles = nonLinearSlider.getElementsByClassName('noUi-handle');

            nonLinearSlider.noUiSlider.on('update', function (values, handle) {
                if (!handle) {
                    silderarealowervalue.innerHTML = values[handle];
                } else {
                    silderareauppervalue.innerHTML = values[handle];
                }
            });
        }
    }
});
;
var stockland = { modules: new Object() };;
jQuery(document).ready(function ($) {
    if ($('#stockland_module_assetmap_init').val() == 'true') {
        stockland.modules.assetmap.init({
            locations: stockland_module_assetmap_locations,
            zoomLevel: Number($('#stockland_module_assetmap_InitialZoomLevel').val()),
            type: $('#stockland_module_assetmap_type').val()
        });
    }
});

(function ($) {

    stockland.modules.assetmap = (function () {
        'use strict';

        //constants
        var MARKER_CLUSTER_PIXELS_Y = 20;
        var MARKER_CLUSTER_PIXELS_X = 20;
        var DEFAULT_LATITUDE = "-25.032664"; //set Australia by default if geoservice is off
        var DEFAULT_LONGITUDE = "134.213582";
        var DEFAULT_ZOOM_LEVEL_NO_GEOLOCATION = 4;
        var DEFAULT_ZOOM_LEVEL_WITH_GEOLOCATION = 10;
        var MAX_DISTANCE = 1000; //get nearest pins within 100km upto 1000km

        var locations = null;
        var options = null;
        var map = null;
        var infowindow = new google.maps.InfoWindow();
        var mapTheme = [{ "featureType": "administrative", "elementType": "labels.text.fill", "stylers": [{ "color": "#444444" }] }, { "featureType": "administrative.locality", "elementType": "labels", "stylers": [{ "visibility": "on" }] }, { "featureType": "landscape", "elementType": "all", "stylers": [{ "color": "#f2f2f2" }, { "visibility": "simplified" }] }, { "featureType": "poi", "elementType": "all", "stylers": [{ "visibility": "on" }] }, { "featureType": "poi", "elementType": "geometry", "stylers": [{ "visibility": "simplified" }, { "saturation": "-65" }, { "lightness": "45" }, { "gamma": "1.78" }] }, { "featureType": "poi", "elementType": "labels", "stylers": [{ "visibility": "off" }] }, { "featureType": "poi", "elementType": "labels.icon", "stylers": [{ "visibility": "off" }] }, { "featureType": "road", "elementType": "all", "stylers": [{ "saturation": -100 }, { "lightness": 45 }] }, { "featureType": "road", "elementType": "labels", "stylers": [{ "visibility": "on" }] }, { "featureType": "road", "elementType": "labels.icon", "stylers": [{ "visibility": "off" }] }, { "featureType": "road.highway", "elementType": "all", "stylers": [{ "visibility": "simplified" }] }, { "featureType": "road.highway", "elementType": "labels.icon", "stylers": [{ "visibility": "off" }] }, { "featureType": "road.arterial", "elementType": "labels.icon", "stylers": [{ "visibility": "off" }] }, { "featureType": "transit.line", "elementType": "geometry", "stylers": [{ "saturation": "-33" }, { "lightness": "22" }, { "gamma": "2.08" }] }, { "featureType": "transit.station.airport", "elementType": "geometry", "stylers": [{ "gamma": "2.08" }, { "hue": "#ffa200" }] }, { "featureType": "transit.station.airport", "elementType": "labels", "stylers": [{ "visibility": "off" }] }, { "featureType": "transit.station.rail", "elementType": "labels.text", "stylers": [{ "visibility": "off" }] }, { "featureType": "transit.station.rail", "elementType": "labels.icon", "stylers": [{ "visibility": "simplified" }, { "saturation": "-55" }, { "lightness": "-2" }, { "gamma": "1.88" }, { "hue": "#ffab00" }] }, { "featureType": "water", "elementType": "all", "stylers": [{ "color": "#bbd9e5" }, { "visibility": "simplified" }] }];
        var projection;
        var allMarkers = [];
        var currentPosition;

        function configureMarkerEvents(marker, itemId, count) {

            google.maps.event.addListener(marker, 'click', function (event) {

                if ($(".fullScreen div div").text() == "Expand map") {
                    $(".fullScreen").click();
                }
                if (count > 1) {
                    var latLng = marker.getPosition();
                    map.setCenter(latLng);
                    map.setZoom(map.getZoom() + 1);
                }
                else {
                    $.ajax({
                        method: "GET",
                        url: '/public/map/businessassetcard?businessAssetPageId=' + itemId
                    }).done(function (data) {
                        infowindow.setContent(data);
                        infowindow.open(map, marker);
                        infowindow.setZIndex(9999);
                    }).always(function (data) {

                    });
                }
            });
        }

        function configureFullScreeen(map) {
            var fullScreenButton = fullScreenControl(map, "Expand map", "Exit map");
            map.controls[google.maps.ControlPosition.TOP_RIGHT].push(fullScreenButton);
        }

        function googleMapButton(text, className) {
            "use strict";
            var controlDiv = document.createElement("div");
            controlDiv.className = className;
            controlDiv.index = 1;
            controlDiv.style.padding = "10px";
            // set CSS for the control border.
            var controlUi = document.createElement("div");
            controlUi.style.backgroundColor = "rgb(255, 255, 255)";
            controlUi.style.color = "#565656";
            controlUi.style.cursor = "pointer";
            controlUi.style.textAlign = "center";
            controlUi.style.boxShadow = "rgba(0, 0, 0, 0.298039) 0px 1px 4px -1px";
            controlDiv.appendChild(controlUi);
            // set CSS for the control interior.
            var controlText = document.createElement("div");
            controlText.style.fontFamily = "Roboto,Arial,sans-serif";
            controlText.style.fontSize = "11px";
            controlText.style.paddingTop = "8px";
            controlText.style.paddingBottom = "8px";
            controlText.style.paddingLeft = "8px";
            controlText.style.paddingRight = "8px";
            controlText.innerHTML = text;
            controlUi.appendChild(controlText);
            $(controlUi).on("mouseenter", function () {
                controlUi.style.backgroundColor = "#fff";
                controlUi.style.color = "#000";
            });
            $(controlUi).on("mouseleave", function () {
                controlUi.style.backgroundColor = "#fff";
                controlUi.style.color = "#565656";
            });
            return controlDiv;
        }

        function fullScreenControl(map, enterFull, exitFull) {
            "use strict";

            var controlDiv = googleMapButton(enterFull, "fullScreen");
            var fullScreen = false;
            var interval;
            var googleMapDiv = map.getDiv();
            var mapDiv = document.getElementById("mapDiv");
            var divStyle = googleMapDiv.style;
            var originalPos = divStyle.position;
            var originalWidth = divStyle.width;
            var originalHeight = divStyle.height;
            // ie8 hack
            if (originalWidth === "") {
                originalWidth = divStyle.style.width;
            }
            if (originalHeight === "") {
                originalHeight = divStyle.style.height;
            }
            var originalTop = divStyle.top;
            var originalLeft = divStyle.left;
            var originalZIndex = divStyle.zIndex;
            var bodyStyle = document.body.style;
            if (document.body.runtimeStyle) {
                bodyStyle = document.body.runtimeStyle;
            }
            var originalOverflow = bodyStyle.overflow;
            controlDiv.goFullScreen = function () {
                var center = map.getCenter();
                mapDiv.style.position = "fixed";
                mapDiv.style.width = "100%";
                mapDiv.style.height = "100%";
                mapDiv.style.top = "0";
                mapDiv.style.left = "0";
                mapDiv.style.zIndex = "100";
                $(mapDiv).removeClass("col-sm-12");
                document.getElementById("mapDisclaimerID").style.height = "1000px";

                googleMapDiv.style.position = "relative";
                googleMapDiv.style.width = "100%";
                googleMapDiv.style.height = "98%";
                googleMapDiv.style.top = "0";
                googleMapDiv.style.left = "0";
                document.body.style.overflow = "hidden";
                $(controlDiv).find("div div").html(exitFull);
                fullScreen = true;
                google.maps.event.trigger(map, "resize");
                map.setCenter(center);
                map.setOptions({ draggable: true });

                interval = setInterval(function () {
                    if (mapDiv.style.position !== "fixed") {
                        mapDiv.style.position = "fixed";
                        google.maps.event.trigger(map, "resize");
                    }
                    if (googleMapDiv.style.position !== "relative") {
                        googleMapDiv.style.position = "relative";
                        google.maps.event.trigger(map, "resize");
                    }
                }, 100);
            };
            controlDiv.exitFullScreen = function () {
                var center = map.getCenter();
                if (originalPos === "") {
                    googleMapDiv.style.position = "relative";
                }
                else {
                    googleMapDiv.style.position = originalPos;
                }

                mapDiv.style.position = "relative";
                mapDiv.style.width = "100%";
                mapDiv.style.height = "100%";
                mapDiv.style.top = "0px";
                mapDiv.style.left = "0px";
                mapDiv.style.zIndex = "10";
                $(mapDiv).addClass("col-sm-12");
                document.getElementById("mapDisclaimerID").style.height = "18px";

                googleMapDiv.style.width = originalWidth;
                googleMapDiv.style.height = originalHeight;
                googleMapDiv.style.top = originalTop;
                googleMapDiv.style.left = originalLeft;
                googleMapDiv.style.zIndex = originalZIndex;

                document.body.style.overflow = originalOverflow;
                $(controlDiv).find("div div").html(enterFull);
                fullScreen = false;
                google.maps.event.trigger(map, "resize");
                map.setCenter(center);
                map.setOptions({ draggable: !isDeviceMobileOrTablet() });
                clearInterval(interval);
            };
            // setup the click event listener

            google.maps.event.addDomListener(controlDiv, "click", function () {
                if (!fullScreen) {
                    controlDiv.goFullScreen();
                }
                else {
                    controlDiv.exitFullScreen();
                }
            });
            return controlDiv;
        }

        function initGeolocation() {
            stockland.modules.maps.getUserGeoLocation(function (position) {
                if (position) {
                    currentPosition = new google.maps.LatLng(position.latitude, position.longitude);

                    map.setCenter(currentPosition);
                    map.setZoom(DEFAULT_ZOOM_LEVEL_WITH_GEOLOCATION);

                    var positionMarker = new google.maps.Marker({
                        position: map.getCenter(),
                        icon: {
                            path: google.maps.SymbolPath.CIRCLE,
                            scale: 5
                        },
                        draggable: !isDeviceMobileOrTablet(),
                        map: map
                    });
                    
                    fitMarkers();              
                }
                else {
                    handleLocationError(true, map.getCenter());
                }
            });
        }

        function handleLocationError(browserHasGeolocation, pos) {
            if (browserHasGeolocation) {
                //console.log('Error: The Geolocation service failed. Use Australia location');
            }
            else {
               // console.log('Error: Your browser doesn\'t support geolocation. Use Australia location');
            }
            var pos = {
                lat: DEFAULT_LATITUDE,
                lng: DEFAULT_LONGITUDE,
                zoom: DEFAULT_ZOOM_LEVEL_NO_GEOLOCATION
            };
            map.setZoom(DEFAULT_ZOOM_LEVEL_NO_GEOLOCATION);

        }

        function getMarkersDistance(latlng, locationlatlng) {
            var distance = google.maps.geometry.spherical.computeDistanceBetween(latlng, locationlatlng);
            var distanceInKM = distance / 1000;
            //console.log(distanceInKM);
            return distanceInKM;
        }

        function fitMarkers() {
            var bounds = new google.maps.LatLngBounds();
            var markersFound = [];
            var i = 0;
            var distanceCounter = 50;
            var text = "";
            while (markersFound.length < 3 && distanceCounter <= MAX_DISTANCE) {
                //get all markers within distance
                for (var i = 0; i < locations.length; i++) {
                    var pos = new google.maps.LatLng(locations[i].latitude, locations[i].longitude);
                    var distance = getMarkersDistance(pos, currentPosition);
                    if (distance < distanceCounter) {
                        bounds.extend(pos);
                        markersFound.push(locations[i]);
                    }
                }

                if (markersFound.length < 3) {
                    if (distanceCounter == 50) {
                        distanceCounter += 50;
                    }
                    else if (distanceCounter == 100) {
                        distanceCounter += 100;
                    }
                    else if (distanceCounter == 200) {
                        distanceCounter += 300;
                    }
                    else {
                        distanceCounter += 100;
                    }
                    if (distanceCounter < MAX_DISTANCE) {
                        markersFound = [];
                    }
                    else if (distanceCounter == MAX_DISTANCE) {
                        break;
                    }
                }
            }
            if (markersFound.length > 0 && !options.type == "") {
                text = (markersFound.length).toString() + " " + options.type + " within " + distanceCounter.toString() + " km";
                //configureNearbyAssets(text);
            }

            map.fitBounds(bounds);
        }

        function getMarkerPoint(latitude, longitude, itemId, mapIcon, multipleAssetTypeIcon) {

            var bounds = map.getBounds();

            if (projection === undefined) {
                projection = map.getProjection();
            }

            if (projection !== undefined) {
                var topRight = projection.fromLatLngToPoint(bounds.getNorthEast());
                var bottomLeft = projection.fromLatLngToPoint(bounds.getSouthWest());
                var scale = Math.pow(2, map.getZoom());
                var worldPoint = projection.fromLatLngToPoint(new google.maps.LatLng(latitude, longitude));
                return {
                    point: new google.maps.Point((worldPoint.x - bottomLeft.x) * scale, (worldPoint.y - topRight.y) * scale),
                    latitude: latitude,
                    longitude: longitude,
                    itemId: itemId,
                    mapIcon: mapIcon,
                    multipleAssetTypeIcon: multipleAssetTypeIcon
                };
            }
        }

        function createClusterdMarker(markers, bounds) {
            var lat = 0;
            var lng = 0;
            var containsTwoOrMoreAssetTypes = false;
            var itemId = "";

            // Take the first icon as the default icon
            var mapIcon = markers.length > 0 ? markers[0].mapIcon : '';
            for (var i = 0; i < markers.length; i++) {
                lat += markers[i].latitude;
                lng += markers[i].longitude;
                // If there is multiple icon types then there must be multiple asset types, hence use a multiple asset type icon
                mapIcon = mapIcon != markers[i].mapIcon ? markers[i].multipleAssetTypeIcon : mapIcon;
            }

            lat /= markers.length;
            lng /= markers.length;

            var marker = new google.maps.Marker({
                position: new google.maps.LatLng(lat, lng),
                map: map,
                label: { text: (markers.length > 0) ? ((markers.length <= 9) ? (markers.length).toString() : "+") : '' },
                icon: mapIcon,
                visible: true
            });

            allMarkers.push(marker);

            //display placematcher card
            if (markers.length == 1) {
                itemId = markers[0].itemId;
            }
            configureMarkerEvents(marker, itemId, markers.length);

            if (bounds) {
                bounds.extend(marker.position);
            }

        }

        function initCluster() {
            var clusteredMarkers = [];
            if (locations != undefined) {
                for (var i = 0; i < locations.length; i++) {
                    var markerPoint = getMarkerPoint(locations[i].latitude, locations[i].longitude, locations[i].itemId, locations[i].mapIcon, locations[i].multipleAssetTypeIcon);

                    if (markerPoint !== undefined) {
                        for (var j = 0; j < clusteredMarkers.length; j++) {
                            var markerAddedToCluster = false;
                            for (var k = 0; k < clusteredMarkers[j].length; k++) {
                                var diffY = (markerPoint.point.y - clusteredMarkers[j][k].point.y);
                                var diffX = (markerPoint.point.x - clusteredMarkers[j][k].point.x);
                                diffY = (diffY > 0) ? diffY : diffY * -1;
                                diffX = (diffX > 0) ? diffX : diffX * -1;
                                if (diffY < MARKER_CLUSTER_PIXELS_Y && diffX < MARKER_CLUSTER_PIXELS_X) {
                                    clusteredMarkers[j].push(markerPoint);
                                    markerAddedToCluster = true;
                                    break;
                                }
                            }
                            if (markerAddedToCluster) {
                                break;
                            }
                        }
                        if (!markerAddedToCluster) {
                            clusteredMarkers.push([markerPoint]);
                            markerAddedToCluster = true;
                        }
                    }
                }

                var bounds = new google.maps.LatLngBounds();
                for (var i = 0; i < clusteredMarkers.length; i++) {
                    createClusterdMarker(clusteredMarkers[i], bounds);
                }
            }
        }

        function resetMarkers() {
            for (var i = 0; i < allMarkers.length; i++) {
                allMarkers[i].setMap(null);
            }
        }

        function configureNearbyAssets(text) {
            var nearbyAssets = configureMapOverlay(text);

            map.controls[google.maps.ControlPosition.TOP_RIGHT].push(nearbyAssets);
        }

        function configureMapOverlay(text) {
            var controlUI = document.createElement('div');
            controlUI.className = "service-box col-sm-4 clearfix";

            var controlText = document.createElement('h6');
            controlText.innerHTML = text;

            controlUI.appendChild(controlText);

            return controlUI;
        }

        return {
            init: function (mapOptions) {
                options = mapOptions;
                locations = mapOptions.locations;

                map = new google.maps.Map(document.getElementById('googleMap'), {
                    zoom: mapOptions.zoomLevel,
                    center: new google.maps.LatLng(DEFAULT_LATITUDE, DEFAULT_LONGITUDE),
                    mapTypeId: google.maps.MapTypeId.ROADMAP,
                    scrollwheel: false,
                    styles: mapTheme,
                    draggable: !isDeviceMobileOrTablet()
                });
                initGeolocation();
                configureFullScreeen(map);

                google.maps.event.addListenerOnce(map, "projection_changed", function () {
                    projection = map.getProjection();
                    initCluster();
                });

                map.addListener('zoom_changed', function () {
                    resetMarkers();
                    projection = map.getProjection();
                    initCluster();
                });

                // Legend only required for Leasing and Our Portfolio and only for desktop
                if ((window.location.pathname.toLowerCase() == '/leasing' || window.location.pathname.toLowerCase() == '/investor-centre/our-portfolio') && $(window).width() > 1200) {
                    var legend = document.getElementById('legend');
                    map.controls[google.maps.ControlPosition.LEFT_BOTTOM].push(legend);
                    legend.style.display = "";
                }
            }
        };
    }());

})(jQuery);;
jQuery(document).ready(function ($) {
    if ($("div.module-header").length == 0)
        return;
	var globalSearchResultItemUrl = $("#globalSearchResultItemUrl").val();
	var currentSitecoreItemId = $("#currentSitecoreItemId").val();
	var currentSitecoreItemIdGuid = $("#currentSitecoreItemIdGuid").val();
	var urlauto = $("#urlauto").valueOf();

	$(window).on("pageshow", function () {
		$("#globalautocomplete").val("");
		$("#globalautocompletemob").val("");
	});


	$("#globalautocomplete")
		.click(function () {
			var search = $("#globalautocomplete").val();
			if (search == "Please type something to search") {
				$("#globalautocomplete").val("");
			}
			if (!$("#globalautocomplete").val() || $("#globalautocomplete").val() == "") {
				$("#globalautocomplete").attr("placeholder", "Start typing");
			}
		});

	function searchAction() {

		var search = $("#globalautocomplete").val();

		if (search.trim() !== "" && search != "Please type something to search" && search.replace(/ /g, '').length > 2) {
			var existingItemId = currentSitecoreItemIdGuid;

			var loc = globalSearchResultItemUrl;
			var querystring = '?currentItemId=' + currentSitecoreItemId + '&searchTerm=' + encodeURIComponent(search);
			$("#globalautocomplete").val("");
			window.location.href = loc + querystring;
		}
		if (search.trim() == "") {
			if($("#searchBtn").parent().parent('.open').length) {
				$("#globalautocomplete").val("Please type something to search");
			}
			if ($("#searchBtnDesktop").parent().parent('.open').length) {
				$("#globalautocomplete").val("Please type something to search");
			}
		}
		
		if (search.replace(/ /g, '').length <= 2 && search.trim().length != 0) {

			$("#globalautocomplete").val("");
			$("#globalautocomplete").attr("placeholder", "Please enter at least 3 characters to initiate a search");
		}
	}

	$('#globalautocomplete').keydown(function (e) {
		if (e.keyCode == 13) {
			try {
				e.preventDefault();
				searchAction();

			} catch (e) {

			}
		}
	});

	function searchActionMobile() {
		var search = $("#globalautocompletemob").val();

		if (search.trim() !== "" && search != "Please type something to search" && search.replace(/ /g, '').length > 2) {

			var existingItemId = currentSitecoreItemIdGuid;
			var loc = globalSearchResultItemUrl;
			window.location.href = loc + '?currentItemId=' + existingItemId + '&searchTerm=' + encodeURIComponent(search);
		}
		if (search.trim() == "") {
			if ($("#searchBtn").parent().parent('.open').length) {
				$("#globalautocompletemob").val("Please type something to search");
				document.getElementById("globalautocompletemob").style.paddingLeft = "5px";
			}
			if ($("#searchBtnDesktop").parent().parent('.open').length) {
				$("#globalautocompletemob").val("Please type something to search");
				document.getElementById("globalautocompletemob").style.paddingLeft = "5px";
			}
		}
		if (search.replace(/ /g, '').length <= 2 && search.trim().length != 0) {

			$("#globalautocompletemob").val("");
			$("#globalautocompletemob").attr("placeholder", "Please enter at least 3 characters to initiate a search");
		}
	}

	$('#globalautocompletemob').keydown(function (e) {
		if (e.keyCode == 13) {
			try {
				e.preventDefault();
				searchActionMobile();
			}
			catch (e) {

			}
		}
	});


	$("#searchBtn .icon-search").click(function (e) {
		try {

			e.preventDefault();

			//console.log('from search button');

			$(".navbar-nav > li.enquiry .close").click();

			var mobSearch = $(this).parents('#mobile-search-container');

			if (mobSearch.length > 0) {
				searchActionMobile();
			} else {
				searchAction();
			}

		} catch (e) {

		}
	});

	$(".brand2023-search-button").click(function (e) {
		try {

			e.preventDefault();

			$(".navbar-nav > li.enquiry .close").click();

			var mobSearch = $(this).parents('#mobile-search-container');

			if (mobSearch.length > 0) {
				searchActionMobile();
			} else {
				searchAction();
			}

		} catch (e) {

		}
	});

	$(".brand2023-search-button .brand2023-search").click(function (e) {
		try {

			e.preventDefault();

			$(".navbar-nav > li.enquiry .close").click();

			var mobSearch = $(this).parents('#mobile-search-container');

			if (mobSearch.length > 0) {
				searchActionMobile();
			} else {
				searchAction();
			}

		} catch (e) {

		}
	});

	$("#searchBtnDesktop .icon-search").click(function (e) {
		try {

			e.preventDefault();

			$(".navbar-nav > li.enquiry .close").click();

			var mobSearch = $(this).parents('#mobile-search-container');

			if (mobSearch.length > 0) {
				searchActionMobile();
			} else {
				searchAction();
			}

		} catch (e) {

		}
	});
	$(".brand2023-header #searchBtnDesktop").click(function (e) {
		try {
			e.preventDefault();
			if ($("#globalautocomplete").length && $("#globalautocomplete").val().trim() != "") {
				var mobSearch = $(this).parents('#mobile-search-container');
				if (mobSearch.length > 0) {
					searchActionMobile();
				} else {
					searchAction();
				}
			} 
		} catch (e) {

		}
	});
	//Auto Complete Processing
	$(".autocomplete_class")
	.autocomplete({
		source: function (request, response) {
			//console.log(urlauto);
			$.ajax({
				url: urlauto,
				data: { searchTerm: request.term },
				dataType: 'json',
				success: function (data) {
					//console.log(data);
					response($.map(data,
						function (item) {
							return {
								label: item.Label,
								value: item.Value
							}
						}));
				},
				error: function (exception) {  }
			});
		},
		select: function (event, ui) {
			AutoCompleteSelectHandler(event, ui)
		},
		minLength: 3,
		open: function (result) {
			if (navigator.userAgent.match(/(iPod|iPhone|iPad)/)) {
				$('.ui-autocomplete').off('menufocus hover mouseover');
			}
		}
	});

	function AutoCompleteSelectHandler(event, ui) {
		var globalSearchResultItemUrl = $("#globalSearchResultItemUrl").val();
		var currentSitecoreItemId = $("#currentSitecoreItemId").val();
		var selectedObj = ui.item;
		var loc = globalSearchResultItemUrl;
		var querystring = '?currentItemId=' + currentSitecoreItemId + '&searchTerm=' + encodeURIComponent(selectedObj.value);
		$("#globalautocomplete").val("");
		window.location.href = loc + querystring;
	};

});;
jQuery(document).ready(function ($) {
        $('.multiple-items').slick({

            dots: true,
            arrows: true,
            autoplay: false,
            infinite: true,
            speed: 300,
            slidesToShow: 3,
            slidesToScroll: 3,
            responsive: [
                            {
                                breakpoint: 1024,
                                settings: {
                                    slidesToShow: 2,
                                    slidesToScroll: 2,
                                    infinite: true,
                                    dots: true
                                }
                            },
                            {
                                breakpoint: 600,
                                settings: {
                                    arrows: true,
                                    slidesToShow: 2,
                                    slidesToScroll: 2
                                }
                            },
                            {
                                breakpoint: 480,
                                settings: {
                                    infinite: true,
                                    arrows: true,
                                    centerMode: true,
                                    centerPadding: '0px',
                                    slidesToShow: 1
                                }
                            }
                            // You can unslick at a given breakpoint now by adding:
                            // settings: "unslick"
                            // instead of a settings object
            ]
        });
    });;
(function ($) {
    stockland.modules.maps = (function () {
        'use strict';

        // constants
        var ASSET_VIEW_ZOOM_LEVEL = 7;
        var HIDE_FEATURES_ZOOM_LEVEL = 16;
        var MARKER_CLUSTER_PIXELS_Y = 30;
        var MARKER_CLUSTER_PIXELS_X = 30;

        // Private Variables
        var propertyPopupSrc = '';
        var assetPopupSrc = '';
        var options = null;
        var map = null;
        var arcGisResultSet = null;
        var currentZoomLevel = -1;
        var activeProperties = null;
        var availableProperties = null;
        var allProperties = [];
        var mapPropertyNumbers = null;
        var isMapConfigured = false;
        var isProductLevel = true;
        var infowindow = new google.maps.InfoWindow();

        var myOptions = {
            disableAutoPan: true,
            maxWidth: 0,
            alignBottom: true,
            pixelOffset: new google.maps.Size(-140, -35),
            boxStyle: {
            },
            closeBoxMargin: "0px 0px 0px 0px",
            closeBoxURL: "https://www.google.com/intl/en_us/mapfiles/close.gif",
            infoBoxClearance: new google.maps.Size(1, 1),
            pane: "floatPane",
            enableEventPropagation: true
        };
        InfoBox.prototype.windowState = 'hidden';// states: hidden click hover
        var infobox = new InfoBox(myOptions);
        google.maps.event.addListener(infobox, 'closeclick', function () {
            infobox.windowState = 'hidden';
        });


        var allMarkers = [];
        var allAssetMarkers = [];
        var isActiveProperty = false;
        var projection;
        var assets = null;
        var selectedProperty = null;
        var highlightedPropertyObjectId = null;
        var currentUserLocation = null;

        var styles = {
            availableProperty: {
                layerName: "Products_01",
                fillColor: '#f7b87d',
                fillOpacity: 1,
                strokeColor: '#dc6f23',
                strokeWeight: 2,
                zIndex: 103,
                strokeOpacity: 1,
                clickable: true
            },
            unavailableProperty: {
                layerName: "",
                fillColor: '#f2f2f2',
                fillOpacity: 1,
                strokeColor: '#97a1a6',
                strokeWeight: 0.5,
                zIndex: 101,
                strokeOpacity: 1,
                clickable: false
            },
            activeProperty: {
                layerName: "",
                fillColor: '#dc6f23',
                fillOpacity: 1,
                strokeColor: '#9a4e18',
                strokeWeight: 2,
                zIndex: 101,
                strokeOpacity: 1,
                clickable: true
            },
            leasingProperty: {
                layerName: "Products_01",
                fillColor: '#ffeccc',
                fillOpacity: 1,
                strokeColor: '#d0b095',
                strokeWeight: 1,
                zIndex: 103,
                strokeOpacity: 1,
                clickable: false
            },
            mouseOverProperty: {
                layerName: "",
                fillColor: '#dc6f23',
                fillOpacity: 1,
                strokeColor: '#9a4e18',
                strokeWeight: 2,
                zIndex: 101,
                strokeOpacity: 1,
                clickable: true
            },
            hidden: {
                layerName: "",
                fillColor: '#ffffff',
                fillOpacity: 0,
                strokeColor: '#ffffff',
                strokeWeight: 0,
                zIndex: -1,
                strokeOpacity: 0,
                clickable: false
            },
            road: {
                layerName: "Roads",
                fillColor: '#ffffff',
                fillOpacity: 1,
                strokeColor: '#97a1a6',
                strokeWeight: 0.5,
                zIndex: 98,
                strokeOpacity: 1,
                clickable: false
            },
            roadNames: {
                layerName: "RoadsName",
                fillColor: '#ffffff',
                fillOpacity: 1,
                strokeColor: '#ffffff',
                strokeWeight: 0.5,
                zIndex: 100,
                strokeOpacity: 1,
                clickable: false
            },
            water: {
                layerName: "Water",
                fillColor: '#bbd9e4',
                fillOpacity: 1,
                strokeColor: '#bbd9e4',
                strokeWeight: 0.0,
                zIndex: 101,
                strokeOpacity: 1,
                clickable: false
            },
            nature: {
                layerName: "NatureStrip",
                fillColor: '#b6da9f',
                fillOpacity: 1,
                strokeColor: '#b6da9f',
                strokeWeight: 0.0,
                zIndex: 99,
                strokeOpacity: 1,
                clickable: false
            },
            parks: {
                layerName: "Park",
                fillColor: '#b6da9f',
                fillOpacity: 1,
                strokeColor: '#b6da9f',
                strokeWeight: 0.0,
                zIndex: 100,
                strokeOpacity: 1,
                clickable: false
            },
            outdoorFeatures: {
                layerName: "OutdoorFeatures",
                fillColor: '#696969',
                fillOpacity: .3,
                strokeColor: '#696969',
                strokeWeight: 0.2,
                zIndex: 109,
                strokeOpacity: 1,
                clickable: false
            },
            building: {
                layerName: "MiscBuildings",
                fillColor: '#e0e0e0',
                fillOpacity: 1,
                strokeColor: '#97a1a6',
                strokeWeight: 0.5,
                zIndex: 102,
                strokeOpacity: 1,
                clickable: false
            },
            assetBase: {
                layerName: "BaseAsset",
                fillColor: '#CCDBE2',
                fillOpacity: 1,
                strokeColor: '#3882A2',
                strokeWeight: 2,
                zIndex: 90,
                strokeOpacity: 1,
                clickable: false
            },
            stage: {
                layerName: "Stage",
                fillColor: '#CCDBE2',
                fillOpacity: 1,
                strokeColor: '#3882A2',
                strokeWeight: 2,
                zIndex: 90,
                strokeOpacity: 1,
                clickable: false
            }

        };
        var mapTheme = [
            {
                "featureType": "administrative",
                "elementType": "labels.text.fill",
                "stylers": [{ "color": "#444444" }]
            },
            {
                "featureType": "administrative.locality",
                "elementType": "labels",
                "stylers": [{ "visibility": "on" }]
            },
            {
                "featureType": "landscape",
                "elementType": "all",
                "stylers": [{ "color": "#f2f2f2" }, { "visibility": "simplified" }]
            }, { "featureType": "poi", "elementType": "all", "stylers": [{ "visibility": "on" }] },
            {
                "featureType": "poi",
                "elementType": "geometry",
                "stylers": [
                    { "visibility": "simplified" }, { "saturation": "-65" }, { "lightness": "45" },
                    { "gamma": "1.78" }
                ]
            }, { "featureType": "poi", "elementType": "labels", "stylers": [{ "visibility": "off" }] },
            { "featureType": "poi", "elementType": "labels.icon", "stylers": [{ "visibility": "off" }] },
            {
                "featureType": "road",
                "elementType": "all",
                "stylers": [{ "saturation": -100 }, { "lightness": 45 }]
            },
            { "featureType": "road", "elementType": "labels", "stylers": [{ "visibility": "on" }] },
            { "featureType": "road", "elementType": "labels.icon", "stylers": [{ "visibility": "off" }] },
            { "featureType": "road.highway", "elementType": "all", "stylers": [{ "visibility": "simplified" }] },
            { "featureType": "road.highway", "elementType": "labels.icon", "stylers": [{ "visibility": "off" }] },
            { "featureType": "road.arterial", "elementType": "labels.icon", "stylers": [{ "visibility": "off" }] },
            {
                "featureType": "transit.line",
                "elementType": "geometry",
                "stylers": [{ "saturation": "-33" }, { "lightness": "22" }, { "gamma": "2.08" }]
            }, {
                "featureType": "transit.station.airport",
                "elementType": "geometry",
                "stylers": [{ "gamma": "2.08" }, { "hue": "#ffa200" }]
            }, {
                "featureType": "transit.station.airport",
                "elementType": "labels",
                "stylers": [{ "visibility": "off" }]
            },
            {
                "featureType": "transit.station.rail",
                "elementType": "labels.text",
                "stylers": [{ "visibility": "off" }]
            },
            {
                "featureType": "transit.station.rail",
                "elementType": "labels.icon",
                "stylers": [
                    { "visibility": "simplified" }, { "saturation": "-55" }, { "lightness": "-2" },
                    { "gamma": "1.88" },
                    { "hue": "#ffab00" }
                ]
            }, {
                "featureType": "water",
                "elementType": "all",
                "stylers": [{ "color": "#bbd9e5" }, { "visibility": "simplified" }]
            }
        ];

        // Private Functions

        function createMap(gmapsOptions) {
            map = new google.maps.Map(document.getElementById("googleMap"), gmapsOptions);

            if (options.masterPlanServiceURL) {
                var layer = new gmaps.ags.Layer(options.masterPlanServiceURL);
                var params = {
                    returnGeometry: true,
                    where:
                        "Layer IN ('Products_00', 'Products_01', 'Products_02', 'Products_03', 'Products_04', 'Roads', 'Water', 'NatureStrip', 'Park', 'OutdoorFeatures', 'MiscBuildings', 'BaseAsset', 'Stage')",
                    outFields: ["OBJECTID", "Layer"]
                };
                layer.query(params, configureMapLayers);

            } else {
                //drop pin for retail shopping centre
                var marker = "";
                marker = new google.maps.Marker({
                    position: new google.maps.LatLng(options.latitude, options.longitude),
                    map: map
                });
            }

            map.addListener('zoom_changed', mapZoomChanged);

            google.maps.event.addListener(map,
                'click',
                function (event) {
                    showLatLong(event.latLng);
                });

            configureFullScreeen(map);
            configureAssetFeature(map, options.assetFeatureItems, options.poiItems);
            if (options.mapOverlay) {
                configureAssetFilter(map);
            }

            if ($(window).width() <= 435) {
                if (document.getElementById("infoPanel")) {
                    document.getElementById("infoPanel").style.display = "none";
                    document.getElementById("googleMap").style.paddingTop = "100%";
                }
            } else {
                if (document.getElementById("infoPanel")) {
                    document.getElementById("infoPanel").style.display = "block";
                    document.getElementById("googleMap").style.height = "380px";
                }
            }
        }

        function configureArrays() {
            if (options.activeProperties) {
                activeProperties = [];
                for (var i = 0, l = options.activeProperties.length; i < l; i++) {
                    if (options.activeProperties[i]) {
                        activeProperties['o' + options.activeProperties[i]] = true;
                        isActiveProperty = true;
                    }
                }
            }
            if (options.availableProperties) {
                availableProperties = [];
                // console.log(options.availableProperties);
                for (var i = 0, l = options.availableProperties.length; i < l; i++) {
                    if (options.availableProperties[i]) {
                        availableProperties['o' + options.availableProperties[i]] = true;
                    }
                }
            }
            if (options.mapPropertyNumbers && options.enableTestMode) {
                mapPropertyNumbers = {};
                for (var i = 0, l = options.mapPropertyNumbers.length; i < l; i++) {
                    mapPropertyNumbers['o' + options.mapPropertyNumbers[i].ArcGISObjectId] =
                        options.mapPropertyNumbers[i].PropertyNumber;
                }
            }
        }

        function configureMapLayers(resultSet) {
            arcGisResultSet = resultSet;
            var features = resultSet.features;

            if (options.enableTestMode) {
                styles.unavailableProperty.clickable = true;
            }

            if (features != null) {
                for (var i = 0, l = features.length; i < l; i++) {
                    //get the asset data from &quot;Website&quot;
                    if (Object.prototype.toString.call(features[i].geometry) !== '[object Array]') {
                        continue;
                    }
                    if (isProductLevel) {
                        configureProductLevelFeature(features[i]);
                    } else {
                        configureAssetLevelFeature(features[i]);
                    }
                }
            }
            isMapConfigured = true;
        }

        function configureProductLevelFeature(feature) {
            var attribs = feature.attributes;
            var geometry = feature.geometry[0]; //V3 supports multiple rings, so should have only 1 element
            switch (attribs.Layer) {
                case styles.availableProperty.layerName:
                    var propertyStyle = getPropertyStyle(attribs.OBJECTID);
                    configureShape(geometry,
                        attribs,
                        propertyStyle,
                        (propertyStyle == styles.availableProperty ||
                            propertyStyle == styles.activeProperty ||
                            options.enableTestMode));
                    break;
                case styles.road.layerName:
                    configureShape(geometry, attribs, styles.road, false);
                    break;
                case styles.roadNames.layerName:
                    configureShape(geometry, attribs, styles.roadNames, false);
                    break;
                case styles.water.layerName:
                    configureShape(geometry, attribs, styles.water, false);
                    break;
                case styles.nature.layerName:
                    configureShape(geometry, attribs, styles.nature, false);
                    break;
                case styles.parks.layerName:
                    configureShape(geometry, attribs, styles.parks, false);
                    break;
                case styles.outdoorFeatures.layerName:
                    configureShape(geometry, attribs, styles.outdoorFeatures, false);
                    break;
                case styles.building.layerName:
                    configureShape(geometry, attribs, styles.building, false);
                    break;
                case styles.assetBase.layerName:
                    configureShape(geometry, attribs, styles.hidden, false);
                    break;
                case styles.stage.layerName:
                    configureShape(geometry, attribs, styles.stage, false);
                    break;
                default:
                //alert(attribs.Layer);
            }
        }

        function configureAssetLevelFeature(feature) {
            var attribs = feature.attributes;
            var geometry = feature.geometry[0]; //V3 supports multiple rings, so should have only 1 element
            switch (attribs.Layer) {
                case styles.availableProperty.layerName:
                    configureShape(geometry, attribs, styles.hidden, true);
                case styles.road.layerName:
                case styles.roadNames.layerName:
                case styles.water.layerName:
                case styles.nature.layerName:
                case styles.parks.layerName:
                case styles.outdoorFeatures.layerName:
                case styles.building.layerName:
                case styles.stage.layerName:
                    configureShape(geometry, attribs, styles.hidden, false);
                    break;
                case styles.assetBase.layerName:
                    configureShape(geometry, attribs, styles.assetBase, false);
                    break;
                default:
                //alert(attribs.Layer);
            }
        }

        function configureShape(geometry, attribs, style, configureEvents) {
            geometry.setOptions(style);
            if (!isMapConfigured) {
                geometry.setMap(map);
                if (mapPropertyNumbers && mapPropertyNumbers['o' + attribs.OBJECTID]) {
                    attribs.propertyNumber = mapPropertyNumbers['o' + attribs.OBJECTID];
                    showPropertyNumberOnMap(attribs, geometry);
                }

                if (configureEvents) {
                    allProperties['o' + attribs.OBJECTID] = { geometry: geometry, attribs: attribs };
                    google.maps.event.addListener(geometry,
                        'mouseover',
                        function () {
                            if (isProductLevel) {
                                geometry.setOptions(styles.mouseOverProperty);
                            }
                        });

                    google.maps.event.addListener(geometry,
                        'mouseout',
                        function () {
                            if (isProductLevel) {
                                geometry.setOptions(getPropertyStyle(attribs.OBJECTID));
                            }
                        });

                    google.maps.event.addListener(geometry,
                        'click',
                        function (event) {
                            infobox.close();
                            if (options.enableTestMode) {
                                selectedProperty = { geometry: geometry, attribs: attribs };
                                if ($("#stockland_module_maps_asset_id").val()) {
                                    $.ajax({
                                        url: '/public/map/getpropertynumber',
                                        data: {
                                            'businessAssetId': $("#stockland_module_maps_asset_id").val(),
                                            'arcgisObjectId': attribs.OBJECTID
                                        },
                                        success: function (result) {
                                            infowindow.setContent(
                                                '<input type="hidden" id="stockland_modules_maps_objectId" value="' +
                                                attribs.OBJECTID +
                                                '">' +
                                                '<div class="form-group"><label for="stockland_modules_maps_adminLayer">Object ID: ' +
                                                attribs.OBJECTID +
                                                '&nbsp;&nbsp;&nbsp;Layer: ' +
                                                attribs.Layer +
                                                '</label></div>' +
                                                '<div class="form-group"><label for="stockland_module_maps_propertyNumber">Property Number: <input id="stockland_module_maps_propertyNumber" type="text" class="form-control numeric" value=""/></label></div>' +
                                                '<div class="form-group"><button id="go" class="btn btn-primary btn-sm enquiry_btn" onclick="stockland.modules.maps.saveProperty();">Save</button></div><br/><br/>');
                                            $("#stockland_module_maps_propertyNumber").val(result)
                                        }
                                    });
                                } else {
                                    infowindow.setContent(
                                        '<input type="hidden" id="stockland_modules_maps_objectId" value="' +
                                        attribs.OBJECTID +
                                        '">' +
                                        '<div class="form-group"><label for="stockland_modules_maps_adminLayer">Object ID: ' +
                                        attribs.OBJECTID +
                                        '&nbsp;&nbsp;&nbsp;Layer: ' +
                                        attribs.Layer +
                                        '</label></div><br/><br/>');
                                }
                                infowindow.open(map);
                                infowindow.setPosition(event.latLng);
                                map.setCenter(event.latLng);

                            } else if (!stockland.modules.maps.shiftKey) {
                                if (!isActiveProperty) {
                                    $.ajax({
                                        method: "GET",
                                        url: '/public/map/productcard?businessAssetPageId=' +
                                            options.businessAssetItemId +
                                            '&arcGisObjectId=' +
                                            attribs.OBJECTID
                                    })
                                        .done(function (data) {
                                            //console.log(data);
                                            infowindow.setContent(data);
                                            infowindow.open(map);

                                            infowindow.setPosition(event.latLng);
                                            map.setCenter(event.latLng);
                                        })
                                        .always(function (data) {

                                        });
                                }
                            }
                        });
                }

                // configure click event for each shape
                google.maps.event.addListener(geometry,
                    'click',
                    function (event) {
                        showLatLong(event.latLng);
                    });
            }
        }

        function getPropertyStyle(objectId) {
            if (options.isLeasing) {
                return styles.leasingProperty;
            }
            if (objectId) {
                if (activeProperties) {
                    if (activeProperties['o' + objectId]) {
                        return styles.activeProperty;
                    }
                }
                if (availableProperties) {
                    if (availableProperties['o' + objectId]) {
                        return styles.availableProperty;
                    }
                }
            }
            return styles.unavailableProperty;
        }

        function mapZoomChanged() {
            if ((currentZoomLevel == ASSET_VIEW_ZOOM_LEVEL && map.getZoom() == (ASSET_VIEW_ZOOM_LEVEL + 1)) ||
                (currentZoomLevel == (ASSET_VIEW_ZOOM_LEVEL + 1) && map.getZoom() == ASSET_VIEW_ZOOM_LEVEL)) {
                currentZoomLevel = map.getZoom();
                isProductLevel = (currentZoomLevel > ASSET_VIEW_ZOOM_LEVEL);
                if (options.masterPlanServiceURL) {
                    configureMapLayers(arcGisResultSet);
                }
            }
            currentZoomLevel = map.getZoom();
            isProductLevel = (currentZoomLevel > ASSET_VIEW_ZOOM_LEVEL);
            zoomLevelAssetFeatures();
        }

        function showLatLong(position) {
            if (stockland.modules.maps.shiftKey) {
                infowindow.close();
                infowindow.setContent(
                    '<div class="form-group"><label for="stockland_modules_maps_adminLatLong">Latitude: ' +
                    position.lat() +
                    '</label>' +
                    '<label for="stockland_modules_maps_adminLatLong">Longitude: ' +
                    position.lng() +
                    '</label>' +
                    '<input id="stockland_modules_maps_adminLatLong" type="text" value="' +
                    position.lat() +
                    ',' +
                    position.lng() +
                    '" placeholder="Active field" class="form-control" style="width: 300px;"></div>');
                infowindow.open(map);
                infowindow.setPosition(position);
            }
        }

        function configureAssetFeature(map, assetFeatureItems, poiItems) {
            //var locations = options.assetFeatureItems;
            //setMarkers(map, options.assetFeatureItems);
            //setMarkers(map, options.poiItems);
            if (assetFeatureItems) assetFeatureItems.forEach(function (assetData) { setAssetMarker(map, assetData) });
            if (poiItems) poiItems.forEach(function (markerData) { setMarker(map, markerData) });


        }

        function configureAssetFilter(map) {
            var categoriesOverlay = options.mapOverlay;

            var wrapper = document.createElement('div');
            wrapper.innerHTML = categoriesOverlay;
            var div = wrapper.firstChild;

            if (document.getElementById('infoPanel')) {
                document.getElementById('infoPanel').appendChild(div);
            }
        }

        //function GetElementInsideContainer(containerID, childID) {
        //    var elm = document.getElementById(childID);
        //    var parent = elm ? elm.parentNode : {};
        //    return (parent.id && parent.id === containerID) ? elm : {};
        //}
        function setAssetMarker(map, assetData) {
            //let [description, latitude, longitude, mouseOverIcon, mouseOutIcon, mapDescription, category, assetFeatureName, itemID] = assetData;
            let description = assetData[0];
            let latitude = assetData[1];
            let longitude = assetData[2];
            let mouseOverIcon = assetData[3];
            let mouseOutIcon = assetData[4];
            let mapDescription = assetData[5];
            let category = assetData[6];
            let assetFeatureName = assetData[7];
            let itemId = assetData[8];
            const resizeMouseOverIcon = {
                url: mouseOverIcon,
                size: new google.maps.Size(30, 30),
                scaledSize: new google.maps.Size(30, 30)
            };
            const resizeMouseOutIcon = {
                url: mouseOutIcon,
                size: new google.maps.Size(30, 30),
                scaledSize: new google.maps.Size(30, 30)
            };
            const marker = new google.maps.Marker({
                position: new google.maps.LatLng(latitude, longitude),
                //title: assetFeatureItemName,
                description: description,
                icon: resizeMouseOutIcon,
                map: map,
                category: category,
                customMouseOutIcon: resizeMouseOutIcon,
                customMouseOverIcon: resizeMouseOverIcon,
                mapDescription: mapDescription,
            });
            allMarkers.push(marker);
        }


        function setMarker(map, markerData) {
            //let [ latitude, longitude, mouseOverIcon, mouseOutIcon, assetFeatureItemName,itemId] = markerData;
            let latitude = markerData[0];
            let longitude = markerData[1];
            let mouseOverIcon = markerData[2];
            let mouseOutIcon = markerData[3];
            let assetFeatureItemName = markerData[4];
            let itemId = markerData[5];

            let markerOptions = {
                position: new google.maps.LatLng(latitude, longitude),
                map: map,
                category: '',
            };

            if (mouseOutIcon) {
                let icon = {
                    url: mouseOutIcon,
                    size: new google.maps.Size(30, 30),
                    scaledSize: new google.maps.Size(30, 30)
                };
                markerOptions.customMouseOutIcon = icon;
                markerOptions.icon = icon;
            }

            if (mouseOverIcon) {
                markerOptions.customMouseOverIcon = {
                    url: mouseOverIcon,
                    size: new google.maps.Size(30, 30),
                    scaledSize: new google.maps.Size(30, 30)
                };
            }

            const marker = new google.maps.Marker(markerOptions);

            const getBusinessAssetCard = function (id, minimal) {
                return $.ajax({
                    method: "GET",
                    url:
                        '/public/map/businessassetcard?businessAssetPageId=' + id
                        + '&minimal=' + minimal
                });
            }
            google.maps.event.addListener(marker, "click", function (event) {
                //if ($(".fullScreen div div").text() == "Expand map") {
                //    $(".fullScreen").click();
                //}
                infobox.windowState = 'click';
                getBusinessAssetCard(itemId, false)
                    .done(function (data) {
                        infobox.setContent(data);
                        infobox.open(map, marker);
                        infowindow.close()
                        map.setCenter(event.latLng);
                    })
            });
            google.maps.event.addListener(marker, "mouseover", function () {
                if (infobox.windowState != 'click') {
                    getBusinessAssetCard(itemId, true)
                        .done(function (data) {
                            if (infobox.windowState != 'click') {
                                infobox.windowState = 'hover';
                                infobox.setContent(data);
                                infobox.open(map, marker);
                            }
                        })
                }
                this.setIcon(marker.customMouseOverIcon);
            });
            google.maps.event.addListener(marker, "mouseout", function () {
                if (infobox.windowState == 'hover') {
                    infobox.close();
                }
                this.setIcon(marker.customMouseOutIcon);
            });

            
        }

        const onFullScreen = function (fullScreenButton) {
            const eventNames = [
                'fullscreenchange',
                'webkitfullscreenchange',
                'mozfullscreenchange'
            ];
            eventNames.map(function (e) {
                document.addEventListener(e, function (event) {
                    const isFullScreen = document['fullScreen'] ||
                        document['mozFullScreen'] || document['webkitIsFullScreen'];
                    if (isFullScreen) {
                        map.controls[google.maps.ControlPosition.TOP_RIGHT].clear();
                    } else {
                        map.controls[google.maps.ControlPosition.TOP_RIGHT].push(fullScreenButton);
                    }
                })
            });
        };

        function configureFullScreeen(map) {
            var fullScreenButton = fullScreenControl(map, "Expand map", "Exit map");
            onFullScreen(fullScreenButton);
            map.controls[google.maps.ControlPosition.TOP_RIGHT].push(fullScreenButton);
        }

        function googleMapButton(text, className) {
            "use strict";
            var controlDiv = document.createElement("div");
            controlDiv.className = className;
            controlDiv.index = 1;
            controlDiv.style.padding = "10px";
            // set CSS for the control border.
            var controlUi = document.createElement("div");
            controlUi.style.backgroundColor = "rgb(255, 255, 255)";
            controlUi.style.color = "#565656";
            controlUi.style.cursor = "pointer";
            controlUi.style.textAlign = "center";
            controlUi.style.boxShadow = "rgba(0, 0, 0, 0.298039) 0px 1px 4px -1px";
            controlDiv.appendChild(controlUi);
            // set CSS for the control interior.
            var controlText = document.createElement("div");
            controlText.style.fontFamily = "Roboto,Arial,sans-serif";
            controlText.style.fontSize = "11px";
            controlText.style.paddingTop = "8px";
            controlText.style.paddingBottom = "8px";
            controlText.style.paddingLeft = "8px";
            controlText.style.paddingRight = "8px";
            controlText.innerHTML = text;
            controlUi.appendChild(controlText);
            $(controlUi)
                .on("mouseenter",
                    function () {
                        controlUi.style.backgroundColor = "#fff";
                        controlUi.style.color = "#000";
                    });
            $(controlUi)
                .on("mouseleave",
                    function () {
                        controlUi.style.backgroundColor = "#fff";
                        controlUi.style.color = "#565656";
                    });
            return controlDiv;
        }

        function fullScreenControl(map, enterFull, exitFull) {
            "use strict";

            var controlDiv = googleMapButton(enterFull, "fullScreen");
            var fullScreen = false;
            var interval;
            var googleMapDiv = map.getDiv();
            var mapDiv = document.getElementById("mapDiv");
            var googleMap = document.getElementById("googleMap");
            var divStyle = googleMapDiv.style;
            var originalPos = divStyle.position;
            var originalWidth = divStyle.width;
            var originalHeight = divStyle.height;
            var originalMinHeight = divStyle.minHeight;

            var originalTop = divStyle.top;
            var originalLeft = divStyle.left;
            var originalZIndex = divStyle.zIndex;
            var bodyStyle = document.body.style;
            if (document.body.runtimeStyle) {
                bodyStyle = document.body.runtimeStyle;
            }
            var originalOverflow = bodyStyle.overflow;
            controlDiv.goFullScreen = function () {
                var center = map.getCenter();
                mapDiv.style.position = "fixed";
                mapDiv.style.width = "100%";
                mapDiv.style.height = "100%";
                mapDiv.style.top = "0";
                mapDiv.style.left = "0";
                mapDiv.style.zIndex = "100";
                $(mapDiv).removeClass("col-sm-12");
                $(googleMap).addClass("expand-map");

                if (document.getElementById("mapDisclaimerID")) {
                    document.getElementById("mapDisclaimerID").style.height = "1000px";
                }

                googleMapDiv.style.position = "relative";
                googleMapDiv.style.width = "100%";
                googleMapDiv.style.height = "98%";
                googleMapDiv.style.top = "0";
                googleMapDiv.style.left = "0";

                document.body.style.overflow = "hidden";
                $(controlDiv).find("div div").html(exitFull);
                fullScreen = true;
                google.maps.event.trigger(map, "resize");
                map.setCenter(center);
                map.setOptions({ draggable: true });

                interval = setInterval(function () {
                    if (mapDiv.style.position !== "fixed") {
                        mapDiv.style.position = "fixed";
                        google.maps.event.trigger(map, "resize");
                    }
                    if (googleMapDiv.style.position !== "relative") {
                        googleMapDiv.style.position = "relative";
                        google.maps.event.trigger(map, "resize");
                    }
                },
                    100);

                if (document.getElementById("infoPanel")) {
                    document.getElementById("infoPanel").style.display = "block";
                }

                if ($(window).width() <= 435) {
                    if (!document.getElementById("infoPanel")) {
                        $('#googleMap').css('cssText', 'height:87% !important;');
                    }
                }

            };
            controlDiv.exitFullScreen = function () {
                var center = map.getCenter();
                if (originalPos === "") {
                    googleMapDiv.style.position = "relative";
                } else {
                    googleMapDiv.style.position = originalPos;
                }

                mapDiv.style.position = "relative";
                mapDiv.style.width = "100%";
                mapDiv.style.height = "100%";
                mapDiv.style.top = "0px";
                mapDiv.style.left = "0px";
                mapDiv.style.zIndex = "10";
                $(mapDiv).addClass("col-sm-12");
                $(googleMap).removeClass("expand-map");

                if (document.getElementById("mapDisclaimerID")) {
                    document.getElementById("mapDisclaimerID").style.height = "100%";
                }

                googleMapDiv.style.width = originalWidth;
                googleMapDiv.style.height = originalHeight;
                googleMapDiv.style.top = originalTop;
                googleMapDiv.style.left = originalLeft;
                googleMapDiv.style.zIndex = originalZIndex;
                googleMapDiv.style.minHeight = originalMinHeight;
                googleMapDiv.style.overflow = "hidden";

                document.body.style.overflow = originalOverflow;
                $(controlDiv).find("div div").html(enterFull);
                fullScreen = false;
                google.maps.event.trigger(map, "resize");
                map.setCenter(center);
                map.setOptions({ draggable: !isDeviceMobileOrTablet() || options.isFindYourHome });
                clearInterval(interval);

                if ($(window).width() <= 435) {
                    if ($(".map-scroll").length == 0) {
                        document.getElementById("infoPanel").style.display = "none";
                        document.getElementById("googleMap").style.height = "220px";
                    } else {
                        showPlacematcher();
                    }
                } else {
                    if ($(".map-scroll").length == 0) {
                        document.getElementById("googleMap").style.height = "380px";
                        document.getElementById("infoPanel").style.display = "block";
                    } else {
                        $("#googleMap").css("height", ($('.set-card-height-map').outerHeight() + "px"));
                    }
                }

                if ($(window).width() >= 768 && $(window).width() <= 991) {
                    if ($(".map-scroll").length == 0) {
                        document.getElementById("infoPanel").style.display = "none";
                        document.getElementById("googleMap").style.height = "220px";
                    } else {
                        showPlacematcher();
                    }
                }
            };
            // setup the click event listener
            google.maps.event.addDomListener(controlDiv,
                "click",
                function () {
                    if (!fullScreen) {
                        controlDiv.goFullScreen();
                    } else {
                        controlDiv.exitFullScreen();
                    }
                });
            return controlDiv;
        }

        function showPlacematcher() {
            $(".section-for-map").css("display", "none");
            $(".map-container").css("display", "none");
            $("#googleMap").css("height", "80vh !important");
            $('.search-and-result-panel').removeClass('hidden-xs');
            $('.search-and-result-panel').removeClass('hidden-sm');
            $('.mobile-footer').removeClass('hidden-xs');
            $('.mobile-footer').removeClass('hidden-sm');
            $("#mapView1").show();
        }

        var contains = function (findTerm) {
            var findNaN = findTerm !== findTerm;
            var indexOf;

            if (!findNaN && typeof Array.prototype.indexOf === 'function') {
                indexOf = Array.prototype.indexOf;
            } else {
                indexOf = function (findTerm) {
                    var i = -1, index = -1;

                    for (i = 0; i < this.length; i++) {
                        var item = this[i];

                        if ((findNaN && item !== item) || item === findTerm) {
                            index = i;
                            break;
                        }
                    }

                    return index;
                };
            }

            return indexOf.call(this, findTerm) > -1;
        };

        function zoomLevelAssetFeatures() {

            projection = map.getProjection();
            resetMarkers();
            //Hide asset feature icons and info panel
            if (currentZoomLevel < HIDE_FEATURES_ZOOM_LEVEL) {
                if ($('.service-box')) {
                    $('.service-box').hide();
                }
                for (var i = 0; i < allMarkers.length; i++) {
                    allMarkers[i].setMap(null);
                }
            } else {
                if ($('.service-box')) {
                    $('.service-box').show();
                }
                for (var i = 0; i < allMarkers.length; i++) {
                    allMarkers[i].setMap(map);
                }
            }
            //Show pins of assets
            if (assets != null && assets.length > 0) {
                initCluster();
            }
        }

        function initCluster() {
            var clusteredMarkers = [];

            //console.log('total ' + assets.length);
            for (var i = 0; i < assets.length; i++) {
                var markerPoint = getMarkerPoint(assets[i].latitude, assets[i].longitude, assets[i].itemId);
                for (var j = 0; j < clusteredMarkers.length; j++) {
                    var markerAddedToCluster = false;
                    for (var k = 0; k < clusteredMarkers[j].length; k++) {
                        var diffY = (markerPoint.point.y - clusteredMarkers[j][k].point.y);
                        var diffX = (markerPoint.point.x - clusteredMarkers[j][k].point.x);
                        diffY = (diffY > 0) ? diffY : diffY * -1;
                        diffX = (diffX > 0) ? diffX : diffX * -1;
                        if (diffY < MARKER_CLUSTER_PIXELS_Y && diffX < MARKER_CLUSTER_PIXELS_X) {
                            clusteredMarkers[j].push(markerPoint);
                            markerAddedToCluster = true;
                            break;
                        }
                    }
                    if (markerAddedToCluster) {
                        break;
                    }
                }
                if (!markerAddedToCluster) {
                    clusteredMarkers.push([markerPoint]);
                    markerAddedToCluster = true;
                }
            }

            var bounds = new google.maps.LatLngBounds();
            for (var i = 0; i < clusteredMarkers.length; i++) {
                createClusterdMarker(clusteredMarkers[i], bounds);
            }
        }

        function getMarkerPoint(latitude, longitude, itemId) {

            var bounds = map.getBounds();

            if (projection == undefined) {
                projection = map.getProjection();
            }
            var topRight = projection.fromLatLngToPoint(bounds.getNorthEast());
            var bottomLeft = projection.fromLatLngToPoint(bounds.getSouthWest());
            var scale = Math.pow(2, map.getZoom());
            var worldPoint = projection.fromLatLngToPoint(new google.maps.LatLng(latitude, longitude));
            return {
                point: new google.maps.Point((worldPoint
                    .x -
                    bottomLeft.x) *
                    scale,
                    (worldPoint.y - topRight.y) * scale),
                latitude: latitude,
                longitude: longitude,
                itemId: itemId
            };
        }

        function createClusterdMarker(markers, bounds) {
            var lat = 0;
            var lng = 0;
            var itemId = "";
            for (var i = 0; i < markers.length; i++) {
                lat += markers[i].latitude;
                lng += markers[i].longitude;
                //console.log(markers.length);
            }
            lat /= markers.length;
            lng /= markers.length;

            var marker = new google.maps.Marker({
                position: new google.maps.LatLng(lat, lng),
                map: map,
                label: {
                    text: (markers.length > 0)
                        ? ((markers.length <= 9) ? (markers.length).toString() : "+"
                        )
                        : ''
                },
                visible: true,
                lat: lat,
                lng: lng
            });

            allAssetMarkers.push(marker);

            //display placematcher card
            if (markers.length == 1) {
                itemId = markers[0].itemId;
            }
            configureMarkerEvents(marker, itemId, markers.length)

            if (bounds) {
                bounds.extend(marker.position);
            }

        }

        function configureMarkerEvents(marker, itemId, count) {

            google.maps.event.addListener(marker,
                'click',
                function (event) {
                    if (count > 1) {
                        map.setZoom(map.getZoom() + 1);
                    } else {
                        if (options.latitude != marker.lat && options.longitude != marker.lng) {
                            $.ajax({
                                method: "GET",
                                url: '/public/map/businessassetcard?businessAssetPageId=' + itemId
                            })
                                .done(function (data) {
                                    infowindow.setContent(data);
                                    infowindow.open(map, marker);
                                    infowindow.setPosition(event.latLng);
                                    map.setCenter(event.latLng);
                                    infobox.close();

                                })
                                .always(function (data) {

                                });
                        }
                    }
                });
        }

        function resetMarkers() {
            for (var i = 0; i < allAssetMarkers.length; i++) {
                allAssetMarkers[i].setMap(null);
            }
        }

        function addText(bounds, text) {
            var overlay = new google.maps.OverlayView();
            overlay.onAdd = function () {
                this.getPanes().overlayLayer.innerHTML = '<div class="lotNumberOverlay">' + text + '</div>';
            };

            overlay.draw = function () {
                this.getPanes().overlayLayer.innerHTML = '<div class="lotNumberOverlay">' + text + '</div>';
            };

            overlay.onRemove = function () {
            };
        }

        function showPropertyNumberOnMap(attribs, geometry) {
            if (attribs.propertyNumberOverlay) {
                attribs.propertyNumberOverlay.setMap(null);
            }
            if (attribs.propertyNumber) {
                var maxLat = -180, minLat = 180, maxLng = -180, minLng = 180;
                var latLngs = geometry.latLngs.getAt(0);

                if (latLngs !== undefined) {
                    var latLngsLength = latLngs.getLength();

                    if (latLngsLength !== undefined && latLngsLength > 0) {
                        for (var i = 0; i < latLngsLength; i++) {
                            var lat = latLngs.getAt(i).lat();
                            var lng = latLngs.getAt(i).lng();
                            maxLat = (lat > maxLat) ? lat : maxLat;
                            minLat = (lat < minLat) ? lat : minLat;
                            maxLng = (lng > maxLng) ? lng : maxLng;
                            minLng = (lng < minLng) ? lng : minLng;
                        }
                    }
                }
                var averagePoint = new google.maps.LatLng((maxLat + minLat) / 2, (maxLng + minLng) / 2);
                attribs.propertyNumberOverlay = new CustomMarker(averagePoint, map, attribs.propertyNumber);
                return averagePoint;
            }
        }

        function mapResize() {
            google.maps.event.trigger(map, 'resize');
        }
        // public functions
        return {
            shiftKey: false,
            mapResize: mapResize,

            init: function (mapOptions) {
                if (mapOptions.poiItems == undefined || mapOptions.poiItems == null) mapOptions.poiItems = [];
                if (mapOptions.isFindYourHome == undefined || mapOptions.isFindYourHome == null) mapOptions.isFindYourHome = false;

                isMapConfigured = false;
                options = mapOptions;
                assets = options.assets;
                currentZoomLevel = options.zoomLevel;
                isProductLevel = (currentZoomLevel > ASSET_VIEW_ZOOM_LEVEL);
                configureArrays();
                if (((!options
                    .latitude ||
                    !options.longitude) &&
                    !options.address) ||
                    !options.masterPlanServiceURL) {
                    //Check if retail shopping centre (Leasing)
                    if (!options.isLeasing) {
                        return;
                    }
                }

                var geocoder = new google.maps.Geocoder();
                var geometryLocation;
                if (mapOptions.latitude && mapOptions.longitude) {
                    var gmapsOptions = {
                        zoom: options.zoomLevel,
                        center: new google.maps.LatLng(mapOptions.latitude, mapOptions.longitude),
                        mapTypeId: google.maps.MapTypeId.ROADMAP,
                        scrollwheel: false,
                        styles: mapTheme,
                        draggable: !isDeviceMobileOrTablet() || options.isFindYourHome
                    };
                    createMap(gmapsOptions);
                } else if (options.address) {
                    geocoder.geocode({ address: options.address },
                        function (results, status) {
                            if (status == google.maps.GeocoderStatus.OK) {
                                var gmapsOptions = {
                                    zoom: options.zoomLevel,
                                    center: results[0].geometry.location,
                                    mapTypeId: google.maps.MapTypeId.ROADMAP,
                                    styles: mapTheme,
                                    draggable: !isDeviceMobileOrTablet() || options.isFindYourHome
                                };
                                createMap(gmapsOptions);
                            }
                        });
                } else {
                    var gmapsOptions = {
                        zoom: 5,
                        center: new google.maps.LatLng(-23, 132),
                        mapTypeId: google.maps.MapTypeId.ROADMAP,
                        scrollwheel: false,
                        styles: mapTheme,
                        draggable: !isDeviceMobileOrTablet() || options.isFindYourHome
                    };
                    createMap(gmapsOptions);
                }

                google.maps.event.addListenerOnce(map,
                    "projection_changed",
                    function () {
                        projection = map.getProjection();

                        //Show pins of assets
                        if (assets != null && assets.length > 0) {
                            initCluster();
                        }
                    });
                google.maps.event.addListenerOnce(map,
                    'idle',
                    function () {
                        google.maps.event.trigger(map, 'resize');
                    });
            },

            setCursor: function (cursorName) {
                if (map) {
                    map.setOptions({ draggableCursor: cursorName });
                }
            },

            setIcon: function (category) {
                var mapDescription = [];
                document.getElementById('map_description').innerHTML = "";
                for (var i = 0; i < allMarkers.length; i++) {
                    var mapCategory = allMarkers[i].category;

                    if (mapCategory == category) {
                        allMarkers[i].setIcon(allMarkers[i].customMouseOverIcon);

                        if (!contains.call(mapDescription, allMarkers[i].mapDescription) &&
                            allMarkers[i].mapDescription != "") {
                            mapDescription[i] = allMarkers[i].mapDescription;
                            document
                                .getElementById('map_description')
                                .innerHTML += allMarkers[i].mapDescription + "<br />";
                        }
                    } else {
                        allMarkers[i].setIcon(allMarkers[i].customMouseOutIcon);
                    }
                }
            },

            saveProperty: function () {
                selectedProperty.attribs.propertyNumber = $('#stockland_module_maps_propertyNumber').val();
                var point = showPropertyNumberOnMap(selectedProperty.attribs, selectedProperty.geometry);

                $.ajax({
                    url: '/public/map/savepropertynumber',
                    method: 'POST',
                    data: {
                        businessAssetId: $('#stockland_module_maps_asset_id').val(),
                        arcgisObjectId: selectedProperty.attribs.OBJECTID,
                        propertyNumber: $("#stockland_module_maps_propertyNumber").val(),
                        latitude: (point) ? point.lat() : '',
                        longitude: (point) ? point.lng() : ''
                    },
                    success: function (result) {
                        infowindow.close();
                    }
                });
                infowindow.close();
            },

            highlightProperty: function (objectId) {
                if (objectId === undefined) {
                    $('.gm-style-iw-a').hide();
                }
                if (highlightedPropertyObjectId) {
                    unhighlightProperty(objectId);
                }
                var property = allProperties['o' + objectId];
                if (property) {
                    var lotLng = '{"latLng":' +
                        '{"lat":' + property.geometry.Qf.bounds.Qa + ',"lng":' + property.geometry.Qf.bounds.Pa + '},"ub":{"isTrusted":true}} ';
                    var obj = JSON.parse(lotLng);
                    obj ? google.maps.event.trigger(property.geometry, 'click', obj) : null;
                    property.geometry.setOptions(styles.mouseOverProperty);
                    highlightedPropertyObjectId = objectId;
                }
            },

            unhighlightProperty: function (objectId) {
                var property = allProperties['o' + objectId];
                if (property) {
                    var lotLng = '{"latLng":' +
                        '{"lat":' + property.geometry.Qf.bounds.Qa + ',"lng":' + property.geometry.Qf.bounds.Pa + '},"ub":{"isTrusted":true}} ';
                    var obj = JSON.parse(lotLng);
                    property.geometry.setOptions(getPropertyStyle(property.attribs.OBJECTID));
                    highlightedPropertyObjectId = null;
                }
            },


            getUserGeoLocation: function (callBackFunction) {
                if ($('#stockland_module_maps_init').val() == 'true' ||
                    $('#stockland_module_assetmap_init').val() == 'true') {
                    if (!currentUserLocation) {
                        if ((!isDeviceMobileOrTablet() || !navigator.geolocation) &&
                            $('#sessionGeoLocation').val() &&
                            $('#sessionGeoLocation').val().indexOf(',') >= 0) {
                            // not mobile or browser has not geo location so use sitecore ip location
                            var sessionLocation = $('#sessionGeoLocation').val().split(',');
                            currentUserLocation = { latitude: sessionLocation[0], longitude: sessionLocation[1] };
                            if (callBackFunction) {
                                callBackFunction(currentUserLocation);
                            }
                        } else { // we only want to use browser if device potentially has gps
                            navigator.geolocation.getCurrentPosition(
                                function (position) { // success
                                    currentUserLocation = {
                                        latitude: position.coords.latitude,
                                        longitude: position.coords.longitude
                                    };
                                    if (callBackFunction) {
                                        callBackFunction(currentUserLocation);
                                    }
                                },
                                function (error) { // error
                                    if ($('#sessionGeoLocation').val() && $('#sessionGeoLocation').val()) {
                                        var sessionLocation = $('#sessionGeoLocation').val().split(',');
                                        currentUserLocation =
                                            { latitude: sessionLocation[0], longitude: sessionLocation[1] };
                                    }
                                    if (callBackFunction) {
                                        callBackFunction(currentUserLocation);
                                    }
                                },
                                { // options
                                    enableHighAccuracy: true,
                                    timeout: 5000,
                                    maximumAge: 0
                                });
                        }
                    } else if (callBackFunction) {
                        callBackFunction(currentUserLocation);
                    }
                }
            }
        };
    }());

})(jQuery);


//Global Functions 

function callHighlightIcon(category) {
    stockland.modules.maps.setIcon(category);
}
function CustomMarker(latlng, map, markerHtml, horizontalPlacement, verticalPlacement) {
    this.latlng = latlng;
    this.markerHtml = markerHtml;
    this.horizontalPlacement = horizontalPlacement;
    this.verticalPlacement = verticalPlacement;
    this.setMap(map);
}

CustomMarker.prototype = new google.maps.OverlayView();

CustomMarker.prototype.draw = function () {
    var div = this.div;
    if (!div) {
        div = this.div = document.createElement('div');
        div.style.position = 'absolute';
        div.style.zIndex = 200;
        div.className = 'map-property-number-marker';
        div.innerHTML = this.markerHtml;

        var panes = this.getPanes();
        panes.overlayImage.appendChild(div);
    }

    var point = this.getProjection().fromLatLngToDivPixel(this.latlng);

    if (point) {
        var divLeft, divTop;
        if (this.horizontalPlacement === 'left') {
            divLeft = point.x;
        }
        else if (this.horizontalPlacement === 'right') {
            divLeft = point.x - div.offsetWidth;
        }
        else { // default is centre
            divLeft = point.x - Math.round(div.offsetWidth / 2);
        }
        if (this.verticalPlacement == 'top') {
            divTop = point.y;
        }
        else if (this.verticalPlacement == 'bottom') {
            divTop = point.y - div.offsetHeight;
        }
        else { // default is centre
            divTop = point.y - Math.round(div.offsetHeight / 2);
        }

        var divTop = point.y - Math.round(div.offsetHeight / 2);
        div.style.left = divLeft + 'px';
        div.style.top = divTop + 'px';
    }
};

CustomMarker.prototype.remove = function () {
    if (this.div) {
        this.div.parentNode.removeChild(this.div);
        this.div = null;
    }
};

CustomMarker.prototype.getPosition = function () {
    return this.latlng;
};

//Global Functions 
jQuery(document).ready(function ($) {
    //Remove redundant code
    if ($('#stockland_module_maps_init').val() == 'true') {
         stockland.modules.maps.init({
            enableTestMode: $('#stockland_module_maps_enableTestMode')?.val()?.toLowerCase() ? $('#stockland_module_maps_enableTestMode').val().toLowerCase() === 'true' : false,
            zoomLevel: Number($('#stockland_module_maps_InitialZoomLevel').val()),
            address: null,
            businessAssetItemId: $('#stockland_module_maps_businessAssetItemId').val(),
            latitude: $('#stockland_module_maps_latitude').val(),
            longitude: $('#stockland_module_maps_longitude').val(),
            masterPlanServiceURL: $('#stockland_module_maps_masterPlanServiceURL').val(),
            activeProperties: $('#stockland_module_maps_activeProperties').val() ? $('#stockland_module_maps_activeProperties').val().split(',') : [],
            availableProperties: $('#stockland_module_maps_availableProperties').val() ? $('#stockland_module_maps_availableProperties').val().split(',') : [],
            mapPropertyNumbers: $('#stockland_module_maps_mapPropertyNumbers').val() ? JSON.parse($('#stockland_module_maps_mapPropertyNumbers').val()) : [],
            assetFeatureItems: $('#stockland_module_maps_assetFeatures').val() ? JSON.parse($('#stockland_module_maps_assetFeatures').val()) : [],
            poiItems: $('#stockland_module_maps_placesOfInterest').val() ? JSON.parse($('#stockland_module_maps_placesOfInterest').val()) : [],
            mapOverlay: $('#stockland_module_maps_mapOverlay').val(),
            isLeasing: $('#stockland_module_maps_isLeasing')?.val()?.toLowerCase() ? $('#stockland_module_maps_isLeasing').val().toLowerCase() === 'true' : false,
            assets: $('#stockland_module_maps_stocklandAssets').val() ? JSON.parse($('#stockland_module_maps_stocklandAssets').val()) : [],
            isFindYourHome: $('#stockland_module_maps_isFindYourHome')?.val()?.toLowerCase() ? $('#stockland_module_maps_isFindYourHome').val().toLowerCase() === 'true' : false
        });
    }

    $(document).keydown(function (e) {
        stockland.modules.maps.shiftKey = e.shiftKey;
        stockland.modules.maps.setCursor('crosshair');

    });

    $(document).keyup(function (e) {
        stockland.modules.maps.shiftKey = e.shiftKey;
        stockland.modules.maps.setCursor(null);
    });

});

;
jQuery(document).ready(function ($) {

    var selectedCheckboxCount;

    function GetItem(categoryId) {

        var selectedID = [];
        if (categoryId == 1) {

            $("input:checkbox[name=checkboxAsset]:checked").each(function () {
                selectedID.push($(this).attr("id"));
            });

        }
        else if (categoryId == 2) {

            $("input:checkbox[name=checkboxProduct]:checked").each(function () {
                selectedID.push($(this).attr("id"));
            });
        }

        else if (categoryId == 3) {
            $("input:checkbox[name=checkboxDocument]:checked").each(function () {
                selectedID.push($(this).attr("id"));
            });

        }
        else if (categoryId == 4) {

            $("input:checkbox[name=checkboxSearch]:checked").each(function () {
                selectedID.push($(this).attr("id"));
            });
        }

        return selectedID;
    }

    /* -----------------BULK ADD --START*/
    $('#multi-shar').on('click', function (e) {
        e.preventDefault();
       
         
        if ( $('#IsUserAuthenticated').val() == 'true')
            {
            var selectedID = [];
            $this = $(this);
            var sharedlistID;
            var url = '/public/shortlist/addshareditemtoshortlist';
            var currentURL = [location.protocol, '//', location.host, location.pathname].join('');
            selectedID = GetItem(categoryId);
            var formData = {};
            formData.CategoryId = categoryId;
            formData.itemID = selectedID;
           
            
            selectedCheckboxCount = $("#sharedAsset .checkbox [type='checkbox']:checked").length;
            if (selectedCheckboxCount == 0) {
                $("#SharedListErrorMessage").modal("show");
                $("#shareItem").removeClass('hidden');
            }
            else
            {
                $("#SharedListErrorMessage").modal("hide");
                $("#shareItem").addClass('hidden');
            }
            var request = $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: url,
                data: "{'formData':" + JSON.stringify(formData) + "}",
                success: function (response) {
                    //console.log("Added successfully");
                },
                error: function (e) {
                    //console.log("Error occurred while adding");
                }
            });
        }
        else
        {
            var pro = location.protocol;
            var URL = location.host;
            window.location.href = pro + "//" + URL + "/account/login";
        }
        
        
    });

    /* -----------------BULK ADD --END*/



    /* SINGLE SHARE DOCUMENTS & SEARCHES -- START */

    $('.category td.singleshare').on('click', function (e) {
        e.preventDefault();
        var sharedlistID;
        $this = $(this);
        var url = '/public/shortlist/addsharedlistitem';
        var selectedID = $(this).attr("id");
        var currentURL = [location.protocol, '//', location.host, location.pathname].join('');
         
        var formData = {};
        formData.CategoryId = categoryId;
        formData.itemID = selectedID;
        var isAdded = $this.hasClass("active");
        if (!isAdded) {
            var request = $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: url,
                data: "{'formData':" + JSON.stringify(formData) + "}",
                success: function (response) {
                    $this.addClass("active");
                    sharedlistID = response;
                    if (sharedlistID != 0) {
                        $this.children("#singleShortlistShare").toggle(function (e) {
                            shareToggle(sharedlistID, currentURL);
                        });
                    }
                },
                error: function (e) {
                   // console.log("Error occurred while compare");
                }
            });

        }
        else {
            $this.children("#singleShortlistShare").toggle(function (e) {
                $this.removeClass("active");
            });
        }

    });

    /* SINGLE SHARE-- -- End */
      /* -----------------SINGLE SHARE --START*/

    $('.singleShare').on('click', function (e) {
        
       
          e.preventDefault();
          var sharedlistID;
          $this = $(this);
          var url = '/public/shortlist/addsharedlistitem';
          
          var currentURL = [location.protocol, '//', location.host, location.pathname].join('');
          var selectedID = $(this).attr("id");
          var $card = $this.parent().parent().parent();
          var formData = {};
          formData.CategoryId = categoryId;
          formData.itemID = selectedID;
          var isAdded = $this.hasClass("active");

          if (!isAdded) {
               $card.css("overflow", "visible");
              var request = $.ajax({
                  type: "POST",
                  contentType: "application/json; charset=utf-8",
                  url: url,
                  data: "{'formData':" + JSON.stringify(formData) + "}",
                  success: function (response) {
                      sharedlistID = response;
                      $this.addClass("active");
                      if (sharedlistID != 0) {
                          $this.next('#singleShortlistShare').toggle(function (e) {

                              shareToggle(sharedlistID, currentURL);
                          });
                      }
                  },
                  error: function (e) {
                     // console.log("Error occurred while compare");
                  }
              });
          }
          else {
              $this.next('#singleShortlistShare').toggle(function (e) {
                  $card.css("overflow", "hidden");
                  $this.removeClass("active");
              });
          }
      });

    /* -----------------BULK SHARE --START*/

      $('#multi-shared').on('click', function (e) {
          
          e.preventDefault();
          var sharedlistID;
          var firstName = firstName;   //Global variable from html page
          $this = $(this);
          var selectedID = [];
          var url = '/public/shortlist/addsharedlistitem';
         // var categoryId = categoryId;   //Global variable from html page
          var currentURL = [location.protocol, '//', location.host, location.pathname].join('');
          selectedID = GetItem(categoryId);

          var formData = {};
          formData.CategoryId = categoryId;
          formData.itemID = selectedID;
          var isAdded = $this.hasClass("active");

          if (!isAdded) {
              var request = $.ajax({
                  type: "POST",
                  contentType: "application/json; charset=utf-8",
                  url: url,
                  data: "{'formData':" + JSON.stringify(formData) + "}",
                  success: function (response) {
                      sharedlistID = response;
                      $this.addClass("active");
                      if (sharedlistID != 0) {
                          $this.next('#singleShortlistShare').toggle(function (e) {
                              shareToggle(sharedlistID, currentURL);
                          });
                      }
                  },
                  error: function (e) {
                      //console.log("Error occurred while compare");
                  }
              });
          }
          else {
              $this.next('#singleShortlistShare').toggle(function (e) {
                  $this.removeClass("active");
              });
          }
      });

    /* BULK SHARE -- END */
    /* -----------------SINGLE SHARE --START*/ 
   

    /* UI */
      //$("#sharedAsset .media-body [type='checkbox']").change(function () {
      //    intCountSelectedCheckbox = $("#sharedAsset .media-body [type='checkbox']:checked").length;
         
      //    CheckSelectedItem();
      //    DisplayNotification(selectedCheckboxCount);
      //});

      //$("#sharedAsset .media-body [type='checkbox']").change(function () {
      //    intCountSelectedCheckbox = $("#sharedAsset .media-body [type='checkbox']:checked").length;
        
      //    if (intCountSelectedCheckbox) {
             
      //        if (!($('.errorShortlist').hasClass("hidden"))) {
      //            $('.errorShortlist').addClass("hidden");
      //        }
      //        $('#multi-enquiry, #multi-shared').removeClass("hidden");
      //        $('.select-txt').addClass("hidden");
      //    }
      //    else {
      //        $('#multi-enquiry, #multi-shared').addClass("hidden");
      //        $('.select-txt').removeClass("hidden");
      //    }

      //});

    /*End*/
    

});;
jQuery(document).ready(function ($) {

    var selectedCheckboxCount;

    if (document.getElementById('anti_forgery_token')) {
        _token = document.getElementById('anti_forgery_token').value;
    }


    var enquireSelectedID = [];
    var $tabId = "";

    //BEGIN : ENQUIRY
    // Note This is a blanket function by Preethi Adeline, If required please re-instated with more specific events
    // At the moment Its blocking Enquiry Form functions.
    //$(':checkbox').click(function (event) {
    //    event.stopImmediatePropagation();
    //    var checkboxClassName = $(this).data("checkbox-class-name");
    //    if (this.checked) {
    //        $("#" + checkboxClassName).parent().removeClass('hidden');
    //    }
    //    else {
    //        $("#" + checkboxClassName).parent().addClass('hidden');
    //    }
    //});



    /* -----------------------------------  SELECT ALL - BULK ACTION --DISPLAY ----------------*/



    function DisplayNotification(selectedCheckboxCount) {
        if (selectedCheckboxCount > 1 && selectedCheckboxCount < 5) {
            $(".more-options-product").removeClass('hidden');
            $("#multi-compare").show();

        }
        else {
            $("#multi-compare").hide();
        }
        if (selectedCheckboxCount > 4) {
            $("#ShortlistErrorMessage").modal("show");
            $("#compareLimitMobileError").addClass('hidden');
            $("#compareLimitError").removeClass('hidden');
            $("#compareError").addClass('hidden');
        }

        if ($(window).width() < 767) {

            if (selectedCheckboxCount > 2) {
                $("#ShortlistErrorMessage").modal("show");
                $("#compareLimitMobileError").removeClass('hidden');
                $("#compareError").addClass('hidden');
                $("#compareLimitError").addClass('hidden');
                $("#multi-compare").hide();
            }
        }

    }

    $("#sharedAsset .media-body [type='checkbox']").change(function () {
        selectedCheckboxCount = $("#sharedAsset .media-body [type='checkbox']:checked").length;
        if (selectedCheckboxCount < $("#sharedAsset .media-body [type='checkbox']").length) {
            $(".productFilter-select-all input[type='checkbox']").prop('checked', false);
        }
        else {
            $(".productFilter-select-all input[type='checkbox']").prop('checked', true);
        }
        CheckSelectedItem();
        DisplayNotification(selectedCheckboxCount);
    });

    $("#products .media-body [type='checkbox']").change(function () {
        selectedCheckboxCount = $("#products .media-body [type='checkbox']:checked").length;
        if (selectedCheckboxCount < $("#products .media-body [type='checkbox']").length) {
            $(".productFilter-select-all input[type='checkbox']").prop('checked', false);
        }
        else {
            $(".productFilter-select-all input[type='checkbox']").prop('checked', true);
        }
        CheckSelectedItem();
        DisplayNotification(selectedCheckboxCount);
    });

    $("#assets .media-body [type='checkbox']").change(function () {
        selectedCheckboxCount = $("#assets .media-body [type='checkbox']:checked").length;
        if (selectedCheckboxCount < $("#assets .media-body [type='checkbox']").length) {
            $(".productFilter-select-all input[type='checkbox']").prop('checked', false);
        }
        else {
            $(".productFilter-select-all input[type='checkbox']").prop('checked', true);
        }
        CheckSelectedItem();
        DisplayNotification(selectedCheckboxCount);
    });

    $('.compare-tab-menu#Assets').on('click', function (e) {
        selectedCheckboxCount = 0;
        selectedCheckboxCount = $("#assets .media-body [type='checkbox']:checked").length;
        BulkActions(selectedCheckboxCount, "assets");
    });

    $('.compare-tab-menu#Products').on('click', function (e) {
        selectedCheckboxCount = 0;
        selectedCheckboxCount = $("#products .media-body [type='checkbox']:checked").length;
        BulkActions(selectedCheckboxCount, "products");
    });

    $('.compare-tab-menu#document-bulk').on('click', function (e) {
        selectedCheckboxCount = 0;
        selectedCheckboxCount = $("#documents .checkbox [type='checkbox']:checked").length;
        BulkActions(selectedCheckboxCount, "documents");
    });

    $('.compare-tab-menu#Searches').on('click', function (e) {
        selectedCheckboxCount = 0;
        selectedCheckboxCount = $("#searches .checkbox [type='checkbox']:checked").length;
        BulkActions(selectedCheckboxCount, "searches");
    });

    $('#compareProducts').on('click', function (e) {
        selectedCheckboxCount = 0;
        selectedCheckboxCount = $("#compareProduct .checkbox [type='checkbox']:checked").length;
        BulkActions(selectedCheckboxCount, "compareProduct");
    });

    $(".productFilter-select-all input[type='checkbox']").change(function () {
        boolSelectAllStatus = $('.productFilter-select-all input:checkbox').is(':checked');
        selectedCheckboxCount = 0;
        var $tabID = $(".dropdown").find(".active").attr('id');
        if (boolSelectAllStatus) {
            $(".card-display-list input[type='checkbox']").prop('checked', true);


            if ($("#compareProducts").is(":visible")) {
                $("#multi-compare").hide();
                $("#multi-compare").css('display', 'none');
            }


            if ($tabID == "Assets") {
                selectedCheckboxCount = $("#assets .media-body [type='checkbox']:checked").length;
                if (selectedCheckboxCount < $("#assets .media-body [type='checkbox']").length) {
                    $(".productFilter-select-all input[type='checkbox']").prop('checked', false);
                }
                else {
                    $(".productFilter-select-all input[type='checkbox']").prop('checked', true);
                }

                DisplayNotification(selectedCheckboxCount);
            }
            if ($tabID == "Products") {
                selectedCheckboxCount = $("#products .media-body [type='checkbox']:checked").length;
                if (selectedCheckboxCount < $("#products .media-body [type='checkbox']").length) {
                    $(".productFilter-select-all input[type='checkbox']").prop('checked', false);
                }
                else {
                    $(".productFilter-select-all input[type='checkbox']").prop('checked', true);
                }

                DisplayNotification(selectedCheckboxCount);
            }


            CheckSelectedItem();
        }

        else {
            $(".card-display-list input[type='checkbox']").prop('checked', false);
            $('#multi-enquiry, #multi-shared').addClass("hidden");
            $('.bulk-items').css("display", "none");
            $(".bulk-items-text").removeClass('hidden');
            $(".bulk-items").removeClass('active');
            $('.doc-items').css("display", "none");
            $('.doc-items').hide();
            $(".more-options-product").toggleClass('hidden');
            if ($tabID == "compareProducts") {
                $("#compareProducts").show();
            }
            else {
                $("#compareProducts").hide();
            }
            if ($('#multi-share,.multi-share').next('#shortlistShare').is(":visible")) {
                $('#multi-share,.multi-share').next('#shortlistShare').css("display", "none");
            }


            if ($('#multi-shared').next('#singleShortlistShare').is(":visible")) {
                $('#multi-shared').next('#singleShortlistShare').css("display", "none");
            }
        }

        //if ($(window).width() < 768) {
        //    $(".more-options-product").toggleClass('hidden');
        //    $("#compareProducts").hide();
        //}




    });


    function BulkActions(selectedCheckboxCount, tabName) {

        if (selectedCheckboxCount > 0) {
            $('.bulk-items').css("display", "inline-block");
            $('#multi-enquiry, #multi-shared').removeClass("hidden");
            $(".bulk-items-text").addClass('hidden');
            $("#multi-compare").addClass("hidden");
            $('#multi-compare').hide();

            if (tabName == "documents") {
                $('.bulk-items').css("display", "none");
                $('.doc-items').show();
                $('.doc-items').removeClass("hidden");
            }

            else if (tabName == "assets" || tabName == "products") {
                if (selectedCheckboxCount > 1 && selectedCheckboxCount < 5) {
                    $("#multi-compare").removeClass("hidden");
                    $('#multi-compare').show();
                }
                else {
                    $("#multi-compare").addClass("hidden");
                    $('#multi-compare').hide();
                }

            }

            else if (tabName == "searches") {
                $('.bulk-items').css("display", "inline-block");
                $('#multi-enquiry, #multi-shared').removeClass("hidden");
                $(".bulk-items-text").addClass('hidden');
            }
            else if (tabName == "compareProducts") {
                $('.bulk-items').css("display", "inline-block");
                $('#multi-enquiry, #multi-shared').removeClass("hidden");
                $(".bulk-items-text").addClass('hidden');
                $("#multi-compare").hide();
                $("#multi-compare").css('display', 'none');
            }

        }
        else {
            $('.bulk-items').css("display", "none");
            $('#multi-enquiry, #multi-shared').addClass("hidden");
            $(".bulk-items-text").removeClass('hidden');
            $("#multi-compare").hide();
            $("#multi-compare").css('display', 'none');
            $('.doc-items').css("display", "none");
            $('.doc-items').hide();
        }
    }


    function CheckSelectedItem() {
        selectedCheckboxCount = 0;
        var $tabID = $(".dropdown").find(".active").attr('id');
        if ($tabID == "Assets") {
            selectedCheckboxCount = 0;
            selectedCheckboxCount = $("#assets .media-body [type='checkbox']:checked").length;
        }
        else if ($tabID == "Products") {
            selectedCheckboxCount = 0;
            selectedCheckboxCount = $("#products .media-body [type='checkbox']:checked").length;
        }
        else if ($tabID == "document-bulk") {
            selectedCheckboxCount = 0;
            selectedCheckboxCount = $("#documents .checkbox [type='checkbox']:checked").length;
        }
        else if ($tabID == "Searches") {
            selectedCheckboxCount = 0;
            selectedCheckboxCount = $("#searches .checkbox [type='checkbox']:checked").length;
        }

        else if ($tabID == "compareProducts") {
            selectedCheckboxCount = 0;
            selectedCheckboxCount = $("#compareProduct .checkbox [type='checkbox']:checked").length;
        }

        else if ($tabID = "sharedAssets") {
            selectedCheckboxCount = 0;
            selectedCheckboxCount = $("#sharedAsset .checkbox [type='checkbox']:checked").length;
        }

        if (selectedCheckboxCount > 0) {
            $('.bulk-items').css("display", "inline-block");
            $('#multi-enquiry').removeClass("hidden");
            $(".bulk-items-text").addClass('hidden');
            $("#multi-compare").addClass("hidden");
            $('#multi-compare').hide();

            if ($tabID == "document-bulk") {
                $('.bulk-items').css("display", "none");
                $('.doc-items').show();
                $('.doc-items').removeClass("hidden");
            }

            else if ($tabID == "Assets" || $tabID == "Products") {
                if (selectedCheckboxCount > 1 && selectedCheckboxCount < 5) {
                    $(".more-options-product").removeClass('hidden');
                    $("#multi-compare").show();
                    $("#multi-compare").removeClass("hidden");
                }
                else {
                    $("#multi-compare").hide();
                    $("#multi-compare").addClass("hidden");
                }
            }

            else if ($tabID == "Searches") {
                $('.bulk-items').css("display", "inline-block");
                $('#multi-enquiry').removeClass("hidden");
                $(".bulk-items-text").addClass('hidden');
            }
            else if ($tabID == "compareProducts") {
                $('.bulk-items').css("display", "inline-block");
                $('#multi-enquiry, #multi-shared').removeClass("hidden");
                $(".bulk-items-text").addClass('hidden');
                $("#multi-compare").hide();
                $("#multi-compare").css('display', 'none');
                $("#compareProducts").show();
            }

            else if ($tabID = "sharedAssets") {
                selectedCheckboxCount = 0;
                selectedCheckboxCount = $("#sharedAsset .checkbox [type='checkbox']:checked").length;
                if (selectedCheckboxCount > 0) {
                    $('.bulk-items').css("display", "inline-block");
                    $('#multi-enquiry, #multi-shared').removeClass("hidden");
                    $(".bulk-items-text").addClass('hidden');

                }
                else {
                    $('.bulk-items').css("display", "none");
                    $('#multi-enquiry, #multi-shared').addClass("hidden");
                    $(".bulk-items-text").removeClass('hidden');
                    if (!($('.errorShortlist').hasClass("hidden"))) {
                        $('.errorShortlist').addClass("hidden");
                    }
                }
            }
        }
        else {
            $('.bulk-items').css("display", "none");
            $('#multi-enquiry').addClass("hidden");
            $(".bulk-items-text").removeClass('hidden');
            $("#multi-compare").hide();
            $("#multi-compare").css('display', 'none');
            $('.doc-items').css("display", "none");
            $('.doc-items').hide();
            // $("#compareProducts").show();
        }
    }

    /* -----------------------------------  SELECT ALL - BULK ACTION --DISPLAY ----------------*/

    //REMOVE   ----------------
    /* SINGLE REMOVE --START */
    $('.doc-remove').on('click', function (e) {
        e.preventDefault();
        var itemID = this.id;

        var $this = $(this);
        var request = $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: '/public/shortlist/removeselecteditem',
            data: "{'sitecoreItemID':" + JSON.stringify(itemID) + "}",
            success: function (e) {
                $("#searches .checkbox [type='checkbox']:checked").prop('checked', false);
                $this.closest('.category').empty();
                $this.closest('.category').addClass('removed');

                CheckSelectedItem();
            },
            error: function (e) {
               // console.log("Not removed");
            }, headers: {
                '__RequestVerificationToken': _token
            }
        });

    });

    /* SINLGE REMOVE --END */



    /* SINGLE REMOVE --START */

    $('.placematcher-header .icon-close-circle').on('click', function (e) {
        e.preventDefault();
        var $tabID = $(".dropdown").find(".active").attr('id');

        var itemID = this.id;
        var $this = $(this);
        var request = $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: '/public/shortlist/removeselecteditem',
            data: "{'sitecoreItemID':" + JSON.stringify(itemID) + "}",
            success: function (e) {
                $this.closest('.category').find('input:checkbox:checked:visible:first').prop('checked', false);
                $this.closest('.category').empty();
                $this.closest('.category').addClass('removed');
                selectedCheckboxCount = 0;
                CheckSelectedItem();


                var dataId = $(this).closest('.category').attr("data-id");
                $(".product-filter .cards-specification td").filter("[data-id='" + dataId + "']").remove();
                $(".product-filter .bg-white td").filter("[data-id='" + dataId + "']").remove();
            },
            error: function (e) {
                //console.log("Not removed");
            }, headers: {
                '__RequestVerificationToken': _token
            }
        });
    });

    /* SINGLE REMOVE--END */

    /* SINGLE REMOVE SEARCH--START */
    $('.searchUrlId .icon-close-circle').on('click', function (e) {
        e.preventDefault();
        var shortlistitemID = this.id;
        var $this = $(this);
        var request = $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: '/public/shortlist/removeselectedsearchurl',
            data: "{'searchShortlistItemId':" + JSON.stringify(shortlistitemID) + "}",
            success: function (e) {
                $("#searches .checkbox [type='checkbox']:checked").prop('checked', false);
                $this.closest('.category').addClass('removed');
                $this.closest('.category').empty();
                selectedCheckboxCount = 0;
                CheckSelectedItem();
            },
            error: function (e) {
               // console.log("Not removed");
            }, headers: {
                '__RequestVerificationToken': _token
            }
        });

    });


    /* BULK REMOVE --START */

    $('#multi-remove,#doc-multi-remove').on('click', function (e) {
        e.preventDefault();
        var url;
        var $this = $(this);
        var $tabID = $(".dropdown").find(".active").attr('id');
        var selectedID = [];
        if ($tabID == "Assets") {
            $("input:checkbox[name=checkboxAsset]:checked").each(function () {
                selectedID.push($(this).attr("id"));
            });

            url = '/public/shortlist/removeallselecteditem';

        }
        else if ($tabID == "Products") {
            $("input:checkbox[name=checkboxProduct]:checked").each(function () {
                selectedID.push($(this).attr("id"));
            });
            url = '/public/shortlist/removeallselecteditem';

        }
        else if ($tabID == "document-bulk") {
            $("input:checkbox[name=checkboxDocument]:checked").each(function () {
                selectedID.push($(this).attr("id"));
            });
            url = '/public/shortlist/removeallselecteditem';
        }
        else if ($tabID == "Searches") {
            $("input:checkbox[name=checkboxSearch]:checked").each(function () {
                selectedID.push($(this).attr("id"));
            });
            url = '/public/shortlist/removeallselectedsearchurl';

        }
        else if ($tabID == "compareProducts") {
            var categoryId = $("#hiddenCategory").val();
            if (categoryId == 1) {
                $("input:checkbox[name=chCompareAsset]:checked").each(function () {
                    var $this = $(this);
                    var currentId = $this.attr('id');
                    $(this).closest('.category').find('input:checkbox:checked:visible:first').prop('checked', false);
                    $(this).closest('.category').addClass('removed');
                    $(this).closest('.category').empty();
                    $this.closest('.category').remove();
                    $("td." + currentId).remove();
                    selectedCheckboxCount = 0;
                    CheckSelectedItem();
                    var dataId = $(this).closest('.category').attr("data-id");
                    $(".product-filter .cards-specification td").filter("[data-id='" + dataId + "']").remove();
                    $(".product-filter .bg-white td").filter("[data-id='" + dataId + "']").remove();
                });
            }
            else if (categoryId == 2)
                $("input:checkbox[name=chCompareProduct]:checked").each(function () {
                    var $this = $(this);
                    var currentId = $this.attr('id');
                    $(this).closest('.category').find('input:checkbox:checked:visible:first').prop('checked', false);
                    $(this).closest('.category').addClass('removed');
                    $(this).closest('.category').empty();
                    $this.closest('.category').remove();
                    $("td." + currentId).remove();
                    selectedCheckboxCount = 0;
                    CheckSelectedItem();
                    var dataId = $(this).closest('.category').attr("data-id");
                    $(".product-filter .cards-specification td").filter("[data-id='" + dataId + "']").remove();
                    $(".product-filter .bg-white td").filter("[data-id='" + dataId + "']").remove();
                });

            if ($("#compareProduct .checkbox [type='checkbox']:checked").length == 0) {
                $("#compareProdAssets").hide();
            }
        }
        var request = $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: url,
            data: "{'selectedID':" + JSON.stringify(selectedID) + "}",
            success: function (e) {

                if ($tabID == "Assets") {
                    $("input:checkbox[name=checkboxAsset]:checked").each(function () {
                        $(this).closest('.category').find('input:checkbox:checked:visible:first').prop('checked', false);
                        $(this).closest('.category').addClass('removed');
                        $(this).closest('.category').empty();
                        selectedCheckboxCount = 0;

                    });
                }
                else if ($tabID == "Products") {
                    $("input:checkbox[name=checkboxProduct]:checked").each(function () {
                        $(this).closest('.category').find('input:checkbox:checked:visible:first').prop('checked', false);
                        $(this).closest('.category').addClass('removed');
                        $(this).closest('.category').empty();
                        selectedCheckboxCount = 0;

                    });
                }

                else if ($tabID == "document-bulk") {
                    $("input:checkbox[name=checkboxDocument]:checked").each(function () {
                        $(this).closest('.category').find('input:checkbox:checked:visible:first').prop('checked', false);
                        $(this).closest('.category').addClass('removed');
                        $(this).closest('.category').empty();
                        selectedCheckboxCount = 0;

                    });
                }
                else if ($tabID == "Searches") {
                    $("input:checkbox[name=checkboxSearch]:checked").each(function () {
                        $(this).closest('.category').find('input:checkbox:checked:visible:first').prop('checked', false);
                        $(this).closest('.category').addClass('removed');
                        $(this).closest('.category').empty();
                        selectedCheckboxCount = 0;

                    });
                }
                CheckSelectedItem();
            },
            error: function (e) {
                //console.log("Not removed");
            }, headers: {
                '__RequestVerificationToken': _token
            }
        });

    });
    /* BULK REMOVE--START */

    //REMOVE END    -----------------

    /* SINGLE SHARE PRODUCTS & ASSETS-- START */

    $('.singleShareShortlist').on('click', function (e) {
        var $this = $(this);

        e.preventDefault();
        var sharedlistID;
        var $this = $(this);
        var sharedURL = [location.protocol + '//' + location.host] + '/shared%20list';
        var $tabID = $(".dropdown").find(".active").attr('id');
        var selectedID = $(this).attr("id");

        if ($tabID == "Assets") {
            var categoryId = 1;
        }
        else if ($tabID == "Products") {
            var categoryId = 2;
        }

        var formData = {};
        formData.CategoryId = categoryId;
        formData.itemID = selectedID;
        var $card = $this.parent().parent().parent();
        var isAdded = $(this).hasClass("active");
        if (!isAdded) {

            $card.css("overflow", "visible");
            var request = $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: '/public/shortlist/addsharedlistitem',
                data: "{'formData':" + JSON.stringify(formData) + "}",
                success: function (response) {
                    $this.addClass("active");
                    sharedlistID = response;
                    if (sharedlistID != 0) {
                        $this.next("#singleShortlistShare").toggle(function (e) {
                            shareToggle(sharedlistID, sharedURL);
                        });
                    }
                },
                error: function (e) {
                    //console.log("Error occurred while compare");
                }, headers: {
                    '__RequestVerificationToken': _token
                }
            });

        }
        else {
            $this.next("#singleShortlistShare").toggle(function (e) {
                $card.css("overflow", "hidden");
                $this.removeClass("active");
            });
        }
    });

    /* SINGLE SHARE -- END */


    /* SINGLE SHARE DOCUMENTS & SEARCHES -- START */

    $('.category td.singleshareShortlist').on('click', function (e) {
        e.preventDefault();
        var sharedlistID;
        var categoryId = 0;
        var sharedURL = [location.protocol + '//' + location.host] + '/shared%20list';
        $this = $(this);
        var $tabID = $(".dropdown").find(".active").attr('id');
        var selectedID = $(this).attr("id");

        if ($tabID == "document-bulk") {
            categoryId = 3;
        }
        else if ($tabID == "Searches") {
            categoryId = 4;
        }
        var formData = {};
        formData.CategoryId = categoryId;
        formData.itemID = selectedID;
        var isAdded = $this.hasClass("active");
        if (!isAdded) {
            var request = $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: '/public/shortlist/addsharedlistitem',
                data: "{'formData':" + JSON.stringify(formData) + "}",
                success: function (response) {
                    $this.addClass("active");
                    sharedlistID = response;
                    if (sharedlistID != 0) {
                        $this.children("#singleShortlistShare").toggle(function (e) {
                            shareToggle(sharedlistID, sharedURL);
                        });
                    }
                },
                error: function (e) {
                    //console.log("Error occurred while compare");
                }, headers: {
                    '__RequestVerificationToken': _token
                }
            });

        }
        else {
            $this.children("#singleShortlistShare").toggle(function (e) {
                $this.removeClass("active");
            });
        }

    });

    /* SINGLE SHARE-- -- End */


    /* SINGLE SHARE --PRODUCT COMPARE START */
    //$("#compareProdAssets").on('click', ".singleShareShortlist", function (e) {
    $(document).on('click', "a[name='share']", function (e) {
        e.preventDefault();
        var sharedlistID;

        $this = $(this);
        var $tabID = $(".dropdown").find(".active").attr('id');
        var selectedID = $(this).attr("id");

        var categoryId = $("#hiddenCategory").val();
        var sharedURL = [location.protocol + '//' + location.host] + '/shared%20list';
        var $card = $this.parent().parent().parent();
        var formData = {};
        formData.CategoryId = categoryId;
        formData.itemID = selectedID;
        var isAdded = $(this).hasClass("active");
        if (!isAdded) {
            //  $card.css("overflow", "visible");
            var request = $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: '/public/shortlist/addsharedlistitem',
                data: "{'formData':" + JSON.stringify(formData) + "}",
                success: function (response) {
                    $(this).addClass("active");
                    sharedlistID = response;
                    if (sharedlistID != 0) {
                        $this.next("#singleShortlistShare").toggle(function (e) {
                            shareToggle(sharedlistID, sharedURL);
                        });
                    }
                },
                error: function (e) {
                   // console.log("Error occurred while compare");
                }, headers: {
                    '__RequestVerificationToken': _token
                }
            });
        }
        else {
            $this.next("#singleShortlistShare").toggle(function (e) {
                // $card.css("overflow", "visible");
                $this.removeClass("active");
            });
        }
    });

    /* SINGLE SHARE -PRODUCT COMPARE- START */


    /* BULK SHARE ASSETS, PRODUCTS,DOCUMENTS,SEARCHES-- START  */

    $('#multi-share,.multi-share').on('click', function (e) {
        e.preventDefault();
        var categoryId = 0;
        var sharedlistID;
        var sharedURL = [location.protocol + '//' + location.host] + '/shared%20list';
        $this = $(this);
        var $tabID = $(".dropdown").find(".active").attr('id');
        var selectedID = [];
        if ($tabID == "Assets") {
            categoryId = 1;
            $("input:checkbox[name=checkboxAsset]:checked").each(function () {
                selectedID.push($(this).attr("id"));
            });

        }
        else if ($tabID == "Products") {
            categoryId = 2;
            $("input:checkbox[name=checkboxProduct]:checked").each(function () {
                selectedID.push($(this).attr("id"));
            });
        }

        else if ($tabID == "document-bulk") {
            $("input:checkbox[name=checkboxDocument]:checked").each(function () {
                selectedID.push($(this).attr("id"));
            });
            categoryId = 3;
        }
        else if ($tabID == "Searches") {
            categoryId = 4;
            $("input:checkbox[name=checkboxSearch]:checked").each(function () {
                selectedID.push($(this).attr("id"));
            });
        }
        else if ($tabID == "compareProducts") {

            categoryId = $("#hiddenCategory").val();
            if (categoryId == 1) {
                $("input:checkbox[name=chCompareAsset]:checked").each(function () {
                    selectedID.push($(this).attr("id"));
                });
            }
            else if (categoryId == 2)
                $("input:checkbox[name=chCompareProduct]:checked").each(function () {
                    selectedID.push($(this).attr("id"));
                });

        }

        var formData = {};
        formData.CategoryId = categoryId;
        formData.itemID = selectedID;
        var isAdded = $(this).hasClass("active");
        if (!isAdded) {
            var request = $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: '/public/shortlist/addsharedlistitem',
                data: "{'formData':" + JSON.stringify(formData) + "}",
                success: function (response) {

                    $this.addClass("active");
                    sharedlistID = response;
                    if (sharedlistID != 0) {
                        $this.next('#shortlistShare').toggle(function (e) {
                            shareToggle(sharedlistID, sharedURL);
                        });
                    }
                },
                error: function (e) {
                    //console.log("Error occurred while compare");
                }, headers: {
                    '__RequestVerificationToken': _token
                }
            });
        }
        else {
            $this.next('#shortlistShare').toggle(function (e) {
                $this.removeClass("active");
            });
        }

    });

    /* BULK SHARE -- END */


    /* END */

    //COMPARE  ----------------------------------------------

    /* BULK COMPARE---- START */
    $('#multi-compare').on('click', function (e) {
        e.preventDefault();
        if ($tabID != "compareProducts") {
            var url;
            var $tabID = $(".dropdown").find(".active").attr('id');
            var i = 1;
            var compareItemID1 = 0;
            var compareItemID2 = 0;
            var compareItemID3 = 0;
            var compareItemID4 = 0;
            if ($tabID == "Products") {
                $("#compareProducts a").text("Compare Product");
                $("input:checkbox[name=checkboxProduct]:checked").each(function () {
                    if (i == 1)
                        compareItemID1 = $(this).attr("id");
                    if (i == 2)
                        compareItemID2 = $(this).attr("id");
                    if (i == 3)
                        compareItemID3 = $(this).attr("id");
                    if (i == 4)
                        compareItemID4 = $(this).attr("id");
                    i++;
                });

                url = '/public/shortlist/productcompare';
            }
            else if ($tabID == "Assets") {
                $("#compareProducts a").text("Compare Asset");
                $("input:checkbox[name=checkboxAsset]:checked").each(function () {
                    if (i == 1)
                        compareItemID1 = $(this).attr("id");
                    if (i == 2)
                        compareItemID2 = $(this).attr("id");
                    if (i == 3)
                        compareItemID3 = $(this).attr("id");
                    if (i == 4)
                        compareItemID4 = $(this).attr("id");
                    i++;
                });

                url = '/public/shortlist/assetcompare';
            }

            var request = $.ajax({
                type: "GET",
                url: url,
                datatype: "html",
                contentType: "text",
                data: {
                    'compareItemID1': compareItemID1,
                    'compareItemID2': compareItemID2,
                    'compareItemID3': compareItemID3,
                    'compareItemID4': compareItemID4
                },
                success: function (response) {
                    e.preventDefault();
                    $("#compareProducts").show();
                    $('.nav li').not(parent).removeClass('active');
                    $("#compareProducts").addClass('active');
                    $(".tab-content .tab-pane").removeClass('in active');
                    $("#compareProduct").addClass('in active');
                    $("#dropdownMenu1").text("Compare Product").append(' <span class="caret"></span>');

                    $("#compareProdAssets").html(response);
                    var selectAll = $('.productFilter-select-all input:checkbox').is(':checked');

                    if (selectAll) {
                        $(".card-display-list input[type='checkbox']").prop('checked', true);
                    }
                    else {
                        $(".card-display-list input[type='checkbox']").prop('checked', false);
                    }
                    $("#multi-compare").hide();
                    $("#multi-compare").css('display', 'none');

                },
                error: function (response) {
                    $("#ShortlistErrorMessage").modal("show");
                    $("#compareLimitError").addClass('hidden');
                    $("#compareLimitMobileError").addClass('hidden');
                    $("#compareError").removeClass('hidden');
                    if ($tabID == "Assets") {
                        $(".tab-content #Assets").find().addClass('active');
                        $("#assets").show();
                    }
                    else if ($tabID == "Products") {
                        $("#Products").addClass('active');
                        $("#products").show();
                    }

                }
            });
        }
    });
    /* BULK COMPARE---- END */

    //COMPARE  --------------------------------

});

;
jQuery(function ($) {

    var enquireSelectedID = [];
    var bulkEnquiryItemId = "";
    var lat = "";
    var lon = "";
    var businessUnit = "";

    //  GTM Tracking For Form Abandonment.
    var eventAction, i;

    var checkSubmit = function () {
        i = window.dataLayer.length - 1;
        while (i > -1) {
            if ((window.dataLayer[i]['event'] == 'EnquiryFormSubmit') ||
                (window.dataLayer[i]['event'] == 'SubscriptionFormSubmit')) {
                return true;
            }
            i--;
        }
    };

    var getDataLayerFormElements = function () {
        try {
            var results = $.grep(window.dataLayer,
                function (e) {
                    return e['event'] == 'gtm.click' && e['gtm.elementUrl'] == ''
                        && e['gtm.elementId'].length > 0;
                });
            return results;
        } catch (ex) {
            cosole.log(ex);
        }

        return [];
    }

    var formTouched = function () {
        if (window.dataLayer) {
            var result = getDataLayerFormElements();

            if (result.length === 0) {
                return false;
            } else {
                // single or multiple items found
                return true;
            }
        }

        return false;
    }

    var getLastDataLayerAction = function () {
        var result = getDataLayerFormElements();

        if (result.length == 1) {
            // single item found
            var elementId = result[0]['gtm.elementId'];
            var category = $('#' + elementId).data('gtmEventCategory');
            var dataId = $('#' + elementId).data('gtmId');

            return category + '|' + dataId;

        } else {
            // multiple items found, get last element.
            var elementId = result[result.length - 1]['gtm.elementId'];
            var category = $('#' + elementId).data('gtmEventCategory');
            var dataId = $('#' + elementId).data('gtmId');

            return category + '|' + dataId;
        }
    }

    $(window).on('beforeunload', function () {
        if (formTouched() && !checkSubmit()) {

            var lastEventAction = getLastDataLayerAction();

            window.dataLayer.push({
                'event': 'formAbandonment',
                'eventCategory': 'Form Abandonment',
                'eventAction': lastEventAction
            });
        }
    });

    // GTM Tracking For Form Abandonment.

    stockland.modules.maps.getUserGeoLocation(function (position) {
        if (position) {
            lat = position.latitude;
            lon = position.longitude;
            $("#Latitude").val(lat);
            $("#Longitude").val(lon);
        }
    });

    $(document).ready(function () {
        $(document).ajaxStart(function () {
            if (document.getElementById('subscribeBtn')) {
                document.getElementById('subscribeBtn').disabled = true;
                // console.log('start');
            }
            if (document.getElementById('submitRSVPForm')) {
                document.getElementById('submitRSVPForm').disabled = true;
                //console.log('start');
            }
            if (document.getElementById('contactUsEnquirybtn')) {
                document.getElementById('contactUsEnquirybtn').disabled = true;
                //console.log('start');
            }
        });
        $(document).ajaxStop(function () {
            if (document.getElementById('subscribeBtn')) {
                document.getElementById('subscribeBtn').disabled = false;
                // console.log('stop');
            }
            if (document.getElementById('submitRSVPForm')) {
                document.getElementById('submitRSVPForm').disabled = false;
                //console.log('stop');
            }
            if (document.getElementById('contactUsEnquirybtn')) {
                document.getElementById('contactUsEnquirybtn').disabled = false;
                //console.log('stop');
            }
            var errorDiv = $('.has-error:visible').first();
            if (errorDiv.length > 0) {
                //console.log('has error');
                $('html .enquiry-body, body .enquiry-body, div .enquiry-body, .modal .enquiry-body, .modal-content .enquiry-body').animate({ scrollTop: $(".has-error").first() }, 500);
                $(".has-error").first().focus();
            }
            else {
                //console.log('no error');
            }
        });
        $(document).ajaxError(function () {
            if (document.getElementById('makeEnquiryBtn')) {
                document.getElementById('makeEnquiryBtn').disabled = false;
                // console.log('stop');
            }
            if (document.getElementById('subscribeBtn')) {
                document.getElementById('subscribeBtn').disabled = false;
                //console.log('stop');
            }
            if (document.getElementById('submitRSVPForm')) {
                document.getElementById('submitRSVPForm').disabled = false;
                //  console.log('stop');
            }
            if (document.getElementById('contactUsEnquirybtn')) {
                document.getElementById('contactUsEnquirybtn').disabled = false;
                //  console.log('stop');
            }
        });

        // ProcessPreloadEnquiryForm();

        if ($('#enquiryDisplayForm #enquiryForm').get(0)) {
            InitializeAdaptiveLabel();
        }
    });

    function ProcessPreloadEnquiryForm() {
        var preloadEnquiryForm = $('#preloadEnquiryForm').val();

        if (preloadEnquiryForm == 'true') {
            // console.log('Process Preload EnquiryForm');

            var enquiryItemId = $('.enquireFormBtn').attr('id');
            SelectEnquiryForm(enquiryItemId, '', true);
        }
    }

    //EVENTS

    //Issue: 16367 - TRIM user input
    $(document).on("focusout", "input[type='text']:visible", function () {
        $(this).val($(this).val().trim());
    });

    $(document).on("click", "#loadEnquiry label", function () {
        $('#loadEnquiry #' + $(this).attr('for')).focus();
    });

    $(document).on("click", "#mainEnquiryForm label", function () {
        $('#mainEnquiryForm #' + $(this).attr('for')).focus();
    });


    $('.enquireFormBtn').on('click', function (e) {
        e.preventDefault();
        // show form
        var $this = $(this);
        var isDesktop = !$this.hasClass('mobile');
        var isHighValueAsset = $this.hasClass('hva-asset');
        var enquiryItemId = $this.attr('id');
        SelectEnquiryForm(enquiryItemId, '', isDesktop, isHighValueAsset);
    });

    $('.displayEnquiryForm').on('click', function (e) {
        e.preventDefault();
        // show form
        var $this = $(this);
        var enquiryItemId = $this.attr('id');
        SelectEnquiryForm(enquiryItemId, '', true);
    });
    // Show fields on form based on Leasing enquiry option selected
    $(document).on('change', 'input:radio[data-gtm-id="Iwouldliketoenquireabout"]', function (event) {
        var bu = $(this).attr("data-gtm-bu");
        businessUnit = bu;
        var selectedItem = $(this).val();

        if (bu === "Leasing") {
            ShowLeasingFormFields(selectedItem);
        }
    });

    function ShowLeasingFormFields(selectedItem) {
        switch (selectedItem.trim()) {
            case "Advertising Opportunities":
                $(".stateForm").removeClass("hidden");
                $(".shopping").removeClass("hidden");
                $(".productInterest").removeClass("hidden");
                $(".campaignLocation").removeClass("hidden");
                $(".shopUsage").addClass("hidden");
                $(".lengthLeaseRequired").addClass("hidden");
                $(".preferredContactMethod").addClass("hidden");
                $(".tenancySize").addClass("hidden");
                $(".property").addClass("hidden");
                $(".howtohelp").removeClass("hidden");
                $("#dateRange").removeClass("hidden");
                InitializeCalendar()
                break;
            case "Pop-Ups":
                //case "Casual Leasing":
                $(".stateForm").removeClass("hidden");
                $(".shopping").removeClass("hidden");
                $(".productInterest").addClass("hidden");
                $(".campaignLocation").addClass("hidden");
                $(".shopUsage").addClass("hidden");
                $(".lengthLeaseRequired").removeClass("hidden");
                $(".preferredContactMethod").addClass("hidden");
                $(".tenancySize").addClass("hidden");
                $(".property").addClass("hidden");
                $(".howtohelp").removeClass("hidden");
                $("#dateRange").addClass("hidden");
                break;
            case "Retail Leasing":
                $(".stateForm").removeClass("hidden");
                $(".shopping").removeClass("hidden");
                $(".productInterest").addClass("hidden");
                $(".campaignLocation").addClass("hidden");
                $(".shopUsage").addClass("hidden");
                $(".lengthLeaseRequired").removeClass("hidden");
                $(".preferredContactMethod").removeClass("hidden");
                $(".tenancySize").addClass("hidden");
                $(".property").addClass("hidden");
                $(".howtohelp").removeClass("hidden");
                $("#dateRange").addClass("hidden");
                break;
            case "Office Leasing":
                $(".stateForm").removeClass("hidden");
                $(".shopping").addClass("hidden");
                $(".property").removeClass("hidden");
                $(".productInterest").addClass("hidden");
                $(".campaignLocation").addClass("hidden");
                $(".shopUsage").addClass("hidden");
                $(".lengthLeaseRequired").addClass("hidden");
                $(".preferredContactMethod").addClass("hidden");
                $(".tenancySize").removeClass("hidden");
                $(".property").removeClass("hidden");
                $(".howtohelp").removeClass("hidden");
                $("#dateRange").addClass("hidden");
                break;
            case "Logistics Leasing":
                $(".stateForm").removeClass("hidden");
                $(".shopping").addClass("hidden");
                $(".productInterest").addClass("hidden");
                $(".campaignLocation").addClass("hidden");
                $(".shopUsage").addClass("hidden");
                $(".lengthLeaseRequired").addClass("hidden");
                $(".preferredContactMethod").addClass("hidden");
                $(".tenancySize").removeClass("hidden");
                $(".property").removeClass("hidden");
                $(".howtohelp").removeClass("hidden");
                $("#dateRange").addClass("hidden");
                break;
            case "Business Park Leasing":
                $(".stateForm").removeClass("hidden");
                $(".property").removeClass("hidden");
                $(".shopping").addClass("hidden");
                $(".productInterest").addClass("hidden");
                $(".campaignLocation").addClass("hidden");
                $(".shopUsage").addClass("hidden");
                $(".lengthLeaseRequired").addClass("hidden");
                $(".preferredContactMethod").addClass("hidden");
                $(".tenancySize").removeClass("hidden");
                $(".howtohelp").removeClass("hidden");
                $("#dateRange").addClass("hidden");
                break;
        }
        if ($("#State").val() !== undefined && $("#State").val() !== "") {

            var stateSelector = 'input:radio[data-gtm-id="State"][value="' + $("#State").val() + '"]';

            $(stateSelector).click();
        }
    }

    //On change of state interested in
    //Defect #10355
    $(document).on('change', 'input:radio[data-gtm-id="InterestedIn"]', function (event) {
        var bu = $(this).attr("data-gtm-bu");
        var selectedState = event.currentTarget.defaultValue;
        businessUnit = bu;
        if (bu === "Retirement Living") {
            $.ajax({
                url: '/public/enquiry/UpdateRLVillageList',
                method: "POST",
                data: {
                    'state': selectedState
                },
                success: function (response) {

                    var select = $("[data-gtm-id='VillagePreferenceList']");

                    select.empty();
                    select.append("<option value=''>-- Select Item --</option>");

                    for (var j = 0; j < response.length; j++) {
                        select.append("<option value='" + response[j] + "'>" + response[j] + "</option>");
                    }
                }
            });
        }
        else if (bu === "Residential") {
            $.ajax({
                url: '/public/enquiry/updatecommunitylist',
                method: "POST",
                data: {
                    'state': selectedState
                },
                success: function (response) {

                    var select = $("[data-gtm-id='CommunityPreferenceList']");

                    select.empty();
                    select.append("<option value=''>-- Select Item --</option>");

                    for (var j = 0; j < response.length; j++) {
                        select.append("<option value='" + response[j] + "'>" + response[j] + "</option>");
                    }
                }
            });
        }
    });

    // Check for state field change on leasing form
    $(document).on('change', 'input:radio[data-gtm-id="State"]', function (event) {
        var bu = $(this).attr("data-gtm-bu");
        var selectedState = event.currentTarget.defaultValue;
        var enqType = $('.reduce-bottom-margin.btn.active')[0].innerText;
        if (bu === "Leasing" && enqType != "Office Leasing" && enqType != "Logistics Leasing") {
            $.ajax({
                url: '/public/enquiry/updateleasinglist',
                method: "POST",
                data: {
                    'state': selectedState,
                    'enquiryType': enqType
                },
                success: function (response) {
                    var select = $("[data-gtm-id='ShoppingCentre']");

                    select.empty();
                    select.append("<option value=''>-- Select Item --</option>");

                    for (var j = 0; j < response.length; j++) {
                        select.append("<option value='" + response[j] + "'>" + response[j] + "</option>");
                    }

                    if ($("#Suburb").val() !== undefined && $("#Suburb").val() !== "" && $("#State").val() !== undefined && selectedState === $("#State").val()) {
                        $(select).val($("#Suburb").val());
                    }
                }
            });
        }
        if (bu === "Leasing" && (enqType == "Office Leasing" || enqType == "Logistics Leasing" || enqType == "Business Park Leasing")) {
            $.ajax({
                url: '/public/enquiry/updateleasinglist',
                method: "POST",
                data: {
                    'state': selectedState,
                    'enquiryType': enqType
                },
                success: function (response) {
                    var select = $("[data-gtm-id='PropertyName']");

                    select.empty();
                    select.append("<option value=''>-- Select Item --</option>");

                    for (var j = 0; j < response.length; j++) {
                        select.append("<option value='" + response[j] + "'>" + response[j] + "</option>");
                    }

                    if ($("#Suburb").val() !== undefined && $("#Suburb").val() !== "" && $("#State").val() !== undefined && selectedState === $("#State").val()) {
                        $(select).val($("#Suburb").val());
                    }
                }
            });
        }
    });

    $(document).on('change', '.reduce-bottom-margin.btn', function (event) {
        var bu = $(this).find('input[class=\"gtm-track-formfield\"]').attr("data-gtm-bu");
        var enqType = $('.reduce-bottom-margin.btn.active')[0].innerText;

        if (bu === "Leasing" && (enqType == "Office Leasing" || enqType == "Logistics Leasing")) {
            $.ajax({
                url: '/public/enquiry/updateproductnames',
                method: "POST",
                data: {
                    'enquiryType': enqType
                },
                success: function (response) {
                    var select = $("[data-gtm-id='PropertyName']");

                    select.empty();
                    select.append("<option value=''>-- Select Item --</option>");

                    for (var j = 0; j < response.length; j++) {
                        select.append("<option value='" + response[j] + "'>" + response[j] + "</option>");
                    }

                    if ($("#Suburb").val() !== undefined && $("#Suburb").val() !== "" && $("#State").val() !== undefined && selectedState === $("#State").val()) {
                        $(select).val($("#Suburb").val());
                    }
                }
            });
        }
        //testing values for retail only
        if (bu === "Leasing" && enqType == "Retail Leasing") {
            $.ajax({
                url: '/public/enquiry/updateproductnames',
                method: "POST",
                data: {
                    'enquiryType': enqType
                },
                success: function (response) {
                    var select = $("[data-gtm-id='ShoppingCentre']");

                    select.empty();
                    select.append("<option value=''>-- Select Item --</option>");

                    for (var j = 0; j < response.length; j++) {
                        select.append("<option value='" + response[j] + "'>" + response[j] + "</option>");
                    }

                    if ($("#Suburb").val() !== undefined && $("#Suburb").val() !== "" && $("#State").val() !== undefined && selectedState === $("#State").val()) {
                        $(select).val($("#Suburb").val());
                    }
                }
            });
        }
    });

    $('#loadEnquiryForm').on('change', '.best-time-call input[type=radio]', function (e) {
        if ($(this).parent().hasClass("campaign")) {
            var selectedVal = $(this).val();
            if (selectedVal == "State") {
                $("#loadEnquiryForm .best-time-call.camp").removeClass("hidden");
                $("#loadEnquiryForm .shopping.camp").addClass("hidden");
            }
            else if (selectedVal == "Shopping Centre") {
                $("#loadEnquiryForm .shopping.camp").removeClass("hidden");
                $("#loadEnquiryForm .best-time-call.camp").addClass("hidden");
            }
            else {
                $("#loadEnquiryForm .best-time-call.camp").addClass("hidden");
                $("#loadEnquiryForm .shopping.camp").addClass("hidden");
            }
        }
    });

    $('.enquiryLoad').on('change', '.best-time-call input[type=radio]', function (e) {
        if ($(this).parent().hasClass("campaign")) {
            var selectedVal = $(this).val();
            if (selectedVal == "State") {
                $(".enquiryLoad .best-time-call.camp").removeClass("hidden");
                $(".enquiryLoad .shopping.camp").addClass("hidden");
            }
            else if (selectedVal == "Shopping Centre") {
                $(".enquiryLoad .shopping.camp").removeClass("hidden");
                $(".enquiryLoad .best-time-call.camp").addClass("hidden");
            }
            else {
                $(".enquiryLoad .best-time-call.camp").addClass("hidden");
                $(".enquiryLoad .shopping.camp").addClass("hidden");
            }
        }
    });

    $('#loadEnquiryForm').on('click', '.displayEnquiryForm .enquiry-content', function (e) {
        $(".enquireFormBackBtn").removeClass("hidden");
        e.preventDefault();
        // show form
        var enquiryItemId = $('#EnquiryItemId').val();
        var enquiryType = $(this).parents('div.displayEnquiryForm').attr('id');
        SelectEnquiryForm(enquiryItemId, enquiryType, true);
    });

    $('.enquiryLoad').on('click', '.displayEnquiryForm .enquiry-content', function (e) {
        $(".enquireFormBackBtn").removeClass("hidden");
        e.preventDefault();
        // show form
        var enquiryItemId = $('#EnquiryItemId').val();
        var enquiryType = $(this).parents('div.displayEnquiryForm').attr('id');
        SelectEnquiryForm(enquiryItemId, enquiryType, false);
    });

    //BEGIN : ENQUIRY
    $('#loadEnquiryForm').on('click', 'input[type=checkbox]', function (e) {
        e.stopImmediatePropagation();
        var checkboxClassName = $(this).data("checkbox-class-name");
        if (this.checked) {
            $("#loadEnquiryForm #" + checkboxClassName + " :input").each(function () {

                if ($(this).attr('type') == "radio") {
                    $(this).parent().parent().parent().parent().removeClass('hidden');
                }
                else if ($(this).attr('type') == "text") {
                    $(this).parent().parent().removeClass('hidden');
                }
            });
        }
        else {
            $("#loadEnquiryForm #" + checkboxClassName + " :input").each(function () {

                if ($(this).attr('type') == "radio") {
                    $(this).parent().parent().parent().parent().addClass('hidden');
                }
                else if ($(this).attr('type') == "text") {
                    $(this).parent().parent().addClass('hidden');
                }
            });
        }
    });

    $('#enquiryForm').on('click', 'input[type=checkbox]', function (e) {
        e.stopImmediatePropagation();
        var checkboxClassName = $(this).data("checkbox-class-name");
        if (this.checked) {
            $("#loadEnquiry #" + checkboxClassName + " :input").each(function () {

                if ($(this).attr('type') == "radio") {
                    $(this).parent().parent().parent().parent().removeClass('hidden');
                }
                else if ($(this).attr('type') == "text") {
                    $(this).parent().parent().removeClass('hidden');
                }
            });
        }
        else {
            $("#loadEnquiry #" + checkboxClassName + " :input").each(function () {

                if ($(this).attr('type') == "radio") {
                    $(this).parent().parent().parent().parent().addClass('hidden');
                }
                else if ($(this).attr('type') == "text") {
                    $(this).parent().parent().addClass('hidden');
                }
            });
        }
    });

    $('.enquiryLoad').on('click', 'input[type=checkbox]', function (e) {
        event.stopImmediatePropagation();
        var checkboxClassName = $(this).data("checkbox-class-name");
        if (this.checked) {
            $(".enquiryLoad #" + checkboxClassName + " :input").each(function () {
                if ($(this).attr('type') == "radio") {
                    $(this).parent().parent().parent().parent().removeClass('hidden');
                }
                else if ($(this).attr('type') == "text") {
                    $(this).parent().parent().removeClass('hidden');
                }
            });
        }
        else {
            $(".enquiryLoad #" + checkboxClassName + " :input").each(function () {
                if ($(this).attr('type') == "radio") {
                    $(this).parent().parent().parent().parent().addClass('hidden');
                }
                else if ($(this).attr('type') == "text") {
                    $(this).parent().parent().addClass('hidden');
                }
            });
        }
    });

    //Close
    $(".navbar-nav li.enquiry").on('click', ".close", function (e) {
        $("li.enquiry").removeClass('open');
        $(".enquiry .form").removeClass('active');
        $("body").removeClass('overflow');
        $("#bs-navbarcol-sm-3").css({
            overflow: "hidden"
        });
        return false;
    });
    //Close HVA enq form
    $(".enquire-form-container #HVAEnqFormClose").on('click', ".close", function (e) {
        $("enquire-form").removeClass('is-open');
        return false;
    });
    function EnquirySubmit(isDesktop, e, elementClicked, isModal) {
        var $elementClicked = $(elementClicked);

        var prevDropdownValue = '';
        if (businessUnit === "Leasing") {
            var scCheck = $('.shopping').is(":hidden");
            var productInterestCheck = $('.productInterest').is(":hidden");
            var propertyCheck = $('.property').is(":hidden");
            var prodInterest = '';
            var prodInterestList = '';
            var prodIntOptions = '';
            var RLtitle = '';
            if (!scCheck && productInterestCheck) {//for popup and retail
                var index = $("[data-gtm-id='ShoppingCentre']")[0].options.selectedIndex;
                prevDropdownValue = $("[data-gtm-id='ShoppingCentre']")[0].options[index].outerText;
            }
            else if (!productInterestCheck) {//for advertising opp.
                var index1 = $("[data-gtm-id='ShoppingCentre']")[0].options.selectedIndex;
                prevDropdownValue = $("[data-gtm-id='ShoppingCentre']")[0].options[index1].outerText;
                var index2 = $("[data-gtm-id='ProductInterest']")[0].options.selectedIndex;
                prodInterest = $("[data-gtm-id='ProductInterest']")[0].options[index2].outerText;
                prodIntOptions = $("[data-gtm-id='ProductInterest']")[0].options;

            }
            else if (!propertyCheck) {//for office, logistic and businesspark
                var index = $("[data-gtm-id='PropertyName']")[0].options.selectedIndex;
                prevDropdownValue = $("[data-gtm-id='PropertyName']")[0].options[index].outerText;
            }
            $("input:hidden[name='EnquiryFields[16].SelectedValue']").remove();
        }
        else if (businessUnit === "Residential") {
            if ($("[data-gtm-id='CommunityPreferenceList']")[0]) {
                var index = $("[data-gtm-id='CommunityPreferenceList']")[0].options.selectedIndex;
                prevDropdownValue = $("[data-gtm-id='CommunityPreferenceList']")[0].options[index].outerText;
                $("input:hidden[name='EnquiryFields[9].SelectedValue']").remove();
            }
        }
        else if (businessUnit === "Retirement Living") {
            //title
            var indexTitle = $("#EnquiryFields_1__EnteredValue")[0].options.selectedIndex;
            RLtitle = $("#EnquiryFields_1__EnteredValue")[0].options[indexTitle].outerText;
            //village pref list
            if ($("[data-gtm-id='VillagePreferenceList']")[0]) {
                var index = $("[data-gtm-id='VillagePreferenceList']")[0].options.selectedIndex;
                prevDropdownValue = $("[data-gtm-id='VillagePreferenceList']")[0].options[index].outerText;
                $("input:hidden[name='EnquiryFields[15].SelectedValue']").remove();
            }
        }

        var data = null;

        $("#Latitude").val(lat);
        $("#Longitude").val(lon);

        $(".more-resultsEnquiry #makeEnquiryBtn").hide();
        $("#enquiryDisplayForm h4.sco-form-simple__title").hide();

        if ($(".more-resultsEnquiry #inProgress").length > 0) {
            $(".more-resultsEnquiry #inProgress").remove();
        }

        $(".more-resultsEnquiry").prepend("<div id=\"inProgress\"><img src='/assets/images/spinner.gif' />In progress …</div>");

        var token = '';
        var myForm = $(document);
        if (isDesktop) {
            if (isModal) {
                myForm = $('#loadEnquiryForm #enquiryForm');
                data = myForm.serialize();
                token = myForm.find("input[name='__RequestVerificationToken']").val();
            }
            else {
                myForm = $('#enquiryDisplayForm #enquiryForm');
                data = myForm.serialize();
                token = myForm.find("input[name='__RequestVerificationToken']").val();
            }
        }
        else {
            myForm = $('.enquiryLoad #enquiryForm');
            data = myForm.serialize();
            token = myForm.find("input[name='__RequestVerificationToken']").val();
        }


        var getCookie = function (cname) {
            var name = cname + "=";
            var decodedCookie = decodeURIComponent(document.cookie);
            var ca = decodedCookie.split(';');
            for (var i = 0; i < ca.length; i++) {
                var c = ca[i];
                while (c.charAt(0) == ' ') {
                    c = c.substring(1);
                }
                if (c.indexOf(name) == 0) {
                    return c.substring(name.length, c.length);
                }
            }
            return "";
        };

        var GTMTrackingData = {
            'event': 'EnquiryFormSubmit',
            'eventAction': $elementClicked.data('gtm-event-action'),
            'eventCategory': $elementClicked.data('gtm-event-category'),
            'eventLabel': $elementClicked.data('gtm-event-label'),
            'eventValue': $elementClicked.data('gtm-event-value'),
            'elementID': $elementClicked.data('gtm-id')
        };

        //GTM Check Timeframe to buy 
        if (myForm.find("#EnquiryFields_6__EnteredValue_0_label")) {
            var parentElement = myForm.find("#EnquiryFields_6__EnteredValue_0_label").parent();
            parentElement.find('label').each(function () {
                var item = $(this);
                if (item.hasClass('active') && (item.find('input').data('gtm-id')) == "TimeframeToBuy") {
                    GTMTrackingData.residentialleadtime = item.find('input').val();
                    return false;
                }

            });
        }
        //GTM Check State Retirement
        if (myForm.find("#EnquiryFields_7__EnteredValue_1_label").length > 0) {
            var parentElement = myForm.find("#EnquiryFields_7__EnteredValue_1_label").parent();
            parentElement.find('label').each(function () {
                var item = $(this);
                if (item.hasClass('active') && (item.find('input').data('gtm-id')) == "InterestedIn") {
                    GTMTrackingData.state = item.find('input').val();
                    return false;
                }
                else if (item.hasClass('active') && (item.find('input').data('gtm-id')) == "ProductInterestedIn") {
                    GTMTrackingData.productType = item.find("input").val();
                    return false;
                }
            });
        }
        //GTM Check Product Interested In and State
        if (myForm.find("#EnquiryFields_5__EnteredValue_1_label").length > 0) {
            // console.log(myForm.find("#EnquiryFields_5__EnteredValue_1_label"));
            var parentElement = myForm.find("#EnquiryFields_5__EnteredValue_1_label").parent();
            // console.log(parentElement);
            parentElement.find('label').each(function () {
                var item = $(this);
                if (item.hasClass('active') && (item.find('input').data('gtm-id')) == "ProductInterestedIn") {
                    GTMTrackingData.productType = item.find("input").val();
                    return false;
                }
                else if (item.hasClass('active') && (item.find('input').data('gtm-id')) == "InterestedIn") {
                    GTMTrackingData.state = item.find("input").val();
                    return false;
                }

            });
        }
        //GTM Check Enquiring for field national
        if (myForm.find("#EnquiryFields_14__EnteredValue_0_label").length > 0) {
            addEnquringForToGTM("#EnquiryFields_14__EnteredValue_0_label");
        }
        //GTM Check Enquiring for field product details and community
        else if (myForm.find("#EnquiryFields_13__EnteredValue_0_label").length > 0) {
            addEnquringForToGTM("#EnquiryFields_13__EnteredValue_0_label");
        }

        function addEnquringForToGTM(id) {
            var parentElement = myForm.find(id).parent();
            parentElement.find('label').each(function () {
                var item = $(this);
                if (item.hasClass('active') && (item.find('input').data('gtm-id')) == "Enquiringfor") {
                    GTMTrackingData.enquiringfor = item.find("input").val();
                    return false;
                }
            });
        }


        //GTM Check Community Preference List field
        if (myForm.find("#EnquiryFields_6__EnteredValue").length > 0) {
            if (myForm.find("#EnquiryFields_6__EnteredValue").data("gtm-id") == "CommunityPreferenceList") {
                GTMTrackingData["community.name.from.enquiry"] = myForm.find("#EnquiryFields_6__EnteredValue").val();
            }
        }

        //GTM Check  Village Preference List  field
        if (myForm.find("#EnquiryFields_8__EnteredValue").length > 0) {
            if (myForm.find("#EnquiryFields_8__EnteredValue").data("gtm-id") == "VillagePreferenceList") {
                GTMTrackingData["community.name.from.enquiry"] = myForm.find("#EnquiryFields_8__EnteredValue").val();
            }
        }


        // Add AWS Id's to object
        var userIdentityId = localStorage ? localStorage.getItem("website-user-identity") : getCookie("website-user-identity");
        data = data + '&AWSIdentityId=' + userIdentityId;

        var request = $.ajax({
            type: "POST",
            datatype: "html",
            url: '/public/enquiry/submit',
            data: data,
            headers: {
                '__RequestVerificationToken': token
            },
            success: function (response) {
                if (response.Redirect) {
                    window.location = response.Url;
                    return;
                }
                var $updatedEnquiryForm = $(response).find('#enquiryForm');
                var $updatedThankyouForm = $(response).find('#mainAckForm');
                if ($updatedEnquiryForm.length > 0) {

                    if (isModal) {
                        if (isDesktop) {
                            if ($(".navbar-nav li.enquiry .form .modal-content .enquiry-body #mainEnquiryForm").length > 0) {
                                $(".navbar-nav li.enquiry .form .modal-content .enquiry-body #mainEnquiryForm").html($updatedEnquiryForm);
                            }
                            else {
                                $("#enquire-form .enquire-form-container .form #mainEnquiryForm").html($updatedEnquiryForm);
                            }
                        }
                        //TODO In mobile fix the class reference to attach the acknowledgement 
                        else {
                            $(".enquiryLoad .modal-dialog .modal-content .enquiry-body #mainEnquiryForm").html($updatedEnquiryForm);
                            $('.mobile-enquiry-button').show();
                        }

                    }
                    else {
                        $("#loadEnquiry #enquiryForm").html($updatedEnquiryForm);
                    }

                    ShowHiddenFields(isDesktop);

                    if (businessUnit === "Leasing" || businessUnit === "") {
                        $('input:radio[data-gtm-id="Iwouldliketoenquireabout"]:checked').each(function () {
                            var bu = $(this).attr("data-gtm-bu");
                            var selectedItem = $(this).val();

                            if (bu === "Leasing") {
                                ShowLeasingFormFields(selectedItem);
                                UpdateLeasingDropdowns(selectedItem, prevDropdownValue, prodIntOptions, prodInterest);
                            }
                        });
                    }
                    else if (businessUnit === "Residential") {
                        UpdateResiDropdown(prevDropdownValue);
                    }
                    else if (businessUnit === "Retirement Living") {
                        UpdateRLDropdown(RLtitle, prevDropdownValue);
                    }

                }

                else {
                    if (isModal) {
                        if (isDesktop) {
                            if ($(".navbar-nav li.enquiry .form .modal-content .enquiry-body #mainEnquiryForm").length > 0) {
                                $(".navbar-nav li.enquiry .form .modal-content .enquiry-body").html($updatedThankyouForm);
                            }
                            else {
                                /*setTimeout(function () { window.location.reload() }, 3000);*/
                                $("#enquire-form .enquire-form-container .form").html($updatedThankyouForm);
                            }
                        } //TODO In mobile fix the class reference to attach the acknowledgement 
                        else {
                            $(".enquiryLoad .modal-dialog .modal-content .enquiry-body").html($updatedThankyouForm);
                            $('.mobile-enquiry-button').show();
                        }
                    }
                    else {
                        $("#loadEnquiry #enquiryForm").html($updatedThankyouForm);
                    }


                    //on success push to GTM dataLayer
                    if (dataLayer) {

                        dataLayer.push(GTMTrackingData);
                    }
                }
                InitializeAdaptiveLabel();
            },
            error: function (response) {
                if (enquiryErrorHandler) {
                    enquiryErrorHandler.log(data);
                }
            }
        });
    }

    function ShowHiddenFields(isDesktop) {
        var $divName = "";
        var $checkbox = "";
        var loadEnquiryDesktop = "";
        var enquiryLoadMobile = "";
        if (isDesktop) {
            $checkbox = $("#loadEnquiryForm input[type=checkbox]");
            loadEnquiryDesktop = "#loadEnquiryForm";
        }
        else {
            $checkbox = $(".enquiryLoad input[type=checkbox]");
            enquiryLoadMobile = ".enquiryLoad";
        }

        $('input[type=radio]:checked').each(function () {
            $(this).parent().addClass('active');
            if ($(this).parent().hasClass("campaign")) {

                var selectedVal = $(this).val();
                if (isDesktop) {
                    if (selectedVal == "State") {
                        $(loadEnquiryDesktop + " .best-time-call.camp").removeClass("hidden");
                        $(loadEnquiryDesktop + " .shopping.camp").addClass("hidden");
                    }
                    else if (selectedVal == "Shopping Centre") {
                        $(loadEnquiryDesktop + " .shopping.camp").removeClass("hidden");
                        $(loadEnquiryDesktop + " .best-time-call.camp").addClass("hidden");
                    }
                    else {
                        $(loadEnquiryDesktop + " .best-time-call.camp").addClass("hidden");
                        $(loadEnquiryDesktop + " .shopping.camp").addClass("hidden");
                    }
                }
                else {
                    if (selectedVal == "State") {
                        $(enquiryLoadMobile + " .best-time-call.camp").removeClass("hidden");
                        $(enquiryLoadMobile + " .shopping.camp").addClass("hidden");
                    }
                    else if (selectedVal == "Shopping Centre") {
                        $(enquiryLoadMobile + " .shopping.camp").removeClass("hidden");
                        $(enquiryLoadMobile + " .best-time-call.camp").addClass("hidden");
                    }
                    else {
                        $(enquiryLoadMobile + " .best-time-call.camp").addClass("hidden");
                        $(enquiryLoadMobile + " .shopping.camp").addClass("hidden");
                    }
                }
            }
        });
        $checkbox.each(function (e) {
            var checkboxClassName = $(this).data("checkbox-class-name");
            if (checkboxClassName != "defaultCheckbox" && checkboxClassName != "dynamicCheckbox") {
                // this.checked = true;
                if (isDesktop) {
                    $divName = $("#loadEnquiryForm #" + checkboxClassName + " :input");
                }
                else {
                    $divName = $(".enquiryLoad #" + checkboxClassName + " :input");
                }

                if (this.checked == true) {
                    $divName.each(function () {
                        if ($(this).attr('type') == "radio") {
                            $(this).parent().parent().parent().parent().removeClass('hidden');
                        }
                        else if ($(this).attr('type') == "text") {
                            $(this).parent().parent().removeClass('hidden');
                        }
                    });
                }
                else {
                    $divName.each(function () {
                        if ($(this).attr('type') == "radio") {
                            $(this).parent().parent().parent().parent().addClass('hidden');
                        }
                        else if ($(this).attr('type') == "text") {
                            $(this).parent().parent().addClass('hidden');
                        }
                    });
                }
            }
        });
    }

    function SelectEnquiryForm(enquiryItemId, enquiryType, isDesktop, isHighValueAsset) {
        var request = $.ajax({
            type: "POST",
            datatype: "html",
            url: '/public/enquiry/displayform?currentItemId=' + enquiryItemId + '&enquiryType=' + enquiryType,
            success: function (response) {
                var $updatedEnquiryForm = $(response).find('#dispForm .modal-content');
                if ($updatedEnquiryForm.length > 0) {
                    if ($("#enquiryForm").length == 0) {
                        if (!isHighValueAsset) {
                            if (isDesktop) {
                                $(".navbar-nav li.enquiry .form").html($updatedEnquiryForm);
                                $(".navbar-nav li.enquiry .form .enquireFormBackBtn").removeClass("hidden");
                            }
                            else {
                                $(".enquiryLoad .modal-dialog").html($updatedEnquiryForm);
                                $(".enquiryLoad .enquireFormBackBtn").removeClass("hidden");
                                screen.width < 768 ? $("#dateRange").css('marginTop', '10px') : $("#dateRange").css('marginTop', '60px');
                            }

                        } else {
                            $("#enquire-form .enquire-form-container .form").html($updatedEnquiryForm);
                        }
                    }
                    ShowHiddenFields(isDesktop);
                    InitializeCalendar();
                    InitializeAdaptiveLabel();

                    $('input:radio[data-gtm-id="Iwouldliketoenquireabout"]:checked').each(function () {
                        var bu = $(this).attr("data-gtm-bu");
                        var selectedItem = $(this).val();

                        if (bu === "Leasing") {
                            ShowLeasingFormFields(selectedItem);
                        }
                    });
                    function scrollToElement(selector) {
                        const element = $(selector).first();
                        $("html, body").animate({
                            scrollTop: element.offset().top - 200
                        }, 0);
                        element.focus();

                    }
                    if (!isDesktop) {
                        if ($("form[id='enquiryForm'] div >input")) {
                            if ($('#loadEnquiry').length > 0) {
                                scrollToElement("#loadEnquiry form[id='enquiryForm'] div >input:not([type='hidden'])");
                            } else {
                                scrollToElement("form[id='enquiryForm'] div >input");
                            }
                        }
                    }
                }
            },
            error: function (response) {
                //console.log("Error Occurred" + JSON.stringify(response));
            }
        });
    }

    function InitializeAdaptiveLabel() {
        $('.has-float-label.raised-label-container label.btn.active').each(function () {
            $(this).parents('.has-float-label.raised-label-container').find('label.raised-label').addClass('hide');
        });

        $('.has-float-label.raised-label-container').on("click", 'label.btn', function () {
            // console.log('raised-label-container btn clicked');
            $(this).parents('.has-float-label.raised-label-container').find('label.raised-label').addClass('hide');
        });
    }

    function NavigateBack(isDesktop, enquiryItemId) {
        var request = $.ajax({
            type: "POST",
            datatype: "html",
            url: '/public/enquiry/displayform?currentItemId=' + enquiryItemId,
            success: function (response) {
                var $updatedEnquiryForm = $(response).find('#dispForm .modal-content');
                if ($updatedEnquiryForm.length > 0) {

                    if (isDesktop) {
                        $(".navbar-nav li.enquiry .form").html($updatedEnquiryForm);
                    }
                    else {
                        $(".enquiryLoad .modal-dialog").html($updatedEnquiryForm);
                    }

                    ShowHiddenFields(isDesktop);
                    InitializeCalendar();
                    InitializeAdaptiveLabel();

                    if ($("form[id='enquiryForm'] div >input")) {
                        $("form[id='enquiryForm'] div >input").first().focus();
                    }
                }
                // console.log("Enquiry Form Displayed");
            },
            error: function (response) {
                //console.log("Error Occurred");
            }
        });
    }

    function InitializeCalendar() {
        $('input[id="datefilter"]').daterangepicker({
            "autoUpdateInput": false,
            "autoApply": true,
            "opens": 'center',
            locale: {
                cancelLabel: 'Clear'
            }
        });

        $('input[id="datefilter"]').on('apply.daterangepicker', function (ev, picker) {
            $(this).val(picker.startDate.format('DD/MM/YYYY') + ' - ' + picker.endDate.format('DD/MM/YYYY'));
        });

        $('input[id="datefilter"]').on('cancel.daterangepicker', function (ev, picker) {
            $(this).val('');
        });
    }
    // Enquire Form submit on loading the page

    //DESKTOP Enquiry form from menu
    $('#loadEnquiryForm').on('click', '#makeEnquiryBtn', function (e) {
        e.preventDefault();
        EnquirySubmit(true, e, this, true);
    });

    //Enquiry form from page
    $('#enquiryDisplayForm').on('click', '#makeEnquiryBtn', function (e) {
        e.preventDefault();
        EnquirySubmit(true, e, this, false);
    });

    // MOBILE & TABLET
    $('.enquiryLoad').on('click', '#makeEnquiryBtn', function (e) {
        e.preventDefault();
        EnquirySubmit(false, e, this, true);
    });

    // Enquire on click of Enquire Button and BAck button

    $(".navbar-nav li.enquiry").on('click', ".enquireFormBackBtn,.enquireFormBtn", function (e) {
        var $this = $(this);
        var enquiryItemId = $this.attr('id');
        NavigateBack(true, enquiryItemId);
    });



    $(".enquiryLoad").on('click', ".enquireFormBackBtn", function (e) {
        var enquiryItemId = $('.enquireFormBtn').attr('id');
        SelectEnquiryForm(enquiryItemId, '', false);
    });

    $(".enquiry-mobile").on('click', function (e) {
        var enquiryItemId = $('.enquireFormBtn').attr('id');
        SelectEnquiryForm(enquiryItemId, '', false);
        if (!($('#enquiryDisplayForm').length > 0)) {
            if ($('#designstudio-button').length > 0) { $('#myModal').css("z-index", parseInt($('#designstudio-button').css('z-index')) + 1) }
            else if ($(".embeddedServiceHelpButton").length > 0) { $('#myModal').css("z-index", parseInt($('.embeddedServiceHelpButton').css('z-index')) + 1) }
        }
    });

    //Contact Details Enquiry

    function getPrivacyModal(privacymodelcontainerId) {
        $.ajax({
            type: "GET",
            datatype: "html",
            url: '/public/genericcontent/getprivacypolicy',
            success: function (response) {
                $("#" + privacymodelcontainerId + " .privacy-policy").html($(response));
                $("#" + privacymodelcontainerId).appendTo("body").modal('show');
            },
            error: function (response) {
                $("#" + privacymodelcontainerId).appendTo("body").modal('show');
            }

        });
    }

    function getTermsAndConditionsModal(tandcsmodelcontainerId) {
        $.ajax({
            type: "GET",
            datatype: "html",
            url: '/public/genericcontent/gettermsandconditions',
            success: function (response) {
                $("#" + tandcsmodelcontainerId + " .privacy-policy").html($(response));
                $("#" + tandcsmodelcontainerId).appendTo("body").modal('show');
            },
            error: function (response) {
                $("#" + tandcsmodelcontainerId).appendTo("body").modal('show');
            }

        });
    }

    $('#contactUsEnquiry').on('click', '#a-contactdetails-privacy', function (e) {
        getPrivacyModal("contactdetailsprivacyModal");
        return false;
    });

    $('#contactUsEnquiry').on('click', '#a-contactdetails-terms', function (e) {
        getTermsAndConditionsModal("contactdetailstermsModal");
        return false;
    });


    $('#contactUsEnquiry').on('click', '#contactUsEnquirybtn', function (e) {
        var enquiryForm = $('#contactEnquiryFrm');
        var data = enquiryForm.serialize();
        var request = $.ajax({
            type: "POST",
            datatype: "html",
            url: '/public/enquiry/contactussubmit',
            data: JSON.stringify(data),
            success: function (response) {
                document.getElementById("contactUsEnquiry").innerHTML = response;
                var $updatedThankyouForm = $(response).find('#mainAckForm');
                if ($updatedThankyouForm.length > 0) {
                    $("#ackContactUs .enquiry-body").html($updatedThankyouForm);
                    $("#ackContactUs").modal("show");
                }
                else {
                    document.getElementById("contactUsEnquiry").innerHTML = response;

                    ShowHiddenFields(true);
                }
            },
            error: function (response) {
                if (enquiryErrorHandler) {
                    enquiryErrorHandler.log(data);
                }
            }, headers: {
                '__RequestVerificationToken': enquiryForm.find("input[name='__RequestVerificationToken']").val()
            }
        });

    });

    //Privacy and TnC        


    $('#loadEnquiryForm, #enquiryDisplayForm').on('click', '#privacyBtnEnq', function (e) {
        getPrivacyModal("privacyModal");
        return false;
    });

    $('.enquiryLoad').on('click', '#privacyBtnEnq', function (e) {
        getPrivacyModal("privacyModal");
        return false;
    });

    $('#loadEnquiryForm, #enquiryDisplayForm').on('click', '#termsBtnEnq', function (e) {
        getTermsAndConditionsModal("termsModal");
        return false;
    });

    $('#loadEnquiry').on('click', '#termsBtnEnq', function (e) {
        getTermsAndConditionsModal("termsModal");
        return false;
    });

    $('.enquiryLoad').on('click', '#termsBtnEnq', function (e) {
        getTermsAndConditionsModal("termsModal");
        return false;
    });

    //MEdia Centre - Contact

    $('.contactEnquiryBtn').on('click', function (e) {
        var $this = $(this);
        var enquiryItemId = $this.attr('id');
        var request = $.ajax({
            type: "POST",
            datatype: "html",
            url: '/public/enquiry/displayform?currentItemId=' + enquiryItemId,
            success: function (response) {
                var $updatedEnquiryForm = $(response).find('#enquiryForm');
                if ($updatedEnquiryForm.length > 0) {
                    $("#contactEnquiryForm").html($updatedEnquiryForm);

                }
                $("#contactEnquiry").modal("show");
            },
            error: function (response) {

            }
        });
    });

    $('#contactEnquiry').on('click', '#contactEnquiryForm #makeEnquiryBtn', function (e) {
        e.preventDefault();


        var data = $('#contactEnquiryForm #enquiryForm').serialize();
        data += MapAWSCognitoIds();
        var request = $.ajax({
            type: "POST",
            datatype: "html",
            url: '/public/enquiry/submit',
            data: data,
            headers: {
                '__RequestVerificationToken': $('#contactEnquiryForm #enquiryForm').find("input[name='__RequestVerificationToken']").val()
            },
            success: function (response) {
                var $updatedEnquiryForm = $(response).find('#enquiryForm');
                var $updatedThankyouForm = $(response).find('#mainAckForm');
                if ($updatedEnquiryForm.length > 0) {
                    $("#contactEnquiryForm").html($updatedEnquiryForm);
                    $('input[type=radio]:checked').each(function () {
                        $(this).parent().addClass('active');
                    });
                }
                else {
                    $("#contactEnquiryForm").html($updatedThankyouForm);
                }
            },
            error: function (response) {
                if (enquiryErrorHandler) {
                    enquiryErrorHandler.log(data);
                }
            }
        });
    });

    reattachRsvpSubmitButton();
    reattachRemindMeSubmitButton();

    $('#subscribeDisplayForm').on('click', '#a-subform-terms', function (e) {
        getTermsAndConditionsModal("subformtermsModal");
        return false;
    });
    $('#subscribeDisplayForm').on('click', '#a-subform-privacy', function (e) {
        getPrivacyModal("subformprivacyModal");
        return false;
    });

    //Subscription
    $('#subscribeDisplayForm').on('click', '#subscribeBtn', function (e) {
        e.stopImmediatePropagation();
        var $elementClicked = $(this);

        $("#Latitude").val(lat);
        $("#Longitude").val(lon);
        var data = $('#subscribeForm').serialize();
        var request = $.ajax({
            type: "POST",
            datatype: "html",
            //url: '/public/Enquiry/SubscribeSubmit',
            url: '/public/subscription/submit',
            data: JSON.stringify(data),
            headers: {
                '__RequestVerificationToken': $('#subscribeForm').find("input[name='__RequestVerificationToken']").val()
            },
            success: function (response) {


                var $updatedEnquiryForm = $(response).find('#subscribeForm');
                var $updatedThankyouForm = $(response).find('#mainAckForm');

                if ($updatedThankyouForm.length > 0) {
                    $("#SubscribeAcknow .modal-content .enquiry-body").html($updatedThankyouForm)
                    $("#SubscribeAcknow").modal("show");


                    //on success and acknowledgement, push to GTM dataLayer
                    if (dataLayer && $elementClicked.length > 0) {
                        dataLayer.push({
                            'event': 'SubscriptionFormSubmit',
                            'eventAction': $elementClicked.data('gtm-event-action'),
                            'eventCategory': $elementClicked.data('gtm-event-category'),
                            'eventLabel': $elementClicked.data('gtm-event-label'),
                            'eventValue': $elementClicked.data('gtm-event-value'),
                            'elementID': $elementClicked.data('gtm-id')
                        });
                    }

                }
                else {

                    $("#loadSubscription").html($updatedEnquiryForm);

                    ShowHiddenFields(true);

                   /* $('#subscribeForm').append('<div class="toggle-accordian module27" style="margin-bottom: -18px"><a class="icon-chevron show-hide collapsed bg-white open" href="javascript:void(0)">Show less</a></div>');*/

                    $('#subscribeForm .form-group').show();

                    $('#subscribeForm .icon-chevron').click(function () {
                        if ($("#subscribeForm .icon-chevron").hasClass("open")) {
                            $('#subscribeForm .form-group:gt(1)').hide();
                        }
                        else {
                            $('#subscribeForm .form-group').show();
                        }
                    });
                    $('.example-getting-started').multiselect();

                    var selectedMultiList = $('#multiListSelectValues').val();

                    if (selectedMultiList) {
                        $("#multiSelectList").val(selectedMultiList.split(','));
                        $("#multiSelectList").multiselect("refresh");
                    }
                }
            },
            error: function (response) {
                if (enquiryErrorHandler) {
                    enquiryErrorHandler.log(data);
                }
            }
        });
    });

    //Subscription - State Intested In
    $('#subscribeDisplayForm').on('click', '.stateInterestedIn', function (e) {
        e.stopImmediatePropagation();
        var $elementClicked = $(this).val();

        var data = $('#subscribeForm').serialize();
        var request = $.ajax({
            type: "POST",
            datatype: "html",
            //url: '/public/Enquiry/SubscribeSubmit',
            url: '/public/subscription/fillcommunity',
            data: JSON.stringify(data),
            success: function (response) {
                var $updatedEnquiryForm = $(response).find('#subscribeForm');

                $("#loadSubscription").html($updatedEnquiryForm);

                ShowHiddenFields(true);
                $('#subscribeForm .form-group').show();
                $('.example-getting-started').multiselect();
            },
            error: function (response) {
                if (enquiryErrorHandler) {
                    enquiryErrorHandler.log(data);
                }
            }
        });
    });

    $('#singleEnquiry').on('click', 'input[type=checkbox]', function (e) {
        event.stopImmediatePropagation();
        var checkboxClassName = $(this).data("checkbox-class-name");
        if (this.checked) {
            $("#singleEnquiry  #" + checkboxClassName + " :input").each(function () {
                if ($(this).attr('type') == "radio") {
                    $(this).parent().parent().parent().parent().removeClass('hidden');
                }
                else if ($(this).attr('type') == "text") {
                    $(this).parent().parent().removeClass('hidden');
                }
            });
        }
        else {
            $("#singleEnquiry  #" + checkboxClassName + " :input").each(function () {
                if ($(this).attr('type') == "radio") {
                    $(this).parent().parent().parent().parent().addClass('hidden');
                }
                else if ($(this).attr('type') == "text") {
                    $(this).parent().parent().addClass('hidden');
                }
            });
        }
    });


    // Shortlist Enquiry form -Single Item
    $('.singleShortListEnquiry').on('click', function (e) {
        var $this = $(this);
        var enquiryItemId = $this.attr('id');
        var request = $.ajax({
            type: "POST",
            datatype: "html",
            url: '/public/enquiry/displayform?currentItemId=' + enquiryItemId + "&isShortList=true",
            success: function (response) {
                var $updatedEnquiryForm = $(response).find('#enquiryForm');
                if ($updatedEnquiryForm.length > 0) {
                    $("#singleForm").html($updatedEnquiryForm);
                    $('#singleForm input[type=radio]:checked').each(function () {
                        $(this).parent().addClass('active');
                    });
                    $('#singleForm input[type=checkbox]').each(function (e) {
                        var checkboxClassName = $(this).data("checkbox-class-name");
                        if (checkboxClassName != "defaultCheckbox") {
                            if (this.checked == true) {
                                //$("#" + checkboxClassName).parent().removeClass('hidden');
                                $("#singleEnquiry  #" + checkboxClassName + " :input").each(function () {
                                    if ($(this).attr('type') == "radio") {
                                        $(this).parent().parent().parent().parent().removeClass('hidden');
                                    }
                                    else if ($(this).attr('type') == "text") {
                                        $(this).parent().parent().removeClass('hidden');
                                    }
                                });
                            }
                            else {
                                //$("#" + checkboxClassName).parent().addClass('hidden');
                                if ($(this).attr('type') == "radio") {
                                    $(this).parent().parent().parent().parent().addClass('hidden');
                                }
                                else if ($(this).attr('type') == "text") {
                                    $(this).parent().parent().addClass('hidden');
                                }
                            }
                        }
                    });
                }
                $("#singleEnquiry").modal("show");
            },
            error: function (response) {

            }
        });
    });

    // Shortlist Enquiry Submit - Single

    $('#singleEnquiry').on('click', '#singleForm #makeEnquiryBtn', function (e) {
        e.preventDefault();
        var data = $('#singleForm #enquiryForm').serialize();
        data += MapAWSCognitoIds();

        var request = $.ajax({
            type: "POST",
            datatype: "html",
            url: '/public/enquiry/submit',
            data: data,
            headers: {
                '__RequestVerificationToken': $('#singleForm #enquiryForm').find("input[name='__RequestVerificationToken']").val()
            },
            success: function (response) {
                var $updatedEnquiryForm = $(response).find('#enquiryForm');
                var $updatedThankyouForm = $(response).find('#mainAckForm');
                if ($updatedEnquiryForm.length > 0) {
                    $("#singleForm").html($updatedEnquiryForm);
                    $('input[type=radio]:checked').each(function () {
                        $(this).parent().addClass('active');
                    });
                    $('#singleForm input[type=checkbox]').each(function (e) {
                        var checkboxClassName = $(this).data("checkbox-class-name");
                        if (checkboxClassName != "defaultCheckbox") {
                            if (this.checked == true) {
                                //$("#" + checkboxClassName).parent().removeClass('hidden');
                                $("#singleEnquiry  #" + checkboxClassName + " :input").each(function () {
                                    if ($(this).attr('type') == "radio") {
                                        $(this).parent().parent().parent().parent().removeClass('hidden');
                                    }
                                    else if ($(this).attr('type') == "text") {
                                        $(this).parent().parent().removeClass('hidden');
                                    }
                                });
                            }
                            else {
                                //$("#" + checkboxClassName).parent().addClass('hidden');
                                if ($(this).attr('type') == "radio") {
                                    $(this).parent().parent().parent().parent().addClass('hidden');
                                }
                                else if ($(this).attr('type') == "text") {
                                    $(this).parent().parent().addClass('hidden');
                                }
                            }
                        }
                    });
                }
                else {
                    $(".singleShortListEnquiry").addClass('disabled');
                    $("#singleForm").html($updatedThankyouForm);
                }
            },
            error: function (response) {
                if (enquiryErrorHandler) {
                    enquiryErrorHandler.log(data);
                }
            }
        });
    });

    // Shortlist Enquiry form -Bulk Item

    $('.bulkShortListEnquiry').on('click', function (e) {
        var $this = $(this);
        var selectedEnquiryItemId = '';
        var enquiryItemId = $(this).attr('name');
        bulkEnquiryItemId = $(this).attr('name');
        $tabId = $(".dropdown").find(".active").attr('id');
        if ($tabId == "Assets") {
            $("input:checkbox[name=checkboxAsset]:checked").each(function () {
                enquireSelectedID.push($(this).attr("id"));
            });

        }
        else if ($tabId == "Products") {
            $("input:checkbox[name=checkboxProduct]:checked").each(function () {
                enquireSelectedID.push($(this).attr("id"));
            });
        }

        if (enquireSelectedID.length > 0) {
            selectedEnquiryItemId = enquireSelectedID[0];
        }

        var request = $.ajax({
            type: "POST",
            datatype: "html",
            url: '/public/enquiry/displayform?currentItemId=' + selectedEnquiryItemId + "&isShortList=true",
            success: function (response) {
                var $updatedEnquiryForm = $(response).find('#enquiryForm');
                if ($updatedEnquiryForm.length > 0) {
                    $("#bulkEnquiryForm").html($updatedEnquiryForm);
                    $('input[type=radio]:checked').each(function () {
                        $(this).parent().addClass('active');
                    });
                    $('input[type=checkbox]').each(function (e) {

                        var checkboxClassName = $(this).data("checkbox-class-name");
                        if (checkboxClassName != "defaultCheckbox") {
                            if (this.checked == true) {
                                $("#" + checkboxClassName).parent().removeClass('hidden');
                            }
                            else {
                                $("#" + checkboxClassName).parent().addClass('hidden');
                            }
                        }
                    });
                }

                $("#bulkEnquiry").modal("show");
            },
            error: function (response) {

            }
        });
    });

    //Bulk Enquiry Toggle for Order a Magazine

    $('#bulkEnquiry').on('click', 'input[type=checkbox]', function (e) {
        e.stopImmediatePropagation();
        var checkboxClassName = $(this).data("checkbox-class-name");
        if (this.checked) {
            $("#bulkEnquiry #" + checkboxClassName + " :input").each(function () {

                if ($(this).attr('type') == "radio") {
                    $(this).parent().parent().parent().parent().removeClass('hidden');
                }
                else if ($(this).attr('type') == "text") {
                    $(this).parent().parent().removeClass('hidden');
                }
            });
        }
        else {
            $("#bulkEnquiry #" + checkboxClassName + " :input").each(function () {

                if ($(this).attr('type') == "radio") {
                    $(this).parent().parent().parent().parent().addClass('hidden');
                }
                else if ($(this).attr('type') == "text") {
                    $(this).parent().parent().addClass('hidden');
                }
            });
        }
    });


    // Shortlist Enquiry Submit - Bulk

    $('#bulkEnquiry').on('click', '#bulkEnquiryForm #makeEnquiryBtn', function (e) {
        var data = $('#bulkEnquiryForm #enquiryForm').serialize();

        var request = $.ajax({
            type: "POST",
            datatype: "html",
            url: '/public/enquiry/shortlistsubmit?enquireSelectedID=' + enquireSelectedID + '&bulkEnquiryItemId=' + bulkEnquiryItemId,
            data: data,
            success: function (response) {
                var $updatedEnquiryForm = $(response).find('#enquiryForm');
                var $updatedThankyouForm = $(response).find('#mainAckForm');
                if ($updatedEnquiryForm.length > 0) {
                    $("#bulkEnquiryForm").html($updatedEnquiryForm);
                    $('input[type=radio]:checked').each(function () {
                        $(this).parent().addClass('active');
                    });
                    $('input[type=checkbox]').each(function (e) {

                        var checkboxClassName = $(this).data("checkbox-class-name");
                        if (checkboxClassName != "defaultCheckbox") {
                            if (this.checked == true) {
                                $("#" + checkboxClassName).parent().removeClass('hidden');
                            }
                            else {
                                $("#" + checkboxClassName).parent().addClass('hidden');
                            }
                        }
                    });
                }
                else {
                    if ($tabId == "Assets") {
                        $("input:checkbox[name=checkboxAsset]:checked").closest('.media').next().find('.singleShortListEnquiry').addClass('disabled');
                    }
                    else if ($tabId == "Products") {
                        $("input:checkbox[name=checkboxProduct]:checked").closest('.media').next().find('.singleShortListEnquiry').addClass('disabled');
                    }

                    $("#bulkEnquiryForm").html($updatedThankyouForm);
                }
            },
            error: function (response) {

            }
        });
    });


    //END : ENQUIRY

    $('#rsvpEnquiry,#rsvpForm').on('click', '#a-eventrsvp-privacy', function (e) {
        getPrivacyModal("eventrsvpprivacyModal");
        return false;
    });

    $('#rsvpEnquiry,#rsvpForm').on('click', '#a-eventrsvp-terms', function (e) {
        getTermsAndConditionsModal("eventrsvptermsModal");
        return false;
    });


    $('#remindMeDetails,#ackRemindMe').on('click', '#a-eventremindme-privacy', function (e) {
        getPrivacyModal("eventreminderprivacyModal");
        return false;
    });

    $('#remindMeDetails,#ackRemindMe').on('click', '#a-eventremindme-terms', function (e) {
        getTermsAndConditionsModal("eventremindertermsModal");
        return false;
    });

});

function reattachRsvpSubmitButton() {
    var $rsvpDetails = jQuery('#rsvpDetails');
    $rsvpDetails.off('click', '.makeRSVPBtn');

    //RSVP submit
    $rsvpDetails.on('click', '.makeRSVPBtn', function (e) {

        var data = jQuery('#rsvpForm').serialize();
        var request = $.ajax({
            type: "POST",
            datatype: "html",
            url: '/public/enquiry/rsvpsubmit',
            data: JSON.stringify(data),
            success: function (response) {
                var $updatedThankyouForm = $(response).find('#mainAckForm');
                if ($updatedThankyouForm.length > 0) {
                    if ($rsvpDetails.parents('.modal').first().find('#rsvpFormWrapper').length > 0) {
                        $rsvpDetails.parents('.modal').first().find('#rsvpFormWrapper').html($updatedThankyouForm);
                    }
                    else {
                        $("#rsvpEnquiry .enquiry-body").html($updatedThankyouForm);
                        $("#rsvpEnquiry").appendTo("body").modal('show');
                    }
                }
                else {
                    document.getElementById("rsvpDetails").innerHTML = response;
                }
            },
            error: function (response) {
                if (enquiryErrorHandler) {
                    enquiryErrorHandler.log(data);
                }
            }
        });
    });
}


function reattachRemindMeSubmitButton() {
    var $remindMeDetails = jQuery('#remindMeDetails');
    $remindMeDetails.off('click', '.remindMeSubmitBtn');

    //RSVP submit
    $remindMeDetails.on('click', '.remindMeSubmitBtn', function (e) {
        var data = jQuery('#remindMeFormData').serialize();
        var request = jQuery.ajax({
            type: "POST",
            datatype: "html",
            url: '/public/enquiry/remindmesubmit',
            data: JSON.stringify(data),
            headers: { CaptchaResponse: grecaptcha.getResponse() },
            success: function (response) {

                var $updatedThankyouForm = jQuery(response).find('#mainAckForm');
                if ($updatedThankyouForm.length > 0) {
                    if ($remindMeDetails.parents('.modal').first().find('#remindMeForm').length > 0) {
                        $remindMeDetails.parents('.modal').first().find('#remindMeForm').html($updatedThankyouForm);
                    }
                    else {
                        jQuery("#remindMeForm").html($updatedThankyouForm);
                        jQuery("#ackRemindMe").modal("show");
                    }
                }
                else {

                    document.getElementById("remindMeDetails").innerHTML = response;

                }
            },
            complete: function () {
                $('.g-recaptcha').each(function (index, obj) {
                    grecaptcha.render(obj, { 'sitekey': '6LdoNR8TAAAAAFAf4s0M31iJdIshiGo0BRSf4F0L' });
                });
            },
            error: function (response) {
                if (enquiryErrorHandler) {
                    enquiryErrorHandler.log(data);
                }
            }
        });
    });
}

$(document).on('change', $('[data-gtm-id="CommunityPreferenceList"]'), function (event) {

    if (event.target.attributes["data-gtm-id"] != undefined && event.target.attributes["data-gtm-id"].value != undefined && event.target.attributes["data-gtm-id"].value == 'CommunityPreferenceList') {
        var $optionSelected = $(this).find('option:selected').val();
        var productInterestedInDev = $(".product-interested-in");

        if ($optionSelected != 'undefined' && $optionSelected != '') {
            var request = $.ajax({
                type: "POST",
                datatype: "html",
                url: '/public/enquiry/HasChildMdPages',
                data: {
                    'communityName': $optionSelected,
                    'currentItemId': $('#EnquiryItemId').val()
                },
                success: function (response) {

                    if (response.HasMdPages == true) {
                        productInterestedInDev.find('input[type=radio]')
                            .each(function () {
                                if ($(this).attr('value') == String(response.SelectedProductInterestType)) {
                                    $(this).attr('checked', 'checked');
                                    $(this).parent().addClass("btn active focus");
                                } else {
                                    $(this).removeAttr('checked');
                                    $(this).parent().removeClass("active");
                                    $(this).parent().removeClass("focus");
                                }
                            });
                        $(".product-interested-in").removeClass("hidden");
                    } else {
                        productInterestedInDev.find('input[type=radio]')
                            .each(function () {
                                $(this).removeAttr('checked');
                                $(this).parent().removeClass("active");
                                $(this).parent().removeClass("focus");
                            });
                        $(".product-interested-in").addClass("hidden");

                    }
                }
            });
        } else {
            productInterestedInDev.find('input[type=radio]')
                .each(function () {
                    $(this).removeAttr('checked');
                    $(this).parent().removeClass("active");
                    $(this).parent().removeClass("focus");
                });
            $(".product-interested-in").addClass("hidden");

        }
    }
});


function UpdateLeasingDropdowns(selectedItem, dropdown1Value, dropdown2Options, dropdown2Value) {
    //var enqTypeSelected = $('.reduce-bottom-margin.btn.active')[0].innerText;
    var stateSelected = '';
    $('[data-gtm-id="State"]:checked').each(function () {
        stateSelected = this.value;
    });

    $.ajax({
        url: '/public/enquiry/updateleasinglist',
        method: "POST",
        data: {
            'state': stateSelected,
            'enquiryType': selectedItem
        },
        success: function (response) {
            if (selectedItem === "Advertising Opportunities") {

                var select = $("[data-gtm-id='ShoppingCentre']");
                select.empty();
                select.append("<option value=''>-- Select Item --</option>");
                for (var j = 0; j < response.length; j++) {
                    if (response[j] === dropdown1Value) {
                        select.append("<option selected='selected' value='" + response[j] + "'>" + response[j] + "</option>");
                    }
                    else {
                        select.append("<option value='" + response[j] + "'>" + response[j] + "</option>");
                    }
                }

                //product interest
                var select2 = $("[data-gtm-id='ProductInterest']");
                select2.empty();
                select2[0].options = dropdown2Options;
                $(dropdown2Options).each(function () {
                    var item = $(this).text();
                    if (item === dropdown2Value) {
                        select2.append("<option selected='selected' value='" + item + "'>" + item + "</option>");
                    }
                    else {
                        select2.append("<option value='" + item + "'>" + item + "</option>");
                    }
                });
            }
            else if (selectedItem === "Pop-Ups" || selectedItem === "Retail Leasing") {
                var select = $("[data-gtm-id='ShoppingCentre']");
                select.empty();
                select.append("<option value=''>-- Select Item --</option>");
                for (var j = 0; j < response.length; j++) {
                    if (response[j] === dropdown1Value) {
                        select.append("<option selected='selected' value='" + response[j] + "'>" + response[j] + "</option>");
                    }
                    else {
                        select.append("<option value='" + response[j] + "'>" + response[j] + "</option>");
                    }
                }
            }
            else {
                //for office, logistics and business park
                var select = $("[data-gtm-id='PropertyName']");
                select.empty();
                select.append("<option value=''>-- Select Item --</option>");
                for (var j = 0; j < response.length; j++) {
                    if (response[j] === dropdown1Value) {
                        select.append("<option selected='selected' value='" + response[j] + "'>" + response[j] + "</option>");

                    }
                    else {
                        select.append("<option value='" + response[j] + "'>" + response[j] + "</option>");
                    }
                }
                $('.property .has-float-label').removeClass("has-error");
                $('.helpblock').hide();
            }
        }
    });
}

function UpdateResiDropdown(prevDropdownValue) {
    var stateSelected = '';
    $('[data-gtm-id="InterestedIn"]:checked').each(function () {
        stateSelected = this.value;
    });
    $.ajax({
        url: '/public/enquiry/updatecommunitylist',
        method: "POST",
        data: {
            'state': stateSelected,
        },
        success: function (response) {
            var select = $("[data-gtm-id='CommunityPreferenceList']");
            select.empty();
            select.append("<option value=''>-- Select Item --</option>");
            for (var j = 0; j < response.length; j++) {
                if (response[j] === prevDropdownValue) {
                    select.append("<option selected='selected' value='" + response[j] + "'>" + response[j] + "</option>");

                }
                else {
                    select.append("<option value='" + response[j] + "'>" + response[j] + "</option>");
                }
            }
        }
    });
}

function UpdateRLDropdown(RLtitle, prevDropdownValue) {
    //re-selecting title
    var selectTitle = $("#EnquiryFields_1__EnteredValue")[0].options
    for (var i = 0; i <= selectTitle.length; ++i) {
        var test = selectTitle[i].outerText;
        if (selectTitle[i].outerText !== "undefined" && selectTitle[i].outerText !== "" && selectTitle[i].outerText === RLtitle) {
            selectTitle[i].selected = true;
            break;
        }
    }

    //re-selecting village preference list
    var stateSelected = '';
    $('[data-gtm-id="InterestedIn"]:checked').each(function () {
        stateSelected = this.value;
    });
    $.ajax({
        url: '/public/enquiry/UpdateRLVillageList',
        method: "POST",
        data: {
            'state': stateSelected,
        },
        success: function (response) {
            var select = $("[data-gtm-id='VillagePreferenceList']");
            select.empty();
            select.append("<option value=''>-- Select Item --</option>");
            for (var j = 0; j < response.length; j++) {
                if (response[j] === prevDropdownValue) {
                    select.append("<option selected='selected' value='" + response[j] + "'>" + response[j] + "</option>");

                }
                else {
                    select.append("<option value='" + response[j] + "'>" + response[j] + "</option>");
                }
            }
            $("[data-gtm-id='VillagePreferenceList']").parents('.has-float-label').removeClass("has-error");
        }
    });
}
;
jQuery(document).ready(function ($) {

    if ($.widget) {

        $.widget("stockland.whistleblower", {

            _valdateForm: function (form) {
                var formtext = $(form).find("#formtext");
                if (formtext.val() === '') {
                    $(formtext).parents(".form-group").addClass("has-error");
                    $(formtext).parents(".form-group").find(".field-validation-error").show();
                    return false;
                }

                if (formtext.val().length < 10 || formtext.val().length > 2000) {
                    $(formtext).parents(".form-group").addClass("has-error");
                    $(formtext).parents(".form-group").find(".field-validation-error").show();
                    return false;
                }

                return true;
            },

            _resetForm: function (form) {
                $(form).find(".form-error,.form-success").hide();
                $(form).find(".has-error").removeClass("has-error");
                $(form).find(".field-validation-error").hide();
            },

            _clearFields: function (form) {
                $(form).find(':input')
                            .not(':button, :submit, :reset, :hidden')
                            .val('')
                            .removeAttr('checked')
                            .removeAttr('selected');
            },

            _enableSubmit: function (btn) {
                $(btn).removeAttr("disabled");
            },

            _create: function () {
                var _ = this.element;
                var _this = this;
                $(this.element).on("click", ":submit", function (evt) {

                    var _btn = $(this);
                    $(_btn).attr("disabled", "disabled");

                    evt.preventDefault();


                    _this._resetForm(_);

                    var formValues = $(_).serialize();

                    if (!_this._valdateForm(_)) {
                        _this._enableSubmit(_btn);
                        return false;
                    }

                    $.ajax({
                        method: "POST",
                        url: $(_).attr("action"),
                        data: formValues
                    })
                    .done(function (data) {
                        if (data.Success) {
                            $(_).find(".form-success").show();
                            _this._clearFields(_);
                        } else {
                            $(_).find(".form-error").show();
                        }
                        _this._enableSubmit(_btn);
                    })
                    .fail(function (data) {
                        $(_).find(".form-error").show();
                        _this._enableSubmit(_btn);
                    });
                });
            }

        });

        $(".whistleblower-form form").whistleblower();
    }
});
;
jQuery(document).ready(function ($) {
    if ($('#stockland_module_eventmap_init').val() == 'true') {
        stockland.modules.eventmap.init({
            address: $('#stockland_module_eventmap_location').val()
        });
    }
});

stockland.modules.eventmap = (function () {
    'use strict';
    var location = "";
    var map = null;

    function createMap(gmapsOptions, results) {
        map = new google.maps.Map(document.getElementById("googleMap"), gmapsOptions);

        var marker = new google.maps.Marker({
            map: map,
            position: results[0].geometry.location
        });
    }

    function geocodeAddress(geocoder, resultsMap) {
        var address = document.getElementById('address').value;
        geocoder.geocode({ 'address': address }, function (results, status) {
            if (status === google.maps.GeocoderStatus.OK) {
                resultsMap.setCenter(results[0].geometry.location);
                var marker = new google.maps.Marker({
                    map: resultsMap,
                    position: results[0].geometry.location
                });
            } else {
                alert('Geocode was not successful for the following reason: ' + status);
            }
        });
    }

    return {
        init: function (mapOptions) {
            location = mapOptions.address;

            var geocoder = new google.maps.Geocoder();
            var geometryLocation;
            
            geocoder.geocode({ 'address': location }, function (results, status) {
                if (status == google.maps.GeocoderStatus.OK) {
                    var gmapsOptions = {
                        zoom: 15,
                        center: results[0].geometry.location,
                        mapTypeId: google.maps.MapTypeId.ROADMAP,
                        scrollwheel: true
                    };
                    createMap(gmapsOptions, results);
                }
                
            });
        }
    };
}());;
jQuery(document).ready(function ($) {
    if ($('#stockland_module_contactusmap_init').val() == 'true') {
        stockland.modules.contactusmap.init({
            stateOfficeItems: stateOfficeGeo
        });
    }
});

stockland.modules.contactusmap = (function () {
    'use strict';
    var location = "";
    var map = null;
    var startaddresses = "";

    function createMap(gmapsOptions, results) {
        map = new google.maps.Map(document.getElementById("googleMap"), gmapsOptions);

        var marker = new google.maps.Marker({
            map: map,
            position: results[0].geometry.location
        });
    }

    function geocodeAddress(geocoder, resultsMap) {

        var stateOfficeItems = document.getElementById('stateOfficeItems').value;

        $.each(stateOfficeItems, function (index, value) {
            geocoder.geocode({ 'address': value }, function (results, status) {
                if (status === google.maps.GeocoderStatus.OK) {
                    resultsMap.setCenter(results[0].geometry.location);
                    var marker = new google.maps.Marker({
                        map: resultsMap,
                        position: results[0].geometry.location
                    });
                } else {
                    alert('Geocode was not successful for the following reason: ' + status);
                }
            });
        });
    }

    return {
        init: function (mapOptions) {
            location = mapOptions.address;
            startaddresses = mapOptions.stateOfficeItems;

            var geocoder = new google.maps.Geocoder();
            var geometryLocation;

            $.each(startaddresses, function (index, value) {
                geocoder.geocode({ 'address': value }, function (results, status) {
                    if (status == google.maps.GeocoderStatus.OK) {
                        var gmapsOptions = {
                            zoom: 15,
                            center: results[0].geometry.location,
                            mapTypeId: google.maps.MapTypeId.ROADMAP,
                            scrollwheel: true
                        };
                        createMap(gmapsOptions, results);
                    }

                });

            });
        }
    };
}());;
jQuery(document).ready(function ($) {
    reattachGoals();

 
});

function reattachGoals() {
    if (jQuery('#stockland_module_goal_init').val() == 'true') {
        stockland.modules.goals.init({
            goalId: jQuery('#stockland_module_goal_id').val(),
            goalIdEmail: jQuery('#stockland_module_goal_id_Email').val(),
            goalIdShare: jQuery('#stockland_module_goal_id_Social').val(),
            goalIdShortList: jQuery('#stockland_module_goal_id_Shortlist').val()
        });
    }
}

(function ($) {
    stockland.modules.goals = (function () {
        'use strict';
        var goalId = "";
        var goalIdEmail = "";
        var goalIdShare = "";
        var goalShortlist = "";
        function triggerGoal(goalId) {
            $.ajax({
                url: '/public/goal/triggergoal/',
                dataType: 'json',
                data: {
                    'goalId': goalId
                },
                success: function (response) {
                    //console.log("Goal:" + response);
                },
                error: function (exception) {
                    //console.log('Exeption:' + exception);
                }
            });
        }

        return {
            init: function (goal) {
                goalId = goal.goalId;
                goalIdEmail = goal.goalIdEmail;
                goalIdShare = goal.goalIdShare;
                goalShortlist = goal.goalIdShortList;
                $("#triggerGoal").click(function (e) {

                    e.preventDefault();//this will prevent the link trying to navigate to another page
                    var href = $(this).attr("href");//get the href so we can navigate later

                    triggerGoal(goalId);

                    //when update has finished, navigate to the other page
                    if (href) {
                        window.location = href;
                    }
                });

                $("#multi-share").click(function (e) {
                    e.preventDefault();//this will prevent the link trying to navigate to another page
                    var href = $(this).attr("href");//get the href so we can navigate later

                    triggerGoal(goalShortlist);
                    if (href) {
                        window.location = href;
                    }
                });


                $(".at-share-btn-elements").on('click', '.at-svc-email', function (e) {
                    //   
                    e.preventDefault();//this will prevent the link trying to navigate to another page
                    var href = $(this).attr("href");//get the href so we can navigate later

                    triggerGoal(goalIdEmail);
                   // console.log('Trigger email share')
                    if (href) {
                        window.location = href;
                    }
                });

                $(".at-share-btn-elements").on('click', '.at-svc-linkedin,.at-svc-facebook,.at-svc-twitter', function (e) {
                    //   
                    e.preventDefault();//this will prevent the link trying to navigate to another page
                    var href = $(this).attr("href");//get the href so we can navigate later

                    triggerGoal(goalIdShare);
                    //console.log('Trigger social share')
                    if (href) {
                        window.location = href;
                    }
                });

                $('.cta-link').click(function (e) {
                    e.preventDefault();//this will prevent the link trying to navigate to another page
                    var href = $(this).attr("href");//get the href so we can navigate later

                    triggerGoal(goalId);
                    if (href) {
                        window.location = href;
                    }
                });
            }
        };
    }());
})(jQuery);

;
(function ($) {
    stockland.modules.shortlist = function () {
        'use strict';

        var _token;

        function init(params) {
            _token = params.token;
            bindShortlistItemEvents();
          
            shortlistMobileContainerClicked();
            refreshShortListMobileContainer();

            bindShortlistSearchEvents();
            bindShortlistButtonEvents();
        }
        
        function bindShortlistButtonEvents() {
            $('.shortlist_btn').click(function (e) {
                $('.shortlist_btn').toggleClass('activate');
                $('body').toggleClass('overflow');
            });

            $(document).on('click', function (e) {
                $('.shortlist_btn').removeClass('activate');                
            });

            $('.shortHide').click(function (e) {
                $('.shortlist_btn').removeClass('activate');                
            });
        }

        function bindShortlistItemEvents() {
            $('p.shortlistItem.asset').on('click', function (e) {
                AddItemShortlist(this, e, 1);
            });

            $('p.shortlistItem.product').on('click', function (e) {
                AddItemShortlist(this, e, 2);
            });
        }

        function bindShortlistSearchEvents() {
            /* Add search url to shortlist */
            $("#save-search-btn").off();
            $('#save-search-btn').on('click', function (e) {
                AddSearchToShortList(this, e);
            });

            /* Add search url to shortlist */
            $('.product-filter .category .searchUrlId').off();
            $('.product-filter .category .searchUrlId').on('click', function (e) {
                e.preventDefault();
                var shortlistitemID = this.id;
                var ref = $(this).data('ref');
                var $this = $(this);
                var request = $.ajax({
                    type: "POST",
                    contentType: "application/json; charset=utf-8",
                    url: '/public/shortlist/removeselectedsearchurl',
                    data: "{'searchShortlistItemId':" + JSON.stringify(shortlistitemID) + "}",
                    success: function (e) {
                        $this.closest('.category').remove();
                    },
                    error: function (e) {
                       // console.log("Not removed");
                    }, headers: {
                        '__RequestVerificationToken': _token
                    }
                });

            });
        }

        function AddSearchToShortList(input, event) {

            //var isShortlisted = $("#isShortlisted").val();
            var canAddShortlist = $("#canAddShortlist").val();

            event.preventDefault();
            var searchURL = (location.pathname + location.search);
            searchURL = decodeURIComponent(searchURL);
            var formData = {};
            formData.CategoryId = 4;

            formData.itemID = searchURL;
            var searchStringShortlist = searchURL;
            var $this = $(input);
            var icon = $this.find("#starIcon");

            if (icon.hasClass('icon-star-filled')) {
                var request = $.ajax({
                    type: "POST",
                    contentType: "application/json; charset=utf-8",
                    url: '/public/shortlist/removesearchurl',
                    data: "{'searchStringShortlist':" + JSON.stringify(searchStringShortlist) + "}",
                    success: function (e) {
                        icon.removeClass('icon-star-filled');
                        icon.addClass('icon-star');                        
                        refreshShortListMobileContainer();
                    },
                    error: function (e) {
                       // console.log("Not removed");
                    }, headers: {
                        '__RequestVerificationToken': _token
                    }
                });

            }
            else {
                if (canAddShortlist == 'True') {

                    var request = $.ajax({
                        type: "POST",
                        contentType: "application/json; charset=utf-8",
                        url: '/public/shortlist/addtoshortlistitem',
                        data: "{'formData':" + JSON.stringify(formData) + "}",
                        success: function () {

                            icon.addClass('icon-star-filled');
                            icon.removeClass('icon-star');                            
                            refreshShortListMobileContainer();
                        },
                        error: function (e) {
                            //console.log("Not added");
                        }, headers: {
                            '__RequestVerificationToken': _token
                        }
                    });

                }
                else {

                    $("#shortlistItemLimitModal").modal("show");
                    $("#shortlistLimitError").removeClass('hidden');
                }
            }
        }

        // Please be aware that the following processes are for mobile events only. It has a duplicated process for Desktop View

        function shortlistMobileContainerClicked() {
            $(".shortlist-mobile-container").click(function (event) {
                //console.log('shortlist-mobile-container clicked!');
                refreshShortListMobileContainer();
            });
        }

        function refreshShortListMobileContainer() {
           
            $.ajax({
                type: "GET",
                url: '/public/shortlist/headershortlist',
                datatype: "html",
                contentType: "text",
                success: function (response) {
                    $("#fillHeaderShortlist").html(response);
                    $('.shortlist-mobile-container #fillHeaderShortlist').remove();
                    $("#fillHeaderShortlist").clone(true, true).appendTo('.shortlist-mobile-container .shortlist-scroll');

                    refreshShortlistEventListener();
                    bindShortlistSearchEvents();
                    displayShortListContainer();
                    //console.log("shortlist header loaded successfully");
                    event.preventDefault();
                },
                error: function (err) {
                   // console.log("Error occurred while shortlist header load");
                    event.preventDefault();
                }
            });
        }

        function refreshShortlistEventListener() {
            
            $("#remove .icon").off();

            $('#remove .icon').on('click', function (e) {
                e.preventDefault();
                var itemID = this.id;
                var $this = $(this);
                $.ajax({
                    type: "POST",
                    contentType: "application/json; charset=utf-8",
                    url: '/public/shortlist/removeselecteditem',
                    data: "{'sitecoreItemID':" + JSON.stringify(itemID) + "}",
                    success: function (e) {
                        $this.closest('.shortlist').addClass('hidden');
                        var listItem = $('[id*="' + itemID.toUpperCase() + '"]');
                        listItem.removeClass('remove-card');
                        listItem.addClass('remove-filled');
                    },
                    error: function (e) {
                      //  console.log("Not removed");
                    }, headers: {
                        '__RequestVerificationToken': _token
                    }
                });
            });
        }

        // Please be aware that the following processes are for mobile events only.

        function displayShortListContainer() {

            if ($('.shortlist-mobile-container #HasItems').val() === "True") {
                //$('.shortlist-mobile-container').attr('style', 'display:block !important');
                $('.shortlist-mobile-inner-container').show();
            } else {
                //$('.shortlist-mobile-container').attr('style', 'display:none !important');
                $('.shortlist-mobile-inner-container').hide();
            }
        }

        function AddItemShortlist(input, event, category) {
            //debugger;
            var canAddItemShortlist = $(input).find("#canAddItemShortlist");
            if (canAddItemShortlist.length > 0) {
                canAddItemShortlist = canAddItemShortlist.val();
            }

            event.preventDefault();
            var formData = {};
            formData.CategoryId = category;

            formData.itemID = input.id;
            var sitecoreItemId = input.id;
            var $this = $(input);

            if ($this.hasClass('remove-card')) {
                var request = $.ajax({
                    type: "POST",
                    contentType: "application/json; charset=utf-8",
                    url: '/public/shortlist/removeselecteditem',
                    data: "{'sitecoreItemID':" + JSON.stringify(sitecoreItemId) + "}",
                    success: function (e) {
                        $this.removeClass('remove-card');
                        $this.addClass('remove-filled');
                        refreshShortListMobileContainer();                        
                    },
                    error: function (e) {
                       // console.log("Not removed");
                    }, headers: {
                        '__RequestVerificationToken': _token
                    }
                });
            }
            else {
                if (canAddItemShortlist.toLowerCase() === 'true') {
                    formData.__RequestVerificationToken = _token;
                    var request = $.ajax({
                        type: "POST",
                        contentType: "application/json; charset=utf-8",
                        url: '/public/shortlist/addtoshortlistitem',
                        data: "{'formData':" + JSON.stringify(formData) + "}",
                        success: function (e) {
                            $this.addClass('remove-card');
                            $this.removeClass('remove-filled');
                            refreshShortListMobileContainer();                                                    
                        },
                        error: function (e) {
                            //console.log("Not added");
                        }, headers: {
                            '__RequestVerificationToken': _token
                        }
                    });
                }
                else {
                    $("#shortlistItemLimitModal").modal("show");
                    $("#shortlistLimitError").removeClass('hidden');
                }
            }
        }

        return {
            init: init,
            bindShortlistItemEvents: bindShortlistItemEvents
        }
    }();
})(jQuery);

jQuery(document).ready(function ($) {
    var anti_forgery_token = "";

    if (document.getElementById('anti_forgery_token')) {
        anti_forgery_token = document.getElementById('anti_forgery_token').value;
    }

    stockland.modules.shortlist.init({
        token: anti_forgery_token
    });
});;
(function ($) {

    var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

    function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

    var placeMatcherAsset = function () {
        function placeMatcherAsset(item, params) {
            _classCallCheck(this, placeMatcherAsset);

            this.item = item;
            this.params = params;
        }

        _createClass(placeMatcherAsset, [{
            key: "starClass",
            get: function get() {
                if (this.item.IsItemShortlisted === true) {
                    return "remove-card";
                }
                return "remove-filled";
            }
        }, {
            key: "hasProductTypes",
            get: function get() {
                if (this.item.ProductTypes.length > 0) {
                    return true;
                }
                return false;
            }
            }, {
                key: "hasAssetProduct",
                get: function get() {
                    if (this.item.AssetProductCounts>0) {
                        return true;
                    }
                    return false
                }
            }
            , {
            key: "AssetLogoSrc",
            get: function get() {
                if (this.item.AssetLogo) {

                    if (this.item.AssetLogo.Src) {
                        var url = this.item.AssetLogo.Src + '?imageresizing=true&amp;mode=crop&amp;anchor=middlecenter&amp;width=245&amp;height=40&amp;as=1&amp;h=40';

                        return url;
                    };
                }

                return '/assets/images/whiteSpace1x1.jpg?imageresizing=true&amp;mode=crop&amp;anchor=middlecenter&amp;width=245&amp;height=40&amp;as=1&amp;h=40';
            }
        },
        {
            key: "StocklandLogoSrc",
            get: function get() {
                if (this.item.StocklandLogo) {

                    if (this.item.StocklandLogo.Src) {
                        var url = this.item.StocklandLogo.Src + '?imageresizing=true&amp;mode=crop&amp;anchor=middlecenter&amp;width=100&amp;height=40&amp;as=1&amp;h=40';

                        return url;
                    };
                }

                return '/assets/images/whiteSpace1x1.jpg?imageresizing=true&amp;mode=crop&amp;anchor=middlecenter&amp;width=100&amp;height=40&amp;as=1&amp;h=40';
            }
        }
            , {
            key: "AssetThumbnailSrc",
            get: function get() {
                if (this.item.Thumbnail) {

                    if (this.item.Thumbnail.Src) {
                        var url = this.item.Thumbnail.Src + '?imageresizing=true&amp;mode=crop&amp;anchor=middlecenter&amp;width=245&amp;height=40&amp;as=1&amp;h=40';

                        return url;
                    };
                }

                return '/assets/images/whiteSpace1x1.jpg?imageresizing=true&amp;mode=crop&amp;anchor=middlecenter&amp;width=245&amp;height=40&amp;as=1&amp;h=40';
            }
        }, {
            key: "AssetFeatureIcons",
            get: function get() {
                if (this.item.AssetFeatureIcons.length > 0) {
                    return this.item.AssetFeatureIcons.slice(0, 5).map(function (x) {
                        return { icon: x };
                    });
                };

                return undefined;
            }
        }]);

        return placeMatcherAsset;
    }();

    stockland.modules.nationalcommunitysearchresults = function (shortlistmod) {
        'use strict';

        var page = 1;
        var reachedMax = false;
        var _processing = false;
        var _resultCount;
        var _currentId,
            _assetList,
            _assetListPagination,
            _gtmEventCategory;

        function initInfiniteScroll(params) {
            window.scrollTo(0, 0);
            $(window).scrollTop(0);

            _currentId = params.currentId;
            _assetList = params.assetList;
            _assetListPagination = params.assetListPagination;
            _resultCount = params.resultCount;
            _gtmEventCategory = params.gtmEventCategory;

            window.onunload = function () {
                window.scrollTo(0, 0);
            }

            window.onscroll = function () {

                //console.log('Scroll Top:' + getScrollTop());
                //console.log('Footer Top:' + getFooterTop());

                if (getScrollTop() < getFooterTop()) {
                    return;
                }

                if (!reachedMax) {
                    if (!_processing) {

                        //console.log('Scroll Top:' + getScrollTop());
                        //console.log('Footer Top:' + getFooterTop());
                        //console.log('Page No:' + page);
                        addPage(page);

                    }
                }
            };
        }

        function getFooterTop() {
            var buffer = 550;
            var footerTop = $('footer').offset().top - buffer;
            if (footerTop < 0) {
                return 1;
            }
            return footerTop;
        }
        function getPageId(n) {
            return 'asset-list-page-' + n;
        }

        function getScrollTop() {
            return $(window).scrollTop();
        }

        function passUriParameters() {
            var obj = {};
            var queryString = location.search.substring(1);
            var pairs = queryString.split('&').filter(function (v) {
                return v != '';
            });
            for (var i in pairs) {
                var split = pairs[i].split('=');
                obj[decodeURIComponent(split[0])] = decodeURIComponent(split[1]);
            }
            return obj;
        }

        function addRowWrapper(resultHtml) {
            var template = $('#searchResultRowWrapperTpl').html();
            var item = { rowItems: resultHtml };
            var html = Mustache.to_html(template, item);
            return html;
        }

        function appendResultSet(data) {
            var template = $('#searchResultCardTpl').html();

            var count = 1;
            var finalHtml = "";
            var resultHtml = "";
            data.forEach(function (item) {
                var params = {}
                params.gtmEventCategory = _gtmEventCategory;
                var model = new placeMatcherAsset(item, params);

                var html = Mustache.to_html(template, model);
                count++;
                resultHtml = resultHtml + html;
                if (count > 2) {
                    finalHtml = finalHtml + addRowWrapper(resultHtml);
                    count = 1;
                    resultHtml = "";

                }
            });

            if (resultHtml) {
                finalHtml = finalHtml + addRowWrapper(resultHtml);
            }

            finalHtml = "<span id='" + getPageId(page + 1) + "'>" + finalHtml + "</span>";
            _assetList.insertAdjacentHTML('beforeend', finalHtml);
        }

        function getAssetItems(pageParam) {
            $('#inProgress').show();
            _processing = true;
            var url = '/public/placematcher/nationalcommunitysearchresults';
            var data = passUriParameters();
            data.isRefinedSearch = true;
            data.currentItemId = _currentId;
            data.page = pageParam + 1;

            $.ajax({
                url: url,
                data: data,
                success: function (result) {

                    //console.log(result.Data);
                    appendResultSet(result.Data);
                    page++;

                    //Note: pagination function is currently not used.
                    //addPaginationPage(page);

                    var totalCards = $("#asset-list-container .card").length;
                    if (totalCards >= _resultCount) {
                        reachedMax = true;
                    }
                    $('#inProgress').hide();
                    setTimeout(function () { }, 5000);

                    shortlistmod.bindShortlistItemEvents();
                    _processing = false;
                },
                error: function (xhr, ajaxOptions, thrownError) {
                    // console.log(xhr);
                    $('#inProgress').hide();
                    setTimeout(function () { }, 5000);
                    _processing = false;
                }
            });

        }

        //Note: pagination function is currently not used.
        function addPaginationPage(page) {
            var pageLink = document.createElement('a');
            pageLink.href = '#' + getPageId(page);
            pageLink.innerHTML = page;

            var listItem = document.createElement('li');
            listItem.className = 'article-list-pagination-item';
            listItem.appendChild(pageLink);

            _assetListPagination.appendChild(listItem);

            if (page === 2) {
                _assetListPagination.classList.remove('asset-list-pagination-inactive');
            }
        }

        function addPage(page) {
            getAssetItems(page);
        }

        return {
            initInfiniteScroll: initInfiniteScroll
        }

    }(stockland.modules.shortlist);

})(jQuery);

jQuery(document).ready(function ($) {


    // only if search enable and if thats mobile and page is of NationalCommunitySearchResult.
    //https://github.com/maciej-gurban/responsive-bootstrap-toolkit#installation

    var init = false;

    if (document.getElementById('stockland_module_nationalcommunitysearchresults_init')) {
        init = document.getElementById('stockland_module_nationalcommunitysearchresults_init').value;
    }

    var currentId = "";

    if (document.getElementById('stockland_module_current_item_id')) {
        currentId = document.getElementById('stockland_module_current_item_id').value;
    }

    var assetList = document.getElementById('asset-list-container');
    var assetListPagination = document.getElementById('asset-list-pagination');
    var resultCount = 0
    if (document.getElementById('resultCount')) {
        resultCount = document.getElementById('resultCount').value;
    }
    var gtmEventCategory = "";
    if (document.getElementById('gtmEventCategory')) {
        gtmEventCategory = document.getElementById('gtmEventCategory').value;
    }
    var viewport = ResponsiveBootstrapToolkit;

    if (viewport.is('xs')) {

        if (init) {
            stockland.modules.nationalcommunitysearchresults.initInfiniteScroll({
                currentId: currentId,
                assetList: assetList,
                assetListPagination: assetListPagination,
                resultCount: resultCount,
                gtmEventCategory: gtmEventCategory
            });
        }
    }

});;
(function ($) {
    "use strict";

    var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

    function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

    var placeMatcherAssetLocal = function () {
        function placeMatcherAssetLocal(item, params) {
            _classCallCheck(this, placeMatcherAssetLocal);

            this.item = item;
            this.params = params;
        }

        _createClass(placeMatcherAssetLocal, [{
            key: "getThumbnailImageSrc",
            value: function getThumbnailImageSrc() {
                if (this.item.PromoImage && this.item.IsPromoPrimaryImage) {
                    if (this.item.PromoImageUrl ) {
                        return this.item.PromoImageUrl;
                    };
                }
                else if (this.item.ThumbnailImage) {
                    if (this.item.ThumbnailImageUrl) {
                        return this.item.ThumbnailImageUrl;
                    };
                }
                else if (this.item.FloorPlanImage) {
                    if (this.item.FloorPlanImageUrl) {
                        return this.item.FloorPlanImageUrl;
                    };
                }

                return undefined;
            }
        }, {
            key: "starClass",
            get: function get() {
                if (this.item.IsItemShortlisted === true) {
                    return "remove-card";
                }
                return "remove-filled";
            }
        }, {
            key: "hasThumbnailImage",
            get: function get() {
                var valx = this.getThumbnailImageSrc();
                if (valx) {
                    return true;
                }
                return false;
            }
            }, {
            key: "ThumbnailImageSrc",
            get: function get() {
                return this.getThumbnailImageSrc();
            }
        }, {
            key: "IsLeasingCMLPower",
            get: function get() {
                if (this.item.LeasingCMLPower) {
                    return "Yes";
                }
                return "No";
            }
        }, {
            key: "HasItemLotSize",
            get: function get() {
                if (this.item.LotSize != 0) {
                    return true;
                }
                return false;
            }
        }, {
            key: "HasNumberOfBeds",
            get: function get() {
                if (this.item.NumberOfBeds != 0) {
                    return true;
                }
                return false;
            }
        }, {
            key: "ProductTypeDisplayNameLandAndHasLotSize",
            get: function get() {
                if (this.item.ProductTypeDisplayName == "Land") {
                    if (this.item.LotSize > 0) {
                        return true;
                    }
                }
                return false;
            }
        }]);

        return placeMatcherAssetLocal;
    }();

    stockland.modules.localcommunitysearchresults = function (shortlistmod) {
        'use strict';

        var page = 1;
        var reachedMax = false;
        var _processing = false;
        var _resultCount;
        var _currentId,
            _assetList,
            _assetListPagination,
            _gtmEventCategory;

        function initInfiniteScroll(params) {
            window.scrollTo(0, 0);
            $(window).scrollTop(0);

            _currentId = params.currentId;
            _assetList = params.assetList;
            _assetListPagination = params.assetListPagination;
            _resultCount = params.resultCount;
            _gtmEventCategory = params.gtmEventCategory;

            window.onunload = function () {
                $(window).scrollTop(0);
            }

            window.onscroll = function () {

                if (getScrollTop() < getFooterTop()) {
                    return;
                }

                if (!reachedMax) {
                    if (!_processing) {
                        addPage(page);
                    }
                }
            };
        }

        function getFooterTop() {
            var buffer = 550;
            var footerTop = $('footer').offset().top - buffer;
            if (footerTop < 0) {
                return 1;
            }
            return footerTop;
        }
        function getPageId(n) {
            return 'asset-list-page-' + n;
        }

        function getScrollTop() {
            return $(window).scrollTop();
        }

        function passUriParameters() {
            var obj = {};
            var queryString = location.search.substring(1);
            var pairs = queryString.split('&').filter(function (v) {
                return v != '';
            });
            for (var i in pairs) {
                var split = pairs[i].split('=');
                obj[decodeURIComponent(split[0])] = decodeURIComponent(split[1]);
            }
            return obj;
        }

        function addRowWrapper(resultHtml) {
            var template = $('#searchResultRowWrapperTpl').html();
            var item = { rowItems: resultHtml };
            var html = Mustache.to_html(template, item);
            return html;
        }

        function appendResultSet(data) {
            var template = $('#searchResultCardTpl').html();

            var count = 1;
            var finalHtml = "";
            var resultHtml = "";
            data.List.forEach(function (item) {
                var params = {}
                params.gtmEventCategory = _gtmEventCategory;
                var model = new placeMatcherAssetLocal(item, params);

                var html = Mustache.to_html(template, model);
                count++;
                resultHtml = resultHtml + html;
                if (count > 2) {
                    finalHtml = finalHtml + addRowWrapper(resultHtml);
                    count = 1;
                    resultHtml = "";

                }
            });

            if (resultHtml) {
                finalHtml = finalHtml + addRowWrapper(resultHtml);
            }

            finalHtml = "<span id='" + getPageId(page + 1) + "'>" + finalHtml + "</span>";
            _assetList.insertAdjacentHTML('beforeend', finalHtml);
        }

        function getAssetItems(pageParam) {
            $('#inProgress').show();
            _processing = true;
            var promo = false;
            if (document.getElementById('isPromo')) {
                promo = document.getElementById('isPromo').value;
            }
            var url = '/public/placematcher/localproductsearchresults';
            var data = passUriParameters();
            data.isRefinedSearch = true;
            data.currentItemId = _currentId;
            data.page = pageParam + 1;
            data.isPromo = promo;
            $.ajax({
                url: url,
                data: data,
                success: function (result) {

                    //console.log(result.Data);
                    appendResultSet(result.Data);
                    page++;

                    //Note: pagination function is currently not used.
                    //addPaginationPage(page);

                    var totalCards = $("#asset-list-container .card").length;
                    if (totalCards >= _resultCount) {
                        reachedMax = true;
                    }
                    $('#inProgress').hide();
                    setTimeout(function () { }, 5000);

                    shortlistmod.bindShortlistItemEvents();
                    _processing = false;
                },
                error: function (xhr, ajaxOptions, thrownError) {
                   // console.log(xhr);
                    $('#inProgress').hide();
                    setTimeout(function () { }, 5000);
                    _processing = false;
                }
            });

        }
        
        function addPage(page) {
            getAssetItems(page);
        }

        return {
            initInfiniteScroll: initInfiniteScroll
        }

    }(stockland.modules.shortlist);

})(jQuery);

jQuery(document).ready(function ($) {

    // only if search enable and if thats mobile and page is of LocalCommunitySearchResult.

    var init = false;

    if (document.getElementById('stockland_module_localcommunitysearchresults_init')) {
        init = document.getElementById('stockland_module_localcommunitysearchresults_init').value;
    }

    var currentId = "";

    if (document.getElementById('stockland_module_current_item_id')) {
        currentId = document.getElementById('stockland_module_current_item_id').value;
    }

    var assetList = document.getElementById('asset-list-container');
    var assetListPagination = document.getElementById('asset-list-pagination');
    var resultCount = 0
    if (document.getElementById('resultCount')) {
        resultCount = document.getElementById('resultCount').value;
    }
    var gtmEventCategory = "";
    if (document.getElementById('gtmEventCategory')) {
        gtmEventCategory = document.getElementById('gtmEventCategory').value;
    }
    var viewport = ResponsiveBootstrapToolkit;

    if (viewport.is('xs')) {

        if (init) {
            stockland.modules.localcommunitysearchresults.initInfiniteScroll({
                currentId: currentId,
                assetList: assetList,
                assetListPagination: assetListPagination,
                resultCount: resultCount,
                gtmEventCategory: gtmEventCategory
            });
        }
    }

});;
(function ($) {
    var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

    function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

    var placeMatcherCommunityGroup = function () {
        function placeMatcherCommunityGroup(item, params) {
            _classCallCheck(this, placeMatcherCommunityGroup);

            this.item = item;
            this.params = params;
        }

        _createClass(placeMatcherCommunityGroup, [{
            key: 'CommunityLogoSrc',
            get: function get() {
                if (this.item.CommunityLogo) {

                    if (this.item.CommunityLogo.Src) {
                        var url = this.item.CommunityLogo.Src + '?imageresizing=true&amp;mode=crop&amp;anchor=middlecenter&amp;width=245&amp;height=40&amp;as=1&amp;h=40';

                        return url;
                    };
                }

                return '/assets/images/whiteSpace1x1.jpg?imageresizing=true&amp;mode=crop&amp;anchor=middlecenter&amp;width=245&amp;height=40&amp;as=1&amp;h=40';
            }
        }]);

        return placeMatcherCommunityGroup;
    }();

    var placeMatcherAssetLocal = function () {
        function placeMatcherAssetLocal(item, params) {
            _classCallCheck(this, placeMatcherAssetLocal);

            this.item = item;
            this.params = params;
        }

        _createClass(placeMatcherAssetLocal, [{
            key: 'getThumbnailImageSrc',
            value: function getThumbnailImageSrc() {
                if (this.item.PromoImage) {
                    if (this.item.PromoImageUrl) {
                        return this.item.PromoImageUrl;
                    };
                } else if (this.item.ThumbnailImage) {
                    if (this.item.ThumbnailImageUrl) {
                        return this.item.ThumbnailImageUrl;
                    };
                } else if (this.item.FloorPlanImage) {
                    if (this.item.FloorPlanImageUrl) {
                        return this.item.FloorPlanImageUrl;
                    };
                }

                return undefined;
            }
        }, {
            key: 'starClass',
            get: function get() {
                if (this.item.IsItemShortlisted === true) {
                    return "remove-card";
                }
                return "remove-filled";
            }
        }, {
            key: 'hasThumbnailImage',
            get: function get() {
                var valx = this.getThumbnailImageSrc();
                if (valx) {
                    return true;
                }
                return false;
            }
        }, {
            key: 'ThumbnailImageSrc',
            get: function get() {
                return this.getThumbnailImageSrc();
            }
        }, {
            key: 'IsLeasingCMLPower',
            get: function get() {
                if (this.item.LeasingCMLPower) {
                    return "Yes";
                }
                return "No";
            }
        }, {
            key: 'HasItemLotSize',
            get: function get() {
                if (this.item.LotSize != 0) {
                    return true;
                }
                return false;
            }
        }, {
            key: 'HasNumberOfBeds',
            get: function get() {
                if (this.item.NumberOfBeds != 0) {
                    return true;
                }
                return false;
            }
            },
            {
                key: 'HasBadgeItem',
                get: function get() {
                    if (this.item.HasBadges || this.item.MainTitle) {
                        return true;
                    }
                    return false;
                }
            },
            {
                key: 'HasBadgeImages',
                get: function get() {
                    if (this.item.BadgePromotionImages && this.item.BadgePromotionImages.length>0) {
                        return true;
                    }
                    return false;
                }
            }, {
            key: 'ProductTypeDisplayNameLandAndHasLotSize',
            get: function get() {
                if (this.item.ProductTypeDisplayName == "Land") {
                    if (this.item.LotSize > 0) {
                        return true;
                    }
                }
                return false;
            }
        }]);

        return placeMatcherAssetLocal;
    }();

    stockland.modules.nationalproductsearchresults = function (shortlistmod) {
        'use strict';

        var page = 1;
        var reachedMax = false;
        var _processing = false;
        var _resultCount;
        var _currentId,
            _assetList,
            _assetListPagination,
            _gtmEventCategory;

        function initInfiniteScroll(params) {
            window.scrollTo(0, 0);
            $(window).scrollTop(0);

            //console.log('Scroll Top:' + getScrollTop());
            //console.log('Footer Top:' + getFooterTop());

            _currentId = params.currentId;
            _assetList = params.assetList;
            _assetListPagination = params.assetListPagination;
            _resultCount = params.resultCount;
            _gtmEventCategory = params.gtmEventCategory;

            window.onunload = function () {
                window.scrollTo(0, 0);
            }

            window.onscroll = function () {
 
                //console.log('Scroll Top:' + getScrollTop());
                //console.log('Footer Top:' + getFooterTop());

                if (getScrollTop() < getFooterTop()) {
                    return;
                }

                var totalCards = $("#asset-list-container .card.parent-placematcher-card.slim.paginate").length;
                if (totalCards >= _resultCount) {
                    reachedMax = true;
                }

                if (!reachedMax) {
                    if (!_processing) {

                        //console.log('Scroll Top:' + getScrollTop());
                        //console.log('Footer Top:' + getFooterTop());
                       // console.log('Page No:' + page);
                        addPage(page);

                    }
                }
            };
        }

        function getFooterTop() {
            var buffer = 550;
            var footerTop = $('footer').offset().top - buffer;
            if (footerTop < 0) {
                return 1;
            }
            return footerTop;
        }
        function getPageId(n) {
            return 'asset-list-page-' + n;
        }
        
        function getScrollTop() {
            return $(window).scrollTop();
        }

        function passUriParameters() {
            var obj = {};
            var queryString = location.search.substring(1);
            var pairs = queryString.split('&').filter(function (v) {
                return v != '';
            });
            for (var i in pairs) {
                var split = pairs[i].split('=');
                obj[decodeURIComponent(split[0])] = decodeURIComponent(split[1]);
            }
            return obj;
        }

        function addRowWrapper(resultHtml) {
            var template = $('#searchResultRowWrapperTpl').html();
            var item = { rowItems: resultHtml };
            var html = Mustache.to_html(template, item);
            return html;
        }

        function appendResultSet(data) {
            var template = $('#searchResultCommunityWrapperTpl').html();

            var finalHtml = "";
            var resultHtml = "";

            data.forEach(function(item) {
                var model = new placeMatcherCommunityGroup(item);
                model.rowItems = getProductHtml(item.PlaceMatcherAssets);
                var html = Mustache.to_html(template, model);
                resultHtml = resultHtml + html;
            });
            finalHtml = resultHtml;
            finalHtml = "<span id='" + getPageId(page + 1) + "'><div class=\'row\'>" + finalHtml + "</div></span>";
            _assetList.insertAdjacentHTML('beforeend', finalHtml);
        }

        function getProductHtml(data) {
            var template = $('#searchResultCardTpl').html();

            var count = 1;
            var finalHtml = "";
            var resultHtml = "";
          
            data.forEach(function (item) {
                var params = {}
                params.gtmEventCategory = _gtmEventCategory;
                var model = new placeMatcherAssetLocal(item, params);

                var html = Mustache.to_html(template, model);
                count++;
                resultHtml = resultHtml + html;
                if (count > 2) {
                    finalHtml = finalHtml + addRowWrapper(resultHtml);
                    count = 1;
                    resultHtml = "";

                }
            });

            if (resultHtml) {
                finalHtml = finalHtml + addRowWrapper(resultHtml);
            }

            return finalHtml;
        }
        function getAssetItems(pageParam) {
            $('#inProgress').show();
            _processing = true;
            var url = '/public/placematcher/nationalproductsearchresults';
            var data = passUriParameters();
            data.isRefinedSearch = true;
            data.currentItemId = _currentId;
            data.page = pageParam + 1;

            $.ajax({
                url: url,
                data: data,
                success: function (result) {

                    //console.log(result.Data);
                    appendResultSet(result.Data);
                    page++;

                    //Note: pagination function is currently not used.
                    //addPaginationPage(page);

                    var totalCards = $("#asset-list-container .card.parent-placematcher-card.slim.paginate").length;
                    if (totalCards >= _resultCount) {
                        reachedMax = true;
                    }
                    $('#inProgress').hide();
                    setTimeout(function () { }, 5000);

                    shortlistmod.bindShortlistItemEvents();
                    _processing = false;
                },
                error: function (xhr, ajaxOptions, thrownError) {
                    //console.log(xhr);
                    $('#inProgress').hide();
                    setTimeout(function () { }, 5000);
                    _processing = false;
                }
            });

        }

        //Note: pagination function is currently not used.
        function addPaginationPage(page) {
            var pageLink = document.createElement('a');
            pageLink.href = '#' + getPageId(page);
            pageLink.innerHTML = page;

            var listItem = document.createElement('li');
            listItem.className = 'article-list-pagination-item';
            listItem.appendChild(pageLink);

            _assetListPagination.appendChild(listItem);

            if (page === 2) {
                _assetListPagination.classList.remove('asset-list-pagination-inactive');
            }
        }

        function addPage(page) {
            getAssetItems(page);
        }

        return {
            initInfiniteScroll: initInfiniteScroll
        }

    }(stockland.modules.shortlist);

})(jQuery);

jQuery(document).ready(function ($) {

    var init = false;

    if (document.getElementById('stockland_module_nationalproductsearchresults_init')) {
        init = document.getElementById('stockland_module_nationalproductsearchresults_init').value;
    }

    var currentId = "";

    if (document.getElementById('stockland_module_current_item_id')) {
        currentId = document.getElementById('stockland_module_current_item_id').value;
    }

    var assetList = document.getElementById('asset-list-container');
    var assetListPagination = document.getElementById('asset-list-pagination');
    var resultCount = 0
    if (document.getElementById('resultCount')) {
        resultCount = document.getElementById('resultCount').value;
    }    
    var gtmEventCategory = "";
    if (document.getElementById('gtmEventCategory')) {
        gtmEventCategory = document.getElementById('gtmEventCategory').value;
    }
    var viewport = ResponsiveBootstrapToolkit;

    if (viewport.is('xs')) {

        if (init) {
            stockland.modules.nationalproductsearchresults.initInfiniteScroll({
                currentId: currentId,
                assetList: assetList,
                assetListPagination: assetListPagination,
                resultCount: resultCount,
                gtmEventCategory: gtmEventCategory
            });
        }
    }

});;
jQuery(document).ready(function ($) {
    if (jQuery('#stockland_module_multipleslider_init').val() == 'true') {
        var min_lotsize = stockland_module_min_lotsize;
        var max_lotsize = stockland_module_max_lotsize;
        var min_frontage = stockland_module_min_frontage;
        var max_frontage = stockland_module_max_frontage;
        var lockedState = false,
            lockedSlider = false,
            slider1 = document.getElementById('slider1'),
            slider2 = document.getElementById('slider2'),
            lockButton = document.getElementById('lockbutton'),
            slider1Value = document.getElementById('slider1-span'),
            slider11Value = document.getElementById('slider11-span'),
            slider2Value = document.getElementById('slider2-span');
        slider22Value = document.getElementById('slider22-span');

        if (lockButton != null) {
            lockButton.addEventListener('click',
                function () {
                    lockedState = !lockedState;
                    this.textContent = lockedState ? 'unlock' : 'lock';
                });
        }

        if (slider1 != null || slider2 != null) {

            function crossUpdate(value, slider) {
                if (!lockedState) return;
                var a = slider1 === slider ? 0 : 1, b = a ? 0 : 1;
                value -= lockedValues[b] - lockedValues[a];
                slider.noUiSlider.set(value);
            }


            if (slider1 != null) {
                    noUiSlider.create(slider1,
                        {
                            start: [min_lotsize, max_lotsize],
                            connect: true,
                            behaviour: 'tap',
                            range: {
                                'min': [stockland_module_default_min_lotsize],
                                'max': [stockland_module_default_max_lotsize]
                            },
                            format: wNumb({
                                decimals: 2,
                                thousand: ',',
                                postfix: ' m<sup>2</sup>',
                            })
                        });
                
                slider1.noUiSlider.on('update',
                    function (values, handle) {
                        if (!handle) {
                            slider1Value.innerHTML = values[handle];
                        } else {
                            slider11Value.innerHTML = values[handle];
                        }
                    });

                slider1.noUiSlider.on('change', setLockedValues);
                slider1.noUiSlider.on('slide',
                    function (values, handle) {
                        crossUpdate(values[handle], slider2);
                    });

            }

            if (slider2 != null) {
                noUiSlider.create(slider2,
                {
                    start: [min_frontage, max_frontage],
                    connect: true,
                    behaviour: 'tap',
                    range: {
                        'min': [min_frontage],
                        'max': [max_frontage]
                    },
                    format: wNumb({
                        decimals: 2,
                        thousand: ',',
                        postfix: ' m',
                    })
                });


                slider2.noUiSlider.on('update',
                    function (values, handle) {
                        if (!handle) {
                            slider2Value.innerHTML = values[handle];
                        } else {
                            slider22Value.innerHTML = values[handle];
                        }
                    });

                slider2.noUiSlider.on('change', setLockedValues);

                slider2.noUiSlider.on('slide',
                    function (values, handle) {
                        crossUpdate(values[handle], slider1);
                    });
            }


            function setLockedValues() {
                lockedValues = [
                    Number(slider1.noUiSlider.get()),
                    Number(slider2.noUiSlider.get())
                ];
            }


        }
    }
});;
jQuery(document).ready(function ($) {

    if (!$('.graph-wrap').length) {
        //console.log("Graph wrapper not found");
    }
    else {

        var $win = $(window),
             $graph = $('.graph-wrap'),
             $total = $('.graph-wrap .graph').data('total'),
             $bar = $('.graph-wrap .graph ul li span'),
             $label = $('.graph-wrap label'),
             percent = 0;

        function findBiggest() {
            $graph.each(function () {
                var longest = 0;
                $(this).find('.graph ul li span').each(function () {
                    //console.log($(this));

                    if ($(this).data('size') > longest) {
                        longest = $(this).data('size');
                    }

                    $(this).parents('.graph-wrap').attr('data-longest', longest);
                });
            });
        }

        function buildGraphs() {
            $win.on("scroll load", function () {

                var zero = 0;
                while (zero <= $total) {
                    $label = zero;
                    zero++;
                }

                $graph.each(function () {
                    //console.log($(this).offset().top);

                    if ($win.scrollTop() > ($(this).offset().top - $win.outerHeight())) {

                        if ($(this).data('longest') > $(this).find('.graph').data('total')) {
                            $(this).find('.graph ul li span').each(function () {
                                $(this).css({ 'width': ($(this).data('size') * 100) / $(this).parents('.graph-wrap').data('longest') + '%', 'left': 0 });
                                //$(this).css({ 'width' : ($(this).find('.graph ul li span').data('size') * 100) / $(this).data('longest') + '%', 'left' : 0 });
                            });
                        }

                        else {
                            $(this).find('.graph ul li span').each(function () {
                                $(this).css({ 'width': ($(this).data('size') * 100) / $(this).parents('.graph').data('total') + '%', 'left': 0 });
                                //$(this).find('.graph ul li span').css({ 'width' : ($(this).find('.graph ul li span').data('size') * 100) / $(this).find('.graph').data('total') + '%', 'left' : 0 });
                            });
                        }
                    }
                });
            });
        }

        findBiggest();
        buildGraphs();

    }



    //////////////////////////////////////////////////////////////////////////////////////

    // Main Highlights
    var hasAnimated = false,
        hasScrolled = false;

    var mainHighlights = function () {
        var $counter = $('.highlights-value .number');

        if (hasAnimated !== true) {
            $counter.each(function (i) {
                var to = $(this).attr('data-count'),
                    from = 0,
                    decimal = to.split(".");

                //console.log(i + " " + decimal[1]);

                if (decimal[1] === undefined) {
                    $(this).prop('Counter', from).animate({
                        Counter: to
                    }, {
                        duration: 2500,
                        easing: 'swing',
                        step: function (to) {
                            $(this).text(to.toFixed(0));
                        }
                    });
                }

                else {
                    $(this).prop('Counter', from).animate({
                        Counter: to
                    }, {
                        duration: 2500,
                        easing: 'swing',
                        step: function (to) {
                            $(this).text(to.toFixed(decimal[1].length));
                        }
                    });
                }
            });

            hasAnimated = true;
        }
    };

    function animateOnScroll() {
        var $win = $(window),
            $highlightsWrapper = $('.highlights-wrapper');

        //console.log("animate on scorll");


        $(window).on("scroll load", function () {
            if (hasScrolled !== true) {

                $highlightsWrapper.each(function () {
                    if ($win.scrollTop() > ($(this).offset().top - $win.outerHeight())) {
                        mainHighlights();
                        hasScrolled = true;
                    }
                });
            }
        });
    }



    $(function () {
        // making main highlights global
        window["animateOnScroll"] = animateOnScroll;

        animateOnScroll();
    });
});;
(function () {
    $(document).ready(function () {
        var $stagedNav = $('.staged-nav'),
          $stageNavItems = $stagedNav.find('.staged-nav__item'),
          //$activeStageNavItem = $stagedNav.find('.active'),
          //startPos =  $activeStageNavItem.index('.staged-nav__item'),
          startPos = $("div owl-stage").children().first().index('.owl-item'),
          nextPos = startPos === ($stageNavItems.length - 1) ? startPos : startPos + 1,
          carouselOpts = {
              loop: false,
              nav: true,
              navtext: ['', ''],
              responsiveClass: true,
              dots: false,
              responsive: {
                  0: {
                      items: 1,
                      slideBy: 1,
                      startPosition: nextPos
                  },
                  768: {
                      items: 3,
                      slideBy: 1,
                      startPosition: startPos < 0 ? 0 : startPos
                  },
                  1024: {
                      items: 4,
                      slideBy: 1,
                      startPosition: startPos < 0 ? 0 : startPos
                  }
              }
          };
        if (nextPos !== startPos) {
          //  $stageNavItems.eq(nextPos).addClass('next-stage');
        }
        $stagedNav.owlCarousel(carouselOpts);
    });
}());;
$(document).ready(function (e) {

    if ($("#tabbedContentDiv").length == 0)
        return;

    $('.tabcontent-mobile-wrapper a').on('click', function (e) {
        BindClick(this);
    });

    $('.tabcontent-desktop-wrapper a').on('click', function (e) {
        DisplayPromoImage(this);
    });
    var queryString = getQueryStringKey("tab");
    if ($('.tabcontent-mobile-wrapper').is(':visible')) {

        if (queryString) {
            $('.tabcontent-mobile-wrapper a[href="#' + queryString + '_mob"]').on('click', function (e) {
                BindClick(this);
            });

            $('.tabcontent-option a[href="#' + queryString + '_mob"]').trigger('click');
        }
        else {
            $('.tabcontent-mobile-wrapper a:first').trigger('click');
        }
    }

    if ($('.tabcontent-desktop-wrapper').is(':visible')) {

        if (!queryString) {
            $('.tabcontent-desktop-wrapper a:first').trigger('click');
            //on load highlight first tab by default
            $('.tabcontent-ul').attr('style', '--cnt:0' + ";" + '--total:' + $(".tabcontent-ul").data('totaltabs'));
        }
        else {

            $('.tabcontent-tabs-list a[href="#' + queryString + '"]').on('click', function (e) {
                DisplayPromoImage(this);
            });

            $('.tabcontent-tabs-list a[href="#' + queryString + '"]').trigger('click');

            //for the sliding effect on tab clicks when query string is set
            $('.tabcontent-ul li a[href="#' + queryString + '"]').on('click', function (e) {
                $('.tabcontent-ul').attr('style', '--cnt:' + $(this).parent("li").data('cnt') + ";" + '--total:' + $(".tabcontent-ul").data('totaltabs'));
            });

            $('.tabcontent-ul li a[href="#' + queryString + '"]').trigger('click');
        }
    }

    //for the sliding effect on tab clicks
    $('.tabcontent-ul li').on('click', function (e) {
        $('.tabcontent-ul').attr('style', '--cnt:' + $(this).data('cnt') + ";" + '--total:' + $(".tabcontent-ul").data('totaltabs'));
    });

});

function BindClick(tabClicked) {
    $("#divTabContentSelect").find('#selected').text($(tabClicked).text().trim());
    $("#divTabContentSelect").find('#selected').val($.trim($(tabClicked).text().trim()));

    var selectedItem = $("#divTabContentSelect").find('#selected').text().trim();
    $('#dropdownTabContentOptions div').show();
    $("#dropdownTabContentOptions").find("div:contains('" + selectedItem + "')").hide();

    updateQueryString();

    DisplayPromoImage(tabClicked);
}

function DisplayPromoImage(tabClicked) {

    var selectedText = $(tabClicked).attr("href").replace('#', '').toLowerCase();
    if ($('.promoDiv_' + selectedText).length > 0) {
        $('#tabbedContentPromoImage').children().hide();
        $('#tabbedContentPromoImage').append($('.promoDiv_' + selectedText));
        $('.promoDiv_' + selectedText).fadeIn(5);
    }
    updateQueryString();
}

function updateQueryString() {

    if (getQueryStringKey("tab")) {
        var url = new URL(window.location.origin + window.location.pathname) // flush existing parameters
        //  url.searchParams.append("tab", selectedItem.toLowerCase());
        window.history.pushState(null, null, url);
    }
}

$(window).scroll(function () {

    (function () {
        var previousScroll = 0;
        var stickyOffset = $('#tabcontent-mobileTab').offset().top;//$("#mainNav").outerHeight(true);

        $(window).scroll(function () {
            if ($('.tabcontent-mobile-wrapper').is(':visible')) {

                const xMainNav = $('#mainNav').offset().top;
                const yMainNav = $('#mainNav').offset().left;
                const xtabSelect = $("#divTabContentSelect").offset().top;
                const ytabSelect = $("#divTabContentSelect").offset().left;
                const xDistance = xMainNav - xtabSelect;
                const yDistance = yMainNav - ytabSelect;

                let distance = Math.sqrt((xDistance * xDistance) + (yDistance * yDistance));

                var currentScroll = $(this).scrollTop();
                var sticky = $('#divTabContentSelect'); 

                if (currentScroll > previousScroll) {
                    $("#divTabContentSelect").css({ "width": "100%", "-webkit-transition": "all 2s ease-in" });
                     $("#dropdownTabContentOptions").css({ "width": "100%", "-webkit-transition": "all 2s ease-in" });
                     $("#dLabel").css({ "width": "100%" });
                    if (distance <= 180) {
                        $('#divPromoImage').css({ 'opacity': '0.5' }); //animate
                    }
                     
                    if ($('#mainNav').outerHeight() >= distance) {
                        sticky.addClass('fix-select-tab');
                        $("#divTabContentSelect").css({ "top": $('#mainNav').outerHeight() });
                    }
                } else {
                    $("#divTabContentSelect").css({ "width": "", "-webkit-transition": "" });
                    $("#dropdownTabContentOptions").css({ "width": "", "-webkit-transition": "" });
                    $("#dLabel").css({ "width": "", "-webkit-transition": "" });
                    $('#divPromoImage').css({ 'webkit-filter': '', 'filter': '' });
                    $('#divPromoImage').css({ 'opacity': '' });

                    if (distance <= 180) {
                        $('#divTabContentSelect').removeClass('fix-select-tab')
                        $("#divTabContentSelect").css({ "top": "" });
                    }
                }
                previousScroll = currentScroll;
            }
        });

    }());

});
;
jQuery(function ($) {

    var lat = "";
    var lon = "";
    // $("#hvEnquiryAck").hide();
    //  GTM Tracking For Form Abandonment.
    var eventAction, i;

    var checkSubmit = function () {
        i = window.dataLayer.length - 1;
        while (i > -1) {
            if ((window.dataLayer[i]['event'] == 'EnquiryFormSubmit') ||
                (window.dataLayer[i]['event'] == 'SubscriptionFormSubmit')) {
                return true;
            }
            i--;
        }
    };

    var getDataLayerFormElements = function () {
        try {
            var results = $.grep(window.dataLayer,
                function (e) {
                    return e['event'] == 'gtm.click' && e['gtm.elementUrl'] == ''
                        && e['gtm.elementId'].length > 0;
                });
            return results;
        } catch (ex) {
            cosole.log(ex);
        }

        return [];
    }

    var formTouched = function () {
        if (window.dataLayer) {
            var result = getDataLayerFormElements();

            if (result.length === 0) {
                return false;
            } else {
                // single or multiple items found
                return true;
            }
        }

        return false;
    }

    var getLastDataLayerAction = function () {
        var result = getDataLayerFormElements();

        if (result.length == 1) {
            // single item found
            var elementId = result[0]['gtm.elementId'];
            var category = $('#' + elementId).data('gtmEventCategory');
            var dataId = $('#' + elementId).data('gtmId');

            return category + '|' + dataId;

        } else {
            // multiple items found, get last element.
            var elementId = result[result.length - 1]['gtm.elementId'];
            var category = $('#' + elementId).data('gtmEventCategory');
            var dataId = $('#' + elementId).data('gtmId');

            return category + '|' + dataId;
        }
    }

    $(window).on('beforeunload', function () {
        if (formTouched() && !checkSubmit()) {

            var lastEventAction = getLastDataLayerAction();

            window.dataLayer.push({
                'event': 'formAbandonment',
                'eventCategory': 'Form Abandonment',
                'eventAction': lastEventAction
            });
        }
    });

    // GTM Tracking For Form Abandonment.

    stockland.modules.maps.getUserGeoLocation(function (position) {
        if (position) {
            lat = position.latitude;
            lon = position.longitude;
            $("#Latitude").val(lat);
            $("#Longitude").val(lon);
        }
    });

    $(document).ready(function () {
        $(".hv-container .hv-email").hide();
        $(document).ajaxStop(function () {
            var errorDiv = $('.has-error:visible').first();
            if (errorDiv.length > 0) {
                //console.log('has error');
                $('html .enquiry-body, body .enquiry-body, div .enquiry-body, .modal .enquiry-body, .modal-content .enquiry-body').animate({ scrollTop: $(".has-error").first() }, 500);
                $(".has-error").first().focus();
            }
            else {
                //console.log('no error');
            }
        });
        $(document).ajaxError(function () {
            if (document.getElementById('makeEnquiryBtn')) {
                document.getElementById('makeEnquiryBtn').disabled = false;
                // console.log('stop');
            }
        });




    });

    function EnquirySubmit(isDesktop, e, elementClicked, isModal, homeDesignDownloadOnly) {
        var $elementClicked = $(elementClicked);
        var data = null;

        $("#Latitude").val(lat);
        $("#Longitude").val(lon);

        $(".more-resultsEnquiry #makeEnquiryBtn").hide();

        if ($(".more-resultsEnquiry #inProgress").length > 0) {
            $(".more-resultsEnquiry #inProgress").remove();
        }

        $(".more-resultsEnquiry").prepend("<div id=\"inProgress\"><img src='/assets/images/spinner.gif' />In progress …</div>");

        var token = '';
        var myForm = $(document);

        myForm = $('#hvLoadEnquiry #homeVisualiserEnquiryForm');
        data = myForm.serialize();
        token = myForm.find("input[name='__RequestVerificationToken']").val();

        var getCookie = function (cname) {
            var name = cname + "=";
            var decodedCookie = decodeURIComponent(document.cookie);
            var ca = decodedCookie.split(';');
            for (var i = 0; i < ca.length; i++) {
                var c = ca[i];
                while (c.charAt(0) == ' ') {
                    c = c.substring(1);
                }
                if (c.indexOf(name) == 0) {
                    return c.substring(name.length, c.length);
                }
            }
            return "";
        };

        // Add AWS Id's to object
        var userIdentityId = localStorage ? localStorage.getItem("website-user-identity") : getCookie("website-user-identity");

        if (userIdentityId === null || userIdentityId === undefined || userIdentityId === "") {
            userIdentityId = AWS.config.credentials.identityId;
        }
        var datatype = "html";
        var homeVisualiserUserActivityData = "";
        if (myForm.find("input[name='EnquiryType']").val() == "6dd5f46f-ee93-47ef-8967-db847df4dd28") {

            sessionStorage.setItem('Salutation', myForm.find("select[data-gtm-id='Title']").val());
            sessionStorage.setItem('FirstName', myForm.find("input[data-gtm-id='FirstName']").val());
            sessionStorage.setItem('LastName', myForm.find("input[data-gtm-id='LastName']").val());
            sessionStorage.setItem('Email', myForm.find("input[data-gtm-id='Email']").val());
            sessionStorage.setItem('PhoneNumber', myForm.find("input[data-gtm-id='PhoneNumber']").val());
            sessionStorage.setItem('Token', token);
            sessionStorage.setItem('EnquiryItemId', myForm.find("input[name='EnquiryItemId']").val());
            sessionStorage.setItem('EnquiryFormId', myForm.find("input[name='EnquiryFormId']").val());
            sessionStorage.setItem('EnquiryType', myForm.find("input[name='EnquiryType']").val());

            data = data + getUserActivityData() + '&AWSIdentityId=' + userIdentityId;
        }
        else {
            data = data + '&AWSIdentityId=' + userIdentityId;
        }

        var GTMTrackingData = {
            'event': 'EnquiryFormSubmit',
            'eventAction': $elementClicked.data('gtm-event-action'),
            'eventCategory': $elementClicked.data('gtm-event-category'),
            'eventLabel': $elementClicked.data('gtm-event-label'),
            'eventValue': $elementClicked.data('gtm-event-value'),
            'elementID': $elementClicked.data('gtm-id')
        };


        var request = $.ajax({
            type: "POST",
            datatype: "html",
            url: '/public/homevisualiserenquiry/submit',
            data: data,
            headers: {
                '__RequestVerificationToken': token
            },
            success: function (response) {
                if (response.Redirect) {
                    window.location = response.Url;
                    return;
                }
                var $updatedEnquiryForm = $(response).find('#homeVisualiserEnquiryForm');
                var $updatedThankyouForm = $(response).find('#mainAckForm');
                if ($updatedEnquiryForm.length > 0) {
                    $("#hvLoadEnquiry #homeVisualiserEnquiryForm").html($updatedEnquiryForm);
                }

                else {
                    if ($(".more-resultsEnquiry #inProgress").length > 0) {
                        $(".more-resultsEnquiry #inProgress").remove();
                    }
                    $("#hvLoadEnquiry #hvEnquiryFormModal").remove();
                    $("#hvEnquiryFormModal").modal("hide");
                    $(".modal-backdrop").remove();
                    $("#hvLoadEnquiry #ackContent").html($updatedThankyouForm);

                    if ($(response).find("#HomeVisualiserPdfUrl").val() != null) {
                        var pdfUrl = $(response).find("#HomeVisualiserPdfUrl").val();
                        var fyhPageUrl = $(response).find("#HomeVisualiserFyhPageUrl").val();

                        donwloadPdf(pdfUrl);
                    }
                    $("#hvEnquiryAck").modal("show");
                    $('.modal-backdrop').addClass('modal-backdrop-hv');

                    $(".modal-backdrop-hv").css("background-color", "#273942");

                    //$('.modal-backdrop').remove();
                    //on success push to GTM dataLayer
                    if (dataLayer) {

                        dataLayer.push(GTMTrackingData);
                    }
                }
            },
            error: function (response) {
                if (enquiryErrorHandler) {
                    enquiryErrorHandler.log(data);
                }
            }
        });
    }

    $(document).on("click", '#hvMakeEnquiryBtn', function (e) {
        e.preventDefault();

        EnquirySubmit(true, e, this, false);
    });

});

window.onresize = function () {
    makeFormLabelsSelectable();
}

function showSendEmailCheckbox() {
    if (sessionStorage.getItem('FirstName') != null && sessionStorage.getItem('FirstName') != '') {
        $(".hv-container .hv-email").show();

    }
}

function makeFormLabelsSelectable() {
    var enquiryModal = $('#hvEnquiryFormModal');

    if (enquiryModal != null && enquiryModal.length != 0) {


        var hasVerticalScrollbar = enquiryModal.prop('scrollHeight') > enquiryModal.prop('clientHeight');

        if (!hasVerticalScrollbar) {
            $("#hvEnquiryFormModal").css("right", "-15px");
            $("#hvEnquiryDisplayForm").css("height", "100.08%");
            $("#hvEnquiryDisplayForm").css("margin-top", "0");
           // $("#hvEnquiryDisplayForm").css("top", "0px");
           // $("#hvEnquiryDisplayForm").css("align-items", "center");
        }
        else {
            $("#hvEnquiryFormModal").css("right", "0px");
            $("#hvEnquiryDisplayForm").css("height", "");
            $("#hvEnquiryDisplayForm").css("margin-top", "");
        }

    }
}

$(document).on("click", '#homeVisualiserEnquiryForm select', function (e) {

    if (e.target.getAttribute("data-gtm-id") == "Title") {
        $("#homeVisualiserEnquiryForm .rotate-hv-dropdown-title-arrow").toggleClass("down");
    }
    else if (e.target.getAttribute("data-gtm-id") == "State") {
        $("#homeVisualiserEnquiryForm .rotate-hv-dropdown-state-arrow").toggleClass("down");
    }

});

$(document).on("blur", '#homeVisualiserEnquiryForm select', function (e) {
    if (e.target.getAttribute("data-gtm-id") == "Title") {
        $("#homeVisualiserEnquiryForm .rotate-hv-dropdown-title-arrow").removeClass("down");
    }
    else if (e.target.getAttribute("data-gtm-id") == "State") {
        $("#homeVisualiserEnquiryForm .rotate-hv-dropdown-state-arrow").removeClass("down");
    }
});

$(document).on("click", '#hvEnquiryFormModal a.close', function (e) {
    $(".hv-enquiry-form.enquiryLoad").addClass("hv-mobile-form");
});



function displaySaveHomeDesignEnquiryForm(currentPageItemId, enquiryType, datasource) {

    if (sessionStorage.getItem('FirstName') != null && sessionStorage.getItem('FirstName') != '') {

        var data = null;

        if ($("#btnhvDownloadPdf #inProgress").length > 0) {
            $("#btnhvDownloadPdf #inProgress").remove();
        }

        $("#btnhvDownloadPdf").append("<div id=\"inProgress\" style ='font-size: 12px;width:fit-content;display:inline-block;vertical-align:middle; '><img src='/assets/images/spinner.gif' style='height: 20px; width: 20px; ' /></div>");


        var getCookie = function (cname) {
            var name = cname + "=";
            var decodedCookie = decodeURIComponent(document.cookie);
            var ca = decodedCookie.split(';');
            for (var i = 0; i < ca.length; i++) {
                var c = ca[i];
                while (c.charAt(0) == ' ') {
                    c = c.substring(1);
                }
                if (c.indexOf(name) == 0) {
                    return c.substring(name.length, c.length);
                }
            }
            return "";
        };

        // Add AWS Id's to object
        var userIdentityId = localStorage ? localStorage.getItem("website-user-identity") : getCookie("website-user-identity");

        if (userIdentityId === null || userIdentityId === undefined || userIdentityId === "") {
            userIdentityId = AWS.config.credentials.identityId;
        }

        var userActivity = getUserActivityData("json");

        data = {
            // EnquiryForm: {
            EnquiryFields: [
                {
                    EnteredValue: sessionStorage.getItem('FirstName'),
                    FieldName: "First Name",
                    ServiceFieldMapping: "firstNameField"
                },
                {
                    EnteredValue: sessionStorage.getItem('LastName'),
                    FieldName: "LastName",
                    ServiceFieldMapping: "lastNameField"
                },
                {
                    EnteredValue: sessionStorage.getItem('Email'),
                    FieldName: "Email",
                    ServiceFieldMapping: "emailField"
                },
                {
                    EnteredValue: sessionStorage.getItem('PhoneNumber'),
                    FieldName: "Phone Number",
                    ServiceFieldMapping: "phoneNumberField"
                },
                {
                    EnteredValue: sessionStorage.getItem('Salutation'),
                    FieldName: "Salutation",
                    ServiceFieldMapping: "titleField"
                }
            ],
            EnquiryFormId: sessionStorage.getItem('EnquiryFormId'),
            EnquiryItemId: sessionStorage.getItem('EnquiryItemId'),
            EnquiryType: sessionStorage.getItem('EnquiryType'),
            AWSIdentityId: userIdentityId,
            HomeVisualiserUserActivity: userActivity
        }

        var request = $.ajax({
            type: "POST",
            datatype: "json",
            url: '/public/homevisualiserenquiry/submit',
            data: data,
            headers: {
                '__RequestVerificationToken': sessionStorage.getItem('Token')
            },
            success: function (response) {
                if ($(response).find("#HomeVisualiserPdfUrl").val() != null) {
                    var pdfUrl = $(response).find("#HomeVisualiserPdfUrl").val();

                    donwloadPdf(pdfUrl);
                    if ($("#btnhvDownloadPdf #inProgress").length > 0) {
                        $("#btnhvDownloadPdf #inProgress").remove();
                    }
                }
                $('#mainAckForm').closest('.wFormContainer').find('h4').text("");
            },
            error: function (response) {
                if (enquiryErrorHandler) {
                    enquiryErrorHandler.log(data);
                }
            }
        });
    }
    else {
        $.get('/public/HomeVisualiserEnquiry/DisplayEnquiryForm', { currentPageItemId: currentPageItemId, enquiryType: enquiryType, datasource: datasource, downloadPdf: true }, function (data) {
            $("#hvLoadEnquiry").html(data);
            $("#hvEnquiryFormModal").modal("show");
            $("#hvEnquiryAck").hide();
            //$('.modal-backdrop').remove();
            $('.modal-backdrop').addClass('modal-backdrop-hv');
            $(".modal-backdrop-hv").css("background-color", "#273942");
            makeFormLabelsSelectable();
        });
    }

}

function RedirectToFyh(redirectUrl) {
    window.location.href = redirectUrl;
}

window.onload = function () {
    //sessionStorage.clear();
    sessionStorage.removeItem("Salutation");
    sessionStorage.removeItem("FirstName");
    sessionStorage.removeItem("LastName");
    sessionStorage.removeItem("Email");
    sessionStorage.removeItem("PhoneNumber");
    sessionStorage.removeItem("Token");
    sessionStorage.removeItem("EnquiryItemId");
    sessionStorage.removeItem("EnquiryFormId");
    sessionStorage.removeItem("EnquiryType");
};
///// <reference path="stockland.module.accountdetails.js" />
function getUserSelection() {
    var userSelection = {
        exterior: {},
        interior: {}
    }

    $("input[name=llc-hv-exterior-scheme]:checked").each(function () {
        var idVal = $(this).attr("id");
        var schemeTitle = $.trim($("#" + idVal).attr("data-title").replace(/[\t\n]+/g, ''));
        var scheme = $.trim($("label[for='" + idVal + "']").text().replace(/[\t\n]+/g, ''));

        userSelection.exterior.scheme = {
            colorscheme: scheme ? scheme : "",
            schemeid: idVal ? idVal : "",
            schemetitle: schemeTitle
        }
    });
    $("input[name=llc-hv-exterior-schemedetail]:checked").each(function () {
        var idVal = $(this).attr("id");
        var facadeTitle = $.trim($("#" + idVal).attr("data-title").replace(/[\t\n]+/g, ''));
        var schemedetail = $.trim($("label[for='" + idVal + "']").text().replace(/[\t\n]+/g, ''));
        userSelection.exterior.facade = {
            facade: schemedetail ? schemedetail : "",
            productid: idVal ? idVal : "",
            productTitle: facadeTitle
        }
    });

    $("input[name=llc-hv-interior-scheme]:checked").each(function () {
        var idVal = $(this).attr("id");
        var schemeTitle = $.trim($("#" + idVal).attr("data-title").replace(/[\t\n]+/g, ''));
        var scheme = $.trim($("label[for='" + idVal + "']").text().replace(/[\t\n]+/g, ''));
        userSelection.interior.scheme = {
            colorscheme: scheme ? scheme : "",
            schemeid: idVal ? idVal : "",
            schemetitle: schemeTitle
        }
    });
    $("input[name=llc-hv-interior-schemedetail]").each(function () {
        var idVal = $(this).attr("id");
        var productTitle = $.trim($("#" + idVal).attr("data-title").replace(/[\t\n]+/g, ''));
        var schemedetail = $.trim($("label[for='" + idVal + "']").text().replace(/[\t\n]+/g, ''))
        userSelection.interior[schemedetail.toLowerCase()] = {
            room: schemedetail ? schemedetail : "",
            productid: idVal ? idVal : "",
            productTitle: productTitle,
            checked: $(this).is(":checked")
        }
    });
    return userSelection;
}

function donwloadPdf(pdfUrl) {
    if (pdfUrl != '') {
        var filename = pdfUrl.split('/').pop().split('?')[0];
        window.location.href = pdfUrl;
       
    }

}

function getUserActivityData(dataformat) {
    var userSelection = getUserSelection();
    var exteriorColorScheme = (userSelection && userSelection.exterior && userSelection.exterior.scheme && userSelection.exterior.scheme.colorscheme) || "";
    var exteriorFacade = (userSelection && userSelection.exterior && userSelection.exterior.facade && userSelection.exterior.facade.facade) || "";
    var interiorColorScheme = (userSelection && userSelection.interior && userSelection.interior.scheme && userSelection.interior.scheme.colorscheme) || "";
    
    var facadeImage = "product/" + ((userSelection && userSelection.exterior && userSelection.exterior.facade && userSelection.exterior.facade.productid) || "") + "/image?width=678%26theme=" + ((userSelection && userSelection.exterior && userSelection.exterior.scheme && userSelection.exterior.scheme.schemeid) || "") + "%26loc=VIC";
    var kitchenImage = "product/" + ((userSelection && userSelection.interior && userSelection.interior.kitchen && userSelection.interior.kitchen.productid) || "") + "/image?width=678%26theme=" + ((userSelection && userSelection.interior && userSelection.interior.scheme && userSelection.interior.scheme.schemeid) || "") + "%26loc=VIC";
    var bathroomImage = "product/" + ((userSelection && userSelection.interior && userSelection.interior.bathroom && userSelection.interior.bathroom.productid) || "") + "/image?width=678%26theme=" + ((userSelection && userSelection.interior && userSelection.interior.scheme && userSelection.interior.scheme.schemeid) || "") + "%26loc=VIC";
    if (imageArray) {
        var exteriorTitleSelected = userSelection.exterior.scheme?.schemetitle?.replaceAll(" ", "")?.replaceAll("&", "") + "_" + userSelection.exterior.facade?.productTitle?.replaceAll(" ", "")?.replaceAll("&", "");
        var exteriorImageObject = imageArray.find(o => o.Title == exteriorTitleSelected.toLowerCase());
        if (exteriorImageObject && exteriorImageObject.ImageUrl) {
            facadeImage = exteriorImageObject.ImageUrl;
        }
        var interiorKitchenTitleSelected = userSelection.interior.scheme.colorscheme?.replaceAll(" ", "")?.replaceAll("&", "") + "_" + userSelection.interior.kitchen.productTitle?.replaceAll(" ", "")?.replaceAll("&", "");
        var interiorKitchenImageObject = imageArray.find(o => o.Title == interiorKitchenTitleSelected.toLowerCase());
        if (interiorKitchenImageObject && interiorKitchenImageObject.ImageUrl) {
            kitchenImage = interiorKitchenImageObject.ImageUrl;
        }
        var interiorBathroomTitleSelected = userSelection.interior.scheme.colorscheme?.replaceAll(" ", "")?.replaceAll("&", "") + "_" + userSelection.interior.bathroom.productTitle?.replaceAll(" ", "")?.replaceAll("&", "");
        var interiorBathroomImageObject = imageArray.find(o => o.Title == interiorBathroomTitleSelected.toLowerCase());
        if (interiorBathroomImageObject && interiorBathroomImageObject.ImageUrl) {
            bathroomImage = interiorBathroomImageObject.ImageUrl;
        }
    }

    var emailPdf = $("#hv-email-pdf").is(':checked');
    var floorPlanImage = $('.slick-active img').attr('src');

    homeVisualiserUserActivityData = "&HomeVisualiserUserActivity.CurrentItemId=" + sessionStorage.getItem('EnquiryItemId') +
        "&HomeVisualiserUserActivity.ExteriorColorScheme=" + encodeURIComponent(exteriorColorScheme) +
            "&HomeVisualiserUserActivity.ExteriorFacade=" + encodeURIComponent(exteriorFacade) +
                "&HomeVisualiserUserActivity.InteriorColorScheme=" + encodeURIComponent(interiorColorScheme) +
        "&HomeVisualiserUserActivity.FacadeImageURL=" + facadeImage +
        "&HomeVisualiserUserActivity.BathroomImageURL=" + bathroomImage +
        "&HomeVisualiserUserActivity.KitchenImageURL=" + kitchenImage +
        "&HomeVisualiserUserActivity.EmailPdf=" + emailPdf +
        "&HomeVisualiserUserActivity.FloorPlanImageURL=" + encodeURIComponent(floorPlanImage ? floorPlanImage : "");
    if (dataformat && dataformat === "json") {
        return {
            ExteriorColorScheme: exteriorColorScheme,
            ExteriorFacade: exteriorFacade,
            InteriorColorScheme: interiorColorScheme,
            FacadeImageURL: facadeImage,
            BathroomImageURL: bathroomImage,
            KitchenImageURL: kitchenImage,
            EmailPdf: emailPdf,
            FloorPlanImageURL: encodeURIComponent(floorPlanImage ? floorPlanImage : "")
        }
    }
    return homeVisualiserUserActivityData;
}
;
function addToCalendar(start, end, subject, description, location) {
    var calEvent = {
        subject: subject,
        location: location,
        description: description,
        from: start,
        to: end
    };

    $.ajax({
        type: 'POST',
        url: '/stk-api/DownloadCalendar',
        cache: false,
        data: JSON.stringify(calEvent),
        contentType: 'application/json',
        //dataType: 'text/calendar', /* Remove this */
        success: function (response, status, xhr) {
            console.log('Triggered calendar download event.');
            // check for a filename
            var filename = "";
            var disposition = xhr.getResponseHeader('Content-Disposition');
            if (disposition && disposition.indexOf('attachment') !== -1) {
                var filenameRegex = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/;
                var matches = filenameRegex.exec(disposition);
                if (matches != null && matches[1]) filename = matches[1].replace(/['"]/g, '');
            }

            var type = xhr.getResponseHeader('Content-Type');
            var blob = new Blob([response], { type: type });

            if (typeof window.navigator.msSaveBlob !== 'undefined') {
                // IE workaround for "HTML7007: One or more blob URLs were revoked by closing the blob for which they were created. These URLs will no longer resolve as the data backing the URL has been freed."
                window.navigator.msSaveBlob(blob, filename);
            } else {
                var URL = window.URL || window.webkitURL;
                var downloadUrl = URL.createObjectURL(blob);

                if (filename) {
                    // use HTML5 a[download] attribute to specify filename
                    var a = document.createElement("a");
                    // safari doesn't support this yet
                    if (typeof a.download === 'undefined') {
                        window.location = downloadUrl;
                    } else {
                        a.href = downloadUrl;
                        a.download = filename;
                        document.body.appendChild(a);
                        a.click();
                    }
                } else {
                    window.location = downloadUrl;
                }

                setTimeout(function () { URL.revokeObjectURL(downloadUrl); }, 100); // cleanup
            }
        },
        error: function (err) {
            console.log('Failed to trigger calendar download event.');
        }
    });
};
jQuery(document).ready(function ($) {
    /* ----------------UNSUBSCRIBE IN UNSUBSCRIPTION PAGE -----------*/

    $('.unsubscribe-box').on('click', '#unSubscribeBox', function (e) {

        var SelectedActiveSubs = [];
        var activeSubs = $(".checkbox [name='checkboxUnsubscribe']").is(':checked');
        if (activeSubs) {

            $("#subscriptionErrorMessage").modal("hide");
            $("#unsubscriptionError").addClass('hidden');
            $(".checkbox [name='checkboxUnsubscribe']:checked").each(function () {
                SelectedActiveSubs.push($(this).attr('id'));
            });

           // var datas = JSON.stringify(SelectedActiveSubs);
            var contactId = '';

            if (location.search != null) {
                var queryString = new URLSearchParams(location.search);
                if (queryString != null) {
                    contactId = queryString.get('contactId');
                }
            }

            var request = $.ajax({
                type: "POST",
                //contentType: 'application/json',
                data: {
                    'subscriptionData': SelectedActiveSubs,
                    'contactId': contactId
                },
                url: '/public/subscription/UnSubscription',
                success: function (response) {
                    if (!IsSessionExpired(response)) {
                        //location.reload();
                        var $updatedThankyouForm = $(response).find('#mainAckForm');
                        if ($updatedThankyouForm.length > 0) {
                            $("#SubscribeAcknowledge .modal-content .enquiry-body").html($updatedThankyouForm)
                            $("#SubscribeAcknowledge").modal("show");
                        };
                        //console.log("Unsubscribed");
                    }

                },
                error: function (e) {
                    //console.log("Error occurred while unsubscribing");
                }
            });

        }
        else {
            $("#subscriptionErrorMessage").modal("show");
            $("#unsubscriptionError").removeClass('hidden');
        }

    });
});



function IsSessionExpired(data) {

    //console.log(data);
    var baseUrl = document.location.origin;

    if (data != null && (data.message == 'SESSION_EXPIRED' || data.message == 'SESSION_AUTHEXPIRED')) {
        window.top.location.href = baseUrl + '?sessionExpired=' + data.message;
        return true;
    }
    else {
        return false;
    }

};
