"use strict";

var Q = require("q");
var $ = require("jquery");

exports.alertAsync = function (text) {
    var deferred = Q.defer();
    
    $("<div />").text(text).dialog({
        buttons: {
            OK: deferred.resolve
        }
    });
    
    return deferred.promise;
};

exports.confirmAsync = function (text) {
    var deferred = Q.defer();
    
    $("<div />").text(text).dialog({
        buttons: {
            OK: function () {
                deferred.resolve(true);
            },
            Cancel: function () {
                deferred.resolve(false);
            }
        },
        close: function () {
            deferred.resolve(false);
        }
    });
    
    return deferred.promise;
};

exports.promptAsync = function (text) {
    var deferred = Q.defer();
    
    var $input = $("<input type='text' />");
    
    $("<div />").text(text).append($input).dialog({
        buttons: {
            OK: function () {
                deferred.resolve($input.val());
            },
            Cancel: function () {
                deferred.resolve(null);
            }
        },
        close: function () {
            deferred.resolve(null);
        }
    });
    
    return deferred.promise;
};