/*
 * © 2006-2009 Martin Veverka <martin.vev@gmail.com>
 * PhotoBit.cz
 */

var keys = new Array();
var keysEnabled = false;

$(document).ready(key_init);
$(document).ready(function(){
	// TODO: Neni uplne dokonale
	$(':input').focus(function(){
		disableKeys();
	});
	$(':input').blur(function(){
		enableKeys();
	});
});

function key_init()
{
	document.onkeydown=key_down;

	if (document.getElementsByTagName)
	{
		var a_links=document.getElementsByTagName('link');
		for (var i=0;i<a_links.length;i++)
		{
			if (typeof a_links[i]['rel'] != 'undefined' && typeof a_links[i]['href'] != 'undefined')
			{
				keys[a_links[i]['rel']] = a_links[i]['href'];
			}
		}
	}
	enableKeys();
}

function disableKeys()
{
	keysEnabled = false;
}

function enableKeys()
{
	keysEnabled = true;
}

function key_down(ev)
{
	var e = ev || window.event;
	if (keysEnabled)
	{
		if (e.ctrlKey && e.keyCode == 36)
		{
			key_go(e, 'home');
		}
		else
		if (e.keyCode == 37)
		{
			key_go(e, 'previous');
		}
		else
		if (e.ctrlKey && e.keyCode == 38)
		{
			key_go(e, 'up');
		}
		else
		if (e.keyCode == 39)
		{
			key_go(e, 'next');
		}
	}
}

function key_go(e, rel)
{
	if (typeof keys[rel] != 'undefined')
	{
		if (keys[rel] != false)
		{
			window.location.href = keys[rel];
			keys[rel] = false;
		}
		if (e.preventDefault)
		{
			e.preventDefault();
		}
		else
		{
			e.returnValue = false;
		}
	}
}

function link_set(rel,href){
	if(document.getElementsByTagName){
		var a_head=document.getElementsByTagName('head')[0];
		var a_links=document.getElementsByTagName('link');
		for(var i=0;i<a_links.length;i++){
			if(typeof a_links[i]['rel'] != 'undefined'){
				if(a_links[i]['rel']==rel){
					a_head.removeChild(a_links[i]);
				}
			}
		}
		if(href){
			var link=document.createElement('link');
			link.rel=rel;
			link.href=href;
			a_head.appendChild(link);
		}
		keys[rel]=href;
	}
}

