function OpenTickerMenu(sObjectName, Header){
	//document.all(sObjectName).style.display = "";
	PrepareTickerMenu(sObjectName, Header);
	ToggleMenu(sObjectName, false, true);
}
///////////////////////////////////////////////////////////////////////////////////////////
function PrepareTickerMenu(sObjectName, Header){
//	if(Header.tagName != "TD")
//		Header = Header.parentNode;

	var arCoordinates = GetCoordinates(Header); 
	var Menu = document.getElementById(sObjectName);
	if(Menu.parentNode.tagName != "BODY"){
		//document.body.insertBefore(Menu, document.body.firstChild);
	}
	//Menu.style.border = "solid 1px red";
	Menu.style.height = "1px";
	Menu.style.width = (Header.offsetWidth + Header.nextSibling.offsetWidth - 1) +"px";
	Menu.style.top = (arCoordinates[1] + parseInt(Header.style.borderTopWidth) - 2) + "px";
	Menu.style.left = arCoordinates[0] + "px";
	//__Debug.innerHTML = arCoordinates[0] +" x"+ arCoordinates[1] +" ("+ Menu.style.pixelLeft +" x "+ Menu.style.pixelTop +")<br/>"+ __Debug.innerHTML;

	var MenuItems = document.getElementById(sObjectName +"_sub").firstChild;
	var SelectedText = document.getElementById(sObjectName + "_SelectedText");
	var sSelectedText = SelectedText.innerText.toLowerCase();
	var Rows = MenuItems.rows;
	var nRowsCount = Rows.length;
	for(var i = 0; i < nRowsCount; i++){
		Rows[i].style.display = (Rows[i].cells[0].innerText.toLowerCase() == sSelectedText) ? "none" : "";
	}
}
///////////////////////////////////////////////////////////////////////////////////////////
function PrepareMainMenu(sObjectName, Header, pEvtObj){
	if(event.srcElement.tagName != "DIV"){
		pEvtObj.cancelBubble=true;
		return false;
	}
	var arCoordinates = GetCoordinates(Header); 
	var Menu = document.getElementById(sObjectName);
	if(Menu.parentNode.tagName != "BODY"){
		//document.body.insertBefore(Menu, document.body.firstChild);
	}
	Menu.style.height = "1px";
	//alert(parseInt(Header.style.borderLeftWidth));
	var nLeftBorderWidth = parseInt(Header.style.borderLeftWidth);
	Menu.style.width = (parseInt(Header.style.width) + 1) +"px";
	Menu.style.top = (arCoordinates[1] + Header.offsetHeight) + "px";
	Menu.style.left = (arCoordinates[0] + nLeftBorderWidth) + "px";
	
	return true;
}
///////////////////////////////////////////////////////////////////////////////////////////
function OnHeaderMouseOut(Header, pEvtObj){
	var SrcElement = pEvtObj.srcElement;
//	if(SrcElement.tagName != "TD")
//		return;
	var Menu = document.getElementById(Header.id.replace("_td", ""));
	var arHeaderCoordinates = GetCoordinates(SrcElement, true);
	var nPointerY = arHeaderCoordinates[1] + pEvtObj.offsetY;
	var nPointerX = pEvtObj.x;
	
	if(!IsPointerOnMenu(Menu, pEvtObj.x, nPointerY) && !IsPointerOnElement(Header, nPointerX, nPointerY)){
		///WriteLineToDebugLayer("Hiding "+ SrcElement.tagName);
		HideMenu(Menu);
	}
}
///////////////////////////////////////////////////////////////////////////////////////////
function IsPointerOnElement(Element, nPointerX, nPointerY){
	var arCoordinates = GetCoordinates(Element, true);
	return !(
		(
			(nPointerX <= arCoordinates[0]) || (nPointerX >= (arCoordinates[0] + Element.offsetWidth))
		)
		||
		(
			(nPointerY < arCoordinates[1]) || (nPointerY > (arCoordinates[1] + Element.offsetHeight))
		)
	);
}
///////////////////////////////////////////////////////////////////////////////////////////
function IsPointerOnOrBelowElement(Element, nPointerX, nPointerY){
	var arCoordinates = GetCoordinates(Element, true);
	return !(
		(
			(nPointerX <= arCoordinates[0]) || (nPointerX >= (arCoordinates[0] + Element.offsetWidth))
		)
		||
		(
			(nPointerY < arCoordinates[1])
		)
	);
}
///////////////////////////////////////////////////////////////////////////////////////////
function IsPointerOnMenu(Menu, nPointerX, nPointerY){
	var nMenuLeft = parseInt(Menu.style.left);
	var nMenuTop = parseInt(Menu.style.top) - 1;
	var nMenuWidth = parseInt(Menu.style.width);
	var nMenuHeight = parseInt(Menu.style.height);
	return !(
		(
			(nPointerX <= nMenuLeft) || (nPointerX >= (nMenuLeft + nMenuWidth))
		)
		||
		(
			(nPointerY < nMenuTop) || (nPointerY > (nMenuTop + nMenuHeight))
		)
	);
}
///////////////////////////////////////////////////////////////////////////////////////////
function HideMenu(Menu){
	Menu.style.visibility = "hidden";
	Menu.style.height = "1px";
	document.body.detachEvent("onclick", OnBodyClick);
	document.body.detachEvent("onmouseover", OnBodyMouseOver);
	
	window._CurrentOpenMenu = null;
	window._CurrentOpenMenuHeader = null;
	
	ShowHideBanner(true, "");
	
	if(window._arMenuTimers[Menu.id] != 0){
		//__Debug.innerHTML = "Timer Cancelled ("+ sObjectName +") ["+ window._arMenuTimers[sObjectName] +"]<br/>" + __Debug.innerHTML;
		window.clearInterval(window._arMenuTimers[Menu.id]);
		window._arMenuTimers[Menu.id] = 0;
	}
}
///////////////////////////////////////////////////////////////////////////////////////////
function OnMenuClick(Menu, pEvtObj){
	HideMenu(Menu);
	pEvtObj.cancelBubble = true;
}
///////////////////////////////////////////////////////////////////////////////////////////
function OnBodyMouseOver(pEvtObj){
	if(window._CurrentOpenMenu != null)
		CheckMousePositionOnCurrentOpenMenu(pEvtObj);
}
///////////////////////////////////////////////////////////////////////////////////////////
function OnBodyClick(pEvtObj){
	if(window._CurrentOpenMenu != null)
		CheckMousePositionOnCurrentOpenMenu(pEvtObj);
}
///////////////////////////////////////////////////////////////////////////////////////////
function CheckMousePositionOnCurrentOpenMenu(pEvtObj){
	var SrcElement = pEvtObj.srcElement;
	var arCoordinates = GetCoordinates(SrcElement, true);
	var nPointerY = arCoordinates[1] + pEvtObj.offsetY;
	//(SrcElement.uniqueID != window._CurrentOpenMenuHeader.uniqueID)
	if(!IsPointerOnMenu(window._CurrentOpenMenu, pEvtObj.x, nPointerY) && !IsPointerOnElement(window._CurrentOpenMenuHeader, pEvtObj.x, nPointerY)){
		HideMenu(window._CurrentOpenMenu);
	}
}
///////////////////////////////////////////////////////////////////////////////////////////
window._CurrentOpenMenuHeader = null;
window._CurrentOpenMenu = null;
window._arMenuTimers = new Array();
window._arBodyHandlersAttached = new Array();
///////////////////////////////////////////////////////////////////////////////////////////
function ToggleMenu(sObjectName, bTimerStarted, bSlideUp){
	if(typeof(bSlideUp) == 'undefined')
		bSlideUp = false;
		
	var Menu = document.getElementById(sObjectName);
	var sChildName = sObjectName + '_sub';
	var oChild = document.getElementById(sChildName);
	var sTDName = sObjectName + '_td';
	var oTD = document.getElementById(sTDName);
	
	if(!bTimerStarted){
		if(window._CurrentOpenMenu != null){
			HideMenu(_CurrentOpenMenu);
		}
		window._CurrentOpenMenu = Menu;
		window._CurrentOpenMenuHeader = oTD;
		
		Menu.style.visibility = "visible";
		ShowHideBanner(false, sObjectName);
		
		document.body.attachEvent("onclick", OnBodyClick);
		document.body.attachEvent("onmouseover", OnBodyClick);
		
		//if(Menu.parentNode.tagName != "BODY")
			//document.body.insertBefore(Menu, document.body.firstChild);
	}

	var nHeight = parseInt(Menu.style.height);
	var nNewHeight = nHeight + 10;
	var nChildHeight = parseInt(oChild.offsetHeight);

	if(nNewHeight >= nChildHeight) {
		if(nHeight < nChildHeight){
			nNewHeight = nChildHeight;
			oChild.style.top = nNewHeight - nChildHeight + 'px';
			Menu.style.height = nNewHeight + 'px';
			if(bSlideUp){
				Menu.style.top = (parseInt(Menu.style.top) - (nNewHeight - nHeight)) + "px";
			}
		}
		if(window._arMenuTimers[sObjectName] != 0){
			window.clearInterval(window._arMenuTimers[sObjectName]);
			window._arMenuTimers[sObjectName] = 0;
		}
		return false;
	}

	oChild.style.top = nNewHeight - nChildHeight + 'px';
	Menu.style.height = nNewHeight + 'px';
	if(bSlideUp)
		Menu.style.top = (parseInt(Menu.style.top) - (nNewHeight - nHeight)) + "px";
	
	if(!bTimerStarted && (typeof(window._arMenuTimers[sObjectName]) == 'undefined' || window._arMenuTimers[sObjectName] == 0)){
		//__Debug.innerHTML = "Timer Started ("+ sObjectName +"), Old Timer Value ("+ window._arMenuTimers[sObjectName] +")<br/>" + __Debug.innerHTML;
		window._arMenuTimers[sObjectName] = window.setInterval(new Function('ToggleMenu("' + sObjectName +'", true, '+ bSlideUp +')'), 1);
	}
}
//////////////////////////////////////////////////////////////////////////////////////////
function ShowBorders(oCurrent, oSelected){
	oCurrent.style.borderLeft = "#cccccc 1px solid";
	oCurrent.style.borderRight = "#cccccc 1px solid";
	if(oCurrent != oSelected && oSelected != null){
		oSelected.style.borderLeft = "#ffffff 1px solid";
		oSelected.style.borderRight = "#ffffff 1px solid";
	}
}
//////////////////////////////////////////////////////////////////////////////////////////
function HideBorders(oCurrent, oSelected){
	if(oCurrent != oSelected){
	    oCurrent.style.borderLeft = "#ffffff 1px solid";
	    oCurrent.style.borderRight = "#ffffff 1px solid";
	}
   if(oSelected){
        oSelected.style.borderLeft = "#cccccc 1px solid";
        oSelected.style.borderRight = "#cccccc 1px solid";
    }
}
//////////////////////////////////////////////////////////////////////////////////////////
function ChangeArrow(sObjectName, sState){
	var oImg = document.getElementById(sObjectName);
	oImg.src = (sState == "Normal") ? "Images/TickerArrow.gif" : "Images/TickerArrow2.gif";
}
//////////////////////////////////////////////////////////////////////////////////////////
function SldPositionContent(sSliderName, sDirection){
	document.getElementById(sSliderName).style.left = 0;
	//var oSlider = document.getElementById(sSliderName);
	//var oContainer = document.getElementById(sSliderName +"Container");
	//var nContainerWidth = oContainer.clientWidth;
	//var nSliderWidth = oSlider.clientWidth;
	//oSlider.style.width = oSlider.clientWidth;
	//oSlider.style.left = (sDirection == "left") ? nContainerWidth : -nSliderWidth;
}
//////////////////////////////////////////////////////////////////////////////////////////
function SetSliderWidth(sSliderName){
	oSlider = document.getElementById(sSliderName);
	/* oSlider.style.width = oSlider.style.offsetWidth + "px"; */
}
//////////////////////////////////////////////////////////////////////////////////////////
window._arSliderStopFlags = new Array();
//////////////////////////////////////////////////////////////////////////////////////////
function SldSlideContent(nSpeed, sSliderName, sDirection, bTimerStarted){
	var oContainer = document.getElementById(sSliderName + "Container");
	var oSlider = document.getElementById(sSliderName);
	if(typeof(oSlider.nCurrentTotalWidth) != 'undefined'){
		
		if((typeof(oContainer.IsMouseOver) == 'undefined' || oContainer.IsMouseOver != 1) && (window._arSliderStopFlags[sSliderName] == false || typeof(window._arSliderStopFlags[sSliderName]) == 'undefined')){
			var bIsIE = (typeof(document.all) != "undefined");
			
			//oSlider.style.width = oSlider.clientWidth;
			var nSliderWidth = oSlider.nCurrentTotalWidth;
			//var nSliderWidth = oSlider.style.width;
			var nBreak;
			var nResetPoint;
			var nLeft = parseInt(oSlider.style.left);
			var nContainerWidth = oContainer.clientWidth;
			if(sDirection == "left"){
				nLeft = nLeft - 2;
				//nBreak = -nSliderWidth;
				//nResetPoint = nContainerWidth;
			}else{
				nLeft = nLeft + 2;
				//nBreak = nContainerWidth; 	
				//nResetPoint = -nSliderWidth;
			} 
			
			if(bIsIE){
				oSlider.style.pixelLeft = nLeft;
			}else{
				oSlider.style.left = nLeft + 'px';
			}
			
			var lastVisibleChild = oSlider.lastVisibleChild;
			//WriteLineToDebugLayer((lastVisibleChild.offsetLeft) +" < "+ (nLeft + nContainerWidth));
			if((lastVisibleChild.offsetLeft) < (Math.abs(nLeft) + nContainerWidth)){
				oSlider.lastVisibleChild = lastVisibleChild.nextSibling;
				oSlider.lastVisibleChild.style.display = "";
				//WriteLineToDebugLayer("Show child ("+ oSlider.lastVisibleChild.innerText +", "+ oSlider.lastVisibleChild.offsetLeft +")");
			}

			//oContainer.nextSibling.nextSibling.innerText = oSlider.childNodes[0].offsetWidth +" ("+ nLeft +")";
			if(-nLeft > (oSlider.firstChild.offsetWidth + 20)){
				//var a = oSlider.childNodes[0].removeNode(true);
				//alert(oSlider.childNodes[0].outerHTML);
				oSlider.style.pixelLeft += oSlider.firstChild.offsetWidth + 50;
				oSlider.firstChild.style.display = "none";
				oSlider.appendChild(oSlider.firstChild);
				//WriteLineToDebugLayer("Pop child ("+ oSlider.lastChild.innerText +")");
			}
		}
	}
	
	if(!bTimerStarted){
		window.setInterval(new Function('SldSlideContent(' + nSpeed +', "'+ sSliderName +'", "' + sDirection + '" , true)'), nSpeed);
	}
}
// G E T   C O O R D I N A T E S
function GetCoordinates(oElement){
	//var arCoordinates = new Array(0, 0);
	var X, Y, oParent;
	X = oElement.offsetLeft;
	Y = oElement.offsetTop;
	oParent = oElement;
	while(oParent = oParent.offsetParent){
		if(oParent.style.position == 'absolute' || oParent.style.position == 'relative') break;
		X += oParent.offsetLeft;
		Y += oParent.offsetTop;
	}
	return new Array(X, Y);
}
// PRELOAD IMAGES
function PreloadImages(){
	if (document.images) {
	  preload_image_object = new Image();
	  image_url = new Array();
	  image_url[0] = "Images/IconUp.gif";
	  image_url[1] = "Images/IconDown.gif";
	  image_url[2] = "Images/IconStable.gif";
	  image_url[3] = "Images/SeparatorBInfo.gif";
	  image_url[4] = "Images/SeparatorFInfo.gif";

	   var i = 0;
	   for(i = 0; i <= 4; i++) 
		 preload_image_object.src = image_url[i];
	}  
}

// CLEAR SEARCH FIELD
function ClearSearchField(sText){
	var oSearch = document.getElementById("search");
	if(oSearch.value == sText)
		oSearch.value = "";
}
// HIDE BANNERS
var ChangeBannerTimerID = "no";
function ShowHideBanner(bVisible, sMenuName){
	var Menu = document.getElementById(sMenuName);
	if(document.getElementById("CobosFlashContent")){
	    var Object = document.getElementById("CobosFlashContent");
	    var Name = "CobosFlashContentStatic";
	}else if(document.getElementById("FundsFlashContent")){
	    var Object = document.getElementById("FundsFlashContent");
	    var Name = "FundsFlashContentStatic";
	}else{
	    Object = null;
	}
	
	if(ChangeBannerTimerID != "no"){
	    if(document.getElementById("CobosFlashContent").style.display != "none"){
	        var Object = document.getElementById("CobosFlashContent");
	        var Name = "CobosFlashContentStatic";
	    }else{
	        var Object = document.getElementById("FundsFlashContent");
	        var Name = "FundsFlashContentStatic";
	    }
	}
	
	if(Object){
	    if(Object.style.display == ""){
		    var oBanner = Object;
		    var oBannerStatic = document.getElementById(Name);
		}
		if(!bVisible){
			var bApplyCheat = TestBannerVisibility(Menu, oBanner);
	        if(ChangeBannerTimerID != "no"){ 
	            window.clearInterval(ChangeBannerTimerID);
	            ChangeBannerTimerID = null;
	        }
	        if(bApplyCheat)
	            oBannerStatic.style.display = "";
		}else{
	        if(ChangeBannerTimerID == null && ChangeBannerTimerID != "no")
                ChangeBannerTimerID = window.setInterval('ChangeBanner()', 20000);
	        bApplyCheat = false;
	        if(oBanner)
                oBanner.style.display = "";
            else
                Object.style.display = "";
		    document.getElementById("FundsFlashContentStatic").style.display = "none";
		    document.getElementById("CobosFlashContentStatic").style.display = "none";
		}
	}
//	if(document.getElementById("CobosFlashLink")){
//		var oBanner = document.getElementById("CobosFlashLink");
//		if(!bVisible)
//			TestBannerVisibility(Menu, oBanner);
//		else
//			oBanner.style.visibility = "visible";
//	}
}

function TestBannerVisibility(Menu, oBanner){
	var arMenuBottomLeft = new Array(Menu.offsetLeft, Menu.offsetTop + Menu.firstChild.offsetHeight);
	var arMenuBottomRight = new Array(Menu.offsetLeft + Menu.offsetWidth, Menu.offsetTop + Menu.firstChild.offsetHeight);
	
	if(IsPointerOnOrBelowElement(oBanner, arMenuBottomLeft[0], arMenuBottomLeft[1]) || IsPointerOnOrBelowElement(oBanner, arMenuBottomRight[0], arMenuBottomRight[1])){
		oBanner.style.display = "none";
		return true;
	}
}
