DHTMLX Window

Создание нового dhtmlXWindows объекта:
var myWindows = new dhtmlXWindows({
    image_path: config.imagePath,
    wins: [{
        id: "w1",
        height: 200,
        width: 200,
        text: "One"
    }, {
        id: "w2",
        height: 200,
        width: 200,
        text: "Two",
        left: 20,
        top: 20
    }, {
        id: "w3",
        height: 200,
        width: 200,
        text: "Three",
        left: 40,
        top: 40
    }]
});
После выполнения этого кода на странице будет создано 3 pop-up окна.

Методы:
var myWindows = new dhtmlXWindows();
myWindows.setImagePath(config.imagePath);

var myPopup = myWindows.createWindow("w1", null, null, 200, 200);
myPopup.setDimension(300,300);

myPopup.denyResize(); // противоположность allowResize

myPopup.centerOnScreen();

myPopup.setModal(true);
myPopup.setModal(false);

myPopup.hide();
myPopup.show();

myPopup.setText("My Popup Window!");

myPopup.hideHeader();
myPopup.showHeader();

События:
myPopup.detachAllEvents();
myPopup.attachEvent("onClose",function(){
 console.log("close clicked again");
 return true; // чтобы закрыть окно
});

Добавим в конец app.js следующий код:
// Popup
var appPopup;
dhtmlxEvent(window, "load", function(){
 // create popup
 var win = new dhtmlXWindows();
 win.setImagePath(config.imagePath);
 appPopup = win.createWindow(1,null,null,400,300);
 appPopup.setText("User Add/Edit");
 appPopup.centerOnScreen();
 // popup events
 appPopup.attachEvent("onClose",callbacks.hidePopup);
 // hide popup initially
 appPopup.hide();
});

Также надо доработать методы объекта callbacks:
showPopup: function(){
 appPopup.setModal(1);
 appPopup.show();
},

hidePopup: function(){
 appPopup.setModal(0);
 appPopup.hide();
}

addClick: function(){
 callbacks.showPopup();
}