source: trunk/expressoMail1_2/js/drag_area.js @ 2

Revision 2, 6.3 KB checked in by niltonneto, 17 years ago (diff)

Removida todas as tags usadas pelo CVS ($Id, $Source).
Primeira versão no CVS externo.

  • Property svn:eol-style set to native
  • Property svn:executable set to *
Line 
1function DragArea(){
2
3        this.msg_number = false;
4        this.subject    = false;
5        this.color_dd   = 'red';
6        this.from_list  = false;
7        this._mousemove = document.onmousemove;
8        this._mouseup = document.onmouseup;
9        this.div_dd = document.createElement("DIV");
10        this.id_messages_to_drag = new Array();
11        this.div_dd.style.position = 'absolute';
12        this.div_dd.style.zIndex = '15';
13        this.div_dd.style.border = '1px solid black';
14        this.div_dd.style.background ="#EEEEEE";
15        var value = "8.5";
16        this.div_dd.style.opacity = value/10;
17        this.div_dd.style.filter = 'alpha(opacity=' + value*10 + ')';   
18        this.div_dd.id = 'div_sel_messages';
19        this.div_dd.style.padding = "3px";
20        this.div_dd.style.width = "0px";
21        this.div_dd.style.height = "0px";
22        this.div_dd.style.display ='none';
23        this.envelope = new Image();
24        this.envelope.src = "templates/default/images/envelope.png";
25        document.body.appendChild(this.div_dd);
26       
27}
28
29DragArea.prototype.makeDragged = function(element, msg_number, subject, from_list){
30        element.oncontextmenu = function(e) {
31                return false;
32        }
33        var _this = this;
34        element.onmousedown = function (e){
35
36                var _button = is_ie ? window.event.button : e.which;
37       
38                if(_button == 2 || _button == 3) {
39                        var _checkb = Element("check_box_message_"+ msg_number);
40
41                        if(_checkb) {
42                                if(!_checkb.checked) {
43                                        changeBgColor(is_ie ? window.event : e, msg_number);
44                                        _checkb.checked = true;
45                                }
46                                ConstructRightMenu(is_ie ? window.event : e);
47                        }                       
48                        return false;
49                }
50
51                if(!_this.msg_number) {
52                        _this.msg_number = msg_number;
53
54                        if(!subject)
55                                _this.subject = get_lang("No Subject");
56                        //else if(subject.length > 40)
57                        //      _this.subject = subject.substring(0,40) + '...';                               
58                        else
59                                _this.subject    = subject;
60
61                        _this.from_list  = from_list;
62                        _this.div_dd.style.width = "auto";
63                        _this.div_dd.style.height = "auto";                     
64                }
65                return true;
66        };     
67}
68DragArea.prototype.showLayerDrag = function(e){
69
70        var msg_number = _dragArea.from_list ? _dragArea.msg_number : _dragArea.msg_number.replace('_r','');
71        if(_dragArea.from_list) {       
72                if(! Element("check_box_message_"+msg_number).checked) {
73                        if (is_ie)
74                                changeBgColor(window.event,msg_number);
75                        else
76                                changeBgColor(e,msg_number);
77                        Element("check_box_message_"+ msg_number).checked = true;       
78                }
79                id_messages_to_drag = get_selected_messages();
80                id_messages_to_drag = id_messages_to_drag ? id_messages_to_drag.split(',') : new Array();
81       
82                if(id_messages_to_drag.length > 1)
83                        this.subject = id_messages_to_drag.length +" mensagens selecionadas";
84        }
85
86        this.div_dd.innerHTML = "<img align='center' src='"+this.envelope.src+"'>&nbsp;<span id='content_dd'><font color='red' weight='bold'><b>"+this.subject+"</b></span></font>";
87        this.div_dd.style.display ='';
88}
89
90DragArea.prototype.onSelectStart = function(value){
91        if(!value) {
92                document.body.onselectstart = function (e){return false;}
93                document.body.ondragstart = function (e){return false;}
94        }
95        else {
96                document.body.onselectstart = function (e){return true;}
97                document.body.ondragstart = function (e){return true;}
98        }
99}
100
101DragArea.prototype.mouseMoveDrag = function(e){         
102       
103        var     e  = is_ie ? window.event : e;
104        var     _target = is_ie ? e.srcElement : e.target;
105        if(is_ie)
106                this.onSelectStart(false);
107
108        this.div_dd.style.left  = e.clientX + 5 + document.body.scrollLeft;
109        this.div_dd.style.top   = e.clientY + 10 + document.body.scrollTop;             
110
111        if(this.div_dd.style.display == 'none')
112                this.showLayerDrag(e);
113       
114        var reg = /^((n|l)(?!root))(.*)tree_folders$/;
115        var _color = this.color_dd;
116
117        if(reg.test(_target.parentNode.id) )
118                _color ='green';
119        else
120                _color ='red';
121       
122        if(this.color_dd != _color) {
123                Element('content_dd').innerHTML = "<font color='"+_color+"' weight='bold'><b>"+this.subject+"</b></font>";
124                this.color_dd = _color;
125        }
126
127        return false;
128}       
129
130var _dragArea = new DragArea();
131
132document.onmousemove = function(e) {
133        var     _target = is_ie ? window.event.srcElement : e.target;
134        if(_dragArea._mousemove)
135                _dragArea._mousemove(e);
136       
137        else if(_dragArea.msg_number && _target.type != 'checkbox') {
138                _dragArea.mouseMoveDrag(e);
139        }
140};
141
142document.onmouseup = function(e) {
143
144        var     _event  = is_ie ? window.event : e;
145        var     _target = is_ie ? _event.srcElement : _event.target;
146        var _button = is_ie ? _event.button : _event.which;
147       
148        if(_button != 2 && _button != 3) {             
149
150                if(Element("div_rightbutton") && Element("div_rightbutton").style.display != 'none') {
151                                               
152                        if(!_target.id.match(/link_rightbutton_(.*)$/)){
153                       
154                                var id_messages_to_drag = get_selected_messages();
155                                id_messages_to_drag = id_messages_to_drag ? id_messages_to_drag.split(',') : id_messages_to_drag;
156               
157                                for(var i = 0; id_messages_to_drag && i < id_messages_to_drag.length; i++) {                   
158                                        Element("check_box_message_"+id_messages_to_drag[i]).checked = false;                           
159                                        changeBgColor(_event ,id_messages_to_drag[i]);                         
160                                }
161                                Element("chk_box_select_all_messages").checked = false;
162                                Element('div_rightbutton').style.display = 'none';
163                                _dragArea.msg_number = false;
164                                _dragArea.div_dd.style.display ='none';
165                                return false;
166                        }
167                }
168                if(is_ie)
169                        _dragArea.onSelectStart(true);
170        }       
171
172
173        if(_dragArea.msg_number) {
174
175                var reg = /^((n|l)(?!root))(.*)tree_folders$/;
176                var new_folder;
177               
178                if(reg.test(_target.parentNode.id) ){
179                        new_folder = _target.parentNode.id.substring(1,_target.parentNode.id.length).replace('tree_folders','');                       
180                        new_folder_name = new_folder.replace("INBOX"+cyrus_delimiter, "");
181                        if(new_folder_name == 'INBOX')
182                                new_folder_name = get_lang("Inbox");
183                               
184                        if(_dragArea.from_list)
185                                move_msgs('null', 'selected', 'null', new_folder, new_folder_name);
186                        else {
187                                var msg_number = _dragArea.from_list ? _dragArea.msg_number : _dragArea.msg_number.replace('_r','');
188                                move_msgs('null', msg_number, msg_number+"_r", new_folder, new_folder_name);
189                        }
190                }
191               
192                else if(_dragArea.from_list && _target.type != 'checkbox' && _dragArea.div_dd.style.display !='none'){
193                        var id_messages_to_drag = get_selected_messages();
194                        if(id_messages_to_drag){
195                                id_messages_to_drag = id_messages_to_drag.split(',');
196                       
197                                for(var i = 0; id_messages_to_drag && i < id_messages_to_drag.length; i++) {                           
198                                        Element("check_box_message_"+id_messages_to_drag[i]).checked = false;                           
199                                        changeBgColor(_event ,id_messages_to_drag[i]);                         
200                                }
201                                Element("chk_box_select_all_messages").checked = false;                 
202                        }
203                }
204       
205                _dragArea.msg_number = false;
206                _dragArea.div_dd.style.display ='none';
207                if(is_ie)
208                        _dragArea.onSelectStart(true);
209        }
210
211};
Note: See TracBrowser for help on using the repository browser.