source: trunk/expressoAdmin1_2/js/modal/modal.js @ 414

Revision 414, 8.3 KB checked in by niltonneto, 16 years ago (diff)

Alterações feitas por João Alfredo.
Email: jakjr@…

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