Changeset 320


Ignore:
Timestamp:
06/18/08 11:28:42 (16 years ago)
Author:
niltonneto
Message:

Versionamento 1.222
Ver changelog de alterações no Trac.

Location:
trunk/expressoMail1_2
Files:
1 added
22 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoMail1_2/inc/class.ScriptS.inc.php

    r122 r320  
    9696                 
    9797                $narray  = explode("_end_",$var_decode); 
    98                  
     98 
    9999                foreach($narray as $key=>$tmp){ 
    100100                        if($tmp != ""){ 
     
    196196                  $special_char = false; 
    197197                  for ( $i = 0; $i < strlen($input); $i++ ) 
    198                       if ( preg_match('/[ÁáÉéÍíÓóÚúÀàÈèÌìÒòÙùÇçÃãÕõÂâÊêÔô]/', $input[$i]) ) 
     198                      if ( preg_match('/[ÁáÉéÍíÓóÚúÀàÈèÌìÒòÙùÇçÃãÕõÂâÊêÔô®©§ªºÐ¹²³°¢¿Æ£µøæß«»Ø÷±¬]/', $input[$i]) ) 
    199199                      { 
    200200                          $special_char = true; 
    201201                          $input = preg_replace('/'.$input[$i].'/', '=' . bin2hex($input[$i]), $input); 
    202202                      } 
    203                    if ( $special_char ) 
     203                       
     204           if ( $special_char ) 
    204205                   { 
    205206                   /*  When using arrays with pattern and replacement, the keys are processed in the order they appear in the array. See preg_replace in php.net/preg_replace */ 
     
    210211                   $input = preg_replace($patterns, $replacements, $input); 
    211212                   } 
    212                    return($input); 
     213                   if (($input{0}) && (!eregi('^[a-zA-Z0-9=-]+$',$input))) 
     214                                return false;    
     215                        else 
     216                        return($input); 
    213217        } 
    214218 
     
    233237          $rule['from']              = $this->convert_specialchar($tmp1[3]); 
    234238          $rule['to']            = $this->convert_specialchar($tmp1[4]); 
    235           $rule['subject'] = $this->convert_specialchar($tmp1[5]); 
     239                 $rule['subject'] = $this->convert_specialchar($tmp1[5]); 
    236240          $rule['action']            = $tmp1[6]; 
    237           $rule['action_arg']    = utf8_encode(preg_replace("/\\r\\n/","\r\n",$tmp1[7])); 
     241                  $rule['action_arg']    = utf8_encode(preg_replace("/\\r\\n/","\r\n",$tmp1[7])); 
    238242          $rule['flg']               = $tmp1[8];    
    239243          $rule['field']                 = $tmp1[9]; 
  • trunk/expressoMail1_2/inc/class.imap_functions.inc.php

    r278 r320  
    275275                                        $return['toaddress2'] .= " "; 
    276276                                        $return['toaddress2'] .= "&lt;"; 
    277                                         $return['toaddress2'] .= $tmp->mailbox . "@" . $tmp->host; 
     277                                        if ($tmp->host != 'unspecified-domain') 
     278                                                $return['toaddress2'] .= $tmp->mailbox . "@" . $tmp->host; 
     279                                        else 
     280                                                $return['toaddress2'] .= $tmp->mailbox; 
    278281                                        $return['toaddress2'] .= "&gt;"; 
    279282                                        $return['toaddress2'] .= ", "; 
     
    281284                                else 
    282285                                { 
    283                                         $return['toaddress2'] .= $tmp->mailbox . "@" . $tmp->host; 
     286                                        if ($tmp->host != 'unspecified-domain') 
     287                                                $return['toaddress2'] .= $tmp->mailbox . "@" . $tmp->host; 
     288                                        else 
     289                                                $return['toaddress2'] .= $tmp->mailbox; 
    284290                                        $return['toaddress2'] .= ", "; 
    285291                                } 
     
    351357                $return['Size'] = $header->Size; 
    352358                $return['reply_toaddress'] = $header->reply_toaddress; 
     359                 
    353360                return $return; 
    354361        } 
     
    14711478                $ccaddress = $params['input_cc']; 
    14721479                $subject = $params['input_subject']; 
     1480                $msg_uid = $params['msg_id']; 
    14731481                $body = $params['body']; 
    14741482                $body = str_replace("%nbsp;","&nbsp;",$params['body']); 
     
    15071515                $mail->Body = $body; 
    15081516                 
     1517                //      Build CID for embedded Images!!! 
     1518                $pattern = '/src="([^"]*?show_embedded_attach.php\?msg_folder=(.+)?&amp;msg_num=(.+)?&amp;msg_part=(.+)?)"/isU'; 
     1519                $cid_imgs = ''; 
     1520                $name_cid_files = array(); 
     1521                preg_match_all($pattern,$mail->Body,$cid_imgs,PREG_PATTERN_ORDER); 
     1522                $cid_array = array(); 
     1523                foreach($cid_imgs[4] as $j => $val){ 
     1524                                if ( !array_key_exists($cid_imgs[3][$j].$val, $cid_array) ) 
     1525                        { 
     1526                $cid_array[$cid_imgs[3][$j].$val] = base_convert(microtime(), 10, 36); 
     1527                        } 
     1528                        $cid = $cid_array[$cid_imgs[3][$j].$val];  
     1529                        $mail->Body = str_replace($cid_imgs[1][$j], "cid:".$cid, $mail->Body); 
     1530                         
     1531                                if ($msg_uid != $cid_imgs[3][$j]) // The image isn't in the same mail? 
     1532                                { 
     1533                                        $fileContent = $this->get_forwarding_attachment($cid_imgs[2][$j], $cid_imgs[3][$j], $cid_imgs[4][$j], 'base64'); 
     1534                                        $fileName = "image_".($j).".jpg"; 
     1535                                        $fileCode = "base64"; 
     1536                                        $fileType = "image/jpg"; 
     1537                                } 
     1538                                else 
     1539                                { 
     1540                                        $attach_img = $forwarding_attachments[$cid_imgs[4][$j]-2]; 
     1541                                        $file_description = unserialize(rawurldecode($attach_img)); 
     1542                                        foreach($file_description as $i => $descriptor){                                 
     1543                                                $file_description[$i]  = eregi_replace('\'*\'','',$descriptor); 
     1544                                        } 
     1545                                        $fileContent = $this->get_forwarding_attachment($file_description[0], $msg_uid, $file_description[3], 'base64'); 
     1546                                        $fileName = $file_description[2]; 
     1547                                        $fileCode = $file_description[4]; 
     1548                                        $fileType = $this->get_file_type($file_description[2]); 
     1549                                        unset($forwarding_attachments[$cid_imgs[4][$j]-2]); 
     1550                                        if (!empty($file_description)) 
     1551                                        { 
     1552                                                $file_description[5] = strlen($fileContent); //Size of file 
     1553                                                $return_forward[] = $file_description; 
     1554                                        } 
     1555                                } 
     1556                                $tempDir = ini_get("session.save_path"); 
     1557                                $file = "cid_image_".base_convert(microtime(), 10, 36).".dat";                                   
     1558                                $f = fopen($tempDir.'/'.$file,"w"); 
     1559                                fputs($f,$fileContent); 
     1560                                fclose($f); 
     1561                                if ($fileContent) 
     1562                                        $mail->AddEmbeddedImage($tempDir.'/'.$file, $cid, $fileName, $fileCode, $fileType); 
     1563                                //else 
     1564                                //      return "Error loading image attachment content";                                                 
     1565 
     1566                } 
    15091567         
    15101568        //      Build Forwarding Attachments!!!          
     
    17571815                $search_box_type = $params['search_box_type'] != "ALL" && $params['search_box_type'] != "" ? $params['search_box_type'] : false; 
    17581816                $sort_array_msg = $this -> get_msgs($folder, $sort_box_type, $search_box_type, $sort_box_reverse);                               
    1759                 $i = 0; 
    1760                  
    1761                 while($sort_array_msg[$i] != $msg_number) 
    1762                 { 
    1763                         $i++; 
    1764                 } 
    1765  
    1766                 if ($i == (count($sort_array_msg)-1)) 
     1817                 
     1818                $success = false; 
     1819                if (is_array($sort_array_msg)) 
     1820                { 
     1821                        foreach ($sort_array_msg as $i => $value){ 
     1822                                if ($value == $msg_number) 
     1823                                { 
     1824                                        $success = true; 
     1825                                        break; 
     1826                                } 
     1827                        } 
     1828                } 
     1829 
     1830                if (! $success || $i >= sizeof($sort_array_msg)-1) 
    17671831                { 
    17681832                        $params['status'] = 'false'; 
     
    17891853                $search_box_type = $params['search_box_type'] != "ALL" && $params['search_box_type'] != "" ? $params['search_box_type'] : false; 
    17901854                $sort_array_msg = $this -> get_msgs($folder, $sort_box_type, $search_box_type, $sort_box_reverse); 
    1791                 $i = 0; 
    1792                  
    1793                 while($sort_array_msg[$i] != $msg_number) 
    1794                 { 
    1795                         $i++; 
    1796                 } 
    1797                  
    1798                 if ($i == 0){ 
     1855                 
     1856                $success = false; 
     1857                if (is_array($sort_array_msg)) 
     1858                { 
     1859                        foreach ($sort_array_msg as $i => $value){ 
     1860                                if ($value == $msg_number) 
     1861                                { 
     1862                                        $success = true; 
     1863                                        break; 
     1864                                } 
     1865                        } 
     1866                } 
     1867                if (! $success || $i == 0) 
     1868                { 
    17991869                        $params['status'] = 'false'; 
    18001870                        $params['command_to_exec'] = "delete_border('". $reuse_border ."');"; 
  • trunk/expressoMail1_2/inc/class.ldap_functions.inc.php

    r271 r320  
    554554                                        ); 
    555555 
    556                                 $_SESSION['phpgw_info']['expressomail']['contact_photo'] = ldap_get_values_len($ds, $entry, "jpegphoto"); 
     556                                $_SESSION['phpgw_info']['expressomail']['contact_photo'] = @ldap_get_values_len($ds, $entry, "jpegphoto"); 
    557557                                ldap_close($ds); 
    558558                                return $obj; 
  • trunk/expressoMail1_2/index.php

    r271 r320  
    2828                'nonavbar' => False, 
    2929                'currentapp' => 'expressoMail1_2', 
    30                 'update_version'        => '1.2211', 
     30                'update_version'        => '1.222', 
    3131                'enable_nextmatchs_class' => True 
    3232        ); 
  • trunk/expressoMail1_2/js/DropDownContacts.js

    r2 r320  
    8989        // treat especials keys 
    9090        // key ENTER 
    91         if ((key_pressed == 13) && (document.getElementById('tipDiv').style.visibility)){ 
    92                 makeMailList(document.getElementById('td_DD_' + actualSelectedContact).innerHTML,fld_id); 
    93                 hideTip(); 
     91        if ((key_pressed == 13) && (document.getElementById('tipDiv').style.visibility)) 
     92        { 
     93                //Bug, sometimes the actualSelectedContact do not exist. 
     94                try{ 
     95                        makeMailList(document.getElementById('td_DD_' + actualSelectedContact).innerHTML,fld_id); 
     96                        hideTip(); 
     97                } 
     98                catch(e){} 
    9499                return; 
    95100        } 
  • trunk/expressoMail1_2/js/InfoContact.js

    r72 r320  
    4848        } 
    4949        div_label.innerHTML = text; 
    50         div_label.style.top = findPosY(this.td) + 20 - Element("divScrollMain").scrollTop; 
     50        div_label.style.top = findPosY(this.td) + 20 - Element("divScrollMain_"+numBox).scrollTop; 
    5151        div_label.style.left = findPosX(this.td) + 20; 
    5252        div_label.style.display = ''; 
     
    7373         { 
    7474                card.style.left = findPosX(this.td) + 20; 
    75                 var y = findPosY(this.td) + 20 - Element("divScrollMain").scrollTop; 
     75                var y = findPosY(this.td) + 20 - Element("divScrollMain_"+numBox).scrollTop; 
    7676                var w_height = is_ie ? document.body.clientHeight + document.body.scrollTop : window.innerHeight + window.pageYOffset; 
    7777                if(y + 160 > w_height) 
  • trunk/expressoMail1_2/js/TreeS.js

    r197 r320  
    128128                 
    129129                folders_tree = new dFTree({name: name_tree}); 
     130 
    130131                if(click_root != ""){ 
    131132                        var n_root = new dNode({id:'root', caption:get_lang("My Folders"), onClick:click_root}); 
     
    134135                } 
    135136                folders_tree.add(n_root,'root'); //Places the root; second argument can be anything. 
    136                  
     137 
    137138                if(data.length == 0){ 
    138139                        alert("sem dados"); 
     
    161162                } 
    162163                 
    163 /*              if(folders_tree._folderPr.length > 0 && destination == "div_tree"){ 
    164                         var nw_rt = new dNode({id:'proble', caption:'<font style=color:red><b>' + get_lang('Problems') + '</b></font>', plusSign:true});                 
    165                         folders_tree.add(nw_rt,'root'); 
    166  
    167                         for(var i=0; i < folders_tree._folderPr.length; i++){ 
    168                                 var nm_fl = folders_tree._folderPr[i].split(cyrus_delimiter); 
    169                                 if( nm_fl[0] == "INBOX") 
    170                                         var nm = folders_tree._folderPr[i].substr(6,folders_tree._folderPr[i].length); 
    171                                 else 
    172                                         var nm = folders_tree._folderPr[i].substr(5,folders_tree._folderPr[i].length); 
    173                                 var nw_rm = new dNode({id:folders_tree._folderPr[i], caption:nm, plusSign:false}); 
    174                                 folders_tree.add(nw_rm,'proble'); 
    175                         } 
    176                         folders_tree._folderPr.splice(0,folders_tree._folderPr.length); 
    177                 }  
    178                 */ 
    179164                folders_tree.draw(Element(destination)); 
    180165                n_root.changeState(); 
  • trunk/expressoMail1_2/js/TreeShow.js

    r197 r320  
    2626                        } 
    2727                        ttree.FOLDER = ttreeBox.name_folder; 
    28                         tree_folders.getNodeById(get_current_folder())._select(); 
     28                        if (tree_folders.getNodeById(get_current_folder())) 
     29                                tree_folders.getNodeById(get_current_folder())._select(); 
    2930                } 
    3031                cExecute ("$this.imap_functions.get_folders_list", handler_update_folders);              
  • trunk/expressoMail1_2/js/abas.js

    r271 r320  
    1111function alternate_border(ID) 
    1212{ 
     13        if (! Element('border_id_'+ID)) 
     14                return false; // Not possible to alternate 
    1315        Element("footer_menu").style.display = (ID != "0" ? 'none' : ''); 
    1416        var len = BordersArray.length; 
     
    1618        { 
    1719                m = document.getElementById(BordersArray[i].border_id); 
    18                 if (m.className == 'menu-sel') 
     20                if ((m)&&(m.className == 'menu-sel')) 
    1921                { 
    2022                        m.className = 'menu'; 
     
    4345 
    4446        m = Element("border_id_"+ID); 
    45         m.className = 'menu-sel'; 
     47        if (m) 
     48                m.className = 'menu-sel'; 
    4649        if(Element("font_border_id_" + ID)) 
    4750                Element("font_border_id_" + ID).className = 'font-menu-sel'; 
    4851        var c = Element("content_id_"+ID) 
    49         c.style.display = ''; 
     52        if (c) 
     53                c.style.display = ''; 
    5054 
    5155        body = document.getElementById('body_'+ ID); 
     
    6872                window_DropDownContacts.style.visibility = 'hidden'; 
    6973        } 
    70          
     74 
     75        if (typeof(ID) == 'number') 
     76        { 
     77                current_folder = openBox.tab_folder[ID]; 
     78                numBox=ID; 
     79        } 
    7180        return ID; 
    7281} 
     
    8998        else{ 
    9099                var ID = id_value; 
    91                 if (document.getElementById("border_id_"+id_value+"_r")) // Edit message? if yes treat like new 
     100                if (document.getElementById("border_id_"+id_value+"_r")) // Edit message? if yes treat like new in dragdrop case 
    92101                                        var id_value = null; 
    93102        } 
     
    123132        parent_bb.insertBefore(td, bb); 
    124133         
    125         if(id_value && id_value.match(/_r$/))    
     134        if((typeof(id_value) == 'string') && id_value.match(/_r$/))      
    126135                _dragArea.makeDragged(td, id_value,td.value); 
    127136 
     
    139148                 
    140149        div.style.height = document.body.clientHeight - offset - (is_ie ? 76 : 86); 
    141         div.style.overflow = "auto"; 
     150        div.style.overflow = "hidden"; 
    142151 
    143152        if(!is_ie) { 
     
    187196        if(!ID) 
    188197                return false; 
     198 
     199        Element("border_id_" + ID).onclick = null; 
    189200         
    190201        if (msg_sent == 'false') 
     
    205216                                        else 
    206217                                        { 
    207                                                 if (! newMessageTab.toPreserve[ID]) 
    208                                                         cExecute ("$this.imap_functions.delete_msgs&folder="+newMessageTab.imapBox[ID]+"&msgs_number="+newMessageTab.imapUid[ID],function(data){ return }); 
     218                                                if (newMessageTab.imapBox[ID] && ! newMessageTab.toPreserve[ID]){ 
     219                                                        delete_msgs(newMessageTab.imapBox[ID], newMessageTab.imapUid[ID].toString(), 0) 
     220                                                        } 
     221                                                        //cExecute ("$this.imap_functions.delete_msgs&folder="+newMessageTab.imapBox[ID]+"&msgs_number="+newMessageTab.imapUid[ID],function(data){ return }); 
    209222                                                Element('to_'+ID).focus(); 
    210223                                        } 
     
    224237        { 
    225238                m = document.getElementById(BordersArray[i].border_id); 
    226                 if (m.className == 'menu-sel') 
     239                if ((m) && (m.className == 'menu-sel')) 
    227240                        border_selected = BordersArray[i].border_id; 
    228241        } 
     
    237250 
    238251        // Remove TD, title 
    239         border = document.getElementById('border_id_' + ID); 
     252        border = Element('border_id_' + ID); 
    240253        border.parentNode.removeChild(border); 
    241254        // Remove Div Content 
    242         content = document.getElementById('content_id_' + ID); 
     255        content = Element('content_id_' + ID); 
    243256        content.parentNode.removeChild(content); 
    244257         
     
    247260        for (i=0;i<BordersArray.length;i++) 
    248261        { 
    249                 if (document.getElementById(BordersArray[i].border_id) != null){ 
     262                if (Element(BordersArray[i].border_id) != null){ 
    250263                        new_BordersArray[j] = BordersArray[i]; 
    251264                        j++;     
     
    255268                Element("footer_menu").style.display = ''; 
    256269        BordersArray = new_BordersArray; 
    257 } 
     270        return true; 
     271} 
  • trunk/expressoMail1_2/js/common_functions.js

    r271 r320  
    1616 
    1717window.onresize = resizeWindow; 
     18 
     19function config_events(pObj, pEvent, pHandler) 
     20{ 
     21    if( typeof pObj == 'object') 
     22    { 
     23        if( pEvent.substring(0, 2) == 'on') 
     24            pEvent = pEvent.substring(2, pEvent.length); 
     25 
     26        if ( pObj.addEventListener ) 
     27            pObj.addEventListener(pEvent, pHandler, false); 
     28        else if( pObj.attachEvent ) 
     29            pObj.attachEvent('on' + pEvent, pHandler ); 
     30    } 
     31} 
    1832 
    1933function resizeWindow(){ 
     
    3852        } 
    3953        Element('content_folders').style.height = defaultHeight - (is_ie ? 165 : 150); 
    40         if(Element("divScrollMain")) 
    41                 Element("divScrollMain").style.height   = defaultHeight - (is_ie ? 111 : 110);   
     54        if(Element("divScrollMain_"+numBox)) 
     55                Element("divScrollMain_"+numBox).style.height   = defaultHeight - (is_ie ? 111 : 110);   
    4256} 
    4357// END: FUNCTION RESIZE WINDOW 
    4458 
    4559// onUnload edit message 
    46 if(!is_ie) 
     60 
     61var _beforeunload_ = window.onbeforeunload; 
     62 
     63window.onbeforeunload = function() 
    4764{ 
    48         var beforeunload = window.onbeforeunload; 
    49         window.onbeforeunload = function() 
    50         { 
    51                 if ( typeof beforeunload == 'function' ) 
    52                         beforeunload(); 
    53  
    54                 return unloadMess(); 
    55         }; 
    56 } 
     65        return unloadMess(); 
     66} 
     67 
    5768function unloadMess(){ 
    5869        var mess = get_lang("Your message has not been sent and will be discarted."); 
     
    6475        } 
    6576} 
     77 
    6678// Translate words and phrases using user language from eGroupware. 
    6779function get_lang(_key,_arg1,_arg2,_arg3,_arg4) { 
     
    143155        if (box != null) 
    144156                box.parentNode.removeChild(box); 
     157        else 
     158                return false; 
    145159} 
    146160 
     
    189203function addFile(id_border){ 
    190204        divFiles = document.getElementById("divFiles_"+id_border); 
     205        if (! divFiles) 
     206                return false; 
    191207         
    192208        if (divFiles.lastChild) 
     
    216232        linkFile.id = "linkFile_"+id_border+"_"+countDivFiles; 
    217233        linkFile.href='javascript:void(0)'; 
    218         linkFile.onclick=function () {removeFile(this.id.replace("link","div"));}; 
     234        linkFile.onclick=function () {removeFile(this.id.replace("link","div")); return false;}; 
    219235        linkFile.innerHTML=get_lang("Remove");   
    220236        //divFile.innerHTML += "&nbsp;&nbsp;"; 
     
    231247 
    232248function validateFileExtension(fileName, id, id_border){ 
     249         
    233250        var error_flag  = false; 
    234         if (fileName[0] != '/'){ // file name is windows format? 
    235                 var file = fileName.substr(fileName.lastIndexOf('\\') + 1, fileName.length); 
    236                 if ((fileName.indexOf(':\\') != 1) && (fileName.indexOf('\\\\') != 0)) // Is stored in partition or a network file? 
    237                         error_flag = true;       
    238         } 
    239         else // is nix 
    240                 var file = fileName.substr(fileName.lastIndexOf('/') + 1, fileName.length);                                              
     251 
     252        if ( fileName.indexOf('/') != -1 ) 
     253        { 
     254                if (fileName[0] != '/'){ // file name is windows format? 
     255                        var file = fileName.substr(fileName.lastIndexOf('\\') + 1, fileName.length); 
     256                        if ((fileName.indexOf(':\\') != 1) && (fileName.indexOf('\\\\') != 0)) // Is stored in partition or a network file? 
     257                                error_flag = true;       
     258                } 
     259                else // is Unix 
     260                        var file = fileName.substr(fileName.lastIndexOf('/') + 1, fileName.length);                                              
     261        } 
     262        else  // is Firefox 3 
     263                var file = fileName; 
    241264 
    242265        var fileExtension = file.split("."); 
     
    252275        } 
    253276 
    254         if (error_flag == true){ 
     277        if ( error_flag == true ) 
     278        { 
    255279                alert(get_lang('File extension forbidden or invalid file') + '.'); 
    256280                removeFile(id); 
     
    259283        } 
    260284        return true; 
    261          
    262285} 
    263286 
     
    635658function remove_className(obj, className){ 
    636659        var re = new RegExp("\\s*"+className); 
    637         obj.className = obj.className.replace(re, ''); 
     660        if (obj) 
     661                obj.className = obj.className.replace(re, ''); 
    638662} 
    639663 
  • trunk/expressoMail1_2/js/doiMenuData.js

    r214 r320  
    206206        div.style.display =''; 
    207207}  
     208 
     209function ConstructBoxMenu(_event,boxName,boxFolder){ 
     210 
     211        var div = Element("div_rightbutton_folder"); 
     212                if (div) 
     213                        div.parentNode.removeChild(div); 
     214         
     215                div = document.createElement("DIV"); 
     216                div.style.position = 'absolute'; 
     217                div.style.zIndex = '15'; 
     218 
     219                div.style.border = '1px outset BLACK'; 
     220                div.style.background = "#EEEEE6"; 
     221                div.id = 'div_rightbutton_folder'; 
     222                div.style.padding = "1px"; 
     223                div.style.fontSize = is_ie || is_gecko1_5 || is_win ? "9pt" : "11pt"; 
     224                div.style.width = "190px"; 
     225                div.style.height = is_win && !is_ie ? "35px" : "33px"; 
     226                div.style.display ='none';               
     227                document.body.appendChild(div); 
     228                var _tab = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"; 
     229                var _sep = "<hr>"; 
     230                var optionsMenu = new Array(  
     231                        _tab + get_lang("Open in new tab")+'|'+"open_folder('"+boxFolder+"', '"+boxName+"')", 
     232                        _tab + get_lang("Edit folders")+'|'+"folderbox()" 
     233                ); 
     234 
     235                for(i = 0; i < optionsMenu.length; i++){ 
     236                        optionsMenu_l = optionsMenu[i].split('|'); 
     237                        var div_l = document.createElement("DIV"); 
     238                        div_l.style.padding = "1px"; 
     239                        div_l.style.width = "188px"; 
     240                        div_l.style.cursor = 'pointer';                  
     241                        div_l.innerHTML = optionsMenu_l[0]; 
     242                        div_l.style.valign = 'top'; 
     243                        if(optionsMenu_l[0] != _sep) { 
     244                                var attr = document.createAttribute('javascript'); 
     245                                attr.value = optionsMenu_l[1]+";Element('div_rightbutton_folder').style.display = 'none';"; 
     246                                div_l.setAttributeNode(attr); 
     247                                div_l.oncontextmenu = function(e) {     return false;}; 
     248                                div_l.onclick = function () {this.onmouseout();eval(this.getAttribute('javascript'));}; 
     249                                div_l.onmouseover = function () {this.style.color = 'WHITE';this.style.background = "#4a79cd";}; 
     250                                div_l.onmouseout = function ()  {this.style.color = 'BLACK';this.style.background = "#EEEEE6";}; 
     251                        } 
     252                        else 
     253                                div_l.style.height = "11px"; 
     254                                 
     255                        div_l.id="link_rightbutton_folder"+i; 
     256                        div.appendChild(div_l); 
     257                } 
     258 
     259        var x = _event.clientX + document.body.scrollLeft +  2; 
     260        var y =  _event.clientY + document.body.scrollTop +  2; 
     261 
     262        var w_width  = is_ie ? document.body.clientWidth : window.innerWidth; 
     263        var w_height = is_ie ? document.body.clientHeight + document.body.scrollTop : window.innerHeight + window.pageYOffset; 
     264 
     265        if(x + 218 > w_width) 
     266                div.style.left = w_width - (is_ie ? 198 : 218);  
     267        else 
     268                div.style.left = x; 
     269         
     270        if(y + 131 > w_height) 
     271                div.style.top =  w_height - (is_ie ? 125 : 131);         
     272        else 
     273                div.style.top = y;       
     274 
     275        div.style.display =''; 
     276}  
  • trunk/expressoMail1_2/js/drag_area.js

    r2 r320  
    33        this.msg_number = false; 
    44        this.subject    = false; 
     5        this.folder             = ''; 
    56        this.color_dd   = 'red'; 
    67        this.from_list  = false; 
     
    2728} 
    2829 
    29 DragArea.prototype.makeDragged = function(element, msg_number, subject, from_list){ 
     30DragArea.prototype.makeMenuBox = function(element){ 
     31 
     32        element.oncontextmenu = function(e) 
     33        { 
     34                return false; 
     35        } 
     36         
     37        var _this = this; 
     38         
     39        element.onmousedown = function (e) 
     40        { 
     41                var _button = is_ie ? window.event.button : e.which; 
     42 
     43                if(_button == 2 || _button == 3) 
     44                { 
     45                        var boxFolder = element.id.substr(1,element.id.indexOf('tree_folders')-1); 
     46                        var boxName = element.firstChild.nextSibling.innerHTML; 
     47                        ConstructBoxMenu(is_ie ? window.event : e,boxName,boxFolder); 
     48                } 
     49                                 
     50                return true; 
     51        };       
     52         
     53} 
     54 
     55DragArea.prototype.makeDragged = function(element, msg_number, subject, from_list, folder){ 
    3056        element.oncontextmenu = function(e) { 
    3157                return false; 
     
    6288                        _this.div_dd.style.width = "auto"; 
    6389                        _this.div_dd.style.height = "auto";                      
     90                        _this.folder = folder; 
    6491                } 
    6592                return true; 
     
    6996 
    7097        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) { 
     98        if(_dragArea.from_list) { 
     99 
     100                if((Element("check_box_message_"+msg_number)) && (! Element("check_box_message_"+msg_number).checked)) { 
    73101                        if (is_ie) 
    74102                                changeBgColor(window.event,msg_number); 
     
    148176        if(_button != 2 && _button != 3) {               
    149177 
    150                 if(Element("div_rightbutton") && Element("div_rightbutton").style.display != 'none') { 
     178                if(Element("div_rightbutton") && Element("div_rightbutton").style.display != 'none') 
     179                { 
    151180                                                 
    152181                        if(!_target.id.match(/link_rightbutton_(.*)$/)){ 
     
    168197                if(is_ie) 
    169198                        _dragArea.onSelectStart(true); 
     199         
     200                if (Element("div_rightbutton_folder") && Element("div_rightbutton_folder").style.display != 'none') 
     201                {        
     202                Element('div_rightbutton_folder').style.display = 'none'; 
     203                } 
     204         
    170205        }        
    171206 
     
    183218                                 
    184219                        if(_dragArea.from_list) 
    185                                 move_msgs('null', 'selected', 'null', new_folder, new_folder_name); 
    186                         else { 
     220                                move_msgs(_dragArea.folder, 'selected', numBox, new_folder, new_folder_name); 
     221                        else{ 
    187222                                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); 
     223                                move_msgs(_dragArea.folder, msg_number, msg_number+"_r", new_folder, new_folder_name); 
    189224                        } 
    190225                } 
  • trunk/expressoMail1_2/js/draw_api.js

    r271 r320  
     1var openBox = { 
     2        'content_id' : [], 
     3        'tab_folder' : [] 
     4 }; 
     5var numBox = 0; // Open Mailboxes at context 
     6 
    17function draw_tree_folders(folders){ 
    28        // Check if the tree folders alredy exist. 
     
    2430                                if(data[i].folder_id == get_current_folder()){                                   
    2531                                        var old_new_m = isNaN(parseInt(Element('new_m').innerHTML)) ? parseInt(Element('new_m').firstChild.innerHTML) : parseInt(Element('new_m').innerHTML); 
    26                                         if(!isNaN(old_new_m) && old_new_m < data[i].folder_unseen){ 
    27                                                 Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) + (parseInt(data[i].folder_unseen)-old_new_m); 
    28                                         } 
     32//                                      if(!isNaN(old_new_m) && old_new_m < data[i].folder_unseen){ 
     33//                                              Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) + (parseInt(data[i].folder_unseen)-old_new_m); 
     34//                                      } 
    2935                                        Element('new_m').innerHTML = data[i].folder_unseen ? '<font color="RED">'+data[i].folder_unseen+'</font>' : 0; 
    3036                                        draw_paging(Element('tot_m').innerHTML); 
     
    4349                for (var i=0; i<folders.length; i++){ 
    4450                        if (folders[i].folder_unseen > 0) 
     51                        { 
    4552                                var nn = new dNode({id:folders[i].folder_id, caption:lang_folder(folders[i].folder_name) + '<font style=color:red>&nbsp(</font><span id="dftree_'+folders[i].folder_id+'_unseen" style=color:red>'+folders[i].folder_unseen+'</span><font style=color:red>)</font>', onClick:"change_folder('"+folders[i].folder_id+"','"+folders[i].folder_name+"')", plusSign:folders[i].folder_hasChildren});  
    46  
     53                                 
     54                                if( folders[i].folder_name.toLowerCase() == 'inbox' ) 
     55                                        Element('new_m').innerHTML = '<font style="color:red">' + folders[i].folder_unseen + '</font>'; 
     56                        } 
    4757                        else 
    4858                                var nn = new dNode({id:folders[i].folder_id, caption:lang_folder(folders[i].folder_name), onClick:"change_folder('"+folders[i].folder_id+"','"+folders[i].folder_name+"')", plusSign:folders[i].folder_hasChildren});  
     
    6272                tree_folders.getNodeById('INBOX')._select();             
    6373                draw_paging(Element('tot_m').innerHTML); 
     74                // Draw right menu folders. 
     75                /* 
     76                var treeroot = document.getElementById('chroottree_folders');  
     77                for (var linkBox = treeroot.firstChild; linkBox != null; linkBox = linkBox.nextSibling) 
     78                        _dragArea.makeMenuBox(linkBox); 
     79                */ 
    6480        } 
    6581         
     
    93109                } 
    94110        } 
    95  
    96  
    97111} 
    98112 
     
    105119                                Element('new_m').innerHTML = '<font face="Verdana" size="1" color="RED">'+f_unseen.innerHTML+'</font>'; 
    106120                        else 
    107                                 Element('new_m').innerHTML = 0;                  
     121                        { 
     122                                if( parseInt(Element('new_m').innerHTML) == 0 ) 
     123                                        Element('new_m').innerHTML = 0;                  
     124                        } 
    108125                        folders = data; 
    109126                        cExecute ("$this.imap_functions.get_range_msgs2&folder=INBOX&msg_range_begin=1&msg_range_end="+preferences.max_email_per_page+"&sort_box_type=SORTARRIVAL&sort_box_reverse=1", handler_draw_box); 
     
    112129 
    113130var handler_draw_box = function(data){ 
    114         draw_box(data, 'INBOX'); 
     131        draw_box(data, 'INBOX', true); 
     132        //alternate_border(0); 
    115133} 
    116134 
    117135// Action on change folders. 
    118136function change_folder(folder, folder_name){ 
     137        if (openBox.tab_folder[0] != folder) 
     138        { 
     139                current_folder = folder; 
     140                var handler_draw_box = function(data) 
     141                { 
     142                        if(!verify_session(data)) 
     143                                return; 
     144                        alternate_border(0); 
     145                        Element("border_id_0").innerHTML = "&nbsp;" + lang_folder(folder_name) + '&nbsp;<font face="Verdana" size="1" color="#505050">[<span id="new_m">&nbsp;</span> / <span id="tot_m"></span>]</font>'; 
     146                        draw_box(data, folder, true); 
     147                        draw_paging(data.num_msgs); 
     148                        Element("tot_m").innerHTML = data.num_msgs; 
     149                        update_menu(); 
     150                        return true; 
     151                } 
     152                cExecute ("$this.imap_functions.get_range_msgs2&folder="+current_folder+"&msg_range_begin=1&msg_range_end="+preferences.max_email_per_page+"&sort_box_type="+sort_box_type+ "&search_box_type="+ search_box_type +"&sort_box_reverse="+sort_box_reverse+"", handler_draw_box); 
     153        } else 
     154                alternate_border(0); 
     155} 
     156 
     157function open_folder(folder, folder_name){ 
    119158        if (get_current_folder()!= folder) 
    120159        { 
     
    123162                { 
    124163                        if(!verify_session(data)) 
    125                                 return; 
    126                         Element("border_id_0").innerHTML = "&nbsp;" + lang_folder(folder_name) + '&nbsp;<font face="Verdana" size="1" color="#505050">[<span id="new_m">&nbsp;</span> / <span id="tot_m"></span>]</font>'; 
    127                         draw_box(data, current_folder); 
    128                         draw_paging(data.num_msgs); 
    129                         Element("tot_m").innerHTML = data.num_msgs; 
    130                         update_menu(); 
    131                         alternate_border(0); 
     164                                return false; 
     165                        numBox++; 
     166                        create_border(folder_name,numBox.toString()); 
     167                        draw_box(data, current_folder, false); 
     168                        alternate_border(numBox); 
     169                        return true; 
    132170                } 
    133171                cExecute ("$this.imap_functions.get_range_msgs2&folder="+current_folder+"&msg_range_begin=1&msg_range_end="+preferences.max_email_per_page+"&sort_box_type="+sort_box_type+ "&search_box_type="+ search_box_type +"&sort_box_reverse="+sort_box_reverse+"", handler_draw_box); 
    134172        } 
    135173        else 
    136                 alternate_border(0); 
     174                alternate_border(numBox); 
     175        return true; 
    137176} 
    138177 
     
    246285 
    247286// Draw the inbox and another folders 
    248 function draw_box(headers_msgs, msg_folder){ 
    249         kill_current_box(); 
     287function draw_box(headers_msgs, msg_folder, alternate){ 
     288        if (alternate) 
     289                kill_current_box(); 
    250290         
    251291        if(is_ie) 
    252292                document.getElementById("border_table").width = "99.5%"; 
    253293 
    254         var content_id_0 = document.getElementById("content_id_0"); 
    255          
    256         table_message_header_box = document.getElementById("table_message_header_box"); 
     294        openBox.content_id[numBox] = document.getElementById("content_id_"+numBox);      
     295        openBox.tab_folder[numBox] = msg_folder; 
     296         
     297        table_message_header_box = document.getElementById("table_message_header_box_"+numBox); 
    257298        if (table_message_header_box == null){ 
    258299                var table_element = document.createElement("TABLE"); 
    259300                var tbody_element = document.createElement("TBODY"); 
    260                 table_element.setAttribute("id", "table_message_header_box"); 
     301                table_element.setAttribute("id", "table_message_header_box_"+numBox); 
    261302                table_element.className = "table_message_header_box"; 
    262303                 
     
    292333                td_element3.setAttribute("width", "31%"); 
    293334                td_element3.onclick = function () {sort_box(search_box_type,'SORTFROM');}; 
    294                 td_element3.id = "message_header_SORTFROM"; 
     335                td_element3.id = "message_header_SORTFROM_"+numBox; 
    295336                td_element3.align = "left"; 
    296337                td_element3.innerHTML = get_lang("Who"); 
     
    299340                td_element4.setAttribute("width", "41%"); 
    300341                td_element4.onclick = function () {sort_box(search_box_type,'SORTSUBJECT');}; 
    301                 td_element4.id = "message_header_SORTSUBJECT"; 
     342                td_element4.id = "message_header_SORTSUBJECT_"+numBox; 
    302343                td_element4.align = "left"; 
    303344                td_element4.innerHTML = get_lang("Subject"); 
     
    306347                td_element5.setAttribute("width", "14%"); 
    307348                td_element5.onclick = function () {sort_box(search_box_type,'SORTARRIVAL');}; 
    308                 td_element5.id = "message_header_SORTARRIVAL"; 
     349                td_element5.id = "message_header_SORTARRIVAL_"+numBox; 
    309350                td_element5.align = "center"; 
    310351                td_element5.innerHTML = get_lang("Date"); 
     
    312353                td_element6.setAttribute("width", "14%"); 
    313354                td_element6.onclick = function () {sort_box(search_box_type,'SORTSIZE');} 
    314                 td_element6.id = "message_header_SORTSIZE"; 
     355                td_element6.id = "message_header_SORTSIZE_"+numBox; 
    315356                td_element6.align = "left"; 
    316357                td_element6.innerHTML = get_lang("Size"); 
     
    324365                tbody_element.appendChild(tr_element); 
    325366                table_element.appendChild(tbody_element); 
    326                 content_id_0.appendChild(table_element); 
     367                openBox.content_id[numBox].appendChild(table_element); 
    327368        } 
    328369        draw_header_box(); 
     
    362403        table_element.appendChild(tbody_element); 
    363404 
    364         var _divScroll = Element("divScrollMain"); 
     405        var _divScroll = document.getElementById("divScrollMain_"+numBox); 
     406 
    365407        var bar = document.getElementById("toolbar"); 
    366408        var offset = 0; 
     
    368410        if(!_divScroll){                 
    369411                _divScroll = document.createElement("DIV"); 
    370                 _divScroll.id = "divScrollMain"; 
     412                _divScroll.id = "divScrollMain_"+numBox; 
    371413        } 
    372414         
     
    391433        // Fim: Redimensiona DIV SCROLL 
    392434        _divScroll.appendChild(table_element); 
    393         content_id_0.appendChild(_divScroll); 
     435        openBox.content_id[numBox].appendChild(_divScroll); 
    394436         
    395437        var f_unseen = 0; 
     
    415457 
    416458        if ((preferences.use_shortcuts == '1') && (headers_msgs[0])) 
    417                 select_msg(headers_msgs[0].msg_number, 'null'); 
     459                select_msg(headers_msgs[0].msg_number, 'null', true); 
    418460 
    419461        var tdFolders  =  Element("folderscol"); 
    420462        tdFolders.style.display = preferences.hide_folders == '1'  ? "none" : ""; 
    421         alternate_border(0); 
     463        alternate_border(numBox); 
    422464        draw_footer_box(headers_msgs.num_msgs);  
    423465        Element('main_table').style.display = ''; 
     
    458500 
    459501function make_tr_message(headers_msgs, msg_folder){ 
    460                 var tr_element = document.createElement("TR"); 
     502                var tr_element = document.createElement('tr'); 
    461503                tr_element.style.height = preferences.line_height; 
    462504                var _fontSize = preferences.font_size ? preferences.font_size : "11"; 
     
    625667        var message_header = Element("message_header_"+search); 
    626668        var handler_draw_box = function(data){ 
    627                 draw_box(data, get_current_folder()); 
     669                draw_box(data, get_current_folder(),true); 
    628670                draw_paging(Element('tot_m').innerHTML); 
    629671        } 
     
    665707                        break; 
    666708        } 
    667         Element("message_header_SORTFROM").innerHTML    = get_lang("Who"); 
    668         Element("message_header_SORTSUBJECT").innerHTML = get_lang("Subject"); 
    669         Element("message_header_SORTARRIVAL").innerHTML = get_lang("Date"); 
    670         Element("message_header_SORTSIZE").innerHTML    = get_lang("Size");      
    671         Element("message_header_"+(sort_box_type.lastIndexOf("SORT") != "-1" ? sort_box_type : "SORTARRIVAL") ).innerHTML = "<B>"+type_name+"</B><img src ='templates/default/images/arrow_"+(sort_box_reverse == 1 ? 'desc' : 'asc')+"endant.gif'>"; 
     709        document.getElementById("message_header_SORTFROM_"+numBox).innerHTML    = get_lang("Who"); 
     710        document.getElementById("message_header_SORTSUBJECT_"+numBox).innerHTML = get_lang("Subject"); 
     711        document.getElementById("message_header_SORTARRIVAL_"+numBox).innerHTML = get_lang("Date"); 
     712        document.getElementById("message_header_SORTSIZE_"+numBox).innerHTML    = get_lang("Size");      
     713        document.getElementById("message_header_"+(sort_box_type.lastIndexOf("SORT") != "-1" ? sort_box_type : "SORTARRIVAL")+"_"+numBox ).innerHTML = "<B>"+type_name+"</B><img src ='templates/default/images/arrow_"+(sort_box_reverse == 1 ? 'desc' : 'asc')+"endant.gif'>"; 
    672714} 
    673715function draw_message(info_msg, ID){ 
     
    743785        } 
    744786         
     787        if (info_msg.DispositionNotificationTo) 
     788        { 
     789                td.innerHTML += '&nbsp;<img style="cursor:pointer" alt="'+ get_lang('Message with read notification') + '" title="'+ get_lang('Message with read notification') + '" src="templates/default/images/notification.gif">'; 
     790        } 
     791         
    745792        // NORMAL MSG 
    746793        if(info_msg.Draft != 'X') 
     
    852899                        div_other_options.innerHTML += ' | <span class="message_options" onclick="spam(\''+info_msg.msg_folder+'\', '+info_msg.msg_number+',\'null\')";>'+get_lang("Mark as Spam")+'</span>';    
    853900        } 
     901                 
    854902        td_other_options.appendChild(div_other_options); 
    855903        //td_other_options.innerHTML = option_print + option_reply_to_all + option_source_msg; 
     
    13211369                input_to.rows = 2; 
    13221370                input_to.onkeypress = function (e) 
    1323                 { 
    1324                         if ((e.keyCode) == 120) //F9 
    1325                         { 
    1326                                 emQuickSearch(input_to.value, 'to', ID); 
    1327                         } 
    1328                         else 
    1329                         {  
    1330                                 if (((e.keyCode == 13) || ((e.keyCode == 38)||(e.keyCode == 40))) && (document.getElementById('tipDiv').style.visibility!='hidden')) 
    1331                                 { 
    1332                                         e.preventDefault(); 
    1333                                         search_contacts(e.keyCode,this.id); 
    1334                                 } 
    1335                         } 
    1336                 } 
    1337                 input_to.onkeyup = function (e) 
    1338                 { 
    1339                         if ((e.keyCode != 13) && (e.keyCode != 38) && (e.keyCode != 40)) 
    1340                         { 
    1341                                 search_contacts(e.keyCode,this.id); 
    1342                         } 
    1343                 } 
     1371        { 
     1372            if ((e.keyCode) == 120) //F9 
     1373            { 
     1374                emQuickSearch(input_to.value, 'to', ID); 
     1375            } 
     1376            else 
     1377            { 
     1378                if (((e.keyCode == 13) || ((e.keyCode == 38)||(e.keyCode == 40))) && (document.getElementById('tipDiv').style.visibility!='hidden')) 
     1379                { 
     1380                    e.preventDefault(); 
     1381                    search_contacts(e.keyCode,this.id); 
     1382                } 
     1383            } 
     1384        } 
     1385        input_to.onkeyup = function (e) 
     1386        { 
     1387            if ((e.keyCode != 13) && (e.keyCode != 38) && (e.keyCode != 40)) 
     1388            { 
     1389                search_contacts(e.keyCode,this.id); 
     1390            } 
     1391        } 
    13441392        } 
    13451393        else 
     
    13471395                input_to.rows = 3; 
    13481396                input_to.onkeyup = function (e) 
    1349                 { 
    1350                         if ((window.event.keyCode) == 120) //F9 
    1351                         { 
    1352                                 emQuickSearch(input_to.value, 'to', ID); 
    1353                         } 
    1354                         else  
    1355                         {  
    1356                                 search_contacts(window.event.keyCode,this.id); 
    1357                         }        
    1358                 } 
     1397        { 
     1398            if ((window.event.keyCode) == 120) //F9 
     1399            { 
     1400                emQuickSearch(input_to.value, 'to', ID); 
     1401            } 
     1402            else  
     1403            {  
     1404                search_contacts(window.event.keyCode,this.id); 
     1405            }    
     1406        } 
    13591407        } 
    13601408        td_to.appendChild(input_to); 
     
    14001448        input_cc.onfocus = function(){clearTimeout(parseInt(setTimeOutLayer)); search_contacts('onfocus',this.id);}; 
    14011449        input_cc.onblur = function(){setTimeOutLayer=setTimeout('search_contacts("lostfocus","'+this.id+'")',100);}; 
    1402         if (!is_ie) 
    1403         { 
    1404                 input_cc.rows = 2; 
    1405                 input_cc.onkeypress = function (e) 
    1406                 { 
    1407                         if ((e.keyCode) == 120) //F9 
    1408                         { 
    1409                                 emQuickSearch(input_cc.value, 'cc', ID); 
    1410                         } 
    1411                         else  
    1412                         {  
    1413                                 if (((e.keyCode == 13) || ((e.keyCode == 38)||(e.keyCode == 40))) && (document.getElementById('tipDiv').style.visibility!='hidden')) 
    1414                                 { 
    1415                                         e.preventDefault(); 
    1416                                         search_contacts(e.keyCode,this.id); 
    1417                                 } 
    1418                         } 
    1419                 } 
    1420                 input_cc.onkeyup = function (e) 
    1421                 { 
    1422                         if ((e.keyCode != 13) && (e.keyCode != 38) && (e.keyCode != 40)) 
    1423                         { 
    1424                                 search_contacts(e.keyCode,this.id); 
    1425                         } 
    1426                 } 
    1427         } 
    1428         else if (is_ie) 
    1429         { 
    1430                 input_cc.rows = 3; 
    1431                 input_cc.onkeyup = function (e) 
    1432                 { 
    1433                         if ((window.event.keyCode) == 120) //F9 
    1434                         { 
    1435                                 emQuickSearch(input_cc.value, 'cc', ID); 
    1436                         } 
    1437                         else  
    1438                         {  
    1439                                 search_contacts(window.event.keyCode,this.id); 
    1440                         }        
    1441                 } 
    1442         } 
     1450    if (!is_ie) 
     1451    { 
     1452        input_cc.rows = 2; 
     1453        input_cc.onkeypress = function (e) 
     1454        { 
     1455            if ((e.keyCode) == 120) //F9 
     1456            { 
     1457                emQuickSearch(input_cc.value, 'cc', ID); 
     1458            } 
     1459            else 
     1460            { 
     1461                if (((e.keyCode == 13) || ((e.keyCode == 38)||(e.keyCode == 40))) && (document.getElementById('tipDiv').style.visibility!='hidden')) 
     1462                { 
     1463                    e.preventDefault(); 
     1464                    search_contacts(e.keyCode,this.id); 
     1465                } 
     1466            } 
     1467        } 
     1468        input_cc.onkeyup = function (e) 
     1469        { 
     1470            if ((e.keyCode != 13) && (e.keyCode != 38) && (e.keyCode != 40)) 
     1471            { 
     1472                search_contacts(e.keyCode,this.id); 
     1473            } 
     1474        } 
     1475    } 
     1476    else if (is_ie) 
     1477    { 
     1478        input_cc.rows = 3; 
     1479        input_cc.onkeyup = function (e) 
     1480        { 
     1481            if ((window.event.keyCode) == 120) //F9 
     1482            { 
     1483                emQuickSearch(input_cc.value, 'cc', ID); 
     1484            } 
     1485            else 
     1486            { 
     1487                search_contacts(window.event.keyCode,this.id); 
     1488            } 
     1489        } 
     1490    } 
     1491         
    14431492        td_cc.appendChild(input_cc); 
    14441493        var img_search = document.createElement("IMG"); 
     
    14811530        input_cco.onfocus = function(){clearTimeout(parseInt(setTimeOutLayer)); search_contacts('onfocus',this.id);}; 
    14821531        input_cco.onblur = function(){setTimeOutLayer=setTimeout('search_contacts("lostfocus","'+this.id+'")',100);}; 
     1532         
    14831533        if (!is_ie) 
    1484         { 
    1485                 input_cco.rows = 2; 
    1486                 input_cco.onkeypress = function (e) 
    1487                 { 
    1488                         if ((e.keyCode) == 120) //F9 
    1489                         { 
    1490                                 emQuickSearch(input_cco.value, 'cco', ID); 
    1491                         } 
    1492                         else  
    1493                         {  
    1494                                 if (((e.keyCode == 13) || ((e.keyCode == 38)||(e.keyCode == 40))) && (document.getElementById('tipDiv').style.visibility!='hidden')) 
    1495                                 { 
    1496                                         e.preventDefault(); 
    1497                                         search_contacts(e.keyCode,this.id); 
    1498                                 } 
    1499                         } 
    1500                 } 
    1501                 input_cco.onkeyup = function (e) 
    1502                 { 
    1503                         if ((e.keyCode != 13) && (e.keyCode != 38) && (e.keyCode != 40)) 
    1504                         { 
    1505                                 search_contacts(e.keyCode,this.id); 
    1506                         } 
    1507                 } 
    1508         } 
    1509         else if (is_ie) 
    1510         { 
    1511                 input_cco.rows = 3; 
    1512                 input_cco.onkeyup = function (e) 
    1513                 { 
    1514                         if ((window.event.keyCode) == 120) //F9 
    1515                         { 
    1516                                 emQuickSearch(input_cco.value, 'cco', ID); 
    1517                         } 
    1518                         else  
    1519                         {  
    1520                                 search_contacts(window.event.keyCode,this.id); 
    1521                         }        
    1522                 } 
    1523         } 
     1534    { 
     1535        input_cco.rows = 2; 
     1536        input_cco.onkeypress = function (e) 
     1537        { 
     1538            if ((e.keyCode) == 120) //F9 
     1539            { 
     1540                emQuickSearch(input_cco.value, 'cco', ID); 
     1541            } 
     1542            else  
     1543            {  
     1544                if (((e.keyCode == 13) || ((e.keyCode == 38)||(e.keyCode == 40))) && (document.getElementById('tipDiv').style.visibility!='hidden')) 
     1545                { 
     1546                    e.preventDefault(); 
     1547                    search_contacts(e.keyCode,this.id); 
     1548                } 
     1549            } 
     1550        } 
     1551        input_cco.onkeyup = function (e) 
     1552        { 
     1553            if ((e.keyCode != 13) && (e.keyCode != 38) && (e.keyCode != 40)) 
     1554            { 
     1555                search_contacts(e.keyCode,this.id); 
     1556            } 
     1557        } 
     1558    } 
     1559    else if (is_ie) 
     1560    { 
     1561        input_cco.rows = 3; 
     1562        input_cco.onkeyup = function (e) 
     1563        { 
     1564            if ((window.event.keyCode) == 120) //F9 
     1565            { 
     1566                emQuickSearch(input_cco.value, 'cco', ID); 
     1567            } 
     1568            else  
     1569            {  
     1570                search_contacts(window.event.keyCode,this.id); 
     1571            }    
     1572        } 
     1573    } 
     1574         
    15241575        td_cco.appendChild(input_cco); 
    15251576        var img_search = document.createElement("IMG"); 
     
    15531604        a_cc_link.setAttribute("href","javascript:void(0)"); 
    15541605        a_cc_link.setAttribute("tabIndex","-1"); 
    1555         a_cc_link.onclick = function () {this.style.display='none';document.getElementById('tr_cc_'+ID).style.display='';document.getElementById('space_link_'+ID).style.display='none';input_cc.focus();} 
     1606        a_cc_link.onclick = function () {this.style.display='none';document.getElementById('tr_cc_'+ID).style.display='';document.getElementById('space_link_'+ID).style.display='none';input_cc.focus(); return false;} 
    15561607        td2_link.appendChild(a_cc_link);         
    15571608        var space = document.createElement("span"); 
     
    15641615        a_cco_link.setAttribute("href","javascript:void(0)"); 
    15651616        a_cco_link.setAttribute("tabIndex","-1"); 
    1566         a_cco_link.onclick = function () {this.style.display='none';document.getElementById('tr_cco_'+ID).style.display='';document.getElementById('space_link_'+ID).style.display='none';input_cco.focus();} 
     1617        a_cco_link.onclick = function () {this.style.display='none';document.getElementById('tr_cco_'+ID).style.display='';document.getElementById('space_link_'+ID).style.display='none';input_cco.focus(); return false;} 
    15671618        td2_link.appendChild(a_cco_link);        
    15681619        tr_link.appendChild(td1_link); 
     
    16051656        var add_files = document.createElement("A"); 
    16061657        add_files.setAttribute("href", "javascript:void(0)"); 
    1607         add_files.onclick = function () {addFile(ID);}; 
     1658        add_files.onclick = function () { addFile(ID); return false;}; 
    16081659        add_files.innerHTML =  get_lang("Attachments: add+"); 
    16091660        add_files.setAttribute("tabIndex","-1"); 
     
    16501701        _div.style.height = document.body.clientHeight - _offset - 105; 
    16511702        content.style.height = document.body.clientHeight - _offset - 80; 
     1703         
    16521704        _div.style.overflow = "auto"; 
    16531705        _div.style.width = defaultWidth; 
  • trunk/expressoMail1_2/js/globals.js

    r248 r320  
    44var hold_session = false; 
    55var current_page = 1; 
    6 var current_folder = 'INBOX'; 
     6var current_folder = ''; 
    77var id_menu_folders = ''; 
    88var preferences = ''; 
  • trunk/expressoMail1_2/js/main.js

    r271 r320  
    11// Tempo do auto refresh (em milisegundos) 
    22var time_refresh = 300000; 
    3 var autosave_time = 60000; 
     3// tempo do auto save (em milisegundos) 
     4// 20000 = 20 segundos 
     5var autosave_time = 20000; 
    46 
    57function init(){ 
     
    3537        cyrus_delimiter = Element('cyrus_delimiter').value; 
    3638         
    37         alternate_border(0); 
    3839        cExecute ("$this.db_functions.get_dropdown_contacts", save_contacts); 
    3940        cExecute ("$this.functions.get_preferences", save_preferences); 
    4041        setTimeout('auto_refresh()', time_refresh); 
    41 } 
    42  
    43 var away = false; 
    44 var away_timer; 
    45 function setAway () 
    46 { 
    47         away_timer = setTimeout("setAway()", 5000); 
    48         away=true; 
    49 } 
    50  
    51 function auto_save_msg(border_id) 
    52 { 
    53         if (document.getElementById('border_id_'+border_id)) 
    54         {        
    55                 var      keypress_handler = function stop_counting () 
    56                 { 
    57                         clearTimeout(away_timer); 
    58                         away=false; 
    59                         away_timer = setTimeout('setAway()',5000); 
    60                 }; 
    61                  
    62                 var obj = document.getElementById('body_'+border_id).contentWindow.document; 
    63                 if ( obj.addEventListener ) 
    64                                 obj.addEventListener('keypress', keypress_handler, false); 
    65                 else if ( obj.attachEvent ) 
    66                         obj.attachEvent('onkeypress', keypress_handler); 
    67  
    68                 if (away) 
    69                         { 
    70                                 var save_link = Element("save_message_options"); 
    71                                 if (save_link.onclick !=  '') 
    72                                         save_msg(border_id); 
    73                                 else 
    74                                         setTimeout('auto_save_msg('+border_id+')',autosave_time); 
    75                         } 
    76                         else 
    77                                 setTimeout('auto_save_msg('+border_id+')',3000); 
    78         } 
    7942} 
    8043 
     
    158121                 
    159122                if ((msg_info.DispositionNotificationTo) && ((msg_info.Unseen == 'U') || (msg_info.Recent == 'N'))){ 
    160                         cExecute ("$this.imap_functions.send_notification&notificationto="+msg_info.DispositionNotificationTo+"&subject="+url_encode(msg_info.subject), handler_sendNotification); 
     123                /*      var confNotification = confirm(get_lang("The sender waits your notification of reading. Do you want to confirm this?"), ""); 
     124                        if (confNotification)*/ 
     125                                cExecute ("$this.imap_functions.send_notification&notificationto="+msg_info.DispositionNotificationTo+"&subject="+url_encode(msg_info.subject), handler_sendNotification); 
    161126                } 
    162127        } 
     
    285250        var main_list = Element("tbody_resultsearch_"+border_id.substr(18)).childNodes;  
    286251        for (j = 0; j < main_list.length; j++)  { 
    287                 var check_box = Element("check_box_search_message_"+main_list[j].id); 
     252                var check_box = Element("check_box_message_"+main_list[j].id); 
    288253                if(check_box && check_box.checked) { 
    289254                        selected_messages += main_list[j].id + ','; 
     
    334299function move_msgs(folder, msgs_number, border_ID, new_folder, new_folder_name){ 
    335300 
    336         if (folder == 'null') 
    337                 folder = Element("input_folder_"+msgs_number+"_r") ? Element("input_folder_"+msgs_number+"_r").value : get_current_folder();                     
    338  
     301        if (! folder || folder == 'null') 
     302                folder = Element("input_folder_"+msgs_number+"_r") ? Element("input_folder_"+msgs_number+"_r").value : get_current_folder(); 
     303         
    339304        var handler_move_msgs = function(data){ 
    340  
    341                 if(typeof(data) == 'string' && data.match(/^(.*)TRYCREATE(.*)$/)){ 
    342                         var move_to_folder = data.match(/^(.*)Spam(.*)$/) ? "Spam" : "Lixeira"; 
    343                         alert(get_lang('Its %1 folder is not created. It is necessary to create so that it functions correctly.', move_to_folder)); 
    344                         return false; 
    345                 } 
     305                if(typeof(data) == 'string') 
     306                        if (data.match(/^(.*)TRYCREATE(.*)$/)){ 
     307                                connector.loadScript('TreeS'); 
     308                                var move_to_folder = data.match(/^(.*)Spam(.*)$/) ? "Spam" : trashfolder; 
     309                                alert(get_lang('There is not %1 folder, Expresso is creating it for you... Please, repeat your request later.', move_to_folder)); 
     310                                connector.loadScript('TreeShow'); 
     311                                ttree.FOLDER = 'root'; 
     312                                ttreeBox.new_past(move_to_folder); 
     313                                return false; 
     314                        }else{ 
     315                                alert(data); 
     316                                return false; 
     317                        } 
     318 
    346319 
    347320                Element('chk_box_select_all_messages').checked = false; 
    348321                mail_msg = Element("tbody_box"); 
     322                //mail_msg = document.getElementById("divScrollMain_"+numBox).firstChild.firstChild; 
    349323                data.msgs_number = data.msgs_number.split(","); 
    350                  
     324 
     325                var msg_to_delete;               
     326                all_search_msg = msgs_number.split(','); 
     327                for (var i=0; i <= all_search_msg.length; i++) 
     328                { 
     329                        msg_to_delete = Element(folder+';'+all_search_msg[i]);  
     330                        if (msg_to_delete) 
     331                                msg_to_delete.parentNode.removeChild(msg_to_delete); 
     332                } 
     333 
    351334                if ( preferences.use_shortcuts == '1') { 
    352335                        var all_messages = Element('tbody_box').childNodes; 
     
    363346                } 
    364347 
    365                 var msg_to_delete;               
    366348                for (var i=0; i<data.msgs_number.length; i++) 
    367349                { 
     
    370352                                mail_msg.removeChild(msg_to_delete); 
    371353                } 
     354                 
    372355 
    373356                if (data.msgs_number.length == 1) 
     
    375358                else 
    376359                        write_msg(get_lang("The messages were moved to folder ") + lang_folder(data.new_folder_name)); 
    377  
    378                 if (data.border_ID != '' && data.border_ID != 'null'){ 
     360                if (data.border_ID.indexOf('r') != -1){ 
    379361                        if (parseInt(preferences.delete_and_show_previous_message) && folder == get_current_folder()) 
    380362                                show_msg(data.previous_msg); 
     
    399381        else 
    400382                write_msg(get_lang('No selected message.'));             
     383                 
    401384} 
    402385 
    403386function get_selected_messages(){ 
    404387        main = Element("tbody_box"); 
    405          
     388//      main = document.getElementById("divScrollMain_"+numBox).firstChild.firstChild; 
     389 
    406390        // Get all TR (messages) in tBody. 
    407391        main_list = main.childNodes; 
    408          
     392 
    409393        var selected_messages = ''; 
    410394        var selected_messages_by_shortcuts = ''; 
     
    412396        for (j; j<(main_list.length); j++) 
    413397        { 
     398        if (main_list[j].id.indexOf(';') == -1) 
     399        { 
    414400                check_box = Element("check_box_message_"+main_list[j].id); 
    415401                if ( (check_box) && (check_box.checked) ) 
    416                 { 
    417402                        selected_messages += main_list[j].id + ','; 
    418                 } 
     403        } 
     404        else 
     405        { // Message from search tab 
     406                check_box = Element("check_box_message_"+main_list[j].id.substr(main_list[j].id.indexOf(';')+1)); 
     407                if ( (check_box) && (check_box.checked) ) 
     408                        selected_messages += main_list[j].id.substr(main_list[j].id.indexOf(';')+1) + ','; 
     409        } 
    419410                 
    420411                if (preferences.use_shortcuts == '1') 
     
    450441 
    451442        var new_border_ID = draw_new_message(parseInt(border_ID)); 
    452         if (preferences.auto_save_draft == 1) 
    453                 setTimeout('auto_save_msg('+new_border_ID+')', autosave_time);           
    454443         
    455444        // Salva a pasta da mensagem respondida ou encaminhada: 
     
    466455        data = []; 
    467456        if (Element("from_" + border_ID)){ 
    468                 if (document.getElementById("reply_to_" + border_ID)){ 
    469                         data.to = document.getElementById("reply_to_values_" + border_ID).value; 
    470                         data.to = data.to.replace(/&lt;/gi,"<"); 
    471                         data.to = data.to.replace(/&gt;/gi,">"); 
     457                        if (document.getElementById("reply_to_" + border_ID)){ 
     458                                data.to = document.getElementById("reply_to_values_" + border_ID).value; 
     459                                data.to = data.to.replace(/&lt;/gi,"<"); 
     460                                data.to = data.to.replace(/&gt;/gi,">"); 
    472461                } 
    473462                else { 
    474                         data.to = document.getElementById("from_values_" + border_ID).value; 
    475                         data.to = data.to.replace(/&lt;/gi,"<"); 
    476                         data.to = data.to.replace(/&gt;/gi,">"); 
     463                        if (document.getElementById("from_values_" + border_ID)) 
     464                        { 
     465                                data.to = document.getElementById("from_values_" + border_ID).value; 
     466                                data.to = data.to.replace(/&lt;/gi,"<"); 
     467                                data.to = data.to.replace(/&gt;/gi,">"); 
     468                        } 
    477469                }        
    478470                 
    479                 data.to_all = document.getElementById("to_values_" + border_ID).value; 
    480                 data.to_all = data.to_all.replace(/\n/gi," ");           
    481                 data.to_all = data.to_all.replace(/&lt;/gi,"<"); 
    482                 data.to_all = data.to_all.replace(/&gt;/gi,">"); 
    483                 // delete user email from to_all array. 
    484                 var _array_to_all = data.to_all.split(","); 
    485                 data.to_all = new Array(); 
    486                 var j = 0; 
    487                 for(i = 0; i < _array_to_all.length; i++) {                      
    488                         if(_array_to_all[i].lastIndexOf(Element("user_email").value) == "-1"){ 
    489                                 data.to_all[j++] = _array_to_all[i]; 
    490                         } 
    491                 } 
    492                 data.to_all = data.to_all.join(","); 
     471                if (document.getElementById("to_values_" + border_ID)){ 
     472                        data.to_all = document.getElementById("to_values_" + border_ID).value; 
     473                        data.to_all = data.to_all.replace(/\n/gi," ");           
     474                        data.to_all = data.to_all.replace(/&lt;/gi,"<"); 
     475                        data.to_all = data.to_all.replace(/&gt;/gi,">"); 
     476                        var _array_to_all = data.to_all.split(","); 
     477                }        
    493478        } 
    494479         
     
    561546                        break; 
    562547                case "reply_to_all_without_history": 
     548                        // delete user email from to_all array. 
     549                        data.to_all = new Array(); 
     550                        var j = 0; 
     551                        for(i = 0; i < _array_to_all.length; i++) {                      
     552                                if(_array_to_all[i].lastIndexOf(Element("user_email").value) == "-1"){ 
     553                                        data.to_all[j++] = _array_to_all[i]; 
     554                                } 
     555                        } 
     556                        data.to_all = data.to_all.join(","); 
     557 
    563558                        title = "Re: " + data.subject; 
    564559                        Element("subject_" + new_border_ID).value = "Re: " + data.subject; 
     
    590585                        break; 
    591586                case "reply_to_all_with_history": 
     587                        // delete user email from to_all array. 
     588                        data.to_all = new Array(); 
     589                        var j = 0; 
     590                                for(i = 0; i < _array_to_all.length; i++) {                      
     591                                if(_array_to_all[i].lastIndexOf(Element("user_email").value) == "-1"){ 
     592                                        data.to_all[j++] = _array_to_all[i]; 
     593                                } 
     594                        } 
     595                        data.to_all = data.to_all.join(","); 
    592596                        title = "Re: " + data.subject; 
    593597                        Element("to_" + new_border_ID).value = data.to; 
     
    680684                        break; 
    681685                case "edit": 
    682                         newMessageTab.imapBox[new_border_ID] = folder_message.value 
     686                        newMessageTab.imapBox[new_border_ID] = folder_message.value; 
     687                        newMessageTab.toPreserve[new_border_ID] = true; 
    683688                        newMessageTab.imapUid[new_border_ID] = parseInt(border_ID.substr(0,border_ID.indexOf("_"))); 
    684689                        document.getElementById('font_border_id_'+new_border_ID).innerHTML = data.subject; 
     
    728733                default: 
    729734        } 
    730          
     735 
     736        if (preferences.auto_save_draft == 1) 
     737    { 
     738        var time_auto_save = false; 
     739        var save_link = document.getElementById("save_message_options"); 
     740 
     741        function auto_sav() 
     742        { 
     743            if ( time_auto_save ) 
     744                clearTimeout(time_auto_save); 
     745 
     746            time_auto_save = setTimeout("save_msg("+new_border_ID+")", autosave_time); 
     747        } 
     748        config_events(body.contentWindow.document,'keypress', auto_sav); 
     749    } 
     750 
    731751        //BEGIN Tab event 
    732752        if (preferences.use_shortcuts == '1') 
     
    792812                        write_msg(get_lang('Your message was sent.'));           
    793813                } 
     814                if ((! newMessageTab.toPreserve[ID]) && (newMessageTab.imapUid[ID] != 0)) 
     815                        cExecute ("$this.imap_functions.delete_msgs&folder="+newMessageTab.imapBox[ID]+"&msgs_number="+newMessageTab.imapUid[ID],function(data){ return }); 
    794816        } 
    795817        else{                    
     
    801823                        write_msg(data); 
    802824        } 
    803         if ((! newMessageTab.toPreserve[ID]) && (newMessageTab.imapUid[ID] != 0)) 
    804                 cExecute ("$this.imap_functions.delete_msgs&folder="+newMessageTab.imapBox[ID]+"&msgs_number="+newMessageTab.imapUid[ID],function(data){ return }); 
    805825} 
    806826 
     
    856876{ 
    857877        var handler_delete_msg = function(data){ refresh(preferences.alert_new_msg); }; 
    858         RichTextEditor.saveFlag = 1; 
    859  
    860         if (! data) 
    861                 write_msg('ERROR saving your message.'); 
    862         else 
     878 
     879        if (data.append != true || !data) 
    863880        { 
     881                RichTextEditor.saveFlag = -1; 
     882                if (! data.append) 
     883                        write_msg('ERROR saving your message.'); 
     884                else 
     885                { 
     886                        if (data.append.match(/^(.*)TRYCREATE(.*)$/)) 
     887                        { 
     888                                connector.loadScript('TreeS'); 
     889                                alert(get_lang('There is not %1 folder, Expresso is creating it for you... Please, repeat your request later.',draftsfolder)); 
     890                                connector.loadScript('TreeShow'); 
     891                                ttree.FOLDER = 'root'; 
     892                                ttreeBox.new_past(draftsfolder); 
     893                                setTimeout('save_msg('+border_id+')',3000); 
     894                        } 
     895                        else 
     896                                write_msg(data.append); 
     897                } 
     898        } 
     899        else 
     900        { 
     901                RichTextEditor.saveFlag = 1; 
    864902                newMessageTab.imapUid[border_id] = data.msg_no; 
    865903                newMessageTab.imapBox[border_id] = data.folder_id; 
     
    876914                var content_body =  mainField.document.getElementsByTagName('body').item(0).innerHTML; 
    877915                var body_images = content_body.match(/msg_num=\d*/g); 
     916                var images_part = content_body.match(/msg_part=\d*/g); 
    878917                if (body_images) 
    879918                { 
     
    881920                                content_body =  content_body.replace(body_images[i],"msg_num="+newMessageTab.imapUid[border_id]); 
    882921                        } 
     922                        var allImgs = new Array (images_part.length); 
     923                                var j=-1; 
     924                                for (var i in images_part){ 
     925                                 
     926                                        if (is_ie) 
     927                                                if (i == 0) 
     928                                                        var image_number = parseInt(images_part[i].substr(9)); 
     929                                                else 
     930                                                        image_number = "null"; 
     931                                        else 
     932                                                var image_number = parseInt(images_part[i].substr(9)); 
     933                                         
     934                                if (! isNaN(image_number)) 
     935                                        { 
     936                                                if (! allImgs[image_number]) 
     937                                                { 
     938                                                        allImgs[image_number] = true; 
     939                                                        j--;                                     
     940                                                } 
     941                                        content_body = content_body.replace(images_part[i],'msg_part='+j); 
     942                                        } 
     943                                } 
     944                        content_body = content_body.replace(/msg_part=-/g,'msg_part='); 
     945                         
    883946                        mainField.document.getElementsByTagName('body').item(0).innerHTML = content_body; 
    884                         // This is not just stupid, it refresh screen to avoid broken images 
    885                         mainField.document.getElementsByTagName('body').item(0).innerHTML = mainField.document.getElementsByTagName('body').item(0).innerHTML;   
    886947                }        
    887948                                 
     
    927988                        cExecute ("$this.imap_functions.delete_msgs&folder="+newMessageTab.imapBox[border_id]+"&msgs_number="+message_id,handler_delete_msg); 
    928989                 
    929                 if (preferences.auto_save_draft == 1) 
    930                                 setTimeout('auto_save_msg('+border_id+')', autosave_time);               
    931  
    932990                var save_link = Element("save_message_options"); 
    933991                save_link.onclick = ''; 
     
    940998 
    941999function save_msg(border_id){ 
     1000 
    9421001        if (newMessageTab.imapBox[border_id]) //Gets the imap folder 
    9431002                var folder_id = newMessageTab.imapBox[border_id]; 
     
    9561015        message_id = newMessageTab.imapUid[border_id]; 
    9571016        var handler_save_msg = function(data){ return_save(data,this.tmp_border_id,this.tmp_folder_name,this.tmp_folder_id,this.message_id); } 
    958          
     1017 
    9591018        var textArea = document.createElement("TEXTAREA"); 
    9601019        textArea.style.display='none'; 
    9611020        textArea.name = "body"; 
    9621021        body = document.getElementById("body_"+border_id); 
     1022        if (! body) 
     1023                return; 
    9631024        textArea.value += '<body>\r\n'; 
    9641025        textArea.value += body.contentWindow.document.body.innerHTML; 
     
    9681029        input_folder.name = "folder"; 
    9691030        input_folder.value = folder_id; 
     1031        var input_msgid = document.createElement("INPUT"); 
     1032        input_msgid.style.display='none'; 
     1033        input_msgid.name = "msg_id"; 
     1034        input_msgid.value = message_id; 
    9701035         
    9711036        if (is_ie){ 
     
    9781043        form.appendChild(textArea); 
    9791044        form.appendChild(input_folder); 
     1045        form.appendChild(input_msgid); 
    9801046 
    9811047        cExecuteForm ("$this.imap_functions.save_msg", form, handler_save_msg,border_id);        
     
    10911157function print_all(){ 
    10921158        var folder= Element('border_id_0').innerHTML; 
    1093         var body = Element('divScrollMain').innerHTML; 
     1159        var body = Element('divScrollMain_'+numBox).innerHTML; 
    10941160        var print_width = screen.width - 200; 
    10951161        var x = ((screen.width - print_width) / 2); 
     
    12431309} 
    12441310 
    1245 /*function select_all_messages(select){ 
    1246         var main = Element("tbody_box"); 
    1247         var main_list = main.childNodes; 
    1248         var len_main_list = main_list.length; 
    1249          
    1250         var j = 0; 
    1251         if (select){ 
    1252                 for (j; j<len_main_list; j++){ 
    1253                         var check_box = Element("check_box_message_"+main_list[j].id); 
    1254                         if (check_box){ 
    1255                                 check_box.checked = true; 
    1256                                 var tr = Element(main_list[j].id); 
    1257                                 switch(tr.className){ 
    1258                                         case "tr_msg_read": 
    1259                                                 tr.className = 'selected_seen_msg_bg'; 
    1260                                                 break; 
    1261                                         case "tr_msg_unread": 
    1262                                                 tr.className = 'selected_unseen_msg_bg'; 
    1263                                                 break; 
    1264                                         case "important_msg_read": 
    1265                                                 tr.className = 'selected_important_msg_read'; 
    1266                                                 break; 
    1267                                         case "important_msg_unread": 
    1268                                                 tr.className = 'selected_important_msg_unread'; 
    1269                                                 break; 
    1270                                 } 
    1271                         } 
    1272                 } 
    1273         } 
    1274         else{ 
    1275                 for (j; j<len_main_list; j++){ 
    1276                         var check_box = Element("check_box_message_"+main_list[j].id); 
    1277                         if (check_box){ 
    1278                                 check_box.checked = false; 
    1279  
    1280                                 var tr = Element(main_list[j].id); 
    1281                                 switch(tr.className){ 
    1282                                         case "selected_seen_msg_bg": 
    1283                                                 tr.className = 'tr_msg_read'; 
    1284                                                 break; 
    1285                                         case "selected_unseen_msg_bg": 
    1286                                                 tr.className = 'tr_msg_unread'; 
    1287                                                 break; 
    1288                                         case "selected_important_msg_read": 
    1289                                                 tr.className = 'important_msg_read'; 
    1290                                                 break; 
    1291                                         case "selected_important_msg_unread": 
    1292                                                 tr.className = 'important_msg_unread'; 
    1293                                                 break; 
    1294                                 } 
    1295                         } 
    1296                 } 
    1297         } 
    1298 }*/ 
    1299  
    1300  
    13011311function verify_session(data){ 
    13021312        if(data && data.imap_error) { 
  • trunk/expressoMail1_2/js/rich_text_editor.js

    r279 r320  
    88function cRichTextEditor(){ 
    99        this.emwindow   = new Array; 
    10         this.editor; 
    11         this.table; 
    12         this.id; 
     10        this.editor = "body_1"; 
     11        this.table = ""; 
     12        this.id = "1"; 
    1313        this.buildEditor(); 
    1414        this.saveFlag = 0; 
     
    1616 
    1717cRichTextEditor.prototype.loadEditor = function(ID) { 
    18         this.id = ID; 
     18        var _this = this; 
     19        _this.id = ID; 
    1920        parentDiv = document.getElementById("body_position_"+this.id); 
    2021        this.editor = "body_"+this.id; 
     22 
     23        if(this.table.parentNode) 
     24                this.table.parentNode.removeChild(this.table); 
    2125         
    22         if(this.table.parentNode) 
    23                 this.table.parentNode.removeChild(this.table);   
    24  
    25         if(parentDiv.firstChild){ 
    26                 parentDiv.insertBefore(this.table,parentDiv.firstChild); 
     26        if( parentDiv.firstChild ) 
     27        { 
     28                if (!parentDiv.firstChild.hasChildNodes())  
     29                        parentDiv.insertBefore(this.table,parentDiv.firstChild); 
    2730        } 
    2831        else 
    2932                parentDiv.appendChild(this.table); 
    3033 
    31         if(!Element(this.editor)){ 
     34        if(!Element(this.editor)) 
     35        { 
     36                this.createElementEditor(this.editor); 
     37        } 
     38        else 
     39        { 
     40                Element("viewsource_rt_checkbox").checked=false; 
     41        } 
     42 
     43        document.getElementById('fontname').selectedIndex = 1; 
     44        document.getElementById('fontsize').selectedIndex = 1; 
     45} 
     46 
     47cRichTextEditor.prototype.createElementEditor = function(pObj) 
     48{ 
    3249                iframe = document.createElement("IFRAME"); 
    33                 iframe.id = this.editor; 
    34                 iframe.name = this.editor; 
     50                iframe.id = pObj; 
     51                iframe.name = pObj; 
    3552                iframe.width = "99%"; 
    3653                iframe.height = 300; 
     
    4663                parentDiv.appendChild(checkbox); 
    4764                parentDiv.appendChild(text); 
    48         } 
    49         else{ 
    50                 Element("viewsource_rt_checkbox").checked=false; 
    51         } 
    52  
    53         document.getElementById('fontname').selectedIndex = 1; 
    54         document.getElementById('fontsize').selectedIndex = 1; 
    5565} 
    5666 
     
    231241                        mainField.document.execCommand(command, false, option); 
    232242                //mainField.focus(); 
    233     } catch (e) { alert(e.description); } 
     243    } catch (e) {/* alert(e);*/ } 
    234244} 
    235245 
     
    258268cRichTextEditor.prototype.addInputFile = function() 
    259269{ 
     270        //Begin: Verify if the image extension is allowed. 
     271        var imgExtensions = new Array("jpeg", "jpg", "gif", "png", "bmp", "xbm", "tiff", "pcx"); 
     272        var inputFile = document.getElementById('inputFile_img');        
     273        if(!inputFile.value) return false; 
     274        var fileExtension = inputFile.value.split("."); 
     275        fileExtension = fileExtension[(fileExtension.length-1)]; 
     276        var deniedExtension = true; 
     277        for(var i=0; i<imgExtensions.length; i++) { 
     278                if(imgExtensions[i].toUpperCase() == fileExtension.toUpperCase()) { 
     279                        deniedExtension = false; 
     280                        break; 
     281                } 
     282        } 
     283        if(deniedExtension) { 
     284                alert(get_lang('File extension forbidden or invalid file') + '.'); 
     285                return false; 
     286        } 
     287        // End: Verify image extension. 
    260288        var id = this.editor.substr(5); // border_id 
    261289        divFiles = document.getElementById("divFiles_"+id); 
    262290        var countDivFiles = divFiles.childNodes.length + 1; 
    263291 
    264         var inputFile = document.getElementById('inputFile_img'); 
    265292        var divFiles = document.getElementById('divFiles_'+id); 
    266293        inputFile.id = 'inputFile_'+id +"_"+countDivFiles; 
     
    273300        form_upload.parentNode.removeChild(form_upload); 
    274301        win.close(); 
    275          
    276         if (! validateFileExtension(inputFile.value, inputFile.id , id)) 
    277         return false; 
    278302 
    279303        RichTextEditor.saveFlag = 0; // See if save function finished 
     304        var save_link = document.getElementById("save_message_options"); 
     305        //save_link.onclick = function () {}; 
    280306        save_msg(id); 
    281307        setTimeout("RichTextEditor.insertImgHtml("+id+")",1000); 
     
    286312                setTimeout("RichTextEditor.insertImgHtml("+id+")",500); 
    287313        else 
     314                if (RichTextEditor.saveFlag == 1) 
    288315                        this.editorCommand('Image', './inc/show_embedded_attach.php?msg_folder=INBOX/'+draftsfolder+'&msg_num='+newMessageTab.imapUid[id]+'&msg_part='+(newMessageTab.countFile[id]+1)); 
    289316                        // this.editorCommand('Image', '.inc/gotodownload.php?msg_folder="+msg_folder+"&msg_number="+msg_number+"&idx_file="+idx_file+"&msg_part="+msg_part+params')); 
  • trunk/expressoMail1_2/js/search.js

    r271 r320  
    99                this.fields = new Array("_ass","_de","_body","_para","_cc","_cco"); 
    1010        } 
    11         var search_tabs = 0; // Count the number of seach tabs 
    1211         
    1312        //Monta os forms dentro da janela; 
     
    261260                        } 
    262261                } 
    263                 search_tabs += 1; 
    264                 var border_id = create_border(get_lang("Search Results"), "search_" + search_tabs); 
     262                numBox++; 
     263                var border_id = create_border(get_lang("Search Results"), "search_" + numBox); 
    265264                var table = document.createElement("TABLE"); 
    266                 table.id    = "table_resultsearch_" + search_tabs; 
     265                table.id    = "table_resultsearch_" + numBox; 
    267266                table.width = "100%"; 
    268267                table.borderColorDark = "#bbbbbb"; 
     
    273272 
    274273                var tbody = document.createElement("TBODY"); 
    275                 tbody.id    = "tbody_resultsearch_" + search_tabs; 
     274                tbody.id    = "tbody_resultsearch_" + numBox; 
    276275                if(nw_array.length > 0){ 
    277276                        write_msg(nw_array.length + " "+ get_lang('results found'));                     
     
    309308                                                td.style.width = "1%";                                   
    310309                                                var subject_encode = url_encode(aux[2]); 
    311                                                 var td1 = '<input type="checkbox" id="check_box_search_message_'+tr.id+'"></input>'; 
     310                                                var td1 = '<input type="checkbox" id="check_box_message_'+tr.id.substr(tr.id.indexOf(';')+1)+'"></input>'; 
    312311                                        } 
    313312                                        if( j == 1){ 
     
    355354                subject = tr.firstChild; 
    356355                subject = subject.nextSibling.nextSibling.nextSibling.firstChild.firstChild.innerHTML; 
    357 //              _dragArea.makeDragged(tr, msg_number, subject, true); 
    358                 _dragArea.makeDragged(tr, tr.firstChild.firstChild.id.substr(tr.firstChild.firstChild.id.indexOf(';')+1), subject, true); 
     356                _dragArea.makeDragged(tr, uid_msg, subject, true, mailbox); 
    359357                tbody.appendChild(tr); 
    360358                } 
    361359                table.appendChild(tbody); 
    362360                 
    363         var content_search =  Element('content_id_' + "search_" + search_tabs);  
     361        var content_search =  Element('content_id_search_' + numBox);    
    364362        // BEGIN MAKE THE SCROLL HEIGHT          
    365363        var defaultWidth = document.body.offsetWidth - 31;       
     
    372370                offset = bar.offsetHeight ? bar.offsetHeight :  bar.clientHeight;                
    373371        var div_scroll_result = document.createElement("DIV"); 
    374         div_scroll_result.id = "div_result_scroll_"+search_tabs; 
     372        div_scroll_result.id = "divScrollMain_"+numBox; 
    375373        div_scroll_result.style.background = 'WHITE'; 
    376374        div_scroll_result.style.height = document.body.clientHeight - offset - 120; 
  • trunk/expressoMail1_2/js/shortcut.js

    r163 r320  
    250250                var selected_shortcut_msgs = ''; 
    251251                var current_folder = get_current_folder(); 
     252                var tbody_box = Element('tbody_box'); 
    252253                all_messages = Element('tbody_box').childNodes; 
    253254                 
  • trunk/expressoMail1_2/setup/setup.inc.php

    r271 r320  
    1212        $setup_info['expressoMail1_2']['name']          = 'expressoMail1_2'; 
    1313        $setup_info['expressoMail1_2']['title']         = 'ExpressoMail 1.2'; 
    14         $setup_info['expressoMail1_2']['version']       = '1.2211'; 
     14        $setup_info['expressoMail1_2']['version']       = '1.222'; 
    1515        $setup_info['expressoMail1_2']['app_order']     = 2; 
    1616//      $setup_info['expressoMail1_2']['tables'][]      = 'phpgw_expressoMail1_2'; 
  • trunk/expressoMail1_2/templates/default/index.tpl

    r139 r320  
    2929                                <div style="height:4px"></div> 
    3030                                <div align="center"> 
    31                                         <input type="text" id="em_message_search" size="18" maxlength="22"/> 
     31                                        <input type="text" id="em_message_search" size="16" maxlength="22" onfocus="javascript:onFocusQuickSearchEmail(this); return false;"/> 
    3232                                        <a class='' onMouseOut="window.status='';return true;" title='{lang_Open_Search_Window}' onMouseOver="window.status='{lang_Open_Search_Window}';return true;" href="javascript:void(0);"  onClick="javascript:search_emails(Element('em_message_search').value)"> 
    3333                                                <img valign="center" align="center" src="templates/default/images/search.gif"> 
     
    3737                                        </a> 
    3838                                </div> 
     39                                <script type="text/javascript"> 
     40                                         
     41                                        var element_input = document.getElementById('em_message_search'); 
    3942                                 
    40                         </td>                    
     43                                        function keyPressQuickSearchEmail(e) 
     44                                        { 
     45                                                if( e.keyCode == 13 ) 
     46                                                        search_emails(element_input.value); 
     47                                        } 
     48 
     49                                        if ( element_input.addEventListener ) 
     50                                                element_input.addEventListener('keypress', keyPressQuickSearchEmail, false); 
     51                                        else if ( element_input.attachEvent ) 
     52                                                element_input.attachEvent('onkeypress', keyPressQuickSearchEmail); 
     53 
     54                                        function onFocusQuickSearchEmail(pInput) 
     55                                        { 
     56                                                if ( pInput.createTextRange ) 
     57                                                { 
     58                                                        var FieldRange = pInput.createTextRange(); 
     59                                                                FieldRange.moveStart('character', pInput.value.length); 
     60                                                                FieldRange.collapse(); 
     61                                                                FieldRange.select(); 
     62                                                } 
     63                                        } 
     64                                 
     65                                </script> 
     66                        </td> 
    4167                        <td width="2px">&nbsp;</td>                      
    4268                        <td width="*" valign="top" align="left"> 
  • trunk/expressoMail1_2/templates/default/preferences.tpl

    r271 r320  
    108108    </tr> 
    109109 
     110    <tr bgcolor="{tr_color1}"> 
     111        <td> 
     112                        {lang_auto_save_draft} 
     113                </td> 
     114                <td align="center"> 
     115                        <input type="checkbox" name="auto_save_draft" value=1 {checked_auto_save_draft}> 
     116                </td> 
     117    </tr> 
     118 
    110119    <tr bgcolor="{tr_color2}"> 
    111120        <td colspan='2'> 
Note: See TracChangeset for help on using the changeset viewer.