!function(t){function e(o){if(n[o])return n[o].exports;var r=n[o]={exports:{},id:o,loaded:!1};return t[o].call(r.exports,r,r.exports,e),r.loaded=!0,r.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";var o=n(1),r=n(11),i=n(14),a=n(2),s=".monthly-rate-widget";r.ensureJQuery(function(){var t=window.jQuery;t("document").ready(function(){o.isEnabled("monthly-rate-widget")&&(a.addErrorListener(t,"monthly-rate-widget"),t(s).each(function(){new i(t,this)}))})})},function(t,e){"use strict";function n(){return"undefined"!=typeof window}var o="https://www.immobilienscout24.de",r="https://www.sandbox-immobilienscout24.de";n()&&(window.is24=window.is24||{},window.is24.baufinanzierung=window.is24.baufinanzierung||{},window.is24.baufinanzierung.widgets=window.is24.baufinanzierung.widgets||{}),t.exports={baseUrlLive:o,baseUrlSandbox:r,getBaseUrl:function(){if(n()){if(window.location&&window.location.hostname&&window.location.hostname.indexOf(".sandbox-immobilienscout24.de")>-1)return r;if("string"==typeof window.is24.baufinanzierung.apiBaseUrl)return window.is24.baufinanzierung.apiBaseUrl}return o},isEnabled:function(t){return!n()||!window.is24.baufinanzierung.widgets[t]||window.is24.baufinanzierung.widgets[t].enabled}}},function(t,e,n){"use strict";function o(){this.listener=null,this.widgetName=null,this.errorEvent="widgetError"}var r=n(1),i="/baufinanzierung-api/restapi/api/financing/construction/v1.0/log/";o.prototype={addErrorListener:function(t,e){if(!this.listener){this.listener=t("body"),this.widgetName=e;var n=this;this.listener.on(this.errorEvent,function(e,o){var a=r.getBaseUrl()+i;a+="error"===o.level?"error":"warn";var s={payload:{href:window&&window.location?window.location.href:"",consoleMessage:o.message,appName:n.widgetName}};navigator&&navigator.userAgent&&(s.payload.userAgent=navigator.userAgent),t.ajax({type:"POST",url:a,data:JSON.stringify(s),contentType:"application/json"})})}},throwError:function(t,e){this.listener&&(e=e||"error",this.listener.trigger(this.errorEvent,{message:t,level:e}))}},t.exports=new o},function(t,e){"use strict";function n(){this.defaults={employment:"EMPLOYED",amortizationRate:3,fixedNominalInterestRate:"TEN_YEARS"}}var o="financingData";n.prototype.getStoredValues=function(){if(window.localStorage&&window.localStorage[o])try{return JSON.parse(window.localStorage[o])}catch(t){}return{}},n.prototype.getValues=function(){var t=this.getStoredValues();return{employment:t.employment||this.defaults.employment,amortizationRate:t.amortizationRate||this.defaults.amortizationRate,fixedNominalInterestRate:t.fixedNominalInterestRate||this.defaults.fixedNominalInterestRate,ownFunds:t.ownFunds,geoCode:t.geoCode}},n.prototype.mapFixedNominalInterestRate=function(t){switch(t){case"FIVE_YEARS":return 5;case"TEN_YEARS":return 10;case"FIFTEEN_YEARS":return 15;case"TWENTY_YEARS":return 20;case"THIRTY_YEARS":return 25;case"FORTY_YEARS":return 30}return""},t.exports=new n},function(t,e){"use strict";t.exports={isTruthy:function(t){if(void 0===t||null===t)return!1;var e=(""+t).toLowerCase();return"true"===e||"yes"===e||"ja"===e},formatCurrency:function(t){return t=parseInt(t),t=""+t.toFixed(1).replace(/(\d)(?=(\d{3})+\.)/g,"$1.")+"€",t.replace(".0€"," €")},formatRate:function(t,e){return(""+t.toFixed(e)).replace(".",",")},normalizeGeoCode:function(t,e){return e=(e||"").toString(),t=(t||"").toString().substr(0,7),t.search(e+"00[1-9]")===-1&&t.search(e+"01[0-6]")===-1&&(t=e),t}}},function(t,e){t.exports='
Geschätze Monatsrate
Kaufpreis
+ Kaufnebenkosten ( %)
- Eigenkapital ( %)
= Nettodarlehen
Monatsrate ca.
( Basierend auf Jahre Sollzinsbindung / % anfängliche Tilgung / Sollzins % ) ( Eine Monatsrate kann nur für Nettodarlehen ab 50.000 € berechnet werden. )
Persönliche Rate berechnen Zum Finanzierungsrechner '},function(t,e){t.exports='.monthly-rate-widget {\n position: relative;\n cursor: pointer;\n border-radius: 2px;\n display: inline-block;\n min-width: 150px;\n}\n\n.monthly-rate-box {\n width: 145px;\n cursor: pointer;\n padding: 2px 8px;\n border-radius: 2px;\n margin: 4px;\n}\n\n.monthly-rate-box .font-line-xs {\n line-height: 1.1em;\n}\n\n.monthly-rate-box .monthly-rate-label {\n color: #747474;\n font-size: 1rem;\n}\n\n.monthly-rate-box .monthly-rate-result {\n color: #57b93e;\n font-size: 1.3rem;\n line-height: 1em;\n text-align: center;\n}\n\n.monthly-rate-details-box {\n z-index: 999;\n position: absolute;\n width: 255px;\n padding: 2px 8px;\n border-radius: 2px;\n margin: 16px 4px 4px 4px;\n left: -110px;\n top: 30px;\n cursor: default;\n}\n\n.monthly-rate-details-box .column1 {\n width: 10px;\n}\n\n.monthly-rate-details-box .column2 {\n width: 141px;\n}\n\n.monthly-rate-details-box .column2-small {\n width: 130px;\n}\n\n.monthly-rate-details-box .column3 {\n width: 70px;\n float: right !important;\n}\n\n.monthly-rate-details-box .column3-large {\n width: 80px;\n float: right !important;\n}\n\n.monthly-rate-details-box-arrow {\n top: -15px;\n left: 200px;\n content: "";\n position: absolute;\n border-width: 7px;\n border-style: solid;\n width: 0;\n height: 0;\n border-color: transparent transparent #e0e0e0 transparent;\n}\n\n.monthly-rate-details-box-arrow:after {\n top: -5px;\n left: -7px;\n content: "";\n position: absolute;\n border-width: 7px;\n border-style: solid;\n border-color: transparent transparent #f4f6f8 transparent;\n}\n\n.monthly-rate-details-box .font-s-fixed {\n font-size: 10px;\n}\n'},function(t,e,n){function o(t,e){for(var n=0;n=0&&b.splice(e,1)}function s(t){var e=document.createElement("style");return t.attrs.type="text/css",d(e,t.attrs),i(t,e),e}function l(t){var e=document.createElement("link");return t.attrs.type="text/css",t.attrs.rel="stylesheet",d(e,t.attrs),i(t,e),e}function d(t,e){Object.keys(e).forEach(function(n){t.setAttribute(n,e[n])})}function u(t,e){var n,o,r;if(e.singleton){var i=y++;n=v||(v=s(e)),o=c.bind(null,n,i,!1),r=c.bind(null,n,i,!0)}else t.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=l(e),o=m.bind(null,n,e),r=function(){a(n),n.href&&URL.revokeObjectURL(n.href)}):(n=s(e),o=h.bind(null,n),r=function(){a(n)});return o(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;o(t=e)}else r()}}function c(t,e,n,o){var r=n?"":o.css;if(t.styleSheet)t.styleSheet.cssText=C(e,r);else{var i=document.createTextNode(r),a=t.childNodes;a[e]&&t.removeChild(a[e]),a.length?t.insertBefore(i,a[e]):t.appendChild(i)}}function h(t,e){var n=e.css,o=e.media;if(o&&t.setAttribute("media",o),t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}function m(t,e,n){var o=n.css,r=n.sourceMap,i=void 0===e.convertToAbsoluteUrls&&r;(e.convertToAbsoluteUrls||i)&&(o=x(o)),r&&(o+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var a=new Blob([o],{type:"text/css"}),s=t.href;t.href=URL.createObjectURL(a),s&&URL.revokeObjectURL(s)}var f={},p=function(t){var e;return function(){return"undefined"==typeof e&&(e=t.apply(this,arguments)),e}},g=p(function(){return window&&document&&document.all&&!window.atob}),w=function(t){var e={};return function(n){return"undefined"==typeof e[n]&&(e[n]=t.call(this,n)),e[n]}}(function(t){return document.querySelector(t)}),v=null,y=0,b=[],x=n(8);t.exports=function(t,e){e=e||{},e.attrs="object"==typeof e.attrs?e.attrs:{},"undefined"==typeof e.singleton&&(e.singleton=g()),"undefined"==typeof e.insertInto&&(e.insertInto="head"),"undefined"==typeof e.insertAt&&(e.insertAt="bottom");var n=r(t);return o(n,e),function(t){for(var i=[],a=0;a0&&(u.total.sum=u.notaryCosts.sum+u.entryLandRegister.sum+u.landTransfer.sum+u.brokerCommission.sum,u.total.percent=Math.round(100*u.total.sum/t)),u},t.exports=new n},function(t,e){"use strict";function n(t,e,n){return t()?n():(this.chekInterval=null,this.checkProgress=function(){var e=this;return t()?(e.chekInterval&&clearInterval(e.chekInterval),e.chekInterval=null,void n()):void(e.chekInterval||(e.chekInterval=setInterval(function(){e.checkProgress()},25)))},setTimeout(function(){var t=document.createElement("script");t.src=e,document.getElementsByTagName("head")[0].appendChild(t)},1),void this.checkProgress())}var o="https://www.static-immobilienscout24.de/fro/jquery/3.1.0/jquery.min.js";n.ensureJQuery=function(t){function e(){return"undefined"!=typeof window.jQuery&&"undefined"!=typeof window.jQuery.fn}return new n(e,o,t)},t.exports=n},function(t,e){"use strict";function n(t,e){var n,o;for(n in t)if(o=t[n],0===e.toString().indexOf(n.toString()))return t=o}function o(t,e){var n,o;for(n in t)if(o=t[n],n.toString()===e.toString())return t=o}function r(t,e){var n,o;for(n in t)if(o=t[n],n=parseFloat(n),e0?i:void 0},t.exports=i},function(t,e,n){"use strict";function o(t){this.widgetName=t}var r=n(12),i=n(1),a="/baufinanzierung-api/restapi/api/financing/construction/v1.0/marketdatarange/";o.prototype.loadMarketDataRanges=function(t,e){var n={geoCode:e.geoCode,employment:e.employment,amortizationRate:e.amortizationRate,fixedNominalInterestRate:e.fixedNominalInterestRate,loanAmount:e.loanAmount,loanToValueRatio:e.loanToValueRatio,source:this.widgetName},o=i.getBaseUrl()+a;return t.getJSON(o,n).then(function(t){return new r(t)})},t.exports=o},function(t,e,n){"use strict";function o(t,e){this.$=t,this.marketDataRangeService=new a("monthly-rate-widget"),this.view=new s(this.$,e),this.model=this.$.extend({monthlyRate:null,state:"loading"},this.view.model),(!this.model.purchasePrice||this.model.purchasePrice<0)&&(this.model.purchasePrice=0),this.normalizeGeoCode(),this.calculateAdditionalCosts(),this.updateModelWithFinancialData(),this.calculateMonthlyRate()}var r=n(3),i=n(10),a=n(13),s=n(15),l=n(2),d=n(4),u="1276",c=20;o.prototype={normalizeGeoCode:function(){var t=r.getValues(),e=d.normalizeGeoCode(this.model.geoCode,u);e===u&&t.geoCode&&(e=d.normalizeGeoCode(t.geoCode,u)),this.model.geoCode=e},calculateAdditionalCosts:function(){this.model.additionalCosts=i.getAdditionalCosts(this.model.purchasePrice,this.model.geoCode,this.model.hasCourtage)},updateModelWithFinancialData:function(){var t=r.getValues();this.$.extend(this.model,{employment:t.employment,amortizationRate:t.amortizationRate,fixedNominalInterestRate:t.fixedNominalInterestRate,ownFunds:t.ownFunds||Math.round(this.model.purchasePrice*c/100)}),this.model.ownFundsPercentage=Math.round(this.model.ownFunds/this.model.purchasePrice*100),this.model.loanAmount=Math.max(this.model.purchasePrice+this.model.additionalCosts.total.sum-this.model.ownFunds,0),this.model.loanToValueRatio=Math.round(this.model.loanAmount/this.model.purchasePrice*100),this.model.monthlyRate=null,this.model.loanAmount<5e4?this.model.state="loanAmountTooSmall":this.model.state="loading"},calculateMonthlyRate:function(){var t=this;t.view.render(t.model),setTimeout(function(){"loading"===t.model.state&&t.marketDataRangeService.loadMarketDataRanges(t.$,t.model).then(function(e){var n=e.getMarketData(t.model);n?(t.model.averageInterestRate=n.averageInterestRate,t.model.effectiveInterestRate=n.effectiveInterestRate,t.model.monthlyRate=Math.floor(t.model.loanAmount*(t.model.averageInterestRate+t.model.amortizationRate)/100/12),t.model.state="done"):l.throwError("MarketDataRanges returned but could not find matching marketData! Model: "+JSON.stringify(t.model)+" marketDataRanges: "+JSON.stringify(e)),t.view.render(t.model)}).catch(function(t){var e=t&&t.message?t.message:JSON.stringify(t);l.throwError("could not load MarketDataRanges: "+e)})},350)}},t.exports=o},function(t,e,n){"use strict";function o(t,e){this.$=t,this.$rootElement=this.$(e),this.$widgetBox=null,this.$detailsLayer=null,this.$clickOutButton=null,this.trackingCmpId=this.$rootElement.data("tracking-cmp-id")||"",this.trackingCmpPosition=this.$rootElement.data("tracking-cmp-position")||"",this.model={exposeId:this.$rootElement.data("expose-id"),purchasePrice:this.$rootElement.data("purchase-price"),geoCode:this.$rootElement.data("geo-code"),hasCourtage:a.isTruthy(this.$rootElement.data("has-courtage"))};try{this.model.purchasePrice=parseInt(this.model.purchasePrice)}catch(t){l.throwError('could not parse purchasePrice: "'+this.$rootElement.data("purchase-price")+'"',"warn"),this.model.purchasePrice=0}(!this.model.purchasePrice||this.model.purchasePrice<0)&&(l.throwError('no purchasePrice or below 0: "'+this.$rootElement.data("purchase-price")+'"',"warn"),this.model.purchasePrice=0)}var r=n(3),i=n(16),a=n(4),s=n(1),l=n(2),d=n(5);n(9);var u="/baufinanzierung/finanzierungsrechner/%expose_id%?cmp_id=%cmp_id%&cmp_name=finance_calculator&cmp_position=%cmp_position%&cmp_creative=monthly_rate_widget";o.prototype={prepareDom:function(){0===this.$rootElement.find(".monthly-rate-box").length&&(this.$rootElement.append(this.$(d)),this.$widgetBox=this.$rootElement.find(".monthly-rate-box"),this.$detailsLayer=this.$rootElement.find(".monthly-rate-details-box"),this.$clickOutButton=this.$rootElement.find("button.button-primary"),this.addClickHandler())},closeDetailsLayer:function(){this.$detailsLayer.addClass("hide")},openDetailsLayer:function(){this.$detailsLayer.removeClass("hide"),i.track({evt_ga_category:"finance",evt_ga_action:"monthly_rate_widget",evt_ga_label:"opening"})},toggleDetailsLayer:function(){this.$detailsLayer.is(":visible")?this.closeDetailsLayer():this.openDetailsLayer()},clickOut:function(){var t=s.getBaseUrl()+u;t=t.replace("%expose_id%",this.model.exposeId),t=t.replace("%cmp_id%",this.trackingCmpId),t=t.replace("%cmp_position%",this.trackingCmpPosition),window.open(t,"_self")},addClickHandler:function(){function t(t){return 0===t.closest(o.$widgetBox).length}function e(t){return t.closest(o.$detailsLayer).length>0}function n(t){return t.closest(o.$clickOutButton).length>0}var o=this;o.$(document).click(function(r){try{var i=o.$(r.target);if(t(i))return void o.closeDetailsLayer();if(!e(i))return void o.toggleDetailsLayer();n(i)&&o.clickOut()}catch(t){l.throwError('MonthlyRateWidgetUI.clickHandler - error: "'+JSON.stringify(t)+'"')}})},showLoadingSpinner:function(){this.$rootElement.find(".monthly-rate-value").addClass("hide"),this.$rootElement.find(".monthly-rate-value-spinner").removeClass("hide")},showMonthlyRate:function(t){this.$rootElement.find(".monthly-rate-value-spinner").addClass("hide"),this.$rootElement.find(".monthly-rate-value").removeClass("hide").text(t)},hideEndNote:function(){this.$rootElement.find(".end-note-for-loan").addClass("hide"),this.$rootElement.find(".end-note-no-loan").addClass("hide")},showEndNoteForLoan:function(){this.$rootElement.find(".fixed-nominal-interest-rate").text(r.mapFixedNominalInterestRate(this.model.fixedNominalInterestRate)),this.$rootElement.find(".amortization-rate").text(a.formatRate(this.model.amortizationRate,1)),this.$rootElement.find(".average-interest-rate").text(a.formatRate(this.model.averageInterestRate,2)),this.$rootElement.find(".end-note-for-loan").removeClass("hide"),this.$rootElement.find(".end-note-no-loan").addClass("hide")},showEndNoteForNoLoan:function(){this.$rootElement.find(".end-note-for-loan").addClass("hide"),this.$rootElement.find(".end-note-no-loan").removeClass("hide")},showDefaultButton:function(){this.$rootElement.find(".button-label-no-loan").addClass("hide"),this.$rootElement.find(".button-label-for-loan").removeClass("hide")},showButtonForNoLoan:function(){this.$rootElement.find(".button-label-no-loan").removeClass("hide"),this.$rootElement.find(".button-label-for-loan").addClass("hide")},render:function(t){switch(this.model=t,this.prepareDom(),this.$rootElement.find(".purchase-price-value").text(a.formatCurrency(this.model.purchasePrice)),this.$rootElement.find(".additional-costs-percentage").text(this.model.additionalCosts.total.percent),this.$rootElement.find(".additional-costs-value").text(a.formatCurrency(this.model.additionalCosts.total.sum)),this.$rootElement.find(".own-funds-percentage").text(this.model.ownFundsPercentage),this.$rootElement.find(".own-funds-value").text(a.formatCurrency(this.model.ownFunds)),this.$rootElement.find(".loan-amount").text(a.formatCurrency(this.model.loanAmount)),this.model.state){case"loading":this.showLoadingSpinner(),this.hideEndNote(),this.showDefaultButton();break;case"loanAmountTooSmall":this.showMonthlyRate("--- €"),this.showEndNoteForNoLoan(),this.showButtonForNoLoan();break;case"done":this.showMonthlyRate(a.formatCurrency(this.model.monthlyRate)),this.showEndNoteForLoan(),this.showDefaultButton();break;default:l.throwError('MonthlyRateWidgetUI.render - unknown state: "'+this.model.state+'"'),this.showDefaultButton()}}},t.exports=o},function(t,e){"use strict";function n(){}n.prototype={isTrackingDefined:function(){return window.IS24&&window.IS24.TEALIUM},track:function(t){if(this.isTrackingDefined())try{window.IS24.TEALIUM.tracking.report(t)}catch(t){}}},t.exports=new n}]);