bExplorer4 = (navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.appVersion) == "4");
bExplorer5 = (navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.appVersion) >= "5");
isDOM = document.getElementById //DOM1 browser (MSIE 5+, Netscape 6, Opera 5+)
bNetscape5 = isDOM && navigator.appName=="Netscape" //Mozilla или Netscape 6.*
bOpera5 = isDOM && navigator.appName=="Opera" //Opera 5+
bdivMenuTop = 0;


function CheckUIElements(){
	var yMenuFrom, yMenuTo, yOffset, timeoutNextCheck;
	
	if(bExplorer4){
		yMenuFrom   = parseInt(divMenu.style.top, 10);
		yMenuTo     = document.body.scrollTop - 450;
		if(document.body.scrollHeight - document.body.clientHeight == document.body.scrollTop){
			//конец страницы
			yMenuTo = document.body.scrollTop - 650;
		}
	}
	if(bLevel1){
		yMenuFrom   = bdivMenuTop;
		yMenuTo     = top.pageYOffset - 450;
		if(document.height - innerHeight == pageYOffset){
			//конец страницы
			yMenuTo = top.pageYOffset - 650;
		}
		//alert(bdivMenuTop);
	}

	timeoutNextCheck = 500;
	
	if(Math.abs((yMenuTo + 50)) < 6){
		setTimeout ('CheckUIElements()', timeoutNextCheck);
		return;
	}
	
	if(yMenuFrom != yMenuTo){
		yOffset = Math.ceil(Math.abs(yMenuTo - yMenuFrom)/20);
	    if(yMenuTo < yMenuFrom){
			yOffset = -yOffset;
		}
	    if(bExplorer4){
			divMenu.style.top = parseInt(divMenu.style.top, 10) + yOffset;
		}
		if(bLevel1){
			bdivMenuTop = parseInt(bdivMenuTop + yOffset);
			document.getElementById('divMenu').style.top = bdivMenuTop;
		}
		timeoutNextCheck = 10;
	}
	setTimeout ('CheckUIElements()', timeoutNextCheck);
}


function OnLoad(){
	var y;
// Check if we're dealing with a DOM 1 compliant browser.
  	bLevel1 = false;
	if(bNetscape5){
		bLevel1 = bNetscape5;
	}
	if(bExplorer5){
		bLevel1 = bExplorer5;
	}
	if(bOpera5){
		bLevel1 = bOpera5;
	}
// we're not gonna be loaded in frames
	if(top.frames.length){
		top.location.href = self.location.href; 
	}

// setting initial UI elements positions
	if(bExplorer4){
		divMenu.style.top = document.body.scrollTop - 450;
		divMenu.style.visibility = "visible";
	//alert(document.body.scrollHeight);//3026
	//alert(document.body.scrollTop);//0 - 2450  2350
	//alert(document.body.clientHeight);//576
	//alert(document.body.scrollHeight - document.body.clientHeight - document.body.scrollTop);
	if((document.body.scrollHeight - document.body.clientHeight - document.body.scrollTop) > 100 ){
		//конец страницы
		divMenu.style.top = document.body.scrollTop - 650;
		divMenu.style.visibility = "visible";
	}
	}
	if(bLevel1){
		document.getElementById('divMenu').style.top = top.pageYOffset - 450;
		bdivMenuTop = top.pageYOffset - 450;
		document.getElementById('divMenu').style.visibility = "visible";
	//alert(document.height);//2899
	//alert(pageYOffset);//0 - 2318
	//alert(innerHeight);//581
	//alert(bdivMenuTop);
	if(document.height - innerHeight == pageYOffset){
		//конец страницы
		document.getElementById('divMenu').style.top = top.pageYOffset - 650;
		bdivMenuTop = top.pageYOffset - 650;
		document.getElementById('divMenu').style.visibility = "visible";
	}
	}	          

  	// initializing UI update timer
	CheckUIElements();
	return;
}