/*global define*/
/**
 * @uses jQuery
 * @uses ep
 * @uses ep.ui.dialog
 */
define('de_epages/easymarketing/ui/easymarketingdialoguninstallapp', [
    'jquery',
    'ep',
    '$dict!../dictionary',
    'ep/ajax',
    '$ready!',
    'ep/ui/dialog',
    'ep/fn/busy'
], function($, ep, epDict) {

    'use strict';
    var tCaptureEasymarketingDialogAppQuestion = epDict.translate('{CaptureEasymarketingDialogAppQuestion}');
    var tYesUninstallApp = epDict.translate('{yes}');
    var tCancel = epDict.translate('{Cancel}');

    return function(UninstallAppButton, objectid, CurrentWindow){
       var currentWindow = CurrentWindow || window;
            UninstallAppButton.on('click', function(event) {
                event.preventDefault();
                var dialog = ep('<div/>')
                    .append('<div>' + tCaptureEasymarketingDialogAppQuestion + '</div>')
                    .uiDialog({
                        modal: true,
                        width: 350,
                        height: 150,
                        buttons: [{
                            id: 'YesId',
                            text: tYesUninstallApp,
                            click: function() {
                                handleappuninstallation(ep(this), objectid, currentWindow);
                                ep(this).busy('show');
                            }
                        }, {
                            id: 'CancelId',
                            text: tCancel,
                            click: function() {
                                ep(this).uiDialog('close');
                            }
                        }]
                    });
                dialog.uiDialog('open');
            });
    };
    
    function handleappuninstallation(context, objectid, currentWindow) { 

        ep.ajax({
                data: {
                    'ObjectID': objectid,
                    'ChangeAction': 'RevokeEasyMarketingAuthorization'
                },
                cache: false,
                type: "POST",
                dataType: "json"
            })
            .done(function(jsonData) {
                /* close dialog // reload window */
                context.busy('hide');
                context.empty();
                context.append('<div id="Response" class="DialogMessage MessageWarning">OK</div>');
                context.uiDialog('close');
                currentWindow.location.href = "?ViewAction=MBO-ViewEasyMarketing";
            })
            .fail(function(jsonData) {
                /* return error*/
                context.busy('hide');
                context.empty();
                context.append('<div class="DialogMessage MessageWarning">ajax error</div>');
            });
    }
});