/*
    $Revision$
    $Id$

    File:        mld_opdr_uitvoerenden.js
*/

function moveLeftRight(direction)
{
  if (direction == "L")
  { // moveLeft
    var uitv_key_str_selected = new Array();
    $("#uitvExist :selected").each(function(j, selected)
                                      {
                                        uitv_key_str_selected[j] = $(selected).val();
                                      });
    if (uitv_key_str_selected.length < 0) return;
  }
  else // moveRight
  {
    var uitv_key_selected = $("#uitvPossible").val();
    if (uitv_key_selected < 0) return;
    var cpers_key_selected = $("#contactpers").val();
    var cntkey_selected = $("#contract").val() || -1; // Indien inputbox "Contract" niet aanwezig is, dan -1.
  }

  var uitv_key_str_exist = new Array();
  var cpers_key_str_exist = new Array();
  var cnt_key_str_exist = new Array();
  // levsla_str_exist is hier niet nodig. Bestand loadUitvoerendenOptions.asp zoekt de leveranciers sla er wel bij.
  $("#uitvExist option").each(function(k, option)
                              {
                                uitv_key_str_exist[k] = $(option).val();
                                cpers_key_str_exist[k] = $(option)[0].getAttribute("cpkey");
                                cnt_key_str_exist[k] = $(option)[0].getAttribute("cntkey");
                              });

  if (direction == "R")
  { // Is de waarde al toegevoegd? Dan niet meer toevoegen. TODO: Waarde kan niet meer geselecteerd worden.
    for (var i = 0; i < uitv_key_str_exist.length; i++)
    {
      if (uitv_key_str_exist[i] == uitv_key_selected)
      {
        return;
      }
    }
  }

  if (direction == "L")
  { // Verwijder uitvoerenden uit de geselecteerde lijst
    for (var i = 0; i < uitv_key_str_selected.length; i++)
    {
      for (var j = 0; j < uitv_key_str_exist.length; j++)
      {
        if (uitv_key_str_exist[j] == uitv_key_str_selected[i])
        {
          uitv_key_str_exist.splice(j, 1);
          break;
        }
      }
    }
  }
  else
  { // direction == "R": Voeg uitvoerende toe aan de geselecteerde lijst
    uitv_key_str_exist.push(uitv_key_selected);
    cpers_key_str_exist.push(cpers_key_selected);
    cnt_key_str_exist.push(cntkey_selected);
  }

  // De juiste waarden in de selectboxen weergeven gesorteerd op omschrijving
  sgUitv.setValue(-1, "", true, false, null, true);
  sgCntPersUitv.setValue(-1, "", true, false, null, true);
  $("#contract").val(-1);
  $("#uitvExist").load("loadUitvoerendenOptions.asp",
                       {
                         uitvkeystr: uitv_key_str_exist.join(","),
                         uitvcpersstr: cpers_key_str_exist.join(","),
                         uitvcntstr: cnt_key_str_exist.join(","),
                         mld_key: mld_key,
                         filter: "E",
                         lutype: lutype
                       });
}

function moveRight()
{
  // Standaard checks op verplichte velden, datum formaat, numeriek en float formaat, currency formaat.
  if (!validateForm("u2"))
    return false;

  moveLeftRight("R");
}

function moveLeft()
{
  moveLeftRight("L");
}

function onChangeUitv()
{
  // Maak contactpersoon leeg
  sgCntPersUitv.setValue(-1, "");
  // Update contract selectbox
  updateCnt();
}

function onChangeContract()
{
  // Selecteer uitvoerende die bij het geselecteerde contract hoort.
  var selectedIndex = $("#contract")[0].options.selectedIndex;
  var bedrijf_key = $("#contract")[0].options[selectedIndex].getAttribute("bedrijf_key");
  var bedrijf_naam = $("#contract")[0].options[selectedIndex].getAttribute("bedrijf_naam");
  // Soms staat er voor de bedrijfsnaam een prefix plus ** of *. Echter bedrijfsnaam meegeven aan setValue is genoeg (wat je normaal ook intypt in suggest veld)
  sgUitv.setValue(bedrijf_key, bedrijf_naam, false, true);
  // Maak contactpersoon leeg
  sgCntPersUitv.setValue(-1, "");
}

function updateCnt()
{
  var cnt_key = $("#contract").val();
  var uitv_key = $("#uitvPossible").val();
  $("#contract").closest('td').load("../Shared/loadContract.asp?mld_key=" + mld_key
                                                   + (uitv_key? "&bedrijf_key=" + uitv_key : "")
                                                   + (cnt_key? "&cnt_key=" + cnt_key : "")
                                                   + "&moreinfo=1"
                                                   + "&typeopdr_contract=" + typeopdr_contract);
}

function submit()
{
  var uitv_key_str_exist = new Array();
  var cpers_key_str_exist = new Array();
  var cnt_key_str_exist = new Array();
  var levsla_str_exist = new Array();
  $("#uitvExist option").each(function(k, option)
                              {
                                uitv_key_str_exist[k] = $(option).val();
                                cpers_key_str_exist[k] = $(option)[0].getAttribute("cpkey");
                                cnt_key_str_exist[k] = $(option)[0].getAttribute("cntkey");
                                levsla_str_exist[k] = $(option)[0].getAttribute("levsla");
                              });
  FcltMgr.closeDetail(window,
                      { uitvkeyArray: uitv_key_str_exist,
                        uitvcpersArray: cpers_key_str_exist,
                        uitvcntArray: cnt_key_str_exist,
                        uitvslaArray: levsla_str_exist });
}

