﻿
function SetTableSorter() {
    var totalTeams = $("#totalTeams").val();
    /*if (totalTeams > 20) {
    $("table.tablesorter").tablesorter({ widthFixed: false }).tablesorterPager({ container: $("#pager") });
    }
    else {
    $("table.tablesorter").tablesorter({ widthFixed: false });
    }*/
    $("table.tablesorter").tablesorter({ widthFixed: false });
}

function EndRequestHandler() {
    SetCurrentOutput($("#currentOutput").val());
    SetTableSorter();
}

function UpdateTitle(titleClass) {
    document.title = $("#pageTitles ." + titleClass).html();
}

$(document).ready(function() {
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);



    var lang = $.jqURL.get('lang');
    if (lang == null) {
        lang = 'en';
    }

    UpdateTitle("last10");

    $(".metaHeader select").val("none");

    $("#currentLanguage").val(lang);
    $("#languageSelector").val(lang);

    FillCountries();

    $.blockUI.defaults.elementMessage = "Please wait..";
    $.blockUI.defaults.elementMessageCSS = {
        backgroundImage: "url(Images/loadingAnimation2.gif)",
        backgroundRepeat: 'no-repeat',
        backgroundPosition: 'center',
        backgroundColor: '#fff',
        opacity: '0.5',
        width: '340px',
        height: '325px'
    };

    //    if (typeof ($.jqURL.get("norefresh")) == "undefined") // for debug only
    //    {
    //        setInterval("LoadMatchesBriefSummsries(false)", 60000);
    //    }
});



function TransferToHome(IsViaMoreLink) {
    var matchId = $("#listMatches").val();
    if (matchId == "summary")
        return;
    var url = "Handlers/Transfer.ashx?mode=tohome" +
                "&countryid=" + $("#listCountries").val() +
                "&leagueid=" + $("#listLeagues").val() +
                "&matchid=" + matchId +
                "&isviamorelink=" + IsViaMoreLink;
    $.jqURL.loc(url);
}

function FillCountries() {
    var countryid = $.jqURL.get('countryid');
    if (countryid == null) {
        countryid = $("#hiddenCountryId").val();
        if (countryid == null) {
            countryid = 0;
        }
    }
    var url = "Handlers/LeagueSummaryHandler.aspx?op=loadcountries" + GetCulture() + GetRandomParam() + GetSkinParam();
    var dataStr = 'countryid=' + countryid;
    var req = $.ajax({
        type: "GET",
        url: url,
        data: dataStr,
        error: function(req, json) {


        },
        success: function(html) {
            $("#listCountries").html(html);
            //$("#PickersContainer").unblock();
            var countryId = $("#listCountries").val();
            if (countryId == 'wc') {
                $("#listCountries option::nth-child(2)").attr('selected', 'selected');
            }
            selectLeague();
            //setInterval("LoadOddsTable(false)", 30000);
            return;
        }
    });
}

function selectLeague() {

    var countryId = $("#listCountries").val();
    if (countryId == 'wc') {
        var url = 'WorldCupSummary.aspx';
        $.jqURL.loc(url);
        return;
    }

    var leagueid = $.jqURL.get('leagueid');
    if (leagueid == null) {
        leagueid = $("#hiddenLeagueId").val();
        if (leagueid == null) {
            leagueid = 0;
        }
    }

    var url = "Handlers/LeagueSummaryHandler.aspx?op=loadleagues"
    var dataStr = "countryid=" + countryId + "&leagueid=" + leagueid + GetCulture() + GetRandomParam();

    var req = $.ajax({
        type: "GET",
        url: url,
        data: dataStr,
        error: function(req, json) {

        },
        success: function(html) {
            $("#listLeagues").html(html);
            //$("#PickersContainer").unblock();
            FillSummary(true)
            return;
        }
    });
}

function FillSummary(isDefault) {
    ShowInplayAvailableIcon();
    FillMatches(isDefault);
    FillFormTableList();
    LoadMatchesBriefSummsries(true);
    LoadMarketList();
    ResetOutputModesList();
}

function FillFormTableList() {
    var url = "Handlers/LeagueSummaryHandler.aspx?op=loadformtableslist"
    var dataStr = "leagueid=" + $("#listLeagues").val() + GetCulture();

    var req = $.ajax({
        type: "GET",
        url: url,
        data: dataStr,
        error: function(req, json) {


        },
        success: function(html) {
            $("#listFormTables").html(html);
            LoadFormTable($("#listLeagues").val(), 'TableMain', $(".formTableContainer ul li .selected").attr('val'), true);
            //$("#PickersContainer").unblock();
            return;
        }
    });
}

function FillMatches(isDefault) {
    var url = "Handlers/LeagueSummaryHandler.aspx?op=loadmatches"
    var dataStr = "isdefault=" + isDefault + "&leagueid=" + $("#listLeagues").val() + GetCulture() + GetRandomParam();

    var req = $.ajax({
        type: "GET",
        url: url,
        data: dataStr,
        error: function(req, json) {


        },
        success: function(html) {
            $("#listMatches").html(html);
            //$("#listMatches").val("summary");
            //$("#PickersContainer").unblock();
            return;
        }
    });
}

function SetCurrentOutput(output, removeEmpty) {
    if (output == "none") {
        output = 'last10';
    }
    else if (removeEmpty) {
        var option = $("#listOutputMode option[value='none']");
        option.replaceWith('');
    }

    $("#currentOutput").val(output);

    $(".outputSelectorHeader").
                removeClass("last10").
                removeClass("matchOutcome").
                removeClass("autotext").
                addClass(output);

    $(".last10").hide();
    $(".matchOutcome").hide();
    $(".autotext").hide();

    $("." + output).show();
    UpdateTitle(output);
}

function SetOutput(element) {
    SetCurrentOutput($(element).attr('val'));
    $(element).addClass('selected');
}

function SetFormTableSortPosition(element) {
    var table = $("#listFormTables").val();
    if (table == "emptyTableOption") {
        alert($("#message_ChooseTable").val());
        return false;
    } else {
        var leagueid = $("#listLeagues").val();
        var table = $("#listFormTables").val();
        var sortposition = $(element).attr('val');
        LoadFormTable(leagueid, table, sortposition, false, SetSortPositionSelected, element);
    }
}

function SetSortPositionSelected(element) {
    $(".sortpositionSetter").removeClass('selected');
    $(element).addClass('selected');
}

function selectFormTable(removeEmpty) {
    var leagueid = $("#listLeagues").val();
    var table = $("#listFormTables").val();
    var sortposition = $(".formTableContainer ul li .selected").attr('val');
    if (table == "emptyTableOption") {
        return;
    }
    else if (removeEmpty) {
        $("#listFormTables option[value='emptyTableOption']").replaceWith('');
    }

    LoadFormTable(leagueid, table, sortposition, false);
    //set block to container
}

function LoadFormTable(leagueid, table, sortposition, isdefault, callBackFunc, sender) {
    var url = "Handlers/LeagueSummaryHandler.aspx?op=loadformtable";
    var dataStr = "leagueid=" + leagueid + "&table=" + table + "&sortposition=" + sortposition + "&isdefault=" + isdefault + GetCulture() + GetRandomParam();

    var req = $.ajax({
        type: "GET",
        url: url,
        data: dataStr,
        s: function(req, json) {
        
        },
        success: function(html) {
            $(".formTableBody").html(html);
            SetTableSorter();
            $(".formTableBody").unblock();
            if (callBackFunc) {
                callBackFunc(sender);
            }
            return;
        }
    });
    $(".formTableBody").block();
}

function LoadMarketList() {
    var url = "Handlers/LeagueSummaryHandler.aspx?op=loadmarketlist";
    var dataStr = "leagueid=" + $("#listLeagues").val() + GetSkinParam() + GetRandomParam();
    var container = $("#marketSelectorContainer");

    $.ajax({
        type: "GET",
        url: url,
        data: dataStr,
        error: function() {

        },
        success: function(html) {
            container.html(html);
            LoadSubmarketList();
        }
    });
}

function LoadSubmarketList() {
    var url = "Handlers/LeagueSummaryHandler.aspx?op=loadsubmarketlist";
    var dataStr = "leagueid=" + $("#listLeagues").val() + "&marketname=" + $("#marketSelector").val() + GetSkinParam() + GetRandomParam();
    var container = $("#submarketSelectorContainer");
    var table = $("#oddsTableHolder");
    table.block();
    $.ajax({
        type: "GET",
        url: url,
        data: dataStr,
        error: function() {

        },
        success: function(html) {
            var primaryMarketSelector = $("#marketSelector");
            if (html == "null") {
                primaryMarketSelector.removeClass("hasSubmarkets");
                container.html("");
            }
            else {
                primaryMarketSelector.addClass("hasSubmarkets");
                container.html(html);
            }
            LoadOddsTable(true);
        }
    });
}

var oddsTableTimeout;

function LoadOddsTable(showLoading) {
    var url = "Handlers/LeagueSummaryHandler.aspx?op=loadoddstable";
    var offset = new Date().getTimezoneOffset() / 60;
    var submarket;
    if ($("#submarketSelector").length > 0) {
        submarket = "&submarketname=" + $("#submarketSelector").val();
    }
    else {
        submarket = "";
    }

    var dataStr = "leagueid=" + $("#listLeagues").val() + "&marketname=" + $("#marketSelector").val() + submarket + GetTimeOffsetParam() + GetSkinParam() + GetCulture() + GetRandomParam();
    var table = $("#oddsTableHolder");

    $.ajax({
        type: "GET",
        url: url,
        data: dataStr,
        error: function() {
            setTimeout("LoadOddsTable(false)", 60000);
        },
        success: function(html) {
            table.html(html);
            selectOddsType();
            if (showLoading) {
                table.unblock();
            }
            clearTimeout(oddsTableTimeout);
            oddsTableTimeout = setTimeout(function() { LoadOddsTable(false); }, 30000);
        }
    });
    if (showLoading) {
        table.block();
    }
}

function LoadMatchesBriefSummsries(needLoading) {
    var urlLeft = "Handlers/LeagueSummaryHandler.aspx?op=loadmatchesbriefsummsries&target=left";
    var urlRight = "Handlers/LeagueSummaryHandler.aspx?op=loadmatchesbriefsummsries&target=right";
    var dataStr = "leagueid=" + $("#listLeagues").val() + GetCulture() + GetRandomParam() + GetTimeOffsetParam() + GetSkinParam();

    var reqLeft = $.ajax({
        type: "GET",
        url: urlLeft,
        data: dataStr,
        error: function(req, json) {
            setTimeout("LoadMatchesBriefSummsries(" + needLoading + "}", 60000);
        },
        success: function(html) {
            $(".leftColumn .matches").html(html);
            SetCurrentOutput($("#currentOutput").val());
            if (needLoading)
                $(".leftColumn .matches").unblock();
        }
    });

    var reqRight = $.ajax({
        type: "GET",
        url: urlRight,
        data: dataStr,
        error: function(req, json) {
            setTimeout("LoadMatchesBriefSummsries(" + needLoading + "}", 60000);
        },
        success: function(html) {
            $(".rightColumn .matches").html(html);
            SetCurrentOutput($("#currentOutput").val());

            if (needLoading)
                $(".rightColumn .matches").unblock();
        }
    });

    if (needLoading) {
        $(".rightColumn .matches").block();
        $(".leftColumn .matches").block();
    }
}

function RefreshMatchData(matchId, isPreAutotext) {
    var url = "Handlers/LeagueSummaryHandler.aspx?op=loadmatchbriefsummary"
    var dataStr = "matchid=" + matchId + "&ispreautotextx=" + isPreAutotext + GetCulture() + GetTimeOffsetParam() + GetRandomParam() + GetSkinParam();

    var req = $.ajax({
        type: "GET",
        url: url,
        data: dataStr,
        error: function(req, json) {


        },
        success: function(html) {
            $("#matchBriefSummary" + matchId).replaceWith(html);
            SetCurrentOutput($("#currentOutput").val());
        }
    });
}

function RefreshAutotext(matchId) {
    var url = "Handlers/LeagueSummaryHandler.aspx?op=loadmatchautotext"
    var dataStr = "matchid=" + matchId + GetCulture() + GetRandomParam() + GetSkinParam();

    var req = $.ajax({
        type: "GET",
        url: url,
        data: dataStr,
        error: function(req, json2) {
            setTimeout(function() { RefreshAutotext(matchId) }, 30000);
        },
        success: function(json) {
            if (json == "null" || json == "ended") {
                RefreshMatchData(matchId);
                return;
            }
            var autotext = eval("(" + json + ")");
            var matchStat = $("#matchBriefSummary" + matchId + " .autotext .header .score");
            var homeMatchStat = $("#matchBriefSummary" + matchId + " .autotext .body .autotextTeamInfoHome .matchStat");
            var awayMatchStat = $("#matchBriefSummary" + matchId + " .autotext .body .autotextTeamInfoAway .matchStat");
            var homeAutotext = $("#matchBriefSummary" + matchId + " .autotext .body .autotextTextHome");
            var awayAutotext = $("#matchBriefSummary" + matchId + " .autotext .body .autotextTextAway");
            matchStat.text(autotext.MatchStat);
            homeMatchStat.html(autotext.HomeMatchStat);
            awayMatchStat.html(autotext.AwayMatchStat);

            var homeText = homeAutotext.text();
            var awayText = awayAutotext.text();
            if (trim(homeText) != trim(autotext.HomeAutotext)) {
                homeAutotext.text(autotext.HomeAutotext);
                HighLightTextContainer(homeAutotext);
            }
            if (trim(awayText) != trim(autotext.AwayAutotext)) {
                awayAutotext.text(autotext.AwayAutotext);
                HighLightTextContainer(awayAutotext);
            }
            setTimeout("RefreshAutotext(" + matchId + ")", 30000);
            //SetCurrentOutput($("#currentOutput").val());
        }
    });
}

function HighLightTextContainer(container) {
    container.addClass("updated");
    setTimeout(function() { container.removeClass("updated"); }, 10000);
}

function AutoType(what, whereTo, cursor) {
    if (cursor < what.length) {
        whereTo.text(whereTo.text() + what[cursor]);
        setTimeout(function() { AutoType(what, whereTo, cursor + 1) }, 25);
    }
    else {
        return;
    }
}

function MatchButtonClick(button) {
    $("#listMatches").val($(button).attr("val"));
    TransferToHome(true);
    return false;
}

function selectOddsType() {
    $(".pageContent .oddsTableContainer .value span").hide();
    $(".pageContent .oddsTableContainer .value ." + $("#oddsTypeSelector").val()).show();
}

function GetCulture() {
    var langParam = null;
    langParam = $("#currentLanguage").val();
    if (langParam == null) {
        langParam = 'en';
    }
    return '&lang=' + langParam;
}

function GetRandomParam() {
    return "&random=" + Math.floor(Math.random() * 1000000);
}

function setLanguage(sender) {
    var s = $.jqURL.set({ lang: sender.value });
    $.jqURL.loc(s);
}

function GetTimeOffsetParam() {
    return "&offset=" + new Date().getTimezoneOffset() / 60;
}

function GetSkinParam() {
    return skin = '&skin=' + $.jqURL.get('skin');
}

function GoToOdd(element) {
    var url = "Handlers/LeagueSummaryHandler.aspx?op=oddlinkclick"
    var oddUrl = $(element).attr("oddUrl");
    var matchId = $(element).attr("matchId");
    var leagueId = $(element).attr("leagueId");
    var homeTeamId = $(element).attr("homeTeamId");
    var awayTeamId = $(element).attr("awayTeamId");
    var homeTeamName = $(element).attr("homeTeamName");
    var awayTeamName = $(element).attr("awayTeamName");
    var marketName = $("#marketSelector").val();
    var submarketName = $("#submarketSelector").val();


    var dataStr = "oddurl=" + escape(oddUrl) + "&matchid=" + matchId + "&leagueid=" + leagueId + "&hometeamid=" + homeTeamId + "&awayteamid=" + awayTeamId + "&hometeamname=" + homeTeamName + "&awayteamname=" + awayTeamName + "&marketname=" + marketName + "&submarketname=" + submarketName + GetRandomParam() + GetSkinParam();

    var req = $.ajax({
        type: "GET",
        url: url,
        data: dataStr,
        error: function(req, json) {


        },
        success: function(html) {
            window.open(oddUrl);
        }
    });

}
function OpenHelp() {
    tb_show($("#helpHeader").val(), 'Handlers/LeagueSummaryHandler.aspx?op=openhelp&modal=false&width=454&height=450');
}

function ShowInplayAvailableIcon() {
    var url = "Handlers/LeagueSummaryHandler.aspx?op=showinplayavailableicon"
    var dataStr = "leagueid=" + $("#listLeagues").val() + GetCulture()+GetSkinParam();

    var req = $.ajax({
        type: "GET",
        url: url,
        data: dataStr,
        error: function(req, json) {


        },
        success: function(json) {
            var response = eval(json);
            if (response) {
                $(".inplayAvailable").show();
            }
            else {
                $(".inplayAvailable").hide();
            }
        }
    });
}

function ResetOutputModesList() {
    if ($("#listOutputMode option[value='none']").length == 0) {
        var select = $("#listOutputMode");
        select.prepend('<option value="none">' + $("#message_ChooseView").val() + '</option>');
        var option = $("#listOutputMode option[value='none']");
        option.attr('selected', 'selected');
        SetCurrentOutput('none');
    }
}
