/*
     $Revision$
     $Id$

     File:        mld.js
*/

function doAccept(json, callback)
{
  json.multi |= 0;

  if (setting_mld_accept_confirm)
  {
    var url = "../mld/mld_accept_confirm.asp?urole=" + urole
                                       + "&mld_key=" + json.mld_key
                                       + "&multi=" + json.multi
                                       + "&maybeDouble=" + (json.maybeDouble? 1 : 0);
    FcltMgr.openModalDetail(url, L("lcl_mld_complain"), {callback: callback});
  }
  else
  {
    FcltMgr.confirm(L("lcl_mld_accept_1") + (json.prefix || "") + json.mld_key + L("lcl_mld_accept_2"), { autoconfirm: json.autoConfirm || json.multi }, function() {
        var data = {
            mld_key: json.mld_key,
            multi: json.multi,
            maybeDouble: (json.maybeDouble ? 1 : 0)
        };
        protectRequest.dataToken(data);
        $.post("../mld/mld_accept_save.asp",
            data,
            FcltCallbackAndThen(callback),
            "json");
    });
  }
}

function doublecheckCallback(json, modalParams)
{
  var mld_key_arr = json.mld_key;
  var multi = json.multi;
  var addopdr = json.addopdr;
  var reloadmld = json.reloadmld;
  var reject = json.reject;
  var prefix = json.prefix||"";
  var urole = json.urole;

  function mldCallback(json1, textStatus1)
  {
    if (addopdr)
    {
      FcltMgr.setTitle(L("lcl_mld_new_order"));
      FcltMgr.closeDetail(window, { redirect: "../mld/mld_opdr.asp?urole=bo&mld_key=" + mld_key_arr });
    }
    else
    {
      if (reloadmld)
        parent.location.href = "mld_melding.asp?urole=" + urole + "&mld_key=" + mld_key_arr + "&embedded=1";
      else
        FcltMgr.reload();
    }
  }

  if (json.maybeDouble && !(multi == 1))
  { // Er kunnen dubbele meldingen zijn.
    function mldDoubleCallback(data, text)
    {
      // Drie modes
      // 1) Het is een dubbele melding. Laat de melding verwijzen naar de moedermelding
      // 2) Het is geen dubbele melding. Zet de melding op geaccepteerd (Button accepteren)
      // 3) Melding niet accepteren/afwijzen (Button annuleren)
      if (data.mode == 1)
      { // De melding verwijzen naar moedermelding inclusief statusupdate.
        // Geen verschil voor accepteren of afwijzen
        var data = { mld_key: mld_key_arr
                   ,  parent_key: data.parent_key
                   };
        protectRequest.dataToken(data);
        $.post("mld_link.asp",
               data,
               FcltCallbackAndThen(function (json, textStatus)
                                   { // Melding wordt een kindmelding. Daarom geen opdracht meer aangeven, ook al is dit aangegeven. Maar reload de melding.
                                     addopdr = false;
                                     reloadmld = true;
                                     mldCallback(json, textStatus);
                                   }),
               "json");
      }
      else if (data.mode == 2)
      { // Zet de melding op geaccepteerd/afwijzen
        if (reject)
        { // Afwijzen
          url = "../mld/mld_reject.asp?urole=" + urole + "&mld_key=" + mld_key_arr
          FcltMgr.openModalDetail(url, L("lcl_mld_complain") + ' ' + prefix + mld_key_arr, {callback: mldCallback});
        }
        else // Accepteren
        {
          json.autoConfirm = true;
          doAccept(json, mldCallback);
        }
      }
      //else if (data.cancel) // Niets doen
    }
    url = "../mld/mld_double.asp?urole=" + urole
                              + "&mld_key=" + mld_key_arr;
    FcltMgr.openModalDetail(url, L("lcl_mld_similarcalls"), {callback: mldDoubleCallback});
  }
  else
  {
    if (reject)
    { // Afwijzen
      url = "../mld/mld_reject.asp?urole=" + urole + "&mld_key=" + mld_key_arr
      FcltMgr.openModalDetail(url, L("lcl_mld_complain"), {callback: mldCallback});
    }
    else // Accepteren
    {
        json.autoConfirm = (addopdr ? true : false);
        doAccept(json, mldCallback)
    }
  }
}

function opdrCloseCallback(json, textStatus)
{
    if (json.canCloseMld) // zal nooit multi zijn
    {
      if (json.message)
        FcltCallback(json, textStatus); // Geef message weer

      var url = "../mld/mld_close_confirm.asp?mld_key=" + json.mld_key + "&has_opdr_opm=" + (json.opdr_opm?1:0);
      url += "&lastopdr=1";
      FcltMgr.openModalDetail(url, L("lcl_mld_final_close"),
                                   { width: 400,
                                     callback: FcltMgr.reload,
                                     alwaysCallback: true, // ook bij cancel
                                     opdr_opm: json.opdr_opm // kan te lang zijn voor url
                                   });
    }
    else
    {
      FcltCallbackRefresh(json, textStatus);
    }
}

function showObjDetail(oid)
{
    FcltMgr.openDetail("appl/ins/ins_deel.asp?urole=bo&ins_key=" + oid);
}

function showObjListTab(oid)
{
    FcltMgr.openDetail("appl/ins/ins_list.asp?mld_key=" + oid, L("lcl_mld_objects"));
}
