Warning: fopen(/www/sites/update.greasyfork.icu/index/store/temp/71653897521dddc9bcb288a8128de796.js): failed to open stream: No space left on device in /www/sites/update.greasyfork.icu/index/scriptControl.php on line 65
// ==UserScript==
// @name mobile.de, autoscout24 Entfernungsrechner
// @description Berechnet Entfernung von Ihrem Wohnort bis zum angebotenen Fahrzeug. Funktioniert sowohl auf der Suchergebnis-Seite als auch auf der mit Details.
// @namespace softwarecanoe.de
// @include http://suchen.mobile.de/*
// @include http://*.autoscout24.*
// @version 1.3
// @copyright Eugen Kremer
// @grant GM_getValue
// @grant GM_setValue
// @grant GM_registerMenuCommand
// @grant GM_xmlhttpRequest
// @downloadURL https://update.greasyfork.icu/scripts/4474/mobilede%2C%20autoscout24%20Entfernungsrechner.user.js
// @updateURL https://update.greasyfork.icu/scripts/4474/mobilede%2C%20autoscout24%20Entfernungsrechner.meta.js
// ==/UserScript==
(function(){
function debug(msg){
console.log(msg);
}
function SetStart(){
if (typeof(GM_getValue)=="undefined")
return;
var start = GM_getValue("addr");
start = prompt("Geben Sie die Startadresse ein", start);
GM_setValue("addr", start);
}
function GetStart(){
var start = null;
if (typeof(GM_getValue)!="undefined")
start = GM_getValue("addr");
return start;
}
GM_registerMenuCommand("Mobile.de Settings", SetStart);
function OnLoadResponse(responseDetails) {
if (responseDetails.readyState !=4)
return;
var json = eval("("+responseDetails.responseText+")");
var distanz = json.routes[0].legs[0].distance;
var dauer = json.routes[0].legs[0].duration;
this.divEl.innerHTML = dauer.text+" - "+distanz.text;
}
function SendRequest(start, ziel, resultEl){
GM_xmlhttpRequest({
method: 'GET',
url: 'http://maps.google.de/maps/api/directions/json?language=de&mode=driving&origin='+start+'&destination='+ziel+'&sensor=false',
ziel:ziel,
divEl: resultEl,
headers: {
'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
},
onload: OnLoadResponse
});
}
function CreateAnchor(parent, start, ziel){
var aEl = document.createElement('a');
aEl.style.display = "block";
parent.appendChild(aEl);
if (start){
aEl.href = "http://maps.google.de/maps?f=d&source=s_d&saddr="+start+"&daddr="+ziel+"&hl=de&ie=UTF8";
aEl.target = "_blank";
SendRequest(start, ziel, aEl);
} else {
aEl.href = "javascript: void(null);";
aEl.addEventListener("click", function(){ SetStart(); document.location.href = document.location.href;}, false);
aEl.innerHTML = "Startpunkt setzen!";
}
}
function AddDistanceAndDuration(){// autoscout searchresult
var p = document.querySelectorAll(".listItem .truncc span:nth-child(1)");
if (!p || p.length==0)
return;
var handler = p[0];
var ziel = handler.textContent;
var start = GetStart();
CreateAnchor(handler, start, ziel);
}
function AddDistanceAndDuration5(){// autoscout details
var p = document.querySelectorAll(".contact-container div:nth-child(2)");
if (!p || p.length==0)
return;
var handler = p[0];
var ziel = handler.textContent;
var start = GetStart();
CreateAnchor(handler, start, ziel);
}
function AddDistanceAndDuration4(){ // mobile.de details page
var p = document.querySelectorAll("#vcardAddress");
if (!p || p.length==0)
return;
var handler = p[0];
var ziel = handler.textContent;
var start = GetStart();
CreateAnchor(handler, start, ziel);
}
function AddDistanceAndDuration2(){ // mobile.de search results
var list = document.querySelectorAll(".cBox-body--resultitem .g-col-10 .u-margin-bottom-9");
if (!list || list.length == 0)
return;
var start = GetStart();
for(var i=0, c=list.length; i