﻿var DiscussieOverzichtPaginas = 0;

function forum_click()
{
    ShowMenu('divForum');

    InitGrayText(true, 'txtZoekDiscussie', 'zoeken...');
    $get('pnlDiscussieNieuw').style.height = "0px";

    if ($get('tblDiscussionsOverview') == null)
    {
        DiscussieOverzichtPaginas = 0;
        UsfService.GetDiscussionsOverview("", DiscussieOverzichtPaginas, GotDiscussions);
    }
    else
    {
        DisplayNone('divSearchDiscussions');
        DisplayYes('divDiscussionsOverview');
        DisplayYes('divDiscussionsFooter');
    }
}

function ZoekDiscussie()
{
    DiscussieOverzichtPaginas = 0;
    GetDiscussions();
}

function GetDiscussions()
{
    var ZoekTekst = $get('txtZoekDiscussie').value;

    if (ZoekTekst == "zoeken...")
        ZoekTekst = "";

    if (ZoekTekst == "")
    {
        DisplayNone('divSearchDiscussions');
        DisplayYes('divDiscussionsOverview');
        DisplayYes('divDiscussionsFooter');
    }
    else
    {
        DisplayNone('divDiscussionsFooter');
        UsfService.GetDiscussionsOverview(ZoekTekst, DiscussieOverzichtPaginas, GotDiscussionsWithSearch);
    }
}

function GotDiscussionsWithSearch(lijst)
{
    GotDiscussions2(lijst, true);
}

function GotDiscussions(lijst)
{
    GotDiscussions2(lijst, false);    
}

function GotDiscussions2(lijst, blnSearch)
{
    if ($get('tblDiscussionsOverview') == null)
    {
        $get('divDiscussionsOverview').innerHTML = '<table id="tblDiscussionsOverview" cellspacing="0"></table>';
    }

    if ($get('tblDiscussionsOverviewWithSearch') == null)
    {
        $get('divSearchDiscussions').innerHTML = '<table id="tblSearchDiscussions" cellspacing="0"></table>';
    }

    var tabel = $get('tblDiscussionsOverview');

    if (blnSearch)
        tabel = $get('tblSearchDiscussions');

    for (var i = 0; i < lijst.length; i++)
    {
        if (blnSearch || $get('trDiscussieOverview_' + lijst[i].DiscussieID) == null)
        {
            var Row = tabel.insertRow(tabel.rows.length);
            DiscussieToTableRow(Row, lijst[i]);
        }
    }

    if (lijst.length > 0)
        DisplayYes('lblForumMore');
    else
        DisplayNone('lblForumMore');

    if (blnSearch)
        DisplayNone('divDiscussionsFooter');
    else
        DisplayYes('divDiscussionsFooter');

    DisplayNone('imgMeerDiscussiesLoading');

    if (lijst.length > 0 && CurrentBijdrageID < lijst[0].BijdrageID && !blnSearch)
        CurrentBijdrageID = lijst[0].BijdrageID;

    AlternateDiscussieOverview(tabel);

    if (blnSearch)
    {
        DisplayNone('divDiscussionsOverview');
        DisplayYes('divSearchDiscussions');
    }
    else
    {
        DisplayNone('divSearchDiscussions');
        DisplayYes('divDiscussionsOverview');
    }
}

function DiscussieToTableRow2(Row, Update, DiscussieID, DiscussieTitel, Registered, NaamLaatste, DatumLaatste)
{
    if (!Registered)
        NaamLaatste = "<i>" + NaamLaatste + "</i>"

    DatumLaatste = FormatDatum(DatumLaatste);

    Row.id = "trDiscussieOverview_" + DiscussieID;
    Row.onclick = function() { GetDiscussieInhoud(DiscussieID); };

    var CelTitel = Row.insertCell(0);
    CelTitel.id = "tdDiscussieTitelOverview_" + DiscussieID;

    CelTitel.setAttribute("class", "TitelDiscussionsOverview");
    CelTitel.setAttribute("className", "TitelDiscussionsOverview");

    CelTitel.innerHTML = DiscussieTitel;

    var CelNaam = Row.insertCell(1);
    CelNaam.innerHTML = NaamLaatste;
    CelNaam.setAttribute("class", "NaamDiscussionsOverview");
    CelNaam.setAttribute("className", "NaamDiscussionsOverview");

    var CelDatum = Row.insertCell(2);
    CelDatum.setAttribute("align", "center");
    CelDatum.appendChild(document.createTextNode(DatumLaatste));
    CelDatum.setAttribute("class", "DatumDiscussionsOverview");
    CelDatum.setAttribute("className", "DatumDiscussionsOverview");
}

function GetDiscussieTitel(id)
{
    UsfService.GetDiscussieInfo(id, GotDiscussieTitel);
}

function GotDiscussieTitel(Discussie)
{
    $get("tdDiscussieTitelOverview_" + Discussie.DiscussieID).innerHTML = Discussie.DiscussieTitel;
}


function DiscussieToTableRow(row, discussie)
{
    return DiscussieToTableRow2(row, false, discussie.DiscussieID,
                            discussie.DiscussieTitel,
                            discussie.Registered,
                            discussie.NaamLaatste, 
                            discussie.DatumLaatste);
}


function MeerDiscussies()
{
    DisplayYes('imgMeerDiscussiesLoading');
    DisplayNone('lblForumMore');
    DiscussieOverzichtPaginas++;
    UsfService.GetDiscussionsOverview("", DiscussieOverzichtPaginas, GotDiscussions);
}


function UpdateDiscussieOverview(bijdrage)
{
    var tabel = $get('tblDiscussionsOverview');
    
    if (tabel == null)
        return;
        
    var row = tabel.insertRow(0);

    var trDiscussie = $get("trDiscussieOverview_" + bijdrage.DiscussieID);
    
    if (trDiscussie != null)
    {
        trDiscussie.parentNode.removeChild(trDiscussie);
    }

    DiscussieToTableRow2(row, true, bijdrage.DiscussieID, bijdrage.DiscussieTitel, bijdrage.Registered, bijdrage.Gebruiker, bijdrage.Datum);
    AlternateDiscussieOverview(tabel);
}

function AlternateDiscussieOverview(tabel)
{
    var rows = tabel.getElementsByTagName("tr");

    for (var i = 0; i < rows.length; i++)
    {
        if (i % 2 == 1)
        {
            rows[i].setAttribute("class", "DiscussieRow");
            rows[i].setAttribute("className", "DiscussieRow");
        }
        else
        {
            rows[i].setAttribute("class", "DiscussieRow2");
            rows[i].setAttribute("className", "DiscussieRow2");
        }
        
    }
}

function InitGrayText(init, element, tekst)
{
    var elt = $get(element);
    
    if (init)
    {
        elt.setAttribute("class", "GrayText");
        elt.setAttribute("className", "GrayText");
        elt.value = tekst;
    }
    else
    {
        elt.setAttribute("class", "BlackText");
        elt.setAttribute("className", "BlackText");
        elt.value = "";
    }
}

function DiscussieNieuw()
{
    if (CurrentUsername == '' || CurrentUsername == null)
    {
        ActionAfterLogin = "DiscussieNieuw";
        login_click2();
        return;
    }

    $find('cpeDiscussieNieuw')._doOpen();
    $get('txtDiscussieNieuwBijdrage').focus();
    $get('txtDiscussieNieuwNaam').value = CurrentUsername;

    InitGrayText(true, 'txtDiscussieNieuwTitel', 'Titel');
    InitGrayText(true, 'txtDiscussieNieuwLink', 'http://');
}

function DiscussieNieuwOK()
{
    var Titel = $get('txtDiscussieNieuwTitel').value;
    var Link = $get('txtDiscussieNieuwLink').value;
    var Reactie = $get('txtDiscussieNieuwBijdrage').value;

    Titel = Trim(Titel);
    Link = Trim(Link);
    Reactie = Trim(Reactie);
    
    if (Reactie == "")
    {
        $get('txtDiscussieNieuwBijdrage').value = "";
        $get('txtDiscussieNieuwBijdrage').focus();
        return;
    }

    if (Titel == "Titel")
        Titel = "";
        
    if (Titel == "")
    {
        $get('txtDiscussieNieuwTitel').value = "";
        $get('txtDiscussieNieuwTitel').focus();
        return;
    }

    $find('cpeDiscussieNieuw')._doClose();

    Reactie = TransformReactie(Reactie);

    UsfService.DiscussieNieuw(Titel, Link, Reactie, DiscussieNieuwDone);
}

function DiscussieNieuwAnnuleren()
{
    $find('cpeDiscussieNieuw')._doClose();
}

function DiscussieNieuwDone(ErrorMessage)
{
    if (ErrorMessage != null && ErrorMessage != "")
    {
        ShowMessage(ErrorMessage);
    }
    else
    {
        CheckUpdates(false);
        InitGrayText(true, 'txtBijdrageReactieLink', 'http://');
    }
}
