﻿// JavaScript Document for Pokedex.de
function FixBar()
{
	var searchbar = document.getElementById("searchbar");
	
	if(navigator.appName == "Microsoft Internet Explorer")
	{
		if(document.documentElement.scrollTop > 116)
		{
			searchbar.style.position = "fixed";
			searchbar.style.top = "-116px";
			searchbar.style.left = (document.documentElement.scrollLeft * -1) + "px";
		}
		
		else if(document.documentElement.scrollTop <= 116)
		{
			searchbar.style.position = "absolute";
			searchbar.style.top = "0px";
			searchbar.style.left = "0px";
		}
	}	
	
	else
	{
		if(window.pageYOffset > 116)
		{
			searchbar.style.position = "fixed";
			searchbar.style.top = "-116px";
			searchbar.style.left = (window.pageXOffset * -1) + "px";
		}
		
		else if(window.pageYOffset <= 116)
		{
			searchbar.style.position = "absolute";
			searchbar.style.top = "0px";
			searchbar.style.left = "0px";
		}
	}
	
}

function seekSubmit(seekstr)
{
	if(seekstr == "")
	{
		window.alert(getLangVar("search_emptystring"));
		return false;
	}
		
	else if(isNaN(seekstr) && seekstr.length < 3)
	{
		window.alert(getLangVar("search_stringtoshort"));
		return false;
	}
	
	else if(isNaN(seekstr) == false && (seekstr <= 0 || seekstr > g_max_pokemon))
	{
		window.alert(getLangVar("search_no_pokemon_with_this_number"));
		return false;
	}
		
	else
		return true;
}

function errorformSubmit(description)
{
	if(description == "")
	{
		window.alert(getLangVar("error_nodescriptionentered"));
		return false;
	}
		
	else
		return true;
}

var selected_tag;
var sugg_value;
var sugg_class = "div_sugglist";

function hover(id, newclass, overout)
{
	var tag = document.getElementById(id);
	
	if(overout == "over")
	{
		tag.className = newclass + "_hover";
		if(newclass == sugg_class)
		{
			if(selected_tag == true)
				selected_tag.className = newclass;
				
			selected_tag = tag;
		}
	}
	
	else if(overout == "out")
	{
		tag.className = newclass;
		if(newclass == sugg_class)
		{
			if(selected_tag == true)
				selected_tag.className = newclass;
				
			selected_tag = null;
		}
	}
}

function toggleDisplay(id)
{
	var element = document.getElementById(id);
	
	if(element.style.display == "none")
		element.style.display = "";
	else
		element.style.display = "none";
}

function getkey(e)
{
	document.getElementsByName("search_field")[0].onkeyup = "";
	if(document.getElementById("sugg_list").style.display == "none" && sugg_value == document.forms["search"].elements["search_field"].value)
	{
		document.getElementsByName("search_field")[0].onkeyup = seekSugg;
		return true;
	}
	
	sugg_value = document.forms["search"].elements["search_field"].value;
	
	if(typeof(e) == "undefined")
		e = window.event;
	
	var key_code = e.keyCode;

	if(!selected_tag)
	{
		//if(key_code == 13) return false; //Key: Enter

		if(key_code < 37 || key_code > 40)
		{
			document.getElementsByName("search_field")[0].onkeyup = seekSugg;
			return true;
		}

		if(key_code == 40) //Key: down
		{ 
			selected_tag = document.getElementById("sugg1");
			selected_tag.className = sugg_class + "_hover";
		}
	}
	
	else
	{
		if(key_code == 13) //Key: Enter
		{
			selected_tag.onclick();
			document.getElementsByName("search_field")[0].value = "";
			document.getElementsByName("search_field")[0].blur();
			document.getElementById("sugg_list").style.display = "none";
			selected_tag = null;
			return false;
		}
		
		if(key_code < 37 || key_code > 40)
		{
			document.getElementsByName("search_field")[0].onkeyup = seekSugg;
			selected_tag = null;
			return true;
		}
		
		selected_tag.className = sugg_class;
		
		if(key_code == 40 && selected_tag.nextSibling)
			selected_tag = selected_tag.nextSibling; // Key: down
		
		else if(key_code == 38 && selected_tag.previousSibling && selected_tag.previousSibling.className)
			selected_tag = selected_tag.previousSibling; //Key: up

		else if(key_code == 39 && selected_tag.parentNode.nextSibling)
			selected_tag = selected_tag.parentNode.nextSibling.firstChild.nextSibling; //Key: right
		
		else if(key_code == 37 && selected_tag.parentNode.previousSibling)
			selected_tag = selected_tag.parentNode.previousSibling.firstChild.nextSibling; //Key: left
		
		selected_tag.className = sugg_class + "_hover";
	}
}

function enableSelect(selname)
{
	if(document.getElementsByName("enable_" + selname)[0].checked == true)
		document.getElementsByName(selname + "[]")[0].disabled = false;
	else
		document.getElementsByName(selname + "[]")[0].disabled = true;
}

function enableCheckboxes(name)
{
	if(name == "filter_category")
	{
		if(document.getElementsByName("enable_" + name)[0].checked == true)
		{
			document.getElementsByName("filter_category1")[0].disabled = false;
			document.getElementsByName("filter_category2")[0].disabled = false;
			
			if(g_generation >= 4)
				document.getElementsByName("filter_category3")[0].disabled = false;
		}
		
		else
		{
			document.getElementsByName("filter_category1")[0].disabled = true;
			document.getElementsByName("filter_category2")[0].disabled = true;
			
			if(g_generation >= 4)
				document.getElementsByName("filter_category3")[0].disabled = true;
		}
	}
	
	else if(name == "filter_physical_contact")
	{
		if(document.getElementsByName("enable_" + name)[0].checked == true)
		{
			document.getElementsByName("filter_physical_contact")[0].disabled = false;
			document.getElementsByName("filter_physical_contact")[1].disabled = false;
		}
		
		else
		{
			document.getElementsByName("filter_physical_contact")[0].disabled = true;
			document.getElementsByName("filter_physical_contact")[1].disabled = true;
		}
	}
}

function showSprites(gender)
{
	if(gender == "male")
	{
		document.getElementById("symbol_sprites_male").style.border = "1px solid #CC0000";
		document.getElementById("symbol_sprites_female").style.border = "1px solid transparent";
		document.getElementById("sprites_male").style.display = "inline";
		document.getElementById("sprites_female").style.display = "none";
	}
	
	else if(gender == "female")
	{
		document.getElementById("symbol_sprites_male").style.border = "1px solid transparent";
		document.getElementById("symbol_sprites_female").style.border = "1px solid #CC0000";
		document.getElementById("sprites_male").style.display = "none";
		document.getElementById("sprites_female").style.display = "inline";
	}
}

function init()
{
	document.onkeypress = getkey;
	document.getElementsByName("search_field")[0].onblur = function(e) {window.setTimeout("document.getElementById('sugg_list').style.display = 'none'", 2000)};
}

window.onload = init;
