first commit
This commit is contained in:
145
admin/overlib/overlibmws_modal.js
Normal file
145
admin/overlib/overlibmws_modal.js
Normal file
@ -0,0 +1,145 @@
|
||||
/*
|
||||
overlibmws_modal.js plug-in module - Copyright Foteos Macrides 2006-2007. All rights reserved.
|
||||
For support of the MODAL feature.
|
||||
Initial: November 15, 2006 - Last Revised: July 7, 2007
|
||||
See the Change History and Command Reference for overlibmws via:
|
||||
|
||||
http://www.macridesweb.com/oltest/
|
||||
|
||||
Published under an open source license: http://www.macridesweb.com/oltest/license.html
|
||||
*/
|
||||
|
||||
OLloaded=0;var OLmodalCmds='modal';OLregCmds(OLmodalCmds);
|
||||
|
||||
// DEFAULT CONFIGURATION
|
||||
if(OLud('modal'))var ol_modal=0;
|
||||
// END CONFIGURATION
|
||||
|
||||
var o3_modal=0;
|
||||
|
||||
function OLloadModal(){
|
||||
OLload(OLmodalCmds);
|
||||
}
|
||||
|
||||
function OLparseModal(pf,i,ar){
|
||||
var k=i,t=OLtoggle;if(k<ar.length){if(Math.abs(ar[k])==MODAL){t(ar[k],pf+'modal');return k;}}
|
||||
return -1;
|
||||
}
|
||||
|
||||
var OLmMask=null,OLmIframe=null,OLmMaskOn=0,OLmSelectOK=(OLie55||OLop7||OLgek>=20030624)?1:0,
|
||||
OLmRoot='html',OLmGotSc=0,OLmScLeft=0,OLmScTop=0,OLmKDH=null,OLmTI=new Array(),
|
||||
OLmTT=new Array("a","button","textarea","input","iframe"),OLmEdit=0;
|
||||
|
||||
function OLchkModal(){
|
||||
if(o3_modal){if(o3_sticky&&!OLns4)OLmInitMask();else o3_modal=0;}
|
||||
}
|
||||
function OLclearModal(){
|
||||
if(OLmMaskOn)OLmHideMask();
|
||||
}
|
||||
|
||||
function OLsetModalIframe(o,i,z){
|
||||
o.id=i;o.src='javascript:false;';o.scrolling='no';var os=o.style;
|
||||
os.position='absolute';os.zIndex=z;os.filter='Alpha(style=0,opacity=0)';
|
||||
}
|
||||
|
||||
function OLmInitMask(){
|
||||
OLmRoot=(o3_frame.document.compatMode&&o3_frame.document.compatMode=='BackCompat')?'body':'html';
|
||||
var doCss=(!OLgetRef('modalMask'))?1:0,zI=(over)?over.style.zIndex-2:998;OLmMask=OLmkLyr('modalMask',o3_frame);
|
||||
OLmMask.style.zIndex=zI;if(OLie55){if(!OLgetRef('modalIframe')){OLmIframe=o3_frame.document.createElement('iframe');
|
||||
OLsetModalIframe(OLmIframe,'modalIframe',(zI-1));o3_frame.document.body.appendChild(OLmIframe);}else
|
||||
OLmIframe.style.zIndex=(zI-1);}if(doCss){var o=OLmMask.style;o.display='none';
|
||||
o.top='0px';o.left='0px';o.width='100%';o.height='100%';o.visibility='visible';
|
||||
o.backgroundColor='#bbbbbb';if(OLie55){var oi=o3_frame.document.all['modalIframe'].style;
|
||||
oi.display='none';oi.top='0px';oi.left='0px';oi.width='100%';oi.height='100%';oi.visibility=
|
||||
'visible';}if(OLie4&&!OLieM&&typeof o.filter=='string'){o.filter='Alpha(opacity=40)';
|
||||
if(OLie55)OLmMask.filters.alpha.enabled=1;}else{if(typeof o.opacity!='undefined')o.opacity=0.4;
|
||||
else if(typeof o.MozOpacity!='undefined')o.MozOpacity=0.4;else if(typeof o.KhtmlOpacity!=
|
||||
'undefined')o.KhtmlOpacity=0.4;}}OLmAddEv(window,"resize",OLmHandleMask);OLmShowMask();
|
||||
}
|
||||
function OLmShowMask(){
|
||||
OLmMaskOn=1;if(!OLie4||OLop7){OLmKDH=document.onkeypress?document.onkeypress.toString():null;
|
||||
document.onkeypress=OLmKeyDownHandler;}else OLmDisableTI();OLmMask.style.display="block";
|
||||
if(OLie55)OLmIframe.style.display="block";OLmHandleMask();OLmSetMaskSize();
|
||||
if(!OLmSelectOK)OLmHideSB();
|
||||
}
|
||||
function OLmHandleMask(){
|
||||
if(OLmMaskOn){if(!OLmGotSc){OLmScLeft=parseInt((OLie4&&!OLop7?OLfd(o3_frame).scrollLeft:
|
||||
o3_frame.pageXOffset),10);OLmScTop=parseInt((OLie4&&!OLop7?OLfd(o3_frame).scrollTop:
|
||||
o3_frame.pageYOffset),10);OLmGotSc=1;}
|
||||
var root=o3_frame.document.getElementsByTagName(OLmRoot)[0];if(root.style.overflow!=
|
||||
'hidden')root.style.overflow='hidden';var scLeft=parseInt((OLie4&&!OLop7?
|
||||
OLfd(o3_frame).scrollLeft:o3_frame.pageXOffset),10),scTop=parseInt((OLie4&&!OLop7?
|
||||
OLfd(o3_frame).scrollTop:o3_frame.pageYOffset),10),o=OLmMask.style,oi=(OLie55&&OLmIframe)?
|
||||
OLmIframe.style:null;o.top=scTop+"px";o.left=scLeft+"px";o.top=scTop+"px";o.left=scLeft+"px";
|
||||
if(oi){oi.top=scTop+"px";oi.left=scLeft+"px";oi.top=scTop+"px";oi.left=scLeft+"px";}
|
||||
OLmSetMaskSize();}
|
||||
}
|
||||
function OLmSetMaskSize(){
|
||||
var root=o3_frame.document.getElementsByTagName(OLmRoot)[0],mHt,fullWd=OLmViewportWd(),
|
||||
fullHt=OLmViewportHt();if(fullHt>root.scrollHeight)mHt=fullHt;else mHt=root.scrollHeight;
|
||||
OLmMask.style.height=mHt+'px';OLmMask.style.width=root.scrollWidth+'px';if(OLie55&&OLmIframe){
|
||||
OLmIframe.style.height=mHt+'px';OLmIframe.style.width=root.scrollWidth+'px';}
|
||||
}
|
||||
function OLmHideMask(){
|
||||
OLmMaskOn=0;var root=o3_frame.document.getElementsByTagName(OLmRoot)[0];root.style.overflow=
|
||||
(OLop7?'auto':'');if(!OLie4||OLop7){document.onkeypress=OLmKDH;OLmKDH=null;}else OLmRestoreTI();
|
||||
if(!OLmSelectOK)OLmShowSB();OLmRemoveEv(window,"resize",OLmHandleMask);
|
||||
if(o3_frame.scrollTo&&OLmGotSc){o3_frame.scrollTo(OLmScLeft,OLmScTop);OLmGotSc=0;}
|
||||
if(OLgetRef('modalMask')&&OLmMask){OLmMask.style.display='none';if(OLie55)
|
||||
OLmIframe.style.display='none';}OLmEdit=0;
|
||||
}
|
||||
|
||||
function OLmKeyDownHandler(e){
|
||||
var ev=(e||event),k=ev.keyCode,c=ev.charCode;
|
||||
if(OLmMaskOn&&!OLmEdit&&(k==9||c==32||(OLgek&&k==13)||(k>=32&&k<=40)))return false;
|
||||
}
|
||||
|
||||
function OLmAddEv(obj,evType,fn){
|
||||
if(obj.addEventListener){obj.addEventListener(evType,fn,false);return true;}
|
||||
else if(obj.attachEvent){var r=obj.attachEvent("on"+evType,fn);return r;}else return false;
|
||||
}
|
||||
function OLmRemoveEv(obj,evType,fn){
|
||||
if(obj.removeEventListener){obj.removeEventListener(evType,fn,false);return true;}
|
||||
else if(obj.detachEvent){var r=obj.detachEvent("on"+evType,fn);return r;}else return false;
|
||||
}
|
||||
|
||||
function OLmViewportWd(){
|
||||
if(o3_frame.innerWidth!=o3_frame.undefined){return o3_frame.innerWidth;}
|
||||
if(o3_frame.document.compatMode=='CSS1Compat'){
|
||||
return o3_frame.document.documentElement.clientWidth;}
|
||||
if(o3_frame.document.body)return o3_frame.document.body.clientWidth;return o3_frame.undefined;
|
||||
}
|
||||
function OLmViewportHt(){
|
||||
if(o3_frame.innerHeight!=o3_frame.undefined)return o3_frame.innerHeight;
|
||||
if(o3_frame.document.compatMode=='CSS1Compat')
|
||||
return o3_frame.document.documentElement.clientHeight;
|
||||
if(o3_frame.document.body)return o3_frame.document.body.clientHeight;return o3_frame.undefined;
|
||||
}
|
||||
|
||||
function OLmHideSB(){
|
||||
var s=over.innerHTML;over.innerHTML='';var sel=OLie4?o3_frame.document.all.tags('select'):
|
||||
o3_frame.document.getElementsByTagName('select');for(i=0;i<sel.length;i++)
|
||||
sel[i].style.visibility="hidden";over.innerHTML=s;
|
||||
}
|
||||
function OLmShowSB(){
|
||||
var s=over.innerHTML;over.innerHTML='';var sel=OLie4?o3_frame.document.all.tags('select'):
|
||||
o3_frame.document.getElementsByTagName('select');for(i=0;i<sel.length;i++)
|
||||
sel[i].style.visibility="visible";over.innerHTML=s;
|
||||
}
|
||||
|
||||
function OLmDisableTI(){
|
||||
if(OLie4&&!OLop7){var i=0;for(var j=0;j<OLmTT.length;j++){
|
||||
var tagE=o3_frame.document.getElementsByTagName(OLmTT[j]);for(var k=0;k<tagE.length; k++){
|
||||
OLmTI[i]=tagE[k].tabIndex;tagE[k].tabIndex="-1";i++;}}}
|
||||
}
|
||||
function OLmRestoreTI(){
|
||||
if(OLie4&&!OLop7){var i=0;for(var j=0;j<OLmTT.length;j++){
|
||||
var tagE=o3_frame.document.getElementsByTagName(OLmTT[j]);for(var k=0;k<tagE.length;k++){
|
||||
tagE[k].tabIndex=OLmTI[i];tagE[k].tabEnabled=true;i++;}}}
|
||||
}
|
||||
|
||||
OLregRunTimeFunc(OLloadModal);
|
||||
OLregCmdLineFunc(OLparseModal);
|
||||
|
||||
OLmodalPI=1;
|
||||
OLloaded=1;
|
Reference in New Issue
Block a user