﻿var SocialCommunityController = {

    callback47c04d1f7439b: "/Extra/Proxy",

    _proxy: function(callbackurl, methodName, args, dataType, sync) {
        var targs = [];
        for (var i = 0; i < args.length - 1; i++) {
            targs.push(args[i]);
        }

        callback = args[args.length - 1];
        var ar = jQuery.ajax(
                {
                    url: callbackurl + '?method=' + methodName,
                    type: 'post',
                    dataType: dataType,
                    async: (!sync),
                    data: { args: targs },
                    success: (sync) ? null : callback,
                    error: function(request, e) { console.debug(request, e); }
                });
    },

    SendMailToFriends: {
        _parent: null,

        _init: function() {
            var _self = this;
            this._parent = SocialCommunityController;
            $('.send-mail-to-friend').each(function(index, element) {
                element = $(element);
                element.bind('click', function() { _self.Forms._show($(this).attr('shareurl')); });
            });
        },

        Forms: {

            _send: function() { this._parent._proxy('/Extra/Proxy', '_sendToFriends', arguments, 'json', false); },

            _shareUrl: null,
            _dialog: null,

            _show: function(shareUrl) {
                var _self = this;
                this._shareUrl = shareUrl;
                Boxy.load('/Extra/MailToFriends', { title: $('div.message-mail-friends').html(), modal: true, closeText: $('div.message-boxy-close-label').html(), draggable: false, unloadOnHide: true, cache: false, afterShow: function() { _self._dialog = this; }, behaviours: function(r) { _self._init(r); } });
            },

            _init: function(container) {
                this._parent = SocialCommunityController;
                this._form = $(container.find('form.mail-to-friend-form'));
                this._form._submit = $(container.find('a.submit'));
                this._form._cancel = $(container.find('a.reset'));
                this._bind();
            },

            _bind: function() {
                var _self = this;
                this._form.validate({ meta: "validate", errorClass: "errorField", errorElement: "span" });
                this._form._submit.bind('click', function() { _self._submit(); });
                this._form._cancel.bind('click', function() { _self._form[0].reset(); });
            },

            _submit: function() {
                var _self = this;
                if (this._form.validate().form()) {

                    var mailer = {};
                    mailer.from = {};
                    mailer.data = {};
                    mailer.to = new Array();

                    mailer.from.lastName = $(this._form.find('input[name="yourLastName"]')).val();
                    mailer.from.firstName = $(this._form.find('input[name="yourFirstName"]')).val();
                    mailer.from.email = $(this._form.find('input[name="yourEmail"]')).val();
                    mailer.data.message = $(this._form.find('textarea[name="message"]')).val();
                    mailer.data.shareUrl = this._shareUrl;

                    for (var i = 1; i < 3; i++) {
                        var to = {};
                        to.lastName = $(this._form.find('input[name="lastName' + i + '"]')).val();
                        to.firstName = $(this._form.find('input[name="firstName' + i + '"]')).val();
                        to.email = $(this._form.find('input[name="email' + i + '"]')).val();
                        if (to.lastName != '' && to.firsName != '' && to.email != '') {
                            mailer.to.push(to);
                        }
                    }

                    this._dialog.setContent("<div>" + $('div.message-mail-friends-waiting').html() + "</div>");
                    this._dialog.center();
                    this._dialog.hideClose();

                    this._send($.json.serialize(mailer), function(json, status) {
                        if (!json.failed)
                            json = $.json.deserialize(json);
                        _self._dialog.hideAndUnload();
                        if (!json.failed) {
                            Boxy.alert("<p>" + $('div.message-mail-friends-successfully-send').html() + "</p>", null, { title: $('div.message-mail-friends').html() });
                        }
                        else {
                            Boxy.alert("<p>" + $('div.message-error-is-occured').html() + "</p>", null, { title: $('div.message-mail-friends').html() });
                        }
                    });
                }
            },

            emptyFunction: function() { }
        },

        emptyFunction: function() { }
    },

    emptyFunction: function() { }
};
