<% /*
     $Revision$
     $Id$

    File:           mgt_srtkenmerk.inc
    Description:    contains function to be used in all /mgt/xxx_srtkenmerk.asp

    Parameters:

    Context:
    Note:

*/ %>
<%
function canAttributetypeToggle(module, selected_ids)
{
    function str2arr(t)
    {
        var a = [];
        if (typeof t == "string")
        {
            for (var i=0; i<t.length; i++)
                a.push(t.charAt(i));
        }
        else
        {
            if (t instanceof Array)
                for (var i=0; i<t.length; i++)
                    a.push(t[i]);
        }
        return a;
    }

    function inArrayAny(needles, haystack)
    {
        var n = str2arr(needles);
        var h = str2arr(haystack);
        var result = false;
        for (var i=0; i<n.length; i++)
        {
            if (inArray(n[i], h))
                result = true;
        }
        return result;
    }

    function inArrayOthers(needles, haystack)
    {   // functie geeft true als er iets anders dan de needles in de haystack zit.
        // Met andere woorden: true,  als er een haystack overblijft wanneer je de needles eruit hebt gehaald.
        var n = str2arr(needles);
        var h = str2arr(haystack);
        var result = false;
        if (h.length > 0)
        {
            for (var i=0; i<n.length; i++)
            {
                var p = sharedIndexOf(n[i], h);
                if (p != -1)
                    h.splice(p, 1);
            }
            result = (h.length > 0);
        }
        return result;
    }

    // Main
    var hasMultiedit = { multi: false
                       , canToggle: ""
                       };

    if (selected_ids.length > 0)
    {
        var v_multi_arr = "";
        var sql = "SELECT DISTINCT " + module + "_srtkenmerk_kenmerktype kmtype"
                + "  FROM " + module + "_srtkenmerk"
                + " WHERE " + module + "_srtkenmerk_key IN (" + selected_ids.join(",") + ")";
        var oRs = Oracle.Execute(sql);
        while (!oRs.eof)
        {
            v_multi_arr += oRs("kmtype").Value;
            oRs.MoveNext();
        }
        oRs.Close();

        if (  (inArrayAny("lL", v_multi_arr) && !inArrayOthers("lL", v_multi_arr))
           || (inArrayAny("RS", v_multi_arr) && !inArrayOthers("RS", v_multi_arr))
           )
        {
            hasMultiedit.multi = true;
            hasMultiedit.canToggle = v_multi_arr.charAt(0);
        }
    }
    else
    {
        hasMultiedit.multi = true;
    }
    return hasMultiedit;
}

function modelHasMultiedit(fields)
{
    var multiCount = 0;
    for (fld in fields)
    {
        if (fields[fld].multiedit)
        {
            multiCount++;
        }
    }
    return multiCount;
}
%>
