/*
     $Revision$
     $Id$

     File:         bind.js
     Description:  Helper functies voor als ins_srtdeel_binding wijzigt
*/

var BIND_RUIMTE = 0x01;
var BIND_WERKPL = 0x02;
var BIND_TERREI = 0x04;
var BIND_AFDELI = 0x08;
var BIND_PERSOO = 0x10;
var BIND_INSDEE = 0x20; // Onderdeel

function unSelectField(fldId) {
    var elem = document.getElementById(fldId);
    if (elem) elem.selectedIndex = 0;
}
function showField(fldId, when) {
   $("#"+fldId).closest("tr").toggle(when!=0);
}

// Afhankelijk van wat een gebruiker gekozen heeft (letter in b) wissen we de key in diverse andere velden
function setBind(b)
{
    switch (b)
    {
        case 'R':
        case 'T':
        case 'W':
        {
            if (typeof sgPerson != "undefined") sgPerson.setValue(-1, "");
            if (typeof sDept != "undefined") sDept.setValue(-1, "");
            break;
        }

        case 'A':
        case 'P':
        {
            if (typeof sgLoc != "undefined")
            { // Locatie (plaatsselector) is aanwezig
              sgLoc.setValue(-1,"");
              plaatsselector.locChanged(-1);
            }
            if (b=="A")
            {
              if (typeof sgPerson != "undefined") sgPerson.setValue(-1, "");
            }
            else
            {
              if (typeof sDept != "undefined") sDept.setValue(-1, "");
            }
            break;
        }

        default:
        {
            break;
        }
    }
}

// Bepaal welke velden in het scherm al dan niet zichtbaar (en invulbaar) zijn
// Dit is alleen interessant bij het toevoegen van INS_DEELen waarbij we nog
// kunnen wisselen tussen Objectsoorten (en daarmee INS_DEEL_BINDING)
function checkBind()
{
  var v_binding = $("#binding").val();
  bindingBits = v_binding; // Globale die we in checkInput controleren

  // Terrein gebonden of we moeten gebouw kunnen kiezen
  showField("locatie", v_binding & (BIND_TERREI | BIND_RUIMTE | BIND_WERKPL))
  showField("gebouw", v_binding & (BIND_TERREI | BIND_RUIMTE | BIND_WERKPL))

  // Toegestaan voor ruimte of we moeten werkplek kunnen kiezen
  showField("verdieping", v_binding & (BIND_RUIMTE | BIND_WERKPL))
  showField("ruimte", v_binding & (BIND_RUIMTE | BIND_WERKPL))

  // Toegestaan voor WERKPLEK?
  showField("werkplek", v_binding & (BIND_WERKPL))

  // keys echt wissen, anders worden ze mogelijk toch gesubmit als binding 'gekrompen'
  if (!(v_binding & BIND_RUIMTE) && typeof sgBld != "undefined")
    sgBld.setValue(-1, "");
  if (!(v_binding & BIND_WERKPL) && typeof sgWpl != "undefined")
    sgWpl.setValue(-1, "");

  // Toegestaan voor AFDELING?
  showField("sDept_show", v_binding & (BIND_AFDELI))

  // Toegestaan voor PERSOON?
  showField("sPerson_show", v_binding & (BIND_PERSOO))
}