Newer
Older
var _e = (el) => ( document.createElement(el) );
var TTTT = [];
function calculatePartien(saison,date){
$('#partien').append('<h2 class="saison s_'+saison+'">Saison '+saison+'</h2>');
// #######################################################################
// Erstelle Partien der Runde 1 ( Hauptrunde ) / Spiel Jeder gegen Jeden
var runde=1;
var done=[];
// stelle Gruppen zusammen
STARTLISTE.forEach(
function(g){
var G=[];
g.forEach(
function(v){
//G.push( TEAMS.filter( (a) => (a.nt == v) )[0] );
G.push( TEAMS.filter( (a) => (a.nt == v) ).map((a) => ( [ Object.fromEntries( Object.entries(a).filter( (b) => ( ! ( b[0] < 1000 ) )) ), a[saison] ] ))[0] );
var h3= _e('h3');
h3.classList = 'runde s_'+saison+' r_'+runde;
h3.innerHTML = 'Runde '+runde+ ' (Hauptrunde)';
$('#partien').append(h3);
// erzeuge die Partien und prüfe, ob diese bereits gespielt wurden
STARTLISTE_PARTIEN.forEach(
function(v,i){
done.push( grpPartien(date,steps,saison,runde,i+1,v.slice(1)) ); steps+=v[0];
}
);
// ##################################################################################
// Erstelle Viertelfinale ( Finalrunde ) / KO-Spiele
if( FINALTEAMS == 8 ){
if( done.reduce( (a,b) => a && b ) == true ){
var Tabelle = calculatePunktestand( saison, runde, false );
} else {
var Tabelle = [];
STARTLISTE.forEach(
function(w,g){
for( var i = 0; i < FINALTEAMS / STARTLISTE.length; i++ ){
Tabelle.push(
{
'kontinent' : 'dummy',
'nt': 'xx',
'name': '<i>Gruppe ' + (g+1) + '.'+ (i+1) + '</i>',
'link': '',
'manager': 'dummy',
'start': 27
}
);
}
var Tabelle = [];
[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16].forEach(
function(i){
Tabelle.push(
{
'kontinent' : 'dummy',
'nt': 'xx',
'name': '<i>AF ' + (i) + '</i>',
'link': '',
'manager': 'dummy',
'start': 27
}
);
}
);
if( FINALTEAMS >= 8 ){
Grps = [];
Grps.push( [ Tabelle.shift(), Tabelle.shift(), Tabelle.shift(), Tabelle.shift(), Tabelle.shift() , Tabelle.shift() , Tabelle.shift() , Tabelle.shift() ] );
var h3 = _e('h3');
h3.classList = 'runde s_'+saison+' r_'+runde;
h3.innerText = 'Viertelfinale';
$('#partien').append(h3);
done.push( grpPartien( date,steps,saison,runde, 1, [ 8,1, 7,2, 6,3, 5,4 ] ) );
if( done[0].filter((a) => (a == false )).length == 0 ){
var VFdone = true;
var Tabelle = done[0];
}
}
// ##################################################################################
// Erstelle Halbfinale ( Finalrunde ) / KO-Spiele
if( FINALTEAMS == 4 ){
var Tabelle = calculatePunktestand( saison, runde, false );
var Tabelle = [];
STARTLISTE.forEach(
function(w,g){
for( var i = 0; i < FINALTEAMS / STARTLISTE.length; i++ ){
Tabelle.push(
{
'kontinent' : 'dummy',
'nt': 'xx',
'name': '<i>Gruppe ' + (g+1) + '.'+ (i+1) + '</i>',
'link': '',
'manager': 'dummy',
'start': 27
}
);
}
if( VFdone ){
} else {
var Tabelle = [];
[1,2,3,4,5,6,7,8].forEach(
function(i){
Tabelle.push(
{
'kontinent' : 'dummy',
'nt': 'xx',
'name': '<i>VF ' + (i) + '</i>',
'link': '',
'manager': 'dummy',
'start': 27
}
);
}
);
if( FINALTEAMS >= 4 ){
Grps = [];
Grps.push( [ Tabelle.shift(), Tabelle.shift(), Tabelle.shift(), Tabelle.shift() ] );
runde='HF';
var h3 = _e('h3');
h3.classList = 'runde s_'+saison+' r_'+runde;
h3.innerText = 'Halbfinale';
$('#partien').append(h3);
done.push( grpPartien( date,steps,saison,runde, 1, [ 1,4, 2,3 ] ) );
if( done[0].filter((a) => (a == false )).length == 0 ){
var HFdone = true;
var Tabelle = done[0];
}
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
// ##################################################################################
// Erstelle Finale ( Finalrunde ) / KO-Spiele
if( FINALTEAMS == 2 ){
if( done.reduce( (a,b) => a && b ) == true ){
var Tabelle = calculatePunktestand( saison, runde, false );
} else {
var Tabelle = [];
STARTLISTE.forEach(
function(w,g){
for( var i = 0; i < FINALTEAMS / STARTLISTE.length; i++ ){
Tabelle.push(
{
'kontinent' : 'dummy',
'nt': 'xx',
'name': '<i>Gruppe ' + (g+1) + '.'+ (i+1) + '</i>',
'link': '',
'manager': 'dummy',
'start': 27
}
);
}
}
);
}
} else if ( FINALTEAMS > 2 ){
if( HFdone ){
} else {
var Tabelle = [];
[1,2].forEach(
function(i){
Tabelle.push(
{
'kontinent' : 'dummy',
'nt': 'xx',
'name': '<i>HF ' + (i) + '</i>',
'link': '',
'manager': 'dummy',
'start': 27
}
);
}
);
}
}
runde='F';
var h3 = _e('h3');
h3.classList = 'runde s_'+saison+' r_'+runde;
h3.innerText = 'Finale';
$('#partien').append(h3);
steps+=FINALS_STEP;
var done = [];
done.push( grpPartien( date,steps,saison,runde, 1, [ 1,2 ] ) );
if( done[0].filter((a) => (a == false )).length == 0 ){
var Fdone = true;
var Tabelle = done[0];
}
if( Grps.map( (a) => ( a.filter((b) => (b == undefined )).length > 0 ) )[0] ){
alert( 'Error: Einige Teams existieren nicht in der DB' );
return;
}
var done = ( runde == 'VF' || runde == 'HF' || runde == 'F' ) ? [] : false;
var h4 = _e('h4');
h4.classList = 'spieltag s_'+saison+' r_'+runde+' t_'+spieltag;
h4.id = 'r'+runde+'st'+spieltag;
//$(h4).attr( 'ondblclick', 'getCsv('+saison+',\''+runde+'\','+spieltag+')' );
h4.innerHTML = '<a class="unformated" href="javascript:getCsv('+saison+',\''+runde+'\','+spieltag+')">Spieltag ' + spieltag + '</a>';
$('#partien').append(h4);
var tbl = _e('table');
tbl.classList = 'partien s_'+saison+' r_'+runde+' t_'+spieltag;
Grps.forEach(
function(v,i){
var BG = JSON.parse(JSON.stringify(Bg));
do {
var h1 = BG.shift()-1;
var a1 = BG.shift()-1;
partie++;
var ergebnis=ERGEBNISSE.filter( (a) => ( a.saison == saison && a.runde == runde && a.spieltag == spieltag && a.H.toLowerCase() == v[h1][0].nt.toLowerCase() && a.A.toLowerCase() == v[a1][0].nt.toLowerCase() ) );
ergebnis=ergebnis[0];
var th=(( ergebnis.MID > 0 ) ? '<a href="https://ultrasoccer.de/match/?id='+ergebnis.MID+'" target="ultrasoccer">'+ergebnis.TH+'</a>' : ergebnis.TH );
var ta=(( ergebnis.MID > 0 ) ? '<a href="https://ultrasoccer.de/match/?id='+ergebnis.MID+'" target="ultrasoccer">'+ergebnis.TA+'</a>' : ergebnis.TA );
var dt=new Date(ergebnis.T).toJSON().slice(0,10);
var st=STAT_SAISON.filter( (a) => ( a.MID == ergebnis.MID )).length == 12;
if( runde == 'VF' || runde == 'HF' || runde == 'F' ){
//done.push( th > ta ? TEAMS.filter((a) => (a.nt == ergebnis.H ))[0] : TEAMS.filter((a) => (a.nt == ergebnis.A ))[0] );
done.push( th > ta ? Object.values(TEAMS).filter( (a) => ( ( a.nt == ergebnis.H ) ) ).map((a) => ( [ Object.fromEntries( Object.entries(a).filter( (b) => ( ! ( b[0] < 1000 ) )) ), a[saison] ] ))[0] : Object.values(TEAMS).filter( (a) => ( ( a.nt == ergebnis.A ) ) ).map((a) => ( [ Object.fromEntries( Object.entries(a).filter( (b) => ( ! ( b[0] < 1000 ) )) ), a[saison] ] ))[0] );
setTimeout( function(){ window.location.href='#r'+runde+'st'+anker; },500 );
var th='-'; var ta='-'; var dt='<i>'+new Date(date+DAY*steps).toJSON().slice(0,10)+'</i> <sup>'+(steps+LIGASPIELTAG)+'</sup>'; var st=false; var match='';
if( runde == 'VF' || runde == 'HF' || runde == 'F' ){
done.push(false);
} else {
done = false;
}
tr.classList = 'begegnungen ' + (( STARTLISTE.length > 1 ) ? 'gruppe' + i : '' ) + ' h_'+v[h1][0].nt+' a_'+v[a1][0].nt+' '+(( st ) ? 'stats' : '');
var td = _e('td');
td.innerHTML = dt;
tr.append(td);
var td = _e('td');
td.append(span);
var img = _e('img');
img.classList = 'flags';
img.src = './images/flags/'+(( v[h1][0].flag ) ? v[h1][0].flag : v[h1][0].nt.toLowerCase())+'.svg';
td.append(img);
tr.append(td);
var td = _e('td');
td.innerText = ' - ';
tr.append(td);
var td = _e('td');
img.src = './images/flags/'+(( v[a1][0].flag ) ? v[a1][0].flag : v[a1][0].nt.toLowerCase())+'.svg';
td.append(sup);
tr.append(td);
var td = _e('td');
$(td).attr('data-mid',(( ergebnis.MID != undefined ) ? ergebnis.MID : '0' ) );
td.innerHTML = th;
tr.append(td);
var td = _e('td');
$(td).attr('onmouseenter', "showLastResults('"+v[h1][0].nt+"','"+v[a1][0].nt+"')" );
$(td).attr('onmouseleave', 'hideLastResults()');
$(td).attr('onclick','ignoreHideLastResults()');
td.innerText = ':';
tr.append(td);
var td = _e('td');
td.innerHTML = ta;
tr.append(td);
tbl.append(tr);
} while( BG.length > 0 );
},spieltag
);
return done;
}
function getCsv(saison, runde, spieltag){
var tbl=$('.partien.s_'+saison+'.r_'+runde+'.t_'+spieltag)[0];
var csv=
Object.values(tbl.rows).map(
function(v,i){
var T=[];
T.push( runde );
T.push( spieltag );
T.push( v.cells[0].innerText.slice(0,10) );
T.push( v.cells[1].dataset.id );
T.push( v.cells[3].dataset.id );
T.push( v.cells[4].innerText );
T.push( v.cells[6].innerText );
T.push( v.cells[4].dataset.mid );
return T;
}
).join('\n');
$('#copypaste').toggleClass('d-none');
$('#copypaste textarea').text('runde,spieltag,T,H,A,TH,TA,MID\n'+csv);
}
TEAMS[i][saison] = { P: 0, Tp: 0, Tn: 0, Td: 0, Tr: ['X'], Zwk: 0, active: (( TEAMS[i].start <= saison )) }
ERGEBNISSE.filter( (a) => ( ( a.saison == saison || saison == 0 ) && $.isNumeric(a.runde) && a.runde <= runde ) ).forEach(
var H=TEAMS.filter( (a) => ( a.nt == v.H.toLowerCase() && ( saison == 0 || a.start*1 <= saison && ( a.ende*1 >= saison || a.ende == 0 ) ) ) );
var A=TEAMS.filter( (a) => ( a.nt == v.A.toLowerCase() && ( saison == 0 || a.start*1 <= saison && ( a.ende*1 >= saison || a.ende == 0 ) ) ) );
if( H.length == 0 ){
alert('Error: Team mit Code '+v.H+' fehlt!!' );
return;
}
if( A.length == 0 ){
alert('Error: Team mit Code '+v.A+' fehlt!!' );
return;
}
H=H[0][saison];
A=A[0][saison];
if( v.TH == '-' || v.TA == '-' ) return;
if( parseInt(v.TH) > parseInt(v.TA) ){
H.P+=3;
H.Tr.push('S');
A.Tr.push('N');
} else if( parseInt(v.TH) < parseInt(v.TA) ){
A.P+=3;
H.Tr.push('N');
A.Tr.push('S');
H.Tp+=parseInt(v.TH); H.Tn+=parseInt(v.TA); H.Td=H.Tp-H.Tn;
A.Tp+=parseInt(v.TA); A.Tn+=parseInt(v.TH); A.Td=A.Tp-A.Tn;
STAT_ALL_MID.filter((b) => ( b.MID == v.MID && v.H == b.nt )).forEach(
STAT_ALL_MID.filter((b) => ( b.MID == v.MID && v.A == b.nt )).forEach(
var Tabelle=
Object.values(TEAMS)
.filter( (a) => ( ( a.start <= saison || saison == 0 ) && ( startliste.indexOf( a.nt ) > -2 || ( saison == 0 && a.nt != 'xx' ) ) ) )
.map((a) => ( [ Object.fromEntries( Object.entries(a).filter( (b) => ( ! ( b[0] < 1000 ) )) ), a[saison] ] ))
.sort(
function(a,b){
return a[1].P < b[1].P ||
( a[1].P == b[1].P && a[1].Td < b[1].Td ) ||
( a[1].P == b[1].P && a[1].Td == b[1].Td && a[1].Tp < b[1].Tp ) ||
( a[1].P == b[1].P && a[1].Td == b[1].Td && a[1].Tp == b[1].Tp && a.nt > b.nt ) ? 1 : -1;
}
)
.filter(
function(b){
if( ! b[1].active && saison != 0 ) return false;
if( b[1].P == 0 && b[1].Tp == 0 && b[1].Tn == 0 ) return false;
return true;
}
);
var TabelleLast= ( saison > 26 ) ? calculateAllPunktestand()[saison-27] : [];
Tabelle.filter((a) => ( w.indexOf(a[0].nt) > -1 )).forEach(
var border=SAISON_SETTINGS[saison - 26] == i+1 ? 'dashed ' : '';
var tr = _e('tr');
if( STARTLISTE.length > 1 ) tr.classList = 'gruppe' + j;
var td = _e('td');
td.classList = border;
td.innerText = (i+1);
tr.append(td);
var trophy=ERGEBNISSE.filter((a) => ( a.saison==SAISON-1 && a.runde=='F')).map((a) => ( a.TH > a.TA ? a.H : a.A ))[0];
trophy = trophy == undefined ? '' : trophy;
var master=TabelleLast.length > 0 ? TabelleLast[0][0].nt : '';
if( t.length == 0 ) t.push(0);
var S=t.reduce( (a,b) => a+b );
var pokal=ERGEBNISSE.filter((a) => ( ( a.saison*1 < saison || saison == 0 ) && a.runde=='F' && ( parseInt(a.TH) > parseInt(a.TA) && a.H.toLowerCase() == v[0].nt.toLowerCase() || parseInt(a.TH) < parseInt(a.TA) && a.A.toLowerCase() == v[0].nt.toLowerCase() ) ) ).length;
var finalist=ERGEBNISSE.filter((a) => ( ( a.saison*1 < saison || saison == 0 ) && a.runde=='F' && ( parseInt(a.TH) < parseInt(a.TA) && a.H.toLowerCase() == v[0].nt.toLowerCase() || parseInt(a.TH) > parseInt(a.TA) && a.A.toLowerCase() == v[0].nt.toLowerCase() ) ) ).length;
var meistertitel=M.filter( (a,i) => ( a == v[0].nt.toLowerCase() && ( i < saison - 26 || saison == 0 ) ) ).length;
var managervoted=Object.values(MANAGERVOTING_WINNER).filter((a) => (a == v[0].nt)).length;
var td = _e('td');
td.classList = border;
td.innerHTML = S;
tr.append(td);
var td = _e('td');
td.classList = border;
if( MANAGERVOTING ){
var _i = _e('i');
_i.classList = 'fas fa-thumbs-up ';
$(_i).attr('onclick', "teamVoting('"+v[0].nt+"')");
if( SAISON_TEAMVOTED.reduce((a,b) => (a.concat(b))).indexOf(v[0].nt) > -1 ){
_i.classList += 'done';
_i.title = 'Manager dieses Teams hat sein Voting abgegeben!';
} else {
_i.title = 'Manager dieses Teams hat noch kein Voting abgegeben!';
}
td.append(_i);
}
var img = _e('img');
img.classList = 'flags';
img.src = '/images/flags/'+(( v[0].flag ) ? v[0].flag : v[0].nt.toLowerCase())+'.svg';
td.append(img);
var span = _e('span');
span.innerText = ' ';
td.append(span);
var _a = _e('a');
_a.href = "javascript:calculateTeam("+((saison == 0 && false) ? SAISON_NOW : saison)+",'"+v[0].nt+"\')";
_a.innerHTML = v[0].name.replace(/\(NL\)/g,'<sup>'+v[0].nt.toUpperCase()+'</sup></a>');
_a.target = 'ultrasoccer';
var _i = _e('i');
_i.classList = 'fas fa-link';
_a.append(_i);
td.append(_a);
var _i = _e('i');
_i.classList = 'fas fa-trophy';
_i.title = 'Amtierender Titelgewinner';
td.append(_i);
}
var _i = _e('i');
_i.classList = 'fas fa-crown';
_i.title = 'Amtierender Meister';
td.append(_i);
}
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
var _i = _e('i');
_i.classList = 'managervoted fas fa-thumbs-up';
_i.title = 'Team der Saison, gewählt von den Managern';
td.append(_i);
}
tr.append(td);
var td = _e('td');
td.classList = border;
td.innerText = ((pokal>0) ? pokal : '');
tr.append(td);
var td = _e('td');
td.classList = border;
td.innerText = ((meistertitel>0) ? meistertitel : '');
tr.append(td);
var td = _e('td');
td.classList = border;
td.innerText = ((finalist>0) ? finalist : '');
tr.append(td);
var td = _e('td');
td.classList = border;
td.innerText = ((managervoted>0) ? managervoted : '');
tr.append(td);
var td = _e('td');
td.classList = border;
td.innerText = v[1].Tr.map( (a) => ( ( a == 'S') ? 1 : 0 ) ).reduce( (a,b) => a+b );
tr.append(td);
var td = _e('td');
td.classList = border;
td.innerText = v[1].Tr.map( (a) => ( ( a == 'U') ? 1 : 0 ) ).reduce( (a,b) => a+b );
tr.append(td);
var td = _e('td');
td.classList = border;
td.innerText = v[1].Tr.map( (a) => ( ( a == 'N') ? 1 : 0 ) ).reduce( (a,b) => a+b );
tr.append(td);
var td = _e('td');
td.classList = border;
td.innerHTML = v[1].Tr.map( (a) => '<'+a+'></'+a+'>' ).slice(-6).join('');
tr.append(td);
var td = _e('td');
td.classList = border;
td.classList = border + ' ' + ((v[1].Td > 0 ) ? 'p' : (v[1].Td == 0 ) ? 'u' : 'n');
td.innerText = ((v[1].Td > 0 ) ? '+' : '') + v[1].Td;
td.classList = border + ' ' + ((v[1].Zwk > 0 ) ? 'p' : (v[1].Zwk == 0 ) ? 'u' : 'n');
td.innerText = (v[1].Zwk > 0 ? '+' : '')+(v[1].Zwk / S).toFixed(2);
tr.append(td);
var td = _e('td');
td.classList = border;
tr.append(td);
$(tabelle).append(tr);
}
);
var STATISTIK=saison == 0 ? STATISTIK_ALL : STATISTIK_SAISON;
var n=Object.entries( STATISTIK ).sort( (a,b) => ( a[1][param] < b[1][param] || ( a[1][param] == b[1][param] && a[1].S > b[1].S ) ) ? 1 : -1 ).slice(0,20).map(
function(v,i){
var team=TEAMS.filter( (a) => ( a.nt == v[1].nt ) );
var flag = document.createElement('img');
flag.classList='flags';
flag.src='./images/flags/xx.svg'
flag.title='n/a';
var span = document.createElement('span');
span.innerText='';
var face = document.createElement('td');
face.classList='face';
if( v[1].face.split(/_/g).length == 5 ){
var img = document.createElement('img');
img.src='images/facegenerator/fg_head_' + v[1].face.split(/_/g)[0] + '.png';
$(face).append(img);
var img = document.createElement('img');
img.src='images/facegenerator/fg_hair_' + v[1].face.split(/_/g)[1] + '.png';
$(face).append(img);
var img = document.createElement('img');
img.src='images/facegenerator/fg_beard_' + v[1].face.split(/_/g)[2] + '.png';
$(face).append(img);
var img = document.createElement('img');
img.src='images/facegenerator/fg_mouth_' + v[1].face.split(/_/g)[3] + '.png';
$(face).append(img);
var img = document.createElement('img');
img.src='images/facegenerator/fg_eyes_' + v[1].face.split(/_/g)[4] + '.png';
$(face).append(img);
var flag = document.createElement('img');
flag.classList='flags';
flag.src='./images/flags/'+(( team[0].flag ) ? team[0].flag : team[0].nt.toLowerCase())+'.svg';
flag.title=team[0].name.split('(NL)')[0].trim();
var span = document.createElement('span');
var a_ = document.createElement('a');
a_.href='javascript:calculateTeam('+saison+',\''+team[0].nt+'\')';
a_.innerHTML=team[0].name.replace(/\(NL\)/g,'<sup>'+team[0].nt.toUpperCase()+'</sup> ');
span.append(a_);
var a_ = document.createElement('a');
a_.href=team[0].link;
a_.target='ultrasoccer';
var i_ = document.createElement('i');
i_.classList='fas fa-link';
a_.append(i_);
span.append(a_);
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
var attr=document.createElement('span');
attr.innerHTML=((v[1].attr != undefined) ? v[1].attr : '').split(' ').map( (a) => ( a != '' && a != 'fas' ? '<i class="fas '+a+'"></i>' : '' ) ).join('');
var td=document.createElement('td');
td.innerText=(i+1);
tr.append(td);
var td=document.createElement('td');
td.innerText=(( STATISTIK[v[0]] != undefined ) ? STATISTIK[v[0]].S : 0);
tr.append(td);
tr.append(face);
var td=document.createElement('td');
td.append(flag);
td.append(attr);
var a_=document.createElement('a');
a_.href='https://ultrasoccer.de/playerprofile/?id='+v[0];
a_.target='ultrasoccer';
a_.innerText=(( v[1].name != null ) ? v[1].name+' ('+(v[1].age*1+((saison == 0 ) ? SAISON_NOW : saison )*1-v[1].age_saison)+')' : v[0] );
td.append(a_);
tr.append(td);
var td=document.createElement('td');
td.append(span)
tr.append(td);
var td=document.createElement('td');
td.innerText = ( param == 'Z' && v[1][param] > 0 ) ? '+' + v[1][param] : v[1][param];
if( param == 'Z' ) td.classList = v[1][param] > 0 ? 'p' : ( v[1][param] == 0 ) ? 'u' : 'n';
tr.append(td);
return tr;
$('#tabelle_'+param+' tbody').html( n );
var STATISTIK=saison == 0 ? STATISTIK_ALL : STATISTIK_SAISON;
var n=SPIELER.filter( (a) => ( a.nt == nt ) ).map( (b) => ( [ b.id, STATISTIK[b.id] ] ) ).filter( (c) => ( c[1] !== undefined ) ).map(
function(v,i){
var team=TEAMS.filter( (a) => ( a.nt == v[1].nt ) );
var flag = document.createElement('img');
flag.classList='flags';
flag.src='./images/flags/xx.svg'
flag.title='n/a';
var span = document.createElement('span');
span.innerText='';
if( v[1].face.split(/_/g).length == 5 ){
var img = document.createElement('img');
img.src='images/facegenerator/fg_head_' + v[1].face.split(/_/g)[0] + '.png';
$(face).append(img);
var img = document.createElement('img');
img.src='images/facegenerator/fg_hair_' + v[1].face.split(/_/g)[1] + '.png';
$(face).append(img);
var img = document.createElement('img');
img.src='images/facegenerator/fg_beard_' + v[1].face.split(/_/g)[2] + '.png';
$(face).append(img);
var img = document.createElement('img');
img.src='images/facegenerator/fg_mouth_' + v[1].face.split(/_/g)[3] + '.png';
$(face).append(img);
var img = document.createElement('img');
img.src='images/facegenerator/fg_eyes_' + v[1].face.split(/_/g)[4] + '.png';
$(face).append(img);
} else {
face.innerHTML = ' ';
}
tr.append(face);
var flag = document.createElement('img');
flag.classList='flags';
flag.src='./images/flags/'+(( team[0].flag ) ? team[0].flag : team[0].nt.toLowerCase())+'.svg';
flag.title=team[0].name.split('(NL)')[0].trim();
var span = document.createElement('span');
var a_ = document.createElement('a');
a_.href='javascript:calculateTeam('+saison+',\''+team[0].nt+'\')';
a_.innerHTML=team[0].name.replace(/\(NL\)/g,'<sup>'+team[0].nt.toUpperCase()+'</sup> ');
span.append(a_);
var a_ = document.createElement('a');
a_.href=team[0].link;
a_.target='ultrasoccer';
var i_ = document.createElement('i');
i_.classList='fas fa-link';
a_.append(i_);
span.append(a_);
var attr=document.createElement('span');
attr.innerHTML=((v[1].attr != undefined) ? v[1].attr : '').split(' ').map( (a) => ( a != '' && a != 'fas' ? '<i class="fas '+a+'"></i>' : '' ) ).join('');
var td=document.createElement('td');
td.append(flag);
tr.append(td);
var td=document.createElement('td');
td.append(attr);
var a_=document.createElement('a');
a_.href='https://ultrasoccer.de/playerprofile/?id='+v[0];
a_.target='ultrasoccer';
a_.innerText=(( v[1].name != null ) ? v[1].name : v[0] );
td.append(a_);
tr.append(td);
var td=document.createElement('td');
td.innerText=(v[1].age*1+((saison == 0 ) ? SAISON_NOW : saison )*1-v[1].age_saison);
tr.append(td);
td.innerText=v[1].S;
tr.append(td);
var td=document.createElement('td');
td.innerText=v[1].T;
tr.append(td);
var td=document.createElement('td');
td.innerText=v[1].A;
var td=document.createElement('td');
td.innerText=v[1].Zpos+'/'+v[1].Zneg;
td.classList=(( v[1].Z > 0 ) ? 'p' : (( v[1].Z < 0 ) ? 'n' : 'u' ) )
tr.append(td);
var td=document.createElement('td');
td.innerText=' ';
tr.append(td);
}
);
$('table.tabelle').toggleClass('d-none',true);
$('#tabelle_team').toggleClass('d-none',false);
function calculateEwige(){
calculatePunktestand(0,'7');
calculateTabelle(0,'T');
calculateTabelle(0,'A');
calculateTabelle(0,'Z');
$('button.active').toggleClass('active',false);
$('#ewige').toggleClass('active',true);
$('table.tabelle').toggleClass('d-none',true);
$('h4.tabelle > button.punktestand').toggleClass('active',true);
$('h4.tabelle').toggleClass('d-none',false);
function backToActiveTable(){
$('table.tabelle').toggleClass('d-none',true);
$('#tabelle_'+ $('button.active').text().toLowerCase() ).toggleClass('d-none');
}
function calculateHistorie(){
$('#tabelle_historie thead tr').html('<th>Pl.</th>');
var T=[];
for( var i=0; i<=SAISON_NOW-26; i++){
$('#tabelle_historie thead tr').append('<th>'+(i+1)+'<sup>'+(i+26)+'</sup></th>');
T.push(calculatePunktestand(i+26,7,false));
}
$('#tabelle_historie thead tr').append('<th class="rest"></th>');
var masters=ERGEBNISSE.filter((a) => ( a.runde == 'F' )).map((a) => (a.TH*1 > a.TA*1 ? a.H.toLowerCase(): a.A.toLowerCase() ));
var mx=T.map((a)=>(a.length)).reduce((a,b) => (Math.max(a,b)));
var tmp='';
for( var p=0; p<mx; p++ ){
tmp+='<tr><td>'+(p+1)+'</td>';
for( var i=0; i<=SAISON_NOW-26; i++){
var nt=T[i][p] != undefined ? T[i][p][0].nt : undefined;
tmp+='<td class="'+(( MANAGERVOTING_WINNER[i+26] == nt && nt != undefined ) ? 'managervoted ' : '')+(( masters[i] == nt && nt != undefined ) ? 'master ' : '')+(( SAISON_SETTINGS[i] == p+1 ) ? 'dashed ' : '')+'">'+(( nt != undefined ) ? '<img class="flags" title="'+T[i][p][0].name+'" src="./images/flags/'+(( T[i][p][0].flag ) ? T[i][p].flag : T[i][p][0].nt.toLowerCase())+'.svg">' : '')+'</td>';
}
tmp+='</tr>';
}
$('#tabelle_historie tbody').html(tmp);
$('table.tabelle').toggleClass('d-none',true);
$('#tabelle_historie').toggleClass('d-none',false);
$('button.active').toggleClass('active',false);
$('#historie').toggleClass('active',true);
$('h4.tabelle').toggleClass('d-none',true);
$('.news').toggleClass('d-none', true);
$('.rest')[0].scrollIntoView();
var R=undefined;
function showLastResults(H,A){
$('#lastresults').toggleClass('d-none',false);
R=ERGEBNISSE.filter((a) => ( a.H==H && a.A==A || a.A==H && a.H==A) ).slice(-5);
$('#lastresults table tbody').html(R.map(
function(c){
var teamH=TEAMS.filter( (a) => ( a.nt == c.H ) );
teamHflag = teamH[0].flag ? teamH[0].flag : teamH[0].nt;
var teamA=TEAMS.filter( (a) => ( a.nt == c.A ) );
teamAflag = teamA[0].flag ? teamA[0].flag : teamA[0].nt;
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
var tr = _e('tr');
var td = _e('td');
td.innerText = c.saison;
tr.append(td);
var td = _e('td');
td.innerText = c.runde;
tr.append(td);
var td = _e('td');
var img = _e('img');
img.classList = 'flags';
img.src = './images/flags/'+(( c.H == H ) ? teamHflag : teamAflag )+'.svg';
td.append(img);
tr.append(td);
var td = _e('td');
var img = _e('img');
img.classList = 'flags';
img.src = './images/flags/'+(( c.A == A ) ? teamAflag : teamHflag )+'.svg';
td.append(img);
tr.append(td);
var td = _e('td');
var _a = _e('a');
_a.href = 'https://ultrasoccer.de/match/?id='+c.MID;
_a.target = 'ultrasoccer';
_a.innerText = (( c.H == H ) ? c.TH : c.TA );
td.append(_a);
tr.append(td);
var td = _e('td');
td.innerText = ':';
tr.append(td);
var td = _e('td');
var _a = _e('a');
_a.href = 'https://ultrasoccer.de/match/?id='+c.MID;
_a.target = 'ultrasoccer';
_a.innerText = (( c.A == A ) ? c.TA : c.TH );
td.append(_a);
tr.append(td);
return tr;
)
);
var d=R.map(
(a) =>
(
{ 'TH' : (( a.H == H ) ? parseInt(a.TH) : parseInt(a.TA)),
'TA' : (( a.A == A ) ? parseInt(a.TA) : parseInt(a.TH)),
'S' : (( a.H == H ) ? parseInt(a.TH) > parseInt(a.TA) : parseInt(a.TA) > parseInt(a.TH)) ? 1 : 0,
'U' : parseInt(a.TH) == parseInt(a.TA) ? 1 : 0,
'N' : (( a.H == H ) ? parseInt(a.TH) < parseInt(a.TA) : parseInt(a.TA) < parseInt(a.TH)) ? 1 : 0
}
)
).reduce(
(sum,val) =>
(
sum.TH += val.TH,
sum.TA += val.TA,
sum.S += val.S,
sum.U += val.U,
sum.N += val.N,
sum
)
);
var tr = _e('tr');
tr.classList = 'lastresults_summe';