﻿var CurrentWKDeelnemer = null;
var WKLanden = null;
var WKLandenIndexes = null;
var WKWedstrijden = null;

function wkpool_click()
{
    ShowMenu('divWKPool');
    WKPoolService.CheckDeelnemer(CheckDeelnemerDone);
}

function CheckDeelnemerDone(result)
{
    CurrentWKDeelnemer = result;

    var naam = "niet ingelogd";

    if (result != null)
        naam = CurrentWKDeelnemer.Naam;

    $get('tdWKDeelnemerNaam').innerHTML = '<b>' + naam + '</b>';
    
    WKInvullen_click();
}

function WKInvullen_click()
{
    WKShowDiv('divWKPoolInvullen');
    
    if ($get('ddlWKKampioen') == null)
        WKPoolService.GetLanden(GotLanden);
    else
        GotWedstrijden(WKWedstrijden);
}

function GotMaxDateExtraVoorspellingen(MaxDate)
{
    if (MaxDate < new Date())
    {
        $get('tdLinkOpslaanExtra').innerHTML = '';
        $get('ddlWKKampioen').disabled = 'disabled';
        $get('ddlLaatsteVier1').disabled = 'disabled';
        $get('ddlLaatsteVier2').disabled = 'disabled';
        $get('ddlLaatsteVier3').disabled = 'disabled';
        $get('ddlLaatsteVier4').disabled = 'disabled';
        $get('ddlTweedeA').disabled = 'disabled';
        $get('ddlTweedeB').disabled = 'disabled';
        $get('ddlTweedeC').disabled = 'disabled';
        $get('ddlTweedeD').disabled = 'disabled';
        $get('ddlTweedeE').disabled = 'disabled';
        $get('ddlTweedeF').disabled = 'disabled';
        $get('ddlTweedeG').disabled = 'disabled';
        $get('ddlTweedeH').disabled = 'disabled';
    }
}

function SetVoorspellingen()
{
    if (CurrentWKDeelnemer == null)
        return;
    
    SetDDLSelectedValue('ddlWKKampioen', CurrentWKDeelnemer.Kampioen);
    SetDDLSelectedValue('ddlLaatsteVier1', CurrentWKDeelnemer.Half1);
    SetDDLSelectedValue('ddlLaatsteVier2', CurrentWKDeelnemer.Half2);
    SetDDLSelectedValue('ddlLaatsteVier3', CurrentWKDeelnemer.Half3);
    SetDDLSelectedValue('ddlLaatsteVier4', CurrentWKDeelnemer.Half4);
    SetDDLSelectedValue('ddlTweedeA', CurrentWKDeelnemer.TweedeA);
    SetDDLSelectedValue('ddlTweedeB', CurrentWKDeelnemer.TweedeB);
    SetDDLSelectedValue('ddlTweedeC', CurrentWKDeelnemer.TweedeC);
    SetDDLSelectedValue('ddlTweedeD', CurrentWKDeelnemer.TweedeD);
    SetDDLSelectedValue('ddlTweedeE', CurrentWKDeelnemer.TweedeE);
    SetDDLSelectedValue('ddlTweedeF', CurrentWKDeelnemer.TweedeF);
    SetDDLSelectedValue('ddlTweedeG', CurrentWKDeelnemer.TweedeG);
    SetDDLSelectedValue('ddlTweedeH', CurrentWKDeelnemer.TweedeH);
    
    WKPoolService.GetMaxDateExtraVoorspellingen(GotMaxDateExtraVoorspellingen);
    WKPoolService.GetVoorspellingen(GotVoorspellingen);
}

function GotVoorspellingen(Lijst)
{
    for(var i=0; i<Lijst.length; i++)
    {
        var v = Lijst[i];

        if ($get('tdVoorspellingDef' + v.WedstrijdID) == null)
        {
            if (v.Uitslag1 == -1 && v.Uitslag2 == -1)
            {
                $get('txtVoorspelling' + v.WedstrijdID + 'A').value = "";
                $get('txtVoorspelling' + v.WedstrijdID + 'B').value = "";
            }
            else
            {
                $get('txtVoorspelling' + v.WedstrijdID + 'A').value = v.Uitslag1;
                $get('txtVoorspelling' + v.WedstrijdID + 'B').value = v.Uitslag2;
            }
        }
        else
        {
            $get('tdVoorspellingDef' + v.WedstrijdID).innerHTML = v.Uitslag1 + " - " + v.Uitslag2;
        }
    }
}

function GotLanden(lstLanden)
{
    var html = "";

    for(var i=0; i<lstLanden.length; i++)
    {
        var Land = lstLanden[i];

        if (Land.LandID <= 32)
        {
            html += '<option value="' + Land.LandID + '">' + Land.LandNaam + '</option>';

            var ddl = $get('ddlTweede' + Land.Groep);
            var option = new Option;
            option.text = Land.LandNaam;
            option.value = Land.LandID;
            
            ddl.options[ddl.options.length] = option;
        }
    }

    html += '</select>';
    
    $get('tdVoorspellingKampioen').innerHTML = '<select id="ddlWKKampioen">' + html;
    $get('tdLaatsteVier1').innerHTML = '<select id="ddlLaatsteVier1">' + html;
    $get('tdLaatsteVier2').innerHTML = '<select id="ddlLaatsteVier2">' + html;
    $get('tdLaatsteVier3').innerHTML = '<select id="ddlLaatsteVier3">' + html;
    $get('tdLaatsteVier4').innerHTML = '<select id="ddlLaatsteVier4">' + html;

    WKLanden = lstLanden;
    WKLandenIndexes = new Array();
    
    for (i=0; i<lstLanden.length; i++)
    {
        WKLandenIndexes[lstLanden[i].LandID] = i;
    }
    
    WKPoolService.GetWedstrijden(GotWedstrijden);
}

function GotWedstrijden(lijst)
{
    WKWedstrijden = lijst;
    
    var Vandaag = new Date();
    
    var html = "";
    
    html += '<table id="tblWKWedstrijden" cellspacing=0>';

    for(var i=0; i<lijst.length; i++)
    {
        var Wedstrijd = lijst[i];
        
        var CssClass = "Wedstrijd1";
        
        if (i%2==0)
            CssClass = "Wedstrijd2";
            
        html += '<tr class="' + CssClass + '">';
        html += "<td>";
        html += FormatDatum(Wedstrijd.StartDatum);
        html += "</td>";
        html += "<td>";
        html += Wedstrijd.Groep;
        html += "</td>";
        html += "<td>";
        html += WKLanden[WKLandenIndexes[Wedstrijd.LandID1]].LandNaam;
        html += "</td>";
        html += "<td>";
        html += WKLanden[WKLandenIndexes[Wedstrijd.LandID2]].LandNaam;
        html += "</td>";

        var MaxDate = new Date();
        MaxDate.setMinutes(MaxDate.getMinutes() + 15);
        
        if (Wedstrijd.StartDatum > MaxDate)
        {
            html += '<td class="tdVoorspelling"><input size="1" type="text" class="txtVoorspelling" id="txtVoorspelling' + Wedstrijd.WedstrijdID + 'A" /> - ';
            html += '<input size="1" type="text" class="txtVoorspelling" id="txtVoorspelling' + Wedstrijd.WedstrijdID + 'B" /></td>';
            html += '<td class="tdVoorspelling"><a href="javascript:void(0);" target="_self" onclick="OpslaanVoorspelling(' + Wedstrijd.WedstrijdID + ')">opslaan</a></td>';
            html += '<td><img src="OK.png" style="visibility: hidden" id="imgWedstrijdOK' + Wedstrijd.WedstrijdID + '" /></td>';
            html += '<td><img src="NOK.png" style="visibility: hidden" id="imgWedstrijdNOK' + Wedstrijd.WedstrijdID + '" /></td>';
            html += "</tr>";
        }
        else
        {
            html += '<td class="tdVoorspellingDef" id="tdVoorspellingDef' + Wedstrijd.WedstrijdID + '"></td>';
            html += '<td class="tdVoorspelling"><a href="javascript:void(0);" target="_self" onclick="GotoVoorspellingen(' + Wedstrijd.WedstrijdID + ')">voorspellingen</a></td>';
            html += '<td></td>';
            html += '<td></td>';
        }
    }
    
    html += "</table><br />";
    
    $get('divWKWedstrijden').innerHTML = html;

    SetVoorspellingen();
}

function GotoVoorspellingen(id)
{
    WKShowDiv('divVoorspellingenDef');
    
    WKPoolService.GetVoorspellingenDef(id, GotVoorspellingenDef);
}

function GotVoorspellingenDef(lijst)
{
    if (lijst == null)
    {
        alert('leeg');
        return;
    }

    var html1 = '<table cellpadding="5">';
    var html2 = html1;
    var html3 = html1;
    var htmlRow = "";    
    var v = null;

    for (var i=0; i < lijst.length; i++)
    {
        v = lijst[i];

        htmlRow = "<tr>";
        htmlRow += "<td>" + v.Naam + "</td>";
        htmlRow += "<td>" + v.Uitslag1 + " - " + v.Uitslag2 + "</td>";
        htmlRow += "</tr>";
        
        if (v.Uitslag1 > v.Uitslag2)
            html1 += htmlRow;
        else if (v.Uitslag1 == v.Uitslag2)
            html2 += htmlRow;
        else
            html3 += htmlRow;
    }
    
    html1 += '</table>';
    html2 += '</table>';
    html3 += '</table>';
    
    var id = lijst[0].WedstrijdID;
    var w = WKWedstrijden[id-1];
    var Land1 = WKLanden[WKLandenIndexes[w.LandID1]].LandNaam;    
    var Land2 = WKLanden[WKLandenIndexes[w.LandID2]].LandNaam;    

    var html = '<table width="100%">';
    
    html += '<tr><td align="center" colspan="3" class="tdVoorspellingDefHeader">' + Land1 + ' - ' + Land2 + '</td></tr>';
    html += '<tr><td>&nbsp;</td></tr>';
    html += '<td style="vertical-align: top; width: 34%; text-align: left">' + html1 + '</td>';
    html += '<td valign="top" width="33%">' + html2 + '</td>';
    html += '<td valign="top" width="33%">' + html3 + '</td>'; 

    html += "</tr></table>";

    $get('divVoorspellingenDef').innerHTML = html;
}

function OpslaanAlleWedstrijden()
{
    if (CurrentWKDeelnemer == null)
        return;

    for(var i=1; i<=64; i++)
        OpslaanVoorspelling(i);
}

function OpslaanVoorspelling(id)
{
    if (CurrentWKDeelnemer == null)
        return;

    var txtNameA = "txtVoorspelling" + id + "A";
    var txtNameB = "txtVoorspelling" + id + "B";

    if ($get(txtNameA) == null)
        return;

    var Uitslag1 = $get(txtNameA).value;
    var Uitslag2 = $get(txtNameB).value;
    
    WKPoolService.OpslaanVoorspelling(id, Uitslag1, Uitslag2, VoorspellingOpgeslagen);
}

function VoorspellingOpgeslagen(id)
{
    var success = (id > 0);
    
    if (!success)
        id = -id;
        
    if (success)
    {
        SetVisible('imgWedstrijdOK' + id);
        SetHidden('imgWedstrijdNOK' + id);
        setTimeout("SetHidden('" + 'imgWedstrijdOK' + id + "')", 3000);
    }
    else
    {
        SetVisible('imgWedstrijdNOK' + id);
        SetHidden('imgWedstrijdOK' + id);
    }    
}

function WKStand_click()
{
    WKShowDiv('divWKPoolStand');
    WKPoolService.GetDeelnemers(GotDeelnemers);
}

function GotDeelnemers(lijst)
{
    var html = "";
    html += '<table cellspacing="0" id="tblWKStand">';
    
    html += '<tr id="trWKStandKopregel"><td></td><td>naam</td><td>punten</td></tr>';

    for(var i=0; i<lijst.length; i++)
    {
        var deelnemer = lijst[i];
        var cssClass = "trWKstand";
        
        if (i%2==0)
            cssClass = "trWKstand2";
        
        html += '<tr class="' + cssClass + '">'; 
        html += '<td>' + (i+1) + '</td>';
        html += '<td><a href="javascript:void(0)" target="_self" onclick="ShowOverview(' + deelnemer.DeelnemerID + ')">' + deelnemer.Naam + '</a></td><td align="center">' + deelnemer.Punten + '</td></tr>';
    }
    
    html += "</table><br /><br />";
    
    $get('divWKPoolStand').innerHTML = html;
}

function ShowOverview(id)
{
    $get('tdExtraOverzicht').innerHTML = "";
    $get('tdWedstrijdenOverzicht').innerHTML = "";

    WKShowDiv('divDeelnemerOverzicht');
    WKPoolService.GetDeelnemerInfo(id, GotDeelnemerInfo);
    WKPoolService.GetPuntenOverview(id, GotPuntenOverview);
}

function GotDeelnemerInfo(info)
{
    html = '<table style="text-align: left" cellspacing="0" cellpadding="5"><tr>';

    html += '<td><b>naam</b></td>';
    html += '<td>' + info.Naam + '</td>';

    html += '</tr><tr><td>&nbsp;</td></tr><tr>';

    html += '<td><b>wedstrijden</b></td>';
    html += '<td>' + info.Punten + '</td>';

    html += '</tr><tr>';

    html += '<td><b>extra</b></td>';
    html += '<td>' + info.PuntenExtra + '</td>';

    html += '</tr><tr>';

    html += '<td><b>totaal</b></td>';
    var Totaal = info.Punten + info.PuntenExtra;
    html += '<td>' + Totaal + '</td>';

    html += '</tr><tr><td>&nbsp;</td></tr><tr>';

    html += '<td><b>kampioen</b></td>';
    html += '<td>' + WKLanden[WKLandenIndexes[info.Kampioen]].LandNaam + '</td>';

    html += '</tr><tr><td>&nbsp;</td></tr><tr>';

    html += '<td><b>1/2 finale</b></td>';
    html += '<td>' + WKLanden[WKLandenIndexes[info.Half1]].LandNaam + '</td>';

    if (IsHalveFinalist(info.Half1))
        html += '<td align="center">32</td>';
    else
        html += '<td align="center">-</td>';

    html += '</tr><tr>';

    html += '<td>&nbsp;</td>';
    html += '<td>' + WKLanden[WKLandenIndexes[info.Half2]].LandNaam + '</td>';

    if (IsHalveFinalist(info.Half2))
        html += '<td align="center">32</td>';
    else
        html += '<td align="center">-</td>';

    html += '</tr><tr>';

    html += '<td>&nbsp;</td>';
    html += '<td>' + WKLanden[WKLandenIndexes[info.Half3]].LandNaam + '</td>';

    if (IsHalveFinalist(info.Half3))
        html += '<td align="center">32</td>';
    else
        html += '<td align="center">-</td>';

    html += '</tr><tr>';

    html += '<td>&nbsp;</td>';
    html += '<td>' + WKLanden[WKLandenIndexes[info.Half4]].LandNaam + '</td>';

    if (IsHalveFinalist(info.Half4))
        html += '<td align="center">32</td>';
    else
        html += '<td align="center">-</td>';

    html += '</tr><tr><td>&nbsp;</td></tr><tr>';

    html += '<td><b>Tweede in A</b></td>';
    html += '<td>' + WKLanden[WKLandenIndexes[info.TweedeA]].LandNaam + '</td>';
    
    if (info.TweedeA == 2) // Mexico
        html += '<td align="center">16</td>';
    else
        html += '<td align="center">-</td>';
    
    html += '</tr><tr>';

    html += '<td><b>Tweede in B</b></td>';
    html += '<td>' + WKLanden[WKLandenIndexes[info.TweedeB]].LandNaam + '</td>';

    if (info.TweedeB == 7) // Zuid-Korea
        html += '<td align="center">16</td>';
    else
        html += '<td align="center">-</td>';

    html += '</tr><tr>';

    html += '<td><b>Tweede in C</b></td>';
    html += '<td>' + WKLanden[WKLandenIndexes[info.TweedeC]].LandNaam + '</td>';

    if (info.TweedeC == 9) // Engeland
        html += '<td align="center">16</td>';
    else
        html += '<td align="center">-</td>';

    html += '</tr><tr>';

    html += '<td><b>Tweede in D</b></td>';
    html += '<td>' + WKLanden[WKLandenIndexes[info.TweedeD]].LandNaam + '</td>';

    if (info.TweedeD == 16) // Ghana
        html += '<td align="center">16</td>';
    else
        html += '<td align="center">-</td>';

    html += '</tr>';

    html += '</tr><tr>';

    html += '<td><b>Tweede in E</b></td>';
    html += '<td>' + WKLanden[WKLandenIndexes[info.TweedeE]].LandNaam + '</td>';

    if (info.TweedeE == 19) // Japan
        html += '<td align="center">16</td>';
    else
        html += '<td align="center">-</td>';

    html += '</tr>';

    html += '</tr><tr>';

    html += '<td><b>Tweede in F</b></td>';
    html += '<td>' + WKLanden[WKLandenIndexes[info.TweedeF]].LandNaam + '</td>';

    if (info.TweedeF == 24) // Slowakije
        html += '<td align="center">16</td>';
    else
        html += '<td align="center">-</td>';

    html += '</tr>';

    html += '</tr><tr>';

    html += '<td><b>Tweede in G</b></td>';
    html += '<td>' + WKLanden[WKLandenIndexes[info.TweedeG]].LandNaam + '</td>';

    if (info.TweedeG == 28) // Portugal
        html += '<td align="center">16</td>';
    else
        html += '<td align="center">-</td>';

    html += '</tr>';

    html += '</tr><tr>';

    html += '<td><b>Tweede in H</b></td>';
    html += '<td>' + WKLanden[WKLandenIndexes[info.TweedeH]].LandNaam + '</td>';

    if (info.TweedeH == 32) // Chili
        html += '<td align="center">16</td>';
    else
        html += '<td align="center">-</td>';

    html += '</tr>';

    html += '</table>';
    
    $get('tdExtraOverzicht').innerHTML = html;
    
}

function IsHalveFinalist(id)
{
    return (id == 3 || id == 17 || id == 13 || id == 29);
}


function GotPuntenOverview(Lijst)
{
    var html = '<table style="text-align: left; " cellpadding="5" cellspacing="0">';

    html += '<tr><td></td><td><b>wedstrijd</b></td><td><b>voorspelling</b></td><td><b>uitslag</b></td><td><b>punten</b></td></tr>';

    var LastGroep = '';
    
    var PuntenGroep = 0;
    var Punten8 = 0;
    var Punten4 = 0;
    var Punten2 = 0;
    var Punten1 = 0;

    for (var i=0; i<Lijst.length; i++)
    {
        var item = Lijst[i];

        if (item.WedstrijdID < 49)
            PuntenGroep += item.Punten;
        else if (item.WedstrijdID < 57)
            Punten8 += item.Punten;
        else if (item.WedstrijdID < 61)
            Punten4 += item.Punten;
        else if (item.WedstrijdID < 63)
            Punten2 += item.Punten;
        else
            Punten1 += item.Punten;

        html += '<tr>';
        html += '<td>' + item.Groep + '</td>';
        html += '<td>' + item.Land1 + '-' + item.Land2 + '</td>';
        
        var Voorspelling = item.Voorspelling1 + '-' + item.Voorspelling2;

        if (item.Voorspelling1 == -1)
            Voorspelling = "-";
        
        html += '<td align="center">' + Voorspelling + '</td>';
        html += '<td align="center">' + item.Uitslag1 + '-' + item.Uitslag2 + '</td>';
        html += '<td align="center">' + item.Punten + '</td>';
        html += '</tr>';

        if (item.WedstrijdID == 49)
        {
            html += '<tr><td colspan="2"></td><td colspan="3" align="center"><b>punten groepsfase: ' + PuntenGroep + '</b></td></tr>';
            html += '<tr><td>&nbsp;</td></tr>';
        }
        
        if (item.WedstrijdID == 56)
        {
            html += '<tr><td colspan="2"></td><td colspan="3" align="center"><b>punten 1/8 finale: ' + Punten8 + '</b></td></tr>';
            html += '<tr><td>&nbsp;</td></tr>';
        }
        
        if (item.WedstrijdID == 60)
        {
            html += '<tr><td colspan="2"></td><td colspan="3" align="center"><b>punten 1/4 finale: ' + Punten4 + '</b></td></tr>';
            html += '<tr><td>&nbsp;</td></tr>';
        }
        
        if (item.WedstrijdID == 62)
        {
            html += '<tr><td colspan="2"></td><td colspan="3" align="center"><b>punten 1/2 finale: ' + Punten2 + '</b></td></tr>';
            html += '<tr><td>&nbsp;</td></tr>';
        }
        
        if (item.WedstrijdID == 64)
        {
            html += '<tr><td colspan="2"></td><td colspan="3" align="center"><b>punten finales: ' + Punten1 + '</b></td></tr>';
            html += '<tr><td>&nbsp;</td></tr>';
        }
    }
    
    html += '</table>';

    $get('tdWedstrijdenOverzicht').innerHTML = html;
}


function WKSpelregels_click()
{
    WKShowDiv('divWKPoolSpelregels');
}

function WKShowDiv(divName)
{
    $get('divWKPoolInvullen').style.display = 'none';
    $get('divWKPoolStand').style.display = 'none';
    $get('divWKPoolSpelregels').style.display = 'none';
    $get('divVoorspellingenDef').style.display = 'none';
    $get('divDeelnemerOverzicht').style.display = 'none';

    $get(divName).style.display = '';
}

function WKOpslaanExtra()
{
    if (CurrentWKDeelnemer == null)
        return;

    CurrentWKDeelnemer.Kampioen = GetDDLSelectedValue('ddlWKKampioen');
    CurrentWKDeelnemer.Half1 = GetDDLSelectedValue('ddlLaatsteVier1');
    CurrentWKDeelnemer.Half2 = GetDDLSelectedValue('ddlLaatsteVier2');
    CurrentWKDeelnemer.Half3 = GetDDLSelectedValue('ddlLaatsteVier3');
    CurrentWKDeelnemer.Half4 = GetDDLSelectedValue('ddlLaatsteVier4');
    CurrentWKDeelnemer.TweedeA = GetDDLSelectedValue('ddlTweedeA');
    CurrentWKDeelnemer.TweedeB = GetDDLSelectedValue('ddlTweedeB');
    CurrentWKDeelnemer.TweedeC = GetDDLSelectedValue('ddlTweedeC');
    CurrentWKDeelnemer.TweedeD = GetDDLSelectedValue('ddlTweedeD');
    CurrentWKDeelnemer.TweedeE = GetDDLSelectedValue('ddlTweedeE');
    CurrentWKDeelnemer.TweedeF = GetDDLSelectedValue('ddlTweedeF');
    CurrentWKDeelnemer.TweedeG = GetDDLSelectedValue('ddlTweedeG');
    CurrentWKDeelnemer.TweedeH = GetDDLSelectedValue('ddlTweedeH');

    WKPoolService.OpslaanExtra(CurrentWKDeelnemer, OpslaanExtraDone);
}

function GetDDLSelectedValue(ddlNaam)
{
    var ddl = $get(ddlNaam);
    var index = ddl.selectedIndex;
    return ddl.options[index].value;
}

function SetDDLSelectedValue(ddlNaam, ddlWaarde)
{
    var ddl = $get(ddlNaam);
    for(var i=0; i<ddl.options.length; i++)
    {
        if (ddl.options[i].value == ddlWaarde)
        {
            ddl.selectedIndex = i;
            return;
        }
    }
}

function OpslaanExtraDone(success)
{
    if (success)
    {
        SetVisible('imgOpslaanExtraOK');
        SetHidden('imgOpslaanExtraNOK');
        setTimeout("SetHidden('imgOpslaanExtraOK')", 3000);
    }
    else
    {
        SetVisible('imgOpslaanExtraNOK');
        SetHidden('imgOpslaanExtraOK');
    }    
}
