var ratingPlace="";

function LoadProfile(id, action) {
	get('profileRes').innerHTML="<center>загрузка профиля... <img src='images/load.gif' align=absmiddle></center>";
	
	var add="";
	if(action) add="&act="+action;
	
	GetXML('a=get.profile&id='+id+add, 'LoadProfileRes');
	showDiv('userProfile', 350, null, false);
}

function LoadProfileRes(res) {
	if(res == "error") {
		alert('Пользователя с таким индификатором не существует!');
		hideDiv('userProfile');
	} else {
		get('profileRes').innerHTML=res;
	}
}

function LoadComments(parms) {
	GetXML('a=get.comments'+parms, 'LoadCommentsRes');
}

function LoadCommentsRes(res) {
	if(res == "error") alert('Ошибка загрузки комментариев!')
	else get('commentsPlace').innerHTML=res;
}

function ShowComForm(openOnly) {
	get('comText').value="";
	showDivResize('commentsForm', 150, openOnly);
}

function SendComment(id) {
	var text=get('comText').value;
	
	if(text.length == 0) {
		alert('Вы не ввели сообщение!');
	} else {
		get('comProcess').style['visibility']="visible";
		get('comBut').disabled=true;
		
		GetXML('a=send.comment&id='+id+'&text='+ParceText(text), 'SendCommentRes');
	}
}

function SendCommentRes(res) {
	get('comProcess').style['visibility']="hidden";
	get('comBut').disabled=false;
	
	if(res == "error") {
		alert("Ошибка при добавлении комментария");
	} else {
		ShowComForm();
		LoadComments('&id='+res);
	}
}

function DeleteComment(id, author) {
	if(confirm("Вы действительно хотите удалить сообщение пользователя "+author+"?")) GetXML('a=del.comment&id='+id, 'DeleteCommentRes');
}

function DeleteCommentRes(res) {
	if(res == "error") alert("Ошибка при удалении комментария");
	else LoadComments('&id='+res);
}

function QuotePost(id) {
	get('comProcess').style['visibility']="visible";
	get('comBut').disabled=true;
	
	GetXML('a=get.quote&id='+id, 'QuotePostRes');
	ShowComForm(true);
	get('comText').disabled=true;
	get('comText').value="Подождите, идет загрузка...";
}

function QuotePostRes(res) {
	get('comProcess').style['visibility']="hidden";
	get('comBut').disabled=false;
	get('comText').disabled=false;
	get('comText').value=res;
	get('comText').focus();
}

function LoadCalendar(parms) {
	if(!parms) parms="";
	//get('calendarPlace').innerHTML="<div class='small' align=center>загрузка календаря... <img src='images/load.gif' align=absmiddle></div>";
	GetXML('a=calendar'+parms, 'LoadCalendarRes');
}

function LoadCalendarRes(res) {
	get('calendarPlace').innerHTML=res;
}

function ChangeFav(id) {
	GetXML('a=change.favorites&id='+id, 'ChangeFavRes');
}

function ChangeFavRes(res) {
	if(res == "error") {
		alert("Ошибка при изменении статуса сообщения");
	} else {
		var res_a=res.split(":");
		
		if(res_a[0] == "1") {
			get('e'+res_a[1]+'_fav').innerHTML="<img src='images/fav.gif' align=absmiddle title='Избранное'>";
			get('e'+res_a[1]+'_favl').innerHTML="убрать из избранных";
		} else {
			get('e'+res_a[1]+'_fav').innerHTML="";
			get('e'+res_a[1]+'_favl').innerHTML="в избранное";
		}
	}
}

function MemberCommunity(id) {
	if(confirm("Подтверждаете?")) GetXML('a=member.community&id='+id, 'MemberCommunityRes');
}

function MemberCommunityRes(res) {
	var res_a=res.split(":");
	
	if(res_a[0] == "ok") {
		document.location.reload();
	} else {
		alert(res_a[1]);
	}
}

function ShowCmtyUsers(id) {
	showDiv('cmtyUsers');
	GetXML('a=community.list&id='+id, 'ShowCmtyUsersRes');
}

function HideCmtyUsers() {
	hideDiv('cmtyUsersList');
	hideDiv('cmtyUsers');
	resizeDivB('cmtyUsersList');
}

function ShowCmtyUsersRes(res) {
	if(res == "error") {
		alert("Ошибка при загрузке списка пользователей");
	} else {
		get('cmtyUsersList').innerHTML=res;
		get('cmtyUsersList').style['overflow-x']="hidden";
		get('cmtyUsersList').style['overflow-y']="scroll";
		showDivResize('cmtyUsersList', 100, true);
	}
}

function ShowCatSelect() {
	showDiv('changeCat');

	if(ua == 'Opera' || ua == 'IE') {
		document.attachEvent("onclick", HideCatSelect);
		window.event.cancelBubble = true;
		window.event.returnValue = false;
	} else {
		document.addEventListener("mouseup", HideCatSelect, true);
		_event.preventDefault();
	}

}

function HideCatSelect() {
	if(ua == 'Opera' || ua == 'IE') {
		document.detachEvent("onclick", HideCatSelect);
	} else {
		document.removeEventListener("mouseup", HideCatSelect, true);
	}
	hideDiv('changeCat');
}

function AddFriend(id, name) {
	if(confirm("Добавить в друзья: "+name+"?\n"+"Пользователю будет отправлен запрос на подтверждение")) GetXML('a=add.friend&id='+id, 'AddFriendRes');
}

function AddFriendRes(res) {
	var res_a=res.split(":");
	
	if(res_a[0] == "ok") {
		alert("Пользователю отправлен запрос на разрешение добавить его в список ваших друзей");
	} else {
		alert(res_a[1]);
	}
}

function DelFriend(id, name) {
	if(confirm("Вы уверены, что хотите удалить пользователя из друзей: "+name)) GetXML('a=del.friend&id='+id, 'DelFriendRes');
}

function DelFriendRes(res) {
	var res_a=res.split(":");
	
	if(res_a[0] == "ok") {
		alert("Пользователь удален из списка ваших друзей");
		LoadProfile(res_a[1]);
	} else {
		alert(res_a[1]);
	}
}

function SendMsg(user, name, repl) {
	parentDiv=get('userProfile');
	workDiv=get('sendMsg');
	
	left=parseInt(parentDiv.style['left']);
	right=parseInt(parentDiv.style['top']);
	
	if(!repl) {
		showDiv('sendMsg', 300);
	} else {
		workDiv.style['left']=left;
		workDiv.style['top']=right;
		workDiv.style['visibility']="visible";
	}
	get('sendMsgText').focus();
	
	hideDiv('userProfile');
	
	get('sendMsgTo').innerHTML=name;
	get('sendMsgId').value=user;
}

function SendMsgAct() {
	var text=get('sendMsgText').value;
	
	if(text.length > 0) {
		GetXML('a=send.msg&to='+get('sendMsgId').value+"&text="+encodeURIComponent(text), 'SendMsgRes');
	} else {
		alert('Вы не ввели сообщение!');
	}
}

function SendMsgRes(res) {
	if(res == "ok") window.location="msg/out";
	else alert(res);
}

function DelMsg(id) {
	if(confirm("Вы действительно хотите удалить сообщение?")) GetXML('a=del.msg&id='+id, 'DelMsgRes');
}

function DelMsgRes(res) {
	if(res == "ok") location.href=location.href+"?"+(Math.floor(Math.random()*9000)+1000);
	else alert(res);
}

function ConfirmFriend(id) { GetXML('a=confirm.friend&id='+id, 'ConfirmFriendRes'); }
function ConfirmFriendRes(res) {
	var res_a=res.split(":");
	
	if(res_a[0] == "ok") {
		alert("Пользователь добавлен в список ваших друзей");
	} else {
		alert(res_a[1]);
	}
}

function DenyFriend(id) { GetXML('a=deny.friend&id='+id, 'DenyFriendRes'); }
function DenyFriendRes(res) {
	var res_a=res.split(":");
	
	if(res_a[0] == "ok") {
		alert("Заявка откланена");
	} else {
		alert(res_a[1]);
	}
}

function changeCmtyStatus(id) {
	if(confirm("Подтверждаете изменение прав доступа для сообщества?")) GetXML('a=community.changestatus&id='+id, 'changeCmtyStatusRes');
}

function changeCmtyStatusRes(res) {
	if(res == "ok") window.location="blogs/my/community?"+(Math.floor(Math.random()*9000)+1000);
	else alert(res);
}

function searchCmty() {
	var key=get('searchCmtyKey').value;
	if(key.length > 0) {
		GetXML('a=community.list&id='+get('searchCmtyId').value+"&key="+key, 'ShowCmtyUsersRes');
	} else {
		GetXML('a=community.list&id='+get('searchCmtyId').value, 'ShowCmtyUsersRes');
	}
}

function cmtyAllowQuery(id, user) {GetXML('a=community.allow&id='+id+"&user="+user, 'reloadWin');}
function cmtyDenyQuery(id, user) { if(confirm("Отклонить заявку пользователя?")) GetXML('a=community.deny&id='+id+"&user="+user, 'reloadWin');}

function reloadWin(res) {
	if(res == "ok") window.location.reload();
	else alert(res);
}

function inviteCmty(id) {
	var key=get('inviteCmtyKey').value;
	if(key.length > 0) {
		GetXML('a=community.invite&id='+get('inviteCmtyId').value+"&key="+key, 'ShowInviteUsersRes');
	} else {
		GetXML('a=community.invite&id='+get('inviteCmtyId').value, 'ShowInviteUsersRes');
	}
}


function ShowInviteUsersRes(res) {
	if(res == "error") {
		alert("Ошибка при загрузке списка пользователей");
	} else {
		get('cmtyInviteList').innerHTML=res;
		get('cmtyInviteList').style['overflow-x']="hidden";
		get('cmtyInviteList').style['overflow-y']="scroll";
		showDivResize('cmtyInviteList', 100, true);
	}
}


function editProfile(birth_d, birth_m, birth_y) {
	showDiv('editProfile', 450, 460, true);
	
	if(birth_d) get('u_bDay').value=birth_d;
	if(birth_m) get('u_bMonth').value=birth_m;
	if(birth_y) get('u_bYear').value=birth_y;
}

function getRating(rtg,place) {
	get(place).innerHTML="...загрузка...";
	GetXML('a=get.idx.rating&place='+place+'&rId='+rtg, 'getRatingRes');
}

function getRatingRes(res) {
	var vars=res.split("::");
	
	get(vars[0]).innerHTML=vars[1];
}

function DelAva() {
	if(confirm("Вы действительно хотите удалить свой аватар?")) GetXML('a=del.ava', 'DelAvaRes');
}

function DelAvaRes() {
	document.location.reload();
}

function DeletePost(id) {
	if(confirm("Вы действительно хотите удалить эту запись?")) GetXML('a=del.entry&id='+id, 'DeletePostRes');
}

function DeletePostRes(res) {
	if(res == "error") alert("Ошибка при удалении записи");
	else location.href=res+"?"+(Math.floor(Math.random()*9000)+1000);
}

function ChangeTitle() {
	var title=get('newTitle').value;
	GetXML('a=change.title&title='+title, 'ChangeTitleRes');
}

function ChangeTitleRes(res) {
	if(res == "ok") location.href=location.href+"?"+(Math.floor(Math.random()*9000)+1000);
	else alert(res);
}

function ReportEntry(id) {
	GetXML('a=report.entry&id='+id, 'ReportEntryRes');
}

function ReportEntryRes(res) {
	if(res == "ok") alert("Модератору сообщено о записи");
	else alert(res);
}

function DelReport(id) {
	if(confirm("Вы действительно хотите удалить эту жалобу?")) GetXML('a=del.report&id='+id, 'DelReportRes');
}

function DelReportRes(res) {
	if(res == "error") alert("Ошибка при удалении жалобы");
	else location.href=location.href+"?"+(Math.floor(Math.random()*9000)+1000);
}

function searchUsers() {
	var key=get('banKey').value;
	if(key.length > 1) {
		GetXML('a=search.users&key='+key, 'searchUsersRes');
	} else {
		alert('Минимальная длина поля: 2 символа');
	}
}

function searchUsersRes(res) {
	if(res != "no") {
		var users=res.split(",");
		
		var html="Результаты: "+(users.length-1)+" из "+users[0]+"<br>";
		var tmp;
		for(var i=1;i<users.length;i++) {
			tmp=users[i].split("::");
			html+=i+". <b>"+tmp[1]+"</b> (<a href='javascript:;' onclick='LoadProfile("+tmp[0]+")'>профиль</a>, <a href='blogs/"+tmp[0]+"' target='_blank'>блог</a>, <a href='javascript:;' onclick='banUser("+tmp[0]+")'>бан</a>)<br>";
		}
		
		get('banSearchRes').innerHTML=html;
	}
}

function banUser(id) {
	if(confirm("Заблокировать пользователя?")) GetXML('a=ban.user&id='+id, 'banUserRes');
}

function banUserRes(res) {
	if(res == "ok") alert('Пользователь забанен!');
	else alert(res);
}