
WL.alertCallback=null;WL.alert=function(text,title,mode,defaultValue,mask)
{var handler=WL.alertCallback;WL.alertCallback=null;if(title==null)title="System information";if(mode==null)mode=WL.Mode.OK;if(WL.messageBox==null&&document!=null&&document.forms.length!=0)
{WL.messageBox=new WL.MessageBox();WL.messageBox.create();}
if(WL.messageBox&&WL.popup_show(WL.Utils.$(WL.messageBox.c_id)))
WL.messageBox.init(text,title,mode,defaultValue,mask,handler);else
{var result=null;switch(mode)
{case WL.Mode.OK:window.alert(text);break;case WL.Mode.OKCancel:result=window.confirm(text)?WL.Result.OK:WL.Result.Cancel;break;case WL.Mode.YesNo:case WL.Mode.YesNoCancel:result=window.confirm(text)?WL.Result.Yes:WL.Result.No;break;case WL.Mode.Prompt:result=window.prompt(text,defaultValue);break;}
if(handler)handler(result);}}
WL.confirm=function(text,title)
{var handler=WL.alertCallback;WL.Utils.assert(handler==null,"WL.confirm have not WL.alertCallback");WL.alertCallback=handler?function(result){handler(result==WL.Result.Yes);}:null;WL.alert(text,title,WL.Mode.YesNo);}
WL.prompt=function(text,defaultValue,title,mask)
{WL.Utils.assert(WL.alertCallback==null,"WL.prompt have not WL.alertCallback");WL.alert(text,title,WL.Mode.Prompt,defaultValue,mask);}
WL.Mode={OK:0,OKCancel:1,YesNo:2,YesNoCancel:3,Prompt:4};WL.Result={OK:0,Cancel:1,Yes:2,No:3};WL.MessageBox=WL.Class(Object,function()
{this.handler=null;this.mode=0;},function(type)
{this.r0="OK";this.r1="Cancel";this.r2="No";this.r3="Yes";type.create=function()
{var container=WL.Utils.$e("div");container.className="message-box popup-zone";this.c_id=WL.uniqueID(container);document.forms[0].appendChild(container);this.info=WL.Utils.$e("div");this.info.className="message-info";container.appendChild(this.info);this.text=WL.Utils.$e("input");this.text.type="text";this.text.className="message-input";container.appendChild(this.text);var buttons=WL.Utils.$e("div");buttons.className="message-buttons";container.appendChild(buttons);this.btn_ok=createButton(WL.MessageBox.r0,this.close.bindWA(this,WL.Result.OK));buttons.appendChild(this.btn_ok);this.btn_cancel=createButton(WL.MessageBox.r1,this.close.bindWA(this,WL.Result.Cancel));buttons.appendChild(this.btn_cancel);this.btn_no=createButton(WL.MessageBox.r2,this.close.bindWA(this,WL.Result.No));buttons.appendChild(this.btn_no);this.btn_yes=createButton(WL.MessageBox.r3,this.close.bindWA(this,WL.Result.Yes));buttons.appendChild(this.btn_yes);WL.Utils.enter_action(this.text,default_enter_action.bind(this));}
var createButton=function(title,handler)
{var a=WL.Utils.$e("a");a.href="#";a.className="button";a.title=title;a.onclick=handler?a_close.bind(handler):null;var span=WL.Utils.$e("span");span.innerHTML=title;a.appendChild(span);return a;}
var a_close=function(e)
{this();return WL.returnEvent(WL.getEvent(e),false,true);}
var on_focus=function(){this.style.borderWidth="0px";}
var on_blur=function(){this.style.borderWidth="0px";}
var default_enter_action=function(){this.close(WL.Result.OK);}
type.init=function(text,title,mode,defaultValue,mask,handler)
{this.mode=mode;this.handler=handler;this.btn_yes.style.display="none";this.btn_no.style.display="none";this.btn_cancel.style.display="none";this.btn_ok.style.display="none";this.text.style.display="none";WL.Utils.setNew(this.btn_yes,"className","button");WL.Utils.setNew(this.btn_no,"className","button");WL.Utils.setNew(this.btn_cancel,"className","button");WL.Utils.setNew(this.btn_ok,"className","button");this.info.innerHTML=text;var defaultFocus;switch(mode)
{case WL.Mode.Prompt:this.text.value=defaultValue;if(mask)WL.mask_attach(this.text,mask,defaultValue);this.text.style.display="";this.btn_cancel.style.display="";this.btn_ok.style.display="";WL.Utils.setNew(this.btn_ok,"className","default_button");defaultFocus=textFocus;break;case WL.Mode.OKCancel:this.btn_cancel.style.display="";case WL.Mode.OK:this.btn_ok.style.display="";WL.Utils.setNew(this.btn_ok,"className","default_button");defaultFocus=okFocus;break;case WL.Mode.YesNoCancel:this.btn_cancel.style.display="";case WL.Mode.YesNo:this.btn_no.style.display="";this.btn_yes.style.display="";WL.Utils.setNew(this.btn_yes,"className","default_button");defaultFocus=yesFocus;break;}
window.setTimeout(defaultFocus,0);}
var textFocus=function(){try{WL.messageBox.text.select();}catch(e){}}
var okFocus=function(){try{WL.messageBox.btn_ok.focus();}catch(e){}}
var yesFocus=function(){try{WL.messageBox.btn_yes.focus();}catch(e){}}
type.close=function(result)
{if(this.mode==WL.Mode.Prompt)
{if(result==WL.Result.OK)
result=this.text.value;else result=null;}
WL.popup_hide();if(this.handler)this.handler(result);}});WL.popup_show=function(content,options){if(!WL.createPopup())return false;return WL.popup_show(content,options);}
WL.createPopup=function()
{if(typeof(WL.popup_hide)=="function")return true;if(document==null||document.forms.length==0)return false;var popupzone=null;var backzone=WL.Utils.$e("div");backzone.className="popup-backzone";if(!WL.browser.option.cssPositionFixed)
{backzone.style.position="absolute";var iframe=WL.Utils.$e("iframe");iframe.src="";iframe.style.filter="alpha(opacity:0)";iframe.style.width="100%";iframe.style.height="100%";iframe.scrolling="no";iframe.frameBorder="no";backzone.appendChild(iframe);var body=WL.Utils.getBody();WL._updateScrollBackzone=function()
{backzone.style.left=body.scrollLeft+"px";backzone.style.top=body.scrollTop+"px";if(popupzone==null)return;popupzone.style.left=(body.scrollLeft+popupzone.fixed_left)+"px";popupzone.style.top=(body.scrollTop+popupzone.fixed_top)+"px";}
WL._updateResizeBackzone=function()
{backzone.style.width=body.clientWidth+"px";backzone.style.height=body.clientHeight+"px";};}
document.forms[0].appendChild(backzone);WL.popup_esc_listener=function(e){if(WL.getEvent(e).keyCode==27)WL.popup_hide();}
WL.popup_hide=function()
{if(popupzone==null)return;WL.detachListener(document,"keypress",WL.popup_esc_listener);if(!WL.browser.option.cssPositionFixed)
{WL.detachListener(window,"scroll",WL._updateScrollBackzone);WL.detachListener(window,"resize",WL._updateResizeBackzone);}
backzone.style.display="none";popupzone.style.display="none";popupzone=null;}
WL.popup_show=function(content,options)
{WL.Utils.assert(popupzone!=null,"popup zone occupped");if(popupzone!=null)return false;popupzone=content;if(!options)options={};if(!WL.browser.option.cssPositionFixed)
popupzone.style.position="absolute";backzone.style.display="block";popupzone.style.display="block";WL.attachListener(document,"keydown",WL.popup_esc_listener);var body=WL.Utils.getBody();if(!options.y)options.y=Math.max(0,Math.ceil((body.clientHeight-content.offsetHeight)/2));if(!options.x)options.x=Math.max(0,Math.ceil((body.clientWidth-content.offsetWidth)/2));if(!WL.browser.option.cssPositionFixed)
{popupzone.fixed_top=options.y;popupzone.fixed_left=options.x;window.setTimeout(WL._updateScrollBackzone,0);window.setTimeout(WL._updateResizeBackzone,0);WL.attachListener(window,"resize",WL._updateResizeBackzone);WL.attachListener(window,"scroll",WL._updateScrollBackzone);options.y+=body.scrollTop;options.x+=body.scrollLeft;}
popupzone.style.top=options.y+"px";popupzone.style.left=options.x+"px";return true;}
return true;}