
    var MAGIC_NUMBER=6356752.3142;
    var DEG2RAD=0.0174532922519943;
    var PI=3.14159267;
    function dd2MercMetersLng(p_lng) { 
    	return MAGIC_NUMBER*(p_lng*DEG2RAD); 
    }
    
    function dd2MercMetersLat(p_lat) {
    	if (p_lat >= 85) p_lat=85;
    	if (p_lat <= -85) p_lat=-85;
    	return MAGIC_NUMBER*Math.log(Math.tan(((p_lat*DEG2RAD)+(PI/2)) /2));
    }
    
    CustomGetTileUrl=function(a,b,c) {
    	if (typeof(window['this.myMercZoomLevel'])=="undefined") this.myMercZoomLevel=0; 
    	if (typeof(window['this.myStyles'])=="undefined") this.myStyles="default"; 
    	var lULP = new GPoint(a.x*256,(a.y+1)*256);
    	var lLRP = new GPoint((a.x+1)*256,a.y*256);
    	var lUL = G_NORMAL_MAP.getProjection().fromPixelToLatLng(lULP,b,c);
    	var lLR = G_NORMAL_MAP.getProjection().fromPixelToLatLng(lLRP,b,c);
    	// switch between Mercator and DD if merczoomlevel is set
    	if (this.myMercZoomLevel!=0 && map.getZoom() < this.myMercZoomLevel) {
        	var lBbox=dd2MercMetersLng(lUL.lngDegrees)+","+dd2MercMetersLat(lUL.latDegrees)+","+dd2MercMetersLng(lLR.lngDegrees)+","+dd2MercMetersLat(lLR.latDegrees);
        	var lSRS="EPSG:54004";
    	} else {
        	var lBbox=lUL.x+","+lUL.y+","+lLR.x+","+lLR.y;
        	var lSRS="EPSG:4326";
    	}
    	var lURL=this.myBaseURL;
    	lURL+="&REQUEST=GetMap";
    	lURL+="&SERVICE=WMS";
    	lURL+="&VERSION=1.1.1";
    	lURL+="&LAYERS="+this.myLayers;
    	lURL+="&STYLES="+this.myStyles; lURL+="&FORMAT="+this.myFormat;
    	lURL+="&BGCOLOR=0xFFFFFF";
    	lURL+="&TRANSPARENT=TRUE";
    	lURL+="&SRS="+lSRS;
    	lURL+="&BBOX="+lBbox;
    	lURL+="&WIDTH=256";
    	lURL+="&HEIGHT=256";
    	lURL+="&reaspect=false";
    	return lURL;
    }
   
    var map;
    var geoKml = new GGeoXml('http://cotamtb.com/files/trails/21.kml');    var toggleState = 1;

function loadMap() {
  if (GBrowserIsCompatible()) {
    map = new GMap2(document.getElementById("gmap"));
    var tileDoq= new GTileLayer(new GCopyrightCollection(""),1,17);
  	tileDoq.myLayers='doq';
  	tileDoq.myFormat='image/jpeg';
  	tileDoq.myBaseURL='http://terraservice.net/ogcmap.ashx?';
    tileDoq.getTileUrl=CustomGetTileUrl;
  	
  	var tileDrg= new GTileLayer(new GCopyrightCollection(""),1,17);
  	tileDrg.myLayers='drg';
  	tileDrg.myFormat='image/jpeg';
  	tileDrg.myBaseURL='http://terraservice.net/ogcmap.ashx?';
    tileDrg.getTileUrl=CustomGetTileUrl;
  	
  	var layer1=[tileDoq]; 
  	var layer2=[tileDrg]; 
  	
  	var custommap1 = new GMapType(layer1, G_SATELLITE_MAP.getProjection(), "USGS", G_SATELLITE_MAP);
    var custommap2 = new GMapType(layer2, G_SATELLITE_MAP.getProjection(), "TOPO", G_SATELLITE_MAP);
        
    map.addMapType(custommap1);
    map.addMapType(custommap2);
    
    //map.addControl(new GLargeMapControl());
    map.setCenter(new GLatLng(44.21076583862,-121.30622863770), 14); 
    //map.addControl(new GLargeMapControl());
    map.addControl(new GMapTypeControl());
    //map.addOverlay(geoXml);
    map.addOverlay(geoKml);  }
} 