displayed_category = 0;
displayed_info = 'formation';

tickerid = window.location.search.toQueryParams().tickerid;
if(!tickerid) {
	tickerid = 0;
}

pe = null

function refresh()
{
	fetch_info();
	
	fetch_categories();
	
	fetch_messages();
	
	fetch_formations();
	
	if(pe != null) {
		pe.stop();
	}
	
	pe = refresh_timer();
}


function display_info(m)
{
	var content = '';
	
	content = content + '<table class="result">';
	content = content + '<tr>';
	content = content + '<td class="emblem">';
	content = content + '<img src="/pics/liveticker/' + m.logo1 + '" />';
	content = content + '</td>';
	content = content + '<td class="team1">';
	content = content + m.team1;
	content = content + '</td>';
	content = content + '<td class="goals" id="goals">';
	content = content + m.goals1 + ":" + m.goals2;
	content = content + '</td>';
	content = content + '<td class="nVnEgoals" id="nVnEgoals">';
	content = content + '</td>';	
	content = content + '<td class="team2">';
	content = content + m.team2;
	content = content + '</td>';
	content = content + '<td class="emblem">';
	content = content + '<img src="/pics/liveticker/' + m.logo2 + '" />';
	content = content + '</td>';
	content = content + '</tr>';
	content = content + '</table>';
	
	document.getElementById('ticker_info').innerHTML = content;
	
	content = '<table cellspacing="0">';
	
	var style_class = 'even';
	var row_begin = 1;
	for(i = 0, size = m.metadata.length; i < size; i++) {
		if(row_begin == 1) {
			content = content + '<tr class="' + style_class + '">';
		}
		content = content + '<td class="name">';
		content = content + m.metadata[i].name;
		content = content + ':</td>';
		content = content + '<td class="value">';
		if(m.metadata[i].value != '') {
			content = content + m.metadata[i].value;
		} else {
			content = content + 'keine Angabe';
		}
		content = content + '</td>';
		if(row_begin == 0) {
			content = content + '</tr>';
		}
		if(row_begin == 1) {
			row_begin = 0;
		} else {
			row_begin = 1;
			if(style_class == 'even') {
				style_class = 'odd';
			} else {
				style_class = 'even';
			}
		}
	}
	content = content + '</table>';
	document.getElementById('ticker_metadata').innerHTML = content;
}

function display_corners(info)
{
	var style_class = 'even';
	var content = "<table cellspacing='0' style='width:684px;'>";
	content = content + "<tr>";
	content = content + "<td class='chances'>Eckballverhältnis</td>";
	content = content + "<td class='chances'>Chancenverhältnis</td>";
	content = content + "</tr>";
	
	content = content + "<tr class='" + style_class + "'>";
	content = content + "<td class='chances'>" + info.corners1 + ":" + info.corners2 + "</td>";
	content = content + "<td class='chances'>"+ info.chances1 + ":" + info.chances2 + "</td>";
	content = content + "</tr>";	
	
	content = content + "</table>";

	$("ticker_statistics_corners").innerHTML = content;
}

function display_chances(info)
{
	var content = "Chancenverhältnis ";
	content = content + info.chances1 + ":" + info.chances2;
	$("ticker_statistics_chances").innerHTML = content;
}

function fetch_info()
{
	var date = new Date();
	var minutes = date.getMinutes();
	if(minutes < 10) {
		minutes = "0" + minutes;
	}
	var seconds = date.getSeconds();
	if(seconds < 10) {
		seconds = "0" + seconds;
	}
	var url = '/pics/liveticker/json/' + tickerid + '/info.json?' + minutes + seconds;

	var myrequest = new Ajax.Request(url, {
		method: "get",
		onSuccess: function(req) {
			var info = eval(req.responseText);
			display_info(info[0]);
			display_corners(info[0]);
			display_chances(info[0]);
		}
	});
}


function display_categories(r)
{
	var c = "ticker_categories_buttons";
	var categories  = eval(r.responseText);
	
	var content = '';
	for(i = 0; i < categories.length; i++) {
		content = content + '<a href="javascript:switch_category(' + categories[i].categoryid + ')" class="category_switch">';
		content = content + '<img src="/pics/liveticker/1/' + categories[i].icon + '">';
		content = content + '</a>';
	}
	document.getElementById(c).innerHTML = content;
}

function fetch_categories()
{
	var date = new Date();
	var minutes = date.getMinutes();
	if(minutes < 10) {
		minutes = "0" + minutes;
	}
	var seconds = date.getSeconds();
	if(seconds < 10) {
		seconds = "0" + seconds;
	}
	var url = '/pics/liveticker/json/' + tickerid + '/categories.json?' + minutes + seconds;

	var myrequest = new Ajax.Request(url, {
		method: "get",
		onSuccess: display_categories 
	});
}


function display_messages(req)
{
	var c = 'ticker_messages';
	var messages = eval(req.responseText);
	if(tickerid > 0) {
		messages.reverse();
	}
	var content = '<table>';
	for(i = 0; i < messages.length; i++) {
		var m = messages[i];
		content = content + '<tr class="messages">';
		
		content = content + '<td class="minute_icon_logo">';
		if(m.running > 0) {
			var end_minute = Number(m.start_minute) + Number(m.length);
			var difference = end_minute - m.minute;
			if(difference < 0) {
				var minute = end_minute +  '. Minute + ' + Math.abs(difference);
			} else {
				var minute = m.minute + '. Minute';
			}
			content = content + '<div class="minute">' + minute + '</div>';
		}
		
		if(m.icon != '') {
			content = content + '<img src="' + m.icon + '" class="message_icon" />';
		}
		content = content + '</td>';
		
		content = content + '<td class="comment"><div>';
		content = content + m.message;
		content = content + "</div></td>";
		
		content = content + '</tr>';
	}
	content = content + '</table>';
	document.getElementById(c).innerHTML = content;
}

function display_statistics(req)
{
	var messages = eval(req.responseText);
	var cards = $A();
	var scorers = $A();
	var exchanges = $A();
	
	for(i = 0; i < messages.length; i++) {
		if(messages[i].category == 2 || messages[i].category == 3) {
			cards.push(messages[i]);
		}
		if(messages[i].category == 1) {
			scorers.push(messages[i]);
		}
		
		if(messages[i].category == 4) {
			exchanges.push(messages[i]);
		}
	}
	
	display_scorers(scorers);
	display_cards(cards);
	display_exchanges(exchanges);
}

function display_goals(req){
	
	var goals = eval(req.responseText).reverse();
	var result = {
			team1: [ 0, 0, 0],
			team2: [ 0, 0, 0]
	};
	var halftime = 0;
	for(i = 0; i < goals.length; i++) {
		
//		switch(goals[i].start_minute) {
//		case "0":
//		case "45":
//			halftime = 0;
//			break;
//		case "90":
//		case "105":
//			halftime = 1;
//			break;
//		default:
//			halftime = 2;
//			break;
//		}
		
		if(goals[i].start_minute == "0" || goals[i].start_minute == "45"){
			halftime = 0;
		}else if((goals[i].start_minute == "90" || goals[i].start_minute == "105") && goals[i].running == "1"){
			halftime = 1;
		}else if(goals[i].start_minute == "105" && goals[i].running == "0"){
			halftime = 2;
		}	
		
		
		if(goals[i].team == 1) {
			result.team1[halftime] = result.team1[halftime] + 1;
		} else if(goals[i].team == 2) {
			result.team2[halftime]++;
		}
	}
	
	// var goals = result.team1[0] + ":" + result.team2[0];
	var goals = result.goals1 + ":" + goals2;
	if( parseInt(result.team1[1])>0){
		var nVgoals ="  (" + parseInt(result.team1[0]+result.team1[1]) + ":" + parseInt(result.team2[0]+result.team2[1]) + ") n.V.";
	}else{
		var nVgoals =" ";
	}
	
	if( parseInt(result.team1[2])>0){
		var nEgoals = "  (" + parseInt(result.team1[0]+result.team1[1]+result.team1[2]) + ":" + parseInt(result.team1[0]+result.team2[1]+result.team2[2]) + ") n.E.";
	}else{
		var nEgoals = "";
	}	
	
	var nVnEgoals = nVgoals + nEgoals;
	
	$('nVnEgoals').innerHTML = nVgoals + nEgoals;
	$('goals').innerHTML = goals;
	
}

function display_scorers(events)
{
	events.reverse();
	var goals1 = 0;
	var goals2 = 0;
	var style_class = 'even';
	var content = "<div id='asdfasdf'></div><table cellspacing='0'>";
	content = content + "<tr>";
	content = content + "<th colspan='4'>Torschützen</th></tr>";
	content = content + "<tr>";
	content = content + "<td class='minute'>Minute</td>";
	content = content + "<td class='goals'>Tore</td>";
	content = content + "<td class='name'>Torschütze</td>";
	content = content + "<td>&nbsp;</td>";
	content = content + "</tr>";	
	
	for(i = 0; i < events.length; i++) {
		content = content + "<tr class='" + style_class + "'>";
		content = content + "<td class='minute'>" + events[i].minute + "</td>";
		content = content + "<td class='goals'>" + events[i].goals1 + ":" + events[i].goals2 + "</td>";
		content = content + "<td class='name'>" + events[i].player1.name+ "</td>";
		content = content + "<td><img src='" + events[i].icon_small + "' /></td>";
		content = content + "</tr>";
		
		if(style_class == 'even') {
			style_class = 'odd';
		} else {
			style_class = 'even';
		}		
	}
	content = content + "</table>";
	
	$("ticker_statistics_scorer").innerHTML = content;
}

function display_cards(events)
{
	events.reverse();
	var goals1 = 0;
	var goals2 = 0;
	var style_class = 'even';
	var content = "<table cellspacing='0'>";
	content = content + "<tr>";
	content = content + "<th colspan='3'>Karten</th></tr>";
	content = content + "<tr>";
	content = content + "<td class='minute'>Minute</td>";
	content = content + "<td class='card'>Karte</td>";
	content = content + "<td class='name'>Spielername</td>";
	content = content + "</tr>";	
	
	for(i = 0; i < events.length; i++) {
		content = content + "<tr class='" + style_class + "'>";
		content = content + "<td class='minute'>" + events[i].minute + "</td>";
		content = content + "<td class='card'><img src='" + events[i].icon_small + "' /></td>";
		content = content + "<td class='name'>" + events[i].player1.name+ "</td>";
		content = content + "</tr>";		
		
		if(style_class == 'even') {
			style_class = 'odd';
		} else {
			style_class = 'even';
		}
	}
	content = content + "</table>";
	$("ticker_statistics_cards").innerHTML = content;
}

function display_exchanges(events)
{
	events.reverse();
	var style_class = 'even';
	var content = "<table cellspacing=\"0\" class=\"statistic_views\" >";
	content = content + "<tr>";
	content = content + "<th colspan='4' style=\"text-align:left;\">Auswechslungen</th></tr>";
	content = content + "<tr>";
	content = content + "<td class='minute'>Minute</td>";
	content = content + "<td class='name_exchanges' style=\"text-align:right;\">Spielername (in)</td>";
	content = content + "<td class='icon_exchanges'>kommt für</td>";
	content = content + "<td class='name_exchanges' style=\"text-align:left;\">Spielername (out)</td>";
	content = content + "</tr>";
	
	for(i = 0; i < events.length; i++) {
		content = content + "<tr class='" + style_class + "'>";
		content = content + "<td class='minute'>" + events[i].minute + "</td>";
		content = content + "<td class='name_exchanges'style=\"text-align:right;\">" + events[i].player2.name + "</td>";
		content = content + "<td class='icon_exchanges'><img src='" + events[i].icon_small + "' /></td>";
		content = content + "<td class='name_exchanges' style=\"text-align:left;\">" + events[i].player1.name + "</td>";
		content = content + "</tr>";
		
		if(style_class == 'even') {
			style_class = 'odd';
		} else {
			style_class = 'even';
		}		
	}
	content = content + "</table>";
	$("ticker_statistics_exchanges").innerHTML = content;
}
 
function fetch_messages()
{
	var date = new Date();
	var minutes = date.getMinutes();
	if(minutes < 10) {
		minutes = "0" + minutes;
	}
	var seconds = date.getSeconds();
	if(seconds < 10) {
		seconds = "0" + seconds;
	}
	var url = '/pics/liveticker/json/' + tickerid + '/messages_' + displayed_category + '.json?' + minutes + seconds;
	var myrequest = new Ajax.Request(url, {
		method: "get",
		onSuccess: display_messages 
	});
	var url = '/pics/liveticker/json/' + tickerid + '/messages_0.json?' + minutes + seconds;
	var myrequest = new Ajax.Request(url, {
		method: "get",
		onSuccess: display_statistics
	});
	var url = '/pics/liveticker/json/' + tickerid + '/messages_1.json?' + minutes + seconds;
	var myrequest = new Ajax.Request(url, {
		method: "get",
		onSuccess: display_goals
	});	
}

function display_formations(f)
{
	var content = '<table cellspacing="0">';
	var style_class = 'even';
	var playing_class = 'playing';
	for(i = 0, size = f[0].length; i < size; i++) {
		if(f[0][i].playing == 0) {
			playing_class = 'notplaying';
		} else {
			playing_class = 'playing';
		}
		
		content = content + '<tr class="' + style_class + '">';
		content = content + '<td class="number ' + playing_class + '">';
		content = content + f[0][i].number;
		content = content + '</td>';
		content = content + '<td class="' + playing_class + '">';
		content = content + f[0][i].position_shortcut;
		content = content + '</td>';
		content = content + '<td class="name ' + playing_class + '">';
		if(f[0][i].captain==1){
			content = content + f[0][i].name + " ( C )";
		}else{ 
			content = content + f[0][i].name;	
		}
		content = content + '</td>';
		content = content + '<td class="events ' + playing_class + '">';
		sizej = f[0][i].events.length;
		if(sizej > 0) {
			for(j = 0; j < sizej; j++) {
				img = f[0][i].events[j].icon_small
				content = content + ' <img src="' + img + '" />';
				if(f[0][i].events[j].count > 0) {
					content = content + ' ' + f[0][i].events[j].count;
				}
			}
		} else {
			content = content + '&nbsp;';
		}
		content = content + '</td>';
		
		if(f[1][i].playing == 0) {
			playing_class = 'notplaying';
		} else {
			playing_class = 'playing';
		}
		
		content = content + '<td class="number ' + playing_class + '">';
		content = content + f[1][i].number;
		content = content + '</td>';
		content = content + '<td class="' + playing_class + '">';
		content = content + f[1][i].position_shortcut;
		content = content + '</td>';
		content = content + '<td class="name ' + playing_class + '">';
		if(f[1][i].captain==1){
			content = content + f[1][i].name + " ( C )";
		}else{ 
			content = content + f[1][i].name;	
		}
		content = content + '</td>';
		content = content + '<td class="events ' + playing_class + '">';
		sizej = f[1][i].events.length;
		if(sizej > 0) {
			for(j = 0; j < sizej; j++) {
				img = f[1][i].events[j].icon_small
				content = content + ' <img src="' + img + '" />';
				if(f[1][i].events[j].count > 0) {
					content = content + ' ' + f[1][i].events[j].count;
				}
			}
		} else {
			content = content + '&nbsp;';
		}
		content = content + '</td>';
		content = content + '</tr>';
		
		if(style_class == 'even') {
			style_class = 'odd';
		} else {
			style_class = 'even';
		}
	}
	content = content + '</table>';
	
	document.getElementById('ticker_formation').innerHTML = content;
}

function display_startFormations(temp)
{
	var content = "<table cellspacing='0' style='width:684px;'>";
	content = content + "<tr><th colspan='6'>Startaufstellung</th></tr>";
	
	var num_players = 0;
	var f = $A();
	f[0] = $H();
	f[1] = $H();
	
	for(i = 0; i < temp.length; i++) {
		for(j = 0; j < temp[i].length; j++) {
			if(temp[i][j].start > 0) {
				var key = parseInt(temp[i][j].sort);
				f[i].set(key, temp[i][j]);
				
				if(key > num_players) {
					num_players = key;
				}
			}
		}
	}
	
	var style_class = 'even';
	for(i = 1; i <= num_players; i++) {
		content = content + '<tr class="' + style_class + '">';
		content = content + '<td class="number playing">';
		content = content + f[0].get(i).number;
		content = content + '</td>';
		content = content + '<td class="playing">';
		content = content + f[0].get(i).position_shortcut;
		content = content + '</td>';
		content = content + '<td class="name playing">';
		if(f[0].get(i).captain==1){
			content = content + f[0].get(i).name + " ( C )";
		}else{ 
			content = content + f[0].get(i).name;	
		}
		content = content + '</td>';
		
		content = content + '<td class="number playing">';
		content = content + f[1].get(i).number;
		content = content + '</td>';
		content = content + '<td class="playing">';
		content = content + f[1].get(i).position_shortcut;
		content = content + '</td>';
		content = content + '<td class="name playing">';
		if(f[1].get(i).captain==1){
			content = content + f[1].get(i).name + " ( C )";
		}else{ 
			content = content + f[1].get(i).name;	
		}
		content = content + '</td>';
		content = content + '</tr>';
		
		if(style_class == 'even') {
			style_class = 'odd';
		} else {
			style_class = 'even';
		}
	}

	content = content + "</table>";
	
	$('ticker_statistics_start_formation').innerHTML = content;
}

function fetch_formations()
{
	var date = new Date();
	var minutes = date.getMinutes();
	if(minutes < 10) {
		minutes = "0" + minutes;
	}
	var seconds = date.getSeconds();
	if(seconds < 10) {
		seconds = "0" + seconds;
	}
	var url = '/pics/liveticker/json/' + tickerid + '/formation.json?' + minutes + seconds;

	var myrequest = new Ajax.Request(url, {
		method: "get",
		onSuccess: function(req) {
			var player = eval(req.responseText);
			display_formations(player);
			display_startFormations(player)
		}
	});
}

function refresh_timer()
{
	rest_time = 60;
	return new PeriodicalExecuter(function(pe) {
		$('ticker_countdown').innerHTML = rest_time;
		rest_time--;
		
		if(rest_time < 1) {
			refresh();
		} 
	}, 1);
}


function switch_category(category)
{
	displayed_category = category;
	fetch_messages();
}


function switch_info(type)
{
	document.getElementById('ticker_' + displayed_info).style.display = 'none';
	document.getElementById('ticker_info_switch_' + displayed_info).style.display = 'none';
	switch(type) {
	case 'metadata':
		displayed_info = 'metadata';
		break;
	case 'statistik':
		displayed_info = 'statistik';
		break;		
	default:
		displayed_info = 'formation';
		break;
	}
	document.getElementById('ticker_' + displayed_info).style.display = 'block';
	document.getElementById('ticker_info_switch_' + displayed_info).style.display = 'block';
}