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

    File:               LoadInsLegenda.asp
    Description:        Maak een lijst bestaande symbolen op huidige verdieping
    Parameters:         discs: keys van te tonen disciplines
                        objectmove: indien 1 worden ook niet geplaatste symbolen getoond en zijn die sleepbaar.
    Context:            default.asp/Ajax.Updater
    Note:
*/
%>

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

<%
var pDiscs_arr = getQParamIntArray("discs", []);
if (pDiscs_arr.length == 0) Response.End;

var inoutMode = getQParamInt("mode");
var floorKey = getQParamInt("vKey", -1);
var scenario_key = getQParamInt("scenario_key"); // current scenario.
var objectmove = getQParamInt("objectmove", 0); // Editmode?

if (inoutMode == MODE_IN && scenario_key > 0)
{
  deelTable  = "prj_deel";
  deelParent = "prj_ruimte_key";
  dbTable    = "prj_ruimte";
  dbLabel    = "prj_ruimte_nr";
  colKey     = "prj_ruimte_key";
  syncView   = S("fg_prj_syncruimteview");
  syncParent = "alg_verdieping_key";
}
else if (inoutMode == MODE_IN)
{
  deelTable  = "ins_deel";
  deelParent = "ins_alg_ruimte_key";
  dbTable    = "alg_ruimte";
  dbLabel    = "alg_ruimte_nr";
  colKey     = "alg_ruimte_key";
  syncView   = S("fg_syncruimteview"); // "alg_v_aanwezigruimte";
  syncParent = "alg_verdieping_key";
}
else
{
  deelTable  = "ins_deel";
  deelParent = "ins_alg_ruimte_key";
  dbTable    = "alg_terreinsector";
  dbLabel    = "alg_terreinsector_code";
  colKey     = "alg_terreinsector_key";
  syncView   = S("fg_syncterreinview");
  syncParent = "alg_locatie_key";
}

sql = "SELECT " + lcl.xsqla('isg.ins_srtgroep_omschrijving', 'isg.ins_srtgroep_key')
    + ", " + lcl.xsqla('isd.ins_srtdeel_omschrijving', 'isd.ins_srtdeel_key')
    + ",      isd.ins_srtdeel_key"
    + ",      ins_srtdeel_code, ins_srtdeel_acadsymbol, isg.ins_discipline_key"
    + ",      " + lcl.xsqla('idd.ins_discipline_omschrijving', 'idd.ins_discipline_key')
    + ",      COUNT(*) aantal"
    + "  FROM " + dbTable + ", " + deelTable + " id, ins_srtdeel isd, ins_srtgroep isg, ins_discipline idd"
    + " WHERE isd.ins_srtgroep_key = isg.ins_srtgroep_key"
    + "   AND ins_srtdeel_acadsymbol IS NOT NULL"
    + "   AND isg.ins_discipline_key IN (" + pDiscs_arr.join(",") + ")"
    + "   AND idd.ins_discipline_key = isg.ins_discipline_key"
    + "   AND ID.ins_srtdeel_key = isd.ins_srtdeel_key"
    + (scenario_key>0
            ?" AND prj_scenario_key = " + scenario_key
            :  "    AND ins_deel_parent_key IS NULL"
             + "   AND ins_deel_verwijder IS NULL"
             + "   AND (ins_deel_vervaldatum IS NULL OR ins_deel_vervaldatum > TRUNC(SYSDATE))")
    + "   AND id." + deelParent + " = " + dbTable + "." + colKey
    + "   AND " + syncParent + " = " + floorKey
    + " GROUP BY " + lcl.xsql('isg.ins_srtgroep_omschrijving', 'isg.ins_srtgroep_key')
    + ",         " + lcl.xsql('isd.ins_srtdeel_omschrijving', 'isd.ins_srtdeel_key')
    + ",         isd.ins_srtdeel_key, ins_srtdeel_code"
    + ",         ins_srtdeel_acadsymbol"
    + ",         isg.ins_discipline_key"
    + ",         " + lcl.xsql('idd.ins_discipline_omschrijving', 'idd.ins_discipline_key');

if (objectmove && user.has("WEB_INSMAN"))
{
  sql += "UNION "
      + "SELECT " + lcl.xsqla('isg.ins_srtgroep_omschrijving', 'isg.ins_srtgroep_key')
      + ",      " + lcl.xsqla('isd.ins_srtdeel_omschrijving', 'isd.ins_srtdeel_key')
      + ",      isd.ins_srtdeel_key, ins_srtdeel_code, ins_srtdeel_acadsymbol"
      + ",      isg.ins_discipline_key, " + lcl.xsqla('idd.ins_discipline_omschrijving', 'idd.ins_discipline_key')
      + ",      0 aantal"
      + "  FROM ins_srtdeel isd, ins_srtgroep isg, ins_discipline idd,"
      + "       fac_v_webgebruiker w, fac_functie f "
      + " WHERE w.ins_discipline_key = idd.ins_discipline_key "
      + "   AND w.fac_functie_key = f.fac_functie_key "
      + "   AND w.prs_perslid_key = " + user_key
      + "   AND isd.ins_srtgroep_key = isg.ins_srtgroep_key"
      + "   AND ins_srtdeel_acadsymbol IS NOT NULL"
      + "   AND isg.ins_discipline_key IN (" + pDiscs_arr.join(",") + ")"
      + "   AND idd.ins_discipline_key = isg.ins_discipline_key"
      + "   AND fac_functie_code = " + safe.quoted_sql(scenario_key <= 0? 'WEB_INSMAN' : 'WEB_INSPRJ')
      + "   AND fac_gebruiker_alg_level_write < 9"
      + "   AND ins_srtdeel_verwijder IS NULL";
      //TODO: AND WHERE schrijfautorisatie/op deze verdieping
  }

  sql = "SELECT ins_srtgroep_omschrijving, ins_srtdeel_omschrijving"
      + ",      ins_srtdeel_key, ins_srtdeel_code, ins_srtdeel_acadsymbol"
      + ",      ins_discipline_key, ins_discipline_omschrijving"
      + ",      MAX(aantal) aantal"
      + "  FROM ("+sql+") "
      + "GROUP BY ins_srtgroep_omschrijving, ins_srtdeel_omschrijving"
      + ",      ins_srtdeel_key, ins_srtdeel_code, ins_srtdeel_acadsymbol"
      + ",      ins_discipline_key, ins_discipline_omschrijving"
      + " ORDER BY UPPER(ins_discipline_omschrijving)"
      + ",         UPPER(ins_srtdeel_omschrijving)";


var oRs = Oracle.Execute(sql);
var fso = new ActiveXObject("Scripting.FileSystemObject");
var lastDisc = -1; // Tussen/title regeltjes
%>
<table><%
  while(!oRs.eof)
  {
    var symbolFile = S("flexfilespath") + "/cad/symbols/" + oRs("ins_srtdeel_acadsymbol").value + ".dwf"
    //if (fso.FileExists(symbolFile)) // Anders kunnen we toch niets
    {
      if (lastDisc != oRs("ins_discipline_key").value)
      { %>
        <tr><td colspan="2" class="legdisc"><%=oRs("ins_discipline_omschrijving").value%></td></tr>
<%    } %>
      <tr>
        <td
<%= (objectmove ?  "onmousedown='mydragstartINS(event, \""+oRs("ins_srtdeel_key").Value+"\")'" : "")%> >
            <img class="legins<%=objectmove ? ' draggable' : ''%>" alt="<%=safe.htmlattr(L("lcl_descr"))%>"
                   src="mysymbol.asp?forceBW=1&paperColor=0&sizeX=72&sizeY=72&scale=950&offsetX=3&offsetY=3&srtdeel=<%=oRs("ins_srtdeel_key").value%>"
<%= (objectmove ?  " onmousedown='(function(evt){evt.preventDefault && evt.preventDefault()})(event)'" : "")%> >
        </td>
        <td class="leginsname" title="<%=safe.htmlattr(oRs("ins_srtgroep_omschrijving").value)%>">
          <%=safe.html(oRs("ins_srtdeel_omschrijving").value) + "<span class='leginsnr' title='"+safe.htmlattr(L("lcl_fg_obj_aantal").format(oRs("aantal").value))+"'>(" + oRs("aantal").value + "x)</span>"%>
        </td>
      </tr>
<%  }
    lastDisc = oRs("ins_discipline_key").value;
    oRs.MoveNext();
  }
%>
</table><%
    oRs.Close();
%>
<% ASPPAGE_END(); %>
