var currentcolor = '00f';
var sending = false;
var smilie_text = ['B:-|','H:-|','C:-|','&gt;O:)','&gt;-)','O:-)',':)',':-)',':(',':-(',';-)',';)',':-P',':P','=O',':*','&gt;:O','B8)','N8)','8)',':$',':!',':[',':-/',':&apos;(',':X','B:D',':D',':-D',':-E','O-)','(:','D:'];
var smilie_code = ['blacula','heston','chuck','angellicdevil','asian','alien12','alien1','alien1','alien2','alien2','alien3','alien3','alien4','alien4','alien5','alien6','alien7','tony','coon','alien8','alien9','alien10','alien11','alien13','alien14','alien15','oliver','alien16','alien16','redneck','alien17','alien18','alien19'];

PostObj = new XMLHttpRequest();
ChatObj = new XMLHttpRequest();
UserObj = new XMLHttpRequest();

function sendpost(){
	var posttext = document.getElementById('posttext').value;
	if(posttext.substring(0,9)=='/chatswap'){
		var temp_chatroom=posttext.substr(10,1).toUpperCase() + posttext.substr(11).toLowerCase();
		if(temp_chatroom!='Ninja'){
			chatroom = temp_chatroom;
			document.getElementById('chatroom').innerHTML='Chatroom '+chatroom;
		}
		document.getElementById('posttext').value='';
		return false;
	}

	sending = true;
	var post_string = 'post='+encodeURIComponent(posttext)+'&color='+currentcolor+'&chatroom='+chatroom;
	PostObj.open('POST', 'includes/ajax_chatroom_post.php', true);
	PostObj.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
	PostObj.setRequestHeader('Content-length', post_string.length);
	PostObj.setRequestHeader('Connection', 'close');
	PostObj.send(post_string);
	PostObj.onreadystatechange = function(){
		if(PostObj.readyState==4){
			document.getElementById('chattext').innerHTML=PostObj.responseText+document.getElementById('chattext').innerHTML;
			sending = false;
		}
	}
	document.getElementById('posttext').value='';
	return false;
}

function refreshChat(){
	if(sending==false){
		ChatObj.open('GET', 'includes/ajax_chatroom_read.php?chatroom='+chatroom, true);
		ChatObj.send(null);
		ChatObj.onreadystatechange = function(){
			if(ChatObj.readyState>2 && ChatObj.status>=400){
				ChatObj.onreadystatechange = function(){ setTimeout('refreshChat()', 10000); }
				ChatObj.abort();
				return;
			}
			if(ChatObj.readyState==4){
				if(ChatObj.responseText){
					var string='';
					try{
						var post = eval(ChatObj.responseText);
					}
					catch(err){
						var post = [];
					}
					for(index=post.length;--index>=0;){
						if(post[index].kick){
							alert(post[index].text);
							history.back();
						}else if(post[index].text){
							var text = post[index].text;
							for(sindex=0; sindex<smilie_text.length; sindex++){ text=text.replace(smilie_text[sindex],'<img src="smilies/'+smilie_code[sindex]+'.gif" />'); }
							if(post[index].avatar){ string+='<img src="avatars_chat/'+post[index].avatar+'.png" alt="" />'; }
							if(post[index].username){
								string+='<span style="color:#'+post[index].color+'; text-shadow:1px 1px 1px #888" onclick="setprofile(\'' + post[index].username + '\')">'+post[index].username;
								if(post[index].recipient){ string+=' (To '+post[index].recipient+')'; }
								string+=':</span> '+text+'<br />';
							}else{
								string+='<span style="color:#'+post[index].color+'">'+text+'</span><br />';
							}
						}
					}
					//alert(string);
					string+=document.getElementById('chattext').innerHTML;
					if((split=string.indexOf('<',8000))>-1){
						string=string.substr(0,split);
					}
					document.getElementById('chattext').innerHTML=string;
				}
				setTimeout('refreshChat()', 2000);
			}
		}
	}else{
		setTimeout('refreshChat()', 2000);
	}
}

function refreshUsers(){
	UserObj.open('GET', 'includes/ajax_chatroom_users.php?chatroom='+chatroom, true);
	UserObj.send(null);
	UserObj.onreadystatechange = function(){
		if(UserObj.readyState>2 && UserObj.status>=400){
			UserObj.onreadystatechange = function(){ setTimeout('refreshUsers()', 30000); }
			UserObj.abort();
			return;
		}
		if(UserObj.readyState==4){
			var string='';
			if(UserObj.responseText){
				var color='fff';
				try{
					var users = eval(UserObj.responseText);
				}
				catch(err){
					var users = [];
				}
				for(index=0; index<users.length;index++){
					if(index==0){ string+='<div style="float:left;padding:0px;overflow:hidden;width:113px">'; }
					if(users[index].member){
						if(users[index].away){
							string+='<span style="color:#bbb'+(users[index].banned?';text-decoration:line-through':'')+'">';
						}else if(users[index].overlord){
							string+='*<span name="overlord" style="color:#f00">';
						}else if(users[index].admin){
							string+='<span style="color:#f00'+(users[index].banned?';text-decoration:line-through':'')+';text-shadow:1px 1px 1px #888">';
						}else{
							string+='<span'+(users[index].banned?' style="text-decoration:line-through"':'')+'>';
						}
						string += users[index].member+'</span><br />';
					}
					if(index==13){ string += '</div>'; }
				}
			}
			document.getElementById('currentusers').innerHTML=string;
			setTimeout('refreshUsers()', 10000);
		}
	}
}

function addfriend(username){
	document.getElementById('posttext').value = '/addfriend ' + username;
}
function setavatar(avatar){
	document.getElementById('posttext').value = '/avatar ' + avatar;
}
function setpm(username){
	document.getElementById('posttext').value = '/pm ' + username;
}
function setprofile(username){
	document.getElementById('posttext').value = '/profile ' + username;
}

function setcolor(value){
	currentcolor=value;
}

function flash_overlords(flash){
	for(index = document.getElementsByName('overlord').length; --index>=0;){
		document.getElementsByName('overlord')[index].style.color = '#' + (flash?'f00':'00f');
	}
	setTimeout('flash_overlords('+(!flash)+');', 500);
}

window.onload = function(){
	refreshChat();
	refreshUsers();
	flash_overlords(true);
}

