var Bd_IsInternetExplorer = window.navigator.userAgent.indexOf("MSIE") > 0;
		
function Bd_GetElement(id) {
	return document.getElementById(id);
}

function Bd_Goto(url) {
	window.location = url;
}

function Bd_ChangeImage(element, newSource) {
	element.src = newSource;
}

function Bd_ChangeImageById(elementId, newSource) {
	Bd_ChangeImage(Bd_GetElement(elementId), newSource);
}

function Bd_ChangeText(element, newText) {
	element.innerHtml = newText;
}

function Bd_ChangeTextById(elementId, newText) {
	Bd_ChangeText(Bd_GetElement(elementId), newText);
}

function Bd_FindPositionX(element) {
	var current = 0;
	
	if (element.offsetParent) {
		while(element.offsetParent) {
			current += element.offsetLeft;
			element = element.offsetParent;
		}
	}
	else if (element.x)
		current = element.x;
		
	return current;
}

function Bd_FindPositionXById(elementId) {
	return Bd_FindPositionX(Bd_GetElement(elementId));
}

function Bd_FindPositionY(element) {
	var current = 0;
	
	if (element.offsetParent) {
		while (element.offsetParent) {
			current += element.offsetTop;
			element = element.offsetParent;
		}
	}
	else if (element.y)
		current = element.y;
		
	return current;
}

function Bd_FindPositionYById(elementId) {
	return Bd_FindPositionY(Bd_GetElement(elementId));
}

function Bd_ClickOnFormEnter(event, elementId) {
	var src = (event.srcElement) ? event.srcElement : event.target;
	
	if (src.tagName == 'TEXTAREA')
		return true;
		
	if (event.keyCode == 13) {
		var button = Bd_GetElement(elementId);
		button.click();
		return false;
	}
	else {
		return true;
	}
}

function Bd_MenuControl(id, delay) {
	this.Id			= id;
	this.Menus		= new Array();
	this.Selected	= null;
	this.Status		= 0;	// 0 = closed, 1 = closing, 2 = open
	this.Delay		= delay;
}

Bd_MenuControl.prototype.AddMenu = function(menu) {
	var len = this.Menus.length;
	
	for (var i = 0; i < len; i++) {
		if (this.Menus[i] == menu)
			return;
	}
	
	this.Menus.length = len + 1;
	this.Menus[len] = menu;
}

Bd_MenuControl.prototype.HideAllMenus = function() {
	for (var i = 0; i < this.Menus.length; i++) {
		this.Menus[i].Hide();
	}
	
	this.Selected = null;
	this.Status = 0;
}

Bd_MenuControl.prototype.ShowMenu = function(menu) {
	if (this.Selected != menu) {
		this.HideAllMenus();
		this.Selected = menu;
	}
	
	this.Selected.Show();
	this.Status = 2;
}

Bd_MenuControl.prototype.HideMenu = function(allowDelay) {
	if (allowDelay && this.Status == 2) {
		this.Status = 1;
		setTimeout(this.Id + ".HideMenu(false)", this.Delay);
	}
	else if (this.Status == 1) {
		this.HideAllMenus();
	}
}

Bd_MenuControl.prototype.InMenu = function(childMenuId) {
	var menu = Bd_GetElement(childMenuId);
	
	if (menu) {
		var menuObject = new Bd_Menu(childMenuId);
		this.AddMenu(menuObject);
		this.ShowMenu(menuObject);
	}
	else {
		this.HideAllMenus();
	}
}

Bd_MenuControl.prototype.OutMenu = function() {
	this.HideMenu(true);
}

Bd_MenuControl.prototype.ClickMenu = function(childMenuId) {
	var menu = Bd_GetElement(childMenuId);
	
	if (menu.style.visibility == "visible") {
		menu.style.visibility = "hidden";
		menu.style.display = "none";
	}
	else {
		menu.style.visibility = "visible";
		menu.style.display = "block";
	}
}


function Bd_Menu(id) {
	this.Id = id;
	this.Container = Bd_GetElement(id);
}

Bd_Menu.prototype.Hide = function() {
	this.Container.style.visibility = "hidden";
}

Bd_Menu.prototype.Show = function() {
	this.Container.style.visibility = "visible";
}
