﻿function CategoryCollapse(categoryId) {
    var hiddControl = $("#hidd" + categoryId);
    
    if ($(hiddControl).val() == "1") {
        // Надо скрыть
        ShowSubcategory(false, categoryId);
        $(hiddControl).val("0");
    }
    else {
        ShowSubcategory(true, categoryId);
        $(hiddControl).val("1");
    }
}

function DeleteFromRemoteBlog(remoteBlogId, userId, blockId) {
    if (confirm('Вы действительно хотите удалить соедиенение со своим блогом?')) {
        $.ajax({
            type: "POST",
            url: "/WebServices/Soobshestvo.asmx/DeleteRemoteBlog",
            contentType: "application/json; charset=utf-8",
            data: '{"remoteBlogId":"' + remoteBlogId + '","userId":"' + userId + '"}',
            dataType: "json",
            success: function(dataObj) {
                alert("соедиенение с внешним блогом удалено");
                $('#' + blockId).hide();
            }
        });
    }
}

function DeleteFromList(inputId, url) {
    if (confirm('Вы действительно хотите удалить запись?')) {
        var hidden = $("#" + inputId);
        $(hidden).parent("form")[0].action = url;
        $(hidden).parent("form")[0].submit();
        return true;
    }
    return false;
}

function ShowSubcategory(isShow, categoryId) {
    var list = $('span[key="child' + categoryId + '"]');
    for (i = 0; i < list.length; i++) {
        if (isShow)
            $(list[i]).show();
        else
            $(list[i]).hide();
    }
}

function CategoryClick(control, categoryId) {
    var list = $('input[key="cbSubcat' + categoryId + '"]');
    for (i = 0; i < list.length; i++) {
        list[i].checked = control.checked;
    }
}

function SubcategoryClick(control, categoryId) {
    var parentChecked = true;
    var list = $('input[key="cbSubcat' + categoryId + '"]');
    for (i = 0; i < list.length; i++) {
        if (list[i].checked == false) {
            parentChecked = false;
            break;
        }
    }
    $('input[key="root' + categoryId + '"]')[0].checked = parentChecked;
}

var soobFilter;

function InitSoobshestvoFilter() {
    soobFilter = new SoobshestvoFilter();
    $('#searchBtn').removeAttr("disabled");
}


SoobshestvoFilter = function() {

    this.Send = function(formId) {

        var fHldr1 = 'div .unborderedTextBlock.checkboxBlock ';
        var fHldr2 = 'div .fullPageTextHolder#searchForm ';
        var selCatIds = '';
        var selQueTypeIds = '';

        // get selected categories from "side category search"
        $(fHldr1 + 'input[name="category"]:checked').each(function(index, el) {
            selCatIds += ((index > 0) ? ',' : '') + el.value;
        });
        // set categories in hidden field on center search from
        var selCatCnt = $(fHldr1 + 'input[name="selCatCnt"]').val();
        $(fHldr2 + 'input[name="category"]').val(selCatIds.split(',').length == selCatCnt ? '' : selCatIds);

        // get selected questionTypes from "side category search"
        $(fHldr1 + 'input[name="questionType"]:checked').each(function(index, el) {
            selQueTypeIds += ((index > 0) ? ',' : '') + el.value;
        });
        // set questionTypes in hidden field on center search from
        $(fHldr2 + 'input[name="questionType"]').val(selQueTypeIds);

        $('#' + formId).submit();
    };
}

function PrePrintSoobshestvo(url) {
    var oDiv = $('<div></div>');
    $(oDiv).html($('div[class="pressPageTextHolder bigCol"]').html());
    $('input[type="text"]', oDiv).remove();
    $('input[type="button"]', oDiv).remove();
    $('input[type="image"]', oDiv).remove();
    $('select', oDiv).remove();
    $('textarea', oDiv).remove();
    var list = $('h3', oDiv);
    var index;
    for(index = 0;index < list.length; index ++)
    {
        $(list[index]).css({ 'border-top': '1px solid black', 'display': 'block', 'padding': '2px 0 0', 'width': '100%' }); ;
    }

    //.css({: ; : block; : ; : 100%;'});
      
    
    $('div[class="page page_s noprint"]', oDiv).remove();
    var childWin = window.open(url, "_blank", "location=no,toolbar=no,scrollbars=yes,directories=no,status=no,menubar=no,resizable=yes");
    childWin.document.open();
    childWin.document.writeln("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">");
    childWin.document.writeln("<html xmlns=\"http://www.w3.org/1999/xhtml\">");
    childWin.document.writeln("<title></title><head>");
    childWin.document.writeln("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />");
    childWin.document.writeln("<link href=\"/css/basic.css\" rel=\"stylesheet\" type=\"text/css\" />");
    childWin.document.writeln("<link href=\"/css/print.css\" rel=\"stylesheet\" type=\"text/css\" />");
    childWin.document.writeln("</head><body>");
    childWin.document.writeln("<div><a href=\"javascript:void(0)\" rel=\"nofollow\" onclick=\"javascript:window.print();\" title=\"Печать\" ><img width=\"16\" height=\"16\" src=\"http://img.address.ua/img/t32.gif\" alt=\"\"/></a>");
    childWin.document.writeln("<a href=\"javascript:void(0)\" rel=\"nofollow\" onclick=\"window.print();\">Распечатать</a></div>");
    childWin.document.writeln("<center><table width=\"775\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"margin: 0 auto;\">");
    childWin.document.writeln("<tr><td colspan=\"2\"><img src=\"http://img.address.ua/img/logo_print.gif\" width=\"224\" height=\"60\" vspace=\"10\" style=\"vertical-align: middle\" alt= \"\"/></td></tr>");
    childWin.document.writeln("<tr><td colspan=\"2\">");
    childWin.document.writeln(oDiv.html());
    childWin.document.writeln("</td></tr>");
    childWin.document.writeln("<tr><td colspan=\"2\" class=\"style7\"><p class=\"style2\">Copyright © 2005-2010 Address.ua. Вопросы и пожелания по сайту, размещение рекламы: info@address.ua</p></td></tr>");
    childWin.document.writeln("</table></body></html>");
    childWin.document.close();
}

function ExtendPost(postId, days) {
    $.ajax({
        type: "POST",
        url: "/WebServices/Soobshestvo.asmx/ExtendPost",
        contentType: "application/json; charset=utf-8",
        data: '{"postId":"' + postId + '","days":"' + days + '"}',
        dataType: "json",
        success: function(dataObj) {
            $("#postExtendSuccess").html("<br />Публикация продлена на " + days + " дней(до " + dataObj.d + ")");
            var count = $("#spnDaysCountBeforeClose").html();
            count = count - (-1 * days);
            $("#spnDaysCountBeforeClose").html(count);
        }
    });
}

function CheckGoodAnswer(control, commentId) {

    var selectedAnswers = GetGoodSelectedCount();
    if (selectedAnswers > 3) {
        alert("Можно выбрать максимум 3 полезных ответа");
        control.checked = false;
        return;
    }
    $("span[key='best" + commentId + "']").removeClass("adviceBestChecked").addClass("adviceBestUnChecked");
}

function CheckBestAnswer(control, commentId) {
    var selectedBest = $("span[key^='best']");
    if (selectedBest.length > 0) {
        var i = 0;
        for (i = 0; i < selectedBest.length; i++) {
            $(selectedBest[i]).removeClass("adviceBestChecked").addClass("adviceBestUnChecked");
        }
    }
    $(control).removeClass("adviceBestUnChecked").addClass("adviceBestChecked");
    $("input[key='good" + commentId + "']")[0].checked = false;
}

function GetGoodSelectedCount() {
    var goodList = $("input[key^='good']");
    var count = 0;
    var i = 0;
    for (i = 0; i < goodList.length; i++) {
        if (goodList[i].checked)
            count++;
    }
    return count;
}

function PostClose() {
    $("input[name='BestAnswer']")[0].value = GetBestId();
    $("input[name='SelectedGoodAnswers']")[0].value =  GetGoodIds();
    $("input[name='SelectedGoodAnswers']").parent("form").submit();
}

function GetBestId() {
    var control = $($("span[class='adviceBestChecked']"));
    if (control.length == 0)
        return "";

    return $(control).attr('key').replace("best", "");
}

function GetGoodIds() {
    var goodList = $("input[key^='good']");
    var result = "";
    var i = 0;
    for (i = 0; i < goodList.length; i++) {
        if (goodList[i].checked) { 
            if (result == "")
                result += $(goodList[i]).attr('key').replace("good", "");
            else
                result += "," +  $(goodList[i]).attr('key').replace("good", "");
        }
    }
    return result;
}

////////////////////////////////////// BEGIN ComplexBinding /////////////////////////////////
var oComplexBinding;
var selDId;
var selCId;

function InitComplexBinding() {
    oComplexBinding = new ComplexBinding();    
}

ComplexBinding = function() {
    this.RegionId = "RegionId";
    this.DistrictId = "ComplexInfo.DistrictId";
    this.ComplexId = "ComplexInfo.ConstructionComplexId";

    this.DistrictClick = function() {
        var regionId = $('select[name="' + this.RegionId + '"] option:selected').val();
        if (regionId == 0)
            alert('Выберите регион в списке выше, чтобы продолжить');
    }

    this.NovostroiChecked = function(checked, catId) {
        if (checked) {
            $('#liNovD').show();
            $('#liNovC').show();
        }
        else {
            $('select[name="' + this.DistrictId + '"]').val(0);
            $('select[name="' + this.ComplexId + '"]')[0].length = 0;
            $('#ComplexInfo_ComplexAddress').val('');
            $('#ComplexInfo_ComplexName').val('');
            $('#liNovD').hide();
            $('#liNovC').hide();
        }
    }

    this.BindDistricts = function() {
        $('select[name="' + this.ComplexId + '"]')[0].length = 0;
        var regionId = $('select[name="' + this.RegionId + '"] option:selected').val();
        if (regionId > 0) {
            var o = this;
            $.ajax({
                type: "POST",
                url: "/WebServices/CascadingDropDownList.asmx/DistrictGetListByRegioId",
                contentType: "application/json; charset=utf-8",
                data: '{"regionId":"' + regionId + '", "withComplexes":"true"}',
                dataType: "json",
                success: function(data) {
                    var ddlD = $('select[name="' + o.DistrictId + '"]');
                    ddlD[0].options.length = 0;
                    if (data.d.length) {
                        ddlD.append('<option value="0">Выберите город/район</option>');
                        $.each(data.d, function(i, item) {
                            ddlD.append('<option value="' + item.Id + '">' + item.Name + '</option>');
                        });
                        $('select[name="' + o.DistrictId + '"]').val(selDId);
                        o.BindComplex();
                    }
                }
            });
        }
        else {
            $('select[name="' + this.DistrictId + '"]')[0].length = 0;
        }
    }

    this.BindComplex = function() {
        $('select[name="' + this.ComplexId + '"]')[0].length = 0;
        var districtId = $('select[name="' + this.DistrictId + '"] option:selected').val();
        if (districtId > 0) {
            var o = this;
            $.ajax({
                type: "POST",
                url: "/WebServices/CascadingDropDownList.asmx/ConstructionComplexGetListByDistrict",
                contentType: "application/json; charset=utf-8",
                data: '{"districtId":"' + districtId + '"}',
                dataType: "json",
                success: function(data) {
                    var ddlD = $('select[name="' + o.ComplexId + '"]');
                    ddlD[0].options.length = 0;
                    if (data.d.length) {
                        ddlD.append('<option value="0">Выберите комплекс</option>');
                        $.each(data.d, function(i, item) {
                            ddlD.append('<option value="' + item.Id + '">' + item.Name + '</option>');
                        });
                        $('select[name="' + o.ComplexId + '"]').val(selCId);
                    }
                }
            });
        }
    }

    this.BindDistricts();
}
////////////////////////////////////// END ComplexBinding /////////////////////////////////
// Group begins
function oGroupUserToBeAdd(formUrl, inviteUrl, joinUrl, leaveUrl, groupName, obj, ownerId) {
    instGroupUserToBeAdd = this;
    this.Elm = '#gropuusertobeadd';
    this.ControlId = "#usertobeaddctx";
    this.FormUrl = formUrl;
    this.InviteUrl = inviteUrl;
    this.JoinUrl = joinUrl;
    this.LeaveUrl = leaveUrl;
    this.GroupName = groupName;
    this.OwnerId = ownerId;
    this.Data= obj;

    this.Show = function() {
        $.ajax({
            type: 'POST',
            url: this.FormUrl,
            data: this.Data,
            dataType: 'html',
            success: function(data) {
                $(instGroupUserToBeAdd.Elm).remove();
                $("body").append(data);
                $(document).ready(function() {
                    validationRules.Prepare();
                    if ($("#GroupUser_Name").length > 0) {
                        loadJSFile("/js/lib/jquery/jquery.autocomplete.js", $.Autocompleter);
                        ExecFuncByCond(function() { return $.Autocompleter; }, function() {
                            $("#GroupUser_Name").autocomplete(instGroupUserToBeAdd.UserList, {
                                minChars: 0,
                                max: 4000,
                                maxItemsToShow: 20,
                                mustMatch: true,
                                //показывает элементы в списке
                                formatItem: function(data, i, max) {
                                    return data.Name;
                                },
                                //это значение записывается в input-поле
                                formatResult: function(data) {
                                    return data.Name;
                                }
                            }).result(function(event, data, formatted) {
                                instGroupUserToBeAdd.UserId = data.UserId;
                            });
                        });
                    }
                    $("#GroupUser_Name").change(function() { if (this.value < ' ') instGroupUserToBeAdd.UserId = null; })
                    $("#GroupUser_Content").val('Я хочу пригласить Вас присоединиться к моей группе на Address.ua - «' + instGroupUserToBeAdd.GroupName + '». ' + instGroupUserToBeAdd.OwnerName + '.');
                });
            }
        })
    };

    this.Invite = function(userId) {
        validationRules.beginErrGroup();
        $("#GroupUser_Content,#GroupUser_Email").change();
        if (validationRules.endErrGroup())
            return;
        if (!instGroupUserToBeAdd.UserId && $("#GroupUser_Email").val() < ' ') {
            alert("Заполните имя или E-mail контакта!");
            return;
        }
        var content = $("#GroupUser_Content").val().trim();
        if (content < ' ') {
            alert("Заполните текст приглашения!");
            return;
        }
        
        userId = userId || instGroupUserToBeAdd.UserId;
        $.ajax({
            type: 'POST',
            url: this.InviteUrl,
            data: { userId: userId, userEmail: $("#GroupUser_Email").val(), content: content, groupId: this.Data.id, groupName: this.GroupName },
            dataType: 'json',
            success: function(data) {
                alert(data || "Приглашение отправлено!");
                instGroupUserToBeAdd.Hide();
            }
        })
    };

    this.Join = function() {
        $.ajax({
            type: 'POST',
            url: this.JoinUrl,
            data: { groupId: this.Data.id, groupName: this.GroupName, ownerId: this.OwnerId },
            dataType: 'html',
            success: function(data) {
                alert("Запрос на приглашение в группу отправлен!");
                instGroupUserToBeAdd.Hide();
            }
        })
    };

    this.Leave = function(id, connId, name) {
        if (id ? confirm("Вы действительно хотите исключить данного пользователя из группы?"): confirm("Вы действительно хотите покинуть данную группу?"))
            $.ajax({
                type: 'POST',
                url: this.LeaveUrl,
                data: { groupId: this.Data.id, groupToUserId: (connId?connId:this.Data.grouptouserid), userId: id },
                dataType: 'html',
                success: function(data) {
                    if (data) {
                        alert((id ? "Пользователь "+(name?(name+" "):"")+"больше не является членом данной группы!" : "Вы больше не являетесь членом данной группы!"));
                        if (id) {
                            if (instGroupUserToBeAdd.DeleteRetUrl)
                                location.href = instGroupUserToBeAdd.DeleteRetUrl;
                            else
                                location.href = location.href;
                        } else
                            location.href = location.href.replace(location.search, '');
                    } else
                        alert("Пользователь не может быть исключен из данной группы!");
                }
            })
    };

    this.Hide = function() {
        $(this.Elm).remove();
        $("#GroupUser_Email").val("");
        delete instGroupUserToBeAdd.UserId;
    };

    this.ShowPage = function(pg) {
        var id = this.ControlId;
        this.Data.Pg = pg;
        this.Data.IsAjax = true;
        $.ajax({
            type: 'POST',
            url: this.FormUrl,
            data: this.Data,
            dataType: 'html',
            success: function(data) {
                $(id).html(data);
            }
        });
        return false;
    }
};

var oGroupObsuzhdeniya;

function InitGroupObsuzhdeniya(groupId, userId) {
    oGroupObsuzhdeniya = new GroupObsuzhdeniya(groupId, userId);
}

GroupObsuzhdeniya = function(groupId, userId) {

    this.Subscribe = function(isSubscribe) {
        var data = { groupId: groupId, userId: userId, isSubscribe: isSubscribe };
        this.Url = "/WebServices/Soobshestvo.asmx/SubscribeOnGroupObsuzhdeniya";
        $.ajax({
            type: 'POST',
            url: this.Url,
            data: $.toJSON(data),
            contentType: "application/json; charset=utf-8",
            dataType: 'json',
            success: function(d) {
                alert(d.d);
            }
        });
    }
}

// Group ends

// Begin just to subsribe and ubsubscribe
oSubcribtion = function(suburl, unsuburl, type, str, value, f) {
    this.SubUrl = suburl;
    this.UnSubUrl = unsuburl;
    this.Type = type;
    this.Value = value;
    this.Mess = str;
    this.F = f;
    this.Toggle = function(_url) {
        if (this.Value)
            UnSubscribeOnUrl(this.Type, this.UnSubUrl, this.Mess, this.F);
        else
            SubscribeOnUrl(this.Type, _url, this.SubUrl, this.Mess, this.F);
    };
}
// End just to subsribe and ubsubscribe


