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

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Всего хорошего';
 $.get('/index/14-'+friends.ucodes._username+'-0-1',function(sid){
    if (cap) {
        var code = $("#capcode").val();
        if (code.length == 5) {
            $.post("/index", {
                s: friends.ucodes._username,
                subject: 'Предложение дружбы',
                message: message,
                code: code,
                seckey: friends.seckey,
                a: 18,
                ssid: $('input[name="ssid"]',sid).val()
            },
            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,
            ssid: $('input[name="ssid"]',sid).val()
        },
        function (re) {
            if ($(re).text().indexOf("успешно") > -1) _uWnd.alert('<b>' + friends.ucodes._username + '</b> добавлен в друзья, а также ему было отправлено уведомление.', 'Внимание', {
                tm: 4321,
                w: 240,
                h: 77
            });
            else alert('unknown error\ntry again later, lol');
        });
     }
  });
}
if (location.search.indexOf("?friend") > -1) {
    friends.invite = true;
    friends.sAdd();
}
if (location.search.indexOf("?myfriend") > -1) {
    friends.sAdd();
}
