summaryrefslogtreecommitdiff
path: root/frontend/beta/js/YUI-extensions/dd/Registry.js
Unidiff
Diffstat (limited to 'frontend/beta/js/YUI-extensions/dd/Registry.js') (more/less context) (show whitespace changes)
-rw-r--r--frontend/beta/js/YUI-extensions/dd/Registry.js80
1 files changed, 80 insertions, 0 deletions
diff --git a/frontend/beta/js/YUI-extensions/dd/Registry.js b/frontend/beta/js/YUI-extensions/dd/Registry.js
new file mode 100644
index 0000000..983b874
--- a/dev/null
+++ b/frontend/beta/js/YUI-extensions/dd/Registry.js
@@ -0,0 +1,80 @@
1// kill drag drop dependency
2if(YAHOO.util.DragDrop){
3
4YAHOO.ext.dd.Registry = function(){
5 var elements = {};
6 var handles = {};
7 var autoIdSeed = 0;
8 var doc = document; // local reference for IE
9
10 var getId = function(el, autogen){
11 if(typeof el == 'string'){
12 return el;
13 }
14 var id = el.id;
15 if(!id && autogen !== false){
16 id = 'yddgen-' + (++autoIdSeed);
17 el.id = id;
18 }
19 return id;
20 };
21
22 return {
23 register : function(el, data){
24 data = data || {};
25 if(typeof el == 'string'){
26 el = doc.getElementById(el);
27 }
28 data.ddel = el;
29 elements[getId(el)] = data;
30 if(data.isHandle !== false){
31 handles[data.ddel.id] = data;
32 }
33 if(data.handles){
34 var hs = data.handles;
35 for(var i = 0, len = hs.length; i < len; i++){
36 handles[getId(hs[i])] = data;
37 }
38 }
39 },
40
41 unregister : function(el){
42 var id = getId(el, false);
43 var data = elements[id];
44 if(data){
45 delete elements[id];
46 if(data.handles){
47 var hs = data.handles;
48 for(var i = 0, len = hs.length; i < len; i++){
49 delete handles[getId(hs[i], false)];
50 }
51 }
52 }
53 },
54
55 getHandle : function(id){
56 if(typeof id != 'string'){ // must be element?
57 id = id.id;
58 }
59 return handles[id];
60 },
61
62 getHandleFromEvent : function(e){
63 var t = YAHOO.util.Event.getTarget(e);
64 return t ? handles[t.id] : null;
65 },
66
67 getTarget : function(id){
68 if(typeof id != 'string'){ // must be element?
69 id = id.id;
70 }
71 return elements[id];
72 },
73
74 getTargetFromEvent : function(e){
75 var t = YAHOO.util.Event.getTarget(e);
76 return t ? elements[t.id] || handles[t.id] : null;
77 }
78 };
79}();
80}