cubensosgmail.com / Bankmanagergame - Konten

// ==UserScript==
// @name          Bankmanagergame - Konten
// @namespace     http://scripte.georglink.de/
// @description	  Bewertet die Konto-Ertragsaussichten.
// @author        Georg J.P. Link
// @include       http://bankmanagergame.de/index.php?section=konten*
// @include       http://www.bankmanagergame.de/index.php?section=konten*
// ==/UserScript==

var $;

// Add jQuery
(function(){
	if (typeof unsafeWindow.jQuery == 'undefined') {
		var GM_Head = document.getElementsByTagName('head')[0] || document.documentElement,
			GM_JQ = document.createElement('script');

		GM_JQ.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js';
		GM_JQ.type = 'text/javascript';
		GM_JQ.async = true;

		GM_Head.insertBefore(GM_JQ, GM_Head.firstChild);
	}
	GM_wait();
})();

// Check if jQuery's loaded
function GM_wait() {
	if (typeof unsafeWindow.jQuery == 'undefined') {
		window.setTimeout(GM_wait, 100);
	} else {
		$1 = unsafeWindow.jQuery;
		rating();
	 }
}

// formatiert die Ertragsaussicht mit Tausender Trennzeichen
function Trenner(number) {
	// Info: Die '' sind zwei Hochkommas
	number = '' + number;
	teile = number.split(".");
	ganze = teile[0];
	if (teile[1]){
		komma = teile[1];
	} else {
		komma = "00";
	}
	while(komma.length <2) {
		komma += "0";
	}
	komma = komma.substr(0,2);
	if (ganze.length > 3) {
		var mod = ganze.length % 3;
		var output = (mod > 0 ? (ganze.substring(0,mod)) : '');
		for (i=0 ; i < Math.floor(ganze.length / 3); i++) {
			if ((mod == 0) && (i == 0))
				output += ganze.substring(mod+ 3 * i, mod + 3 * i + 3);
			else
				// hier wird das Trennzeichen festgelegt mit '.'
				output+= '.' + ganze.substring(mod + 3 * i, mod + 3 * i + 3);
		}
		return (output+','+komma);
	}
	else return teile[0]+','+komma;
}

// calculate Rating and insert into Table
function rating() {
	// Adding Heading for Ertragserwartungs column
	$1('#listOfAccounts thead tr').append('<th id="headerscriptErtrag1" class="header scriptErtrag">Ertragserw.</th>');
	$1('#tablesorter thead tr').append('<th id="headerscriptErtrag2" class="header scriptErtrag">Ertragserw.</th>');
	
	// berechne fuer jedes Konto-Angebot
	$1('#listOfAccounts tbody tr').each(function ( ) {
		werte = new Array;
		i=0;
		test = "";
		$1(this).children().each(function () {
			werte[i] = $1(this).text();
			test += werte[i] + "\n";
			i++;
			if (i>5) return true;
		});
		
		// Aufbereitung der Werte
		var geldfluss = parseFloat(werte[1].replace(" k", "000").replace(/\./g, "").replace(/,/, "."));
		var ueberweisungen = parseFloat(werte[2].replace(/\./g, ""));
		var gebuehr = parseFloat(werte[3].replace(/\./g, "").replace(/,/, "."));
		var dispo_limit = parseFloat(werte[4].replace(" k", "000").replace(/\./g, "").replace(/,/, "."));
		var dispo_zins = parseFloat(werte[5].replace(/,/, "."))/100;
		
        
		// Errechne das Rating
		var rating = (ueberweisungen*gebuehr + Math.min(geldfluss,dispo_limit)*dispo_zins);
		rating = Math.round(rating*100)/100
		
		//trage Rating in tabelle ein.
		$1(this).append('<td class="scriptErtrag">'+ Trenner(rating) + '&euro;</td>');
	});	
	
	// Ertrag pro Tag von allen Konten
	var gesamt_tagesertrag = 0;
	// berechne fuer jedes bestehende Konto
	$1('#tablesorter tbody tr').each(function ( ) {
		// extrahiere alle Werte aus Tabelle
		werte = new Array;
		i=0;
		$1(this).children().each(function () {
			werte[i] = $1(this).text();
			i++
			if (i>5) return true;
		});
		
                
		// Aufbereitung der Werte
		var geldfluss = parseFloat(werte[1].replace(" k", "000").replace(/\./g, "").replace(/,/, "."));
		var ueberweisungen = parseFloat(werte[2].replace(/\./g, ""));
		var gebuehr = parseFloat(werte[3].replace(/\./g, "").replace(/,/, "."));
		var dispo_limit = parseFloat(werte[4].replace(" k", "000").replace(/\./g, "").replace(/,/, "."));
		var dispo_zins = parseFloat(werte[5].replace(/,/, "."))/100;
        
        
		
		// Errechne das Rating
		var rating = (ueberweisungen*gebuehr + Math.min(geldfluss,dispo_limit)*dispo_zins);
		rating = Math.round(rating*100)/100;
		gesamt_tagesertrag += rating;
		//trage Rating in tabelle ein.
		$1(this).append('<td class="scriptErtrag">'+ Trenner(rating) + '&euro;</td>');
	});
	var newNode = document.createElement("div");
	newNode.textContent = "tt"; //;	
	newNode.setAttribute("style" , "margin: 5px 0;");
	newNode.setAttribute("id" , "gesamtertrag");
	var beforeMe = document.getElementById("tablesorter");
	beforeMe.parentNode.insertBefore( newNode, beforeMe )
	$1("#gesamtertrag").html('Gesamtertrag pro Tag: <span style="color:green;font-weight:bold;">' + Trenner(gesamt_tagesertrag) + ' &euro;</span>');
	//document.head.insertBefore(script, beforeMe);
		// window.setTimeout(sortiere_nach_bewertung, 800);
}

/* // set correct sorting
function sortiere_nach_bewertung() {
	// sortiert Kontenangebote nach Beste zuerst
	$1('#listOfAccounts th:last-child').click().click();
	
	// sortiert betehende Konten nach Schlechteste zuerst
	$1("#tablesorter th:last-child").click(); 
}; */

$1('#listOfAccounts th:contains("Überweis. p. Tag")').text("Überweis.");
$1('#listOfAccounts th:contains("Gebühr p. Überweis.")').text("Gebühr");

$1('#tablesorter th:contains("Überweisungen")').text("Überw.");
$1('#tablesorter th:contains("Gewinne Dispo")').text("Gew. Dispo");



// ums verrecken nit gschafft, die "Kündigen (Kosten: 123,-) spalte zu verkleinern...

  //var strNewString = $1('#tablesorter').html().replace(/Kosten: /g,'');
//  $1('#tablesorter').html(strNewString);


//var d = $1('#tablesorter td:contains("Kosten:")');
//d.text(d.text().trim().replace(/Kosten: /i, ""));


//$1('#tablesorter td:contains("Kosten:")).text(function(i, v) {
  //return v.replace(/Kosten: /g, ""));    
//});


//$1('#tablesorter td:conaints("Kosten")').each(function ( ) {
	//	i=0;
	//	$1(this).html().replace(/Kosten: /g, ""));  
//});
		
//$1("#tablesorter td a:contains('Kündigen')").html("K");


//$1("#tablesorter td").each(function() {
    //$1(this).text($1(this).text().replace(/Kosten/g, '');
//});






$1('#listOfAccounts').tablesorter();
$1('#listOfAccounts').tablesorter();
$1('#tablesorter').tablesorter();
$1('#tablesorter').tablesorter();