function doGet() {
    
  
  var app = UiApp.createApplication().setTitle('Fun with File Uploads');
  
  
  var spacer = app.createLabel('-');
  spacer.setStyleAttribute('lineHeight','140%');
  spacer.setStyleAttribute('color','#FFFFFF');
  
  
  var fPanel = app.createFormPanel().setSize('50%','50%');
  
  
  var fTable = app.createFlexTable().setId('ft');
  fTable.setStyleAttribute('marginTop','20');
  fTable.setStyleAttribute('marginLeft','20');
  
  var questionLabel = app.createLabel('Why would you check this box?');
  
  
  var cb1 = app.createCheckBox('You told me to.').setName('told-me-to'); 
  var cb2 = app.createCheckBox('Boredom.').setName('boredom'); 
  var cb3 = app.createCheckBox('Acceptance.').setName('acceptance');
  var cbOther = app.createCheckBox('Other reasons, obviously.').setName('otherCb');
  var otherTb = app.createTextBox().setWidth('150px').setName('otherTb').setId('otherTb');
  
  
  otherTb.setVisible(false);
  
  
  var otherCheckHandler = app.createServerHandler('addOtherTb');
  cbOther.addValueChangeHandler(otherCheckHandler);
  
  
  var uploadLabel = app.createLabel('Please attach a photo illustrating your excitement in checking a box above.');
  var uploadLabel2 = app.createLabel('PG only, please. This is a family form.');
  uploadLabel2.setStyleAttribute('fontStyle','italic');
  var fileUpload = (app.createFileUpload().setName('uploadedFile'));
  
  
  var submitButton = app.createSubmitButton('<B>Submit</B>');
    
  
  fTable.setWidget(0, 0, questionLabel)
        .setWidget(1, 0, spacer)
        .setWidget(2, 0, cb1)
        .setWidget(3, 0, cb2)
        .setWidget(4, 0, cb3) 
        .setWidget(5, 0, cbOther)
        .setWidget(6, 0, otherTb)
        .setWidget(7, 0, spacer)
        .setWidget(8, 0, spacer)
        .setWidget(9, 0, uploadLabel)
        .setWidget(10, 0, uploadLabel2)
        .setWidget(11, 0, fileUpload)
        .setWidget(12, 0, spacer)
        .setWidget(13, 0, spacer)
        .setWidget(14, 0, submitButton)
  
  fPanel.add(fTable);
  
  
  app.add(fPanel);  
  
  return app;
}
function doPost(e) {
  
  var app = UiApp.getActiveApplication();
  
  
  
  
  
  
  var fileBlob = e.parameter.uploadedFile;
  Logger.log('got the file');
  var doc = DocsList.createFile(fileBlob);
  
  
  var folder = DocsList.getFolder('test-uploads');
  doc.addToFolder(folder);
   
  
  var root = DocsList.getFolder('');
  doc.removeFromFolder(root);
  
  var vertPanel = app.createAbsolutePanel().setSize('100%', '100%');
  var submitComplete = app.createLabel('Thanks for your submission!');
  submitComplete.setStyleAttribute('font-weight','bold'); 
  
  vertPanel.add(submitComplete);
  vertPanel.setWidgetPosition(submitComplete, 20, 20);
  
  var folder = DocsList.getFolder('test-uploads');
  var files = folder.getFiles();
  
  var fileStr = app.createLabel();
 
  
  for (var i in files) {
    
    
    var temp = app.createLabel(files[i].getName() + ' created at ' + files[i].getDateCreated());
    vertPanel.add(temp);
    vertPanel.setWidgetPosition(temp, 120, (i*70+40));
    
    
    
    var tempImg = app.createImage(files[i].getUrl().replace('open','uc')).setSize('80','60');
    vertPanel.add(tempImg);
    vertPanel.setWidgetPosition(tempImg, 20, (i*70+40));
    
  }
  
  app.add(vertPanel);
  return app;
}
 
 
 function addOtherTb(e) {
   var app = UiApp.getActiveApplication();
   if(e.parameter.otherCb == 'true')
   {
     app.getElementById('otherTb').setVisible(true);
   } else {
     app.getElementById('otherTb').setVisible(false); 
   }
   app.close();
   return app;
 }