Price + Shipping = Total

By vbrtrmn Last update Jul 9, 2010 — Installed 3,502 times.

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;
		}
	}
}