/**
 * Script to Return 4 upcoming and likely recent scores
 *
 * Kenton Hankins
 * 3-17-10
 */


function no_game_done(data,id,game_num_array){
	
	//Displays the first 4 games based off of game number
	
	var game_holder="#"+id;
	
	var smallest = 5000;
	for(var i = 0;i < game_num_array.length; i++) 
	{
    	if (game_num_array[i] < smallest) {
        	smallest = game_num_array[i];
    	}
	}
	
	//none of the games have posted a score
	var return_game_num_array = new Array();
    return_game_num_array.push(smallest); //last game with score
    smallest++;
    return_game_num_array.push(smallest); //game before last with score
    smallest++;
    return_game_num_array.push(smallest); //2 games before last with score
    smallest++;
    return_game_num_array.push(smallest); //game after last without score   
    
    
    
    var round_array = data["rounds"];
    
     //builds game number array 
    for (var i in round_array) {
        var round = round_array[i];
        
        for (var j in round) {
            var game_array = round[j];
            
            for (var k in game_array) {
                var game_num = game_array[k]["game_num"];
               
			    for (var x = 0; x < 4; x++) {
                    if (game_num == return_game_num_array[x]) {
                        
                        
						var t1 = game_array[k]['t1'];
                        var t2 = game_array[k]['t2'];
                        var s1 = game_array[k]['s1'];
                        var s2 = game_array[k]['s2'];
                        var details = "Game " + game_array[k]['game_num'];
                        
						
                        details = details + ': ' + game_array[k]['location'];
                        details = details + ', ' + game_array[k]['time'];
						
						var html='<div id="game_'+game_num+'" class="match m_round1">';
						
						html+='<table class="teams">';
						
						html+='<tr height="16px">';
						html+='<td><p class="info_team">'+t1+'</p></td>';
						html+='<td><p class="info_score">'+s1+'</p></td>';
						html+='</tr>';
						
						
						html+='<tr height="23px">';
						html+='<td><p class="info_team">'+t2+'</p></td>';
						html+='<td><p class="info_score">'+s2+'</p></td>';
						html+='</tr>';
						
						
						html+='<tr>';
						html+='<td colspan="2">';
						if(t1 && t2)
						{
							html+='<div class="game_time">'+details+'</div>';							
						}
						else{
							html+='<div class="game_time_no_teams">'+details+'</div>';
						}
						html+='</td>';
						html+='</tr>';
						html+='</table>';
						html+='</div>';
						
						$(game_holder).append(html);
						
                    }
                }
            }
        }
    }
	
	$(game_holder).cycle('fade');

}

function some_done(data,id,game_num_array,latest_game_index){

    //some of the games have finished look 2 back and 1 forward
    var game_holder="#"+id;   
    var return_game_num_array = new Array();
    return_game_num_array.push(game_num_array[latest_game_index]); //last game with score
    return_game_num_array.push(game_num_array[latest_game_index - 1]); //game before last with score
    return_game_num_array.push(game_num_array[latest_game_index - 2]); //2 games before last with score
    return_game_num_array.push(game_num_array[latest_game_index + 1]); //game after last without score
    
    var round_array = data["rounds"];
    
    for (var i in round_array) {
        var round = round_array[i];
        
        for (var j in round) {
            var game_array = round[j];
            
            for (var k in game_array) {
                var game_num = game_array[k]["game_num"];
               
			    for (var x = 0; x < 4; x++) {
                    if (game_num == return_game_num_array[x]) {
                        
                        
						var t1 = game_array[k]['t1'];
                        var t2 = game_array[k]['t2'];
                        var s1 = game_array[k]['s1'];
                        var s2 = game_array[k]['s2'];
                        var details = "Game " + game_array[k]['game_num'];
                        
						
                        details = details + ': ' + game_array[k]['location'];
                        details = details + ', ' + game_array[k]['time'];
						
						var html='<div id="game_'+game_num+'" class="match m_round1">';
						
						html+='<table class="teams">';
						
						html+='<tr height="16px">';
						html+='<td><p class="info_team">'+t1+'</p></td>';
						if(s1>s2)
						{
							html+='<td><p class="info_score winner">'+s1+'</p></td>';
						}
						else{
							html+='<td><p class="info_score">'+s1+'</p></td>';
						}
						
						html+='</tr>';
						
						
						html+='<tr height="23px">';
						html+='<td><p class="info_team">'+t2+'</p></td>';
						
						if(s2>s1)
						{
							html+='<td><p class="info_score winner">'+s2+'</p></td>';
						}
						else{
							html+='<td><p class="info_score">'+s2+'</p></td>';
						}
						
						html+='</tr>';
						
						
						html+='<tr>';
						html+='<td colspan="2">';
						if(t1 && t2)
						{
							html+='<div class="game_time">'+details+'</div>';							
						}
						else{
							html+='<div class="game_time_no_teams">'+details+'</div>';
						}
						html+='</td>';
						html+='</tr>';
						html+='</table>';
						html+='</div>';
						
						$(game_holder).append(html);
						
                    }
                }
            }
        }
    }
	
	$(game_holder).cycle('fade');
}

function all_done(data,id,game_num_array){
	//Displays the last 4 games
	var game_holder="#"+id;
	
	//none of the games have posted a score
	var return_game_num_array = new Array();
	
    return_game_num_array.push(game_num_array[game_num_array.length-1]); 
    return_game_num_array.push(game_num_array[game_num_array.length-2]); 
    return_game_num_array.push(game_num_array[game_num_array.length-3]); 
    return_game_num_array.push(game_num_array[game_num_array.length-4]); 
    
    var round_array = data["rounds"];
    
     //builds game number array 
    for (var i in round_array) {
        var round = round_array[i];
        
        for (var j in round) {
            var game_array = round[j];
            
            for (var k in game_array) {
                var game_num = game_array[k]["game_num"];
               
			    for (var x = 0; x < 4; x++) {
                    if (game_num == return_game_num_array[x]) {
                        
                        
						var t1 = game_array[k]['t1'];
                        var t2 = game_array[k]['t2'];
                        var s1 = game_array[k]['s1'];
                        var s2 = game_array[k]['s2'];
                        var details = "Game " + game_array[k]['game_num'];
                        
						
                        details = details + ': ' + game_array[k]['location'];
                        details = details + ', ' + game_array[k]['time'];
						
						var html='<div id="game_'+game_num+'" class="match m_round1">';
						
						html+='<table class="teams">';
						
						html+='<tr height="16px">';
						html+='<td><p class="info_team">'+t1+'</p></td>';
						
						if(s1>s2)
						{
							html+='<td><p class="info_score winner">'+s1+'</p></td>';
						}
						else{
							html+='<td><p class="info_score">'+s1+'</p></td>';
						}
						
						html+='</tr>';
						
						
						html+='<tr height="23px">';
						html+='<td><p class="info_team">'+t2+'</p></td>';
						
						if(s2>s1)
						{
							html+='<td><p class="info_score winner">'+s2+'</p></td>';
						}
						else{
							html+='<td><p class="info_score">'+s2+'</p></td>';
						}
						
						html+='</tr>';
						
						
						html+='<tr>';
						html+='<td colspan="2">';
						html+='<div class="game_time">'+details+'</div>';
						html+='</td>';
						html+='</tr>';
						html+='</table>';
						html+='</div>';
						
						$(game_holder).append(html);
						
                    }
                }
            }
        }
    }
	
	$(game_holder).cycle('fade');

}

function build_game_num_array(data,id){

    var round_array = data["rounds"];
	var game_num_array = new Array();
	var latest_game_num = 0; //hold our last game number with a score
	var latest_game_index = 0; //hold index in game_num_array of latest game with score
	var done = true;
    
    //builds game number array 
    for (var i in round_array) {
        var round = round_array[i];
        
        for (var j in round) {
            var game_array = round[j];
            
            for (var k in game_array) {
                var game_num = game_array[k]["game_num"];
                game_num_array.push(game_num);
                game_score = game_array[k]["s1"];
				
				
				//We could make this better by actually looking at the times of the games
				//for now this is a quick solution that is somewhat accurate
                if (game_score) {
					latest_game_num = game_num;
					latest_game_index = game_num_array.length-1;
                }
				else
				{
				 done=false;
				}
            }
        }
    }
    
    
    var len = game_num_array.length;
	
    if (latest_game_num == 0) {
        no_game_done(data,id,game_num_array);
    }
    
    if (done) {
        all_done(data,id,game_num_array);
    }
    else if(latest_game_index>0) {
        some_done(data,id,game_num_array,latest_game_index);
    }
    
    
}

function getScores(tourn_name,id){
    $.ajax({
        url: "bracket_builder/"+tourn_name + ".json",
        dataType: "json",
        success: function(data){
            build_game_num_array(data,id);
        }
    });
    
}
