﻿
// JScript File

var mapTypes = [];
var layerList = [];    
var tilesLoadedArray = [];

function initLayers()
{
    for (var i=0; i<2; i++)
    {
        var layerName = "";
        var layerTitle = "";
        var layerUrl = "";
        var layerCopyright = "";
        var minZoom = 11;
        var maxZoom = 17;
        
        switch (i)
        {
            case 0 :
                layerName = "1897";
                layerTitle = "1897 Bournemouth Street Map";
                layerUrl = "oldmaps/1897/";
                layerCopyright = "Map Data: out of copyright Bournemouth Street Map";
                break;
            case 1 :    
                layerName = "1931";
                layerTitle = "1931 O.S. Map";
                layerUrl = "oldmaps/1931/";
                layerCopyright = "Map Data: out of copyright Bournemouth Ordnance Survey Map";
                minZoom = 9;
                maxZoom = 16;
                break;
        }
        
        mapTypes[i] = addLayer(layerName, layerTitle, layerUrl, layerCopyright, minZoom, maxZoom);
    }
    
    map.setMapType(mapTypes[0]);
}    
    
function addLayer(layerName,layerTitle,layerUrl,layerCopyright, minZoom, maxZoom)
{
    var tileLayers = [ new GTileLayer(new GCopyrightCollection(layerCopyright),minZoom,maxZoom) ];
    tileLayers[0].getTileUrl = function(a,b,c)
                             {
                                try 
                                {
                                    return layerUrl + getTileURL(a,b,c);
                                }
                                catch (exception)
                                {
                                }
                             };
    var mapType = new GMapType( tileLayers, 
                                G_SATELLITE_MAP.getProjection(), 
                                layerName, "Tile Unavailable" );
    map.addMapType(mapType);    

    return mapType;
}


function getTileURL(a,b)
{
    var c = Math.pow(2,b);
    var d = a.x;
    var e = a.y;
    var f = "t";

    for (var g = 0; g < b; g++)
    {
        c = c / 2;
        if (e < c)
        {
            if ( d < c )
            {
                f += "q";
            }
            else
            {
                f += "r";
                d -= c;
            }
        }
        else
        {
            if( d < c )
            {
                f += "t";
                e-=c
            }
            else
            {
                f += "s";
                d -= c;
                e -= c;
            }
        }
    }
    
	var tileID = f;
	var tileLen = tileID.length;
	var i = 0;
	var tilePath = "";

    while(i+3 < tileLen)
    {
		tilePath += tileID.substr(i,3);
		tilePath += '/';
		i += 3;
	}
	tilePath += tileID.substr(i);
	tilePath += '.jpg';
		
	var tileDir = 18 - tileLen;
    if (tileDir < 10)
    {
		tileDir = '0' + tileDir;
	}
		
	return tileDir + '/' + tilePath;
}

