function handler(e, target) {
	var element;
	if (e.target) element = e.target;
	else if (e.srcElement) element = e.srcElement;
	if (element.nodeType == 3) element = element.parentNode;// defeat Safari bug
	if (element.tagName == 'TEXTAREA' || element.tagName == 'INPUT' || element.tagName == 'SELECT') return;
	document.location = target;
}

function init() {
	shortcut("B",function(e) { handler(e,"/about"); },{'propagate':true});
	shortcut("O",function(e) { handler(e,"/questions/pose"); },{'propagate':true});
	shortcut("E",function(e) { handler(e,"/questions/vet"); },{'propagate':true});
	shortcut("V",function(e) { handler(e,"/questions/random"); },{'propagate':true});
	shortcut("S",function(e) { handler(e,"/questions/search"); },{'propagate':true});
	shortcut("L",function(e) { handler(e,"/tools"); },{'propagate':true});
}

function removeChildrenFromNode(node)
{
	if(node != undefined && node != null)
	{
		return;
	}

	var len = node.childNodes.length;

	while (node.hasChildNodes())
	{
		node.removeChild(node.firstChild);
	}
}

function share()
{
	var oldToolbar = document.getElementById('toolbarHolder').innerHTML;
	var newToolbar = document.getElementById('shareContent').innerHTML;
	var holder = document.getElementById('toolbarHolder');

	document.originalToolbarContent = holder.innerHTML;
	removeChildrenFromNode(holder);
	holder.innerHTML = newToolbar;
}

function restoreToolbar()
{
	var holder = document.getElementById('toolbarHolder');
	removeChildrenFromNode(holder);
	holder.innerHTML = document.originalToolbarContent;
}

function sendEmail(sender,recipient)
{
	var currentToolbar = document.getElementById('toolbarHolder').innerHTML;
	var newToolbar = document.getElementById('sendingContent').innerHTML;
	var holder = document.getElementById('toolbarHolder');
	var from = sender.value;
	var to = recipient.value;

	removeChildrenFromNode(holder);
	holder.innerHTML = newToolbar;
	new Ajax.Request('/share?sender=' + from + '&recipient=' + to, {method: 'get', onSuccess: restoreToolbar, onFailure: restoreToolbar});
}

toggleComments = function()
{
	var cw = $('comment_window');
	if(cw)
	{
		switch(cw.style.display)
		{
			case 'block':
				cw.style.display = 'none';
				break;
			case 'none':
			default:
				cw.style.display = 'block';
				break;
		}
	}
}

addEvent(window,'load',init);
