source: trunk/expressoMail1_2/js/abas.js @ 125

Revision 125, 6.4 KB checked in by niltonneto, 16 years ago (diff)

Correção de bug.

  • Property svn:eol-style set to native
  • Property svn:executable set to *
Line 
1var BordersArray = new Array();
2BordersArray[0] = new setBorderAttributes(0);
3
4function setBorderAttributes(ID)
5{
6        this.border_id = "border_id_"+ID;
7        this.sequence = ID;
8}
9
10
11function alternate_border(ID)
12{
13        var len = BordersArray.length;
14        for (var i=0; i < len; i++)
15        {
16                m = document.getElementById(BordersArray[i].border_id);
17                if (m.className == 'menu-sel')
18                {
19                        m.className = 'menu';
20                        c = document.getElementById("content_id_"+BordersArray[i].sequence);
21                        c.style.display = 'none';
22                        if(Element("font_border_id_"+BordersArray[i].sequence))
23                                Element("font_border_id_"+BordersArray[i].sequence).className = 'font-menu';   
24                        var body = Element('body_'+BordersArray[i].sequence);
25                        if (body)
26                        {
27                                try
28                                {
29                                        if (Element('viewsource_rt_checkbox').checked)
30                                        { 
31                                                connector.loadScript("rich_text_editor");
32                                                RichTextEditor.viewsource(false);
33                                        }
34                                }
35                                catch(e)
36                                {
37                                        //alert(e.message)
38                                }
39                        }
40                }
41        }
42
43        m = Element("border_id_"+ID);
44        m.className = 'menu-sel';
45        if(Element("font_border_id_" + ID))
46                Element("font_border_id_" + ID).className = 'font-menu-sel';
47        var c = Element("content_id_"+ID)
48        c.style.display = '';
49
50        body = document.getElementById('body_'+ ID);
51        if (body){
52                try{
53                        if(ID){
54                                connector.loadScript("rich_text_editor");
55                                RichTextEditor.loadEditor(ID);
56                        }
57                        body.contentWindow.document.designMode="on";
58                }
59                catch(e){
60                        //alert(e.message);
61                }
62        }
63
64        // hide the DropDrowContact, if necessary
65        window_DropDownContacts = Element('tipDiv');
66        if ((window_DropDownContacts)&&(window_DropDownContacts.style.visibility != 'hidden')){
67                window_DropDownContacts.style.visibility = 'hidden';
68        }
69        Element("footer_menu").style.display = ID ? 'none' : '';
70        return ID;
71}
72
73function create_border(borderTitle, id_value)
74{
75        var resize = false;     
76        var offWidth = Element('border_blank').offsetWidth ? Element('border_blank').offsetWidth : Element('border_blank').clientWidth;
77        if (offWidth < 200) {
78                resize = resize_borders();
79                if (!resize){
80                        alert('Limite máximo de abas atingido!');
81                        return false;
82                }
83        }
84        Element("footer_menu").style.display = 'none';
85        var ID = id_value ? id_value : parseInt(BordersArray[(BordersArray.length-1)].sequence) + 1;
86       
87        td = document.createElement("TD");
88        td.id="border_id_" + ID;
89        if(resize) {
90                td.setAttribute("width", parseInt(resize)+"px");
91                td.style.width = parseInt(resize)+"px";
92        }
93        else
94                td.setAttribute("width", "200px");
95               
96        td.className = "menu";
97        td.setAttribute("align", "right");
98        td.onclick = function(){alternate_border(ID);};
99        td.setAttribute("noWrap","true");
100        var subject = borderTitle;
101       
102        borderTitle = borderTitle ?  borderTitle : id_value ? get_lang("No Subject") : "&nbsp;" ;
103        td.value = borderTitle;
104        if (borderTitle.length > 21){
105                borderTitle = borderTitle.substring(0,21) + "...";
106        }
107       
108        if (resize)
109                borderTitle = borderTitle.substring(0, resize*0.08);
110               
111        td.innerHTML = "<table width=100% border=0 cellspacing=0 cellpadding=0><tr><td id=font_border_id_" + ID+" class='font-menu' width=*>" + borderTitle + "</td><td width=1px><img onmousedown='javascript:return false' style='cursor:pointer' onclick=delete_border('" + ID + "','false') src='templates/default/images/close_button.gif'></td></tr></table>";
112
113        bb = document.getElementById("border_blank");
114        parent_bb = bb.parentNode; //Pego o tbody
115        parent_bb.insertBefore(td, bb);
116       
117        if(id_value && id_value.match(/_r$/))   
118                _dragArea.makeDragged(td, id_value,td.value);
119
120        BordersArray[BordersArray.length] = new setBorderAttributes(ID);
121       
122        var div = document.createElement("DIV");
123        div.id = "content_id_" + ID;
124        div.className = "conteudo";
125        div.style.display='';
126
127        var bar = document.getElementById("toolbar");
128        var offset = 0;
129        if(bar.style.visibility != 'hidden')
130                offset = bar.offsetHeight ? bar.offsetHeight :  bar.clientHeight;
131               
132        div.style.height = document.body.clientHeight - offset - (is_ie ? 76 : 86);
133        div.style.overflow = "auto";
134
135        if(!is_ie) {
136                var menuHidden = Element("folderscol").style.display == 'none' ? true : false;
137                var defaultWidth = document.body.clientWidth - 27;
138                if(!menuHidden)
139                        defaultWidth -= Element("folderscol").offsetWidth;
140
141                div.style.width = defaultWidth;
142//              div.style.width ="99.3%";
143        }
144        document.getElementById("exmail_main_body").appendChild(div);
145        alternate_border(ID);
146       
147        return ID;
148}
149
150function resize_borders()
151{
152        var children;
153        var     numBorders = 0;
154        var widthTD = 0;
155        var newWidthTD = 0;             
156        children = Element('border_tr').childNodes;     
157        for (var i=0; i<children.length; i++) {
158                if ((children[i].nodeName === 'TD') && (children[i].id!=='border_id_0') && (children[i].id!=='border_blank')) {
159                        numBorders++;
160                        if(!widthTD)
161                                widthTD = children[i].clientWidth;                             
162                }
163        }
164        if (numBorders > 8)
165                return false;
166       
167        newWidthTD = ((numBorders*widthTD)+(Element("border_blank").clientWidth-20))/(numBorders+1);
168        for (var i=0; i<children.length; i++) {
169                if ((children[i].nodeName === 'TD') && (children[i].id!=='border_id_0') && (children[i].id!=='border_blank')){
170                        children[i].style.width = newWidthTD;
171                        Element("font_"+children[i].id).innerHTML = Element("font_"+children[i].id).innerHTML.substring(0, newWidthTD*0.08);
172                }
173        }
174        return newWidthTD;
175}
176
177function delete_border(ID, msg_sent)
178{
179        if(!ID)
180                return false;
181        if (msg_sent == 'false')
182        {
183                var body = document.getElementById('body_'+ ID);
184                if (body)
185                {
186                        try
187                        {
188                                if (body.contentWindow.document.designMode.toLowerCase() == 'on')
189                                {
190                                        var discard_msg = confirm(get_lang("Your message has not been sent. Discard your message?"), "");
191                                        if (!discard_msg)
192                                                return;
193                                }
194                        }
195                        catch(e){
196                                //alert(e.message);
197                        }
198                }
199        }
200
201        hold_session = false;
202        for (i=0;i<BordersArray.length;i++)
203        {
204                m = document.getElementById(BordersArray[i].border_id);
205                if (m.className == 'menu-sel')
206                        border_selected = BordersArray[i].border_id;
207        }
208       
209        if ('border_id_' + ID == border_selected)
210        {
211                if (BordersArray[i-2].sequence == ID)
212                        this.alternate_border(0);
213                else
214                        this.alternate_border(BordersArray[i-2].sequence);
215        }
216
217        // Remove TD, title
218        border = document.getElementById('border_id_' + ID);
219        border.parentNode.removeChild(border);
220        // Remove Div Content
221        content = document.getElementById('content_id_' + ID);
222        content.parentNode.removeChild(content);
223       
224        var new_BordersArray = new Array();
225        j = 0;
226        for (i=0;i<BordersArray.length;i++)
227        {
228                if (document.getElementById(BordersArray[i].border_id) != null){
229                        new_BordersArray[j] = BordersArray[i];
230                        j++;   
231                }
232        }
233        if(j == 1)
234                Element("footer_menu").style.display = '';
235        BordersArray = new_BordersArray;
236}
Note: See TracBrowser for help on using the repository browser.