NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name Bankmanagergame - Aktienhistorie 1280
// @namespace http://scripte.georglink.de/
// @description Zeigt die Aktienentwicklung des Tages.
// @author Georg J.P. Link
// @include http://bankmanagergame.de/index.php?section=aktien*
// @include http://www.bankmanagergame.de/index.php?section=aktien*
// ==/UserScript==
var $1;
// 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;
aktienauswertung();
}
}
function Trenner(number) {
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;
}
function aktienauswertung() {
// alert(GM_listValues());
i=1;
aktienuebersicht = "<table width='100%' style='border-collapse:collapse;margin:0px auto;'>";
aktienkursdaten="";
// berechne fuer jedes Konto-Angebot
$1('table.none tbody').each(function ( ) {
$1(this).children(":first").prepend('<a name="aktie'+i+'" id="aktie'+i+'" ></a>');
aktienuebersicht += "<tr><td style='padding:0 1px;' align=right>"+ i +"</td>";
extrakt = $1(this).text();
//alert(extrakt);
bankname = $1(this).children(':first').text();
aktienuebersicht += "<td style='padding:0 1px;'><a href='#aktie"+i+"'>"+bankname+"</a></td>";
var kursaktuell_regex1 = /aktuell:([0-9]*,[0-9]*)/;
kursaktuell = extrakt.match(kursaktuell_regex1)[1];
aktienuebersicht+='<td style="padding:0 1px;" align=right><span id="aktkurs'+i+'">'+kursaktuell+"</span></td></tr>\n";
kursaktuell = parseInt(Math.round(parseFloat(kursaktuell.replace(/,/, ".")) * 100));
// aktienkursdaten+=i+'b'+kursaktuell+'a';
aktienkursdaten+=kursaktuell+';';
$1(this).append('<tr><td colspan="2" style="padding:0px;"><div id="aktienkurs'+i+'">Historische Aktienwerte '+i+'</div></td></tr>')
i++;
});
//Allgemeine Daten, Max-Tresorlimit, Max-Kredite
var all_content = $1('#content').text();
// Aktueller Geldbestand
var geldaktuell_regex1 = /[0-9]{1,3}(\.[0-9]{3})*,[0-9]{2}/;
if (geldaktuell_regex1.test(all_content)){
var geldaktuell_1 = all_content.match(geldaktuell_regex1)[0] + '';
geldaktuell = parseFloat(geldaktuell_1.replace(/\./g, "").replace(/,/, "."));
} else {
geldaktuell = -1;
}
aktienuebersicht += '<tr><td colspan="3" style="border-top:1px solid #000000;">Geld: <span style="float:right" class="greeng">'+Trenner(geldaktuell)+' €</span></td></tr></td>';
aktienuebersicht += '<tr><td colspan="3" align="right"><a id="aktienreloadlink" style="float:left;text-decoration:none;cursor:pointer;"><span id="aktienreloadtimer" class="greeng">reload Sek.</span> <span id="aktienreloadx">(X)</span></a><a id="hideuebersicht" style="cursor:pointer;">(Ausblenden)</a></td></tr></td>';
jetzt = Objektname = new Date();
var Jahr = jetzt.getFullYear();
var Monat = jetzt.getMonth()+1;
var aMonat = ''+Monat;
if (aMonat.length <2) {
aMonat = "0"+Monat;
}
var Tag = ''+ jetzt.getDate();
if (Tag.length <2) {
Tag = "0"+Tag;
}
var Std = ''+ jetzt.getHours();
if (Std.length <2) {
Std = "0"+Std;
}
var Min = ''+ jetzt.getMinutes();
if (Min < 15) {
Viertelstunde = '00'
} else if(Min < 30) {
Viertelstunde = '15'
} else if (Min < 45) {
Viertelstunde = '30'
} else {
Viertelstunde = '45'
}
if (Min.length <2) {
Min = "0"+Min;
}
// if(Std < 8) {
// Std = '07';
// Viertelstunde = '45';
// }
// else if( Std < 10 ) {
// Std = '0' + Std;
// }
// if( Min < 10 ) {
// Min = '0' + Min;
// }
Zeitpunkt = ''+Jahr+aMonat+Tag+Std+Min
// Ausgabe
$1('#content').append('<div id="aktienuebersicht" style="position:fixed; top:20px; right:20px; width:160px; overflow:auto; display:none; z-index:999;">'+aktienuebersicht+'</div>');
$1('#content div.indent-box').prepend('<a id="showuebersicht">(Einblenden)</a> ');
$1('#content div.indent-box br:first').before('<span style="float:right;" class="greeng">'+Std+':'+Min+'</span>');
// alert(aktienkursdaten);
function hideUebersicht(){
$1('#aktienuebersicht').slideUp('fast');
GM_setValue('hideinguebersicht',true);
}
function showUebersicht(){
$1('#aktienuebersicht').slideDown('fast');
GM_setValue('hideinguebersicht',false);
}
function addButtonListener(){
var button = document.getElementById("hideuebersicht");
button.addEventListener('click',hideUebersicht,true);
var button = document.getElementById("showuebersicht");
button.addEventListener('click',showUebersicht,true);
}
// $1('#content div.indent-box').prepend(aktienkursdaten+Zeitpunkt+'<br>');
GM_xmlhttpRequest({
method: "GET",
url: "http://scripte.georglink.de/aktienkurseserver.php?aktienkurse="+aktienkursdaten+Zeitpunkt,
onload: function(response) {
// alert(response.responseText);
//historische Werte
var hw=JSON.parse(response.responseText);
$1.each(hw, function(key,value){
aj=0;
countvalues = value.length-1;
anzvstd = parseInt(Viertelstunde);
anzstd = Std;
hwtabelle = "<table width='75%' style='border-collapse:collapse;margin:0px auto;'>";
while (value[aj]){
var farbe = ((aj<countvalues) && (value[aj].kurs > value[aj+1].kurs)) ? "green" : "red";
var farbe = ((aj<countvalues) && (value[aj].kurs == value[aj+1].kurs)) ? "black" : farbe;
var farbe = ((aj==countvalues)) ? "black" : farbe;
hwkurs = value[aj].kurs.substr(0,value[aj].kurs.length-2)+'.'+value[aj].kurs.substr(value[aj].kurs.length-2)
hwvstd = value[aj].zeit.substr(14,2);
hwstd = value[aj].zeit.substr(11,2);
while( (anzstd > hwstd) || ((anzstd == hwstd) && (anzvstd > hwvstd )) ){
anzstd += '';
if (anzstd.length < 2) { anz1std = '0'+anzstd;}else{anz1std=anzstd};
if(anzvstd==0){anz1vstd='00';}else{anz1vstd=anzvstd;}
hwtabelle += "<tr><td>"+value[aj].zeit.substr(0,11)+anz1std+':'+anz1vstd+':00'+"</td>";
hwtabelle += "<td align=right>-</td></tr>";
anzvstd -= 15;
if (anzvstd < 0) {
anzvstd = 45;
anzstd -= 1;
}
}
hwtabelle += "<tr><td>"+value[aj].zeit+"</td>";
hwtabelle += "<td align=right><span style='color:"+farbe+"'>"+Trenner(hwkurs)+"</span></td></tr>";
anzvstd -= 15;
if (anzvstd < 0) {
anzvstd = 45;
anzstd -= 1;
}
if (aj==0){
$1('#aktkurs'+key).attr('style','color:'+farbe+';');
}
aj++;
}
hwtabelle += "</table>";
$1("#aktienkurs"+key).html(hwtabelle);
});
hideinguebersicht = GM_getValue('hideinguebersicht',false);
//alert(hideinguebersicht);
if(!hideinguebersicht){
showUebersicht();
}
addButtonListener();
}
});
}
// .
// ..
// stevo addon - aktienwert summe
// ..
// .
//var x = document.getElementsByClassName('tablesorter')[1];
// alert(x);
//var y = x.getElementsByTagName('tr')[1];
//alert(y.textContent);
//var x = $('.tablesorter')[1];
//alert(x);
//var trs = $(tablesorters 'tr');
//var anzahl_trs = trs.length;
var tablesorters = $('.tablesorter');
var anzahl_tablesorters = tablesorters.length;
var container = document.createElement('div');
container.style.width = '220px';
container.style.background = '#ddd';
container.style.position = 'fixed';
container.style.right = '20px';
container.style.top = '320px';
container.style.padding = '3px';
// alert(anzahl_tablesorters);
var i = 1;
while (i < anzahl_tablesorters) {
var wert_damals_gesamt = parseInt(0);
var wert_heute_gesamt = parseInt(0);
var this_tablesorter = $('.tablesorter')[i];
var trs = this_tablesorter.getElementsByTagName('tr');
var anzahl_trs = trs.length;
var z = 1;
while (z < anzahl_trs) {
var this_tr = this_tablesorter.getElementsByTagName('tr')[z];
var wert = this_tr.getElementsByTagName('td')[2].textContent;
wert = wert.replace('Damals/Heute','');
wert = wert.replace('.','');
wert = wert.replace('.','');
wert = wert.replace(' k','000');
wert = wert.replace(' k','000');
wert = wert.replace(',','.');
wert = wert.replace(',','.');
var wert_damals = wert.split(' /')[0];
var wert_heute = wert.split('/')[1];
wert_damals = parseFloat(wert_damals).toFixed(2);
wert_heute = parseFloat(wert_heute).toFixed(2);
wert_damals = (wert_damals * 1);
wert_heute = (wert_heute * 1);
wert_damals_gesamt = (wert_damals_gesamt + wert_damals);
wert_heute_gesamt = (wert_heute_gesamt + wert_heute);
var z = (z + 1);
}
var aktienname = document.getElementsByClassName('big')[i+1].textContent;
wert_differenz_gesamt = (wert_heute_gesamt - wert_damals_gesamt);
wert_differenz_gesamt = wert_differenz_gesamt.toFixed(2);
if (wert_differenz_gesamt < 0) {
var color = '#cc0000';
}
else if (wert_differenz_gesamt > 0) {
var color = '#00bb00';
}
else {
var color = '#000000';
}
if (wert_heute_gesamt > 1000) {
wert_heute_gesamt = (wert_heute_gesamt / 1000).toFixed(0) + ' k';
}
var div = document.createElement('div');
div.textContent = '€ ' + wert_differenz_gesamt;
div.style.color = color;
div.style.fontSize = '0.8em';
div.style.textAlign = 'right';
div.style.width = '100px';
div.style.float = 'left';
var divtext = document.createElement('div');
divtext.style.float = 'left';
divtext.style.color = color;
divtext.style.width = '120px';
divtext.style.fontSize = '0.8em';
divtext.title = wert_heute_gesamt;
var divtextlink = document.createElement('a');
divtextlink.href = 'http://www.bankmanagergame.de/index.php?section=aktien#aktie'+i;
divtextlink.textContent = aktienname;
var clear = document.createElement('div');
clear.style.clear = 'both';
divtext.appendChild(divtextlink);
container.appendChild(divtext);
container.appendChild(div);
container.appendChild(clear);
document.body.appendChild(container);
var i = (i + 1);
}
var i = 1;
var a = Array();
var b = 0;
$( "img" ).each(function() {
if ((i % 2 == 0) && (i < 25)) {
a[b] = $(this);
}
i = i + 1;
b = b + 1;
});
document.body.appendChild(b[0]);