diff options
author | Matthew Somerville <matthew@balti.ukcod.org.uk> | 2010-11-24 18:19:13 +0000 |
---|---|---|
committer | Matthew Somerville <matthew@balti.ukcod.org.uk> | 2010-11-24 18:19:13 +0000 |
commit | b63492a28b56cb05396bc41e66e312eacf3ad62a (patch) | |
tree | 844f8ea98126f6ed040225fb6391344bb75c1efc | |
parent | f76785b0ad5a2f55254fb8106e742a7f7f703204 (diff) |
Move tilma map functions to separate file.
-rw-r--r-- | web/js.js | 322 | ||||
-rw-r--r-- | web/js/map-tilma.js | 320 |
2 files changed, 320 insertions, 322 deletions
@@ -1,12 +1,6 @@ /* * js.js * FixMyStreet JavaScript - * - * TODO - * Investigate jQuery - * Tidy it all up - * Selection of pin doesn't really need a server request, but I don't really care - * */ @@ -16,41 +10,6 @@ YAHOO.util.Event.onContentReady('pc', function() { } }); -function compass_pan(e, a) { - YAHOO.util.Event.preventDefault(e); - if (a.home) { - a.x = a.orig_x-drag_x; - a.y = a.orig_y-drag_y; - } - pan(a.x, a.y); -} - -YAHOO.util.Event.onContentReady('compass', function() { - var ua=navigator.userAgent.toLowerCase(); - // if (document.getElementById('mapForm') && (/safari/.test(ua) || /Konqueror/.test(ua))) return; - if (document.getElementById('map').offsetWidth > 510) return; - - var points = this.getElementsByTagName('a'); - YAHOO.util.Event.addListener(points[1], 'click', compass_pan, { x:0, y:fixmystreet.tileheight }); - YAHOO.util.Event.addListener(points[3], 'click', compass_pan, { x:fixmystreet.tilewidth, y:0 }); - YAHOO.util.Event.addListener(points[5], 'click', compass_pan, { x:-fixmystreet.tilewidth, y:0 }); - YAHOO.util.Event.addListener(points[7], 'click', compass_pan, { x:0, y:-fixmystreet.tileheight }); - YAHOO.util.Event.addListener(points[0], 'click', compass_pan, { x:fixmystreet.tilewidth, y:fixmystreet.tileheight }); - YAHOO.util.Event.addListener(points[2], 'click', compass_pan, { x:-fixmystreet.tilewidth, y:fixmystreet.tileheight }); - YAHOO.util.Event.addListener(points[6], 'click', compass_pan, { x:fixmystreet.tilewidth, y:-fixmystreet.tileheight }); - YAHOO.util.Event.addListener(points[8], 'click', compass_pan, { x:-fixmystreet.tilewidth, y:-fixmystreet.tileheight }); - YAHOO.util.Event.addListener(points[4], 'click', compass_pan, { home:1, orig_x:drag_x, orig_y:drag_y }); -}); - -YAHOO.util.Event.onContentReady('map', function() { - var ua=navigator.userAgent.toLowerCase(); - // if (document.getElementById('mapForm') && (/safari/.test(ua) || /Konqueror/.test(ua))) return; - if (document.getElementById('map').offsetWidth > 510) return; - new YAHOO.util.DDMap('map'); - update_tiles(fixmystreet.start_x, fixmystreet.start_y, true); -}); - - YAHOO.util.Event.onContentReady('mapForm', function() { this.onsubmit = function() { if (this.submit_problem) { @@ -119,52 +78,6 @@ YAHOO.util.Event.onContentReady('email_alert_box', function() { }); }); -YAHOO.util.Event.addListener('hide_pins_link', 'click', function(e) { - YAHOO.util.Event.preventDefault(e); - if (this.innerHTML == 'Show pins') { - YAHOO.util.Dom.setStyle('pins', 'display', 'block'); - this.innerHTML = 'Hide pins'; - } else if (this.innerHTML == 'Dangos pinnau') { - YAHOO.util.Dom.setStyle('pins', 'display', 'block'); - this.innerHTML = 'Cuddio pinnau'; - } else if (this.innerHTML == 'Cuddio pinnau') { - YAHOO.util.Dom.setStyle('pins', 'display', 'none'); - this.innerHTML = 'Dangos pinnau'; - } else if (this.innerHTML == 'Hide pins') { - YAHOO.util.Dom.setStyle('pins', 'display', 'none'); - this.innerHTML = 'Show pins'; - } -}); -YAHOO.util.Event.addListener('all_pins_link', 'click', function(e) { - YAHOO.util.Event.preventDefault(e); - YAHOO.util.Dom.setStyle('pins', 'display', 'block'); - var welsh = 0; - if (this.innerHTML == 'Include stale reports') { - this.innerHTML = 'Hide stale reports'; - document.getElementById('all_pins').value = '1'; - load_pins(fixmystreet.x, fixmystreet.y); - } else if (this.innerHTML == 'Cynnwys hen adroddiadau') { - this.innerHTML = 'Cuddio hen adroddiadau'; - document.getElementById('all_pins').value = '1'; - welsh = 1; - load_pins(fixmystreet.x, fixmystreet.y); - } else if (this.innerHTML == 'Cuddio hen adroddiadau') { - this.innerHTML = 'Cynnwys hen adroddiadau'; - welsh = 1; - document.getElementById('all_pins').value = ''; - load_pins(fixmystreet.x, fixmystreet.y); - } else if (this.innerHTML == 'Hide stale reports') { - this.innerHTML = 'Include stale reports'; - document.getElementById('all_pins').value = ''; - load_pins(fixmystreet.x, fixmystreet.y); - } - if (welsh) { - document.getElementById('hide_pins_link').innerHTML = 'Cuddio pinnau'; - } else { - document.getElementById('hide_pins_link').innerHTML = 'Hide pins'; - } -}); - /* File upload */ /* function doSubmit(e) { @@ -250,238 +163,3 @@ var swfu_settings = { } }; */ - -// I love the global -var tile_x = 0; -var tile_y = 0; - -var myAnim; -function pan(x, y) { - if (!myAnim || !myAnim.isAnimated()) { - myAnim = new YAHOO.util.Motion('drag', { points:{by:[x,y]} }, 10, YAHOO.util.Easing.easeOut); - myAnim.useSeconds = false; - //myAnim.onTween.subscribe(function(){ update_tiles(x/10, y/10, false); }); - myAnim.onComplete.subscribe(function(){ - update_tiles(x, y, false); - cleanCache(); - }); - myAnim.animate(); - } -} - -var drag_x = 0; -var drag_y = 0; -function update_tiles(dx, dy, force) { - dx = getInt(dx); dy = getInt(dy); - if (!dx && !dy && !force) return; - var old_drag_x = drag_x; - var old_drag_y = drag_y; - drag_x += dx; - drag_y += dy; - - var drag = document.getElementById('drag'); - drag.style.left = drag_x + 'px'; - drag.style.top = drag_y + 'px'; - - var horizontal = Math.floor(old_drag_x/fixmystreet.tilewidth) - Math.floor(drag_x/fixmystreet.tilewidth); - var vertical = Math.floor(old_drag_y/fixmystreet.tileheight) - Math.floor(drag_y/fixmystreet.tileheight); - if (!horizontal && !vertical && !force) return; - fixmystreet.x += horizontal; - - tile_x += horizontal; - fixmystreet.y -= vertical; - tile_y += vertical; - var url = [ root_path + '/tilma/tileserver/' + fixmystreet.tile_type + '/', fixmystreet.x, '-', (fixmystreet.x+5), ',', fixmystreet.y, '-', (fixmystreet.y+5), '/JSON' ].join(''); - YAHOO.util.Connect.asyncRequest('GET', url, { - success: urls_loaded, failure: urls_not_loaded, - argument: [tile_x, tile_y] - }); - - if (force) return; - load_pins(fixmystreet.x, fixmystreet.y); -} - -function load_pins(x, y) { - if (document.getElementById('formX')) { - all_pins = ''; - if (document.getElementById('all_pins')) { - all_pins = document.getElementById('all_pins').value; - } - var ajax_params = [ 'sx=' + document.getElementById('formX').value, - 'sy=' + document.getElementById('formY').value, - 'x=' + (x+3), - 'y=' + (y+3), - 'all_pins=' + all_pins ]; - - if (document.getElementById('extra_param')) { - ajax_params.push(document.getElementById('extra_param').name + '=' + document.getElementById('extra_param').value); - } - - var url = [ root_path , '/ajax?', ajax_params.join(';')].join(''); - YAHOO.util.Connect.asyncRequest('GET', url, { - success: pins_loaded - }); - } -} - -function pins_loaded(o) { - var data = eval(o.responseText); - document.getElementById('pins').innerHTML = data.pins; - if (typeof(data.current) != 'undefined') - document.getElementById('current').innerHTML = data.current; - if (typeof(data.current_near) != 'undefined') - document.getElementById('current_near').innerHTML = data.current_near; - if (typeof(data.fixed_near) != 'undefined') - document.getElementById('fixed_near').innerHTML = data.fixed_near; -} - -function urls_not_loaded(o) { /* Nothing yet */ } - -// Load 6x6 grid of tiles around current 2x2 -function urls_loaded(o) { - var tiles = eval(o.responseText); - var drag = document.getElementById('drag'); - for (var i=0; i<6; i++) { - var ii = (i + o.argument[1]); - for (var j=0; j<6; j++) { - if (tiles[i][j] == null) continue; - var jj = (j + o.argument[0]); - var id = [ 't', ii, '.', jj ].join(''); - var xx = fixmystreet.x+j; - var yy = fixmystreet.y+5-i; - var img = document.getElementById(id); - if (img) { - if (!img.galleryimg) { img.galleryimg = false; } - img.onclick = drag_check; - tileCache[id] = { x: xx, y: yy, t: img }; - continue; - } - img = cloneNode(); - img.style.top = ((ii-2)*fixmystreet.tileheight) + 'px'; - img.style.left = ((jj-2)*fixmystreet.tilewidth) + 'px'; - img.name = [ 'tile_', xx, '.', yy ].join('') - img.id = id; - if (browser) { - img.style.visibility = 'hidden'; - img.onload=function() { this.style.visibility = 'visible'; } - } - img.src = 'http://tilma.mysociety.org/tileserver/' + fixmystreet.tile_type + '/' + tiles[i][j]; - tileCache[id] = { x: xx, y: yy, t: img }; - drag.appendChild(img); - } - } -} - -var imgElCache; -function cloneNode() { - var img = null; - if (!imgElCache) { - var form = document.getElementById('mapForm'); - if (form) { - img = imgElCache = document.createElement('input'); - img.type = 'image'; - } else { - img = imgElCache = document.createElement('img'); - } - img.onclick = drag_check; - img.style.position = 'absolute'; - img.style.width = fixmystreet.tilewidth + 'px'; - img.style.height = fixmystreet.tileheight + 'px'; - img.galleryimg = false; - img.alt = 'Loading...'; - } else { - img = imgElCache.cloneNode(true); - } - return img; -} - -var tileCache=[]; -function cleanCache() { - for (var i in tileCache) { - if (tileCache[i].x < fixmystreet.x || tileCache[i].x > fixmystreet.x+5 || tileCache[i].y < fixmystreet.y || tileCache[i].y > fixmystreet.y+5) { - var t = tileCache[i].t; - t.parentNode.removeChild(t); // de-leak? - delete tileCache[i]; - } - } -} - -/* Called every mousemove, so on first call, overwrite itself with quicker version */ -function get_posn(ev) { - var posx, posy; - if (ev.pageX || ev.pageY) { - get_posn = function(e) { - return { x: e.pageX, y: e.pageY }; - }; - } else if (ev.clientX || ev.clientY) { - get_posn = function(e) { - return { - x: e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft, - y: e.clientY + document.body.scrollTop + document.documentElement.scrollTop - }; - }; - } else { - get_posn = function(e) { - return { x: undef, y: undef }; - }; - } - return get_posn(ev); -} - -function setCursor(s) { - var drag = document.getElementById('drag'); - var inputs = drag.getElementsByTagName('input'); - for (var i=0; i<inputs.length; i++) { - inputs[i].style.cursor = s; - } -} - -var in_drag = false; -function drag_check(e) { - if (in_drag) { - in_drag = false; - return false; - } - return true; -} - -/* Simpler version of DDProxy */ -var mouse_pos = {}; -YAHOO.util.DDMap = function(id, sGroup, config) { - this.init(id, sGroup, config); -}; -YAHOO.extend(YAHOO.util.DDMap, YAHOO.util.DD, { - scroll: false, - b4MouseDown: function(e) { }, - startDrag: function(x, y) { - mouse_pos = { x: x, y: y }; - setCursor('move'); - in_drag = true; - }, - b4Drag: function(e) { }, - onDrag: function(e) { - var point = get_posn(e); - if (point == mouse_pos) return false; - var dx = point.x-mouse_pos.x; - var dy = point.y-mouse_pos.y; - mouse_pos = point; - update_tiles(dx, dy, false); - }, - endDrag: function(e) { - setCursor('crosshair'); - cleanCache(); - }, - toString: function() { - return ("DDMap " + this.id); - } -}); - -var browser = 1; -var ua=navigator.userAgent.toLowerCase(); -if (!/opera|safari|gecko/.test(ua) && typeof document.all!='undefined') - browser=0; - -function getInt(n) { - n = parseInt(n); return (isNaN(n) ? 0 : n); -} - diff --git a/web/js/map-tilma.js b/web/js/map-tilma.js new file mode 100644 index 000000000..1ae38cff1 --- /dev/null +++ b/web/js/map-tilma.js @@ -0,0 +1,320 @@ +/* + * map-tilma.js + * JavaScript specifically for the tilma based maps + */ + +function compass_pan(e, a) { + YAHOO.util.Event.preventDefault(e); + if (a.home) { + a.x = a.orig_x-drag_x; + a.y = a.orig_y-drag_y; + } + pan(a.x, a.y); +} + +YAHOO.util.Event.onContentReady('compass', function() { + var ua=navigator.userAgent.toLowerCase(); + // if (document.getElementById('mapForm') && (/safari/.test(ua) || /Konqueror/.test(ua))) return; + if (document.getElementById('map').offsetWidth > 510) return; + + var points = this.getElementsByTagName('a'); + YAHOO.util.Event.addListener(points[1], 'click', compass_pan, { x:0, y:fixmystreet.tileheight }); + YAHOO.util.Event.addListener(points[3], 'click', compass_pan, { x:fixmystreet.tilewidth, y:0 }); + YAHOO.util.Event.addListener(points[5], 'click', compass_pan, { x:-fixmystreet.tilewidth, y:0 }); + YAHOO.util.Event.addListener(points[7], 'click', compass_pan, { x:0, y:-fixmystreet.tileheight }); + YAHOO.util.Event.addListener(points[0], 'click', compass_pan, { x:fixmystreet.tilewidth, y:fixmystreet.tileheight }); + YAHOO.util.Event.addListener(points[2], 'click', compass_pan, { x:-fixmystreet.tilewidth, y:fixmystreet.tileheight }); + YAHOO.util.Event.addListener(points[6], 'click', compass_pan, { x:fixmystreet.tilewidth, y:-fixmystreet.tileheight }); + YAHOO.util.Event.addListener(points[8], 'click', compass_pan, { x:-fixmystreet.tilewidth, y:-fixmystreet.tileheight }); + YAHOO.util.Event.addListener(points[4], 'click', compass_pan, { home:1, orig_x:drag_x, orig_y:drag_y }); +}); + +YAHOO.util.Event.onContentReady('map', function() { + var ua=navigator.userAgent.toLowerCase(); + // if (document.getElementById('mapForm') && (/safari/.test(ua) || /Konqueror/.test(ua))) return; + if (document.getElementById('map').offsetWidth > 510) return; + new YAHOO.util.DDMap('map'); + update_tiles(fixmystreet.start_x, fixmystreet.start_y, true); +}); + + +YAHOO.util.Event.addListener('hide_pins_link', 'click', function(e) { + YAHOO.util.Event.preventDefault(e); + if (this.innerHTML == 'Show pins') { + YAHOO.util.Dom.setStyle('pins', 'display', 'block'); + this.innerHTML = 'Hide pins'; + } else if (this.innerHTML == 'Dangos pinnau') { + YAHOO.util.Dom.setStyle('pins', 'display', 'block'); + this.innerHTML = 'Cuddio pinnau'; + } else if (this.innerHTML == 'Cuddio pinnau') { + YAHOO.util.Dom.setStyle('pins', 'display', 'none'); + this.innerHTML = 'Dangos pinnau'; + } else if (this.innerHTML == 'Hide pins') { + YAHOO.util.Dom.setStyle('pins', 'display', 'none'); + this.innerHTML = 'Show pins'; + } +}); +YAHOO.util.Event.addListener('all_pins_link', 'click', function(e) { + YAHOO.util.Event.preventDefault(e); + YAHOO.util.Dom.setStyle('pins', 'display', 'block'); + var welsh = 0; + if (this.innerHTML == 'Include stale reports') { + this.innerHTML = 'Hide stale reports'; + document.getElementById('all_pins').value = '1'; + load_pins(fixmystreet.x, fixmystreet.y); + } else if (this.innerHTML == 'Cynnwys hen adroddiadau') { + this.innerHTML = 'Cuddio hen adroddiadau'; + document.getElementById('all_pins').value = '1'; + welsh = 1; + load_pins(fixmystreet.x, fixmystreet.y); + } else if (this.innerHTML == 'Cuddio hen adroddiadau') { + this.innerHTML = 'Cynnwys hen adroddiadau'; + welsh = 1; + document.getElementById('all_pins').value = ''; + load_pins(fixmystreet.x, fixmystreet.y); + } else if (this.innerHTML == 'Hide stale reports') { + this.innerHTML = 'Include stale reports'; + document.getElementById('all_pins').value = ''; + load_pins(fixmystreet.x, fixmystreet.y); + } + if (welsh) { + document.getElementById('hide_pins_link').innerHTML = 'Cuddio pinnau'; + } else { + document.getElementById('hide_pins_link').innerHTML = 'Hide pins'; + } +}); + +// I love the global +var tile_x = 0; +var tile_y = 0; + +var myAnim; +function pan(x, y) { + if (!myAnim || !myAnim.isAnimated()) { + myAnim = new YAHOO.util.Motion('drag', { points:{by:[x,y]} }, 10, YAHOO.util.Easing.easeOut); + myAnim.useSeconds = false; + //myAnim.onTween.subscribe(function(){ update_tiles(x/10, y/10, false); }); + myAnim.onComplete.subscribe(function(){ + update_tiles(x, y, false); + cleanCache(); + }); + myAnim.animate(); + } +} + +var drag_x = 0; +var drag_y = 0; +function update_tiles(dx, dy, force) { + dx = getInt(dx); dy = getInt(dy); + if (!dx && !dy && !force) return; + var old_drag_x = drag_x; + var old_drag_y = drag_y; + drag_x += dx; + drag_y += dy; + + var drag = document.getElementById('drag'); + drag.style.left = drag_x + 'px'; + drag.style.top = drag_y + 'px'; + + var horizontal = Math.floor(old_drag_x/fixmystreet.tilewidth) - Math.floor(drag_x/fixmystreet.tilewidth); + var vertical = Math.floor(old_drag_y/fixmystreet.tileheight) - Math.floor(drag_y/fixmystreet.tileheight); + if (!horizontal && !vertical && !force) return; + fixmystreet.x += horizontal; + + tile_x += horizontal; + fixmystreet.y -= vertical; + tile_y += vertical; + var url = [ root_path + '/tilma/tileserver/' + fixmystreet.tile_type + '/', fixmystreet.x, '-', (fixmystreet.x+5), ',', fixmystreet.y, '-', (fixmystreet.y+5), '/JSON' ].join(''); + YAHOO.util.Connect.asyncRequest('GET', url, { + success: urls_loaded, failure: urls_not_loaded, + argument: [tile_x, tile_y] + }); + + if (force) return; + load_pins(fixmystreet.x, fixmystreet.y); +} + +function load_pins(x, y) { + if (document.getElementById('formX')) { + all_pins = ''; + if (document.getElementById('all_pins')) { + all_pins = document.getElementById('all_pins').value; + } + var ajax_params = [ 'sx=' + document.getElementById('formX').value, + 'sy=' + document.getElementById('formY').value, + 'x=' + (x+3), + 'y=' + (y+3), + 'all_pins=' + all_pins ]; + + if (document.getElementById('extra_param')) { + ajax_params.push(document.getElementById('extra_param').name + '=' + document.getElementById('extra_param').value); + } + + var url = [ root_path , '/ajax?', ajax_params.join(';')].join(''); + YAHOO.util.Connect.asyncRequest('GET', url, { + success: pins_loaded + }); + } +} + +function pins_loaded(o) { + var data = eval(o.responseText); + document.getElementById('pins').innerHTML = data.pins; + if (typeof(data.current) != 'undefined') + document.getElementById('current').innerHTML = data.current; + if (typeof(data.current_near) != 'undefined') + document.getElementById('current_near').innerHTML = data.current_near; + if (typeof(data.fixed_near) != 'undefined') + document.getElementById('fixed_near').innerHTML = data.fixed_near; +} + +function urls_not_loaded(o) { /* Nothing yet */ } + +// Load 6x6 grid of tiles around current 2x2 +function urls_loaded(o) { + var tiles = eval(o.responseText); + var drag = document.getElementById('drag'); + for (var i=0; i<6; i++) { + var ii = (i + o.argument[1]); + for (var j=0; j<6; j++) { + if (tiles[i][j] == null) continue; + var jj = (j + o.argument[0]); + var id = [ 't', ii, '.', jj ].join(''); + var xx = fixmystreet.x+j; + var yy = fixmystreet.y+5-i; + var img = document.getElementById(id); + if (img) { + if (!img.galleryimg) { img.galleryimg = false; } + img.onclick = drag_check; + tileCache[id] = { x: xx, y: yy, t: img }; + continue; + } + img = cloneNode(); + img.style.top = ((ii-2)*fixmystreet.tileheight) + 'px'; + img.style.left = ((jj-2)*fixmystreet.tilewidth) + 'px'; + img.name = [ 'tile_', xx, '.', yy ].join('') + img.id = id; + if (browser) { + img.style.visibility = 'hidden'; + img.onload=function() { this.style.visibility = 'visible'; } + } + img.src = 'http://tilma.mysociety.org/tileserver/' + fixmystreet.tile_type + '/' + tiles[i][j]; + tileCache[id] = { x: xx, y: yy, t: img }; + drag.appendChild(img); + } + } +} + +var imgElCache; +function cloneNode() { + var img = null; + if (!imgElCache) { + var form = document.getElementById('mapForm'); + if (form) { + img = imgElCache = document.createElement('input'); + img.type = 'image'; + } else { + img = imgElCache = document.createElement('img'); + } + img.onclick = drag_check; + img.style.position = 'absolute'; + img.style.width = fixmystreet.tilewidth + 'px'; + img.style.height = fixmystreet.tileheight + 'px'; + img.galleryimg = false; + img.alt = 'Loading...'; + } else { + img = imgElCache.cloneNode(true); + } + return img; +} + +var tileCache=[]; +function cleanCache() { + for (var i in tileCache) { + if (tileCache[i].x < fixmystreet.x || tileCache[i].x > fixmystreet.x+5 || tileCache[i].y < fixmystreet.y || tileCache[i].y > fixmystreet.y+5) { + var t = tileCache[i].t; + t.parentNode.removeChild(t); // de-leak? + delete tileCache[i]; + } + } +} + +/* Called every mousemove, so on first call, overwrite itself with quicker version */ +function get_posn(ev) { + var posx, posy; + if (ev.pageX || ev.pageY) { + get_posn = function(e) { + return { x: e.pageX, y: e.pageY }; + }; + } else if (ev.clientX || ev.clientY) { + get_posn = function(e) { + return { + x: e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft, + y: e.clientY + document.body.scrollTop + document.documentElement.scrollTop + }; + }; + } else { + get_posn = function(e) { + return { x: undef, y: undef }; + }; + } + return get_posn(ev); +} + +function setCursor(s) { + var drag = document.getElementById('drag'); + var inputs = drag.getElementsByTagName('input'); + for (var i=0; i<inputs.length; i++) { + inputs[i].style.cursor = s; + } +} + +var in_drag = false; +function drag_check(e) { + if (in_drag) { + in_drag = false; + return false; + } + return true; +} + +/* Simpler version of DDProxy */ +var mouse_pos = {}; +YAHOO.util.DDMap = function(id, sGroup, config) { + this.init(id, sGroup, config); +}; +YAHOO.extend(YAHOO.util.DDMap, YAHOO.util.DD, { + scroll: false, + b4MouseDown: function(e) { }, + startDrag: function(x, y) { + mouse_pos = { x: x, y: y }; + setCursor('move'); + in_drag = true; + }, + b4Drag: function(e) { }, + onDrag: function(e) { + var point = get_posn(e); + if (point == mouse_pos) return false; + var dx = point.x-mouse_pos.x; + var dy = point.y-mouse_pos.y; + mouse_pos = point; + update_tiles(dx, dy, false); + }, + endDrag: function(e) { + setCursor('crosshair'); + cleanCache(); + }, + toString: function() { + return ("DDMap " + this.id); + } +}); + +var browser = 1; +var ua=navigator.userAgent.toLowerCase(); +if (!/opera|safari|gecko/.test(ua) && typeof document.all!='undefined') + browser=0; + +function getInt(n) { + n = parseInt(n); return (isNaN(n) ? 0 : n); +} + |