members_online_open=false;
	var browser = '';
	var version = '';
	var entrance = '';
	var cond = '';
	
function isOLD()
	{
		if(browser=='IE' && version<7)
			{
				return true;
			}
			else
			{
				return false;
			}
	}
	
function getScrollWidth()
{
   var w = window.pageXOffset ||
           document.body.scrollLeft ||
           document.documentElement.scrollLeft;
           
   return w ? w : 0;
}

function getScrollHeight()
{
   var h = window.pageYOffset ||
           document.body.scrollTop ||
           document.documentElement.scrollTop;
           
   return h ? h : 0;
}

function stripslashes(str) {
str=str.replace(/\\'/g,'\'');
str=str.replace(/\\"/g,'"');
str=str.replace(/\\\\/g,'\\');
str=str.replace(/\\0/g,'\0');
return str;
}

function urldecode(str) {
return unescape(str.replace('+', ' '));
}

function urlencode(str) {
return escape(str).replace(/\+/g,'%2B').replace(/%20/g, '+').replace(/\*/g, '%2A').replace(/\//g, '%2F').replace(/@/g, '%40');
}

function dologin(form)
	{
		if(form.tp_login_name.value=="")
			{
				alert("Please type in your username");
				return false;
			}

		if(form.tp_login_password.value=="")
			{
				alert("Please type in your password");
				return false;
			}

		new Ajax.Request('exo.ajax.php?act=login', {
			method: 'post',
			parameters: {uname: form.tp_login_name.value, pass: form.tp_login_password.value},
			onSuccess: function(transport) {
				response = transport.responseText;

				if(response == "0")
					{
						alert("Please type in your username");
						return false;
					}

				if(response == "1")
					{
						alert("Please type in your password");
						return false;
					}

				if(response == "2")
					{
						alert("Invalid username or password");
						return false;
					}

				if(response == "3")
					{
						alert("Invalid username or password");
						return false;
					}
			
				if(response == "4")
					{
						alert("The member group you are in does not allow you to login");
						return false;
					}

				if(response == "5")
					{
						document.getElementById("tp_login_form").innerHTML = "Login successful. Please wait ...";
						window.location.reload();
					}
			},
			onFailure: function(){ alert('Something went wrong...') }
		});
	}

function register_account(form)
	{
		if(form.tp_username.value=="")
			{
				alert("Please specify a username");
				Element.show('register_account_button_field');
				return false;
			}

		if(form.tp_realname.value=="")
			{
				alert("Please tell us your true full name");
				Element.show('register_account_button_field');
				return false;
			}

		if(form.tp_password1.value=="")
			{
				alert("Please specify a password");
				Element.show('register_account_button_field');
				return false;
			}

		if(form.tp_password2.value=="")
			{
				alert("Please retype your password");
				Element.show('register_account_button_field');
				return false;
			}

		if(form.tp_password2.value!=form.tp_password1.value)
			{
				alert("retyped password does not match with first specified password");
				Element.show('register_account_button_field');
				return false;
			}

		if(form.tp_email1.value=="")
			{
				alert("Please tell us your email");
				Element.show('register_account_button_field');
				return false;
			}

		if(form.tp_email2.value=="")
			{
				alert("Please retype your email");
				Element.show('register_account_button_field');
				return false;
			}

		if(form.tp_email2.value!=form.tp_email1.value)
			{
				alert("retyped email does not match with first specified email");
				Element.show('register_account_button_field');
				return false;
			}

		new Ajax.Request('exo.ajax.php?act=register', {
			method: 'post',
			parameters: {tp_realname: form.tp_realname.value, tp_username: form.tp_username.value, tp_password1: form.tp_password1.value, tp_password2: form.tp_password2.value, tp_email1: form.tp_email1.value, tp_email2: form.tp_email2.value, tp_bdaym: form.tp_bday_Month.value, tp_bdayd: form.tp_bday_Day.value, tp_bdayy: form.tp_bday_Year.value},
			onCreate: function(transport) {
				Element.hide('register_account_button_field');
			},
			onSuccess: function(transport) {
				response = transport.responseText;

				if(response == "1")
					{
						alert("Please specify a username");
						Element.show('register_account_button_field');
						return false;
					}

				if(response == "2")
					{
						alert("Please specify a password");
						Element.show('register_account_button_field');
						return false;
					}

				if(response == "3")
					{
						alert("Please retype your password");
						Element.show('register_account_button_field');
						return false;
					}

				if(response == "4")
					{
						alert("retyped password does not match with first specified password");
						Element.show('register_account_button_field');
						return false;
					}

				if(response == "5")
					{
						alert("Please tell us your email");
						Element.show('register_account_button_field');
						return false;
					}

				if(response == "6")
					{
						alert("Please retype your email");
						Element.show('register_account_button_field');
						return false;
					}

				if(response == "7")
					{
						alert("retyped email does not match with first specified email");
						Element.show('register_account_button_field');
						return false;
					}

				if(response == "8")
					{
						alert("You have specified a invalid email");
						Element.show('register_account_button_field');
						return false;
					}

				if(response == "9")
					{
						alert("The username that you have requested has already been taken");
						Element.show('register_account_button_field');
						return false;
					}

				if(response == "10")
					{
						alert("The email that you have specifed is already registered with another account. Please try again.");
						Element.show('register_account_button_field');
						return false;
					}


				if(response == "11")
					{
						alert("Your current IP address is currently registered with a account");
						Element.show('register_account_button_field');
						return false;
					}

				if(response == "12")
					{
						alert("Please tell us your real true full name");
						Element.show('register_account_button_field');
						return false;
					}

				Element.hide('register_account_button_field');
				Element.update('register_page_content',response);

			},
			onFailure: function(){ alert('Something went wrong...') }
		});
	}

function post_comment(form)
	{
		if(document.getElementById("gfields").style.display=="block")
			{
				if(form.guest_name.value=='' || form.guest_name.value=="Your Name")
					{
						document.getElementById("comment_error_msg").style.display = 'block';
						document.getElementById("comment_error_msg").innerHTML = 'Please tell us your name.';
						form.guest_name.value='';
						form.guest_name.focus();
						return false;
					}

				if(form.guest_email.value=='' || form.guest_email.value == "Email")
					{
						document.getElementById("comment_error_msg").style.display = 'block';
						document.getElementById("comment_error_msg").innerHTML = 'Please tell us your email.';
						form.guest_email.value='';
						form.guest_email.focus();
						return false;
					}
			}

		if(form.comment_body.value=="")
			{
				document.getElementById("comment_error_msg").style.display = 'block';
				document.getElementById("comment_error_msg").innerHTML = 'Please type in your comment';
				return false;
			}

		new Ajax.Request('exo.ajax.php?act=pcomment', {
			method: 'post',
			parameters: {page: form.comment_page.value, parent: form.comment_parent.value, comment: urlencode(form.comment_body.value), guest_name: urlencode(form.guest_name.value), guest_email: urlencode(form.guest_email.value),reply_to: comment_reply_to_id},
			onSuccess: function(transport) {
				response = transport.responseText;

				if(response == "1")
					{
						alert("Unexpected error");
						Element.hide('comment_form');
						return false;
					}

				if(response == "2")
					{
						alert("Please type in your comment");
						Element.show('comment_form');
						return false;
					}

				if(response == "3")
					{
						alert("You are not logged in! You must be logged in to post a comment!");
						Element.hide('comment_form');
						return false;
					}

				if(response == "4")
					{
						alert("You are not allowed to post comments!");
						Element.hide('comment_form');
						return false;
					}

				if(response == '5')
					{
						alert("Flood Control in effect! Please try again later");
						Element.show('comment_form');
						return false;
					}

				if(response == "6")
					{
						alert("Please do not spam!");
						Element.show('comment_form');
						return false;
					}

				if(response == "7")
					{
						alert("Please enter your name");
						Element.show('comment_form');
						return false;
					}

				if(response == "8")
					{
						alert("You cannot use a username that is already registered. Please login if you are the owner of the account.");
						Element.show('comment_form');
						return false;
					}

				if(response == "9")
					{
						alert("Invalid email address.");
						Element.show('comment_form');
						return false;
					}

				if(response == "10")
					{
						alert("The guest name that you have specified is already in use with another email address. If you are that guest then please type in the correct email address.");
						Element.show('comment_form');
						return false;
					}

				if(response == "11")
					{
						alert("Please try another email.");
						Element.show('comment_form');
						return false;
					}

				if(response == "12")
					{
						alert("Your name cannot exceed 20 characters.");
						Element.show('comment_form');
						return false;
					}

				Element.update('comments_block',response);
			},
			onFailure: function(){ alert('Something went wrong...') }
		});

		Element.hide('comment_form');
	}

function addbuddy(id)
	{
		if(id=="")
			{
				alert("Unexpected Error");
				return false;
			}

		new Ajax.Request('exo.ajax.php?act=addbuddy', {
			method: 'post',
			parameters: {id: id},
			onSuccess: function(transport) {
				response = transport.responseText;

				if(response == "1")
					{
						alert("Unexpected Error");
						return false;
					}

				Element.update('buddied_users',response);
			},
			onFailure: function(){ alert('Something went wrong...') }
		});

		Element.hide('add_buddy');
	}

function forum_post_reply(form)
	{
		if(form.post_body.value=="")
			{
				Element.show('forum_reply_error_msg');
				Element.update('forum_reply_error_msg','Please type in your reply');
				return false;
			}

		new Ajax.Request('exo.ajax.php?act=forum_preply', {
			method: 'post',
			parameters: {topic: form.topic_id.value, reply: urlencode(form.post_body.value)},
			onCreate: function(transport) {
				Element.show('processing_msg');
			},
			onSuccess: function(transport) {
				Element.hide('processing_msg');
				response = transport.responseText;

				if(response == "1")
					{
						alert("Unexpected error");
						Element.hide('forum_reply_form');
						return false;
					}

				if(response == "2")
					{
						alert("Please type in your reply");
						Element.show('forum_reply_form');
						return false;
					}

				if(response == "3")
					{
						alert("You are not logged in! You must be logged in to post a reply!");
						Element.hide('forum_reply_form');
						return false;
					}

				if(response == "4")
					{
						alert("You are not allowed to post replies in forums!");
						Element.hide('forum_reply_form');
						return false;
					}

				if(response == '5')
					{
						alert("Flood Control in effect! Please try again later");
						Element.show('forum_reply_form');
						return false;
					}

				if(response == "6")
					{
						alert("Please do not spam!");
						Element.show('forum_reply_form');
						return false;
					}

				if(response == "7")
					{
						alert("Thread is locked");
						Element.hide('forum_reply_form');
						return false;
					}

				if(response == "8")
					{
						alert("The member group that you are in cannot post replies in this category.");
						Element.show('forum_reply_form');
						return false;
					}

				Element.update('posts_block',response);
			},
			onFailure: function(){ alert('Something went wrong...') }
		});

		Element.hide('forum_reply_form');
	}

function forum_post_topic(form)
	{
		if(form.topic_name.value=="")
			{
				Element.show('forum_topic_error_msg');
				Element.update('forum_topic_error_msg','Please type in topic title');
				return false;
			}

		if(form.post_body.value=="")
			{
				Element.show('forum_topic_error_msg');
				Element.update('forum_topic_error_msg','Please type in something for your topic');
				return false;
			}

		Element.hide('forum_topic_form');

		new Ajax.Request('exo.ajax.php?act=forum_ptopic', {
			method: 'post',
			parameters: {subcat: form.subcat_id.value, topic_name: urlencode(form.topic_name.value), topic_body: urlencode(form.post_body.value)},
			onSuccess: function(transport) {
				response = transport.responseText;

					if(response == "1")
						{
							alert("Unexpected error");
							Element.hide('forum_topic_form');
							return false;
							}

					if(response == "2")
						{
							alert("Please make sure both topic title and body is filled out");
							Element.show('forum_topic_form');
							return false;
						}

					if(response == "3")
						{
							alert("You are not logged in! You must be logged in to post a topic!");
							Element.hide('forum_topic_form');
							return false;
						}

					if(response == "4")
						{
							alert("You are not allowed to start threads in forums!");
							Element.hide('forum_topic_form');
							return false;
						}

					if(response == '5')
						{
							alert("Flood Control in effect! Please try again later");
							Element.show('forum_topic_form');
							return false;
						}

					if(response == "6")
						{
							alert("Please do not spam!");
							Element.show('forum_topic_form');
							return false;
						}

					if(response == "7")
						{
							alert("The member group that you are in cannot post threads in this category.");
							Element.show('forum_topic_form');
							return false;
						}

				window.location = response;
			},
			onFailure: function(){ alert('Something went wrong...') }
		});
	}

function ObjectPosition(obj) {
    var curleft = 0;
      var curtop = 0;
      if (obj.offsetParent) {
            do {
                  curleft += obj.offsetLeft;
                  curtop += obj.offsetTop;
            } while (obj = obj.offsetParent);
      }
      return [curleft,curtop];
}

function fix_members_online_list_pos()
	{
		var aryPosition = ObjectPosition(document.getElementById('members_online_list_container'));
		document.getElementById('members_online_chart').style.top=aryPosition[1]+10;
		document.getElementById('members_online_chart').style.left=aryPosition[0];
	}

function members_online_list()
	{
		if(members_online_open==false){
		
		Element.update('members_online','Loading...');
		Effect.Grow('members_online_chart',{direction:'top-left'});
		
			members_online_open=true;
			new Ajax.Request('exo.ajax.php?act=members_online', {
				method: 'get',
				onSuccess: function(transport) {
					response = transport.responseText;
					Element.update('members_online',response);

			},
			onFailure: function(){ alert('Something went wrong...') }
		});
		}
	}

function online_status()
	{
		new Ajax.Request('exo.ajax.php?act=online_stats', {
			method: 'get',
			onSuccess: function(transport) {
				online_status();
				response = transport.responseText;
			},
			onFailure: function(){ alert('Something went wrong...') }
		});

	return;
	}

function fix_wait_box()
	{
		$('wait_box').setStyle({
			width: '100%',
			height: '100%',
			top: '0px',
			left: '0px',
			position: 'absolute',
			backgroundColor: '#000',
			opacity: 0.5
		});
	}

function fix_alert_box()
	{
		$('tp_alert_box').setStyle({
			width: '350px',
			height: 'auto',
			top: '0px',
			left: '0px',
			backgroundColor: '#fff',
			border: '1px solid #000'
		});
		
		var new_left=(document.body.clientWidth/2)-($('tp_alert_box').getWidth()/2);
		if(isOLD()==true)
			{
				var new_top=(document.body.clientHeight/2)-($('tp_alert_box').getHeight()/2)+getScrollHeight();
				var position='absolute';
			}
			else
			{
				var new_top=(document.body.clientHeight/2)-($('tp_alert_box').getHeight()/2);
				var position = 'fixed';
			}
		
		$('tp_alert_box').setStyle({
			top: new_top,
			left: new_left,
			position: position
		});
		
	}
	
function close_alert_box()
	{
		$('tp_alert_box').hide();
		return false;
	}
	
function tp_alert(msg)
	{
		$('tp_alert_box_message').update(msg);
		Effect.Grow('tp_alert_box', { duration: 0.4 , queue: 'end'});;
	}
	
function show_forgot_password()
	{
		document.body.style.overflow = 'hidden';
		var fpass_button=$('forgot_pass_button');

		var bottom_spacer = 5;

		var fpb_offset = fpass_button.viewportOffset();
		var fpb_left = fpb_offset[0];
		var fpb_top = fpb_offset[1]+fpass_button.getHeight()+bottom_spacer;

		$('forgot_password_container').setStyle({
			width: '200px',
			height: '100px',
			top: fpb_top,
			left: fpb_left,
			display: 'none',
			position: 'absolute',
			backgroundColor: '#fff',
			margin: '0px',
			padding: '0px'
		});

		Effect.Appear('wait_box', { duration: 0.3 ,to: 0.5});
		Effect.BlindDown('forgot_password_container',{duration: 0.5, queue: 'end'});
	}

function close_forgot_password()
	{
		Effect.BlindUp('forgot_password_container',{duration: 0.5});
		Effect.Fade('wait_box', { duration: 0.3, queue: 'end'});
		document.body.style.overflow = 'auto';
		return false;
	}
	
function retrieve_password(form)
	{
		if(form.tp_fpass_email.value=='')
			{
				alert('Invalid Email');
				return false;
			}
			
		$('fpass_form').hide();
		$('rpass_processing').show();
			
		new Ajax.Request('exo.ajax.php?act=reset_password', {
			method: 'post',
			parameters: {email: form.tp_fpass_email.value},
			onSuccess: function(transport) {
				response = transport.responseText.evalJSON();
				
				$('rpass_processing').hide();
				$('fpass_form').show();
				
				switch(response.error)
					{
						case "true":
							tp_alert(response.message);
						break;
						
						case "false":
							Effect.BlindUp('forgot_password_container',{duration: 0.5});
							Effect.Fade('wait_box', { duration: 0.3 , queue: 'end'});
							
							tp_alert(response.message);
						break;
					
						default:
							alert('Unexpected Error');
					}
			},
			onFailure: function(){ alert('Something went wrong...') }
		});
	}
	
Event.observe(window, 'resize', function() {
	fix_members_online_list_pos();
	fix_wait_box();
	fix_alert_box();
});

document.observe("dom:loaded", function() {
	if (browser == '')
	{
		 if (navigator.appName.indexOf('Microsoft') != -1)
			  browser = 'IE'
		 else if (navigator.appName.indexOf('Netscape') != -1)
			  browser = 'Netscape'
		 else browser = 'IE';
	}

	if (version == '')
	{
		 version= navigator.appVersion;
		 paren = version.indexOf('(');
		 whole_version = navigator.appVersion.substring(0,paren-1);
		 version = parseInt(whole_version);
	}

	if(isOLD()==true){
		Event.observe(window, 'scroll', function() {
			fix_alert_box();
		});
	}
	
	fix_members_online_list_pos();
	fix_wait_box();
	fix_alert_box();
	//online_status();
});