$.keynav=new Object();$.fn.keynav=function(c,b){var a=$.keynav;if(!a.init){a.el=new Array();$(document).keydown(function(f){var d=0;if(f==null){d=event.keyCode}else{d=f.which}switch(d){case 37:$.keynav.goLeft();break;case 38:$.keynav.goUp();break;case 39:$.keynav.goRight();break;case 40:$.keynav.goDown();break;case 13:$.keynav.activate();break}});a.init=true}return this.each(function(){$.keynav.reg(this,c,b)})};$.fn.keynav_sethover=function(b,a){return this.each(function(){this.onClass=b;this.offClass=a})};$.keynav.reset=function(){var a=$.keynav;a.el=new Array()};$.keynav.reg=function(c,d,b){var a=$.keynav;c.pos=$.keynav.getPos(c);c.onClass=d;c.offClass=b;c.onmouseover=function(f){$.keynav.setActive(this)};a.el.push(c)};$.keynav.setActive=function(d){var c=$.keynav;var f=$.keynav.getCurrent();$(f).trigger("blur");for(var b=0;b<c.el.length;b++){var a=c.el[b];$(a).removeClass(a.onClass).addClass(a.offClass)}$(d).removeClass(d.offClass).addClass(d.onClass);$(d).trigger("focus");c.currentEl=d};$.keynav.getCurrent=function(){var a=$.keynav;if(a.currentEl){var b=a.currentEl}else{var b=a.el[0]}return b};$.keynav.quad=function(e,d){var b=$.keynav;var a=Array();for(i=0;i<b.el.length;i++){var c=b.el[i];if(e==c){continue}if(d((e.pos.cx-c.pos.cx),(e.pos.cy-c.pos.cy))){a.push(c)}}return a};$.keynav.activateClosest=function(h,b){var c;var a=1000000;var g=0;var d=false;for(i=0;i<b.length;i++){var f=b[i];g=Math.sqrt(Math.pow(h.pos.cx-f.pos.cx,2)+Math.pow(h.pos.cy-f.pos.cy,2));if(g<a){c=f;a=g;d=true}}if(d){$.keynav.setActive(c)}};$.keynav.goLeft=function(){var b=$.keynav.getCurrent();var a=$.keynav.quad(b,function(d,c){if((c>=0)&&(Math.abs(d)-c)<=0){return true}else{return false}});$.keynav.activateClosest(b,a)};$.keynav.goRight=function(){var b=$.keynav.getCurrent();var a=$.keynav.quad(b,function(d,c){if((c<=0)&&(Math.abs(d)+c)<=0){return true}else{return false}});$.keynav.activateClosest(b,a)};$.keynav.goUp=function(){var b=$.keynav.getCurrent();var a=$.keynav.quad(b,function(d,c){if((d>=0)&&(Math.abs(c)-d)<=0){return true}else{return false}});$.keynav.activateClosest(b,a)};$.keynav.goDown=function(){var b=$.keynav.getCurrent();var a=$.keynav.quad(b,function(d,c){if((d<=0)&&(Math.abs(c)+d)<=0){return true}else{return false}});$.keynav.activateClosest(b,a)};$.keynav.activate=function(){var a=$.keynav;$(a.currentEl).trigger("click")};$.keynav.getPos=function(g){var c=0;var d=0;var b=$.intval($.css(g,"width"));var f=$.intval($.css(g,"height"));while(g.offsetParent){c+=g.offsetLeft+(g.currentStyle?$.intval(g.currentStyle.borderLeftWidth):0);d+=g.offsetTop+(g.currentStyle?$.intval(g.currentStyle.borderTopWidth):0);g=g.offsetParent}c+=g.offsetLeft+(g.currentStyle?$.intval(g.currentStyle.borderLeftWidth):0);d+=g.offsetTop+(g.currentStyle?$.intval(g.currentStyle.borderTopWidth):0);var a=Math.round(d+(f/2));var j=Math.round(c+(b/2));return{x:c,y:d,w:b,h:f,cx:a,cy:j}};$.intval=function(a){a=parseInt(a);return isNaN(a)?0:a};
