123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- // Make a layer that stays in the same place on screen when scrolling the browser window.
- // Version 1.2
- // See http://www.mark.ac/help for browser support.
- var mySticky;
- var theLayer;
- // Setup variables for sliding.
- // lastY and staticYOffset should match your CSS top definition.
- lastY=10;YOffset=0;staticYOffset=10;refreshMS=25;
- // Setup function that runs when the page loads.
- function setup(eID){
- bw=new checkBrowser;
- if(bw.ns4||bw.opera){MM_reloadPage(true);}
- var noFix=bw.ie4||bw.ns4||(bw.macie50)?true:false;
- if (window.attachEvent){fix_bind()}
- else if(noFix){
- if(bw.ns6){document.getElementById(eID).style.position="absolute";}
- if(bw.macie50){document.getElementById(eID).style.position="absolute";document.getElementById(eID).style.backgroundColor="#ccffcc";}
- if(bw.ns6&&YOffset==0){YOffset=-15}
- mySticky=new makeLayerObj(eID);
- layerSlide(eID)}
- else{
- mySticky=new makeLayerObj(eID);
- mySticky.css.position="fixed";}
- if(!mySticky){mySticky=new makeLayerObj(eID);}
- //mySticky.css.visibility="visible";
- }
- // -------------------------
- // emulate css 'position: fixed' in IE5+ Win
- // code by aclover@1value.com
- fix_elements = new Array();
- function fix_event(){
- var i;
- for (i=0; i < fix_elements.length; i++){
- fix_elements[i].style.left = parseInt(fix_elements[i].fix_left)+document.getElementsByTagName('html')[0].scrollLeft+document.getElementsByTagName('body')[0].scrollLeft+'px';
- fix_elements[i].style.top = parseInt(fix_elements[i].fix_top)+document.getElementsByTagName('html')[0].scrollTop+document.getElementsByTagName('body')[0].scrollTop+'px';
- }
- }
- function fix_bind(){
- var i;
- for (i=0; i < document.all.length; i++){
- if (document.all[i].currentStyle.position=='fixed'){
- document.all[i].fix_left = document.all[i].currentStyle.left;
- document.all[i].fix_top = document.all[i].currentStyle.top;
- document.all[i].style.position = 'absolute';
- fix_elements[fix_elements.length] = document.all[i];
- window.attachEvent('onscroll', fix_event);
- window.attachEvent('onresize', fix_event);
- }
- }
- }
- // -------------------------
- // -------------------------
- // DHTML menu sliding. Requires checkBrowser()
- // Based on source at http://www.simplythebest.net/
- function layerSlide(layerID) {
- if(bw.dhtml){
- if(!mySticky){mySticky=new makeLayerObj(layerID);}
- if (bw.ns) {winY = window.pageYOffset;}
- else if (bw.ie) {winY = document.body.scrollTop;}
- if (bw.ie||bw.ns) {
- if (winY!=lastY&&winY>YOffset-staticYOffset){smooth = .3 * (winY - lastY - YOffset + staticYOffset);}
- else if (YOffset-staticYOffset+lastY>YOffset-staticYOffset){smooth = .3 * (winY - lastY - (YOffset-(YOffset-winY)));}
- else{smooth=0}
- if(smooth > 0) {smooth = Math.ceil(smooth);}
- else{smooth = Math.floor(smooth);}
- if (bw.ie){mySticky.css.pixelTop+=smooth;}
- else if (bw.ns){mySticky.css.top=parseInt(mySticky.css.top)+smooth;}
- lastY = lastY+smooth;
- top.window.status=new Date()
- setTimeout('layerSlide("'+layerID+'")', refreshMS)}}}
- // -------------------------
- // Netscape 4.x browser resize fix
- function MM_reloadPage(init) {
- if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
- document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; top.onresize=MM_reloadPage; }}
- else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) {location.reload();}}
- // Create browser-independent layer and browser objects
- function makeLayerObj(eID){
- if(document.getElementById){this.css=document.getElementById(eID).style}
- else if(document.layers){this.css=document.layers[eID];}
- else if(document.all){this.css=document.all[eID].style;}
- return this
- }
- function checkBrowser(){
- this.ver=navigator.appVersion;
- this.name=navigator.appName;
- this.mac=(navigator.platform.toLowerCase().indexOf('mac')>-1)?true:false;
- this.opera=(navigator.userAgent.toLowerCase().indexOf('opera')>-1)?true:false;
- this.dom=document.getElementById?true:false;
- this.ns=(this.name=='Netscape');
- this.ie4=(document.all && !this.dom)?true:false;
- this.ie=(this.name =='Microsoft Internet Explorer'&&!this.opera)?true:false;
- this.ie5=(this.ie && (navigator.userAgent.indexOf("MSIE 5")!=-1))?true:false;
- this.macie50=(this.mac&&this.ie5&&(navigator.userAgent.indexOf("MSIE 5.0")!=-1))?true:false
- this.ns4=(this.ns && parseInt(this.ver) == 4)?true:false;
- this.ns6=((this.name=="Netscape")&&(parseInt(this.ver)==5))?true:false
- this.standards=document.getElementById?true:false;
- this.dhtml=this.standards||this.ie4||this.ns4;
- }
- function showMe(eID){
- myFloater=new makeLayerObj(eID)
- myFloater.css.visibility="visible";
- }
- function hideMe(eID){
- myFloater=new makeLayerObj(eID)
- myFloater.css.visibility="hidden";
- }
|