var memberBubble = document.getElementById("memberBubble");
var memberBubbleContent = document.getElementById("memberBubbleContent");

var overMemberLink = false;
var overMemberBubble = false;

var loadingImg = new Image();
loadingImg.src = "/images/loading.gif";

function ShowMemberBubble(memberID, elem)
{
	overMemberLink = true;

	memberBubble.style.visibility = "visible";

	var newHtml = "";

	newHtml += "<div align=\"center\">";
	newHtml += "<img src=\"" + loadingImg.src + "\" width=\"16\" height=\"16\" alt=\"Loading...\" align=\"absmiddle\" />";
	newHtml += "&nbsp;<b>Loading Profile ...</b>";
	newHtml += "</div>";

	memberBubbleContent.innerHTML = newHtml;

	memberBubble.style.left = ((findPosX(elem) + elem.offsetWidth) - (memberBubble.offsetWidth * 1.5) + 13) + "px";
	memberBubble.style.top  = (findPosY(elem) + elem.offsetHeight + 3) + "px";
	
	getContent("/messageboard/getProfileBubble.aspx?id=" + memberID);
}

function OffMemberBubbleLink()
{
	overMemberLink = false;
	CloseBubbleIfNeeded();
}

function OnMemberBubble()
{
	overMemberBubble = true;
	CloseBubbleIfNeeded();
}

function OffMemberBubble()
{
	overMemberBubble = false;
	CloseBubbleIfNeeded();
}

function CloseBubbleIfNeeded()
{
	if (!overMemberLink && !overMemberBubble)
	{
		setTimeout("CloseBubble()", 500);
	}
}

function CloseBubble()
{
	if (!overMemberLink && !overMemberBubble)
	{
		memberBubble.style.visibility = "hidden";
	}
}

function contentReady(content)
{
	memberBubbleContent.innerHTML = content;
}

//--------------------------------------------------
// Enforces the max characters in a form field.  For
// use with multiline textboxes that do not have a
// useful maxlength property
//
function jsMaxLength(elemID, keyEvent, maxLength)
{
	if (document.getElementById(elemID).value.length >= maxLength)
	{
		var keyNumber;
		var keyChar;

		if (window.event)
		{
			keyNumber = keyEvent.keyCode;
		}
		else if (keyEvent.which)
		{
			keyNumber = keyEvent.which;
		}

		keyChar = String.fromCharCode(keyNumber);

		// -- In case they pasted in or something, trunc the input to the max length
		document.getElementById(elemID).value = document.getElementById(elemID).value.substring(0, maxLength);

		if (keyNumber >= 32 && keyNumber <= 126)
		{
			alert("Input is limited to " + maxLength + " characters, you have reached the limit.");
			return false;
		}
	}

	return true;
}

function GetCities() {
    var searchText = Get("InputCitySearchName").value;
    if (searchText == null || searchText.length <= 0) return;
    
    GetAjaxContent("/ajax/citytextsearch.ashx?q=" + searchText, ShowCitiesResult);
}

function ShowCitiesResult(content) { 
    if (content == "ERROR")
        content = "Your request could not be processed at this time.";
    else if (content == "NOMATCH")
        content = "No matches were found for this city name.  When searching, enter the full or partial name of the city you are looking for.";
    
    var input = Get("InputCitySearchName");
    
    var sr = Get("DivCityBoardResults");
    
    if (sr == null || sr == undefined) { 
        sr = document.createElement("div");
    
        sr.id = "DivCityBoardResults";
        sr.style.position = "absolute";
        sr.style.zIndex = "100";
        sr.style.backgroundColor = "#FFFFFF";
        sr.style.border = "2px solid #252038";
        sr.style.padding = "6px";
        sr.style.width = "250px";
        
        Get("EntityDropbox").appendChild(sr);
    }

    sr.style.left = (findPosX(input) - 100) + "px";
    sr.style.top = (findPosY(input) + input.offsetHeight) + "px";
    sr.innerHTML = "<div style=\"position: relative; float: right; font-size: 10px; font-weight: bold;\"><a id=\"ACloseCityTextSearch\" href=\"#\" style=\"text-decoration: none;\">Close <img src=\"/images/closemessage.gif\" width=\"10\" height=\"10\" align=\"absmiddle\" alt=\"Close Message\" border=\"0\" /></a></div>" + 
                   "<strong style=\"display: block; margin-bottom: 8px;\">Search Results</strong>" + 
                   "<div style=\"height: 100px; overflow: auto;\">" + 
                   content + 
                   "</div>";
    
    Get("ACloseCityTextSearch").onclick = function() { Get("EntityDropbox").removeChild(sr); sr = null; return false; };
    input = null;
}

function UncollapseByName(name) { 
    var elems = document.getElementsByName(name);
    
    for (var e = 0, elem; elem = elems[e]; e++) 
        elem.style.display = document.all ? "block" : "table-row";
}