
var ymPrompt={
version:'2.01',
pubDate:'2008-07-21',
show:function(args){this.initCallCfg=args;}
};
ymPrompt.apply=function(o,c,defaults){
if(defaults){
ymPrompt.apply(o,defaults);
}
if(o&&c&&typeof c=='object'){
for(var p in c){
o[p]=c[p];
}
}
return o;
};
(function(){
var d=document,db=d.body,y=ymPrompt;
var addEvent=function(env,fn,obj){
obj=obj||d;
isIE?obj.attachEvent('on'+env,fn):obj.addEventListener(env,fn,false);
};
var browser=function(s){return navigator.userAgent.toLowerCase().indexOf(s)!=-1};
var isOpera=browser('opera'),isIE=browser('msie')!=-1&&(d.all&&!isOpera);
if(!db||(typeof db!='object')){
return addEvent('load',arguments.callee,window);
}
var rootEl=d.compatMode=='CSS1Compat'?d.documentElement:db;
var c={},$=function(id){
var cc=c[id];
return cc&&cc.parentNode?cc:c[id]=d.getElementById(id);
};
var $height=function(obj){return parseInt(obj.style.height)||obj.offsetHeight};
var addCSS=function(obj,css,append){
!append?(isOpera?obj.setAttribute('style',css):obj.style.cssText=css):(isOpera?obj.setAttribute('style',obj.getAttribute('style')+css):obj.style.cssText+=css);
}
var btnIndex=0,listenKeydown=function(){
if(!btnCache||!$('promptWinContainer')||$('promptWinContainer').style.display=='none')return true;
var ev=window.event||arguments[0],l=btnCache.length;
if(l==1){
//$(btnCache[0].id).focus();
}else{
var forward=function(){return $(btnCache[++btnIndex<l?btnIndex:(btnIndex=0)].id)};
var backward=function(){return $(btnCache[--btnIndex<0?(btnIndex=l-1):btnIndex].id)}
if(ev.keyCode==9||ev.keyCode==39){forward().focus();}
if(ev.keyCode==37){backward().focus();}
}
if(ev.keyCode==13)return true;
try{
ev.keyCode=0;
ev.cancelBubble=true;
ev.returnValue=false;
}catch(e){
try{
ev.stopPropagation();
ev.preventDefault();
}catch(e){}
}
}
var btnCache,seed=0;
var mkBtn=function(txt,sign,id){
id=id||'ymPrompt_btn_'+seed++;
return{
id:id,
html:"<input type='button' id='"+id+"' onclick='ymPrompt.doHandler(\""+sign+"\")' style='cursor:pointer' class='btnStyle' value='"+txt+"' />"
};
}
var okBtn=mkBtn(' Check Out ','ok'),cancelBtn=mkBtn(' Continue ','cancel');
var useBtn=function(btn){
if(!btn)return btnCache=null;
if(!(btn instanceof Array))btn=[btn];
btnCache=btn;
var html=[];
for(var i=0;i<btn.length;i++){
html.push(btn[i].html);
}
return html.join('&nbsp;&nbsp;');
}
var btnMap={alert:okBtn,succeed:okBtn,error:okBtn,confirm:[okBtn,cancelBtn]};
var init=function(){
showMask();
createWin();
}
var destory=function(){
hiddenMask();
$('promptWinContainer').style.display='none';
}
var showMask=function(){
if(!$('maskLevel')){
var shieldStyle='position:absolute;top:0px;left:0px;width:0;height:0;background:'+y.maskAlphaColor+';text-align:center;z-index:10000;filter:alpha(opacity='+(y.maskAlpha*100)+');opacity:'+y.maskAlpha;
try{
db.appendChild(d.createElement("<div id='maskLevel' style=\'"+shieldStyle+"\'></div>"));
db.appendChild(d.createElement("<iframe id='maskIframe'></iframe>"));
}catch(e){
var promptShield=d.createElement('div');
promptShield.id='maskLevel';
promptShield.setAttribute('style',shieldStyle);
db.appendChild(promptShield);
promptShield=null;
}
}
$('maskLevel').style.display='none';
$('maskLevel').style.width=(rootEl.scrollLeft==0?rootEl.clientWidth:rootEl.scrollWidth)+"px";
$('maskLevel').style.height=(rootEl.scrollTop==0?rootEl.clientHeight:rootEl.scrollHeight)+"px";
var maskIframe=$('maskIframe');
if(maskIframe){
addCSS(maskIframe,$('maskLevel').style.cssText+';z-index:9999;filter:alpha(opacity=0);opacity:0');
maskIframe.style.display='';
}
$('maskLevel').style.display='';
db.onselectstart=function(){return false};
db.oncontextmenu=function(){return false};
};
var hiddenMask=function(){
$('maskLevel').style.display='none';
if($('maskIframe')){$('maskIframe').style.display='none'};
db.onselectstart=function(){return true};
db.oncontextmenu=function(){return true};
};
var setDrag=function(){
var event=window.event||arguments[0];
setDrag.startDrag=true;
setDrag.startX=event.x||event.pageX;
setDrag.startY=event.y||event.pageY;
setDrag.containX=$("promptWinContainer").offsetLeft;
setDrag.containY=$("promptWinContainer").offsetTop;
};
addEvent("mousemove",function(){
if(setDrag.startDrag){
var event=window.event||arguments[0];
try{
$("promptWinContainer").style.left=(setDrag.containX+(event.x||event.pageX)-setDrag.startX)+"px";
$("promptWinContainer").style.top=(setDrag.containY+(event.y||event.pageY)-setDrag.startY)+"px";
}catch(e){}
}
});
addEvent("mouseup",function(){setDrag.startDrag=false});
var createWin=function(){
outerStyle='position:absolute;left:'+((rootEl.clientWidth-y.width)/2+rootEl.scrollLeft)+'px;width:'+y.width+'px;top:'+((rootEl.clientHeight-y.height)/2+rootEl.scrollTop)+'px;height:'+y.height+'px;z-index:10001';
if(!$('promptWinContainer')){
var title_div="<div style=\'cursor:move;width:100%;overflow:hidden\' id=\'titleContainer\'><div style=\'float:left\' id=\'titleText\'>&nbsp;</div><div style=\'float:right\' id=\'titleCtrl\'><div class='ymPrompt_close' onclick='ymPrompt.doHandler(\"close\")'>&nbsp;</div></div></div>";
var content_div="<table cellpadding=0 cellspacing=0 border=0 align=center width='100%' height=100% id='promptContentTable'><tr><td id='winMiddleLeft' width='3'>&nbsp;</td><td id='winMiddleCenter'>&nbsp;</td><td id='winMiddleRight' width='3'>&nbsp;</td></tr>";
content_div+="<tr><td height='30' id='winBtnLineLeft'>&nbsp;</td><td align='center' id='winBtnLineCenter'>&nbsp;</td><td id='winBtnLineRight'>&nbsp;</td></tr>";
content_div+="<tr><td id='winBottomLeft' width='3'></td><td id='winBottomCenter'></td><td id='winBottomRight' width='3'></td></tr></table>";
var outContainer=d.createElement('div');
outContainer.id='promptWinContainer';
outContainer.innerHTML=title_div+content_div;
db.appendChild(outContainer);
addEvent('mousedown',setDrag,$('titleContainer'));
y.cacheH=[$height($('promptContentTable')),$height($('winMiddleCenter'))];
addEvent("keydown",listenKeydown);
function resizeMask(){if($("maskLevel")&&$("maskLevel").style.display!="none")showMask()}
addEvent("resize",resizeMask,window);
addEvent("scroll",resizeMask,window);
}
$('titleText').innerHTML=y.title;
$('winMiddleCenter').innerHTML=y.message;
$('winMiddleCenter').className="ymPrompt_"+y.winType;
$('winBtnLineCenter').innerHTML=useBtn(btnMap[y.winType]);
$('promptContentTable').style.height=y.cacheH[0];
$("winMiddleCenter").style.height=y.cacheH[1];
addCSS($('promptWinContainer'),outerStyle);
$('promptContentTable').style.height=(y.height-$('titleContainer').offsetHeight)+'px';
var contentHeight=$height($("promptContentTable"))-$height($("winBottomLeft"));
if($("winBtnLineLeft")){contentHeight-=$height($("winBtnLineLeft"))}
$("winMiddleCenter").style.height=contentHeight+"px";
$('promptWinContainer').style.display='';
if(btnCache)$(btnCache[btnIndex=0].id).focus();
};
y.defaultCfg={
maskAlphaColor:'#000',
maskAlpha:0.1,
title:' ',
message:'内容',
width:300,
height:185,
handler:function(){}
}
var execFn=function(hd){
return function(){
destory();
try{eval(this['handler']).call(window,hd)}catch(e){}
}
}
y.apply(y,{
winType:'alert',
show:function(args){
var a=Array.prototype.slice.call(args,0),cfg=['message','width','height','title','handler','maskAlphaColor','maskAlpha'],obj={};
if(typeof a[0]!='object'){
for(var i=0,l=a.length;i<l;i++){
if(a[i]){obj[cfg[i]]=a[i]}
}
}else{
obj=a[0];
}
this.apply(this,obj,this.defaultCfg);
init();
},
doHandler:function(sign){
destory();
try{eval(this['handler']).call(window,sign)}catch(e){}
}
},y.defaultCfg);
if(y.initCallCfg){
y.show(y.initCallCfg);
}
})();
ymPrompt.apply(ymPrompt,{
alert:function(){
ymPrompt.winType='alert';
ymPrompt.show(arguments);
},
succeedInfo:function(){
ymPrompt.winType='succeed';
ymPrompt.show(arguments);
},
errorInfo:function(){
ymPrompt.winType='error';
ymPrompt.show(arguments);
},
confirmInfo:function(){
ymPrompt.winType='confirm';
ymPrompt.show(arguments);
}
});