/*
     $Revision$
     $Id$

    File:           fac_usrrap_filter.js
    Description:
    Context:        Let op: de functies worden aangeroepen vanuit fac_usrrap_filter.asp
                    maar dat bestand wordt met Ajax in fac_usrrap.asp ingeplakt.
                    Daarom wordt deze js ook fac_usrrap.asp geinclude.
    Note:

*/
  var g_objid;

  function getFilledListboxParams()
  { // De functie verzameld de ingevulde filterwaarden
    var nrCols = $("#nr_charcols").val();
    var lbparams = [];
    for (var i = 1; i <= nrCols; i++)
    {
      if ($("#fclt_f_colvalue" + i).css("display") != "none")
        var colvalue = $("#fclt_f_colvalue" + i).val();
      else
        var colvalue = $("#fclt_f_colvalue" + i + "_l").val();
      if (colvalue != "" && colvalue != null)
      {
        var nextnr = (lbparams.length/2 + 1)
        lbparams.push({name: "colname" + nextnr, value: $("#fclt_f_colname" + i).val()});
        lbparams.push({name: "colvalue" + nextnr, value: colvalue});
      }
    }
    return lbparams;
  }

  // Replace a filter field by a listbox with all existing data for that filter field
  function FillListbox(objid, colname, usrrap_key)
  {
      txtObject = document.getElementById(objid);
      lstObject = document.getElementById(objid+"_l");
      if (txtObject.style.display == "none") // reset normal textbox
      {
          txtObject.disabled = false; // Textveld wordt weer zichtbaar en moet worden gesubmit
          $(txtObject).show().val("");
          lstObject.style.display = 'none';
          lstObject.disabled = true; // Selectbox wordt hidden en moet niet meer worden gesubmit
      }
      else // turn on select-list
      {
          txtObject.disabled = true; // Textveld wordt hidden en moet niet meer worden gesubmit
          // Door de afhankelijkheid van de filtervelden, nu altijd selectboxen opnieuw opbouwen, anders kan door wijzigingen van filterwaarden de afhankelijkheid niet meer juist zijn.
          document.body.style.cursor = "wait";
          $(txtObject).show().val("Please wait");
          document.getElementById(objid+"_q").disabled = true;
          g_objid = objid;
          // Haal de waarden van de ingevulde filtervelden op
          filledListboxParams = getFilledListboxParams();
          // Aantal meegezonden waarden ook als parameter meegeven
          filledListboxParams.push({name: "aantalcolvalue", value: filledListboxParams.length/2});
          $.getJSON("fac_usrrap_worker.asp?colname="+colname+"&usrrap_key="+usrrap_key,
                    filledListboxParams, // Ingevulde filterwaarden
                    process_worker_info);
      }
  }

  // Called by onLoad of repWorker.asp
  function process_worker_info(data)
  {
      document.getElementById(g_objid).style.display = 'none';
      //document.getElementById(g_objid).name = 'obsolete';
      document.getElementById(g_objid+"_q").value = '?';
      document.getElementById(g_objid+"_q").disabled = false;
      document.getElementById(g_objid+"_q").title = '';

      var txtObject = document.getElementById(g_objid);
      var lstObject = document.getElementById(g_objid+'_l');
      //lstObject.name = g_objid; // From now on use the listbox
      lstObject.disabled = false; // Selectbox wordt weer zichtbaar en moet worden gesubmit
      txtObject.style.display = 'none';
      $(lstObject).show();

      var ob = lstObject.options;
      var sz = ob.length;
      while (sz--)
          ob.remove(0);

      opt = document.createElement('OPTION');
      opt.value = "";
      opt.text  = L("lcl_shared_alle");
      ob.add(opt);
      for( i=0; i<data.wd.length; i++ ) {
          opt = document.createElement('OPTION');
          opt.value = data.wd[i];
          opt.text  = data.wd[i] == null? L("lcl_empty") : data.wd[i];
          ob.add(opt);
      }
      // direct openen werkt niet lstObject.click();
      document.body.style.cursor = "auto";
      FcltMgr.resized(); // listbox is enkele pixels hoger dan de inputbox
  }

