if (/msie/i.test (navigator.userAgent)) //only override IE
{
	document.nativeGetElementById = document.getElementById;
	document.getElementById = function(id)
	{
		var elem = document.nativeGetElementById(id);
		if(elem)
		{
			//make sure that it is a valid match on id
			if(elem.attributes['id'].value == id)
			{
				return elem;
			}
			else
			{
				//otherwise find the correct element
				for(var i=1;i<document.all[id].length;i++)
				{
					if(document.all[id][i].attributes['id'].value == id)
					{
						return document.all[id][i];
					}
				}
			}
		}
		return null;
	};
}


function more_info(text)
{
	alert(text);
}


function linkcolor(id, color)
{
	document.getElementById(id).style.color = color;
}


function checkEnter(e)
{ //e is event object passed from function invocation
	var characterCode;
	
	if(e && e.which)
	{ //if which property of event object is supported (NN4)
		e = e
		characterCode = e.which //character code is contained in NN4's which property
	}
	else
	{
		e = event
		characterCode = e.keyCode //character code is contained in IE's keyCode property
	}
	
	if(characterCode == 13)
	{ //if generated character code is equal to ascii 13 (if enter key)
		 dropcalc_search();//submit the form
		return false
	}
	else
	{
		return true
	}
}


function captcha()
{
	var img = document.getElementById("captcha_img");
  	img.src = "includes/capt.php?code="+Math.random();
}


function resize_images()
{
	var url		= document.location.href;
	var page	= url.split('/');

	if ((page[5] == "serverlist") || (page[5] == "in") || (page[5] == "spotlight") || (document.location.href == "http://www.privatelineage.com/") || (document.location.href == "http://www.privatelineage.com/lineage2/serverlist"))
	{
		for (i = 2; i < document.images.length; i++)
		{
			while ( !document.images[i].complete )
			{
				break;
			}
			if ( document.images[i].width > 468 )
			{
				document.images[i].width = 468;
			}
			if ( document.images[i].height > 60 )
			{
				document.images[i].height = 60;
			}
		}
	}
}


function login()
{
	if (document.getElementById('email').value == "" || document.getElementById('password').value == "")
	{
		alert('Please fill in both fields');	
	}
	else
	{
		var email 	= document.getElementById('email').value;
		var pass	= document.getElementById('password').value;
		
		email	= email.replace(/\n/g, "<br />");
		email	= email.replace(/&/g, "5917643589417");
		pass	= pass.replace(/\n/g, "<br />");
		pass	= pass.replace(/&/g, "5917643589417");
		
		document.getElementById('login_button').disabled = true;
		document.getElementById('login_button').value = "Processing...";
		
		var query	= "includes/login_check.inc.php?email=" + email + "&pass=" + pass;
		req			= new GetXmlHttpObject();
		
		req.onreadystatechange = function()
		{
			if( req.readyState == 4 )
			{
				if (req.responseText == "reload")
				{
					window.location = "http://www.privatelineage.com/lineage2/serverlist";
				}
				else
				{
					alert('Login has failed, please try again.\nIf you lost your password use the contact form.');
					document.getElementById('login_button').disabled = false;
					document.getElementById('login_button').value = "Login";
				}
			}
		}
		
		req.open( 'POST', query, true );
		req.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8' );
		req.setRequestHeader( 'Content-Length', query.length );
		req.send( query );
	}
}


function register()
{
	if (document.getElementById('username').value == "" || document.getElementById('email').value == "" || document.getElementById('email2').value == "" || document.getElementById('password').value == "" || document.getElementById('password2').value == "" || document.getElementById('captcha').value == "")
	{
		alert('Please fill in all the fields');	
	}
	else if (document.getElementById('email').value != document.getElementById('email2').value)
	{
		alert('The e-mail addresses are not identical');	
	}
	else if (document.getElementById('password').value != document.getElementById('password2').value)
	{
		alert('The passwords are not identical');	
	}
	else if (document.getElementById('password').value.length < 6)
	{
		alert('Your password is too short, use between 6 and 20 characters');	
	}
	else if (isNaN(document.getElementById('captcha').value))
	{
		alert('Obviously you can only use numbers in our security question');	
	}
	else
	{
		var name 	= document.getElementById('username').value;
		var email 	= document.getElementById('email').value;
		var pass  	= document.getElementById('password').value;
		var captcha	= document.getElementById('captcha').value;
		
		document.getElementById('register_button').disabled = true;
		document.getElementById('register_button').value = "Processing...";
		
		name	= name.replace(/\n/g, "<br />");
		name	= name.replace(/&/g, "5917643589417");
		email	= email.replace(/\n/g, "<br />");
		email	= email.replace(/&/g, "5917643589417");
		pass	= pass.replace(/\n/g, "<br />");
		pass	= pass.replace(/&/g, "5917643589417");
		
		var query	= "includes/register_check.inc.php?name=" + name + "&email=" + email + "&pass=" + pass + "&captcha=" + captcha + "&random=" + Math.random();
		req			= new GetXmlHttpObject();
		
		req.onreadystatechange = function()
		{
			if( req.readyState == 4 )
			{
				if (req.responseText == "reload")
				{
					window.location = "http://www.privatelineage.com/lineage2/register";
				}
				else
				{
					alert(req.responseText);
					document.getElementById('register_button').disabled = false;
					document.getElementById('register_button').value = "Next Step";
				}
			}
		}
		
		req.open( 'POST', query, true );
		req.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8' );
		req.setRequestHeader( 'Content-Length', query.length );
		req.send( query );
	}
}


function profile_userinfo()
{
	if (document.getElementById('user_name').value == "" || document.getElementById('user_email').value == "")
	{
		alert('Both Username and E-mail are required fields');
	}
	else
	{
		var username	= document.getElementById('user_name').value;
		var email		= document.getElementById('user_email').value;
		var pass		= document.getElementById('user_pass').value;
		
		document.getElementById('edit_button').disabled = true;
		document.getElementById('edit_button').value = "Processing...";
		
		username	= username.replace(/\n/g, "<br />");
		username	= username.replace(/&/g, "5917643589417");
		email		= email.replace(/\n/g, "<br />");
		email		= email.replace(/&/g, "5917643589417");
		pass		= pass.replace(/\n/g, "<br />");
		pass		= pass.replace(/&/g, "5917643589417");
		
		var query	= "includes/edit_profile.inc.php?tab=userinfo&username=" + username + "&email=" + email + "&pass=" + pass;
		
		req			= new GetXmlHttpObject();
		
		req.onreadystatechange = function()
		{
			if( req.readyState == 4 )
			{
				if (req.responseText == "reload")
				{
					alert('Your account has been updated');
					window.location = "http://www.privatelineage.com/lineage2/profile/userinfo";
				}
				else
				{
					alert(req.responseText);
					document.getElementById('edit_button').disabled = false;
					document.getElementById('edit_button').value = "Edit";
				}
			}
		}
		
		req.open( 'POST', query, true );
		req.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8' );
		req.setRequestHeader( 'Content-Length', query.length );
		req.send( query );
	}
}


function profile_serverinfo()
{
	if (document.getElementById('servername').value == "" || document.getElementById('website').value == "" || document.getElementById('chronicle').value == "" || document.getElementById('type').value == "" || document.getElementById('country').value == "" || document.getElementById('xp').value == "" || document.getElementById('sp').value == "" || document.getElementById('adena').value == "" || document.getElementById('drops').value == "" || document.getElementById('spoil').value == "" || document.getElementById('description').value == "" || document.getElementById('server_ip').value == "" || document.getElementById('server_port').value == "") 
	{
		alert('All fields except banner are required');	
	}
	else if (isNaN(document.getElementById('xp').value) || isNaN(document.getElementById('sp').value) || isNaN(document.getElementById('adena').value) || isNaN(document.getElementById('drops').value) || isNaN(document.getElementById('spoil').value))
	{
		alert('Obviously you can only use numbers for the rates');
	}
	else if (document.getElementById('description').value.length < 30)
	{
		alert('Please use a minimum of 30 characters in your description\nThis way people can see what makes your server special');	
	}
	else
	{
		var servername	= document.getElementById('servername').value;
		var website		= document.getElementById('website').value;
		var banner		= document.getElementById('banner').value;
		var chronicle	= document.getElementById('chronicle').value;
		var type		= document.getElementById('type').value;
		var country		= document.getElementById('country').value;
		var xp			= document.getElementById('xp').value;
		var sp			= document.getElementById('sp').value;
		var adena		= document.getElementById('adena').value;
		var	drops		= document.getElementById('drops').value;
		var spoil		= document.getElementById('spoil').value;
		var	description	= document.getElementById('description').value;
		var server_ip	= document.getElementById('server_ip').value;
		var server_port	= document.getElementById('server_port').value;
		
		document.getElementById('edit_button').disabled = true;
		document.getElementById('edit_button').value = "Processing...";
		
		servername	= servername.replace(/\n/g, "<br />");
		servername	= servername.replace(/&/g, "5917643589417");
		website		= website.replace(/\n/g, "<br />");
		website		= website.replace(/&/g, "5917643589417");
		banner		= banner.replace(/\n/g, "<br />");
		banner		= banner.replace(/&/g, "5917643589417");
		description	= description.replace(/\n/g, "<br />");
		description	= description.replace(/&/g, "5917643589417");
		server_ip	= server_ip.replace(/\n/g, "<br />");
		server_ip	= server_ip.replace(/&/g, "5917643589417");
		server_port	= server_port.replace(/\n/g, "<br />");
		server_port	= server_port.replace(/&/g, "5917643589417");
		
		var query	= "includes/edit_profile.inc.php?tab=serverinfo&servername=" + servername + "&website=" + website + "&banner=" + banner + "&server_ip=" + server_ip + "&server_port=" + server_port + "&chronicle=" + chronicle + "&type=" + type + "&country=" + country + "&xp=" + xp + "&sp=" + sp + "&adena=" + adena + "&drops=" + drops + "&spoil=" + spoil + "&description=" + description;
		
		req			= new GetXmlHttpObject();
		
		req.onreadystatechange = function()
		{
			if( req.readyState == 4 )
			{
				if (req.responseText == "reload")
				{
					alert('Your account has been updated');
					window.location = "http://www.privatelineage.com/lineage2/profile/serverinfo";
				}
				else
				{
					alert(req.responseText);
					document.getElementById('edit_button').disabled = false;
					document.getElementById('edit_button').value = "Edit";
				}
			}
		}
		
		req.open( 'POST', query, true );
		req.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8' );
		req.setRequestHeader( 'Content-Length', query.length );
		req.send( query );
	}
}


function contact()
{
	if (document.getElementById('name').value == "" || document.getElementById('email').value == "" || document.getElementById('subject').value == "" || document.getElementById('message').value == "" || document.getElementById('captcha').value == "")	
	{
		alert('Please fill in all the fields');	
	}
	else if (document.getElementById('message').value.length < 30)
	{
		alert('A minimum of 30 characters is required in the message field');
	}
	else if (isNaN(document.getElementById('captcha').value))
	{
		alert('Obviously you can only use numbers in our security question');	
	}
	else
	{
		var name	= document.getElementById('name').value;
		var email	= document.getElementById('email').value;
		var subject	= document.getElementById('subject').value;
		var message	= document.getElementById('message').value;
		var captcha	= document.getElementById('captcha').value;
		
		document.getElementById('contact_button').disabled = true;
		document.getElementById('contact_button').value = "Processing...";
		
		name	= name.replace(/\n/g, "<br />");
		name	= name.replace(/&/g, "5917643589417");
		email	= email.replace(/\n/g, "<br />");
		email	= email.replace(/&/g, "5917643589417");
		message	= message.replace(/\n/g, "<br />");
		message	= message.replace(/&/g, "5917643589417");
		
		var query	= "includes/contact_check.inc.php?name=" + name + "&email=" + email + "&subject=" + subject + "&message=" + message + "&captcha=" + captcha + "random=" + Math.random();
		
		req			= new GetXmlHttpObject();
		
		req.onreadystatechange = function()
		{
			if( req.readyState == 4 )
			{
				if (req.responseText == "reload")
				{
					alert('Your message has been send.\nYou should get a reply within 24 hours.');
					window.location = "http://www.privatelineage.com/lineage2/serverlist";
				}
				else
				{
					alert(req.responseText);
					document.getElementById('contact_button').disabled = false;
					document.getElementById('contact_button').value = "Send Message";
				}
			}
		}
		
		req.open( 'POST', query, true );
		req.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8' );
		req.setRequestHeader( 'Content-Length', query.length );
		req.send( query );
	}
}


function vote(sid, url)
{
	if (document.getElementById('captcha').value == "")
	{
		alert('You have to answer the question');
	}
	else if (isNaN(document.getElementById('captcha').value))
	{
		alert('Obviously you can only use numbers in our security question');
	}
	else
	{
		document.getElementById('vote_button').disabled = true;
		
		var captcha = document.getElementById('captcha').value;
		var query	= "includes/in_check.inc.php?captcha=" + captcha + "&sid=" + sid;
		
		req			= new GetXmlHttpObject();
		
		req.onreadystatechange = function()
		{
			if( req.readyState == 4 )
			{
				if (req.responseText == "reload")
				{
					alert('Your vote has been recieved, thank you for using PrivateLineage.com');
					window.location = "http://www.privatelineage.com/" + url;
				}
				else
				{
					alert(req.responseText);
					document.getElementById('vote_button').disabled = false;
					var img = document.getElementById("captcha_img");
  					img.src = "includes/capt.php?code="+Math.random();
				}
			}
		}
		
		req.open( 'POST', query, true );
		req.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8' );
		req.setRequestHeader( 'Content-Length', query.length );
		req.send( query );
		
	}
}


function search()
{
	if (document.getElementById('name').value == "" && document.getElementById('type').value == "" && document.getElementById('rates').value == "" && document.getElementById('chronicle').value == "" && document.getElementById('country').value == "")
	{
		alert('Please fill in at least one field');
	}
	else
	{
		var name		= document.getElementById('name').value;
		var type		= document.getElementById('type').value;
		var rates		= document.getElementById('rates').value;
		var chronicle	= document.getElementById('chronicle').value;
		var country		= document.getElementById('country').value;
		
		if (document.getElementById('name').value != "" && document.getElementById('name').value.length < 3)
		{
			alert('The name field requires a minimum of 3 characters');
		}
		
		document.getElementById('search_button').disabled = true;
		document.getElementById('search_button').value = "Processing...";
		
		name	= name.replace(/\n/g, "<br />");
		name	= name.replace(/&/g, "5917643589417");
		
		var query	= "includes/search_check.inc.php?name=" + name + "&type=" + type + "&rates=" + rates + "&chronicle=" + chronicle + "&country=" + country + "&randomid=" + Math.random();
		
		req			= new GetXmlHttpObject();
		
		document.getElementById('search_results').innerHTML = '<div class="loading"><img src="images/loading.gif" alt="Loading" title="Loading"></div>';
		
		req.onreadystatechange = function()
		{
			if( req.readyState == 4 )
			{
				document.getElementById('search_results').innerHTML = req.responseText;
				document.getElementById('search_button').disabled = false;
				document.getElementById('search_button').value = "Search";
			}
		}
		
		req.open( 'POST', query, true );
		req.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8' );
		req.setRequestHeader( 'Content-Length', query.length );
		req.send( query );
	}
}


function comment(sid)
{
	if (document.getElementById('playtime').value == "" || document.getElementById('review').value == "" || document.getElementById('gm_kindness').value == "" || document.getElementById('gm_skill').value == "" || document.getElementById('gm_avail').value == "" || document.getElementById('serv_stability').value == "" || document.getElementById('serv_bugs').value == "" || document.getElementById('serv_online').value == "" || document.getElementById('com_events').value == "" || document.getElementById('com_kindness').value == "" || document.getElementById('com_economy').value == "")
	{
		alert('Please fill in all the fields');
	}
	else
	{
		var playtime			= document.getElementById('playtime').value;
		var review				= document.getElementById('review').value;
		var gm_kindness			= document.getElementById('gm_kindness').value;
		var gm_skill			= document.getElementById('gm_skill').value;
		var gm_avail			= document.getElementById('gm_avail').value;
		var serv_stability		= document.getElementById('serv_stability').value;
		var serv_bugfixing		= document.getElementById('serv_bugs').value;
		var serv_onlinetime		= document.getElementById('serv_online').value;
		var com_events			= document.getElementById('com_events').value;
		var com_kindness		= document.getElementById('com_kindness').value;
		var com_economy			= document.getElementById('com_economy').value;
		
		review	= review.replace(/\n/g, "<br />");
		review	= review.replace(/&/g, "5917643589417");
		
		document.getElementById('comment_button').disabled = true;
		document.getElementById('comment_button').value = "Processing...";
		
		var query	= "includes/review_check.inc.php?playtime="+playtime+"&review="+review+"&gm_kindness="+gm_kindness+"&gm_skill="+gm_skill+"&gm_avail="+gm_avail+"&serv_stability="+serv_stability+"&serv_bugfixing="+serv_bugfixing+"&serv_onlinetime="+serv_onlinetime+"&com_events="+com_events+"&com_kindness="+com_kindness+"&com_economy="+com_economy+"&sid="+sid;
		req			= new GetXmlHttpObject();
		
		req.onreadystatechange = function()
		{
			if( req.readyState == 4 )
			{
				if (req.responseText == "reload")
				{
					alert('Your review has been added');
				}
				else
				{
					alert(req.responseText);
					document.getElementById('comment_button').disabled = false;
					document.getElementById('comment_button').value = "Place Review";
				}
			}
		}
		
		req.open( 'POST', query, true );
		req.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8' );
		req.setRequestHeader( 'Content-Length', query.length );
		req.send( query );	
	}
}

function servercheck(id)
{
	if (!isNaN(id))
	{
		var query	= "includes/servercheck.inc.php?id=" + id;
		req			= new GetXmlHttpObject();
		
		req.onreadystatechange = function()
		{
			if( req.readyState == 4 )
			{
				document.getElementById('servercheck').innerHTML = req.responseText;
				document.getElementById('servercheck').style.cursor = "auto";
			}
		}
		
		req.open( 'POST', query, true );
		req.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8' );
		req.setRequestHeader( 'Content-Length', query.length );
		req.send( query );	
	}
	else
	{
		alert('Invalid id recieved');	
	}
}


function selectlist(field, value)
{
	var query	= "includes/adminincludes.inc.php?field=" + field + "&value=" + value;
	req			= new GetXmlHttpObject();
	
	req.onreadystatechange = function()
	{
		if( req.readyState == 4 )
		{
			document.getElementById('admin_ajaxresult').innerHTML = req.responseText;
		}
	}
	
	req.open( 'POST', query, true );
	req.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8' );
	req.setRequestHeader( 'Content-Length', query.length );
	req.send( query );	
}


function add_quest()
{
	if (document.getElementById('quest_name').value == "" || document.getElementById('quest_info').value == ""	|| document.getElementById('quest_start_npc').value == "" || document.getElementById('quest_reward').value == "")
	{
		alert('Please fill in all open fields');	
	}
	else
	{
		document.getElementById('add_quest_button').disabled = true;
		document.getElementById('add_quest_button').value = "Processing...";
		
		var name		= document.getElementById('quest_name').value;
		var info		= document.getElementById('quest_info').value;
		var level		= document.getElementById('quest_level').value;
		var repeat		= document.getElementById('quest_repeat').value;
		var solo		= document.getElementById('quest_solo').value;
		var start_npc	= document.getElementById('quest_start_npc').value;
		var start_town	= document.getElementById('quest_start_town').value;
		var reward		= document.getElementById('quest_reward').value;
		var type		= document.getElementById('quest_type').value;
		var races		= document.getElementById('quest_races').value;
		var classes		= document.getElementById('quest_classes').value;
		
		name		= name.replace(/\n/g, "<br />");
		name		= name.replace(/&/g, "5917643589417");
		info		= info.replace(/\n/g, "<br />");
		info		= info.replace(/&/g, "5917643589417");
		start_npc	= start_npc.replace(/\n/g, "<br />");
		start_npc	= start_npc.replace(/&/g, "5917643589417");
		reward		= reward.replace(/\n/g, "<br />");
		reward		= reward.replace(/&/g, "5917643589417");
		
		var query	= "includes/admininprocess.inc.php?function=add_quest&name="+name+"&info="+info+"&level="+level+"&repeat="+repeat+"&solo="+solo+"&start_npc="+start_npc+"&start_town="+start_town+"&reward="+reward+"&type="+type+"&races="+races+"&classes="+classes;
		req			= new GetXmlHttpObject();
		
		req.onreadystatechange = function()
		{
			if( req.readyState == 4 )
			{
				if (req.responseText == "reload")
				{
				 	alert("The quest has been added!");
					document.getElementById('add_quest_button').disabled = false;
					document.getElementById('add_quest_button').value = "Add Quest";
				}
				else
				{
					alert(req.responseText);
					document.getElementById('add_quest_button').value = "Error! Contact Glasya";
				}
			}
		}
		
		req.open( 'POST', query, true );
		req.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8' );
		req.setRequestHeader( 'Content-Length', query.length );
		req.send( query );		
	}
}


function edit_quest()
{
	if (document.getElementById('quest_name').value == "" || document.getElementById('quest_info').value == ""	|| document.getElementById('quest_start_npc').value == "" || document.getElementById('quest_reward').value == "")
	{
		alert('Please fill in all open fields');	
	}
	else
	{
		document.getElementById('edit_quest_button').disabled = true;
		document.getElementById('edit_quest_button').value = "Processing...";
		
		var id			= document.getElementById('id').value;
		var name		= document.getElementById('quest_name').value;
		var info		= document.getElementById('quest_info').value;
		var level		= document.getElementById('quest_level').value;
		var repeat		= document.getElementById('quest_repeat').value;
		var solo		= document.getElementById('quest_solo').value;
		var start_npc	= document.getElementById('quest_start_npc').value;
		var start_town	= document.getElementById('quest_start_town').value;
		var reward		= document.getElementById('quest_reward').value;
		var type		= document.getElementById('quest_type').value;
		var races		= document.getElementById('quest_races').value;
		var classes		= document.getElementById('quest_classes').value;
		
		name		= name.replace(/\n/g, "<br />");
		name		= name.replace(/&/g, "5917643589417");
		info		= info.replace(/\n/g, "<br />");
		info		= info.replace(/&/g, "5917643589417");
		start_npc	= start_npc.replace(/\n/g, "<br />");
		start_npc	= start_npc.replace(/&/g, "5917643589417");
		reward		= reward.replace(/\n/g, "<br />");
		reward		= reward.replace(/&/g, "5917643589417");
		
		var query	= "includes/admininprocess.inc.php?function=edit_quest&id="+id+"&name="+name+"&info="+info+"&level="+level+"&repeat="+repeat+"&solo="+solo+"&start_npc="+start_npc+"&start_town="+start_town+"&reward="+reward+"&type="+type+"&races="+races+"&classes="+classes;
		req			= new GetXmlHttpObject();
		
		req.onreadystatechange = function()
		{
			if( req.readyState == 4 )
			{
				if (req.responseText == "reload")
				{
				 	alert("The quest has been edited!");
					document.getElementById('edit_quest_button').disabled = false;
					document.getElementById('edit_quest_button').value = "Edit Quest";
				}
				else
				{
					alert(req.responseText);
					document.getElementById('edit_quest_button').value = "Error! Contact Glasya";
				}
			}
		}
		
		req.open( 'POST', query, true );
		req.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8' );
		req.setRequestHeader( 'Content-Length', query.length );
		req.send( query );		
	}
}


function dropcalc_search()
{
	if (document.getElementById('dropcalc_search').value.length < 3)
	{
		alert('Mimimum input is 3 characters');	
	}
	else
	{
		dropcalc_search_new();
		document.getElementById('dropcalc_output_right').innerHTML = '<div class="loading"><img src="images/loading.gif" alt="Loading" title="Loading"></div>';
	}
}

function dropcalc_search_new()
{
	document.getElementById('dropcalc_search_button').disabled = true;
	document.getElementById('dropcalc_search_button').value = "Processing...";
	document.getElementById('dropcalc_output_left').innerHTML = '<div class="loading"><img src="images/loading.gif" alt="Loading" title="Loading"></div>';
	
	var dropcalc = document.getElementById('dropcalc_search').value;
	dropcalc = dropcalc.replace(/\n/g, "<br />");
	dropcalc = dropcalc.replace(/&/g, "5917643589417");
	
	var query	= "includes/dropcalc_process_new.inc.php?dropcalc=" + dropcalc + "&rid=" + Math.random();
	req			= new GetXmlHttpObject();
	
	req.onreadystatechange = function()
	{
		if( req.readyState == 4 )
		{
			document.getElementById('dropcalc_output_left').innerHTML = req.responseText;
			window.setTimeout(" dropcalc_search_old()", 1000);
		}
	}
	
	req.open( 'POST', query, true );
	req.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8' );
	req.setRequestHeader( 'Content-Length', query.length );
	req.send( query );	
}


function dropcalc_search_old()
{
	document.getElementById('dropcalc_search_button').disabled = true;
	document.getElementById('dropcalc_search_button').value = "Processing...";
	
	var dropcalc = document.getElementById('dropcalc_search').value;
	dropcalc = dropcalc.replace(/\n/g, "<br />");
	dropcalc = dropcalc.replace(/&/g, "5917643589417");
	
	var query	= "includes/dropcalc_process_old.inc.php?dropcalc=" + dropcalc + "&rid=" + Math.random();
	req			= new GetXmlHttpObject();
	
	req.onreadystatechange = function()
	{
		if( req.readyState == 4 )
		{
			document.getElementById('dropcalc_output_right').innerHTML = req.responseText;
			document.getElementById('dropcalc_search_button').disabled = false;
			document.getElementById('dropcalc_search_button').value = "Search";
		}
	}
	
	req.open( 'POST', query, true );
	req.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8' );
	req.setRequestHeader( 'Content-Length', query.length );
	req.send( query );	
}


function spotlight_addserver()
{
	if (document.getElementById('start').value == "" || document.getElementById('current').value == "" || document.getElementById('future').value == "" || document.getElementById('lastword').value == "")
	{
		alert('make sure u fill in all the fields');
	}
	else
	{
		document.getElementById('spotlight_addserver').disabled = true;
		document.getElementById('spotlight_addserver').value = "Processing...";
				
		var start 		= document.getElementById('start').value;
		var current 	= document.getElementById('current').value;
		var future 		= document.getElementById('future').value;
		var lastword 	= document.getElementById('lastword').value;
		
		start = start.replace(/\n/g, "<br />");
		start = start.replace(/&/g, "5917643589417");
		current = current.replace(/\n/g, "<br />");
		current = current.replace(/&/g, "5917643589417");
		future = future.replace(/\n/g, "<br />");
		future = future.replace(/&/g, "5917643589417");
		lastword = lastword.replace(/\n/g, "<br />");
		lastword = lastword.replace(/&/g, "5917643589417");
		
		var query	= "includes/spotlight_addserver_process.inc.php?start=" + start + "&current=" + current + "&future=" + future + "&lastword=" + lastword + "&rid=" + Math.random();
		req			= new GetXmlHttpObject();
		
		req.onreadystatechange = function()
		{
			if( req.readyState == 4 )
			{
				if (req.responseText == "reload")
				{
					alert('Your spotlight request has been recieved and is awaiting approval.');
					document.getElementById('spotlight_addserver').value = "Recieved";
				}
				else
				{
					alert('Error: please report at the contact form!');
				}
			}
		}
		
		req.open( 'POST', query, true );
		req.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8' );
		req.setRequestHeader( 'Content-Length', query.length );
		req.send( query );
	}
}
	

function add_cron_server()
{
	if ((document.getElementById('cron_name').value == "") || (document.getElementById('cron_ip').value == "") || (document.getElementById('cron_port').value == "") || (document.getElementById('cron_number').value == ""))
	{
		alert('Please fill in all the fields');
	}
	else
	{
		var name 	= document.getElementById('cron_name').value;
		var ip 		= document.getElementById('cron_ip').value;
		var port 	= document.getElementById('cron_port').value;
		var number 	= document.getElementById('cron_number').value;
		var active	= document.getElementById('cron_active').value;
		
		name	= name.replace(/\n/g, "<br />");
		name	= name.replace(/&/g, "5917643589417");
		ip 		= ip.replace(/\n/g, "<br />");
		ip 		= ip.replace(/&/g, "5917643589417");
		port	= port.replace(/\n/g, "<br />");
		port	= port.replace(/&/g, "5917643589417");
		number	= number.replace(/\n/g, "<br />");
		number	= number.replace(/&/g, "5917643589417");

		var query	= "includes/cron_addserver.inc.php?name=" + name + "&ip=" + ip + "&port=" + port + "&number=" + number + "&active=" + active + "&rid=" + Math.random();
		req			= new GetXmlHttpObject();
		
		req.onreadystatechange = function()
		{
			if( req.readyState == 4 )
			{
				if (req.responseText == "reload")
				{
					window.location = "http://www.privatelineage.com/lineage2/profile/textmessage";
				}
				else
				{
					alert(req.responseText);
				}
			}
		}
		
		req.open( 'POST', query, true );
		req.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8' );
		req.setRequestHeader( 'Content-Length', query.length );
		req.send( query );
	}
}


function edit_cron_server_box(id, a)
{
	
	document.getElementById('edit_cron_server_wrapper_' + a).style.display = "block";
	document.getElementById('edit_cron_server_wrapper_' + a).style.border = "1px solid black";
}


function edit_cron_server(id, a)
{
	if ((document.getElementById('edit_cron_name_' + a).value == "") || (document.getElementById('edit_cron_ip_' + a).value == "") || (document.getElementById('edit_cron_port_' + a).value == "") || (document.getElementById('edit_cron_number_' + a).value == ""))
	{
		alert('Please fill in all the fields');
	}
	else
	{
		var name 	= document.getElementById('edit_cron_name_' + a).value;
		var ip 		= document.getElementById('edit_cron_ip_' + a).value;
		var port 	= document.getElementById('edit_cron_port_' + a).value;
		var number 	= document.getElementById('edit_cron_number_' + a).value;
		var active	= document.getElementById('edit_cron_active_' + a).value;
		
		name	= name.replace(/\n/g, "<br />");
		name	= name.replace(/&/g, "5917643589417");
		ip 		= ip.replace(/\n/g, "<br />");
		ip 		= ip.replace(/&/g, "5917643589417");
		port	= port.replace(/\n/g, "<br />");
		port	= port.replace(/&/g, "5917643589417");
		number	= number.replace(/\n/g, "<br />");
		number	= number.replace(/&/g, "5917643589417");

		var query	= "includes/cron_editserver.inc.php?id=" + id + "&name=" + name + "&ip=" + ip + "&port=" + port + "&number=" + number + "&active=" + active + "&rid=" + Math.random();
		req			= new GetXmlHttpObject();
		
		req.onreadystatechange = function()
		{
			if( req.readyState == 4 )
			{
				if (req.responseText == "reload")
				{
					window.location = "http://www.privatelineage.com/lineage2/profile/textmessage";
				}
				else if (req.responseText == "reload2")
				{
					alert('The server did not respond, therefore it can not be set to active at this point.\nYou can activate it as soon as it comes online!');
					window.location = "http://www.privatelineage.com/lineage2/profile/textmessage";
				}
				else
				{
					alert(req.responseText);
				}
			}
		}
		
		req.open( 'POST', query, true );
		req.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8' );
		req.setRequestHeader( 'Content-Length', query.length );
		req.send( query );
	}
}


function del_cron_server(id)
{
	var answer = confirm("Are you sure you want to delete this server?")
	if (answer)
	{
		var query	= "includes/cron_delserver.inc.php?id=" + id;
		req			= new GetXmlHttpObject();
		
		req.onreadystatechange = function()
		{
			if( req.readyState == 4 )
			{
				if (req.responseText == "reload")
				{
					window.location = "http://www.privatelineage.com/lineage2/profile/textmessage";
				}
				else
				{
					alert(req.responseText);
				}
			}
		}
		
		req.open( 'POST', query, true );
		req.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8' );
		req.setRequestHeader( 'Content-Length', query.length );
		req.send( query );
	}
}


function add_quest_comment(id)
{
	if ((document.getElementById('quest_comment_name').value == "") || (document.getElementById('quest_comment_text').value == "") || (document.getElementById('quest_comment_captcha').value == ""))
	{
		alert('Please fill in all the fields');	
	}
	else
	{
		document.getElementById('quest_comment_button').disabled = true;
		document.getElementById('quest_comment_button').value = "Processing...";
		
		var name = document.getElementById('quest_comment_name').value;
		var text = document.getElementById('quest_comment_text').value;
		var capt = document.getElementById('quest_comment_captcha').value;
		
		name	= name.replace(/\n/g, "<br />");
		name	= name.replace(/&/g, "5917643589417");
		text	= text.replace(/\n/g, "<br />");
		text	= text.replace(/&/g, "5917643589417");
		capt	= capt.replace(/\n/g, "<br />");
		capt	= capt.replace(/&/g, "5917643589417");
		
		var query	= "includes/quest_comment_add.inc.php?qid=" + id + "&name=" + name + "&text=" + text + "&capt=" + capt + "&rid=" + Math.random();
		req			= new GetXmlHttpObject();
		
		req.onreadystatechange = function()
		{
			if( req.readyState == 4 )
			{
				if (req.responseText == "reload")
				{
					alert('Your comment has been added');
				}
				else
				{
					alert(req.responseText);
					document.getElementById('quest_comment_button').disabled = false;
					document.getElementById('quest_comment_button').value = "Add Comment";
				}
			}
		}
		
		req.open( 'POST', query, true );
		req.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8' );
		req.setRequestHeader( 'Content-Length', query.length );
		req.send( query );
	}
}


function start_interval()
{
	display_news();
	display_spotlight();
	setInterval('display_news()', 5000);
	setInterval('display_spotlight()', 5000);		
}


function display_news()
{
	var query2	= "includes/site_news.inc.php?rid=" + Math.random();
	req2		= new GetXmlHttpObject();
	
	req2.onreadystatechange = function()
	{
		if( req2.readyState == 4 )
		{
			document.getElementById('top5_news').innerHTML = req2.responseText;	
		}
	}
	
	req2.open( 'POST', query2, true );
	req2.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8' );
	req2.setRequestHeader( 'Content-Length', query2.length );
	req2.send( query2 );
}


function display_spotlight()
{
	var url		= document.location.href;
	var page	= url.split('/');

	if ((page[5] == "serverlist") || (document.location.href == "http://www.privatelineage.com/") || (document.location.href == "http://www.privatelineage.com/lineage2/serverlist"))
	{
		var query3	= "includes/spotlight.inc.php?rid=" + Math.random();
		req3			= new GetXmlHttpObject();
		
		req3.onreadystatechange = function()
		{
			if( req3.readyState == 4 )
			{
				document.getElementById('spotlight_wrapper_display').innerHTML = req3.responseText;
			}
		}
		
		req3.open( 'POST', query3, true );
		req3.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8' );
		req3.setRequestHeader( 'Content-Length', query3.length );
		req3.send( query3 ); 
	}
}


function add_news_comment(id)
{
	if (document.getElementById('news_comment_text').value != "")
	{
		document.getElementById('news_comment_button').disabled = true;
		document.getElementById('news_comment_button').value = "Processing...";
		
		var comment = document.getElementById('news_comment_text').value;
		comment	= comment.replace(/\n/g, "<br />");
		comment	= comment.replace(/&/g, "5917643589417");
		
		var query	= "includes/news_comment_add.inc.php?news_id=" + id + "&comment=" + comment + "&rid=" + Math.random();
		req			= new GetXmlHttpObject();
		
		req.onreadystatechange = function()
		{
			if( req.readyState == 4 )
			{
				if ( req.responseText == "reload" )
				{
					alert('Your comment has been added');
					document.getElementById('news_comment_button').value = "Comment Added";
				}
				else
				{
					alert( req.responseText );
					document.getElementById('news_comment_button').disabled = false;
					document.getElementById('news_comment_button').value = "Add Comment";
				}
			}
		}
		
		req.open( 'POST', query, true );
		req.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8' );
		req.setRequestHeader( 'Content-Length', query.length );
		req.send( query ); 
	}
	else
	{
		alert('Please fill in a reaction');	
	}
}


function mascotte_text(id, text)
{
	document.getElementById(id).innerHTML = text;
}


function register_field_check(id, field, value)
{
	if (field == "username")
	{
		value	= value.replace(/\$|,|@|#|~|`|\%|\*|\^|\&|\(|\)|\+|\=|\[|\-|\_|\]|\[|\}|\{|\;|\:|\'|\"|\<|\>|\?|\||\\|\!|\$|\.|\&/g, "_");
	}
	value	= value.replace(/\n/g, "<br />");
	value	= value.replace(/&/g, "5917643589417");
	
	var query	= "includes/register_field_check.inc.php?field=" + field + "&value=" + value + "&rid=" + Math.random();
	req			= new GetXmlHttpObject();
	
	req.onreadystatechange = function()
	{
		if( req.readyState == 4 )
		{
			if (req.responseText == "fail")
			{
				document.getElementById(field).value = value;
				document.getElementById(id).innerHTML = '<img src="images/flag_red.gif" alt="Failed" title="Failed" />';
				document.getElementById(field).style.backgroundColor = "red";
			}
			else if (req.responseText == "pass")
			{
				document.getElementById(field).value = value;
				document.getElementById(id).innerHTML = '<img src="images/flag_green.gif" alt="Passed" title="Passed" />';
				document.getElementById(field).style.backgroundColor = "#A2C810";
			}
			else
			{
				alert(req.responseText);	
			}
		}
	}
	
	req.open( 'POST', query, true );
	req.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8' );
	req.setRequestHeader( 'Content-Length', query.length );
	req.send( query ); 
}


function register_serverinfo()
{
	if (document.getElementById('servername').value == "" || document.getElementById('website').value == "" || document.getElementById('chronicle').value == "" || document.getElementById('type').value == "" || document.getElementById('country').value == "" || document.getElementById('xp').value == "" || document.getElementById('sp').value == "" || document.getElementById('adena').value == "" || document.getElementById('drops').value == "" || document.getElementById('spoil').value == "" || document.getElementById('description').value == "" || document.getElementById('server_ip').value == "" || document.getElementById('server_port').value == "") 
	{
		alert('All fields except banner are required');	
	}
	else if (isNaN(document.getElementById('xp').value) || isNaN(document.getElementById('sp').value) || isNaN(document.getElementById('adena').value) || isNaN(document.getElementById('drops').value) || isNaN(document.getElementById('spoil').value))
	{
		alert('Obviously you can only use numbers for the rates');
	}
	else if (document.getElementById('description').value.length < 30)
	{
		alert('Please use a minimum of 30 characters in your description\nThis way people can see what makes your server special');	
	}
	else
	{
		var servername	= document.getElementById('servername').value;
		var website		= document.getElementById('website').value;
		var banner		= document.getElementById('banner').value;
		var chronicle	= document.getElementById('chronicle').value;
		var type		= document.getElementById('type').value;
		var country		= document.getElementById('country').value;
		var xp			= document.getElementById('xp').value;
		var sp			= document.getElementById('sp').value;
		var adena		= document.getElementById('adena').value;
		var	drops		= document.getElementById('drops').value;
		var spoil		= document.getElementById('spoil').value;
		var	description	= document.getElementById('description').value;
		var server_ip	= document.getElementById('server_ip').value;
		var server_port	= document.getElementById('server_port').value;
		
		document.getElementById('edit_button').disabled = true;
		document.getElementById('edit_button').value = "Processing...";
		
		servername	= servername.replace(/\n/g, "<br />");
		servername	= servername.replace(/&/g, "5917643589417");
		website		= website.replace(/\n/g, "<br />");
		website		= website.replace(/&/g, "5917643589417");
		banner		= banner.replace(/\n/g, "<br />");
		banner		= banner.replace(/&/g, "5917643589417");
		description	= description.replace(/\n/g, "<br />");
		description	= description.replace(/&/g, "5917643589417");
		server_ip	= server_ip.replace(/\n/g, "<br />");
		server_ip	= server_ip.replace(/&/g, "5917643589417");
		server_port	= server_port.replace(/\n/g, "<br />");
		server_port	= server_port.replace(/&/g, "5917643589417");
		
		var query	= "includes/edit_profile.inc.php?tab=serverinfo&servername=" + servername + "&website=" + website + "&banner=" + banner + "&server_ip=" + server_ip + "&server_port=" + server_port + "&chronicle=" + chronicle + "&type=" + type + "&country=" + country + "&xp=" + xp + "&sp=" + sp + "&adena=" + adena + "&drops=" + drops + "&spoil=" + spoil + "&description=" + description;
		
		req			= new GetXmlHttpObject();
		
		req.onreadystatechange = function()
		{
			if( req.readyState == 4 )
			{
				if (req.responseText == "reload")
				{
					window.location = "http://www.privatelineage.com/lineage2/register";
				}
				else
				{
					alert(req.responseText);
					document.getElementById('edit_button').disabled = false;
					document.getElementById('edit_button').value = "Next Step";
				}
			}
		}
		
		req.open( 'POST', query, true );
		req.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8' );
		req.setRequestHeader( 'Content-Length', query.length );
		req.send( query );
	}
}


function register_final_step()
{
	var query	= "includes/register_final_step.inc.php";
	req			= new GetXmlHttpObject();
	
	req.onreadystatechange = function()
	{
		if( req.readyState == 4 )
		{
			if (req.responseText == "reload")
			{
				window.location = "http://www.privatelineage.com/lineage2/profile";
			}
		}
	}
	
	req.open( 'POST', query, true );
	req.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8' );
	req.setRequestHeader( 'Content-Length', query.length );
	req.send( query ); 	
}


function register_sound(id, file)
{
	<!--document.getElementById(id).innerHTML = '<embed src="voice/' + file + '" width="0" height="0" autostart="true" loop="false"></embed>';-->
}


function GetXmlHttpObject()
{
	var xmlHttp = null;
	try
	{
		// Firefox, Opera 8.0+, Safari
		xmlHttp = new XMLHttpRequest();
	}
	catch (e)
	{
		//Internet Explorer
		try
		{
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}