
/* renderer */


function eKOLformAllreadySendCheck(){
  if(typeof formsend === 'undefined') {
    formsend=true;
    return true;
  }
  else{
    return false;
  }
}

if (document.readyState === "loading") {
  document.addEventListener('DOMContentLoaded', function() {
    let contextForm = document.getElementById('cssconstants_contextform');
    if(contextForm) {
      contextForm.addEventListener('submit', function() { eKOLformAllreadySendCheck() })};
  });
} else {
    let contextForm = document.getElementById('cssconstants_contextform');
    if(contextForm) {
      contextForm.addEventListener('submit', function() { eKOLformAllreadySendCheck() })};
};

document.addEventListener("keydown", hitEnterOnTextField, false);
function hitEnterOnTextField(e) {
  var keyCode = e.keyCode;
  if(keyCode != 13) {
    return;
  }
  var element = document.activeElement;
  if(element == null) {
    return;
  }
  if(element instanceof HTMLTextAreaElement) {
    return;
  }
  if(!(element instanceof HTMLInputElement)) {
    return;
  }
    eKOLprogressBarInit(1, 'Bitte warten');
}

function eKOLClickButtonOnHitEnterInTextinput(e,  id){
  var keyCode = e.keyCode;
  if(keyCode != 13) return;
  var button = document.getElementById(id);
  if(button == null) return;
   button.click();
}
window.addEventListener('load', function() {

function setInputFocus() {
  let infoBoxList = document.getElementsByClassName("infobox-container");
  for (var i = 0; i < infoBoxList.length; i++) {
    let infoBox = infoBoxList.item(i);
    if(infoBox.parentElement.nodeName == 'LABEL'){
      let inputId = infoBox.parentElement.getAttribute("for");
      infoBox.addEventListener('click', function() {document.getElementById(inputId).focus()});
}}}
setInputFocus();});

window.addEventListener('load', function() {

function eKOLToggleCollapsibleAdd() {
  linkList = document.getElementsByClassName("tc_collapsible_toogle_link");
  for (var i = 0; i < linkList.length; i++) {
    let link = linkList.item(i);
    let parentCon = link.closest("div");
    link.addEventListener('click', function (){eKOLToggleCollapsible(parentCon, '')});
}}
eKOLToggleCollapsibleAdd();});

function eKOLToggleCollapsible(parentCon, newStatus) {
  if (parentCon != null){
    var conClassList = parentCon.classList;
    if (conClassList.contains('tc_collapsible_expanded')) {
      if (newStatus === "" || newStatus == 'collapse'){
        conClassList.remove('tc_collapsible_expanded');
        conClassList.add('tc_collapsible_collapsed');
        parentCon.title = 'Anklicken zum Aufklappen'
      }
    } else if (conClassList.contains('tc_collapsible_collapsed')) {
      if (newStatus === "" || newStatus == 'expand'){
        conClassList.remove('tc_collapsible_collapsed');
        conClassList.add('tc_collapsible_expanded');
        parentCon.title = 'Anklicken zum Zuklappen'
      }
}}}

function getElementLabelForById(id) {
  var labels = document.getElementsByTagName('label');
  for (var i = 0; i < labels.length; i++) {
    if (labels[i].htmlFor != '' && labels[i].htmlFor === id) {
      var elem = document.getElementById(labels[i].htmlFor);
       if(elem !=null){
         return labels[i];
       }
    }
  }
  return null;
}

function hasScrollbar(element) {
  if(element==null){
    return false;
  }
  if(element.scrollHeight > element.clientHeight){
    return true;
  }
  return false;
}

function isScrollbarOnBottom(element) {
  if(element==null){
    return false;
  }
  if(!hasScrollbar(element)){
    return false;
  }
  var cHig = element.clientHeight;
  var sHig = element.scrollHeight;
  var sTop = element.scrollTop;
  if(cHig + sTop + 1 < sHig){
    return false;
  }
  return true;
}

function eKOLModifyElementContent(id,content){
  var element = document.getElementById(id);
  if(element==null){
    return;
  }
  var tagname = element.tagName;
  if(tagname==null){
    return;
  }
  tagname = tagname.toLowerCase();
  if(tagname == 'textarea') {
    element.value = content;
  }
  else if(tagname == 'input') {
    element.value = content;
  }
  else if(tagname == 'select') {
    var options = element.options;
    for(i=0; i < options.length; i++){
      if(options[i].value == content) {
        element.selectedIndex = i;
        break;
      }
    }
  }
  else {
    while(element.childNodes.length > 0) {
      element.removeChild(element.firstChild);
    }
    element.appendChild(document.createTextNode(content));
  }
}

function eKOLScrollbarApplyWindowsPositionY(current){
  var parent = current.parentNode;
  var y = 0;
  if (self.pageYOffset){y=self.pageYOffset;}
  else if (document.documentElement && document.documentElement.scrollTop){
  y=document.documentElement.scrollTop;}
  else if (document.body){
  y=document.body.scrollTop;}
  if(y==0){return;}
  var newInput = document.createElement('input');
  newInput.setAttribute('name','SCROLLBAR_WINDOWSPOSITION_Y');
  newInput.setAttribute('value',y);
  newInput.setAttribute('type','hidden');
  parent.appendChild(newInput);
}

function eKOLScrollbarApplyElementPositionY(activator, scrollObjectId, parameterName){
  var parent=activator.parentNode; 
  var y=0;
  var scrollObject=document.getElementById(scrollObjectId); 
  if(scrollObject==null){return;}
  y=scrollObject.scrollTop;
  if(y==0){return;}
  var input=document.createElement('input');
  input.setAttribute('name',parameterName);
  input.setAttribute('value',y);
  input.setAttribute('type','hidden');
  parent.appendChild(input);
}

function eKOLScrollbarSetElementPositionY(id,y){
  var scrollObject=document.getElementById(id);
  if(scrollObject==null){return;}
  scrollObject.scrollTop=y;
}

function eKOLScrollbarAddWindowPositionY() {
var ekolCon = document.getElementById('ekolcontainer');
if(!ekolCon) return;
ekolCon.addEventListener('click', (event) => {
  var button;
  if (event.target.nodeName === 'BUTTON') {
    button = event.target;
  }
  if (!button &&  (event.target.nodeName === 'SPAN' && event.target.parentNode.nodeName === 'BUTTON')) {
    button = event.target.parentNode;
  }
  if (!button) return;
  var btnClassArray = button.className.split(' ');
  var targetClassArray = [];
    targetClassArray[0] = 'treeView_btnExpand';
    targetClassArray[1] = 'treeView_btnExpandAll';
    targetClassArray[2] = 'treeView_btnCollapse';
    targetClassArray[3] = 'treeView_btnCollapseAll';
    targetClassArray[4] = 'treeView_btnSelect';
    targetClassArray[5] = 'treeView_btnCheckBoxOn';
    targetClassArray[6] = 'treeView_btnCheckBoxOff';
    for (const btnClass of btnClassArray){
      if (targetClassArray.includes(btnClass)){
        eKOLScrollbarApplyWindowsPositionY(button);
    }}
})}

window.addEventListener('load', function() {eKOLScrollbarAddWindowPositionY()});


function eKOLprogressBarInit(wait, msg){window.setTimeout(() => eKOLprogressBarShow(wait,msg), wait*1000);}function eKOLprogressBarShow(seconds, msg){
 if(typeof PROGRESSBARINIT !== 'undefined'){
 return;
 }
 PROGRESSBARINIT = true;
 var ekolContainer = document.getElementById('ekolcontainer');
 var obj0 = document.createElement('div');
 obj0.setAttribute('id','cssconstantswaiting-spinner');
 var b1 = document.createElement('div');
 b1.setAttribute('class','rect1');
 b1.setAttribute('style','margin-left:2px;');
 obj0.appendChild(b1);
 var b2 = document.createElement('div');
 b2.setAttribute('class','rect2');
 b2.setAttribute('style','margin-left:2px;');
 obj0.appendChild(b2);
 var b3 = document.createElement('div');
 b3.setAttribute('class','rect3');
 b3.setAttribute('style','margin-left:2px;');
 obj0.appendChild(b3);
 var b4 = document.createElement('div');
 b4.setAttribute('class','rect4');
 b4.setAttribute('style','margin-left:2px;');
 obj0.appendChild(b4);
 var b5 = document.createElement('div');
 b5.setAttribute('class','rect5');
 b5.setAttribute('style','margin-left:2px;');
 obj0.appendChild(b5);var obj1 = document.createElement('div');obj1.setAttribute('id','ekolprogressbarcounter');obj1.appendChild(document.createTextNode(seconds+' Sekunden'));var obj2 = document.createElement('div');obj2.setAttribute('id','cssconstantswaiting-container');obj2.appendChild(obj0);obj2.appendChild(document.createTextNode(msg));obj2.appendChild(obj1);ekolContainer.appendChild(obj2);eKOLprogressBarUpdate(seconds);}
function eKOLprogressBarUpdate(seconds){
 var obj = document.getElementById('ekolprogressbarcounter');
 obj.firstChild.nodeValue = seconds + ' Sekunden';
 seconds++;
 window.setTimeout(() => eKOLprogressBarUpdate(seconds), 1000);}

function eKOLprogressBarAdd(id, delay, text){
window.addEventListener('load', function() {
  var button = document.getElementById(id);
  if(button){
    button.addEventListener('click', function(){eKOLprogressBarInit(delay, text)});
  }});
}
function sessionPing0() {
 var urle='controller;jsessionid=AB411DBC0781B18FDAAA9C08CCFAF6CD?ACTION_KOSABEHR&SKOSABEHR=eKOL-IKFZ4&time=';
 var time=new Date().getTime();
 var link=document.getElementById('ID_LINK_FOR_SESSIONPING_0');
 if(link==null){
  link=document.createElement('link');
  link.id='ID_LINK_FOR_SESSIONPING_0';
  link.rel='stylesheet';
  link.type='text/css';
  var head=document.getElementsByTagName('head')[0];
  head.appendChild(link);
 }
 link.href=urle+time;
 window.setTimeout(() => sessionPing0(), 600000);
 }
window.setTimeout(() => sessionPing0(), 600000);
function eKOLCopyToClipboard(id_source, id_button){
  var source = document.getElementById(id_source);
  if(source==null) { return; }
  var objectName = source.tagName.toLowerCase();
  var stringToCopy = ''; 
  if(objectName=='a') {stringToCopy=source.href;} 
  else if(objectName=='input') {stringToCopy=source.value;} 
  else if(objectName=='textarea') {stringToCopy=source.value;} 
  else {stringToCopy=source.innerText ;} 
  if(stringToCopy == '') { return; }
  navigator.clipboard.writeText(stringToCopy);
  var button = document.getElementById(id_button);
  if(button==null) { return; }
  button.textContent='kopiert';
}function eKOLCopyFromClipboard(id_target){var target = document.getElementById(id_target);if(target==null) { return; }if(target.type == 'textarea'){ navigator.clipboard.readText().then(clipText => target.value = clipText);}}

function eKOLselectFirstElement(){
  var inputArray = document.getElementsByTagName('input');
  for(var i=0;i<inputArray.length ;i++){
    var obj=inputArray[i];
    if(obj.type=='text' && !obj.readOnly && !obj.disabled){
    obj.focus();
    return;
}}}
window.addEventListener('load', function() {eKOLselectFirstElement();})

/* project */

