var tmpNodeList = document.getElementById("afToolBarCellSearch").childNodes;


var searchLink = document.getElementById(tmpNodeList[0].id);
var searchElement = document.getElementById("dropSearchForm");
var advancedSearchLink = document.getElementById("searchAdvancedSearch");


// Disable search link (href), update url for advanced search
advancedSearchLink.href = searchLink.href
searchLink.href = "javascript:void(0)";


// Listeners
advancedSearchLink.parentNode.onmouseover = advancedLinkEffectOn;
advancedSearchLink.parentNode.onmouseout = advancedLinkEffectOff;
searchLink.onclick = searchShowHide;
document.onclick = mouseclick;

function advancedLinkEffectOn()
{
	advancedSearchLink.parentNode.className = "searchAdvancedSearchOn";
	advancedSearchLink.style.color = "#FFFFFF";
}
function advancedLinkEffectOff()
{
	advancedSearchLink.parentNode.className = "searchAdvancedSearchOff";
	advancedSearchLink.style.color = "#333333";
}

function searchShowHide()
{
	if (searchElement.style.visibility == "visible")
	{
		searchElement.style.visibility = "hidden";	
	}
	else
	{
		var searchLinkCoord = getPageCoords(searchLink);

		searchElement.style.top = (searchLinkCoord["t"] + (searchLinkCoord["b"] - searchLinkCoord["t"])) + 2;
		searchElement.style.left = (searchLinkCoord["r"] - searchElement.offsetWidth) + 19;
		searchElement.style.visibility = "visible";
	}
}

function mouseclick(e)
{
	if (searchElement.style.visibility == "visible")
	{
		var mCoords = getMouseCoords(e); // Capture Mouse Coordinates
		var eCoords = getPageCoords(searchElement); // Capture Element Coordinates
		var lCoords = getPageCoords(searchLink); // Capture Link Coordinates
	
		if ((mCoords["y"] > eCoords["t"]) & (mCoords["y"] < eCoords["b"]) & (mCoords["x"] > eCoords["l"]) & (mCoords["x"] < eCoords["r"])) {}
		else
		{
			if ((mCoords["y"] > lCoords["t"]) & (mCoords["y"] < lCoords["b"]) & (mCoords["x"] > lCoords["l"]) & (mCoords["x"] < lCoords["r"])) {}
			else
				searchElement.style.visibility = (searchElement.style.visibility == "visible") ? "hidden" : "visible";
		}
	}
}

function getPageCoords (element) {
	var coords = { t: 0, r: 0, b:0, l:0};
	var eCurrent = element;
	while (element) {
		coords.l += element.offsetLeft;
		coords.t += element.offsetTop;
		element = element.offsetParent;
	}	
	coords.r = eval(coords.l)+eCurrent.offsetWidth;
	coords.b = eval(coords.t)+eCurrent.offsetHeight;	
	return coords;
}

function getMouseCoords (e)
{
	var IE = document.all?true:false;
	var tempCoords = { x: 0, y: 0};
	
	if (!IE) document.captureEvents(Event.MOUSEMOVE)
	
	if (IE)
	{
		tempCoords.x = eval(event.clientX + document.body.scrollLeft) - 2;
		tempCoords.y = eval(event.clientY + document.body.scrollTop) - 2;
	}
	else
	{
		tempCoords.x = eval(e.pageX + document.body.scrollLeft);
		tempCoords.y = eval(e.pageY + document.body.scrollTop);
	}
	return tempCoords;
}