﻿var Feedback =
{
    _isDebugging: false,
    _feedBranch: null,


    init: function() {
        $("#divFeedClose").click(function() { Feedback._closeButtonClick(); });
        $("#divBugClose").click(function() { Feedback._closeButtonClick(); });
        //add handlers
    },

    dispose: function() {
        $removeHandler($get('divFeedClose'), "click", Feedback._closeButtonClick);
        $removeHandler($get('divBugClose'), "click", Feedback._closeButtonClick);
    },

    showAddFeedback: function(feedbranch) {
        Feedback._feedBranch = feedbranch;
        $("#txtMsg").focus();
        $("#divFeedMsgBox").modal();
    },

    showAddBug: function() {
        $("#txtBugReport").focus();
        $("#divBugBox").modal();
    },

    AddFeedback: function(url) {
        var msg = $('#txtMsg').val();

        $.ajax({
            type: "POST",
            dataType: "json",
            url: url,
            data: { msg: msg, feedBranch: Feedback._feedBranch },
            success: function(result) {
                if (result.isSuccessful == true) {
                    $('#txtMsg').val("");
                    Feedback._hide();
                    $("#divFeedMsgBox").hide();
                    window.location.reload();
                }
                else {
                    Feedback._showMessage('#feedmsgMessage', result.errorMessage, true);
                }
            },
            error: function(error) {
                Feedback._showMessage('#feedmsgMessage', 'An unexpected error has occurred while adding feedback!', true);
            }
        });
    },

    AddBugReport: function(url, userAgent, platform, page) {
        var comment = $('#txtBugReport').val();
        var bugreporter = $('#txtErrReporter').val();
        Feedback._showMessage('#bugmsgMessage', 'Отправка данных...', false);
        $.ajax({
            type: "POST",
            dataType: "json",
            url: url,
            data: { userAgent: userAgent, platform: platform, page: page, comment: comment, bugreporter: bugreporter },
            success: function(result) {
            if (result.isSuccessful == true) {
                    Feedback._showMessage('#bugmsgMessage', 'Спасибо!', false);
                    $("#divBugBox").hide();
                    $('#txtBugReport').val("");
                    window.location.reload();
                }
                else {
                    Feedback._showMessage('#bugmsgMessage', result.errorMessage, true);
                }
            },
            error: function(error) {
                Feedback._showMessage('#bugmsgMessage', 'An unexpected error has occurred while adding feedback!', true);
            }
        });
    },

    _showMessage: function(e, msg, err) {
        $(e).hide();
        $(e).text(msg);
        //var e = $U.fix(e);
        if (err) {
            $(e).removeClass('validatorgreen');
            $(e).addClass('validator');
            $(e).show();
        }
        else {
            $(e).removeClass('validator');
            $(e).addClass('validatorgreen');
            $(e).show();
        }
    },

    _closeButtonClick: function(e) {
        Feedback._hide();
    },

    _hide: function() {
        $.modal.close();
    }
}
