There are 3 previous versions of this script.
// ==UserScript==
// @name Price + Shiping = Total
// @namespace http://jobson.us
// @include http://*.ebay.*/*
// @include http://ebay.com/*
// ==/UserScript==
setTimeout(init,500);
$ = function(id) {
return document.getElementById(id);
}
$$ = function(cls) {
return document.getElementsByClassName(cls);
}
var locale = window.location.href.match(/ebay\.(.+?)\//)[1];
var totalText = {
'com': 'Total',
'co.uk': 'Total',
'it': 'Totale',
'es': 'Total',
'at': 'Gesamtmenge',
'fr': 'Total',
'de': 'Gesamtmenge',
'ie': 'Total',
'nl': 'Totaal',
'ca': 'Total',
'ch': 'Gesamtmenge',
'com.sg': 'Total'
};
function init() {
if (!$('ResultSet')) return;
var rows = $('ResultSet').getElementsByTagName('tr');
var td = document.createElement('td');
td.style.width = '50px';
td.style.textAlign = 'right';
for (var i=0;i<rows.length;i++) {
var col = td.cloneNode(true);
if (i==0) {
col.appendChild(document.createTextNode(totalText[locale]));
col.style.fontSize = 'x-small';
col.style.fontFamily = 'Verdana';
rows[i].insertBefore(col,rows[i].getElementsByClassName('time')[0]);
} else if(rows[i].getElementsByClassName('prices')[0]) {
var price;
var ship;
var total;
switch (locale) {
case 'ca':
price = parseFloat(rows[i].getElementsByClassName('prices')[0].innerHTML.match(/\d+\.\d\d/)[0]);
ship = parseFloat(rows[i].getElementsByClassName('ship')[0].innerHTML.match(/\d+\.\d\d/));
ship = (isNaN(ship)) ? 0 : ship;
total = 'C\u00a0$'+ ((price+ship).toFixed(2));
break;
case 'ch':
price = parseFloat(rows[i].getElementsByClassName('prices')[0].innerHTML.match(/\d+[\,\.]\d\d/)[0].replace(/\,/,'.'));
ship = rows[i].getElementsByClassName('ship')[0].innerHTML.match(/\d+[\,\.]\d\d/);
ship = (ship) ? parseFloat(ship[0].replace(/\,/,'.')) : 0;
total = 'CHF\u00a0'+ ((price+ship).toFixed(2).replace(/\./,','));
break;
case 'com.sg':
price = parseFloat(rows[i].getElementsByClassName('prices')[0].innerHTML.replace(/[\,\$S\s]/g,''))
ship = rows[i].getElementsByClassName('ship')[0].innerHTML.match(/\d+[\,\.]\d\d/);
ship = (ship) ? parseFloat(ship[0].replace(/\,/,'.')) : 0;
total = 'S$\u00a0'+ (price + ship).toFixed(2);
break;
case 'com':
price = parseFloat(rows[i].getElementsByClassName('prices')[0].getElementsByTagName('div')[0].innerHTML.match(/\d+\.\d\d/)[0]);
ship = parseFloat(rows[i].getElementsByClassName('prices')[0].getElementsByTagName('span')[0].innerHTML.match(/\d+\.\d\d/));
ship = (isNaN(ship)) ? 0 : ship;
total = '$'+ ((price+ship).toFixed(2));
break;
case 'co.uk':
price = parseFloat(rows[i].getElementsByClassName('prices')[0].innerHTML.match(/\d+\.\d\d/)[0]);
ship = parseFloat(rows[i].getElementsByClassName('ship')[0].innerHTML.match(/\d+\.\d\d/));
ship = (isNaN(ship)) ? 0 : ship;
total = '£'+ ((price+ship).toFixed(2));
break;
case 'it':
case 'es':
case 'at':
case 'de':
case 'fr':
case 'ie':
case 'nl':
price = parseFloat(rows[i].getElementsByClassName('prices')[0].innerHTML.match(/\d+[\,\.]\d\d/)[0].replace(/\,/,'.'));
ship = rows[i].getElementsByClassName('ship')[0].innerHTML.match(/\d+[\,\.]\d\d/);
ship = (ship) ? parseFloat(ship[0].replace(/\,/,'.')) : 0;
total = '€'+ ((price+ship).toFixed(2).replace(/\./,','));
break;
default: break;
};
rows[i].insertBefore(col,rows[i].getElementsByClassName('time')[0])
col.appendChild(document.createTextNode(total));
} else {
continue;
}
}
}