﻿var CurrentDiscussieID = 0;
var BijdragenPagina = 0;
var DiscussieAantal = 0;
var DiscussieIDs = new Array();

function GetDiscussieInhoud(id)
{
    DisplayYes('BijdrageMeer');
    DisplayYes('lblBijdragenMore');
    ShowMenu('divBijdragen');

    var DiscRow = $get("tdDiscussieTitelOverview_" + id);

    if (DiscRow != null)
    {
        DiscRow.setAttribute("class", "TitelDiscussionsOverview");
        DiscRow.setAttribute("className", "TitelDiscussionsOverview");
    }

    $get('pnlReageer').style.height = "0px";

    GetBijdragen(id);
}

function GetBijdragen(id)
{
    CurrentDiscussieID = id;
    BijdragenPagina = 0;

    CloseAllChildrenDivs('divKopRegels');
    CloseAllChildrenDivs('divBijdragenAll');

    if ($get('tblDiscussieKopregel_' + id) == null)
    {
        DisplayNone('divBijdragen2');
        DisplayNone('lblBijdragenMore');
        DisplayYes('imgMeerBijdragenLoading');
        
        UsfService.GetDiscussieInfo(id, GotDiscussieInfo);
    }
    else
    {
        DisplayYes('tblDiscussieKopregel_' + id);
    }

    if ($get('divBijdragenTabel_' + id) == null)
    {
        DisplayNone('lblBijdragenMore');
        UsfService.GetBijdragen(id, 0, GotBijdragen);
    }
    else
    {
        DisplayYes('divBijdragenTabel_' + id);
    }
}

function GotDiscussieInfo(discussie)
{
    DiscussieIDs[DiscussieAantal] = CurrentDiscussieID;
    DiscussieAantal++;
    
    var CssClass = "tdDiscussieTitel";

    if (discussie.Link == null)
        CssClass = "tdDiscussieTitelNoLink";

    var html = '<table class="tblKopregel" id="tblDiscussieKopregel_' +
        CurrentDiscussieID +
        '"><tr><td class="' + CssClass + '">' +
        discussie.DiscussieTitel + "</td>";

    if (discussie.Link != null)
        html += '<td class="tdDiscussieLink">' + MakeLink(discussie.Link) + "</td>";

    html += '<td class="tdDiscussieReageer" onclick="BijdrageReageer()">reageer</td></tr></table>';

    $get('divKopRegels').innerHTML += html;

    DisplayYes('divBijdragen2');
    DisplayYes('tblDiscussieKopregel_' + CurrentDiscussieID);

}

function MeerBijdragen()
{
    DisplayNone('lblBijdragenMore');
    DisplayYes('imgMeerBijdragenLoading');
    BijdragenPagina++;
    UsfService.GetBijdragen(CurrentDiscussieID, BijdragenPagina, GotBijdragen);
}

function GotBijdragen(lijst)
{
    var html = "";

    if (BijdragenPagina == 0)
    {
        html = '<div id="divBijdragenTabel_' + CurrentDiscussieID +
            '" class="BijdragenTabel">';
    }
    
    html += BijdragenToHTML(lijst);
    
    if (BijdragenPagina == 0)
    {
        html += "</div>";
        $get('divBijdragenAll').innerHTML += html;
    }
    else
    {
        $get('divBijdragenTabel_' + CurrentDiscussieID).innerHTML += html;
    }
    
    DisplayYes('divBijdragenTabel_' + CurrentDiscussieID);

    DisplayNone('imgMeerBijdragenLoading');

    if (lijst.length > 0)
        DisplayYes('lblBijdragenMore');
    else
        DisplayNone('BijdrageMeer');        
}

function BijdragenToHTML(lijst)
{
    var html = "";

    for (var i = 0; i < lijst.length; i++)
    {
        html += BijdrageToHTML(lijst[i]);
    }

    return html;
}

function BijdrageToHTML(bijdrage)
{
    var LinkHTML = "";

    var Colspan = 2;
    var KopCss = "tdBijdrageGebruiker";

    if (!bijdrage.Registered)
        bijdrage.Gebruiker = "<i>" + bijdrage.Gebruiker + "</i>";
    
    if (bijdrage.Link != null && Trim(bijdrage.Link).length > 0)
    {
        LinkHTML = '<td class="tdBijdrageLink" align="center">' + MakeLink(bijdrage.Link) + "</td>";
        Colspan = 3;
        KopCss = "tdBijdrageGebruikerWithLink";
    }

    var html = '<table id="tblBijdrage_' + bijdrage.BijdrageID + '" cellspacing="0" class="tblBijdrage">' +
        '<tr class="trBijdrageKop">' +
        '<td class="tdBijdrageDatum" align="left">' +
        FormatDatum(bijdrage.Datum) +
        "</td>" +
        '<td class="' + KopCss + '">' +
        bijdrage.Gebruiker + '</td>' +
        LinkHTML + "</tr>" +
        '<tr><td class="tdBijdrageText" colspan="' + Colspan + '">' +
        bijdrage.BijdrageText + "</td></tr></table>";

    return html;
}

function GotBijdragenUpdates(lijst)
{
    GotBijdragenUpdates2(lijst, true);
}

function GotBijdragenUpdatesNoHeartbeat(lijst)
{
    GotBijdragenUpdates2(lijst, false);
}

function GotBijdragenUpdates2(lijst, isHeartbeat)
{
    for (var i = lijst.length - 1; i >= 0; i--)
    {
        var bijdrage = lijst[i];
        var Discussie = $get('divBijdragenTabel_' + bijdrage.DiscussieID);

        if (Discussie != null)
        {
            var html = BijdrageToHTML(bijdrage);
            Discussie.innerHTML = html + Discussie.innerHTML;
            
            if (!document.all)
                FadeIn('tblBijdrage_' + bijdrage.BijdrageID, 0);
        }
        
        UpdateDiscussieOverview(bijdrage);

        Add2Live(bijdrage, false, true);
    }

    //OK
    if (isHeartbeat)
        CheckUpdates(true);
}

function BijdrageReageer()
{
    if (CurrentUsername == '' || CurrentUsername == null)
    {
        ActionAfterLogin = "BijdrageReageer";
        login_click2();
        return;
    }

    $find('cpeReageerDiv')._doOpen();
    $get('txtBijdrageReactie').focus();
    $get('txtReageerNaam').value = CurrentUsername;

    InitGrayText(true, 'txtBijdrageReactieLink', 'http://');
}

function BijdrageReageerAnnuleren()
{
    $find('cpeReageerDiv')._doClose();
} 

function BijdrageReageerOK()
{
    var Naam = $get('txtReageerNaam').value;
    var Link = $get('txtBijdrageReactieLink').value;
    var Reactie = $get('txtBijdrageReactie').value;

    Naam = Trim(Naam);
    Link = Trim(Link);
    Reactie = Trim(Reactie);

    if (Naam == "")
    {
        $get('txtReageerNaam').focus();
        return;
    }

    if (Reactie == "")
    {
        $get('txtBijdrageReactie').focus();
        return;
    }

    if (Link == "http://")
        Link = "";

    $find('cpeReageerDiv')._doClose();

    Reactie = TransformReactie(Reactie);

    
    UsfService.BijdrageReactie(Naam, Link, Reactie, CurrentDiscussieID, BijdrageReactieDone);
}

function TransformReactie(Reactie)
{
    Reactie = ReplaceRecursive(Reactie, /\n/, '<br />');

    Reactie = TransformHTML(Reactie, true);

    return Reactie;
}

function ReplaceRecursive(str, from, to)
{
    while (str != str.replace(from, to))
    {
        str = str.replace(from, to);
    }
    return str;
}

function BijdrageReactieDone(ErrorMessage)
{
    if (ErrorMessage != null && ErrorMessage != "")
    {
        ShowMessage(ErrorMessage);
    }
    else
    {
        CheckUpdates(false);
        $get('txtReageerNaam').value = "";
        $get('txtBijdrageReactie').value = "";
        InitGrayText(true, 'txtBijdrageReactieLink', 'http://');
    }
}

