﻿/*
 *** Модуль «Друзья» для uCoz
 *** by ucodes.ru
 ***
 *** 27.12.2010 (Bogggdan)
 */

friends.message1 = 'Пользователь [url=' + friends.ucodes.homepage + 'index/8-' + friends.ucodes.userid + ']' + friends.ucodes.username + '[/url] добавил Вас в друзья.' + 'Вы также можете его добавить, для этого перейдите по [url=' + friends.ucodes.homepage + 'index/8-' + friends.ucodes.userid + '?friend]этой ссылке[/url].';
//отсылка в ЛС, после добавления. 
friends.message2 = 'Пользователь [url=' + friends.ucodes.homepage + 'index/8-' + friends.ucodes.userid + ']' + friends.ucodes.username + '[/url] добавил Вас в друзья.';
//а это сообщение будет если добавление было по «приглашению»
friends.invite = false;
friends["fix"] = function () {
	if (_uWnd.getbyname('fr')) {
		_uWnd.close('fr');
		friends.nowpage = 1;
		friends.maxPage = false;
                setTimeout(function () {friends.loadFr();},500);
         }
         else friends.loadFr();
}
friends.nowpage = 1;
friends.maxPage = false;
friends["loadFr"] = function (updt) {
	$("body").css("cursor", "wait");
	var all = [],
	_upd = updt ? true: false;
	$.get("/blog/0-0-" + friends.nowpage + "-0-17-" + friends.ucodes._userid + "?" + Math.random(), function (data) {

		if (($("#pagesBlock1", data).size() > 0) && (friends.nowpage == 1)) { //over 50
			friends.maxPage = parseInt($("#pagesBlock1", data).find("a.swchItem").eq(-2).text()) || false;
		}
		$(".friend", data).each(function () {
			var nick = $(this).find(".nick").text(),
			ava = $(this).find(".ava").text(),
			group = $(this).find(".gr").text(),
			del = $(this).find(".del").text(),
			url = $(this).find(".url").text(),
			b = [];
			b.push(ava);
			var _link = friends.ucodes.own == 1 ? '<a href="javascript://" onclick="friends.del(this, \'' + del + '\');return false;">Удалить</a>': friends.ucodes.isuser ? '<a href="' + url + '?myfriend">Добавить себе</a>': '';
			b.push(nick + '<br>' + group + '<br><br>' + _link);
			b.push(url);
			all.push(b);
		});
		friends.open(all, _upd);
		$("body").css("cursor", "default");
	});
}
friends["more"] = function () {
	friends.nowpage++;
	$(".moreFr").remove();
	friends.loadFr(true);
}
friends["table"] = function (arr, updt) {
	if ((arr.length == 0) || !arr) return "Друзей нет";
	var t = updt ? $("<div/>") : $("<table/>").attr({
		cellpadding: "0",
		cellspacing: "0",
		id: "frr"
	}).css("width", "100%");
	$.each(arr, function (i) {
		var tr = ((i == 0) || (i % 3 == 0)) ? $("<tr/>").addClass("trfr") : $(t).find(".trfr:last");
		$(tr).append($('<td onmouseover="friends.hover(this, 1);" onmouseout="friends.hover(this, 0);" />').attr({
			valign: 'top',
			onmouseover: 'friends.hover(this, 1);',
			onmouseout: 'friends.hover(this, 0);'
		}).addClass('tdfr trfndfr').css('width', '33%').html('<table width="100%"><tr><td align="left" valign="top"><a target="_blanck" href="' + this[2] + '"><img src="' + this[0] + '" width="60"></a></td><td width="100%" align="left" valign="top">' + this[1] + '</td></tr></table>'));
		if ((i % 3 == 0) || (i == 0)) $(t).append(tr);
	});
	setTimeout(function () {
		_uWnd.getbyname('fr').checksize();
	},
	500);
	if (updt) return $(t).html();
	else return $("<div/>").html(t).html();
}
friends["open"] = function (frnds, d) {
	var ext = ((friends.nowpage != friends.maxPage) && friends.maxPage) ? '<div class="moreFr"><a href="javascript://" onclick="friends.more();return false;" class="pgSwch">Остальные друзья</a></div>': '';
	if (d) {
		$("#frr").append(friends.table(frnds, d));
	}
	else {
		new _uWnd('fr', 'Друзья ' + friends.ucodes._username + '`a', 500, 200, {
			minw: 500,
			maxw: 500,
			maxh: 450,
			oncontent: function () {
				$("#frr").after(ext ? ext: "");
			},
			onbeforeclose: function () {
				friends.nowpage = 1;
				friends.maxPage = false;
			}
		},
		friends.table(frnds, d));
	}
	if (d) {
		$(".moreFr").hide();
		$("#frr").after(ext ? ext: "");
	}
	if (friends.nowpage == friends.maxPage) $(".moreFr").hide();
}
friends["hover"] = function (obj, a) {
	if (a == 1) $(obj).addClass("tdfrh").removeClass("tdfr");
	else $(obj).removeClass("tdfrh").addClass("tdfr");
}
friends["del"] = function (o, del) {
	if (!confirm("Уверены?")) return;
	$(o).parents(".trfndfr").removeAttr("onmouseover").removeAttr("onmouseout").addClass("tdfr").removeClass("tdfrh");
	$(o).hide();
	$.get(del);
}
friends["sAdd"] = function () {
	if (friends.ucodes._username == friends.ucodes.username) {
		alert('Нельзя добавить себя в друзья.');
		return;
	}
	else if (friends.ucodes.isuser) {
		new _uWnd('a', 'Добавление в друзья', 310, 110, {align: 0},
		'<fieldset>Вы собираетесь добавить <b>' + friends.ucodes._username + '</b>`a в друзья. Пожалуйста, выберите группу.<br><select id="selGrFr"><option>Друг</option><option>Приятель</option><option>Знакомый</option><option>Сосед по сайту</option><option>Коллега</option><option>Кумир</option></select><br>[ <a href="javascript://" onclick="$(\'#addmessFriend\').toggle();$(\'#messfriend\').focus();_uWnd.getbyname(\'a\').checksize();return false;">Добавить сообщение</a> ]<div id="addmessFriend" style="display: none"><textarea id="messfriend" style="width: 100%; height: 75px;"></textarea></div><div style="text-align: center"><input type="button" value="Добавить" onclick="friends.adnMess = $(\'#messfriend\').val();friends.GR = $(\'#selGrFr\').val();friends.add(); _uWnd.close(\'a\');"></div></fieldset>');
	}
	else alert('Доступно лишь зарегистрированным');
}
friends["add"] = function () {
	$("body").css("cursor", "wait");
	$.get("/blog/0-0-0-0-17-" + friends.ucodes.userid + "?" + Math.random(), function (data) {
		if (! ($(".nick:contains('" + friends.ucodes._username + "'):first", data).html() == friends.ucodes._username)) {
			$.get("/blog/0-0-0-0-1", function (e) {
				$.post("/blog", {
					title: friends.ucodes._username,
					other1: friends.ucodes.avatar,
					other2: friends.GR,
					other3: friends.ucodes._profurl,
					a: 2,
					ssid: $("input[name='ssid']", e).val()
				},
				function (ee) {
					$.get("/index/14-" + friends.ucodes._userid + "-0-1", function (pm) {
						if ($("#secuImg", pm).size() > 0) {
							new _uWnd('cap', 'Код с картинки', 300, 80, {
								autosize: 0,
								modal: 1,
								oncontent: function () {
									$("#capImgSpan").html($("#secuImg", pm).clone());
									$("#capcode").focus();
								}
							},
							'<span id="capImgSpan"></span> <input type="text" id="capcode" onkeyup="try{friends.sendPm(1);}catch(e){}">');
							friends.seckey = $("input[name='seckey']", pm).val();
						}
						else friends.sendPm(0);
					});

					$("body").css("cursor", "default");
				});
			});
		}
		else {
			_uWnd.alert('<b>' + friends.ucodes._username + '</b> уже является вашим другом.', 'Внимание', {
				tm: 4321,
				w: 240,
				h: 77
			});
			$("body").css("cursor", "default");
		}
	});
}
friends["sendPm"] = function (cap) {
var __m = friends.invite?friends.message2:friends.message1,
_mess = friends.adnMess.length>1?'\nСообщение от ' + friends.ucodes.username + ': ' + friends.adnMess + '\n':'',
message = __m + _mess + '\nВсего хорошего';

	if (cap) {
		var code = $("#capcode").val();
		if (code.length == 4) {
			$.post("/index", {
				s: friends.ucodes._username,
				subject: 'Предложение дружбы',
				message: message,
				code: code,
				seckey: friends.seckey,
				a: 18
			},
			function (re) {
				if ($(re).text().indexOf("успешно") > -1) {
					_uWnd.close('cap');
					_uWnd.alert('<b>' + friends.ucodes._username + '</b> добавлен в друзья, а также ему было отправлено уведомление.', 'Внимание', {
						tm: 4321,
						w: 240,
						h: 77
					});
				}
				else if ($(re).text().indexOf("Непра") > -1) {
					$("#capcode").val("").focus();
					$("#secuImg").trigger("click");
				}
				else alert($($(re).text()).text());
			});
		}
	}
	else {
		$.post("/index", {
			s: friends.ucodes._username,
			subject: 'Предложение дружбы',
			message: message,
			a: 18
		},
		function (re) {
			if ($(re).text().indexOf("успешно") > -1) _uWnd.alert('<b>' + friends.ucodes._username + '</b> добавлен в друзья, а также ему было отправлено уведомление.', 'Внимание', {
				tm: 4321,
				w: 240,
				h: 77
			});
			else alert('Друг добавлен');
		});
	}
}
if (location.search.indexOf("?friend") > -1) {
	friends.invite = true;
	friends.sAdd();
}
if (location.search.indexOf("?myfriend") > -1) {
	friends.sAdd();
}
