cssstyles=new Array('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('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];


function cssstyle(node,sstyle,value) {
	if (cssstylesa[sstyle].search(/|/)>-1) {
		var xstyle=cssstylesa[sstyle].split("|")
		for(var i=0;i<xstyle.length;i++) node.style[xstyle[i]]=value;
	}
	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="85px";
	st.style.left="230px";
	st.style.width="485px";
	st.style.height="500px";
	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];
			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(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));//+' ('+de_entity(req.responseXML.documentElement.getElementsByTagName('anschrift')[i].firstChild.data)+')');
		var bt=document.createElement('div');
		//bt.style.borderBottom='1px dashed gray';
		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;
		ct.href="#";
		ct.onclick=function() {
			var xxx=this.id.split("|");
			var xx=xxx[0];
			var yy=xxx[1];
			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(at);
		st.appendChild(ct);
	}
}


function ajax_update() {

	xy2wgs();
	right_umkreis();
}


function xy2wgs()
{
	var element=top.frames['mapframe'].document.getElementById('map0');

	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;
	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){}
//	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+'°');
	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/,'');
	while(document.getElementById('mapurl').childNodes.length>0) document.getElementById('mapurl').removeChild(document.getElementById('mapurl').firstChild);var tn=document.createTextNode(baseurl+'/'+city+'/gps_x/'+gps_x+'/gps_y/'+gps_y+'.html');
	document.getElementById('mapurl').appendChild(tn);
}

function right_umkreis() {
	try {
	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+'&PHPSESSID='+session;

	//document.write(url+'?'+pars);
	var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars, onComplete: set_right_umkreis} );
	} catch (e) {}
}

function set_right_umkreis(req) {
	try {

		//alert(req.responseText);

		if (top.mapframe.klicks!=req.responseXML.documentElement.getElementsByTagName('klick')[0].firstChild.data) return true;

		var textknoten=Array();

		var x=0;
		var oldname='';
		var darstellungstag=req.responseXML.documentElement.getElementsByTagName('darstellung');

		// ALLES darstellen
		for(i=0;i<req.responseXML.documentElement.getElementsByTagName('result').length;i++)
		{
			var zeit=new Date();
			var actname='right'+req.responseXML.documentElement.getElementsByTagName('kat')[i].firstChild.data;
			var right_umkreis=document.getElementById(actname);
			var zeitb=new Date();

			// Inhalte löschen
			if(actname!=oldname) {
				while (right_umkreis.childNodes.length>0) {
					right_umkreis.removeChild(right_umkreis.childNodes[0]);
				}
			// neue Inhalte darstellen
			} else {
				if (darstellungstag[i].childNodes.length>0) {
					if (req.responseXML.documentElement.getElementsByTagName('name')[i].childNodes.length>0) var actnamename=req.responseXML.documentElement.getElementsByTagName('name')[i].firstChild.data;
					else var actnamename='none';

					// Subüberschriften
					if (actnamename!=oldnamename && actnamename!='none') {
						var textnode=document.createTextNode(de_entity(actnamename));
						var textnodea=document.createElement('strong');var textnodeb=document.createElement('div');
						var textnodec=document.createElement('br');var textnoded=document.createElement('br');
					    textnodea.appendChild(textnode);textnodeb.appendChild(textnodea);
   					    right_umkreis.appendChild(textnodec); // br
					    right_umkreis.appendChild(textnodeb);
  					    right_umkreis.appendChild(textnoded); // br
					}

					var hallo=own_cloneNode(darstellungstag[i].firstChild);
					var zeitb=new Date();
					right_umkreis.appendChild(hallo);

					var oldnamename=actnamename;
				}
			}
			var oldname=actname;
			var zeita=new Date();
		}

	}
	catch (e) {}
}

function own_cloneNode(node,sub) {
	if (node.nodeType==1) {

		var knode=document.createElement(node.nodeName);

		for(var i=0;i<node.childNodes.length;i++) {
			knode.appendChild(own_cloneNode(node.childNodes[i]),1);
		}

		if (node.getAttribute('border')) knode.border=node.getAttribute('border');
		if (node.getAttribute('target')) knode.target=node.getAttribute('target');
		if (node.getAttribute('src')) knode.src=node.getAttribute('src');
		if (node.getAttribute('href')) knode.href=node.getAttribute('href');
		if (node.getAttribute('class')) knode.className=node.getAttribute('class');
		if (node.getAttribute('onmouseover')) knode.onmouseover=new Function(node.getAttribute('onmouseover'));
		if (node.getAttribute('onmouseout')) knode.onmouseout=new Function(node.getAttribute('onmouseout'));

		if (node.getAttribute('style')) {
			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) {

		var knode=document.createTextNode(de_entity(node.nodeValue));
	}

	//if (!sub) document.write(knode);
	return knode;
}

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;
}