cssstyles=new Array('filter','background','backgroundAttachment','backgroundColor','backgroundImage','backgroundPosition','backgroundRepeat','border','borderBottom','borderBottomColor','borderBottomStyle','borderBottomWidth','borderColor','borderLeft','borderLeftColor','borderLeftStyle','borderLeftWidth','borderRight','borderRightColor','borderRightStyle','borderRightWidth','borderStyle','borderTop','borderTopColor','borderTopStyle','borderTopWidth','borderWidth','bottom','captionSide','clear','clip','color','cursor','direction','display','emptyCells','cssFloat|styleFloat','font','fontFamily','fontSize','fontStretch','fontStyle','fontVariant','fontWeight','height','left','letterSpacing','lineHeight','listStyle','listStyleImage','listStylePosition','listStyleType','margin','marginBottom','marginLeft','marginRight','marginTop','maxHeight','maxWidth','minHeight','minWidth','overflow','padding','paddingBottom','paddingLeft','paddingRight','paddingTop','pageBreakAfter','pageBreakBefore','position','right','scrollbar3dLightColor','scrollbarArrowColor','scrollbarBaseColor','scrollbarDarkshadowColor','scrollbarFaceColor','scrollbarHighlightColor','scrollbarShadowColor','scrollbarTrackColor','tableLayout','textAlign','textDecoration','textIndent','textTransform','top','verticalAlign','visibility','width','wordSpacing','zIndex');
cssstyleso=new Array('filter','background','background-attachment','background-color','background-image','background-position','background-repeat','border','border-bottom','border-bottom-color','border-bottom-style','border-bottom-width','border-color','border-left','border-left-color','border-left-style','border-left-width','border-right','border-right-color','border-right-style','border-right-width','border-style','border-top','border-top-color','border-top-style','border-top-width','border-width','bottom','caption-side','clear','clip','color','cursor','direction','display','empty-cells','float','font','font-family','font-size','font-stretch','font-style','font-variant','font-weight','height','left','letter-spacing','line-height','list-style','list-style-image','list-style-position','list-style-type','margin','margin-bottom','margin-left','margin-right','margin-top','max-height','max-width','min-height','min-width','overflow','padding','padding-bottom','padding-left','padding-right','padding-top','page-break-after','page-break-before','position','right','scrollbar3dlight-color','scrollbar-arrow-color','scrollbar-base-color','scrollbar-darkshadow-color','scrollbar-face-color','scrollbar-highlight-color','scrollbar-shadow-color','scrollbar-track-color','table-layout','text-align','text-decoration','text-indent','text-transform','top','vertical-align','visibility','width','word-spacing','z-index');
cssstylesa=new Array;
for(var i=0;i<cssstyles.length;i++) cssstylesa[cssstyleso[i]]=cssstyles[i];

letztertext='';
function open_info(text) {
	try {
	document.getElementById("info_unten").style.left=(breite/2-200)+"px";
	if (letztertext==text) return false;

	var unten=document.getElementById('info_unten');
	var at=document.createTextNode(text);

	letztertext=text;
	while(unten.childNodes.length>0) unten.removeChild(unten.firstChild);
	unten.appendChild(at);

	//

	if (unten.style.bottom=='-100px') for(var i=-50;i<=10;i+=3) window.setTimeout("document.getElementById('info_unten').style.bottom='"+i+"px';",(i+50)*10);

	//else unten.style.bottom='50px';

	window.setTimeout("close_info();",5000);
	} catch(e) {}
}

function close_info() {
	var unten=document.getElementById('info_unten');
	unten.style.bottom='-100px';
	window.setTimeout("letztertext='x';",5000);
}

/*// Iconstatus
var catStatus = new Array();
if(document.cookie) {
	//alert(document.cookie);
	cookies=document.cookie.split("; ");
	for(i=0;i<cookies.length;i++) {
		cookiess=cookies[i].split("=");
		if(cookiess[0]=="cats") {
			catStarts=cookiess[1].split(",");
		}
	}
}
if( typeof(catStarts) == 'undefined' ) {
	catStarts = new Array(57, 68, 22, 60, 112, 17, 43, 16, 46);
}
for(i=0;i<catStarts.length;i++) {catStatus[catStarts[i]] = true;}*/


function cssstyle(node,sstyle,value) {

		if (cssstylesa[sstyle].search(/|/)>-1) {
			var xstyle=cssstylesa[sstyle].split("|");
			for(var i=0;i<xstyle.length;i++) try { node.style[xstyle[i]]=value; } catch(e) {
				open_info(xstyle[i]+'='+value+' '+node.nodeName);}
		}
		else node.style[cssstylesa[sstyle]]=value;


	return node;
}

function suche(sword,stadt,type) {
	var url = baseurl+'/ajax/search.ajax.php';
	var pars = 'sword=' + sword + '&stadt=' + stadt+'&x='+x+'&y='+y+'&PHPSESSID='+session;

	//document.write(url+'?'+pars);
	//alert('a');

	var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars, onComplete: suche_return} );
}

function suche_return (req) {
	//alert('b');
	//alert(req.responseText);
	var st=document.getElementById("ajax_strassensuche");
	st.style.visibility="visible";
	st.style.display="block";
	st.style.position="absolute";
	st.style.top="60%";
	st.style.left="50%";
	st.style.width="450px";
	st.style.height="400px";
	st.style.marginTop="-200px";
	st.style.marginLeft="-225px";
	st.style.backgroundColor="#ffffff";
	st.style.border="1px solid black";
	st.style.overflow="auto";
	st.style.zIndex=10;

	while(st.childNodes.length>0) {
		st.removeChild(st.firstChild);
	}

	// Schliessbutton
	var dt=document.createElement('img');
	dt.style.cssFloat='right';
	dt.style.cursor='pointer';
	dt.src=baseurl+'/img/close.gif';
	dt.onclick=function() {
		document.getElementById("ajax_strassensuche").style.visibility="hidden";
		document.getElementById("ajax_strassensuche").style.display="none";
	}
	st.appendChild(dt);

	// Ergebnisliste Straßen
	var at=document.createTextNode(language['suchergebnis']);
	var bt=document.createElement('h2');
	bt.appendChild(at);
	st.appendChild(bt);

	for (var i=0;i<req.responseXML.documentElement.getElementsByTagName('result').length;i++) {
		var plzval=de_entity(req.responseXML.documentElement.getElementsByTagName('plz')[i].firstChild.data);
		if (plzval==0 || plzval=="0") plzval="";
		var at=document.createTextNode(de_entity(req.responseXML.documentElement.getElementsByTagName('strasse')[i].firstChild.data)+' ('+de_entity(req.responseXML.documentElement.getElementsByTagName('specs')[i].firstChild.data)+', '+plzval+' '+de_entity(req.responseXML.documentElement.getElementsByTagName('bezirk')[i].firstChild.data)+')');
		var bt=document.createElement('div');
		var ct=document.createElement('a');
		ct.id=req.responseXML.documentElement.getElementsByTagName('x')[i].firstChild.data+'|'+req.responseXML.documentElement.getElementsByTagName('y')[i].firstChild.data+'|'+req.responseXML.documentElement.getElementsByTagName('strasse')[i].firstChild.data;
		ct.href="#";
		ct.onclick=function() {
			var xxx=this.id.split("|");
			var xx=xxx[0];
			var yy=xxx[1];
			var zz=xxx[1];
			top.mapframe.driveto(xx,yy,xxx[2]);
			top.document.title=this.firstChild.firstChild.nodeValue;
			document.getElementById("ajax_strassensuche").style.visibility="hidden";
			document.getElementById("ajax_strassensuche").style.display="none";
			ajax_update();
		}
		ct.appendChild(bt);
		bt.appendChild(at);
		st.appendChild(ct);
	}

	var bt=document.createElement('br');
	st.appendChild(bt);

	// Ergebnisliste Unternehmen
	var at=document.createTextNode(language['unternehmen']);
	var bt=document.createElement('h2');
	bt.appendChild(at);
	st.appendChild(bt);

	for (var i=0;i<req.responseXML.documentElement.getElementsByTagName('result_unternehmen').length;i++) {
		var at=document.createTextNode(de_entity(req.responseXML.documentElement.getElementsByTagName('name')[i].firstChild.data));
		var bt=document.createElement('div');
		var et=document.createTextNode(de_entity(req.responseXML.documentElement.getElementsByTagName('anschrift')[i].firstChild.data));
		//bt.style.borderBottom='1px dashed gray';
		var it=document.createElement('img');
		it.src='/img/categorie_icons/'+req.responseXML.documentElement.getElementsByTagName('catid')[i].firstChild.data+'L.png';
		var catid=req.responseXML.documentElement.getElementsByTagName('catid')[i].firstChild.data;
		var rootid=req.responseXML.documentElement.getElementsByTagName('rootid')[i].firstChild.data;
		var sortid=req.responseXML.documentElement.getElementsByTagName('sort')[i].firstChild.data;
		it.style.cssFloat='left';
		var brt=document.createElement('br');
		var ct=document.createElement('a');
		ct.id=req.responseXML.documentElement.getElementsByTagName('xu')[i].firstChild.data+'|'+req.responseXML.documentElement.getElementsByTagName('yu')[i].firstChild.data+'|'+req.responseXML.documentElement.getElementsByTagName('name')[i].firstChild.data+'|'+catid+'|'+sortid+'|'+rootid;
		ct.href="#";
		ct.onclick=function() {
			var xxx=this.id.split("|");
			var xx=xxx[0];
			var yy=xxx[1];

			var catid=xxx[3];
			var sortid=xxx[4];
			var rootid=xxx[5];

			if ((catStatus[catid]==false) || (typeof(catStatus[catid]) == 'undefined')) {
				changeStatus(catid,document.getElementById('js_catL2_'+rootid+'_'+sortid));
			}
			top.mapframe.driveto(xx,yy,xxx[2]);
			document.getElementById("ajax_strassensuche").style.visibility="hidden";
			document.getElementById("ajax_strassensuche").style.display="none";
			ajax_update();
		}
		ct.appendChild(bt);
		bt.appendChild(it);
		bt.appendChild(at);
		st.appendChild(brt);
		st.appendChild(brt);
		st.appendChild(ct);
		st.appendChild(et);
	}
}


function ajax_update() {

	xy2wgs();
	right_umkreis();
}


function gps2xy(gpsX, gpsY) {
	var xy  = new Array();
	xy['x'] = ( (gpsX - faktor['gpsx']) * 1000 ) / faktor['xf'];
	xy['x'] = xy['x'] * top.frames['mapframe'].zoom; xy['x'] = Math.round(xy['x']);

	xy['y'] = ( (gpsY - faktor['gpsy']) * 1000 ) / faktor['yf'];
	xy['y'] = xy['y'] * top.frames['mapframe'].zoom; xy['y'] = Math.round(xy['y']);

	var element=top.frames['mapframe'].document.getElementById('map0');
	xy['e'] = element.style.left;
	var leftt=0-element.style.left.replace(/px/,'');if (leftt=='NaN') leftt=0;
	var topp=0-element.style.top.replace(/px/,'');if (topp=='NaN') topp=0;

	xy['x'] = Math.round(xy['x'] - leftt + breite/2);
	xy['y'] = Math.round(xy['y'] - topp + hoehe/2);

//	alert('((('+gpsX+'-'+faktor['gpsx']+')*1000)/'+faktor['xf']+')*'+top.frames['mapframe'].zoom+' = '+xy['x']);

//	if(top.mapframe.aktivekarte=='google')alert(gpsX+'='+xy['x']+'|'+gpsY+'='+xy['y']);
	//alert(xy['x'] + ', ' + xy['y']);
	return xy;
}

function xy2gps(x,y) {
	var gps_x=faktor['gpsx']+(x*faktor['xf']/1000);
	var gps_y=faktor['gpsy']+(y*faktor['yf']/1000);

	var ret=new Array;
	ret["gps_x"]=gps_x;
	ret["gps_y"]=gps_y;

	return ret;

}
function getGps() {
	var element=top.frames['mapframe'].document.getElementById('map0');

	//alert(element.style.top);
	var leftt=0-element.style.left.replace(/px/,'');if ( isNaN(leftt) ) leftt=0;
	var topp=0-element.style.top.replace(/px/,''); if ( isNaN(topp) ) topp=0;
	//alert(leftt+', '+topp);

	leftt=leftt/top.frames['mapframe'].zoom;
	topp=topp/top.frames['mapframe'].zoom;

	var ret = new Array();
	ret["gps_x"]=faktor['gpsx']+(leftt*faktor['xf']/1000);ret["gps_x"]=Math.round(ret["gps_x"]*10000)/10000;
	ret["gps_y"]=faktor['gpsy']+(topp*faktor['yf']/1000);ret["gps_y"]=Math.round(ret["gps_y"]*10000)/10000;

	return ret;
}

function xy2wgs() {
	try {
	var element=top.frames['mapframe'].document.getElementById('map0');

	var leftt=0-element.style.left.replace(/px/,'').replace(/pt/,'');if (isNaN(leftt)) leftt=0;
	var topp=0-element.style.top.replace(/px/,'').replace(/pt/,'');if (isNaN(topp)) topp=0;
	leftt=leftt/top.frames['mapframe'].zoom;
	topp=topp/top.frames['mapframe'].zoom;

	var gps_x=faktor['gpsx']+(leftt*faktor['xf']/1000);gps_x=Math.round(gps_x*10000)/10000;
	var gps_y=faktor['gpsy']+(topp*faktor['yf']/1000);gps_y=Math.round(gps_y*10000)/10000;

	try {document.getElementById('mapurl_immo').href=baseurl+'/?topic=immo/vorauswahl&gps_x='+gps_x+'&gps_y='+gps_y+'&city='+city;} catch (e){}
	try {document.getElementById('mapurl_visit').href=baseurl+'/?topic=wizard/index&gps_x='+gps_x+'&gps_y='+gps_y+'&city='+city;} catch (e){}
	try {document.getElementById('mapurl_lizenz').href=baseurl+'/?topic=lizenzen/vorauswahl&gps_x='+gps_x+'&gps_y='+gps_y+'&city='+city; } catch (e){}
	try {document.getElementById('mapurl_addPoint').href=baseurl+'/berlin/geo_x/'+gps_x+'/geo_y/'+gps_y+'/content/kategorien/eintragen.html'; } catch (e){}
//	document.getElementById('mapurl_druck').href='http://'+baseurl+'/stadtplan/druckversion.php?x_wgs='+gps_x+'&y_wgs='+gps_y+'&stadt='+city+'&city='+city;

	while(document.getElementById('mappos').childNodes.length>0) document.getElementById('mappos').removeChild(document.getElementById('mappos').firstChild);
	if (gps_x>0) gps_x="E"+gps_x; else gps_x="W"+gps_x;
	if (gps_y>0) gps_y="N"+gps_y; else gps_y="S"+gps_y;
	var tn=document.createTextNode(gps_y+'° '+gps_x+'°');//+' '+Math.round(x)+'x'+Math.round(y)+' '+Math.round(leftt)+'x'+Math.round(topp));
	document.getElementById('mappos').appendChild(tn);


	gps_x=gps_x+'a';gps_x=gps_x.replace(/\./,',');gps_x=gps_x.replace(/a/,'');gps_x=gps_x.replace(/E/,'');gps_x=gps_x.replace(/W/,'');
	gps_y=gps_y+'a';gps_y=gps_y.replace(/\./,',');gps_y=gps_y.replace(/a/,'');gps_y=gps_y.replace(/N/,'');gps_y=gps_y.replace(/S/,'');
	} catch(e) {}
	try {
		var tn = baseurl+'/'+city+'/gps_x/'+gps_x+'/gps_y/'+gps_y+'.html';
		document.getElementById('mapurl').value = tn;
	} catch(e) {}
}

function right_umkreis() {
	try {
	
	if (top.zoom<0.5) return;
	x=Math.round(x);
	y=Math.round(y);

	var url = baseurl+'/ajax/right.unternehmen.ajax.php';
	var pars = 'x=' + x + '&y=' + y + '&breite='+breite+'&hoehe='+hoehe+'&klick='+top.mapframe.klicks+'&zoom='+zoom+'&city='+city+'&kat='+document.getElementById('rightvalue').value+'&cats='+document.getElementById('js_cookieCats').value+'&PHPSESSID='+session;

	//document.write(url+'?'+pars);
	var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars, onComplete: set_right_umkreis} );
	} catch (e) {}
}

var nodeMapIconTemp, mapIcons;
function set_right_umkreis(ret) {
	var debugTime = false;
	if(debugTime) {
		var scBegin = new Date();
		scBegin = scBegin.getTime();
	}
	try {
		var retObj = eval('(' + ret.responseText + ')');
// 		STRIKE! :D // alert(retObj.tables[3].entries[0].catimg); return true;

		// Kartenueberpruefung
		if(top.mapframe.klicks != retObj.klick) {return true;}
		if(!retObj.karte) {
			if(top.mapframe.aktivekarte != 'googlestreet' && top.mapframe.aktivekarte != 'google') {
				top.mapframe.google_load(1);
				open_info('Es wurde auf die Google Maps-Karte umgeschaltet, da fuer diesen Bereich keine KAPOSO-Karte zur Verfuegung steht.');
			}
		} else {
			if(top.mapframe.aktivekarte == 'googlestreet') {
				top.mapframe.google_unload();
				open_info('Es wurde auf die KAPOSO-Karte zurueckgeschaltet.');
			}
		}

		// bewegliche Icons loeschen
		mapIcons = top.mapframe.document.getElementById('mapIcons');
		while(mapIcons.childNodes.length > 0) {
			mapIcons.removeChild(mapIcons.childNodes[0]);
		}

		// Kategorien durchgehen
		var katLength = retObj.kats.length;
		for(var k = 0; k < katLength; k++) {
			var actKat = 'right' + retObj.kats[k].kat;
			var doc_rightUmkreis = document.getElementById(actKat);
			// Inhalte löschen
			while (doc_rightUmkreis.childNodes.length > 0) {
				doc_rightUmkreis.removeChild(doc_rightUmkreis.childNodes[0]);
			}
			// alle zur Kategorie gehoerenden Tabellen durchgehen
			var actTables = retObj.kats[k].katEntries.split(',');
			for(var t = 0; t < actTables.length; t++) {
				var actTable = actTables[t];
				if(retObj.tables[actTable].tablename == 'berliner_stadtplan.categorie_entries') {
					var entriesTable = actTable;
				} else {
					// Wenn Eintraege vorhanden sind
					if(typeof(retObj.tables[actTable].entries) != 'undefined') {
						var entriesLength = retObj.tables[actTable].entries.length;
						// Name der Tabelle
						if(retObj.tables[actTable].name) {
							var nodeTitle  = document.createTextNode( de_entity(retObj.tables[actTable].name) );
							var nodeStrong = document.createElement('strong');
							var nodeDiv    = document.createElement('div');
							var nodeBr1    = document.createElement('br');
							var nodeBr2    = document.createElement('br');
							nodeStrong.appendChild(nodeTitle);
							nodeDiv.appendChild(nodeStrong);
							doc_rightUmkreis.appendChild(nodeBr1);
							doc_rightUmkreis.appendChild(nodeDiv);
							doc_rightUmkreis.appendChild(nodeBr2);
						}
						// Alle Eintraege erstellen
						for(var e = 0; e < entriesLength; e++) {
							var nodeEntry = document.createElement('span');
							nodeEntry.innerHTML = retObj.tables[actTable].entries[e].darstellung;
							doc_rightUmkreis.appendChild(nodeEntry);
							// Objekte fuer die Karte
							if(retObj.tables[actTable].tablename == 'berliner_stadtplan.categories' && typeof(retObj.tables[entriesTable].entries) != 'undefined') {
								var rootCat     = retObj.tables[actTable].entries[e].catid;
								var actEntrySet = retObj.tables[actTable].entries[e].catEntries.split(',');
								var oepnvSU     = new Object(), oepnvSUcnt = 0;
								for(var ce = 0; ce < actEntrySet.length; ce++) {
									var actEntry = actEntrySet[ce];
									// Eintrag fuer rechte Box
									nodeEntry = document.createElement('span');
									nodeEntry.innerHTML = retObj.tables[entriesTable].entries[actEntry].darstellung;
									doc_rightUmkreis.appendChild(nodeEntry);
									var catId    = retObj.tables[entriesTable].entries[actEntry].catid;
									var actTitle = retObj.tables[entriesTable].entries[actEntry].title;
									// Wenn Kategorie S- oder U-Bhf. und Eintrag mit S+U beginnt
									if( (catId == 46 || catId == 118) && actTitle.search(/^S\+U .+/) != -1 )  {
										var newIndex = actTitle.replace(/^S\+U /, '');
										if(typeof(oepnvSU[newIndex]) == 'undefined') {
											oepnvSU[newIndex] = new Object();
											oepnvSUcnt++;
										}
										if(catId == 46) {var newType = 'S';}
										else {var newType = 'U';}
										oepnvSU[newIndex][newType] = actEntry;
									} else {
										// Icon erstellen
										var newXY = gps2xy(retObj.tables[entriesTable].entries[actEntry].gpsx, retObj.tables[entriesTable].entries[actEntry].gpsy);
										var newIconArr = new Array();
										newIconArr['actEntry']	= actEntry;
										newIconArr['ceid']		= retObj.tables[entriesTable].entries[actEntry].ceid;
										newIconArr['catId']		= catId;
										newIconArr['rootCat']	= rootCat;
										newIconArr['catimg']	= retObj.tables[entriesTable].entries[actEntry].catimg;
										newIconArr['x']			= newXY['x'];
										newIconArr['y']			= newXY['y'];
										newIconArr['title']		= actTitle;
										newIconArr['oepnvType'] = '';
										if(catId == 46) {newIconArr['oepnvType'] = 'S';}
										else if(catId == 118) {newIconArr['oepnvType'] = 'U';}
										createNewIcon(newIconArr);
									}
								}
								// Wenn Haltestellenarray gefuellt
								if(oepnvSUcnt > 0) {
									for(var actBhf in oepnvSU) {
										// Position vom U-Bhf
// 										alert(oepnvSU[actBhf]['S'] + ', ' + oepnvSU[actBhf]['U']); return true;
										actEntry = oepnvSU[actBhf]['U'];
										newXY_U = gps2xy(retObj.tables[entriesTable].entries[actEntry].gpsx, retObj.tables[entriesTable].entries[actEntry].gpsy);
										// S-Bhf
										actEntry = oepnvSU[actBhf]['S'];
										newXY_S  = gps2xy(retObj.tables[entriesTable].entries[actEntry].gpsx, retObj.tables[entriesTable].entries[actEntry].gpsy);
										newXY_S['y'] = newXY_U['y'];
										newIconArr = new Array();
										newIconArr['actEntry']	= actEntry;
										newIconArr['ceid']		= retObj.tables[entriesTable].entries[actEntry].ceid;
										newIconArr['catId']		= 46;
										newIconArr['rootCat']	= 7;
										newIconArr['catimg']	= retObj.tables[entriesTable].entries[actEntry].catimg;
										newIconArr['x']			= newXY_S['x'];
										newIconArr['y']			= newXY_S['y'];
										newIconArr['title']		= retObj.tables[entriesTable].entries[actEntry].title;
										newIconArr['oepnvType'] = 'S';
										createNewIcon(newIconArr);
										// U-Bhf ohne Schild
										actEntry = oepnvSU[actBhf]['U'];
										newXY_U['x'] = newXY_S['x'] + 28;
										newIconArr = new Array();
										newIconArr['actEntry']	= actEntry;
										newIconArr['ceid']		= retObj.tables[entriesTable].entries[actEntry].ceid;
										newIconArr['catId']		= 118;
										newIconArr['rootCat']	= 7;
										newIconArr['catimg']	= retObj.tables[entriesTable].entries[actEntry].catimg;
										newIconArr['x']			= newXY_U['x'];
										newIconArr['y']			= newXY_U['y'];
										newIconArr['title']		= retObj.tables[entriesTable].entries[actEntry].title;
										newIconArr['oepnvType'] = '';
										createNewIcon(newIconArr);
									}
								}
							}
						}
					}
				}
			}
		}
	} catch(e) {open_info(e);}
	if(debugTime) {
		var scEnd = new Date();
		scEnd = scEnd.getTime();
		open_info( 'Laufzeit(ms): '+(scEnd-scBegin) );
	}
}
function createNewIcon(entryArr) {
	// Icon erstellen
	nodeMapIconTemp = top.mapframe.document.getElementById('mapIconTemp');
	var newIcon  = own_cloneNode(nodeMapIconTemp, 0, top.mapframe.document);
	newIcon.id   = 'js_mapIcon_'+entryArr['actEntry'];
	newIcon.name = entryArr['ceid'];
	var catId = entryArr['catId'];
	var offXY = 0, actShadow = 'shadow_32soft.png';
	if(entryArr['rootCat'] == 9 || entryArr['rootCat'] == 82 || catId == 115 || catId == 116) {
		actShadow = 'schatten03.png';
		if(!notransparency) {
			var nodeIconImg = newIcon.getElementsByTagName('img')[0];
			nodeIconImg.src    = '/img/categorie_icons/'+actShadow;
			nodeIconImg.width  = 26;
			nodeIconImg.height = 26;
		}
	}
	var nodeInput = newIcon.getElementsByTagName('input')[0];
	if(notransparency) {
		offXY = 19;
		var nodeDiv = newIcon.getElementsByTagName('div')[0];
		nodeInput.style.filter   = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+entryArr['catimg']+"');";
		nodeInput.style.position = 'relative';
		nodeInput.style.left     = '-3px';
		nodeInput.style.top      = '-3px';
		nodeInput.src            = '/img/spacer.gif';
		nodeDiv.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/img/categorie_icons/"+actShadow+"');";
		nodeDiv.style.width  = '32px';
		nodeDiv.style.height = '32px';
	} else {
		offXY = 16;
		nodeInput.src = entryArr['catimg'];
	}
	if(entryArr['oepnvType']) {
		var bhfSign = top.mapframe.document.createElement('img');
		bhfSign.src = '/img/bahnhof.php?type='+entryArr['oepnvType']+'-Bahn&text='+entryArr['title'];
		newIcon.appendChild(bhfSign);
	}
	newIcon.style.top        = (entryArr['y']-offXY) + 'px';
	newIcon.style.left       = (entryArr['x']-offXY) + 'px';
	newIcon.title            = entryArr['title'];
	newIcon.style.visibility = 'visible';
	newIcon.style.display    = 'block';
	newIcon.style.zIndex     = '9999';
	top.mapframe.bildelemente[top.mapframe.bildelemente.length] = newIcon;
	mapIcons.appendChild(newIcon);
}
hallohallo="";besonders="";
function own_cloneNode(node,sub,framename,alerts) {
	if (node.nodeType==1) {
		if (typeof(framename)=='undefined') framename=document;
		var knode=framename.createElement(node.nodeName);

		if (typeof(alerts)!='undefined') alert(node.nodeName);

		for(var i=0;i<node.childNodes.length;i++) {
			try{
				besonders=0;
				knode.appendChild(own_cloneNode(node.childNodes[i],1,framename,alerts),1);
			}catch(e) {
				if (hallohallo=='hallo') besonders=1;
				knode.appendChild(own_cloneNode(node.childNodes[i],1,framename,alerts),1);
			}
		}

		if (node.getAttribute('id')) knode.setAttribute("id", node.getAttribute('id'));
		if (node.getAttribute('border')) knode.border=node.getAttribute('border');
		if (node.getAttribute('colspan')) knode.setAttribute("colSpan", node.getAttribute('colspan'));
		if (node.getAttribute('rowspan')) knode.setAttribute("rowSpan", node.getAttribute('rowspan'));
		if (node.getAttribute('action')) knode.setAttribute("action", node.getAttribute('action'));
		if (node.getAttribute('method')) knode.setAttribute("method", node.getAttribute('method'));
		if (node.getAttribute('value')) knode.setAttribute("value", node.getAttribute('value'));
		if (node.getAttribute('selected')) knode.setAttribute("selected", node.getAttribute('selected'));
		if (node.getAttribute('checked')) knode.setAttribute("checked", node.getAttribute('checked'));
		if (node.getAttribute('name')) knode.setAttribute("name", node.getAttribute('name'));

		if (node.getAttribute('cellpadding')) knode.setAttribute("cellPadding", node.getAttribute('cellpadding'));
		if (node.getAttribute('cellspacing')) knode.setAttribute("cellSpacing", node.getAttribute('cellspacing'));
		if (node.getAttribute('width')) knode.setAttribute("width", node.getAttribute('width'));
		if (node.getAttribute('height')) knode.setAttribute("height", node.getAttribute('height'));
		if (node.getAttribute('alt')) knode.setAttribute("alt", node.getAttribute('alt'));
		if (node.getAttribute('title')) knode.setAttribute("title", node.getAttribute('title'));
		if (node.getAttribute('target')) knode.target=node.getAttribute('target');
		if (node.getAttribute('src')) knode.src=node.getAttribute('src');

		// fieser Bug: IMG hat im IE href gesetzt, kommt aber nicht aus dem Quelltext
		if (node.getAttribute('href') && knode.nodeName!='IMG') knode.href=node.getAttribute('href');
		if (node.getAttribute('type')) knode.setAttribute("type", node.getAttribute('type'));
		if (node.getAttribute('value')) knode.value=node.getAttribute('value');
		if (node.getAttribute('class')) knode.className=node.getAttribute('class');
		if (node.getAttribute('align')) knode.align=node.getAttribute('align');
		if (node.getAttribute('valign')) knode.vAlign=node.getAttribute('valign');


		// Alte Schreibweise, funktioniert scheinbar nicht
		// evt. IF-Abfrage n�tig, je nachdem ob STRING oder FUNCTION




		// Neue Schreibweise
		if (document.all) {
			if (node.getAttribute('onmouseover')) {
				if (own_type(node.getAttribute('onmouseover'))) knode.onmouseover=new Function(node.getAttribute('onmouseover'));
				else knode.setAttribute('onmouseover',node.getAttribute('onmouseover'));
			}
			if (node.getAttribute('onmouseout')) {
				if (own_type(node.getAttribute('onmouseout'))) knode.onmouseout=new Function(node.getAttribute('onmouseout'));
				else knode.setAttribute('onmouseout',node.getAttribute('onmouseout'));
			}
			if (node.getAttribute('onmousedown')) {
				if (own_type(node.getAttribute('onmousedown'))) knode.onmousedown=new Function(node.getAttribute('onmousedown'));
				else knode.setAttribute('onmousedown',node.getAttribute('onmousedown'));
			}
			if (node.getAttribute('onmouseup')) {
				if (own_type(node.getAttribute('onmouseup'))) knode.onmouseup=new Function(node.getAttribute('onmouseup'));
				else knode.setAttribute('onmouseup',node.getAttribute('onmouseup'));
			}
			if (node.getAttribute('onmousemove')) {
				if (own_type(node.getAttribute('onmouseout'))) knode.onmouseout=new Function(node.getAttribute('onmouseout'));
				else knode.setAttribute('onmouseout',node.getAttribute('onmouseout'));
			}
			if (node.getAttribute('onclick')) {
				if (own_type(node.getAttribute('onclick'))) knode.onclick=new Function(node.getAttribute('onclick'));
				else knode.setAttribute('onclick',node.getAttribute('onclick'));
			}
		} else {
			if (node.getAttribute('onmouseover')) knode.setAttribute('onmouseover',node.getAttribute('onmouseover'));
			if (node.getAttribute('onmouseout')) knode.setAttribute('onmouseout',node.getAttribute('onmouseout'));
			if (node.getAttribute('onmousedown')) knode.setAttribute('onmousedown',node.getAttribute('onmousedown'));
			if (node.getAttribute('onmouseup')) knode.setAttribute('onmouseup',node.getAttribute('onmouseup'));
			if (node.getAttribute('onmousemove')) knode.setAttribute('onmousemove',node.getAttribute('onmousemove'));
			if (node.getAttribute('onclick')) knode.setAttribute('onclick',node.getAttribute('onclick'));
	   }


//		if (hallohallo=='hallo') alert(typeof(node.getAttribute('style')));
		if (node.getAttribute('style')) {
			// Vermutung: Z262 geht nicht
			if (typeof(node.getAttribute('style'))=='object') {
				for (var i=0;i<cssstyles.length;i++) {
					try{
						if (node.getAttribute('style')[cssstyles[i]].length>0) {
							knode.style[cssstyles[i]]=node.getAttribute('style')[cssstyles[i]];
						}
					}catch(e){
					}
				}
			}
			else {
				var style=node.getAttribute('style').split(";");
				for(var i=0;i<style.length;i++) {
					if (style[i]) {
						var aktuell=style[i].split(":");
						aktuell[0]=aktuell[0].replace(/ /,'');
						aktuell[0]=aktuell[0].replace(/	/,'');
						aktuell[1]=aktuell[1].replace(/ /,'');
						aktuell[1]=aktuell[1].replace(/	/,'');

						knode=cssstyle(knode,aktuell[0],aktuell[1]);
					}
				}
			}
		}

	}
	else if (node.nodeValue) {
		if (typeof(framename)=='undefined') framename=document;
		var knode=framename.createTextNode(de_entity(node.nodeValue));
	}
	var vari=knode.nodeName;

	return knode;
}

function own_type(attr) {
	if (typeof(attr)=="object" || typeof(attr)=="function") return false;
	else return true;
}

function textnode_write(node,name,text,del) {

	for(var i=0;i<node.childNodes.length;i++) {
		//if (node.childNodes[i].length
		if (node.childNodes[i].firstChild.value==name) {
			knode=node.childNodes[i];

			if (del==1) {
				while (knode.childNodes.length>0) knode.removeChild(knode.firstChild);
			}

			var textnode=document.createTextNode(text);
			knode.appendChild(textnode);

			return true;
		} else if (node.childNodes[i].childNodes.length>0) {
			//alert('x');textnode_write(node.childNodes[i],name,text,del);
		}
	}
}


function de_entity(text) {
	do {
		text=text.replace(/\n/,'');
		text=text.replace(/\t/,'');
		text=text.replace(/\r/,'');
	} while ((text.search('\n')>0) || (text.search('\t')>0) || (text.search('\r')>0));

	return text;
}

window.setTimeout('if(typeof(top.mapframe)!="object")document.location.href=document.location.href;',2000);