

function pointFromScreenBlock(scr_x,scr_y,blk_x,blk_y){
    return xy2point(scr_x * 256 + blk_x * 16 + 8, 
                    scr_y * 168 + blk_y * 16 + 8);
}

function uniformtotransverse(lat){
      lat = (2.0 * Math.atan(Math.exp(Math.PI * lat))) - (Math.PI / 2.0); 
      lat *= (180.0 / Math.PI); 
      return lat;
}

function transversetouniform(lat){
      lat *= (Math.PI / 180.0); 
      lat = Math.log(Math.tan((lat + (Math.PI / 2.0)) / 2.0)) / Math.PI;
      return lat;
}

function xy2point(x, y){
	return new GPoint(-180.0 + (x * 360.0) / 4096.0, 
                          uniformtotransverse(1.0 - ((2.0 * y) / 4096.0)));
}

function lat2y(lat){
      lat = transversetouniform(lat);
      lat = ((1.0 - lat) / 2.0) * 4096.0;
      return lat;
}

function long2x(l){
      l = ((l + 180.0)/ 360.0) * 4096;
      return l;
}

function createMarker(point,message){
     var marker = new GMarker(point);
     GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(message);
     });
     return marker;
}

// Load With A Custom Map
function hyrule_onload() {
    
    //Create a new GMap and load it to the html object id="map"      
    map = new GMap2(document.getElementById('hyrule'));

    var copyCollection = new GCopyrightCollection('Hyrule');
    var copyright = new GCopyright(1, 
	new GLatLngBounds(new GLatLng(-90, -180), new GLatLng(90, 180)), 
	0, "©2007 Tractat.us");

    copyCollection.addCopyright(copyright);
    
    var tilelayers = [new GTileLayer(copyCollection, 0, 8)];
    tilelayers[0].getTileUrl = CustomGetTileUrl;

    function CustomGetTileUrl(a,b) {
	var z = 17 - b;

	var f = "http://www.tractat.us/googlemaps/zelda/hyrule_map.php?x="+a.x+"&y="+a.y+"&zoom="+z;

	return f;
    }

    var custommap = new GMapType(tilelayers, new GMercatorProjection(18), "Hyrule", {errorMessage:"Error: Link is lost."});
    map.addMapType(custommap);

    //Add Map Type buttons in the upper right corner
    //map.addControl(new GMapTypeControl());

    //Add Small zoom controls
    map.addControl(new GLargeMapControl());
    //map.addControl(new GMapTypeControl());

    
    //Move to start 
    map.setCenter(new GLatLng(56.51101750,-12.12890625),4,custommap);

    hyrule_locations(map);
}


