blob: 16fa407cc3fab358158d2b70abc49099a9050922 [file] [log] [blame]
/* 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);
};