/* =============================================================================== template: Template 58 - JS =============================================================================== */ /** * Class OnOffice * * @required jQuery * @author ÖS * @link onOffice * */ var OnOffice = {}; OnOffice.Base = { init: function() { this.multilanguage(); // language switch - shows current language this.navigation(); // add bootstrap classes to main navigation this.banner(); // initialize slick slider this.breadcrumbs(); // add "Startseite" to breadcrumbs this.teamMembersSlick(); // initialize slick slider for team members (not on desktop) this.topObjectsSlick(); // initialize slick slider for top objects this.teamMembersHeight(); // set same height for team members box this.sidebarNavigation(); // show side-nav if not empty this.footerNavigation(); // add bootstrap classes to footer navigation this.hideTopObject(); // hide top object (startseite) if empty //this.onFormSubmit(); // scroll to right position on form submit (!to be replaced) this.scrollToTop(); // scroll to top button this.keepFormFields(); // keep form fields on refresh (!to be replaced) this.externalLink(); // enables external links in smart site this.leadGeneratorPopup(); // popup for lead generator }, // add class (contentkey) to body-tag bodyClass: function(contentkey) { var body_class = contentkey.split('.'); $('body').addClass('body-' + body_class[0]); }, // language switch - shows current language multilanguage: function() { $('.social .languages ul li.selected a').appendTo('.social .languages .active-language'); $('.social .languages ul li.selected').hide().remove(); }, // language switch - shows available languages (onclick) multilanguageTrigger: function() { $('.languages .active-language a').removeAttr('href'); if ($('.languages .active-language').hasClass('triggered')) { $('.languages .active-language').removeClass('triggered'); $('.languages ul').fadeOut(200); } else { $('.languages .active-language').addClass('triggered'); $('.languages ul').fadeIn(200); } // remove class "triggered" when pressing escape key (close language picker) $(document).keydown(function(e) { if (e.keyCode == 27) { if ($('.languages .active-language').hasClass('triggered')) { $('.languages .active-language').removeClass('triggered'); $('.languages ul').fadeOut(); } } }); //remove class "triggered" when clicking outside of box (close language picker) $(document).on('click', function(e) { if (!$('.languages .active-language').is(e.target) && $('.languages .active-language').has(e.target).length === 0) { if ($('.languages .active-language').hasClass('triggered')) { $('.languages .active-language').removeClass('triggered'); $('.languages ul').fadeOut(); } } }); //remove class "triggered" when scrolling (close language picker) $(document).on('scroll', function() { if ($('.languages .active-language').hasClass('triggered')) { $('.languages .active-language').removeClass('triggered'); $('.languages ul').fadeOut(200); } }); }, // add bootstrap classes to main navigation navigation: function() { $('.navbar .navbar-collapse > ul').each(function() { $(this).addClass('navbar-nav ml-auto'); $(this).find('li').addClass('nav-item'); $(this).find('li a').addClass('nav-link'); $(this).find('li').each(function() { if ($(this).find('ul').length) { $(this).addClass('dropdown'); } }); }); $('.navbar .navbar-collapse ul li > ul').each(function() { $(this).addClass('dropdown-menu'); }); $('.navbar').show(); }, // initialize slick slider banner: function() { $('.banner ul').slick({ arrows: false, autoplay: true, dots: true, infinite: true, speed: 1000, fade: true, cssEase: 'linear' }); }, // add "Startseite" to breadcrumbs breadcrumbs: function() { $(".container-breadcrumb ul").prepend("
  • "); $(".container-breadcrumb ul li:first").prepend("Startseite"); }, // initialize slick slider for team members (not on desktop) teamMembersSlick: function() { $('.container-team .members').slick({ infinite: true, dots: false, slidesToShow: 4, slidesToScroll: 1, arrows: true, prevArrow: '
    ', nextArrow: '
    ', responsive: [ { breakpoint: 992, settings: { slidesToShow: 2, slidesToScroll: 1, arrows: true, prevArrow: '
    ', nextArrow: '
    ', infinite: true, dots: true } }, { breakpoint: 576, settings: { slidesToShow: 1, arrows: true, prevArrow: '
    ', nextArrow: '
    ', slidesToScroll: 1, dots: true } } ] }); }, teamMembersHeight: function() { var maxHeight = 0; var currentHeight = 0; $('.members .team-member .member-text').each(function() { currentHeight = $(this).height(); if (currentHeight > maxHeight) { maxHeight = currentHeight; } }); $('.members .team-member .member-text').each(function() { $(this).height(maxHeight); }); }, // show side-nav if not empty sidebarNavigation: function() { if (!$('.sidebar-main .side-nav > .side-nav').is(':empty')) { $('.sidebar-main .side-nav').show(); } }, // add bootstrap classes to footer navigation footerNavigation: function() { $('.footer-nav > ul').each(function() { $(this).addClass('nav justify-content-center'); $(this).find('li').addClass('nav-item'); $(this).find('li a').addClass('nav-link'); }); }, // hide top object (startseite) if empty hideTopObject: function() { if ($('#startseiteobjecttop0 .row').length == 0) { $('#startseiteobjecttop0').remove(); } }, // initialize slick slider for top objects topObjectsSlick: function() { $('.top-slider').slick({ infinite: true, dots: false, slidesToShow: 1, slidesToScroll: 1, arrows: true, autoplay: true, prevArrow: '
    ', nextArrow: '
    ' }); }, // scroll to right position on form submit onFormSubmit: function() { if ($('.container-main form .formfeedbacks p').length) { var iStatusTop = $('.container-main form .formfeedbacks p').offset().top - $('.container-header').height() - 30; $(window).scrollTop(iStatusTop); } }, // scroll to top button scrollToTop: function() { $(window).on('scroll', function() { if ($(window).scrollTop() > 300) { $('.scroll-to-top').fadeIn(); } else { $('.scroll-to-top').fadeOut(); } }); $('.scroll-to-top').on('click', function() { $('html,body').animate({ scrollTop: 0 }, 400); }); }, // keep form fields on refresh keepFormFields: function() { var url = document.URL.split('?'); if (url[1] != undefined) { url = url[1].split('&'); for (x = 0; x <= (url.length - 1); x++) { var this_parameter = url[x].split('='); if (this_parameter != '') { var this_name = this_parameter[0].replace(/\%5B/g, '[').replace(/\%5D/g, ']'); var this_value = ''; if (this_parameter[1] != undefined) { this_value = decodeURI(this_parameter[1].replace(/\+/g, ' ').replace(/\+\%2F\+/g, ' / ').replace(/\%2C/g, ',')); } $('select[name="' + this_name + '"]').each(function() { $(this).find('option').each(function() { if ($(this).val() == this_value) { $(this).attr('selected', 'selected'); if ($(this).val() == 'grundstueck') { $(this).change(); } } }); }); $('input[name="' + this_name + '"]').each(function() { if ($(this).attr('type') == 'text' || $(this).attr('type') == 'hidden') { if (this_value != '') { $(this).val(this_value); } } else if ($(this).attr('type') == 'checkbox') { if (this_value != '') { $(this).attr('checked', 'checked'); } } else if ($(this).attr('type') == 'radio' && $(this).val() == this_value) { $(this).attr('checked', 'checked'); } else if ($(this).attr('type') == 'number' || $(this).attr('type') == 'hidden') { if (this_value != '') { $(this).val(this_value); } } }); } } } }, // enables external links in smart site externalLink: function() { $('a[href]').each(function() { var this_href = $(this).attr('href'); if (this_href.indexOf('?link') >= 0) { var external_link = this_href.split('?link='); $(this).attr('href', external_link[1]); if (external_link[1].indexOf('http') >= 0) { $(this).attr('target', '_blank'); } } }); }, // popup for lead generator leadGeneratorPopup: function() { $('.popuptrigger').on('click', function() { $('#popup').fadeIn(); }); $('.close').on('click', function() { document.cookie = 'lgpopup-cookie=1;path=/'; $('#popup').fadeOut(); }); if ( document.cookie.indexOf('lgpopup-cookie=1') != -1 ) { $('#popup').hide(); } } } OnOffice.Estate = { listenrahmen: function() { // check if range slider on current page if (document.getElementById("kaltmiete-slider") != null && document.getElementById("kaufpreis-slider") != null) { this.rangeSlider(); // range sliders (displayed after marketing method is set) } this.priceSwitch(); // switch range slider depending on marketing method this.submitOnChange(); // submit when refined search (sort) this.submitOnChangeSearch(); // submit when refined sidebar search }, listenobjekt: function() { this.checkReference(); // check if object is reference this.referenceHover(); // if object is reference no hover-effect this.statusSold(); // add span "verkauft" or "vermietet" }, detailansicht: function() { this.hideFurtherProperties(); // hide "further properties" box if empty this.hideDetailTabs(); // hide tabs on detail view if empty //this.checkYoutube(); // show if container-youtube (src) is not empty (comment in to activate) //this.checkVimeo(); // show if container-vimeo (src) is not empty (comment in to activate) //this.checkOguloOld(); // hide container-ogulo-old if src of iframe is empty -> calls checkOguloNew() (comment in to activate) }, // range sliders (displayed after marketing method is set) rangeSlider: function() { var sliderKaltmiete = document.getElementById("kaltmiete-slider"); var outputKaltmiete = document.getElementById("kaltmiete-slider-label"); outputKaltmiete.innerHTML = sliderKaltmiete.value; // Display default slider value // Update current slider value sliderKaltmiete.oninput = function() { outputKaltmiete.innerHTML = this.value; } // range slider - Kaufpreis var sliderKaufpreis = document.getElementById("kaufpreis-slider"); var outputKaufpreis = document.getElementById("kaufpreis-slider-label"); outputKaufpreis.innerHTML = sliderKaufpreis.value; // Display default slider value // Update current slider value sliderKaufpreis.oninput = function() { outputKaufpreis.innerHTML = this.value; } // range slider - Zimmer var sliderZimmer = document.getElementById("zimmer-slider"); var outputZimmer = document.getElementById("zimmer-slider-label"); outputZimmer.innerHTML = sliderZimmer.value; // Display default slider value // Update current slider value sliderZimmer.oninput = function() { outputZimmer.innerHTML = this.value; } }, // switch range slider depending on marketing method priceSwitch: function() { $('#sales-type').on('change', function() { if ($(this).val() == 'miete') { $('.number-field.kaltmiete').show(); $('.number-field.kaufpreis #kaufpreis-slider').removeAttr('value'); $('.number-field.kaufpreis').hide(); } else if ($(this).val() == 'kauf') { $('.number-field.kaufpreis').show(); $('.number-field.kaltmiete #kaltmiete-slider').removeAttr('value'); $('.number-field.kaltmiete').hide(); } else if ($(this).val() == '') { $('.number-field.kaufpreis').hide(); $('.number-field.kaltmiete').hide(); } }); }, // submit when refined search (sort) submitOnChange: function() { $('.obj-frame-sort select[name="sort"]').on('change', function() { $(this).parent().submit(); }); }, // submit when refined sidebar search submitOnChangeSearch: function() { if ($('.obj-sidebar-inner select#sales-type').val() == 'kauf') { $('.number-field.kaufpreis').show(); } else if ($('obj-sidebar-inner select#sales-type').val() == 'miete') { $('.number-field.kaltmiete').show(); } }, // lazy load images (obj-list-picture) lazyLoading: function() { $('.obj-list-object .obj-list-picture,.obj-list-top-object .obj-list-top-picture').each(function(){ $(this).find('img').addClass('lazy'); }); $('.lazy').lazy({ effect: 'fadeIn', effectTime: 200, threshold: 0 }); }, // check if object is reference checkReference: function() { var referenzcheck = $('.referenzcheck').val(); if (referenzcheck == '1') { $('.immomerkbutton').remove(); $('form#sofortanfrage').remove(); $('.nav-tabs #price-tab').remove(); } }, // if object is reference no hover-effect referenceHover: function() { $('.obj-list-object').each(function() { var objectToCheck = $(this).find('.obj-list-picture span'); var isClickable = $(this).find('.obj-list-picture a'); if (objectToCheck.hasClass('status-reference') && isClickable.attr("href") == undefined) { $(this).find('.obj-list-link').hide(); console.log('Reference found'); } }); }, // add span "verkauft" or "vermietet" statusSold: function() { $('.obj-list-object').each(function() { var object_reference = $(this).find('.object_reference').val(); var object_sold = $(this).find('.object_sold').val(); var object_marketing_type = $(this).find('.object_marketing_type').val(); if ( ((object_reference == 1) && (object_marketing_type == 'Miete')) || ((object_sold == 1) && (object_marketing_type == 'Miete')) ) { $(this).find('p').html('vermietet'); } if ( ((object_reference == 1) && (object_marketing_type == 'Kauf')) || ((object_sold == 1) && (object_marketing_type == 'Kauf')) ) { $(this).find('p').html('verkauft'); } if ( ((object_reference == 1) && (object_marketing_type == 'Rent')) || ((object_sold == 1) && (object_marketing_type == 'Rent')) ) { $(this).find('p').html('vermietet'); } if ( ((object_reference == 1) && (object_marketing_type == 'Purchase')) || ((object_sold == 1) && (object_marketing_type == 'Purchase')) ) { $(this).find('p').html('verkauft'); } if ( $.trim($(this).find('.kaltmiete').html()) != '' ) { $(this).find('.netto-kaltmiete').hide(); } }); }, // add status badge (e.g. Referenz, Top-Objekt, ...) status: function(params) { if( $('.obj-list-object, .obj-list-top-object').length ) { $('.obj-list-object, .obj-list-top-object').each(function(index) { if( $(this).find('ul li span').length ) { sThisType = $(this).find('ul li span').attr('class'); if( sThisType == 'status-top' ) { $(this).find('ul li span').text(params.top_name); } if( sThisType == 'status-rented' ) { $(this).find('ul li span').text(params.rented_name); } if( sThisType == 'status-reference' ) { $(this).find('ul li span').text(params.reference_name); } if( sThisType == 'status-new' ) { $(this).find('ul li span').text(params.new_name); } if( sThisType == 'status-sold' ) { $(this).find('ul li span').text(params.sold_name); } if( sThisType == 'status-reduced' ) { $(this).find('ul li span').text(params.reduced_name); } if( sThisType == 'status-reserved' ) { $(this).find('ul li span').text(params.reserved_name); } if( sThisType == 'status-courtage_free' ) { $(this).find('ul li span').text(params.courtage_free_name); } if( sThisType == 'status-object_of_the_day' ) { $(this).find('ul li span').text(params.object_of_the_day_name ); } if( sThisType == 'status-exclusive' ) { $(this).find('ul li span').text(params.exclusive_name); } $(this).find('ul li span').css('background-image', ''); } }); } }, // hide "further properties" box if empty hideFurtherProperties: function() { if(!$('#immobiliendetailsobjectother0 .obj-frame').length) { $('.obj-detail-box.further-properties').remove(); } }, // hide if container-youtube is empty checkYoutube: function() { if ($('.container-youtube .youtube iframe').attr('src') != '') { $('.container-youtube').show(); } }, // hide if container-vimeo is empty checkVimeo: function() { if ($('.container-vimeo .vimeo iframe').attr('src') != '') { $('.container-vimeo').show(); } }, // hide container-ogulo-old if src of iframe is empty -> calls checkOguloNew() checkOguloOld: function() { if ($('.container-ogulo-old iframe').length) { $('.container-ogulo-old').show(); } else { this.checkOguloNew(); } }, // hide container-ogulo-new if src of iframe is empty checkOguloNew: function() { if ($('.container-ogulo-new iframe').attr('src') != '') { $('.container-ogulo-new').show(); } else { $('.container-ogulo').hide(); } }, // calculation of energy consumption graphic (Energieausweis) energyConsumption: function() { var energieverbrauchskennwert = ($('#energieverbrauchskennwert').val() + $('#endenergiebedarf').val()).replace(' kWh/(m²a)', '').replace(',', '.'); var skalaKorrektur = $('.enev-pointer').width() / 2; var skalaBreite = $('#navTabContent').width(); if ($('#energyclass').val() != '') { // 0.8 = Position von 400 in der Skala (80%) var skala = skalaBreite * 0.8; var faktor = skala / 400; } else { // 0.75 = Position von 250 in der Skala (75%) var skala = skalaBreite * 0.75; var faktor = skala / 250; $('.enev-background').attr('src', 'https://res.onoffice.de/template/images/energy/details-energy-250.png'); } var pointerPosition = (energieverbrauchskennwert * faktor) - skalaKorrektur; if (pointerPosition >= skala) { $('.enev-pointer').css({ 'right': '8.46%', 'left': 'initial' }); } else { $('.enev-pointer').css('left', pointerPosition); } if ($('#energyclass').val() == '' && $('#energieverbrauchskennwert').val() == '' && $('#endenergiebedarf').val() == '') { $('.enev-construct').hide(); $('#energy-certificate .obj-detail-title.title-mobile').hide(); } }, // hide tabs on detail view if empty hideDetailTabs: function() { if ($('#energy-certificate .energy-data table tbody').length == 0) { $('#energy-certificate-tab').hide(); } $('.tab-content .tab-pane').each(function() { if ($(this).contents().length === 0) { $('a[href="#' + $(this).attr('id') + '"]').addClass('empty').hide(); $(this).addClass('empty'); } }); var tabToBeActive = $('.tab-pane:not(.empty)').first() tabToBeActive.addClass('show active'); $('a[href="#' + tabToBeActive.attr('id') + '"]').addClass('active'); $('#navTab li:first-child a').tab('show'); } } OnOffice.Objekttracking = { objekttracking: function() { this.toggleDetails(); // toggle details by clicking + (or -) }, // toggle details by clicking + (or -) toggleDetails: function() { $('.showmore').on('click', function() { $(this).parent().parent().next().find('div#tracking-bemerkung').slideToggle('slow'); if ($('.tracking-details .showmore').html() == '+') { $(this).html('-'); } else if ($('.tracking-details .showmore').html() == '-') { $(this).html('+'); } }); } } OnOffice.Optional = { init: function() { this.setInitialTheme(); // set initial session storage value vor ligh/dark mode //this.newsletterBox(); // newsletter box (appears once per cookie) this.cookie() // hide cookie box when cookie is set this.contactBoxReload(); // open contact-box after reload when submitting form this.dsgvoAddRequired(); // add required to DSGVO checkbox this.submitArrow(); // add class "submit-arrow" to div (for input fields) this.hideJumpbox(); // hide jumpbox if only one page this.formFeedback(); // hide/show form feedbacks after submit this.iService(); // iService //this.iServiceEmptyVal(); // remove empty row I-Service }, // set initial session storage value vor ligh/dark mode setInitialTheme: function() { if ( sessionStorage.getItem('status') == 'dark' ) { sessionStorage.setItem('status', 'dark'); $('body').addClass("dark-mode"); $('#customSwitches').prop('checked', true); $('.dark-mode-switch').fadeIn(300); } else { sessionStorage.setItem('status', 'light'); $('.dark-mode-switch').fadeIn(300); } }, // toggle dark/light mode darkModeTrigger: function() { if ( sessionStorage.getItem('status') == 'light' ) { $('body').addClass("dark-mode"); sessionStorage.setItem('status', 'dark'); } else if ( sessionStorage.getItem('status') == 'dark' ) { $('body').removeClass('dark-mode'); sessionStorage.setItem('status', 'light'); } }, // newsletter box (appears once per cookie) newsletterBox: function() { $('.nlf-close').on('click', function() { document.cookie = 'nlf-slidebox-cookie=1;path=/'; //$('.nlf-stage').slideUp(); //$('.nlf-slidebox').fadeOut(); }); // $('.nlf-form').on('submit', function() { // document.cookie = 'nlf-slidebox-cookie=1;path=/'; // $('.nlf-stage').slideUp(); // $('.nlf-slidebox').fadeOut(); // }); // $(document).scroll(function() { // var y = $(this).scrollTop(); // if (document.cookie.indexOf('nlf-slidebox-cookie=1') != -1) { // $('.nlf-stage').hide(); // } // else { // if (y > 640) { // $('.nlf-slidebox').fadeIn(); // $('.nlf-stage').slideDown(); // } // } // }); // if (window.location.href.indexOf('nlfsend') > -1) { // setTimeout(function() { // $('.nlf-slidebox').fadeIn(); // $('.nlf-thxbox').slideDown(); // }, 500); // } // $('.nlf-thxclose').on('click', function() { // $('.nlf-thxbox').slideUp(); // $('.nlf-slidebox').fadeOut(); // }); }, // hide cookie box when cookie is set cookie: function() { if (document.cookie.indexOf('hidecookie=1') != -1) { $('#cookie').hide(); } else { $('#cookie').show(); $('#cookieCloser').show(); } }, // add class triggered contact box (flyout) contactBoxTrigger: function() { if ($('.contact-box-trigger, .contact-box-inner').hasClass('triggered')) { $('.contact-box-trigger, .contact-box-inner').removeClass('triggered'); $('.container-contact-box .contact-box-overlay').fadeOut(); } else { $('.contact-box-trigger, .contact-box-inner').addClass('triggered'); $('.container-contact-box .contact-box-overlay').fadeIn(); } // remove class "triggered" when pressing escape key (close contact-box) $(document).keydown(function(e) { if (e.keyCode == 27) { if ($('.contact-box-trigger, .contact-box-inner').hasClass('triggered')) { $('.contact-box-trigger, .contact-box-inner').removeClass('triggered'); $('.container-contact-box .contact-box-overlay').fadeOut(); } } }); // remove class "triggered" when clicking outside of box (close contact-box) $('.contact-box-overlay').on('click', function() { if ($('.contact-box-trigger, .contact-box-inner').hasClass('triggered')) { $('.contact-box-trigger, .contact-box-inner').removeClass('triggered'); $('.container-contact-box .contact-box-overlay').fadeOut(); } }); }, // open contact-box after reload when submitting form contactBoxReload: function() { if ($('.container-contact-box form .form-status p').length) { $('.contact-box-trigger').click(); } }, // Add attr required to DSGVO-checkbox in forms dsgvoAddRequired: function() { $(document).find('input#DSGVOStatus').prop('required', true); }, // open street map in detail view openStreetMap: function() { if ($.trim($('.showmap').html()) == '0') { $('#osm-detail').hide(); } else { $('#osm-detail').show(); } var estate = { 'lat': $('.location-content .latitude').html(), 'lng': $('.location-content .longitude').html() }; var coordinates = [estate.lat, estate.lng]; var marker = L.marker(coordinates); var container = L.DomUtil.get('osm-detail'); if (container != null) { container._leaflet_id = null; } var osmDetailMap = L.map('osm-detail', { scrollWheelZoom: false, dragging: false }).setView(coordinates, 13); L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: 'Map data © OpenStreetMap contributors', maxZoom: 18 }).addTo(osmDetailMap); if ($.trim($('.showmarker').html()) == 'Ja') { marker.addTo(osmDetailMap); } }, // adds class submit-arrow to ".interessentenformular" and ".eigentuemerformular" submitArrow: function() { $('.interessentenformular .submit, .eigentuemerformular .submit').parent().addClass('submit-arrow'); }, // hide jumpbox if only one page hideJumpbox: function() { var pageCount = $('.frame-bottom .jumpbox span a, .obj-jumpbox span a, .jumpbox-frame span a, .objtracking_jumpbox span a, .nws_jumpbox span a').length; if (pageCount == 1) { $('.frame-bottom .jumpbox, .obj-jumpbox, .jumpbox-frame, .objtracking_jumpbox, .nws_jumpbox').hide() } }, // hide/show form feedbacks after submit formFeedback: function() { if($('.formfeedbacks .successalert p').length || $('.formfeedbacks .erroralert p').length) { if($('.formfeedbacks .erroralert p').length) { $('.formfeedbacks .erroralert').css('border', '5px solid #dc3545'); } $('.formfeedbacks').show(); } }, // I-service iService: function() { $('.iservice-listobject').each(function(){ $(this).find('tr').each(function(){ var contentTd = $.trim($(this).find('td:eq(2)').html()); if(contentTd == '') { $(this).hide().remove(); } }); }); }, // remove empty row I-Service iServiceEmptyVal: function() { $('.iservice-listobject').each(function() { var contentEmpty = $(this).find('.emptyval'); if(contentEmpty.length) { $(contentEmpty).parent().parent().hide(); } }); }, // return true when element is about to enter viewport isIntoView: function(element) { var documentViewTop = $(window).scrollTop(); var documentViewBottom = documentViewTop + $(window).height(); var elementTop = $(element).offset().top; var elementBottom = elementTop + $(element).height(); return ((elementBottom <= documentViewBottom) && (elementTop >= documentViewTop)); }, // build and load map when element entering viewport loadFooterMapInViewport: function() { $(window).on('scroll load', function() { if(OnOffice.Optional.isIntoView('#footer-map-outer')) { var geocoder; var map; geocoder = new google.maps.Geocoder(); var latlng = new google.maps.LatLng(-34.397, 150.644); var mapOptions = { zoom: 14, center: latlng } map = new google.maps.Map(document.getElementById('footer-map-outer'), mapOptions); var address = document.getElementById('footer-map-address').value; geocoder.geocode( { 'address': address}, function(results, status) { if (status == 'OK') { map.setCenter(results[0].geometry.location); var marker = new google.maps.Marker({ map: map, position: results[0].geometry.location }); } else { console.log('Geocode was not successful for the following reason: ' + status); } }); $(this).off('scroll'); } }); }, // build and load map when element entering viewport loadContactMapInViewport: function() { if ($('.contact-box-trigger').hasClass('triggered') && $('#contact-box-map-outer > div').length == 0) { var geocoder; var map; geocoder = new google.maps.Geocoder(); var latlng = new google.maps.LatLng(-34.397, 150.644); var mapOptions = { zoom: 10, center: latlng } map = new google.maps.Map(document.getElementById('contact-box-map-outer'), mapOptions); var address = document.getElementById('contact-box-map-address').value; geocoder.geocode( { 'address': address}, function(results, status) { if (status == 'OK') { map.setCenter(results[0].geometry.location); var marker = new google.maps.Marker({ map: map, position: results[0].geometry.location }); } else { console.log('Geocode was not successful for the following reason: ' + status); } }); } } }