
function setUpArrListe(ctrlIdRoot, ctrlIdParamContainer, landsdele, idraetter, typer, arrangoerer, antal, isTableLayout, visSted, visKort, visStatus, visMaalgruppe, url) {
    var ctrl = document.getElementById(ctrlIdParamContainer);
    if (ctrl != null) {
        ctrl.Landsdele = landsdele;
        ctrl.Idraetter = idraetter;
        ctrl.Typer = typer;
        ctrl.Arrangoerer = arrangoerer;
        ctrl.Antal = antal;
        ctrl.IsTableLayout = isTableLayout,
        ctrl.VisSted = visSted,
        ctrl.VisKort = visKort,
        ctrl.VisStatus = visStatus,
        ctrl.VisMaalgruppe = visMaalgruppe;
        ctrl.Url = url;
        renderArrListe(ctrlIdRoot, ctrlIdParamContainer);
    }
}

function renderArrListe(ctrlIdRoot, ctrlIdParamContainer) {
    var ctrl = document.getElementById(ctrlIdParamContainer);
    DGI.Web.API.WSAPI_sublayouts.arrservice.GetArrItems(ctrlIdRoot, ctrlIdParamContainer, ctrl.Landsdele, ctrl.Idraetter, ctrl.Typer, ctrl.Arrangoerer, ctrl.Antal, ctrl.Url, callbackArrListe);

    //   jQuery(ctrl).activate(0);
}

function renderArrListeNyLandsdel(ctrlIdRoot, ctrlIdParamContainer, landsdel) {
    var ctrl = document.getElementById(ctrlIdParamContainer);
    var tables = jQuery('table.Table' + ctrlIdRoot);

    for (i = 0; i < tables.length; i++) {
        var table = tables[i];
        while (table.hasChildNodes()) {
            table.removeChild(table.childNodes[0]);
        }
    }
    landsdel = (landsdel == "" ? ctrl.Landsdele : landsdel);
    DGI.Web.API.WSAPI_sublayouts.arrservice.GetArrItems(ctrlIdRoot, ctrlIdParamContainer, landsdel, ctrl.Idraetter, ctrl.Typer, ctrl.Arrangoerer, ctrl.Antal, ctrl.Url, callbackArrListe);
}

function callbackArrListe(o, e) {
    if (!o || o == "")
        return;

    var ctrlParamContainer = document.getElementById(o.ParamContainerId);
    $("dt.title.boxTitle").addClass("nodisplay");

    //clear count i table headers
    var aHeaders = jQuery('span.Header' + o.CtrlId);
    for (i = 0; i < aHeaders.length; i++) {
        var header = aHeaders[i];
        header.innerHTML = "(0)";
    }

    for (i in o.TypeCounts) {
        var idHeader = document.getElementById(o.CtrlId + '_header' + i);
        $(idHeader.parentNode).removeClass("nodisplay");
        idHeader.innerHTML = "";
        idHeader.appendChild(document.createTextNode(' (' + o.TypeCounts[i] + ')'));
    }

    if (ctrlParamContainer.IsTableLayout == "1")
        OutputArrangementerTableStyle(o);
    else
        OutputArrangementerSimpleStyle(o);
}

function OutputArrangementerTableStyle(o) {
    var params = document.getElementById(o.ParamContainerId);

    for (i = 0; i < o.ArrItems.length; i++) {
        var table = document.getElementById(o.CtrlId + '_tbl' + o.ArrItems[i].ArrType);
        var body;

        //Get the correct table out of the tables available (one table per accordion)        
        //IE hack: Has to check for the existence of exactly 2 childNodes on table element (THEAD and TBODY)
        if (table.hasChildNodes() && table.childNodes.length == 2) {
            body = table.childNodes[1];
        }
        else {
            //If the table is empty add header and body tags
            while (table.hasChildNodes()) {
                table.removeChild(table.childNodes[0]);
            }
            var head = document.createElement("THEAD");
            table.appendChild(head);

            //titel  
            var col = document.createElement("COL");
            col.className = "newsTitle";
            head.appendChild(col);

            if (params.VisSted == "1") {
                col = document.createElement("COL");
                col.className = "newsTitle";
                head.appendChild(col);
            }
            if (params.VisKort == "1") {
                col = document.createElement("COL");
                col.className = "newsTitle";
                head.appendChild(col);
            }

            //dato
            var col = document.createElement("COL");
            col.className = "newsTitle";
            head.appendChild(col);

            if (params.VisStatus == "1") {
                col = document.createElement("COL");
                col.className = "newsTitle";
                head.appendChild(col);
            }

            body = document.createElement("TBODY");
            table.appendChild(body);
        }

        var tr = document.createElement("TR");
        body.appendChild(tr);

        //Titel
        var td = document.createElement("TD");
        tr.appendChild(td);
        var iColCount = 1;
        var link = document.createElement("A");
        td.appendChild(link);
        link.appendChild(document.createTextNode(o.ArrItems[i].Titel));
        link.setAttribute("href", o.ArrItems[i].Link);

        if (params.VisSted == "1") {
            td = document.createElement("TD");
            iColCount++;
            td.appendChild(document.createTextNode(o.ArrItems[i].StedNavn));
            tr.appendChild(td);
        }
        if (params.VisKort == "1") {
            td = document.createElement("TD");
            iColCount++;
            //vi bruger jQuery, fordi td.appendChild er bugget så cssclassen ikke renderes rigtigt i IE
            $(td).append(BuildKortOgRuteLinkNode(o.ArrItems[i].StedAdresse, o.ArrItems[i].StedPostNr, o.ArrItems[i].StedBynavn))
            tr.appendChild(td);
        }

        //Dato
        td = document.createElement("TD");
        iColCount++;
        tr.appendChild(td);
        var sDato = o.ArrItems[i].StartDato;
        if (o.ArrItems[i].StartDato != o.ArrItems[i].TilDato)
            sDato += " - " + o.ArrItems[i].TilDato;
        td.appendChild(document.createTextNode(sDato));

        if (params.VisStatus == "1") {
            td = document.createElement("TD");
            iColCount++;
            if (o.ArrItems[i].Status != "") {
                var link = document.createElement("A");
                td.appendChild(link);
                link.appendChild(document.createTextNode(o.ArrItems[i].Status));
                link.setAttribute("href", o.ArrItems[i].Link);
            }
            tr.appendChild(td);

        }

        if (params.VisMaalgruppe && o.ArrItems[i].MaalgruppeTekst && o.ArrItems[i].MaalgruppeTekst != "") {
            tr = document.createElement("TR");
            body.appendChild(tr);
            td = document.createElement("TD");
            tr.appendChild(td);
            td.setAttribute("colSpan", iColCount);
            td.setAttribute("class", "maalgruppe");
            //td.appendChild(document.createTextNode(o.ArrItems[i].MaalgruppeTekst));
            td.innerHTML = o.ArrItems[i].MaalgruppeTekst;
        }
    }
}

function OutputArrangementerSimpleStyle(o) {
    for (i = 0; i < o.ArrItems.length; i++) {
        var table = document.getElementById(o.CtrlId + '_tbl' + o.ArrItems[i].ArrType);
        var body;

        //Get the correct table out of the tables available (one table per accordion)        
        //IE hack: Has to check for the existence of exactly 2 childNodes on table element (THEAD and TBODY)
        if (table.hasChildNodes() && table.childNodes.length == 2) {
            body = table.childNodes[1];
        }
        else {
            //If the table is empty add header and body tags
            while (table.hasChildNodes()) {
                table.removeChild(table.childNodes[0]);
            }
            var head = document.createElement("THEAD");
            table.appendChild(head);

            var col = document.createElement("COL");
            col.className = "newsTitle";
            head.appendChild(col);

            body = document.createElement("TBODY");
            table.appendChild(body);
        }

        var tr = document.createElement("TR");

        var td = document.createElement("TD");
        var link = document.createElement("A");
        link.appendChild(document.createTextNode(o.ArrItems[i].Titel));
        link.setAttribute("href", o.ArrItems[i].Link);
        td.appendChild(link);

        td.appendChild(document.createElement("BR"));
        var sDato = o.ArrItems[i].StartDato;
        if (o.ArrItems[i].StartDato != o.ArrItems[i].TilDato)
            sDato += " - " + o.ArrItems[i].TilDato;
        td.appendChild(document.createTextNode(sDato));
        td.appendChild(document.createElement("HR"));

        tr.appendChild(td);
        body.appendChild(tr);
    }
}

function BuildKortOgRuteLinkNode(adresse, postnr, bynavn) {
    if (adresse == null || adresse.trim() == "" || postnr == null || postnr.trim() == "")
        return "";
    var sUrl = "http://www.degulesider.dk/vbw/kort/resultat.do?g=" + escape(adresse) + "&z=" + postnr;
    var sTitle = adresse + ", " + postnr + " " + bynavn;
    strHTML = "<a href=\"" + sUrl + "\" target=\"_blank\" class=\"mapLink\" title=\"" + sTitle + "\"><img src=\"/gfx/kort.gif\" /></a>";
    return strHTML;



}

