static/tiles2.js
author Tero Marttila <terom@fixme.fi>
Sat, 30 Aug 2008 19:13:15 +0300
changeset 49 10c7dce1a043
parent 29 605f4459a294
permissions -rw-r--r--
autogenerate the memcache_test help output, and pipeline memcache requests
29
605f4459a294 add some comments, prune some code, fix some (of the) bugs
Tero Marttila <terom@fixme.fi>
parents: 28
diff changeset
     1
// A source of tile images of a specific width/height, zoom level range, and some other attributes
28
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     2
var Source = Class.create({
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     3
    initialize: function (path, tile_width, tile_height, zoom_min, zoom_max) {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     4
        this.path = path;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     5
        this.tile_width = tile_width;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     6
        this.tile_height = tile_height;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     7
        this.zoom_min = zoom_min;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     8
        this.zoom_max = zoom_max;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     9
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    10
        this.refresh = false;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    11
        this.opt_key = this.opt_value = null;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    12
    },
29
605f4459a294 add some comments, prune some code, fix some (of the) bugs
Tero Marttila <terom@fixme.fi>
parents: 28
diff changeset
    13
    
605f4459a294 add some comments, prune some code, fix some (of the) bugs
Tero Marttila <terom@fixme.fi>
parents: 28
diff changeset
    14
    // build a URL for the given tile image
28
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    15
    build_url: function (col, row, zl, sw, sh) {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    16
        // two-bit hash (0-4) based on the (col, row)
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    17
        var hash = ( (col % 2) << 1 | (row % 2) ) + 1;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    18
        
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    19
        // the subdomain to use
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    20
        var subdomain = "";
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    21
        
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    22
        if (0)
29
605f4459a294 add some comments, prune some code, fix some (of the) bugs
Tero Marttila <terom@fixme.fi>
parents: 28
diff changeset
    23
            subdomain = "tile" + hash + ".";
28
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    24
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    25
        // the (x, y) co-ordinates
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    26
        var x = col * this.tile_width;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    27
        var y = row * this.tile_height;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    28
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    29
        var url = "http://" + subdomain + document.location.host + this.path + "?x=" + x + "&y=" + y + "&z=" + zl + "&sw=" + sw + "&sh=" + sh;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    30
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    31
        if (this.refresh)
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    32
            url += "&ts=" + new Date().getTime();
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    33
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    34
        if (this.opt_key && this.opt_value)
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    35
            url += "&" + this.opt_key + "=" + this.opt_value;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    36
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    37
        return url;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    38
    },
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    39
});
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    40
29
605f4459a294 add some comments, prune some code, fix some (of the) bugs
Tero Marttila <terom@fixme.fi>
parents: 28
diff changeset
    41
// a viewport that contains a substrate which contains several zoom layers which contain many tiles
28
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    42
var Viewport = Class.create({
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    43
    initialize: function (source, viewport_id) {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    44
        this.source = source;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    45
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    46
        this.id = viewport_id;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    47
        this.div = $(viewport_id);
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    48
        this.substrate = this.div.down("div.substrate");
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    49
    
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    50
        // the stack of zoom levels
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    51
        this.zoom_layers = [];
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    52
        
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    53
        // pre-populate the stack
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    54
        for (var zoom_level = source.zoom_min; zoom_level <= source.zoom_max; zoom_level++) {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    55
            var zoom_layer = new ZoomLayer(source, zoom_level);
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    56
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    57
            this.substrate.appendChild(zoom_layer.div);
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    58
            this.zoom_layers[zoom_level] = zoom_layer;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    59
        }
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    60
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    61
        // make the substrate draggable
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    62
        this.draggable = new Draggable(this.substrate, {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    63
            onStart: this.on_scroll_start.bind(this),
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    64
            onDrag: this.on_scroll_move.bind(this),
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    65
            onEnd: this.on_scroll_end.bind(this),
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    66
        });
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    67
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    68
        // event handlers
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    69
        Event.observe(this.substrate, "dblclick", this.on_dblclick.bindAsEventListener(this));
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    70
        Event.observe(this.substrate, "mousewheel", this.on_mousewheel.bindAsEventListener(this));
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    71
        Event.observe(this.substrate, "DOMMouseScroll", this.on_mousewheel.bindAsEventListener(this));     // mozilla
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    72
        Event.observe(document, "resize", this.on_resize.bindAsEventListener(this));
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    73
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    74
        // load initial view
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    75
        this.update_size();
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    76
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    77
        // this sets the scroll offsets, zoom level, and loads the tiles
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    78
        this.zoom_to(0, 0, 0);
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    79
    },
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    80
    
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    81
    /* event handlers */
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    82
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    83
    // window resized
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    84
    on_resize: function (ev) {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    85
        this.update_size();
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    86
        this.update_tiles();
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    87
    },
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    88
    
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    89
    // double-click handler
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    90
    on_dblclick: function (ev) {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    91
        var offset = this.event_offset(ev);
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    92
        
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    93
        this.zoom_center_to(
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    94
            this.scroll_x + offset.x,
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    95
            this.scroll_y + offset.y,
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    96
            1   // zoom in
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    97
        );
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    98
    },
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    99
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   100
    // mousewheel handler
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   101
    on_mousewheel: function (ev) {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   102
        // this works in very weird ways, so it's based on code from http://adomas.org/javascript-mouse-wheel/
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   103
        // (it didn't include any license, so this is written out manually)
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   104
        var delta;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   105
        
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   106
        // this is browser-dependant...
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   107
        if (ev.wheelDelta) {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   108
            // IE + Opera
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   109
            delta = ev.wheelDelta;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   110
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   111
            if (window.opera) {  
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   112
                // Opera, but apparently not newer versions?
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   113
                //delta = -delta;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   114
            }
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   115
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   116
        } else if (ev.detail) {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   117
            // Mozilla
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   118
            delta = -ev.detail;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   119
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   120
        } else {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   121
            // mousewheel not supported...
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   122
            return;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   123
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   124
        }
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   125
        
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   126
        // don't scroll the page
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   127
        if (ev.preventDefault)
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   128
            ev.preventDefault();
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   129
        
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   130
        // delta > 0 : scroll up, zoom in
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   131
        // delta < 0 : scroll down, zoom out
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   132
        delta = delta < 0 ? -1 : 1;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   133
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   134
        // Firefox's DOMMouseEvent's pageX/Y attributes are broken. layerN is for mozilla, offsetN for IE, seems to work
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   135
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   136
        // absolute location of the cursor
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   137
        var x = parseInt(ev.target.style.left) + (ev.layerX ? ev.layerX : ev.offsetX);
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   138
        var y = parseInt(ev.target.style.top) + (ev.layerY ? ev.layerY : ev.offsetY);
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   139
        
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   140
        // zoom \o/
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   141
        this.zoom_center_to(x, y, delta);
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   142
    },
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   143
    
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   144
    // substrate scroll was started
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   145
    on_scroll_start: function (ev) {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   146
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   147
    },
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   148
    
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   149
    // substrate was scrolled, update scroll_{x,y}, and then update tiles after 100ms
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   150
    on_scroll_move: function (ev) {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   151
        this.update_scroll();
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   152
        this.update_after_timeout();
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   153
    },
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   154
    
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   155
    // substrate scroll was ended, update tiles now
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   156
    on_scroll_end: function (ev) {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   157
        this.update_now();
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   158
    },
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   159
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   160
    /* get state */
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   161
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   162
    // return the absolute (x, y) coords of the given event inside the viewport
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   163
    event_offset: function (ev) {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   164
        var offset = this.div.cumulativeOffset();
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   165
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   166
        return {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   167
            x: ev.pointerX() - offset.left, 
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   168
            y: ev.pointerY() - offset.top
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   169
        };
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   170
    },
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   171
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   172
    /* modify state */
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   173
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   174
    // scroll the view to place the given absolute (x, y) co-ordinate at the top left
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   175
    scroll_to: function (x, y) {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   176
        // update it via the style
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   177
        this.substrate.style.top = "-" + y + "px";
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   178
        this.substrate.style.left = "-" + x + "px";
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   179
        
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   180
        // update these as well
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   181
        this.scroll_x = x;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   182
        this.scroll_y = y;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   183
    },
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   184
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   185
    // scroll the view to place the given absolute (x, y) co-ordinate at the center
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   186
    scroll_center_to: function (x, y) {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   187
        return this.scroll_to(
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   188
            x - this.center_offset_x,
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   189
            y - this.center_offset_y
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   190
        );
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   191
    },
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   192
 
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   193
    // zoom à la delta such that the given (zoomed) absolute (x, y) co-ordinates will be at the top left
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   194
    zoom_scaled: function (x, y, delta) {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   195
        if (!this.update_zoom(delta))
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   196
            return false;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   197
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   198
        // scroll to the new position
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   199
        this.scroll_to(x, y);
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   200
        
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   201
        // update view
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   202
        // XXX: ...
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   203
        this.update_after_timeout();
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   204
        
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   205
        return true;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   206
    },
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   207
   
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   208
    // zoom à la delta such that the given (current) absolute (x, y) co-ordinates will be at the top left
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   209
    zoom_to: function (x, y, delta) {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   210
        return this.zoom_scaled(
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   211
            scaleByZoomDelta(x, delta),
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   212
            scaleByZoomDelta(y, delta),
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   213
            delta
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   214
        );
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   215
    },
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   216
    
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   217
    // zoom à la delta such that the given (current) absolute (x, y) co-ordinates will be at the center
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   218
    zoom_center_to: function (x, y, delta) {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   219
        return this.zoom_scaled(
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   220
            scaleByZoomDelta(x, delta) - this.center_offset_x,
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   221
            scaleByZoomDelta(y, delta) - this.center_offset_y,
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   222
            delta
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   223
        );
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   224
    },
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   225
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   226
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   227
    /* update view/state to reflect reality */
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   228
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   229
    // figure out the viewport dimensions
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   230
    update_size: function () {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   231
        this.view_width = this.div.getWidth();
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   232
        this.view_height = this.div.getHeight();
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   233
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   234
        this.center_offset_x = Math.floor(this.view_width / 2);
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   235
        this.center_offset_y = Math.floor(this.view_height / 2);
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   236
    },
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   237
    
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   238
    // figure out the scroll offset as absolute pixel co-ordinates at the top left
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   239
    update_scroll: function() {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   240
        this.scroll_x = -parseInt(this.substrate.style.left);
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   241
        this.scroll_y = -parseInt(this.substrate.style.top);
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   242
    },
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   243
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   244
    // wiggle the ZoomLevels around to match the current zoom level
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   245
    update_zoom: function(delta) {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   246
        if (!this.zoom_layer) {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   247
            // first zoom operation
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   248
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   249
            // is the new zoom level valid?
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   250
            if (!this.zoom_layers[delta])
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   251
                return false;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   252
            
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   253
            // set the zoom layyer
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   254
            this.zoom_layer = this.zoom_layers[delta];
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   255
            
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   256
            // enable it
29
605f4459a294 add some comments, prune some code, fix some (of the) bugs
Tero Marttila <terom@fixme.fi>
parents: 28
diff changeset
   257
            this.zoom_layer.enable(11);
28
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   258
            
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   259
            // no need to .update_tiles or anything like that
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   260
            
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   261
        } else {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   262
            // is the new zoom level valid?
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   263
            if (!this.zoom_layers[this.zoom_layer.level + delta])
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   264
                return false;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   265
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   266
            var zoom_old = this.zoom_layer;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   267
            var zoom_new = this.zoom_layers[this.zoom_layer.level + delta];
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   268
            
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   269
            // XXX: ugly hack
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   270
            if (this.zoom_timer) {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   271
                clearTimeout(this.zoom_timer);
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   272
                this.zoom_timer = null;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   273
            }
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   274
            
29
605f4459a294 add some comments, prune some code, fix some (of the) bugs
Tero Marttila <terom@fixme.fi>
parents: 28
diff changeset
   275
            // get other zoom layers out of the way
605f4459a294 add some comments, prune some code, fix some (of the) bugs
Tero Marttila <terom@fixme.fi>
parents: 28
diff changeset
   276
            this.zoom_layers.each(function (zl) {
605f4459a294 add some comments, prune some code, fix some (of the) bugs
Tero Marttila <terom@fixme.fi>
parents: 28
diff changeset
   277
                zl.disable();
605f4459a294 add some comments, prune some code, fix some (of the) bugs
Tero Marttila <terom@fixme.fi>
parents: 28
diff changeset
   278
            });
605f4459a294 add some comments, prune some code, fix some (of the) bugs
Tero Marttila <terom@fixme.fi>
parents: 28
diff changeset
   279
            
28
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   280
            // update the zoom layer
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   281
            this.zoom_layer = zoom_new;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   282
            
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   283
            // apply new z-indexes, preferr the current one over the new one
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   284
            zoom_new.enable(11);
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   285
            zoom_old.enable(10);
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   286
            
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   287
            // resize the tiles in the two zoom layers
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   288
            zoom_new.update_tiles(zoom_new.level);
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   289
            zoom_old.update_tiles(zoom_old.level);
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   290
            
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   291
            // XXX: ugly hack
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   292
            this.zoom_timer = setTimeout(function () { zoom_old.disable()}, 1000);
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   293
        }
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   294
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   295
        return true;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   296
    },
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   297
    
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   298
    // ensure that all tiles that are currently visible are loaded
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   299
    update_tiles: function() {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   300
        // short names for some vars...
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   301
        var x = this.scroll_x;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   302
        var y = this.scroll_y;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   303
        var sw = this.view_width;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   304
        var sh = this.view_height;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   305
        var tw = this.source.tile_width;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   306
        var th = this.source.tile_height;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   307
        var zl = this.zoom_layer.level;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   308
        
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   309
        // figure out what set of columns are visible
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   310
        var start_col = Math.max(0, Math.floor(x / tw));
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   311
        var start_row = Math.max(0, Math.floor(y / th));
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   312
        var end_col = Math.floor((x + sw) / tw);
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   313
        var end_row = Math.floor((y + sh) / th);
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   314
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   315
        // loop through all those tiles
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   316
        for (var col = start_col; col <= end_col; col++) {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   317
            for (var row = start_row; row <= end_row; row++) {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   318
                // the tile's id
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   319
                var id = "tile_" + this.zoom_layer.level + "_" + col + "_" + row;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   320
                
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   321
                // does the element exist already?
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   322
                var t = $(id);
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   323
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   324
                if (!t) {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   325
                    // build a new tile
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   326
                    t = Builder.node("img", {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   327
                            src:    this.source.build_url(col, row, zl, sw, sh),
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   328
                            id:     id,
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   329
                            title:  "(" + col + ", " + row + ")",
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   330
                            // style set later
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   331
                        }
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   332
                    );
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   333
                    
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   334
                    // set the CSS style stuff
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   335
                    t.style.top = th * row;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   336
                    t.style.left = tw * col;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   337
                    t.style.display = "none";
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   338
                    
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   339
                    // wait for it to load
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   340
                    Event.observe(t, "load", _tile_loaded.bindAsEventListener(t));
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   341
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   342
                    // store the col/row
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   343
                    t.__col = col;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   344
                    t.__row = row;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   345
                    
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   346
                    // add it to the zoom layer
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   347
                    this.zoom_layer.add_tile(t);
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   348
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   349
                } else if (this.source.reload) {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   350
                    // force the tile to reload
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   351
                    touch_tile(t, col, row);
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   352
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   353
                }
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   354
            }
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   355
        }
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   356
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   357
/* XXX: fixme
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   358
        // update the link-to-this-page thing
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   359
        document.location.hash = "#goto_" + (x + g_w_half) + ":" + g_w + "_" + (y + g_h_half) + ":" + g_h + "_" + g_z;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   360
*/
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   361
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   362
    }, 
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   363
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   364
    // do update_tiles after 100ms, unless we are called again
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   365
    update_after_timeout: function () {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   366
        this._update_idle = false;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   367
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   368
        if (this._update_timeout)
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   369
            clearTimeout(this._update_timeout);
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   370
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   371
        this._update_timeout = setTimeout(this._update_timeout_trigger.bind(this), 100);  
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   372
    },
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   373
    
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   374
    _update_timeout_trigger: function () {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   375
        this._update_idle = true;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   376
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   377
        this.update_tiles();
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   378
    },
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   379
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   380
    // call update_tiles if it hasn't been called due to update_after_timeout
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   381
    update_now: function () {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   382
        if (this._update_timeout)
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   383
            clearTimeout(this._update_timeout);
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   384
        
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   385
        if (!this._update_idle)
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   386
            this.update_tiles();
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   387
    },
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   388
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   389
});
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   390
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   391
// used by Viewport.update_tiles to make a tile visible after it has loaded
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   392
function _tile_loaded (ev) {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   393
    this.style.display = "block";
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   394
}
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   395
29
605f4459a294 add some comments, prune some code, fix some (of the) bugs
Tero Marttila <terom@fixme.fi>
parents: 28
diff changeset
   396
// a zoom layer containing the tiles for one zoom level
28
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   397
var ZoomLayer = Class.create({
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   398
    initialize: function (source, zoom_level) {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   399
        this.source = source;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   400
        this.level = zoom_level;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   401
        this.div = Builder.node("div", { id: "zl_" + this.level, style: "position: relative; display: none;"});
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   402
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   403
        // our tiles
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   404
        this.tiles = [];
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   405
    },
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   406
    
29
605f4459a294 add some comments, prune some code, fix some (of the) bugs
Tero Marttila <terom@fixme.fi>
parents: 28
diff changeset
   407
    // add a tile to this zoom layer
28
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   408
    add_tile: function (tile) {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   409
        this.div.appendChild(tile);
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   410
        this.tiles.push(tile);
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   411
    },
29
605f4459a294 add some comments, prune some code, fix some (of the) bugs
Tero Marttila <terom@fixme.fi>
parents: 28
diff changeset
   412
    
605f4459a294 add some comments, prune some code, fix some (of the) bugs
Tero Marttila <terom@fixme.fi>
parents: 28
diff changeset
   413
    // make this zoom layer visible with the given z-index
28
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   414
    enable: function (z_index) {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   415
        this.div.style.zIndex = z_index;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   416
        this.div.show();
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   417
    },
29
605f4459a294 add some comments, prune some code, fix some (of the) bugs
Tero Marttila <terom@fixme.fi>
parents: 28
diff changeset
   418
   
605f4459a294 add some comments, prune some code, fix some (of the) bugs
Tero Marttila <terom@fixme.fi>
parents: 28
diff changeset
   419
    // hide this zoom layer
28
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   420
    disable: function (z_index) {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   421
        this.div.hide();
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   422
    },
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   423
    
29
605f4459a294 add some comments, prune some code, fix some (of the) bugs
Tero Marttila <terom@fixme.fi>
parents: 28
diff changeset
   424
    // update the tiles in this zoom layer so that they are in the correct position and of the correct size when
605f4459a294 add some comments, prune some code, fix some (of the) bugs
Tero Marttila <terom@fixme.fi>
parents: 28
diff changeset
   425
    // viewed with the given zoom level
28
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   426
    update_tiles: function (zoom_level) {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   427
        var zd = zoom_level - this.level;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   428
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   429
        var tw = scaleByZoomDelta(this.source.tile_width, zd);
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   430
        var th = scaleByZoomDelta(this.source.tile_height, zd);
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   431
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   432
        var tiles = this.tiles;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   433
        var tiles_len = tiles.length;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   434
        var t, ts;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   435
        
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   436
        for (var i = 0; i < tiles_len; i++) {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   437
            t = tiles[i];
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   438
            ts = t.style;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   439
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   440
            ts.width = tw;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   441
            ts.height = th;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   442
            ts.top = th*t.__row;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   443
            ts.left = tw*t.__col;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   444
        }
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   445
    },
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   446
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   447
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   448
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   449
});
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   450
29
605f4459a294 add some comments, prune some code, fix some (of the) bugs
Tero Marttila <terom@fixme.fi>
parents: 28
diff changeset
   451
// scale the given co-ordinate by a zoom delta. If we zoom in (dz > 0), n will become larger, and if we zoom 
605f4459a294 add some comments, prune some code, fix some (of the) bugs
Tero Marttila <terom@fixme.fi>
parents: 28
diff changeset
   452
// out (dz < 0), n will become smaller.
28
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   453
function scaleByZoomDelta (n, dz) {
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   454
    if (dz > 0)
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   455
        return n << dz;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   456
    else
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   457
        return n >> -dz;
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   458
}
c239c5c3beda strip down the scriptaculous javascript code to a bare minimum, and rewrite tiles.js as tiles2.js - uses Classes, so the code is a lot neater. Still a couple bugs to work out, but mostly works
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   459