
function ScrollUp(Container, nAmount){
	BeginScroll(Container, -nAmount);
}

function ScrollDown(Container, nAmount){
	BeginScroll(Container, nAmount);
}

function BeginScroll(Container, nRemainingAmount){
	var nAmount = (nRemainingAmount > 0) ? 1 : -1;
	Container.scrollTop += nAmount;
	nRemainingAmount -= nAmount;
	if(nRemainingAmount != 0)
		window.setTimeout(new Function("BeginScroll(document.getElementById('"+ Container.id +"'), "+ nRemainingAmount+")"), 10);
}

function _GetBlockHeaderContainer(ChildElement){
	var BlockHeaderContainer = ChildElement.parentNode;
	while(BlockHeaderContainer.id != "_BlockHeaderContainer")
		BlockHeaderContainer = BlockHeaderContainer.parentNode;
	return BlockHeaderContainer;
}

function _GetToogleVisibilityImage(ParentElement){
	var arToogleVisibilityImage = ParentElement.getElementsByTagName("IMG");
	var ToogleVisibilityImage = null;
	for(var i = 0; i < arToogleVisibilityImage.length; i++){
		if(arToogleVisibilityImage[i].id == "_ToogleVisibilityImage"){
			ToogleVisibilityImage = arToogleVisibilityImage[i];
		}
	}
	return ToogleVisibilityImage;
}

function ToggleContentVisibility(ToggleVisibilityImage){	
	var BlockHeaderContainer = _GetBlockHeaderContainer(ToggleVisibilityImage);
	var BlockContentContainer = BlockHeaderContainer.nextSibling.firstChild;
	var ToogleVisibilityImage = _GetToogleVisibilityImage(BlockHeaderContainer);
	
	var SlideOpen = (BlockContentContainer.getAttribute("SlideOpen"));
	if(SlideOpen){
		var ItemsContainerDiv = BlockContentContainer.getElementsByTagName("DIV")[0];
		if(parseInt(ItemsContainerDiv.style.height) > 0){
			SlideCloseBlock(ItemsContainerDiv);
			_UpdateToggleVisibilityImage(ToogleVisibilityImage, false);
		}else{
			SlideOpenBlock(ItemsContainerDiv, parseInt(BlockContentContainer.getAttribute("SlideOpenContentHeight")));
			_UpdateToggleVisibilityImage(ToogleVisibilityImage, true);
			if(BlockHeaderContainer.getAttribute("VisibilityRelatedBlocks")){
				var arVisibilityRelatedBlocks = BlockHeaderContainer.getAttribute("VisibilityRelatedBlocks").split(",");
				for(var i = 0; i < arVisibilityRelatedBlocks.length; i++){
					var CurrentRelatedBlock = Find(arVisibilityRelatedBlocks[i]);
					SlideCloseBlock(CurrentRelatedBlock.getElementsByTagName("DIV")[0]);
				}
			}
		}
		return true;
	}else{
		if(BlockContentContainer.style.display == "none"){
			BlockContentContainer.style.display = "";
			_UpdateToggleVisibilityImage(ToogleVisibilityImage, true);
			if(typeof(BlockHeaderContainer.VisibilityRelatedBlocks) != "undefined"){
				var arVisibilityRelatedBlocks = BlockHeaderContainer.VisibilityRelatedBlocks.split(",");
				for(var i = 0; i < arVisibilityRelatedBlocks.length; i++){
					Find(arVisibilityRelatedBlocks[i]).style.display = "none";
					var RelatedBlockVisibilityImage = _GetToogleVisibilityImage(Find(arVisibilityRelatedBlocks[i]).parentNode.previousSibling);
					_UpdateToggleVisibilityImage(RelatedBlockVisibilityImage, false);
				}
			}
			
		}else{
			_UpdateToggleVisibilityImage(ToogleVisibilityImage, false);
			BlockContentContainer.style.display = "none";
		}
	}
}

function _UpdateToggleVisibilityImage(ToogleVisibilityImage, bContentVisible){
	if(bContentVisible){
		ToogleVisibilityImage.alt = ToogleVisibilityImage.getAttribute("hidealttext");
		ToogleVisibilityImage.title = ToogleVisibilityImage.getAttribute("hidealttext");
		ToogleVisibilityImage.src = ToogleVisibilityImage.getAttribute("visibledefault");
	}else{
		ToogleVisibilityImage.alt = ToogleVisibilityImage.getAttribute("showalttext");
		ToogleVisibilityImage.title = ToogleVisibilityImage.getAttribute("showalttext");
		ToogleVisibilityImage.src = ToogleVisibilityImage.getAttribute("hiddendefault");
	}
}

function MouseOverVisibilityImage(ToggleVisibilityImage){
	var BlockHeaderContainer = _GetBlockHeaderContainer(ToggleVisibilityImage);
	var BlockContentContainer = BlockHeaderContainer.nextSibling.firstChild;
	var SlideOpen = (BlockContentContainer.getAttribute("SlideOpen"));
	if(SlideOpen){
		var ItemsContainerDiv = BlockContentContainer.getElementsByTagName("DIV")[0];
		if(parseInt(ItemsContainerDiv.style.height) > 0)
			ToggleVisibilityImage.src = ToggleVisibilityImage.getAttribute("visibleover");
		else
			ToggleVisibilityImage.src = ToggleVisibilityImage.getAttribute("hiddenover");
	}else{
		if(BlockContentContainer.style.display == "none")
			ToggleVisibilityImage.src = ToggleVisibilityImage.getAttribute("hiddenover");
		else
			ToggleVisibilityImage.src = ToggleVisibilityImage.getAttribute("visibleover");
	}
}

function MouseOutVisibilityImage(ToggleVisibilityImage){
	var BlockHeaderContainer = _GetBlockHeaderContainer(ToggleVisibilityImage);
	var BlockContentContainer = BlockHeaderContainer.nextSibling.firstChild;
	var SlideOpen = (BlockContentContainer.getAttribute("SlideOpen"));
	if(SlideOpen){
		var ItemsContainerDiv = BlockContentContainer.getElementsByTagName("DIV")[0];
		if(parseInt(ItemsContainerDiv.style.height) > 0)
			ToggleVisibilityImage.src = ToggleVisibilityImage.getAttribute("visibledefault");
		else
			ToggleVisibilityImage.src = ToggleVisibilityImage.getAttribute("hiddendefault");
	}else{
		if(BlockContentContainer.style.display == "none")
			ToggleVisibilityImage.src = ToggleVisibilityImage.getAttribute("hiddendefault");
		else
			ToggleVisibilityImage.src = ToggleVisibilityImage.getAttribute("visibledefault");
	}
}


function _GetBlockContainer(oChildElement){
	while(oChildElement.parentNode.id != "_BlockContainer"){
		oChildElement = oChildElement.parentNode;
	}
	return oChildElement.parentNode;
}

function _FinishSlideCloseBlock(oDiv){
	var BlockContainer = _GetBlockContainer(oDiv);
	var ToggleVisibilityImage = _GetToogleVisibilityImage(BlockContainer);
	_UpdateToggleVisibilityImage(ToggleVisibilityImage, false);
}

function SlideOpenBlock(oDiv, nTotalHeight){
	if((parseInt(oDiv.style.height) + 12) > nTotalHeight){
		oDiv.style.height = nTotalHeight;
		return;
	}
	var nNewHeight = new Number((parseInt(oDiv.style.height) >= 0) ? parseInt(oDiv.style.height) : 0) + 12;
	oDiv.style.height = nNewHeight + "px";	
	window.setTimeout(new Function("SlideOpenBlock(document.getElementById('"+ oDiv.id +"'), "+ nTotalHeight +");"), 12);		
}

function SlideCloseBlock(oDiv){
	if(parseInt(oDiv.style.height) >= 0){
		if((parseInt(oDiv.style.height) - 12) < 0){
			oDiv.style.height = 0;
			_FinishSlideCloseBlock(oDiv);
			return;
		}
		var nNewHeight = new Number((parseInt(oDiv.style.height) >= 0) ? parseInt(oDiv.style.height) : 0) - 12;
		oDiv.style.height = nNewHeight + "px";	
		window.setTimeout(new Function("SlideCloseBlock(document.getElementById('"+ oDiv.id +"'));"), 12);
	}
}

