source: sandbox/2.4.2-expresso2/expressoMail1_2/js/shortcut.js @ 6928

Revision 6928, 23.7 KB checked in by gustavo, 12 years ago (diff)

Ticket #2954 - Selecionar todas as mensagens de uma pasta independente de paginação

  • Property svn:eol-style set to native
Line 
1/**
2* http://www.openjs.com/scripts/events/keyboard_shortcuts/
3* Version : 2.01.A
4* By Binny V A
5* License : BSD
6*/
7shortcut = {
8'all_shortcuts':{},//All the shortcuts are stored in this array
9'add': function(shortcut_combination,callback,opt) {
10//Provide a set of default options
11var default_options = {
12    'type':'keydown',
13    'propagate':false,
14    'disable_in_input':false,
15    'target':document,
16    'keycode':false
17}
18if(!opt) opt = default_options;
19else {
20    for(var dfo in default_options) {
21        if(typeof opt[dfo] == 'undefined') opt[dfo] = default_options[dfo];
22    }
23}
24
25var ele = opt.target;
26if(typeof opt.target == 'string') ele = document.getElementById(opt.target);
27var ths = this;
28shortcut_combination = shortcut_combination.toLowerCase();
29
30//The function to be called at keypress
31var func = function(e) {
32    e = e || window.event;
33
34if(opt['disable_in_input']) { //Don't enable shortcut keys in Input, Textarea fields
35    var element;
36if(e.target) element=e.target;
37else if(e.srcElement) element=e.srcElement;
38if(element.nodeType==3) element=element.parentNode;
39
40if(element.tagName == 'INPUT' || element.tagName == 'TEXTAREA') return;
41}
42
43//Find Which key is pressed
44if (e.keyCode) code = e.keyCode;
45else if (e.which) code = e.which;
46var character = String.fromCharCode(code).toLowerCase();
47
48if(code == 188) character=","; //If the user presses , when the type is onkeydown
49if(code == 190) character="."; //If the user presses , when the type is onkeydown
50
51var keys = shortcut_combination.split("+");
52//Key Pressed - counts the number of valid keypresses - if it is same as the number of keys, the shortcut function is invoked
53var kp = 0;
54
55//Work around for stupid Shift key bug created by using lowercase - as a result the shift+num combination was broken
56var shift_nums = {
57    "`":"~",
58    "1":"!",
59    "2":"@",
60    "3":"#",
61    "4":"$",
62    "5":"%",
63    "6":"^",
64    "7":"&",
65    "8":"*",
66    "9":"(",
67    "0":")",
68    "-":"_",
69    "=":"+",
70    ";":":",
71    "'":"\"",
72    ",":"<",
73    ".":">",
74    "/":"?",
75    "\\":"|"
76}
77//Special Keys - and their codes
78var special_keys = {
79    'esc':27,
80    'escape':27,
81    'tab':9,
82    'space':32,
83    'return':13,
84    'enter':13,
85    'backspace':8,
86
87    'scrolllock':145,
88    'scroll_lock':145,
89    'scroll':145,
90    'capslock':20,
91    'caps_lock':20,
92    'caps':20,
93    'numlock':144,
94    'num_lock':144,
95    'num':144,
96
97    'pause':19,
98    'break':19,
99
100    'insert':45,
101    'home':36,
102    'delete':46,
103    'end':35,
104
105    'pageup':33,
106    'page_up':33,
107    'pu':33,
108
109    'pagedown':34,
110    'page_down':34,
111    'pd':34,
112
113    'left':37,
114    'up':38,
115    'right':39,
116    'down':40,
117
118    'f1':112,
119    'f2':113,
120    'f3':114,
121    'f4':115,
122    'f5':116,
123    'f6':117,
124    'f7':118,
125    'f8':119,
126    'f9':120,
127    'f10':121,
128    'f11':122,
129    'f12':123
130}
131
132var modifiers = {
133    shift: {wanted:false, pressed:false},
134    ctrl : {wanted:false, pressed:false},
135    alt  : {wanted:false, pressed:false},
136meta : {wanted:false, pressed:false}    //Meta is Mac specific
137};
138
139if(e.ctrlKey)   modifiers.ctrl.pressed = true;
140if(e.shiftKey)  modifiers.shift.pressed = true;
141if(e.altKey)    modifiers.alt.pressed = true;
142if(e.metaKey)   modifiers.meta.pressed = true;
143
144for(var i=0; k=keys[i],i<keys.length; i++) {
145//Modifiers
146if(k == 'ctrl' || k == 'control') {
147    kp++;
148    modifiers.ctrl.wanted = true;
149
150} else if(k == 'shift') {
151    kp++;
152    modifiers.shift.wanted = true;
153
154} else if(k == 'alt') {
155    kp++;
156    modifiers.alt.wanted = true;
157} else if(k == 'meta') {
158    kp++;
159    modifiers.meta.wanted = true;
160} else if(k.length > 1) { //If it is a special key
161    if(special_keys[k] == code) kp++;
162
163} else if(opt['keycode']) {
164    if(opt['keycode'] == code) kp++;
165
166} else { //The special keys did not match
167    if(character == k) kp++;
168    else {
169if(shift_nums[character] && e.shiftKey) { //Stupid Shift key bug created by using lowercase
170    character = shift_nums[character];
171    if(character == k) kp++;
172}
173}
174}
175}
176
177if(kp == keys.length &&
178    modifiers.ctrl.pressed == modifiers.ctrl.wanted &&
179    modifiers.shift.pressed == modifiers.shift.wanted &&
180    modifiers.alt.pressed == modifiers.alt.wanted &&
181    modifiers.meta.pressed == modifiers.meta.wanted) {
182    callback(e);
183
184if(!opt['propagate']) { //Stop the event
185//e.cancelBubble is supported by IE - this will kill the bubbling process.
186if ( Element('border_id_0') && Element('border_id_0').className != 'menu-sel' ){
187    return false;
188}
189e.cancelBubble = true;
190e.returnValue = false;
191
192
193//e.stopPropagation works in Firefox.
194if (e.stopPropagation) {
195    if ( Element('border_id_0') && Element('border_id_0').className != 'menu-sel' ){
196        return false;
197    }
198
199    e.stopPropagation();
200    e.preventDefault();
201}
202return false;
203}
204
205}
206}
207this.all_shortcuts[shortcut_combination] = {
208    'callback':func,
209    'target':ele,
210    'event': opt['type']
211};
212//Attach the function with the event
213if(ele.addEventListener) ele.addEventListener(opt['type'], func, false);
214else if(ele.attachEvent) ele.attachEvent('on'+opt['type'], func);
215else ele['on'+opt['type']] = func;
216},
217
218//Remove the shortcut - just specify the shortcut and I will remove the binding
219'remove':function(shortcut_combination) {
220    shortcut_combination = shortcut_combination.toLowerCase();
221    var binding = this.all_shortcuts[shortcut_combination];
222    delete(this.all_shortcuts[shortcut_combination])
223    if(!binding) return;
224    var type = binding['event'];
225    var ele = binding['target'];
226    var callback = binding['callback'];
227
228    if(ele.detachEvent) ele.detachEvent('on'+type, callback);
229    else if(ele.removeEventListener) ele.removeEventListener(type, callback, false);
230    else ele['on'+type] = false;
231}
232}
233
234/* ExpressMail Functions */
235
236var shift_up_count = 0;
237var shift_down_count = 0;
238var selMessageShortcut = "";
239
240shortcut.add("N",function(e)
241{
242// avoids problem related at ticket #1011
243e.preventDefault();
244var search_in_focus = false;
245var search_win = document.getElementById( 'QuickCatalogSearch_window_QuickCatalogSearch' );
246if ( search_win && search_win.style.visibility != 'hidden' )
247    search_in_focus = true;
248
249if ( ! search_in_focus )
250    new_message("new","null");
251},{'disable_in_input':true});
252
253shortcut.add("Esc",function(){
254    var window_closed = false;
255    var search_win = document.getElementById( 'window_QuickCatalogSearch' );
256
257    for(var window in arrayJSWin)
258    {
259        if (arrayJSWin[window].visible)
260        {
261            window_closed = true;
262            if(search_win.style.visibility == 'hidden'){
263                arrayJSWin[window].close();
264            }
265        }
266    }
267    if((search_win) && (search_win.style.visibility == 'visible')){
268        search_win.style.visibility = 'hidden';
269        win.close();
270    }       
271
272    if (!window_closed)
273        delete_border(get_msg_id(), 'false');
274},{'disable_in_input':false});
275
276shortcut.add("I",function(){print_all();},{'disable_in_input':true});
277shortcut.add("E",function(e){ if(e.preventDefault) e.preventDefault(); else event.returnValue = false; exec_msg_action('forward');},{'disable_in_input':true});
278shortcut.add("R",function(e){ if(e.preventDefault) e.preventDefault(); else event.returnValue = false; exec_msg_action('reply');},{'disable_in_input':true});
279shortcut.add("T",function(e){ if(e.preventDefault) e.preventDefault(); else event.returnValue = false; var msg_id = get_msg_id(); if(msg_id) new_message("reply_to_all_with_history",msg_id);},{'disable_in_input':true});
280shortcut.add("O",function(e){ if(e.preventDefault) e.preventDefault(); else event.returnValue = false; show_head_option();},{'disable_in_input':true});
281shortcut.add("M",function(e){ if(e.preventDefault) e.preventDefault(); else event.returnValue = false; show_address_full();},{'disable_in_input':true});
282
283shortcut.add("Delete",function(){
284
285
286    var selected_shortcut_msgs = '';
287    var tbody_box = Element('tbody_box');
288    all_messages = Element('tbody_box').childNodes;
289
290    for ( var i=0; i < all_messages.length; i++ )
291    {
292        if ( exist_className(all_messages[i], 'selected_shortcut_msg') )
293        {
294            selected_shortcut_msgs += all_messages[i].id + ',';
295
296            if( all_messages[i].nextSibling )
297                selMessageShortcut = all_messages[i].nextSibling.id + "-" + "down";
298            else if(all_messages[i].previousSibling)
299                selMessageShortcut = all_messages[i].previousSibling.id + "-" + "up";
300        }
301    }
302
303    selected_shortcut_msgs = selected_shortcut_msgs.substring(0,(selected_shortcut_msgs.length-1));
304
305    if ( Element('border_id_0').className === 'menu-sel' )
306    {
307        proxy_mensagens.delete_msgs(current_folder, selected_shortcut_msgs, 'null');
308    }
309    else
310    {
311        exec_msg_action('delete');
312        select_msg(selMessageShortcut.substring(0, selMessageShortcut.indexOf("-")),
313            selMessageShortcut.substring(selMessageShortcut.indexOf("-")), true );
314
315        proxy_mensagens.delete_msgs(current_folder, selected_shortcut_msgs, 'null');
316    }
317
318}
319,{'disable_in_input':true});
320
321shortcut.add("Ctrl+Up",function(){exec_msg_action('previous');/*select_msg('null', 'up');*/},{'disable_in_input':true});
322shortcut.add("Ctrl+Down",function(){exec_msg_action('next');/*select_msg('null', 'down');*/},{'disable_in_input':true});
323
324if (is_ie || is_webkit)
325{
326//**********************
327shortcut.add('up', function(e)
328{
329    if(currentTab == 0){
330        $(".selected_shortcut_msg").removeClass("selected_shortcut_msg");
331        if($(".current_selected_shortcut_msg").prev().parents("#tbody_box").length)
332            $(".current_selected_shortcut_msg").blur().removeClass("current_selected_shortcut_msg").prev().addClass("current_selected_shortcut_msg selected_shortcut_msg");
333        $(".current_selected_shortcut_msg").addClass("selected_shortcut_msg").focus();
334    }
335},{'disable_in_input':true});
336
337
338shortcut.add('down', function(e)
339{
340    if(currentTab == 0){
341        $(".selected_shortcut_msg").removeClass("selected_shortcut_msg");
342        if($(".current_selected_shortcut_msg").next().parents("#tbody_box").length)
343            $(".current_selected_shortcut_msg").blur().removeClass("current_selected_shortcut_msg").next().addClass("current_selected_shortcut_msg selected_shortcut_msg");
344        $(".current_selected_shortcut_msg").addClass("selected_shortcut_msg").focus();
345    }
346},{'disable_in_input':true});
347
348shortcut.add('space', function(e)
349{
350    if(currentTab == 0){
351        var allchecked = true;
352        $.each( $(".selected_shortcut_msg"), function(index, value){
353            if($(value).find(":checkbox").attr("checked") == undefined){
354                allchecked = false;
355            }
356        });
357        if(allchecked){
358            $(".selected_shortcut_msg").removeClass("selected_msg").find('input[type="checkbox"]').removeAttr("checked");
359        }else{
360            //$(".current_selected_shortcut_msg").addClass("selected_msg").find('input[type="checkbox"]').attr("checked", true);
361            $(".selected_shortcut_msg").addClass("selected_msg").find('input[type="checkbox"]').attr("checked", true);
362        }
363        $.each( $(".selected_shortcut_msg"), function(index, value){
364            updateSelectedMsgs($(value).find(":checkbox").is(':checked'),$(value).attr("id"));
365        });
366        $(".current_selected_shortcut_msg").focus();
367    }
368},{'disable_in_input':true});
369
370//****************
371
372shortcut.add("Shift+down",function()
373{   
374    if(currentTab == 0){           
375        //$(".selected_shortcut_msg").removeClass("selected_shortcut_msg");
376        if($(".current_selected_shortcut_msg").next().parents("#tbody_box").length)
377            if($(".current_selected_shortcut_msg").next().hasClass("selected_shortcut_msg"))
378                $(".current_selected_shortcut_msg").blur().removeClass("selected_shortcut_msg").removeClass("current_selected_shortcut_msg").next().addClass("current_selected_shortcut_msg selected_shortcut_msg");
379            else
380                $(".current_selected_shortcut_msg").blur().addClass("selected_shortcut_msg").removeClass("current_selected_shortcut_msg").next().addClass("current_selected_shortcut_msg selected_shortcut_msg");
381        $(".current_selected_shortcut_msg").focus();
382    }
383},{'disable_in_input':true, 'propagate':false});
384
385shortcut.add("Shift+up",function(){
386    if(currentTab == 0){           
387        //$(".selected_shortcut_msg").removeClass("selected_shortcut_msg");
388        if($(".current_selected_shortcut_msg").prev().parents("#tbody_box").length)
389            if($(".current_selected_shortcut_msg").prev().hasClass("selected_shortcut_msg"))
390                $(".current_selected_shortcut_msg").blur().removeClass("selected_shortcut_msg").removeClass("current_selected_shortcut_msg").prev().addClass("current_selected_shortcut_msg selected_shortcut_msg");
391            else
392                $(".current_selected_shortcut_msg").blur().addClass("selected_shortcut_msg").removeClass("current_selected_shortcut_msg").prev().addClass("current_selected_shortcut_msg selected_shortcut_msg");
393        $(".current_selected_shortcut_msg").focus();
394    }
395},{'disable_in_input':true, 'propagate':false});
396}
397else
398{
399    shortcut.add("Up",function(){
400        $(".selected_shortcut_msg").removeClass("selected_shortcut_msg");
401        if($(".current_selected_shortcut_msg").prev().parents("#tbody_box").length)
402            $(".current_selected_shortcut_msg").blur().removeClass("current_selected_shortcut_msg").prev().addClass("current_selected_shortcut_msg selected_shortcut_msg");
403        $(".current_selected_shortcut_msg").focus();
404    },{'disable_in_input':true});
405
406    shortcut.add("Down",function(){
407        $(".selected_shortcut_msg").removeClass("selected_shortcut_msg");
408        if($(".current_selected_shortcut_msg").next().parents("#tbody_box").length)
409            $(".current_selected_shortcut_msg").blur().removeClass("current_selected_shortcut_msg").next().addClass("current_selected_shortcut_msg selected_shortcut_msg");
410        $(".current_selected_shortcut_msg").focus();
411    },{'disable_in_input':true});
412
413    shortcut.add("Shift+down",function(){
414        if(currentTab == 0){           
415            if($(".current_selected_shortcut_msg").next().parents("#tbody_box").length)
416                if($(".current_selected_shortcut_msg").next().hasClass("selected_shortcut_msg"))
417                    $(".current_selected_shortcut_msg").blur().removeClass("selected_shortcut_msg").removeClass("current_selected_shortcut_msg").next().addClass("current_selected_shortcut_msg selected_shortcut_msg");
418                else
419                    $(".current_selected_shortcut_msg").blur().addClass("selected_shortcut_msg").removeClass("current_selected_shortcut_msg").next().addClass("current_selected_shortcut_msg selected_shortcut_msg");
420            $(".current_selected_shortcut_msg").focus();
421        }
422    },{'type':'keypress','disable_in_input':true, 'propagate':false});
423
424    shortcut.add("Shift+up",function(){
425        if(currentTab == 0){           
426            if($(".current_selected_shortcut_msg").prev().parents("#tbody_box").length)
427                if($(".current_selected_shortcut_msg").prev().hasClass("selected_shortcut_msg"))
428                    $(".current_selected_shortcut_msg").blur().removeClass("selected_shortcut_msg").removeClass("current_selected_shortcut_msg").prev().addClass("current_selected_shortcut_msg selected_shortcut_msg");
429                else
430                    $(".current_selected_shortcut_msg").blur().addClass("selected_shortcut_msg").removeClass("current_selected_shortcut_msg").prev().addClass("current_selected_shortcut_msg selected_shortcut_msg");
431            $(".current_selected_shortcut_msg").focus();
432        }
433    },{'type':'keypress', 'disable_in_input':true, 'propagate':false});
434    shortcut.add('Space', function(e)
435    {
436        if(currentTab == 0){
437            var allchecked = true;
438            $.each( $(".selected_shortcut_msg"), function(index, value){
439                if($(value).find(":checkbox").attr("checked") == undefined){
440                    allchecked = false;
441                }
442            });
443            if(allchecked){
444               
445                $(".selected_shortcut_msg").removeClass("selected_msg").find('input[type="checkbox"]').removeAttr("checked");
446            }else{
447                //$(".current_selected_shortcut_msg").addClass("selected_msg").find('input[type="checkbox"]').attr("checked", true);
448                $(".selected_shortcut_msg").addClass("selected_msg").find('input[type="checkbox"]').attr("checked", true);
449            }
450
451            $.each( $(".selected_shortcut_msg"), function(index, value){
452                updateSelectedMsgs($(value).find(":checkbox").is(':checked'),$(value).attr("id"));
453            });
454        }
455    },{'disable_in_input':true});
456}
457
458shortcut.add("return",function(){
459    if ( Element('border_id_0').className==='menu-sel' )
460    {
461        all_messages = Element('tbody_box').childNodes;
462        for (var i=0; i < all_messages.length; i++)
463        {
464            if ( exist_className(all_messages[i], 'selected_shortcut_msg') )
465            {
466                Element("td_from_" + all_messages[i].id).onclick();
467                return;
468            }
469        }
470    }
471},{'disable_in_input':true});
472
473shortcut.add("f9",function(){
474    Element("em_refresh_button").onclick();
475    return;
476},{'disable_in_input':false});
477
478function exec_msg_action(action)
479{
480    var msg_id = get_msg_id();
481    if (msg_id)
482    {
483        var msg_id = 'msg_opt_' + action + '_' + msg_id;
484        try {Element(msg_id).onclick();}
485    catch(e){/*alert(e);*/}
486}
487return;
488}
489
490function show_head_option()
491{
492    var msg_id = get_msg_id();
493    if (msg_id) {
494        var msg_id = 'option_hide_more_' + msg_id;
495        try {Element(msg_id).onclick();}
496    catch(e){/*alert(e);*/}
497}
498return;
499}
500
501function show_address_full()
502{
503    var toaddress = Element('div_toaddress_' + get_msg_id());   
504    var ccaddress = Element('div_ccaddress_' + get_msg_id());
505
506    if(toaddress &&  '' == toaddress.style.display) {
507        show_div_address_full(get_msg_id(),'to');
508    }
509    else {
510        if(toaddress)
511            toaddress.style.display = '';
512        var toaddress_full = Element('div_toaddress_full_' + get_msg_id());
513        if(toaddress_full)
514            toaddress_full.style.display = 'none';
515    }           
516    if(ccaddress &&  '' == ccaddress.style.display) {
517        show_div_address_full(get_msg_id(),'cc');
518    }
519    else {
520        if(ccaddress)
521            ccaddress.style.display = '';
522        var ccaddress_full = Element('div_ccaddress_full_' + get_msg_id());
523        if(ccaddress_full)
524            ccaddress_full.style.display = 'none';
525    }
526    return;
527}
528
529function get_msg_id()
530{
531    children = Element('border_tr').childNodes;
532
533    for (var i=0; i<children.length; i++)
534    {
535        if ( (children[i].nodeName==='TD') && (children[i].className==='menu-sel') && children[i].id != 'border_id_0')
536        {
537            var border_selected = children[i];
538            var msg_id = border_selected.id.replace("border_id_","");
539            return msg_id;
540        }
541    }
542    return false;
543}
544
545function select_msg(msg_number, keyboard_action, force_msg_selection)
546{
547/*
548** Se caso for limpado toda a caixa de email,
549** e adicionado um novo atalho de selecao.
550** main.js on function refrash and line 629.
551*/
552$("#table_box").find("tr").attr("tabindex", -1);
553
554if(keyboard_action == "reload_msg"){
555    if( $("#tbody_box .current_selected_shortcut_msg").length == 0 ){
556        $("#tbody_box tr:first").addClass("current_selected_shortcut_msg selected_shortcut_msg");       
557    }
558}
559
560shift_up_count = 0;
561shift_down_count = 0;
562
563if (msg_number != 'null') {
564
565    if(Element(msg_number)){
566        unselect_all_msgs();
567        $("#tbody_box tr").removeClass("current_selected_shortcut_msg selected_shortcut_msg");
568        $("#"+msg_number).addClass('current_selected_shortcut_msg selected_shortcut_msg');
569    }
570
571} else {
572    var scrollMain = Element('divScrollMain_0');
573    var selection_size = parseInt(preferences.line_height) + 10;
574
575    if( keyboard_action == 'down') {
576
577        if(!Element("chk_box_select_all_messages").checked){
578
579            $("#divScrollMain_0").find("#tbody_box").find("tr").each(function(){
580
581                if($(this).hasClass("selected_shortcut_msg") && $(this).next().length){
582                    $(this).next().addClass("selected_shortcut_msg");
583                    $(this).removeClass("selected_shortcut_msg");
584                    return false;
585                }
586
587            });
588
589        } else {
590
591            $("#divScrollMain_0").find("#tbody_box").find("tr").each(function(){
592
593                if($(this).hasClass("current_selected") && $(this).next().length){
594                    $(this).removeClass("current_selected");
595                    $(this).removeClass("selected_shortcut_msg");
596                    $(this).next().addClass("current_selected");
597                    $(this).next().addClass("selected_shortcut_msg");
598                    return false;
599                }
600
601            });
602            $("#divScrollMain_0").find("#tbody_box").find("tr").each(function(){
603                if(!$(this).hasClass("current_selected"))
604                    $(this).removeClass("selected_shortcut_msg");
605            });
606        }
607
608    } else if( keyboard_action == 'up') {
609
610        if(!Element("chk_box_select_all_messages").checked){
611
612            $("#divScrollMain_0").find("#tbody_box").find("tr").each(function(){
613
614                if($(this).hasClass("selected_shortcut_msg") && $(this).prev().length){
615                    $(this).prev().addClass("selected_shortcut_msg");
616                    $(this).removeClass("selected_shortcut_msg");
617                    return false;
618                }
619
620            });
621
622        } else {
623
624            $("#divScrollMain_0").find("#tbody_box").find("tr").each(function(){
625
626                if($(this).hasClass("current_selected") && $(this).prev().length){
627                    $(this).removeClass("current_selected");
628                    $(this).removeClass("selected_shortcut_msg");
629                    $(this).prev().addClass("current_selected");
630                    $(this).prev().addClass("selected_shortcut_msg");
631                    return false;
632                }
633
634            });
635            $("#divScrollMain_0").find("#tbody_box").find("tr").each(function(){
636                if(!$(this).hasClass("current_selected"))
637                    $(this).removeClass("selected_shortcut_msg");
638            });
639
640        }
641
642    }
643    return true;
644}
645}
646
647function select_bottom_msg()
648{
649    all_messages = Element('tbody_box').childNodes;
650
651    if ( exist_className(all_messages[all_messages.length-1], 'selected_shortcut_msg') )
652        return;
653
654    for (var i=all_messages.length-1; i >=0; i--)
655    {
656        if ( (exist_className(all_messages[i], 'selected_shortcut_msg')) && (i+1 <= all_messages.length-1) )
657        {
658            shift_down_count++;
659            add_className(all_messages[i+1], 'selected_msg');
660            break;
661        }
662    }
663}
664
665function select_top_msg()
666{
667    all_messages = Element('tbody_box').childNodes;
668
669    if ( exist_className(all_messages[0], 'selected_shortcut_msg') )
670        return;
671
672    for (var i=0; i <=all_messages.length-1; i++)
673    {
674        if ( exist_className(all_messages[i], 'selected_shortcut_msg') )
675        {
676            shift_up_count++;
677            add_className(all_messages[i-1], 'selected_msg');
678            break;
679        }
680    }
681}
682
683function unselect_bottom_msg()
684{
685    all_messages = Element('tbody_box').childNodes;
686    for (var i=all_messages.length-1; i >=0; i--)
687    {
688        if ( exist_className(all_messages[i], 'selected_shortcut_msg') )
689        {
690            shift_down_count--;
691            remove_className(all_messages[i], 'selected_msg');
692            break;
693        }
694    }
695}
696
697function unselect_top_msg()
698{
699    all_messages = Element('tbody_box').childNodes;
700    for (var i=0; i <=all_messages.length-1; i++)
701    {
702        if ( exist_className(all_messages[i], 'selected_shortcut_msg') )
703        {
704            shift_up_count--;
705            remove_className(all_messages[i], 'selected_msg');
706            break;
707        }
708    }
709}
710
711function unselect_all_msgs()
712{
713    all_messages = Element('tbody_box').childNodes;
714    for (var i=0; i <=all_messages.length-1; i++)
715    {
716        remove_className(all_messages[i], 'selected_msg');
717    }
718}
Note: See TracBrowser for help on using the repository browser.