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
Submission: On September 12 via manual from PT — Scanned from PT
Form analysis
2 forms found in the DOMPOST 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: "answer" + id(), id: "questiontitle" + 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: "answer" + id(), id: "questiontitle" + 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: "answer" + id(), id: "questiontitle" + 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: "answer" + id(), id: "questiontitle" + 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() && !$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() && !$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() && !$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 <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> 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: "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>
<!-- 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() && !$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() && !$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: "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>
<!-- 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() && !$parents[1].foreditor, checked: !$parents[1].foreditor && 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: "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>
<!-- 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&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&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: "answer" + id(), id: "questiontitle" + 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: "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>
<!-- 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: "answer" + id(), id: "questiontitle" + 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: "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>
<!-- 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: "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>
<!-- 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: "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="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: "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>
<!-- 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(".datepicker").datepicker( "show" );"><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 && 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: "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>
<!-- 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: "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>
<!-- ko if: extensions() != null && extensions().length > 0 -->
<div class="questionhelp">
<span class="glyphicon glyphicon-question-sign"></span> <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: "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="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: "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>
<!-- 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) + ".""></span>
<!-- /ko -->
<span data-bind="html: name().replace("%20"," "), attr: {id: "answerlabel" + $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) + ".""></span>
<!-- /ko -->
<span data-bind="html: name().replace("%20"," ")"></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: "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>
<!-- 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() && 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() && !$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: "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="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. 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> to <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: "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="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 && child.columnSpan(), 'data-col': $index()+1}">
<!-- ko if: child == null || child.cellType() == 0 -->
<span> </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 && !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 && !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 && !child.readonly(), checkedValue: true, checked: !child.foreditor && 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 && !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 && !child.readonly(), checked: !child.foreditor && 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 && !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