// init props
var ms_top;
var ms_bottom;
var menuHeight;
var addressHeight;
var ms_menu;
var address;
var page;
var inHeight;
var pgYOffset;
var mY;
var aY;
var step;

function moveElementTop(element, topBound){
	if(pgYOffset>topBound){
		// move it
		element.style.position='absolute';
		//element.style.top = pgYOffset+'px';
		mY = pgYOffset;
	} else {
		// original pos
		element.style.position='absolute';
		//element.style.top = topBound+'px';
		mY = topBound;
	}
}

function moveElementBottom(element, bottomBound){
	
	if (bottomBound > inHeight + 128){ //added 10/07/2007
	
	if(pgYOffset+inHeight<bottomBound){
		var myTop = pgYOffset+inHeight-addressHeight;
		
		if(myTop<ms_top+menuHeight){
			myTop = ms_menu.offsetTop+ms_menu.offsetHeight;	
		}
		element.style.position='absolute';
		//element.style.top = myTop+'px';
		aY = myTop;
	} else { 
		element.style.position='absolute';
		//element.style.top = bottomBound-addressHeight+'px';
		aY = bottomBound-addressHeight;
	}
	
	} //added 10/07/2007
	
}
function pollMoveCheck(){

	if (self.innerHeight){ // all except Explorer
		inHeight = self.innerHeight-10;
	} else if (document.documentElement && document.documentElement.clientHeight){
		// Explorer 6 Strict Mode
		inHeight = document.documentElement.clientHeight-10;
	} else if (document.body){ // other Explorers
		inHeight = document.body.clientHeight-10;
	}
	
	if (self.pageYOffset){ // all except Explorer
		pgYOffset = self.pageYOffset;
	} else if (document.documentElement && document.documentElement.scrollTop){
		// Explorer 6 Strict
		pgYOffset = document.documentElement.scrollTop;
	} else if (document.body){ // all other Explorers
		pgYOffset = document.body.scrollTop;
	}
	
	
	viewBottom = inHeight + pgYOffset;
	
    moveElementTop(ms_menu, ms_top);
	
	moveElementBottom(address, ms_bottom);
	
	moveElY(ms_menu, mY);
	
	moveElY(address, aY);
}

function moveElY(el, toY){
	step = Math.max(2,Math.abs(el.offsetTop - toY)/5);
	
	if(Math.abs(el.offsetTop - toY)<step){
		el.style.top = toY+"px";
	} else {
		if(el.offsetTop	> toY){
			el.style.top = (el.offsetTop-step)+"px";
		} else {
			el.style.top = (el.offsetTop+step)+"px";
		}
	}
}

function initMenuScroll(){
	// setup props
	ms_menu = document.getElementById('menu');
	address = document.getElementById('address');
	page = document.getElementById('page');
	menuHeight = ms_menu.offsetHeight;
	addressHeight = address.offsetHeight;
	//ms_menu.style.border='#00FF00 1px solid';
	//address.style.border='#FF0000 1px solid';
	ms_top = 199;
	ms_bottom = page.offsetHeight;
	
	window.setInterval(pollMoveCheck, 5);
}