// Change the value of the PM name when a name is selected from the select menu
function changePMName(newName){
	$('message-pm-name').value = newName;
}

var pmNums = 0;
function openNewPM(messageName){
	if(!messageName) messageName = $('message-pm-name').value;
	var newPM = true;
	$('message-tabs').getElements('li').each(function(mTabs){
		if(mTabs.innerHTML == messageName)
		{
			newPM = false;
			$('message-tabs').getElements('li').each(function(allTabs){
				allTabs.style.background = "#999999";
			});
			mTabs.style.background = "#FFFFFF";
			$('message-chat-window').value = mTabs.getAttribute('rel');
			$('message-chats').innerHTML = $('message-chats-'+$('message-chat-window').value).innerHTML;
			scrollBar['message'].step = 15;
		}
	});
	if(newPM)
	{
		$('message-tabs').style.height = $('message-tabs').offsetHeight + 'px';
		pmNums++;
		var newMessageLI = new Element('li', {rel: 'pm'+pmNums, text: messageName});
		newMessageLI.inject($('message-tabs').getElement('ul'));
		var newMessageDIV = new Element('div', {id: 'message-chats-pm'+pmNums});
		newMessageDIV.inject($('hidden-chats'));
		createChatTab(newMessageLI);
		$('message-tabs').getElements('li').each(function(allTabs){
			allTabs.style.background = "#999999";
		});
		newMessageLI.style.background = "#FFFFFF";
		$('message-chat-window').value = newMessageLI.getAttribute('rel');
		$('message-chats').innerHTML = $('message-chats-'+$('message-chat-window').value).innerHTML;
		scrollBar['message'].step = 15;
	}
	compactElement('message-send-pm-container',0,'auto');
	$('message-talk').focus();
	$('message-tabs').style.height = $('message-tabs').scrollHeight + 'px';
	adjustBar('message');
}
// Function to manipulate the select menu based on what is entered in the name field
function changePMSelect(){
	$('message-pm-name').addEvent('keyup',function(e){
		// If Enter is pressed
		if(e.key == "enter")
		{
			// Create PM if the input and selected name match exactly
			if($('message-pm-select').value == $('message-pm-name').value)
				openNewPM();
			// Set input name to select name if the input name matches the first part of the selected name
			else if($('message-pm-select').value.substring(0, $('message-pm-name').value.length).toLowerCase() == $('message-pm-name').value.toLowerCase())
				$('message-pm-name').value = $('message-pm-select').value;
			// Create PM if input name does not match selected name at all
			else
				openNewPM();
		}
		// If down key is pressed, switch input and selected name
		else if(e.key == "down")
		{
			if($('message-pm-select').selectedIndex < $('message-pm-select').options.length - 1)
				$('message-pm-select').selectedIndex++;
			$('message-pm-name').value = $('message-pm-select').value;
		}
		// If up key is pressed, switch input and selected name
		else if(e.key == "up")
		{
			if($('message-pm-select').selectedIndex > 0)
				$('message-pm-select').selectedIndex--;
			$('message-pm-name').value = $('message-pm-select').value;
		}
		else
		{
			// Loop through all the options
			for( intIndex = 0; intIndex < $('message-pm-select').options.length; intIndex++ )
			{
				// Find the first option that matches the input name and select it
				if( $('message-pm-select').options[intIndex].value.substring(0, $('message-pm-name').value.length).toLowerCase() == $('message-pm-name').value.toLowerCase() )
				{
					$('message-pm-select').selectedIndex = intIndex;
					break;
				}
			}
		}
	});
}

function saveColorChange(){
	$('message-name-color-save').value = $('message-name-color').value;
	$('message-message-color-save').value = $('message-message-color').value;
	$$('.your-name').each(function(nColor){
		nColor.style.color = $('message-name-color-save').value;
	});
	$$('.your-message').each(function(mColor){
		mColor.style.color = $('message-message-color-save').value;
	});
	compactElement('message-colors-container',0,'auto');
	adjustBar('message');
}
function setDefaultColors(){
	$('message-name-color').value = "gray";
	$('message-color-test').getElement('.your-name').style.color = $('message-name-color').value;
	$('message-message-color').value = "black";
	$('message-color-test').getElement('.your-message').style.color = $('message-message-color').value;
}
function createColorChange(){
	$('message-name-color').addEvent('keyup',function(){
		$('message-color-test').getElement('.your-name').style.color = $('message-name-color').value;
	});
	$('message-message-color').addEvent('keyup',function(){
		$('message-color-test').getElement('.your-message').style.color = $('message-message-color').value;
	});
	new MooRainbow('message-name-color-box', {
		id: 'message-name-color-rb',
		wheel: true,
		fixTop: 105,
		fixLeft: 555,
		onChange: function(color) {
			$('message-name-color').value = color.hex;
			$('message-color-test').getElement('.your-name').style.color = $('message-name-color').value;
		},
		onComplete: function(color) {
			$('message-name-color').value = color.hex;
			$('message-color-test').getElement('.your-name').style.color = $('message-name-color').value;
		}
	});
	new MooRainbow('message-message-color-box', {
		id: 'message-message-color-rb',
		wheel: true,
		fixTop: 140,
		fixLeft: 555,
		onChange: function(color) {
			$('message-message-color').value = color.hex;
			$('message-color-test').getElement('.your-message').style.color = $('message-message-color').value;
		},
		onComplete: function(color) {
			$('message-message-color').value = color.hex;
			$('message-color-test').getElement('.your-message').style.color = $('message-message-color').value;
		}
	});
}

function createChatEvents(){
	$('message-talk').addEvent('keyup',function(e){
		// If Enter is pressed
		if(e.key == "enter")
		{
			if(trim($('message-talk').value) != "")
			{
				$('message-chats-'+$('message-chat-window').value).innerHTML += "<p><span class='your-name' style='color: " + $('message-name-color-save').value + "'>Casey</span>: <span class='your-message' style='color: " + $('message-message-color-save').value + "'>" + $('message-talk').value + "</span></p>";
				$('message-chats').innerHTML = $('message-chats-'+$('message-chat-window').value).innerHTML;
				scrollBar['message'].step = 15;
				adjustBar('message');
				$('message-talk').value = "";
			}
		}
	});
	$('message-tabs').getElements('li').each(function(mTabs){
		createChatTab(mTabs);
		if(mTabs.getAttribute('rel') == "group")
		{
			$('message-chat-window').value = "group";
			mTabs.style.background = "#FFFFFF";
		}
		else
			mTabs.style.background = "#999999";
	});
}

function createChatTab(mTab){
	mTab.addEvent('click',function(){
		$('message-tabs').getElements('li').each(function(allTabs){
			allTabs.style.background = "#999999";
		});
		mTab.style.background = "#FFFFFF";
		$('message-chat-window').value = mTab.getAttribute('rel');
		$('message-chats').innerHTML = $('message-chats-'+$('message-chat-window').value).innerHTML;
		scrollBar['message'].step = 15;
		adjustBar('message');
	});
}

function commandExpand(){
	if(toggledElm['chat-commands'] == 'open')
	{
		toggledElm['chat-commands'] = 'close';
		$('chat-commands').style.height = 0;
		expandElement('message-advanced-container','auto');
	}
	else
	{
		toggledElm['chat-commands'] = 'open';
		$('chat-commands').style.height = 'auto';
		expandElement('message-advanced-container','auto');
	}
	adjustBar('message');
}

// Fires the functions when the page finishes loading
window.addEvent('domready', function(){
	createDrag('message');
	setComponentLimit('message', 26);
	createScroll('message');
	changeResize('message','rightmod');
	changePMSelect();
	createColorChange();
	createChatEvents();
});