/*
Copyright (C) 2001, 2006 United States Government
as represented by the Administrator of the
National Aeronautics and Space Administration.
All Rights Reserved.
*/
package gov.nasa.worldwind.layers.Earth;

import gov.nasa.worldwind.avlist.*;
import gov.nasa.worldwind.geom.*;
import gov.nasa.worldwind.layers.BasicTiledImageLayer;
import gov.nasa.worldwind.util.*;

import java.net.*;
import java.util.GregorianCalendar;

/**
 */
public class T_AK extends BasicTiledImageLayer
{
    public T_AK()
    {
        super(makeLevels(new URLBuilder()));
//        this.setMaxActiveAltitude(19.2e5d);//1200mi
      this.setMaxActiveAltitude(4.8e5d);//300mi
        this.setUseTransparentTextures(true);
    	this.setName("T_AK");
    }

    private static LevelSet makeLevels(URLBuilder urlBuilder)
    {
        AVList params = new AVListImpl();

        params.setValue(AVKey.TILE_WIDTH, 512);
        params.setValue(AVKey.TILE_HEIGHT, 512);
        
        params.setValue(AVKey.DATA_CACHE_NAME, "Earth/FAA/TAC/AK/");
//        params.setValue(AVKey.SERVICE, "http://localhost/serv/WWJ/FAA");
        params.setValue(AVKey.SERVICE, "http://nlneilson.com/serv/FAA");
        params.setValue(AVKey.DATASET_NAME, "AK");
        params.setValue(AVKey.FORMAT_SUFFIX, ".dds");
        params.setValue(AVKey.NUM_LEVELS, 3);
        params.setValue(AVKey.NUM_EMPTY_LEVELS, 0);

        Angle levelZeroDelta = Angle.fromDegrees(1.0);
        params.setValue(AVKey.LEVEL_ZERO_TILE_DELTA, new LatLon(levelZeroDelta, levelZeroDelta));

        params.setValue(AVKey.SECTOR, new Sector(Angle.fromDegrees(60.5), Angle.fromDegrees(65.31),
                Angle.fromDegrees(-153.2), Angle.fromDegrees(-145.6)));
        
        
       
        params.setValue(AVKey.TILE_URL_BUILDER, urlBuilder);
//        params.setValue(AVKey.EXPIRY_TIME, new GregorianCalendar(2007, 7, 6).getTimeInMillis());

        return new LevelSet(params);
    }

    private static class URLBuilder implements TileUrlBuilder
    {
        public URL getURL(Tile tile, String imageFormat) throws MalformedURLException
        {
            StringBuffer sb = new StringBuffer(tile.getLevel().getService());
            if (sb.lastIndexOf("/") != sb.length() - 1)
                sb.append("/");
            sb.append(tile.getLevel().getDataset());
            sb.append("/");
            sb.append(tile.getLevelNumber());
            sb.append("/");
            sb.append(tile.getRow());
            sb.append("/");
            sb.append(tile.getRow());
            sb.append("_");
            sb.append(tile.getColumn());

            sb.append(".jpg");

            return new java.net.URL(sb.toString());
        }
    }

/*    @Override
    public String toString()
    {
        return Logging.getMessage("layers.Earth.T_48St.Name");
    }
*/    
}
