var intActiveMapservice=0;
var intImageRequestCnt=0;
var intImageResponseCnt=0;

var intPrintImageRequestCnt=0;
var intPrintImageResponseCnt=0;
var arrLastExtent=new Array();
var arrLastExtentMax=40;
var intExtentCnt=-1;
var arrLastLayerVisible=new Array();
var intWarteSek=0;
var intMaxWarteSek=10000;
var arrMService=new Array();
var arrWMService=new Array();

function getStartExtent(){
	minx=startLeft;
	miny=startBottom;
	maxx=startRight;
	maxy=startTop;
}

function setMsListMs(){
	editLayerFieldListe();
	if (MsListMs.length==0){
		MsListMs[0]=ServiceName;
		MsListUrl[0]="http:\/\/"+MsListServerName+"\/servlet\/com.esri.esrimap.Esrimap?ClientVersion=9.0&ServiceName="+MsListMs[0]+"&Form=False";
		MsListFormat[0]="png";
		MsListOpacity[0]=100;
		MsListQuality[0]=1;
		MsListPrtQuality[0]=1;
		MsListIsArcMap[0]=false;
	}
	
	var x=new Array();
	for (var i=0;i<LayerID.length;i++) {
		for (var j=0;j<MsListMs.length;j++) {
			if (MsListMs[j]){
				if (LayerMS[i]==MsListMs[j]){
					LayerMS[i]=j;
				}
			}
		}
	}
}
function getServiceInfo(){
	var axl = '<?xml version="1.0" encoding="UTF-8"?><ARCXML version="1.1">\n<REQUEST>\n<GET_SERVICE_INFO renderer="false" extensions="false" fields="true" />\n</REQUEST>\n</ARCXML>\n';
	//http=new Array;
	writeProtokoll("getServiceInfo");
	if (!aimsLayerParam){ // dh layerparam.js nicht gelesen
		for (var i=0; i<MsListUrl.length+1; i++) {
		 	var deferred = dojo.rawXhrPost({
			//url:    "http://lkh-regis3.lkh-d01.lkharburg.de/servlet/com.esri.esrimap.Esrimap?ClientVersion=9.0&ServiceName=layer_alk&Form=False",
			url:	"http://"+MsListServerName+"/servlet/com.esri.esrimap.Esrimap?ClientVersion=9.0&Form=False&ServiceName="+ServiceName,
			handleAs: "text",
			timeout: 30000, //Time in milliseconds
			postData:axl,
			handle: function(response, ioArgs){
				intPrintImageRequestCnt++;
				if(response instanceof Error){
					if(response.dojoType == "cancel"){
						writeProtokoll("getServiceinfo.Canceled "+this.url)
					}else if(response.dojoType == "timeout"){
						writeProtokoll("getServiceinfo.TimeOut "+this.url);
					}else{
						writeProtokoll("getServiceinfo.Error "+this.url+"\n"+response);
					}
              }else{
					getLayers(response);
				}
			}
		});
		}
	}
	if (minx==0){
		getStartExtent();
	}
	setlayerid();
	LayerVisibleOriginal=LayerVisible.join(",");
	writeProtokoll("getServiceInfo - Ende");
}

function checkms(){
	blnDebugOn=true;
	writeProtokoll("check mapservice");
	var axl = '<?xml version="1.0" encoding="UTF-8"?><ARCXML version="1.1">\n<REQUEST>\n<GET_SERVICE_INFO renderer="false" extensions="false" fields="false" />\n</REQUEST>\n</ARCXML>\n';
	var ergebnis="";
		for (var i=0; i<MsListUrl.length; i++) {
			if (MsListUrl[i]){
			var deferred = dojo.rawXhrPost({
				url:    MsListUrl[i],
				sync:true,
				handleAs: "text",
				timeout: 2000, //Time in milliseconds
				postData:axl,
				handle: function(response, ioArgs){
					var p1=this.url.indexOf("ServiceName=") + 12;
					var p2=this.url.indexOf("&",p1);
					if (p2==-1){
						p2=this.url.length;
					}
					ergebnis+="\n"+(i+1)+" ";
					ergebnis+=this.url.substring(p1,p2);
					ergebnis+="\n";
					if(response instanceof Error){
						if(response.dojoType == "cancel"){
							ergebnis+="Canceled "
						}else if(response.dojoType == "timeout"){
							ergebnis+="Timeout";
						}else{
							ergebnis+="Error \n";
							ergebnis+=response;
						}
	              }else{
						if (response.indexOf("ERROR")>-1){
							ergebnis+="FEHLER\n"+response;
						}else{
							ergebnis+="OK";//+response;
						}
					}
					ergebnis+="\n";
				}
			});
		}
		}
	writeProtokoll(ergebnis);
	blnDebugOn=false;
}
function zoom(left, bottom, right, top){
    if(activeTool == "zoomin") getExtentForZoomIn(left, bottom, right, top);
    else getExtentForZoomOut(left, bottom, right, top);	
    //var env = '<ENVELOPE minx="' + minx + '" miny="' + miny +'" maxx="' + maxx +'" maxy="' + maxy + '" />';
	getAllMaps(true);
}
function zoomToEnv(left, bottom, right, top){
	var x=(right-left)*0.1;
	var y=(top-bottom)*0.1;
	minx = left-x;
	miny = bottom-y;
	maxx = right+x;
	maxy = top+y;
	if (x<1){
		setextentbym(minmaszstab);
	}
	getAllMaps(true);
}
function getExtentForZoomIn(left, bottom, right, top){
	var mpx=(left+right)/2;
	var mpy=(bottom+top)/2;
	minx = mpx-100;
	miny = mpy-100;
	maxx = mpx+100;
	maxy = mpy+100;
	if ((zright-zleft)<10){
		m=lngMapMassstab*0.5;
	}else{
		// maßstab im Verhältnis Zoombox/alter Maßstab
		m=(lngMapMassstab/(mwidth/(zright-zleft)))*1.5;
	}
	if (m==NaN) m=minmaszstab;
	if (m<minmaszstab) m=minmaszstab;
	setextentbym(m);
}

function getExtentForZoomOut(left, bottom, right, top){
	var mpx=(left+right)/2;
	var mpy=(bottom+top)/2;
	minx = mpx-100;
	miny = mpy-100;
	maxx = mpx+100;
	maxy = mpy+100;
	m=lngMapMassstab*2;
	/*
	if ((zright-zleft)<10){
		m=lngMapMassstab*2;
	}else{
		// maßstab im Verhältnis Zoombox/alter Maßstab
		m=(lngMapMassstab*(mwidth/(zright-zleft)));
	}
	*/
	if (m==NaN) m=minmaszstab;
	if (m<minmaszstab) m=minmaszstab;
	setextentbym(m);
/*
	var lbpoint = returnMapXY(left, bottom);
	var rtpoint = returnMapXY(right, top);
	// Breite der Zoombox
	var dx = Math.abs(rtpoint[0] - lbpoint[0]);
	// Hoehe der Zoombox
	var dy = Math.abs(rtpoint[1] - lbpoint[1]);
	// mpx/mpy = neuer Mittelpunkt
	var mpx=lbpoint[0]+(dx/2);
	var mpy=lbpoint[1]+(dy/2);
	var w=(maxx-minx)/2;
	var h=(maxy-miny)/2;
	
	minx = mpx-w;
	miny = mpy-h;
	maxx = mpx+w;
	maxy = mpy+h;
	
	var xDiff= maxx-minx;
	var yDiff= maxy-miny;
	var pwidth = right-left;
	var pheight = top-bottom;
	var xRatio = mwidth / pwidth;
	var yRatio = mheight / pheight;
	var xAdd = xRatio * xDiff / 2;
	var yAdd = yRatio * yDiff / 2;
	minx =  minx - xAdd;
	maxx = maxx + xAdd;
	miny = miny - yAdd;
	maxy = maxy + yAdd;
	m=lngMapMassstab*1.5;
	if (m==NaN) m=maxmaszstab;
	setextentbym(m);
*/
}
function pan(ix, iy){
	var dx = (maxx - minx)/mwidth;
	var mx = dx*ix;
	var my = dx*iy;
	minx += mx;
	maxx += mx;
	miny += my;
	maxy += my;
	getAllMaps(true);
}

function panDirection(dir){
	shift(dir);
	//var env = '<ENVELOPE minx="' + minx + '" miny="' + miny +'" maxx="' + maxx +'" maxy="' + maxy + '" />';
	getAllMaps(true);
}

function shift(dir){
	var dx = maxx - minx;
	var dy = maxy - miny;
		
	switch(dir) {
		//NORTH
		case "north":
			miny += 0.3*dy;
			maxy += 0.3*dy;
		break;
		//south
		case "south":
			miny -= 0.3*dy;
			maxy -= 0.3*dy;
		break;
		//east
		case "east":
			minx += 0.3*dx;
			maxx += 0.3*dx;
		break;
		//west
		case "west":
			minx -= 0.3*dx;
			maxx -= 0.3*dx;
		break;
		//northeast
		case "ne":
			miny += 0.3*dy;
			maxy += 0.3*dy;
			minx += 0.3*dx;
			maxx += 0.3*dx;
		break;
		//northwest
		case "nw":
			miny += 0.3*dy;
			maxy += 0.3*dy;
			minx -= 0.3*dx;
			maxx -= 0.3*dx;
		break;
		//southeast
		case "se":
			miny -= 0.3*dy;
			maxy -= 0.3*dy;
			minx += 0.3*dx;
			maxx += 0.3*dx;
		break;
		//southwest
		case "sw":
			miny -= 0.3*dy;
			maxy -= 0.3*dy;
			minx -= 0.3*dx;
			maxx -= 0.3*dx;
		break
		
	}
}


function returnMapXY(xIn,yIn) {
	var newValues = new Array();

	var pixelX = (maxx-minx) / mwidth;
	var newX = (pixelX * xIn) + minx;
	var pixelY = (maxy-miny) / mheight;
	var newY = (pixelY * yIn) + miny;
	newValues[0] = newX;
	newValues[1] = newY;
	return newValues; 
}

function getMapWithCurrentExtent(){
	getAllMaps(true);
}
function checkratio(){
	if (minx==Number.NaN || maxx==Number.NaN || miny==Number.NaN || maxy==Number.NaN){
		writeProtokoll("checkratio extent.NaN !!!");
		minx=startLeft;
		maxx=startRight;
		miny=startBottom;
		maxy=startTop;
	}
	writeProtokoll("checkratio "+minx+":"+miny+":"+maxx+":"+maxy);
	var x=maxx-minx;
	var y=maxy-miny;
	var mx=getscale(mwidth,x);
	var my=getscale(mheight,y);
	var m=mx;
	if (my>mx){
		m=my;
	}
	var r=mheight/mwidth;
	r=String(r);
	r=r.substring(0, 6);
	var s=y/x;
	s=String(s);
	s=s.substring(0, 6);
	if (r!=s){
		writeProtokoll("checkratio Verhältnis Kartenbreite/Höhe korrigiert mheight/mwidth <> y/x "+mheight+"/"+mwidth +" "+y+"/"+x +" r<>s " +r+" <> "+s);
		setextentbym(m);
	}
}
function checkExtent(){
	
	var korrektur=false;
	checkratio();
	if (minx==Number.NaN || maxx==Number.NaN || miny==Number.NaN || maxy==Number.NaN){
		minx=startLeft;
		maxx=startRight;
		miny=startBottom;
		maxy=startTop;
		korrektur=true;
	}
	var ausdehnungx=maxx - minx;
	var limitausdehnungx=limitRight-limitLeft;
	var ausdehnungy=maxy - miny;
	var limitausdehnungy=limitTop-limitBottom;
	var mpropixel = ausdehnungx/mwidth;
	if (minx < limitLeft){
		korrektur=true;
		minx=limitLeft;
		if (ausdehnungx > limitausdehnungx){
			ausdehnungx=limitausdehnungx;
		}
		maxx=minx+ausdehnungx;
	}else{
		if (maxx > limitRight){
			korrektur=true;
			maxx=limitRight;
			if (ausdehnungx > limitausdehnungx){
				ausdehnungx=limitausdehnungx;
			}
			minx=maxx-ausdehnungx;
		}
	}

	if (miny < limitBottom){
		korrektur=true;
		miny=limitBottom;
		if (ausdehnungy > limitausdehnungy){
			ausdehnungy=limitausdehnungy;
		}
		maxy=miny+ausdehnungy;
	}else{
		if (maxy > limitTop){
			korrektur=true;
			maxy=limitTop;
			if (ausdehnungy > limitausdehnungy){
				ausdehnungy=limitausdehnungy;
			}
			miny=maxy-ausdehnungy;
		}
	}
	if (korrektur){
		writeProtokoll("checkextent Kartenausdehnung angepasst")
	}
}
function getAllMaps(blnRefreshAllMs,intMsToRefresh){
	writeProtokoll("getAllMaps " +blnRefreshAllMs+", "+intMsToRefresh);
	showLayer('loading');
	checkExtent();
	setScale();
	var intOldActiveMapservice=intActiveMapservice;
	var strExtent=minx+":"+miny+":"+maxx+":"+maxy;
	var arrLayerVisisbleBefore=new Array();
	//var blnRefreshAllMs=true;
	if (activeTool != "print"){
		if (arrLastExtent.length>0){
			if (arrLastExtent[arrLastExtent.length-1]==strExtent && (activeTool!="back" && activeTool!="next")){
				arrLayerVisisbleBefore=arrLastLayerVisible[arrLastLayerVisible.length-1].split("|");
		//		blnRefreshAllMs=false;
			}
		}
		saveLastExtent();
		refreshTOC();
	}
	intImageRequestCnt=0;
	intImageResponseCnt=0;
	intPrintImageRequestCnt=0;
	
	arrMService.length=0;
	arrWMService.length=0;
				
	var m="";
	var blnMsVisible=false;
	if (!intMsToRefresh){
		if (blnRefreshAllMs){
			if (activeTool != "print"){
				for (var i=0;i<MsListMs.length;i++) {
					if (MsListMs[i]){
						var theImg='theImage'+String(i);
						document.getElementById(theImg).src = "images/pixel.gif";
					}			
				}
				//setTimeout("resetAfterPan();", 10);
			}
			intActiveMapservice=-1;
			for (var i=0;i<LayerID.length;i++) {
				if (MsListMs[LayerMS[i]]){
					if ((getLayerVisibility(i))||(LayerSelAttr[i] && LayerSelAttr[i]!="")||(LayerSelEnv[i] && LayerSelEnv[i]!="")){
						blnMsVisible=true;
					}
					if (intActiveMapservice!=LayerMS[i] || i==LayerID.length-1){
						if (blnMsVisible){
							blnMsVisible=false;
							var enthalten=false;
							if (LayerWmsMap[i]==""){
								for (var j = 0; j < arrMService.length; j++){
									if (LayerMS[i]==arrMService[j]){
										enthalten=true;
									}
								}
								if (!enthalten){
									arrMService[arrMService.length]=LayerMS[i];
								}
							}else{
								for (var j = 0; j < arrWMService.length; j++){
									if (LayerMS[i]==arrWMService[j]){
										enthalten=true;
									}
								}
								if (!enthalten){
									arrWMService[arrWMService.length]=LayerMS[i];
								}
							}
						}
					}
				}
			}
		}else{
			for (var i=0;i<LayerID.length;i++) {
				if (MsListMs[LayerMS[i]]){
					intActiveMapservice=LayerMS[i];
					if (arrLayerVisisbleBefore=="" || LayerVisible[i]!=arrLayerVisisbleBefore[i]){
						var enthalten=false;
						if (LayerWmsMap[i]==""){
							for (var j = 0; j < arrMService.length; j++){
								if (LayerMS[i]==arrMService[j]){
									enthalten=true;
								}
							}
							if (!enthalten){
								arrMService[arrMService.length]=LayerMS[i];
								var theImg='theImage'+LayerMS[i];
								document.getElementById(theImg).src = "images/pixel.gif";
							}
						}else{
						    for (var j = 0; j < arrWMService.length; j++){
								if (LayerMS[i]==arrWMService[j]){
									enthalten=true;
								}
							}
							if (!enthalten){
								arrWMService[arrWMService.length]=LayerMS[i];
								var theImg='theImage'+LayerMS[i];
								document.getElementById(theImg).src = "images/pixel.gif";
							}
						}
					}
				}
			}
		}
	}else{
	
		arrMService[arrMService.length]=intMsToRefresh;
	}
	var theImg="";
	var theMap="";
	var theURL="";
	if (activeTool!="print"){
		for (i=0;i<arrWMService.length;i++) {
			intActiveMapservice=arrWMService[i];
			theImg="theImage"+String(intActiveMapservice);
			theMap="mapArea"+String(intActiveMapservice);
			theURL=getWMSMapUrl();
			document.getElementById(theMap).style.height="100%";
			document.getElementById(theMap).style.width="100%";
			document.getElementById(theImg).style.height="100%";
			document.getElementById(theImg).style.width="100%";
			document.getElementById(theImg).src=theURL;
		}
		intImageRequestCnt=arrMService.length;
		for (i=0;i<arrMService.length;i++) {
			intActiveMapservice=arrMService[i];
			//var theImg='theImage'+String(intActiveMapservice);
			//document.getElementById(theImg).src = "images/pixel.gif";
			getMap();
		}
		drawgraphics();
	}else{
		if ((clickPointGKX.length>0 || clickmaptextx.length>0 || clickmappolyx.length>0 || clickmaplinex.length>0) & MsListMsDummy>-1 && arrMService.length>0){
			arrMService[arrMService.length]=MsListMsDummy;
		}
		if (print_html){
			if (winprt && !winprt.closed){
				for (i=0;i<arrWMService.length;i++) {
					intActiveMapservice=arrWMService[i];
					var theURL=getWMSMapUrl();
					var theImg='theImage'+String(intActiveMapservice);
					var theMap='mapArea'+String(intActiveMapservice);
					winprt.document.getElementById(theImg).src = theURL;
				}
				intImageRequestCnt=arrMService.length;
				for (i=0;i<arrMService.length;i++) {
					intActiveMapservice=arrMService[i];
					getMapPrt();
				}
			}
		}else{
			document.createpdf.karten.value="";
			document.createpdf.text.value=strPrtUserText;
			document.createpdf.titel.value=strPrtUserTitel;
			intPrintImageRequestCnt=0;
			intPrintImageResponseCnt=0;
			var intPrtAusschnitt=0;
			for (g=0;g<cnty;g++) {
				maxyprt=minyprt+mapheight;
				for (h=0;h<cntx;h++) {
					intPrtAusschnitt++;
					var dateJetzt = new Date();
					txtPrtTime=String(dateJetzt.getTime())+String(dateJetzt.getMilliseconds());
					maxxprt=minxprt+mapwidth;
					for (i=0;i<arrWMService.length;i++) {
						var dateJetzt = new Date();
						txtPrtTime=String(dateJetzt.getTime())+String(dateJetzt.getMilliseconds());
						intActiveMapservice=arrWMService[i];
						theURL=getWMSMapUrl();
						if (document.createpdf.karten.value!=""){
							document.createpdf.karten.value+="|";
						}
						document.createpdf.karten.value+=String(h)+"_"+String(g)+"_"+String(intActiveMapservice);
						document.createpdf.karten.value+="^"+String(MsListOpacity[intActiveMapservice]);
						document.createpdf.karten.value+="^"+String(MsListFormat[intActiveMapservice]);
						document.createpdf.karten.value+="^"+theURL;

					}
					for (i=0;i<arrMService.length;i++) {
						intPrintImageRequestCnt++;
						intActiveMapservice=arrMService[i];
						dateJetzt = new Date();
						txtPrtTime=String(dateJetzt.getTime())+String(dateJetzt.getMilliseconds());
						txtPrtAusschnitt=String(intPrtAusschnitt);
						if (document.createpdf.karten.value!=""){
							document.createpdf.karten.value+="|";
						}
						document.createpdf.karten.value+=String(h)+"_"+String(g)+"_"+String(intActiveMapservice);
						document.createpdf.karten.value+="^"+String(MsListOpacity[intActiveMapservice]);
						document.createpdf.karten.value+="^"+String(MsListFormat[intActiveMapservice]);
						document.createpdf.karten.value+="^"+strLaufw+":/\wwwroot/\arcims/\output/\prt_" + String(intActiveMapservice)+"_"+txtPrtAusschnitt+"_"+ txtPrtTime + "." + MsListFormat[intActiveMapservice];
						getMapPrt();
					}
					minxprt=maxxprt;
				}
				minxprt=tminxprt;
				minyprt=maxyprt;
			}
		}
	}
	warten();
	//setTimeout("warten();", 500);
	intActiveMapservice=intOldActiveMapservice;
}
function getWMSMapUrl(){
	var theURL="";
	var c=0;
	for (var i=LayerID.length-1;i>-1;i--) {
		if (LayerMS[i]==intActiveMapservice && getLayerVisibility(i)){
			var url=LayerWmsMap[i];
			if (activeTool == "print" && LayerWmsMapPrt[i]){
				var url=LayerWmsMapPrt[i];
			}
			var startpos=url.toUpperCase().indexOf("LAYERS=");
			if (startpos<0){
				if (theURL==""){
					theURL=url+"&LAYERS=";
				}
				if (LayerID[i]!="" && c>0){
					theURL+=",";
				}
				theURL+=LayerID[i];		
				c++;
			}else{
				if (theURL==""){
					theURL=url;
				}else{
					url.toUpperCase().indexOf("LAYERS=")
					if (c > 0){
						theURL+=",";
					}
					var endpos = url.indexOf("&",startpos);
					if (endpos==-1) endpos = url.length;
					theURL+=url.substring(startpos+7,endpos);		
				}
				c++;
			}
		}
	}
	if (theURL!=""){
		if (theURL.toUpperCase().indexOf("REQUEST=GETMAP")<0){
			theURL+="&REQUEST=GetMap";
		}
		if (activeTool != "print"){
			theURL+="&WIDTH="+mwidth+"&HEIGHT="+mheight;
			theURL+="&BBOX="+minx + "," + miny +"," + maxx +"," + maxy;
		}else{
			theURL+="&WIDTH="+print_width+"&HEIGHT="+print_height;
			theURL+="&BBOX="+minxprt + "," + minyprt +"," + maxxprt +"," + maxyprt;
		}
	}else{
		theURL="images/pixel.gif";
	}
	writeProtokoll("getWMSMap\n"+theURL);
	return theURL;
}
function getWMSInfoUrl(idx){
	var theURL="";
	var c=0;
	if (getLayerVisibility(idx)){
		if (!LayerWmsMapInfo[idx]){
			theURL=LayerWmsMap[idx]+"&QUERY_LAYERS=";
			theURL+=LayerID[idx];
			
			if (theURL.toUpperCase().indexOf("REQUEST=GETFEATUREINFO")<0){
				theURL+="&REQUEST=GetFeatureInfo&INFO_FORMAT=text/html";
			}
		}else{
			theURL=LayerWmsMapInfo[idx];
		}
		theURL+="&WIDTH="+mwidth+"&HEIGHT="+mheight;
		theURL+="&BBOX="+minx + "," + miny +"," + maxx +"," + maxy;
		theURL+="&X="+mouseX;
		theURL+="&Y="+mouseY;
	}
	writeProtokoll("getWMSInfo\n"+theURL);
	return theURL;
}

function getMap(service) {
	if (!service){
		var service=intActiveMapservice;
	}
	writeProtokoll("getmap "+MsListUrl[service]);
	var axl="";
	if (service!=MsListMsDummy){
		axl=getMapRequest();
	}else{
		axl=getMapRequestAcetate();
	}
				
	if (axl!=""){
		var deferred = dojo.rawXhrPost({
			url:    MsListUrl[service],
			handleAs: "text",
			timeout: 30000, //Time in milliseconds
			postData:axl,
			handle: function(response, ioArgs){
				intPrintImageRequestCnt++;
				if(response instanceof Error){
					if(response.dojoType == "cancel"){
						writeProtokoll("getMap.Canceled "+this.url)
					}else if(response.dojoType == "timeout"){
						writeProtokoll("getMap.TimeOut "+this.url)
					}else{
						writeProtokoll("getMap.Error "+this.url+"\n"+response);
					}
              }else{
					var p1=this.url.indexOf("ServiceName=") + 12;
					var p2=this.url.indexOf("&",p1);
					if (p2==-1){
						p2=this.url.length;
					}
					printResponse(response,this.url.substring(p1,p2));
		       }
			}
		});
	}else{
		intPrintImageRequestCnt++;
	}
	

}

function getMapPrt() {
	var axl="";
	if (intActiveMapservice!=MsListMsDummy){
		axl=getMapRequest();
	}else{
		axl=getMapRequestAcetate();
	}
	if (axl!=""){
		var deferred = dojo.rawXhrPost({
			url:    MsListUrl[intActiveMapservice],
			handleAs: "text",
			timeout: 30000, //Time in milliseconds
			postData:axl,
			handle: function(response, ioArgs){
				if(response instanceof Error){
					if(response.dojoType == "cancel"){
						writeProtokoll("getMapPrt.Canceled "+this.url)
					}else if(response.dojoType == "timeout"){
						writeProtokoll("getMapPrt.TimeOut "+this.url)
					}else{
						writeProtokoll("getMapPrt.Error "+this.url+"\n"+response);
					}
					Alert("getMapPrt.Error "+response);
			  }else{
					var p1=this.url.indexOf("ServiceName=") + 12;
					var p2=this.url.indexOf("&",p1);
					if (p2==-1){
						p2=this.url.length;
					}
					printResponsePrt(response,this.url.substring(p1,p2));
				}
			}
		});
	}else{
		intPrintImageRequestCnt++;
		writeProtokoll("getMapPrt axl ist leer");
					
	}
	//}

}

function setprintenvelope(){
	if (minxprt==0){
		var midx = (minx + maxx)/2;
		var midy = (miny + maxy)/2;
		var xdistance = Math.abs(Number(maxx)-Number(minx));
		var ydistance = Math.abs(Number(maxy)-Number(miny));
		var mapScaleFactorX = xdistance / mwidth;
		var mapScaleFactorY = ydistance / mheight;
		minxprt=midx-((print_width*mapScaleFactorX)/2);
		minyprt=midy-((print_height*mapScaleFactorY)/2);
		maxxprt=midx+((print_width*mapScaleFactorX)/2);
		maxyprt=midy+((print_height*mapScaleFactorY)/2);
	}

}
function getMapRequest(){
	var axl="";
	var laydef="";
	var laytmp="";
	var x="";
	
	var blnLayerVisible=false;
	for (var i=0;i<LayerID.length;i++) {
		if (LayerMS[i]==intActiveMapservice){
			if (getLayerVisibility(i)){
				laydef+= '<LAYERDEF id="' + LayerID[i] + '" visible="true">\n';
				if(LayerRenderString[i] && (getLayerVisibility(rgs_layerid_dop) || getLayerVisibility(rgs_layerid_dop2007) || getLayerVisibility(rgs_layerid_dophh)|| getLayerVisibility(rgs_layerid_wmslgndop))){
					laydef+=LayerRenderString[i];
				}
				laydef+= '</LAYERDEF>';
				if (LayerSelAttr[i] && LayerSelAttr[i]!=""){
					laydef+= '<LAYERDEF id="selattr' + LayerIDTab[ActiveLayerIndex] + '" visible="true">\n';
					laydef+= '</LAYERDEF>';
					if (bufferinm!=0){
						laydef+= '<LAYERDEF id="SelByEnvBuf" visible="true">\n';
						laydef+= '</LAYERDEF>';
					}
					laytmp+=addSelectByAttribut(LayerSelAttr[i]);
				}
				if (LayerSelEnv[i] && LayerSelEnv[i]!=""){
					laydef+= '<LAYERDEF id="selbyenv' + LayerIDTab[ActiveLayerIndex] + '" visible="true">\n';
					laydef+= '</LAYERDEF>';
					if (bufferinm!=0){
						laydef+= '<LAYERDEF id="SelByEnvBuf" visible="true">\n';
						laydef+= '</LAYERDEF>';
					}
					laytmp+=addSelectByEnv(LayerSelEnv[i]);
				}
				blnLayerVisible=true;
			}else if (LayerSelAttr[i] && LayerSelAttr[i]!=""){
				blnLayerVisible=true;
				/*
				laydef+= '<LAYERDEF id="' + LayerID[i] + '" visible="false" />\n';
				blnLayerVisible=true;
				*/
				laytmp+=addSelectByAttribut(LayerSelAttr[i]);
			}else if(LayerSelEnv[i] && LayerSelEnv[i]!=""){
				blnLayerVisible=true;
				/*
				laydef+= '<LAYERDEF id="' + LayerID[i] + '" visible="false" />\n';
				blnLayerVisible=true;
				*/
				laytmp+=addSelectByEnv(LayerSelEnv[i]);
			}else{
				//laydef+= '<LAYERDEF id="' + LayerID[i] + '" visible="false" />\n';
			}
		}
	}
	if (MsListMsDummy<0){ 
		if (clickdivtextx.length>0 || clickPointGKX.length > 0){
			blnLayerVisible=true;
			laytmp+= getAcetatePoint();
		}
		if (clickdivlinex.length>0){
			blnLayerVisible=true;
			laytmp+= getAcetateLine();
		}
		if (clickdivpolyx.length>0){
			blnLayerVisible=true;
			laytmp+= getAcetatePolygon();
		}
		if (clickdivtextx.length>0){
			blnLayerVisible=true;
			laytmp+= getAcetateText();
		}
	}	
	
	if (blnLayerVisible){
		var env = "";
		axl += '<?xml version="1.0" encoding="UTF-8"?>\n';
		axl += '<ARCXML version="1.1">\n';
		axl += ' <REQUEST>\n<GET_IMAGE autoresize="true" returnscale="true">\n';
		axl += ' <PROPERTIES>\n';
		if (activeTool != "print"){
			env=replacePointByComma('<ENVELOPE minx="' + minx + '" miny="' + miny +'" maxx="' + maxx +'" maxy="' + maxy + '" />');
			axl += env+'\n';
			axl += '<IMAGESIZE height="' + Math.round(mheight*MsListQuality[intActiveMapservice]) + '" width="' + Math.round(mwidth*MsListQuality[intActiveMapservice]) + '" />\n';
		}else{
			if (print_html){
				//setprintenvelope();
				env=replacePointByComma('<ENVELOPE minx="' + minxprt + '" miny="' + minyprt +'" maxx="' + maxxprt +'" maxy="' + maxyprt + '" />');
				axl += env+'\n';
				axl += '<IMAGESIZE height="'+print_height+'" width="'+print_width+'"/>\n';
			}else{
				env=replacePointByComma('<ENVELOPE minx="' + minxprt + '" miny="' + minyprt +'" maxx="' + maxxprt +'" maxy="' + maxyprt + '" />');
				axl += env+'\n';
				//axl += '<IMAGESIZE height="'+print_height+'" width="'+print_width+'" />\n';
				axl += '<IMAGESIZE height="'+Math.round(print_height*MsListPrtQuality[intActiveMapservice])+'" width="'+Math.round(print_width*MsListPrtQuality[intActiveMapservice])+'" />\n';
				axl += '<OUTPUT name="'+strLaufw+':/\wwwroot/\arcims/\output/\prt_' + String(intActiveMapservice)+"_"+txtPrtAusschnitt+"_"+ txtPrtTime + "." + MsListFormat[intActiveMapservice] + '" url="http://'+document.location.host+'/output/arcmap/prt_' + String(intActiveMapservice)+"_"+ txtPrtTime + "." + MsListFormat[intActiveMapservice]+'" />';
			}
		}
		//axl += '<FEATURECOORDSYS id="'+featurecoordsys+'" />';
		//axl += '<FILTERCOORDSYS id="'+filtercoordsys+'" />';
		//axl += '<LAYERLIST order="true">\n'; //order=true führt dazu, daß zu selektierende Objekte nicht markiert werden
		axl += '<LAYERLIST ORDER="TRUE">\n';
		axl += laydef;
		axl += '</LAYERLIST>\n';
		axl += '<BACKGROUND color="255,255,255" transcolor="255,255,255" />\n';
		axl += '</PROPERTIES>\n';
		axl += laytmp;
		axl += '</GET_IMAGE></REQUEST></ARCXML>';
		
	}
	writeProtokoll("getMapRequest\n"+MsListUrl[intActiveMapservice]+"\n"+MsListMs[intActiveMapservice]+"\nSTARTAXL\n"+axl+"\nENDE_AXL");
	return axl;
}

function getMapRequestAcetate(){

	var axl="";
	var acetat="";
	if (clickPointGKX.length>0){
		acetat += getAcetatePoint();
	}
	
	if (activeTool == "print"){
		if (clickmaplinex.length>0){
			acetat += getAcetateLine();
		}
		if (clickmappolyx.length>0){
			acetat += getAcetatePolygon();
		}
		if (clickmaptextx.length>0){
			acetat += getAcetateText();
		}
	}	
	
	if (MsListMsDummy>-1 && acetat!=""){
		var env = "";
		axl += '<?xml version="1.0" encoding="UTF-8"?>\n';
		axl += '<ARCXML version="1.1">\n';
		axl += ' <REQUEST>\n<GET_IMAGE>\n';
		axl += ' <PROPERTIES>\n';
		if (activeTool != "print"){
			env=replacePointByComma('<ENVELOPE minx="' + minx + '" miny="' + miny +'" maxx="' + maxx +'" maxy="' + maxy + '" />');
			axl += env+'\n';
			axl += '<IMAGESIZE height="' + Math.round(mheight*MsListQuality[intActiveMapservice]) + '" width="' + Math.round(mwidth*MsListQuality[intActiveMapservice]) + '" />\n';
		}else{
			//setprintenvelope();
			env=replacePointByComma('<ENVELOPE minx="' + minxprt + '" miny="' + minyprt +'" maxx="' + maxxprt +'" maxy="' + maxyprt + '" />');
			axl += env+'\n';
			//axl += '<IMAGESIZE height="'+print_height+'" width="'+print_width+'" />\n';
			axl += '<IMAGESIZE height="'+Math.round(print_height*MsListPrtQuality[intActiveMapservice])+'" width="'+Math.round(print_width*MsListPrtQuality[intActiveMapservice])+'" />\n';
			if (!print_html){
				axl += '<OUTPUT name="'+strLaufw+':/\wwwroot/\arcims/\output/\prt_' + String(intActiveMapservice)+"_"+txtPrtAusschnitt+"_"+ txtPrtTime + "." + MsListFormat[intActiveMapservice] + '" url="http://'+document.location.host+'/output/arcmap/prt_' + String(intActiveMapservice)+"_"+ txtPrtTime + "." + MsListFormat[intActiveMapservice]+'" />';
			}
		}
		axl += '<LAYERLIST>\n';
		axl += '<LAYERDEF id="0" visible="false" />\n';
		axl += '</LAYERLIST>\n';
		axl += '<BACKGROUND color="255,255,255" transcolor="255,255,255" />\n';
		axl += '</PROPERTIES>\n';
		axl += acetat;
			/* anpassen: maßstababhängig meter, kilometer ...
			axl += '<LAYER type="acetate" name="scalebar" visible="true" id="acetate">';
			axl += '<OBJECT units="pixel">';
			axl += '<SCALEBAR fontcolor="0,0,0" coords="250 20" barcolor="0,0,0" fontsize="24" distance="50" barwidth="10" mapunits="meters" scaleunits="meters" antialiasing="true" />';
			axl += '</OBJECT></LAYER>';
			*/
		axl += '</GET_IMAGE></REQUEST></ARCXML>';
		writeProtokoll("getMapRequestAcetate\n"+axl+"\nENDE_AXL");
	}
	return axl;
}

function hideloading(){
	showLayer('polygon');
	showLayer('polylinelabel');
	showLayer('polygonlabel');
	showLayer('divText');
	if (activeTool == "print"){
		setActiveTool(beforeactiveTool);
		highlightTool(beforeactiveTool);
	}
	lngMapMassstab_alt=lngMapMassstab;
	isWorking = false;
	hideLayer('loading');
}


function printResponse(result,name){
	intImageResponseCnt++;
	if (window.ActiveXObject){
		// code for IE
		var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async="false";
		xmlDoc.loadXML(result);
	}else{
		// code for Mozilla, Firefox, Opera, etc.
		var parser=new DOMParser();
		var xmlDoc=parser.parseFromString(result,"text/xml");
	}
	
	if (result.search(/<error/i)>-1 && name.toUpperCase()!="DUMMY"){
		alert("Fehler bei der Datenübermittlung,\nKarte ist unvollständig !\n"+name);
	}else{
		//  alert(xmlDoc.getElementsByTagName("OUTPUT").item(0).getAttribute("url"));
		if (xmlDoc.getElementsByTagName("OUTPUT")){
			var theURL = xmlDoc.getElementsByTagName("OUTPUT").item(0).getAttribute("url");
			var endpos=theURL.lastIndexOf("_");
			var startpos=theURL.lastIndexOf("/");
			var msname=theURL.substring(startpos+1,endpos);
			var stl="";
			for (var i=0;i<MsListMs.length;i++) {
				if (MsListMs[i]){
					var theImg='theImage'+String(i);
					if (msname==MsListMs[i]){ // &&	document.getElementById(theImg).src.indexOf("images/pixel.gif")>-1){
						var theMap='mapArea'+String(i);
						document.getElementById(theMap).style.height="100%";
						document.getElementById(theMap).style.width="100%";
						document.getElementById(theImg).style.height="100%";
						document.getElementById(theImg).style.width="100%";
						document.getElementById(theImg).src = theURL;
						if (intImageResponseCnt==1){
							resetAfterPan();
							setScale();
						}
						i=MsListMs.length;
					}
				}
			}
		}
	}
	writeProtokoll("printResponse\n"+name+"\n"+result);
}
function checkAllImageLoaded() {
	if (activeTool!="print"){
		var intImages = (arrMService.length+arrWMService.length);
		var intLoaded = 0;
		var theImg="";
		if (intImageRequestCnt==intImageResponseCnt){
			for (var i=0; i<arrMService.length;i++){
				if (arrMService[i]>-1){
					theImg="theImage"+String(arrMService[i]);
					if (document.getElementById(theImg)){
						if (document.getElementById(theImg).src != "images/pixel.gif" && document.getElementById(theImg).complete){
							intLoaded++;
						}
					}
				}
			}
			for (var i=0; i<arrWMService.length;i++){
				if (arrMService[i]>-1){
					theImg="theImage"+String(arrMService[i]);
					if (document.getElementById(theImg)){
						if (document.getElementById(theImg).src != "images/pixel.gif" && document.getElementById(theImg).complete){
							intLoaded++;
						}
					}
				}
			}
		}
		if (intImages == intLoaded) {
			return true;
		}else{
			return false;
		}
	}else{
		if (intPrintImageRequestCnt == intPrintImageResponseCnt) {
			return true;
		}else{
			return false;
		}
	}
}
function warten() {
	var blnAllLoaded = checkAllImageLoaded();
	if (activeTool!="print"){
		intMaxWarteSek=10000;
		if (blnAllLoaded || intWarteSek>intMaxWarteSek) {
			intWarteSek=0;
			afterMapRefresh();
			if (blnNoLogin){
				var strUrl="anmeldung.htm";
				var f1=open(strUrl,"Anmeldung","toolbar=no,location=no,status=no,scrollbars,resizable,menubar=no,width=320,height=200");
			}
		} else {
			intWarteSek+=100;
			showLayer('loading');
			setTimeout("warten();", 100);
		}
	}else{
		if (blnAllLoaded || intWarteSek>intMaxWarteSek) {
			afterMapRefresh();
			if (!print_html && document.createpdf.karten.value!=""){
				intMaxWarteSek=120000;
				intWarteSek=0;
//				writeProtokoll("createpdf.submit\n"+document.createpdf.param.value+"\n"+document.createpdf.karten.value);
//				window.document.createpdf.submit();
//				hideloading();
				writeProtokoll("StarteCreatePDF\n"+document.createpdf.karten.value);
				var tme=(arrMService.length+arrWMService.length)*1000;
				setTimeout("window.document.createpdf.submit();",tme);
				setTimeout("hideloading();", tme);
			}else{
				setTimeout("hideloading();", 5000);
			}
		} else {
			intWarteSek+=1000;
			showLayer('loading');
			setTimeout("warten();", 1000);
		}
	}
}
function printResponsePrt(result,name){
	writeProtokoll("printResponsePrt\n"+result);
	intPrintImageResponseCnt++;
	var xmlDoc;
	if (window.ActiveXObject){
		// code for IE
		var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async="false";
		xmlDoc.loadXML(result);
	}else{
		// code for Mozilla, Firefox, Opera, etc.
		var parser=new DOMParser();
		var xmlDoc=parser.parseFromString(result,"text/xml");
	}

	if (result.search(/<error/i)>-1 && name.toUpperCase()!="DUMMY"){
		alert("Fehler bei der Datenübermittlung,\nKarte ist unvollständig !\n"+name);
	}else{
		//  alert(xmlDoc.getElementsByTagName("OUTPUT").item(0).getAttribute("url"));
		if (xmlDoc.getElementsByTagName("OUTPUT")){
			var theURL = xmlDoc.getElementsByTagName("OUTPUT")[0].getAttribute("url");
			
			var endpos=theURL.lastIndexOf("_");
			var startpos=theURL.lastIndexOf("/");
			var msname=theURL.substring(startpos+1,endpos);
//			writeProtokoll("msname "+msname);
			var stl="";
			for (var i=0;i<MsListMs.length;i++) {
				if (MsListMs[i]){
					if (msname==MsListMs[i]){
						var theImg='theImage'+ i;
						if (print_html){
							if (winprt && !winprt.closed){
								winprt.document.getElementById(theImg).src = theURL;
							}
						}else{
						}
					}
				}
			}
		}
	}
}
function getURL(theReply) {
	var theURL = "";
	var startpos = 0;
	var endpos = 0;

	var pos = theReply.indexOf("OUTPUT");
	var pos1 = theReply.indexOf("url", pos);
	pos1 += 5;
	var pos2 = theReply.indexOf("\"", pos1);
	theURL = theReply.substring(pos1,pos2);
	writeProtokoll(theUrl);
	return theURL;

}

function saveLastExtent() {
	if (activeTool!="back" && activeTool!="next"){
		var strExtent=minx+":"+miny+":"+maxx+":"+maxy;
		var strVisibility=LayerVisible.join("|");
		if ((arrLastExtent.length==0)||(strExtent!=arrLastExtent[arrLastExtent.length-1] || strVisibility!=arrLastLayerVisible[arrLastExtent.length-1])){
			if (arrLastExtent.length>arrLastExtentMax){
				arrLastExtent.shift();
				arrLastLayerVisible.shift();
			}
			arrLastExtent[arrLastExtent.length]=strExtent;
			arrLastLayerVisible[arrLastLayerVisible.length]=strVisibility;
			if (arrLastExtent.length > 1){
				document.images.prev.src="images/ims/prev.gif";
			}
			intExtentCnt=arrLastExtent.length-1;
			document.images.next.src="images/ims/nextgray.gif";
		}
	}else{
		setActiveTool(beforeactiveTool)
	}
}
function zoomBack() {
	if (intExtentCnt>0){
		intExtentCnt--;
		document.images.next.src="images/ims/next.gif";
		var arrExtent=arrLastExtent[intExtentCnt].split(":");
		minx = Number(arrExtent[0]);
		miny = Number(arrExtent[1]);
		maxx = Number(arrExtent[2]);
		maxy = Number(arrExtent[3]);
		if (intExtentCnt==0){
			document.images.prev.src="images/ims/prevgray.gif";
		}
		LayerVisible=arrLastLayerVisible[intExtentCnt].split("|");
		getMapWithCurrentExtent();
	}
}
function zoomForward() {
	if (intExtentCnt > -1){
		intExtentCnt++;
		document.images.prev.src="images/ims/prev.gif";
		var arrExtent=arrLastExtent[intExtentCnt].split(":");
		minx = Number(arrExtent[0]);
		miny = Number(arrExtent[1]);
		maxx = Number(arrExtent[2]);
		maxy = Number(arrExtent[3]);
		if (intExtentCnt==arrLastExtent.length-1){
			document.images.next.src="images/ims/nextgray.gif";
		}
		LayerVisible=arrLastLayerVisible[intExtentCnt].split("|");
		getMapWithCurrentExtent();
	}
}

function writeLayerLogfile(){
	if (blnWriteLayerLogfile){
		var strIdList="";
		var strIdList2="";
		var j=0;
		for (var i=0;i<LayerIDTab.length;i++) {
			if (LayerIDTab[i]!="" && getLayerVisibility(i)){
				strIdList2=","+strIdList+",";
				if (strIdList2.indexOf(","+LayerIDTab[i]+",")<0){
					j++;
					if (j>1){
						strIdList+=",";
					}
					strIdList+=String(LayerIDTab[i]);
				}
			}
		}
		document.writeprotokoll.layerliste.value=strIdList;
		document.writeprotokoll.username.value=strLoginName;
		document.writeprotokoll.ausdehnung.value=minx + ':' + miny +':' + maxx +':' + maxy;
		document.writeprotokoll.anlass.value=activeTool;
		document.writeprotokoll.action=urlprotokoll;
		document.writeprotokoll.mstab.value=String(lngMapMassstab);
		if (document.writeprotokoll.mstab.value=="NaN"){
			document.writeprotokoll.mstab.value="-1";
		}
		document.writeprotokoll.submit();
	}
}

function getAcetateLine(){
    var strAxl="";
	strAxl+="\n<LAYER type=\"acetate\" name=\"\" id=\"acetatline\">";
	var strLine="";
	var x=0;
	for (var i = 0; i < clickmaplinex.length;i++){
		if (clickmaplinex[i]!=-1 && clickmapliney[i]!=-1){
			strLine+=clickmaplinex[i]+";"+clickmapliney[i]+" ";
		}else{
			if (strLine!=""){
				strLine+="\"><SIMPLELINESYMBOL color=\""+linecolor+"\" width=\""+linewidth+"\"/></LINE></OBJECT>";
				strAxl+=strLine;
				strLine="";
			}
			strLine+="\n<OBJECT units=\"database\">";
			strLine+="<LINE coords=\"";
		}

	}
	strAxl+="</LAYER>";
	if (showLength){
		strAxl+="\n<LAYER type=\"acetate\" name=\"\" id=\"acetatlinelen\">";
		for (var i = 2; i < clickmaplinex.length;i++){
			if (clickmaplinex[i]!=-1 && clickmapliney[i]!=-1){
				var dblDifferenzX = Number(clickmaplinex[i])-Number(clickmaplinex[i-1]);
				var dblDifferenzY = Number(clickmapliney[i])-Number(clickmapliney[i-1]);
				var intX=Number(clickmaplinex[i-1])+Number(dblDifferenzX/2);
				var intY=Number(clickmapliney[i-1])+Number(dblDifferenzY/2);
				var strDistanz=calcDistance(clickmaplinex[i-1],clickmapliney[i-1],clickmaplinex[i],clickmapliney[i]);
				strAxl+="\n<OBJECT units=\"database\">";
				strAxl+="<TEXT coords=\"";
				strAxl+=intX+" "+intY+"\" label=\""+strDistanz+"\">";
				if (activeTool != "print"){
					strAxl+="<TEXTMARKERSYMBOL font=\"Arial\" blockout=\"254,254,254\" fontcolor=\"0,0,0\" fontsize=\"24\" valignment=\"center\" halignment=\"center\"/></TEXT></OBJECT>";
				}else{
					strAxl+="<TEXTMARKERSYMBOL font=\"Arial\" blockout=\"254,254,254\" fontcolor=\"0,0,0\" fontsize=\"12\" valignment=\"center\" halignment=\"center\"/></TEXT></OBJECT>";
				}
			}
		}
		strAxl+="</LAYER>";
	}
	strAxl=strAxl.replace(/\./g, ',');
	return strAxl;
}	


function getAcetatePoint(){
	strAxl = '<LAYER type="acetate" name="gkrh">\n';
	var intFontSize=48;
	if (lngMapMassstab > 10000){
		intFontSize=36;
	}
	if (lngMapMassstab > 50000){
		intFontSize=24;
	}
	if (lngMapMassstab > 100000){
		intFontSize=12;
	}
	if (lngMapMassstab > 200000){
		intFontSize=6;
	}
	for (var h=0;h<clickPointGKX.length;h++) {
		strAxl += '<OBJECT units="database">\n<POINT coords="' + clickPointGKX[h] + " " + clickPointGKY[h];
		strAxl += '" >\n';
		if (activeTool != "print"){
			strAxl += '<TRUETYPEMARKERSYMBOL transparency="1.0"  font="ESRI Geometric Symbols" character="65" fontcolor="'+selobjectsbordercolor+'" fontsize="'+intFontSize+'" antialiasing="false" overlap="true" />';
		}else{
			if (MsListMsDummy<0){
				strAxl += '<TRUETYPEMARKERSYMBOL transparency="1.0"  font="ESRI Geometric Symbols" character="65" fontcolor="'+selobjectsbordercolor+'" fontsize="'+Number(intFontSize)+'" antialiasing="false" overlap="true" />';
			}else{
				strAxl += '<TRUETYPEMARKERSYMBOL transparency="1.0"  font="ESRI Geometric Symbols" character="65" fontcolor="'+selobjectsbordercolor+'" fontsize="'+Number(intFontSize*3*MsListPrtQuality[MsListMsDummy])+'" antialiasing="false" overlap="true" />';
			}
		}
		strAxl += '</POINT>\n'
		strAxl += '</OBJECT>\n'
	}
	strAxl += '</LAYER>\n';
	return strAxl;
}

function getAcetatePolygon(){
    var strAxl="";
	strAxl+="\n<LAYER type=\"acetate\" name=\"\" id=\"acetatline\">";
	var strLine="";
	var x=0;
	for (var i = 0; i < clickmappolyx.length;i++){
		if (clickmappolyx[i]!=-1 && clickmappolyy[i]!=-1){
			strLine+=clickmappolyx[i]+";"+clickmappolyy[i]+" ";
		}else{
			if (strLine!=""){
				strLine+="\"><SIMPLELINESYMBOL color=\""+pgbordercolor+"\" width=\""+linewidthpoly+"\"/></LINE></OBJECT>";
				strAxl+=strLine;
				strLine="";
			}
			strLine+="\n<OBJECT units=\"database\">";
			strLine+="<LINE coords=\"";
		}

	}
	strAxl+="</LAYER>";
	if (showLength){
		strAxl+="\n<LAYER type=\"acetate\" name=\"\" id=\"acetatlinelen\">";
		var intSummeX=0;
		var intSummeY=0;
		var intCnt=0;
		var dblAreaX=new Array();
		var dblAreaY=new Array();
		for (var i = 2; i < clickmappolyx.length;i++){
			if (clickmappolyx[i]!=-1 && clickmappolyy[i]!=-1){
				if (intCnt==0){
					dblAreaX[dblAreaX.length]=clickmappolyx[i-1];
					dblAreaY[dblAreaY.length]=clickmappolyy[i-1];
				}
				dblAreaX[dblAreaX.length]=clickmappolyx[i];
				dblAreaY[dblAreaY.length]=clickmappolyy[i];
				var dblDifferenzX = Number(clickmappolyx[i])-Number(clickmappolyx[i-1]);
				var dblDifferenzY = Number(clickmappolyy[i])-Number(clickmappolyy[i-1]);
				var intX=Number(clickmappolyx[i-1])+Number(dblDifferenzX/2);
				var intY=Number(clickmappolyy[i-1])+Number(dblDifferenzY/2);
				intSummeX+=clickmappolyx[i];
				intSummeY+=clickmappolyy[i];
				intCnt++;
				var strDistanz=calcDistance(clickmappolyx[i-1],clickmappolyy[i-1],clickmappolyx[i],clickmappolyy[i]);
				strAxl+="\n<OBJECT units=\"database\">";
				strAxl+="<TEXT coords=\"";
				strAxl+=intX+" "+intY+"\" label=\""+strDistanz+"\">";
				if (activeTool != "print"){
					strAxl+="<TEXTMARKERSYMBOL font=\"Arial\" blockout=\"254,254,254\" fontcolor=\"0,0,0\" fontsize=\"24\" valignment=\"center\" halignment=\"center\"/></TEXT></OBJECT>";
				}else{
					strAxl+="<TEXTMARKERSYMBOL font=\"Arial\" blockout=\"254,254,254\" fontcolor=\"0,0,0\" fontsize=\"12\" valignment=\"center\" halignment=\"center\"/></TEXT></OBJECT>";
				}
			}else{
				if (intCnt>0){
					var totalArea=rettotalArea(dblAreaX,dblAreaY);		
			
					strAxl+="\n<OBJECT units=\"database\">";
					strAxl+="<TEXT coords=\"";
					strAxl+=intSummeX/intCnt+" "+intSummeY/intCnt+"\" label=\""+totalArea+" m²\">";
					if (activeTool != "print"){
						strAxl+="<TEXTMARKERSYMBOL font=\"Arial\" blockout=\"254,254,254\" fontcolor=\"0,0,0\" fontsize=\"24\" valignment=\"center\" halignment=\"center\"/></TEXT></OBJECT>";
					}else{
						strAxl+="<TEXTMARKERSYMBOL font=\"Arial\" blockout=\"254,254,254\" fontcolor=\"0,0,0\" fontsize=\"12\" valignment=\"center\" halignment=\"center\"/></TEXT></OBJECT>";
					}
					intSummeX=0;
					intSummeY=0;
					intCnt=0;
					dblAreaX.length=0;
					dblAreaY.length=0;
					writeProtokoll("straxl \n"+strAxl);
				}
			}
		}
		strAxl+="</LAYER>";
	}
	strAxl=strAxl.replace(/\./g, ',');
	return strAxl;
}
function getAcetateText(){
	var strAxl="";
	strAxl+="\n<LAYER type=\"acetate\" name=\"\" id=\"acetattext\">";
	for (var i = 0; i < clickmaptextx.length;i++){
		strAxl+="\n<OBJECT units=\"database\">";
    	strAxl+="\n<TEXT coords=\"";
		strAxl+=clickmaptextx[i]+" "+clickmaptexty[i]+"\" label=\""+clickmaptext[i]+"\">";
		strAxl+="<TEXTMARKERSYMBOL font=\"Arial\" fontcolor=\""+lblFontColor+"\" fontsize=\"24\" valignment=\"bottom\" halignment=\"right\"/></TEXT>";
		strAxl+="\n</OBJECT>";
	}
	strAxl=strAxl.replace(/\./g, ',');
	strAxl+="</LAYER>";
	return strAxl;
}

function grundeinstellung(){
	var theImg="";
	var theMap="";
	for (var i=0; i<MsListMs.length; i++) {
	    theImg='theImage'+String(i);
		theMap='mapArea'+String(i);
		document.getElementById(theMap).style.height="1%";
		document.getElementById(theMap).style.width="1%";
		document.getElementById(theImg).style.height="1%";
		document.getElementById(theImg).style.width="1%";
	}
	LayerVisible=LayerVisibleOriginal.split(",");
	getAllMaps(true);
}

	

