/* profile images */
var sharedOpen = false;
var inviteOpen = false;
function ConfirmDeleteLogo()
{
	Hide("LogoFormContainer");
	Show("LogoDeleteContainer");
	return false;
}
function ConfirmDeleteBG()
{
	Hide("BGFormContainer");
	Show("BGDeleteContainer");
	return false;
}

/* share */
function Share()
{
	SetHTML('AddToFavListMessage', "");
	HideErrors('ShowAddUToFavList');
	Hide('InviteContainer');
	if (sharedOpen)
	{
		Hide('ShareContainer');
		sharedOpen = false;
	}
	else
	{
		SendRequest({Action: 'GetExportUCode', UID: uID}, 'ShowExportCode');
		sharedOpen = true;
	}
	return false;
}

function ShowExportCode(properties)
{
    if (properties && properties.MiniUCode)
    {    
    	getE('ExportMiniUCode').value = properties.MiniUCode;
      getE('ExportFullUCode').value = properties.FullUCode;
    }
		Show('ShareContainer');
    return false;
}

/* news list */
function GetUNewsList(page)
{
	SendRequest({Action: 'GetUNewsList', UID: uID, Page: page}, 'ShowUNewsList');
	return false;
}

function ShowUNewsList(properties)
{
	if (properties)	
	{
		SetHTML('UNewsList', properties.pageHTML);
	}
	return false;
}
function ChangeNewsFeed()
{
	SendRequest({Action: 'GetRSSNewsLink', UID: uID}, 'ChangeNewsFeedOnResponse');
	return false;
}

function ChangeNewsFeedOnResponse(properties)
{
	if (properties)
	{
		HideHeaderMessagesAndForms('EditRSSNewsLinkContainer');
		document.forms.EditNewsFeedForm.RSSNewsLink.value = properties.RSSNewsLink;
		Toggle('EditRSSNewsLinkContainer');
		Toggle('EditRSSNewsLinkClearContainer');
		GoTo(projectURL+"uchat/"+properties.Title+"#top");
	}
	return false;
}

function SaveUNewsFeed(form)
{
	SendRequest({Action: 'UpdateNewsFeed', UID: uID, RSSNewsLink: form.RSSNewsLink.value}, 'UpdateUNewsFeed');
	return false;	
}

function UpdateUNewsFeed(properties)
{
	Toggle('EditRSSNewsLinkContainer');
	Toggle('EditRSSNewsLinkClearContainer');
	return false;
}


/* event list */
function GetUEventList(page)
{
	SendRequest({Action: 'GetUEventList', UID: uID, Page: page}, 'ShowUEventList');
	return false;
}

function ShowUEventList(properties)
{
	if (properties)	
	{
		SetHTML('UEventList', properties.pageHTML);
	}
	return false;
}

function ChangeEventsFeed()
{
	SendRequest({Action: 'GetRSSEventsLink', UID: uID}, 'ChangeEventsFeedOnResponse');
	return false;
}

function ChangeEventsFeedOnResponse(properties)
{
	if (properties)
	{
		HideHeaderMessagesAndForms('EditRSSEventsLinkContainer');
		document.forms.EditEventsFeedForm.RSSEventsLink.value = properties.RSSEventsLink;
		Toggle('EditRSSEventsLinkContainer');
		Toggle('EditRSSEventsLinkClearContainer');
		GoTo(projectURL+"uchat/"+properties.Title+"#top");
	}
	return false;
}

function SaveUEventsFeed(form)
{
	SendRequest({Action: 'UpdateEventsFeed', UID: uID, RSSEventsLink: form.RSSEventsLink.value}, 'UpdateUEventsFeed');
	return false;	
}

function UpdateUEventsFeed(properties)
{
	Toggle('EditRSSEventsLinkContainer');
	Toggle('EditRSSEventsLinkClearContainer');
	return false;
}

/* u functions: description */ 
function EditDescription()
{
	HideHeaderMessagesAndForms('EditUDescriptionContainer');
	document.forms.EditUDescriptionForm.Description.value = getE('UDescription').innerHTML;
	Toggle('EditUDescriptionContainer');
	Toggle('EditUDescriptionClearContainer');
	return false;
}

function SaveUDescription(form)
{
	SendRequest({Action: 'UpdateDescription', UID: uID, Description: form.Description.value}, 'UpdateUdescription');
	return false;	
}

function UpdateUdescription(properties)
{
	if (properties)
	{
		SetHTML('UDescription', properties.Description);
		Hide('EditUDescriptionContainer');
		Hide('EditUDescriptionClearContainer');
		EditUDescriptionContainer_Hidden = true;
		EditUDescriptionClearContainer_Hidden = true;
	}
	return false;
}

/* u functions: welcome message */
function EditWelcomeMessage()
{
	HideHeaderMessagesAndForms('EditWelcomeMessageContainer');
	SendRequest({Action: 'GetWelcomeMessage', UID: uID}, 'ShowWelcomeMessage');
	return false;
}

function ShowWelcomeMessage(properties)
{
	if (properties)
	{
		document.forms.EditWelcomeMessageForm.WelcomeMessage.value = properties.WelcomeMessage;
		Toggle('EditWelcomeMessageContainer');
		Toggle('EditWelcomeMessageClearContainer');
	}
	return false;	
}

function SaveWelcomeMessage(form)
{
	SendRequest({Action: 'UpdateWelcomeMessage', UID: uID, WelcomeMessage: form.WelcomeMessage.value}, 'UpdateWelcomeMessage');
	return false;	
}

function UpdateWelcomeMessage(properties)
{
	if (properties)
	{
		Hide('EditWelcomeMessageContainer');
		Hide('EditWelcomeMessageClearContainer');
		EditWelcomeMessageContainer_Hidden = true;
		EditWelcomeMessageClearContainer_Hidden = true;
	}
	return false;	
}

/* favourites */
function AddUToFavList(uitemID)
{
	if (uitemID)
		uID = uitemID;
	Hide('InviteContainer');
	Hide('ShareContainer');
	SetHTML('AddToFavListMessage', "");
	HideErrors('ShowAddUToFavList');
  HideErrors('ShowExportCode');
	SendRequest({Action: 'AddUToFavList', UID: uID}, 'ShowAddUToFavList');
	return false;	
}

function ShowAddUToFavList(properties)
{
	if (properties)
	{
		SetHTML('AddToFavListMessage', properties.Message);
		SetHTML('MemberStatus_'+properties.UID, properties.MemberStatus);
		Hide('AddToFavListLink_'+properties.UID);
		Show('RemoveFromFavListLink_'+properties.UID);
	}
	return false;
}

function RemoveUFromFavList(uitemID)
{
	if (uitemID)
		uID = uitemID;
	SendRequest({Action: 'RemoveUFromFavList', UID: uID}, 'ShowRemoveUFromFavList');
	return false;
}

function ShowRemoveUFromFavList(properties)
{
	if (properties)
	{
		SetHTML('AddToFavListMessage', properties.Message);
		SetHTML('MemberStatus_'+properties.UID, properties.MemberStatus);
		Hide('RemoveFromFavListLink_'+properties.UID);
		Show('AddToFavListLink_'+properties.UID);
	}
	return false;
}

function SetAutoJoinFavourU(autojoin)
{
	SendRequest({Action: 'SetAutoJoinFavourU', AutoJoinFavourU: (autojoin ? 'Y' : 'N')}, 'SetAutoJoinFavourUResponse');
	return false;
}

function SetAutoJoinFavourUResponse(properties)
{
	return true;
}

function SignUp(url)
{
	GoTo(projectURL+"signup.php?BackUrl="+url);
}

/* invitation */
function InviteFriendToU()
{
	SetHTML('AddToFavListMessage', "");
	HideErrors('ShowAddUToFavList');
  HideErrors('ShowExportCode');
	Hide('ShareContainer');
	if (inviteOpen)
	{
		Hide('InviteContainer');
		inviteOpen = false;
	}
	else
	{
		SetHTML('Invite_sorry', "");
		Show('InviteLabel');
		Show('InviteForm');
		document.forms.InviteForm.To.value = "";
		Show('InviteContainer');
		inviteOpen = true;
	}
	return false;
}

function SendUInvitation(to)
{
	SendRequest({Action: 'SendUInvitation', To: to, UID: uID}, 'Invite');
	return false;
}

function Invite(properties)
{
	if (properties && properties.Success)
	{
		Hide('InviteLabel');
		Hide('InviteForm');
		inviteOpen = false;
	}
	return false;
}

/* online users */
var onlineUserListOpened = new Object();
var onlineUserListPage = 1;
function OpenPoint(userID)
{
	Hide('list_point_'+userID);
	Show('opened_point_'+userID);
	onlineUserListOpened[userID] = true;
}

function ClosePoint(userID)
{
	Hide('opened_point_'+userID);
	Show('list_point_'+userID);
	onlineUserListOpened[userID] = false;
}

function GetOnlineUserList(page)
{
	if (page)
	{
		onlineUserListPage = page;
	}
	SendRequest({Action: 'GetOnlineUserList', UID: uID, Page: onlineUserListPage}, 'ShowOnlineUserList');
	return false;
}

function ShowOnlineUserList(properties)
{
	if (properties)	
	{
		SetHTML('OnlineUserList', properties.pageHTML);
		var i;
		for (i in onlineUserListOpened)
		{
			if (onlineUserListOpened[i]) OpenPoint(i);
		}
		//setTimeout('GetOnlineUserList()', 10000);
	}
	return false;
}

function Slap(nickname)
{
	//SendSlap(nickname);
//	alert('Slap '+nickname+' in the U with id '+uID);
	SendRequest({Action: 'Slap', UID: uID, Nickname: nickname}, 'SlapOnResponse');
	return false;
}

function SlapOnResponse(properties)
{
	return false;
}

function BanProfile(profileID)
{
	SendRequest({Action: 'BanProfile', UID: uID, ProfileID: profileID}, 'BanProfileOnResponse');
	return false;	
}

function BanProfileOnResponse(properties)
{
	if (properties)
	{
		alert(properties.Message);
		GetOnlineUserList(1);
	}
	return false;		
}

function KickProfile(profileID)
{
	SendRequest({Action: 'KickProfile', UID: uID, ProfileID: profileID}, 'KickProfileOnResponse');
	return false;	
}

function KickProfileOnResponse(properties)
{
	if (properties)
	{
		alert(properties.Message);
		GetOnlineUserList(1);
	}
	return false;	
}

function BanGuest(guestID)
{
	SendRequest({Action: 'BanGuest', UID: uID, GuestID: guestID}, 'BanGuestOnResponse');
	return false;	
}

function BanGuestOnResponse(properties)
{
	if (properties)
	{
		alert(properties.Message);
		GetOnlineUserList(1);
	}
	return false;	
}

function KickGuest(guestID)
{
	SendRequest({Action: 'KickGuest', UID: uID, GuestID: guestID}, 'KickGuestOnResponse');
	return false;	
}

function KickGuestOnResponse(properties)
{
	if (properties)
	{
		alert(properties.Message);
		GetOnlineUserList(1);
	}
	return false;	
}

function ChangeMemberStatus(status, profileID)
{
	SendRequest({Action: 'ChangeMemberStatus', UID: uID, ProfileID: profileID, MemberStatus: status}, 'ChangeMemberStatusOnResponse');
	return false;
}

function ChangeMemberStatusOnResponse(properties)
{
	if (properties)
	{
		GetOnlineUserList(1);
	}
	return false;	
}

/* U members */
function GetUMemberList(page)
{
	SendRequest({Action: 'GetUMemberList', UID: uID, Page: page}, 'ShowUMemberList');
	return false;
}

function ShowUMemberList(properties)
{
	if (properties)	
	{
		SetHTML('UMemberList', properties.pageHTML);
	}
	return false;
}

/* U Log */
function GetULogMemberList(page)
{
	SendRequest({Action: 'GetUMemberList', UID: uID, Page: page, ItemsOnPage: 2}, 'ShowUMemberList');
	return false;
}

function GetChatLog(page)
{
	GoTo(projectURL+'u_log.php?UID='+uID+'&Page='+page);
	return false;	
}

/* rating */
var rated = false;
function DisplayRateLine(elem)
{
	if (rated) return;
	var arr = /^Star_(\d+)$/.exec(elem.id); 
	var num = arr[1];
	for (i = 1; i <= 5; i++)
	{
		getE('Star_'+i).className = i <= num ? "star_select" : curRating[i];
	}
}

function HideRateLine()
{
	if (rated) return;
	for (i = 1; i <= 5; i++)
	{
		getE('Star_'+i).className = curRating[i];
	}
}

function SetRate(elem)
{
	if (rated) return;
	var arr = /^Star_(\d+)$/.exec(elem.id); 
	var num = arr[1];
	SendRequest({Action: 'SetUItemRate', UID: uID, Rate: num}, 'SetRateOnResponse');
	return false;
}

function SetRateOnResponse(properties)
{
	if (properties)
	{
		SetHTML("RateNumber", properties.RateNumber);
		getE('dd_for_stars').style.cursor = "auto";
		SetHTML('dd_for_stars', properties.RateLine);
		rated = true;	
	}
	return false;	
}

function LeaveUExported(uID, message)
{
	isAjaxBusy = true;
	document.body.innerHTML = message;
	SendRequest({Action: 'LeaveU', UID: uID}, null);
}

/* common */
function SendRequest(params, callback)
{
	HTMLRequest(projectURL+'ajax/uitem.php', params, callback);
}

function SetBroadCastRights(allow)
{
	getE("AllowBroadCast").style.display = allow ? "block" : "none";
	getE("DisallowBroadCast").style.display = allow ? "none" : "block";
	if (window.cast && !allow)
		window.cast.close();
}
