usermenuTimer='';

jQuery(document).ready(function() {
	if ( $("#user_menu").length < 1 ) {
		jQuery("body").append("<div id='user_menu'></div>");
		jQuery("body").append("<div id='sp_pm_div'></div>");
		jQuery("body").append("<div id='greyBox' style='z-index: 10000; display: none;'></div>");
	};
});

jQuery(document).mousemove(function(e) {
	mousePosX	=e.pageX;
	mousePosY	=e.pageY;

	return;
});

function showUserMenu(user_id,friend_id,friend_name) {
	if (typeof user_id != 'number') {
		if (typeof apparent_starpulseuserid == 'number') {
			user_id=apparent_starpulseuserid;
		} else {
			user_id=0;
		};
	};

	var output="<a href='/members/profile.html?UID=" + friend_id + "'>View Profile</a><br />";

	jQuery.getJSON("/members/user_menu.php",{ action: "is_friend", friend_id: friend_id }, function(jsondata){
		var is_friend	=jsondata[0];
		var is_blocked	=jsondata[1];

		if (user_id != friend_id) {
			output+="<a href='javascript:displayPMForm(" + user_id + ",\"" + friend_name + "\"," + friend_id + ",\"\",\"\");'>Send Message</a><br />";
			if ((is_friend == 0) && (is_blocked == 0)) {
				output+="<a href='javascript:inviteFriend(" + user_id + "," + friend_id + ");'>Add As Friend</a><br />";
			} else if (is_friend == 1) {
				output+="<a href='javascript:removeFriend(" + user_id + "," + friend_id + ")'>Remove This Friend</a><br />";
			} else if (is_friend == 2) {
				output+="<a href='javascript:confirmFriend(\"Approve\"," + user_id + "," + friend_id + ",\"" + friend_name + "\");'>Approve Friend Request</a><br />";
				output+="<a href='javascript:confirmFriend(\"Deny\"," + user_id + "," + friend_id + ",\"" + friend_name + "\");'>Deny Friend Request</a><br />";
			};
			if (is_blocked > 0) {
				output+="<a href='javascript:blockUser(\"Unblock\"," + user_id + "," + friend_id + ");'>Unblock this user</a><br />";
			} else {
				output+="<a href='javascript:blockUser(\"Block\"," + user_id + "," + friend_id + ");'>Block this user</a><br />";
			};
		};
		unhideUserMenu(output);
	});

	return;
};

function unhideUserMenu(output) {
	clearTimeout(usermenuTimer);
	jQuery("#user_menu").css("top",(mousePosY + 10) + 'px');
	jQuery("#user_menu").css("left",(mousePosX - 60) + 'px');

	jQuery("#user_menu").html(output);
	jQuery("#user_menu").slideDown(250);
	jQuery("#user_menu").hover("",function() {
		hideUserMenu();
	});
	return;
};

function hideUserMenu() {
	jQuery("#user_menu").slideUp(250, function() {
		jQuery("#user_menu").html("");
	});

	return;
};

function displayPMForm(user_id,friend_name,friend_id,pmsg,pm_form_quote) {

	if (typeof pm_form_quote != 'number') { pm_form_quote=''; };

	if (user_id) {
		hideUserMenu();
		jQuery.get("/members/user_menu.php",{ action: "display_pmform", friend_name: friend_name, friend_id: friend_id, pmsg: pmsg, pm_form_quote: pm_form_quote }, function(data){
			jQuery("#sp_pm_div").html(data);
			greyBox('greyBox','sp_pm_div','500','440');

			jQuery('#sp_pm_form').submit(function() {
				submitPMForm(friend_id);
				return false;
			});
		});
	} else {
		unhideUserMenu('Please <a href="/members/register.html?object_type=&link_type=PersonalMessage">Login</a> or <a href="/members/register.html?object_type=&link_type=PersonalMessage">Register</a> before sending messages');
	};

	return;
};

function submitPMForm(friend_id) {
	hideUserMenu();

	var friend_name=jQuery("#sp_pm_form_to").val();
	var subject=jQuery("#sp_pm_form_subject").val();
	var message=jQuery("#sp_pm_form_message").val();
	var pmsg=jQuery("#sp_pm_form_replied_to").val();
	var outbox =1;

	if (jQuery("#sp_pm_form_outbox").attr("checked")) {
		outbox=0;
	}

	jQuery('#sp_pm_div').html('');

	jQuery.getJSON("/members/user_menu.php",{ action: "submit_pmform", friend_id: friend_id, friend_name: friend_name, subject: subject, message: message, pmsg: pmsg, outbox: outbox }, function(jsondata){
		var output ="";
		$.each(jsondata, function(i){
			output += "<center><b>" + jsondata[i] + "</b></center>";
		});
		jQuery('#sp_pm_div').html(output);
		setTimeout(function () {greyBox('greyBox','sp_pm_div','0','0');}, 2000);
	});

	return;
};

function inviteFriend(user_id,friend_id) {
	if (user_id) {
		var output ="";
		jQuery.getJSON("/members/user_menu.php?action=invite_friend&friend_id=" + friend_id, function(jsondata){
			$.each(jsondata, function(i){
				output +="<b>" + jsondata[i] + "</b>";
			});
			jQuery('#user_menu').html(output);
			unhideUserMenu();
			usermenuTimer=setTimeout(function () {
				hideUserMenu();
			}, 2000);
		});
		jQuery('#add_friend_display_' + friend_id).css('display','none');
	} else {
		unhideUserMenu('Please <a href="/members/register.html?object_type=&link_type=AddFriend">Login</a> or <a href="/members/register.html?object_type=&link_type=AddFriend">Register</a> before adding friends');
	};
	return;
};

function blockUser(operation,user_id,friend_id) {
	if (user_id) {
		var output ="";
		jQuery.getJSON("/members/user_menu.php",{ action: "block_user", operation: operation, friend_id: friend_id }, function(jsondata){
			$.each(jsondata, function(i){
				output +="<b>" + jsondata[i] + "</b>";
			});
			jQuery('#user_menu').html(output);
			unhideUserMenu();
			usermenuTimer=setTimeout(function () {
				hideUserMenu();
			}, 2000);
		});
	} else {
		unhideUserMenu('Please <a href="/members/register.html?object_type=&link_type=BlockUser">Login</a> or <a href="/members/register.html?object_type=&link_type=BlockUser">Register</a> before blocking users');
	};
	return;
};

function removeFriend(user_id,friend_id) {
	var output ="";
	jQuery.getJSON("/members/user_menu.php",{ action: "remove_friend", friend_id: friend_id }, function(jsondata){
		$.each(jsondata, function(i){
			output +="<b>" + jsondata[i] + "</b>";
		});
		jQuery('#user_menu').html(output);
		unhideUserMenu();
		usermenuTimer=setTimeout(function () {
			hideUserMenu();
		}, 2000);
		jQuery('#add_friend_display_' + friend_id).html("<a href='javascript:inviteFriend(" + user_id + "," + friend_id + ")'>Add As Friend</a>");
	});

	jQuery('#friend_link_' + friend_id).fadeOut("slow");

	total_friends=(jQuery("#total_friends_nav_display").html())-1;
	if (total_friends==0) { total_friends="0"; };
	jQuery('#total_friends_main_display').html(total_friends);
	jQuery('#total_friends_nav_display').html(total_friends);

	return;
};

function confirmFriend(operation,user_id,friend_id,friend_name) {
	var output ="";
	jQuery.getJSON("/members/user_menu.php",{ action: "confirm_friend", operation: operation, friend_id: friend_id }, function(jsondata){
		$.each(jsondata, function(i){
			output +="<b>" + jsondata[i] + "</b>";
		});
		jQuery('#user_menu').html(output);
		unhideUserMenu();
		usermenuTimer=setTimeout(function () {
			hideUserMenu();
		}, 2000);

		if (operation=='Approve') {
			jQuery('#add_friend_display_' + friend_id).html("<a href='javascript:removeFriend(" + user_id + "," + friend_id + ")'>Remove Friend</a>");
		} else {
			jQuery('#add_friend_display_' + friend_id).html("<a href='javascript:inviteFriend(" + user_id + "," + friend_id + ")'>Add As Friend</a>");
		};
		jQuery('#add_friend_deny_display_' + friend_id).css('display','none');

		pendingfriend_avatar=jQuery("#pendingfriend_avatar_" + friend_id).attr("src");
		pendingfriend_status=jQuery("#pendingfriend_status_" + friend_id).html();
		output ='<div id="friend_link_' + friend_id + '" style="display: none; text-align: center; height: 90px; width: 98px; float: left;"><a href="javascript:showUserMenu(' + user_id + ',' + friend_id + ',\'' + friend_name + '\');"><img src="' + pendingfriend_avatar + '" height="40px" width="40px" alt="" /></a><br />' + friend_name;
		if (pendingfriend_status) {
			output += '<br /><b><span id="pendingfriend_status_' + friend_id + '" class="online_status">' + pendingfriend_status + '</span></b>';
		};
		output += '</div>';

		jQuery("#friends_display").prepend(output);

		if (operation=='Approve') {
			jQuery('#friend_link_' + friend_id).fadeIn("slow");
			total_friends=jQuery("#total_friends_main_display").html();
			total_friends++;
			jQuery('#total_friends_main_display').html(total_friends);
			jQuery('#total_friends_nav_display').html(total_friends);
			jQuery('#friends_help_display').css('display','none');
		};

		jQuery('#pendingfriend_link_' + friend_id).fadeOut("slow");
		total_pendingfriends=(jQuery("#total_pendingfriends_main_display").html())-1;
		if (total_pendingfriends==0) {
			total_pendingfriends="0";
			jQuery('#pendingfriends_display').css('display','none');
		};
		jQuery('#total_pendingfriends_main_display').html(total_pendingfriends);

	});

	return;
};

function greyBox(greybox_id,display_id,display_width,display_height) {

	var windowState = (function(){
		var readScroll = {scrollLeft:0,scrollTop:0};
		var readSize = {clientWidth:0,clientHeight:0};
		var readScrollX = 'scrollLeft';
		var readScrollY = 'scrollTop';
		var readWidth = 'clientWidth';
		var readHeight = 'clientHeight';
		function otherWindowTest(obj){
			if((document.compatMode)&& (document.compatMode == 'CSS1Compat')&& (document.documentElement)){
				return document.documentElement;
			}else if(document.body){
				return document.body;
			}else{
				return obj;
			}
		};
		if((typeof this.innerHeight == 'number')&& (typeof this.innerWidth == 'number')){
			readSize = this;
			readWidth = 'innerWidth';
			readHeight = 'innerHeight';
		}else{
			readSize = otherWindowTest(readSize);
		}
		if((typeof this.pageYOffset == 'number')&& (typeof this.pageXOffset == 'number')){
			readScroll = this;
			readScrollY = 'pageYOffset';
			readScrollX = 'pageXOffset';
		}else{
			readScroll = otherWindowTest(readScroll);
		}
		return {
			getScrollX:function(){
			return (readScroll[readScrollX]||0);
		}, getScrollY:function(){
			return (readScroll[readScrollY]||0);
		}, getWidth:function(){
			return (readSize[readWidth]||0);
		}, getHeight:function(){
			return (readSize[readHeight]||0);
		}
	};
	})();

	jQuery("#" + greybox_id).height(jQuery(document).height());
	jQuery("#" + greybox_id).width(jQuery(document).width());
	jQuery("#" + greybox_id).toggle();

	jQuery("#" + display_id).width(display_width + "px");
	jQuery("#" + display_id).height(display_height + "px");

	jQuery("#" + display_id).css("top",Math.round(windowState.getScrollY()+((windowState.getHeight()-display_height)/2)) + "px");
	jQuery("#" + display_id).css("left",Math.round(windowState.getScrollX()+((windowState.getWidth()-display_width)/2)) + "px");

	jQuery("#" + display_id).toggle();

	return;
};
