KMap.prototype.TaTabs=[]; KMap.prototype.TaIndex=-1; KMap.prototype.TaShowTabs=true; KMap.prototype.TaShowLogin=false; KMap.prototype.TaShowLang=false; KMap.prototype.TaLoggedIn=false; KMap.prototype.TaOW=0; KMap.prototype.TaOH=0; KMap.prototype.TaPrev=[]; KMap.prototype.TaIconUser="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMTYiIHdpZHRoPSIxNiI+PHBhdGggZD0ibSA4LjA4NTkzNzUsMC4wMDk3NjYgYyAtMi4zNDY1NTI4LDAgLTQuMjQ4MDQ2OSwxLjkwMTUyNTcgLTQuMjQ4MDQ2OSw0LjI0ODA0NjcgMi44OGUtNSwyLjM0NjQ4NjkgMS45MDE0OTQxLDQuMjQ4MDQ2OSA0LjI0ODA0NjksNC4yNDgwNDY5IDIuMzQ2NTE5NSwwIDQuMjQ4MDQ2NSwtMS45MDE1NiA0LjI0ODA0NjUsLTQuMjQ4MDQ2OSAwLC0yLjM0NjU1NDEgLTEuOTAxNjI2LC00LjI0ODA0NjcgLTQuMjQ4MDQ2NSwtNC4yNDgwNDY3IHoiIHN0eWxlPSJmaWxsOiM3Mzg0OGMiLz48cGF0aCBkPSJtIDExLjE0MDYyNSw5LjgyMjI2NTggYyAtMi4xNjkxMDE2LDAuMDAzMjcgLTQuMzM2ODg5MSwwLjAxNTc3NSAtNi41MDU4NTk0LDAuMDI3MzQ0IC0xLjc2NzgyMjcsMC4wNTY5NzggLTMuMzQzMDg4NiwxLjQ3MjY0NDIgLTMuNTgwMDc4MSwzLjIyNDYwOTIgLTAuMDIzNDQxLDAuMjcwMzM0IC0wLjA4MTc1MTgsMC42MjkyMjEgLTAuMDI3MzQ0LDAuODc1IEwgMSwxMy45NDkyMTkgMSwxNiBsIDEzLjk5NjA5NCwwIDAsLTEuOTk2MDkzIDAsLTAuMDU0NjkgYyAwLjA1Mzk5LC0xLjEzMDQwMiAtMC4zNjQzNCwtMi4yODM1ODUgLTEuMjAzMTI1LC0zLjA2MDU0NyAtMC43MDMzNTIsLTAuNjc2MjEzIC0xLjY3NjM2LC0xLjA3MTMyNDkgLTIuNjUyMzQ0LC0xLjA2NjQwNTggeiIgc3R5bGU9ImZpbGw6IzczODQ4YyIvPjwvc3ZnPg=="; // flags: 1 - closable, 2 - show now, 4 - close on logout, 256 - no scrollbars KMap.prototype.TaAdd=function(type,id,caption,flags,index,o,bgColor){ if(typeof(o)=="undefined" || o=="div"){ o=document.createElement("div");this.o.parentNode.appendChild(o); }else if(o=="iframe"){ o=document.createElement("iframe");this.o.parentNode.appendChild(o);o.style.border="0";o.style.overflow=flags & 256?"hidden":"auto";o.setAttribute('allowFullScreen',''); if(flags & 256) o.scrolling="no"; // needed for Firefox - it ignores style.overflow="hidden" } var st=o.style;st.position="absolute";st.left=this.o.style.left;st.top=this.o.style.top;st.width=this.TaOW+"px";st.height=this.TaOH+"px";st.backgroundColor=bgColor?bgColor:this.tabSelectedColor;st.borderWidth="0";st.display="none"; //alert(caption+" "+index+" "+this.TaIndex); if(typeof(index)=="undefined" || index<0) index=this.TaTabs.length; else if(this.TaIndex>=index) this.TaIndex++; this.TaTabs.splice(index,0,{type:type,id:id,caption:caption,o:o,flags:flags ? flags:0,color:bgColor}); this.TaRefresh(); if(flags & 2) this.TaSelect(index); return o; } KMap.prototype.TaFind=function(type,id){ var i=-1; for(var a=0;a=0 && m.TaTabs[m.TaIndex] && m.TaTabs[m.TaIndex].o) if(m.TaTabs[m.TaIndex].o.nodeName=="DIV") m.TaTabs[m.TaIndex].o.style.display="none"; else{st=m.TaTabs[m.TaIndex].o.style;st.width=st.height="0";} // don't use display="none", because Firefox reloads the iframe m.TaIndex=index; m.TaRefresh(true); if(index>=0){ if(m.TaTabs[index].o){st=m.TaTabs[index].o.style;st.display="";st.width=m.TaOW+"px";st.height=m.TaOH+"px";} if(typeof(m.TaSelected)=="function"){var type=m.TaTabs[index].type,id=m.TaTabs[index].id;setTimeout(function(){m.TaSelected(type,id)},0)} if(m.TaTabs[index].type=="map") setTimeout(function(){m.Placing();m.Load(1,0);},0); m.TaPrevDel(m.TaTabs[index].type,m.TaTabs[index].id); m.TaPrev.push({type:m.TaTabs[index].type,id:m.TaTabs[index].id}); } } KMap.prototype.TaSelectById=function(type,id){ var i=this.TaFind(type,id); if(i>-1) this.TaSelect(i); } // TODO (Maik) Die ChangeId-Methoden in map_denkmalgis-editor.js haben nur die ID in TaTabs geändert, aber nicht in // TaPrev, weshalb ein neuer Fundplatz, dessen ID nach dem Speichern von 0 auf die Fundplatz-ID geändert // wurde, nicht mehr in TaPrev gefunden wurde! Habe deshalb die Change-ID Methode hierher verlegt und das // fehlende Ändern der ID in TaPrev ergänzt: KMap.prototype.TaChangeId=function(type,oldId,newId){ var i=this.TaFind(type,oldId); if(i<0) return false; this.TaTabs[i].id=newId; for(var a=0;a-1) this.TaDel(i); } KMap.prototype.TaPrevDel=function(type,id){ for(var a=0;a=0;a--) if(this.TaTabs[a].flags & 4) this.TaDel(a); this.TaPrev=[]; if(this.TaHideWhenLoggedOut) this.TaSelect(-1); else this.TaRefresh(); } KMap.prototype.TaLangShow=function(){ if(this.TaLangWin){this.TaLangClose();return} //var x=this.Ta.offsetLeft+this.Ta.offsetWidth-KMap.GetAbsLeft(this.TaLangBtn)-this.TaLangBtn.offsetWidth; //var y=KMap.GetAbsTop(this.TaLangBtn)+this.TaLangBtn.offsetHeight-this.Ta.offsetTop; var x=this.TaLangBtn.getBoundingClientRect().left; var y=this.TaLangBtn.getBoundingClientRect().bottom; this.TaLangWin=document.createElement("div"); var st=this.TaLangWin.style;st.position="absolute";st.left=x+"px";st.top=y+"px";st.zIndex="2099";st.backgroundColor="white";st.border="1px solid #73808D";st.padding="4px";st.fontWeight="normal"; var t=document.createElement("table");this.TaLangWin.appendChild(t);st=t.style;st.borderSpacing=0;st.borderCollapse="collapse"; for(var a=0;awindow.innerWidth){this.TaLangWin.style.left="";this.TaLangWin.style.right=(window.innerWidth-x-this.TaLangBtn.offsetWidth)+"px";} } KMap.prototype.TaLangClose=function(){ if(this.TaLangWin){document.body.removeChild(this.TaLangWin);this.TaLangWin=null} } KMap.prototype.TaLangHit=function(l){ this.TaLangClose(); this.LangChange(l); } KMap.prototype.TaHookEvent=function(o,eventName,target,funcName,funcParam){ o.addEventListener(eventName,function(e){target[funcName](funcParam)}); } KMap.prototype.TaH=40; KMap.prototype.TaTemplate={ bg:"
{content}
", tab:"
{caption}{close}
", tabMH:6, tabSelected:"
{caption}{close}
", tabSelectedColor:"#F4F5F6", tabSelectedMH:3, close:"", login:"{content}", logout:"{content}" } KMap.prototype.TaRefresh=function(ensureVisible){ var m=this; //while(this.TaRight.children.length) this.TaRight.removeChild(this.TaRight.firstChild); while(this.TaRightRow.cells.length) this.TaRightRow.deleteCell(0); if(this.TaShowLang){ this.TaLangBtn=document.createElement("table"); var st=this.TaLangBtn.style;st.borderSpacing="0";st.borderCollapse="collapse";st.cursor="pointer";st.marginLeft="4px";st.marginRight="4px"; this.TaLangBtn.onclick=function(){m.TaLangShow()} var cell=this.TaRightRow.insertCell(); cell.style.verticalAlign="middle"; cell.appendChild(this.TaLangBtn); var r=this.TaLangBtn.insertRow(0); var c=r.insertCell(0); st=c.style;st.lineHeight="0";st.verticalAlign="middle"; this.TaLangImg=document.createElement("img");c.appendChild(this.TaLangImg); var i=this.TaLangImg;i.src=m.s("LangFlag");i.width=i.height="24"; //c=r.insertCell(1); //with(c.style){color="#73848C";verticalAlign="middle"} //c.innerHTML="▼"; } if(this.TaShowLogin){ if(this.TaLoggedIn){ var d=this.Html2Object(this.TaTemplate.logout.replace(/{content}/g,"")); }else{ var d=this.Html2Object(this.TaTemplate.login.replace(/{content}/g,this.s("Login"))); } //this.TaRight.appendChild(d); var cell=this.TaRightRow.insertCell(); cell.style.verticalAlign="middle"; cell.appendChild(d); d.onclick=function(){if(m.TaAccWin) m.TaAccWinClose();else m.TaAccountShow();} } while(this.TaLeftRow.cells.length) this.TaLeftRow.deleteCell(0); if(!this.TaShowTabs || (this.TaHideWhenLoggedOut && !this.TaLoggedIn)){this.TaPlacing();return} var selDiv; for(var a=0;a"); else t=t.replace(/{close}/g,""); var d=this.Html2Object(t); d.style.height=(this.TaH-this.TaTemplate.tabSelectedMH)+"px"; selDiv=d; }else{ var t=this.TaTemplate.tab.replace(/{caption}/g,caption); if(this.TaTabs[a].flags & 1) t=t.replace(/{close}/g,"
"); else t=t.replace(/{close}/g,""); var d=this.Html2Object(t); d.style.height=(this.TaH-this.TaTemplate.tabMH)+"px"; } var st=d.style;st.float="left";st.cursor="pointer"; var cell=this.TaLeftRow.insertCell(); cell.appendChild(d); d.myIndex=a; d.onclick=function(){m.TaSelect(this.myIndex)} if(this.TaTabs[a].flags & 1){ var close=this.Html2Object(this.TaTemplate.close); close.myIndex=a; close.onclick=function(e){m.TaDel(this.myIndex);e.stopPropagation()} var dummy=document.getElementById("TaDummy"); dummy.parentNode.replaceChild(close,dummy); } } this.TaPlacing(); if(selDiv && ensureVisible){ var x=KMap.GetAbsLeft(selDiv)-KMap.GetAbsLeft(this.TaLeftO); if(x<0) this.TaLeftO.scrollLeft+=(x-40); else{ x+=selDiv.offsetWidth; if(x>this.TaLeftO.offsetWidth) this.TaLeftO.scrollLeft+=(x-this.TaLeftO.offsetWidth+40); } } } KMap.prototype.TaPlacing=function(){ this.TaRightO.style.left=(this.Ta.offsetWidth-this.TaRight.offsetWidth)+"px"; if(this.TaHideWhenLoggedOut && !this.TaLoggedIn) this.TaTitle.style.left="0"; else{ var w=this.Ta.offsetWidth-this.TaLeft.offsetWidth-this.TaTitle.offsetWidth-this.TaRight.offsetWidth; if(w>=0){ this.TaTitle.style.left=this.TaLeft.offsetWidth+(w/2)+"px"; this.TaLeftO.style.width=this.TaLeft.offsetWidth+"px"; }else{ w=this.Ta.offsetWidth-this.TaTitle.offsetWidth-this.TaRight.offsetWidth; this.TaTitle.style.left=w+"px"; this.TaLeftO.style.width=w+"px"; } } } function TaWrapNew(){ KMap.prototype.TaOldNew=KMap.prototype.AfterConstruct; KMap.prototype.AfterConstruct=function(){ this.TaOldNew(); this.TaOW=this.o.offsetWidth; this.TaOH=this.o.offsetHeight; this.Ta=this.Html2Object(this.TaTemplate.bg.replace(/{content}/g,"
"));this.o.parentNode.appendChild(this.Ta); var st=this.Ta.style;st.position="absolute";st.left=this.o.style.left;st.top=this.o.style.top;st.width=this.TaOW+"px";st.height=this.TaH+"px"; this.o.style.top=(parseInt(this.o.style.top)+this.TaH)+"px"; var m=this; this.TaOldResize=this.Resize; this.Resize=function(w,h){ h-=m.Ta.offsetHeight; m.TaOldResize(w,h); m.Ta.style.width=w+"px"; m.TaPlacing(); m.TaOW=w; m.TaOH=h; if(m.TaIndex>=0 && m.TaTabs[m.TaIndex].type!="map" && m.TaTabs[m.TaIndex].o){st=m.TaTabs[m.TaIndex].o.style;st.width=w+"px";st.height=h+"px";} }; this.TaShowLogin=this.opts.login; this.TaHideWhenLoggedOut=this.opts.hideWhenLoggedOut; this.TaShowLang=this.opts.selectLang; this.TaTitle=document.createElement("div"); st=this.TaTitle.style;st.position="absolute";st.height=st.lineHeight=this.TaH+"px";st.display="table-cell";st.verticalAlign="middle"; if(this.opts.title) this.TaTitle.innerHTML=this.opts.title; else this.TaTitle.style.width="0"; var dummy=document.getElementById("TaDummy"); dummy.parentNode.replaceChild(this.TaTitle,dummy); this.TaLeftO=document.createElement("div");this.TaTitle.parentNode.appendChild(this.TaLeftO); st=this.TaLeftO.style;st.position="absolute";st.height=this.TaH+"px";st.overflow="hidden"; this.TaLeft=document.createElement("table");this.TaLeftO.appendChild(this.TaLeft); st=this.TaLeft.style;st.position="absolute";st.height=this.TaH+"px";st.borderSpacing="0";st.borderCollapse="collapse"; this.TaLeftRow=this.TaLeft.insertRow(0); document.addEventListener("mousemove",function(e){m.TaLeftScrollCheck(e)}); document.addEventListener("mouseout",function(e){ m.TaLeftScrollStopTimer=window.setTimeout(m.TaLeftScrollStop,50); m.TaLeftScrollCheck(e); }); this.TaLeftScrollCheck=function(e){ var x=e.clientX-KMap.GetAbsLeft(this.TaLeftO); var y=e.clientY-KMap.GetAbsTop(this.TaLeftO); if(x>0 && y>0 && xthis.TaLeftO.offsetWidth-40) this.TaLeftScroll=Math.round((x-this.TaLeftO.offsetWidth+40)/10); else this.TaLeftScroll=0; if(this.TaLeftScroll){ if(!this.TaLeftScrollTimer) this.TaLeftScrollTimer=window.setInterval(m.TaLeftScrollDo,10); if(this.TaLeftScrollStopTimer) window.clearTimeout(m.TaLeftScrollStopTimer); }else this.TaLeftScrollStop(); }else this.TaLeftScrollStop(); } this.TaLeftScrollStop=function(){ if(m.TaLeftScrollTimer){window.clearInterval(m.TaLeftScrollTimer);m.TaLeftScrollTimer=null} } this.TaLeftScroll=0; this.TaLeftScrollTimer=null; this.TaLeftScrollDo=function(){ m.TaLeftO.scrollLeft+=m.TaLeftScroll; if(m.TaLeftScroll>0){ if(m.TaLeftO.scrollLeft>=m.TaLeft.offsetWidth-m.TaLeftO.offsetWidth) m.TaLeftScrollStop(); }else{ if(m.TaLeftO.scrollLeft<=0) m.TaLeftScrollStop(); } }; this.TaRightO=document.createElement("div");this.TaTitle.parentNode.appendChild(this.TaRightO); st=this.TaRightO.style;st.position="absolute";st.height=this.TaH+"px"; //with(this.TaRight.style){position="absolute";height=this.TaH+"px";lineHeight=this.TaH+"px";display:"table-cell";verticalAlign="middle"} this.TaRight=document.createElement("table");this.TaRightO.appendChild(this.TaRight); st=this.TaRight.style;st.position="absolute";st.height=this.TaH+"px";st.borderSpacing="0";st.borderCollapse="collapse"; this.TaRightRow=this.TaRight.insertRow(0); this.TaAdd("map","0","Map",0,0,this.o); this.TaOldLangChanged=this.LangChanged; this.LangChanged=function(){ m.TaOldLangChanged(); m.TaRefresh(); if(m.TaAccWin) m.TaAccountShow(); }; this.TaSelect(this.opts.hideWhenLoggedOut ? -1:0); } } TaWrapNew();