//为数组Array添加一个push方法 //为数组的末尾加入一个对象 if(!Array.prototype.push) { Array.prototype.push=function () { var startLength=this.length; for(var j=0;j'; //使用滤镜设置对象的透明度 var cB='filter: alpha(opacity='+this.info.coverOpacity+');opacity:'+this.info.coverOpacity/100+';'; //设置全屏的蒙布 var cover=''; //设置弹出的主窗口设置 var mainBox=''+''; //如果有蒙布 if(!this.config.isBackgroundCanClick) { G('dialogCase').innerHTML=cover+mainBox; G('dialogBoxBG').style.height=document.body.scrollHeight; } else { G('dialogCase').innerHTML=mainBox; } Event.observe(G('dialogBoxClose'),"click",this.reset.bindAsEventListener(this),false); //如果支持拖动,则设置拖动处理 if(this.config.isSupportDraging) { dropClass=new Dragdrop(this.config.width,this.config.height,this.info.shadowWidth,this.config.isSupportDraging,this.config.contentType); G("dialogBoxTitle").style.cursor="move"; }; this.lastBuild(); }, lastBuild:function () { //设置confim对话框的具体内容 var confirm='
'+this.info.confirmCon+'
'; //设置alert对话框的具体内容 var alert='
'+this.info.alertCon+'
'; var baseZIndex=10001+this.info.overlay*10; var coverIfZIndex=baseZIndex+4; //判断内容类型决定窗口的主内容区域应该显示什么 if(this.config.contentType==1) { var openIframe=""; var coverIframe="
"; G("dialogBody").innerHTML=openIframe+coverIframe; } else if(this.config.contentType==2) { G("dialogBody").innerHTML=this.info.contentHtml; } else if(this.config.contentType==3) { G("dialogBody").innerHTML=confirm;Event.observe(G('dialogOk'),"click",this.forCallback.bindAsEventListener(this),false); Event.observe(G('dialogCancel'),"click",this.close.bindAsEventListener(this),false); } else if(this.config.contentType==4) { G("dialogBody").innerHTML=alert; Event.observe(G('dialogYES'),"click",this.close.bindAsEventListener(this),false); }; }, //重新加载弹出窗口的高度和内容 reBuild:function () { G('dialogBody').height=G('dialogBody').clientHeight; this.lastBuild(); }, show:function () { //隐藏一些在info中制定的元素 this.hiddenSome(); //弹出窗口居中 this.middle(); //设置阴影 if(this.config.isShowShadow) this.shadow(); }, //设置回调函数 forCallback:function () { return this.info.callBack(this.info.parameter); }, //为弹出窗口设置阴影 shadow:function () { var oShadow=G('dialogBoxShadow'); var oDialog=G('dialogBox');oShadow['style']['position']="absolute"; oShadow['style']['background']="#000"; oShadow['style']['display']=""; oShadow['style']['opacity']="0.2"; oShadow['style']['filter']="alpha(opacity=20)"; oShadow['style']['top']=oDialog.offsetTop+this.info.shadowWidth; oShadow['style']['left']=oDialog.offsetLeft+this.info.shadowWidth; oShadow['style']['width']=oDialog.offsetWidth;oShadow['style']['height']=oDialog.offsetHeight; }, //让弹出窗口居中显示 middle:function () { if(!this.config.isBackgroundCanClick) G('dialogBoxBG').style.display=''; var oDialog=G('dialogBox'); oDialog['style']['position']="absolute"; oDialog['style']['display']=''; var sClientWidth=document.body.clientWidth; var sClientHeight=document.documentElement.clientHeight; var scrollPos; if (typeof window.pageYOffset != 'undefined') { scrollPos = window.pageYOffset; } else if (typeof document.compatMode != 'undefined' && document.compatMode != 'BackCompat') { scrollPos = document.documentElement.scrollTop; } else if (typeof document.body != 'undefined') { scrollPos = document.body.scrollTop; } var sScrollTop=scrollPos; //alert("document.body.clientWidth = " + sClientWidth + "\ndocument.body.clientHeight" +sClientHeight); var sleft=(sClientWidth/2)-(oDialog.offsetWidth/2)+50; //alert(sleft); var iTop=-80+(sClientHeight/2+sScrollTop)-(oDialog.offsetHeight/2); var sTop=iTop>0?iTop:(sClientHeight/2+sScrollTop)-(oDialog.offsetHeight/2); //alert("var iTop=-80+(sClientHeight/2+sScrollTop)-(oDialog.offsetHeight/2);\n" + "sClientHeight is " + sClientHeight + "\nsScrollTop is " + sScrollTop); // alert("iTop is " + iTop); if(sTop<1) sTop="20"; if(sleft<1) sleft="20"; oDialog['style']['left']=(document.documentElement.clientWidth)/3+"px"; oDialog['style']['top']=(document.documentElement.scrollTop+(document.documentElement.clientHeight)/10)+"px"; window.onscroll = function(){ oDialog['style']['top']=(document.documentElement.scrollTop+(document.documentElement.clientHeight)/10)+"px"; G('dialogBoxShadow').style.top=(document.documentElement.scrollTop+(document.documentElement.clientHeight)/10+4)+"px"; }; // alert("sleft is " + sleft); // alert("sTop is " + sTop); }, //刷新页面,并关闭当前弹出窗口 reset:function () { if(this.config.isReloadOnClose) { top.location.reload(); }; this.close(); }, //关闭当前弹出窗口 close:function () { G('dialogBox').style.display='none'; if(!this.config.isBackgroundCanClick) G('dialogBoxBG').style.display='none'; if(this.config.isShowShadow) G('dialogBoxShadow').style.display='none'; G('dialogBody').innerHTML=''; this.showSome(); }, //隐藏someHiddenTag和someHiddenEle中的所有元素 hiddenSome:function () { //隐藏someHiddenTag中的所有元素 var tag=this.info.someHiddenTag.split(","); if(tag.length==1&&tag[0]=="") { tag.length=0; } for(var j=0;jparseInt(this.oObj.style.top)+25) iTop=iTop+12; this.oObj.style.left=iLeft; this.oObj.style.top=iTop; if(this.showShadow) { G('dialogBoxShadow').style.left=iLeft+this.shadowWidth; G('dialogBoxShadow').style.top=iTop+this.shadowWidth; }; this.dragData={x:Event.pointerX(event),y:Event.pointerY(event)}; document.body.style.cursor="move"; }, mouseup:function (event) { if(!this.IsDraging) return ; if(this.contentType==1) G("iframeBG").style.display="none"; document.onmousemove=null; document.onmouseup=null; var mousX=Event.pointerX(event)-(document.documentElement.scrollLeft||document.body.scrollLeft); var mousY=Event.pointerY(event)-(document.documentElement.scrollTop||document.body.scrollTop); if(mousX<1||mousY<1||mousX>document.body.clientWidth||mousY>document.body.clientHeight) { this.oObj.style.left=this.backData["x"]; this.oObj.style.top=this.backData["y"]; if(this.showShadow) { G('dialogBoxShadow').style.left=this.backData.x+this.shadowWidth; G('dialogBoxShadow').style.top=this.backData.y+this.shadowWidth; }; }; this.IsDraging=false; document.body.style.cursor=""; Event.stopObserving(document,"selectstart",this.returnFalse,false); }, returnFalse:function () { return false; } }; //begin popwin function openshow(url,title,w,h,stype) { g_pop=new Popup({contentType:stype,isReloadOnClose:false,width:w,height:h}); g_pop.setContent("title",title); g_pop.setContent("contentUrl",url); g_pop.build(); g_pop.show(); } function g_close_pop_re() { g_pop.close(); location.reload(); } function Comment(url,w,h,n) {g_pop=new Popup({ contentType:1,isReloadOnClose:false,width:w,height:h}); g_pop.setContent("title",n); g_pop.setContent("scrollType","no"); g_pop.setContent("contentUrl",url); g_pop.build(); g_pop.show(); } function g_close_pop() { g_pop.close(); g_pop=null; } function ShowAlert(title,content,w,h) { var pop=new Popup({ contentType:4,isReloadOnClose:false,width:w,height:h}); pop.setContent("title",title); pop.setContent("alertCon",content); pop.build(); pop.show(); } function Wclose(){ g_pop.close(); g_pop=null; } //end popwin