            var checkbox=doneCheckbox(row);
            return !!(row&&(row.classList.contains('is-done')||(checkbox&&checkbox.checked)));
        }

        function doneCell(row){
            var checkbox=doneCheckbox(row);
            return checkbox&&checkbox.closest?checkbox.closest('td'):null;
        }

        function localDoneTime(){
            var now=new Date();
            var two=function(value){return String(value).padStart(2,'0');};
            return {
                timestamp:Math.floor(now.getTime()/1000),
                date:two(now.getDate())+'.'+two(now.getMonth()+1)+'.'+now.getFullYear(),
                time:two(now.getHours())+':'+two(now.getMinutes())+' Uhr',
                provisional:true
            };
        }

        function rowCallDate(row){
            if(!row||!row.cells||!row.cells.length){return null;}
            var match=String(row.cells[0].textContent||'').match(/(\d{2})\.(\d{2})\.(\d{4})[^0-9]*(\d{2}):(\d{2})/);
            if(!match){return null;}
            var value=new Date(Number(match[3]),Number(match[2])-1,Number(match[1]),Number(match[4]),Number(match[5]),0,0);
            return isNaN(value.getTime())?null:value;
        }

        function rowCallTimestamp(row){
            // Nur zum Wiederherstellen der normalen Anrufreihenfolge.
            // Dieser Wert ist niemals ein Erledigungszeitpunkt.
            var stored=Number(row&&row.getAttribute('data-tp-call-timestamp')||0);
            if(stored>0){return stored;}
            var value=rowCallDate(row);
            return value?Math.floor(value.getTime()/1000):0;
        }

        function renderRow(row,allowNewTime){
            var cell=doneCell(row);
            if(!cell){return;}
            var key=rowKey(row);
            var isDone=rowIsDone(row);
            var previous=row.getAttribute('data-tp-done-state');
            row.setAttribute('data-tp-done-state',isDone?'1':'0');
            if(!isDone&&key&&doneTimes[key]&&doneTimes[key].provisional){delete doneTimes[key];}
            var timeInfo=key&&doneTimes[key]?doneTimes[key]:null;
            if(isDone&&!timeInfo&&allowNewTime&&previous==='0'){
                timeInfo=localDoneTime();
                if(key){doneTimes[key]=timeInfo;}
            }
            var display=cell.querySelector('.tp-phone-done-time');
            if(!isDone||!timeInfo){
                if(display){display.remove();}
                return;
            }
            if(!display){
                display=document.createElement('span');
                display.className='tp-phone-done-time';
                cell.appendChild(display);
            }
            var wantedDate=String(timeInfo.date||'');
            var wantedTime=String(timeInfo.time||'');
            var currentSpans=display.querySelectorAll('span');
            if(currentSpans.length!==2||currentSpans[0].textContent!==wantedDate||currentSpans[1].textContent!==wantedTime){
                var date=document.createElement('span');
                var time=document.createElement('span');
                date.textContent=wantedDate;
                time.textContent=wantedTime;
                display.replaceChildren(date,time);
            }
            row.setAttribute('data-tp-done-timestamp',String(Number(timeInfo.timestamp||0)));
        }

        function tableParts(){
            var tbody=document.querySelector('.tp-phone-overview .tpr-call-scroll tbody');
            if(!tbody){return null;}
            var table=tbody.closest('table');
            var rows=Array.prototype.slice.call(tbody.querySelectorAll('tr.tpr-call-row'));
            var sample=rows.find(function(row){return !!doneCell(row);});
            var cell=sample?doneCell(sample):null;
            var doneHeader=table&&table.tHead&&cell&&table.tHead.rows.length
                ? table.tHead.rows[table.tHead.rows.length-1].cells[cell.cellIndex]
                : null;
            if(!doneHeader&&table&&table.tHead){
                doneHeader=Array.prototype.find.call(table.tHead.querySelectorAll('th'),function(th){return /^erledigt$/i.test(String(th.textContent||'').trim());})||null;
            }
            var timeHeader=table&&table.tHead&&table.tHead.rows.length
                ? table.tHead.rows[table.tHead.rows.length-1].cells[0]
                : null;
            if(!timeHeader&&table&&table.tHead){
                timeHeader=Array.prototype.find.call(table.tHead.querySelectorAll('th'),function(th){return /^zeit$/i.test(String(th.textContent||'').trim());})||null;
            }
            return {tbody:tbody,rows:rows,doneHeader:doneHeader,timeHeader:timeHeader};
        }

        function applySort(parts){
            if(!parts){return;}
            if(!sortColumn||!sortDirection){
                parts.rows.sort(function(left,right){return rowCallTimestamp(right)-rowCallTimestamp(left);});
                var normalCurrent=Array.prototype.slice.call(parts.tbody.querySelectorAll('tr.tpr-call-row'));
                var normalChanged=parts.rows.some(function(row,index){return normalCurrent[index]!==row;});
                if(normalChanged){parts.rows.forEach(function(row){parts.tbody.appendChild(row);});}
                return;
            }
            if(sortColumn==='time'){
                parts.rows.sort(function(left,right){
                    var leftTime=rowCallTimestamp(left),rightTime=rowCallTimestamp(right);
                    return sortDirection==='asc'?leftTime-rightTime:rightTime-leftTime;
                });
                var timeCurrent=Array.prototype.slice.call(parts.tbody.querySelectorAll('tr.tpr-call-row'));
                var timeChanged=parts.rows.some(function(row,index){return timeCurrent[index]!==row;});
                if(timeChanged){parts.rows.forEach(function(row){parts.tbody.appendChild(row);});}
                return;
            }
            parts.rows.sort(function(left,right){
                var leftDone=rowIsDone(left),rightDone=rowIsDone(right);
                if(leftDone!==rightDone){return leftDone?-1:1;}
                if(!leftDone){return 0;}
                var leftTime=Number(left.getAttribute('data-tp-done-timestamp')||0);
                var rightTime=Number(right.getAttribute('data-tp-done-timestamp')||0);
                if((leftTime>0)!==(rightTime>0)){return leftTime>0?-1:1;}
                return sortDirection==='asc'?leftTime-rightTime:rightTime-leftTime;
            });
            var current=Array.prototype.slice.call(parts.tbody.querySelectorAll('tr.tpr-call-row'));
            var changed=parts.rows.some(function(row,index){return current[index]!==row;});
            if(changed){parts.rows.forEach(function(row){parts.tbody.appendChild(row);});}
        }

        function updateSortButtons(parts){
            if(!parts){return;}
            [['time',parts.timeHeader],['done',parts.doneHeader]].forEach(function(item){
                var column=item[0],header=item[1];
                if(!header){return;}
                var button=header.querySelector('.tp-phone-column-sort[data-sort-column="'+column+'"]');
                if(!button){return;}
                var active=sortColumn===column&&!!sortDirection;
                button.classList.toggle('is-active',active);
                button.textContent=active?(sortDirection==='desc'?'↓':'↑'):'⇅';
                var label=column==='time'?'Anrufe':'Erledigungen';
                button.title=active
                    ? (sortDirection==='desc'?'Neueste '+label+' zuerst':'Älteste '+label+' zuerst')
                    : label+' sortieren';
                button.setAttribute('aria-label',button.title);
            });
        }

        function ensureSortButton(parts,column,header){
            if(!parts||!header){return;}
            var button=header.querySelector('.tp-phone-column-sort[data-sort-column="'+column+'"]');
            if(!button){
                button=document.createElement('button');
                button.type='button';
                button.className='tp-phone-column-sort';
                button.setAttribute('data-sort-column',column);
                button.textContent='⇅';
                button.addEventListener('click',function(event){
                    event.preventDefault();
                    event.stopPropagation();
                    if(sortColumn!==column){
                        sortColumn=column;
                        sortDirection='desc';
                    }else if(sortDirection==='desc'){
                        sortDirection='asc';
                    }else{
                        sortColumn='';
                        sortDirection='';
                    }
                    refresh(true);
                });
                header.appendChild(button);
            }
        }

        function refresh(allowNewTime){
            var parts=tableParts();
            if(!parts){return;}
            parts.rows.forEach(function(row){renderRow(row,!!allowNewTime);});
            ensureSortButton(parts,'time',parts.timeHeader);
            ensureSortButton(parts,'done',parts.doneHeader);
            updateSortButtons(parts);
            applySort(parts);
        }

        function queueRefresh(allowNewTime){
            if(refreshQueued){return;}
            refreshQueued=true;
            window.requestAnimationFrame(function(){
                refreshQueued=false;
                refresh(allowNewTime);
            });
        }
<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="//3cx.telepartner.at/main-sitemap.xsl"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
	<sitemap>
		<loc>https://3cx.telepartner.at/post-sitemap.xml</loc>
		<lastmod>2025-11-26T13:12:23+00:00</lastmod>
	</sitemap>
	<sitemap>
		<loc>https://3cx.telepartner.at/page-sitemap.xml</loc>
		<lastmod>2026-09-21T11:50:52+00:00</lastmod>
	</sitemap>
	<sitemap>
		<loc>https://3cx.telepartner.at/local-sitemap.xml</loc>
		<lastmod>2024-12-08T10:19:41+00:00</lastmod>
	</sitemap>
</sitemapindex>
<!-- XML Sitemap generated by Rank Math SEO Plugin (c) Rank Math - rankmath.com -->