<%@language = "javascript" %>
<% /*
     $Revision$
     $Id$

    File:           load_lcl.asp
    Description:    Haal een tekst (lcl) op om clientside te gebruiken
                    Registreer tegelijk in fac_locale_xref dat deze tekst is opgehaald
                    zodat we de volgende keer zorgen dat de tekst bij voorbaat al
                    beschikbaar was zodat er geen losse Ajax call nodig is
    Note:
*/

var JSON_Result = true;
ANONYMOUS_Allowed = 1;
LCL_Disable = 1; // wij zijn veel slimmer
%>

<!-- #include file="../Shared/common.inc" -->

<%
    result = { success: true };

    var p_lcl = getQParam("lcl", "");
    var p_hide_error = getQParamInt("hide_error", 0) == 1;
    if (!p_lcl)         // Rond 5.2.2 is deze parameter verplicht geworden. Na een jaar zijn
        Response.End;   // er nog altijd mensen bij UWVA die de 'oude' aanroep hebben,
                        // waarschijnlijk een bookmark. Voorkom dat dit in de error-log komt.

    var pad = getQParam("pathname"); // bijvoorbeeld /facilitor5iwork/appl/Fac/Facilitor.asp
    pad = pad.substring(rooturl.length+1); // die er af, ook eerste slash
    pad = pad.toLowerCase().replace(/\\/g,"/");
    if (pad.indexOf("/")==0)
    {
        __DoLog("Menuoptie naar {0} hoort niet met een slash te beginnen".format(pad), "#0ff");
        pad = pad.substring(1); // die er af
    }
    if (!pad || pad.match(/[^a-z0-9\.\_\/]/)) // paranoia
    {
        INTERNAL_ERROR_BAD_PAD;
    }

    var sql = "SELECT fac_locale_xsl_key,"
            + "       COALESCE(fac_locale_xsl_cust, fac_locale_xsl_tekst) fac_locale_xsl_tekst"
            + "  FROM fac_locale_xsl"
            + " WHERE fac_locale_xsl_lang = " + safe.quoted_sql(user_lang)
            + "   AND fac_locale_xsl_label = " + safe.quoted_sql(p_lcl);
    var oRs = Oracle.Execute(sql);
    locale_xsl_key = -1;
    if (oRs.Eof)
    {
        if (!p_hide_error)
            __DoLog("{0} LCL '{1}' is undefined!".format(user_lang, p_lcl), "#F00");
        if (p_lcl in overrule_lcl)
            result.lcl = overrule_lcl[p_lcl];
        else
            result.lcl = "??" + safe.html(p_lcl) + "??";
    }
    else
    {
        result.lcl =oRs("fac_locale_xsl_tekst").Value;
        locale_xsl_key = oRs("fac_locale_xsl_key").Value;
        lcl.loadLCL(pad); // Bestond hij al (misschien voor serverside)
        // Beetje oppassen voor multi-user gebruik-->volgorde
        if (!(p_lcl in cache_lcls))
        {   // Voortaan ook clientside
            sql = "INSERT INTO fac_locale_xref(fac_locale_xref_filepath, fac_locale_xsl_key, fac_locale_xref_client)"
                + "   SELECT " + safe.quoted_sql(pad, 100) + ", " + locale_xsl_key + ", 1 FROM DUAL"
                + "    WHERE NOT EXISTS"
                + "                (SELECT '' FROM fac_locale_xref"
                + "                  WHERE fac_locale_xref_filepath = " + safe.quoted_sql(pad, 100)
                + "                    AND fac_locale_xsl_key = " + locale_xsl_key
                + ")";
            Oracle.Execute(sql);
        }
        // nu nog op 1 zetten voor als hij er eventueel al wel was
        sql = "UPDATE fac_locale_xref"
            + "   SET fac_locale_xref_client = 1"
            + " WHERE fac_locale_xref_filepath = " + safe.quoted_sql(pad)
            + "   AND fac_locale_xsl_key = " + locale_xsl_key;
        Oracle.Execute(sql);
    }
    oRs.Close();

    Response.Write(JSON.stringify(result));
%>
<% ASPPAGE_END(); %>
