var Tabellendaten = new Array();

var Tabellendaten2D = new Array();
var data;

var Spaltenueberschriften = new Array(
"Mannschaft",
"Spiele",
"Tore&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;",
"",
"Gegentore",
"Punkte"
);

var Spalten = Spaltenueberschriften.length;
var Zeilen = Tabellendaten.length / Spalten;
var spieltageDatum;
var spieltageDay;


function Hash()
{
	this.length = 0;
	this.items = new Array();
	for (var i = 0; i < arguments.length; i += 2) {
		if (typeof(arguments[i + 1]) != 'undefined') {
			this.items[arguments[i]] = arguments[i + 1];
			this.length++;
		}
	}
   
	this.removeItem = function(in_key)
	{
		var tmp_previous;
		if (typeof(this.items[in_key]) != 'undefined') {
			this.length--;
			var tmp_previous = this.items[in_key];
			delete this.items[in_key];
		}
	   
		return tmp_previous;
	}

	this.getItem = function(in_key) {
		return this.items[in_key];
	}

	this.setItem = function(in_key, in_value)
	{
		var tmp_previous;
		if (typeof(in_value) != 'undefined') {
			if (typeof(this.items[in_key]) == 'undefined') {
				this.length++;
			}
			else {
				tmp_previous = this.items[in_key];
			}

			this.items[in_key] = in_value;
		}
	   
		return tmp_previous;
	}

	this.hasItem = function(in_key)
	{
		return typeof(this.items[in_key]) != 'undefined';
	}

	this.clear = function()
	{
		for (var i in this.items) {
			delete this.items[i];
		}

		this.length = 0;
	}
}

function EinlesenSpielplan(file)
{
	var Tabelleninhalt = ReadFile(file);
	var TabelleninhaltZeilen = Tabelleninhalt.split("\n");
	var myHash = new Hash();
	for (var i = 1; i < TabelleninhaltZeilen.length; i += 1) 
	{
		var TabellenZellen = TabelleninhaltZeilen[i].split(";");
		var game = new Array(TabellenZellen[1],TabellenZellen[2],TabellenZellen[3],TabellenZellen[4],TabellenZellen[5],TabellenZellen[0]); //Mannschaft1 ,Mannschaft2, Tore1, Tore2, Spieltag
		
		var dayArray = new Array();
		if (myHash.hasItem(TabellenZellen[0]))
		{
			dayArray = myHash.getItem(TabellenZellen[0]);
		}
		dayArray[dayArray.length] = game;
		myHash.setItem(TabellenZellen[0],dayArray);
	}
	spieltageDatum = myHash;
	
	var myHash = new Hash();
	for (var i = 1; i < TabelleninhaltZeilen.length; i += 1) 
	{
		var TabellenZellen = TabelleninhaltZeilen[i].split(";");
		if(isNaN(TabellenZellen[5]))
			continue;
			
		var game = new Array(TabellenZellen[1],TabellenZellen[2],TabellenZellen[3],TabellenZellen[4],TabellenZellen[5],TabellenZellen[0]); //Mannschaft1 ,Mannschaft2, Tore1, Tore2, Spieltag
		
		var dayArray = new Array();
//		alert("\"" +TabellenZellen[5] + "-"+ isNaN(TabellenZellen[5]) + "\"");
		if (myHash.hasItem(Number(TabellenZellen[5]) + "day"))
		{
			dayArray = myHash.getItem(Number(TabellenZellen[5]) + "day");
		}
		dayArray[dayArray.length] = game;
		myHash.setItem(Number(TabellenZellen[5]) + "day",dayArray);
	}
	spieltageDay = myHash;

}

function Einlesen(file)
{
var Tabelleninhalt = ReadFile(file);
var TabelleninhaltZeilen = Tabelleninhalt.split("\n");
var myHash = new Hash();

for (var i = 1; i < TabelleninhaltZeilen.length; i += 1) 
{
	var TabellenZellen = TabelleninhaltZeilen[i].split(";");
	var m1 = new Array(0,0,0,0);
	var m2 = new Array(0,0,0,0);
	if(isNaN(TabellenZellen[3]) || isNaN(TabellenZellen[4]) || (TabellenZellen[3].length == 0) || (TabellenZellen[4].length == 0))
	{
		continue;
	}
	
	if (myHash.hasItem(TabellenZellen[1]))
	{
		m1 = myHash.getItem(TabellenZellen[1]);
	}
	if (myHash.hasItem(TabellenZellen[2]))
	{
		m2 = myHash.getItem(TabellenZellen[2]);
	}

	//Anzahl Spiele erhöhen
	m1[3] = m1[3] + Number(1);
	m2[3] = m2[3] + Number(1);
	//eigene Tore erhöhen
	m1[0] = m1[0] + Number(TabellenZellen[3]);
	m2[0] = m2[0] + Number(TabellenZellen[4]);
	//gegen Tore erhöhen
	m1[1] = m1[1] + Number(TabellenZellen[4]);
	m2[1] = m2[1] + Number(TabellenZellen[3]);
	//Punkte verteilen
	
	if(Number(TabellenZellen[3]) > Number(TabellenZellen[4]))
	{
		m1[2] += 3;
	}
	else if(Number(TabellenZellen[3]) < Number(TabellenZellen[4]))
	{
		m2[2] += 3;
	}
	else
	{
		m1[2] += 1;
		m2[2] += 1;
	}
	myHash.setItem(TabellenZellen[1],m1);
	myHash.setItem(TabellenZellen[2],m2);
}

var line = 0;
for (var key in myHash.items) 
{
	Tabellendaten[line] =  key; //Name
	Tabellendaten[line + 1] =  myHash.getItem(key)[3]; //Spiele
	Tabellendaten[line + 2] =  myHash.getItem(key)[0]; //Tore
	Tabellendaten[line + 3] =  ":"; //
	Tabellendaten[line + 4] =  myHash.getItem(key)[1]; //Gegentore
	Tabellendaten[line + 5] =  myHash.getItem(key)[2]; //Punkte
	line +=6;
}
Zeilen = Tabellendaten.length / Spalten;

//2D array
line = 0;
for (var key in myHash.items) 
{
	var TabellenZeile = new Array(7);
	TabellenZeile[0] =  line+1 ; //Platz
	TabellenZeile[1] =  key ; //Name
	TabellenZeile[2] =  myHash.getItem(key)[3] ; //Spiele
	TabellenZeile[3] =  myHash.getItem(key)[0] ; //Tore
	TabellenZeile[4] =  ":"; //
	TabellenZeile[5] =  myHash.getItem(key)[1];//Gegentore
	TabellenZeile[6] =  myHash.getItem(key)[2];//Punkte
	Tabellendaten2D[line] = TabellenZeile;
	line +=1;
}
data = "[";
for (var z = 0; z < Tabellendaten2D.length; z++)
{
	data += "[";
	for (var c = 0; c < Tabellendaten2D[z].length; c++)
	{
		data += Tabellendaten2D[z][c] + ",";
	}
	data += "],";
}
data += "]";


}
function ReadFile(fileUrl) 
{
    var req;
    var fileContent;
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.open("GET", fileUrl, false);
        req.send(null);
        fileContent = req.responseText;
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        req.open("GET", fileUrl, false);
        req.onreadystatechange=function() {
                                    if (req.readyState == 4) {
                                        fileContent = req.responseText;
                                    }
                                }
        req.send(null);
    }
    return fileContent;
}// FileRead End


