$(document).ready( function() {
	initiateMessageFunctions();

	$("select.members-list").change( function(){
	 	if( this.value != 0 ){
			document.location = this.value;
		}
	});
	
	if( $.browser.msie && $.browser.version == '6.0' )
	{	
		$("div#members-area-banner-profile-credits").bind('mouseover',function(){
			$("select#select-members-list").css('visibility','hidden');
		});

		$("div#members-area-banner-profile-credits").bind('mouseout',function(){
			$("select#select-members-list").css('visibility','visible');
		});
		
		$("ul#members-area-navigation li#button-members").bind("mouseover",function(){
			$("select#select-members-list").css('visibility','hidden');
		});
		
		$("ul#members-area-navigation li#button-members").bind("mouseout",function(){
			$("select#select-members-list").css('visibility','visible');
		});
	}
});

function initiateMessageFunctions(){
	$("a.display-message-box").click( function(){
	 	displayMessageBox();

	 	return false;
	});
	 
	$("a.hide-message-box").click( function(){
	 	hideMessageBox();

	 	return false;
	});
}

/*
	This will display the message box
*/
function displayMessageBox()
{
	$("div#send-message-container").fadeIn('medium');
	$("textarea#Message").elastic();

	return false;
}

/*
	This will display the message box
*/
function hideMessageBox()
{
	$("div#send-message-container").hide();

	return false;
}

function getElement( elementId )
{
	var oElement = document.getElementById( elementId );

	return oElement;
}

function sendMessage(userIdTo)
{
	oForm = document.forms["send-message-form"];

	var messageSubject = oForm.elements[1].value;
	var messageMessage = oForm.elements[2].value;

	var sendMessageBox = getElement("send-message-box");

	var errorBox = getElement("send-message-error");

	if( messageSubject == '' )
	{
		errorBox.innerHTML = 'Please enter a subject';
		errorBox.style.display = 'block';
	}
	else if(  messageMessage == '' )
	{
		errorBox.innerHTML = 'Please enter a message';

		errorBox.style.display = 'block';
	}
	else
	{
		var loadingBar = document.getElementById('send-message-loading');

		loadingBar.style.display = 'block';

		var request = 'ajax_requests.php?AjaxRequest&SendMessage';

		var params = '&Subject=' + encodeURIComponent(messageSubject) + '&Message=' + encodeURIComponent(messageMessage) + '&UserIdTo=' + userIdTo;

		// Try to connect to the server
		try
		{
			// Make server requst only if the XMLHttpRequest object isnt busy from previous request
			if( xmlHttp.readyState == 4 || xmlHttp.readyState == 0 )
			{
				xmlHttp.open("POST",request,true);
				xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
				xmlHttp.onreadystatechange = sendMessageStateChange;
				xmlHttp.send(params);
			}
		}
		catch(e)
		{
			loadingBar.style.display = 'none';

			handleError(e.toString());
		}
	}

	return false;
}

function sendMessageStateChange()
{
	if( xmlHttp.readyState == 4)
	{
		// When readyState is 4, we also read the server response
		if( xmlHttp.status == 200 )
		{
			try
			{
				// Read the response
				var response = xmlHttp.responseText;

				// Server error ?
				if( response.indexOf("ERRNO") >= 0 || response.indexOf("error") >= 0 )
				{
					handleError(response);
				}
				else
				{
					// This is the ul that holds all the fields of the form
					var messageList = $("ul#send-message-box");

					switch ( parseInt(response) ) {

						// Message could not be delivered
						case 0:
							$("li#send-message-error",messageList).html('Your message could not be delivered, Please try again').fadeIn('slow');
							break;

						// Message went thru
						case 1:
							$("ul#send-message-box").hide(0,function(){
								$("input#Subject, textarea#Message",messageList).val('');
							});

							$("div#message-sent").fadeIn('slow', function(){
								setTimeout( function() {
									hideMessageBox();
									$("ul#send-message-box").show();
									$("div#message-sent").hide();
								},1000);
							});

							break;

						//
						default:
							alert(response);
							break;
					}
				}

				document.getElementById('send-message-loading').style.display = 'none';
			}
			catch(e)
			{
				// Handle error
				handleError(e.toString());
			}
		}
		else
		{
			// Handle error
			handleError( xmlHttp.responseText);
		}
	}
}

function sendMessageToUser(inUserId)
{
	var subject = $("input#Subject-" + inUserId).val();

	var message = $("textarea#Message-" + inUserId).val();

	// Everything is set in terms of requirements
	if( subject && message )
	{
		$.ajax({
			beforeSend: function(){ $("div#message-box-" + inUserId + " div.loading").show(); },
			timeout: 5000,
			error: function() { $("form#send-message-form-" + inUserId).submit(); },
			type: "POST",
			dataType: "html",
			url: "ajax_requests.php?AjaxRequest&SendMessage",
			data: { Subject: subject, Message: message, UserIdTo: inUserId },
			success: function(isMessageSent) {
				$("div#message-box-" + inUserId + " div.loading").hide();
				$("div#message-box-" + inUserId).hide();

				if( isMessageSent == "0" )
				{
					$("form#send-message-form-" + inUserId).submit();
				}
			}
		});
	}

	return false;
}

/*
	When inviting a friend checks all fields for any possible errors;
	if errors found returns false, otherwise true
*/
function inviteAFriend()
{
	// whether 
	var valid = true;

	var oFriendsName = getElement("FriendsName").value;
	var oFriendsEmail = getElement("FriendsEmail").value;
	var oPersonalMessage = getElement("PersonalMessage").value;

	if( oFriendsName == 'Friends Name' || oFriendsName == '' )
	{
		var oErrorBox = getElement("invite-a-friend-errorbox");
		oErrorBox.innerHTML = 'Please insert a Friends Name';
		changeElementClass("invite-a-friend-errorbox", 'error-message');

		valid = false;

	}
	else if( oFriendsEmail == 'Friends Email' || oFriendsEmail == '' )
	{
		var oErrorBox = getElement("invite-a-friend-errorbox");
		oErrorBox.innerHTML = 'Please insert a Valid Email Address';
		changeElementClass("invite-a-friend-errorbox", 'error-message');

		valid = false;
	}

	if( valid )
		return true;
	else
		return false;
}
