//-------- for testing
var homePage = 1;
function GetCookie()
{
	return '';
}
function SetCookie()
{
	
}
//--------------------------------------------------------[ DHTML MENU CODE ]----------------------------------

// set ie styles --------------------------->
if((navigator.appVersion.toLowerCase()).indexOf('msie') != -1 && (navigator.userAgent.toLowerCase()).indexOf('opera') == -1)
{
	var stylesheet = (document.styleSheets["innerStyle"]) ? document.styleSheets["innerStyle"] : document.styleSheets["indexStyle"];
	stylesheet.addRule(".menuSubsContainer", "filter: alpha(opacity=90)");
}


var onMenu = -1;
var onSub = -1;
var curSub = -1;
// preload images ----------------------->
var off_arrow = new Image();
off_arrow.src = urlPrefix() + '/images/clear.gif';
var on_arrow = new Image();
on_arrow.src = urlPrefix() + '/images/menu_subarrow.gif';
var off_dot = new Image();
off_dot.src = urlPrefix() + '/images/menu_subdot_off.gif';
var on_dot = new Image();
on_dot.src = urlPrefix() + '/images/menu_subdot_on.gif';
// end images -------------------------->

var sub_on_color = '#43BCC6';
var dot_counter = 1;
function fix_url(url)
{
	if(url.indexOf('javascript:') != -1 || url.indexOf('http://') != -1 || url.indexOf('https://') != -1)
	{
		return url;
	} else {
		return urlPrefix('href') + url;
	}
}
function menu_top(text)
{
	this.width = 170;
	this.delay = 50; //ms
	
	this.text = text;
	this.subs = new Array();
	this.add = function (text, url)
	{
		this.subs.push(new menu_sub(text, url));
	}
	this.output = function(id)
	{
		var output = '<div id="_navMain' + id + '" style="width: ' + this.width + 'px;" class="menuTitle" onMouseOver="on_menu(' + id + '); show(' + id + ', ' + dot_counter + ', [xdotx]);" onMouseOut="on_menu(-1); setTimeout(\'hide(\\\'' + id + '\\\')\', ' + this.delay + ');"><p>- ' + this.text + ' <img src="' + off_arrow.src + '" align="absmiddle" id="arrow' + id + '"></p></div>';
		
		output += '<div onMouseOver="on_menu(' + id + ');" onMouseOut="on_menu(-1); setTimeout(\'hide(\\\'' + id + '\\\')\', ' + this.delay + ');" class="menuSubsContainer" id="_navSub' + id + '">';
		output += '<div class="menuSubTextBorderTop">&nbsp;</div>';
		
		for(var i=0; i < this.subs.length; i++)
		{
			var mouse_over = ' onMouseOver="this.style.color = \'' + sub_on_color + '\'; this.style.background = \'#2A2A2A\'; document.getElementById(\'dot' + dot_counter + '\').src=on_dot.src;"';
			var mouse_out = ' onMouseOut="this.style.color = \'#FFFFFF\'; this.style.background = \'#000000\'; document.getElementById(\'dot' + dot_counter + '\').src=off_dot.src;"';
			
			var on_click = ' onClick="document.location=\'' + fix_url(this.subs[i].url) + '\';"';
			output += '<p style="margin-top: 0px; margin-bottom: 0px;" class="menuSubText"' + on_click + mouse_over + mouse_out + '><nobr><img id="dot' + dot_counter + '" src="' + off_dot.src + '" align="absmiddle" style="margin-right: 5px; margin-left: 5px;">' + (this.subs[i].text).replace(/ /i, '&nbsp;') + '</nobr></p>';
			if((i+1) == this.subs.length)
			{
				output = output.replace('[xdotx]', dot_counter);
			}
			dot_counter++;
		}
		output += '<div class="menuSubTextBorderBottom">&nbsp;</div>';
		output += '</div>';
		
		return output;
	}
}
function on_menu(id)
{
	onMenu = id;
}
function menu_sub(text, url)
{
	this.text = text;
	this.url = url;
}
function write_menu(my_menu)
{
	var output = '';
	
	for(var i=0; i < my_menu.length; i++)
	{
		output += menu[i].output(i+1);
	}
	document.write(output);		
}
function show(id, first_dot, last_dot)
{
	if(id != curSub && curSub > 0)
	{
		document.getElementById('_navSub' + curSub).style.display = "none";
	}
	curSub = id;
	
	var main_width = new Number((document.getElementById('_navMain' + id).style.width).replace('px', ''));
	var y_offset = find_pos_y(document.getElementById('_navMain' + id)) - 247;
	//var x_offset = find_pos_x(document.getElementById('main' + id));
	var x_offset = find_pos_x(document.getElementById('arrow' + id));
	
	document.getElementById('_navSub' + id).style.top = y_offset + 'px';
	//document.getElementById('sub' + id).style.left = ((main_width + x_offset) - 5) + 'px';
	document.getElementById('_navSub' + id).style.left = (x_offset + 10) + 'px';

	document.getElementById('_navSub' + id).style.display = "inline";

	// reposition
	y_offset = y_offset - Math.ceil((find_pos_y(document.getElementById('dot' + last_dot)) - find_pos_y(document.getElementById('dot' + first_dot)))/2);
	document.getElementById('_navSub' + id).style.top = y_offset + 'px';
	
	document.getElementById('arrow' + id).src = on_arrow.src;
	document.getElementById('_navMain' + id).style.color = sub_on_color;
	
}
function hide(id)
{
	if(id != onMenu)
	{
		document.getElementById('_navMain' + id).style.color = "#FFFFFF";
		document.getElementById('_navSub' + id).style.display = "none";
		document.getElementById('arrow' + id).src = off_arrow.src;
	}
}
function find_pos_x(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
	{
		curleft += obj.x;
	}
	return curleft;
}
function find_pos_y(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
	{
		curtop += obj.y;
	}
	return curtop;
}

//--------------------------------------------------------[ END DHTML MENU CODE ]----------------------------------

//--------------------------------------------------------[ Main Nav Menu Code ]----------------------------------
// get current directory
var cur_dir;
if(document.location.href.indexOf('boards.lineage2.com') != -1)
{
	cur_dir = 'community';
} else {
	cur_dir = (document.location.href).split('/');
	cur_dir = (cur_dir.length > 4) ? cur_dir[3] : 'top';
}

var nav_element_counter = 1;
var sub_element_counter = 1;

function nav_container()
{
	this.get_selected_navs = function()
	{
		var selected_navs = {};
		var navs = GetCookie('s_navs');
		if(navs != null)
		{
			var data = navs.split("&");
			for(var i=0; i < data.length; i++)
			{
				selected_navs[data[i]] = true;
			}
		}
		this.selected_navs = selected_navs;
		//this.selected_navs = {};
		
		// set the expiration date for new cookie
		this.expire_date = new Date();
		this.expire_date.setTime(this.expire_date.getTime() + 43200000);
	}
	this.get_selected_navs();
	
	this.set_selected_navs = function()
	{
		var cookie_txt = '';
		for(var nav_id in this.selected_navs)
		{
			if(this.selected_navs[nav_id])
			{
				if(cookie_txt.length > 0)
				{
					cookie_txt += '&';
				}
				cookie_txt += nav_id;
			}
		}
		SetCookie('s_navs', cookie_txt, this.expire_date, '/');
	}
	
	this.elements = new Array();
	this.add = function (img_name)
	{
		this.elements.push(new nav_top(img_name));
		
		var this_index = this.elements.length - 1;
		if(arguments.length > 1)
		{
			if(arguments[1].length > 0)
			{
				this.elements[this_index].dir = arguments[1];
			}
			if(arguments.length > 2 && arguments[2].length > 0)
			{
				this.elements[this_index].url = arguments[2];
			}
		}
	}
	this.get = function (id)
	{
		return this.elements[id - 1];
	}
	this.output = function ()
	{
		var output = '';
		for(var i=0; i < this.elements.length; i++)
		{
			output += this.elements[i].output();
		}
		this.set_selected_navs();
		document.write(output);
	}
}
function nav_top(img_name)
{
	this.dir = {};
	// set directory...
	var dirs = img_name.split("|");
	this.img_name = dirs[0];
	img_name = dirs[0];
	for(var i=0; i < dirs.length; i++)
	{
		this.dir[dirs[i]] = true;
	}
	
	this.url = false;
	this.id = new Number(nav_element_counter);
	nav_element_counter++;
	// load images
	this.on_img = new Image();
	this.on_img.src = urlPrefix() + '/images/btn_' + img_name + '.png';
	this.off_img = new Image();
	this.off_img.src = this.on_img.src;
	//this.off_img.src = urlPrefix() + '/images/' + img_name + '_off.jpg';
	
	this.default_opened = function()
	{
		if(GetCookie('s_navs') == null || GetCookie('s_navs') == 'CLEAR')
		{
			if(cur_dir == 'top')
			{
				if(this.id == 1 || this.id == 2)
				{
					n_e.selected_navs[this.dir] = true;
					return true;
				}
			}
			if(cur_dir == 'news')
			{
				n_e.selected_navs[this.dir] = true;
				return true;
			}
		}
		return false;
	}
	
	this.output = function()
	{
		var this_link = (this.url) ? fix_url(this.url) : 'javascript: show_nav_subs(' + this.id + ');';
		var mouse_over = ' onMouseOver="javascript: swap_nav(\'' + this.id + '\', \'' + this.img_name + '\');"';
		var mouse_out = 'onMouseOut="javascript: swap_nav(\'' + this.id + '\', \'' + this.img_name + '\');"';
		
		var output = '<div class="navTopElement"' + ((this.img_name != 'account') ? ' style="margin-bottom: 10px;"' : '') + '>';
		output += '<a href="' + this_link + '"><img src="' + ((this.dir == cur_dir) ? this.on_img.src : this.off_img.src) + '" border="0" alt="' + this.first_to_upper(this.img_name) + '" id="nav' + this.id + '" ' + mouse_over + mouse_out + ' /></a>';
		output += '</div>';
		
		output += '<div id="menuSubs' + this.id + '"' + ((this.dir[cur_dir] || n_e.selected_navs[this.dir]) ? 'style="padding-left: 10px; color: #FFFFFF; margin-bottom: 10px;"' : ' style="display: none; padding-left: 10px; color: #FFFFFF; margin-bottom: 10px;"') + '>';
		if(this.subs.length > 0)
		{
			
			for(var i=0; i < this.subs.length; i++)
			{
				if(this.subs[i].subs)
				{
					var this_nav = new menu_top(this.subs[i].text);
					for(var j=0; j < this.subs[i].subs.length; j++)
					{
						this_nav.add(this.subs[i].subs[j].text, this.subs[i].subs[j].url);
					}
					output += this_nav.output(sub_element_counter);
					sub_element_counter++;
					
				} else {
					var mouse_over = ' onMouseOver="this.style.color=\'' + sub_on_color + '\';"';
					var mouse_out = ' onMouseOut="this.style.color=\'#FFFFFF\';"';
					
					var on_click = (this.subs[i].subs) ? '' : ' onClick="document.location=\'' + fix_url(this.subs[i].url) + '\';"';
					output += '<div class="subNavElement"' + on_click + mouse_over + mouse_out + '>- ' + this.subs[i].text + '</div>';
				}
				if((i+1) < this.subs.length)
				{
					output += '<div style="font-size: 1px; height: 3px;">&nbsp;</div>';
				}
			}
			
		}
		output += '</div>';
		return output;
	}
	this.subs = new Array();
	this.add = function(text, url)
	{
		this.subs.push(new nav_sub(text, url));
		this.subs[this.subs.length -1].subs = (arguments.length > 2) ? arguments[2] : false;
	}
	this.first_to_upper = function(in_string)
	{
		var out_string = '';
		for(var i =0; i < in_string.length; i++)
		{
			if(i == 0 || in_string.charAt(i-1) == ' ')
			{
				out_string += in_string.charAt(i).toUpperCase();
			} else {
				out_string += in_string.charAt(i);
			}
		}
		return out_string;
	}
}
function nav_sub(text, url)
{
	this.text = text;
	this.url = url;
}
function swap_nav(id)
{
	if(document.getElementById("menuSubs" + id).style.display == "none" && (n_e.get(id)).dir != cur_dir)
	{
		document.getElementById("nav" + id).src = (document.getElementById("nav" + id).src == (n_e.get(id)).on_img.src) ? (n_e.get(id)).off_img.src : (n_e.get(id)).on_img.src;
	}
}
function nei()
{
	return nav_element_counter - 2;
}
function show_nav_subs(id)
{
	n_e.selected_navs[n_e.get(id).dir] = (n_e.selected_navs[n_e.get(id).dir]) ? false : true;
	n_e.set_selected_navs();
	
	if((n_e.get(id)).dir != cur_dir)
	{
		document.getElementById("nav" + id).src = (document.getElementById("nav" + id).src == (n_e.get(id)).off_img.src) ? (n_e.get(id)).on_img.src : (n_e.get(id)).off_img.src;
	}
	document.getElementById("menuSubs" + id).style.display = (document.getElementById("menuSubs" + id).style.display == "none") ? 'block' : 'none';
}

//--------------------------------------------------------[ END MAIN NAV MENU CODE ]----------------------------------

//--------------------------------------------------------[ Build & Print Menu ]----------------------------------
var n_e = new nav_container();
n_e.add('home', '', '/');

n_e.add('news|archive');
	n_e.elements[nei()].add('Latest News', urlPrefix("href") + '/news/news.html');
	n_e.elements[nei()].add('Latest Chronicle', '', new Array(new nav_sub('Chronicle 4', urlPrefix("href") + '/news/chronicle4_01.html'),
														   			 new nav_sub('Chronicle 3', urlPrefix("href") +'/news/chronicle3_01.html'),
																	 new nav_sub('Chronicle 2', urlPrefix("href") +'/news/chronicle2_01.html'),
																	 new nav_sub('Chronicle 1', urlPrefix("href") +'/news/chronicle1_01.html'),
																	 new nav_sub('Prelude', urlPrefix("href") +'/news/career.html')));
	n_e.elements[nei()].add('In Development', urlPrefix("href") +'/news/development.html');
	n_e.elements[nei()].add('In The Press', urlPrefix("href") +'/news/press.html');
	n_e.elements[nei()].add('Events', urlPrefix("href") +'/news/event.html');
	n_e.elements[nei()].add('Castle Siege Reports', urlPrefix("href") +'/news/siege.html');
	n_e.elements[nei()].add('Newsletter Archive', urlPrefix("href") +'/news/newsletter_archive.html');
			
n_e.add('background');
	n_e.elements[nei()].add('Overview', urlPrefix("href") +'/background/about.html');
	n_e.elements[nei()].add('Myths & History', '', new Array(new nav_sub('Chronicle 4', urlPrefix("href") +'/background/chronicle4/list.html'),
														   			 new nav_sub('Chronicle 3', urlPrefix("href") +'/background/chronicle3/list.html'),
																	 new nav_sub('Chronicle 2', urlPrefix("href") +'/background/chronicle2/list.html'),
																	 new nav_sub('Chronicle 1', urlPrefix("href") +'/background/chronicle/list.html'),
																	 new nav_sub('Prelude', urlPrefix("href") +'/background/legends.html'),
																	 new nav_sub('The Legend', urlPrefix("href") +'/background/legends_list.html')));
	n_e.elements[nei()].add('Making Lineage II', urlPrefix("href") +'/background/making.html');
	n_e.elements[nei()].add('The Lead Roles', urlPrefix("href") +'/background/leading_role.html');

n_e.add('guide');
	n_e.elements[nei()].add('System Requirements', urlPrefix("href") +'/guide/systemneeds.html');
	n_e.elements[nei()].add('Getting Started', '', new Array(new nav_sub('Installation', urlPrefix("href") +'/guide/install.html'),
															 new nav_sub('Creating Your Character', urlPrefix("href") +'/guide/create.html'),
															 new nav_sub('Game Interface', urlPrefix("href") +'/guide/interface.html'),
															 new nav_sub('Shortcut & Tips', urlPrefix("href") +'/guide/tips.html')));
	n_e.elements[nei()].add('Player Commands', urlPrefix("href") +'/guide/commands.html');
	n_e.elements[nei()].add('New Player Bonuses', urlPrefix("href") +'/guide/bonuses.html');
	n_e.elements[nei()].add('Game Guides', urlPrefix("href") +'/guide/game_guides.html');
	
n_e.add('library|Knowledge');
	n_e.elements[nei()].add('Quests', '', new Array(new nav_sub('Starting Villages', urlPrefix("href") +'/Knowledge/quest.html'),
													new nav_sub('1st Class Transfer', urlPrefix("href") +'/Knowledge/quest2.html'),
													new nav_sub('Level 15-40', urlPrefix("href") +'/Knowledge/quest3.html'),
													new nav_sub('2nd Class Transfer', urlPrefix("href") +'/Knowledge/quest4.html'),
													new nav_sub('Level 41+', urlPrefix("href") +'/Knowledge/quest5.html'),
													new nav_sub('3rd Class Transfer', urlPrefix("href") +'/Knowledge/quest6.html')));
	
	n_e.elements[nei()].add('Monsters', '', new Array(new nav_sub('Chronicle 4', urlPrefix("href") +'/Knowledge/Monsters.html'),
													  new nav_sub('Chronicle 3', urlPrefix("href") +'/Knowledge/monsters_3.html'),
													  new nav_sub('Chronicle 2', urlPrefix("href") +'/Knowledge/monsters_2.html'),
													  new nav_sub('Chronicle 1', urlPrefix("href") +'/Knowledge/monsters_1.html')));
	
	n_e.elements[nei()].add('Items & Equipment', '', new Array(new nav_sub('Weapons', urlPrefix("href") +'/Knowledge/item.html'),
															   new nav_sub('Armor', urlPrefix("href") +'/Knowledge/item.html?category=armor'),
															   new nav_sub('Accessories', urlPrefix("href") +'/Knowledge/item.html?category=accessories'),
															   new nav_sub('Misc.', urlPrefix("href") +'/Knowledge/item.html?category=etc'),
															   new nav_sub('Armor Sets', urlPrefix("href") +'/Knowledge/item_sets.html')));
	
	n_e.elements[nei()].add('Crafting Recipes', '/Knowledge/recipes.html');
	n_e.elements[nei()].add('Enhancements', '/Knowledge/enhancements.html');
	n_e.elements[nei()].add('Clans, Allies, & Manors', '', new Array(new nav_sub('Clans', urlPrefix("href") +'/Knowledge/clans.html'),
																	 new nav_sub('Alliances', urlPrefix("href") +'/Knowledge/Alliance.html'),
																	 new nav_sub('Manor System', urlPrefix("href") +'/Knowledge/manor.html')));
	
	n_e.elements[nei()].add('Castle Siege', '', new Array(new nav_sub('Introduction', urlPrefix("href") +'/Knowledge/castle.html'),
														  new nav_sub('Preparation', urlPrefix("href") +'/Knowledge/castle_2.html'),
														  new nav_sub('A Siege Begins', urlPrefix("href") +'/Knowledge/castle_3.html'),
														  new nav_sub('Siege Rules', urlPrefix("href") +'/Knowledge/castle_4.html'),
														  new nav_sub('Castle Structures & Functions', urlPrefix("href") +'/Knowledge/castle_5.html')));
	
	n_e.elements[nei()].add('Seven Signs', '', new Array(new nav_sub('Overview', urlPrefix("href") +'/Knowledge/sevensigns.html'),
														 new nav_sub('Details', urlPrefix("href") +'/Knowledge/sevensigns_1.html'),
														 new nav_sub('Progress', urlPrefix("href") +'/Knowledge/sevensigns_2.html')));
	
	n_e.elements[nei()].add('Subclass System', '', new Array(new nav_sub('Overview', urlPrefix("href") +'/Knowledge/subclasses.html'),
															new nav_sub('Details', urlPrefix("href") +'/Knowledge/subclasses_1.html'),
															new nav_sub('Available Classes', urlPrefix("href") +'/Knowledge/subclasses_2.html')));
	
	n_e.elements[nei()].add('Combat Points System', urlPrefix("href") +'/Knowledge/cp.html');
	n_e.elements[nei()].add('Summon System & Pets', '', new Array(new nav_sub('Summon System', urlPrefix("href") +'/Knowledge/summon_0.html'),
																  new nav_sub('Pet System', urlPrefix("href") +'/Knowledge/pet_1.html')));
	
	n_e.elements[nei()].add('Noblesse', urlPrefix("href") +'/Knowledge/noblesse.html');
	n_e.elements[nei()].add('Fishing', urlPrefix("href") +'/Knowledge/fishing.html');
	n_e.elements[nei()].add('Heroes & Olympiad', urlPrefix("href") +'/Knowledge/hero.html');
	n_e.elements[nei()].add('Races, Classes & Skills', '', new Array(new nav_sub('Human', urlPrefix("href") +'/Knowledge/race_human.html'),
														   			 new nav_sub('Elf', urlPrefix("href") +'/Knowledge/race_elf.html'),
																	 new nav_sub('Dark Elf', urlPrefix("href") +'/Knowledge/race_darkelf.html'),
																	 new nav_sub('Orc', urlPrefix("href") +'/Knowledge/race_orc.html'),
																	 new nav_sub('Dwarf', urlPrefix("href") +'/Knowledge/race_dwarf.html')));
	
n_e.add('community|minigames');
	n_e.elements[nei()].add('Message Boards', 'http://boards.lineage2.com');
	n_e.elements[nei()].add('Fan Art', urlPrefix("href") +'/community/fanart.html');
	n_e.elements[nei()].add('Fan Fiction', urlPrefix("href") +'/community/fanfiction.html');
	n_e.elements[nei()].add('Fan Site Listing', urlPrefix("href") +'/community/fansite_1.html');
	n_e.elements[nei()].add('Fan Site Kits', urlPrefix("href") +'/community/fansitekit.html');
	n_e.elements[nei()].add('Castle Control', urlPrefix("href") +'/community/castlecontrol.html');
	n_e.elements[nei()].add('L2 Mini-Games', urlPrefix("href") +'/minigames/index.html');
	n_e.elements[nei()].add('Team Bios', urlPrefix("href") +'/community/teambios.html');
	n_e.elements[nei()].add('Spotlight', urlPrefix("href") +'/community/spotlight.html');

	
n_e.add('downloads|pds');
	n_e.elements[nei()].add('Game Download', urlPrefix("href") +'/pds/game_dw.html');
	n_e.elements[nei()].add('Official Screenshots', urlPrefix("href") +'/pds/official/screenshots.html');
	n_e.elements[nei()].add('Players\' Screenshots', urlPrefix("href") +'/pds/players.html');
	n_e.elements[nei()].add('Movies', urlPrefix("href") +'/pds/pds_movie.html');
	n_e.elements[nei()].add('Music', urlPrefix("href") +'/pds/pds_music.html');
	n_e.elements[nei()].add('Concept Art', urlPrefix("href") +'/pds/concept_art.html');
	n_e.elements[nei()].add('Wallpaper', urlPrefix("href") +'/pds/pds_wallpaper.html');
	n_e.elements[nei()].add('Maps', urlPrefix("href") +'/pds/map.html');

n_e.add('support|legal');
	n_e.elements[nei()].add('Knowledge Base', 'http://support.plaync.com/cgi-bin/plaync.cfg/php/enduser/std_alp.php?p_li=&p_page=1&p_cv=&p_pv=1.10%3B2.u0&p_prods=10%2C0&p_cats=0&p_hidden_prods=&prod_lvl1=10&prod_lvl2=0&cat_lvl1=0&p_search_text=&p_new_search=1');
	n_e.elements[nei()].add('Security FAQ', urlPrefix("href") +'/support/security_faq.html');
	n_e.elements[nei()].add('GM Bios', urlPrefix("href") +'/support/gm_bios.html');
	n_e.elements[nei()].add('Contact Support', 'http://support.plaync.com/cgi-bin/plaync.cfg/php/enduser/std_alp.php?p_li=&p_page=1&p_cv=&p_pv=1.10%3B2.u0&p_prods=10%2C0&p_cats=0&p_hidden_prods=&prod_lvl1=10&prod_lvl2=0&cat_lvl1=0&p_search_text=&p_new_search=1');
	n_e.elements[nei()].add('User Agreement', 'http://www.plaync.com/help/eula_lineage2.html');
	n_e.elements[nei()].add('Rules of Conduct', urlPrefix("href") +'/legal/rules.html');

n_e.add('account', '', 'https://secure.plaync.com/cgi-bin/plaync_manage.pl?game=lin2');