text: function Landing(window, document, translate) {
  
  var globals = {
  	working: false
  }
  
  var signupCtrl = new Signup(window, document, translate,
  	"userName", "email", "pass", "pass2", "signup_message",
  	showWorking, onSignupSuccess, hideErrors, false)
  
  // Autogenerated with DRAKON Editor 1.32
  
  
  function acceptCookies() {
      // item 8
      HtmlUtils.show("cookies", "none")
      HtmlUtils.setCookie("cookies_accepted", "true", 30)
  }
  
  function agreeChanged(agreed) {
      // item 113
      if ((globals.working) || (!(agreed))) {
          
      } else {
          // item 119
          HtmlUtils.show("signup_message", "none")
      }
  }
  
  function beginSetRef(ref, onSuccess, onError) {
      // item 51
      var data = {
      	ref: ref
      }
      // item 50
      HtmlUtils.sendPost(
      	"/api/set_ref",
      	data,
      	onSuccess,
      	onError
      )
  }
  
  function emailDown(evt) {
      
  }
  
  function get(id) {
      // item 72
      var element = document.getElementById(id)
      // item 69
      if (element) {
          // item 73
          return element
      } else {
          // item 74
          throw Error("Element '" + id + "' not found")
      }
  }
  
  function hasUserAgreed() {
      // item 63
      var agreed = get("i_agree")
      // item 75
      if (agreed.checked) {
          // item 95
          return true
      } else {
          // item 96
          return false
      }
  }
  
  function hideErrors() {
      // item 111
      globals.working = false
      // item 88
      HtmlUtils.show("signup_message", "none")
      HtmlUtils.show("userName_error", "none")
      HtmlUtils.show("email_error", "none")
      HtmlUtils.show("pass_error", "none")
      HtmlUtils.show("pass2_error", "none")
      // item 89
      HtmlUtils.setText("signup_message", "")
      HtmlUtils.setText("userName_error", "")
      HtmlUtils.setText("email_error", "")
      HtmlUtils.setText("pass_error", "")
      HtmlUtils.setText("pass2_error", "")
  }
  
  function init() {
      // item 39
      var search = Utils.parseSearch(window.location.search)
      // item 40
      if (search.ref) {
          // item 44
          var nothing = function() {}
          // item 43
          beginSetRef(
          	search.ref,
          	nothing,
          	nothing
          )
      }
      // item 52
      var cookieWarningShow
      // item 53
      if (HtmlUtils.getCookie("cookies_accepted")) {
          // item 57
          cookieWarningShow = "none"
      } else {
          // item 56
          cookieWarningShow = "block"
      }
      // item 58
      HtmlUtils.show("cookies", cookieWarningShow)
  }
  
  function onSignupSuccess(data) {
      // item 107
      window.location.href = "/ide/doc/" + data.id + "/1"
  }
  
  function passDown(evt) {
      
  }
  
  function passDown2(evt) {
      
  }
  
  function showMessage(message) {
      // item 83
      var text = translate(message)
      HtmlUtils.setText("signup_message", text)
      HtmlUtils.show("signup_message", "block")
  }
  
  function showWorking() {
      // item 110
      globals.working = true
      // item 94
      showMessage("MES_WORKING")
  }
  
  function signup() {
      // item 97
      if (globals.working) {
          
      } else {
          // item 102
          hideErrors()
          // item 100
          if (hasUserAgreed()) {
              // item 112
              signupCtrl.signup("landbus")
          } else {
              // item 38
              showMessage("MES_AGREE")
          }
      }
  }
  
  function userDown(evt) {
      
  }
  
  
  this.init = init
  this.acceptCookies = acceptCookies
  this.userDown = userDown
  this.emailDown = emailDown
  this.passDown = passDown
  this.passDown2 = passDown2
  this.agreeChanged = agreeChanged
  this.signup = signup
  }
  