, der Block liess sich also
// aufbrechen. Beides ist mit einer relativen Adresse gegenstandslos.
var ENDPOINT = location.pathname || "/";
var DS_URL = "https://ahritter.de/datenschutzerklaerung/";
var d = { hand:2, unfallfrei:true, scheckheft:'marke', getriebe:'', maengel:{} };
var schritt = 1, laeuft = false, fehler = '';
var MAENGEL = [
['kratzer','Kratzer oder Dellen'], ['raucher','Raucherfahrzeug'], ['tiere','Tierhaare'],
['reifen','Reifen bald fällig'], ['hu','HU bald fällig'], ['technik','Technischer Mangel'],
['fehlteil','Fehlteile (2. Schlüssel …)']
];
function esc(s){ return String(s==null?'':s).replace(/[&<>"']/g,function(c){
return {'&':'&','<':'<','>':'>','"':'"',"'":'''}[c]; }); }
function eur(n){ return Number(n).toLocaleString('de-DE') + ' €'; }
function g(id){ return document.getElementById(id); }
function wert(id){ var e=g(id); return e ? String(e.value||'').trim() : ''; }
function merken(){
if(schritt===1){
d.marke=wert('marke'); d.modell=wert('modell'); d.ps=wert('ps');
d.ezMonat=wert('ezMonat'); d.ezJahr=wert('ezJahr'); d.km=wert('km');
d.kraftstoff=wert('kraftstoff'); d.variante=wert('variante');
} else if(schritt===3){
d.name=wert('name'); d.telefon=wert('telefon'); d.email=wert('email');
d.plz=wert('plz'); d.hp=wert('hp');
var e=g('ds'); d.ds = !!(e && e.checked);
}
}
function pruefe(){
if(schritt===1){
if(!d.marke) return 'Bitte die Marke angeben.';
if(!d.modell) return 'Bitte das Modell angeben.';
var j=parseInt(d.ezJahr,10);
if(!(j>1980 && j<=new Date().getFullYear())) return 'Bitte das Jahr der Erstzulassung angeben.';
if(!(parseInt(String(d.km).replace(/\D/g,''),10)>0)) return 'Bitte den Kilometerstand angeben.';
}
if(schritt===3){
if(!d.name) return 'Bitte Ihren Namen angeben.';
if(!d.telefon && !d.email) return 'Bitte Telefon oder E-Mail angeben, damit wir uns melden können.';
if(d.email && d.email.indexOf('@')<0) return 'Die E-Mail-Adresse sieht nicht richtig aus.';
if(!d.ds) return 'Bitte der Datenschutzerklärung zustimmen.';
}
return '';
}
function setzeSchritt(n){ schritt=n; fehler=''; for(var i=1;i<=3;i++){ var e=g('s'+i); if(e) e.className='step'+(i<=n?' on':''); } zeichne(); }
window._w = {
weiter: function(){ merken(); var f=pruefe(); if(f){ fehler=f; zeichne(); return; } setzeSchritt(schritt+1); },
zurueck: function(){ merken(); setzeSchritt(schritt-1); },
setz: function(k,v){ merken(); d[k]=v; zeichne(); },
mangel: function(k){ merken(); d.maengel[k]=!d.maengel[k]; zeichne(); },
senden: function(){ merken(); var f=pruefe(); if(f){ fehler=f; zeichne(); return; } senden(); }
};
function senden(){
if(laeuft) return;
laeuft=true; fehler=''; zeichne();
var liste=[]; for(var k in d.maengel){ if(d.maengel[k]) liste.push(k); }
fetch(ENDPOINT,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({
marke:d.marke, modell:d.modell, variante:d.variante, ps:d.ps, getriebe:d.getriebe,
kraftstoff:d.kraftstoff, ezMonat:d.ezMonat, ezJahr:d.ezJahr, km:d.km,
hand:d.hand, unfallfrei:d.unfallfrei, scheckheft:d.scheckheft, maengel:liste,
name:d.name, telefon:d.telefon, email:d.email, plz:d.plz, hp:d.hp, ds:d.ds
})}).then(function(r){ return r.json().then(function(j){ return {ok:r.ok,j:j}; }); })
.then(function(res){
laeuft=false;
if(!res.ok || !res.j || res.j.ok!==true){ fehler=(res.j && res.j.fehler) || 'Das hat leider nicht geklappt. Bitte später erneut versuchen.'; zeichne(); return; }
d.ergebnis=res.j; schritt=4; zeichne();
})
.catch(function(){ laeuft=false; fehler='Keine Verbindung. Bitte prüfen Sie Ihr Netz und versuchen es erneut.'; zeichne(); });
}
function feld(id,lab,ph,typ,val){
return '
'+
'
';
}
function wahl(k,opt,akt){
return '
'+opt.map(function(o){
return '';
}).join('')+'
';
}
function zeichne(){
var h='';
if(fehler) h+='
'+esc(fehler)+'
';
if(laeuft){
g('karte').innerHTML='
'+
'
Wir vergleichen Ihr Fahrzeug gerade mit dem Markt …
';
return;
}
if(schritt===1){
h+='
'+feld('marke','Marke','z. B. Volkswagen','text',d.marke)+feld('modell','Modell','z. B. Golf','text',d.modell)+'
';
h+='
'+feld('variante','Ausstattungslinie (optional)','z. B. R-Line','text',d.variante)+feld('kraftstoff','Kraftstoff','Diesel oder Benzin','text',d.kraftstoff)+'
';
h+='
'+feld('ezMonat','Erstzulassung Monat','MM','text',d.ezMonat)+feld('ezJahr','Jahr','JJJJ','text',d.ezJahr)+feld('km','Kilometerstand','z. B. 80000','text',d.km)+'
';
h+='
'+feld('ps','Leistung in PS (optional)','z. B. 150','text',d.ps)+'
'+feld('plz','PLZ (optional)','z. B. 48249','text',d.plz)+'
';
h+='';
h+='
'+
'Ich bin einverstanden, dass meine Angaben zur Bearbeitung meiner Anfrage gespeichert und verarbeitet werden.'+
(DS_URL?' Datenschutzerklärung':'')+'
';
h+='';
}
else {
var e=d.ergebnis||{};
if(e.spanne && e.spanne.bis>0){
var a=e.aufschluesselung;
// Die grosse Zahl kommt aus derselben Quelle wie die Summenzeile unten.
var oben=(a&&a.angebot)?a.angebot:e.spanne;
h+='
Ihr Angebot
'+
'
'+eur(oben.von)+' – '+eur(oben.bis)+'
';
if(a){
h+='
';
h+='
Marktwert Ihres Fahrzeugs'+eur(a.marktwert.von)+' – '+eur(a.marktwert.bis)+'
';
h+='
So viel kosten vergleichbare Fahrzeuge derzeit bei Händlern.
';
h+='
Davon gehen ab
';
(a.posten||[]).forEach(function(z){
h+='
'+esc(z.text)+'− '+eur(z.betrag)+'
'; });
if((a.zustand||[]).length){
h+='
Wegen des Zustands
';
a.zustand.forEach(function(z){
h+='
'+esc(z.text)+'− '+eur(z.betrag)+'
'; });
}
h+='
Ihr Angebot'+eur(a.angebot.von)+' – '+eur(a.angebot.bis)+'
';
h+='
';
}
h+='
Die Einschätzung beruht auf aktuellen Marktpreisen vergleichbarer Fahrzeuge und gilt vorbehaltlich einer Besichtigung.
';
} else {
// Der Grund muss stimmen. "Zu wenige Vergleichsangebote" bei einem
// Fahrzeug, dessen Markt einwandfrei gefunden wurde, ist eine erfundene
// Begründung — und der Kunde merkt es, wenn er selbst nachsieht.
var txt = (e.grund==='kein_angebot')
? 'Für Ihr Fahrzeug lässt sich online keine belastbare Zahl nennen — dafür spielen zu viele Einzelheiten hinein. Ein Mitarbeiter schaut es sich persönlich an und meldet sich.'
: 'Zu Ihrem Fahrzeug haben wir gerade zu wenige Vergleichsangebote gefunden, um seriös eine Zahl zu nennen. Ein Mitarbeiter schaut es sich persönlich an und meldet sich.';
h+='
Vielen Dank!
'+
'
Wir melden uns bei Ihnen
'+
'
'+esc(txt)+'
';
}
h+='
Ihre Anfrage ist bei uns eingegangen — wir melden uns zeitnah.
';
}
g('karte').innerHTML=h;
// Höhe an die Gastgeber-Seite melden, damit das iframe mitwächst.
try{ if(window.parent!==window) window.parent.postMessage({typ:'ahr-ankauf-hoehe',hoehe:document.body.scrollHeight+24},'*'); }catch(_e){}
}
zeichne();
window.addEventListener('resize',function(){ try{ if(window.parent!==window) window.parent.postMessage({typ:'ahr-ankauf-hoehe',hoehe:document.body.scrollHeight+24},'*'); }catch(_e){} });
})();