/**
 * Core for Tehy.fi
 * @version 1.0
 */
 
 /* jQuery Hotkeys Plugin, Copyright 2010, John Resig */
(function(jQuery){jQuery.hotkeys={version:"0.8",specialKeys:{8:"backspace",9:"tab",13:"return",16:"shift",17:"ctrl",18:"alt",19:"pause",20:"capslock",27:"esc",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",45:"insert",46:"del",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9",106:"*",107:"+",109:"-",110:".",111:"/",112:"f1",113:"f2",114:"f3",115:"f4",116:"f5",117:"f6",118:"f7",119:"f8",120:"f9",121:"f10",122:"f11",123:"f12",144:"numlock",145:"scroll",191:"/",224:"meta"},shiftNums:{"`":"~","1":"!","2":"@","3":"#","4":"$","5":"%","6":"^","7":"&","8":"*","9":"(","0":")","-":"_","=":"+",";":": ","'":"\"",",":"<",".":">","/":"?","\\":"|"}};function keyHandler(handleObj){if(typeof handleObj.data!=="string"){return;}
var origHandler=handleObj.handler,keys=handleObj.data.toLowerCase().split(" ");handleObj.handler=function(event){if(this!==event.target&&(/textarea|select/i.test(event.target.nodeName)||event.target.type==="text"||event.target.type==="email"||event.target.type==="tel"||event.target.type==="url")){return;}
var special=event.type!=="keypress"&&jQuery.hotkeys.specialKeys[event.which],character=String.fromCharCode(event.which).toLowerCase(),key,modif="",possible={};if(event.altKey&&special!=="alt"){modif+="alt+";}
if(event.ctrlKey&&special!=="ctrl"){modif+="ctrl+";}
if(event.metaKey&&!event.ctrlKey&&special!=="meta"){modif+="meta+";}
if(event.shiftKey&&special!=="shift"){modif+="shift+";}
if(special){possible[modif+special]=true;}else{possible[modif+character]=true;possible[modif+jQuery.hotkeys.shiftNums[character]]=true;if(modif==="shift+"){possible[jQuery.hotkeys.shiftNums[character]]=true;}}
for(var i=0,l=keys.length;i<l;i++){if(possible[keys[i]]){return origHandler.apply(this,arguments);}}};}
jQuery.each(["keydown","keyup","keypress"],function(){jQuery.event.special[this]={add:keyHandler};});})(jQuery);

jQuery(function () {
	
	// Get Current URL
	function getUrl () {
		window.location.href = $("#nav .level1-onpath a").attr("href");
		return false;
	}

	// Keyboard Access
	function keyAccess () {	

		// Navigation
		var $list = $("#nav li");

		// Right Arrow
		$(document).bind("keydown", "right", function () {
			if ($list.filter(".level1-onpath").length < 1) {
				$list.eq(0).addClass("level1-onpath");
				getUrl();
			}
			else {
				if (!$list.eq(6).hasClass("level1-onpath")) {
					$list.filter(".level1-onpath").removeClass("level1-onpath").next().addClass("level1-onpath");
					getUrl();
				}
			}
		});

		// Left Arrow
		$(document).bind("keydown", "left", function () {
			if ($list.filter(".level1-onpath").length < 1) {
				$list.eq(6).addClass("level1-onpath");
				getUrl();
			}
			else {
				if (!$list.eq(0).hasClass("level1-onpath")) {
					$list.filter(".level1-onpath").removeClass("level1-onpath").prev().addClass("level1-onpath");
					getUrl();
				}
			}
		});
		
		// E Key
		$(document).bind("keydown", "e", function () {
			window.location.href = "http://www.tehy.fi/";
			return false;
		});
		
		// J Key
		$(document).bind("keydown", "j", function () {
			window.location.href = "http://www.tehy.fi/jasensivut/";
			return false;
		});
		
		// H Key
		$(document).bind("keydown", "h", function () {
			window.location.href = "http://www.tehy.fi/haku/";
			return false;
		});

    }

	// Tehy.fi core
	function tehyCore () {
		
		// Fix banner links
		$(".banners ul li,#news li,#events li").click(function () {
			window.location = $(this).find("a").attr("href"); 
			return false;
		});
	
		// Category drop down
		$('#services li').click(function (e) {
			e.preventDefault();
			$('#services_dropdown').toggle();
			$('#services li').toggleClass('selected');
		});
		$('#services_dropdown').mouseup(function () {
			return false;
		});
		$(document).mouseup(function (e) {
			if($(e.target).parent('#services li').length===0) {
				$('#services li').removeClass('selected');
				$('#services_dropdown').hide();
			}
		});
		
		// Language drop down 
		$('#languages li').click(function (e) {
			e.preventDefault();
			$('#languages_dropdown').toggle();
			$('#languages li').toggleClass('selected');
		});
		$('#languages_dropdown').mouseup(function () {
			return false;
		});
		$(document).mouseup(function (e) {
			if($(e.target).parent('#languages li').length===0) {
				$('#languages li').removeClass('selected');
				$('#languages_dropdown').hide();
			}
		});
		
		// Search help
		$('.q').focus(function () {
			$(this).attr('value', '');
		}).blur(function () {
			if (! $(this).attr('value')) {
				$(this).attr('value', $(this).attr('title'));
			}
		});
		
		// Directory
		$('#open').click(function () {
			$('#dir').slideDown('slow');
		});
		$('#close').click(function () {
			$('#dir').slideUp('slow');
		});		
		$('#toggle a').click(function () {
			$('#toggle a').toggle();
		});

	}

	// Init Tehy.fi
	tehyCore();
	keyAccess();

});
