var downloadpopupstatus = "off";

// ===============================================================================================================================
// CheckFillOutSelectBox: Prüft, ob in einer SelectBox mindestens soviel Einträge vorhanden sind, wie in aFillOutEntries angegeben
// ===============================================================================================================================
function CheckFillOutSelectBox(aobj, aFillOutEntries, alertstring) {
  if ( aobj != null ) {
    if ( aobj.length >= parseInt(aFillOutEntries)  ) {
      return true;
    }
    else {
      alert(alertstring);
      return false;
    }
  }
}

// ===============================================================================================================================
// Status des PopUp-Fensters zurück geben
// ===============================================================================================================================
function GetPopUpStatus() {
  return downloadpopupstatus;
}


// ===============================================================================================================================
// Status des PopUp-Fensters setzen Default off. Optional setzbar auf on
// ===============================================================================================================================
function SetPopUpStatus(astatus) {
  downloadpopupstatus = astatus;
}

// ===============================================================================================================================
// Undocheckout (Sperre aufheben)
// ===============================================================================================================================
function UndoCheckOutFile(lFile, lGUID, lTableName, Source, String){
  Check = confirm(String);
  if(Check == true){
     location.href=lFile + "?command=undocheckout&" + lGUID + "&" + lTableName + "&source=" + Source + "&OQS=" + ssid;
  }  
}

// ===============================================================================================================================
// Verknüpfung aus der Liste setzen          /////////
// ===============================================================================================================================
function SetRelationOnChecked(aStatus, aCheckedMsg, aUnCheckedMsg, aUrl ) {
  var lChecked = "no";

  if (aStatus.checked == false) {  
    Check = confirm(aUnCheckedMsg);
  }
  else {
    lChecked = "yes";
    Check = confirm(aCheckedMsg);
  }

  if(Check == true){
    location.href = aUrl + "&relationchecked=" + lChecked;
    return true;
  }
  else {
    aStatus.checked = !aStatus.checked;
    return false;
  }
}

// ===============================================================================================================================
// Prüft, ob die Dateiendung ein gültiges File ist (prüft lediglich, ob in der vorhandenen Extension ein Backslash ist)
// ===============================================================================================================================
function isAvailableFile(aExtension) {
  var lExtension = aExtension;
  if ( lExtension.length == 0 ) {
    return false;
  }
  else if ( lExtension.search(/\\/) == -1) {
    return true;
  }
  else {
    return false;  
  }
}
  
// ===============================================================================================================================
// Extrahiert die Dateiendung aus einem Dokument
// ===============================================================================================================================
function getFileExtension(lFormField){
  var lSubName = lFormField;
  var lvalid_ext = true;

  if (lFormField.length-1 == 0 ) {
    lvalid_ext = false;
  }

  for (i = 0; i < lFormField.length-1 ; i++ ) {
    var pos = lSubName.search(/\./);
    if ( (pos == -1) && ( i == 0 ) ) {    
      lvalid_ext = false;
      break;
    }
    else if (pos == -1) {
      break;
    }
    lSubName = lSubName.substr(pos+1,lSubName.length);
  }
  
  if ( lvalid_ext ) {
    return "." + lSubName;
  }
  else {
    return "";
  }
}

// ===============================================================================================================================
// Prüfen, ob FileUpload-Type befüllt ist oder ein anderes File aufgespielt wird.
// ===============================================================================================================================
function CheckFileExtension(lobjInput, laction, aDialogMsg, CheckDialogMsg){
  var lConstType = 'Archive';
  var lType = '';
  var lexecuteaction = false;

  if ( lobjInput.twf_Type != null )  {
    lType = lobjInput.twf_Type.value;
  }

  if ( ( lType.toUpperCase() == lConstType.toUpperCase() ) && (lobjInput.FilePath != null) ) {
    var lFilePath = lobjInput.FilePath.value;
    var lFilePathExtension = getFileExtension(lFilePath);

    if ( isAvailableFile(lFilePathExtension) == false ) {
      alert(CheckDialogMsg);
    }
    else if ( lFilePath.length != 0 ) {
      if (lobjInput.ArchiveFile != null) {
        var lArchiveFile = lobjInput.ArchiveFile.value;

        if ( lFilePathExtension.toUpperCase() != getFileExtension(lArchiveFile.toUpperCase()) ) {
          var lArchiveFileStr = getFileExtension(lArchiveFile);
          var lArchiveDialogMsg = aDialogMsg.replace( /FileExtension_A/, lArchiveFileStr );
          var lFilePathStr = getFileExtension(lFilePath);

          if ( lArchiveFileStr.toUpperCase() != lFilePathStr.toUpperCase() ) {
            alert(lArchiveDialogMsg);
            lobjInput.FilePath.select();
            return false;
          }
         
        }
        else {
          lexecuteaction = true;
        }
      }
      else {
        lexecuteaction = true;
      }
    }
    else {
      alert(CheckDialogMsg);
    }
  }
  else {
    lexecuteaction = true;
  }

  if ( lexecuteaction == true ) {
    lobjInput.action = laction;
    return true;
  }
}



// ===============================================================================================================================
// changeCheckedDocumentStatus
// ===============================================================================================================================
function changeCheckedDocumentFilter(aObj,aListID) {
  
  // Hier wird die Konsistenz der DokumentStatus-Box gewaehrleistet
  var cbDocumentStatusAll    = GetObjDiv("DocumentStatusAll"+aListID);
  var cbDocumentStatusOpen   = GetObjDiv("DocumentStatusOpen"+aListID);
  var cbDocumentStatusValid = GetObjDiv("DocumentStatusValid"+aListID);
  var cbDocumentStatusNotValid = GetObjDiv("DocumentStatusNotValid"+aListID);
  
  if (aObj.value == "DocumentStatusAll") {
    cbDocumentStatusOpen.checked = false;
    cbDocumentStatusValid.checked = false;
    cbDocumentStatusNotValid.checked = false;
  }  
  if (aObj.value == "DocumentStatusOpen") {
    cbDocumentStatusAll.checked = false;
    cbDocumentStatusValid.checked = false;
    cbDocumentStatusNotValid.checked = false;
  }  
  if (aObj.value == "DocumentStatusValid") {
    cbDocumentStatusAll.checked = false;
    cbDocumentStatusOpen.checked = false;
    cbDocumentStatusNotValid.checked = false;
  }  
  if (aObj.value == "DocumentStatusNotValid") {
    cbDocumentStatusAll.checked = false;
    cbDocumentStatusOpen.checked = false;
    cbDocumentStatusValid.checked = false;
  }  
}
