The source code

    Ext.onReady(function(){
    	var win = window.nativeWindow;
    	var opener = Ext.air.NativeWindow.getRootHtmlWindow();
    	var taskId = String(window.location).split('=')[1];

    	var store = opener.tx.data.tasks;
    	var task = store.lookup(taskId);

    	win.title = 'Reminder - ' + Ext.util.Format.ellipsis(task.data.title, 40);

    	bulkUpdate({
    		'task-title' : Ext.util.Format.ellipsis(task.data.title, 80),
    		'task-due' : task.data.dueDate ? task.data.dueDate.format('F d, Y') : 'None'
    	});

    	function bulkUpdate(o){
    		for(var id in o){
    			Ext.fly(id).update(o[id]);
    		}
    	}

    	var dismiss = new Ext.Button({
    		text: 'Dismiss',
    		minWidth: 80,
    		renderTo: 'btns',
    		handler: function(){
    			win.close();
    		}
    	});

    	var snooze = new Ext.Button({
    		text: 'Snooze',
    		minWidth: 80,
    		renderTo: 'btns',
    		handler: function(){
    			var min = parseInt(Ext.get('snooze-time').getValue(), 10);
    			var reminder = new Date().add('mi', min);
    			var o = store.getById(taskId);
    			if(o){
    				o.set('reminder', reminder);
    			}else{
    				store.proxy.table.updateBy({reminder: reminder}, 'where taskId = ?', [taskId]);
    			}
    			win.close();
    		}
    	});

    	win.visible = true;
    	win.activate();
    	win.notifyUser('informational');

    	Ext.air.Sound.play('beep.mp3', 10500);
    });