var map, popup, markers, innerHTML, clickedX, clickedY, panelNext, panelPrevious, basiskarte_overlay, basiskarte, faehren, schnellbuslinien, stadt_regionalbuslinien, metrobuslinien, eilbuslinien, bushaltestellen, haltestellen_usar, servicestellen1, servicestellen2, szDivID, iState, lgv_origin, execution;	       

	function init(){
	   var bounds = new OpenLayers.Bounds(
                3500000.5, 5878000.5,
                3647999.0, 6001999.5
            );	
	  	  
     if (document.location.protocol != "file:") {
	      theArgs = OpenLayers.Util.getArgs();
	 } else {
         theArgs = {};
         //theArgs.center = "0,0";
         theArgs.zoom = "0";            
         /*theArgs.data = "textfile.txt";
         theArgs.controls = 'panzoom,mouse';
         theArgs.layers = 'openlayers';*/
	 }
	 
	 var safeArgs = {}

	 var DEFAULT_LAT = 0;
	 var DEFAULT_LON = 0;
	 var DEFAULT_ZOOM_LEVEL = 0;
	 DEFAULT_MARKER_STATUS = 0;
	 /*var DEFAULT_CONTROLS = ['panzoom','mouse'];
	 var DEFAULT_LAYERS = ['openlayers'];    
	 var IDX_LAT = 0;
	 var IDX_LON = 1;*/
    
	 safeArgs.centerLon = theArgs.center ? 
	 	parseFloat(theArgs.center[0]) : DEFAULT_LON;
    
	safeArgs.centerLat = theArgs.center ? 
        	parseFloat(theArgs.center[1]) : DEFAULT_LAT;

	safeArgs.zoom = theArgs.zoom ? parseInt(theArgs.zoom) : DEFAULT_ZOOM_LEVEL;
    
	/*safeArgs.controls = theArgs.controls ? 
        	theArgs.controls.split(",") : DEFAULT_CONTROLS;
    
	safeArgs.layers = theArgs.layers ? 
        	theArgs.layers.split(",") : DEFAULT_LAYERS;
    
	safeArgs.data = theArgs.data; // TODO: Make this "safe".*/
	
	safeArgs.marker = theArgs.marker ? parseInt(theArgs.marker) : DEFAULT_MARKER_STATUS;


	if (window.location.search != "") {
			lgv_origin = getParameter(window.location.search, "lgv_origin");
			execution = getParameter(window.location.search, "execution");
	}
  
	    var options = {
                maxExtent: bounds,
		restrictedExtent: bounds, 
		projection: "EPSG:31467",
		units: "m",
		resolutions: [159.1,79.6,39.84,21.16,10.58,5.29,2.65,1.27],		
		maxResolution: "auto",			
		controls: []
		
            };
	    
            map = new OpenLayers.Map( 'map', options );
            OpenLayers.IMAGE_RELOAD_ATTEMPTS = 5;

	    
						
	     var urlArray = ["http://maps.hvv.de/hvv/services"];
			
	    /*var urlArray = ["http://212.105.220.98/hvv/services"];*/			

	    var tileCacheURLArray = ["http://maps.hvv.de/tilecache204/tilecache.py/",
			"http://212.105.220.98/tilecache204/tilecache.py/"];			
			
	    var tileCacheURLArray1 = ["http://maps.hvv.de/tilecache204/tilecache.py/",
			"http://212.105.220.98/tilecache204/tilecache.py/", "http://maps01.hvv.de/tilecache204/tilecache.py/"];			
	    
	    basiskarte_overlay = new OpenLayers.Layer.WMS( "Hintergrundkarte",
                    urlArray, {layers: 'hvv_overview', projection: 'EPSG:31467'},
		    //{gutter: 2, singleTile: true, transitionEffect: 'resize'}
		    {gutter: 2, buffer: 1}			    
	    );	    	    	  
	    
	     basiskarte = new OpenLayers.Layer.WMS( "Hintergrundkarte",
                    tileCacheURLArray, {layers: 'Hintergrundkarte_HVV_Neu', projection: 'EPSG:31467', maxExtent: bounds, format: 'image/jpeg'},
		    {buffer: 1}
	    );
	    
	    basiskarte.displayInLayerSwitcher = false;

	    schnellbuslinien = new OpenLayers.Layer.WMS( "Schnellbuslinien",
                    urlArray, {layers: 'Schnellbuslinien', projection: 'EPSG:31467', transparent: "true", format: "image/gif"}, 
		    {isBaseLayer: false, displayInLayerSwitcher: true, resolutions: [10.58,5.29,2.65,1.27], singleTile: true, buffer: 0}
	    );	    

	    stadt_regionalbuslinien = new OpenLayers.Layer.WMS( "Stadt- und Regionalbuslinien",
                    urlArray, {layers: 'Stadt_Regionalbuslinien', projection: 'EPSG:31467', transparent: "true", format: "image/gif"},
		    {isBaseLayer: false, displayInLayerSwitcher: true, resolutions: [10.58,5.29,2.65,1.27], singleTile: true, buffer: 0}
	    );	    
	    
	    metrobuslinien = new OpenLayers.Layer.WMS( "Metrobuslinien",
                    urlArray, {layers: 'Metrobuslinien', projection: 'EPSG:31467', transparent: "true", format: "image/gif"},
		     {isBaseLayer: false, displayInLayerSwitcher: true, resolutions: [10.58,5.29,2.65,1.27], singleTile: true, buffer: 0}		    
	    );
	    
	    eilbuslinien = new OpenLayers.Layer.WMS( "Eilbuslinien",
                    urlArray, {layers: 'Eilbuslinien', projection: 'EPSG:31467', transparent: "true", format: "image/gif"},
		     {isBaseLayer: false, displayInLayerSwitcher: true, resolutions: [10.58,5.29,2.65,1.27], singleTile: true, buffer: 0}		    
	    );
	    
	    faehren = new OpenLayers.Layer.WMS( "FÃ¤hren",
                    urlArray, {layers: 'Faehren', projection: 'EPSG:31467', transparent: "true", format: "image/gif"},
		     {isBaseLayer: false, displayInLayerSwitcher: true, resolutions: [10.58,5.29,2.65,1.27], singleTile: true, buffer: 0}		    
	    );
	    
	    bushaltestellen = new OpenLayers.Layer.WMS( "Bushaltestellen",
                    urlArray, {layers: 'Haltestellen', projection: 'EPSG:31467', transparent: "true", format: "image/gif"},
		     {isBaseLayer: false, displayInLayerSwitcher: true, resolutions: [10.58,5.29,2.65,1.27], singleTile: true, buffer: 0}		    
	    );
	    
	    haltestellen_usar = new OpenLayers.Layer.WMS( "Haltestellen USAR",
                    urlArray, {layers: 'Haltestellen_USAR', projection: 'EPSG:31467', transparent: "true", format: "image/gif"},
		     {isBaseLayer: false, displayInLayerSwitcher: false, resolutions: [39.84,21.16,10.58], singleTile: true, buffer: 0}		    
	    );

		//Workaround für das neue HVV Kundenzentrum am Johanniswall 2
		//fällt weg, wenn die neuen Rasterdaten kommen
		servicestellen2 = new OpenLayers.Layer.Text( "Servicestellen2", {location: "http://maps.hvv.de/Openlayers/lib/OpenLayers/LGV/servicestellen/servicestellen2.txt", resolutions: [2.65]}	);
		
		servicestellen1 = new OpenLayers.Layer.Text( "Servicestellen1", {location: "http://maps.hvv.de/Openlayers/lib/OpenLayers/LGV/servicestellen/servicestellen1.txt", resolutions: [1.27]}	);
		//Ende Workaround für das neue HVV Kundenzentrum am Johanniswall 2
	    
		//Workaround für den Fehler Haltestelle Fischbek/Neuwiedenthal
		neuwiedenthal2 = new OpenLayers.Layer.Text( "Servicestellen2", {location: "http://maps.hvv.de/Openlayers/lib/OpenLayers/LGV/neuwiedenthal/neuwiedenthal2.txt", resolutions: [39.84]}	);
		
		neuwiedenthal1 = new OpenLayers.Layer.Text( "Servicestellen1", {location: "http://maps.hvv.de/Openlayers/lib/OpenLayers/LGV/neuwiedenthal/neuwiedenthal1.txt", resolutions: [21.16]}	);
		//Ende Workaround Haltestelle Fischbek/Neuwiedenthal
		
            map.addLayers([basiskarte, neuwiedenthal1, neuwiedenthal2, servicestellen1, servicestellen2, schnellbuslinien, stadt_regionalbuslinien, metrobuslinien, eilbuslinien, faehren, bushaltestellen, haltestellen_usar]);	              	    	   
	    
	    markers = new OpenLayers.Layer.Markers( "Suchergebnis" );	   	   	   	   
	   
	   //center on parameter request with marker 
	   if (safeArgs.centerLon == 0) {
		   map.zoomToExtent(bounds, 1);
           } 
	   else if (safeArgs.zoom == 8) {
		   newCenter(safeArgs.centerLon, safeArgs.centerLat, 7, safeArgs.marker)
	   }
	   else { 		   				   
		   newCenter(safeArgs.centerLon, safeArgs.centerLat, safeArgs.zoom, safeArgs.marker)
		   // Ausgrauen der Layer im Optionsfenster beim Start mit anderen Zoomstufen
		   checkResForOptions();
		   //map.setCenter(new OpenLayers.LonLat(safeArgs.centerLon, safeArgs.centerLat), safeArgs.zoom);		   
	   } 
			
	    //map.addControl( new OpenLayers.Control.KeyboardDefaults() );
		var zoomPanbarControl = new OpenLayers.Control.PanZoomBar({"title": "Verschieben Sie den Ausschnitt oder wÃ¤hlen Sie eine Zoomstufe!"});
	    zoomPanbarControl.zoomWorldIcon = true;
	    map.addControl( zoomPanbarControl );
	    navWheel = new OpenLayers.Control.Navigation({'zoomWheelEnabled': true});
	    map.addControl( navWheel );	    	 
		map.addControl( new OpenLayers.Control.ScaleLine() );
	    //map.addControl( new OpenLayers.Control.MousePosition() );
	    
	    
	    var controlOptions = {mapOptions:	{maxExtent: bounds, restrictedExtent: bounds, projection: "EPSG:31467", units: "m", numZoomLevels: 1},
	            size: new OpenLayers.Size(150, 115),		    
	            title: "Ãœbersichtskarte mit aktuellem Kartenausschnitt",
		    layers: [basiskarte_overlay]
	    }
	    var overview = new OpenLayers.Control.OverviewMap(controlOptions);	    
	    map.addControl(overview);
	    //overview.maximizeControl();	 	    	    	     	    	    	    	    	   	   	    
	    
	    // Ausgrauen der Layer im Optionsfenster beim Ändern der Zoomstufe
	    map.events.register('zoomend', map, function (e) {
		 checkResForOptions();
	    });
	    
	    map.events.register('click', map, function (e) {
            //OpenLayers.Util.getElement('nodeList').innerHTML = "Die Informationen werden geladen... einen Augenblick bitte...";	 
	    clickedX = e.xy.x;
	    clickedY = e.xy.y;	  	    	  
            
	    var myResolution = map.getResolution(); 	    
	    if (myResolution == 159.1 || myResolution == 79.6) {
	    }
	    else if (myResolution == 39.84 || myResolution == 21.16 || bushaltestellen.getVisibility() != true) { 
	    var url =  haltestellen_usar.getFullRequestString({
                            REQUEST: "GetFeatureInfo",
                            EXCEPTIONS: "application/vnd.ogc.se_xml",
                            BBOX: haltestellen_usar.map.getExtent().toBBOX(),
                            X: clickedX,
                            Y: clickedY,
                            INFO_FORMAT: 'application/vnd.ogc.gml',
                            QUERY_LAYERS: haltestellen_usar.params.LAYERS,
                            WIDTH: haltestellen_usar.map.size.w,
                            HEIGHT: haltestellen_usar.map.size.h});
            //OpenLayers.loadURL(url, '', this, setHTML);
	    OpenLayers.loadURL(url, '', this, createPopup);	    
	    OpenLayers.Event.stop(e);
	     }
	     else {
	     var url =  bushaltestellen.getFullRequestString({
                            REQUEST: "GetFeatureInfo",
                            EXCEPTIONS: "application/vnd.ogc.se_xml",
                            BBOX: bushaltestellen.map.getExtent().toBBOX(),
                            X: clickedX,
                            Y: clickedY,
                            INFO_FORMAT: 'application/vnd.ogc.gml',
                            QUERY_LAYERS: bushaltestellen.params.LAYERS,
                            WIDTH: bushaltestellen.map.size.w,
                            HEIGHT: bushaltestellen.map.size.h});
            //OpenLayers.loadURL(url, '', this, setHTML);
	    OpenLayers.loadURL(url, '', this, createPopup);	    
	    OpenLayers.Event.stop(e);	     
	     }	     	    

      });

	    function createPopup(response) {			
				
		var ilonlat = map.getLonLatFromPixel(new OpenLayers.Pixel(clickedX, clickedY));
		var g =  new OpenLayers.Format.GML();
		var features = g.read(response.responseText);			
		
		if (features[0] == undefined) {
			
			popup = new OpenLayers.Popup.FramedCloud(
							"__popup",   	    			// popup id
							ilonlat,            			// OpenLayers.LonLat object
							new OpenLayers.Size(80,500),    // popup is autosized
							"<table width='300' height='60' cellspacing='2' cellpadding='0' border='0' bgcolor='#ffffff' align='left'><tbody><tr><td width='300' bgcolor='#c1ccde' style='padding-left: 5px;' colspan='2'><b><font face='Helvetica, Arial, sans-serif' color='#003277'>Ort aus Karte</font></b><br></td></tr><tr><td width='300' bgcolor='#ffffff' style='padding-left: 5px;' colspan='2'><font face='Helvetica, Arial, sans-serif'><a href='/jsf/home.seam?startType=0&amp;startName=X%3A" + Math.round(ilonlat.lon) + "%20Y%3A" + Math.round(ilonlat.lat) + "&amp;startRegion=%20' style='color: rgb(0, 50, 119);' class='arrow'>Ort als Start in die Fahrplanauskunft übernehmen</a></font></td></tr><tr><td width='300' bgcolor='#ffffff' style='padding-left: 5px;' colspan='2'><font face='Helvetica, Arial, sans-serif'><a href='/jsf/home.seam?destType=0&amp;destName=X%3A" + Math.round(ilonlat.lon) + "%20Y%3A" + Math.round(ilonlat.lat) + "&amp;destRegion=%20' style='color: rgb(0, 50, 119);' class='arrow'>Ort als Ziel in die Fahrplanauskunft übernehmen</a></font></td></tr></tbody></table>",      // html string
							null,               // no anchor
							true                // close button
			 );	     
			 map.addPopup(popup,true);
		} 
		else {
			
			
			featureinfo_html = ""
			
			var haltestellenname = features[0].attributes["Haltestellenname"];
			var linien = features[0].attributes["Verkehrende"];							
			var haltestellenaushang = "/jsf/stationSchedule.seam?inputStation=" + haltestellenname;
			
			featureinfo_html = "<table width='300' height='115' cellspacing='0' cellpadding='0' border='0' bgcolor='#ffffff' align='left'><tbody><tr><td width='300' bgcolor='#c1ccde' style='padding-left: 5px;' colspan='2'><b><font face='Helvetica, Arial, sans-serif' color='#003277'>Haltestelleninformation</font></b><br></td></tr><tr><td width='150' bgcolor='#ffffff' style='padding-left: 5px;'><b><font face='Helvetica, Arial, sans-serif'>Haltestellenname :</font></b></td><td width='150' bgcolor='#ffffff' style='padding-left: 5px;'><font face='Helvetica, Arial, sans-serif'>"+ haltestellenname +"<br></font></td></tr><tr><td width='150' bgcolor='#ffffff' style='padding-left: 5px;'><b><font face='Helvetica, Arial, sans-serif'>Verkehrende Linien :</font></b></td><td width='150' bgcolor='#ffffff' style='padding-left: 5px;'><font face='Helvetica, Arial, sans-serif'>"+ linien +"<br></font></td></tr>";
			
			if (lgv_origin == "hc") {			
			var hc_startLink = "http://bmi.hvv.de/bmikontakt/kundengarantie/garantie?execution=" + execution +"&start="+ haltestellenname;
			var hc_zielLink = "http://bmi.hvv.de/bmikontakt/kundengarantie/garantie?eexecution=" + execution +"&ziel="+ haltestellenname;
			featureinfo_html += "<tr><td width='300' bgcolor='#ffffff' style='padding-left: 5px;' colspan='2'><font face='Helvetica, Arial, sans-serif'><a href='" +  hc_startLink + "' target='_blank' style='color: rgb(0, 50, 119);' class='arrow'>Als Start in die Kundengarantie übernehmen</a></font></td></tr><tr><td width='300' bgcolor='#ffffff' style='padding-left: 5px;' colspan='2'><font face='Helvetica, Arial, sans-serif'><a href='" +  hc_zielLink + "' target='_blank' style='color: rgb(0, 50, 119);' class='arrow'>Als Ziel in die Kundengarantie übernehmen </a></font></td></tr><tr><td width='300' bgcolor='#ffffff' style='padding-left: 5px;' colspan='2'><font face='Helvetica, Arial, sans-serif'><a href='"+ haltestellenaushang + "' target='_blank' style='color: rgb(0, 50, 119);' class='arrow'>Haltestellenaushang anzeigen </a></font></td></tr></tbody></table>";			
			}
			else {
			var startLink = "/jsf/home.seam?startType=0&startName="+ haltestellenname +"&startRegion=";
			var zielLink = "/jsf/home.seam?destType=0&destName="+ haltestellenname +"&destRegion=";			
			featureinfo_html += "<tr><td width='300' bgcolor='#ffffff' style='padding-left: 5px;' colspan='2'><font face='Helvetica, Arial, sans-serif'><a href='" +  startLink + "' target='_blank' style='color: rgb(0, 50, 119);' class='arrow'>Als Start in die Fahrplanauskunft übernehmen</a></font></td></tr><tr><td width='300' bgcolor='#ffffff' style='padding-left: 5px;' colspan='2'><font face='Helvetica, Arial, sans-serif'><a href='" +  zielLink + "' target='_blank' style='color: rgb(0, 50, 119);' class='arrow'>Als Ziel in die Fahrplanauskunft übernehmen </a></font></td></tr><tr><td width='300' bgcolor='#ffffff' style='padding-left: 5px;' colspan='2'><font face='Helvetica, Arial, sans-serif'><a href='"+ haltestellenaushang + "' target='_blank' style='color: rgb(0, 50, 119);' class='arrow'>Haltestellenaushang anzeigen </a></font></td></tr></tbody></table>";
			}
			
			
			
			 // this refers to the event object		 	     	     
			 popup = new OpenLayers.Popup.FramedCloud(
							"__popup",   	    // popup id
							ilonlat,            // OpenLayers.LonLat object
							new OpenLayers.Size(300,500),               // popup is autosized
							featureinfo_html,      // html string
							null,               // no anchor
							true                // close button
			 );	     
			 map.addPopup(popup,true);
			 }
	     }
    }
    
    function newCenter(xValue, yValue, zoomValue, setMarker) {		
		   markers.clearMarkers(); 			 		   		  
		   map.setCenter(new OpenLayers.LonLat(xValue,yValue),zoomValue);		   	   
		   if (setMarker == 1) {			   	
		   map.addLayer(markers);
		   var size = new OpenLayers.Size(40,40);
		   //var offset = new OpenLayers.Pixel(-size.w, -size.h);
		   var offset = new OpenLayers.Pixel(-(size.w/2), -(size.h/2));
		   var icon = new OpenLayers.Icon('http://maps.hvv.de/OpenLayers/img/kreismarker_rot.gif',size,offset);
		   markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(xValue,yValue),icon));
		   }		   		   
	}
	
	function destroy() {
            popup.destroy();
        }
	
	
	try {
		var pageTracker = _gat._getTracker("UA-6416008-3");
		pageTracker._trackPageview();
	} catch(err) {}
	
//Anzeigen der Legende	
function toggleBox(szDivID) // 1 visible, 0 hidden
{
    
  var iState;
  

    if(document.layers)	   //NN4+
    {
       if(document.layers[szDivID].visibility == "show")	   
       {
	       iState = 0;
       }	
       else if(document.layers[szDivID].visibility == undefined || document.layers[szDivID].visibility == "hide")
       {
	       iState = 1;
       }
       document.layers[szDivID].visibility = iState ? "show" : "hide";
    }
    else if(document.getElementById)	  //gecko(NN6) + IE 5+
    {	     
        var obj = document.getElementById(szDivID);	
        if (obj.style.visibility == "visible")
	{				
		iState = 0;  
	}
	else if (obj.style.visibility == "" || obj.style.visibility == "hidden")
	{				
		iState = 1;		
	}  	
	obj.style.visibility = iState ? "visible" : "hidden";
    }
    else if(document.all)	// IE 4
    {        	   
        if (document.all[szDivID].style.visibility == "visible")
	{
		iState = 0;  
	}
	else if (document.all[szDivID].style.visibility == "" || document.all[szDivID].style.visibility == "hidden")
	{
		iState = 1;  
	}
  	document.all[szDivID].style.visibility = iState ? "visible" : "hidden";
    }
}

function toggleBoxNew(szDivID) // 1 visible, 0 hidden
{
    
  var iState;
  

    if(document.layers)	   //NN4+
    {	    
       if(document.layers[szDivID].display == '')	   
       {
	       document.layers[szDivID].display = 'none';
       }	
       else if(document.layers[szDivID].dislay == "none")
       {
	       document.layers[szDivID].display = '';
       }       
    }
	
    else if(document.getElementById)	  //gecko(NN6) + IE 5+
    {	     
    var obj = document.getElementById(szDivID);	
		
        if (obj.style.display == '')
		{				
			document.getElementById(szDivID).style.display = 'none';
		}
		else if (obj.style.display == "none")
		{				
			document.getElementById(szDivID).style.display = '';
		}  
    }
	
    else if(document.all)	// IE 4
	{        	   
		if (document.all[szDivID].style.display == '')
		{
			document.all[szDivID].style.display == 'none';
		}
		else if (document.all[szDivID].style.display == "none")
		{
			document.all[szDivID].style.display == '';
		}
  	
    }
}



function checkMap(layer, id) {

var inputObjekt = document.getElementById(id);

map.layers[layer].setVisibility(inputObjekt.checked);

return true; // continue event

}


function checkResForOptions() {
 var myResolution = map.getResolution();
 if (myResolution == 159.1 || myResolution == 79.6 || myResolution == 39.84 || myResolution == 21.16) 
		{
			document.getElementById("input_Schnellbuslinien").disabled = "true";
			document.getElementById("input_Stadt_und_Regionalbuslinien").disabled = "true";
			document.getElementById("input_Metrobuslinien").disabled = "true";
			document.getElementById("input_Eilbuslinien").disabled = "true";
			document.getElementById("input_Faehren").disabled = "true";
			document.getElementById("input_Bushaltestellen").disabled = "true";
		}
  else 
		{
			document.getElementById("input_Schnellbuslinien").removeAttribute("disabled");
			document.getElementById("input_Stadt_und_Regionalbuslinien").removeAttribute("disabled");
			document.getElementById("input_Metrobuslinien").removeAttribute("disabled");
			document.getElementById("input_Eilbuslinien").removeAttribute("disabled");
			document.getElementById("input_Faehren").removeAttribute("disabled");
			document.getElementById("input_Bushaltestellen").removeAttribute("disabled");
		}
}

function getPDF(){			
		
		var printExtent = eval(map.getExtent()); 
		var printCenter = eval(map.getCenter());

	    var printLayers = "{'baseURL':'http://212.105.220.98/tilecache204/tilecache.py/','opacity':1,'singleTile':false,'customParams':{'PROJECTION':'EPSG:31467'},'type':'WMS','layers':['Hintergrundkarte_HVV_Neu'],'format':'image/jpeg','styles':[]}"; 		
		var printResolution = map.getResolution(); 	    
	    if (printResolution == 159.1 || printResolution == 79.6 || printResolution == 39.84 || printResolution == 21.16) {
	    printLayers = printLayers;
		}
	    else if (printResolution == 10.58 || printResolution == 5.29 || printResolution == 2.65 || printResolution == 1.27) {
		    if (map.layers[1].visibility) {
			    printLayers = printLayers + ",{'type':'WMS','format':'image/gif','layers':['Schnellbuslinien'],'baseURL':'http://maps.hvv.de/hvv/services','customParams':{'TRANSPARENT':'true'}}"			    
		    }
		    if (map.layers[2].visibility) {
			    printLayers = printLayers + ",{'type':'WMS','format':'image/gif','layers':['Stadt_Regionalbuslinien'],'baseURL':'http://maps.hvv.de/hvv/services','customParams':{'TRANSPARENT':'true'}}"			    
		    }
		    if (map.layers[3].visibility) {
			    printLayers = printLayers + ",{'type':'WMS','format':'image/gif','layers':['Metrobuslinien'],'baseURL':'http://maps.hvv.de/hvv/services','customParams':{'TRANSPARENT':'true'}}"
		    }
		    if (map.layers[4].visibility) {
			    printLayers = printLayers + ",{'type':'WMS','format':'image/gif','layers':['Eilbuslinien'],'baseURL':'http://maps.hvv.de/hvv/services','customParams':{'TRANSPARENT':'true'}}"
		    }
		    if (map.layers[5].visibility) {
			    printLayers = printLayers + ",{'type':'WMS','format':'image/gif','layers':['Faehren'],'baseURL':'http://maps.hvv.de/hvv/services','customParams':{'TRANSPARENT':'true'}}"
		    }
		    if (map.layers[6].visibility) {
			    printLayers = printLayers + ",{'type':'WMS','format':'image/gif','layers':['Haltestellen_20081212_gneu'],'baseURL':'http://maps.hvv.de/hvv/services','customParams':{'TRANSPARENT':'true'}}"
		    }
		    if (markers.drawn) {
			    var Xmarker = markers.markers[0].lonlat.lon;
			    var Ymarker = markers.markers[0].lonlat.lat;
			    printLayers = printLayers + ",{'type':'WMS','format':'image/gif','layers':['marker'],'baseURL':'http://maps.hvv.de/hvv/services','customParams':{'TRANSPARENT':'true','MARKER':'POINT(" + Xmarker + " " + Ymarker + ")'}}"
		    }
	    }	
		
		
		var rstring = "{'layout':'HVV landscape','title':'A simple example','srs':'EPSG:31467','units':'m','layers':[" + printLayers + "],'pages':[{center:[" + printCenter.lon + "," + printCenter.lat + "],'scale':" + Math.round(map.getScale()) + ",'dpi':'72','mapTitle':'HVV-Verkehrsnetz (Ausschnitt)','comment':'','copyRight':''}]}";		
		

		
		function handler(request) {
			
			// show load gif?			
			
			var data = eval('(' + request.responseText + ')');
			window.location=data.getURL;
			
			// don't show load gif
			toggleBox('loadpdf');
			toggleBoxNew('loadpdf');			
			
			//window.open(data.getURL,"_blank");
		}

		toggleBox('loadpdf');
		toggleBoxNew('loadpdf');
		
		var request = OpenLayers.Request.POST({
			url: "http://212.105.220.98/mfprintservlet/pdf/create.json?url=http%3A%2F%2F212.105.220.98%2Fmfprintservlet%2Fpdf%2Fcreate.json",
			data: rstring,
			headers: {
				"Content-Type": "application/pdf"
			},
			callback: handler
		});
	

	}
	
	function getParameter ( queryString, parameterName ) {
		// Add "=" to the parameter name (i.e. parameterName=value)
		var parameterName = parameterName + "=";
		if ( queryString.length > 0 ) {
			// Find the beginning of the string
			begin = queryString.indexOf ( parameterName );
			// If the parameter name is not found, skip it, otherwise return the value
		if ( begin != -1 ) {
			// Add the length (integer) to the beginning
			begin += parameterName.length;
			// Multiple parameters are separated by the "&" sign
			end = queryString.indexOf ( "&" , begin );
		if ( end == -1 ) {
			end = queryString.length
		}
		// Return the string
		return unescape ( queryString.substring ( begin, end ) );
		}
		// Return "null" if no parameter has been found
		return "null";
		}
	}




