Chat = Class.create();

Object.extend(Chat, {
	get: function(skip) {
	    new Ajax.Request('chat.php?do=get&skip='+skip, {
	        asynchronous: true,
	        method: 'get',
		    onComplete: function(response) {
		    	if (response.responseText) {
		    		Chat.update(response.responseText);
		    	}
		    }
	    });		
	},
	
	send: function() {
		var msg = $('chatmsg').value;
		$('chatmsg').value = '';
	
		if (msg != '') {
		    new Ajax.Request("chat.php?do=send&m="+encodeURIComponent(msg), {
		        asynchronous: true,
		        method: 'get',
		        onComplete: function(response) {
		        	Chat.update(response.responseText);
		        }
		    });
		}
	},
	
	deleteLine: function(lineid, permanent) {
		if (typeof permanent == undefined || permanent == undefined) permanent = '';
		
	    new Ajax.Request("chat.php?do=nuke&m="+encodeURIComponent(lineid)+"&f="+permanent, {
	        asynchronous: true,
	        method: 'get',
	        onComplete: function(response) {
	        	Chat.update(response.responseText);
	        }
	    });
	},
	
	update: function(chatText) {
		$('chat').update(chatText);
	},
	
	mod: function(msgid, e) {
		if (e.ctrlKey && e.shiftKey) {
			Chat.deleteLine(msgid, true);
		} else
		if (e.ctrlKey) {
			Chat.deleteLine(msgid);
		} else 
		if (e.shiftKey) {
			Chat.editLine(msgid);
		} else {
			Chat.selectLine(msgid);
		}	
	},
	
	editLine: function(msgid) {
		msg = document.getElementById('msg_'+msgid).textContent;
		Control.Modal.open("Change Text To:<br /><input id='newtxt_"+msgid+"' type='text' class='bginput' size='100' value=\""+msg+"\" /><br /><input type='button' value='Confirm' class='button' onclick=\"Chat.confirmEdit('"+msgid+"', $('newtxt_"+msgid+"').value);\" style='margin-top: 3px;' />");	
	},
	
	takeItem: function(msgid) {
		new Ajax.Request("chat.php?do=takeitem&m="+encodeURIComponent(msgid), {
			asynchronous: true,
			method: 'get',
			onComplete: function(response) {
				JSMessage.open(response.responseText);
			}
		});	
	},
	
	confirmEdit: function(msgid, newmsg) {
		new Ajax.Request("chat.php?do=edit&m="+encodeURIComponent(msgid)+"&e="+encodeURIComponent(newmsg), {
			asynchronous: true,
			method: 'get',
			onComplete: function(response) {
				Chat.update(response.responseText);
				Control.Modal.close();
			}
		});	
	},
	
	dock: function(where) {
		var chat = $('chatbar').remove();
		$('chatdock-'+where).appendChild(chat);
		
		var elements = [$('chat'), $('chatbar'), $('chatutilbar'), $('chatbox')];
		
		switch (where) {
			case 'top':
				elements.each(function(element) {
					element.removeClassName(element.getAttribute('id')+'-bottom');
					element.addClassName(element.getAttribute('id')+'-top');
				});
				
				$('chatmsg').setAttribute('size', '128');
				$('chatbox').addClassName('rounded-bottom');
				
				Cookie.set('chatpos', 'top', 31556926);
			break;
			case 'bottom':
				elements.each(function(element) {
					element.removeClassName(element.getAttribute('id')+'-top');
					element.addClassName(element.getAttribute('id')+'-bottom');
				});
				
				$('chatmsg').setAttribute('size', '170');
				$('chatbox').removeClassName('rounded-bottom');
				
				Cookie.set('chatpos', 'bottom', 31556926);
			break;
		}
	}
});

Event.observe(window, 'load', function(evt) {
	Chat.get(true);
});

setInterval('Chat.get()', 13000);