| /* This compressed file is part of Xinha. For uncompressed sources, forum, and bug reports, go to xinha.org */ |
| /* The URL of the most recent version of this file is http://svn.xinha.org/trunk/modules/Dialogs/popupwin.js */ |
| function PopupWin(_1,_2,_3,_4){ |
| this.editor=_1; |
| this.handler=_3; |
| var _5=window.open("","__ha_dialog","toolbar=no,menubar=no,personalbar=no,width=600,height=600,left=20,top=40,scrollbars=no,resizable=yes"); |
| this.window=_5; |
| var _6=_5.document; |
| this.doc=_6; |
| var _7=this; |
| var _8=document.baseURI||document.URL; |
| if(_8&&_8.match(/(.*)\/([^\/]+)/)){ |
| _8=RegExp.$1+"/"; |
| } |
| if(typeof _editor_url!="undefined"&&!(/^\//.test(_editor_url))&&!(/http:\/\//.test(_editor_url))){ |
| _8+=_editor_url; |
| }else{ |
| _8=_editor_url; |
| } |
| if(!(/\/$/.test(_8))){ |
| _8+="/"; |
| } |
| this.baseURL=_8; |
| _6.open(); |
| var _9="<html><head><title>"+_2+"</title>\n"; |
| _9+="<style type=\"text/css\">@import url("+_editor_url+"Xinha.css);</style>\n"; |
| if(_editor_skin!=""){ |
| _9+="<style type=\"text/css\">@import url("+_editor_url+"skins/"+_editor_skin+"/skin.css);</style>\n"; |
| } |
| _9+="</head>\n"; |
| _9+="<body class=\"dialog popupwin\" id=\"--HA-body\"></body></html>"; |
| _6.write(_9); |
| _6.close(); |
| function init2(){ |
| var _a=_6.body; |
| if(!_a){ |
| setTimeout(init2,25); |
| return false; |
| } |
| _5.title=_2; |
| _6.documentElement.style.padding="0px"; |
| _6.documentElement.style.margin="0px"; |
| var _b=_6.createElement("div"); |
| _b.className="content"; |
| _7.content=_b; |
| _a.appendChild(_b); |
| _7.element=_a; |
| _4(_7); |
| _5.focus(); |
| }; |
| init2(); |
| }; |
| PopupWin.prototype.callHandler=function(){ |
| var _c=["input","textarea","select"]; |
| var _d={}; |
| for(var ti=_c.length;--ti>=0;){ |
| var _f=_c[ti]; |
| var els=this.content.getElementsByTagName(_f); |
| for(var j=0;j<els.length;++j){ |
| var el=els[j]; |
| var val=el.value; |
| if(el.tagName.toLowerCase()=="input"){ |
| if(el.type=="checkbox"){ |
| val=el.checked; |
| } |
| } |
| _d[el.name]=val; |
| } |
| } |
| this.handler(this,_d); |
| return false; |
| }; |
| PopupWin.prototype.close=function(){ |
| this.window.close(); |
| }; |
| PopupWin.prototype.addButtons=function(){ |
| var _14=this; |
| var div=this.doc.createElement("div"); |
| this.content.appendChild(div); |
| div.id="buttons"; |
| div.className="buttons"; |
| for(var i=0;i<arguments.length;++i){ |
| var btn=arguments[i]; |
| var _18=this.doc.createElement("button"); |
| div.appendChild(_18); |
| _18.innerHTML=Xinha._lc(btn,"Xinha"); |
| switch(btn.toLowerCase()){ |
| case "ok": |
| Xinha.addDom0Event(_18,"click",function(){ |
| _14.callHandler(); |
| _14.close(); |
| return false; |
| }); |
| break; |
| case "cancel": |
| Xinha.addDom0Event(_18,"click",function(){ |
| _14.close(); |
| return false; |
| }); |
| break; |
| } |
| } |
| }; |
| PopupWin.prototype.showAtElement=function(){ |
| var _19=this; |
| setTimeout(function(){ |
| var w=_19.content.offsetWidth+4; |
| var h=_19.content.offsetHeight+4; |
| var el=_19.content; |
| var s=el.style; |
| s.position="absolute"; |
| s.left=parseInt((w-el.offsetWidth)/2,10)+"px"; |
| s.top=parseInt((h-el.offsetHeight)/2,10)+"px"; |
| if(Xinha.is_gecko){ |
| _19.window.innerWidth=w; |
| _19.window.innerHeight=h; |
| }else{ |
| _19.window.resizeTo(w+8,h+70); |
| } |
| },25); |
| }; |
| |