| string | <div class="cms_content"><link rel="stylesheet" href="/globalcss/lux-styles.css"><script src="/globaljs/lux-autocomplete.js"></script><cfset deutsch_h1 = "<span class='text-highlight'>Wir laden Sie ein</span>, eine der <span class='text-highlight'>Top 5 Immobilienbörsen Deutschlands</span> kennenzulernen."><cfif isDefined("portal_region_google") and portal_region_google.recordcount GT 0><cfset deutsch_h1 = "<span class='text-highlight'>Wir laden Sie ein</span>, dieses lokale Portal und eines der <span class='text-highlight'>Top 5 Immobilienbörsen Deutschlands</span> kennenzulernen."><cfelseif isDefined("caller.portal_region_google") and caller.portal_region_google.recordcount GT 0><cfset deutsch_h1 = "<span class='text-highlight'>Wir laden Sie ein</span>, dieses lokale Portal und eines der <span class='text-highlight'>Top 5 Immobilienbörsen Deutschlands</span> kennenzulernen."></cfif><style>
:root {
--primary: #3366cc;
--accent: #cc6666;
}
body {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
background: #f7f9fc;
color: #333;
margin: 0
}
#pwHeader {
display: flex;
justify-content: flex-end;
align-items: center;
gap: 10px;
padding: 15px 30px;
background: var(--primary);
color: #fff
}
#pwHeader select {
padding: 6px 10px;
border: none;
border-radius: 5px;
font-size: 14px;
cursor: pointer;
width: auto;
/* NEU: Dropdowns nicht 100 % breit */
min-width: 140px;
/* etwas Platz, aber nicht zu groß */
}
h1 {
margin: 40px 0 10px;
text-align: center;
color: #333
}
.subheadline {
text-align: center;
color: #666;
font-size: 18px;
margin: 0 0 40px;
}
.benefits {
max-width: 900px;
margin: 0 auto 60px;
background: #e3f2fd;
padding: 20px;
border-radius: 12px
}
.benefits h2 {
text-align: center;
color: #1565c0;
margin: 0
}
.benefits ul {
list-style: none;
padding: 0;
margin: 20px auto;
max-width: 700px
}
.benefits li {
display: flex;
gap: 10px;
align-items: center;
margin: 12px 0
}
.benefits li::before {
content: "✓";
color: var(--primary);
font-weight: bold
}
.pricing-container {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 25px;
max-width: 1300px;
margin: 0 auto 50px
}
.card {
background: #fff;
border-radius: 10px;
width: 280px;
box-shadow: 0 4px 10px rgba(0, 0, 0, .1);
text-align: center;
transition: .3s;
display: flex;
flex-direction: column
}
.card:hover {
transform: translateY(-6px);
box-shadow: 0 8px 20px rgba(0, 0, 0, .15)
}
.card h2 {
margin: 0;
color: #fff;
padding: 10px;
border-radius: 10px 10px 0 0;
font-size: 1.1rem
}
.mini h2 {
background: #4db6ac
}
.maxi h2 {
background: #ff7043
}
.maxplus h2 {
background: #ffb300
}
.lifetime h2 {
background: var(--accent)
}
.maxplus h2 sup {
font-size: 1.2em; /* etwas größer als der normale Text */
vertical-align: super; /* hochgestellt */
position: relative;
top: -0.2em; /* feinjustierung */
}
.card-content {
display: flex;
flex-direction: column;
justify-content: space-between;
flex: 1;
padding: 25px
}
.price {
font-size: 24px;
font-weight: bold;
margin: 10px 0 20px;
color: #222;
min-height: 65px
}
.details {
list-style: none;
padding: 0;
margin: 0 0 25px;
text-align: center;
flex-grow: 1;
display: flex;
flex-direction: column;
gap: 8px;
min-height: 140px
}
select.plan-duration {
padding: 10px;
border-radius: 6px;
border: 1px solid #ccc;
font-size: 14px;
margin: 0 auto 20px;
width: 100%;
max-width: 240px
}
.btn {
background: var(--primary);
color: #fff;
border: none;
padding: 12px 25px;
border-radius: 6px;
cursor: pointer;
font-weight: 700;
transition: .2s
}
@media(max-width:768px) {
.btn {
font-size:18px;
}
}
.btn:hover {
background: #264b9b
}
.premium-option {
background: #fafafa;
border: 2px dashed #5c6bc0;
border-radius: 10px;
padding: 25px;
width: 280px;
box-shadow: 0 2px 6px rgba(0, 0, 0, .05);
display: flex;
flex-direction: column;
text-align: center
}
.premium-option h2 {
color: #5c6bc0;
margin: 0 0 10px
}
.premium-option .details {
min-height: auto
}
.premium-option label {
display: inline-flex;
align-items: center;
gap: 8px;
font-weight: 700;
color: #333;
margin-top: 10px;
cursor: pointer
}
.premium-option input[type="checkbox"] {
width: 20px;
height: 20px;
accent-color: #5c6bc0
}
.premium-info {
font-size: 13px;
color: #666;
margin-top: 8px
}
.always-included {
background: #e3f2fd;
padding: 20px;
border-radius: 8px;
max-width: 700px;
margin: 0 auto 40px
}
.always-included h3 {
text-align: center;
color: #1565c0;
margin: 0 0 10px
}
/* Formular */
#booking {
max-width: 800px;
margin: 30px auto 60px;
background: #fff;
border-radius: 12px;
box-shadow: 0 4px 12px rgba(0, 0, 0, .08);
padding: 30px 40px;
/* NEU: mehr Innenabstand, auch rechts */
display: none;
}
#booking h3 {
margin: 0 0 10px
}
.summary {
background: #f3f6ff;
border-left: 4px solid var(--primary);
padding: 12px 14px;
border-radius: 6px;
margin-bottom: 15px;
font-weight: 600
}
form .row {
display: flex;
flex-wrap: wrap;
gap: 10px;
/* NEU: sichtbarer Abstand zwischen Spalten */
}
form .row .col-full {
flex: 1 1 100%;
}
form .row .col-half {
flex: 1 1 calc(50% - 10px);
/* NEU: 10px Abstand berücksichtigen */
}
form .row .col-third {
flex: 1 1 calc(33.333% - 13.33px);
/* NEU: 13.33px Abstand berücksichtigen */
}
form .row .col-twothirds {
flex: 1 1 calc(66.666% - 13.33px);
/* NEU: 13.33px Abstand berücksichtigen */
}
@media(max-width:768px) {
form .row .col-half,
form .row .col-twothirds,
form .row .col-third {
flex: 1 1 100%
}
.submitbar {
flex-wrap:wrap;
}
}
.text-center {
text-align: center;
}
.w-full {
width: 100%
}
.text-white {
color: #fff
}
.m-0 {margin: 0}.m-1 {margin: .25rem}.m-2 {margin: .5rem}.m-3 {margin: 1rem}.m-4 {margin: 1.5rem}.m-5 {margin: 3rem}
.mb-0 {margin-bottom: 0}.mb-1 {margin-bottom: .25rem}.mb-2 {margin-bottom: .5rem}.mb-3 {margin-bottom: 1rem}.mb-4 {margin-bottom: 1.5rem}.mb-5 {margin-bottom: 3rem}
.mt-0 {margin-top: 0}.mt-1 {margin-top: .25rem}.mt-2 {margin-top: .5rem}.mt-3 {margin-top: 1rem}.mt-4 {margin-top: 1.5rem}.mt-5 {margin-top: 3rem}
.ms-0 {margin-left: 0}.ms-1 {margin-left: .25rem}.ms-2 {margin-left: .5rem}.ms-3 {margin-left: 1rem}.ms-4 {margin-left: 1.5rem}.ms-5 {margin-left: 3rem}
.me-0 {margin-right: 0}.me-1 {margin-right: .25rem}.me-2 {margin-right: .5rem}.me-3 {margin-right: 1rem}.me-4 {margin-right: 1.5rem}.me-5 {margin-right: 3rem}
.p-0 {padding: 0}.p-1 {padding: .25rem}.p-2 {padding: .5rem}.p-3 {padding: 1rem}.p-4 {padding: 1.5rem}.p-5 {padding: 3rem}
.pb-0 {padding-bottom: 0}.pb-1 {padding-bottom: .25rem}.pb-2 {padding-bottom: .5rem}.pb-3 {padding-bottom: 1rem}.pb-4 {padding-bottom: 1.5rem}.pb-5 {padding-bottom: 3rem}
.pt-0 {padding-top: 0}.pt-1 {padding-top: .25rem}.pt-2 {padding-top: .5rem}.pt-3 {padding-top: 1rem}.pt-4 {padding-top: 1.5rem}.pt-5 {padding-top: 3rem}
.ps-0 {padding-left: 0}.ps-1 {padding-left: .25rem}.ps-2 {padding-left: .5rem}.ps-3 {padding-left: 1rem}.ps-4 {padding-left: 1.5rem}.ps-5 {padding-left: 3rem}
.pe-0 {padding-right: 0}.pe-1 {padding-right: .25rem}.pe-2 {padding-right: .5rem}.pe-3 {padding-right: 1rem}.pe-4 {padding-right: 1.5rem}.pe-5 {padding-right: 3rem}
label {
display: block;
font-size: 14px;
margin-bottom: 6px
}
input,
select {
width: 100%;
padding: 10px;
border: 1px solid #ccc;
border-radius: 6px;
font-size: 14px;
box-sizing: border-box;
}
input[type=checkbox]{
width: auto;
}
label.backlink{
background: #ff7043 none repeat scroll 0 0;
box-decoration-break: clone;
display: inline;
padding: 0 3px;
color: white;
}
.submitbar {
display: flex;
justify-content: flex-end;
margin-top: 16px
}
.note {
font-size: 12px;
color: #666;
margin-top: 6px
}
.text-highlight{color: #0d6efd;opacity: .65;}
.fs-1 {
font-size: calc(1.375rem + 1.5vw) !important;
}
@media (min-width: 1200px) {
.fs-1 {
font-size: 2.5rem !important;
}
}
.fs-3 {
font-size: calc(1.3rem + .6vw) !important;
}
@media (min-width: 1200px) {
.fs-3 {
font-size: 1.75rem !important;
}
}
select.error {
border-color: var(--accent);
animation: shake 0.3s;
animation-iteration-count: 1;
}
@keyframes shake {
0% { transform: translateX(0); }
20% { transform: translateX(-5px); }
40% { transform: translateX(5px); }
60% { transform: translateX(-5px); }
80% { transform: translateX(5px); }
100% { transform: translateX(0); }
}
@media(max-width:768px) {
.card,
.premium-option {
width: 100%;
max-width: 340px
}
form .grid {
grid-template-columns: 1fr
}
}
</style><!-- Der restliche HTML- und Script-Teil bleibt identisch wie in der letzten Version --><cfif isDefined("form.pwpartnerWerdenForm") AND form.pwpartnerWerdenForm EQ "partnerWerdenForm"><cfoutput><cfif ReFind("192.168.|-local|-alpha|-beta",SERVER_NAME) GTE 1><cf_mail from="kontakt@1a-immobilienmarkt.de" to="clarkson@1a-infosysteme.de" subject="Partner Werden Neu Formular" quelle="partner_werden_ajax.cfm"><cfloop collection="#form#" item="key"><cfif key EQ "fieldnames"><cfcontinue></cfif><cfif isArray(form[key])>
#key#: #ArrayToList(form[key], ", ")#<br><cfelse>
#key#: #form[key]#<br></cfif></cfloop></cf_mail><cfelse><cf_mail from="kontakt@1a-immobilienmarkt.de" to="teichler@1a-infosysteme.de,kontakt@1a-immobilienmarkt.de,clarkson@1a-infosysteme.de" subject="Partner Werden Neu Formular" quelle="partner_werden_ajax.cfm"><cfloop collection="#form#" item="key"><cfif key EQ "fieldnames"><cfcontinue></cfif><cfif isArray(form[key])>
#key#: #ArrayToList(form[key], ", ")#<br><cfelse>
#key#: #form[key]#<br></cfif></cfloop></cf_mail></cfif></cfoutput></cfif><cfif isDefined("form.pwpartnerWerdenForm") AND form.pwpartnerWerdenForm EQ "partnerWerdenForm"><div id="dankeMsg" style="display:block;" ><h1 class="translate" data-i18n="dankeHeadline"></h1><p class="subheadline translate" data-i18n="dankeText"></p></div><cfelse><div id="pwHeader"><div style="display:flex;gap:10px;flex-wrap:wrap;"><!-- Branche links (nur DE sichtbar) --><!-- Sprache rechts --><div>
Bitte Land wählen
</div><select id="langSelector"><option value="es" <cfif isDefined("url.lang") AND url.lang EQ "es"> selected</cfif>>Español</option><option value="de" <cfif isDefined("url.lang") AND url.lang EQ "de" or isDefined("url.lang") EQ "no"> selected</cfif>>Deutsch</option><option value="en" <cfif isDefined("url.lang") AND url.lang EQ "en"> selected</cfif>>English</option><option value="it" <cfif isDefined("url.lang") AND url.lang EQ "it"> selected</cfif>>Italiano</option><option value="fr" <cfif isDefined("url.lang") AND url.lang EQ "fr"> selected</cfif>>Français</option><option value="gr" <cfif isDefined("url.lang") AND url.lang EQ "gr"> selected</cfif>>Ελληνικά</option><option value="pt" <cfif isDefined("url.lang") AND url.lang EQ "pt"> selected</cfif>>Português</option></select></div></div><div id="ersterTeil" style="display:flex;justify-content:center;min-height:80vh;align-items:center;position:relative;"><div style="width:500px;"><!-- Der restliche HTML- und Script-Teil bleibt identisch wie in der letzten Version --><div class="flex-column w-100 gap-3 step validation-parent"><h2 class="fs-1 text-center"><span data-i18n="stepAuswahl.title"></span></h2><p class="text-center fs-3" data-i18n="stepAuswahl.text"></p><p class="text-center fs-3" data-i18n="stepAuswahl.frage"></p><div class="px-3"><div class="my-1"></div><div class="mb-2 mt-3" style="display:flex;justify-content:center;"><button type="button" class="next-step btn bg-portal text-white py-2 w-100" data-i18n="stepAuswahl.continue" id="stepAuswahlContinueButton" ></button></div></div></div></div></div><style>
#regioFormContainer{
z-index:99999;
top:0;bottom:0;left:0;right:0;
position: fixed;
width:100vw;
height:100vh;
justify-content:center;
align-items:center;
background: rgba(0,0,0,0.6);
}
#regioFormContainer .raContent{
background-color:var(--primary);
width:600px;
height:auto;
padding:20px;
border-radius:10px;
}
@media(max-width:768px) {
#regioFormContainer{
}
#regioFormContainer .raContent{
max-height:70vh;
overflow-y:scroll;
margin-bottom:10vh;
}
}
</style><div id="regioFormContainer" style="display:none;"><div class="raContent"><form id="regioForm" method="post" action="" class="text-white" onsubmit="return false;"><h2 class="text-center w-full m-2" data-i18n="regioForm.title">
Bitte wählen Sie Ihre Branche
</h2><h3 class="text-center w-full m-2" data-i18n="regioForm.regionQuestion">
Für welche Region dürfen wir Ihnen Kunden vermitteln?
</h3><div class="row"><div class="col-full"><select id="branchSelector" name="pwBranche" required><option value="" selected data-i18n="regioForm.branchSelect">Branche wählen</option><option value="makler" data-i18n="regioForm.branchMakler">Immobilienanbieter</option><option value="finanzierer" data-i18n="regioForm.branchFinanzierer">Immobilienfinanzierer</option><option value="versicherung" data-i18n="regioForm.branchVersicherung">Versicherung</option><option value="umzug" data-i18n="regioForm.branchUmzug">Umzugsunternehmen</option><option value="allgemein" data-i18n="regioForm.branchAllgemein">Allgemein - Interesse an Werbeschaltung</option></select></div><div class="col-full"><label for="regioCity" data-i18n="regioForm.city">Ort</label><input id="regioCity" name="pwOrt" type="text" required data-autocomplete="address-level2" <cfif isDefined("seo_ort")>value="<cfoutput>#seo_ort#</cfoutput>"<cfelseif isDefined("caller.seo_ort")>value="<cfoutput>#caller.seo_ort#</cfoutput>"</cfif> /></div></div><h3 class="text-center w-full" data-i18n="regioForm.companyQuestion">
An welche Firma dürfen wir Kunden empfehlen und ihr Kontakt für Rückfragen
</h3><div class="row" style=""><div class="col-full"><label data-i18n="regioForm.company" for="regioCompany">Firma</label><input id="regioCompany" name="pwFirma" type="text" required /></div><div class="col-half"><label data-i18n="regioForm.lastname" for="regioLastname">Ansprechpartner</label><input id="regioLastname" name="pwNachname" type="text" required /></div><div class="col-half"><label data-i18n="regioForm.phone" for="regioTelephone">Telefon</label><input id="regioTelephone" name="pwTelefon" type="text" required /></div><div class="col-half"><label data-i18n="regioForm.email" for="regioEmail">E-Mail</label><input id="regioEmail" name="pwEmail" type="email" required /></div><div class="col-half"><label data-i18n="regioForm.web" for="regioWeb">Webadresse</label><input id="regioWeb" name="pwWeb" type="text" required /></div></div><input type="hidden" id="regioFormInput" name="regioForm" value="regioForm" /><input type="hidden" name="formtype" value="partnerwerden" /><div class="submitbar"><button type="submit" style="background-color: #9ec538;" class="btn" data-i18n="regioForm.submit">Preise und Pakete anzeigen</button></div></form></div></div><div id="orderFormContainer" style="display:none;"><h1 data-i18n="headline"></h1><p class="subheadline" data-i18n="subheadline"></p><div class="benefits"><h2 id="benefitTitle" data-i18n="benefitTitle"></h2><ul id="benefitList" data-i18n="benefitList"></ul></div><div class="pricing-container" id="pricing"></div><div id="alwaysWrap" class="always-included"><h3 id="alwaysTitle" data-i18n="alwaysTitle"></h3><ul id="alwaysList" data-i18n="alwaysList"></ul></div><!-- Buchungsformular (für NICHT-Deutsch) --><section id="booking"><a id="booking-anchor"></a><h3 data-i18n="form-title"></h3><div class="summary" id="selectedSummary"></div><form id="orderForm" method="post" action=""><div class="row"><div class="col-full"><label data-i18n="order.company" for="company">Firma</label><input id="company" name="pwFirma" type="text" /></div><div class="col-third"><label data-i18n="order.salutation" for="salutation">Anrede</label><select id="salutation" name="pwAnrede"><option value="Frau" data-i18n="order.salutationFrau">Frau</option><option value="Herr" data-i18n="order.salutationHerr">Herr</option></select></div><div class="col-third"><label data-i18n="order.firstname" for="firstname">Vorname</label><input id="firstname" name="pwVorname"
type="text" /></div><div class="col-third"><label data-i18n="order.lastname" for="lastname">Nachname</label><input id="lastname" name="pwNachname"
type="text" /></div><div class="col-half"><label data-i18n="order.street" for="street">Straße</label><input id="street" name="pwStraße"
type="text" /></div><div class="col-half"><label data-i18n="order.zip" for="zip">PLZ</label><input id="zip" name="pwPLZ" type="text" data-autocomplete="postal-code" /></div><div class="col-half"><label data-i18n="order.city" for="city">Ort</label><input id="city" name="pwOrt" type="text" data-autocomplete="address-level2" /></div><div class="col-half"><label data-i18n="order.phone" for="phone">Telefon</label><input id="phone" name="pwTelefon" type="tel" /></div><div class="col-half"><label data-i18n="order.email" for="email">E-Mail</label><input id="email" name="pwEmail" type="email" required /></div><div class="col-half"><label data-i18n="order.web" for="web">Webadresse</label><input id="web" name="pwWeb" type="text" /></div><div class="col-full"><label data-i18n="order.country" for="country">Land</label><select id="country" name="pwLand"><option value="Germany">Deutschland</option><option value="Spain">España</option><option value="Italy">Italia</option><option value="France">France</option><option value="Greece">Ελλάδα</option><option value="Portugal">Portugal</option><option value="Austria">Österreich</option><option value="Switzerland">Schweiz</option><option value="Netherlands">Nederland</option><option value="United Kingdom">United Kingdom</option></select></div></div><input type="hidden" id="chosenPlan" name="pwGewaehltesPaket" /><input type="hidden" id="chosenPremium" name="pwPremiumOption" /><input type="hidden" id="chosenDuration" name="pwVertragslaufzeit" /><input type="hidden" id="chosenLang" name="pwLang" value="" /><input type="hidden" id="chosenBacklink" name="pwBacklink" value="" /><input type="hidden" id="partnerWerdenForm" name="pwpartnerWerdenForm" value="partnerWerdenForm" /><div class="submitbar"><div id="chosenBacklinkChecker" style="display:none;"><input type="checkbox" id="chosenBacklinkCheckbox" value="backlinkchecker" required><label for="chosenBacklinkCheckbox" style="font-size:12px;line-height:14px;">
Ich habe verstanden, dass die Verlinkung innerhalb von 30 Tagen erfolgen muss,
sonst fallen die monatlichen Kosten der Partnerschaft an.<br>
Sie erhalten eine E-Mail mit den Answeisungen für die Verlinkung.
</label></div><div><button type="submit" class="btn" id="submit-btn">Buchung abschließen</button></div></div><div style="text-align:end;font-size:12px;"><span data-i18n="order.taxes">Alle Preise sind zuzüglich Mehrwertsteuer. </span></div><p class="note" id="form-note"></p></form></section></div></cfif><script>
/* =========================
TEXTE / TRANSLATIONS
========================= */
var i18n = {
es: {
stepAuswahl: {
title: "<span class='highlight'> Lo invitamos</span> a conocer uno de los <span class='highlight'>3 mejores portales inmobiliarios de Alemania</span>",
text: "Aproveche la oportunidad de ganar nuevos clientes.",
avatar: "/images_portal/video/Portaltest-1A-Immo-it.mp4",
frage: "",
continue:"Por favor clique aquí"
},
headline: "Elige el plan ideal para ti.",
sub: "",
benefitTitle: "¿Por qué vale la pena la contratación?",
benefits: [
"Independencia: Menos dependencia de portales que dictan precios.",
"Planificación: Condiciones fijas, plazos claros, sin sorpresas.",
"Contratación: Construir alcance juntos, en lugar de comprar solo anuncios individuales."
],
plans: {
mini: { title: "Pack Mini", price: "100 €/mes<br><small>12 meses: 80 €/mes</small>", details: ["Máximo 250 anuncios", "Fotos ilimitadas"] },
maxi: { title: "Pack Maxi", price: "150 €/mes<br><small>12 meses: 120 €/mes</small>", details: ["Máximo 400 anuncios", "Vídeo incluido"] },
premium: { title: "Opción Premium", price: "+95 €/mes", details: ["Posicionamiento superior", "Banner lateral", "SEO mejorado", "anuncios inmobiliarios en redes sociales"] }
},
durations: ["Seleccionar duración", "Mensual", "6 meses", "12 meses"],
buttons: "Elegir Plan",
premiumLabel: "Añadir opción Premium",
premiumInfo: "Disponible a partir de 6 meses de contrato.",
alwaysTitle: "Siempre incluido:",
alwaysList: ["Traducción de anuncios", "Importación diaria", "Redirección web", "Información inmobiliaria"],
form: {
title: "Formaliza tu reserva",
labels: {
company: "Empresa", salutation: "Tratamiento", firstname: "Nombre", lastname: "Apellidos",
salutationFrau: "Señora", salutationHerr: "Señor", salutationDivers: "",
street: "Calle", zip: "CP", city: "Ciudad", phone: "Teléfono", email: "Correo", web: "Sitio web", country: "País"
},
submit: "Formaliza reserva",
note: "Se enviará un correo con tu solicitud a nuestro equipo."
},
form: {
title: "Formaliza tu reserva",
company: "Empresa", salutation: "Tratamiento", firstname: "Nombre", lastname: "Apellidos",
salutationFrau: "Señora", salutationHerr: "Señor", salutationDivers: "",
street: "Calle", zip: "CP", city: "Ciudad", phone: "Teléfono", email: "Correo", web: "Sitio web", country: "País",
submit: "Formaliza reserva",
note: "Se enviará un correo con tu solicitud a nuestro equipo.",
taxes: "Todos los precios son más IVA."
},
summaryWith: "Has elegido: {plan}{premium}{duration}",
dankeHeadline: "¡Gracias por tu reserva!",
dankeText: "Nos pondremos en contacto contigo lo antes posible para confirmar tu pedido."
},
en: {
stepAuswahl: {
title: "<span class='highlight'> We invite you</span> to discover one of the <span class='highlight'>Top 3 real estate markets in Germany</span>",
text: "Take advantage of the opportunity to gain new customers.",
avatar: "/images_portal/video/Portaltest-1A-Immo-en.mp4",
frage: "",
continue:"more information about the portal trial"
},
headline: "Choose your ideal plan.",
sub: "Get the best results with the Platinum plan.",
benefitTitle: "Why is the partnership worth it?",
benefits: [
"Independence: Less dependence on portals that dictate prices.",
"Planning: Fixed conditions, clear terms, no surprises.",
"Partnership: Build reach together instead of buying individual ads."
],
plans: {
mini: { title: "Mini Plan", price: "50 €/month<br><small>12 months: 40 €/month</small>", details: ["Up to 100 listings", "Unlimited photos"] },
maxi: { title: "Maxi Plan", price: "100 €/month<br><small>6 months: 85 €/month<br>12 months: 70 €/month</small>", details: ["Up to 400 listings", "Unlimited photos<br>Video included"] },
premium: { title: "Premium Option", price: "+25 €/month", details: ["Top placement", "Sidebar banner", "SEO boost", "Mailing included", "2 years free website (2027)"] }
},
durations: ["Select duration", "Monthly", "6 months", "12 months"],
buttons: "Choose Plan",
premiumLabel: "Add Premium Option",
premiumInfo: "Available for contracts of 6 months or more.",
alwaysTitle: "Always included:",
alwaysList: ["Ad translation", "Daily import", "Website redirect", "Property information"],
form: {
title: "Complete your booking",
labels: {
company: "Company", salutation: "Salutation", firstname: "First name", lastname: "Last name",
salutationFrau: "Ms.", salutationHerr: "Mr.", salutationDivers: "Diverse",
street: "Street", zip: "ZIP", city: "City", phone: "Phone", email: "Email", web: "Website", country: "Country"
},
submit: "Complete booking",
note: "An email with your request will be sent to our team."
},
order: {
title: "Complete your booking",
company: "Company", salutation: "Salutation", firstname: "First name", lastname: "Last name",
salutationFrau: "Ms.", salutationHerr: "Mr.", salutationDivers: "Diverse",
street: "Street", zip: "ZIP", city: "City", phone: "Phone", email: "Email", web: "Website", country: "Country",
submit: "Complete booking",
note: "An email with your request will be sent to our team.",
taxes: "All prices are plus VAT."
},
summaryWith: "You selected: {plan}{premium}{duration}",
dankeHeadline: "Thank you for your booking!",
dankeText: "We have received your request and will get back to you shortly."
},
it: {
stepAuswahl: {
title: "<span class='highlight'>Vi invitiamo</span> a conoscere una delle <span class='highlight'>3 migliori borse immobiliari della Germania</span>",
text: "Approfittate dell'opportunità di guadagnare nuovi clienti.",
avatar: "/images_portal/video/Portaltest-1A-Immo-it.mp4",
frage: "",
continue: "maggiori informazioni sulla prova del portale"
},
headline: "Scegli il piano ideale per te.",
sub: "Ottieni i migliori risultati con il piano Platino.",
benefitTitle: "Perché vale la pena collaborare?",
benefits: [
"Indipendenza: Meno dipendenza da portali che impongono i prezzi.",
"Pianificazione: Condizioni fisse, termini chiari, nessuna sorpresa.",
"Collaborazione: Costruire la visibilità insieme, invece di acquistare singoli annunci."
],
plans: {
mini: { title: "Pacchetto Mini", price: "50 €/mese<br><small>12 mesi: 40 €/mese</small>", details: ["Massimo 100 annunci", "Foto illimitate"] },
maxi: { title: "Pacchetto Maxi", price: "100 €/mese<br><small>6 mesi: 85 €/mese<br>12 mesi: 70 €/mese</small>", details: ["Massimo 400 annunci", "Video incluso"] },
premium: { title: "Opzione Premium", price: "+25 €/mese", details: ["Posizionamento prioritario", "Banner laterale", "SEO migliorato", "Mailing incluso", "2 anni di sito gratuito (dal 2027)"] }
},
durations: ["Seleziona durata", "Mensile", "6 mesi", "12 mesi"],
buttons: "Scegli piano",
premiumLabel: "Aggiungi opzione Premium",
premiumInfo: "Disponibile per contratti di almeno 6 mesi.",
alwaysTitle: "Sempre incluso:",
alwaysList: ["Traduzione annunci", "Importazione giornaliera", "Reindirizzamento sito", "Informazioni immobiliari"],
form: {
title: "Concludi la prenotazione",
labels: {
company: "Azienda", salutation: "Titolo", firstname: "Nome", lastname: "Cognome",
salutationFrau: "Signora", salutationHerr: "Signor", salutationDivers: "Diverso",
street: "Via", zip: "CAP", city: "Città", phone: "Telefono", email: "Email", web: "Sito web", country: "Paese"
},
submit: "Conferma prenotazione",
note: "Una email con la tua richiesta verrà inviata al nostro team."
},
order: {
title: "Concludi la prenotazione",
company: "Azienda", salutation: "Titolo", firstname: "Nome", lastname: "Cognome",
salutationFrau: "Signora", salutationHerr: "Signor", salutationDivers: "Diverso",
street: "Via", zip: "CAP", city: "Città", phone: "Telefono", email: "Email", web: "Sito web", country: "Paese",
submit: "Conferma prenotazione",
note: "Una email con la tua richiesta verrà inviata al nostro team.",
taxes: "Tutti i prezzi sono più IVA."
},
summaryWith: "Hai selezionato: {plan}{premium}{duration}",
dankeHeadline: "Grazie per la tua prenotazione!",
dankeText: "Abbiamo ricevuto la tua richiesta e ti contatteremo a breve."
},
fr: {
stepAuswahl: {
title: "<span class='highlight'>Nous vous invitons</span> à découvrir l'un des <span class='highlight'>3 meilleurs portails immobiliers d'Allemagne</span>",
text: "Profitez de l'opportunité de gagner de nouveaux clients.",
avatar: "/images_portal/video/Portaltest-1A-Immo-fr.mp4",
frage: "",
continue: "plus d'informations sur l'essai du portail"
},
headline: "Choisis le plan idéal pour toi.",
sub: "Obtiens les meilleurs résultats avec le plan Platine.",
benefitTitle: "Pourquoi ce partenariat en vaut la peine ?",
benefits: [
"Indépendance : moins de dépendance aux portails qui dictent les prix.",
"Planification : conditions fixes, délais clairs, sans surprises.",
"Partenariat : construire la portée ensemble au lieu d’acheter des annonces individuelles."
],
plans: {
mini: { title: "Pack Mini", price: "50 €/mois<br><small>12 mois : 40 €/mois</small>", details: ["Jusqu’à 100 annonces", "Photos illimitées"] },
maxi: { title: "Pack Maxi", price: "100 €/mois<br><small>6 mois : 85 €/mois<br>12 mois : 70 €/mois</small>", details: ["Jusqu’à 400 annonces", "Vidéo incluse"] },
premium: { title: "Option Premium", price: "+25 €/mois", details: ["Mise en avant", "Bannière latérale", "SEO amélioré", "Mailing inclus", "2 ans de site gratuit (dès 2027)"] }
},
durations: ["Choisir la durée", "Mensuel", "6 mois", "12 mois"],
buttons: "Choisir le plan",
premiumLabel: "Ajouter l’option Premium",
premiumInfo: "Disponible pour des contrats d’au moins 6 mois.",
alwaysTitle: "Toujours inclus :",
alwaysList: ["Traduction d’annonces", "Import quotidien", "Redirection du site", "Informations immobilières"],
form: {
title: "Finaliser votre réservation",
labels: {
company: "Société", salutation: "Civilité", firstname: "Prénom", lastname: "Nom",
salutationFrau: "Madame", salutationHerr: "Monsieur", salutationDivers: "Divers",
street: "Rue", zip: "Code postal", city: "Ville", phone: "Téléphone", email: "Email", web: "Site web", country: "Pays"
},
submit: "Finaliser la réservation",
note: "Un email avec votre demande sera envoyé à notre équipe."
},
order: {
title: "Finaliser votre réservation",
company: "Société", salutation: "Civilité", firstname: "Prénom", lastname: "Nom",
salutationFrau: "Madame", salutationHerr: "Monsieur", salutationDivers: "Divers",
street: "Rue", zip: "Code postal", city: "Ville", phone: "Téléphone", email: "Email", web: "Site web", country: "Pays",
submit: "Finaliser la réservation",
note: "Un email avec votre demande sera envoyé à notre équipe.",
taxes: "Tous les prix sont hors TVA."
},
summaryWith: "Vous avez choisi : {plan}{premium}{duration}",
dankeHeadline: "Merci pour votre réservation !",
dankeText: "Nous avons reçu votre demande et nous vous contacterons sous peu."
},
gr: {
stepAuswahl: {
title: "<span class='highlight'>Σας προσκαλούμε</span> να γνωρίσετε μια από τις <span class='highlight'>3 κορυφαίες αγορές ακινήτων της Γερμανίας</span>",
text: "Εκμεταλλευτείτε την ευκαιρία να κερδίσετε νέους πελάτες.",
avatar: "/images_portal/video/Portaltest-1A-Immo-gr.mp4",
frage: "",
continue:"περισσότερες πληροφορίες για τη δοκιμή του portal"
},
headline: "Επίλεξε το ιδανικό πρόγραμμα για σένα.",
sub: "Πέτυχε τα καλύτερα αποτελέσματα με το πρόγραμμα Platinum.",
benefitTitle: "Γιατί αξίζει η συνεργασία;",
benefits: [
"Ανεξαρτησία: Λιγότερη εξάρτηση από πύλες που καθορίζουν τιμές.",
"Σχεδιασμός: Σταθεροί όροι, σαφείς προθεσμίες, χωρίς εκπλήξεις.",
"Συνεργασία: Δημιουργία απήχησης μαζί αντί για μεμονωμένες αγγελίες."
],
plans: {
mini: { title: "Μίνι Πακέτο", price: "50 €/μήνα<br><small>12 μήνες: 40 €/μήνα</small>", details: ["Έως 100 αγγελίες", "Απεριόριστς φωτογραφίες"] },
maxi: { title: "Μάξι Πακέτο", price: "100 €/μήνα<br><small>6 μήνες: 85 €/μήνα<br>12 μήνες: 70 €/μήνα</small>", details: ["Έως 400 αγγελίες", "Περιλαμβάνεται βίντεο"] },
premium: { title: "Premium Επιλογή", price: "+25 €/μήνα", details: ["Κορυφαία θέση", "Πλευρικό banner", "Βελτιωμένο SEO", "Mailing", "2 χρόνια δωρεάν ιστότοπος (από 2027)"] }
},
durations: ["Επιλογή διάρκειας", "Μηνιαίο", "6 μήνες", "12 μήνες"],
buttons: "Επιλογή προγράμματος",
premiumLabel: "Προσθήκη Premium",
premiumInfo: "Διαθέσιμο για συμβόλαια από 6 μήνες και άνω.",
alwaysTitle: "Πάντα περιλαμβάνονται:",
alwaysList: ["Μετάφραση αγγελιών", "Καθημερινή εισαγωγή", "Ανακατεύθυνση ιστότοπου", "Πληροφορίες ακινήτων"],
form: {
title: "Ολοκλήρωση κράτησης",
labels: {
company: "Εταιρεία", salutation: "Προσφώνηση", firstname: "Όνομα", lastname: "Επώνυμο",
salutationFrau: "Κα", salutationHerr: "Κος", salutationDivers: "Διάφορα",
street: "Οδός", zip: "ΤΚ", city: "Πόλη", phone: "Τηλέφωνο", email: "Email", web: "Ιστότοπος", country: "Χώρα"
},
submit: "Ολοκλήρωση κράτησης",
note: "Θα σταλεί email με το αίτημά σας στην ομάδα μας."
},
order: {
title: "Ολοκλήρωση κράτησης",
company: "Εταιρεία", salutation: "Προσφώνηση", firstname: "Όνομα", lastname: "Επώνυμο",
salutationFrau: "Κα", salutationHerr: "Κος", salutationDivers: "Διάφορα",
street: "Οδός", zip: "ΤΚ", city: "Πόλη", phone: "Τηλέφωνο", email: "Email", web: "Ιστότοπος", country: "Χώρα",
submit: "Ολοκλήρωση κράτησης",
note: "Θα σταλεί email με το αίτημά σας στην ομάδα μας.",
taxes: "Όλες οι τιμές είναι συν ΦΠΑ."
},
summaryWith: "Επέλεξες: {plan}{premium}{duration}",
dankeHeadline: "Ευχαριστούμε για την κράτησή σας!",
dankeText: "Έχουμε λάβει το αίτημά σας και θα επικοινωνήσουμε μαζί σας σύντομα."
},
pt: {
stepAuswahl: {
title: "<span class='text-highlight'>Convidamo-lo</span> a conhecer uma das <span class='text-highlight'>3 melhores bolsas imobiliárias da Alemanha</span>",
text: "Aproveite a oportunidade de ganhar novos clientes.",
avatar: "/images_portal/video/Portaltest-1A-Immo-pt.mp4",
frage: "",
continue: "mais informações sobre o teste do portal"
},
headline: "Escolhe o plano ideal para ti.",
sub: "Obtém os melhores resultados com o plano Platina.",
benefitTitle: "Porque vale a pena a parceria?",
benefits: [
"Independência: Menos dependência de portais que ditam preços.",
"Planeamento: Condições fixas, prazos claros, sem surpresas.",
"Parceria: Construir alcance juntos em vez de comprar anúncios individuais."
],
plans: {
mini: { title: "Plano Mini", price: "50 €/mês<br><small>12 meses: 40 €/mês</small>", details: ["Até 100 anúncios", "Fotos ilimitadas"] },
maxi: { title: "Plano Maxi", price: "100 €/mês<br><small>6 meses: 85 €/mês<br>12 meses: 70 €/mês</small>", details: ["Até 400 anúncios", "Vídeo incluído"] },
premium: { title: "Opção Premium", price: "+25 €/mês", details: ["Destaque principal", "Banner lateral", "SEO melhorado", "Mailing incluído", "2 anos de site gratuito (desde 2027)"] }
},
durations: ["Selecionar duração", "Mensal", "6 meses", "12 meses"],
buttons: "Escolher plano",
premiumLabel: "Adicionar opção Premium",
premiumInfo: "Disponível para contratos de 6 meses ou mais.",
alwaysTitle: "Sempre incluído:",
alwaysList: ["Tradução de anúncios", "Importação diária", "Redirecionamento do site", "Informações imobiliárias"],
form: {
title: "Finaliza a tua reserva",
labels: {
company: "Empresa", salutation: "Tratamento", firstname: "Nome", lastname: "Apelido",
salutationFrau: "Senhora", salutationHerr: "Senhor", salutationDivers: "",
street: "Rua", zip: "Cód. Postal", city: "Cidade", phone: "Telefone", email: "Email", web: "Website", country: "País"
},
submit: "Concluir reserva",
note: "Será enviado um email com o teu pedido para a nossa equipa."
},
order: {
title: "Finaliza a tua reserva",
company: "Empresa", salutation: "Tratamento", firstname: "Nome", lastname: "Apelido",
salutationFrau: "Senhora", salutationHerr: "Senhor", salutationDivers: "",
street: "Rua", zip: "Cód. Postal", city: "Cidade", phone: "Telefone", email: "Email", web: "Website", country: "País",
submit: "Concluir reserva",
note: "Será enviado um email com o teu pedido para a nossa equipa.",
taxes: "Todos os preços são mais IVA."
},
summaryWith: "Selecionaste: {plan}{premium}{duration}",
dankeHeadline: "Obrigado pela tua reserva!",
dankeText: "Recebemos o teu pedido e entraremos em contacto contigo em breve."
},
de: {
stepAuswahl: {
title: "<cfoutput>#deutsch_h1#</cfoutput>",
text: "Nutzen Sie mit dem Portaltest die Gelegenheit neue Kunden zu gewinnen.",
frage: "In welchem Bereich sind Sie tätig?",
avatar: "/images_portal/video/Portaltest-1A-Immo-de.mp4",
continue: "mehr Informationen zum Portaltest"
},
regioForm: {
title: "Bitte wählen Sie Ihre Branche",
regionQuestion: "Für welche Region dürfen wir Ihnen Kunden vermitteln?",
branchSelect: "Branche wählen",
branchMakler: "Immobilienanbieter",
branchFinanzierer: "Immobilienfinanzierer",
branchVersicherung: "Versicherung",
branchUmzug: "Umzugsunternehmen",
branchAllgemein: "Allgemein - Interesse an Werbeschaltung",
zip: "PLZ",
city: "Ort",
companyQuestion: "An welche Firma dürfen wir Kunden empfehlen",
company: "Firma",
salutation: "Anrede",
salutationFrau: "Frau",
salutationHerr: "Herr",
firstname: "Vorname",
lastname: "Ansprechpartner",
phone: "Telefon",
email: "E-Mail",
web: "Webadresse",
submit: "Preise und Pakete anzeigen"
},
headline: "Wähle den idealen Plan für dich.",
sub: "Erziele die besten Ergebnisse mit dem Platin-Plan.",
benefitTitle: "Warum lohnt sich die Partnerschaft?",
benefits: [
"Unabhängigkeit: Weniger Abhängigkeit von Portalen, die Preise diktieren.",
"Planung: Feste Konditionen, klare Laufzeiten, keine Überraschungen.",
"Partnerschaft: Reichweite gemeinsam aufbauen statt nur Einzelanzeigen kaufen.",
"Zusätzliche Präsenz auf zusätzlichen Portalen: Immobilien-im-Umkreis.de, Wohnungssuche-Regional.de, 1A-Anzeigenmarkt.de, 1a-Onlinemarkt.de"
],
benefitsMakler: [
"Unabhängigkeit: Weniger Abhängigkeit von Portalen, die Preise diktieren.",
"Planung: Feste Konditionen, klare Laufzeiten, keine Überraschungen.",
"Partnerschaft: Reichweite gemeinsam aufbauen statt nur Einzelanzeigen kaufen.",
"Zusätzliche Präsenz auf zusätzlichen Portalen: Immobilien-im-Umkreis.de, Wohnungssuche-Regional.de, 1A-Anzeigenmarkt.de, 1a-Onlinemarkt.de, Immosuchmaschine.de, Neuvoo, Trovit, Mitula"
],
basePlans: {
makler:{
mini: { title: "Mini-Paket", price: "99 €/Monat<br><small>12 Monate: 79 €/Monat</small>", details: ["Bis zu 50 Immobilieninserate", "Unbegrenzte Fotos"], backlink:"100% kostenlos für 12 Monate bei Vernetzung (Link von Ihrer Homepage zu unserem Regionalmarkt www.Immobilien-im-Umkreis.de)" },
maxi: { title: "Maxi-Paket", price: "399 €/Monat<br><small>6 Monate: 299 €/Monat<br>12 Monate: 249 €/Monat</small>", details: ["Unbegrenzte Inserate", "Video inklusive", "unbegrenzte Empfehlung an Eigentümer", "Brancheneintrag", "Anbieter/Makler-Profil"] },
maxplus: { title: "Max<sup>+</sup> Paket", price: "499 €/Monat", details: ["Alle Maxi-Vorteile","bis 5 Standorte wählbar","Mit Vermittlung von Eigentümerkontakten mit Verkaufswunsch", "<small>*Nach Verfügbarkeit, 2 Eigentümerkontakte inklusive</small>"] },
lifetime: { title: "Lifetime-Tarif", price: "Einmalzahlung 9.999 €<br><small>25 Jahre Nutzung – steuerliche Vorteile möglich</small>", details: ["Lebenslange Nutzung", "Alle Maxi-Vorteile", "Premium inklusive"] },
premium: { title: "Premium-Option", price: "+55 €/Monat<br><small>Buchbar ab 6 Monaten oder Lifetime</small>", details: ["Top-Platzierung", "Banner-Werbeschaltungen lokal im Portalumfeld", "SEO-Boost", "2 Jahre kostenlose HomeforNext.com (ab Mitte 2026)"] }
},
finanzierer: {
mini: { title: "Mini-Paket", price: "99 €/Monat<br><small>12 Monate: 79 €/Monat</small>", details: ["Brancheneintrag als lokaler Berater","Finanzierer-Profil"], backlink:"100% kostenlos für 12 Monate bei Vernetzung (Link von Ihrer Homepage zu unserem Regionalmarkt www.Immobilien-im-Umkreis.de)" },
maxi: { title: "Maxi-Paket", price: "399 €/Monat<br><small>6 Monate: 299 €/Monat<br>12 Monate: 249 €/Monat</small>", details: ["unbegrenzte Empfehlung an Interessenten", "Platzierung am POI ", "Platzierung in Druckansicht "] },
maxplus: { title: "Maxi<sup>+</sup> Paket", price: "499 €/Monat", details: ["Alle Maxi-Vorteile","bis 5 Standorte wählbar","Mit Vermittlung von Kontakten zu Finanzierungsinteressenten", "<small>*Nach Verfügbarkeit, 2 Kontakte inklusive</small>"] },
lifetime: { title: "Lifetime-Tarif", price: "Einmalzahlung 9.999 €<br><small>25 Jahre Nutzung – steuerliche Vorteile möglich</small>", details: ["Lebenslange Nutzung", "Alle Maxi-Vorteile", "Premium inklusive"] },
premium: { title: "Premium-Option", price: "+55 €/Monat<br><small>Buchbar ab 6 Monaten oder Lifetime</small>", details: ["Top-Platzierung", "Banner-Werbeschaltungen lokal im Portalumfeld", "SEO-Boost"] }
},
allgemein:{
mini: { title: "Mini-Paket", price: "99 €/Monat<br><small>12 Monate: 79 €/Monat</small>", details: ["Brancheneintrag als lokales Anbieter","Anbieter-Profil"], backlink:"100% kostenlos für 12 Monate bei Vernetzung (Link von Ihrer Homepage zu unserem Regionalmarkt www.Immobilien-im-Umkreis.de)" },
maxi: { title: "Maxi-Paket", price: "399 €/Monat<br><small>6 Monate: 299 €/Monat<br>12 Monate: 249 €/Monat</small>", details: ["Empfehlung an Interessenten", "Kontaktpräsenz bei lokalen Immobilienangeboten", "Platzierung in Druckansicht "] },
maxplus: { title: "Maxi<sup>+</sup> Paket", price: "499 €/Monat", details: ["Alle Maxi-Vorteile","bis 5 Standorte wählbar","Top-Platzierung", "Banner-Werbeschaltungen lokal im Portalumfeld", "SEO-Boost"] },
lifetime: { title: "Lifetime-Tarif", price: "Einmalzahlung 9.999 €<br><small>25 Jahre Nutzung – steuerliche Vorteile möglich</small>", details: ["Lebenslange Nutzung", "Alle Maxi-Vorteile", "Premium inklusive"] },
premium: { title: "Premium-Option", price: "+55 €/Monat<br><small>Buchbar ab 6 Monaten oder Lifetime</small>", details: ["Top-Platzierung", "Banner-Werbeschaltungen lokal im Portalumfeld", "SEO-Boost"] }
},
allgemein:{
mini: { title: "Mini-Paket", price: "59 €/Monat<br><small>12 Monate: 39 €/Monat</small>", details: ["Brancheneintrag als lokales Anbieter","Anbieter-Profil"], backlink:"100% kostenlos für 12 Monate bei Vernetzung (Link von Ihrer Homepage zu unserem Regionalmarkt www.Immobilien-im-Umkreis.de)" },
maxi: { title: "Maxi-Paket", price: "99 €/Monat<br><small>6 Monate: 89 €/Monat<br>12 Monate: 79 €/Monat</small>", details: ["Alle Mini-Vorteile","bis 3 Standorte wählbar","Top-Platzierung", "SEO-Boost ab 6 Monate"] },
premium: { title: "Premium-Option", price: "+55 €/Monat<br><small>Buchbar ab 6 Monaten</small>", details: ["Top-Platzierung", "Banner-Werbeschaltungen lokal im Portalumfeld", "SEO-Boost"] }
},
default: {
mini: { title: "Mini-Paket", price: "99 €/Monat<br><small>12 Monate: 79 €/Monat</small>", details: ["Brancheneintrag als lokales Anbieter","Anbieter-Profil"], backlink:"100% kostenlos für 12 Monate bei Vernetzung (Link von Ihrer Homepage zu unserem Regionalmarkt www.Immobilien-im-Umkreis.de)" },
maxi: { title: "Maxi-Paket", price: "399 €/Monat<br><small>6 Monate: 299 €/Monat<br>12 Monate: 249 €/Monat</small>", details: ["Empfehlung an Interessenten", "Kontaktpräsenz bei lokalen Immobilienangeboten", "Platzierung in Druckansicht "] },
maxplus: { title: "Maxi<sup>+</sup> Paket", price: "499 €/Monat", details: ["Alle Maxi-Vorteile","bis 5 Standorte wählbar","Top-Platzierung", "Banner-Werbeschaltungen lokal im Portalumfeld", "SEO-Boost"] },
lifetime: { title: "Lifetime-Tarif", price: "Einmalzahlung 9.999 €<br><small>25 Jahre Nutzung – steuerliche Vorteile möglich</small>", details: ["Lebenslange Nutzung", "Alle Maxi-Vorteile", "Premium inklusive"] },
premium: { title: "Premium-Option", price: "+55 €/Monat<br><small>Buchbar ab 6 Monaten oder Lifetime</small>", details: ["Top-Platzierung", "Banner-Werbeschaltungen lokal im Portalumfeld", "SEO-Boost"] }
},
},
durations: ["Laufzeit wählen", "Monatlich kündbar", "6 Monate", "12 Monate"],
buttons: "Plan wählen",
premiumLabel: "Premium-Option aktivieren",
premiumInfo: "Buchbar ab 6 Monaten oder Lifetime.",
alwaysTitle: "",
alwaysList: [],
form: {
title: "Schließe deine Buchung ab",
labels: {
company: "Firma", salutation: "Anrede", firstname: "Vorname", lastname: "Nachname",
salutationFrau: "Frau", salutationHerr: "Herr", salutationDivers: "Divers",
street: "Straße", zip: "PLZ", city: "Ort", phone: "Telefon", email: "E-Mail", web: "Webadresse", country: "Land"
},
submit: "verbindlich Buchen",
note: "Es wird eine E-Mail mit deiner Anfrage an unser Team gesendet."
},
order: {
title: "Schließe deine Buchung ab",
company: "Firma", salutation: "Anrede", firstname: "Vorname", lastname: "Nachname",
salutationFrau: "Frau", salutationHerr: "Herr", salutationDivers: "Divers",
street: "Straße", zip: "PLZ", city: "Ort", phone: "Telefon", email: "E-Mail", web: "Webadresse", country: "Land",
submit: "Buchung abschließen",
note: "Es wird eine E-Mail mit deiner Anfrage an unser Team gesendet.",
taxes: "Alle Preise sind zzgl. MwSt."
},
summaryWith: "Du hast gewählt: {plan}{premium}{duration}{backLinkText}",
dankeHeadline: "Danke für deine Buchung!",
dankeText: "Wir haben deine Anfrage erhalten und werden uns in Kürze bei dir melden."
}
};
/* Branchenspezifische Zusatz-Details (DE) */
var ExtraBenefits = "[]";
/* Elemente */
const translateElements = document.querySelectorAll('[data-i18n]');
const regioFormContainer = document.getElementById('regioFormContainer');
const regioForm = document.getElementById('regioForm');
const orderForm = document.getElementById('orderForm');
const langSel = document.getElementById('langSelector');
const branchSel = document.getElementById('branchSelector');
const alwaysWrap = document.getElementById('alwaysWrap');
const chosenPremiumInput = document.getElementById('chosenPremium');
const chosenDurationInput = document.getElementById('chosenDuration');
const chosenPlanInput = document.getElementById('chosenPlan');
const chosenLangInput = document.getElementById('chosenLang');
const chosenBacklinkInput = document.getElementById('chosenBacklink');
var ac_autoc = {};
/* Country default per Sprache */
const defaultCountry = { de: "Germany", es: "Spain", en: "Germany", it: "Italy", fr: "France", el: "Greece", pt: "Portugal" };
/* Render-Funktion */
function render(lang, branch) {
const t = i18n[lang] || i18n.de;
translateElements.forEach(el => {
const key = el.getAttribute('data-i18n') || "";
if (!key) return;
let value;
// use subkey only when key contains a dot
if (key.includes('.')) {
console.log("1",key);
const [section, subkey] = key.split('.');
if (t && t[section] && Object.prototype.hasOwnProperty.call(t[section], subkey)) {
console.log("3",key);
value = t[section][subkey];
}
} else {
console.log("2",key);
// top-level key
if (t && Object.prototype.hasOwnProperty.call(t, key)) {
value = t[key];
}
}
el.innerHTML = (value === undefined || value === null) ? "" : value;
});
// Kopftexte
//stepAuswahl
// Immer enthalten (nur NICHT-DE sichtbar)
document.getElementById('benefitTitle').textContent = t.benefitTitle;
if (lang === 'de' && branch === 'makler') {
document.getElementById('benefitList').innerHTML = t.benefitsMakler.map(b => `<li>${b}</li>`).join("");
} else {
document.getElementById('benefitList').innerHTML = t.benefits.map(b => `<li>${b}</li>`).join("");
}
if (lang === 'de') { alwaysWrap.style.display = 'none'; }
else {
alwaysWrap.style.display = "";
const awHeader = alwaysWrap.querySelector('h3');
if (awHeader) awHeader.textContent = t.alwaysTitle;
const awList = alwaysWrap.querySelector('ul');
if (awList) awList.innerHTML = (t.alwaysList || []).map(a => `<li>${a}</li>`).join("");
}
// Karten generieren
pricing.innerHTML = "";
let planDefs, planKeys = ['mini', 'maxi'];
if (lang === 'de') {
planDefs = JSON.parse(JSON.stringify(t.basePlans)); // deep-ish clone
console.log(planDefs[branch]?'1':'0','test',branch);
if(planDefs[branch]) {
planDefs = planDefs[branch];
console.log("branch");
} else if(planDefs['default']) {
planDefs = planDefs['default'];
console.log("default");
}
if (branch === 'makler' || branch === 'finanzierer') { planKeys.push('maxplus'); }
planKeys.push('lifetime');
} else {
planDefs = t.plans;
}
function cardHTML(key, def, withDuration = true) {
return `
<div class="card ${key}"><h2>${def.title}</h2><div class="card-content"><p class="price">${def.price}</p><ul class="details">${def.details.map(d => `<li>${d}</li>`).join("")}</ul>
${"backlink" in def ? `<p><input id="backlink-${key}" type="checkbox" name="backlink"><label class="backlink" for="backlink-${key}"> ${def.backlink}</label></p>` : ``}
${withDuration ? `
<select class="plan-duration" data-plan="${def.title}"><option value="">${t.durations[0]}</option><option value="1">${t.durations[1]}</option><option value="6">${t.durations[2]}</option><option value="12">${t.durations[3]}</option></select>` : ``}
<button class="btn choose-btn" data-plan="${def.title}">${t.buttons}</button></div></div>`;
}
// Mini / Maxi
planKeys.forEach(k => {
if (k === 'maxplus' && (!planDefs.maxplus)) return;
if (k === 'lifetime') {
pricing.insertAdjacentHTML('beforeend', cardHTML(k, planDefs[k], false));
} else {
pricing.insertAdjacentHTML('beforeend', cardHTML(k, planDefs[k], true));
}
});
// Premium-Box (immer sichtbar)
const premiumDef = (lang === 'de') ? planDefs.premium : planDefs.premium || t.plans.premium;
const premiumHTML = `
<div class="premium-option"><h2>${premiumDef.title}</h2><p>${premiumDef.price}</p><ul class="details">${premiumDef.details.map(d => `<li>${d}</li>`).join("")}</ul><label><input type="checkbox" id="premiumCheckbox" disabled><span id="premiumLabel">${t.premiumLabel}</span></label><p class="premium-info" id="premiumInfo">${t.premiumInfo}</p></div>`;
pricing.insertAdjacentHTML('beforeend', premiumHTML);
// Formular-Übersetzungen (NICHT-DE sichtbar)
/*if (lang !== 'de') {
document.getElementById('booking').style.display = 'none';
formTitle.textContent = t.form.title;
submitBtn.textContent = t.form.submit;
formNote.textContent = t.form.note;
const L = t.form.labels;
document.getElementById('lbl-company').textContent = L.company;
document.getElementById('lbl-salutation').textContent = L.salutation;
document.getElementById('lbl-firstname').textContent = L.firstname;
document.getElementById('lbl-lastname').textContent = L.lastname;
document.getElementById('lbl-street').textContent = L.street;
document.getElementById('lbl-zip').textContent = L.zip;
document.getElementById('lbl-city').textContent = L.city;
document.getElementById('lbl-phone').textContent = L.phone;
document.getElementById('lbl-email').textContent = L.email;
document.getElementById('lbl-web').textContent = L.web;
document.getElementById('lbl-country').textContent = L.country;
document.getElementById('salutationFrau').textContent = L.salutationFrau;
document.getElementById('salutationHerr').textContent = L.salutationHerr;
// Country default
document.getElementById('country').value = defaultCountry[lang] || "Germany";
}*/
// Interaktionen
const durationSelects = Array.from(document.querySelectorAll('.plan-duration'));
const premiumCheckbox = document.getElementById('premiumCheckbox');
function refreshPremiumState() {
const enable = durationSelects.some(s => s.value === '6' || s.value === '12');
premiumCheckbox.disabled = !enable;
if (!enable) premiumCheckbox.checked = false;
}
durationSelects.forEach(sel => sel.addEventListener('change', refreshPremiumState));
orderFormContainer.querySelector("#chosenLang").value = lang;
refreshPremiumState();
Array.from(orderFormContainer.querySelectorAll('input[name="backlink"]')).forEach(input => {
input.addEventListener('change', () => {
// if checked only allow 12 konths in the duration select
const planDurationSelect = input.closest(".card").querySelector('.plan-duration');
if (input.checked) {
planDurationSelect.value = "12";
planDurationSelect.disabled = true;
} else {
planDurationSelect.disabled = false;
}
});
})
// Buttons: Paket wählen
Array.from(orderFormContainer.querySelectorAll('.choose-btn')).forEach(btn => {
console.log(btn);
btn.addEventListener('click', () => {
console.log("1",btn);
const planName = btn.dataset.plan;
const planDurationSelect = btn.parentElement.querySelector('.plan-duration');
const premiumText = (premiumCheckbox.checked ? " + Premium" : "");
const selectedSummary = document.getElementById('selectedSummary');
const backLinkCheckbox = btn.parentElement.querySelector('input[type="checkbox"][name="backlink"]');
// Formularfelder setzen
chosenPremiumInput.value = premiumCheckbox.checked ? "Ja" : "Nein";
if(planDurationSelect) {
chosenDurationInput.value = planDurationSelect.value ;
}
else {
chosenDurationInput.value = "";
}
// if duration not selected and not lifetime => make select red and animate
if (!chosenDurationInput.value && !planName.includes('Lifetime')) {
chosenDurationInput.classList.add('error');
console.log("2",chosenDurationInput.value,chosenDurationInput);
}
else {
chosenDurationInput.classList.remove('error');
if (lang === 'd--xxx--e') {
// Lifetime klick => Premium auto aktiv
if (planName.includes('Lifetime')) { premiumCheckbox.checked = true; }
// In DE kein Formular
alert(`Ausgewählt: ${planName}${premiumCheckbox.checked ? " + Premium" : ""}`);
} else {
// Formular anzeigen + Sprungmarke
var durationText = "";
if(planDurationSelect) {
durationText = " + " + planDurationSelect.options[planDurationSelect.selectedIndex].text || "";
}
var backlinkText = "";
if(backLinkCheckbox && backLinkCheckbox.checked) {
chosenBacklinkInput.value = "Ja";
backlinkText = " + 12 Monate kostenlos mit Vernetzung";
document.getElementById('chosenBacklinkChecker').style.display = "flex";
document.getElementById('chosenBacklinkCheckbox').required = true;
} else {
document.getElementById('chosenBacklinkChecker').style.display = "none";
document.getElementById('chosenBacklinkCheckbox').required = false;
chosenBacklinkInput.value = "Nein";
}
console.log(durationText);
const summary = (i18n[lang].summaryWith || "Selected: {plan}{premium}{duration}{backLinkText}")
.replace("{plan}", planName)
.replace("{premium}", premiumCheckbox.checked ? " + Premium" : "")
.replace("{duration}", durationText)
.replace("{backLinkText}", backlinkText);
selectedSummary.textContent = summary;
chosenPlanInput.value = `${planName}${premiumText}`;
booking.style.display = 'block';
document.getElementById('booking-anchor').scrollIntoView({ behavior: 'smooth', block: 'start' });
}
}
});
});
if(lang == "de"){
$("#orderForm").find("input[data-autocomplete]").each(function(){
var inp = this;
if($(inp).attr("autocomplete") == "off") $(inp).attr("autocomplete",$(inp).data("autocomplete"));
if( $(inp).attr("data-autocomplete") != "postal-code"
&& $(inp).attr("data-autocomplete") != "address-level2"
&& $(inp).attr("data-autocomplete") != "street-address"
) { return true;}
if(typeof window.streetAutoCompl == "undefined") window.streetAutoCompl = {};
var tmpid = "";
if(typeof $(inp).attr('id') == "undefined") tmpid = "AutoGenId_"+Object.keys(window.streetAutoCompl).length;
else if( Object.keys(window.streetAutoCompl).includes($(inp).attr('id')) ) tmpid = $(inp).attr('id')+""+Object.keys(window.streetAutoCompl).length;
else tmpid = $(inp).attr('id');
$(inp).attr("id",tmpid);
ac_autoc[tmpid] = new Autocomplete(tmpid, 3);
ac_autoc[tmpid].ac_url = "/globalajax/autocomplete_geo.cfm";
//ac_autoc[tmpid].ac_ort = document.getElementById('contact_adress_ort');
console.log(inp);
if($(inp).attr("data-autocomplete") == "postal-code") {
ac_autoc[tmpid].ac_extra = "&accuracy=6&id_land=3";
ac_autoc[tmpid].setOnBeforeEvent(function(m){
if((m = /(\d{5})([\s\S]+)/.exec(m)) !== null){
console.log(m);
if ($(inp).closest('#orderForm').find("input[data-autocomplete=address-level2]").length > 0
//&& $(inp).closest('#orderForm').find("input[data-autocomplete=address-level2]").val() == ""
&& m.length == 3
&& typeof m[2] !== "undefined") {
$(inp).closest('#orderForm').find("input[data-autocomplete=address-level2]").val(m[2]);
$(inp).closest('#orderForm').find("input[data-autocomplete=address-level2]").removeAttr('disabled');
$(inp).closest('#orderForm').find("input[data-autocomplete=street-address]").removeAttr('disabled');
$(inp).closest('#orderForm').find("input[data-autocomplete=housenumber]").removeAttr('disabled');
}
return m[1].trim();
}
});
}
else if($(inp).attr("data-autocomplete") == "address-level2") {
ac_autoc[tmpid].ac_extra = "&accuracy=4&id_land=3";
}
else if($(inp).attr("data-autocomplete") == "street-address") {
ac_autoc[tmpid].ac_ort_plz = document.getElementById('contact_adress_plz');
ac_autoc[tmpid].ac_extra = "&accuracy=7,8&id_land=3";
ac_autoc[tmpid].setOnBeforeEvent(function(v,s){
/*
if((m = /(.+?)((?<!^)(?<=\s)\d+.*)?$/.exec(v)) !== null){
//console.log(m);
//console.log($(inp).closest('#premium_partner'));
//console.log($(inp).closest('#premium_partner').find("input[data-autocomplete=housenumber]"));
if ($(inp).closest('#premium_partner').find("input[data-autocomplete=housenumber]").length > 0
&& m.length == 3
&& typeof m[2] !== "undefined") $(inp).closest('#premium_partner').find("input[data-autocomplete=housenumber]").val(m[2]);
v = m[1].trim();
}
*/
if(typeof s !== "undefined"){
if(typeof s.plz !== "undefined"
&& $(inp).closest('#orderForm').find("input[data-autocomplete=postal-code]").length > 0){
$(inp).closest('#orderForm').find("input[data-autocomplete=postal-code]").val(s.plz);
}
}
return v;
});
}
});
}
}
<cfif isDefined("form.pwpartnerWerdenForm") AND form.pwpartnerWerdenForm EQ "partnerWerdenForm"><cfelse>
/* Events */
langSel.addEventListener('change', () => {
const lang = langSel.value;
// Branche nur DE sichtbar
branchSel.style.display = (lang === 'de') ? 'inline-block' : 'none';
var branch = branchSel.value;
if(branch === "") branch = "makler";
render(lang, branch);
});
branchSel.addEventListener('change', () => render(langSel.value, branchSel.value));
regioForm.addEventListener('submit', (e) => {
// send form data to /ajax/partner_werden_ajax.cfm
const formData = new FormData(document.getElementById('regioForm'));
fetch('/ajax/partner_werden_ajax.cfm', {
method: 'POST',
body: formData
}).then(response => response.json()).then(data => {
// edit last entry in de benefit to include data.DOMAIN
if(branchSel.value === 'makler') {
i18n.de.benefitsMakler[3] = `Zusätzliche Präsenz auf zusätzlichen Portalen: ${data.DOMAIN ? data.DOMAIN + ' ' : ' '}Immobilien-im-Umkreis.de, Wohnungssuche-Regional.de, 1A-Anzeigenmarkt.de, 1a-Onlinemarkt.de, Immosuchmaschine.de, Neuvoo, Trovit, Mitula`;
i18n.de.basePlans.makler.mini.backlink = `100% kostenlos für 12 Monate bei Vernetzung (Link von Ihrer Homepage zu unserem Regionalmarkt ${data.DOMAIN.split(",")[0]})`;
}
else{
i18n.de.benefits[3] = `Zusätzliche Präsenz auf zusätzlichen Portalen: ${data.DOMAIN ? data.DOMAIN + ' ' : ' '}Immobilien-im-Umkreis.de, Wohnungssuche-Regional.de, 1A-Anzeigenmarkt.de, 1a-Onlinemarkt.de`;
i18n.de.basePlans.finanzierer.mini.backlink = `100% kostenlos für 12 Monate bei Vernetzung (Link von Ihrer Homepage zu unserem Regionalmarkt ${data.DOMAIN.split(",")[0]})`;
i18n.de.basePlans.allgemein.mini.backlink = `100% kostenlos für 12 Monate bei Vernetzung (Link von Ihrer Homepage zu unserem Regionalmarkt ${data.DOMAIN.split(",")[0]})`;
i18n.de.basePlans.default.mini.backlink = `100% kostenlos für 12 Monate bei Vernetzung (Link von Ihrer Homepage zu unserem Regionalmarkt ${data.DOMAIN.split(",")[0]})`;
}
console.log(i18n.de);
// Weiter zum Preisteil
regioFormContainer.style.display = 'none';
document.getElementById('ersterTeil').style.display = 'none';
document.getElementById('orderFormContainer').style.display = ' '.trim();
var branch = branchSel.value;
if(branch === "") branch = "makler";
render(langSel.value, branch);
}).catch(error => {
console.error('Error:', error);
alert('Es gab einen Fehler bei der Übermittlung des Formulars. Bitte versuchen Sie es erneut.');
});
});
stepAuswahlContinueButton.addEventListener('click', function(){
if(langSel.value === 'de'){
//launchLayer
regioFormContainer.style.display = 'flex';
}
else{
document.getElementById('ersterTeil').style.display = 'none';
document.getElementById('orderFormContainer').style.display = ' '.trim();
}
});
</cfif><cfif isDefined("url.lang") and url.lang NEQ "">
const initialLang = '<cfoutput>#url.lang#</cfoutput>';
<cfelseif isDefined("lang") and lang NEQ "">
const initialLang = '<cfoutput>#lang#</cfoutput>';
<cfelseif isDefined("pwlang") and pwlang NEQ "">
const initialLang = '<cfoutput>#pwlang#</cfoutput>';
<cfelse>
const initialLang = 'de';
</cfif>
render(initialLang, 'makler');
$("#regioFormContainer").find("input[data-autocomplete]").each(function(){
var inp = this;
if($(inp).attr("autocomplete") == "off") $(inp).attr("autocomplete",$(inp).data("autocomplete"));
if( $(inp).attr("data-autocomplete") != "postal-code"
&& $(inp).attr("data-autocomplete") != "address-level2"
&& $(inp).attr("data-autocomplete") != "street-address"
) { return true;}
if(typeof window.streetAutoCompl == "undefined") window.streetAutoCompl = {};
var tmpid = "";
if(typeof $(inp).attr('id') == "undefined") tmpid = "AutoGenId_"+Object.keys(window.streetAutoCompl).length;
else if( Object.keys(window.streetAutoCompl).includes($(inp).attr('id')) ) tmpid = $(inp).attr('id')+""+Object.keys(window.streetAutoCompl).length;
else tmpid = $(inp).attr('id');
$(inp).attr("id",tmpid);
ac_autoc[tmpid] = new Autocomplete(tmpid, 3);
ac_autoc[tmpid].ac_url = "/globalajax/autocomplete_geo.cfm";
//ac_autoc[tmpid].ac_ort = document.getElementById('contact_adress_ort');
console.log(inp);
if($(inp).attr("data-autocomplete") == "postal-code") {
ac_autoc[tmpid].ac_extra = "&accuracy=6&id_land=3";
ac_autoc[tmpid].setOnBeforeEvent(function(m){
if((m = /(\d{5})([\s\S]+)/.exec(m)) !== null){
console.log(m);
if ($(inp).closest('#regioFormContainer').find("input[data-autocomplete=address-level2]").length > 0
//&& $(inp).closest('#regioFormContainer').find("input[data-autocomplete=address-level2]").val() == ""
&& m.length == 3
&& typeof m[2] !== "undefined") {
$(inp).closest('#regioFormContainer').find("input[data-autocomplete=address-level2]").val(m[2]);
$(inp).closest('#regioFormContainer').find("input[data-autocomplete=address-level2]").removeAttr('disabled');
$(inp).closest('#regioFormContainer').find("input[data-autocomplete=street-address]").removeAttr('disabled');
$(inp).closest('#regioFormContainer').find("input[data-autocomplete=housenumber]").removeAttr('disabled');
}
return m[1].trim();
}
});
}
else if($(inp).attr("data-autocomplete") == "address-level2") {
ac_autoc[tmpid].ac_extra = "&accuracy=4&id_land=3";
}
else if($(inp).attr("data-autocomplete") == "street-address") {
ac_autoc[tmpid].ac_ort_plz = document.getElementById('contact_adress_plz');
ac_autoc[tmpid].ac_extra = "&accuracy=7,8&id_land=3";
ac_autoc[tmpid].setOnBeforeEvent(function(v,s){
/*
if((m = /(.+?)((?<!^)(?<=\s)\d+.*)?$/.exec(v)) !== null){
//console.log(m);
//console.log($(inp).closest('#premium_partner'));
//console.log($(inp).closest('#premium_partner').find("input[data-autocomplete=housenumber]"));
if ($(inp).closest('#premium_partner').find("input[data-autocomplete=housenumber]").length > 0
&& m.length == 3
&& typeof m[2] !== "undefined") $(inp).closest('#premium_partner').find("input[data-autocomplete=housenumber]").val(m[2]);
v = m[1].trim();
}
*/
if(typeof s !== "undefined"){
if(typeof s.plz !== "undefined"
&& $(inp).closest('#regioFormContainer').find("input[data-autocomplete=postal-code]").length > 0){
$(inp).closest('#regioFormContainer').find("input[data-autocomplete=postal-code]").val(s.plz);
}
}
return v;
});
}
});
</script></div> |
|