// 2 zweidimensionale Arrays für die Checkbox-Integration in einer Liste:
// ----------------------------------------------------------------------
// 1. Dimension: immer die entsprechende Listen-GUID (wichtig bei mehreren Listen pro Seite)
// 2. Dimension: Array mit den GUIDs aller angezeigter bzw. markierter Datensätze in der entsprechenden Liste

var arrListWithMarkedGuids = new Array();
var arrListWithCheckBoxGuids = new Array();

// ===============================================================================================================================
// setChecked: Nimmt die GUID des markierten Datensatzes in ein Array auf,
//         das beim  Ausführen einer Action durchlaufen wird
// ===============================================================================================================================
function setChecked(objInput, ListGUID){
  if (objInput.checked) {
    arrListWithMarkedGuids[ListGUID][arrListWithMarkedGuids[ListGUID].length] = objInput.value;
  }
  else {
    lHelpArray = new Array();
    for (var i=0; i < arrListWithMarkedGuids[ListGUID].length; i++) {
      if (arrListWithMarkedGuids[ListGUID][i] != objInput.value) {
        lHelpArray[lHelpArray.length] = arrListWithMarkedGuids[ListGUID][i];
      }
    }
    arrListWithMarkedGuids[ListGUID] = lHelpArray;
  }
}

// ===============================================================================================================================
// setCheckedAll:   Schreibt alle GUIDs einer Liste in ein Array,
//          das beim  Ausführen einer Action durchlaufen wird
// ===============================================================================================================================
function setCheckedAll(ListGUID){
  arrListWithMarkedGuids[ListGUID].length = 0;
  for (var i=0; i < arrListWithCheckBoxGuids[ListGUID].length; i++) {
    GetObjDiv("checkbox" + arrListWithCheckBoxGuids[ListGUID][i] + "_" + ListGUID).checked = true;
    arrListWithMarkedGuids[ListGUID][arrListWithMarkedGuids[ListGUID].length] = arrListWithCheckBoxGuids[ListGUID][i];
  }
}

// ===============================================================================================================================
// setCheckboxAction:   Aufruf einer Action aus der Liste heraus.
// Gibt die URL der Action zurück, markierte Datensätze werden kommasepariert der Action übergeben (guid=...)
// Sind keine Datensätze markiert, dann wird eine Fehlermeldung ausgegeben und ein Leerstring zurückgegeben.
// ===============================================================================================================================
function setCheckboxAction(aAction, ErrorStr, ListGUID){
  if (arrListWithMarkedGuids[ListGUID].length == 0) {
    alert(ErrorStr);
    return("");
  }
  else {
    for( var i=0; i < arrListWithMarkedGuids[ListGUID].length; i++) {
      if (i==0) {
        lGUIDList = arrListWithMarkedGuids[ListGUID][i];
      }
      else {
        lGUIDList = lGUIDList + ',' + arrListWithMarkedGuids[ListGUID][i];
      }
    }

    if (aAction.indexOf('?') != -1) {
      return(aAction + "&guid=" + lGUIDList + "&OQS=" + ssid);
    } else {
      return(aAction + "?guid=" + lGUIDList + "&OQS=" + ssid);
    }
  }
}

// ===============================================================================================================================
// Aktiviert JS-Fehlermeldungen
// ===============================================================================================================================
function showErrors() {
  return false;
}

// ===============================================================================================================================
// Unterbindet _EINE_ JS-Fehlermeldung und schaltet die Fehlerüberwachung anschließend wieder ein
// ===============================================================================================================================
function ignoreErrors() {
  window.onerror = showErrors;
  return true;
}

// ===============================================================================================================================
// Öffnet einen Datensatz mit der angegebenen GUID in dem dazugehörigen Formular in genesisWorld
// ===============================================================================================================================
function OpenInGW(form,guid) {
  window.onerror = ignoreErrors;
  var AxSession = new ActiveXObject('Genesis.TWCAxSession');
  AxSession.ExternalLogin(true,"","","",false)
  var openInServer = AxSession.CreateApplicationService('pGSAxSession.GSAxSession')
  var openForm = AxSession.CreatePresentationService(form)
  openForm.UpdateByGuid( openInServer.GuidStrToBinary(guid) )
  openForm.MenuAction('BringToFront','')
  window.onerror = showErrors;
}