source: branches/2.2/expressoAdmin1_2/js/modal/modal.js @ 1975

Revision 1975, 8.5 KB checked in by valmir.sena, 14 years ago (diff)

Ticket #881 - Contas institucionais não são criadas pelo Internet Explorer

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