ec.europa.eu Open in urlscan Pro
147.67.34.30  Public Scan

URL: https://ec.europa.eu/eusurvey/runner/TwinSpace-migration
Submission: On September 12 via manual from PT — Scanned from PT

Form analysis 2 forms found in the DOM

POST TwinSpace-migration

<form id="runnerForm" action="TwinSpace-migration" method="POST" autocomplete="off"><input id="survey.id" name="survey.id" type="hidden" value="653553"><input id="survey.uniqueId" name="survey.uniqueId" type="hidden"
    value="4ac3bc30-bb88-4101-bbbc-abdb0eb15988"><input id="language.code" name="language.code" type="hidden" value="EN"><input type="hidden" name="uniqueCode" id="uniqueCode" value="a745375c-da06-4266-a961-3f855cbbc786">
  <input type="hidden" name="IdAnswerSet" id="IdAnswerSet" value="">
  <input type="hidden" name="invitation" id="invitation" value="">
  <input type="hidden" name="participationGroup" value="">
  <input type="hidden" id="hfsubmit" value="true">
  <input type="hidden" id="mode" name="mode" value="runner">
  <input type="hidden" id="draftid" name="draftid" value="">
  <script type="text/javascript" src="/eusurvey/resources/js/d3.v3.min.js?version=d77aebf9bee27f5ab699ac503e1b01c01172a3d2"></script>
  <script type="text/javascript" src="/eusurvey/resources/js/d3.layout.cloud.min.js?version=d77aebf9bee27f5ab699ac503e1b01c01172a3d2"></script>
  <script type="text/javascript" src="/eusurvey/resources/js/wordcloud.js?version=d77aebf9bee27f5ab699ac503e1b01c01172a3d2"></script>
  <input type="hidden" id="validatedPerPage" value="false">
  <input type="hidden" id="preventGoingBack" value="false">
  <input type="hidden" id="newlang" name="newlang" value="EN">
  <input type="hidden" id="newlangpost" name="newlangpost" value="false">
  <input type="hidden" id="newcss" name="newcss" value="">
  <input type="hidden" id="newviewpost" name="newviewpost" value="false">
  <input type="hidden" id="wcagMode" name="wcagMode" value="false">
  <input type="hidden" id="multipaging" value="false">
  <div style="max-width: 900px">
    <img src="/eusurvey/files/4ac3bc30-bb88-4101-bbbc-abdb0eb15988/cf9357e9-26ec-4875-a6a8-3a4fa8002a21" alt="" style="max-width: 1300px;">
  </div>
  <div class="left-area">
    <div id="nolocalstorage" class="hideme" style="margin-bottom: 10px; text-align: right; margin-right: 10px;">
      <span class="alert-danger" style="padding: 10px;">As local storage is disabled, automatic saving is not possible</span>
    </div>
    <div id="localstorageinfo" class="visible-lg" style="margin-bottom: 10px; text-align: right; margin-right: 10px;">
      <span class="focusborder">
        <input class="check" type="checkbox" checked="checked" id="saveLocalBackup" onchange="checkLocalBackup()">
        <label for="saveLocalBackup">Save a backup on your local computer (disable if you are using a public/shared computer)</label>
      </span>
    </div>
    <div class="surveytitle">TwinSpace migration request form</div><br>
    <div class="info-box" style="width: 400px; max-width: 100%;">
      <div style="float: right; margin-top: -5px; margin-right: -5px;">
        <a href="javascript:;" style="cursor: pointer" onclick="$(this).closest('.info-box').hide();" aria-label="Close info message"><span class="glyphicon glyphicon-remove"></span></a>
      </div> Fields marked with * are mandatory.
    </div>
    <div id="ecDisclaimer" class="surveyrunnerinfo">
      <div style="float: left; width: calc(100% - 18px)">
        <b>Disclaimer</b>
        <p> The European Commission is not responsible for the content of questionnaires created using the EUSurvey service - it remains the sole responsibility of the form creator and manager. The use of EUSurvey service does not imply a
          recommendation or endorsement, by the European Commission, of the views expressed within them.</p>
      </div>
      <div style="float: right; margin-top: -15px; margin-right: -15px;">
        <input type="hidden" id="disclaimerMinimized" name="disclaimerMinimized" value="">
        <a href="javascript:;" style="cursor: pointer" onclick="$('#disclaimerMinimized').val('true'); $('#ecDisclaimer').hide();" aria-label="Close disclaimer"><span class="glyphicon glyphicon-remove"></span></a>
      </div>
      <div style="clear: both"></div>
    </div>
    <span class="introduction"></span>
    <div id="page-tabs" class="panel panel-default" style="margin-top: 20px; display: none;">
      <div class="panel-body">
        <div style="font-size: 20px;float:left; width:10%">Pages</div>
        <div style="float:left; width:90">
          <ul class="nav nav-pills">
            <li data-id="102113858" id="tab0" class="pagebutton active" data-toggle="" title="">
              <a href="#page0" style="cursor:pointer;" onclick="return selectPage(0);" title="selected page">
												Start</a>
            </li>
          </ul>
        </div>
      </div>
    </div>
    <div style="clear: left"></div>
    <div class="single-page" tabindex="-1" id="page0" onmouseleave="validateLastContainer()">
      <fieldset>
        <div class="elementwrapper">
          <div class="survey-element 5 textitem" id="102113858" data-id="102113858" data-uid="0cd04cac-70ef-bf20-97a2-6e62193302d5">
            <a class="survey-element-anchor" id="E102113858"></a>
            <div id="">
              <div class="text" data-bind="html: title">Thank you for taking the time to report a TwinSpace that you would like to be migrated.<br><br>Four important notes:<br>
                <ol>
                  <li>Please fill in this form for each TwinSpace that you would like to have migrated.</li>
                  <li>You can only request migration of TwinSpaces of projects created after 1.7.2018.</li>
                  <li>Only projects with migrated TwinSpaces will be eligible to apply for the eTwinning Prizes 2024 (other eligibility criteria still apply).</li>
                  <li>This questionnaire remains open until 30 September 2023.</li>
                </ol>
                <br><br><small>Your answers will be processed by European Schoolnet on behalf of the European Commission (<a href="https://school-education.ec.europa.eu/en/privacy-policy">privacy policy</a>).</small>
              </div>
              <!-- ko if: foreditor --><!-- /ko -->
            </div>
          </div>
        </div>
      </fieldset>
      <fieldset>
        <div class="elementwrapper">
          <div class="survey-element 5 freetextitem forprogress" id="102113859" data-id="102113859" data-uid="92b4f34e-a334-46f1-9354-be5c9abe491c">
            <a class="survey-element-anchor" id="E102113859"></a>
            <div id="">
              <!-- ko if: optional() == false -->
              <span class="mandatory">*</span>
              <!-- /ko -->
              <label class="questiontitle" data-bind="attr: {for: &quot;answer&quot; + id(), id: &quot;questiontitle&quot; + id()}" for="answer102113859" id="questiontitle102113859">
                <span class="screen-reader-only">Question</span>
                <span data-bind="html: title">Your name</span>
                <span class="screen-reader-only" data-bind="if: help"></span>
              </label>
              <span class="questionhelp" data-bind="html: niceHelp, attr:{id: 'questionhelp' + id()}" id="questionhelp102113859"><br></span>
              <!-- ko if: minCharacters() != 0 && maxCharacters() != 0 --><!-- /ko -->
              <!-- ko if: minCharacters() != 0 && maxCharacters() == 0 --><!-- /ko -->
              <!-- ko if: minCharacters() == 0 && maxCharacters() != 0 --><!-- /ko -->
              <!-- ko if: type == "RegExQuestion" --><!-- /ko -->
              <!-- ko if: foreditor --><!-- /ko -->
              <!-- ko if: maxCharacters() > 0 --><!-- /ko -->
              <!-- ko if: maxCharacters() == 0 -->
              <textarea
                data-bind="enable: !readonly(), value:getValueByQuestion(uniqueId()), attr: {'id': 'answer' + id(), 'data-id':id(), 'data-shortname': shortname(), 'name' : 'answer' + id(), 'class':css() + ' expand', 'data-rows':numRows(), 'rows':numRows(), 'aria-labelledby':'questiontitle' + id(), 'aria-describedby':'questioninfo' + id() + ' questionhelp' + id(), 'aria-required':!optional()}"
                onkeyup="countChar(this);" oninput="propagateChange(this);" onblur="validateInput($(this).parent(),true)" id="answer102113859" data-id="102113859" data-shortname="ID11" name="answer102113859" class="required freetext max5000 expand"
                data-rows="1" rows="1" aria-labelledby="questiontitle102113859" aria-describedby="questioninfo102113859 questionhelp102113859" aria-required="true"
                style="height: 23px; overflow: hidden; padding-top: 0px; padding-bottom: 0px;"></textarea>
              <!-- /ko -->
              <!-- ko if: isComparable() --><!-- /ko -->
            </div>
          </div>
        </div>
      </fieldset>
      <fieldset>
        <div class="elementwrapper">
          <div class="survey-element 5 freetextitem forprogress" id="102113860" data-id="102113860" data-uid="558201f3-ce43-feef-3646-a90497ae6412">
            <a class="survey-element-anchor" id="E102113860"></a>
            <div id="">
              <!-- ko if: optional() == false -->
              <span class="mandatory">*</span>
              <!-- /ko -->
              <label class="questiontitle" data-bind="attr: {for: &quot;answer&quot; + id(), id: &quot;questiontitle&quot; + id()}" for="answer102113860" id="questiontitle102113860">
                <span class="screen-reader-only">Question</span>
                <span data-bind="html: title">Your email address</span>
                <span class="screen-reader-only" data-bind="if: help">Additional help available</span>
              </label>
              <span class="questionhelp" data-bind="html: niceHelp, attr:{id: 'questionhelp' + id()}"
                id="questionhelp102113860"><a href="javascript:;" tabindex="0" aria-label="Help" onclick="toggleVisibility($(this).next().next())" class="glyphicon glyphicon-question-sign focussable"></a><br>
                <div class="questionhelp__text sr-only">This is required, in case we need to reach out to you because we have questions about your migration request.</div>
              </span>
              <!-- ko if: minCharacters() != 0 && maxCharacters() != 0 --><!-- /ko -->
              <!-- ko if: minCharacters() != 0 && maxCharacters() == 0 --><!-- /ko -->
              <!-- ko if: minCharacters() == 0 && maxCharacters() != 0 --><!-- /ko -->
              <!-- ko if: type == "RegExQuestion" --><!-- /ko -->
              <!-- ko if: foreditor --><!-- /ko -->
              <!-- ko if: maxCharacters() > 0 --><!-- /ko -->
              <!-- ko if: maxCharacters() == 0 -->
              <textarea
                data-bind="enable: !readonly(), value:getValueByQuestion(uniqueId()), attr: {'id': 'answer' + id(), 'data-id':id(), 'data-shortname': shortname(), 'name' : 'answer' + id(), 'class':css() + ' expand', 'data-rows':numRows(), 'rows':numRows(), 'aria-labelledby':'questiontitle' + id(), 'aria-describedby':'questioninfo' + id() + ' questionhelp' + id(), 'aria-required':!optional()}"
                onkeyup="countChar(this);" oninput="propagateChange(this);" onblur="validateInput($(this).parent(),true)" id="answer102113860" data-id="102113860" data-shortname="ID3" name="answer102113860" class="required freetext max5000 expand"
                data-rows="1" rows="1" aria-labelledby="questiontitle102113860" aria-describedby="questioninfo102113860 questionhelp102113860" aria-required="true"
                style="height: 23px; overflow: hidden; padding-top: 0px; padding-bottom: 0px;"></textarea>
              <!-- /ko -->
              <!-- ko if: isComparable() --><!-- /ko -->
            </div>
          </div>
        </div>
      </fieldset>
      <fieldset>
        <div class="elementwrapper">
          <div class="survey-element 5 freetextitem forprogress" id="102113861" data-id="102113861" data-uid="c5edef34-3d00-b687-f984-b99ccd98a78d">
            <a class="survey-element-anchor" id="E102113861"></a>
            <div id="">
              <!-- ko if: optional() == false -->
              <span class="mandatory">*</span>
              <!-- /ko -->
              <label class="questiontitle" data-bind="attr: {for: &quot;answer&quot; + id(), id: &quot;questiontitle&quot; + id()}" for="answer102113861" id="questiontitle102113861">
                <span class="screen-reader-only">Question</span>
                <span data-bind="html: title">Title of the project</span>
                <span class="screen-reader-only" data-bind="if: help"></span>
              </label>
              <span class="questionhelp" data-bind="html: niceHelp, attr:{id: 'questionhelp' + id()}" id="questionhelp102113861"><br></span>
              <!-- ko if: minCharacters() != 0 && maxCharacters() != 0 --><!-- /ko -->
              <!-- ko if: minCharacters() != 0 && maxCharacters() == 0 -->
              <div class="limits" data-bind="html: getMinCharacters(minCharacters()), attr: {id: 'questioninfo' + id()}" id="questioninfo102113861">5 character(s) minimum</div>
              <!-- /ko -->
              <!-- ko if: minCharacters() == 0 && maxCharacters() != 0 --><!-- /ko -->
              <!-- ko if: type == "RegExQuestion" --><!-- /ko -->
              <!-- ko if: foreditor --><!-- /ko -->
              <!-- ko if: maxCharacters() > 0 --><!-- /ko -->
              <!-- ko if: maxCharacters() == 0 -->
              <textarea
                data-bind="enable: !readonly(), value:getValueByQuestion(uniqueId()), attr: {'id': 'answer' + id(), 'data-id':id(), 'data-shortname': shortname(), 'name' : 'answer' + id(), 'class':css() + ' expand', 'data-rows':numRows(), 'rows':numRows(), 'aria-labelledby':'questiontitle' + id(), 'aria-describedby':'questioninfo' + id() + ' questionhelp' + id(), 'aria-required':!optional()}"
                onkeyup="countChar(this);" oninput="propagateChange(this);" onblur="validateInput($(this).parent(),true)" id="answer102113861" data-id="102113861" data-shortname="ID2" name="answer102113861"
                class="required freetext min5 max5000 expand" data-rows="1" rows="1" aria-labelledby="questiontitle102113861" aria-describedby="questioninfo102113861 questionhelp102113861" aria-required="true"
                style="height: 23px; overflow: hidden; padding-top: 0px; padding-bottom: 0px;"></textarea>
              <!-- /ko -->
              <!-- ko if: isComparable() --><!-- /ko -->
            </div>
          </div>
        </div>
      </fieldset>
      <fieldset>
        <div class="elementwrapper">
          <div class="survey-element 5 regexitem forprogress" id="102113862" data-id="102113862" data-uid="89f4bae0-3efd-4e4a-2290-4170725ee74c">
            <a class="survey-element-anchor" id="E102113862"></a>
            <div id="">
              <!-- ko if: optional() == false -->
              <span class="mandatory">*</span>
              <!-- /ko -->
              <label class="questiontitle" data-bind="attr: {for: &quot;answer&quot; + id(), id: &quot;questiontitle&quot; + id()}" for="answer102113862" id="questiontitle102113862">
                <span class="screen-reader-only">Question</span>
                <span data-bind="html: title">URL of the TwinSpace</span>
                <span class="screen-reader-only" data-bind="if: help">Additional help available</span>
              </label>
              <span class="questionhelp" data-bind="html: niceHelp, attr:{id: 'questionhelp' + id()}"
                id="questionhelp102113862"><a href="javascript:;" tabindex="0" aria-label="Help" onclick="toggleVisibility($(this).next().next())" class="glyphicon glyphicon-question-sign focussable"></a><br>
                <div class="questionhelp__text sr-only">To find the URL, please log in on <a href="https://twinspace.etwinning.net">twinspace.etwinning.net</a> with your legacy credentials.</div>
              </span>
              <!-- ko if: minCharacters() != 0 && maxCharacters() != 0 --><!-- /ko -->
              <!-- ko if: minCharacters() != 0 && maxCharacters() == 0 --><!-- /ko -->
              <!-- ko if: minCharacters() == 0 && maxCharacters() != 0 --><!-- /ko -->
              <!-- ko if: type == "RegExQuestion" -->
              <input type="hidden" data-bind="value: regex, attr: {'name': 'regex' + id()}" value="https:\/\/twinspace\.etwinning\.net\/\d{1,10}.*" name="regex102113862">
              <!-- /ko -->
              <!-- ko if: foreditor --><!-- /ko -->
              <!-- ko if: maxCharacters() > 0 --><!-- /ko -->
              <!-- ko if: maxCharacters() == 0 -->
              <textarea
                data-bind="enable: !readonly(), value:getValueByQuestion(uniqueId()), attr: {'id': 'answer' + id(), 'data-id':id(), 'data-shortname': shortname(), 'name' : 'answer' + id(), 'class':css() + ' expand', 'data-rows':numRows(), 'rows':numRows(), 'aria-labelledby':'questiontitle' + id(), 'aria-describedby':'questioninfo' + id() + ' questionhelp' + id(), 'aria-required':!optional()}"
                onkeyup="countChar(this);" oninput="propagateChange(this);" onblur="validateInput($(this).parent(),true)" id="answer102113862" data-id="102113862" data-shortname="ID4" name="answer102113862" class="required freetext regex expand"
                data-rows="1" rows="1" aria-labelledby="questiontitle102113862" aria-describedby="questioninfo102113862 questionhelp102113862" aria-required="true"
                style="height: 23px; overflow: hidden; padding-top: 0px; padding-bottom: 0px;"></textarea>
              <!-- /ko -->
              <!-- ko if: isComparable() --><!-- /ko -->
            </div>
          </div>
        </div>
      </fieldset>
      <fieldset>
        <div class="elementwrapper">
          <div class="survey-element 5 singlechoiceitem forprogress" id="102113863" data-id="102113863" data-uid="7f87442b-336f-71e5-1fde-096948e7220e">
            <a class="survey-element-anchor" id="E102113863"></a>
            <div id="">
              <!-- ko if: optional() == false -->
              <span class="mandatory">*</span>
              <!-- /ko -->
              <label class="questiontitle" data-bind="attr: {for: 'answer' + id(), id: 'questiontitle' + id()}" for="answer102113863" id="questiontitle102113863">
                <span class="screen-reader-only">Question</span>
                <span data-bind="html: title">Purpose of the migration</span>
                <span class="screen-reader-only" data-bind="if: help"></span>
              </label>
              <span class="questionhelp" data-bind="html: niceHelp, attr:{id: 'questionhelp' + id()}" id="questionhelp102113863"><br></span>
              <div class="answer-columns" style="position: relative; overflow-x:auto; padding-bottom: 8px; padding-top: 4px;">
                <!-- ko if: likert() && !(ismobile || istablet) --><!-- /ko -->
                <!-- ko if: ismobile || istablet || !likert() -->
                <!-- ko if: likert() || useRadioButtons() -->
                <!-- ko if: likert() --><!-- /ko -->
                <table class="answers-table" role="radiogroup" data-bind="attr: {'aria-labelledby':'questiontitle' + id(), 'aria-describedby':'questioninfo' + id() + ' questionhelp' + id()}" aria-labelledby="questiontitle102113863"
                  aria-describedby="questioninfo102113863 questionhelp102113863">
                  <tbody>
                    <tr class="hideme">
                      <th>radio button</th>
                      <th>label</th>
                    </tr>
                    <!-- ko if: foreditor --><!-- /ko -->
                    <!-- ko foreach: orderedPossibleAnswersByRows(false, false) -->
                    <tr class="possibleanswerrow">
                      <!-- ko foreach: $data -->
                      <td style="vertical-align: top">
                        <!-- ko ifnot: id() == 'dummy' -->
                        <input style="position: relative"
                          data-bind="enable: !$parents[1].readonly() &amp;&amp; !$parents[1].foreditor, checked: getPAByQuestion2($parents[1].uniqueId(), uniqueId(), id()), attr: {'data-id': $parents[1].id() + '' + id(), 'id': id(), 'data-shortname': shortname(), 'data-dependencies': dependentElementsString(), onkeyup: 'singleKeyUp(event, this, '+$parents[1].readonly()+')', onclick: $parents[1].readonly() ? 'return false;' : 'singleClick(this); checkDependenciesAsync(this);', class: $parents[1].css + ' trigger check', name: 'answer' + $parents[1].id(), value: id(), 'aria-labelledby': 'answerlabel' + id()}"
                          ,="" type="radio" data-id="102113863102113864" id="102113864" data-shortname="ID8" data-dependencies="" onkeyup="singleKeyUp(event, this, false)" onclick="singleClick(this); checkDependenciesAsync(this);"
                          class="required trigger check" name="answer102113863" value="102113864" aria-labelledby="answerlabel102113864">
                        <!-- /ko -->
                      </td>
                      <td style="vertical-align: top; padding-right: 15px;">
                        <label data-bind="attr: {'for': id, 'id': 'answerlabel' + id()}" for="102113864" id="answerlabel102113864">
                          <span class="screen-reader-only">Answer</span>
                          <!-- ko ifnot: id() == 'dummy' -->
                          <div class="answertext" data-bind="html: titleForDisplayMode($parents[1].displayMode()), attr: {'data-id' : id()}" data-id="102113864">Reporting</div>
                          <!-- /ko -->
                        </label>
                      </td>
                      <!-- /ko -->
                    </tr>
                    <tr class="possibleanswerrow">
                      <!-- ko foreach: $data -->
                      <td style="vertical-align: top">
                        <!-- ko ifnot: id() == 'dummy' -->
                        <input style="position: relative"
                          data-bind="enable: !$parents[1].readonly() &amp;&amp; !$parents[1].foreditor, checked: getPAByQuestion2($parents[1].uniqueId(), uniqueId(), id()), attr: {'data-id': $parents[1].id() + '' + id(), 'id': id(), 'data-shortname': shortname(), 'data-dependencies': dependentElementsString(), onkeyup: 'singleKeyUp(event, this, '+$parents[1].readonly()+')', onclick: $parents[1].readonly() ? 'return false;' : 'singleClick(this); checkDependenciesAsync(this);', class: $parents[1].css + ' trigger check', name: 'answer' + $parents[1].id(), value: id(), 'aria-labelledby': 'answerlabel' + id()}"
                          ,="" type="radio" data-id="102113863102113865" id="102113865" data-shortname="ID9" data-dependencies="" onkeyup="singleKeyUp(event, this, false)" onclick="singleClick(this); checkDependenciesAsync(this);"
                          class="required trigger check" name="answer102113863" value="102113865" aria-labelledby="answerlabel102113865">
                        <!-- /ko -->
                      </td>
                      <td style="vertical-align: top; padding-right: 15px;">
                        <label data-bind="attr: {'for': id, 'id': 'answerlabel' + id()}" for="102113865" id="answerlabel102113865">
                          <span class="screen-reader-only">Answer</span>
                          <!-- ko ifnot: id() == 'dummy' -->
                          <div class="answertext" data-bind="html: titleForDisplayMode($parents[1].displayMode()), attr: {'data-id' : id()}" data-id="102113865">Promotion and dissemination of activities</div>
                          <!-- /ko -->
                        </label>
                      </td>
                      <!-- /ko -->
                    </tr>
                    <tr class="possibleanswerrow">
                      <!-- ko foreach: $data -->
                      <td style="vertical-align: top">
                        <!-- ko ifnot: id() == 'dummy' -->
                        <input style="position: relative"
                          data-bind="enable: !$parents[1].readonly() &amp;&amp; !$parents[1].foreditor, checked: getPAByQuestion2($parents[1].uniqueId(), uniqueId(), id()), attr: {'data-id': $parents[1].id() + '' + id(), 'id': id(), 'data-shortname': shortname(), 'data-dependencies': dependentElementsString(), onkeyup: 'singleKeyUp(event, this, '+$parents[1].readonly()+')', onclick: $parents[1].readonly() ? 'return false;' : 'singleClick(this); checkDependenciesAsync(this);', class: $parents[1].css + ' trigger check', name: 'answer' + $parents[1].id(), value: id(), 'aria-labelledby': 'answerlabel' + id()}"
                          ,="" type="radio" data-id="102113863102113866" id="102113866" data-shortname="ID10" data-dependencies="" onkeyup="singleKeyUp(event, this, false)" onclick="singleClick(this); checkDependenciesAsync(this);"
                          class="required trigger check" name="answer102113863" value="102113866" aria-labelledby="answerlabel102113866">
                        <!-- /ko -->
                      </td>
                      <td style="vertical-align: top; padding-right: 15px;">
                        <label data-bind="attr: {'for': id, 'id': 'answerlabel' + id()}" for="102113866" id="answerlabel102113866">
                          <span class="screen-reader-only">Answer</span>
                          <!-- ko ifnot: id() == 'dummy' -->
                          <div class="answertext" data-bind="html: titleForDisplayMode($parents[1].displayMode()), attr: {'data-id' : id()}" data-id="102113866">Participation in the eTwinning Prizes 2024</div>
                          <!-- /ko -->
                        </label>
                      </td>
                      <!-- /ko -->
                    </tr>
                    <!-- /ko -->
                  </tbody>
                </table>
                <!-- /ko -->
                <!-- ko ifnot: useRadioButtons() || likert() --><!-- /ko -->
                <!-- /ko -->
                <input type="hidden" data-bind="value: choiceType, attr: {'name': 'choicetype' + id()}" value="radio" name="choicetype102113863">
                <!-- ko if: foreditor --><!-- /ko -->
              </div>
            </div>
          </div>
        </div>
      </fieldset>
    </div>
    <div class="hpdiv">
      <label for="hp-7fk9s82jShfgak">If you're human, leave this field blank</label>
      <textarea tabindex="-1" id="hp-7fk9s82jShfgak" name="hp-7fk9s82jShfgak" class="hp" autocomplete="false"></textarea>
    </div>
    <div style="text-align: center; margin-top: 20px;">
      <a id="btnPrevious" style="display: none;" role="button" aria-label="Go to previous page" href="javascript:;" data-toggle="" title="" onclick="previousPage();this.blur();" onfocusin="validateLastContainer()" class="btn btn-default">Previous</a>
      <a id="btnSubmit" role="button" href="javascript:;" onclick="validateInputAndSubmitRunner($('#runnerForm'));" onfocusin="validateLastContainer()" class="btn btn-primary" style="display: inline;">Submit</a>
      <a id="btnNext" style="display: none;" role="button" aria-label="Go to next page" href="javascript:;" data-toggle="" title="" onclick="nextPage();this.blur();" onfocusin="validateLastContainer()" class="btn btn-default btn-primary">Next</a>
    </div>
  </div>
  <div class="right-area" style="z-index: 1; position: relative">
    <div class="linkstitle" style="margin-bottom: 5px;">Views</div>
    <div id="normalcss"> Standard&nbsp; <a href="javascript:;" class="link visiblelink css-switch disabled" id="css-switch-disabled" onclick="switchCss('runner','wcag');">Accessibility Mode</a>
    </div>
    <div id="enhancedcss" class="hideme">
      <a href="javascript:;" class="link css-switch normal" id="css-switch-normal" onclick="switchCss('runner','standard');">Standard</a>&nbsp; Accessibility Mode
    </div>
    <hr style="margin-top: 15px;">
    <label for="langSelectorRunner">
      <div class="linkstitle" style="margin-bottom: 5px;">Languages</div>
    </label>
    <select id="langSelectorRunner" name="langSelectorRunner" onchange="changeLanguageSelectOption('runner')">
      <option value="EN" selected="selected">English</option>
    </select>
    <hr style="margin-top: 15px;">
    <div class="linkstitle">Useful links</div>
    <div style="margin-top: 5px;">
      <a class="link visiblelink" target="_blank" rel="noopener noreferrer" href="https://school-education.ec.europa.eu/en/insights/news/etwinning-twinspaces-migration-time-act-now">News item about the TwinSpace migration</a></div>
    <div style="margin-top: 5px;"><a class="link visiblelink" target="_blank" rel="noopener noreferrer" href="https://twinspace.etwinning.net">Your legacy TwinSpaces</a></div>
    <hr style="margin-top: 15px;">
    <div id="contact-and-pdf" style="word-wrap: break-word;">
      <div class="linkstitle" style="margin-bottom: 5px;">Contact</div>
      <i class="icon icon-globe" style="vertical-align: middle"></i>
      <a target="_blank" class="link visiblelink" href="https://school-education.ec.europa.eu/en/about/eTwinning-NSO">Contact your NSO</a>
      <hr style="margin-top: 15px;">
      <input type="button" id="btnSaveDraft" value="Save as Draft" onclick="saveDraft('runner');" class="btn btn-default" style="margin-top: 10px">
      <br><br>
      <a data-toggle="tooltip" aria-label="Report abuse - Opens in new window" title="" target="_blank" href="/eusurvey/home/reportAbuse?survey=653553" class="link visiblelink" data-original-title="If a survey contains illegal content or violates the rights of others (including intellectual property rights, competition law and general law), please use the 'Report Abuse' link.">Report abuse</a>
    </div>
  </div>
  <div style="clear: both"></div>
  <div class="modal confirm-explanation-deletion-modal" role="dialog" data-backdrop="static">
    <div class="modal-dialog modal-sm ui-resizable">
      <div class="modal-content">
        <div class="modal-body"> By removing an answer, the corresponding explanation text, possibly uploaded files and discussion will be deleted.</div>
        <div class="modal-footer">
          <a href="javascript:;" class="btn btn-default" onclick="confirmExplanationDeletion()">Confirm</a>
          <a href="javascript:;" class="btn btn-primary" onclick="hideModalDialog('.confirm-explanation-deletion-modal')">Cancel</a>
        </div>
      </div>
      <div class="ui-resizable-handle ui-resizable-e" style="z-index: 90;"></div>
      <div class="ui-resizable-handle ui-resizable-s" style="z-index: 90;"></div>
      <div class="ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se" style="z-index: 90;"></div>
    </div>
  </div>
  <div class="modal" id="quizTimeoutDialog" data-backdrop="static" role="dialog">
    <div class="modal-dialog ui-resizable">
      <div class="modal-content">
        <div class="modal-body"> The time limit for this quiz has been exceeded. It is not possible to submit your answer anymore.</div>
        <div class="modal-footer">
          <a class="btn btn-default" data-dismiss="modal">Close</a>
        </div>
      </div>
      <div class="ui-resizable-handle ui-resizable-e" style="z-index: 90;"></div>
      <div class="ui-resizable-handle ui-resizable-s" style="z-index: 90;"></div>
      <div class="ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se" style="z-index: 90;"></div>
    </div>
  </div>
  <script type="text/javascript" src="/eusurvey/resources/js/jquery.textarea-expander.js?version=d77aebf9bee27f5ab699ac503e1b01c01172a3d2"></script>
  <div class="modal" id="contribution-link-dialog" data-backdrop="static" role="dialog" tabindex="-1">
    <div class="modal-dialog non-resizable">
      <div class="modal-content">
        <div class="modal-body">
          <p>In order to open your contribution again later, please use the following link:</p>
          <p id="contribution-link-dialog__link"></p>
          <p>You can reopen this dialog from the survey's sidebar.</p>
        </div>
        <div class="modal-footer">
          <a href="javascript:;" class="btn btn-default" onclick="openAskEmailToSendLinkDialog(this)">
					Send by E-mail</a>
          <a href="javascript:;" class="btn btn-primary" onclick="hideModalDialog($('#contribution-link-dialog'))">Continue</a>
        </div>
      </div>
    </div>
  </div>
  <div class="modal" id="ask-email-dialog" data-backdrop="static" role="dialog">
    <div class="modal-dialog non-resizable">
      <div class="modal-content">
        <div class="modal-body">
          <p>Please enter your e-mail address to receive the link to your contribution.<br>Your e-mail address is only used once to send the e-mail and will not be saved afterwards.</p>
          <input class="form-control" type="text" maxlength="255" name="delphiemail" id="delphiemail">
          <p id="ask-delphi-email-dialog-error" class="validation-error-keep hideme"> Please provide an e-mail address!</p>
        </div>
        <div class="modal-footer">
          <a href="javascript:;" class="btn btn-primary" onclick="sendDelphiMailLink()">Send</a>
          <a href="javascript:;" class="btn btn-default" onclick="hideModalDialog($('#ask-email-dialog'))">Cancel</a>
        </div>
      </div>
    </div>
  </div>
  <script type="text/javascript">
    var surveyUniqueId = "4ac3bc30-bb88-4101-bbbc-abdb0eb15988";
    var labelOf = " of ";
  </script>
  <div style="display: none">
    <div id="section-template">
      <div role="heading" data-bind="html: title, attr: {'data-level': level, 'class':'sectiontitle section' + level()}"></div>
      <!-- ko if: foreditor -->
      <input type="hidden" data-bind="value: 'section', attr: {'name': 'type' + id()}">
      <input type="hidden" data-bind="value: uniqueId(), attr: {'name': 'uid' + id()}">
      <input type="hidden" data-bind="value: shortname, attr: {'name': 'shortname' + id()}">
      <input type="hidden" data-bind="value: useAndLogic, attr: {'name': 'useAndLogic' + id()}">
      <input type="hidden" data-bind="value: order, attr: {'name': 'order' + id()}">
      <input type="hidden" data-bind="value: tabTitle, attr: {'name': 'tabtitle' + id()}">
      <input type="hidden" data-bind="value: level, attr: {'name': 'level' + id()}">
      <textarea style="display: none" data-bind="text: originalTitle, attr: {'name': 'text' + id()}"></textarea>
      <!-- /ko -->
    </div>
    <div id="text-template">
      <div class="text" data-bind="html: title"></div>
      <!-- ko if: foreditor -->
      <input type="hidden" data-bind="value: 'text', attr: {'name': 'type' + id()}">
      <input type="hidden" data-bind="value: uniqueId(), attr: {'name': 'uid' + id()}">
      <input type="hidden" data-bind="value: shortname, attr: {'name': 'shortname' + id()}">
      <input type="hidden" data-bind="value: useAndLogic, attr: {'name': 'useAndLogic' + id()}">
      <input type="hidden" data-bind="value: true, attr: {'name': 'optional' + id()}">
      <textarea style="display: none" data-bind="text: originalTitle, attr: {'name': 'text' + id()}"></textarea>
      <!-- /ko -->
    </div>
    <div id="formula-template">
      <label class="questiontitle" data-bind="attr: {for: &quot;answer&quot; + id(), id: &quot;questiontitle&quot; + id()}">
        <span class="screen-reader-only">Question</span>
        <span data-bind="html: title"></span>
        <span class="screen-reader-only" data-bind="if: help">Additional help available</span>
      </label>
      <span class="questionhelp" data-bind="html: niceHelp, attr:{id: 'questionhelp' + id()}"></span>
      <!-- ko if: min() != null && min() != 0 && max() != null && max() != 0 -->
      <div class="limits" data-bind="html: getMinMax(minString(), maxString()), attr: {id: 'questioninfo' + id()}"></div>
      <!-- /ko -->
      <!-- ko if: min() != 0 && min() != null && (max() == 0 || max() == null) -->
      <div class="limits" data-bind="html: getMin(minString()), attr: {id: 'questioninfo' + id()}"></div>
      <!-- /ko -->
      <!-- ko if: (min() == 0 || min() == null) && max() != null && max() != 0 -->
      <div class="limits" data-bind="html: getMax(maxString()), attr: {id: 'questioninfo' + id()}"></div>
      <!-- /ko -->
      <input
        data-bind="enable: !readonly(), value: result, attr: {'id': 'answer' + id(), 'data-id':id(), 'data-shortname': shortname(), 'name' : (readonly() ? '' : 'answer' + id()), 'class':css(), 'aria-labelledby':'questiontitle' + id(), 'aria-describedby':'questioninfo' + id() + ' questionhelp' + id()}"
        oninput="propagateChange(this);" onblur="validateInput($(this).parent())" type="text" autocomplete="off">
      <!-- ko if: readonly() -->
      <input type="hidden" data-bind="value: result, attr: {'name': 'answer' + id()}">
      <!-- /ko -->
      <!-- ko if: foreditor -->
      <input type="hidden" data-bind="value: 'formula', attr: {'name': 'type' + id()}">
      <input type="hidden" data-bind="value: uniqueId(), attr: {'name': 'uid' + id()}">
      <input type="hidden" data-bind="value: shortname, attr: {'name': 'shortname' + id()}">
      <input type="hidden" data-bind="value: useAndLogic, attr: {'name': 'useAndLogic' + id()}">
      <input type="hidden" data-bind="value: readonly, attr: {'name': 'readonly' + id()}">
      <input type="hidden" data-bind="value: formula, attr: {'name': 'formula' + id()}">
      <input type="hidden" data-bind="value: min, attr: {'name': 'min' + id()}">
      <input type="hidden" data-bind="value: max, attr: {'name': 'max' + id()}">
      <input type="hidden" data-bind="value: decimalPlaces, attr: {'name': 'decimalplaces' + id()}">
      <input type="hidden" data-bind="value: true, attr: {'name': 'optional' + id()}">
      <textarea style="display: none" data-bind="text: originalTitle, attr: {'name': 'text' + id()}"></textarea>
      <textarea style="display: none" data-bind="text: help, attr: {'name': 'help' + id()}"></textarea>
      <!-- /ko -->
    </div>
    <div id="image-template">
      <div class="alignment-div" data-bind="attr: {'style': 'width: 920px; max-width: 100%; text-align:' + align()}">
        <img style="max-width: 100%" data-bind="attr: {'src': url, 'alt': originalTitle, 'width': usedwidth() > 0 ? usedwidth() : '', 'longdesc' : longdesc()}">
      </div>
      <!-- ko if: foreditor -->
      <input type="hidden" data-bind="value: 'image', attr: {'name': 'type' + id()}">
      <input type="hidden" data-bind="value: uniqueId(), attr: {'name': 'uid' + id()}">
      <input type="hidden" data-bind="value: shortname, attr: {'name': 'shortname' + id()}">
      <input type="hidden" data-bind="value: useAndLogic, attr: {'name': 'useAndLogic' + id()}">
      <input type="hidden" data-bind="value: title, attr: {'name': 'name' + id()}">
      <input type="hidden" data-bind="value: scale, attr: {'name': 'scale' + id()}">
      <input type="hidden" data-bind="value: width, attr: {'name': 'width' + id()}">
      <input type="hidden" data-bind="value: align, attr: {'name': 'align' + id()}">
      <input type="hidden" data-bind="value: url, attr: {'name': 'url' + id()}">
      <input type="hidden" data-bind="value: filename, attr: {'name': 'filename' + id()}">
      <input type="hidden" data-bind="value: longdesc, attr: {'name': 'longdesc' + id()}">
      <input type="hidden" data-bind="value: true, attr: {'name': 'optional' + id()}">
      <textarea style="display: none" data-bind="text: originalTitle, attr: {'name': 'text' + id()}"></textarea>
      <!-- /ko -->
    </div>
    <div id="ruler-template">
      <hr data-bind="attr: {'style': 'border-top: ' + height() + 'px ' + style() + ' ' + color() }">
      <!-- ko if: foreditor -->
      <input type="hidden" data-bind="value: 'ruler', attr: {'name': 'type' + id()}">
      <input type="hidden" data-bind="value: uniqueId(), attr: {'name': 'uid' + id()}">
      <input type="hidden" data-bind="value: shortname, attr: {'name': 'shortname' + id()}">
      <input type="hidden" data-bind="value: useAndLogic, attr: {'name': 'useAndLogic' + id()}">
      <input type="hidden" data-bind="value: true, attr: {'name': 'optional' + id()}">
      <textarea style="display: none" data-bind="text: originalTitle, attr: {'name': 'text' + id()}"></textarea>
      <input type="hidden" data-bind="value: color, attr: {'name': 'color' + id()}">
      <input type="hidden" data-bind="value: height, attr: {'name': 'height' + id()}">
      <input type="hidden" data-bind="value: style, attr: {'name': 'style' + id()}">
      <!-- /ko -->
    </div>
    <div id="single-choice-template">
      <!-- ko if: optional() == false -->
      <span class="mandatory">*</span>
      <!-- /ko -->
      <label class="questiontitle" data-bind="attr: {for: 'answer' + id(), id: 'questiontitle' + id()}">
        <span class="screen-reader-only">Question</span>
        <span data-bind="html: title"></span>
        <span class="screen-reader-only" data-bind="if: help">Additional help available</span>
      </label>
      <span class="questionhelp" data-bind="html: niceHelp, attr:{id: 'questionhelp' + id()}"></span>
      <div class="answer-columns" style="position: relative; overflow-x:auto; padding-bottom: 8px; padding-top: 4px;">
        <!-- ko if: likert() && !(ismobile || istablet) -->
        <div style="margin-top: 30px; display: inline-block; position: relative;" role="radiogroup"
          data-bind="attr: {'class' : maxDistance() > -1 ? 'likert-div median answers-table' : 'likert-div answers-table', 'aria-labelledby':'questiontitle' + id(), 'aria-describedby':'questioninfo' + id() + ' questionhelp' + id()}, style: { width: possibleAnswers().length * 100 + 'px' }">
          <div class="likert-bar" data-bind="attr: {'style' : 'width: ' + (possibleAnswers().length - 1) + '00px;'}"></div>
          <!-- ko foreach: possibleAnswers() -->
          <div class="likert-pa">
            <input
              data-bind="enable: !$parents[0].readonly() &amp;&amp; !$parents[0].foreditor, checked: getPAByQuestion2($parents[0].uniqueId(), uniqueId(), id()), attr: {'data-id': $parents[0].id() + '' + id(), 'id': id(), 'data-shortname': shortname(), 'data-dependencies': dependentElementsString(), onkeyup: 'singleKeyUp(event, this, '+$parents[0].readonly()+')', onclick: $parents[0].readonly() ? 'return false;' : 'singleClick(this); checkDependenciesAsync(this);', class: $parents[0].css + ' trigger check', name: 'answer' + $parents[0].id(), value: id(), 'aria-labelledby': 'answerlabel' + id()}"
              type="radio">
            <div class="answertext" style="margin-left: 0; padding-left: 10px; padding-right: 10px;" data-bind="attr: {'data-id' : id(), 'data-pa-uid' : uniqueId(), id: 'answerlabel' + id()}">
              <span class="screen-reader-only">Answer</span>
              <span data-bind="html: titleForDisplayMode($parents[0].displayMode())"></span>
            </div>
          </div>
          <!-- /ko -->
          <div style="clear: both"></div>
        </div>
        <!-- ko if: foreditor -->
        <!-- ko foreach: possibleAnswers() -->
        <div class="possibleanswerrow hidden">
          <input type="hidden" data-bind="value: dependentElementsString(), attr: {'name': 'dependencies' + $parents[0].id(), 'data-id' : id()}">
          <input type="hidden" data-bind="value: shortname, attr: {'name': 'pashortname' + $parents[0].id(), 'data-id' : id()}">
          <input type="hidden" data-bind="value: uniqueId(), attr: {'name': 'pauid' + $parents[0].id(), 'data-id' : id()}">
          <textarea style="display: none" data-bind="text: title, attr: {'name': 'answer' + $parents[0].id(), 'data-id' : id()}"></textarea>
          <textarea style="display: none" data-bind="text: originalTitle, attr: {'name': 'originalAnswer' + $parent.id(), 'data-id' : id()}"></textarea>
          <div class="answertext" data-bind="html: title, attr: {'id' : id(), 'data-id' : id()}"></div>
          <input type="hidden" data-bind="value: scoring.correct, attr: {'name': 'correct' + $parents[0].id(), 'data-id' : id()}">
          <input type="hidden" data-bind="value: scoring.points, attr: {'name': 'answerpoints' + $parents[0].id(), 'data-id' : id()}">
          <input type="hidden" data-bind="value: scoring.feedback, attr: {'name': 'feedback' + $parents[0].id(), 'data-id' : id()}">
        </div>
        <!-- /ko -->
        <!-- /ko -->
        <!-- /ko -->
        <!-- ko if: ismobile || istablet || !likert() -->
        <!-- ko if: likert() || useRadioButtons() -->
        <!-- ko if: likert() -->
        <div class="likert-table-div"></div>
        <!-- /ko -->
        <table class="answers-table" role="radiogroup" data-bind="attr: {'aria-labelledby':'questiontitle' + id(), 'aria-describedby':'questioninfo' + id() + ' questionhelp' + id()}">
          <tbody>
            <tr class="hideme">
              <th>radio button</th>
              <th>label</th>
            </tr>
            <!-- ko if: foreditor -->
            <tr class="hideme">
              <td>
                <!-- ko foreach: possibleAnswers() -->
                <input type="hidden" data-bind="value: dependentElementsString(), attr: {'name': 'dependencies' + $parent.id(), 'data-id' : id()}">
                <input type="hidden" data-bind="value: shortname, attr: {'name': 'pashortname' + $parent.id(), 'data-id' : id()}">
                <input type="hidden" data-bind="value: uniqueId(), attr: {'name': 'pauid' + $parent.id(), 'data-id' : id()}">
                <textarea style="display: none" data-bind="text: title, attr: {'name': 'answer' + $parent.id(), 'data-id' : id()}"></textarea>
                <textarea style="display: none" data-bind="text: originalTitle, attr: {'name': 'originalAnswer' + $parent.id(), 'data-id' : id()}"></textarea>
                <input type="hidden" data-bind="value: scoring.correct, attr: {'name': 'correct' + $parent.id(), 'data-id' : id()}">
                <input type="hidden" data-bind="value: scoring.points, attr: {'name': 'answerpoints' + $parent.id(), 'data-id' : id()}">
                <input type="hidden" data-bind="value: scoring.feedback, attr: {'name': 'feedback' + $parent.id(), 'data-id' : id()}">
                <!-- /ko -->
              </td>
            </tr>
            <!-- /ko -->
            <!-- ko foreach: orderedPossibleAnswersByRows(false, false) -->
            <tr class="possibleanswerrow">
              <!-- ko foreach: $data -->
              <td style="vertical-align: top">
                <!-- ko ifnot: id() == 'dummy' -->
                <input style="position: relative"
                  data-bind="enable: !$parents[1].readonly() &amp;&amp; !$parents[1].foreditor, checked: getPAByQuestion2($parents[1].uniqueId(), uniqueId(), id()), attr: {'data-id': $parents[1].id() + '' + id(), 'id': id(), 'data-shortname': shortname(), 'data-dependencies': dependentElementsString(), onkeyup: 'singleKeyUp(event, this, '+$parents[1].readonly()+')', onclick: $parents[1].readonly() ? 'return false;' : 'singleClick(this); checkDependenciesAsync(this);', class: $parents[1].css + ' trigger check', name: 'answer' + $parents[1].id(), value: id(), 'aria-labelledby': 'answerlabel' + id()}"
                  ,="" type="radio">
                <!-- /ko -->
              </td>
              <td style="vertical-align: top; padding-right: 15px;">
                <label data-bind="attr: {'for': id, 'id': 'answerlabel' + id()}">
                  <span class="screen-reader-only">Answer</span>
                  <!-- ko ifnot: id() == 'dummy' -->
                  <div class="answertext" data-bind="html: titleForDisplayMode($parents[1].displayMode()), attr: {'data-id' : id()}"></div>
                  <!-- /ko -->
                </label>
              </td>
              <!-- /ko -->
            </tr>
            <!-- /ko -->
          </tbody>
        </table>
        <!-- /ko -->
        <!-- ko ifnot: useRadioButtons() || likert() -->
        <div class="answer-column">
          <select
            data-bind="foreach: orderedPossibleAnswers(false), enable: !readonly(), valueAllowUnset: true, value: getPAByQuestion3(uniqueId()), attr: {'id': 'answer' + id(), 'onclick': !foreditor ? 'validateInput($(this).parent(),true); checkDependenciesAsync(this); propagateChange(this);' : '', 'data-id':id(), 'data-shortname': shortname(), 'name' : 'answer' + id(), 'class': css + ' single-choice', 'aria-labelledby':'questiontitle' + id(), 'aria-describedby':'questioninfo' + id() + ' questionhelp' + id()}">
            <option data-bind="html: strip_tags(titleForDisplayMode($parents[0].displayMode())), attr: {value: id(), 'data-dependencies': dependentElementsString(), 'id': 'trigger'+id()}" class="possible-answer trigger"></option>
          </select>
          <!-- ko if: foreditor -->
          <!-- ko foreach: possibleAnswers() -->
          <div class="possibleanswerrow hidden">
            <input type="hidden" data-bind="value: dependentElementsString(), attr: {'name': 'dependencies' + $parents[0].id(), 'data-id' : id()}">
            <input type="hidden" data-bind="value: shortname, attr: {'name': 'pashortname' + $parents[0].id(), 'data-id' : id()}">
            <input type="hidden" data-bind="value: uniqueId(), attr: {'name': 'pauid' + $parents[0].id(), 'data-id' : id()}">
            <textarea style="display: none" data-bind="text: title, attr: {'name': 'answer' + $parents[0].id(), 'data-id' : id()}"></textarea>
            <textarea style="display: none" data-bind="text: originalTitle, attr: {'name': 'originalAnswer' + $parent.id(), 'data-id' : id()}"></textarea>
            <div class="answertext" data-bind="html: title, attr: {'id' : id(), 'data-id' : id()}"></div>
            <input type="hidden" data-bind="value: scoring.correct, attr: {'name': 'correct' + $parents[0].id(), 'data-id' : id()}">
            <input type="hidden" data-bind="value: scoring.points, attr: {'name': 'answerpoints' + $parents[0].id(), 'data-id' : id()}">
            <input type="hidden" data-bind="value: scoring.feedback, attr: {'name': 'feedback' + $parents[0].id(), 'data-id' : id()}">
          </div>
          <!-- /ko -->
          <!-- /ko -->
        </div>
        <!-- /ko -->
        <!-- /ko -->
        <input type="hidden" data-bind="value: choiceType, attr: {'name': 'choicetype' + id()}">
        <!-- ko if: foreditor -->
        <input type="hidden" data-bind="value: 'choice', attr: {'name': 'type' + id()}">
        <input type="hidden" data-bind="value: 'true', attr: {'name': 'single' + id()}">
        <input type="hidden" data-bind="value: optional, attr: {'name': 'optional' + id()}">
        <input type="hidden" data-bind="value: uniqueId(), attr: {'name': 'uid' + id()}">
        <input type="hidden" data-bind="value: shortname, attr: {'name': 'shortname' + id()}">
        <input type="hidden" data-bind="value: useAndLogic, attr: {'name': 'useAndLogic' + id()}">
        <input type="hidden" data-bind="value: order, attr: {'name': 'order' + id()}">
        <input type="hidden" data-bind="value: readonly, attr: {'name': 'readonly' + id()}">
        <input type="hidden" data-bind="value: isAttribute, attr: {'name': 'attribute' + id()}">
        <input type="hidden" data-bind="value: isDelphiQuestion, attr: {'name': 'delphiquestion' + id()}">
        <input type="hidden" data-bind="value: showExplanationBox, attr: {'name': 'explanationbox' + id()}">
        <input type="hidden" data-bind="value: delphiChartType, attr: {'name': 'delphicharttype' + id()}">
        <input type="hidden" data-bind="value: attributeName, attr: {'name': 'nameattribute' + id()}">
        <input type="hidden" data-bind="value: numColumns, attr: {'name': 'columns' + id()}">
        <input type="hidden" data-bind="value: useRadioButtons ? 'radio' : 'select', attr: {'name': 'choicetype' + id()}">
        <input type="hidden" data-bind="value: 0, attr: {'name': 'choicemin' + id()}">
        <input type="hidden" data-bind="value: 0, attr: {'name': 'choicemax' + id()}">
        <textarea style="display: none" data-bind="text: originalTitle, attr: {'name': 'text' + id()}"></textarea>
        <textarea style="display: none" data-bind="text: help, attr: {'name': 'help' + id()}"></textarea>
        <input type="hidden" data-bind="value: scoring, attr: {'name': 'scoring' + id()}">
        <input type="hidden" data-bind="value: points, attr: {'name': 'points' + id()}">
        <input type="hidden" data-bind="value: subType, attr: {'name': 'subType' + id()}">
        <input type="hidden" data-bind="value: displayMode, attr: {'name': 'displayMode' + id()}">
        <input type="hidden" data-bind="value: maxDistance, attr: {'name': 'maxDistance' + id()}">
        <input type="hidden" data-bind="value: editorRowsLocked(), attr: {'name': 'editorRowsLocked' + id()}">
        <!-- /ko -->
      </div>
    </div>
    <div id="multiple-choice-template">
      <!-- ko if: optional() == false -->
      <span class="mandatory">*</span>
      <!-- /ko -->
      <label class="questiontitle" data-bind="attr: {for: &quot;answer&quot; + id(), id: &quot;questiontitle&quot; + id()}">
        <span class="screen-reader-only">Question</span>
        <span data-bind="html: title"></span>
        <span class="screen-reader-only" data-bind="if: help">Additional help available</span>
      </label>
      <span class="questionhelp" data-bind="html: niceHelp, attr:{id: 'questionhelp' + id()}"></span>
      <!-- ko if: minChoices() != 0 && maxChoices() != 0 -->
      <div class="limits" data-bind="html: getMinMaxChoice(minChoices(), maxChoices()), attr: {id: 'questioninfo' + id()}"></div>
      <!-- /ko -->
      <!-- ko if: minChoices() != 0 && maxChoices() == 0 -->
      <div class="limits" data-bind="html: getMinChoice(minChoices()), attr: {id: 'questioninfo' + id()}"></div>
      <!-- /ko -->
      <!-- ko if: minChoices() == 0 && maxChoices() != 0 -->
      <div class="limits" data-bind="html: getMaxChoice(maxChoices()), attr: {id: 'questioninfo' + id()}"></div>
      <!-- /ko -->
      <div class="answer-columns" style="overflow-x:auto;padding-top:4px;padding-bottom:8px;">
        <!-- ko if: useCheckboxes -->
        <table class="answers-table" role="list" data-bind="attr: {'aria-labelledby':'questiontitle' + id(), 'aria-describedby':'questioninfo' + id() + ' questionhelp' + id()}">
          <tbody>
            <tr class="hideme">
              <th>checkbox</th>
              <th>label</th>
            </tr>
            <!-- ko if: foreditor -->
            <tr class="hideme">
              <td>
                <!-- ko foreach: possibleAnswers() -->
                <input type="hidden" data-bind="value: dependentElementsString(), attr: {'name': 'dependencies' + $parent.id(), 'data-id' : id()}">
                <input type="hidden" data-bind="value: shortname, attr: {'name': 'pashortname' + $parent.id(), 'data-id' : id()}">
                <input type="hidden" data-bind="value: uniqueId(), attr: {'name': 'pauid' + $parent.id(), 'data-id' : id()}">
                <textarea style="display: none" data-bind="text: title, attr: {'name': 'answer' + $parent.id(), 'data-id' : id()}"></textarea>
                <textarea style="display: none" data-bind="text: originalTitle, attr: {'name': 'originalAnswer' + $parent.id(), 'data-id' : id()}"></textarea>
                <input type="hidden" data-bind="value: scoring.correct, attr: {'name': 'correct' + $parent.id(), 'data-id' : id()}">
                <input type="hidden" data-bind="value: scoring.points, attr: {'name': 'answerpoints' + $parent.id(), 'data-id' : id()}">
                <input type="hidden" data-bind="value: scoring.feedback, attr: {'name': 'feedback' + $parent.id(), 'data-id' : id()}">
                <!-- /ko -->
              </td>
            </tr>
            <!-- /ko -->
            <!-- ko foreach: orderedPossibleAnswersByRows(false, false) -->
            <tr class="possibleanswerrow" role="listitem">
              <!-- ko foreach: $data -->
              <td style="vertical-align: top">
                <!-- ko ifnot: id() == 'dummy' -->
                <input
                  data-bind="enable: !$parents[1].readonly() &amp;&amp; !$parents[1].foreditor, checked: !$parents[1].foreditor &amp;&amp; getPAByQuestion($parents[1].uniqueId()).indexOf(uniqueId()) > -1, attr: {'data-id': $parents[1].id() + '' + id(), 'id': id(), 'data-shortname': shortname(), 'data-dependencies': dependentElementsString(), onclick: $parents[1].readonly() ? 'return false;' : 'findSurveyElementAndResetValidationErrors(this); singleClick(this); checkDependenciesAsync(this);', class: $parents[1].css + ' trigger check', name: 'answer' + $parents[1].id(), value: id(), 'aria-labelledby': 'answerlabel' + id()}"
                  type="checkbox">
                <!-- /ko -->
              </td>
              <td style="vertical-align: top; padding-right: 10px;">
                <!-- ko ifnot: id() == 'dummy' -->
                <label data-bind="attr: {'for': id, 'id': 'answerlabel' + id()}">
                  <span class="screen-reader-only">Answer</span>
                  <!-- ko ifnot: id() == 'dummy' -->
                  <div class="answertext" data-bind="html: title, attr: {'data-id' : id()}"></div>
                  <!-- /ko -->
                </label>
                <!-- /ko -->
              </td>
              <!-- /ko -->
            </tr>
            <!-- /ko -->
          </tbody>
        </table>
        <!-- /ko -->
        <!-- ko ifnot: useCheckboxes -->
        <div class="answer-column">
          <ul role="listbox" data-bind="foreach: orderedPossibleAnswers(false), attr: {'class':css + ' multiple-choice', 'aria-labelledby':'questiontitle' + id(), 'aria-describedby':'questioninfo' + id() + ' questionhelp' + id()}">
            <li role="listitem"
              data-bind="attr: { 'data-id': id(), 'class': 'possible-answer trigger ' + (getPAByQuestion($parent.uniqueId()).indexOf(uniqueId()) > -1 ? 'selected-choice' : '') , 'onclick' : $parent.readonly() || $parent.foreditor ? 'return false;' : 'selectMultipleChoiceAnswer($(this).children().first()); propagateChange($(this).children().first()); event.stopImmediatePropagation();'}">
              <a tabindex="0" data-bind="attr: {'data-shortname': shortname(), 'onkeypress': $parent.readonly() || $parent.foreditor ? 'return false;' : 'preventScrollOnSpaceInput(event);findSurveyElementAndResetValidationErrors(this);selectMultipleChoiceAnswer(this);propagateChange(this);'}">
							<span class="screen-reader-only">Answer</span>
							<span data-bind="html: strip_tags(title()), attr: {'data-id' : id(), 'id': 'answerlabel' + id()}" class="answertext"></span>
						</a>
              <input
                data-bind="value: id(), checked: getPAByQuestion2($parent.uniqueId(), uniqueId(), id), attr: {'name': 'answer' + $parent.id(), 'id':id(), 'data-id': $parent.id() + id(), 'data-dependencies': dependentElementsString, 'aria-labelledby': 'answerlabel' + id()}"
                style="display: none" type="checkbox">
            </li>
          </ul>
          <!-- ko if: foreditor -->
          <!-- ko foreach: possibleAnswers() -->
          <div class="possibleanswerrow hidden">
            <input type="hidden" data-bind="value: dependentElementsString(), attr: {'name': 'dependencies' + $parents[0].id(), 'data-id' : id()}">
            <input type="hidden" data-bind="value: shortname, attr: {'name': 'pashortname' + $parents[0].id(), 'data-id' : id()}">
            <input type="hidden" data-bind="value: uniqueId(), attr: {'name': 'pauid' + $parents[0].id(), 'data-id' : id()}">
            <textarea style="display: none" data-bind="text: title, attr: {'name': 'answer' + $parents[0].id(), 'data-id' : id()}"></textarea>
            <textarea style="display: none" data-bind="text: originalTitle, attr: {'name': 'originalAnswer' + $parent.id(), 'data-id' : id()}"></textarea>
            <div class="answertext" data-bind="html: title, attr: {'id' : id(), 'data-id' : id()}"></div>
            <input type="hidden" data-bind="value: scoring.correct, attr: {'name': 'correct' + $parents[0].id(), 'data-id' : id()}">
            <input type="hidden" data-bind="value: scoring.points, attr: {'name': 'answerpoints' + $parents[0].id(), 'data-id' : id()}">
            <input type="hidden" data-bind="value: scoring.feedback, attr: {'name': 'feedback' + $parents[0].id(), 'data-id' : id()}">
          </div>
          <!-- /ko -->
          <!-- /ko -->
        </div>
        <div style="clear: both"></div>
        <!-- /ko -->
        <input type="hidden" data-bind="value: choiceType, attr: {'name': 'choicetype' + id()}">
        <!-- ko if: foreditor -->
        <input type="hidden" data-bind="value: 'choice', attr: {'name': 'type' + id()}">
        <input type="hidden" data-bind="value: 'false', attr: {'name': 'single' + id()}">
        <input type="hidden" data-bind="value: optional, attr: {'name': 'optional' + id()}">
        <input type="hidden" data-bind="value: uniqueId(), attr: {'name': 'uid' + id()}">
        <input type="hidden" data-bind="value: shortname, attr: {'name': 'shortname' + id()}">
        <input type="hidden" data-bind="value: useAndLogic, attr: {'name': 'useAndLogic' + id()}">
        <input type="hidden" data-bind="value: order, attr: {'name': 'order' + id()}">
        <input type="hidden" data-bind="value: readonly, attr: {'name': 'readonly' + id()}">
        <input type="hidden" data-bind="value: isAttribute, attr: {'name': 'attribute' + id()}">
        <input type="hidden" data-bind="value: isDelphiQuestion, attr: {'name': 'delphiquestion' + id()}">
        <input type="hidden" data-bind="value: showExplanationBox, attr: {'name': 'explanationbox' + id()}">
        <input type="hidden" data-bind="value: delphiChartType, attr: {'name': 'delphicharttype' + id()}">
        <input type="hidden" data-bind="value: attributeName, attr: {'name': 'nameattribute' + id()}">
        <input type="hidden" data-bind="value: numColumns, attr: {'name': 'columns' + id()}">
        <input type="hidden" data-bind="value: useCheckboxes ? 'checkbox' : 'list', attr: {'name': 'choicetype' + id()}">
        <input type="hidden" data-bind="value: minChoices, attr: {'name': 'choicemin' + id()}">
        <input type="hidden" data-bind="value: maxChoices, attr: {'name': 'choicemax' + id()}">
        <textarea style="display: none" data-bind="text: originalTitle, attr: {'name': 'text' + id()}"></textarea>
        <textarea style="display: none" data-bind="text: help, attr: {'name': 'help' + id()}"></textarea>
        <input type="hidden" data-bind="value: scoring, attr: {'name': 'scoring' + id()}">
        <input type="hidden" data-bind="value: points, attr: {'name': 'points' + id()}">
        <input type="hidden" data-bind="value: noNegativeScore, attr: {'name': 'noNegativeScore' + id()}">
        <input type="hidden" data-bind="value: subType, attr: {'name': 'subType' + id()}">
        <input type="hidden" data-bind="value: displayMode, attr: {'name': 'displayMode' + id()}">
        <input type="hidden" data-bind="value: editorRowsLocked(), attr: {'name': 'editorRowsLocked' + id()}">
        <!-- /ko -->
      </div>
    </div>
    <div id="ranking-question-template">
      <!-- ko if: optional() == false -->
      <span class="mandatory">*</span>
      <!-- /ko -->
      <label class="questiontitle" data-bind="attr: {for: &quot;answer&quot; + id(), id: &quot;questiontitle&quot; + id()}">
        <span class="screen-reader-only">Question</span>
        <span data-bind="html: title"></span>
        <span class="screen-reader-only" data-bind="if: help">Additional help available</span>
      </label>
      <span class="questionhelp" data-bind="html: niceHelp, attr:{id: 'questionhelp' + id()}"></span>
      <!-- ko if: foreditor -->
      <input type="hidden" data-bind="value: 'rankingquestion', attr: {'name': 'type' + id()}">
      <input type="hidden" data-bind="value: uniqueId(), attr: {'name': 'uid' + id()}">
      <input type="hidden" data-bind="value: optional, attr: {'name': 'optional' + id()}">
      <input type="hidden" data-bind="value: shortname, attr: {'name': 'shortname' + id()}">
      <input type="hidden" data-bind="value: isDelphiQuestion, attr: {'name': 'delphiquestion' + id()}">
      <input type="hidden" data-bind="value: delphiChartType, attr: {'name': 'delphicharttype' + id()}">
      <input type="hidden" data-bind="value: showExplanationBox, attr: {'name': 'explanationbox' + id()}">
      <input type="hidden" data-bind="value: order, attr: {'name': 'order' + id()}">
      <textarea style="display: none" data-bind="text: originalTitle, attr: {'name': 'text' + id()}"></textarea>
      <textarea style="display: none" data-bind="text: help, attr: {'name': 'help' + id()}"></textarea>
      <div class="ranking-question-initial-answer-message" data-bind="hidden: isAnswered"> Use drag&amp;drop or the up/down buttons to change the order or
        <a href="javascript:;" class="ranking-question-initial-answer-clickable" data-bind="attr: {'aria-owns': 'ranking-item-list-container' + id()}">accept the initial order</a>.</div>
      <!-- /ko -->
      <div role="group" data-bind="attr: {id: 'answer' + id(), 'aria-labelledby': 'questiontitle' + id(), 'aria-describedby' : 'questioninfo' + id() +  ' questionhelp' + id()}">
        <!-- ko ifnot: foreditor -->
        <span class="screen-reader-only" data-bind="html: getRankingQuestionInfo(itemCount()), attr: {id: 'listcountinfo' + id()}"></span>
        <div class="ranking-question-initial-answer-message" data-bind="hidden: isAnswered"> Use drag&amp;drop or the up/down buttons to change the order or
          <a href="javascript:;" class="ranking-question-initial-answer-clickable" data-bind="click: acceptInitialAnswer, attr: {'aria-owns': 'ranking-item-list-container' + id()}">accept the initial order</a>.</div>
        <div class="question-reset-answer-message" data-bind="hidden: !isAnswered()">
          <a href="javascript:;" data-bind="click: resetOrder">Reset to initial order</a>
        </div>
        <!-- /ko -->
        <div class="rankingitem-list-container" data-bind="attr: {id: 'ranking-item-list-container' + id()}">
          <div class="rankingitem-list">
            <!-- ko ifnot: foreditor -->
            <span class="screen-reader-only" data-bind="html: getInitialOrderInfoText(), attr: {id: 'listorderinfo' + id()}"></span>
            <!-- /ko -->
            <!-- ko foreach: orderedRankingItems() -->
            <div role="listitem" class="rankingitem-form-data focussable" data-bind="attr: {'aria-labelledby': id()}">
              <div class="rankingitem-decoration">⠿</div>
              <a aria-hidden="true" role="button" class="rankingitem-button" href="javascript:;" data-toggle="tooltip" title="" data-bind="click: onMoveUp, event: { keydown: onKeyDownMoveItemUp }, attr: {'aria-label' : title()}" data-original-title="Move up"><span class="screen-reader-only"></span><span class="glyphicon glyphicon-arrow-up"></span></a>
              <a aria-hidden="true" role="button" class="rankingitem-button" href="javascript:;" data-toggle="tooltip" title="" data-bind="click: onMoveDown, event: { keydown: onKeyDownMoveItemDown }, attr: {'aria-label' : title()}" data-original-title="Move down"><span class="glyphicon glyphicon-arrow-down"></span></a>
              <div class="rankingitemtext" data-bind="html: title(), attr: {'id' : id(), 'data-id' : id()}"></div>
            </div>
            <!-- /ko -->
          </div>
        </div>
        <!-- ko if: foreditor -->
        <!-- ko foreach: rankingItems() -->
        <div class="possibleanswerrow hidden">
          <input type="hidden" data-bind="value: shortname, attr: {'name': 'rankingitemshortname' + $parents[0].id(), 'data-id' : id()}">
          <input type="hidden" data-bind="value: uniqueId(), attr: {'name': 'rankingitemuid' + $parents[0].id(), 'data-id' : id()}">
          <textarea style="display: none" data-bind="text: title(), attr: {'name': 'rankingitemtitle' + $parents[0].id(), 'data-id' : id()}"></textarea>
          <textarea style="display: none" data-bind="text: originalTitle(), attr: {'name': 'rankingitemoriginaltitle' + $parent.id(), 'data-id' : id()}"></textarea>
        </div>
        <!-- /ko -->
        <!-- /ko -->
        <!-- ko ifnot: foreditor -->
        <input type="hidden" data-bind="value:getAnswerValuesString(), attr: {'id': 'answer' + id(), 'data-id':id(), 'data-shortname': shortname(), 'name' : 'answer' + id(), 'class':css()}">
        <!-- /ko -->
      </div>
    </div>
    <div id="password-template">
      <!-- ko if: optional() == false -->
      <span class="mandatory">*</span>
      <!-- /ko -->
      <label class="questiontitle" data-bind="attr: {for: &quot;answer&quot; + id(), id: &quot;questiontitle&quot; + id()}">
        <span class="screen-reader-only">Question</span>
        <span data-bind="html: title"></span>
      </label>
      <span class="questionhelp" data-bind="html: niceHelp, attr:{id: 'questionhelp' + id()}"></span>
      <input
        data-bind="enable: !readonly(), value:getValueByQuestion(uniqueId()), attr: {'id': 'input' + id(), 'data-id':id(), 'data-shortname': shortname(), 'name' : 'answer' + id(), 'class':css(), 'aria-labelledby':'questiontitle' + id(), 'aria-describedby': 'questionhelp' + id()}"
        onfocus="clearStars(this);" onkeyup="countChar(this); propagateChange(this);" onblur="validateInput($(this).parent(), true)" autocomplete="off" type="password">
      <!-- ko if: isComparable -->
      <br><span style="margin-left: 20px">Please repeat</span>:<br>
      <input data-bind="enable: !readonly(), attr: {'id': 'answer' + id() + '2', 'data-id':id() + '2', 'name' : 'secondanswer' + id(), 'class': 'comparable-second ' + css()}" onfocus="clearStars(this);" autocomplete="off" type="password">
      <!-- /ko -->
      <!-- ko if: foreditor -->
      <input type="hidden" data-bind="value: type == 'RegExQuestion' ? 'regex' : 'freetext', attr: {'name': 'type' + id()}">
      <input type="hidden" data-bind="value: uniqueId(), attr: {'name': 'uid' + id()}">
      <input type="hidden" data-bind="value: optional, attr: {'name': 'optional' + id()}">
      <input type="hidden" data-bind="value: shortname, attr: {'name': 'shortname' + id()}">
      <input type="hidden" data-bind="value: useAndLogic, attr: {'name': 'useAndLogic' + id()}">
      <input type="hidden" data-bind="value: readonly, attr: {'name': 'readonly' + id()}">
      <input type="hidden" data-bind="value: isAttribute, attr: {'name': 'attribute' + id()}">
      <input type="hidden" data-bind="value: isDelphiQuestion, attr: {'name': 'delphiquestion' + id()}">
      <input type="hidden" data-bind="value: showExplanationBox, attr: {'name': 'explanationbox' + id()}">
      <input type="hidden" data-bind="value: attributeName, attr: {'name': 'nameattribute' + id()}">
      <input type="hidden" data-bind="value: numRows, attr: {'name': 'rows' + id()}">
      <input type="hidden" data-bind="value: minCharacters, attr: {'name': 'min' + id()}">
      <input type="hidden" data-bind="value: maxCharacters, attr: {'name': 'max' + id()}">
      <input type="hidden" data-bind="value: isPassword, attr: {'name': 'password' + id()}">
      <input type="hidden" data-bind="value: isUnique, attr: {'name': 'unique' + id()}">
      <input type="hidden" data-bind="value: isComparable, attr: {'name': 'comparable' + id()}">
      <textarea style="display: none" data-bind="text: help, attr: {'name': 'help' + id()}"></textarea>
      <textarea style="display: none" data-bind="text: originalTitle, attr: {'name': 'text' + id()}"></textarea>
      <!--  ko foreach: scoringItems() -->
      <input type="hidden" data-bind="value: id, attr: {'name': 'scoringitem' + $parent.id()}">
      <input type="hidden" data-bind="value: type, attr: {'name': 'type' + id()}">
      <input type="hidden" data-bind="value: correct, attr: {'name': 'correct' + id()}">
      <input type="hidden" data-bind="value: value, attr: {'name': 'value' + id()}">
      <input type="hidden" data-bind="value: feedback, attr: {'name': 'feedback' + id()}">
      <input type="hidden" data-bind="value: points, attr: {'name': 'points' + id()}">
      <!-- /ko -->
      <!-- /ko -->
    </div>
    <div id="freetext-template">
      <!-- ko if: optional() == false -->
      <span class="mandatory">*</span>
      <!-- /ko -->
      <label class="questiontitle" data-bind="attr: {for: &quot;answer&quot; + id(), id: &quot;questiontitle&quot; + id()}">
        <span class="screen-reader-only">Question</span>
        <span data-bind="html: title"></span>
        <span class="screen-reader-only" data-bind="if: help">Additional help available</span>
      </label>
      <span class="questionhelp" data-bind="html: niceHelp, attr:{id: 'questionhelp' + id()}"></span>
      <!-- ko if: minCharacters() != 0 && maxCharacters() != 0 -->
      <div class="limits" data-bind="html: getMinMaxCharacters(minCharacters(), maxCharacters()), attr: {id: 'questioninfo' + id()}"></div>
      <!-- /ko -->
      <!-- ko if: minCharacters() != 0 && maxCharacters() == 0 -->
      <div class="limits" data-bind="html: getMinCharacters(minCharacters()), attr: {id: 'questioninfo' + id()}"></div>
      <!-- /ko -->
      <!-- ko if: minCharacters() == 0 && maxCharacters() != 0 -->
      <div class="limits" data-bind="html: getMaxCharacters(maxCharacters()), attr: {id: 'questioninfo' + id()}"></div>
      <!-- /ko -->
      <!-- ko if: type == "RegExQuestion" -->
      <input type="hidden" data-bind="value: regex, attr: {'name': 'regex' + id()}">
      <!-- /ko -->
      <!-- ko if: foreditor -->
      <!-- ko if: type == "RegExQuestion" -->
      <input type="hidden" data-bind="value: 'regex', attr: {'name': 'type' + id()}">
      <!-- /ko -->
      <!-- ko ifnot: type == "RegExQuestion" -->
      <input type="hidden" data-bind="value: 'freetext', attr: {'name': 'type' + id()}">
      <!-- /ko -->
      <input type="hidden" data-bind="value: uniqueId(), attr: {'name': 'uid' + id()}">
      <input type="hidden" data-bind="value: optional, attr: {'name': 'optional' + id()}">
      <input type="hidden" data-bind="value: shortname, attr: {'name': 'shortname' + id()}">
      <input type="hidden" data-bind="value: useAndLogic, attr: {'name': 'useAndLogic' + id()}">
      <input type="hidden" data-bind="value: readonly, attr: {'name': 'readonly' + id()}">
      <input type="hidden" data-bind="value: isAttribute, attr: {'name': 'attribute' + id()}">
      <input type="hidden" data-bind="value: isDelphiQuestion, attr: {'name': 'delphiquestion' + id()}">
      <input type="hidden" data-bind="value: showExplanationBox, attr: {'name': 'explanationbox' + id()}">
      <input type="hidden" data-bind="value: delphiChartType, attr: {'name': 'delphicharttype' + id()}">
      <input type="hidden" data-bind="value: attributeName, attr: {'name': 'nameattribute' + id()}">
      <input type="hidden" data-bind="value: numRows, attr: {'name': 'rows' + id()}">
      <input type="hidden" data-bind="value: minCharacters, attr: {'name': 'min' + id()}">
      <input type="hidden" data-bind="value: maxCharacters, attr: {'name': 'max' + id()}">
      <input type="hidden" data-bind="value: isPassword, attr: {'name': 'password' + id()}">
      <input type="hidden" data-bind="value: isUnique, attr: {'name': 'unique' + id()}">
      <input type="hidden" data-bind="value: isComparable, attr: {'name': 'comparable' + id()}">
      <textarea style="display: none" data-bind="text: help, attr: {'name': 'help' + id()}"></textarea>
      <textarea style="display: none" data-bind="text: originalTitle, attr: {'name': 'text' + id()}"></textarea>
      <input type="hidden" data-bind="value: scoring, attr: {'name': 'scoring' + id()}">
      <input type="hidden" data-bind="value: points, attr: {'name': 'points' + id()}">
      <!--  ko foreach: scoringItems() -->
      <input type="hidden" data-bind="value: id, attr: {'name': 'scoringitem' + $parent.id()}">
      <input type="hidden" data-bind="value: type, attr: {'name': 'type' + id()}">
      <input type="hidden" data-bind="value: correct, attr: {'name': 'correct' + id()}">
      <input type="hidden" data-bind="value: value, attr: {'name': 'value' + id()}">
      <input type="hidden" data-bind="value: feedback, attr: {'name': 'feedback' + id()}">
      <input type="hidden" data-bind="value: points, attr: {'name': 'points' + id()}">
      <!-- /ko -->
      <!-- /ko -->
      <!-- ko if: maxCharacters() > 0 -->
      <textarea class="data"
        data-bind="enable: !readonly(), value:getValueByQuestion(uniqueId()), attr: {'id': 'answer' + id(), 'data-id':id(), 'data-shortname': shortname(), 'name' : 'answer' + id(), 'class':css() + ' expand', 'maxlength':maxCharacters(), 'data-rows':numRows(), 'rows':numRows(), 'aria-labelledby':'questiontitle' + id(), 'aria-describedby':'questioninfo' + id() + ' questionhelp' + id(), 'aria-required':!optional()}"
        onkeyup="countChar(this);" oninput="propagateChange(this);" onblur="validateInput($(this).parent(),true)"></textarea>
      <!-- ko if: !foreditor -->
      <div class="charactercounterdiv limits" style="max-width: 645px; text-align: right; margin-left: 20px;" aria-live="polite" aria-atomic="true">
        <span class="glyphicon glyphicon-alert" style="display: none; margin-right: 5px;" data-toggle="tooltip" title="" aria-label="You have less than 5 characters left." data-original-title="You have less than 5 characters left."></span>
        <span class="charactersused">
          <span data-bind="html: getCharacterCountInfo(maxCharacters()), attr: {id: 'countinfo' + id()}"></span>
        </span>
        <span class="characterlimitreached" data-toggle="tooltip" aria-label="Character limit reached." data-original-title="" title="">Character limit reached.</span>
      </div>
      <!-- /ko -->
      <!-- /ko -->
      <!-- ko if: maxCharacters() == 0 -->
      <textarea
        data-bind="enable: !readonly(), value:getValueByQuestion(uniqueId()), attr: {'id': 'answer' + id(), 'data-id':id(), 'data-shortname': shortname(), 'name' : 'answer' + id(), 'class':css() + ' expand', 'data-rows':numRows(), 'rows':numRows(), 'aria-labelledby':'questiontitle' + id(), 'aria-describedby':'questioninfo' + id() + ' questionhelp' + id(), 'aria-required':!optional()}"
        onkeyup="countChar(this);" oninput="propagateChange(this);" onblur="validateInput($(this).parent(),true)"></textarea>
      <!-- /ko -->
      <!-- ko if: isComparable() -->
      <br><span style="margin-left: 20px">Please repeat</span>:<br>
      <textarea data-bind="enable: !readonly(), attr: {'data-id':id() + '2', 'class': 'comparable-second ' + css() + ' expand', 'data-rows':numRows, 'rows':numRows(), 'name' : 'secondanswer' + id()}"
        onblur="validateInputForSecondAnswer($(this))"></textarea>
      <!-- /ko -->
    </div>
    <div id="confirmation-template">
      <!-- ko if: optional() == false -->
      <span class="mandatory">*</span>
      <!-- /ko -->
      <span class="questionhelp" data-bind="html: niceHelp, attr:{id: 'questionhelp' + id()}"></span>
      <label class="questiontitle confirmationelement" data-bind="attr: {for: &quot;answer&quot; + id(), id: &quot;questiontitle&quot; + id()}">
        <span class="screen-reader-only">Question</span>
        <span data-bind="html: title"></span>
      </label>
      <!-- ko if: usetext -->
      <a href="javascript:;" class="confirmationlabel" style="margin-left: 40px; cursor: pointer;" onclick="$(this).parent().find('.confirmation-dialog').modal('show')" data-bind="html:confirmationlabel"></a>
      <div class="modal confirmation-dialog">
        <div class="modal-dialog modal-sm runnerdialog">
          <div class="modal-content">
            <div class="modal-header">Confirmation</div>
            <div class="modal-body" data-bind="html: confirmationtext"></div>
            <div class="modal-footer">
              <a style="cursor: pointer" class="btn btn-primary" onclick="$(this).closest('.confirmation-dialog').modal('hide');">Cancel</a>
            </div>
          </div>
        </div>
      </div>
      <!-- /ko -->
      <!-- ko if: useupload -->
      <div class="files" style="margin-left: 40px; margin-top: 10px;" data-bind="foreach: files">
        <!-- ko if: $parent.foreditor -->
        <input type="hidden" data-bind="value: uid(), attr: {'name': 'files' + $parent.id()}">
        <!-- /ko -->
        <a class="visiblelink" target="_blank" data-bind="html: name, attr: {'href':'/eusurvey/files/4ac3bc30-bb88-4101-bbbc-abdb0eb15988/' + uid()}"></a> <br>
      </div>
      <!-- /ko -->
      <!-- ko if: foreditor -->
      <input type="hidden" data-bind="value: 'confirmation', attr: {'name': 'type' + id()}">
      <input type="hidden" data-bind="value: uniqueId(), attr: {'name': 'uid' + id()}">
      <input type="hidden" data-bind="value: optional, attr: {'name': 'optional' + id()}">
      <input type="hidden" data-bind="value: shortname, attr: {'name': 'shortname' + id()}">
      <input type="hidden" data-bind="value: useAndLogic, attr: {'name': 'useAndLogic' + id()}">
      <input type="hidden" data-bind="value: usetext, attr: {'name': 'usetext' + id()}">
      <input type="hidden" data-bind="value: useupload, attr: {'name': 'useupload' + id()}">
      <textarea style="display: none" data-bind="text: originalTitle, attr: {'name': 'text' + id()}"></textarea>
      <textarea style="display: none" data-bind="text: help, attr: {'name': 'help' + id()}"></textarea>
      <textarea style="display: none" data-bind="text: confirmationtext, attr: {'name': 'confirmationtext' + id()}"></textarea>
      <textarea style="display: none" data-bind="text: confirmationlabel, attr: {'name': 'confirmationlabel' + id()}"></textarea>
      <!-- /ko -->
    </div>
    <div id="rating-template">
      <label class="questiontitle" data-bind="attr: {for: &quot;answer&quot; + id(), id: &quot;questiontitle&quot; + id()}">
        <span class="screen-reader-only">Question</span>
        <span data-bind="html: title"></span>
        <span class="screen-reader-only" data-bind="if: help">Additional help available</span>
      </label>
      <span class="questionhelp" data-bind="html: niceHelp, attr:{id: 'questionhelp' + id()}"></span>
      <!-- ko if: foreditor -->
      <input type="hidden" data-bind="value: 'rating', attr: {'name': 'type' + id()}">
      <input type="hidden" data-bind="value: uniqueId(), attr: {'name': 'uid' + id()}">
      <input type="hidden" data-bind="value: optional, attr: {'name': 'optional' + id()}">
      <input type="hidden" data-bind="value: shortname, attr: {'name': 'shortname' + id()}">
      <input type="hidden" data-bind="value: useAndLogic, attr: {'name': 'useAndLogic' + id()}">
      <input type="hidden" data-bind="value: numIcons, attr: {'name': 'numIcons' + id()}">
      <input type="hidden" data-bind="value: isDelphiQuestion, attr: {'name': 'delphiquestion' + id()}">
      <input type="hidden" data-bind="value: showExplanationBox, attr: {'name': 'explanationbox' + id()}">
      <input type="hidden" data-bind="value: delphiChartType, attr: {'name': 'delphicharttype' + id()}">
      <input type="hidden" data-bind="value: iconType, attr: {'name': 'iconType' + id()}">
      <textarea style="display: none" data-bind="text: originalTitle, attr: {'name': 'text' + id()}"></textarea>
      <textarea style="display: none" data-bind="text: help, attr: {'name': 'help' + id()}"></textarea>
      <input type="hidden" data-bind="value: editorRowsLocked(), attr: {'name': 'editorRowsLocked' + id()}">
      <div class="hiddenratingquestions hideme">
        <!-- ko foreach: childElements() -->
        <div data-bind="attr: {'pos': $index, 'data-id': id}">
          <input type="hidden" data-bind="value: uniqueId(), attr: {'name': 'questionuid' + $parent.id(), 'data-id' : id()}">
          <input type="hidden" data-bind="value: shortname, attr: {'name': 'questionshortname' + $parent.id(), 'data-id' : id()}">
          <input type="hidden" data-bind="value: optional, attr: {'name': 'questionoptional' + $parent.id(), 'data-id' : id()}">
          <textarea style="display: none" data-bind="text: originalTitle, attr: {'name': 'question' + $parent.id(), 'data-id' : id()}"></textarea>
        </div>
        <!-- /ko -->
      </div>
      <!-- /ko -->
      <table class="ratingtable" role="list" data-bind="attr: {'aria-labelledby':'questiontitle' + id(), 'aria-describedby':'questioninfo' + id() + ' questionhelp' + id()}">
        <tbody data-bind="foreach: childElements()">
          <tr class="ratingquestion" data-bind="attr: {'data-id': id, 'data-uid': uniqueId}">
            <td>
              <!-- ko if: optional() == false -->
              <span class="mandatory">*</span>
              <!-- /ko -->
              <div data-bind="html: title, attr:{id: 'answerlabel' + id()}"></div>
              <!-- ko if: $parents[0].ismobile || $parents[0].istablet -->
              <input data-bind="value:getValueByQuestion(uniqueId()), attr: {'id': 'input' + id(), 'data-id':id(), 'name' : 'answer' + id(), 'class' : 'rating ' + css()}" data-type="rating" type="hidden">
              <div data-bind="foreach: new Array($parent.numIcons())">
                <a class="ratingitem" role="listitem" href="javascript:;" tabindex="0" onclick="ratingClick(this)" data-bind="attr: {'data-icons' : $parents[1].numIcons(), 'data-shortname': $parents[1].shortname()}">
									<!-- ko if: $parents[1].iconType() == 0 -->
								    <img src="/eusurvey/resources/images/star_grey.png" data-bind="title: $index()+1, attr: {'alt': $index()+1 + ' / ' + $parents[1].numIcons(), 'aria-label': $parent.title() + ' ' + ($index()+1) + labelOf + $parents[1].numIcons()}">
								    <!-- /ko -->
								    <!-- ko if: $parents[1].iconType() == 1 -->
								    <img src="/eusurvey/resources/images/nav_plain_grey.png" data-bind="title: $index()+1, attr: {'alt': $index()+1 + ' / ' + $parents[1].numIcons(), 'aria-label': $parent.title() + ' ' + ($index()+1) + labelOf + $parents[1].numIcons()}">
								    <!-- /ko -->
								    <!-- ko if: $parents[1].iconType() == 2 -->
								    <img src="/eusurvey/resources/images/heart_grey.png" data-bind="title: $index()+1, attr: {'alt': $index()+1 + ' / ' + $parents[1].numIcons(), 'aria-label': $parent.title() + ' ' + ($index()+1) + labelOf + $parents[1].numIcons()}">
								    <!-- /ko -->
							    </a>
              </div>
              <!-- /ko -->
            </td>
            <!-- ko if: !$parents[0].ismobile && !$parents[0].istablet -->
            <td>
              <input data-bind="value:getValueByQuestion(uniqueId()), attr: {'id': 'input' + id(), 'data-id':id(), 'name' : 'answer' + id(), 'class' : 'rating ' + css()}" data-type="rating" type="hidden">
              <div data-bind="foreach: new Array($parent.numIcons())">
                <a class="ratingitem" role="listitem" href="javascript:;" tabindex="0" onclick="ratingClick(this)" data-bind="attr: {'data-icons' : $parents[1].numIcons(), 'data-shortname': $parents[1].shortname()}">
								<!-- ko if: $parents[1].iconType() == 0 -->
							    <img src="/eusurvey/resources/images/star_grey.png" data-bind="title: $index()+1, attr: {'alt': $index()+1 + ' / ' + $parents[1].numIcons(), 'aria-label': $parent.title() + ' ' + ($index()+1) + labelOf + $parents[1].numIcons()}">
							    <!-- /ko -->
							    <!-- ko if: $parents[1].iconType() == 1 -->
							    <img src="/eusurvey/resources/images/nav_plain_grey.png" data-bind="title: $index()+1, attr: {'alt': $index()+1 + ' / ' + $parents[1].numIcons(), 'aria-label': $parent.title() + ' ' + ($index()+1) + labelOf + $parents[1].numIcons()}">
							    <!-- /ko -->
							    <!-- ko if: $parents[1].iconType() == 2 -->
							    <img src="/eusurvey/resources/images/heart_grey.png" data-bind="title: $index()+1, attr: {'alt': $index()+1 + ' / ' + $parents[1].numIcons(), 'aria-label': $parent.title() + ' ' + ($index()+1) + labelOf + $parents[1].numIcons()}">
							    <!-- /ko -->
						    </a>
              </div>
            </td>
            <!-- /ko -->
          </tr>
        </tbody>
      </table>
    </div>
    <div id="number-template">
      <!-- ko if: optional() == false -->
      <span class="mandatory">*</span>
      <!-- /ko -->
      <label class="questiontitle" data-bind="attr: {for: &quot;answer&quot; + id(), id: &quot;questiontitle&quot; + id()}">
        <span class="screen-reader-only">Question</span>
        <span data-bind="html: title"></span>
        <span class="screen-reader-only" data-bind="if: help">Additional help available</span>
      </label>
      <span class="questionhelp" data-bind="html: niceHelp, attr:{id: 'questionhelp' + id()}"></span>
      <!-- ko if: display() == 'Slider' -->
      <div tabindex="0" class="focussable" role="group" data-bind="hidden: isAnswered, attr: {'aria-labelledby': 'questiontitle' + id(), 'aria-describedby' : 'questionhelp' + id()}">
        <div class="limits" data-bind="hidden: isAnswered, attr: {id: 'questioninfo' + id()}">
          <!-- ko ifnot: foreditor --> Move the slider or <a href="javascript:;" data-bind="click: markAsAnswered">accept the initial position</a>.<!-- /ko -->
          <!-- ko if: foreditor --> Move the slider or <a href="javascript:;">accept the initial position</a>.<!-- /ko -->
        </div>
      </div>
      <!-- /ko -->
      <!-- ko if: display() != 'Slider' -->
      <!-- ko if: min() != null && min() != 0 && max() != null && max() != 0 -->
      <div class="limits" data-bind="html: getMinMax(minString(), maxString()), attr: {id: 'questioninfo' + id()}"></div>
      <!-- /ko -->
      <!-- ko if: min() != 0 && min() != null && (max() == 0 || max() == null) -->
      <div class="limits" data-bind="html: getMin(minString()), attr: {id: 'questioninfo' + id()}"></div>
      <!-- /ko -->
      <!-- ko if: (min() == 0 || min() == null) && max() != null && max() != 0 -->
      <div class="limits" data-bind="html: getMax(maxString()), attr: {id: 'questioninfo' + id()}"></div>
      <!-- /ko -->
      <!-- /ko -->
      <!-- ko if: display() != 'Slider' -->
      <input
        data-bind="enable: !readonly(), value:getValueByQuestion(uniqueId()), attr: {'id': 'answer' + id(), 'data-id':id(), 'data-shortname': shortname(), 'name' : 'answer' + id(), 'class':css(), 'aria-labelledby':'questiontitle' + id(), 'aria-describedby':'questioninfo' + id() + ' questionhelp' + id()}"
        oninput="propagateChange(this);" onblur="validateInput($(this).parent())" type="text"><span class="unit-text" data-bind="html: unit"></span>
      <!-- /ko -->
      <!-- ko if: display() == 'Slider' -->
      <div class="question-reset-answer-message" data-bind="hidden: !isAnswered()">
        <a href="javascript:;" data-bind="click: resetToInitialPosition, attr: {'aria-describedby' : 'questiontitle' + id()}">Reset to initial position</a>
      </div>
      <div data-bind="attr: {'class' : maxDistance() > -1 ? 'slider-div median' : 'slider-div'}">
        <div style="float: left; margin-left: -20px; padding-bottom: 20px; max-width: 45%; text-align: center;" data-bind="html: minLabel()"></div>
        <div style="float: right; padding-bottom: 20px;  max-width: 45%; text-align: center;" data-bind="html: maxLabel()"></div>
        <div style="clear: both"></div>
        <div class="slider-widget-box" role="group" data-bind="attr: {'aria-labelledby':'questiontitle' + id(), 'aria-describedby':'questioninfo' + id() + ' questionhelp' + id()}">
          <a href="javascript:;" data-bind="click: decrease"><svg aria-label="Decrease slider value by one step" xmlns="http://www.w3.org/2000/svg" width="13" height="13" fill="currentColor" class="bi bi-chevron-left" viewBox="0 0 16 16">
				  <path stroke="#337ab7" stroke-width="3" fill-rule="evenodd" d="M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z"></path></svg></a>
          <input type="text" onchange="propagateChange(this);"
            data-bind="enable: !readonly(), value:getValueByQuestion(uniqueId()), attr: {'class': css() + ' sliderbox', 'id': 'answer' + id(), 'data-id':id(), 'data-shortname': shortname(), 'name' : 'answer' + id(), 'data-slider-min' : min(), 'data-slider-max' : max(), 'precision' : decimalPlaces(), 'data-slider-step' : step(),'data-slider-ticks' : ticks(), 'data-slider-value' : initialValue(), 'data-is-answered': isAnswered() ? 'true' : 'false' }">
          <a href="javascript:;" data-bind="click: increase"><svg aria-label="Increase slider value by one step" xmlns="http://www.w3.org/2000/svg" width="13" height="13" fill="currentColor" class="bi bi-chevron-right" viewBox="0 0 16 16">
  					<path stroke="#337ab7" stroke-width="3" fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z"></path></svg></a>
        </div>
      </div>
      <!-- /ko -->
      <!-- ko if: foreditor -->
      <input type="hidden" data-bind="value: 'number', attr: {'name': 'type' + id()}">
      <input type="hidden" data-bind="value: uniqueId(), attr: {'name': 'uid' + id()}">
      <input type="hidden" data-bind="value: optional, attr: {'name': 'optional' + id()}">
      <input type="hidden" data-bind="value: shortname, attr: {'name': 'shortname' + id()}">
      <input type="hidden" data-bind="value: useAndLogic, attr: {'name': 'useAndLogic' + id()}">
      <input type="hidden" data-bind="value: decimalPlaces, attr: {'name': 'decimalplaces' + id()}">
      <input type="hidden" data-bind="value: unit, attr: {'name': 'unit' + id()}">
      <input type="hidden" data-bind="value: min, attr: {'name': 'min' + id()}">
      <input type="hidden" data-bind="value: max, attr: {'name': 'max' + id()}">
      <input type="hidden" data-bind="value: readonly, attr: {'name': 'readonly' + id()}">
      <input type="hidden" data-bind="value: isAttribute, attr: {'name': 'attribute' + id()}">
      <input type="hidden" data-bind="value: isDelphiQuestion, attr: {'name': 'delphiquestion' + id()}">
      <input type="hidden" data-bind="value: delphiChartType, attr: {'name': 'delphicharttype' + id()}">
      <input type="hidden" data-bind="value: showExplanationBox, attr: {'name': 'explanationbox' + id()}">
      <input type="hidden" data-bind="value: attributeName, attr: {'name': 'nameattribute' + id()}">
      <input type="hidden" data-bind="value: isUnique, attr: {'name': 'unique' + id()}">
      <textarea style="display: none" data-bind="text: originalTitle, attr: {'name': 'text' + id()}"></textarea>
      <textarea style="display: none" data-bind="text: help, attr: {'name': 'help' + id()}"></textarea>
      <input type="hidden" data-bind="value: scoring, attr: {'name': 'scoring' + id()}">
      <input type="hidden" data-bind="value: points, attr: {'name': 'points' + id()}">
      <!--  ko foreach: scoringItems() -->
      <input type="hidden" data-bind="value: id, attr: {'name': 'scoringitem' + $parent.id()}">
      <input type="hidden" data-bind="value: type, attr: {'name': 'type' + id()}">
      <input type="hidden" data-bind="value: correct, attr: {'name': 'correct' + id()}">
      <input type="hidden" data-bind="value: value, attr: {'name': 'value' + id()}">
      <input type="hidden" data-bind="value: value2, attr: {'name': 'value2' + id()}">
      <input type="hidden" data-bind="value: feedback, attr: {'name': 'feedback' + id()}">
      <input type="hidden" data-bind="value: min, attr: {'name': 'min' + id()}">
      <input type="hidden" data-bind="value: max, attr: {'name': 'max' + id()}">
      <input type="hidden" data-bind="value: points, attr: {'name': 'points' + id()}">
      <!-- /ko -->
      <input type="hidden" data-bind="value: minLabel, attr: {'name': 'minLabel' + id()}">
      <input type="hidden" data-bind="value: maxLabel, attr: {'name': 'maxLabel' + id()}">
      <input type="hidden" data-bind="value: display, attr: {'name': 'display' + id()}">
      <input type="hidden" data-bind="value: initialSliderPosition, attr: {'name': 'initialSliderPosition' + id()}">
      <input type="hidden" data-bind="value: displayGraduationScale, attr: {'name': 'displayGraduationScale' + id()}">
      <input type="hidden" data-bind="value: maxDistance, attr: {'name': 'maxDistance' + id()}">
      <!-- /ko -->
    </div>
    <div id="email-template">
      <!-- ko if: optional() == false -->
      <span class="mandatory">*</span>
      <!-- /ko -->
      <label class="questiontitle" data-bind="attr: {for: &quot;answer&quot; + id(), id: &quot;questiontitle&quot; + id()}">
        <span class="screen-reader-only">Question</span>
        <span data-bind="html: title"></span>
        <span class="screen-reader-only" data-bind="if: help">Additional help available</span>
      </label>
      <span class="questionhelp" data-bind="html: niceHelp, attr:{id: 'questionhelp' + id()}"></span>
      <div class="input-group" style="margin-left: 20px;">
        <div class="input-group-addon" style="margin-bottom: 5px">@</div>
        <input
          data-bind="enable: !readonly(), value:getValueByQuestion(uniqueId()), attr: {'id': 'answer' + id(), 'data-id':id(), 'data-shortname': shortname(), 'name' : 'answer' + id(), 'class':css(), 'aria-labelledby':'questiontitle' + id(), 'aria-describedby':'questionhelp' + id()}"
          onblur="validateInput($(this).parent().parent())" onkeyup="propagateChange(this);" onchange="validateInput($(this).parent());" style="width: 180px; margin-left: 0px; margin-bottom: 0px !important;" type="email" maxlength="255">
      </div>
      <!-- ko if: foreditor -->
      <input type="hidden" data-bind="value: 'email', attr: {'name': 'type' + id()}">
      <input type="hidden" data-bind="value: uniqueId(), attr: {'name': 'uid' + id()}">
      <input type="hidden" data-bind="value: optional, attr: {'name': 'optional' + id()}">
      <input type="hidden" data-bind="value: shortname, attr: {'name': 'shortname' + id()}">
      <input type="hidden" data-bind="value: useAndLogic, attr: {'name': 'useAndLogic' + id()}">
      <input type="hidden" data-bind="value: readonly, attr: {'name': 'readonly' + id()}">
      <input type="hidden" data-bind="value: isAttribute, attr: {'name': 'attribute' + id()}">
      <input type="hidden" data-bind="value: isDelphiQuestion, attr: {'name': 'delphiquestion' + id()}">
      <input type="hidden" data-bind="value: showExplanationBox, attr: {'name': 'explanationbox' + id()}">
      <input type="hidden" data-bind="value: attributeName, attr: {'name': 'nameattribute' + id()}">
      <textarea style="display: none" data-bind="text: originalTitle, attr: {'name': 'text' + id()}"></textarea>
      <textarea style="display: none" data-bind="text: help, attr: {'name': 'help' + id()}"></textarea>
      <!-- /ko -->
    </div>
    <div id="date-template">
      <!-- ko if: optional() == false -->
      <span class="mandatory">*</span>
      <!-- /ko -->
      <label class="questiontitle" data-bind="attr: {for: &quot;answer&quot; + id(), id: &quot;questiontitle&quot; + id()}">
        <span class="screen-reader-only">Question</span>
        <span data-bind="html: title"></span>
        <span class="screen-reader-only" data-bind="if: help">Additional help available</span>
      </label>
      <span class="questionhelp" data-bind="html: niceHelp, attr:{id: 'questionhelp' + id()}"></span>
      <!-- ko if: min() != null && max() != null -->
      <div class="limits" data-bind="html: getMinMaxDate(minString(), maxString()), attr: {id: 'questioninfo' + id()}"></div>
      <!-- /ko -->
      <!-- ko if: min() != null && max() == null -->
      <div class="limits" data-bind="html: getMinDate(minString()), attr: {id: 'questioninfo' + id()}"></div>
      <!-- /ko -->
      <!-- ko if: min() == null && max() != null -->
      <div class="limits" data-bind="html: getMaxDate(maxString()), attr: {id: 'questioninfo' + id()}"></div>
      <!-- /ko -->
      <div class="input-group">
        <!-- ko if: !foreditor && !readonly() -->
        <div class="input-group-addon" onclick="$(this).parent().find(&quot;.datepicker&quot;).datepicker( &quot;show&quot; );"><span class="glyphicon glyphicon-calendar" aria-hidden="true"></span></div>
        <!-- /ko -->
        <!-- ko if: foreditor || readonly() -->
        <div class="input-group-addon"><span class="glyphicon glyphicon-calendar" aria-hidden="true"></span></div>
        <!-- /ko -->
        <input
          data-bind="enable: !readonly(), value:getValueByQuestion(uniqueId()), attr: {'id': 'answer' + id(), 'data-id':id(), 'data-shortname': shortname(), 'name' : 'answer' + id(), 'class': 'datepicker ' + css(), 'aria-labelledby':'questiontitle' + id(), 'aria-describedby':'questioninfo' + id() + ' questionhelp' + id()}"
          onblur="if($(this).val().length > 0 &amp;&amp; validateInput($(this).parent().parent())) { propagateChange(this); }" oninput="propagateChange(this);" type="text" placeholder="DD/MM/YYYY"
          style="display: inline; margin-left:0px; margin-bottom:0px !important;">
      </div>
      <!-- ko if: foreditor -->
      <input type="hidden" data-bind="value: 'date', attr: {'name': 'type' + id()}">
      <input type="hidden" data-bind="value: uniqueId(), attr: {'name': 'uid' + id()}">
      <input type="hidden" data-bind="value: optional, attr: {'name': 'optional' + id()}">
      <input type="hidden" data-bind="value: shortname, attr: {'name': 'shortname' + id()}">
      <input type="hidden" data-bind="value: useAndLogic, attr: {'name': 'useAndLogic' + id()}">
      <input type="hidden" data-bind="value: minString(), attr: {'name': 'min' + id()}">
      <input type="hidden" data-bind="value: maxString(), attr: {'name': 'max' + id()}">
      <input type="hidden" data-bind="value: readonly, attr: {'name': 'readonly' + id()}">
      <input type="hidden" data-bind="value: isAttribute, attr: {'name': 'attribute' + id()}">
      <input type="hidden" data-bind="value: isDelphiQuestion, attr: {'name': 'delphiquestion' + id()}">
      <input type="hidden" data-bind="value: showExplanationBox, attr: {'name': 'explanationbox' + id()}">
      <input type="hidden" data-bind="value: attributeName, attr: {'name': 'nameattribute' + id()}">
      <textarea style="display: none" data-bind="text: originalTitle, attr: {'name': 'text' + id()}"></textarea>
      <textarea style="display: none" data-bind="text: help, attr: {'name': 'help' + id()}"></textarea>
      <input type="hidden" data-bind="value: scoring, attr: {'name': 'scoring' + id()}">
      <input type="hidden" data-bind="value: points, attr: {'name': 'points' + id()}">
      <!--  ko foreach: scoringItems() -->
      <input type="hidden" data-bind="value: id, attr: {'name': 'scoringitem' + $parent.id()}">
      <input type="hidden" data-bind="value: type, attr: {'name': 'type' + id()}">
      <input type="hidden" data-bind="value: correct, attr: {'name': 'correct' + id()}">
      <input type="hidden" data-bind="value: value, attr: {'name': 'value' + id()}">
      <input type="hidden" data-bind="value: value2, attr: {'name': 'value2' + id()}">
      <input type="hidden" data-bind="value: feedback, attr: {'name': 'feedback' + id()}">
      <input type="hidden" data-bind="value: minDate, attr: {'name': 'minDate' + id()}">
      <input type="hidden" data-bind="value: maxDate, attr: {'name': 'maxDate' + id()}">
      <input type="hidden" data-bind="value: points, attr: {'name': 'points' + id()}">
      <!-- /ko -->
      <!-- /ko -->
    </div>
    <div id="time-template">
      <!-- ko if: optional() == false -->
      <span class="mandatory">*</span>
      <!-- /ko -->
      <label class="questiontitle" data-bind="attr: {for: &quot;answer&quot; + id(), id: &quot;questiontitle&quot; + id()}">
        <span class="screen-reader-only">Question</span>
        <span data-bind="html: title"></span>
        <span class="screen-reader-only" data-bind="if: help">Additional help available</span>
      </label>
      <span class="questionhelp" data-bind="html: niceHelp, attr:{id: 'questionhelp' + id()}"></span>
      <!-- ko if: min() != null && max() != null && min() != '' && max() != ''  -->
      <div class="limits" data-bind="html: getMinMaxDate(min(), max()), attr: {id: 'questioninfo' + id()}"></div>
      <!-- /ko -->
      <!-- ko if: min() != null && min() != '' && (max() == null || max() == '') -->
      <div class="limits" data-bind="html: getMinDate(min()), attr: {id: 'questioninfo' + id()}"></div>
      <!-- /ko -->
      <!-- ko if: max() != null && max() != '' && (min() == null || min() == '') -->
      <div class="limits" data-bind="html: getMaxDate(max()), attr: {id: 'questioninfo' + id()}"></div>
      <!-- /ko -->
      <div class="input-group">
        <div class="input-group-addon"><span class="glyphicon glyphicon-time" aria-hidden="true"></span></div>
        <input
          data-bind="enable: !readonly(), value:getValueByQuestion(uniqueId()), attr: {'id': 'answer' + id(), 'data-id':id(), 'data-shortname': shortname(), 'name' : 'answer' + id(), 'class': 'timepicker ' + css(), 'aria-labelledby':'questiontitle' + id(), 'aria-describedby':'questioninfo' + id() + ' questionhelp' + id()}"
          onblur="if(validateInput($(this).parent().parent())) { propagateChange(this); }" oninput="propagateChange(this);" type="text" placeholder="HH:mm:ss" style="display: inline; margin-left:0px; margin-bottom:0px !important;">
      </div>
      <!-- ko if: foreditor -->
      <input type="hidden" data-bind="value: 'time', attr: {'name': 'type' + id()}">
      <input type="hidden" data-bind="value: uniqueId(), attr: {'name': 'uid' + id()}">
      <input type="hidden" data-bind="value: optional, attr: {'name': 'optional' + id()}">
      <input type="hidden" data-bind="value: shortname, attr: {'name': 'shortname' + id()}">
      <input type="hidden" data-bind="value: useAndLogic, attr: {'name': 'useAndLogic' + id()}">
      <input type="hidden" data-bind="value: min(), attr: {'name': 'min' + id()}">
      <input type="hidden" data-bind="value: max(), attr: {'name': 'max' + id()}">
      <input type="hidden" data-bind="value: readonly, attr: {'name': 'readonly' + id()}">
      <input type="hidden" data-bind="value: isAttribute, attr: {'name': 'attribute' + id()}">
      <input type="hidden" data-bind="value: isDelphiQuestion, attr: {'name': 'delphiquestion' + id()}">
      <input type="hidden" data-bind="value: showExplanationBox, attr: {'name': 'explanationbox' + id()}">
      <input type="hidden" data-bind="value: attributeName, attr: {'name': 'nameattribute' + id()}">
      <textarea style="display: none" data-bind="text: originalTitle, attr: {'name': 'text' + id()}"></textarea>
      <textarea style="display: none" data-bind="text: help, attr: {'name': 'help' + id()}"></textarea>
      <!-- /ko -->
    </div>
    <div id="upload-template">
      <!-- ko if: optional() == false -->
      <span class="mandatory">*</span>
      <!-- /ko -->
      <label class="questiontitle" data-bind="attr: {for: &quot;answer&quot; + id(), id: &quot;questiontitle&quot; + id()}">
        <span class="screen-reader-only">Question</span>
        <span data-bind="html: title"></span>
        <span class="screen-reader-only" data-bind="if: help">Additional help available</span>
      </label>
      <span class="questionhelp" data-bind="html: niceHelp, attr:{id: 'questionhelp' + id()}"></span>
      <!-- ko if: extensions() != null && extensions().length > 0 -->
      <div class="questionhelp">
        <span class="glyphicon glyphicon-question-sign"></span>&nbsp;<span data-bind="html: getExtensionsHelp(extensions())"></span>
      </div>
      <!-- /ko -->
      <div class="uploadinfo" style="display: none; padding: 10px; color: #777;"> Upload started. This may take a while.</div>
      <input type="hidden" data-bind="attr: {'id': 'answer' + id(), 'name':'answer' + id()}" value="files">
      <div class="uploaded-files" data-bind="foreach: getFileAnswer(uniqueId())">
        <div>
          <a data-toggle="tooltip" title="" data-bind="click: function() {deleteFile($parent.id(),'a745375c-da06-4266-a961-3f855cbbc786',$data,$('#uploadlink' + $parent.id()));return false;}, attr: {'id' : 'uploadlink' + $parent.id(), 'aria-label' : $data}" data-original-title="Remove uploaded file">
					<span style="margin-right: 10px;" class="glyphicon glyphicon-trash"></span>
				</a>
          <span data-bind="html: $data"></span>
        </div>
      </div>
      <div data-bind="attr: {'class': css() + ' file-uploader', 'data-id':id}" style="margin-left: 10px; margin-top: 10px;"></div>
      <!-- ko if: foreditor -->
      <input type="hidden" data-bind="value: 'upload', attr: {'name': 'type' + id()}">
      <input type="hidden" data-bind="value: uniqueId(), attr: {'name': 'uid' + id()}">
      <input type="hidden" data-bind="value: optional, attr: {'name': 'optional' + id()}">
      <input type="hidden" data-bind="value: shortname, attr: {'name': 'shortname' + id()}">
      <input type="hidden" data-bind="value: useAndLogic, attr: {'name': 'useAndLogic' + id()}">
      <input type="hidden" data-bind="value: readonly, attr: {'name': 'readonly' + id()}">
      <textarea style="display: none" data-bind="text: originalTitle, attr: {'name': 'text' + id()}"></textarea>
      <textarea style="display: none" data-bind="text: help, attr: {'name': 'help' + id()}"></textarea>
      <input type="hidden" data-bind="value: extensions, attr: {'name': 'extensions' + id()}">
      <input type="hidden" data-bind="value: maxFileSize, attr: {'name': 'maxFileSize' + id()}">
      <!-- /ko -->
    </div>
    <div id="download-template">
      <label class="questiontitle" data-bind="attr: {for: &quot;answer&quot; + id(), id: &quot;questiontitle&quot; + id()}">
        <span class="screen-reader-only">Question</span>
        <span data-bind="html: title"></span>
        <span class="screen-reader-only" data-bind="if: help">Additional help available</span>
      </label>
      <span class="questionhelp" data-bind="html: niceHelp, attr:{id: 'questionhelp' + id()}"></span>
      <div class="files" role="list" data-bind="foreach: files, attr: {'aria-labelledby':'questiontitle' + id(), 'aria-describedby':'questioninfo' + id() + ' questionhelp' + id()}">
        <!-- ko if: $parent.foreditor -->
        <input type="hidden" data-bind="value: uid(), attr: {'name': 'files' + $parent.id()}">
        <!-- /ko -->
        <a class="visiblelink" target="_blank" data-bind="attr: {'href': '/eusurvey/files/4ac3bc30-bb88-4101-bbbc-abdb0eb15988/' + uid(), 'aria-label' : 'Download file ' + name()}, html: name"></a> <br>
      </div>
      <!-- ko if: foreditor -->
      <!-- ko if: files().length == 0 -->
      <div class="files">
        <i>[Please add a file to your survey for your participants to download]</i>
      </div>
      <!-- /ko -->
      <input type="hidden" data-bind="value: 'download', attr: {'name': 'type' + id()}">
      <input type="hidden" data-bind="value: uniqueId(), attr: {'name': 'uid' + id()}">
      <input type="hidden" data-bind="value: optional, attr: {'name': 'optional' + id()}">
      <input type="hidden" data-bind="value: shortname, attr: {'name': 'shortname' + id()}">
      <input type="hidden" data-bind="value: useAndLogic, attr: {'name': 'useAndLogic' + id()}">
      <textarea style="display: none" data-bind="text: originalTitle, attr: {'name': 'text' + id()}"></textarea>
      <textarea style="display: none" data-bind="text: help, attr: {'name': 'help' + id()}"></textarea>
      <!-- /ko -->
    </div>
    <div id="gallery-template">
      <!-- ko if: optional() == false -->
      <span class="mandatory">*</span>
      <!-- /ko -->
      <label class="questiontitle" data-bind="attr: {for: &quot;answer&quot; + id(), id: &quot;questiontitle&quot; + id()}">
        <span class="screen-reader-only">Question</span>
        <span data-bind="html: title"></span>
        <span class="screen-reader-only" data-bind="if: help">Additional help available</span>
      </label>
      <span class="questionhelp" data-bind="html: niceHelp, attr:{id: 'questionhelp' + id()}"></span>
      <!-- ko if: selection() && limit != null && limit() > 0 -->
      <div class="limits" data-bind="html: getMaxSelections(limit()), attr: {id: 'questioninfo' + id()}"></div>
      <!-- /ko -->
      <div class="gallery-div" style="width: 920px; max-width: 100%; text-align:left;">
        <!-- ko if: files().length == 0 -->
        <table data-bind="attr: {'class':'gallery-table limit' + limit()}">
          <tbody>
            <tr>
              <td>
                <img style="max-width: none;" src="/eusurvey/resources/images/photo_scenery.png" data-width="128" data-original-width="247" width="247px">
              </td>
              <td>
                <img style="max-width: none;" src="/eusurvey/resources/images/photo_scenery.png" data-width="128" data-original-width="247" width="247px">
              </td>
            </tr>
          </tbody>
        </table>
        <!-- /ko -->
        <!-- ko if: files().length > 0 -->
        <table style="width: 100%" data-bind="attr: {'class':'gallery-table limit' + limit(), 'aria-labelledby':'questiontitle' + id(), 'aria-describedby':'questioninfo' + id() + ' questionhelp' + id()}">
          <tbody data-bind="foreach: rows">
            <tr data-bind="foreach: $data">
              <td data-bind="attr: {'data-uid':uid()}" style="vertical-align: top">
                <div class="galleryinfo">
                  <span data-bind="if: $parents[1].selection()">
                    <input
                      data-bind="value: $parentContext.$index() * $parents[1].columns() + $index(), checked: getValueByQuestion($parents[1].uniqueId()).indexOf(($parentContext.$index() * $parents[1].columns() + $index()).toString()) > -1, attr: {'onclick': $parents[1].readonly() ? 'return false;':'propagateChange(this);', 'data-shortname': $parents[1].shortname(), 'class': $parents[1].css() + ' selection', 'name':'answer'+$parents[1].id(), 'aria-labelledby': 'answerlabel' + $parents[1].id() + $index()}"
                      type="checkbox">
                  </span>
                  <!-- ko if: $parents[1].numbering() -->
                  <span data-bind="html: ($parentContext.$index() * $parents[1].columns() + $index()+1) + &quot;.&quot;"></span>
                  <!-- /ko -->
                  <span data-bind="html: name().replace(&quot;%20&quot;,&quot; &quot;), attr: {id: &quot;answerlabel&quot; + $parents[1].id() + $index()}"></span>
                </div>
                <a onclick="showGalleryBrowser($(this).parent())">
								<img class="gallery-image" data-bind="attr: {'alt': desc(), 'src':'/eusurvey/files/4ac3bc30-bb88-4101-bbbc-abdb0eb15988/'+ uid(), 'data-width': width(), 'data-original-width': Math.round((850-20-($parents[1].columns()*30))/$parents[1].columns()), 'width': Math.round((850-20-($parents[1].columns()*30))/$parents[1].columns())+'px', 'longdesc' : longdesc()}" style="max-width: 100%;">	
							</a>
                <div class="comment" data-bind="html: comment"></div>
                <!-- ko if: $parents[1].foreditor -->
                <input type="hidden" data-bind="value: name, attr: {'name': 'name' + ($parentContext.$index() * $parents[1].columns() + $index() + 1) + $parents[1].id()}">
                <input type="hidden" data-bind="value: uid, attr: {'name': 'image' + ($parentContext.$index() * $parents[1].columns() + $index() + 1) + $parents[1].id()}">
                <input type="hidden" data-bind="value: longdesc, attr: {'name': 'longdesc' + ($parentContext.$index() * $parents[1].columns() + $index() + 1) + $parents[1].id()}">
                <input type="hidden" data-bind="value: desc, attr: {'name': 'desc' + ($parentContext.$index() * $parents[1].columns() + $index() + 1) + $parents[1].id()}">
                <textarea style="display: none" data-bind="text: comment, attr: {'name': 'comment' + ($parentContext.$index() * $parents[1].columns() + $index() + 1) + $parents[1].id()}"></textarea>
                <!-- /ko -->
              </td>
            </tr>
          </tbody>
        </table>
        <!-- /ko -->
      </div>
      <!-- ko if: foreditor -->
      <input type="hidden" data-bind="value: 'gallery', attr: {'name': 'type' + id()}">
      <input type="hidden" data-bind="value: uniqueId(), attr: {'name': 'uid' + id()}">
      <input type="hidden" data-bind="value: optional, attr: {'name': 'optional' + id()}">
      <input type="hidden" data-bind="value: shortname, attr: {'name': 'shortname' + id()}">
      <input type="hidden" data-bind="value: useAndLogic, attr: {'name': 'useAndLogic' + id()}">
      <input type="hidden" data-bind="value: readonly, attr: {'name': 'readonly' + id()}">
      <input type="hidden" data-bind="value: columns, attr: {'name': 'columns' + id()}">
      <input type="hidden" data-bind="value: selection, attr: {'name': 'selectable' + id()}">
      <input type="hidden" data-bind="value: numbering, attr: {'name': 'numbering' + id()}">
      <input type="hidden" data-bind="value: limit, attr: {'name': 'limit' + id()}">
      <input type="hidden" data-bind="value: files().length, attr: {'name': 'count' + id()}">
      <textarea style="display: none" data-bind="text: originalTitle, attr: {'name': 'text' + id()}"></textarea>
      <textarea style="display: none" data-bind="text: help, attr: {'name': 'help' + id()}"></textarea>
      <!-- /ko -->
      <!-- ko ifnot: foreditor -->
      <div class="modal" data-backdrop="static">
        <div data-bind="attr: {'data-mobile': '' + ismobile, 'class': 'modal-dialog runnerdialog ' + (ismobile ? 'modal-sm' : (istablet ? 'modal-md' : 'modal-lg'))}">
          <div class="modal-content">
            <div class="modal-header">Browse Gallery</div>
            <div data-bind="foreach: files()" class="modal-body">
              <div class="gallery-image hideme" style="text-align: center" data-bind="attr: {'data-uid': uid()}">
                <div class="galleryinfo">
                  <span data-bind="if: $parent.selection()">
                    <input onclick="synchronizeGallerySelection(this)" type="checkbox">
                  </span>
                  <!-- ko if: $parent.numbering() -->
                  <span data-bind="html: ($index()+1) + &quot;.&quot;"></span>
                  <!-- /ko -->
                  <span data-bind="html: name().replace(&quot;%20&quot;,&quot; &quot;)"></span>
                </div>
                <img style="width: 95%;" data-bind="attr: {'alt': desc(), 'src':'/eusurvey/files/4ac3bc30-bb88-4101-bbbc-abdb0eb15988/'+uid(), 'longdesc' : longdesc()}">
                <div class="gallery-image-comment" style="text-align: center; padding: 15px;" data-bind="html: comment()"></div>
              </div>
            </div>
            <div class="modal-footer">
              <a class="btn btn-default" onclick="openPreviousImage($(this).closest('.modal'))"><span class="glyphicon glyphicon-chevron-left"></span></a>
              <a class="btn btn-primary" onclick="$(this).closest('.modal').modal('hide');">Close</a>
              <a class="btn btn-default" onclick="openNextImage($(this).closest('.modal'))"><span class="glyphicon glyphicon-chevron-right"></span></a>
            </div>
          </div>
        </div>
      </div>
      <!-- /ko -->
    </div>
    <div id="matrix-template">
      <!-- ko if: foreditor -->
      <input type="hidden" data-bind="value: 'matrix', attr: {'name': 'type' + id()}">
      <input type="hidden" data-bind="value: tableType, attr: {'name': 'tabletype' + id()}">
      <input type="hidden" data-bind="value: uniqueId(), attr: {'name': 'uid' + id()}">
      <input type="hidden" data-bind="value: optional, attr: {'name': 'optional' + id()}">
      <input type="hidden" data-bind="value: shortname, attr: {'name': 'shortname' + id()}">
      <input type="hidden" data-bind="value: useAndLogic, attr: {'name': 'useAndLogic' + id()}">
      <input type="hidden" data-bind="value: order, attr: {'name': 'order' + id()}">
      <input type="hidden" data-bind="value: readonly, attr: {'name': 'readonly' + id()}">
      <input type="hidden" data-bind="value: isAttribute, attr: {'name': 'attribute' + id()}">
      <input type="hidden" data-bind="value: isDelphiQuestion, attr: {'name': 'delphiquestion' + id()}">
      <input type="hidden" data-bind="value: showExplanationBox, attr: {'name': 'explanationbox' + id()}">
      <input type="hidden" data-bind="value: delphiChartType, attr: {'name': 'delphicharttype' + id()}">
      <input type="hidden" data-bind="value: attributeName, attr: {'name': 'nameattribute' + id()}">
      <input type="hidden" data-bind="value: isInterdependent, attr: {'name': 'interdependent' + id()}">
      <input type="hidden" data-bind="value: isSingleChoice, attr: {'name': 'single' + id()}">
      <input type="hidden" data-bind="value: minRows, attr: {'name': 'rowsmin' + id()}">
      <input type="hidden" data-bind="value: maxRows, attr: {'name': 'rowsmax' + id()}">
      <input type="hidden" data-bind="value: widths, attr: {'name': 'widths' + id()}">
      <textarea style="display: none" data-bind="text: originalTitle, attr: {'name': 'text' + id()}"></textarea>
      <textarea style="display: none" data-bind="text: help, attr: {'name': 'help' + id()}"></textarea>
      <input type="hidden" data-bind="value: editorColumnsLocked(), attr: {'name': 'editorColumnsLocked' + id()}">
      <input type="hidden" data-bind="value: editorRowsLocked(), attr: {'name': 'editorRowsLocked' + id()}">
      <!-- /ko -->
      <!-- ko if: optional() == false -->
      <span class="mandatory">*</span>
      <!-- /ko -->
      <label class="questiontitle" data-bind="attr: {for: &quot;answer&quot; + id(), id: &quot;questiontitle&quot; + id()}">
        <span class="screen-reader-only">Question</span>
        <span data-bind="html: title"></span>
        <span class="screen-reader-only" data-bind="if: help">Additional help available</span>
      </label>
      <span class="questionhelp" data-bind="html: niceHelp, attr:{id: 'questionhelp' + id()}"></span>
      <!-- ko if: minRows() != 0 && maxRows() != 0 -->
      <div class="limits" data-bind="html: getMinMaxRows(minRows(), maxRows()), attr: {id: 'questioninfo' + id()}"></div>
      <!-- /ko -->
      <!-- ko if: minRows() != 0 && maxRows() == 0 -->
      <div class="limits" data-bind="html: getMinRows(minRows()), attr: {id: 'questioninfo' + id()}"></div>
      <!-- /ko -->
      <!-- ko if: minRows() == 0 && maxRows() != 0 -->
      <div class="limits" data-bind="html: getMaxRows(maxRows()), attr: {id: 'questioninfo' + id()}"></div>
      <!-- /ko -->
      <div style="width: 100%">
        <!-- ko if: foreditor -->
        <div class="hiddenmatrixquestions hideme">
          <!-- ko foreach: questions() -->
          <div data-bind="attr: {'pos': $index, 'data-id': id}">
            <input type="hidden" data-bind="value: 'text', attr: {'name': 'type' + id()}">
            <input type="hidden" data-bind="value: uniqueId(), attr: {'name': 'uid' + id()}">
            <input type="hidden" data-bind="value: optional, attr: {'name': 'optional' + id()}">
            <input type="hidden" data-bind="value: shortname, attr: {'name': 'shortname' + id()}">
            <input type="hidden" data-bind="value: useAndLogic, attr: {'name': 'useAndLogic' + id()}">
            <input type="hidden" data-bind="value: readonly, attr: {'name': 'readonly' + id()}">
            <textarea style="display: none" data-bind="text: originalTitle, attr: {'name': 'text' + id()}"></textarea>
            <!-- ko foreach: $parent.answers() -->
            <input type="hidden" data-bind="attr: {'name': 'dependencies' + $parents[1].id(), 'value': $parents[1].dependentElementsStrings()[$index() + ($parent.originalIndex() * ($parents[1].columns()-1))], 'data-qaid': $parent.id() + '|' + id()}">
            <!-- /ko -->
          </div>
          <!-- /ko -->
        </div>
        <!-- /ko -->
        <div class="table-responsive">
          <table
            data-bind="attr: {'class':'matrixtable ' + css(), 'style': tableType() == 1 ? 'width: 900px' : 'width: auto; max-width: auto', 'aria-labelledby':'questiontitle' + id(), 'aria-describedby':'questioninfo' + id() + ' questionhelp' + id()}">
            <thead>
              <tr>
                <th class="matrix-header firstCell" data-bind="attr: {'data-id': id(), 'style': tableType() != 2 ? '' : 'width: ' + getWidth(widths(), 0)}">
                  <!-- ko if: foreditor -->
                  <textarea style="display: none" data-bind="text: firstCellText, attr: {'name': 'firstCellText' + id()}"></textarea>
                  <!-- /ko -->
                  <span class="matrixheadertitle" data-bind="html: firstCellText"></span>
                </th>
                <!-- ko foreach: answers -->
                <th class="matrix-header" scope="col" data-bind="attr: {'id' : id(), 'data-id': id(), 'style': $parent.tableType() != 2 ? '' : 'width: ' + getWidth($parent.widths(), $index()+1)}">
                  <!-- ko if: $parent.foreditor -->
                  <input type="hidden" data-bind="value: 'text', attr: {'name': 'type' + id()}">
                  <input type="hidden" data-bind="value: uniqueId(), attr: {'name': 'uid' + id()}">
                  <input type="hidden" data-bind="value: optional, attr: {'name': 'optional' + id()}">
                  <input type="hidden" data-bind="value: shortname, attr: {'name': 'shortname' + id()}">
                  <input type="hidden" data-bind="value: readonly, attr: {'name': 'readonly' + id()}">
                  <textarea style="display: none" data-bind="text: title, attr: {'name': 'text' + id()}"></textarea>
                  <!-- /ko -->
                  <span class="matrixheadertitle" data-bind="html: title"></span>
                </th>
                <!-- /ko -->
              </tr>
            </thead>
            <tbody>
              <!-- ko foreach: questionsOrdered() -->
              <tr
                data-bind="attr: {'class': $data.isDependentMatrixQuestion() &amp;&amp; isInvisible($data.uniqueId()) ? 'matrix-question untriggered hideme':'matrix-question', 'data-id': id(), 'data-uid': uniqueId(), 'data-triggers': getTriggersByQuestion(uniqueId()) + ';' + ($parent.foreditor ? '' : getTriggersByQuestion($parent.uniqueId)), 'data-useAndLogic': useAndLogic()}">
                <th class="matrix-header" scope="row" data-bind="attr: {'id' : id(), 'data-id': id}">
                  <!-- ko if: optional() == false -->
                  <span class="mandatory" style="position: absolute; margin-left: -7px; margin-top: 3px;">*</span>
                  <!-- /ko -->
                  <span class="matrixheadertitle" data-bind="html: title"></span>
                </th>
                <!-- ko foreach: $parent.answers -->
                <td class="matrix-cell">
                  <input type="radio"
                    data-bind="enable: !$parents[1].readonly() &amp;&amp; !$parents[1].foreditor, checked: getPAByQuestion2($parent.uniqueId(), uniqueId(), id()), attr: {value: id(), 'data-shortname': $parent.shortname() + '|' + shortname(), onkeyup: 'singleKeyUp(event, this, '+$parents[1].readonly()+')', 'onclick': $parents[1].readonly() ? 'return false;' : 'findSurveyElementAndResetValidationErrors(this); checkSingleClick(this); event.stopImmediatePropagation();propagateChange(this);', 'id': $parent.id().toString() + id().toString(), 'data-id': $parent.id().toString() + id().toString(), 'aria-labelledby': $parent.id().toString() + ' ' + id().toString(), 'class': $parent.css() + ' trigger', 'name': 'answer' + $parent.id(), 'data-dependencies': $parents[1].dependentElementsStrings()[$index() + ($parent.originalIndex() * ($parents[1].columns()-1))], 'data-cellid' : $parent.id() + '|' + id(), type: $parents[1].isSingleChoice() ? 'radio' : 'checkbox', role: $parents[1].isSingleChoice() ? 'radio' : 'checkbox', 'data-dummy': getPAByQuestion2($parent.uniqueId(), uniqueId(), id())}">
                </td>
                <!-- /ko -->
              </tr>
              <!-- /ko -->
            </tbody>
          </table>
        </div>
      </div>
    </div>
    <div id="table-template">
      <!-- ko if: foreditor -->
      <input type="hidden" data-bind="value: 'table', attr: {'name': 'type' + id()}">
      <input type="hidden" data-bind="value: tableType, attr: {'name': 'tabletype' + id()}">
      <input type="hidden" data-bind="value: uniqueId(), attr: {'name': 'uid' + id()}">
      <input type="hidden" data-bind="value: optional, attr: {'name': 'optional' + id()}">
      <input type="hidden" data-bind="value: isDelphiQuestion, attr: {'name': 'delphiquestion' + id()}">
      <input type="hidden" data-bind="value: showExplanationBox, attr: {'name': 'explanationbox' + id()}">
      <input type="hidden" data-bind="value: shortname, attr: {'name': 'shortname' + id()}">
      <input type="hidden" data-bind="value: useAndLogic, attr: {'name': 'useAndLogic' + id()}">
      <input type="hidden" data-bind="value: readonly, attr: {'name': 'readonly' + id()}">
      <input type="hidden" data-bind="value: widths, attr: {'name': 'widths' + id()}">
      <textarea style="display: none" data-bind="text: originalTitle, attr: {'name': 'text' + id()}"></textarea>
      <textarea style="display: none" data-bind="text: help, attr: {'name': 'help' + id()}"></textarea>
      <input type="hidden" data-bind="value: editorColumnsLocked(), attr: {'name': 'editorColumnsLocked' + id()}">
      <input type="hidden" data-bind="value: editorRowsLocked(), attr: {'name': 'editorRowsLocked' + id()}">
      <!-- /ko -->
      <!-- ko if: optional() == false -->
      <span class="mandatory">*</span>
      <!-- /ko -->
      <label class="questiontitle" data-bind="attr: {for: &quot;answer&quot; + id(), id: &quot;questiontitle&quot; + id()}">
        <span class="screen-reader-only">Question</span>
        <span data-bind="html: title"></span>
        <span class="screen-reader-only" data-bind="if: help">Additional help available</span>
      </label>
      <span class="questionhelp" data-bind="html: niceHelp, attr:{id: 'questionhelp' + id()}"></span>
      <div class="table-responsive">
        <table
          data-bind="attr: {'data-widths':widths(), 'id':id(), 'data-readonly': readonly, 'style': tableType() == 1 ? 'width: 900px' : 'width: auto; max-width: auto', 'aria-labelledby':'questiontitle' + id(), 'aria-describedby':'questioninfo' + id() + ' questionhelp' + id()}"
          class="tabletable">
          <tbody>
            <tr style="background-color: #eee;">
              <th class="table-header firstCell" data-bind="attr: {'data-id': id(), 'style': tableType() != 2 ? '' : 'width: ' + getWidth(widths(), 0)}">
                <!-- ko if: foreditor -->
                <textarea style="display: none" data-bind="text: firstCellText, attr: {'name': 'firstCellText' + id()}"></textarea>
                <!-- /ko -->
                <span class="matrixheadertitle" data-bind="html: firstCellText"></span>
              </th>
              <!-- ko foreach: answers -->
              <th class="table-header" scope="col" data-bind="attr: {'id' : id(), 'data-id' : id(), 'data-shortname' : shortname, 'data-uid' : uniqueId(), 'style': $parent.tableType() != 2 ? '' : 'width: ' + getWidth($parent.widths(), $index()+1)}">
                <span data-bind="html: title"></span>
                <!-- ko if: $parent.foreditor -->
                <textarea style="display: none" data-bind="text: originalTitle"></textarea>
                <!-- /ko -->
              </th>
              <!-- /ko -->
            </tr>
            <!-- ko foreach: questions -->
            <tr data-bind="attr: {'data-id': id()}">
              <th scope="row" style="padding-left: 10px" class="table-header" data-bind="attr: {'id' : id(), 'data-id' : id(),'data-shortname' : shortname, 'data-uid' : uniqueId(), 'data-optional' : optional().toString()}">
                <!-- ko if: optional() == false -->
                <span class="mandatory" style="position: absolute; margin-left: -7px; margin-top: 3px;">*</span>
                <!-- /ko -->
                <span data-bind="html: title"></span>
                <!-- ko if: $parent.foreditor -->
                <textarea style="display: none" data-bind="text: originalTitle"></textarea>
                <!-- /ko -->
              </th>
              <!-- ko foreach: $parent.answers -->
              <td style="padding: 2px;">
                <textarea onblur="validateInput($(this).closest('.tabletable').parent(), true)" oninput="propagateChange(this);"
                  data-bind="enable: !$parents[1].readonly(), value: getTableAnswer($parents[1].uniqueId(), $parentContext.$index()+1, $index()+1), attr: {'data-id': $parents[1].id() + $parentContext.$index() + '' + $index(), 'data-shortname': $parent.shortname() + '|' + shortname(), 'class':$parents[1].css() + ' ' + $parents[0].css(), 'name':'answer' + $parents[1].id() + '|' + ($parentContext.$index()+1) + '|' + ($index()+1), 'aria-labelledby': $parent.id().toString() + ' ' + id().toString()}"></textarea>
              </td>
              <!-- /ko -->
            </tr>
            <!-- /ko -->
          </tbody>
        </table>
      </div>
    </div>
    <div id="delphi-template" data-bind="class: ismobile || istablet ? 'delphi-template-mobile' : 'delphi-template'">
      <!-- ko if: isDelphiQuestion() -->
      <div class="delphichildren"></div>
      <!-- ko if: maxDistanceExceeded() && !changedForMedian() -->
      <div class="maxDistanceExceededMessage"> Your answer to this question differs significantly from the group.&nbsp;Please change your answer or explain your decision.<input type="hidden" name="medianWarningVisible" value="true">
        <!-- ko if: median() -->
        <div>Group Median: <span data-bind="html: median()"></span></div>
        <!-- /ko -->
      </div>
      <!-- /ko -->
      <div class="row" style="margin-left: 0; margin-right: 0; margin-top: 20px;">
        <div class="col-md-6" data-bind="style: {'padding-right': ismobile ? 0 : undefined, 'padding-left': 0}">
          <!-- ko if: showExplanationBox() -->
          <div class="explanation-section">
            <table class="table table-condensed table-bordered minh355" style="width: auto; margin-bottom: 0; background-color: #fff">
              <tbody>
                <tr>
                  <th class="area-header">Explain your answer</th>
                </tr>
                <tr>
                  <td>
                    <textarea style="height: 125px" class="explanation-editor" data-bind="attr: {'id': 'explanation' + id(), name: 'explanation' + id()}"></textarea>
                  </td>
                </tr>
                <tr>
                  <td>
                    <div class="explanation-file-upload-section">
                      <div class="text" style="margin-bottom: 5px;">Add a file to your explanation</div>
                      <div class="uploadinfo" style="display: none; padding: 10px; color: #777;">Upload started. This may take a while.</div>
                      <input type="hidden" value="files">
                      <div class="uploaded-files" data-bind="foreach: getFileAnswer(uniqueId())">
                        <div>
                          <a data-toggle="tooltip" title="" data-bind="attr: {'id' : 'uploadlink' + $parent.id(), 'aria-label' : $data}, click: function() {deleteFile($parent.id(),'a745375c-da06-4266-a961-3f855cbbc786',$data,$('#uploadlink' + $parent.id()));return false;}" data-original-title="Remove uploaded file">
												<span style="margin-right: 10px;" class="glyphicon glyphicon-trash"></span>
											</a> <span data-bind="html: $data"></span>
                        </div>
                      </div>
                      <div data-bind="attr: {'class': 'file-uploader', 'data-id': id()}" style="margin-left: 10px; margin-top: 10px;"></div>
                    </div>
                  </td>
                </tr>
              </tbody>
            </table>
          </div>
          <!-- /ko -->
        </div>
        <div class="col-md-6" style="padding:0;">
          <!-- ko if: !foreditor -->
          <div class="chart-wrapper-loader">
            <img src="/eusurvey/resources/images/ajax-loader.gif">
          </div>
          <!-- /ko -->
          <div class="chart-wrapper" data-bind="style: {float: ismobile || istablet ? 'left' : undefined}">
            <table class="table table-condensed table-bordered chart-wrapper__table">
              <tbody>
                <tr>
                  <th class="area-header">
                    <span>Statistics</span>
                    <a href="javascript:;" onclick="loadGraphDataModal(this)" class="glyphicon glyphicon-resize-full delphi-chart-expand" data-toggle="tooltip" title="" aria-label="Expand" data-original-title="Expand"></a>
                  </th>
                </tr>
                <tr>
                  <td class="chart-wrapper__chart-cell">
                    <div class="chart-wrapper__chart-container"></div>
                    <div data-bind="attr: {id: 'wordcloud' + uniqueId()}" class="chart-wrapper__word-cloud-container"></div>
                  </td>
                </tr>
              </tbody>
            </table>
            <div style="clear: both"></div>
          </div>
        </div>
      </div>
      <div class="row" style="margin-left: 0; margin-right: 0; margin-top: 0px;">
        <div class="col-md-12" style="padding:0;">
          <div class="explanation-update-section">
            <a class="btn btn-primary disabled" data-type="delphisavebutton" onclick="if (!$(this).hasClass('disabled')) { delphiUpdate($(this).closest('.survey-element')) }">Save</a>
            <span class="inline-loader">
              <img class="center" src="/eusurvey/resources/images/ajax-loader.gif">
            </span>
            <br><br>
            <a href="javascript:;" data-type="delphireturntostart" class="link" onclick="return checkGoToDelphiStart(this)">Return to start page</a>
          </div>
          <div class="delphiupdatemessage"></div>
          <!-- ko if: delphiTableNewComments() -->
          <div class="newdelphicomments label">There are new comments</div>
          <!-- /ko -->
        </div>
      </div>
      <div class="row results-table-row" style="margin-left: 0; margin-right: 0; margin-top: 20px;">
        <div class="col-md-12" style="padding:0;">
          <div class="loader" data-bind="style: { display: delphiTableLoading() ? 'flex' : 'none' }">
            <img src="/eusurvey/resources/images/ajax-loader.gif">
          </div>
          <!-- ko if: delphiTableEntries().length > 0 -->
          <div class="delphi-table">
            <table class="table table-condensed table-striped table-bordered">
              <thead>
                <tr class="area-header">
                  <th style="width:33%">Answer</th>
                  <th style="min-width:150px">
                    <span>Updated on</span>
                    <div style="float: right">
                      <a href="javascript:;" data-toggle="tooltip" data-title="Sort ascending" aria-label="Sort ascending" onclick="sortDelphiTable(this,'UpdateAsc');" class="" data-original-title="" title="">
						<span class="glyphicon glyphicon-arrow-up" aria-hidden="true"></span>
					</a>
                      <a href="javascript:;" data-toggle="tooltip" data-title="Sort descending" aria-label="Sort descending" onclick="sortDelphiTable(this,'UpdateDesc');" class="" data-original-title="" title="">
						<span class="glyphicon glyphicon-arrow-down" aria-hidden="true"></span>
					</a>
                    </div>
                  </th>
                  <!-- ko if: showExplanationBox() -->
                  <th style="width:33%">Explanation</th>
                  <!-- /ko -->
                  <th style="width:33%">Discussion</th>
                </tr>
              </thead>
              <tbody>
                <!-- ko foreach: delphiTableEntries -->
                <tr>
                  <td>
                    <!-- ko foreach: answers -->
                    <div style="margin-bottom: 5px;">
                      <!-- ko if: question -->
                      <span data-bind="html: question"></span>: <!-- /ko -->
                      <input tabindex="-1" class="text-read-more-checkbox" type="checkbox" data-bind="attr: {'id': 'expanded-answer' + uid}">
                      <!-- ko if: $parents[1].delphiTableShowQuestionHtml() -->
                      <span class="text-to-be-truncated" data-bind="html: value"></span>
                      <!-- /ko -->
                      <!-- ko ifnot: $parents[1].delphiTableShowQuestionHtml() -->
                      <span class="text-to-be-truncated" data-bind="text: value"></span>
                      <!-- /ko -->
                      <label class="text-read-more-label" role="button" data-bind="attr: {'for': 'expanded-answer' + uid} ">Show all</label>
                    </div>
                    <!-- /ko -->
                  </td>
                  <td><span data-bind="html: update"></span></td>
                  <!-- ko if: $parent.showExplanationBox() -->
                  <td>
                    <input tabindex="-1" class="text-read-more-checkbox" type="checkbox" data-bind="attr: { 'id': 'expanded-explanation' + uid }">
                    <span class="text-to-be-truncated" data-bind="html: explanation"></span>
                    <label class="text-read-more-label" role="button" data-bind="attr: { 'for': 'expanded-explanation' + uid }">Show all</label>
                    <!-- ko if: files.length > 0 && explanation.length > 0 -->
                    <br>
                    <!-- /ko -->
                    <!-- ko foreach: files -->
                    <a data-bind="attr: {href: '/eusurvey/files/4ac3bc30-bb88-4101-bbbc-abdb0eb15988/' + uid}, text: name"></a>
                    <!-- /ko -->
                  </td>
                  <!-- /ko -->
                  <td style="padding-top: 0; padding-bottom: 10px;" data-bind="attr: {'data-id': answerSetId}">
                    <!-- ko foreach: comments -->
                    <div class="delphi-comment" data-bind="attr: {'data-id': id}, css: { 'new-delphi-comment': unread }">
                      <div style="margin-top: 5px;">
                        <!-- ko if: user && date -->
                        <span class="delphi-comment__user" data-bind="html: user"></span>
                        <span class="delphi-comment__date" data-bind="html: date"></span>
                        <br>
                        <!-- /ko -->
                        <input tabindex="-1" class="text-read-more-checkbox" type="checkbox" data-bind="attr: {'id': 'expanded' + id}">
                        <span class="text-to-be-truncated" data-bind="hidden: isChangedCommentFormVisible, text: text"></span>
                        <label class="text-read-more-label" role="button" data-bind="attr: {'for': 'expanded' + id}">Show all</label>
                        <div class="delphi-comment__change-form" data-bind="visible: isChangedCommentFormVisible">
                          <textarea class="form-control" data-bind="hasFocus: hasChangedCommentFieldFocus, value: changedComment"></textarea>
                          <a href="javascript:;" class="btn btn-xs btn-primary" onclick="saveChangedDelphiCommentFromRunner(this, false)">Save</a>
                          <a href="javascript:;" class="btn btn-xs btn-default delphi-comment__cancel" data-bind="click: () => { isChangedCommentFormVisible(false); }">Cancel</a>
                        </div>
                        <!-- ko if: answerSetUniqueCode === "a745375c-da06-4266-a961-3f855cbbc786" && ((user && date) || replies.length === 0) -->
                        <div class="delphi-comment__actions">
                          <!-- ko if: user && date -->
                          <a href="javascript:;" data-bind="click: editComment, hidden: isChangedCommentFormVisible">Edit</a>
                          <!-- /ko -->
                          <!-- ko if: (user && date) || replies.length === 0 -->
                          <a href="javascript:;" onclick="deleteDelphiCommentFromRunner(this, false)" data-bind="hidden: isChangedCommentFormVisible">Delete</a>
                          <!-- /ko -->
                        </div>
                        <!-- /ko -->
                      </div>
                      <!-- ko foreach: replies -->
                      <div class="delphi-comment__reply" data-bind="attr: {'data-id': id}, css: { 'new-delphi-comment': unread }">
                        <span class="delphi-comment__user" data-bind="html: user"></span>
                        <span class="delphi-comment__date" data-bind="html: date"></span>
                        <br>
                        <input tabindex="-1" class="text-read-more-checkbox" type="checkbox" data-bind="attr: {'id': 'expanded' + id}">
                        <span class="text-to-be-truncated" data-bind="hidden: isChangedReplyFormVisible, text: text"></span>
                        <label class="text-read-more-label" role="button" data-bind="attr: {'for': 'expanded' + id}">Show all</label>
                        <div class="delphi-comment__change-form" data-bind="visible: isChangedReplyFormVisible">
                          <textarea class="form-control" data-bind="hasFocus: hasChangedReplyFieldFocus, value: changedReply"></textarea>
                          <a href="javascript:;" class="btn btn-xs btn-primary" onclick="saveChangedDelphiCommentFromRunner(this, true)">Save</a>
                          <a href="javascript:;" class="btn btn-xs btn-default delphi-comment__cancel" data-bind="click: () => { isChangedReplyFormVisible(false); }">Cancel</a>
                        </div>
                        <!-- ko if: answerSetUniqueCode === "a745375c-da06-4266-a961-3f855cbbc786" -->
                        <div class="delphi-comment__actions">
                          <a href="javascript:;" data-bind="click: editReply, hidden: isChangedReplyFormVisible">Edit</a>
                          <a href="javascript:;" onclick="deleteDelphiCommentFromRunner(this, true)" data-bind="hidden: isChangedReplyFormVisible">Delete</a>
                        </div>
                        <!-- /ko -->
                      </div>
                      <!-- /ko -->
                      <div class="delphi-comment__add-reply">
                        <a href="javascript:;" data-bind="click: showCommentArea">Reply</a>
                        <div class="delphi-comment__add-reply-form" data-bind="visible: isReplyFormVisible">
                          <textarea class="form-control" data-bind="hasFocus: hasReplyFieldFocus"></textarea>
                          <a href="javascript:;" class="btn btn-xs btn-primary" onclick="saveDelphiCommentFromRunner(this, true)" data-bind="attr: { 'data-parent': id }">Save</a>
                          <a href="javascript:;" class="btn btn-xs btn-default delphi-comment__cancel" data-bind="click: () => { isReplyFormVisible(false); }">Cancel</a>
                        </div>
                      </div>
                    </div>
                    <!-- /ko -->
                    <div class="delphi-comment-add">
                      <a href="javascript:;" data-bind="click: showCommentArea">Add Comment</a>
                      <div class="delphi-comment-add__form" data-bind="visible: isCommentFormVisible">
                        <textarea class="form-control" data-bind="hasFocus: hasCommentFieldFocus"></textarea>
                        <a href="javascript:;" class="btn btn-xs btn-primary" onclick="saveDelphiCommentFromRunner(this, false)">Save</a>
                        <a href="javascript:;" class="btn btn-xs btn-default delphi-comment__cancel" data-bind="click: () => { isCommentFormVisible(false); }">Cancel</a>
                      </div>
                    </div>
                  </td>
                </tr>
                <!-- /ko -->
              </tbody>
            </table>
            <div style="text-align: center; margin-bottom: 10px;">
              <a data-bind="attr: {style: delphiTableOffset() > 0 ? '' : 'color: #ccc; cursor: default;'}" onclick="firstDelphiTablePage(this)">
			<span class="glyphicon glyphicon-step-backward"></span>
		</a>
              <a data-bind="attr: {style: delphiTableOffset() > 0 ? '' : 'color: #ccc; cursor: default;'}" onclick="previousDelphiTablePage(this)">
			<span class="glyphicon glyphicon-chevron-left"></span>
		</a>
              <span data-bind="html: delphiTableOffset() + 1"></span>&nbsp; to&nbsp; <span data-bind="html: Math.min(delphiTableOffset() + delphiTableLimit(), delphiTableTotalEntries())"></span>
              <a data-bind="attr: {style: (delphiTableOffset() + delphiTableLimit()) >= delphiTableTotalEntries() ? 'color: #ccc; cursor: default;' : ''}" onclick="nextDelphiTablePage(this)">
			<span class="glyphicon glyphicon-chevron-right"></span>
		</a>
              <a data-bind="attr: {style: (delphiTableOffset() + delphiTableLimit()) >= delphiTableTotalEntries() ? 'color: #ccc; cursor: default;' : ''}" onclick="lastDelphiTablePage(this)">
			<span class="glyphicon glyphicon-step-forward"></span>
		</a>
            </div>
          </div>
          <!-- /ko -->
        </div>
      </div>
      <div class="modal delete-confirmation-dialog" role="dialog" data-backdrop="static">
        <div class="modal-dialog modal-sm ui-resizable">
          <div class="modal-content">
            <div class="modal-body"> Do you really want to delete this comment?</div>
            <div class="modal-footer">
              <a href="javascript:;" class="btn btn-default delete-confirmation-dialog__confirmation-button">Delete</a>
              <a href="javascript:;" class="btn btn-primary" onclick="hideModalDialog($(this).closest('.modal'))">Cancel</a>
            </div>
          </div>
          <div class="ui-resizable-handle ui-resizable-e" style="z-index: 90;"></div>
          <div class="ui-resizable-handle ui-resizable-s" style="z-index: 90;"></div>
          <div class="ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se" style="z-index: 90;"></div>
        </div>
      </div>
      <!-- /ko -->
    </div>
    <div id="complextable-template">
      <label class="questiontitle" data-bind="attr: {for: &quot;answer&quot; + id(), id: &quot;questiontitle&quot; + id()}">
        <span class="screen-reader-only">Question</span>
        <span data-bind="html: title"></span>
        <span class="screen-reader-only" data-bind="if: help">Additional help available</span>
      </label>
      <span class="questionhelp" data-bind="html: niceHelp, attr:{id: 'questionhelp' + id()}"></span>
      <div class="table-responsive">
        <table class="table complextable" data-bind="css: { 'table-bordered': showHeadersAndBorders() || foreditor }, attr: {'style': size() == 0 ? 'width: auto' : 'width: 900px'}">
          <tbody>
            <tr data-bind="if: showHeadersAndBorders() || foreditor">
              <!-- ko foreach: answers() -->
              <th class="headercell cell" data-bind="html: title, attr:{'data-id': id(), colspan: columnSpan()}"></th>
              <!-- /ko -->
            </tr>
            <!-- ko foreach: questions() -->
            <tr>
              <!-- ko if: $parent.showHeadersAndBorders() || $parent.foreditor -->
              <th class="headercell cell" data-bind="html: title, attr:{'data-id': id(), 'data-type': cellType(), colspan: columnSpan()}"></th>
              <!-- /ko -->
              <!-- ko foreach: new Array($parent.columns()) -->
              <!-- ko if: $parents[1].isCellVisible($index()+1, $parentContext.$index()+1) -->
              <!--ko let: {child: $parents[1].getChild($index()+1, $parentContext.$index()+1)}-->
              <td class="cell" data-bind="attr:{'data-id': child == null ? '' : child.id(), 'data-type': child == null ? '' : child.cellType(), colspan: child &amp;&amp; child.columnSpan(), 'data-col': $index()+1}">
                <!-- ko if: child == null || child.cellType() == 0 -->
                <span>&nbsp;</span>
                <!-- /ko -->
                <!-- ko if: child && child.cellType() > 0 -->
                <!-- ko if: child.optional() == false -->
                <span class="mandatory">*</span>
                <!-- /ko -->
                <!-- ko if: child.title() -->
                <label class="questiontitle" data-bind="attr: {for: 'answer' + child.id(), id: 'questiontitle' + child.id()}">
                  <span class="screen-reader-only">Question</span>
                  <span data-bind="html: child.title()"></span>
                  <span class="screen-reader-only" data-bind="if: child.help()">Additional help available</span>
                </label>
                <!-- /ko -->
                <!-- ko if: child.help() -->
                <span class="questionhelp" data-bind="html: child.niceHelp(), attr:{id: 'questionhelp' + child.id()}"></span>
                <!-- /ko -->
                <!-- /ko -->
                <!-- ko if: child && child.cellType() > 1 -->
                <div data-bind="attr: {class: child.cellType() == 3 ? 'innercell' : 'innercell forprogress',
								onfocusout: !$parents[1].foreditor ? 'validateInput($(this).closest(\'.cell\'))' : '',
								onmouseleave: !$parents[1].foreditor ? 'validateInput($(this).closest(\'.cell\'))' : ''}">
                  <!-- focusout bubbles while blur does not; this combination of mouseleave and focusout covers all Tab/Mouse cases of leaving the cell -->
                  <!-- ko if: child && child.cellType() == 2 -->
                  <!-- ko if: child.minCharacters() > 0 && child.maxCharacters() > 0 -->
                  <div class="limits" data-bind="html: getMinMaxCharacters(child.minCharacters(), child.maxCharacters()), attr: {id: 'questioninfo' + child.id()}"></div>
                  <!-- /ko -->
                  <!-- ko if: child.minCharacters() > 0 && (child.maxCharacters() == 0 || child.maxCharacters() == null)-->
                  <div class="limits" data-bind="html: getMinCharacters(child.minCharacters()), attr: {id: 'questioninfo' + child.id()}"></div>
                  <!-- /ko -->
                  <!-- ko if: (child.minCharacters() == 0 || child.minCharacters() == null) && child.maxCharacters() > 0 -->
                  <div class="limits" data-bind="html: getMaxCharacters(child.maxCharacters()), attr: {id: 'questioninfo' + child.id()}"></div>
                  <!-- /ko -->
                  <textarea oninput="propagateChange(this)"
                    data-bind="enable: child.foreditor == false &amp;&amp; !child.readonly(), class: child.css(), value:getValueByQuestion(child.uniqueId(), $element), attr: {'name' : 'answer' + child.id(), rows: child.numRows(), maxlength: child.maxCharacters() > 0 ? child.maxCharacters() : '', onkeyup: child.maxCharacters() > 0 ? 'countChar(this);' : ''}"></textarea>
                  <!-- ko if: child.maxCharacters() > 0 && !$parent.foreditor -->
                  <div class="charactercounterdiv limits" style="max-width: 645px; text-align: right; margin-left: 20px;" aria-live="polite" aria-atomic="true">
                    <span class="glyphicon glyphicon-alert" style="display: none; margin-right: 5px;" data-toggle="tooltip" title="" aria-label="You have less than 5 characters left."
                      data-original-title="You have less than 5 characters left."></span>
                    <span class="charactersused">
                      <span data-bind="html: getCharacterCountInfo(child.maxCharacters()), attr: {id: 'countinfo' + child.id()}"></span>
                    </span>
                    <span class="characterlimitreached" data-toggle="tooltip" aria-label="Character limit reached." data-original-title="" title="">Character limit reached.</span>
                  </div>
                  <!-- /ko -->
                  <!-- /ko -->
                  <!-- ko if: child && child.cellType() == 3 -->
                  <!-- ko if: child.min() != null && child.min() != 0 && child.max() != null && child.max() != 0 -->
                  <div class="limits" data-bind="html: getMinMax(child.min(), child.max()), attr: {id: 'questioninfo' + child.id()}"></div>
                  <!-- /ko -->
                  <!-- ko if: child.min() != 0 && child.min() != null && (child.max() == 0 || child.max() == null) -->
                  <div class="limits" data-bind="html: getMin(child.min()), attr: {id: 'questioninfo' + child.id()}"></div>
                  <!-- /ko -->
                  <!-- ko if: (child.min() == 0 || child.min() == null) && child.max() != null && child.max() != 0 -->
                  <div class="limits" data-bind="html: getMax(child.max()), attr: {id: 'questioninfo' + child.id()}"></div>
                  <!-- /ko -->
                  <input
                    data-bind="enable: child.foreditor == false &amp;&amp; !child.readonly(), value: child.result, attr: {'id': 'answer' + child.id(), 'data-id':child.id(), 'data-shortname': child.shortname(), 'name' : (child.readonly() ? '' : 'answer' + child.id()), 'class': child.css(), 'aria-labelledby':'questiontitle' + child.id(), 'aria-describedby':'questioninfo' + child.id() + ' questionhelp' + child.id()}"
                    oninput="propagateChange(this);" onblur="resetValidationErrors($(this).closest('.cell'));validateInput($(this).parent())" type="text" autocomplete="off">
                  <!-- ko if: child.readonly() -->
                  <input type="hidden" data-bind="value: child.result, attr: {'name': 'answer' + child.id()}">
                  <!-- /ko -->
                  <!-- /ko -->
                  <!-- ko if: child && child.cellType() == 4 -->
                  <!-- ko if: child && child.useRadioButtons() -->
                  <div style="display: table">
                    <div style="display: table-row">
                      <!-- ko foreach: child.orderedPossibleAnswersByColumn(false, false) -->
                      <div style="display: table-cell; padding-right: 10px">
                        <!-- ko foreach: $data -->
                        <input type="radio"
                          data-bind="enable: child.foreditor == false &amp;&amp; !child.readonly(), checkedValue: true, checked: !child.foreditor &amp;&amp; getPAByQuestion(child.uniqueId(), $element).indexOf(uniqueId()) > -1, value: id(), attr: {'name' : 'answer' + child.id(), class: child.css(), 'onclick': child.readonly() ? 'return false;' : 'checkSingleClick(this); propagateChange(this);', onkeyup: 'singleKeyUp(event, this, '+child.readonly()+')'}">
                        <span data-bind="html: title()"></span><br>
                        <!-- /ko -->
                      </div>
                      <!-- /ko -->
                    </div>
                  </div>
                  <!-- /ko -->
                  <!-- ko if: child && !child.useRadioButtons() -->
                  <select
                    data-bind="enable: child.foreditor == false &amp;&amp; !child.readonly(), value: getPAByQuestion3(child.uniqueId(), $element), attr: {'id': 'answer' + child.id(), 'onclick': !child.foreditor ? 'validateInput($(this).parent(),true); checkDependenciesAsync(this); propagateChange(this);' : '', 'data-id':child.id(), 'data-shortname': child.shortname(), 'name' : child.foreditor ? '' : ('answer' + child.id()), 'class': child.css(), 'aria-labelledby':'questiontitle' + child.id(), 'aria-describedby':'questioninfo' + child.id() + ' questionhelp' + child.id()}">
                    <option selected="selected" value=""></option>
                    <!-- ko foreach: child.orderedPossibleAnswers(false) -->
                    <option data-bind="html: title(), attr: {value: id(), 'data-dependencies': dependentElementsString(), 'id': 'trigger'+id()}" class="possible-answer trigger"></option>
                    <!-- /ko -->
                  </select>
                  <!-- /ko -->
                  <!-- /ko -->
                  <!-- ko if: child && child.cellType() == 5 -->
                  <!-- ko if: child.minChoices() != 0 && child.maxChoices() != 0 -->
                  <div class="limits" data-bind="html: getMinMaxChoice(child.minChoices(), child.maxChoices()), attr: {id: 'questioninfo' + child.id()}"></div>
                  <!-- /ko -->
                  <!-- ko if: child.minChoices() != 0 && child.maxChoices() == 0 -->
                  <div class="limits" data-bind="html: getMinChoice(child.minChoices()), attr: {id: 'questioninfo' + child.id()}"></div>
                  <!-- /ko -->
                  <!-- ko if: child.minChoices() == 0 && child.maxChoices() != 0 -->
                  <div class="limits" data-bind="html: getMaxChoice(child.maxChoices()), attr: {id: 'questioninfo' + child.id()}"></div>
                  <!-- /ko -->
                  <!-- ko if: child && child.useCheckboxes() -->
                  <div class="complex-multitable" style="display: table">
                    <div style="display: table-row">
                      <!-- ko foreach: child.orderedPossibleAnswersByColumn(false, false) -->
                      <div style="display: table-cell; padding-right: 10px">
                        <!-- ko foreach: $data -->
                        <input type="checkbox" onclick="resetValidationErrors($(this).closest('.cell'));propagateChange(this)"
                          data-bind="enable: child.foreditor == false &amp;&amp; !child.readonly(), checked: !child.foreditor &amp;&amp; getPAByQuestion(child.uniqueId(), $element).indexOf(uniqueId()) > -1, value: id(), attr: {'name' : 'answer' + child.id(), class: child.css()}">
                        <span data-bind="html: title()"></span><br>
                        <!-- /ko -->
                      </div>
                      <!-- /ko -->
                    </div>
                  </div>
                  <!-- /ko -->
                  <!-- ko if: child && !child.useCheckboxes() -->
                  <ul role="listbox"
                    data-bind="attr: {'class': child.css() + ' multiple-choice', 'aria-labelledby':'questiontitle' + child.id(), 'aria-describedby':'questioninfo' + child.id() + ' questionhelp' + child.id()}, foreach: child.orderedPossibleAnswers(false),">
                    <li role="listitem"
                      data-bind="attr: { 'data-id': id(), 'class': 'possible-answer trigger ' + (getPAByQuestion(child.uniqueId()).indexOf(uniqueId()) > -1 ? 'selected-choice' : '') , 'onclick' : child.readonly() || child.foreditor ? 'return false;' : 'selectMultipleChoiceAnswer($(this).children().first()); propagateChange($(this).children().first()); event.stopImmediatePropagation();'}">
                      <a tabindex="0" data-bind="attr: {'data-shortname': shortname(), 'onkeypress': child.readonly() || child.foreditor ? 'return false;' : 'preventScrollOnSpaceInput(event);findSurveyElementAndResetValidationErrors(this);selectMultipleChoiceAnswer(this);propagateChange(this);'}">
													<span class="screen-reader-only">Answer</span>
													<span data-bind="html: strip_tags(title()), attr: {'data-id' : id(), 'id': 'answerlabel' + id()}" class="answertext"></span>
												</a>
                      <input
                        data-bind="value: id(), checked: getPAByQuestion2(child.uniqueId(), uniqueId(), id, $element), attr: {'name': 'answer' + child.id(), 'id':id(), 'data-id': child.id() + id(), 'data-dependencies': dependentElementsString, 'aria-labelledby': 'answerlabel' + id()}"
                        style="display: none" type="checkbox">
                    </li>
                  </ul>
                  <!-- /ko -->
                  <!-- /ko -->
                  <!-- ko if: child && child.cellType() == 6 -->
                  <!-- ko if: child.min() != null && child.min() != 0 && child.max() != null && child.max() != 0 -->
                  <div class="limits" data-bind="html: getMinMax(child.min(), child.max()), attr: {id: 'questioninfo' + child.id()}"></div>
                  <!-- /ko -->
                  <!-- ko if: child.min() != 0 && child.min() != null && (child.max() == 0 || child.max() == null) -->
                  <div class="limits" data-bind="html: getMin(child.min()), attr: {id: 'questioninfo' + child.id()}"></div>
                  <!-- /ko -->
                  <!-- ko if: (child.min() == 0 || child.min() == null) && child.max() != null && child.max() != 0 -->
                  <div class="limits" data-bind="html: getMax(child.max()), attr: {id: 'questioninfo' + child.id()}"></div>
                  <!-- /ko -->
                  <input type="number" oninput="propagateChange(this);" onblur="resetValidationErrors($(this).closest('.cell'));validateInput($(this).parent())"
                    data-bind="enable: child.foreditor == false &amp;&amp; !child.readonly(), class: child.css(), value:getValueByQuestion(child.uniqueId(), $element), attr: {'name' : 'answer' + child.id(), min: child.min(), max: child.max(), 'data-shortname': child.shortname()}">
                  <!-- ko if: child.unit -->
                  <span data-bind="text: child.unit"></span>
                  <!-- /ko -->
                  <!-- /ko -->
                </div>
                <!-- /ko -->
              </td>
              <!-- /ko -->
              <!-- /ko -->
              <!-- /ko -->
            </tr>
            <!-- /ko -->
          </tbody>
        </table>
      </div>
      <!-- ko if: foreditor -->
      <input type="hidden" data-bind="value: 'complextable', attr: {'name': 'type' + id()}">
      <input type="hidden" data-bind="value: uniqueId(), attr: {'name': 'uid' + id()}">
      <input type="hidden" data-bind="value: shortname, attr: {'name': 'shortname' + id()}">
      <input type="hidden" data-bind="value: useAndLogic, attr: {'name': 'useAndLogic' + id()}">
      <input type="hidden" data-bind="value: optional, attr: {'name': 'optional' + id()}">
      <input type="hidden" data-bind="value: rows, attr: {'name': 'rows' + id()}">
      <input type="hidden" data-bind="value: columns, attr: {'name': 'columns' + id()}">
      <input type="hidden" data-bind="value: size, attr: {'name': 'size' + id()}">
      <input type="hidden" data-bind="value: showHeadersAndBorders, attr: {'name': 'showHeadersAndBorders' + id()}">
      <textarea style="display: none" data-bind="text: originalTitle, attr: {'name': 'text' + id()}"></textarea>
      <textarea style="display: none" data-bind="text: help, attr: {'name': 'help' + id()}"></textarea>
      <input type="hidden" data-bind="value: childIds(), attr: {'name': 'childelements' + id()}">
      <div class="children">
        <!-- ko foreach: orderedChildElements -->
        <div data-bind="attr: {'id' : 'child' + id()}">
          <textarea style="display: none" data-bind="text: originalTitle, attr: {'name': 'text' + id(), 'data-id': id()}"></textarea>
          <input type="hidden" data-bind="value: uniqueId(), attr: {'name': 'uid' + id()}">
          <input type="hidden" data-bind="value: shortname, attr: {'name': 'shortname' + id()}">
          <input type="hidden" data-bind="value: optional, attr: {'name': 'optional' + id()}">
          <input type="hidden" data-bind="value: cellType, attr: {'name': 'cellType' + id()}">
          <input type="hidden" data-bind="value: row, attr: {'name': 'row' + id()}">
          <input type="hidden" data-bind="value: column, attr: {'name': 'column' + id()}">
          <input type="hidden" data-bind="value: columnSpan, attr: {'name': 'columnSpan' + id()}">
          <textarea style="display: none" data-bind="text: help, attr: {'name': 'help' + id()}"></textarea>
          <input type="hidden" data-bind="value: minCharacters, attr: {'name': 'minCharacters' + id()}">
          <input type="hidden" data-bind="value: maxCharacters, attr: {'name': 'maxCharacters' + id()}">
          <input type="hidden" data-bind="value: minChoices, attr: {'name': 'minChoices' + id()}">
          <input type="hidden" data-bind="value: maxChoices, attr: {'name': 'maxChoices' + id()}">
          <input type="hidden" data-bind="value: numRows, attr: {'name': 'numRows' + id()}">
          <input type="hidden" data-bind="value: useRadioButtons, attr: {'name': 'useRadioButtons' + id()}">
          <input type="hidden" data-bind="value: useCheckboxes, attr: {'name': 'useCheckboxes' + id()}">
          <input type="hidden" data-bind="value: numColumns, attr: {'name': 'numColumns' + id()}">
          <input type="hidden" data-bind="value: order, attr: {'name': 'order' + id()}">
          <input type="hidden" data-bind="value: resultText, attr: {'name': 'resultText' + id()}">
          <input type="hidden" data-bind="value: decimalPlaces, attr: {'name': 'decimalPlaces' + id()}">
          <input type="hidden" data-bind="value: unit, attr: {'name': 'unit' + id()}">
          <input type="hidden" data-bind="value: min, attr: {'name': 'min' + id()}">
          <input type="hidden" data-bind="value: max, attr: {'name': 'max' + id()}">
          <input type="hidden" data-bind="value: formula, attr: {'name': 'formula' + id()}">
          <input type="hidden" data-bind="value: readonly, attr: {'name': 'readonly' + id()}">
          <!-- ko foreach: possibleAnswers() -->
          <input type="hidden" data-bind="value: shortname, attr: {'name': 'pashortname' + $parents[0].id(), 'data-id' : id()}">
          <input type="hidden" data-bind="value: uniqueId(), attr: {'name': 'pauid' + $parents[0].id(), 'data-id' : id()}">
          <textarea style="display: none" data-bind="text: title, attr: {'name': 'answer' + $parents[0].id(), 'data-id' : id()}"></textarea>
          <textarea style="display: none" data-bind="text: originalTitle, attr: {'name': 'originalAnswer' + $parent.id(), 'data-id' : id()}"></textarea>
          <!-- /ko -->
        </div>
        <!-- /ko -->
      </div>
      <!-- /ko -->
    </div>
  </div>
  <script type="text/javascript">
    function getCharacterCountInfo(max) {
      var s = '[current] out of [max] characters used.';
      return s.replace("[max]", max).replace("[current]", "<span class='charactercounter'>0</span>");
    }

    function getMinMaxCharacters(min, max) {
      var s = 'Text of [min] to [max] characters will be accepted';
      return s.replace("[min]", min).replace("[max]", max);
    }

    function getMinCharacters(min) {
      var s = '[min] character(s) minimum';
      return s.replace("[min]", min);
    }

    function getMaxCharacters(max) {
      var s = '[max] character(s) maximum';
      return s.replace("[max]", max);
    }

    function getMinMaxChoice(min, max) {
      var s = 'between [min] and [max] choices';
      return s.replace("[min]", min).replace("[max]", max);
    }

    function getMinChoice(min) {
      var s = 'at least [min] choice(s)';
      return s.replace("[min]", min);
    }

    function getMaxChoice(max) {
      var s = 'at most [max] choice(s)';
      return s.replace("[max]", max);
    }

    function getMaxSelections(max) {
      var s = 'at most [max] selection(s)';
      return s.replace("[max]", max);
    }

    function getRankingQuestionInfo(max) {
      var s = 'Ranking Question list with [max] items.';
      return s.replace("[max]", max);
    }

    function getInitialOrderInfoText() {
      return 'Initial order is as follows';
    }

    function round(value) {
      var d = parseFloat(value);
      var s = d.toString();
      if (endsWith(s, ".0")) return s.replace(".0", "");
      return s;
    }

    function getMinMax(min, max) {
      var s = 'Only values between [min] and [max] are allowed';
      return "<div class='limits'>" + s.replace("[min]", round(min)).replace("[max]", round(max)) + "</div>";
    }

    function getMin(min) {
      var s = 'Only values of at least [min] are allowed';
      return "<div class='limits'>" + s.replace("[min]", min) + "</div>";
    }

    function getMax(max) {
      var s = 'Only values of at most [max] are allowed';
      return "<div class='limits'>" + s.replace("[max]", max) + "</div>";
    }

    function getMinMaxDate(min, max) {
      var s = 'between [min] and [max]';
      return "<div class='limits'>" + s.replace("[min]", min).replace("[max]", max) + "</div>";
    }

    function getMinDate(min) {
      var s = 'after [min]';
      return "<div class='limits'>" + s.replace("[min]", min) + "</div>";
    }

    function getMaxDate(max) {
      var s = 'before [max]';
      return "<div class='limits'>" + s.replace("[max]", max) + "</div>";
    }

    function getMinMaxRows(min, max) {
      var s = 'between [min] and [max] answered rows';
      return "<div class='limits'>" + s.replace("[min]", min).replace("[max]", max) + "</div>";
    }

    function getMinRows(min) {
      var s = 'at least [min] answered row(s)';
      return "<div class='limits'>" + s.replace("[min]", min) + "</div>";
    }

    function getMaxRows(max) {
      var s = 'at most [max] answered row(s)';
      return "<div class='limits'>" + s.replace("[max]", max) + "</div>";
    }
    var idsforuids = null;

    function initializeTriggers() {
      triggers = {};
      idsforuids = {};
      triggers["0cd04cac-70ef-bf20-97a2-6e62193302d5"] = "";
      idsforuids["0cd04cac-70ef-bf20-97a2-6e62193302d5"] = "102113858";
      triggers["92b4f34e-a334-46f1-9354-be5c9abe491c"] = "";
      idsforuids["92b4f34e-a334-46f1-9354-be5c9abe491c"] = "102113859";
      triggers["558201f3-ce43-feef-3646-a90497ae6412"] = "";
      idsforuids["558201f3-ce43-feef-3646-a90497ae6412"] = "102113860";
      triggers["c5edef34-3d00-b687-f984-b99ccd98a78d"] = "";
      idsforuids["c5edef34-3d00-b687-f984-b99ccd98a78d"] = "102113861";
      triggers["89f4bae0-3efd-4e4a-2290-4170725ee74c"] = "";
      idsforuids["89f4bae0-3efd-4e4a-2290-4170725ee74c"] = "102113862";
      triggers["7f87442b-336f-71e5-1fde-096948e7220e"] = "";
      idsforuids["7f87442b-336f-71e5-1fde-096948e7220e"] = "102113863";
      triggers["39dc0090-d1bc-4096-82a6-1cb13111e0a4"] = "";
      idsforuids["39dc0090-d1bc-4096-82a6-1cb13111e0a4"] = "102113864";
      triggers["f4d6d589-34aa-4f84-8382-3c8efa5f042d"] = "";
      idsforuids["f4d6d589-34aa-4f84-8382-3c8efa5f042d"] = "102113865";
      triggers["40a193fa-a926-4db3-85f6-c6332a7f0699"] = "";
      idsforuids["40a193fa-a926-4db3-85f6-c6332a7f0699"] = "102113866";
    }

    function initializeAnswerData() {
      values = {};
      pavalues = {};
      pavaluesid = {};
      tablevalues = {};
      filevalues = {};
      validationMessages = {};
    }

    function doAnswersExist() {
      return false;
    }
    var invisibleElements = [];

    function isInvisible(uniqueId) {
      return true;
    }
    var validationMessages = null;

    function getValidationMessageByQuestion(uniqueId) {
      return typeof validationMessages[uniqueId] != 'undefined' ? validationMessages[uniqueId] : "";
    }
    var triggers = null;

    function getTriggersByQuestion(uniqueId) {
      return typeof triggers[uniqueId] != 'undefined' ? triggers[uniqueId] : "";
    }
    var values = null;

    function getValueByQuestion(uniqueId, cellEl) {
      if (typeof values[uniqueId] != 'undefined') {
        if (cellEl != null && $(cellEl).is(".complex")) {
          $(cellEl).closest(".innercell").addClass("answered");
        } else {
          $('.survey-element[data-uid="' + uniqueId + '"]').addClass("answered");
          $('tr[data-uid="' + uniqueId + '"]').closest(".survey-element").addClass("answered");
        }
        return values[uniqueId];
      }
      return "";
    }
    var pavalues = null;

    function getPAByQuestion(uniqueId, cellEl) {
      if (typeof pavalues[uniqueId] != 'undefined') {
        if (cellEl != null && $(cellEl).is(".complex")) {
          $(cellEl).closest(".innercell").addClass("answered");
        } else {
          $('.survey-element[data-uid="' + uniqueId + '"]').addClass("answered");
        }
        return pavalues[uniqueId];
      }
      return "";
    }
    var pavaluesid = null;

    function getPAIdByQuestion(uniqueId) {
      return typeof pavaluesid[uniqueId] != 'undefined' ? pavaluesid[uniqueId] : "";
    }

    function getPAByQuestion2(parentuniqueId, uniqueId, id, cellEl) {
      if (getPAByQuestion(parentuniqueId).indexOf(uniqueId) > -1) {
        if (cellEl != null && $(cellEl).is(".complex, .multiple-choice li input")) {
          $(cellEl).closest(".innercell").addClass("answered");
        } else {
          $('tr[data-uid="' + parentuniqueId + '"]').closest(".survey-element").addClass("answered");
        }
        return id.toString();
      }
      return "";
    }

    function getPAByQuestion3(parentuniqueId, cellEl) {
      if (getPAByQuestion(parentuniqueId).length > 0) {
        var result = getIdForUniqueId(getPAByQuestion(parentuniqueId));
        if (typeof result != 'undefined') {
          if (cellEl != null && $(cellEl).is("select.complex")) {
            $(cellEl).closest(".innercell").addClass("answered");
          }
          return result;
        }
      }
      return "";
    }

    function getIdForUniqueId(uniqueId) {
      return typeof idsforuids[uniqueId] != 'undefined' ? idsforuids[uniqueId] : "";
    }
    var tablevalues = null;

    function getTableAnswer(uniqueId, row, col) {
      if (typeof tablevalues[uniqueId + "#" + row + "#" + col] != 'undefined') {
        $('.survey-element[data-uid="' + uniqueId + '"]').addClass("answered");
        return tablevalues[uniqueId + "#" + row + "#" + col];
      }
      return "";
    }
    var filevalues = null;

    function getFileAnswer(uniqueId) {
      return typeof filevalues[uniqueId] != 'undefined' ? filevalues[uniqueId] : "";
    }

    function deleteDelphiCommentFromRunner(button, isReply) {
      const dialog = $(button).closest(".survey-element").children("div").eq(1).find(".delete-confirmation-dialog");
      showModalDialog(dialog, button);
      var deleteButton = $(dialog).find(".delete-confirmation-dialog__confirmation-button");
      $(deleteButton).off("click");
      $(deleteButton).click(function() {
        const questionUid = $(button).closest(".survey-element").attr("data-uid");
        const viewModel = modelsForDelphiQuestions[questionUid];
        const errorCallback = () => {
          showError("error");
        }
        const successCallback = () => {
          loadTableData(questionUid, viewModel);
        }
        hideModalDialog(dialog);
        deleteDelphiComment(button, viewModel, isReply, errorCallback, successCallback);
      });
    }
    initializeAnswerData();
    initializeTriggers();
    // showPopup
    function showPopup() {
      $("#motivationPopup").modal('show');
      $("#motivationPopup").removeClass('not-shown');
    }
  </script>
  <div>
    <input type="hidden" name="_csrf" value="1e37c37a-e1b0-4e85-a96f-97aba229b7f1">
  </div>
</form>

POST /eusurvey/j_spring_security_logout

<form id="logoutform" action="/eusurvey/j_spring_security_logout" method="post">
  <div>
    <input type="hidden" name="_csrf" value="1e37c37a-e1b0-4e85-a96f-97aba229b7f1">
  </div>
</form>

Text Content

This site uses cookies to offer you a better browsing experience. Find out more
on how we use cookies.

Accept all cookies Accept only essential cookies
       
Login |
Help 
 * About
 * Support
 * Download

|
Language 
 * English



Your survey is being deleted, please wait


Delete Message
As local storage is disabled, automatic saving is not possible
Save a backup on your local computer (disable if you are using a public/shared
computer)
TwinSpace migration request form


Fields marked with * are mandatory.
Disclaimer

The European Commission is not responsible for the content of questionnaires
created using the EUSurvey service - it remains the sole responsibility of the
form creator and manager. The use of EUSurvey service does not imply a
recommendation or endorsement, by the European Commission, of the views
expressed within them.



Pages
 * Start


Thank you for taking the time to report a TwinSpace that you would like to be
migrated.

Four important notes:

 1. Please fill in this form for each TwinSpace that you would like to have
    migrated.
 2. You can only request migration of TwinSpaces of projects created after
    1.7.2018.
 3. Only projects with migrated TwinSpaces will be eligible to apply for the
    eTwinning Prizes 2024 (other eligibility criteria still apply).
 4. This questionnaire remains open until 30 September 2023.



Your answers will be processed by European Schoolnet on behalf of the European
Commission (privacy policy).
* Question Your name

* Question Your email address Additional help available

This is required, in case we need to reach out to you because we have questions
about your migration request.
* Question Title of the project

5 character(s) minimum
* Question URL of the TwinSpace Additional help available

To find the URL, please log in on twinspace.etwinning.net with your legacy
credentials.
* Question Purpose of the migration


radio button label Answer
Reporting
Answer
Promotion and dissemination of activities
Answer
Participation in the eTwinning Prizes 2024

If you're human, leave this field blank
Previous Submit Next
Views
Standard  Accessibility Mode
Standard  Accessibility Mode

--------------------------------------------------------------------------------

Languages
English

--------------------------------------------------------------------------------

Useful links
News item about the TwinSpace migration
Your legacy TwinSpaces

--------------------------------------------------------------------------------

Contact
Contact your NSO

--------------------------------------------------------------------------------



Report abuse

By removing an answer, the corresponding explanation text, possibly uploaded
files and discussion will be deleted.
Confirm Cancel



The time limit for this quiz has been exceeded. It is not possible to submit
your answer anymore.
Close




In order to open your contribution again later, please use the following link:



You can reopen this dialog from the survey's sidebar.

Send by E-mail Continue

Please enter your e-mail address to receive the link to your contribution.
Your e-mail address is only used once to send the e-mail and will not be saved
afterwards.

Please provide an e-mail address!

Send Cancel
Question Additional help available





--------------------------------------------------------------------------------

* Question Additional help available
Answer




radio button label Answer



* Question Additional help available




checkbox label Answer


 * Answer



* Question Additional help available
Use drag&drop or the up/down buttons to change the order or accept the initial
order.
Use drag&drop or the up/down buttons to change the order or accept the initial
order.
Reset to initial order
⠿


* Question
Please repeat:

* Question Additional help available



Character limit reached.

Please repeat:

* Question
Confirmation

Cancel


Question Additional help available


*




* Question Additional help available
Move the slider or accept the initial position. Move the slider or accept the
initial position.



Reset to initial position

* Question Additional help available
@
* Question Additional help available




* Question Additional help available




* Question Additional help available
 
Upload started. This may take a while.


Question Additional help available


[Please add a file to your survey for your participants to download]
* Question Additional help available




Browse Gallery

Close
* Question Additional help available




*

* Question Additional help available

*

Your answer to this question differs significantly from the group. Please change
your answer or explain your decision.
Group Median:

Explain your answer
Add a file to your explanation
Upload started. This may take a while.



Statistics




Save

Return to start page

There are new comments

Answer Updated on

Explanation Discussion
: Show all
Show all


Show all
Save Cancel
Edit Delete

Show all
Save Cancel
Edit Delete
Reply
Save Cancel
Add Comment
Save Cancel

  to 
Do you really want to delete this comment?
Delete Cancel



Question Additional help available

  * Question Additional help available
Character limit reached.










 * Answer







Please wait


There are unsaved changed. Do you want to skip these changes and return to the
overview page?
Yes Cancel





EUSurvey is supported by the European Commission's DEP-Interoperability
programme, which promotes interoperability solutions for European public
administrations.
EUSurvey Privacy statement
Terms of Service
Cookies

Languages policy
Privacy policy
Legal notice

Български  Čeština  Dansk  Deutsch  Eesti keel  Ελληνικά  English  Español 
Français  Gaeilge  Hrvatski jezik  Italiano  Latviešu valoda  Lietuvių kalba 
Magyar  Malti  Nederlands  Polski  Português  Română  Slovenčina  Slovenščina 
Suomi  Svenska 
English
Version v1.5.2.9 d77aebf9bee27f5ab699ac503e1b01c01172a3d2 (28/08/2023 14:20)
Start  Export
*Please give your export a name for identification
This field is required. Alias must be composed of lowercase and uppercase
letters (a-z and A-Z), numbers (0-9), hyphens and underscores only.
OK Cancel





Javascript is disabled in your browser. In order to use EUSurvey, please enable
Javascript and reload the page.

EUSurvey home
Cookies are disabled in your browser. In order to use EUSurvey, please enable
cookies and reload the page.

EUSurvey home



Export  available for download
Go to Export Page

Notifications





OK



Result

OK



Session Timeout
Your session will expire in  .
Click "Extend" if you want to stay logged in.
Your session has timed out. Please reload the page.
Extend



Network Problems
Your browser seems to have no Internet connection. Therefore you cannot save or
submit your contribution. Make sure to have a valid internet connection and try
again.
OK