$(document).ready(function()
{	
		$(function() { // executed when $(document).ready()
		  $("#jpId").jPlayer( {
		    ready: function () {
		      $(this).jPlayer("setMedia", {
		        mp3: "/audio/van.mp3" // Defines the mp3 url
		      }); //.jPlayer("play"); // Attempts to Auto-Play the media
		    },
			
		    solution: "flash, html", // Flash with an HTML5 fallback.
		    swfPath: "/javascript/jQuery.jPlayer.2.1.0"
		  });
		});
		
	
	var loadCount = 0;
	var homeGoals = 0;
	var awayGoals = 0;
	
	var liveticker = {
		init: function() {
			setTimeout(function() {
				liveticker.refresh();
			}, 30000);
		},
		
		refresh: function() {
			
			$toralarm = $('#toralarm').text();
			loadCount++;
				
			var randomnumber=Math.floor(Math.random()*9999999);
			
			$.ajax({
			  url: '../data.xml?' + randomnumber,
			  dataType: "xml",
			  beforeSend: function() { $('#wait').fadeIn('slow'); },
			  complete: function() { $('#wait').fadeOut('slow'); },
			  success: function(xml) {

				/***
				*
				*	Game Information
				*
				***/
				
				var homeTeamId = 0;
				var awayTeamId = 0;
				var gameId = 0;
				var currentGameId = 0;
				var haieHome = 0;
				
				$(xml).find('game').each(function(){
					$game = $(this);
					gameId = $game.attr('id');
										
					if (gameId != currentGameId) {
						currentGameId = gameId;
						//loadCount = 1;		// Für was ist das gut?
					}
					
					homeTeamId = $game.attr('homeTeamId');
					awayTeamId = $game.attr('awayTeamId');
					
					// Fixed game data
					if(loadCount == 1) {
						$("#date").html($game.attr('date'));
						$("#venue").html($game.attr('venue'));

						$("#homeTeamId").html('<img src="images/team_'+$game.attr('homeTeamId')+'.png" />');
						$("#awayTeamId").html('<img src="images/team_'+$game.attr('awayTeamId')+'.png" />');

						$(xml).find('team[id='+homeTeamId+']').each(function(){ $('#homeTeamName').html($(this).find('name').text()); });
						$(xml).find('team[id='+awayTeamId+']').each(function(){ $('#awayTeamName').html($(this).find('name').text()); });
					}
					
					// Update data in case ist has changed
					if ( $('#scoreHome' ).html() != $game.attr('scoreHome')) {
						$('#scoreHome' ).hide().html($game.attr('scoreHome') ).fadeIn('slow');
					}
					if ( $('#scoreAway' ).html() != $game.attr('scoreAway')) {
						$('#scoreAway' ).hide().html( $game.attr('scoreAway') ).fadeIn('slow');
					}
					if ( $('#currentPeriod' ).html() != $game.attr('currentPeriod')) {
						$('#currentPeriod' ).hide().html( $game.attr('currentPeriod') ).fadeIn('slow');
					}
					if ( $('#currentPeriodTime' ).html() != $game.attr('currentPeriodTime')) {
						$('#currentPeriodTime' ).hide().html( $game.attr('currentPeriodTime') ).fadeIn('slow');
					}
					
					// $("#complete").html($game.attr('complete'));
			      });


				/***
				*
				*	Events
				*
				***/
				
				var eventsArray = new Array();
				var eventCounter = 0;
				
				$(xml).find('period').each(function(){
					var count = 0;
					var $period = $(this);
		      		eventsArray[$period.attr('number')] = new Array();
					
					if ($('#period_'+$period.attr('number')).length == 0) {
						if ($period.attr('number') <= 3) periodtitle = $period.attr('number')+'. Drittel';
						else {
							if($period.attr('number') == 4) periodtitle = 'Overtime';
							if($period.attr('number') == 5) periodtitle = 'Penalty Shoot-Out';
						}
						$('<li id="period_'+$period.attr('number')+'" class="scorestitle">'+periodtitle+'</li>').appendTo('#goals');
					}
					$period.find('event').each(function(){
					
						count++;
						var $event = $(this);
						var $time = $event.attr('time');
						
						if ($period.attr('number') > 1) {
							$time = parseInt($time) + (parseInt($period.attr('number'))-1)*20;
						}
						
						if ($time.length == 1) $time = "0"+$time;
						 
						var p1 = $(xml).find('player[id='+$event.attr('player1Id')+']');
						var p2 = $(xml).find('player[id='+$event.attr('player2Id')+']');
						var p3 = $(xml).find('player[id='+$event.attr('player3Id')+']');
						
						/* Goals */
						if ($event.attr('type')=="goal") {
							if ($('#goal_'+$event.attr('id')).length == 0) {
								var goalId = $event.attr('id');
								$(xml).find('player[id='+$event.attr('player1Id')+']').each(function(){
									var $parent = $(this).parent().parent();
									if ($parent.attr("id") == homeTeamId) {
										homeGoals++;
										// Play Goal Horn if goal is scored
										// Note: Haie Only
										if (homeTeamId == 1 && $toralarm == "an") if( $event.attr('timestamp') == $game.attr('timestamp')) $("#jpId").jPlayer("play");
									}
									else {
										awayGoals++;
 										if (awayTeamId == 1 && $toralarm == "an") if( $event.attr('timestamp') == $game.attr('timestamp')) $("#jpId").jPlayer("play");
									}
									$('<li id="goal_'+goalId+'"><span class="goalScore">'+homeGoals+' : '+awayGoals+'</span><span class="goalScorer">'+$(this).find("firstName").text() + ' ' + $(this).find("lastName").text()+'</span><span class="goalTime">'+$time+'.</span><span class="goalscoreteam"><img src="images/team_'+p1.parent().parent().attr("id")+'.png" width="20" /></span></li>').appendTo('#goals');
								});
								
								
							}
						}
						
						/* Penalties */
						if ($event.attr('type')=="penalty") {
							if ($('#penalty_'+$event.attr('id')).length == 0) {
								$(xml).find('player[id='+$event.attr('player1Id')+']').each(function(){
									$('<li id="penalty_'+$event.attr('id')+'"><span class="penaltyBlank"></span><span class="penaltyPlayer">'+$(this).find("firstName").text() + ' ' + $(this).find("lastName").text()+'</span><span class="goalTime">'+ $time+'.</span><span class="goalscoreteam"><img src="images/team_'+p1.parent().parent().attr("id")+'.png" width="20" /></span></li>').appendTo('#goals');
								});
							}
						}
						
						eventsArray[$period.attr('number')][count]  = {id:$event.attr('id'), time:$time, event:$event.text(), type:$event.attr('type'), team:p1.parent().parent().find("name").text(), teamId:p1.parent().parent().attr("id"), p1:p1.find("firstName").text() + ' ' + p1.find("lastName").text(), p2:p2.find("firstName").text() + ' ' + p2.find("lastName").text(), p3:p3.find("firstName").text() + ' ' + p3.find("lastName").text()};
						
					});
					
					eventCounter = eventCounter + count;

				});

				var api = $(".scrollable").data("scrollable");

				var content = "";
				var itemCount = 0;

				$.each(eventsArray, function(key, value){
					if (eventsArray[key] != undefined){
						$.each(value, function(k, v){
							if (v != undefined) {
								var eventText = v.event.replace(/<br \/>/g,"<br>");
								var content = "";
								// Check if element already exists in HTML
								if ($('#'+v.id).length == 0) {
									// No, it's a new element
									if (v.type == "ad") content = '<span class="special ad">' + jQuery.trim(eventText) + '</span>';
									else if (v.type == "special" || v.type == "periodEnd") content = '<span class="special">' + jQuery.trim(eventText) + '</span>';
									//Tor
									else if (v.type == "goal") {
										assist = "";
										if (v.p2.length > 1) {
											assist = " ("+v.p2;
											if (v.p3.length > 1) assist += ", "+v.p3;
											assist += ")"; 
										}

										//$("#homeTeamId").html('<img src="images/team_'+$game.attr('homeTeamId')+'.png" />');
										//$("#awayTeamId").html('<img src="images/team_'+$game.attr('awayTeamId')+'.png" />');
										
										content = '<span class="eventTime">' + v.time + '.</span><span class="eventTeam"><img src="images/team_'+ v.teamId +'.png" width="30" /></span><span class="goal">' + jQuery.trim(eventText) + '</span><br/><span class="goal_sub">Torschütze: '+v.p1+assist+'</span>';
									}
									// Strafe
									else if (v.type == "penalty") {
										content = '<span class="eventTime">' + v.time + '.</span><span class="eventTeam"><img src="images/team_'+ v.teamId +'.png" width="30" /></span><span class="penalty">' + jQuery.trim(eventText) + '</span><br/><span class="penalty_sub">Spieler: '+v.p1+'</span>';
									}
									// Normaler Eintrag
									else content = '<span class="eventTime">' + v.time + '.</span><span class="eventText">' + jQuery.trim(eventText) + '</span>';
									//else if (v.type == "penalty")
									
									content_container = '<div class="item" id="' + v.id + '">' + content + '</div>';
									$(content_container).hide().prependTo('.items').fadeIn('slow');
								} 
								// Aktualisierung funktioniert nicht immer (vor allem bei Mannschaftsaufstellung, vielleicht wgeen HTML?) 
								/*else {

									// Yes, it's already there: Update it in case the content has changed
									if ( $('#'+v.id+' .eventText' ).html() != jQuery.trim(eventText)) {
										// Content is different: Change
										$('#'+v.id+' .eventText' ).fadeOut('slow').html(jQuery.trim(eventText)).fadeIn('slow');
									}
								}*/
								
							}
						});
					}
				});	
				
				$('.items').fixHeight();
				
				/***
				*
				*	Delete elements if events got deleted
				*
				***/
				if ( eventCounter != $('.eventText').size() ) {
					$('.item').each( function(){
						var treffer = $(xml).find('event[id='+$(this).attr('id')+']').get();
						if (treffer === "" || treffer === null || treffer === undefined){
							// Remove the element
							$(this).fadeOut('slow', function() { $(this).remove(); });
						}
					});
				}
				
				
				/***
				*
				*	Roster
				*
				***/
				if (loadCount == 1) {

					$(xml).find('team').each(function(){
						var teamId = $(this).attr("id");
					
						if(teamId === homeTeamId) $('<li class="rostertitle">'+$(this).find("name").text()+'</li>').appendTo('#home');
						else $('<li class="rostertitle">'+$(this).find("name").text()+'</li>').appendTo('#away');
						
						var playerAry = new Array();
						var i=0;
						
						$(this).find('player').each(function(){
							playerAry[i] = new Object();
							playerAry[i]["jerseyNumber"] = $(this).attr("jerseyNumber");
							playerAry[i]["firstName"] = $(this).find("firstName").text();
							playerAry[i]["lastName"] = $(this).find("lastName").text();
							i++;
						});
						
						// Array Bubble sortieren
						for (ii=0; ii<playerAry.length; ii++) {
							for (jj=0; jj<playerAry.length-1; jj++) {
								if(parseInt(playerAry[jj]["jerseyNumber"]) > parseInt(playerAry[jj+1]["jerseyNumber"])) {
									var temp = playerAry[jj];
									playerAry[jj] = playerAry[jj+1];
									playerAry[jj+1] = temp;
								}
							}
						}
						
						for (ii=0; ii<playerAry.length; ii++) {
							rostercontent = '<li><span class="rosterNumber">'+playerAry[ii]["jerseyNumber"]+'</span><span class="rosterName">' + playerAry[ii]["firstName"] + ' ' + playerAry[ii]["lastName"] + '</span></li>';
							if(teamId === homeTeamId) $(rostercontent).appendTo('#home');
							else $(rostercontent).appendTo('#away');						
						}	
						
					});
				}
				
				/* Tore */
				/*
				$(xml).find('event[type="goal"]').each(function(){
					if ($('#goal_'+$(this).attr('id')).length == 0) {
						var goalId = $(this).attr('id');
						var goalTime = $(this).attr('time');
						$(xml).find('player[id='+$(this).attr('player1Id')+']').each(function(){
							var $parent = $(this).parent().parent();
							if ($parent.attr("id") == homeTeamId) homeGoals++;
							else awayGoals++;
							$('<li id="goal_'+goalId+'"><span class="goalScore">'+homeGoals+' : '+awayGoals+'</span><span class="goalScorer">'+$(this).find("firstName").text() + ' ' + $(this).find("lastName").text()+'</span><span class="goalTime">('+goalTime+'.)</span></li>').appendTo('#goals');
						});
					}
				});
				*/

			  }
			});
			
			liveticker.init();

		}

	}
	
	// execute your scripts when DOM is ready. this is a good habit
	$(function() {		
		// initialize scrollable with mousewheel support
		$(".scrollable").scrollable({ vertical: true, mousewheel: true });	
	});

	liveticker.refresh();

	// setup ul.tabs to work as tabs for each div directly under div.panes
	$("ul.tabs").tabs("div.panes > div");
	
});

function reloadLiveticker() {
	return; liveticker.refresh();
}


