var ajax_linescore_poller = (function(webCacheURL){

    webCacheURL = webCacheURL || "web.minorleaguebaseball.com";

 	var _self = {
		game_id : "",
		linescore_url : "",
		siteCode: "",
		display_date : function() {
			var month_obj = {
				"01" : "January",
				"02" : "February",
				"03" :"March",
				"04" : "April",
				"05" : "May",
				"06" : "June",
				"07" : "July",
				"08" : "August",
				"09" : "September",
				"10" : "October",
				"11" : "November",
				"12" : "December"
				};
			var date_arr = _self.game_id.split("_");
			var mon = date_arr[1];
			var year = date_arr[0];
			var month=month_obj[mon];
			var day = date_arr[2];
			var date= month + " "+day+", "+year;
			$("#display_date").html(date);
			
		},
		get_game_id : function() {
			var querystring = window.location.search.substring(1); 
  			var kv_pairs = querystring.split("&"); 
  			for (var i=0;i<kv_pairs.length;i++) { 
    			var kv = kv_pairs[i].split("="); 
    			if (kv[0] == "gid") { 
      				_self.game_id = kv[1]; 
    			} 
				if ((kv[0] == "sid") || (kv[0] == "did")) {
					if (kv[1]) {
						_self.siteCode = kv[1];
					} else {
						_self.siteCode = "milb";
					}
				}
  			} 
		},
		get_linescore_url : function() {
			var league = _self.game_id.substring(14,17);
			var year = _self.game_id.substring(0,4);
			var month = _self.game_id.substring(5,7);
			var day = _self.game_id.substring(8,10);
			var gid = _self.game_id;
			_self.linescore_url = "/gdcross/components/game/"+league+"/year_"+year+"/month_"+month+"/day_"+day+"/gid_"+gid+"/linescore.xml";
		},
 
 		update_scoreboard : function() {
            var linescoreTpl = $.template("/shared/components/linescore/milb_sb.tpl");
            $.ajax({
                url : _self.linescore_url,
                dataType : "xml",
                success : function(data) {
                    var html = "",
                        linescoresContainer = $("#linescores"),
                        team_name_lengths = [],
                        games = $(data).find("game");

                    linescoresContainer.empty();

                    if (games.length > 0) {
                        games.each(function() {
                            var g = $(this);
                            g.webCacheURL = webCacheURL;
                            html = linescoreTpl(g,true);
                        });
                    } else {
                        linescoresContainer.html("There is no data currently available for this game.");
                    }	
                    linescoresContainer.append(html);
                }
  			});
		}
 	}; //end self
  	return _self;
})(webCacheURL);

$(document).ready(function() {
	ajax_linescore_poller.get_game_id();
	ajax_linescore_poller.get_linescore_url();
 	ajax_linescore_poller.display_date();
	
	var gameDataPoller = new bam.util.PeriodicalExecuter(ajax_linescore_poller.update_scoreboard,15000,false);
	ajax_linescore_poller.update_scoreboard();
});

