function $(id)
{
	return document.getElementById(id);
}

function $F(id)
{
	return document.forms[0][id] ? document.forms[0][id].value : false;
}

function reloadOnChange(id)
{
	$(id).onchange = function()
	{
		setForm({'cmd' : 'render_last_view'});
	}
}

function firebugTrace(arr)
{
	if (top.console && arr != undefined)
	{
		for (i = 0, l = arr.length; i < l; i++)
		{
			top.console.log(arr[i]);
		}
	}
}

function resetSelect(id)
{
	$(id).options[0].value = '0';
	$(id).options[0].innerHTML = 'Välj...';
}

function setForm(arr)
{
	var f = document.forms[0];

	if (arr) for (var n in arr)
	{
		if (f[n])
		{
			f[n].value = arr[n];
		}
	}

	if (f.onsubmit)
	{
		f.onsubmit();
	}

	f.submit();
}

function onEnter(id, fn)
{
	$(id).onkeypress = function(event)
	{
		if ((window.event && window.event.keyCode == 13) || (event && event.keyCode == 13))
		{
			fn();
		}
	}
}

function confirmCommand(cmd)
{
	if (confirm('Är du säker?'))
	{
		setForm({ 'cmd' : cmd });
	}
}

function confirmURL(url)
{
	if (confirm("Är du säker?"))
	{
		document.location.href = url;
	}
}

function openWindowCentered(url, w, h)
{
	var top = screen.height ? ((screen.height - h) / 2) : 0;
	var left = screen.width ? ((screen.width - w) / 2) : 0;
	var params = 'resizable, scrollbars, status = false, width = ' + w + ', height = ' + h + ', top = ' + top + ', left = ' + left;
	var win = window.open(url, 'win' + url.length, params);
	
	win.focus();
}

function openCalendar(field, value)
{
	openWindowCentered(urlBuilder('date.selector.php', { field: field, value: value }), 350, 200);
}

function urlBuilder(url, params)
{
	url += '?';

	for (var n in params)
	{
		url += n + '=' + params[n] + '&';
	}

	return url;
}

function addEvent(element, event, handler)
{
	if (element.addEventListener)
	{
		element.addEventListener(event, handler, null);
	}
	else if (element.attachEvent)
	{
		element.attachEvent('on' + event, handler);
	}
	else
	{
		element.event = handler;
	}
}

function toggleVisibility(id)
{
	var e = $(id);
	e.style.display = e.style.display == 'block' ? 'none' : 'block';
}

function highlightTable()
{
	var rows, cols, tables = document.getElementsByTagName('table');

	for (var i = 0, l = tables.length; i < l; i++)
	{
		if (tables[i].className.indexOf('data-table') > 0)
		{
			rows = tables[i].getElementsByTagName('tr');

			for (var i2 = 1, l2 = rows.length; i2 < l2; i2++)
			{
				rows[i2].onmouseout = function()
				{
					this.style.backgroundColor = '#ffffff';
				}

				rows[i2].onmouseover = function()
				{
					this.style.backgroundColor = '#e0e8ff';
				}
			}
		}
	}
}

