diff -r 72696ca68c34 -r 10841abbc01f javascript/taggr.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/javascript/taggr.js Thu Jan 17 01:56:04 2008 +0000 @@ -0,0 +1,217 @@ +function toggle_dir (header_a_tag) { + var div = Element.next(header_a_tag); + + if (div._have_contents) { + if (div.visible()) + Effect.BlindUp(div, {duration: 0.5}); + else + Effect.BlindDown(div, {duration: 0.5}); + } else { + + new Ajax.Updater(div, "taggr2.py", { + parameters: { + act: "dirlist", + path: div.id, + }, + method: 'get', + onSuccess: function () { + Effect.BlindDown(div, {duration: 0.5}); + div._have_contents = true; + } + }); + } +} + +function new_tag (tag_name) { + var tag_images = Builder.node("td", {className:"tag_images"}); + + $("tag_table").appendChild( + Builder.node("tr", [ + Builder.node("td", {className:"tag"}, [ + tag_name + ]), + tag_images + ]) + ); +} + +function image_dropped (img, tag, e) { +} + +function image_loaded (img) { +} + +function image_click (img, ev) { + +} + +function init () { +} + +var g_drag, g_hover, g_start, g_offset, g_targets; +function check_mouse_down (ev) { + var e = ev.element(); + + if (e.hasClassName("image")) { + g_drag = e; + g_start = false; + + var offset = e.cumulativeOffset(); + + g_offset = { + 'left': ev.pointerX() - offset.left, + 'top': ev.pointerY() - offset.top + }; + + g_hover = null; + + g_targets = $$(".tag_images"); + + } else if (e.hasClassName("directory_link")) { + toggle_dir(e); + + } else { + return true; + } + + ev.stop(); + return false; +} + +function check_mouse_up (ev) { + if (g_drag) { + if (g_start) { + if (g_hover) { + drag_unhover(g_drag, g_hover, ev); + drag_end_drop(g_drag, g_hover, ev); + } else + drag_end_fail(g_drag, ev); + + drag_cleanup(g_drag); + } else + image_click(g_drag, ev); + + g_start = null; + g_drag = null; + g_hover = null; + + ev.stop(); + return false; + } +} + +function check_mouse_move (ev) { + if (g_drag) { + if (!g_start) { + drag_start(g_drag); + g_start = true; + } + + drag_move(g_drag, ev); + + Position.prepare(); + + var px = ev.pointerX(); + var py = ev.pointerY(); + + if (g_hover) { + if (!Position.withinIncludingScrolloffsets(g_hover, px, py)) { + drag_unhover(g_drag, g_hover, ev); + g_hover = null; + } + } else { + for (var i=0;i