source: trunk/expressoMail1_2/js/modal/modal.js @ 1121

Revision 1121, 7.5 KB checked in by eduardoalex, 15 years ago (diff)

Ticket #548 - Implementação do Expresso (Mail) Offline

Line 
1function modal(id)
2{
3        try{
4                //content = Element(id).innerHTML;
5                content = Element(id).cloneNode(true);
6//              title   = Element(id + '_title').value;
7                width   = 323;
8                height  = 200;
9//              close_action = Element(id + '_close_action').value;
10//              create_action = Element(id + '_create_action').value;
11//              save_action = Element(id + '_save_action').value;
12//              onload_action = Element(id + '_onload_action').value
13        }
14        catch(e){
15                alert(e);
16        }
17        var objBody = document.getElementsByTagName("body").item(0);
18       
19        /* the Overlay */ // create overlay div and hardcode some functional styles
20        var objOverlay = document.createElement("div");
21        objOverlay.setAttribute('id','overlay');
22        objOverlay.style.position = 'absolute';
23        objOverlay.style.top = '0';
24        objOverlay.style.left = '0';
25        objOverlay.style.zIndex = '90';
26        objOverlay.style.width = '100%';
27       
28        var arrayPageSize = getPageSize();
29        var arrayPageScroll = getPageScroll();
30
31        // set height of Overlay to take up whole page and insert. Show at the end of this function.
32        objOverlay.style.height = (arrayPageSize[1] + 'px');
33        objOverlay.style.display = 'none';
34        objBody.insertBefore(objOverlay, objBody.firstChild);
35
36
37        /* the div */ // create lightbox div, same note about styles as above
38       
39        var objLightbox = document.createElement("div");
40        objLightbox.setAttribute('id','lightbox');
41       
42        objLightbox.style.position = 'absolute';
43        objLightbox.style.display = 'none';
44        objLightbox.style.zIndex = '100';       
45
46       
47        var objLightbox_height = height;
48        var objLightbox_width = width;
49       
50        objLightbox.style.height = objLightbox_height + "px";
51        objLightbox.style.width = objLightbox_width + "px";
52       
53        var lightboxTop = ((arrayPageSize[3] - objLightbox_height) / 2);
54        var lightboxLeft = ((arrayPageSize[0] - objLightbox_width) / 2 );
55       
56        objLightbox.style.top = (lightboxTop < 0) ? "0px" : lightboxTop + "px";
57        objLightbox.style.left = (lightboxLeft < 0) ? "0px" : lightboxLeft + "px";
58       
59        objBody.insertBefore(objLightbox, objOverlay.nextSibling);
60               
61               
62        // create caption
63        /*var objCaption = document.createElement("div");
64        objCaption.setAttribute('id','lightboxCaption');
65        objCaption.innerHTML = title;
66        objLightbox.appendChild(objCaption);*/
67
68        // create warnings
69        var objWarning = document.createElement("div");
70        objWarning.setAttribute('id','lightboxWarning');
71        objWarning.style.height = '21px';
72        objLightbox.appendChild(objWarning);
73
74        // Create Content
75        var objContent = document.createElement("div");
76        objContent.setAttribute('id','lightboxContent');
77        objContent.style.height = (objLightbox_height - 65) + "px";
78        objContent.innerHTML = content.innerHTML;
79        objLightbox.appendChild(objContent);
80
81        //Show the modal.
82        objOverlay.style.display = 'block';
83        objLightbox.style.display = '';
84}
85
86function close_lightbox()
87{
88        var objBody = document.getElementsByTagName("body").item(0);
89        var lightbox = document.getElementById('overlay');
90        lightbox_div = document.getElementById('lightbox');
91        objBody.removeChild(lightbox);
92        objBody.removeChild(lightbox_div);
93        return;
94}
95
96function getPageSize(){
97       
98        var xScroll, yScroll;
99       
100        if (window.innerHeight && window.scrollMaxY) { 
101                xScroll = document.body.scrollWidth;
102                yScroll = window.innerHeight + window.scrollMaxY;
103        } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
104                xScroll = document.body.scrollWidth;
105                yScroll = document.body.scrollHeight;
106        } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
107                xScroll = document.body.offsetWidth;
108                yScroll = document.body.offsetHeight;
109        }
110       
111        var windowWidth, windowHeight;
112        if (self.innerHeight) { // all except Explorer
113                windowWidth = self.innerWidth;
114                windowHeight = self.innerHeight;
115        } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
116                windowWidth = document.documentElement.clientWidth;
117                windowHeight = document.documentElement.clientHeight;
118        } else if (document.body) { // other Explorers
119                windowWidth = document.body.clientWidth;
120                windowHeight = document.body.clientHeight;
121        }       
122       
123        // for small pages with total height less then height of the viewport
124        if(yScroll < windowHeight){
125                pageHeight = windowHeight;
126        } else {
127                pageHeight = yScroll;
128        }
129
130        // for small pages with total width less then width of the viewport
131        if(xScroll < windowWidth){     
132                pageWidth = windowWidth;
133        } else {
134                pageWidth = xScroll;
135        }
136       
137        arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight)
138        return arrayPageSize;
139}
140
141function getPageScroll(){
142
143        var yScroll;
144
145        if (self.pageYOffset) {
146                yScroll = self.pageYOffset;
147        } else if (document.documentElement && document.documentElement.scrollTop){      // Explorer 6 Strict
148                yScroll = document.documentElement.scrollTop;
149        } else if (document.body) {// all other Explorers
150                yScroll = document.body.scrollTop;
151        }
152
153        arrayPageScroll = new Array('',yScroll)
154        return arrayPageScroll;
155}
156
157function Element(id)
158{
159        return document.getElementById(id);
160}
161
162function add_css(){
163        var headID = document.getElementsByTagName("head")[0];         
164        var cssNode = document.createElement('link');
165        cssNode.type = 'text/css';
166        cssNode.rel = 'stylesheet';
167        if (navigator.userAgent.toLowerCase().indexOf("msie") != -1)
168                cssNode.href = "./js/modal/css/modal_ie.css";
169        else
170                cssNode.href = "./js/modal/css/modal_fx.css";
171       
172        cssNode.media = 'screen';
173        headID.appendChild(cssNode);
174        return;
175       
176}
177
178/*function load_lang(){
179        cExecute ('$this/js/modal/inc/load_lang', handler_load_lang);
180}*/
181
182var global_langs = new Array();
183function handler_load_lang(data)
184{
185        global_langs = eval(data);
186}
187
188function get_lang(key_raw)
189{
190        key = key_raw.replace(/ /g,"_");
191
192        try{
193                lang = eval("global_langs."+key.toLowerCase());
194                return lang;
195        }
196        catch(e){
197                return key_raw + '*';
198        }
199}
200
201function make_msg(msg, type)
202{
203        var html_msg =
204        '<table cellspacing="0" cellpadding="0" border="0"><tbody>'+
205        '<tr><td class="zIVQRb_'+type+'"/><td class="Ptde9b_'+type+'"/><td class="Qrjz3e_'+type+'"/></tr>'+
206        '<tr><td class="Ptde9b_'+type+'"/><td class="m14Grb_'+type+'">' + msg + '</td><td class="Ptde9b_'+type+'"/></tr>' +
207        '<tr><td class="Gbtri_'+type+'"/><td class="Ptde9b_'+type+'"/><td class="gmNpMd_'+type+'"/></tr></tbody></table>';
208        return html_msg;
209}
210
211function write_msg(msg, type)
212{
213        try
214        {
215                clearTimeout(setTimeout_write_msg);
216        }
217        catch(e){}
218               
219        var objLightbox = Element("lightbox");
220        if (objLightbox != null)
221        {
222                var old_divStatusBar = Element("lightboxWarning");
223                var bgColor = "#EEEEEE";
224        }
225        else
226        {
227                var old_divStatusBar = Element("divStatusBar");
228                var bgColor = "#f7f8fa";
229        }
230       
231        var msg_div = Element('em_div_write_msg');
232        if(!msg_div) {
233                msg_div = document.createElement('DIV');
234                msg_div.id = 'em_div_write_msg';
235                //msg_div.style.height = '2px';
236                msg_div.style.background = bgColor;
237                msg_div.style.display = 'none';
238                msg_div.align = "center";
239                msg_div.valign = "middle";
240        }
241       
242        msg_div.innerHTML = make_msg(msg, type);
243       
244        clean_msg();
245        old_divStatusBar.parentNode.insertBefore(msg_div,old_divStatusBar);
246       
247        old_divStatusBar.style.display = 'none';
248        msg_div.style.display = '';
249       
250        setTimeout_write_msg = setTimeout("clean_msg();", 4000);
251}
252
253function clean_msg()
254{
255        var msg_div = Element('em_div_write_msg');
256        if ( (msg_div) && (msg_div.style.display != 'none') )
257        {
258                // Msg esta em outra tela. Precisa apaga-la.
259                /*
260                if ( (Element("lightbox") != null) && (msg_div.nextSibling.id == 'lightboxWarning') ) {}
261                else if ( (Element("lightbox") == null) && (msg_div.nextSibling.id == 'divStatusBar') ) {}
262                else
263                {*/
264                        msg_div.style.display = 'none';
265                        msg_div.nextSibling.style.display = '';
266//              }
267        }
268}
269
270if (document.all)
271{
272        navigator.userAgent.toLowerCase().indexOf('msie 5') != -1 ? is_ie5 = true : is_ie5 = false;
273        is_ie = true;
274}
275
276add_css();
277//load_lang();
Note: See TracBrowser for help on using the repository browser.