/*


Copyright JMWorld 2007.

Todos los derechos reservados.


*/
JMWindow=function(id,c,p,s){this.id=id;this.content=c;this.elements={};this.tabIdSelected=null;this.tabIndexSelected=null;this.zIndex=null;this.status=0;this.oldStyle={};this.defaultPositions=p;this.defaultSize=s;this.win=document.createElement('div');this.win.id='jmwindow';this.win.innerHTML=c;this.win.style.width=this.defaultSize[0]+'px';this.win.style.height=this.defaultSize[1]+'px';this.getElements();this.setEvents();if(this.elements.tabContainer.getElementsByTagName('td').length==0){this.win.id='jmwindowNT'}else{this.setTabEvents();}if(p){this.win.style.left=p[0]+'px';this.win.style.top=p[1]+'px'}if(s){this.win.style.width=s[0]+'px';this.win.style.height=s[1]+'px'}this.win.className='invisible';document.body.style.overflow='hidden';this.show();this.setDimensions();document.body.style.overflow='auto'};JMWindow.prototype.win=null;JMWindow.prototype.elements={};JMWindow.prototype.tabIndexSelected=null;JMWindow.prototype.tabIdSelected=null;JMWindow.prototype.id=null;JMWindow.prototype.zIndex=null;JMWindow.prototype.status=0;JMWindow.prototype.oldStyle={};JMWindow.prototype.defaultPositions=null;JMWindow.prototype.defaultSize=null;JMWindow.prototype.close=function(){document.body.removeChild(this.win);};JMWindow.prototype.maximize=function(){if((this.status&&JMWindow.MAXIMIZED)!=JMWindow.MAXIMIZED){this.oldStyle={};this.oldStyle.top=this.win.style.top;this.oldStyle.left=this.win.style.left;this.oldStyle.width=this.win.style.width;this.oldStyle.height=this.win.style.height;this.oldStyle.contentWidth=this.elements.divContent.offsetWidth+'px';this.oldStyle.contentHeight=this.elements.divContent.offsetHeight+'px';this.setMaximumSize();this.elements.maxBtn.id='restBtn'}else{this.setNormalSize();this.elements.maxBtn.id='maxBtn'}};JMWindow.prototype.setMaximumSize=function(){this.win.style.top='0px';this.win.style.left='0px';this.win.style.width=document.body.offsetWidth+'px';this.win.style.height=document.body.offsetHeight+'px';var margenY=0;var nodo=this.elements.divContent;while(nodo!=this.win){margenY+=nodo.offsetTop;nodo=nodo.parentNode}this.elements.divContent.style.width=document.body.offsetWidth+'px';this.elements.divContent.style.height=document.body.offsetHeight-margenY+'px';this.disableEvents();this.status=JMWindow.MAXIMIZED};JMWindow.prototype.setNormalSize=function(){this.win.style.top=this.oldStyle.top;this.win.style.left=this.oldStyle.left;this.win.style.width=this.oldStyle.width;this.win.style.height=this.oldStyle.height;this.elements.divContent.style.width=this.oldStyle.contentWidth;this.elements.divContent.style.height=this.oldStyle.contentHeight;this.setEvents();this.status=0};JMWindow.prototype.changeZindex=function(i,arrIndex){this.zIndex=arrIndex;this.win.style.zIndex=i};JMWindow.prototype.getElements=function(){this.win.obj=this;var divs=this.win.getElementsByTagName('div');for(var i=0;i<divs.length;i++){var div=divs[i];if(div.id){this.elements[div.id]=div;div.obj=this}}var forms=this.win.getElementsByTagName('form');for(var i=0;i<forms.length;i++){var form=forms[i];form.obj=this}};JMWindow.prototype.setEvents=function(){this.win.onmousedown=function(){JMWindowsManager.manageZindex(this.obj);};this.elements.titleBar.style.cursor='move';this.elements.leftBar.style.cursor='e-resize';this.elements.rightBar.style.cursor='w-resize';this.elements.topBar.style.cursor='n-resize';this.elements.bottomBar.style.cursor='s-resize';this.elements.nwCorner.style.cursor='nw-resize';this.elements.neCorner.style.cursor='ne-resize';this.elements.swCorner.style.cursor='sw-resize';this.elements.seCorner.style.cursor='se-resize';this.elements.closeBtn.style.cursor='pointer';this.elements.maxBtn.style.cursor='pointer';Drag.init(this.elements.titleBar,this.win);Resize.init(this.elements.leftBar,this.win,false,false,false,true,this.elements.divContent);Resize.init(this.elements.rightBar,this.win,false,false,true,false,this.elements.divContent);Resize.init(this.elements.topBar,this.win,true,false,false,false,this.elements.divContent);Resize.init(this.elements.bottomBar,this.win,false,true,false,false,this.elements.divContent);Resize.init(this.elements.nwCorner,this.win,true,false,false,true,this.elements.divContent);Resize.init(this.elements.neCorner,this.win,true,false,true,false,this.elements.divContent);Resize.init(this.elements.swCorner,this.win,false,true,false,true,this.elements.divContent);Resize.init(this.elements.seCorner,this.win,false,true,true,false,this.elements.divContent);this.elements.closeBtn.onclick=function(){JMWindowsManager.destroy(this);return false};this.elements.maxBtn.onclick=function(){this.obj.maximize();return false};this.elements.titleBar.ondblclick=function(){this.obj.maximize();return false}};JMWindow.prototype.disableEvents=function(){this.elements.titleBar.style.cursor='default';this.elements.leftBar.style.cursor='default';this.elements.rightBar.style.cursor='default';this.elements.topBar.style.cursor='default';this.elements.bottomBar.style.cursor='default';this.elements.nwCorner.style.cursor='default';this.elements.neCorner.style.cursor='default';this.elements.swCorner.style.cursor='default';this.elements.seCorner.style.cursor='default';Drag.destroy(this.elements.titleBar);Resize.destroy(this.elements.leftBar);Resize.destroy(this.elements.rightBar);Resize.destroy(this.elements.topBar);Resize.destroy(this.elements.bottomBar);Resize.destroy(this.elements.nwCorner);Resize.destroy(this.elements.neCorner);Resize.destroy(this.elements.swCorner);Resize.destroy(this.elements.seCorner);};JMWindow.prototype.setFocus=function(){try{this.win.getElementsByTagName('input')[0].focus();}catch(e){try{this.win.getElementsByTagName('select')[0].focus();}catch(e){try{this.win.getElementsByTagName('textarea')[0].focus();}catch(e){}}}};JMWindow.prototype.setTabEvents=function(){this.elements.tabs=this.elements.tabContainer.getElementsByTagName('td');for(var i=0;i<this.elements.tabs.length;i++){var tab=this.elements.tabs[i];tab.obj=this;tab.innerDiv=tab.getElementsByTagName('div')[0];tab.onclick=function(){this.obj.tabClick(this);}}this.tabClick(this.elements.tabs[0]);};JMWindow.prototype.tabClick=function(tab){if(this.tabSelected){this.tabSelected.innerDiv.id=''}tab.innerDiv.id='selectedTab';this.tabSelected=tab;if(!tab.req){var a=new Ajax('/web/main.py','m='+tab.id+'&ajax=1&js=1',JMWindow.recv,this);}else{this.setContent(tab.req);}this.setFocus();};JMWindow.prototype.show=function(){document.body.appendChild(this.win);};JMWindow.prototype.setDimensions=function(){this.win.style.width=this.defaultSize[0]+'px';this.win.style.height=this.defaultSize[1]+'px';this.elements.tabs=this.elements.tabContainer.getElementsByTagName('td');var tabW=0;for(var i=0;i<this.elements.tabs.length;i++){tabW+=this.elements.tabs[i].offsetWidth}var titleMargin=20;var textTitleMargin=35;var btnTitleMargin=10;var titW=this.elements.textTitleBar.offsetWidth+this.elements.btnContainer.offsetWidth+titleMargin+textTitleMargin+btnTitleMargin;contW=this.elements.divContent.offsetWidth;var w=Math.max(tabW,Math.max(contW,titW));var h=this.defaultSize[1];var margenY=0;var nodo=this.elements.divContent;while(nodo!=this.win){margenY+=nodo.offsetTop;nodo=nodo.parentNode}this.elements.divContent.style.width=w+'px';this.elements.divContent.style.height=h-margenY+'px';this.win.minW=Math.max(tabW,titW);this.win.minH=40;var iframes=this.elements.divContent.getElementsByTagName('iframe');if(iframes.length!=0){this.elements.padder.style.padding="0px 0px 0px 0px"}};JMWindow.prototype.setContent=function(c){this.elements.padder.innerHTML=c;if(this.tabSelected){this.tabSelected.req=c}this.getElements();this.setFocus();setTimeout('delMsg()',3000);};JMWindow.prototype.onWindowResize=function(){if((this.status&&JMWindow.MAXIMIZED)==JMWindow.MAXIMIZED){this.setMaximumSize();}};JMWindow.changePage=function(elem){var id=elem.id.replace('?','');while(!elem.obj){elem=elem.parentNode}var a=new Ajax('/web/main.py',id+'&ajax=1&js=1',JMWindow.recv,elem.obj);};JMWindow.recv=function(req,win){win.setContent(req.responseText);try{win.tabSelected.req=req.responseText}catch(e){}win.setFocus();};JMWindow.MAXIMIZED=0x001;JMWindow.MINIMIZED=0x002;