// ROUTING
// (c) 2006 by klickTel AG, Essen.
// All rights reserved. Unauthorized duplication and use prohibited.

//Zuordnung Eingabefeld=>Dropdownliste
var SUFFIXES=[["_adresse",""],["_start","_a"],["_1","_z1"],["_2","_z2"],["_3","_z3"],["_ziel","_b"]];
var PREVAL_STREETNUMBER="Straße";
var PREVAL_HOUSENUMBER="Nr.";
var PREVAL_ZIPCITY="PLZ und/oder Ort";
var PREVAL_COUNTRY="--------------------";
var FOUND_POSITION="Gefundene Position";
var STARTMARKER_NAME="Routenstart";
var ZIELMARKER_NAME="Routenziel";
var ZWISCHENSTATION1_NAME = "Zwischenstation 1";
var ZWISCHENSTATION2_NAME = "Zwischenstation 2";
var ZWISCHENSTATION3_NAME = "Zwischenstation 3";

	function showCard(ppmId)
	{
		// Liest die Werte aus dem Eingabefeld und übergibt diese an die Berechnung
		$(ppmId).ppmObject.processes++; 
		$(ppmId+"_routeFoldoutController").open();
		$(ppmId+'_too_poorWindow').style.display='none';		
		//$(ppmId+'_routeWindow').style.display='block';
		//$(ppmId+'_routeOutputWindow').style.display='block';		
		//$(ppmId+'_routeOutputWindow').innerHTML='<span style="padding:6px 16px;">Bitte warten ...</span>';
		//var outpuTitle=($(ppmId+'_typ').value=='route')?("Routenplanung"):("Lokale Suche");
		//Element.update($(ppmId+"_routeOutputWindowTitle"),outpuTitle);
		$(ppmId+'_help_routing_auto_intro').style.display='none';
		if ($(ppmId+'_typ').value=='route') {
			$(ppmId+'_routeWindow').style.display='block';
			$(ppmId+'_routeOutputWindow').style.display='block';		
			$(ppmId+'_routeOutputWindow').innerHTML='<span style="padding:6px 16px;">Bitte warten ...</span>';
			var outpuTitle="Routenplanung";
			Element.update($(ppmId+"_routeOutputWindowTitle"),outpuTitle);
		} else {		
			$(ppmId+'_routeWindow').style.display='none';
			$(ppmId+'_routeOutputWindow').style.display='none';
		}

		$(ppmId+'_zbutton').style.display = 'block';

		// Rueckweg
		if($(ppmId+'_backwards').value=='1') {

			pars += '&backwards=0'; // Felder werden vorher vertauscht, Array braucht daher nicht mehr gedreht werden
			
			// Vertauschen der Start- und Zielfelder
			var streetnumberA=($F(ppmId+'_streetnumber_b')==PREVAL_STREETNUMBER)?(""):($F(ppmId+'_streetnumber_b'));
			var streetnumberB=($F(ppmId+'_streetnumber_a')==PREVAL_STREETNUMBER)?(""):($F(ppmId+'_streetnumber_a'));
			$(ppmId+'_streetnumber_a').value = streetnumberA;
			$(ppmId+'_streetnumber_b').value = streetnumberB;
			
			var housenumberA=($F(ppmId+'_housenumber_b')==PREVAL_HOUSENUMBER)?(""):($F(ppmId+'_housenumber_b'));
			var housenumberB=($F(ppmId+'_housenumber_a')==PREVAL_HOUSENUMBER)?(""):($F(ppmId+'_housenumber_a'));
			$(ppmId+'_housenumber_a').value = housenumberA;
			$(ppmId+'_housenumber_b').value = housenumberB;
			
			var zipcityA=($F(ppmId+'_zipcity_b')==PREVAL_ZIPCITY)?(""):($F(ppmId+'_zipcity_b'));
			var zipcityB=($F(ppmId+'_zipcity_a')==PREVAL_ZIPCITY)?(""):($F(ppmId+'_zipcity_a'));
			$(ppmId+'_zipcity_a').value = zipcityA;
			$(ppmId+'_zipcity_b').value = zipcityB;
	
			var countryA=($F(ppmId+'_country_b')==PREVAL_COUNTRY)?(""):($F(ppmId+'_country_b'));
			var countryB=($F(ppmId+'_country_a')==PREVAL_COUNTRY)?(""):($F(ppmId+'_country_a'));
			$(ppmId+'_country_a').value = countryA;
			$(ppmId+'_country_b').value = countryB;
			
			
			var longitude_a = $F(ppmId+'_longitude_b');
			var latitude_a  = $F(ppmId+'_latitude_b');
			
			var longitude_b = $F(ppmId+'_longitude_a');
			var latitude_b  = $F(ppmId+'_latitude_a');		
			
			if (longitude_a != null) $(ppmId+'_longitude_b').value = longitude_b;			
			if (latitude_a != null) $(ppmId+'_latitude_b').value   = latitude_b;						
					
			if (longitude_b != null) $(ppmId+'_longitude_a').value = longitude_a;							
			if (latitude_b != null) $(ppmId+'_latitude_a').value   = latitude_a;
								
			
			// Vertauschen der Zwischenstationen
			
			var streetnumberZ1 = '';
			var streetnumberZ2 = '';			
			var streetnumberZ3 = '';
			var housenumberZ1 = '';
			var housenumberZ2 = '';			
			var housenumberZ3 = '';
			var zipcityZ1 = '';
			var zipcityZ2 = '';
			var zipcityZ3 = '';
			var countryZ1 = '';
			var countryZ2 = '';
			var countryZ3 = '';
			var longitudeZ1 = '';
			var longitudeZ2 = '';
			var longitudeZ3 = '';
			var latitudeZ1 = '';		
			var latitudeZ2 = '';
			var latitudeZ3 = '';
			
			var i = 4;
			for(j=1;j<4;j++){
				
				i--;
				var streetnumberZ = $F(ppmId+'_streetnumber_z'+i);				
				var housenumberZ = $F(ppmId+'_housenumber_z'+i);								
				var zipcityZ = $F(ppmId+'_zipcity_z'+i);
				var countryZ = $F(ppmId+'_country_z'+i);				
				
				if (j == 1) {
					streetnumberZ1 = streetnumberZ;
					housenumberZ1 = housenumberZ;					
					zipcityZ1 = zipcityZ;
					countryZ1 = countryZ;
					longitudeZ1 = $F(ppmId+"_longitude_z"+i);
					latitudeZ1 = $F(ppmId+"_latitude_z"+i);
				}
				
				if (j == 2){
					streetnumberZ2 = streetnumberZ;
					housenumberZ2 = housenumberZ;					
					zipcityZ2 = zipcityZ;
					countryZ2 = countryZ;				
					longitudeZ2 = $F(ppmId+"_longitude_z"+i);
					latitudeZ2 = $F(ppmId+"_latitude_z"+i);
				}
				
				if (j == 3) {
					streetnumberZ3 = streetnumberZ;
					housenumberZ3 = housenumberZ;					
					zipcityZ3 = zipcityZ;
					countryZ3 = countryZ;				
					longitudeZ3 = $F(ppmId+"_longitude_z"+i);
					latitudeZ3 = $F(ppmId+"_latitude_z"+i);
				}
			}
			
			$(ppmId+'_streetnumber_z1').value = streetnumberZ1;
			$(ppmId+'_streetnumber_z2').value = streetnumberZ2;
			$(ppmId+'_streetnumber_z3').value = streetnumberZ3;
			$(ppmId+'_housenumber_z1').value = housenumberZ1;
			$(ppmId+'_housenumber_z2').value = housenumberZ2;
			$(ppmId+'_housenumber_z3').value = housenumberZ3;
			$(ppmId+'_zipcity_z1').value = zipcityZ1;
			$(ppmId+'_zipcity_z2').value = zipcityZ2;
			$(ppmId+'_zipcity_z3').value = zipcityZ3;
			$(ppmId+'_country_z1').value = countryZ1;
			$(ppmId+'_country_z2').value = countryZ2;
			$(ppmId+'_country_z3').value = countryZ3;
			$(ppmId+'_longitude_z1').value = longitudeZ1;
			$(ppmId+'_longitude_z2').value = longitudeZ2;
			$(ppmId+'_longitude_z3').value = longitudeZ3;
			$(ppmId+'_latitude_z1').value = latitudeZ1;			
			$(ppmId+'_latitude_z2').value = latitudeZ2;
			$(ppmId+'_latitude_z3').value = latitudeZ3;

						
		} else {

			// Start (und Ziel)	
			var streetnumberA=($F(ppmId+'_streetnumber_a')==PREVAL_STREETNUMBER)?(""):($F(ppmId+'_streetnumber_a'));
			var streetnumberB=($F(ppmId+'_streetnumber_b')==PREVAL_STREETNUMBER)?(""):($F(ppmId+'_streetnumber_b'));
			
			var housenumberA=($F(ppmId+'_housenumber_a')==PREVAL_HOUSENUMBER)?(""):($F(ppmId+'_housenumber_a'));
			var housenumberB=($F(ppmId+'_housenumber_b')==PREVAL_HOUSENUMBER)?(""):($F(ppmId+'_housenumber_b'));			
			
			
			var zipcityA=($F(ppmId+'_zipcity_a')==PREVAL_ZIPCITY)?(""):($F(ppmId+'_zipcity_a'));
			var zipcityB=($F(ppmId+'_zipcity_b')==PREVAL_ZIPCITY)?(""):($F(ppmId+'_zipcity_b'));
	
			var countryA=($F(ppmId+'_country_a')==PREVAL_COUNTRY)?(""):($F(ppmId+'_country_a'));
			var countryB=($F(ppmId+'_country_b')==PREVAL_COUNTRY)?(""):($F(ppmId+'_country_b'));
			
			var longitude_a = $F(ppmId+'_longitude_a');
			var latitude_a  = $F(ppmId+'_latitude_a');
			var longitude_b = $F(ppmId+'_longitude_b');
			var latitude_b  = $F(ppmId+'_latitude_b');
			
		}

		var pars = 'streetnumber_a='+escape(streetnumberA) + '&'
				+  'housenumber_a='+escape(housenumberA) + '&'
				+  'zipcity_a='+escape(zipcityA) + '&'
				+  'country_a='+countryA + '&'
				+  'longitude_a='+longitude_a + '&'	
				+  'latitude_a='+latitude_a;

		if($(ppmId+'_typ').value=='route') {

			pars +=  '&streetnumber_b='+escape(streetnumberB) + '&'
				+  'housenumber_b='+escape(housenumberB) + '&'
				+  'zipcity_b='+escape(zipcityB) + '&'
				+  'country_b='+countryB + '&'				
				+  'longitude_b='+longitude_b + '&'	
				+  'latitude_b='+latitude_b;
			
			// Es sollen nur die Felder der Zwischensationen angezeigt werden, die auch gefuellt sind
			streetnumberZ1_temp = $(ppmId+'_streetnumber_z1').value;
			streetnumberZ2_temp = $(ppmId+'_streetnumber_z2').value;
			streetnumberZ3_temp = $(ppmId+'_streetnumber_z3').value;
			housenumberZ1_temp = $(ppmId+'_housenumber_z1').value;
			housenumberZ2_temp = $(ppmId+'_housenumber_z2').value;
			housenumberZ3_temp = $(ppmId+'_housenumber_z3').value;
			zipcityZ1_temp = $(ppmId+'_zipcity_z1').value;
			zipcityZ2_temp = $(ppmId+'_zipcity_z2').value;
			zipcityZ3_temp = $(ppmId+'_zipcity_z3').value;
			countryZ1_temp = $(ppmId+'_country_z1').value;
			countryZ2_temp = $(ppmId+'_country_z2').value;
			countryZ3_temp = $(ppmId+'_country_z3').value;
			longitudeZ1_temp = $(ppmId+'_longitude_z1').value;
			longitudeZ2_temp = $(ppmId+'_longitude_z2').value;
			longitudeZ3_temp = $(ppmId+'_longitude_z3').value;
			latitudeZ1_temp = $(ppmId+'_latitude_z1').value;
			latitudeZ2_temp = $(ppmId+'_latitude_z2').value;
			latitudeZ3_temp = $(ppmId+'_latitude_z3').value;
			
			count = '';			
			for(j=1;j<4;j++){
				var streetnumberZ=($F(ppmId+'_streetnumber_z'+j)==PREVAL_STREETNUMBER)?(""):($F(ppmId+'_streetnumber_z'+j));
				var housenumberZ=($F(ppmId+'_housenumber_z'+j)==PREVAL_HOUSENUMBER)?(""):($F(ppmId+'_housenumber_z'+j));
				var zipcityZ=($F(ppmId+'_zipcity_z'+j)==PREVAL_ZIPCITY)?(""):($F(ppmId+'_zipcity_z'+j));
				var countryZ=($F(ppmId+'_country_z'+j)==PREVAL_COUNTRY)?(""):($F(ppmId+'_country_z'+j));
				// welche Zwischenstationen sind leer
				if(zipcityZ == "") {
					count+=j;
				}
			}
			


			switch (count) {
				case '1': // z1 ist leer, z2 und z3 sind gefuellt: z2 -> z1, z3 -> z2 
					$(ppmId+'_streetnumber_z1').value = streetnumberZ2_temp;
					$(ppmId+'_housenumber_z1').value = housenumberZ2_temp;					
					$(ppmId+'_zipcity_z1').value = zipcityZ2_temp;
					$(ppmId+'_country_z1').value = countryZ2_temp;
					$(ppmId+'_longitude_z1').value = longitudeZ2_temp;
					$(ppmId+'_latitude_z1').value = latitudeZ2_temp;
	
					$(ppmId+'_streetnumber_z2').value = streetnumberZ3_temp;
					$(ppmId+'_housenumber_z2').value = housenumberZ3_temp;					
					$(ppmId+'_zipcity_z2').value = zipcityZ3_temp;
					$(ppmId+'_country_z2').value = countryZ3_temp;
					$(ppmId+'_longitude_z2').value = longitudeZ3_temp;
					$(ppmId+'_latitude_z2').value = latitudeZ3_temp;				
					
					$(ppmId+'_streetnumber_z3').value = '';
					$(ppmId+'_housenumber_z3').value = '';					
					$(ppmId+'_zipcity_z3').value = '';
					$(ppmId+'_country_z3').value = '';
					$(ppmId+'_longitude_z3').value = '';
					$(ppmId+'_latitude_z3').value = '';
					
					$(ppmId+'_navi_zstation3').style.display = 'none';
					$(ppmId+'_zbutton').style.display = 'block';
					break;
				case '2': // z2 ist leer, z1 und z3 sind gefuellt
					$(ppmId+'_streetnumber_z2').value = streetnumberZ3_temp;
					$(ppmId+'_housenumber_z2').value = housenumberZ3_temp;
					$(ppmId+'_zipcity_z2').value = zipcityZ3_temp;
					$(ppmId+'_country_z2').value = countryZ3_temp;
					$(ppmId+'_longitude_z2').value = longitudeZ3_temp;
					$(ppmId+'_latitude_z2').value = latitudeZ3_temp;				
					
					$(ppmId+'_streetnumber_z3').value = '';
					$(ppmId+'_housenumber_z3').value = '';
					$(ppmId+'_zipcity_z3').value = '';
					$(ppmId+'_country_z3').value = '';
					$(ppmId+'_longitude_z3').value = '';
					$(ppmId+'_latitude_z3').value = '';
					
					$(ppmId+'_navi_zstation3').style.display = 'none';
					$(ppmId+'_zbutton').style.display = 'block';
					break;
				case '3': // z3 ist leer, z1 und z2 sind gefuellt
					$(ppmId+'_navi_zstation3').style.display = 'none';
					$(ppmId+'_zbutton').style.display = 'block';
					break;					
				case '12': // z1 und z2 sind leer, z3 ist gefuellt
					$(ppmId+'_streetnumber_z1').value = streetnumberZ3_temp;
					$(ppmId+'_housenumber_z1').value = housenumberZ3_temp;					
					$(ppmId+'_zipcity_z1').value = zipcityZ3_temp;
					$(ppmId+'_country_z1').value = countryZ3_temp;
					$(ppmId+'_longitude_z1').value = longitudeZ3_temp;
					$(ppmId+'_latitude_z1').value = latitudeZ3_temp;
					
					$(ppmId+'_streetnumber_z2').value = '';
					$(ppmId+'_housenumber_z2').value = '';					
					$(ppmId+'_zipcity_z2').value = '';
					$(ppmId+'_country_z2').value = '';
					$(ppmId+'_longitude_z2').value = '';
					$(ppmId+'_latitude_z2').value = '';
					
					$(ppmId+'_streetnumber_z3').value = '';
					$(ppmId+'_housenumber_z3').value = '';					
					$(ppmId+'_zipcity_z3').value = '';
					$(ppmId+'_country_z3').value = '';
					$(ppmId+'_longitude_z3').value = '';
					$(ppmId+'_latitude_z3').value = '';
					
					$(ppmId+'_navi_zstation2').style.display = 'none';
					$(ppmId+'_navi_zstation3').style.display = 'none';
					$(ppmId+'_zbutton').style.display = 'block';
					break;
				case '13': // z1 und z3 sind leer, z2 ist gefuellt
					$(ppmId+'_streetnumber_z1').value = streetnumberZ2_temp;
					$(ppmId+'_housenumber_z1').value = housenumberZ2_temp;					
					$(ppmId+'_zipcity_z1').value = zipcityZ2_temp;
					$(ppmId+'_country_z1').value = countryZ2_temp;
					$(ppmId+'_longitude_z1').value = longitudeZ2_temp;
					$(ppmId+'_latitude_z1').value = latitudeZ2_temp;
					
					$(ppmId+'_streetnumber_z2').value = '';
					$(ppmId+'_housenumber_z2').value = '';					
					$(ppmId+'_zipcity_z2').value = '';
					$(ppmId+'_country_z2').value = '';
					$(ppmId+'_longitude_z2').value = '';
					$(ppmId+'_latitude_z2').value = '';
					
					$(ppmId+'_streetnumber_z3').value = '';
					$(ppmId+'_housenumber_z3').value = '';					
					$(ppmId+'_zipcity_z3').value = '';
					$(ppmId+'_country_z3').value = '';
					$(ppmId+'_longitude_z3').value = '';
					$(ppmId+'_latitude_z3').value = '';
					
					$(ppmId+'_navi_zstation2').style.display = 'none';
					$(ppmId+'_navi_zstation3').style.display = 'none';
					$(ppmId+'_zbutton').style.display = 'block';
					break;
				case '23': // z2 und z3 sind leer, z1 ist gefuellt
					$(ppmId+'_navi_zstation2').style.display = 'none';
					$(ppmId+'_navi_zstation3').style.display = 'none';
					$(ppmId+'_zbutton').style.display = 'block';
					break;
				case '123': // alle Zwischenstationen leer, nur Button einblenden
					$(ppmId+'_zbutton').style.display = 'block';
					break;
				case '':// alle Zwischenstationen gefuellt, nur Button ausblenden
					$(ppmId+'_zbutton').style.display = 'none';				
					break;
			}
						
			for(j=1;j<4;j++){	
				var streetnumberZ=($F(ppmId+'_streetnumber_z'+j)==PREVAL_STREETNUMBER)?(""):($F(ppmId+'_streetnumber_z'+j));
				var housenumberZ=($F(ppmId+'_housenumber_z'+j)==PREVAL_HOUSENUMBER)?(""):($F(ppmId+'_housenumber_z'+j));				
				var zipcityZ=($F(ppmId+'_zipcity_z'+j)==PREVAL_ZIPCITY)?(""):($F(ppmId+'_zipcity_z'+j));
				var countryZ=($F(ppmId+'_country_z'+j)==PREVAL_COUNTRY)?(""):($F(ppmId+'_country_z'+j));				
				
				var sn=streetnumberZ;
				var sn_notempty=sn!="";
				var zc=zipcityZ;
				var zc_notempty=zc!="";
				
				if(sn_notempty || zc_notempty){ 
					pars += "&streetnumber_z"+j+"="+escape(streetnumberZ) + "&"
					+  "housenumber_z"+j+"="+escape(housenumberZ) + "&"
					+  "zipcity_z"+j+"="+escape(zipcityZ) + "&"
					+  "country_z"+j+"="+countryZ + "&"
					+  "longitude_z"+j+"="+$F(ppmId+"_longitude_z"+j) + "&"	
					+  "latitude_z"+j+"="+$F(ppmId+"_latitude_z"+j);
				}
					
			}			
				
				
			
			// Optionen
			if($F(ppmId+'_time')) pars += '&time='+$F(ppmId+'_time');
			if(document.getElementsByName(ppmId+'_triptarget')[0].checked) pars += '&triptarget='+document.getElementsByName(ppmId+'_triptarget')[0].value;
				else pars += '&triptarget='+document.getElementsByName(ppmId+'_triptarget')[1].value;
			if(document.getElementsByName(ppmId+'_shortfast')[0].checked) pars += '&shortfast='+document.getElementsByName(ppmId+'_shortfast')[0].value;
				else pars += '&shortfast='+document.getElementsByName(ppmId+'_shortfast')[1].value;
			
			// Optimierung
			if($(ppmId+'_no_highway').checked==true) pars += '&no_highway=1';
			if($(ppmId+'_no_tunnel').checked==true) pars += '&no_tunnel=1';
			if($(ppmId+'_no_maut').checked==true) pars += '&no_maut=1';
			if($(ppmId+'_trafficjam').checked==true) pars += '&trafficjam=1';
			if($(ppmId+'_no_ferry').checked==true) pars += '&no_ferry=1';
			if($(ppmId+'_weathercheck').checked==true) pars += '&weathercheck=1';		
	
				
			// Rückfahrt
			/*
			if($(ppmId+'_backwards').value=='1') {
				//pars += '&backwards=1';	
			}
			*/
			
			$(ppmId).ppmObject.urchinLog(202, zipcityB);
			
		} else {
			var streetnumber=($F(ppmId+'_streetnumber')==PREVAL_STREETNUMBER)?(""):($F(ppmId+'_streetnumber'));
			var housenumber=($F(ppmId+'_housenumber')==PREVAL_HOUSENUMBER)?(""):($F(ppmId+'_housenumber'));
			var zipcity=($F(ppmId+'_zipcity')==PREVAL_ZIPCITY)?(""):($F(ppmId+'_zipcity'));
			var country=($F(ppmId+'_country')==PREVAL_COUNTRY)?(""):($F(ppmId+'_country'));
			pars =  'streetnumber='+escape(streetnumber) + '&'
				+  'housenumber='+escape(housenumber) + '&'
				+  'zipcity='+escape(zipcity) + '&'
				+  'country='+country + '&'				
				+  'longitude='+$F(ppmId+'_longitude') + '&'	
				+  'latitude='+$F(ppmId+'_latitude');
		}
		
		pars += '&ppmid='+ppmId+'&typ='+$F(ppmId+'_typ');

		var url=$(ppmId).ppmObject.ajaxPath+"routing"+$(ppmId).ppmObject.ajaxExtension;
		var route=new Ajax.Request(
			url,
			{
				method:'post',
				parameters:pars,
				onComplete:function(req) {routing_complete(req,ppmId)}
			}
		);
	}
	
	
	function routing_complete(req,ppmId){
		$(ppmId).ppmObject.processes--;
		var rh=req.getResponseHeader('X-JSON');
		//alert(rh);
		eval("var route = "+rh);
		/*
		var html=req.responseText;
		Element.update(ppmId+"_routeOutputWindow",html);
		var showOutputWindow=(html!="")?("block"):("none");
		*/
		if(route.typ=="adresse"){
			$(ppmId).ppmObject.dbLog("geocode", 0); 
		} else {
			$(ppmId).ppmObject.dbLog("route", route.routeid, route.errorcode); 
		}

		if (route.errorcode != 0) {
			$(ppmId+"_routeWindow").style.display="none";
		}
		//Das Ausgabefenster wird nur angezeigt wenn der ResponseText nicht leer ist
		//$(ppmId+'_route_ausgabe_container').style.display=showOutputWindow;
    	switch(route.errorcode){
    		case 0:
    			
    			
    			var html=req.responseText;
				Element.update(ppmId+"_routeOutputWindow",html);
				if ($(ppmId+"_LongLink") != null) {
					$(ppmId+"_LongLink").onclick();
				}
				var showOutputWindow=(html!="")?("block"):("none");

	    		$(ppmId+'_route_ausgabe_container').style.display=showOutputWindow;
    			if(route.typ=="adresse"){
					$(ppmId).ppmObject.setZoomLevel(4);
	    			$(ppmId).ppmObject.longitude=route.longitude;
	    			$(ppmId).ppmObject.latitude=route.latitude;
	    			
	    			if($(ppmId).ppmObject.forcedLocation == false) {
						if ($(ppmId).ppmObject.eagleView == 2) {
							$(ppmId).ppmObject.evLeave ();
						}
					} else {
						$(ppmId).ppmObject.forcedLocation=false;
					}
		
					
	    			// Marker setzen
	    			addMarkerPoint(route.longitude, route.latitude, FOUND_POSITION, route.description, ppmId);
	    			$(ppmId).ppmObject.draw();
    			}else{
    			
	    			//GUI abspecken, wie vom PM gewünscht
	    			if ($(ppmId+"_mapmode_container") != null) {
	    				Element.remove ($(ppmId+"_mapmode_container"));
	    			}
	    			
	    			if ($(ppmId+"_navigation_container") != null) {
	    				Element.remove ($(ppmId+"_navigation_container"));
	    			}
	    			
	    			if ($(ppmId+"_poi_container") != null) {
	    				Element.remove ($(ppmId+"_poi_container"));
	    			}
	    			
	    			if ($(ppmId+"_useful_container") != null) {
	    				Element.remove ($(ppmId+"_useful_container"));
	    			}
	    			
	    			
	    			if ($(ppmId+"_ppmddress_header") != null) {
	    				Element.remove ($(ppmId+"_ppmddress_header"));
	    			}
	    			
	    			
	    			if ($(ppmId+"_ppmddress_input") != null) {
	    				Element.remove ($(ppmId+"_ppmddress_input"));
	    			}
	    			
	    			if ($(ppmId+"_bigcity") != null) {
	    				Element.remove ($(ppmId+"_bigcity"));
	    			}
	    			
	    			
	    			if ($(ppmId+"_scratchpad_container") != null) {
	    				$(ppmId+"_scratchpad_container").style.display = "none";
	    			}
	    			
	    			if ($(ppmId+"_cityinfo_box") != null) {
	    				$(ppmId+"_cityinfo_box").style.display = "none";
	    			}
	    			
	    			if ($(ppmId+"_baid_select_box") != null) {
	    				$(ppmId+"_baid_select_box").style.display = "none";
	    			}
	    			
	    			$(ppmId).ppmObject.pageMode = "route";
    								
    					
					if ($(ppmId).ppmObject.eagleView == 2) {
						$(ppmId).ppmObject.evLeave ();
					}
    			
    				
					
	    			$(ppmId).ppmObject.routeId=route.routeid; 
	    			var zl=getZoomLevelByRectangle(route.rect,ppmId);
	    			var centerX=Math.round((route.rect.right+route.rect.left)/2);
	    			var centerY=Math.round((route.rect.bottom+route.rect.top)/2);

	    			$(ppmId).ppmObject.setZoomLevel(zl);
	    			$(ppmId).ppmObject.longitude=centerX;
	    			$(ppmId).ppmObject.latitude=centerY;
	    			
	    			// Home-Button setzen
	    			$(ppmId).ppmObject.longitudeHome=centerX;
	    			$(ppmId).ppmObject.latitudeHome=centerY;
	    			$(ppmId).ppmObject.zoomLevelHome=zl;
	    			
	    			// Markierungen hinzufügen
		    		addMarkerPoint(route.start.longitude, route.start.latitude, STARTMARKER_NAME, route.start.description, ppmId);
		    		addMarkerPoint(route.ziel.longitude, route.ziel.latitude, ZIELMARKER_NAME, route.ziel.description, ppmId);

	    			if (route.zw1 != null) {
		    			addMarkerPoint(route.zw1.longitude, route.zw1.latitude, ZWISCHENSTATION1_NAME, route.zw1.description, ppmId);
	    			}

	    			if (route.zw2 != null) {
		    			addMarkerPoint(route.zw2.longitude, route.zw2.latitude, ZWISCHENSTATION2_NAME, route.zw2.description, ppmId);
	    			}

	    			if (route.zw3 != null) {
		    			addMarkerPoint(route.zw3.longitude, route.zw3.latitude, ZWISCHENSTATION3_NAME, route.zw3.description, ppmId);
	    			}
	    			
	    			$(ppmId+'_help_routing_auto_intro').style.display='';
		    		
	    			$(ppmId).ppmObject.draw();  
	    			
	    			
    			}   			
    		break;
    		case 23:
    			$(ppmId).ppmObject.showInfoLayer('errorRoute23', 'manual');
    		break;
    		case 1:
	    		if(route.count < 101){
	    			hideAllDropDownBoxes(ppmId);
	    			var keys=route.listkeys;
	    			keys.each(function(key){
						var lists=eval("route.addresslists."+key);
						suffix=key.substr(5,key.length-1);
						Element.update(ppmId+"_too_poorDropDown_"+suffix,"");
		    			lists.each(function(item){
							var op=document.createElement("option");
							var ot="";
							if(item.street) ot+=item.street;
							if(item.housenumber) ot+=" "+item.housenumber;
							if(ot!="") ot+=", ";
							ot+=item.zip + " " + item.city + " " + item.district;
							if(item.country) ot+=", "+item.country;
							var opText=document.createTextNode(ot);
							op.appendChild(opText);
							op.value=item.longitude+"|"+item.latitude;
							op.setAttribute("street",item.street);
							op.setAttribute("housenumber",item.housenumber);
							op.setAttribute("zip",item.zip);
							op.setAttribute("city",item.city);
							op.setAttribute("country",item.country);
							op.setAttribute("longitude",item.longitude);
							op.setAttribute("latitude",item.latitude);
							$(ppmId+"_too_poorDropDown_"+suffix).appendChild(op);
						});
						$(ppmId+"_too_poorDropDownDIV_"+suffix).style.display="block";
	    			});
					showDialog(ppmId+"_too_poorWindow",ppmId);  
    			}
    		
    		break;
    		case 44:
    			$(ppmId).ppmObject.showInfoLayer('errorRoute44', 'manual');
    		break;
    		case 2: 			
				if(route.count < 101){
	    			hideAllDropDownBoxes(ppmId);
	    			var list=route.addresslist;
	    			Element.update(ppmId+"_too_poorDropDown_adresse","");
	    			list.each(function(item){
	    				var op=document.createElement("option");
	    				
						var ot="";
						if(item.street) ot+=item.street;
						if(item.housenumber) ot+=" "+item.housenumber;
						if(ot!="") ot+=", ";
						ot+=item.zip + " " + item.city + " " + item.district;
						if(item.country) ot+=", "+item.country;
						var opText=document.createTextNode(ot);
						op.appendChild(opText);
											
						op.value=item.longitude+"|"+item.latitude;
						op.setAttribute("street",item.street);
						op.setAttribute("housenumber",item.housenumber);
						op.setAttribute("zip",item.zip);
						op.setAttribute("city",item.city);
						op.setAttribute("country",item.country);
						op.setAttribute("longitude",item.longitude);
						op.setAttribute("latitude",item.latitude);
						//$(ppmId+"_too_poorDropDown_adresse").add(op,null);

						$(ppmId+"_too_poorDropDown_adresse").appendChild(op);
						
	    			});
	    			$(ppmId+"_too_poorDropDownDIV_adresse").style.display="block";
	    			
	    			showDialog(ppmId+"_too_poorWindow",ppmId);
				}
    		break;
    		default:
    			if(route.count < 101){
	    			hideAllDropDownBoxes(ppmId);
	    			var keys=route.listkeys;
	    			keys.each(function(key){
						var lists=eval("route.addresslists."+key);
		    			lists.each(function(item){
							var op=document.createElement("option");
							var ot="";
							if(item.street) ot+=item.street;
							if(item.housenumber) ot+=" "+item.housenumber;
							if(ot!="") ot+=", ";
							ot+=item.zip + " " + item.city + " " + item.district;
							if(item.country) ot+=", "+item.country;
							var opText=document.createTextNode(ot);
							op.appendChild(opText);
							op.value=item.longitude+"|"+item.latitude;
							op.setAttribute("street",item.street);
							op.setAttribute("housenumber",item.housenumber);
							op.setAttribute("zip",item.zip);
							op.setAttribute("city",item.city);
							op.setAttribute("country",item.country);
							op.setAttribute("longitude",item.longitude);
							op.setAttribute("latitude",item.latitude);
							suffix=key.substr(5,key.length-1);
							$(ppmId+"_too_poorDropDown_"+suffix).appendChild(op);
						});
						$(ppmId+"_too_poorDropDownDIV_"+suffix).style.display="block";
	    			});
					showDialog(ppmId+"_too_poorWindow",ppmId);  
    			}  			
    		break;
    	}
	}
	
	function showDialog(id,ppmId){
		$(id).style.position="absolute";
		var size=Element.getDimensions($(id));
		var left=((($(ppmId).ppmObject.width-size.width))/2)-20;
		$(id).style.left=left+"px";
		var dim_center_col=Element.getDimensions($(ppmId).ppmObject.centerWidgetCol);
		var xTop=dim_center_col.height+5;
		$(id).style.top=xTop+"px";
		$(id).style.display="block";
    	$(ppmId).ppmObject.makeModal ($(id).parentNode.id);
    	
	}
	
	function addMarkerPoint(longitude,latitude,markername,description,ppmId){
		var me=markerExistsByName(markername,ppmId);
		if(!me){
			var mk=$(ppmId).ppmObject.markerController.createNewMarker(0, 0, longitude, latitude, markername, description, true, 'user');
			$(ppmId).ppmObject.scratchPads.userMarkers.addMarker(mk, $(ppmId).ppmObject);
			mk.makePersistent('save', $(ppmId).ppmObject, mk);
			return true;
		}else{
			$(ppmId).ppmObject.hideInfoWindow();
			me.setPosition(longitude,latitude);
			me.description=description; 
			me.makePersistent('update', $(ppmId).ppmObject, me);
			$(ppmId).ppmObject.updatePoiLayer();
		}
		return false;
	}
	
	function markerExists(longitude,latitude,ppmId){
		var foundMarker=0;
		// User Marker durchsuchen
		if($(ppmId).ppmObject.PpmMarkers.userMarkers.length > 0) {
			$(ppmId).ppmObject.PpmMarkers.userMarkers.each(function(marker) {
				if(marker.longitude == longitude && marker.latitude == latitude) {
					foundMarker++;
				}
			});
		}
		// Link Marker durchsuchen
		if($(ppmId).ppmObject.PpmMarkers.linkMarkers.length > 0) {
			$(ppmId).ppmObject.PpmMarkers.linkMarkers.each(function(marker) {
				if(marker.longitude == route.start.longitude && marker.latitude == route.start.latitude) {
					foundMarker++;
				}
			});
		}
		return foundMarker>0;		
	}
	
	function markerExistsByName(markername,ppmId){
		var r=false;
		if($(ppmId).ppmObject.PpmMarkers.userMarkers.length > 0) {
			r = $(ppmId).ppmObject.PpmMarkers.userMarkers.detect(function(marker){
				return marker.displayName == markername;
			});
		}
		if (typeof r == 'undefined') {
			r=false;
		}
		return (r);		
	}
	
	function hideAllDropDownBoxes(ppmId){
		var elements = document.getElementsByClassName(ppmId+"_too_poorDropDown");
		elements.each(function(item){
			item.style.display="none";
		});
	}
	
	function setOutputWindowTitle(title,ppmId){
		$(ppmId+"_routeOutputWindowTitle").innerHTML=title;
	}
		
	function showZStations(ppmId)
	{
		// Öffnet das nächste ZStation-Eingabefeld
		if($(ppmId+'_navi_zstation2').style.display == 'none') $(ppmId+'_navi_zstation2').style.display = '';
		else if($(ppmId+'_navi_zstation3').style.display == 'none') $(ppmId+'_navi_zstation3').style.display = '';
		if($(ppmId+'_navi_zstation2').style.display != 'none' && $(ppmId+'_navi_zstation3').style.display != 'none') $(ppmId+'_zbutton').style.display = 'none';
	}

	function closeZStations(ppmId, zstation)
	{
		// Schließt ein ZStation-Eingabefeld
		$(ppmId+'_navi_zstation'+zstation).style.display='none';
		$(ppmId+'_zbutton').style.display = '';
	}
	
	function clearFields(ppmId, fields)
	{	//Leert die Inputfields des uebergebenen Arrays
		for(i=0; i<fields.length; i++) {
			$(ppmId+"_"+fields[i]).value="";
		}
	}
	
	
	function getZoomLevelByRectangle(rect,ppmId){
		var maxLR=((rect.right-rect.left)/10);
		var maxTB=((rect.top-rect.bottom)/10);
		var zl=0;
		for(i=0; i<METER_PER_PIXEL.length; i++) {
			if(maxLR<METER_PER_PIXEL[i]*$(ppmId).ppmObject.width && maxTB<METER_PER_PIXEL[i]*$(ppmId).ppmObject.height && zl==0) {
				zl=i+1;
			}
		}
		if(zl<1) zl=12;
		return zl;
	}

// Kopiert die ausgewählten GeoKoordinaten in die Hidden-Fields		
function copyCorrectLongLat(ppmId, typ){
	SUFFIXES.each(function(suffix){
		var dropdown=$(ppmId+'_too_poorDropDown'+suffix[0]);
		for(i=0;i<dropdown.length;i++){
			var option=dropdown.options[i];
			if(option.selected){
				console.log (option);
				var longlat=option.value.split("|");
				var streetnumber="";
				var housenumber="";
				var zipcity="";
				var country="";
				if(option.getAttribute("street") != "undefined" && typeof option.getAttribute("street")!="undefined"){
					streetnumber+=option.getAttribute("street");
					console.log (option.getAttribute("street"));
				}
				if(option.getAttribute("housenumber") != "undefined" && typeof option.getAttribute("housenumber") != "undefined"){
					housenumber+=option.getAttribute("housenumber");
				}
				if(option.getAttribute("zip") != "undefined" && typeof option.getAttribute("zip")!="undefined"){
					zipcity+=option.getAttribute("zip");
				}
				if(option.getAttribute("city") != "undefined" && typeof option.getAttribute("city")!="undefined"){
					zipcity+=(zipcity!="")?(" "):("");
					zipcity+=option.getAttribute("city");
					if(suffix[0] == '_ziel') {
					//	$(ppmId).ppmObject.urchinLog(203, zipcity);
					}
				}
				if(option.getAttribute("country") != "undefined" && typeof option.getAttribute("country")!="undefined"){
					country=option.getAttribute("country");	
				}
				
				if($(ppmId).ppmObject.addressMode == 0) {
					// routing
					if(suffix[0] == '_ziel') {
						$(ppmId).ppmObject.urchinLog(203, option.getAttribute("city"));
					}
				} else {
					// address
					$(ppmId).ppmObject.urchinLog(208, option.getAttribute("city"));
				}
				
				$(ppmId+"_longitude"+suffix[1]).value=longlat[0];
				$(ppmId+"_latitude"+suffix[1]).value=longlat[1];
				$(ppmId+"_streetnumber"+suffix[1]).value=streetnumber;
				$(ppmId+"_housenumber"+suffix[1]).value=housenumber;			
				$(ppmId+"_zipcity"+suffix[1]).value=zipcity;
				$(ppmId+"_country"+suffix[1]).value=country;
			}
		}
	});

	$(ppmId+'_too_poorWindow').style.display='none';
	$(ppmId).ppmObject.modalDialog=0;
	showCard(ppmId, typ);
}	
	
function updateCitydata (alort,ppmId) {
	var url = '/kt_map/ajax/cityinfo.php';
	var pars = 'alort='+alort;
	var myAjax = new Ajax.Updater( ppmId+'_ci_container', url, { method: 'get', parameters: pars }); 
}	

function goCity(citydata,zoomlevel,longitude,latitude,ppmId, city){
	updateCitydata(citydata,ppmId);
	if ($(ppmId).ppmObject.eagleView == 2) {
		$(ppmId).ppmObject.evGoto (longitude, latitude, zoomlevel);
	} else {
		$(ppmId).ppmObject.setZoomLevel(zoomlevel);
		$(ppmId).ppmObject.moveToGeo(longitude,latitude);
		
	}
	$(ppmId+"_cityinfo_box").style.display="block";
	
	
	// Markierungen hinzufügen
	addMarkerPoint(longitude, latitude, city, '', ppmId);
	
}

function goToEv(longitude, latitude, zoomLevel, ppmId, utm, city, alort)
{
	var loc="kartensuche-result.html?utm_id="+utm+"&longlat=::::::"+longitude+"|"+latitude+"&alort="+alort+"&zipcity="+city+"&cityinfo=1&mapmode=eagle";
	window.location.href=loc;
	//$(ppmId).ppmObject.evGoto(longitude, latitude, zoomLevel);
	//$(ppmId).ppmObject.evEnter();
}

function goUrchinLog(utmId, utmContent, ppmId)
{
	$(ppmId).ppmObject.urchinLog(utmId, utmContent);
}

function submitAddress(ppmId){
	$(ppmId+"_typ").value='adresse';
	$(ppmId+"_cityinfo_box").style.display="none"; 
	showCard(ppmId);
}

function submitRoute(ppmId){
	$(ppmId+'_backwards').value='0'; 
	$(ppmId+'_typ').value='route';
	showCard(ppmId,'route');
}

function submitRouteBack(ppmId){
	$(ppmId+'_backwards').value='1'; 
	$(ppmId+'_typ').value='route'; 
	showCard(ppmId,'route');
}


function setMapPosition(longitude,latitude,ppmId){
	$(ppmId).ppmObject.hideInfoWindow();
	$(ppmId).ppmObject.setZoomLevel(2);
	$(ppmId).ppmObject.longitude=longitude;
	$(ppmId).ppmObject.latitude=latitude;
	$(ppmId).ppmObject.draw(); 
}

function goHome(ppmId){
	$(ppmId).ppmObject.goHome();
}

function showLongDescription(url,ppmId){
	var win=window.open(url,ppmId+"_RouteWindow","width=600,height=400,scrollbars=yes");
	$(ppmId).ppmObject.urchinLog(205);
}

function printLongDescription(url,ppmId){
	url+="&print=1";
	showLongDescription(url,ppmId);
}

function toggleMiniMap(linkobj){
	var imgID="mmap"+linkobj.id.substr(8,linkobj.id.length-8);
	if($(imgID).style.display=="none"){
		$(imgID).style.display="block";
		linkobj.innerHTML="Karte ausblenden";
	}else{
		$(imgID).style.display="none";
		linkobj.innerHTML="Karte einblenden";
	}
}

function toggleAllMiniMaps(link){
	if(link.firstChild.nodeValue=="Alle Karten einblenden"){
		link.innerHTML="Alle Karten ausblenden";
		var minimaps=document.getElementsByClassName("minimap_image");
		minimaps.each(function(item){
			item.style.display="block";	
		});	
		var links=document.getElementsByClassName("minimap_link");
		links.each(function(item){
			item.innerHTML="Karte ausblenden";
		});	
	}else{
		link.innerHTML="Alle Karten einblenden";
		var minimaps=document.getElementsByClassName("minimap_image");
		minimaps.each(function(item){
			item.style.display="none";	
		});	
		var links=document.getElementsByClassName("minimap_link");
		links.each(function(item){
			item.innerHTML="Karte einblenden";
		});			
	}

}

function getPDF(routeID,longitude,latitude,extend)
{
    location.href='pdf.php?routeID='+routeID+'&longitude='+longitude+'&latitude='+latitude+'&extend='+extend;
    return false;
}



