// Name and Path to XML-data
var strXMLName = "./data/scf-matches.xml";
// create Global xmlDoc
var xmlDoc = null;

var strContest;
var strSeason;

function InitData()
{
	// only load xml-Document through initializaion - Nodelist will be loaded in FillList()
	xmlDoc = LoadXMLDoc( strXMLName );
	if( xmlDoc == null )
	{
		alert( 'Error creating/loading XML-Doc: ' + strXMLName );
	}
}

function FillList( nType, strFilter )
{
	// no xml-Data loaded
	if( xmlDoc == null )
	{
		return false;
	}

	// get needed HTML-Elements
	var htmlTable = document.getElementById( 'tablebody' );
	
	// first delete dynamic created rows (don't delete header!)
	var htmlRows = htmlTable.getElementsByTagName("tr");
	var nRows = htmlRows.length;
	for( i = nRows - 1; i > 0; i-- )
	{
		// delete reverse
		htmlTable.removeChild( htmlRows[i] );
	}
	
	var htmlHeader = document.getElementById( 'headerrow' );
	if( htmlTable == null || htmlHeader == null )
	{
		return true;
	}

	if( strFilter == '' )
	{
		return true;
	}
	// build XPath dependend on Type and Filter
	var strXPath;
	switch( nType )
	{
		case 0:
			strXPath = "/dataroot/scf-matches[strContest='" + strFilter + "']";
			break;
		case 1:
			strXPath = "/dataroot/scf-matches[ contains( strContrahents , '" + strFilter + "' ) ]";
			break;
		default:
			alert( 'wrong type!' );
			break;
	}

	var xmlNodelist = SelectNodes( xmlDoc, strXPath );
	if( xmlNodelist == null )
	{
		return true;
	}

	
	// now fill list
	nRows = xmlNodelist.length;
	for( i = 0; i < nRows; i++ )
	{
		var nMatch = i;
		// for 'opponent'-Type list matches bottom-up!
		if( nType == 1 )
		{
			nMatch = nRows - i - 1;
		}

		// get Match-Data from Node
		var xmlMatch = xmlNodelist[nMatch];
		
		// create new HTML-Row (clone from header)
		var htmlRow = htmlHeader.cloneNode(true);

		// append to Table before first access - otherwise IE won't work fine
		htmlTable.appendChild( htmlRow );

		if( i % 2 )
		{
			htmlRow.className = 'hatched1';
		}
		else
		{
			htmlRow.className = 'hatched2';
		}
		
		var nCol = 0;
		var htmlCols = htmlRow.getElementsByTagName("td");
		
		if( nType == 1 )
		{
			// Contest only for 'opponent'-Type
			var strContest = NodeText( SelectSingleNode( xmlMatch, 'strContest') );

			switch( strContest.substr( 0, 3 ) )
			{
				case '1.B':
					strContest = '1.Liga';
					break;
				case '2.B':
					strContest = '2.Liga';
					break;
				case 'DFB':
					strContest = 'DFB-Pokal';
					break;
				case 'UEF':
					strContest = 'UEFA-Cup';
					break;
				case 'Lig':
					strContest = 'Ligapokal';
					break;
				default:
					strContest = 'FS-Spiel';
					break;
			}
			htmlCols[nCol++].innerHTML = strContest;
		}
		else
		{
			// Gameday only for 'season'-Type
			htmlCols[nCol++].innerHTML = NodeText( SelectSingleNode( xmlMatch, 'strGameDay') );
		}
		// Date of Match
		htmlCols[nCol++].innerHTML = FormatDate( NodeText( SelectSingleNode( xmlMatch, 'dateGame') ) );
		// Contrahents
		htmlCols[nCol++].innerHTML = NodeText( SelectSingleNode( xmlMatch, 'strContrahents') );
		// Result
		htmlCols[nCol++].innerHTML = NodeText( SelectSingleNode( xmlMatch, 'strResult') );
		// set unique id
		htmlRow.id = 'row' + (i+1);
	}
}

function InitSelection()
{
	var listContest = document.getElementById( 'contest' );
	
	// select 1.BL
	listContest.selectedIndex = 0;
	OnSetContest( listContest );
}


function OnSetContest( selectList )
{
	strContest = selectList.value;
	
	var nType = selectList.selectedIndex;
	FillSeasonList( document.getElementById( 'season' ), nType );
	
	var strFilter = strContest + ' ' + strSeason;
		
	FillList( 0, strFilter );
}

function OnSetSeason( selectList )
{
	strSeason = selectList.value;
	var strFilter = strContest + ' ' + strSeason;
		
	FillList( 0, strFilter );
}

function FillSeasonList( list, nType )
{
	var i;
	// Definition of available Seasons dependend on Contest
	var aSeason = new Array();
	aSeason[0] = new Array();
	i=0;
	// 1. Liga
	aSeason[0][i++]='11/12';
	aSeason[0][i++]='10/11';
	aSeason[0][i++]='09/10';
	aSeason[0][i++]='04/05';
	aSeason[0][i++]='03/04';
	aSeason[0][i++]='01/02';
	aSeason[0][i++]='00/01';
	aSeason[0][i++]='99/00';
	aSeason[0][i++]='98/99';
	aSeason[0][i++]='96/97';
	aSeason[0][i++]='95/96';
	aSeason[0][i++]='94/95';

	i=0;
	// 2.Liga
	aSeason[1] = new Array();
	aSeason[1][i++]='08/09';
	aSeason[1][i++]='07/08';
	aSeason[1][i++]='06/07';
	aSeason[1][i++]='05/06';
	aSeason[1][i++]='02/03';
	aSeason[1][i++]='97/98';
	
	i=0;
	aSeason[2] = new Array();
	// DFB-Pokal
	aSeason[2][i++] ='11/12';
	aSeason[2][i++] ='10/11';
	aSeason[2][i++] ='09/10';
	aSeason[2][i++] ='08/09';
	aSeason[2][i++] ='07/08';
	aSeason[2][i++] ='06/07';
	aSeason[2][i++] ='05/06';
	aSeason[2][i++] ='04/05';
	aSeason[2][i++] ='03/04';
	aSeason[2][i++] ='02/03';
	aSeason[2][i++] ='01/02';
	aSeason[2][i++] ='00/01';
	aSeason[2][i++] ='99/00';
	aSeason[2][i++] ='98/99';
	aSeason[2][i++] ='97/98';
	aSeason[2][i++] ='96/97';
	aSeason[2][i++] ='95/96';
	aSeason[2][i++] ='94/95';
	
	i=0;
	// UEFA-Cup
	aSeason[3] = new Array();
	aSeason[3][i++] ='01/02';
	aSeason[3][i++] ='95/96';

	i=0;
	aSeason[4] = new Array();
	// FS-Spiele 
	aSeason[4][i++] ='11/12';
	aSeason[4][i++] ='10/11';
	aSeason[4][i++] ='09/10';
	aSeason[4][i++] ='08/09';
	aSeason[4][i++] ='07/08';
	aSeason[4][i++] ='06/07';
	aSeason[4][i++] ='05/06';
	aSeason[4][i++] ='04/05';
	aSeason[4][i++] ='03/04';
	aSeason[4][i++] ='02/03';
	aSeason[4][i++] ='01/02';
	aSeason[4][i++] ='00/01';
	
	// delete Content
	while( list.length > 0 )
	{
		list.remove( 0 );
	}
	
	// add listitems
	for( i = 0; i < aSeason[nType].length; i++ )
	{
		// create new Item and add at end of list
		var item = document.createElement("option");
		item.text = aSeason[nType][i]; 
		item.value = aSeason[nType][i];
		 
		// hardly surprising - IE makes his own business again....
		if( bIsIE )
		{
			list.add( item );
		}
		else
		{
			list.add( item, null );
		}
	}
	
	// select first entry
	list.selectedIndex = 0;
	strSeason = aSeason[nType][0];
}

function OnClickOpponent()
{
	var strOpponent = document.getElementById( 'editOpponent' ).value;
	FillList( 1, strOpponent );
}



