
var select = null;
var fselect = null;

function cleanRaportTabXXXX()
{
	var table = document.getElementById("gameReportTabTableId");
  var container = document.getElementById("contentDiv");
  	
	while ( table.nextSibling)
	{
		container.removeChild( table.nextSibling);
	}
}


function drawFinanceMenus()
{
  var container = document.getElementById("contentDiv");;
  container.innerHTML = "<table id=\"financeTabTableId\" cellspacing=\"0\"></table>";

  var table = document.getElementById("financeTabTableId");
  table.className = "tabTable";
  tabRow = table.insertRow(0);
 
  tabCreationIndex = 0;
  createTab("Yhteenveto", "financeMainTab", "financeTabClicked");
  cell = tabRow.insertCell( tabCreationIndex);

//  var table = document.createElement("table");  
  row = table.insertRow(1);
  cell = row.insertCell(0);
  cell.id = "gameTabHeaderCellId";
  cell.colSpan = "5";
  cell.className = "tabMenuBase fDefault";
  cell.innerHTML = "Treeni- ja pelimaksut";
  
  if ( username == "hakki" || username == "Hakki")
  {
  	headerTable = drawHeaderTable( "Valitse pelaaja:", container);
  	
  	var params = "rid=getFinanceUsers";
  	
	  xmlHttpRequest( "common/server/finance.php", params, 0);
  	var xml = xmlParser( xmlHttp.responseText);  	
  	//testAlert( xmlHttp.responseText);  	
  
  	var users = xml.getElementsByTagName("user"); 	
  	
  	select = document.createElement("select");
  	select.onchange = selectChanged;
  	select.style.marginLeft = "30px";
  	select.style.width = "100px";
  	
  	for ( var i = 0 ; i < users.length; i++)
  	{
  		var option = document.createElement("option");
  		option.text = users[i].attributes.getNamedItem("name").nodeValue;
  		
  		if ( currentBrowser == browserIE)
  		{
  			select.add( option);
  		} else
  		{
  			select.add( option, null);
  		}
  	}
  	
  	headerTable.rows[0].cells[0].appendChild( select);
  	
  	var fusers = xml.getElementsByTagName("fuser"); 	
  	
  	fselect = document.createElement("select");
  	fselect.onchange = fSelectChanged;
  	fselect.style.marginLeft = "30px";
  	fselect.style.width = "100px";
  	
  	for ( var i = 0 ; i < fusers.length; i++)
  	{
  		var option = document.createElement("option");
  		option.text = fusers[i].attributes.getNamedItem("name").nodeValue;
 
   		if ( currentBrowser == browserIE)
  		{
  			fselect.add( option);
  		} else
  		{
  			fselect.add( option, null);
  		}
  	}
  	
  	headerTable.rows[0].cells[0].appendChild( fselect);  	
  	
  }

}

function drawHeaderTable( header, container)
{
	var table = document.createElement("table");

	table.className = "financeHeaderTableClass";
	table.style.marginTop = "10px";
	var row = table.insertRow(0);
	var cell = row.insertCell(0);
//	cell.id = "lastResultHeaderCellId";
	cell.className = "financeHeaderClass fDefault";
	cell.innerHTML = header;
	
	container.appendChild( table);
	
	return table;
}


function loadFinance( view, fUser)
{
  var container = document.getElementById("contentDiv");
  var ready = document.getElementById("financeTabTableId");

	if ( !ready)
	{		
		drawFinanceMenus();
		
		var params = "rid=getTextValue";
		params += "&textid0=financeInfo";

		xmlHttpRequest( "common/server/getters.php", params, 0);
	 	var xml = xmlParser( xmlHttp.responseText);  	
	  //testAlert( xmlHttp.responseText);  				
	  
  	var textList = xml.getElementsByTagName("text");	
  	var str = "";
  
  	if ( textList.length > 0)
  	{
  		str = textList[0].childNodes[0].nodeValue;
  		
  		var div = document.createElement("div");
  		div.innerHTML = str;  		
  		container.appendChild( div);  		
	  }
		
	}

	var params = "rid=getPersonFinanceStatus";
	
 	if ( testMode )
 	{
     params = "rid=TgetPersonFinanceStatus";
 	}
	
	
	params += "&sid=" + sessionid;
	params += "&person=" + fUser;
	
	//testAlert( params);
	
	xmlHttpRequest( "common/server/finance.php", params, 0);
 	var xml = xmlParser( xmlHttp.responseText);  	
 	testAlert( xmlHttp.responseText);  		

	if ( !ready)
	{
		drawHeaderTable( "Maksusaldot", container);
	}
	
	balanceView( xml.getElementsByTagName("eventbalance"), xml.getElementsByTagName("extraBalance"));
	
	if ( !ready)
	{
		drawHeaderTable( "Maksuja", container);
	}	
	
	billsView( xml.getElementsByTagName("payin"));

	if ( !ready)
	{
		drawHeaderTable( "Viimeisimmät vuorot, pelit ja maksut", container);
	}	
	
	
	eventsView( xml.getElementsByTagName("event"));
	var cell = document.getElementById("gameTabHeaderCellId");
	cell.innerHTML = "Treeni- ja pelimaksut (" + fUser + ")";
} 

function selectChanged()
{
	var newUser = select.options[ select.selectedIndex].text;
	loadFinance( null, newUser);
}

function fSelectChanged()
{
	var newUser = fselect.options[ fselect.selectedIndex].text;
	loadFinance( null, newUser);
}

function balanceView( balances, extraBalance)
{
  
	var table = document.getElementById("balanceTableId");
	
	if ( table == null)
	{
		table = document.createElement("table");
		table.id = "balanceTableId";
		table.className = "financeHeaderTableClass";
		table.style.marginTop = "15px";
		document.getElementById("contentDiv").appendChild( table);
	} else
	{
		while ( table.rows.length ) table.deleteRow(0);
	}
	
	var rowIndex = 0;
	var row = table.insertRow(rowIndex++);
	
	addCell( row, 0, "", "fDefaultB", "Maksulaji");
	addCell( row, 1, "", "fDefaultB", "Hinta");
	addCell( row, 2, "", "fDefaultB", "Maksanut");
	addCell( row, 3, "", "fDefaultB", "Saldo");
	

	var totalCost = 0;
	var totalPaid = 0;

  if ( extraBalance.length )
  {
		var row = table.insertRow(rowIndex++);
		
		extra = extraBalance[0];
	
		addCell( row, 0, "", "fDefault", extra.attributes.getNamedItem("name").nodeValue).style.color = "green";
		
		addCell( row, 1, "", "fDefault", "-").style.color = "green";

		var paid = parseFloat( extra.attributes.getNamedItem("paid").nodeValue);
		totalPaid += paid;
		var num = new Number( paid);
		
		addCell( row, 2, "", "fDefault", num.toFixed( 2)).style.color = "green";


		var total = paid;
		var num = new Number( total);
		var cell = addCell( row, 3, "", "fDefault", num.toFixed( 2));
		cell.style.color = "green";
  }

	for ( var i  = 0; i < balances.length; i++)
	{
		var row = table.insertRow(rowIndex++);
		balance = balances[i];
	
		addCell( row, 0, "", "fDefault", balance.attributes.getNamedItem("name").nodeValue);
		
		var cost = parseFloat( balance.attributes.getNamedItem("cost").nodeValue);
		totalCost += cost;
		var num = new Number( cost);
		
		addCell( row, 1, "", "fDefault", num.toFixed( 2));

		var paid = parseFloat( balance.attributes.getNamedItem("paid").nodeValue);
		totalPaid += paid;
		var num = new Number( paid);
		
		addCell( row, 2, "", "fDefault", num.toFixed( 2));

		var total = paid - cost;
		var num = new Number( total);
		var cell = addCell( row, 3, "", "fDefault", num.toFixed( 2));
		if ( total < 0 )
		{
			cell.style.color = "red";
		}
	}
	
	row = table.insertRow( rowIndex++);
	addCell( row, 0, "", "", "");

	var num = new Number( totalCost);
	var cell = addCell( row, 1, "", "fDefault", num.toFixed( 2));
	
	var num = new Number( totalPaid);
	var cell = addCell( row, 2, "", "fDefault", num.toFixed( 2));
	
	var total = totalPaid - totalCost;
	var num = new Number( total);
	var cell = addCell( row, 3, "", "fDefault", num.toFixed( 2));
	if ( total < 0 )
	{
		cell.style.color = "red";
	}
}

function eventsView( events)
{
	var table = document.getElementById("eventsTableId");

	if ( table == null)
	{
		table = document.createElement("table");
		table.id = "eventsTableId";
		table.className = "financeHeaderTableClass";
		table.style.marginTop = "15px";
		document.getElementById("contentDiv").appendChild( table);
	} else
	{
		while ( table.rows.length ) table.deleteRow(0);
	}
	
	var rowIndex = 0;
	var row = table.insertRow(rowIndex++);
	addCell( row, 0, "", "fDefaultB", "Tapahtuma");
	addCell( row, 1, "", "fDefaultB", "Päiväys");
	
	for ( var i = 0; i < events.length; i++)
	{
		var row = table.insertRow(rowIndex++);
	
		addCell( row, 0, "", "fDefault", events[i].attributes.getNamedItem("name").nodeValue);
		
		var dateStr = events[i].attributes.getNamedItem("date").nodeValue;
		var result = dateStr.split( /-/); 
		var jsDate = new Date();
		jsDate.setFullYear( result[0]);
		jsDate.setMonth( result[1] - 1);
		jsDate.setDate( result[2]);
		
		addCell( row, 1, "", "fDefault", makeDate( jsDate, false));

	}
	

}

function billsView( bills)
{
	var table = document.getElementById("billsTableId");
	
	if ( table == null)
	{
		table = document.createElement("table");
		table.id = "billsTableId";
		table.className = "financeHeaderTableClass";
		table.style.marginTop = "15px";
		document.getElementById("contentDiv").appendChild( table);
	} else
	{
		while ( table.rows.length ) table.deleteRow(0);
	}
	
	var rowIndex = 0;
	var row = table.insertRow(rowIndex++);
	
	addCell( row, 0, "", "fDefaultB", "Päiväys");
	addCell( row, 1, "", "fDefaultB", "Summa");
	addCell( row, 2, "", "fDefaultB", "Viesti");
	
	for ( var i  = 0; i < bills.length; i++)
	{
		var row = table.insertRow(rowIndex++);
		bill = bills[i];
	
		var amount = parseFloat( bill.attributes.getNamedItem("amount").nodeValue);
		var timestamp = bill.attributes.getNamedItem("date").nodeValue;
    var comment = bill.attributes.getNamedItem("comment").nodeValue;

    var dateObj = new Date( timestamp * 1000);
    var timestr = makeDate( dateObj, 0);
		
		var dateCell = addCell( row, 0, "", "fDefault", timestr);

		var dateCell = addCell( row, 1, "", "fDefault", amount.toFixed(2));
		var dateCell = addCell( row, 2, "", "fDefault", comment);
	}
}	

function addCell( row, index, id, className, innerHTML) 
{
	var cell = row.insertCell( index);
	cell.id = id;
	cell.className = className;
	cell.innerHTML = innerHTML;
	
	return cell;
}
