PollResultEmbedded = newClass(null, {
    /**
     * shows and hides embedded dialog,
     * also fill necessary embedded dialog fields with data.
     */
    constructor: function() {
        this.downloading = true;
        this.openDialog = false;
        $('#poll-result-html-embedded-link').bind('click', {env: this}, this.openEmbeddedDialog);
        $('#poll-result-embedded-dialog-Xclose-link').bind('click', {env: this}, this.closeEmbeddedDialog);
        var dialog = this;
        $.ajax({
            type: "GET",
            url: $("#hidden-embedded-poll-results-link").html(),
            success: function(data) {
                var wrapper = $("#embedded-poll-results-preview-content");
                wrapper.html(data);
                dialog.downloading = false;
                if (dialog.openDialog){
                    dialog.openEmbeddedDialog({data:{env: dialog}});
                }
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                dialog.downloading = false;
            }
        });

    },

    closeEmbeddedDialog: function() {
        var dialog = $("#poll-result-embedded-dialog");
        dialog.hide();
        $('#poll-result-embedded-dialog-draggable').css({left:'',top:''});
    },

    openEmbeddedDialog: function(e) {
        var env = e.data.env;
        if (env.downloading) {
            env.openDialog = true;
            return false;
        }
        var dialog = $("#poll-result-embedded-dialog");
        var text = $('#poll-result-embedded-text');
        showDialog(dialog, true);
        var height = $("#embedded-poll-result-content").outerHeight(true);
        text.val(text.val().replace(/height=\"\d+px/, 'height="' + height + 'px'));
    }
});

