// 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=8;

var NAVWIDTH = -1;
var bw = new checkBrowser;

// 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.ns6&&bw.mac)||(bw.macie50)?true:false;
		
		if(document.getElementById(eID).offsetLeft)
		{
			if(!document.getElementById(eID).fix_left)
			{
				document.getElementById(eID).fix_left = document.getElementById(eID).offsetLeft;
				document.getElementById(eID).fix_top = document.getElementById(eID).offsetTop;
			}
		}


		
		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{
			if(bw.mac) ResizeAlign();
			else if (window.onresize) 
				window.onresize = fix_event;
			else {
				ResizeAlign();
			}
			window.onresize = fix_event;
			mySticky=new makeLayerObj(eID);
			mySticky.css.position="fixed";}

		if(!mySticky){mySticky=new makeLayerObj(eID);}
		//mySticky.css.visibility="visible";
		fix_event();	
	}
	
	function ResizeAlign()
	{
		
		fix_event();
		setTimeout('ResizeAlign();',200);
		return;
	}


// -------------------------
// emulate css 'position: fixed' in IE5+ Win
// code by aclover@1value.com
	fix_elements = new Array();
	
	
	
	function fix_event(){
		
		var height, width;
		//bw = new checkBrowser;
		
		if (document.body.offsetHeight)
		{
			height = document.body.offsetHeight; 
			width = document.body.offsetWidth;
		}
		else if (document.layers || bw.ns6) 
		{
			height = window.innerHeight;
			width = window.innerWidth;
		}

		var leftOffset = 0; 
		
		if (NAVWIDTH != -1 && width > NAVWIDTH) leftOffset = ((width - NAVWIDTH) / 2 < 0) ? 0 : (width - NAVWIDTH) / 2 + ((bw.mac)?10:0);
		
		var elem = document.getElementById('sticky');
		
		var scrollY = document.body.scrollTop; 
		var fixTop = parseInt(elem.fix_top);
		var yOffset = 0;
		
		
		if (scrollY < fixTop)
			yOffset = -scrollY + 5;
		else 
			yOffset = -fixTop + 5;
		
		if (NAVWIDTH != -1)
		{
			elem.style.left = parseInt(elem.fix_left) + leftOffset - ((bw.mac && bw.ie || bw.ns)? document.body.scrollLeft : 0);
			window.status = elem.style.left; //"elem.fix_left::" + parseInt(elem.fix_left) + "  leftOffset::" + leftOffset + "  document.body.scrollLeft::" + document.body.scrollLeft;
			//alert('here');
			
		}
		
		elem.style.top =  yOffset + parseInt(elem.fix_top) + ((bw.mac && bw.ie || bw.ns) ? 0 : document.body.scrollTop);
		
		//window.status = elem.fix_left;
		
	}

	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 = parseInt(document.all[i].currentStyle.left);
				//window.status = "ac::" + document.all[i].fix_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){
			
			var height, width;
			
			if (document.body.offsetHeight)
			{
				height = document.body.offsetHeight; 
				width = document.body.offsetWidth;
			}
			else if (document.layers || bw.ns6) 
			{
				height = window.innerHeight;
				width = window.innerWidth;
			}
			
			var elem = document.getElementById('sticky');
			
			var scrollY = document.body.scrollTop; 
			var fixTop = parseInt(elem.fix_top);
			var yOffset = 0;
			
			
			if (scrollY < fixTop)
				yOffset = -scrollY + 5;
			else 
				yOffset = -fixTop + 5;
			
			var leftOffset = 0; 
			if (NAVWIDTH != -1 && width > NAVWIDTH) leftOffset = ((width - NAVWIDTH) / 2 < 0) ? 0 : (width - NAVWIDTH) / 2 + ((bw.mac)?10:0);
			
			if (NAVWIDTH != -1)
			{
				elem.style.posLeft = parseInt(elem.fix_left) + leftOffset - ((bw.mac && bw.ie)? document.body.scrollLeft : 0);
				//window.status = "NAVWIDTH::" + NAVWIDTH + "   elem.fix_left::" + parseInt(elem.fix_left) + "  leftOffset::" + leftOffset + "  document.body.scrollLeft::" + document.body.scrollLeft;

				
			}
			
			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;
				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";
	}