<% /*
     $Revision$
     $Id$

     File:               ALG/alg_flexkenmerk.inc
     Description:        Functie die html code genereert voor de presentatie van de flexvelden
     Parameters:         urole                Rol van de gebruiker (frontend, frontoffice, backoffice, management info)
                         onrgoed_niveau       Onroerendgoed niveua
                         reado                Readonly
                         flexcolumns          aantal kolommen voor flexkenmerken
                         this_alg             { readman, readuse     Voor tonen
                                                writeman, writeuse }  (voor als niet reado)
                         advanced             Geadvanceerd
     Context:            Functie wordt aangeroepen door
                         1) load_kenmerk.asp
                         2) alg_edit_xxx.asp die initieel serverside deze html code invoegt.
     Note:
*/ %>
<!-- #include file="../Shared/kenmerk_common.inc" -->
<%
function generateFlexKenmerkBlock(params)
{
    if (!params.fnpre) // Mobile geeft die zelf mee
    {
        if (params.advanced) // Simpel houden
        {
            params.fnpre = function () { Response.Write('<table id="flextable" cellpadding="0" cellspacing="0">'); };
            params.fnpost = function () { Response.Write('</table>'); };
        }
        else
        {
            params.fnpre = function () { BLOCK_START("algFlex"+(S("alg_flexcolumns")!=1?"2":""), L("lcl_alg_flexblok")); }
            params.fnpost = BLOCK_END;
        }
    }
    var onrgoed_key = params.onrgoed_key; // Onroerendgoed key
    var onrgoed_niveau = params.onrgoed_niveau; // Onroerendgoed niveau
    var reado = params.reado; // Readonly
    var flexcolumns = params.flexcolumns? params.flexcolumns : 1;
    var advanced = params.advanced; // Geavanceerd

    function isReadonly (volgnummer)
    {
        if (reado)
            return true;
        if (volgnummer < 100 && !params.this_alg.writeman)
            return true;
        if (volgnummer > 100 && !params.this_alg.writeuse)
            return true;
    }

    function isInvisible(volgnummer, ktype)
    {
        if (params.multi)
            return (ktype == 'M' || ktype == 'F' || ktype == 'E'); // onzichtbaar bij multi
    }

    var sql = "SELECT    k.alg_kenmerk_key              kenmerk_key, "
             + lcl.xsql('k.alg_kenmerk_omschrijving', 'k.alg_kenmerk_key') +" kenmerk_omschrijving, "
             + "         k.alg_kenmerk_kenmerktype      kenmerk_kenmerktype, "
             + "         k.fac_kenmerkdomein_key        kenmerkdomein_key, "
             + "         k.alg_kenmerk_lengte           kenmerk_lengte, "
             + "         k.alg_kenmerk_dec              kenmerk_dec, "
             + "         k.alg_kenmerk_nmin             kenmerk_nmin, "
             + "         k.alg_kenmerk_nmax             kenmerk_nmax, "
             + (onrgoed_key > 0
               ? "     (SELECT v.alg_onrgoedkenmerk_waarde "
                 + "      FROM alg_onrgoedkenmerk v "
                 + "      WHERE v.alg_onrgoed_key = " + onrgoed_key
                 + "      AND v.alg_onrgoed_niveau = " + safe.quoted_sql(onrgoed_niveau)
                 + "      AND v.alg_kenmerk_key = k.alg_kenmerk_key"
                 + "      AND v.alg_onrgoedkenmerk_verwijder IS NULL)"
               : lcl.xsql('k.alg_kenmerk_default', 'k.alg_kenmerk_key')
               ) + "                                    kenmerk_waarde, "
             + "         k.alg_kenmerk_volgnr           kenmerk_volgnr, "
             + lcl.xsql('k.alg_kenmerk_dimensie', 'k.alg_kenmerk_key') +" kenmerk_dimensie, "
             + lcl.xsql('k.alg_kenmerk_hint', 'k.alg_kenmerk_key') +" kenmerk_hint, "
             + lcl.xsql('k.alg_kenmerk_default', 'k.alg_kenmerk_key') +" kenmerk_default, "
             + "         k.alg_kenmerk_verplicht        kenmerk_verplicht, "
             + "         k.alg_kenmerk_groep            kenmerk_groep, "
             + "         NULL otherpath, "
             + "         k.alg_kenmerk_toonbaar         kenmerk_toonbaar,"
             + "         k.alg_kenmerk_uniek            kenmerk_uniek,"
             + "         k.alg_kenmerk_regexp           kenmerk_regexp"
             + "    FROM alg_kenmerk k "
             + "   WHERE k.alg_kenmerk_niveau = " + safe.quoted_sql(onrgoed_niveau)
             + "     AND k.alg_kenmerk_verwijder IS NULL "
             + (!params.this_alg.readman? " AND alg_kenmerk_volgnr >= 100":"")
             + (!params.this_alg.readuse? " AND alg_kenmerk_volgnr <= 100":"")
             + "ORDER BY k.alg_kenmerk_volgnr, "
             + lcl.xsql('k.alg_kenmerk_omschrijving', 'k.alg_kenmerk_key');

    var trn = 0;

    listKenmerk(sql,
                "ALG", //module
                onrgoed_key,
                { flexcolumns: (!advanced ? flexcolumns : 1), // advanced is een popup. Dan passen twee kolommen slecht
                  kenmerk_search: advanced,
                  fnIsReadonly: isReadonly,
                  hideVervallen: onrgoed_key<0,
                  fnpre: params.fnpre,
                  fnpost: params.fnpost,
                  fnIsInvisible: isInvisible,
                  mobile: params.mobile,
                  parentKey: onrgoed_key,
                  kenmerk_module: onrgoed_niveau }
               );
}
%>
