﻿var interval;
var joursANG = [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ];
var joursFRA = [ "Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi" ];


function IntervalWrapper(fn, delay) {
	this.Fn = fn;
	this.Cpt = 0;
	this.Delay = delay;
	var self = this;

	this.Tick = function () {

		self.Cpt++;

		var theFn = self.Fn;

		if (self.Cpt >= 10) {

			interval = new IntervalWrapper(self.Fn, self.Delay);

			window.clearInterval(self.Interval);
			delete self.Fn;
			delete self.Cpt;
			delete self.Delay;
			delete self.Tick;
			delete self.Interval;
			self = undefined;
		}

		theFn();
		theFn = undefined;
	};

	this.Interval = setInterval(this.Tick, delay);

}

function handleLoadSuccess(data) {

    try {
        var date = new Date(data.data.games.year + '/' + data.data.games.month + '/' + data.data.games.day)["getDay"]();
		
		if (/[.]*indexang.html[.]*/.test(window.location.pathname.toLowerCase())) {
			date = joursANG[date];
		}
		else{
			date = joursFRA[date];
		}
		
		$("#h2Day").get(0).innerHTML = date;

        var template = $.template($('#template').html());

        var divs = $("div.scoreContainer", "#gamesContainer");

        if (divs.length > 250) {
        	divs.empty().remove();
        } else {

			if (divs.length % 2 == 1) {
        		$("#gamesContainer").append("<div class='scoreContainer' style='display:none'></div>");
			}

        	divs.css("display", "none");
        }
        divs = null;

        $(data.data.games.game).each(function (e, game) {

        	var status;

        	if (game.status.status == "Pre-Game" || game.status.status == "Preview") {
        		status = game.time;
        	}
        	else if (game.status.status == "Final") {
        		status = "F";
        	}
        	else if (game.status.status == "Postponed") {
        		status = "Postponed";
        	}
        	else if (game.status.ind = 'I') {
        		if (game.status.inning == "1")
        			status = "1st";
        		else if (game.status.inning == "2")
        			status = "2nd";
        		else if (game.status.inning == "3")
        			status = "3rd";
        		else
        			status = game.status.inning + "th";
        	}
        	else {
        		status = game.status.ind;
        	}

        	var homeScore = "-";
        	var awayScore = "-";

        	if (typeof (game.linescore) !== "undefined") {
        		homeScore = game.linescore.r.home;
        		awayScore = game.linescore.r.away;
        	}


        	var myData = {
        		'HomeTeamName': game.home_name_abbrev
                                , 'HomeScore': homeScore
                                , 'AwayTeamName': game.away_name_abbrev
                                , 'AwayScore': awayScore
                                , 'Status': status
        	}

        	$('#gamesContainer').append(template, myData);

        	link2 = null;
        	status = null;
        	homeScore = null;
        	awayScore = null;
        	myData = null;
        });

        $('#gamesContainer').css("display", "");
        $('#gamesContainer div.scoreContainer:odd').css("background", "transparent");

        date = null;
        template = null;
        data = null;
    }
    catch (e) {
        $('#gamesContainer').css("display", "none");
    }
}

function handleLoadError(data) {}

function LoadGameBoard()
{
    $.ajax({ url: "GameBoard.ashx", dataType: 'json', success: handleLoadSuccess, error: handleLoadError });
}

$().ready(function () {
	$.template.regx.standard = $.template.regx.jtemplates;
	$.ajax({ url: "GameBoard.ashx", dataType: 'json', success: handleLoadSuccess, error: handleLoadError });

	interval = new IntervalWrapper(LoadGameBoard, 25000);	
});
