/*
     $Revision$
     $Id$

     File:               fac_stdmeldingfaq.js
*/

var rowIndex = -1;
var multiFAQ = true;

function onClickItem(tr)
{
  // Wordt aangeroepen na één klik op een item
  $(tr).toggleClass("selected");
}

function onDblClickItem(tr)
{
    $(tr).closest("table").find("tr").removeClass("selected"); // Alle andere regels deselecteren
    $(tr).addClass("selected");
    window.parent.doSubmit();
}

function setMultiFAQ(aantal)
{
	multiFAQ = (aantal != 1);
}

function CreateRow(loc_key, onr_key, scope, plaats)
{
  rowIndex++;
  var table = $("#algfaqtable>tbody")[0];

  // Insert data rows
  tr = table.insertRow(-1);
  tr.myData = { loc_key: loc_key
              , onr_key: onr_key
              };
  tr.value = rowIndex;

  // Create drop button
  cell = tr.insertCell(-1);
  cell.className = "result";
  cell.align = "center";
  cell.innerHTML = "<span OnClick='delRow(this)' style='cursor:pointer'>" + I("fa-trash-alt") + "</span>";

  // innerHTML opent een htmlparser die overbodige spaties en line breaks verwijderd in IE, daarom met innerText oplossen
  // Input velden moeten wel met innerHTML of outerHTML anders wordt het text

  // Vakgroep omschrijving veld
  cell = tr.insertCell(-1);
  cell.className = "result";
  cell.innerHTML = scope;
  cell.align = "left";
  cell.style.whiteSpace = "nowrap";

  // Stdmelding omschrijving veld
  cell = tr.insertCell(-1);
  cell.className = "result";
  cell.innerHTML = plaats;
  cell.align = "left";
  cell.style.whiteSpace = "nowrap";

  // Data velden
  cell = tr.insertCell(-1);
  cell.className = "result";
  cell.innerHTML = "<input type='hidden' id='loc" + rowIndex + "' name='loc" + rowIndex + "' value='" + loc_key + "'>"
                 + "<input type='hidden' id='onr" + rowIndex + "' name='onr" + rowIndex + "' value='" + onr_key + "'>";
  cell.align = 'left';

  document.getElementById("nrRows").value = parseInt(rowIndex) + 1;
}

function delRow(img)
{
  // Verwijder de aangeklikte afdeling uit de lijst (de regel)
  FcltMgr.confirm(L("lcl_faq_del_alg"), function() {
      var tr = $(img).closest("tr")[0];
      if (tr.myData.loc_key != null) {
          document.getElementById("algfaqtable").deleteRow(tr.rowIndex);
      }
  });

}

function fac_submit()
{
  var data = $("[name=u2]").serialize();
  $.post($("form[name=u2]")[0].action,
         data,
         FcltCallbackAndThenAlways(fac_submit_callback),
         "json");
  return true; // disabled button ook
}

function fac_submit_callback(json)
{
  if (json.success)
  {
    window.parent.FcltMgr.reload();
    FcltMgr.closeDetail(window, json);
  }
}

function fac_add()
{
  var onr_key = -1;
  var scope;
  var plaats = $("#plaats").val();
  var bttype;

  var loc_selected = !!($("#locatie").is(":visible") && ($("#locatie option:selected").length || $("#locatiekey").val() > 0));
  var geb_selected = !!($("#gebouw").is(":visible") && ($("#gebouw option:selected").length || $("#gebouwkey").val() > 0));
  var ver_selected = !!($("#verdieping").is(":visible") && ($("#verdieping option:selected").length || $("#verdiepingkey").val() > 0));
  var rui_selected = !!($("#ruimte").is(":visible") && ($("#ruimte option:selected").length || $("#ruimtekey").val() > 0));

  if (rui_selected)
  {
    scope = "Ruimte";
    onr_key = $("#ruimtekey").val();
    if (sgRoom.isMulti())
    {
      if ($("#ruimte option:selected").length)
      {
        $("#ruimte option:selected").each(function () {
          onr_key = $(this).val();
          this_plaats = plaats + "-" + $(this).text();
          fac_check_and_add($("#locatiekey").val(), onr_key, scope, this_plaats);
        });
      }
    }
    else
    {
      fac_check_and_add($("#locatiekey").val(), onr_key, scope, plaats);
    }
  }
  else if (ver_selected)
  {
    scope = "Verdieping";
    onr_key = $("#verdiepingkey").val();
    if (sgFlr.isMulti())
    {
      $("#verdieping option:selected").each(function () {
        onr_key = $(this).val();
        this_plaats = plaats + "-" + $(this).text();
        fac_check_and_add($("#locatiekey").val(), onr_key, scope, this_plaats);
      });
    }
    else
    {
      fac_check_and_add($("#locatiekey").val(), onr_key, scope, plaats);
    }
  }
  else if (geb_selected)
  {
    onr_key = $("#gebouwkey").val();
    if (sgBld.isMulti())
    {
      $("#gebouw option:selected").each(function () {
        onr_key = $(this).val();
        this_plaats = plaats + "-" + $(this).text();
        bttype = $(this)[0].getAttribute("extra");
        if (bttype == "B")
          scope = "Gebouw";
        else
          scope = "Terrein";
        fac_check_and_add($("#locatiekey").val(), onr_key, scope, this_plaats);
      });
    }
    else
    {
      bttype = $("#gebouwkey")[0].getAttribute("extra");
      if (bttype == "B")
        scope = "Gebouw";
      else
        scope = "Terrein";
      fac_check_and_add($("#locatiekey").val(), onr_key, scope, plaats);
    }
  }
  else if (loc_selected)
  {
    scope = "Locatie";
    if (sgLoc.isMulti())
    {
      $("#locatie option:selected").each(function () {
        plaats = $(this).text().split(" ")[0];
        fac_check_and_add($(this).val(), onr_key, scope, plaats);
      });
    }
    else
    {
      fac_check_and_add($("#locatiekey").val(), onr_key, scope, plaats);
    }
  }
}

function fac_check_and_add(loc_key, onr_key, scope, plaats)
{
  if (loc_key > 0)
  {
    var exist = false;
    $("#algfaqtable tr").each(function(i, value)
                       {
                         if (this.myData
                            && (loc_key == this.myData.loc_key)
                            && (onr_key == this.myData.onr_key)
                            )
                         {
                           exist = true;
                         }
                       });
    if (!exist)
    {
      CreateRow( loc_key
               , onr_key
               , scope
               , plaats
               );
      FcltMgr.resized(window);
    }
  }
}
