
OpenLayers.Util.OSM = {};
OpenLayers.Util.OSM.MISSING_TILE_URL = "http://wanderreitkarte.de/static/empty.png";
OpenLayers.Util.OSM.originalOnImageLoadError = OpenLayers.Util.onImageLoadError;

OpenLayers.Util.onImageLoadError = function() {
	if( this.src.contains( "hills" ) )
	{
		this.src = OpenLayers.Util.OSM.MISSING_TILE_URL;
    } else {
        OpenLayers.Util.OSM.originalOnImageLoadError;
    }
};

OpenLayers.Layer.Contour=OpenLayers.Class(OpenLayers.Layer.XYZ,
{
	isBaseLayer:true,
	sphericalMercator:true,
	getURL:function(bounds){
		var z=this.map.getZoom();
		if( z < 8 )
//		if( z > 15 || z < 8 )
			return OpenLayers.Util.OSM.MISSING_TILE_URL;

		var res=this.map.getResolution();
		var x=Math.round((bounds.left-this.maxExtent.left)/(res*this.tileSize.w));
		var y=Math.round((this.maxExtent.top-bounds.top)/(res*this.tileSize.h));
		var url=this.url;
        var s = '' + x + y + z;
        if (url instanceof Array)
        {
            url = this.selectUrl(s, url);
        }
		var path=OpenLayers.String.format(url,{'x':x,'y':y,'z':z});
		return path;
	},
	CLASS_NAME:"OpenLayers.Layer.Contour" 
});


OpenLayers.Layer.Topo=OpenLayers.Class(OpenLayers.Layer.XYZ,
{
	isBaseLayer:true,
	sphericalMercator:true,
	getURL:function(bounds){
		var z=this.map.getZoom();

		var res=this.map.getResolution();
		var x=Math.round((bounds.left-this.maxExtent.left)/(res*this.tileSize.w));
		var y=Math.round((this.maxExtent.top-bounds.top)/(res*this.tileSize.h));
        var url = this.url;
        var s = '' + x + y + z;
        if (url instanceof Array)
        {
            url = this.selectUrl(s, url);
        }

		var path=OpenLayers.String.format(url,{'x':x,'y':y,'z':z});
		return path;
	},
	CLASS_NAME:"OpenLayers.Layer.Topo" 
});

