visdat.buildLayer = function (map, layerArray, projection){
    for(var i = 0; i < layerArray.length; i++)
    {
    	var layerTyp = layerArray[i][0];
    	var layerName = layerArray[i][1];
    	var layerUrl = layerArray[i][2];

    	switch (layerTyp){
    		case 'Google':  if(layerName == 'Google Physical'){
    						    var layer = new OpenLayers.Layer.Google(
					                layerName, // the default
					                {'sphericalMercator': true, type: G_PHYSICAL_MAP, 'isBaseLayer': true, displayInLayerSwitcher: false}
					           ); 
					          //map.addLayer(layer);
					          /*var layer = new OpenLayers.Layer.Google(
					                layerName, // the default
					                {'sphericalMercator': true, 'isBaseLayer': false}
					           );*/
					    
    						}
    						else {
    							if(layerName == 'Google Streets'){
    								var layer = new OpenLayers.Layer.Google(
						                layerName, // the default
						                {'sphericalMercator': true, 'isBaseLayer': false}
					           		); 
    							}
    							else {
    								if(layerName == 'Google Satellite'){
    									var layer = new OpenLayers.Layer.Google(
						                layerName, // the default
						                {'sphericalMercator': true, type: G_SATELLITE_MAP, 'isBaseLayer': true}
						            	); 
    								};
    								if(layerName == 'Google Hybrid'){
    									var layer = new OpenLayers.Layer.Google(
						                layerName, // the default
						                {'sphericalMercator': true, type: G_HYBRID_MAP, 'isBaseLayer': true}
						            	);
    								}
    							}
    							
    						};
    						break;
			case 'OSM':		if(layerName =='OpenStreetMap'){
				           		var layer = new OpenLayers.Layer.OSM(
              				 	 	"OpenStreetMap",
                					"http://tah.openstreetmap.org/Tiles/tile/${z}/${x}/${y}.png",
                					{displayInLayerSwitcher: false},
                					{'isBaseLayer': layerArray[i][7]}
                 				              
           					 	);

							};

							break;
			case 'WMS':		var layer = new OpenLayers.Layer.WMS(layerName, 
						        layerUrl, 
						        {layers: layerName, transparent: 'true'}, 
						        {'isBaseLayer': layerArray[i][7], projection: projection}
						    );
						    break;
						    
			case 'GML': 	var layer = new OpenLayers.Layer.GML(layerName, 
		    					layerUrl,
		    					{'spericalMercator': true, projection: 'EPSG:4326'},
		    					{'isBaseLayer': layerArray[i][7], reproject: true}
		    				
	    					);	
	    					break;	
	    					
	  		case 'TMS':		/*var layer = new OpenLayers.Layer.WMS(layerName,
	  							layerUrl,
		    					{layers: layerName,
								format: 'image/png'}
							);*/
	  		
	  		  		
	  						var layer = new OpenLayers.Layer.TMS(layerName,
	  							layerUrl,
		    					{serviceVersion: "1.1.1",
		    					layername: layerName,
		    					isBaseLayer: layerArray[i][7], type: "png", buffer: 1,
							attribution: '<a href="http://www.landesvermessung.sachsen.de/">GeoSN</a></br><a href="http://www.openstreetmap.org/">OpenStreetMap</a>'}
		    				);	
		    				break;
	  		case 'Mapnik':	function osm_getTileURL(bounds) {
	  
								var res = this.map.getResolution();
								//alert(bounds.left);
					            var x = Math.round((bounds.left - map.maxExtent.left) / (res * this.tileSize.w));
					            var y = Math.round((map.maxExtent.top - bounds.top) / (res * this.tileSize.h));
					            var z = this.map.getZoom();
					            var limit = Math.pow(2, z);
				                x = ((x % limit) + limit) % limit;
				                return this.url + z + "/" + x + "/" + y + "." + this.type;
					        }


		  						var layer = new OpenLayers.Layer.TMS(layerName,
		  							layerUrl,
			    					{serviceVersion: "1.1.1",
			    					getURL: osm_getTileURL,
			    					displayOutsideMaxExtent: true,
			    					isBaseLayer: layerArray[i][7],
			    					type: "png",
			    					attribution: '<a href="http://www.openstreetmap.org/">OpenStreetMap</a>'}
			    				);	
    				
		    				
    	};
    	map.addLayer(layer);
		
		
	}
	if (map.baseLayer){
		map.baseLayer.setVisibility(false);
	}
	
};
    

       
           
           

