﻿MGR.MessagesStatistic = {
    autenticatedMessagePopup: "/HtmlTemplates/Messages/SendMessagePopup.htm",
    notAutenticatedMessagePopup: "/HtmlTemplates/Messages/UnregSendMessagePopup.htm",
    captcha: new Controls.Captcha("imgPopupUnregMsgCaptcha"),
    init: function () {//Инициируем опрос статистики сообщений раз в 20сек
        var context = this;
        if (MGR.checkAutenticated())
            setInterval(function () { context.check() }, 20000);
    },
    check: function () {//опрос статистики
        var _thisRef = this;
        if (MGR.checkAutenticated())
            Data.MessagesHelper.GetMessagesStatistic({}, function (data) {
                if (data) {
                    $('.sendedCount').text(data.SendedCount || 0);
                    $('.recevedCount').text(data.RecevedCount || 0);
                    $('.notReadedCount').text(data.NotReadedCount || 0);
                    $('.deletedCount').text(data.DeletedCount || 0);
                    if(data.Messages)
                    for (var i = 0; i < data.Messages.length; i++) {//если есть новые выбрасываем сообщения
                        if (Data.BO.StatusMessageType) {
                            var msg = new Data.BO.StatusMessage("Новое Сообщение от: " + data.Messages[i].SenderName, Data.BO.StatusMessageType.Info, '<a href="/messages/#page=details&id=' + data.Messages[i].Id + '">' + data.Messages[i].Title + '</a>');
                            Controls.StatusBar.insertMessage(msg);
                        }
                    }
                }
            });
        },

    showSendMessageDialog: function (userId, userName, isCompany) {//Показ дилога написания сообщения
        var _thisRef = this;

        function showregdlg() { // для зарегистрированного пользователя
            $.get(_thisRef.autenticatedMessagePopup, function (data) {
                $('body').append(data); //вставляем
                $('#aPopupMsgUserName').text(userName); //заполняем
                $('#popupMsgDlg').attr('uId', userId);
                $('#popupMsgDlg').fadeIn('slow'); //показываем
                $('#btnPopupMsgCancel').click(function () { $(this).parent().parent().remove(); }); //вешаем события кликов
                $('#btnPopupMsgSend').click(function () {//отправка
                    $('#popupMsgDlg').hide();
                    Data.MessagesHelper.SendQuickMessage({ receverId: $('#popupMsgDlg').attr('uId'), title: $('#tbxPopupMsgTitle').attr('value'), text: $('#tbxPopupMsgText').attr('value') }, function () {
                        //Паша кудато пишет себе
                        if (isCompany) {
                            System.Web.Ajax.executeServeses("{CompanyId:'" + $('#popupMsgDlg').attr('uId') + "',Subject:'" + $('#tbxPopupMsgTitle').attr('value') + "',FromCompanyName:false}", "/UTSWebService.asmx/SendCompanyMessageNotification", function (data) { });
                        }
                        else {
                            System.Web.Ajax.executeServeses("{UserId:'" + $('#popupMsgDlg').attr('uId') + "',Subject:'" + $('#tbxPopupMsgTitle').attr('value') + "'}", "/UTSWebService.asmx/SendPrivateMessageNotification", function (data) { });
                        }
                        $('#popupMsgDlg').remove();
                        if (Data.BO.StatusMessageType) {//показываем сообщение, что все ок
                            var serviceCallWarning = new Data.BO.StatusMessage("Cообщение отправлено", Data.BO.StatusMessageType.Success, "Ваше сообщение было успешно отправлено");
                            Controls.StatusBar.insertMessage(serviceCallWarning);
                        }
                    });
                });
            });
        }

        function showunregdlg() {//для незагегистрированного
            //подгружаем темплейт
            $.get(_thisRef.notAutenticatedMessagePopup, function (data) {
                $('body').append(data); //вставляем
                $('#aPopupUnregMsgUserName').text(userName);//заполняем
                $('#popupUnregMsgDlg').attr('uId', userId);
                $('#popupUnregMsgDlg').fadeIn('slow');//показываем
                $('#btnPopupUnregMsgCancel').click(function () { $(this).parent().parent().remove(); });//вешаем события кликов
                $('#btnPopupUnregMsgSend').click(function () {//отправка
                    if ($('#tbxPopupUnregMail').attr('value') != "" && $('#tbxPopupUnregName').attr('value') != "") {
                        $('#popupMsgDlg').css('display', 'none');
                        Data.MessagesHelper.SendUnregMessage({ receverId: $('#popupUnregMsgDlg').attr('uId'), title: $('#tbxPopupUnregMsgTitle').attr('value'), text: $('#tbxPopupUnregMsgText').attr('value'), mail: $('#tbxPopupUnregMail').attr('value'), phone: $('#tbxPopupUnregPhone').attr('value'), name: $('#tbxPopupUnregName').attr('value'), code: $('#tbxPopupUnregMsgCapchaCode').attr('value') },
                            function (data) {//выбрасываем сообщения об исключениях
                                if ("InvalidCapcha" == data)
                                    alert("Неверный код подтверждения");
                                else if ("ERROR" == data)
                                    alert("Произошла ошибка");
                                else if ("OK" == data) {//отправилось все ок
                                    //Паша кудато пишет себе
                                    if (isCompany) {
                                        System.Web.Ajax.executeServeses("{CompanyId:'" + $('#popupUnregMsgDlg').attr('uId') + "',Subject:'" + $('#tbxPopupUnregMsgTitle').attr('value') + "',FromCompanyName:false}", "/UTSWebService.asmx/SendCompanyMessageNotification", function (data) { });
                                    }
                                    else {
                                        System.Web.Ajax.executeServeses("{UserId:'" + $('#popupUnregMsgDlg').attr('uId') + "',Subject:'" + $('#tbxPopupUnregMsgTitle').attr('value') + "'}", "/UTSWebService.asmx/SendPrivateMessageNotification", function (data) { });
                                    }
                                    $('#popupUnregMsgDlg').remove();
                                    if (Data.BO.StatusMessageType) {//показываем сообщение, что все ок
                                        var serviceCallWarning = new Data.BO.StatusMessage("Cообщение отправлено", Data.BO.StatusMessageType.Success, "Ваше сообщение было успешно отправлено");
                                        Controls.StatusBar.insertMessage(serviceCallWarning);
                                    }
                                }
                            });
                    }
                    else alert("Имя и e-mail обязательны для заполнения");
                });
            });
        }

        if (MGR.checkAutenticated()) {
            showregdlg(); //юзер залогинен пущай шлет
        }
        else if (window.cds) {//юзер не залогинен но на странице присутствует объект кросдоменного пересыла "cds"
            var data = { type: 'isauth', d: {} };
            cds.set(data, function (data) { showmsgdlg(data); });//проверяем залогинен ли он на магоре
            function showmsgdlg(data) {// если чтото пришло в data значит залогинен
                if (data) {
                    $.get(_thisRef.autenticatedMessagePopup, function (data) {
                        $('body').append(data);
                        $('#aPopupMsgUserName').text(userName);
                        $('#popupMsgDlg').attr('uId', userId);
                        $('#popupMsgDlg').fadeIn('slow');
                        $('#btnPopupMsgCancel').click(function () { $(this).parent().parent().remove(); });
                        $('#btnPopupMsgSend').click(function () {
                            $('#popupMsgDlg').css('display', 'none');
                            //отправляем сообщение на магору откуда уже отсылаем получателю
                            var data = { type: 'sendmsg', d: { receverId: $('#popupMsgDlg').attr('uId'), title: $('#tbxPopupMsgTitle').attr('value'), text: $('#tbxPopupMsgText').attr('value')} };
                            cds.set(data, function (data) {
                               // if (isCompany) {
                                    System.Web.Ajax.executeServeses("{CompanyId:'" + $('#popupMsgDlg').attr('uId') + "',Subject:'" + $('#tbxPopupMsgTitle').attr('value') + "',FromCompanyName:false}", "/UTSWebService.asmx/SendCompanyMessageNotification", function (data) { });
                              //  }
                               // else {
                              //      System.Web.Ajax.executeServeses("{UserId:'" + $('#popupMsgDlg').attr('uId') + "',Subject:'" + $('#tbxPopupMsgTitle').attr('value') + "'}", "/UTSWebService.asmx/SendPrivateMessageNotification", function (data) { });
                              //  }
                                $('#popupMsgDlg').remove();
                            });
                        });
                    });
                }
                else {//показываем диалог для незалогиненого
                    showunregdlg();
                }
            }
        }
        else {//показываем диалог для незалогиненого
            showunregdlg();
        }
    }
}
