CINXE.COM
EUSurvey - Survey
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#" xml:lang="EN" lang="EN"> <head> <title>EUSurvey - Survey</title> <meta property="og:title" content="INSPIRE Expert"></meta> <meta charset="utf-8"></meta> <meta http-equiv="X-UA-Compatible" content="IE=edge"></meta> <meta name="viewport" content="width=device-width, initial-scale=1"></meta> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></meta> <meta http-equiv="Pragma" content="no-cache, no-store"></meta> <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate"></meta> <meta http-equiv="Expires" content="-1"></meta> <meta name="_csrf" content="8d955158-4736-4c95-9bce-b353e8e3fd50"/> <meta name="_csrf_header" content="X-CSRF-TOKEN"/> <meta name="Description" content="EUSurvey is an online survey-management system built for the creation and publishing of globally accessible forms, such as user satisfaction surveys and public consultations." /> <meta name="robots" content="noindex"></meta> <link href="/eusurvey/resources/css/jquery-ui.css?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311" rel="stylesheet" type="text/css"></link> <link href="/eusurvey/resources/css/jquery-ui.structure.min.css?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311" rel="stylesheet" type="text/css"></link> <link href="/eusurvey/resources/css/jquery-ui.theme.min.css?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311" rel="stylesheet" type="text/css"></link> <link href="/eusurvey/resources/css/common.css?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311" rel="stylesheet" type="text/css"></link> <link href="/eusurvey/resources/css/bootstrap-slider.min.css?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311" rel="stylesheet" type="text/css"></link> <link href="/eusurvey/resources/css/Chart.min.css?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311" rel="stylesheet" type="text/css"></link> <link href="/eusurvey/resources/css/bootstrap.css?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311" rel="stylesheet" type="text/css"></link> <link href="/eusurvey/resources/css/common-extension.css?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311" rel="stylesheet" type="text/css"></link> <style type="text/css"> /* html { overflow: hidden; } */ #participantsstatic thead { background-color: #fff; } @font-face { font-family: 'steinerregular'; src: url('/eusurvey/resources/fonts/steinerlight-webfont.eot'); src: url('/eusurvey/resources/fonts/steinerlight-webfont.eot?#iefix') format('embedded-opentype'), url('/eusurvey/resources/fonts/steinerlight-webfont.woff') format('woff'), url('/eusurvey/resources/fonts/steinerlight-webfont.ttf') format('truetype'), url('/eusurvey/resources/fonts/steinerlight-webfont.svg#steinerregular') format('svg'); font-weight: normal; font-style: normal; } </style> <meta itemprop="image" content="/eusurvey/resources/images/favicon5.ico" /> <link rel="shortcut icon" href="/eusurvey/resources/images/favicon5.ico" type="image/x-icon"></link> <meta name="google-site-verification" content="VJsdHVpjHp_2oE-jFxDLuRw_S7I8_T_mWKhn8jRbv8I" /> <script type='text/javascript' src='/eusurvey/resources/js/knockout-3.5.1.js?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311'></script> <script type="text/javascript" src="/eusurvey/resources/js/jquery-1.12.3.min.js?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311"></script> <script type="text/javascript" src="/eusurvey/resources/js/jquery-ui.min.js?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311"></script> <script type="text/javascript" src="/eusurvey/resources/js/jquery.ui.touch-punch.min.js?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311"></script> <script type="text/javascript" src="/eusurvey/resources/js/spin.min.js?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311"></script> <script type="text/javascript" src="/eusurvey/resources/js/jquery.hotkeys.js?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311"></script> <script type="text/javascript" src="/eusurvey/resources/js/bootstrap.js?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311"></script> <script type="text/javascript" src="/eusurvey/resources/js/jquery.addplaceholder.js?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311"></script> <script type="text/javascript" src="/eusurvey/resources/js/jquery.validate.js?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311"></script> <script type="text/javascript" src="/eusurvey/resources/js/scroll-sneak.js?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311"></script> <script type="text/javascript" src="/eusurvey/resources/js/system.js?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311"></script> <script defer="defer" src="https://europa.eu/webtools/load.js" type="text/javascript"></script> <script type="application/json">{ "utility": "cck" }</script> <script type="text/javascript" src="/eusurvey/resources/js/bootstrap-slider.min.js?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311"></script> <script type="text/javascript" src="/eusurvey/resources/js/tinymce/jquery.tinymce.min.js?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311"></script> <script type="text/javascript" src="/eusurvey/resources/js/tinymce/tinymce.min.js?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311"></script> <script type="text/javascript" src="/eusurvey/resources/js/Chart.min.js?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311"></script> <script type="text/javascript" src="/eusurvey/resources/js/chartjs-plugin-colorschemes.min.js?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311"></script> <script type="text/javascript" src="/eusurvey/resources/js/math.js?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311"></script> <script type="text/javascript"> //if (top != self) top.location=location; var contextpath = "/eusurvey"; var isresponsive = false; var isdelphi = false; var isevote = false; var delphiStartPageUrl = '/eusurvey/runner/INSPIRE-Expert?'; var maxEVoteCandidates = "20" var unsavedChangesText = "You have made changes on this page that you have not yet confirmed. If you navigate away from this page you will lose your unsaved changes"; var requiredText = "This field is required."; var requiredTextNewSurvey = "This field is required."; var requiredTextNewSurveyReverse = "This field is required."; var confirmationMarkupError = "The metadata or ID '{0}' is not valid. "; var nomatchText = "The two values do not match"; var shortnameText = "Alias must be composed of lowercase and uppercase letters (a-z and A-Z), numbers (0-9), hyphens and underscores only."; var shortnameText2 = "Please do not use more than one hyphen in a row"; var shortnameText3 = "Your survey alias may only contain alphanumeric characters (A-Z, a-z, 0-9), underscores and hyphens."; var textnotlongenoughText = "This text is not long enough"; var texttoolongText = "This text is too long"; var bracketCountNotMatching = "The number of '{' and '}' in your text is not equal"; var texttoolong5000Text = "This question type does not allow more than 5000 characters"; var invalidnumberText = "This value is not a valid number"; var invalidCharacter = "Invalid (non UTF-8) characters detected. Please check your input."; var valuetoosmall = "This value is too small"; var valuetoolarge = "This value is too large"; var timevaluetoosmall = "Entered time is smaller than the requested range."; var timevaluetoolarge = "Entered time is greater than the requested range."; var notenoughanswers = "Not enough selections"; var toomanyanswers = "Too many selections"; var noRegExmatchText = "The value does not match the defined pattern"; var invalidDate = "This value is not a valid date"; var invalidTime = "Invalid time format. Enter a time in the format 'HH:mm:ss'."; var invalidEmail = "This is not a valid e-mail address"; var invalidCaseId = "This is not a valid contribution id"; var invalidStartEnd = "The end date must be later than the start date"; var invalidStartEndTime = "The end time must be later than the start time"; var interdependentText = "You can select each value only once"; var invalidURL = "This is not a valid URL"; var invalidPrecisionText = "decimal precision limited to {0}"; var invalidXHTML = "Your input cannot be processed (XHMTL invalid)"; var serverPrefix='https://ec.europa.eu/eusurvey/';//+'runner/'; var selectFileForUploadRunner = "Select file to upload"; var selectFilesForUpload = "Select file(s) to upload"; var uploadASkin = "Upload a skin"; var globalLanguage = 'en'; var questionTextLabel = "Question Text"; var typeLabel = "Type"; var ignoreLabel = "Ignore"; var sectionTitleLabel = "Section Title"; var alternativeTextLabel = "Alternative Text"; var modifyElementLabel = "Modify element"; var deleteElementLabel = "delete element"; var cutElementLabel = "cut element"; var copyElementLabel = "copy element"; var weakPasswordText = "Please choose a password between 8 and 16 characters with at least one digit and one non-alphanumeric character (e.g. !?$%...)."; var shortnameAlreadyExists = "A survey with this alias already exists."; var endNotificationAutomatedPublishing = "Automatic Publishing must be activated to use the End Notification feature"; var allValues = "All Values"; var checkXHTMLValidityError = "It was not possible to access the server to validate the text."; var mandatoryLabel = "Mandatory"; var optionalLabel = "Optional"; var invalidFileError = "The file is not valid."; var IndentElementLabel = "Indent element"; var LabelExternalImage = "Warning: Using resources from another location represents a security and integrity risk for your survey."; var UnindentElementLabel = "Unindent element"; var notenoughrowsanswerederror = "You did not answer enough rows."; var toomanyrowsanswerederror = "You answered too many rows."; var honeypotError = "If you are human please remove the text from this text box"; var clearLabel = "Clear Value"; var cancelLabel = "Cancel"; var showLabel = "Show"; var atLeast3Characters = "Search strings have to be at least 3 characters"; var loginExistsError = "This login already exists. Please choose a unique login."; var message_Export1 = "Export started successfully. It can be accessed via the"; var label_ExportPage = "Export Page"; var message_PublicationExportSuccess = "You will receive a link to the file by mail as soon as it is available"; var message_PublicationExportSuccess2 = "You will receive the file by mail to {0} as soon as it is available"; var message_ExportFailed = "Export failed."; var message_PublicationExportFailed = "It was not possible to create the file. Please contact the helpdesk."; var message_SuccessMailLinkDraft = "E-mail sent successfully"; var message_FailedMailLinkDraft = "An error occurred when sending you an e-mail, please try later."; var atmost3Selections = "Please select at most 3 answers"; var varExceptionDuringSave = "There was an error during saving:"; var varwaitfordependencies = "Loading dependent questions..."; var varErrorCheckValidation = "Please check for validation errors"; var varErrorCheckValidation2 = "If this error message persists, please contact the support and send a screenshot of this page."; var labelEditYourContributionLater = 'Edit your contribution later'; var labelmore = "more..."; var labelless = "less"; var labelfrom = "From"; var labelto = "To"; var messageuploadnoconnection = "File-upload not possible. Please check your internet connection."; var messageuploadwrongextension = "{0} does not match the allowed file types."; var labelnewexplanation = "New explanation"; var labeloldexplanation = "Old explanation"; var timeLimitNotZero = "Time limit cannot be equal to zero."; var infolabeluploadbutton = "Select and upload files"; var infoNoData = "No data available yet"; var validationNotEnoughCandidates = "You must select at least one candidate."; var validationTooManyCandidates = "You have selected too many candidates"; var validationTooManyListVotes = "You have made too many list votes"; var likeOwnCommentOrExplanation = "It's not possible to like own comments or explanations."; var selectFileForUpload = "Select file to upload"; var versionfootersource = "v1.5.3.3 625447edf6ac2f69bd9ee79032f971bb3c1ea311 (20/11/2024 18:10)"; var version = versionfootersource.substring(versionfootersource.indexOf("(")+1); version = version.substring(0, version.indexOf(" ")); var explanationEditorConfig = { script_url: '/eusurvey/resources/js/tinymce/tinymce.min.js', theme: 'modern', entity_encoding: 'raw', menubar: false, toolbar: ['bold italic underline strikethrough | undo redo | bullist numlist | link code | fontsizeselect forecolor fontselect'], plugins: 'paste link image code textcolor', font_formats: 'Sans Serif=FreeSans, Arial, Helvetica, Tahoma, Verdana, sans-serif;' + 'Serif=FreeSerif,Times,serif;' + 'Mono=FreeMono,Courier, mono;', language : globalLanguage, image_advtab: true, entities: '', content_css: '/eusurvey/resources/css/tinymceyellowfocus.css', popup_css_add: '/eusurvey/resources/css/tinymcepopup.css', forced_root_block: false, browser_spellcheck: true, paste_postprocess: function(pl, o) { o.node.innerHTML = replaceBRs(strip_tags(o.node.innerHTML, '<p><br>')); }, setup: function(editor) { editor.on('init', function(event) { delphiPrefill($(event.target)); }); editor.on('Change', function (event) { try { // The editor element needs to be retrieved again. Otherwise, closest() will return no elements. enableDelphiSaveButtons($('#' + event.target.id).closest('.survey-element')); } catch (e) {} }); }, relative_urls: false, remove_script_host: false, document_base_url: serverPrefix, default_link_target: '_blank', anchor_top: false, anchor_bottom: false, branding: false, invalid_elements: 'html,head,body', object_resizing: false }; </script> <script type="text/javascript" src="/eusurvey/resources/js/utf8.js?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311"></script> <script type="text/javascript" src="/eusurvey/resources/js/includes.js?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311"></script> <script type="text/javascript"> //<![CDATA[ function getWrongExtensionMessage(filename) { var s; s = '[fn] does not match the allowed file types.'; return s.replace("[fn]", filename); } function getExtensionsHelp(extensions) { var e = extensions.replace(new RegExp(';', 'g'), ','); var s; s = 'Only files of the type [ex] are allowed'; return s.replace("[ex]", e); } function countChar(input) { var cs = getCharacterCount(input); var attr = $(input).attr('class'); let el = $(input).closest(".survey-element, .innercell"); if (attr != null) { let min = 0; let max = 0; attr.split(/\s+/).forEach((cla)=>{ if (cla.startsWith("min")){ min = parseInt(cla.substring(3)); } else if (cla.startsWith("max")){ max = parseInt(cla.substring(3)); } }) el.find(".charactercounter").text(cs); if (max > 0 && max - cs < 5) { el.find(".glyphicon-alert").show(); } else { el.find(".glyphicon-alert").hide(); } if (max > 0 && max - cs < 0) { el.find(".charactercounterdiv").css("color", "#f00"); } else { el.find(".charactercounterdiv").css("color", "#666"); } if(max > 0 && max - cs <= 0) { el.find(".glyphicon-alert").hide(); el.find(".characterlimitreached").show(); el.find(".charactersused").hide(); } else { el.find(".characterlimitreached").hide(); el.find(".charactersused").show(); } } } //]]> var browser = ''; </script> <script defer="defer" src="//europa.eu/webtools/load.js" type="text/javascript"></script> <script type="application/json"> { "utility":"analytics", "siteID":"63", "sitePath":["ec.europa.eu/eusurvey"], "is404":false, "is403":false, "instance":"ec.europa.eu"} </script> <script type="text/javascript" src="/eusurvey/resources/js/jqueryui/i18n/datepicker-en.js?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311"></script> <script type="text/javascript"> $(function() { $( ".datepicker" ).datepicker( "option", $.datepicker.regional[ 'en' ] ); $( ".datepicker" ).datepicker( "option", "dateFormat", "dd/mm/yy"); }); </script> <!--[if IE 7]> <link rel="stylesheet" href="/eusurvey/resources/css/bootstrap-ie7buttonfix.css"> <style type="text/css"> .add-on { height: 19px; margin-top: 1px; } </style> <![endif]--> <!--[if IE 8]> <link rel="stylesheet" href="/eusurvey/resources/css/bootstrap-ie8buttonfix.css"> <style> .check { margin-bottom: 3px !important; } </style> <![endif]--> <!--[if IE 9 ]> <script type="text/javascript"> browser = 'IE9'; </script> <![endif]--> <link id="runnerCss" href="/eusurvey/resources/css/runner.css?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311" rel="stylesheet" type="text/css"></link> <link href="/eusurvey/resources/css/yellowfocus.css?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311" rel="stylesheet" type="text/css"></link> <link href="/eusurvey/resources/css/fileuploader.css?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311" rel="stylesheet" type="text/css"></link> <script type="text/javascript" src="/eusurvey/resources/js/fileuploader.js?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311"></script> <script type="text/javascript" src="/eusurvey/resources/js/runner.js?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311"></script> <script type="text/javascript" src="/eusurvey/resources/js/runner2.js?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311"></script> <script type="text/javascript" src="/eusurvey/resources/js/graph_data_loader.js?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311"></script> <script type="text/javascript" src="/eusurvey/resources/js/runnerviewmodels.js?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311"></script> <script type='text/javascript' src='/eusurvey/resources/js/knockout-3.5.1.js?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311'></script> <script type="text/javascript"> //<![CDATA[ $(function() { $(".headerlink, .header a").each(function(){ if (!$(this).hasClass("messageicon") && $(this).attr("id") != 'logoutBtnFromHeader' && !$(this).hasClass("skipScriptAnchor")) { if ($(this).attr("href") && $(this).attr("href").indexOf("?") == -1) { $(this).attr("target","_blank").attr("href", $(this).attr("href") + "/runner"); } } }); loadElements(); }); function loadElements() { var ids = ""; if ($(".emptyelement").length > 0) { var counter = 0; $(".emptyelement").each(function(){ ids += $(this).attr("data-id") + '-'; counter++; if (counter > 20) { return false; } }) var s = "ids=" + ids.substring(0, ids.length-1) + "&survey=731257&slang=EN&as="; $.ajax({ type:'GET', dataType: 'json', url: "/eusurvey/runner/elements/731257", data: s, cache: false, success: function( result ) { for (var i = 0; i < result.length; i++) { addElement(result[i], false, false); } applyStandardWidths(); setTimeout(loadElements, 500); selectPageAndScrollToQuestionIfSet(); } }); } else { checkPages(); $("#btnSubmit").removeClass("hidden"); $("#btnSaveDraft").removeClass("hidden"); $("#btnSaveDraftMobile").removeClass("hidden"); $('[data-toggle="tooltip"]').ApplyCustomTooltips(); // Do not show motivation-popup when loaded from draft/local safe and progress already over if(!$("#motivationPopup").data("type") && $("#motivationPopup").data("popup") && calculateProgressPercentage() > $("#motivationPopup").data("progress")){ $("#motivationPopup").removeClass('not-shown'); } updateProgress(); updateEVoteStatus(); updateAllFormulas(); updateAllExclusiveAnswers(); $(".targetdatasetselect").each(function() { checkTargetDataset(this); }) } } function updateFileList(element, responseJSON) { $(element).siblings(".uploaded-files").first().empty(); $(element).siblings(".validation-error").remove(); var surveyElement = $(element).closest(".survey-element"); enableDelphiSaveButtons(surveyElement); if (responseJSON.files.length == 0) { $(surveyElement).removeClass("answered"); updateProgress(); } for (var i = 0; i < responseJSON.files.length; i++) { var f = responseJSON.files[i]; var div = document.createElement("div"); var del = document.createElement("button"); $(del).attr("type", "button").addClass("unstyledbutton").attr("data-toggle","tooltip").attr("id", "uploadlink" + $(element).attr('data-id')).attr("title","Remove uploaded file").attr("aria-label",f).attr( "onclick", 'deleteFile("' + $(element).attr('data-id') + '","' + $("#uniqueCode").val() + '","' + f + '", this);return false;'); $(del).ApplyCustomTooltips(); var ic = document.createElement("span"); $(ic).addClass("glyphicon glyphicon-trash").css("margin-right", "10px"); $(del).append(ic); $(div).html(f); $(div).prepend(del); $(element).siblings(".uploaded-files").first().append(div); } } //]]> </script> </head> <body id="body" class="grey-background" style="text-align: center;"> <div class="page-wrap"> <div class="header"> <div class="header-content-full"> <div style="float: left; line-height: 20px;"> <a class="logolink" href="/eusurvey/home/welcome" style="float: left; padding-top:3px;"><img src="/eusurvey/resources/images/logo_Eusurvey-small-white.png" style="margin-top: -3px;" alt="EUSurvey"/></a>        </div> <div style="float: right; line-height: 22px;"> <span tabindex="0" id="messages-button" onclick="$('#messages-log-div').show()" onfocus="$('#loginBtnFromHeader').focus()"> <!-- ko if: messages().length > 0 || systemMessages.length > 0 --> <span class="glyphicon glyphicon-bell" style="font-size: 17px;"></span> <span class="badge" style="background-color: #e90000; margin-left: -10px; margin-top: -3px; z-index: 100;" data-bind="visible: totalMessages() > 0, text: totalMessages"></span> <!-- /ko --> </span> <a id="loginBtnFromHeader" href="/eusurvey/auth/login">Login</a> | <div id="dropDownHelp" class="dropdown" style="display: inline-block;"> <a href="javascript:;" class="dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Help <span class="caret"></span> </a> <ul id="dropDownHelpHeader" class="dropdown-menu" aria-labelledby="dropdownMenu1"> <li><a id="linkHelpAbout" href="/eusurvey/home/about">About</a></li> <li><a id="linkHelpSupport" href="/eusurvey/home/documentation">Support</a></li> <li><a id="linkHelpDownload" href="/eusurvey/home/download">Download</a></li> </ul> </div> | <div class="dropdown" > <a href="javascript:;" class="dropdown-toggle" id="dropdownLang" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" > Language <span class="caret"></span> </a> <ul class="dropdown-menu dropdown-menu-right" id="dropdownLangElements" aria-labelledby="dropdownLang"> <li> <button type="button" class="unstyledbuttonlanguage skipScriptAnchor" onclick="$('.dropdown.open .dropdown-toggle').dropdown('toggle')">English</button> </li> </ul> </div> <a class="messageicon" id="systemmessagebutton" style="display: none;" onclick="$('#system-message-box').show();"><img style="max-width:24px;" src="/eusurvey/resources/images/info24.png" alt="system message" /></a> <a class="messageicon" id="warningmessagebutton" style="display: none;" onclick="$('#generic-warning-box').show();"><img style="max-width:24px;" src="/eusurvey/resources/images/warning24.png" alt="system message" /></a> </div> <div style="clear: both"></div> </div> </div> <div class="modal" id="show-wait-image" data-backdrop="static"> <div class="modal-dialog modal-sm"> <div class="modal-content"> <div class="modal-body" style="text-align: center; padding-top:30px;"> <img alt="wait animation" src="/eusurvey/resources/images/ajax-loader.gif" /> </div> </div> </div> </div> <div class="modal" id="show-wait-image-delete-survey" data-backdrop="static"> <div class="modal-dialog modal-sm"> <div class="modal-content"> <div class="modal-body" style="text-align: center; padding-top:30px;"> Your survey is being deleted, please wait<br /><br /> <img alt="wait animation" src="/eusurvey/resources/images/ajax-loader.gif" /> </div> </div> </div> </div> <script type="text/javascript"> $(document).ready(function(){ $("a.logolink").css("font-family","Helvetica"); $("a.logolink").css("font-family","steinerregular"); }); </script> <div id="system-message-box" class="alert hideme"> <div style="float: right; margin-left: 10px;"><a onclick="hideSystemMessage()"><span class="glyphicon glyphicon-remove"></span></a></div> <div style="float: left; margin: 5px; margin-top: 5px; margin-right: 10px"><img src="" alt="system message icon" /></div> <div style="margin-left: 10px; padding-top: 3px; padding-bottom: 5px;" id="system-message-box-content"></div> <div style="text-align: right"> <button id="btnDeleteUserMessage" class="btn btn-default" onclick="deleteUserMessage()">Delete Message</button> </div> </div><div class="page" style="width: 1300px;"> <div id="runner-content" class="runner-content"> <form id="runnerForm" action="INSPIRE-Expert" method="POST" autocomplete="off"><input id="survey.id" name="survey.id" type="hidden" value="731257"/><input id="survey.uniqueId" name="survey.uniqueId" type="hidden" value="7ab2f8c2-8cd6-41aa-84a6-8cec493851e2"/><input id="language.code" name="language.code" type="hidden" value="EN"/><input type="hidden" name="uniqueCode" id="uniqueCode" value="cdf2c5a7-a866-422e-88ed-2203b9ee9a69" /> <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=625447edf6ac2f69bd9ee79032f971bb3c1ea311"></script> <script type="text/javascript" src="/eusurvey/resources/js/d3.layout.cloud.min.js?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311"></script> <script type="text/javascript" src="/eusurvey/resources/js/wordcloud.js?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311"></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 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> <h1 class="surveytitle">INSPIRE Expert</h1><br /> <div class="info-box" style="width: 400px; max-width: 100%;"> <div style="float: right; margin-top: -5px; margin-right: -5px;"> <button type="button" class="unstyledbutton" onclick="$(this).closest('.info-box').hide();" aria-label="Close info message"><span class="glyphicon glyphicon-remove"></span></button> </div> Fields marked with * are mandatory.</div> <span class="introduction"></span> <div id="page-tabs" class="panel panel-default" style="margin-top:20px;"> <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="114645087" id="tab0" class="pagebutton active" data-toggle="" title=""> <a href="#page0" style="cursor:pointer;" onclick="return selectPage(0);"> Start</a> </li> </ul> </div> </div> </div> <div style="clear: left"></div> <div class="single-page" tabindex="-1" id="page0" onmouseleave="validateLastContainer()"> <fieldset> <legend>Image</legend> <div class="elementwrapper"> <div class="emptyelement survey-element 5" id="114645087" data-id="114645087" data-uid="5c85cab9-1b52-bbdd-10ae-e6da75321d75"> <a class="survey-element-anchor" id="E114645087"></a> <img alt="wait animation" src="/eusurvey/resources/images/ajax-loader.gif"/> </div> </div> </fieldset> <fieldset> <legend>Text</legend> <div class="elementwrapper"> <div class="emptyelement survey-element 5" id="114645088" data-id="114645088" data-uid="d9e1c1c3-8ea5-ea7a-6fa2-c935a2a4a5f3"> <a class="survey-element-anchor" id="E114645088"></a> <img alt="wait animation" src="/eusurvey/resources/images/ajax-loader.gif"/> </div> </div> </fieldset> <fieldset> <legend>Section</legend> <div class="elementwrapper"> <div class="emptyelement survey-element 5" id="114645089" data-id="114645089" data-uid="4d7685f7-57c3-b11e-60cc-fadd264dfa03"> <a class="survey-element-anchor" id="E114645089"></a> <img alt="wait animation" src="/eusurvey/resources/images/ajax-loader.gif"/> </div> </div> </fieldset> <fieldset> <legend>FreeTextQuestion</legend> <div class="elementwrapper"> <div class="emptyelement survey-element 5" id="114645090" data-id="114645090" data-uid="67055abd-aa80-f7a6-ee89-8fabaed29cf5"> <a class="survey-element-anchor" id="E114645090"></a> <img alt="wait animation" src="/eusurvey/resources/images/ajax-loader.gif"/> </div> </div> </fieldset> <fieldset> <legend>FreeTextQuestion</legend> <div class="elementwrapper"> <div class="emptyelement survey-element 5" id="114645091" data-id="114645091" data-uid="e1d5fa02-d395-97f2-41e0-1832c7fd99ea"> <a class="survey-element-anchor" id="E114645091"></a> <img alt="wait animation" src="/eusurvey/resources/images/ajax-loader.gif"/> </div> </div> </fieldset> <fieldset> <legend>EmailQuestion</legend> <div class="elementwrapper"> <div class="emptyelement survey-element 5" id="114645092" data-id="114645092" data-uid="8d8bc19e-e664-02d2-e488-9c2760583201"> <a class="survey-element-anchor" id="E114645092"></a> <img alt="wait animation" src="/eusurvey/resources/images/ajax-loader.gif"/> </div> </div> </fieldset> <fieldset> <legend>FreeTextQuestion</legend> <div class="elementwrapper"> <div class="emptyelement survey-element 5" id="114645093" data-id="114645093" data-uid="5368839a-8d76-3196-6ee6-dc1114761f55"> <a class="survey-element-anchor" id="E114645093"></a> <img alt="wait animation" src="/eusurvey/resources/images/ajax-loader.gif"/> </div> </div> </fieldset> <fieldset> <legend>FreeTextQuestion</legend> <div class="elementwrapper"> <div class="emptyelement survey-element 5" id="114645094" data-id="114645094" data-uid="74de566d-2cf5-c77e-3bcb-9661d9afb938"> <a class="survey-element-anchor" id="E114645094"></a> <img alt="wait animation" src="/eusurvey/resources/images/ajax-loader.gif"/> </div> </div> </fieldset> <fieldset> <legend>SingleChoiceQuestion</legend> <div class="elementwrapper"> <div class="emptyelement survey-element 5" id="114645095" data-id="114645095" data-uid="ad2e2328-fa31-a040-b24d-7cb6a41d8730"> <a class="survey-element-anchor" id="E114645095"></a> <img alt="wait animation" src="/eusurvey/resources/images/ajax-loader.gif"/> </div> </div> </fieldset> <fieldset> <legend>FreeTextQuestion</legend> <div class="elementwrapper"> <div class="emptyelement survey-element 5" id="114645289" data-id="114645289" data-uid="8faa66c0-d387-7457-8bee-0a5358cf4192"> <a class="survey-element-anchor" id="E114645289"></a> <img alt="wait animation" src="/eusurvey/resources/images/ajax-loader.gif"/> </div> </div> </fieldset> <fieldset> <legend>FreeTextQuestion</legend> <div class="elementwrapper"> <div class="emptyelement survey-element 5" id="114645290" data-id="114645290" data-uid="34116479-f995-41a0-d872-89e604d7fd6c"> <a class="survey-element-anchor" id="E114645290"></a> <img alt="wait animation" src="/eusurvey/resources/images/ajax-loader.gif"/> </div> </div> </fieldset> <fieldset> <legend>FreeTextQuestion</legend> <div class="elementwrapper"> <div class="emptyelement survey-element 5" id="114645291" data-id="114645291" data-uid="4481280a-b2f2-ff4f-6871-c2a03cce703f"> <a class="survey-element-anchor" id="E114645291"></a> <img alt="wait animation" src="/eusurvey/resources/images/ajax-loader.gif"/> </div> </div> </fieldset> <fieldset> <legend>Section</legend> <div class="elementwrapper"> <div class="emptyelement survey-element 5" id="114645292" data-id="114645292" data-uid="f2df47d8-846d-cd28-e819-af22a505629b"> <a class="survey-element-anchor" id="E114645292"></a> <img alt="wait animation" src="/eusurvey/resources/images/ajax-loader.gif"/> </div> </div> </fieldset> <fieldset> <legend>Confirmation</legend> <div class="elementwrapper"> <div class="emptyelement survey-element 5" id="114645293" data-id="114645293" data-uid="fae151db-ffe3-84ac-251a-c1d99152ef55"> <a class="survey-element-anchor" id="E114645293"></a> <img alt="wait animation" src="/eusurvey/resources/images/ajax-loader.gif"/> </div> </div> </fieldset> <fieldset> <legend>Download</legend> <div class="elementwrapper"> <div class="emptyelement survey-element 5" id="114645294" data-id="114645294" data-uid="a7217a84-de20-0443-d039-0dc04210d7fb"> <a class="survey-element-anchor" id="E114645294"></a> <img alt="wait animation" src="/eusurvey/resources/images/ajax-loader.gif"/> </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;"> <button type="button" id="btnPrevious" style="display: none;" role="button" aria-label="Go to previous page" data-toggle="" title="" onclick="previousPage();this.blur();" onfocusin="validateLastContainer()" class="btn btn-default">Previous</button> <button type="button" role="button" id="btnSubmit" onclick="validateInputAndSubmitRunner($('#runnerForm'));" onfocusin="validateLastContainer()" class="btn btn-primary hidden">Submit</button> <button type="button" id="btnNext" style="display: none;" role="button" aria-label="Go to next page" data-toggle="" title="" onclick="nextPage(); this.blur();" onfocusin="validateLastContainer()" class="btn btn-default btn-primary">Next</button> </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  <button type="button" class="unstyledbutton link visiblelink css-switch disabled" id="css-switch-disabled" onclick="switchCss('runner','wcag');">Accessibility Mode</button> </div> <div id="enhancedcss" class="hideme"> <button type="button" class="unstyledbutton link css-switch normal" id="css-switch-normal" onclick="switchCss('runner','standard');">Standard</button>  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" oninput="changeLanguageSelectOption('runner')"> <option value="EN" selected="selected">English</option> </select> <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-envelope" style="vertical-align: middle"></i> <a class="link" href="mailto:JRC-T1-DP@ec.europa.eu">JRC-T1-DP@ec.europa.eu</a> <hr style="margin-top: 15px;" /> <input type="button" id="btnSaveDraft" value="Save as Draft" onclick="saveDraft('runner');" class="btn btn-default hidden" style="margin-top: 10px" /> <br /><br /> <a data-toggle="tooltip" aria-label="Report abuse - Opens in new window" 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." target="_blank" href="/eusurvey/home/reportAbuse?survey=731257" class="link visiblelink">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"> <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"> <button type="button" class="btn btn-default" onclick="confirmExplanationDeletion()">Confirm</button> <button type="button" class="btn btn-primary" onclick="hideModalDialog('.confirm-explanation-deletion-modal')">Cancel</button> </div> </div> </div> </div> <div class="modal" id="quizTimeoutDialog" data-backdrop="static" role="dialog"> <div class="modal-dialog"> <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 tabindex="0" class="btn btn-default" data-dismiss="modal">Close</a> </div> </div> </div> </div> <script type="text/javascript" src="/eusurvey/resources/js/jquery.textarea-expander.js?version=625447edf6ac2f69bd9ee79032f971bb3c1ea311"></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"> <button type="button" class="btn btn-default" onclick="openAskEmailToSendLinkDialog(this)"> Send by E-mail</button> <button type="button" class="btn btn-primary" onclick="hideModalDialog($('#contribution-link-dialog'))">Continue</button> </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> <label for="delphiemail">E-mail</label> <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"> <button type="button" class="btn btn-primary" onclick="sendDelphiMailLink()">Send</button> <button type="button" class="btn btn-default" onclick="cancelDelphiMailLink()">Cancel</button> </div> </div> </div> </div> <script type="text/javascript"> var surveyUniqueId = "7ab2f8c2-8cd6-41aa-84a6-8cec493851e2"; var labelOf = " of "; function tabpress(event){ if (event.key === "Tab"){ if (event.shiftKey){ //If tabbing backwards and this is not the first radio button if (!event.target.matches(":first-of-type")){ //Focus the previous radio button event.target.previousElementSibling.previousElementSibling.focus() event.preventDefault() } } else { //If tabbing forwards and this is not the last radio button if (!event.target.matches(":last-of-type")){ //Focus the next radio button event.target.nextElementSibling.nextElementSibling.focus() event.preventDefault() } } } } function goToNextQuestion(link) { let next_question = $(link).closest("fieldset").next(); $('html, body').animate({ 'scrollTop' : next_question.position().top - 20 }); let focusable = [...next_question.get(0).querySelectorAll('button, [href], input, select, textarea, img, [tabindex]:not([tabindex="-1"])')]; focusable= focusable.filter( el => !el.hasAttribute('disabled') && !el.getAttribute('aria-hidden') && el.type != "hidden", ); focusable[0].focus(); } </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()}" /> <label hidden><textarea data-bind="text: originalTitle, attr: {'name': 'text' + id()}" ></textarea>Original title</label> <!-- /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()}" /> <label hidden><textarea data-bind="text: originalTitle, attr: {'name': 'text' + id()}" ></textarea>Original title</label> <!-- /ko --> </div> <div id="formula-template"> <label for="defaultFormulaTemplateID" 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 --> <!-- ko if: (min() == 0 || min() == null) && (max() == 0 || max() == null) --> <div class='limits' data-bind="attr: {id: 'questioninfo' + id()}"></div> <!-- /ko --> <input id="defaultFormulaTemplateID" 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()}" /> <label hidden><textarea data-bind="text: originalTitle, attr: {'name': 'text' + id()}" ></textarea>Original title</label> <label hidden><textarea data-bind="text: help, attr: {'name': 'help' + id()}" ></textarea>Help</label> <!-- /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%" alt="Image Item" data-bind="attr: {'src': url, 'alt': originalTitle() + (longdesc != '' ? '; URL ' + longdesc() : ''), 'width': usedwidth() > 0 ? usedwidth() : ''}" /> </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()}" /> <label hidden><textarea data-bind="text: originalTitle, attr: {'name': 'text' + id()}" ></textarea>Original title</label> <!-- /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()}" /> <label hidden><textarea data-bind="text: originalTitle, attr: {'name': 'text' + id()}" ></textarea>Original title</label> <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 --> <span class='questiontitle' data-bind="attr: {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> </span> <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':' 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 id="defaultSCLikertTemplateID" data-bind="enable: !$parents[0].readonly() && !$parents[0].foreditor, checked: getPAByQuestion2($parents[0].uniqueId(), uniqueId(), id()), attr: {'data-id': $parents[0].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(), id: 'answer' + id(), value: id(), 'aria-labelledby': 'answerlabel' + id()}" type="radio" /> <div><label for="defaultSCLikertTemplateID" 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(), for: 'answer' + id()}"> <span class="screen-reader-only">Answer</span> <span data-bind="html: titleForDisplayMode($parents[0].displayMode())"></span> </label></div> </div> <!-- /ko --> <div style="clear: both"></div> </div> <!-- ko if: foreditor --> <!-- ko foreach: possibleAnswers() --> <div class="possibleanswerrow hidden"> <div class="answertext" data-bind="html: title, attr: {'id' : id(), 'data-id' : id()}"></div> </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':'questionhelp' + id()}"> <tr class="hideme"> <th>radio button</th> <th>label</th> </tr> <!-- ko foreach: orderedPossibleAnswersByRows(false, false) --> <tr class="possibleanswerrow"> <!-- ko foreach: $data --> <td style="vertical-align: top"> <!-- ko ifnot: id() == 'dummy' --> <input id="defaultSCRadioTemplateID" 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(), 'previousvalue': getPAByQuestion2($parents[1].uniqueId(), uniqueId(), id()) != '' ? 'checked' : 'false'}", type="radio" /> <!-- /ko --> </td> <td style="vertical-align: top; padding-right: 15px;"> <!-- ko ifnot: id() == 'dummy' --> <label for="defaultSCRadioTemplateID" data-bind="attr: {'for': id, 'id': 'answerlabel' + id()}"> <span class="screen-reader-only">Answer</span> <div class="answertext" data-bind="html: titleForDisplayMode($parents[1].displayMode()), attr: {'data-id' : id()}"></div> </label> <!-- /ko --> </td> <!-- /ko --> </tr> <!-- /ko --> </table> <!-- /ko --> <!-- ko if: useSelectBox --> <div class="answer-column"> <!-- ko if: isTargetDatasetQuestion() --> <select id="defaultSCSelectTemplateID" data-bind="value: getTargetDatasetByQuestion(uniqueId()), attr: {'id': 'dataset' + id(), 'oninput': !foreditor ? 'checkTargetDataset(this);' : '', 'data-id':id(), 'data-shortname': shortname(), 'name' : 'answer' + id(), 'data-value': getTargetDatasetByQuestion(uniqueId()), 'class': css + ' single-choice targetdatasetselect', 'aria-labelledby':'questiontitle' + id(), 'aria-describedby':'questionhelp' + id()}" > <option value=''></option> <!-- ko foreach: targetDatasets() --> <option data-bind="html: strip_tags(name), attr: {value: id}"></option> <!-- /ko --> </select> <!-- /ko --> <!-- ko if: !isTargetDatasetQuestion() --> <select id="defaultSCSelectTemplateID" data-bind="foreach: orderedPossibleAnswers(false), enable: !readonly(), valueAllowUnset: true, value: getPAByQuestion3(uniqueId()), attr: {'id': 'answer' + id(), 'oninput': !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':'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 --> <label for="defaultSCSelectTemplateID" data-bind="attr: {'for': 'answer' + id()}" hidden> <span class="screen-reader-only">Select box</span> </label> <!-- ko if: foreditor --> <!-- ko foreach: possibleAnswers() --> <div class="possibleanswerrow hidden"> <div class="answertext" data-bind="html: title, attr: {'id' : id(), 'data-id' : id()}"></div> </div> <!-- /ko --> <!-- /ko --> </div> <!-- /ko --> <!-- /ko --> <!-- ko if: useButtons --> <table class="answers-table" role="radiogroup" data-bind="attr: {'aria-labelledby':'questiontitle' + id(), 'aria-describedby':'questionhelp' + id()}"> <tr class="possibleanswerrow"> <th style='padding: 2px; display: flex; align-items: center; flex-wrap: wrap'> <!-- ko foreach: orderedPossibleAnswers(false) --> <!-- ko ifnot: id() == 'dummy' --> <input id="defaultSCButtonTemplateID" tabindex="0" style="clip-path: circle(0); position: absolute;" type="radio" onkeydown="tabpress(event)" data-bind="enable: !$parent.readonly() && !$parent.foreditor, checked: getPAByQuestion2($parent.uniqueId(), uniqueId(), id()), attr: {'data-id': $parent.id() + '' + id(), 'id': id(), 'data-shortname': shortname(), 'data-dependencies': dependentElementsString(), onkeyup: 'singleKeyUp(event, this, '+$parent.readonly()+')', onclick: $parent.readonly() ? 'return false;' : 'singleClick(this); checkDependenciesAsync(this);', class: $parent.css + ' trigger check', name: 'answer' + $parent.id(), value: id(), 'aria-labelledby': 'answerlabel' + id(), 'previousvalue': getPAByQuestion2($parent.uniqueId(), uniqueId(), id()) != '' ? 'checked' : 'false'}" /> <label for="defaultSCButtonTemplateID" class="choice-button-label answertext" data-bind="attr: {'for': id, 'id': 'answerlabel' + id(), 'data-id' : id()}"> <span class="screen-reader-only">Answer</span> <span data-bind="html: titleForDisplayMode($parent.displayMode())"></span> </label> <!-- /ko --> <!-- /ko --> </th> </tr> </table> <!-- /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: 0, attr: {'name': 'choicemin' + id()}" /> <input type="hidden" data-bind="value: 0, attr: {'name': 'choicemax' + id()}" /> <label hidden><textarea data-bind="text: originalTitle, attr: {'name': 'text' + id()}" ></textarea>Original title</label> <label hidden><textarea data-bind="text: help, attr: {'name': 'help' + id()}" ></textarea>Help</label> <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()}" /> <input type="hidden" data-bind="value: isTargetDatasetQuestion(), attr: {'name': 'isTargetDatasetQuestion' + id()}" /> <input type="hidden" data-bind="value: displayAllQuestions, attr: {'name': 'displayAllQuestions' + id()}" /> <input type="hidden" data-bind="value: isSAQuestion(), attr: {'name': 'isSAQuestion' + id()}" /> <input type="hidden" data-bind="value: evaluationCriterion(), attr: {'name': 'evaluationCriterion' + id()}" /> <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()}" /> <label hidden><textarea data-bind="text: title, attr: {'name': 'answer' + $parent.id(), 'data-id' : id()}" ></textarea>Title</label> <label hidden><textarea data-bind="text: originalTitle, attr: {'name': 'originalAnswer' + $parent.id(), 'data-id' : id()}" ></textarea>Original title</label> <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 --> </div> </div> <div id="multiple-choice-template"> <!-- ko if: optional() == false --> <span class="mandatory">*</span> <!-- /ko --> <span class='questiontitle' data-bind='attr: {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> </span> <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 --> <!-- ko if: minChoices() == 0 && maxChoices() == 0 --> <div class='limits' data-bind="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()}"> <tr class="hideme"> <th>checkbox</th> <th>label</th> </tr> <!-- ko foreach: orderedPossibleAnswersByRows(false, false) --> <tr class="possibleanswerrow" role="listitem"> <!-- ko foreach: $data --> <td style="vertical-align: top"> <!-- ko ifnot: id() == 'dummy' --> <input id="defaultMCCheckBoxTemplateID" data-bind="enable: !$parents[1].readonly() && !$parents[1].foreditor, checked: !$parents[1].foreditor && getPAByQuestionCheckBox($parents[1].uniqueId(), uniqueId()).indexOf(uniqueId()) > -1, attr: {'data-id': $parents[1].id() + '' + id(), 'id': id(), 'data-shortname': shortname(), 'data-exclusive': exclusive(), 'data-dependencies': dependentElementsString(), onclick: $parents[1].readonly() ? 'return false;' : 'findSurveyElementAndResetValidationErrors(this); singleClick(this); checkDependenciesAsync(this);', class: $parents[1].css + ' trigger check' + (exclusive() ? ' exclusive' : ''), 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 for="defaultMCCheckBoxTemplateID" 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 --> </table> <!-- /ko --> <!-- ko if: useListBox --> <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' : '') }"> <label for="defaultMCListBoxTemplateID" data-bind="attr: {for: id()}"> <button type="button" class="unstyledbutton" data-bind="attr: {'data-shortname': shortname(), 'onclick' : $parent.readonly() || $parent.foreditor ? 'return false;' : 'selectMultipleChoiceAnswer($(this)); propagateChange($(this)); event.stopImmediatePropagation();'}" > <span class="screen-reader-only">Answer</span> <span data-bind="html: strip_tags(title()), attr: {'data-id' : id(), 'id': 'answerlabel' + id()}" class="answertext"></span> </button> </label> <input id="defaultMCListBoxTemplateID" 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"> <div class="answertext" data-bind="html: title, attr: {'id' : id(), 'data-id' : id()}"></div> </div> <!-- /ko --> <!-- /ko --> </div> <div style="clear: both"></div> <!-- /ko --> <!-- ko if: isEVoteList --> <table role="list" collapsed data-bind="attr: {class:'answers-table evote-table ' + choiceTypeWithEVote(''), 'aria-labelledby':'questiontitle' + id(), 'aria-describedby':'questioninfo' + id() + ' questionhelp' + id()}"> <tr> <th style="width: 20px"> <span class="sr-only">Checkbox</span> </th> <th style="display: flex; flex-flow: row nowrap; justify-content: space-between; height: inherit; min-width: 155px;"> <div style="padding-right: 24px; align-self: center"> </div> <div class="evote-collapse" tabindex="0" onclick="$(this).closest('.evote-table').attr('collapsed', (_, val) => val == null ? '' : null); event.stopImmediatePropagation(); event.preventDefault()" onkeypress="$(this).closest('.evote-table').attr('collapsed', (_, val) => val == null ? '' : null); event.stopImmediatePropagation(); event.preventDefault()"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48"><path d="m24 30.75-12-12 2.15-2.15L24 26.5l9.85-9.85L36 18.8Z"></path></svg> </div> <span class="sr-only">label</span> </th> </tr> <!-- ko foreach: orderedPossibleAnswers(false) --> <tr class="possibleanswerrow" role="listitem"> <td> <!-- ko ifnot: id() == 'dummy' --> <input id="defaultMCEVoteElementsTemplateID" data-bind="enable: !$parent.readonly() && !$parent.foreditor, checked: !$parent.foreditor && getPAByQuestion($parent.uniqueId()).indexOf(uniqueId()) > -1, event: { evoteuncheck: ()=>{ element.checked } }, attr: {'data-id': $parent.id() + '' + id(), 'id': id(), 'data-shortname': shortname(), 'data-dependencies': dependentElementsString(), onclick: $parent.readonly() || $element.disabled ? 'return false;' : 'findSurveyElementAndResetValidationErrors(this); singleClick(this); checkDependenciesAsync(this); updateEVoteList(this);', class: $parent.css + ' trigger check evote-candidate', name: 'answer' + $parent.id(), value: id(), 'aria-labelledby': 'answerlabel' + id()}" type="checkbox" /> <!-- /ko --> </td> <td style="padding-right: 10px;"> <!-- ko ifnot: id() == 'dummy' --> <label for="defaultMCEVoteElementsTemplateID" 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> </tr> <!-- /ko --> </table> <!-- /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: choiceType, 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()}" /> <label hidden><textarea data-bind="text: originalTitle, attr: {'name': 'text' + id()}" ></textarea>Original title</label> <label hidden><textarea data-bind="text: help, attr: {'name': 'help' + id()}" ></textarea>Help</label> <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 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()}" /> <label hidden><textarea data-bind="text: title, attr: {'name': 'answer' + $parent.id(), 'data-id' : id()}" ></textarea>Title</label> <label hidden><textarea data-bind="text: originalTitle, attr: {'name': 'originalAnswer' + $parent.id(), 'data-id' : id()}" ></textarea>Original title</label> <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()}" /> <input type="hidden" data-bind="value: exclusive, attr: {'name': 'exclusive' + $parent.id(), 'data-id' : id()}" /> <!-- /ko --> <!-- /ko --> </div> </div> <div id="ranking-question-template"> <!-- ko if: optional() == false --> <span class="mandatory">*</span> <!-- /ko --> <span class='questiontitle' data-bind='attr: {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> </span> <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()}" /> <input type="hidden" data-bind="value: useAndLogic, attr: {'name': 'useAndLogic' + id()}" /> <label hidden><textarea data-bind="text: originalTitle, attr: {'name': 'text' + id()}" ></textarea>Original title</label> <label hidden><textarea data-bind="text: help, attr: {'name': 'help' + id()}" ></textarea>Help</label> <div class="ranking-question-initial-answer-message" data-bind="hidden: isAnswered"> Use drag&drop or the up/down buttons to change the order or <button type="button" class="unstyledbutton ranking-question-initial-answer-clickable" data-bind="attr: {'aria-owns': 'ranking-item-list-container' + id()}">accept the initial order</button>.</div> <!-- /ko --> <div role="group" data-bind="attr: {id: 'answer' + id(), 'aria-labelledby': 'questiontitle' + id(), 'aria-describedby' : 'questionhelp' + id() + ' listorderinfo' + id()}"> <!-- ko ifnot: foreditor --> <div class="ranking-question-initial-answer-message" data-bind="if: !isAnswered()"> Use drag&drop or the up/down buttons to change the order or <button type="button" class="unstyledbutton ranking-question-initial-answer-clickable" data-bind="click: acceptInitialAnswer, attr: {'aria-owns': id(), id: 'acceptInitialRanking' + id(), 'aria-describedby' : 'listorderinfo' + id()}">accept the initial order</button>.</div> <div class="question-reset-answer-message" data-bind="if: isAnswered()"> <button type="button" class="unstyledbutton" 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()}"> <!-- ko ifnot: foreditor --> <span class="screen-reader-only" data-bind="attr: {id: 'listorderinfo' + id()}"> <span data-bind="html: getInitialOrderInfoText()"></span> <!-- ko foreach: orderedRankingItems() --> <span data-bind="html: title()"></span> <!-- /ko --> </span> <!-- /ko --> <div class="rankingitem-list" role="list"> <!-- ko foreach: orderedRankingItems() --> <div role="listitem" class="rankingitem-form-data focussable" data-bind="attr: {'aria-labelledby': id()}"> <div class="rankingitem-decoration">⠿</div> <button type="button" role="button" class="unstyledbutton rankingitem-button" data-toggle="tooltip" title="Move up" data-bind="click: onMoveUp, event: { keydown: onKeyDownMoveItemUp }, attr: {'aria-label' : title() + ' Move up'}"><span class="glyphicon glyphicon-arrow-up"></span></button> <button type="button" role="button" class="unstyledbutton rankingitem-button" data-toggle="tooltip" title="Move down" data-bind="click: onMoveDown, event: { keydown: onKeyDownMoveItemDown }, attr: {'aria-label' : title() + ' Move down'}"><span class="glyphicon glyphicon-arrow-down"></span></button> <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()}" /> <label hidden><textarea data-bind="text: title(), attr: {'name': 'rankingitemtitle' + $parents[0].id(), 'data-id' : id()}" ></textarea>Title</label> <label hidden><textarea data-bind="text: originalTitle(), attr: {'name': 'rankingitemoriginaltitle' + $parent.id(), 'data-id' : id()}" ></textarea>Original title</label> </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()}" type="text"></input> <!-- /ko --> </div> </div> <div id="password-template"> <!-- ko if: optional() == false --> <span class="mandatory">*</span> <!-- /ko --> <label for="defaultPasswordTemplateID" 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 id="defaultPasswordTemplateID" 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()}" onfocus="clearStars(this);" onkeyup="countChar(this); propagateChange(this);" onblur="validateInput($(this).parent(), true)" autocomplete="off" type="password"></input> <!-- ko if: isComparable --> <br /><label for="defaultPasswordSecondTemplateID" style="margin-left: 20px" data-bind="attr: {'for' : 'secondanswer' + id()}">Please repeat</label>:<br /> <input id="defaultPasswordSecondTemplateID" 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"></input> <!-- /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()}" /> <label hidden><textarea data-bind="text: help, attr: {'name': 'help' + id()}" ></textarea>Help</label> <label hidden><textarea data-bind="text: originalTitle, attr: {'name': 'text' + id()}" ></textarea>Original title</label> <!-- 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 --> <!-- ko if: maxCharacters() > 0 --> <label for="defaultFreetextBiggerZeroTemplateID" 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> <!-- /ko --> <!-- ko if: maxCharacters() == 0 --> <label for="defaultFreetextZeroTemplateID" 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> <!-- /ko --> <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: minCharacters() == 0 && maxCharacters() == 0 --> <div class='limits' data-bind="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()}" /> <label hidden><textarea data-bind="text: help, attr: {'name': 'help' + id()}" ></textarea>Help</label> <label hidden><textarea data-bind="text: originalTitle, attr: {'name': 'text' + id()}" ></textarea>Original title</label> <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 id="defaultFreetextBiggerZeroTemplateID" class="data" data-bind="enable: !readonly(), value:getValueByQuestion(uniqueId(), true), 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="You have less than 5 characters left." aria-label="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.">Character limit reached.</span> </div> <!-- /ko --> <!-- /ko --> <!-- ko if: maxCharacters() == 0 --> <textarea id="defaultFreetextZeroTemplateID" data-bind="enable: !readonly(), value:getValueByQuestion(uniqueId(), true), 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 /><label for="defaultFreetextSecondTemplateID" style="margin-left: 20px" data-bind="attr: {'for' : 'secondanswer' + id()}">Please repeat</label>:<br /> <textarea id="defaultFreetextSecondTemplateID" data-bind="enable: !readonly(), attr: {'data-id':id() + '2', 'class': 'comparable-second ' + css() + ' expand', 'data-rows':numRows, 'rows':numRows(), 'name' : 'secondanswer' + id(), 'id' : '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 for="defaultConfirmationTemplateID" 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 --> <button type="button" class="unstyledbutton confirmationlabel" style="margin-left: 40px; cursor: pointer;" onclick="$(this).parent().find('.confirmation-dialog').modal('show')" data-bind="html:confirmationlabel">Show</button> <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"> <button type="button" class="btn btn-primary" onclick="$(this).closest('.confirmation-dialog').modal('hide');">Cancel</button> </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 id="defaultConfirmationTemplateID" 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/7ab2f8c2-8cd6-41aa-84a6-8cec493851e2/' + 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()}" /> <label hidden><textarea data-bind="text: originalTitle, attr: {'name': 'text' + id()}" ></textarea>Original title</label> <label hidden><textarea data-bind="text: help, attr: {'name': 'help' + id()}" ></textarea>Help</label> <label hidden><textarea data-bind="text: confirmationtext, attr: {'name': 'confirmationtext' + id()}" ></textarea>Confirmation Text</label> <label hidden><textarea data-bind="text: confirmationlabel, attr: {'name': 'confirmationlabel' + id()}" ></textarea>Confirmation Label</label> <!-- /ko --> </div> <div id="rating-template"> <div class='questiontitle' data-bind='attr: {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> </div> <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()}" /> <label hidden><textarea data-bind="text: originalTitle, attr: {'name': 'text' + id()}" ></textarea>Original title</label> <label hidden><textarea data-bind="text: help, attr: {'name': 'help' + id()}" ></textarea>Help</label> <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()}" /> <label hidden><textarea data-bind="text: originalTitle, attr: {'name': 'question' + $parent.id(), 'data-id' : id()}" ></textarea>Original title</label> </div> <!-- /ko --> </div> <!-- /ko --> <table class="ratingtable" role="list" data-bind="attr: {'aria-labelledby':'questiontitle' + id(), 'aria-describedby':'questionhelp' + id()}"> <thead> <tr> <th class="sr-only">Rating Item</th> <th class="sr-only">Rating</th> </tr> </thead> <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 --> <span data-bind="html: title, attr:{id: 'answerlabel' + id()}"></span> <!-- ko if: $parents[0].ismobile || $parents[0].istablet --> <input data-bind="value:getValueByQuestion(uniqueId(), true), attr: {'id': 'input' + id(), 'data-id':id(), 'name' : 'answer' + id(), 'class' : 'rating ' + css()}" data-type="rating" type="hidden"></input> <div data-bind="foreach: new Array($parent.numIcons())"> <button type="button" class="unstyledbutton ratingitem" role="listitem" 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" alt="Rating Item" 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" alt="Rating Item" 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" alt="Rating Item" data-bind="title: $index()+1, attr: {'alt': $index()+1 + ' / ' + $parents[1].numIcons(), 'aria-label': $parent.title() + ' ' + ($index()+1) + labelOf + $parents[1].numIcons()}" /> <!-- /ko --> </button> </div> <!-- /ko --> </td> <!-- ko if: !$parents[0].ismobile && !$parents[0].istablet --> <td> <input data-bind="value:getValueByQuestion(uniqueId(), true), attr: {'id': 'input' + id(), 'data-id':id(), 'name' : 'answer' + id(), 'class' : 'rating ' + css()}" data-type="rating" type="hidden"></input> <div data-bind="foreach: new Array($parent.numIcons())"> <button type="button" class="unstyledbutton ratingitem" role="listitem" 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" alt="Rating Item" 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" alt="Rating Item" 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" alt="Rating Item" data-bind="title: $index()+1, attr: {'alt': $index()+1 + ' / ' + $parents[1].numIcons(), 'aria-label': $parent.title() + ' ' + ($index()+1) + labelOf + $parents[1].numIcons()}" /> <!-- /ko --> </button> </div> </td> <!-- /ko --> </tr> </tbody> </table> </div> <div id="number-template"> <!-- ko if: optional() == false --> <span class="mandatory">*</span> <!-- /ko --> <!-- ko if: display() == 'Slider' --> <label for="defaultNumberSliderTemplateID" 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 role="group" data-bind="hidden: isAnswered, attr: {'aria-labelledby': 'questiontitle' + id(), 'aria-describedby' : 'questioninfo' + id() + ' questionhelp' + id()}"> <div class="limits" data-bind="hidden: isAnswered, attr: {id: 'questioninfo' + id()}"> <!-- ko ifnot: foreditor --> Move the slider or <button type="button" class="unstyledbutton" data-bind="click: markAsAnswered, attr: {'aria-hidden': isAnswered, id: 'acceptInitialSlider' + id()}">accept the initial position</button>.<!-- /ko --> <!-- ko if: foreditor --> Move the slider or <button type="button" class="unstyledbutton">accept the initial position</button>.<!-- /ko --> </div> </div> <!-- /ko --> <!-- ko if: display() != 'Slider' --> <label for="defaultNumberTemplateID" 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 --> <!-- ko if: (min() == 0 || min() == null) && (max() == 0 || max() == null) --> <div class='limits' data-bind="attr: {id: 'questioninfo' + id()}"></div> <!-- /ko --> <input id="defaultNumberTemplateID" data-bind="enable: !readonly(), value:getValueByQuestion(uniqueId(), true), 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" ></input><span class="unit-text" data-bind="html: unit"></span> <!-- /ko --> <!-- ko if: display() == 'Slider' --> <div class="question-reset-answer-message" data-bind="hidden: !isAnswered()"> <button type="button" class="unstyledbutton" data-bind="click: resetToInitialPosition, attr: {id: 'resetSlider' + id(), 'aria-describedby' : 'questiontitle' + id()}">Reset to initial position</button> </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 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"/></svg></a> <input id="defaultNumberSliderTemplateID" 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 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"/></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()}" /> <label hidden><textarea data-bind="text: originalTitle, attr: {'name': 'text' + id()}" ></textarea>Original title</label> <label hidden><textarea data-bind="text: help, attr: {'name': 'help' + id()}" ></textarea>Help</label> <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 for="defaultEmailTemplateID" 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 id="defaultEmailTemplateID" data-bind="enable: !readonly(), value:getValueByQuestion(uniqueId(), true), 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()}" /> <label hidden><textarea data-bind="text: originalTitle, attr: {'name': 'text' + id()}" ></textarea>Original title</label> <label hidden><textarea data-bind="text: help, attr: {'name': 'help' + id()}" ></textarea>Help</label> <!-- /ko --> </div> <div id="date-template"> <!-- ko if: optional() == false --> <span class="mandatory">*</span> <!-- /ko --> <label for="defaultDateTemplateID" 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 --> <!-- ko if: min() == null && max() == null --> <div class='limits' data-bind="attr: {id: 'questioninfo' + id()}"></div> <!-- /ko --> <div class="input-group"> <!-- ko if: !foreditor && !readonly() --> <div class="input-group-addon" tabindex="0" onclick='$(this).parent().find(".datepicker").datepicker( "show" );' onfocus='$(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 id="defaultDateTemplateID" data-bind="enable: !readonly(), value:getValueByQuestion(uniqueId(), true), 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;"></input> </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()}" /> <label hidden><textarea data-bind="text: originalTitle, attr: {'name': 'text' + id()}" ></textarea>Original title</label> <label hidden><textarea data-bind="text: help, attr: {'name': 'help' + id()}" ></textarea>Help</label> <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 for="defaultTimeTemplateID" 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 --> <!-- ko if: (max() == null || max() == '') && (min() == null || min() == '') --> <div class='limits' data-bind="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 id="defaultTimeTemplateID" 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;"></input> </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()}" /> <label hidden><textarea data-bind="text: originalTitle, attr: {'name': 'text' + id()}" ></textarea>Original title</label> <label hidden><textarea data-bind="text: help, attr: {'name': 'help' + id()}" ></textarea>Help</label> <!-- /ko --> </div> <div id="upload-template"> <!-- ko if: optional() == false --> <span class="mandatory">*</span> <!-- /ko --> <label for="defaultUploadTemplateID" 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 id="defaultUploadTemplateID" type="hidden" data-bind="attr: {'id': 'answer' + id(), 'name':'answer' + id()}" value="files" /> <div class="uploaded-files" data-bind="foreach: getFileAnswer(uniqueId(), true)"> <div> <button type="button" class="unstyledbutton" data-toggle="tooltip" title="Remove uploaded file" data-bind="click: function() {deleteFile($parent.id(),'cdf2c5a7-a866-422e-88ed-2203b9ee9a69',$data,$('#uploadlink' + $parent.id()));return false;}, attr: {'id' : 'uploadlink' + $parent.id(), 'aria-label' : $data}"> <span style="margin-right: 10px;" class="glyphicon glyphicon-trash"></span> </button> <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()}" /> <label hidden><textarea data-bind="text: originalTitle, attr: {'name': 'text' + id()}" ></textarea>Original title</label> <label hidden><textarea data-bind="text: help, attr: {'name': 'help' + id()}" ></textarea>Help</label> <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"> <div class='questiontitle' data-bind='attr: {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> </div> <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':'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/7ab2f8c2-8cd6-41aa-84a6-8cec493851e2/' + 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()}" /> <label hidden><textarea data-bind="text: originalTitle, attr: {'name': 'text' + id()}" ></textarea>Original title</label> <label hidden><textarea data-bind="text: help, attr: {'name': 'help' + id()}" ></textarea>Help</label> <!-- /ko --> </div> <div id="gallery-template"> <!-- ko if: optional() == false --> <span class="mandatory">*</span> <!-- /ko --> <span id="defaultGalleryTemplateID" class='questiontitle' data-bind='attr: {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> </span> <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 --> <!-- ko ifnot: selection() && limit != null && limit() > 0 --> <div class='limits' data-bind="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()}"> <thead> <tr> <th class="sr-only">Photo Scenery"</th> <th class="sr-only">Photo Scenery"</th> </tr> </thead> <tbody> <tr> <td> <img alt="Photo Scenery" style="max-width: none;" src="/eusurvey/resources/images/photo_scenery.png" data-width="128" data-original-width="247" width="247px"> </td> <td> <img alt="Photo Scenery" 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-rowcount': rows().length, 'aria-labelledby':'questiontitle' + id(), 'aria-describedby':'questioninfo' + id() + ' questionhelp' + id()}" > <thead data-bind="foreach: rows"> <!-- ko if: $index() == 0 --> <tr data-bind="foreach: $data"> <th class="sr-only">Gallery Image Item</th> </tr> <!-- /ko --> </thead> <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 aria-labelledby="defaultGalleryTemplateID" data-bind="value: $parentContext.$index() * $parents[1].columns() + $index(), checked: getValueByQuestionGallery($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" alt="Gallery Image Item" data-bind="attr: {'alt': (desc() != '' ? desc() : 'Gallery Image' + $index()) + (longdesc != '' ? '; URL ' + longdesc() : ''), 'src':'/eusurvey/files/7ab2f8c2-8cd6-41aa-84a6-8cec493851e2/'+ 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'}" 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()}" /> <label hidden><textarea data-bind="text: comment, attr: {'name': 'comment' + ($parentContext.$index() * $parents[1].columns() + $index() + 1) + $parents[1].id()}" ></textarea>Comment</label> <!-- /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()}" /> <label hidden><textarea data-bind="text: originalTitle, attr: {'name': 'text' + id()}" ></textarea>Original title</label> <label hidden><textarea data-bind="text: help, attr: {'name': 'help' + id()}" ></textarea>Help</label> <!-- /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" data-bind="attr: {'style': 'overflow: auto; height: ' + ismobile ? '400px' : '600px;'}"> <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 aria-labelledby="defaultGalleryTemplateID" onclick="synchronizeGallerySelection(this)" type="checkbox" data-bind="attr: {'aria-labelledby': 'answerlabel' + $parent.id() + $index()}" /> </span> <!-- ko if: $parent.numbering() --> <span data-bind='html: ($index()+1) + "."'></span> <!-- /ko --> <span data-bind='html: name().replace("%20"," "), attr: {id: "answerlabel" + $parent.id() + $index()}'></span> </div> <img style="width: 95%;" alt="Gallery Image Item" data-bind="attr: {'alt': (desc() != '' ? desc() : 'Gallery Image' + $index()) + (longdesc != '' ? '; URL ' + longdesc() : ''), 'src':'/eusurvey/files/7ab2f8c2-8cd6-41aa-84a6-8cec493851e2/'+uid()}" /> <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()}" /> <label hidden><textarea data-bind="text: originalTitle, attr: {'name': 'text' + id()}" ></textarea>Original title</label> <label hidden><textarea data-bind="text: help, attr: {'name': 'help' + id()}" ></textarea>Help</label> <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 --> <div id="defaultMatrixTemplateID" class='questiontitle' data-bind='attr: {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> </div> <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 --> <!-- ko if: minRows() == 0 && maxRows() == 0 --> <div class='limits' data-bind="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()}" /> <label hidden><textarea data-bind="text: originalTitle, attr: {'name': 'text' + id()}" ></textarea>Original title</label> <!-- 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> <td class="matrix-header firstCell" data-bind="attr: {'data-id': id(), 'style': tableType() != 2 ? '' : 'width: ' + getWidth(widths(), 0)}"> <!-- ko if: foreditor --> <textarea aria-labelledby="defaultMatrixTemplateID" style="display: none" data-bind="text: firstCellText, attr: {'name': 'firstCellText' + id()}"></textarea> <!-- /ko --> <span class="matrixheadertitle" data-bind="html: firstCellText"></span> </td> <!-- ko foreach: answers --> <td 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()}" /> <label hidden><textarea data-bind="text: title, attr: {'name': 'text' + id()}" ></textarea>Title</label> <!-- /ko --> <span class="matrixheadertitle" data-bind="html: title"></span> </td> <!-- /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" data-bind="attr: {'data-originalposition': ($parent.originalIndex() * ($parents[1].columns() - 1)) + $index()}"> <input aria-labelledby="defaultMatrixTemplateID" 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()}" /> <label hidden><textarea data-bind="text: originalTitle, attr: {'name': 'text' + id()}" ></textarea>Original title</label> <label hidden><textarea data-bind="text: help, attr: {'name': 'help' + id()}" ></textarea>Help</label> <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 --> <div id="defaultTableTemplateID" class='questiontitle' data-bind='attr: {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> </div> <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':'questionhelp' + id()}" class="tabletable"> <tbody> <tr style="background-color: #eee;"> <td class="table-header firstCell" data-bind="attr: {'data-id': id(), 'style': tableType() != 2 ? '' : 'width: ' + getWidth(widths(), 0)}"> <!-- ko if: foreditor --> <textarea aria-labelledby="defaultTableTemplateID" style="display: none" data-bind="text: firstCellText, attr: {'name': 'firstCellText' + id()}"></textarea> <!-- /ko --> <span class="matrixheadertitle" data-bind="html: firstCellText"></span> </td> <!-- ko foreach: answers --> <td 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 aria-labelledby="defaultTableTemplateID" style="display: none" data-bind="text: originalTitle" ></textarea> <!-- /ko --> </td> <!-- /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 aria-labelledby="defaultTableTemplateID" style="display: none" data-bind="text: originalTitle" ></textarea> <!-- /ko --> </th> <!-- ko foreach: $parent.answers --> <td style="padding: 2px;"> <textarea aria-labelledby="defaultTableTemplateID" 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, true), 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"> <tr> <th class='area-header'>OPTIONAL: Please feel free to provide any additional comments</th> </tr> <tr> <td> <label hidden for="explanationTemplateID" data-bind="attr: {'for': 'explanation' + id()}">Explanation</label> <textarea id="explanationTemplateID" 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> <button type="button" class="unstyledbutton" data-toggle="tooltip" title="Remove uploaded file" data-bind="attr: {'id' : 'uploadlink' + $parent.id(), 'aria-label' : $data}, click: function() {deleteFile($parent.id(),'cdf2c5a7-a866-422e-88ed-2203b9ee9a69',$data,$('#uploadlink' + $parent.id()));return false;}"> <span style="margin-right: 10px;" class="glyphicon glyphicon-trash"></span> </button> <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> </table> </div> <!-- /ko --> </div> <div class="col-md-6" style="padding:0;"> <!-- ko if: !foreditor --> <div class="chart-wrapper-loader"> <img alt="wait animation" 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"> <tr> <th class="area-header"> <span>Statistics</span> <a onclick="loadGraphDataModal(this)" class="glyphicon glyphicon-resize-full delphi-chart-expand" data-toggle="tooltip" title="Expand" aria-label="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> </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"> <button type="button" class="btn btn-primary disabled" data-type="delphisavebutton" onclick="if (!$(this).hasClass('disabled')) { delphiUpdate($(this).closest('.survey-element')) }">Save</button> <span class="inline-loader"> <img alt="wait animation" class="center" src="/eusurvey/resources/images/ajax-loader.gif"/> </span> <br /><br /> <button type="button" data-type="delphireturntostart" class="unstyledbutton link" style="margin-right: 20px;" onclick="return checkGoToDelphiStart(this)">Return to start page</button> <button type="button" data-type="delphitonextquestion" class="unstyledbutton link delphitonextquestion" onclick="goToNextQuestion(this)">Go to next question</button> </div> <div class="delphiupdatemessage"></div> <!-- ko if: delphiTableNewComments() --> <div class="newdelphicomments label">There are new comments</div> <!-- /ko --> </div> </div> <div class="modal delete-confirmation-dialog" role="dialog" data-backdrop="static"> <div class="modal-dialog modal-sm"> <div class="modal-content"> <div class="modal-body"> Do you really want to delete this comment?</div> <div class="modal-footer"> <a class="btn btn-default delete-confirmation-dialog__confirmation-button">Delete</a> <a class="btn btn-primary" onclick="hideModalDialog($(this).closest('.modal'))">Cancel</a> </div> </div> </div> </div> <!-- /ko --> </div> <div id="complextable-template"> <div class='questiontitle' data-bind='attr: {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> </div> <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', 'aria-labelledby':'questiontitle' + id(), 'aria-describedby':'questionhelp' + id()}"> <tr data-bind="if: showHeadersAndBorders() || foreditor"> <!-- ko foreach: answers() --> <!-- ko if: $index() == 0--> <td class="headercell cell" data-bind="html: title, attr:{'data-id': id(), colspan: columnSpan()}">placeholder</td> <!-- /ko --> <!-- ko ifnot: $index() == 0--> <th class="headercell cell" data-bind="html: title, attr:{'data-id': id(), colspan: columnSpan()}">placeholder</th> <!-- /ko --> <!-- /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()}">placeholder</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() --> <span id="defaultComplextableChildTemplateID" class='questiontitle' data-bind="attr: {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> </span> <!-- /ko --> <!-- ko ifnot: child.title() --> <div hidden class='questiontitle' data-bind="attr: {id: 'questiontitle' + child.id()}">Question</div> <!-- /ko --> <!-- ko if: child.help() --> <span class='questionhelp' data-bind="html: child.niceHelp(), attr:{id: 'questionhelp' + child.id()}"></span> <!-- /ko --> <!-- ko ifnot: child.help() --> <span hidden class='questionhelp' data-bind="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 --> <!-- ko if: (child.minCharacters() == 0 || child.minCharacters() == null) && (child.maxCharacters() == 0 || child.maxCharacters() == null) --> <div class='limits' data-bind="attr: {id: 'questioninfo' + child.id()}"></div> <!-- /ko --> <textarea aria-labelledby="defaultComplextableChildTemplateID" oninput="propagateChange(this)" data-bind="enable: child.foreditor == false && !child.readonly(), class: child.css(), value:getValueByQuestion(child.uniqueId(), true, $element), attr: {'name' : 'answer' + child.id(), rows: child.numRows(), maxlength: child.maxCharacters() > 0 ? child.maxCharacters() : '', onkeyup: child.maxCharacters() > 0 ? 'countChar(this);' : '', 'aria-labelledby':'questiontitle' + child.id(), 'aria-describedby':'questioninfo' + child.id() + ' questionhelp' + child.id()}"></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="You have less than 5 characters left." aria-label="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.">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 --> <!-- ko if: (child.min() == 0 || child.min() == null) && (child.max() == 0 || child.max() == null) --> <div class='limits' data-bind="attr: {id: 'questioninfo' + child.id()}"></div> <!-- /ko --> <input aria-labelledby="defaultComplextableChildTemplateID" 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" role="radiogroup" data-bind="attr: {'aria-labelledby':'questiontitle' + child.id(), 'aria-describedby':'questionhelp' + child.id()}"> <div style="display: table-row"> <!-- ko foreach: child.orderedPossibleAnswersByColumn(false, false) --> <div style="display: table-cell; padding-right: 10px"> <!-- ko foreach: $data --> <input aria-labelledby="defaultComplextableChildTemplateID" 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(), 'id': 'answer' + child.id(), 'aria-labelledby': 'questiontitle' + child.id(), class: child.css(), 'onclick': child.readonly() ? 'return false;' : 'checkSingleClick(this); propagateChange(this);', onkeyup: 'singleKeyUp(event, this, '+child.readonly()+')', 'previousvalue': getPAByQuestion(child.uniqueId(), $element).indexOf(uniqueId()) > -1 ? 'checked' : 'false'}" /> <span data-bind="html: title()"></span><br /> <!-- /ko --> </div> <!-- /ko --> </div> </div> <!-- /ko --> <!-- ko if: child && !child.useRadioButtons() --> <select aria-labelledby="defaultComplextableChildTemplateID" 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':'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.minChoices() == 0 && child.maxChoices() == 0 --> <div class='limits' data-bind="attr: {id: 'questioninfo' + child.id()}"></div> <!-- /ko --> <!-- ko if: child && child.useCheckboxes() --> <div class="complex-multitable" style="display: table"> <div style="display: table-row" role="list" data-bind="attr: {'aria-labelledby':'questiontitle' + child.id(), 'aria-describedby':'questioninfo' + child.id() + ' questionhelp' + child.id()}"> <!-- ko foreach: child.orderedPossibleAnswersByColumn(false, false) --> <div style="display: table-cell; padding-right: 10px"> <!-- ko foreach: $data --> <input aria-labelledby="defaultComplextableChildTemplateID" type="checkbox" onclick="resetValidationErrors($(this).closest('.cell'));propagateChange(this)" data-bind="enable: child.foreditor == false && !child.readonly(), checked: !child.foreditor && getPAByQuestionCheckBox(child.uniqueId(), uniqueId(), $element).indexOf(uniqueId()) > -1, value: id(), attr: {'name' : 'answer' + child.id(), 'id': 'answer' + child.id(), 'aria-labelledby': 'questiontitle' + 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' : '')}"> <label for="defaultComplexMCListBoxTemplateID" data-bind="attr: {for: id()}"> <button type="button" class="unstyledbutton" data-bind="attr: {'data-shortname': shortname(), 'onclick' : child.readonly() || child.foreditor ? 'return false;' : 'selectMultipleChoiceAnswer($(this)); propagateChange($(this)); event.stopImmediatePropagation();'}" > <span class="screen-reader-only">Answer</span> <span data-bind="html: strip_tags(title()), attr: {'data-id' : id(), 'id': 'answerlabel' + id()}" class="answertext"></span> </button> </label> <input id="defaultComplexMCListBoxTemplateID" 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 --> <!-- ko if: (child.min() == 0 || child.min() == null) && (child.max() == 0 || child.max() == null) --> <div class='limits' data-bind="attr: {id: 'questioninfo' + child.id()}"></div> <!-- /ko --> <input aria-labelledby="defaultComplextableChildTemplateID" 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(), true, $element), attr: {'name' : 'answer' + child.id(), min: child.min(), max: child.max(), 'data-shortname': child.shortname(), 'aria-labelledby':'questiontitle' + child.id(), 'aria-describedby':'questioninfo' + child.id() + ' questionhelp' + child.id()}"/> <!-- ko if: child.unit --> <span data-bind="text: child.unit"></span> <!-- /ko --> <!-- /ko --> </div> <!-- /ko --> </td> <!-- /ko --> <!-- /ko --> <!-- /ko --> </tr> <!-- /ko --> </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()}" /> <label hidden><textarea data-bind="text: originalTitle, attr: {'name': 'text' + id()}" ></textarea>Original title</label> <label hidden><textarea data-bind="text: help, attr: {'name': 'help' + id()}" ></textarea>Help</label> <input type="hidden" data-bind="value: childIds(), attr: {'name': 'childelements' + id()}" /> <div class="children"> <!-- ko foreach: orderedChildElements --> <div data-bind="attr: {'id' : 'child' + id()}"> <label hidden><textarea data-bind="text: originalTitle, attr: {'name': 'text' + id(), 'data-id': id()}" ></textarea>Original title</label> <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()}" /> <label hidden><textarea data-bind="text: help, attr: {'name': 'help' + id()}" ></textarea>Help</label> <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()}" /> <label hidden><textarea data-bind="text: title, attr: {'name': 'answer' + $parents[0].id(), 'data-id' : id()}" ></textarea>Title</label> <label hidden><textarea data-bind="text: originalTitle, attr: {'name': 'originalAnswer' + $parent.id(), 'data-id' : id()}" ></textarea>Original Answer</label> <!-- /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] selections'; return s.replace("[min]", min).replace("[max]", max); } function getMinChoice(min) { var s = 'Minimum [min] selection(s)'; return s.replace("[min]", min); } function getMaxChoice(max) { var s = 'Maximum [max] selection(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["5c85cab9-1b52-bbdd-10ae-e6da75321d75"] = ""; idsforuids["5c85cab9-1b52-bbdd-10ae-e6da75321d75"] = "114645087"; triggers["d9e1c1c3-8ea5-ea7a-6fa2-c935a2a4a5f3"] = ""; idsforuids["d9e1c1c3-8ea5-ea7a-6fa2-c935a2a4a5f3"] = "114645088"; triggers["4d7685f7-57c3-b11e-60cc-fadd264dfa03"] = ""; idsforuids["4d7685f7-57c3-b11e-60cc-fadd264dfa03"] = "114645089"; triggers["67055abd-aa80-f7a6-ee89-8fabaed29cf5"] = ""; idsforuids["67055abd-aa80-f7a6-ee89-8fabaed29cf5"] = "114645090"; triggers["e1d5fa02-d395-97f2-41e0-1832c7fd99ea"] = ""; idsforuids["e1d5fa02-d395-97f2-41e0-1832c7fd99ea"] = "114645091"; triggers["8d8bc19e-e664-02d2-e488-9c2760583201"] = ""; idsforuids["8d8bc19e-e664-02d2-e488-9c2760583201"] = "114645092"; triggers["5368839a-8d76-3196-6ee6-dc1114761f55"] = ""; idsforuids["5368839a-8d76-3196-6ee6-dc1114761f55"] = "114645093"; triggers["74de566d-2cf5-c77e-3bcb-9661d9afb938"] = ""; idsforuids["74de566d-2cf5-c77e-3bcb-9661d9afb938"] = "114645094"; triggers["ad2e2328-fa31-a040-b24d-7cb6a41d8730"] = ""; idsforuids["ad2e2328-fa31-a040-b24d-7cb6a41d8730"] = "114645095"; triggers["225787db-0f1b-4912-93f2-091b19e98763"] = ""; idsforuids["225787db-0f1b-4912-93f2-091b19e98763"] = "114645096"; triggers["84bab024-5d61-47b5-90ce-3626af189d35"] = ""; idsforuids["84bab024-5d61-47b5-90ce-3626af189d35"] = "114645097"; triggers["a351fc2e-04ec-449b-a4cb-10686cc79d45"] = ""; idsforuids["a351fc2e-04ec-449b-a4cb-10686cc79d45"] = "114645098"; triggers["e9c9dd36-0510-4aa1-b66d-5d5e18ec8b15"] = ""; idsforuids["e9c9dd36-0510-4aa1-b66d-5d5e18ec8b15"] = "114645099"; triggers["486d5919-b5dc-40c6-82c5-7b2a714a8661"] = ""; idsforuids["486d5919-b5dc-40c6-82c5-7b2a714a8661"] = "114645100"; triggers["d3da93e8-c1d9-4bb6-8887-583566aec35a"] = ""; idsforuids["d3da93e8-c1d9-4bb6-8887-583566aec35a"] = "114645101"; triggers["475ec821-ef9e-492d-a7d8-1966a505e825"] = ""; idsforuids["475ec821-ef9e-492d-a7d8-1966a505e825"] = "114645102"; triggers["3595904b-3db9-4929-bdce-75bafda08a77"] = ""; idsforuids["3595904b-3db9-4929-bdce-75bafda08a77"] = "114645103"; triggers["38be821a-a79a-4c7d-9e93-938e2913fc9c"] = ""; idsforuids["38be821a-a79a-4c7d-9e93-938e2913fc9c"] = "114645104"; triggers["2537939f-47c5-47e6-bfe7-7a32f6706437"] = ""; idsforuids["2537939f-47c5-47e6-bfe7-7a32f6706437"] = "114645105"; triggers["5f2dc14a-a06d-479e-ac21-7b75081aca35"] = ""; idsforuids["5f2dc14a-a06d-479e-ac21-7b75081aca35"] = "114645106"; triggers["9bf4c96e-d8d3-4ffc-bc78-6a3c5d8c8c9f"] = ""; idsforuids["9bf4c96e-d8d3-4ffc-bc78-6a3c5d8c8c9f"] = "114645107"; triggers["648a1c58-1347-4321-9af4-53e638f2689a"] = ""; idsforuids["648a1c58-1347-4321-9af4-53e638f2689a"] = "114645108"; triggers["6e27d645-3247-43d6-8dcc-73cf9ff8a03c"] = ""; idsforuids["6e27d645-3247-43d6-8dcc-73cf9ff8a03c"] = "114645109"; triggers["ec25479b-2b1f-4f25-8f47-19d496b4f830"] = ""; idsforuids["ec25479b-2b1f-4f25-8f47-19d496b4f830"] = "114645110"; triggers["a843b949-1640-44e9-8dae-451119e147bc"] = ""; idsforuids["a843b949-1640-44e9-8dae-451119e147bc"] = "114645111"; triggers["b8b64666-da01-4e3b-90c3-55144024bc2f"] = ""; idsforuids["b8b64666-da01-4e3b-90c3-55144024bc2f"] = "114645112"; triggers["ba528a3d-a401-446f-b247-6a5b8b4490ce"] = ""; idsforuids["ba528a3d-a401-446f-b247-6a5b8b4490ce"] = "114645113"; triggers["ab33fbab-d53a-4a69-be39-ce4bf3b2e64b"] = ""; idsforuids["ab33fbab-d53a-4a69-be39-ce4bf3b2e64b"] = "114645114"; triggers["831d4960-e0f9-40ec-9107-55a6a8d998a8"] = ""; idsforuids["831d4960-e0f9-40ec-9107-55a6a8d998a8"] = "114645115"; triggers["6a5d39d9-5eee-4594-84fa-d771af29cbe0"] = ""; idsforuids["6a5d39d9-5eee-4594-84fa-d771af29cbe0"] = "114645116"; triggers["cf102895-0cb7-4ef7-9625-02259e1bf12d"] = ""; idsforuids["cf102895-0cb7-4ef7-9625-02259e1bf12d"] = "114645117"; triggers["12185259-26f0-4ab4-b095-2a633ad3330c"] = ""; idsforuids["12185259-26f0-4ab4-b095-2a633ad3330c"] = "114645118"; triggers["a385cf2e-1029-4531-a816-2f14ed5d0daa"] = ""; idsforuids["a385cf2e-1029-4531-a816-2f14ed5d0daa"] = "114645119"; triggers["7c87b715-1569-47ab-8085-0c59921820fd"] = ""; idsforuids["7c87b715-1569-47ab-8085-0c59921820fd"] = "114645120"; triggers["319a8583-35f6-49fa-b184-0c5aa68eafca"] = ""; idsforuids["319a8583-35f6-49fa-b184-0c5aa68eafca"] = "114645121"; triggers["15dd5faf-fc4e-4af7-b111-f6a690bbf7b0"] = ""; idsforuids["15dd5faf-fc4e-4af7-b111-f6a690bbf7b0"] = "114645122"; triggers["edc10b8e-3a8c-4056-b9f9-b1268159da7c"] = ""; idsforuids["edc10b8e-3a8c-4056-b9f9-b1268159da7c"] = "114645123"; triggers["70d9dc30-0236-4195-b055-c90b02568a9f"] = ""; idsforuids["70d9dc30-0236-4195-b055-c90b02568a9f"] = "114645124"; triggers["4d51bbd9-ed50-48ee-9b32-b29ac82bb6e5"] = ""; idsforuids["4d51bbd9-ed50-48ee-9b32-b29ac82bb6e5"] = "114645125"; triggers["3d3e10cc-86ba-47de-a5c1-177c9e39c4c4"] = ""; idsforuids["3d3e10cc-86ba-47de-a5c1-177c9e39c4c4"] = "114645126"; triggers["8206bf0e-8879-46ad-9e05-ba409aea05ab"] = ""; idsforuids["8206bf0e-8879-46ad-9e05-ba409aea05ab"] = "114645127"; triggers["3790c5a0-a602-4903-9ad7-6b20de439625"] = ""; idsforuids["3790c5a0-a602-4903-9ad7-6b20de439625"] = "114645128"; triggers["d972d051-83e1-49c4-b363-f02852ddba7f"] = ""; idsforuids["d972d051-83e1-49c4-b363-f02852ddba7f"] = "114645129"; triggers["061fc10d-9bd6-4429-a821-485b02b86367"] = ""; idsforuids["061fc10d-9bd6-4429-a821-485b02b86367"] = "114645130"; triggers["e9e519f5-dc0e-41a2-90e0-57da275d0bcd"] = ""; idsforuids["e9e519f5-dc0e-41a2-90e0-57da275d0bcd"] = "114645131"; triggers["8bbc6132-0ad5-402b-ade0-5bfc83695c1c"] = ""; idsforuids["8bbc6132-0ad5-402b-ade0-5bfc83695c1c"] = "114645132"; triggers["9c905a5b-83b4-4555-9963-23746dec6695"] = ""; idsforuids["9c905a5b-83b4-4555-9963-23746dec6695"] = "114645133"; triggers["13b2b075-d8fa-4b0f-8cd3-3fc6c5bc64e9"] = ""; idsforuids["13b2b075-d8fa-4b0f-8cd3-3fc6c5bc64e9"] = "114645134"; triggers["fa999b2d-72f6-46e9-912b-9e2fcc497fdf"] = ""; idsforuids["fa999b2d-72f6-46e9-912b-9e2fcc497fdf"] = "114645135"; triggers["6711d3a5-b0d1-4dd1-b896-a710cd859a18"] = ""; idsforuids["6711d3a5-b0d1-4dd1-b896-a710cd859a18"] = "114645136"; triggers["78889ef8-9b55-4005-bb31-638231bbc1a7"] = ""; idsforuids["78889ef8-9b55-4005-bb31-638231bbc1a7"] = "114645137"; triggers["f46391b2-767b-4aae-b99a-ce60431ef854"] = ""; idsforuids["f46391b2-767b-4aae-b99a-ce60431ef854"] = "114645138"; triggers["5805cbe3-5f49-427d-a35f-7abe634c3aae"] = ""; idsforuids["5805cbe3-5f49-427d-a35f-7abe634c3aae"] = "114645139"; triggers["415dc0ff-c110-4f51-9145-36407fbf8c1c"] = ""; idsforuids["415dc0ff-c110-4f51-9145-36407fbf8c1c"] = "114645140"; triggers["d3040294-d280-4f9c-972a-bb3d198f7966"] = ""; idsforuids["d3040294-d280-4f9c-972a-bb3d198f7966"] = "114645141"; triggers["905e1f22-8a80-40bb-98b3-2e74c4a5b865"] = ""; idsforuids["905e1f22-8a80-40bb-98b3-2e74c4a5b865"] = "114645142"; triggers["d107e86e-ebd1-405f-b589-ede1259ab196"] = ""; idsforuids["d107e86e-ebd1-405f-b589-ede1259ab196"] = "114645143"; triggers["7870af35-4964-4c30-abc6-c68ba3ff0c91"] = ""; idsforuids["7870af35-4964-4c30-abc6-c68ba3ff0c91"] = "114645144"; triggers["695ad675-8dff-4a8b-a25f-d25779f2911a"] = ""; idsforuids["695ad675-8dff-4a8b-a25f-d25779f2911a"] = "114645145"; triggers["74105001-1ce6-477d-a7a6-4225c15a6592"] = ""; idsforuids["74105001-1ce6-477d-a7a6-4225c15a6592"] = "114645146"; triggers["dee7987f-65ef-4110-92ec-c14dc9dafdeb"] = ""; idsforuids["dee7987f-65ef-4110-92ec-c14dc9dafdeb"] = "114645147"; triggers["a4fb5fa0-84f2-4e85-8bf4-84b5d0db52e3"] = ""; idsforuids["a4fb5fa0-84f2-4e85-8bf4-84b5d0db52e3"] = "114645148"; triggers["cd825cb8-f5e6-4179-99c2-1cebb9be8e29"] = ""; idsforuids["cd825cb8-f5e6-4179-99c2-1cebb9be8e29"] = "114645149"; triggers["43efbce5-28a2-4438-8eb5-c20e15250edd"] = ""; idsforuids["43efbce5-28a2-4438-8eb5-c20e15250edd"] = "114645150"; triggers["cfd29f09-dd83-43fe-b7a6-f894942a120f"] = ""; idsforuids["cfd29f09-dd83-43fe-b7a6-f894942a120f"] = "114645151"; triggers["845b616b-82f2-496e-9e5c-2dd0c0ab7b9f"] = ""; idsforuids["845b616b-82f2-496e-9e5c-2dd0c0ab7b9f"] = "114645152"; triggers["812f2fb4-d75a-4374-90c1-f18aaba649d7"] = ""; idsforuids["812f2fb4-d75a-4374-90c1-f18aaba649d7"] = "114645153"; triggers["2b20e26d-bdaf-4710-b3fe-a79678bef2f0"] = ""; idsforuids["2b20e26d-bdaf-4710-b3fe-a79678bef2f0"] = "114645154"; triggers["6ae2c6a6-f1b9-43e4-aa80-ef82af893536"] = ""; idsforuids["6ae2c6a6-f1b9-43e4-aa80-ef82af893536"] = "114645155"; triggers["16c0077b-4659-4806-8e86-8255c8fad123"] = ""; idsforuids["16c0077b-4659-4806-8e86-8255c8fad123"] = "114645156"; triggers["bb6be1fb-232c-4784-aaeb-f3ddef4b83b9"] = ""; idsforuids["bb6be1fb-232c-4784-aaeb-f3ddef4b83b9"] = "114645157"; triggers["e13c733f-aea8-44aa-b91d-68ae7295aad2"] = ""; idsforuids["e13c733f-aea8-44aa-b91d-68ae7295aad2"] = "114645158"; triggers["1797497f-b0d2-4321-840e-a0dc8a0de1b8"] = ""; idsforuids["1797497f-b0d2-4321-840e-a0dc8a0de1b8"] = "114645159"; triggers["acb610f4-e4c5-4c95-8062-87d94ab90908"] = ""; idsforuids["acb610f4-e4c5-4c95-8062-87d94ab90908"] = "114645160"; triggers["38e237d3-9e36-4b09-8de2-defe34435b4a"] = ""; idsforuids["38e237d3-9e36-4b09-8de2-defe34435b4a"] = "114645161"; triggers["1a95b2c2-1872-40b3-bcd1-32c497428851"] = ""; idsforuids["1a95b2c2-1872-40b3-bcd1-32c497428851"] = "114645162"; triggers["dec78799-1440-4397-b0c2-225ac2d8a229"] = ""; idsforuids["dec78799-1440-4397-b0c2-225ac2d8a229"] = "114645163"; triggers["0c3acac3-9973-47f3-95e4-b8d76da22487"] = ""; idsforuids["0c3acac3-9973-47f3-95e4-b8d76da22487"] = "114645164"; triggers["7c7adaa6-cbe4-4eda-92eb-de9a27725ee5"] = ""; idsforuids["7c7adaa6-cbe4-4eda-92eb-de9a27725ee5"] = "114645165"; triggers["73edd4dd-2c6f-49dc-b0ac-e31ad4aa9aee"] = ""; idsforuids["73edd4dd-2c6f-49dc-b0ac-e31ad4aa9aee"] = "114645166"; triggers["4f785375-3c2b-4453-9ec6-7a7e6ece7faa"] = ""; idsforuids["4f785375-3c2b-4453-9ec6-7a7e6ece7faa"] = "114645167"; triggers["d0725b5d-3fe4-4f94-87d9-be876fdbd7c1"] = ""; idsforuids["d0725b5d-3fe4-4f94-87d9-be876fdbd7c1"] = "114645168"; triggers["63af5b52-10e4-46c7-95bd-021d6fc2f76f"] = ""; idsforuids["63af5b52-10e4-46c7-95bd-021d6fc2f76f"] = "114645169"; triggers["a20e1115-b6a5-476b-891a-eb7795729d66"] = ""; idsforuids["a20e1115-b6a5-476b-891a-eb7795729d66"] = "114645170"; triggers["0008659e-83ef-47fe-ad80-73078aaab4d8"] = ""; idsforuids["0008659e-83ef-47fe-ad80-73078aaab4d8"] = "114645171"; triggers["1d9f0599-c3bd-4a1a-bee8-aa3440aa9954"] = ""; idsforuids["1d9f0599-c3bd-4a1a-bee8-aa3440aa9954"] = "114645172"; triggers["cb84c0ee-b845-4ab7-acce-2019bd8d4b3c"] = ""; idsforuids["cb84c0ee-b845-4ab7-acce-2019bd8d4b3c"] = "114645173"; triggers["654554bd-1415-4e64-ac0d-065216b4a695"] = ""; idsforuids["654554bd-1415-4e64-ac0d-065216b4a695"] = "114645174"; triggers["bbf2a507-e890-44af-94b6-e889e17f91d0"] = ""; idsforuids["bbf2a507-e890-44af-94b6-e889e17f91d0"] = "114645175"; triggers["6d0cf2ab-bd36-48d6-b795-762a5729f81c"] = ""; idsforuids["6d0cf2ab-bd36-48d6-b795-762a5729f81c"] = "114645176"; triggers["af4ba30f-9dcd-4d28-9c79-cd29ce048b80"] = ""; idsforuids["af4ba30f-9dcd-4d28-9c79-cd29ce048b80"] = "114645177"; triggers["1ed57f05-7150-44bd-b649-e054bd88f32e"] = ""; idsforuids["1ed57f05-7150-44bd-b649-e054bd88f32e"] = "114645178"; triggers["bd628164-c514-433c-aa9f-b0729f5da632"] = ""; idsforuids["bd628164-c514-433c-aa9f-b0729f5da632"] = "114645179"; triggers["3d3c0c77-980f-472a-b15e-5e955780296a"] = ""; idsforuids["3d3c0c77-980f-472a-b15e-5e955780296a"] = "114645180"; triggers["73667658-3c29-4cb8-8b47-c9fc21683261"] = ""; idsforuids["73667658-3c29-4cb8-8b47-c9fc21683261"] = "114645181"; triggers["6e4e5ffb-ab6f-477a-afdf-ca67573a69b3"] = ""; idsforuids["6e4e5ffb-ab6f-477a-afdf-ca67573a69b3"] = "114645182"; triggers["93f7480f-346c-49df-aa79-4e99aae71511"] = ""; idsforuids["93f7480f-346c-49df-aa79-4e99aae71511"] = "114645183"; triggers["60fd17f2-f759-4fa9-87bd-4c949dff1eee"] = ""; idsforuids["60fd17f2-f759-4fa9-87bd-4c949dff1eee"] = "114645184"; triggers["c96c3a12-e93e-4ac8-988c-d28a943b1e86"] = ""; idsforuids["c96c3a12-e93e-4ac8-988c-d28a943b1e86"] = "114645185"; triggers["6128bfa1-2278-4158-8802-3e8b57383f8b"] = ""; idsforuids["6128bfa1-2278-4158-8802-3e8b57383f8b"] = "114645186"; triggers["1ce91670-e9b5-432d-94ac-12b654db69ab"] = ""; idsforuids["1ce91670-e9b5-432d-94ac-12b654db69ab"] = "114645187"; triggers["520f322b-b814-4c60-a59f-5f822c827917"] = ""; idsforuids["520f322b-b814-4c60-a59f-5f822c827917"] = "114645188"; triggers["7236e55d-00ff-4bb1-95c2-580f23cbfb5c"] = ""; idsforuids["7236e55d-00ff-4bb1-95c2-580f23cbfb5c"] = "114645189"; triggers["6e426e87-36c1-4ecf-93b6-418e6b3841ef"] = ""; idsforuids["6e426e87-36c1-4ecf-93b6-418e6b3841ef"] = "114645190"; triggers["22b49ffb-5e8f-40a2-973f-224c0832b96d"] = ""; idsforuids["22b49ffb-5e8f-40a2-973f-224c0832b96d"] = "114645191"; triggers["f8205248-9d2a-4f6a-af3e-ffaf663427ff"] = ""; idsforuids["f8205248-9d2a-4f6a-af3e-ffaf663427ff"] = "114645192"; triggers["d7e22c88-e2b4-4dcc-8065-3d928bbfe45c"] = ""; idsforuids["d7e22c88-e2b4-4dcc-8065-3d928bbfe45c"] = "114645193"; triggers["48bcf3c7-32e2-42cd-8214-9ed0a390c0ac"] = ""; idsforuids["48bcf3c7-32e2-42cd-8214-9ed0a390c0ac"] = "114645194"; triggers["7579bc92-627a-4ab3-8fb1-7e8622284f78"] = ""; idsforuids["7579bc92-627a-4ab3-8fb1-7e8622284f78"] = "114645195"; triggers["7ccb9d31-a5d1-40c0-9a34-e15817e230fb"] = ""; idsforuids["7ccb9d31-a5d1-40c0-9a34-e15817e230fb"] = "114645196"; triggers["a053804c-bbb7-4f80-8008-fb96c4c4e198"] = ""; idsforuids["a053804c-bbb7-4f80-8008-fb96c4c4e198"] = "114645197"; triggers["f7f2a0a6-7984-4a5a-96aa-5c32fab6b5f3"] = ""; idsforuids["f7f2a0a6-7984-4a5a-96aa-5c32fab6b5f3"] = "114645198"; triggers["a24b8e6e-3456-4642-bc25-5df933269db6"] = ""; idsforuids["a24b8e6e-3456-4642-bc25-5df933269db6"] = "114645199"; triggers["d8962c2a-5e07-40e2-8afe-f807fa302196"] = ""; idsforuids["d8962c2a-5e07-40e2-8afe-f807fa302196"] = "114645200"; triggers["2d15f5f1-d329-4f05-af7b-50464f652f19"] = ""; idsforuids["2d15f5f1-d329-4f05-af7b-50464f652f19"] = "114645201"; triggers["8128471d-47bd-4ba2-8a1b-f244ef19e499"] = ""; idsforuids["8128471d-47bd-4ba2-8a1b-f244ef19e499"] = "114645202"; triggers["9d27735c-3969-4ebb-8522-ad7dace5da1e"] = ""; idsforuids["9d27735c-3969-4ebb-8522-ad7dace5da1e"] = "114645203"; triggers["fb4ed951-9781-43dd-852e-5a9e61bf4092"] = ""; idsforuids["fb4ed951-9781-43dd-852e-5a9e61bf4092"] = "114645204"; triggers["1f62c59a-8aba-49ad-b018-3935e8d77ff8"] = ""; idsforuids["1f62c59a-8aba-49ad-b018-3935e8d77ff8"] = "114645205"; triggers["82c71c3b-ab42-452f-80d7-d91bd10f56c4"] = ""; idsforuids["82c71c3b-ab42-452f-80d7-d91bd10f56c4"] = "114645206"; triggers["0a538d82-0d38-4e45-b31a-303c53acf3c3"] = ""; idsforuids["0a538d82-0d38-4e45-b31a-303c53acf3c3"] = "114645207"; triggers["a6f2b198-e13a-45e7-a13b-13e57acec478"] = ""; idsforuids["a6f2b198-e13a-45e7-a13b-13e57acec478"] = "114645208"; triggers["94b7642c-8aa8-4af2-b75e-620e70accbe1"] = ""; idsforuids["94b7642c-8aa8-4af2-b75e-620e70accbe1"] = "114645209"; triggers["b4509832-06e1-4304-9c93-ad8d489d2e05"] = ""; idsforuids["b4509832-06e1-4304-9c93-ad8d489d2e05"] = "114645210"; triggers["038aaef3-ae98-4377-9c28-08c3051ed39d"] = ""; idsforuids["038aaef3-ae98-4377-9c28-08c3051ed39d"] = "114645211"; triggers["7f382e38-19a5-4892-96bd-4f6cf463f75f"] = ""; idsforuids["7f382e38-19a5-4892-96bd-4f6cf463f75f"] = "114645212"; triggers["e3fd7e24-b4eb-460e-a883-eb8fad15f510"] = ""; idsforuids["e3fd7e24-b4eb-460e-a883-eb8fad15f510"] = "114645213"; triggers["897df14f-58aa-42ce-834e-f565e422c1e9"] = ""; idsforuids["897df14f-58aa-42ce-834e-f565e422c1e9"] = "114645214"; triggers["78c82119-71d0-47a0-a260-04332218ee4c"] = ""; idsforuids["78c82119-71d0-47a0-a260-04332218ee4c"] = "114645215"; triggers["0f35e3a4-c9a4-4a97-98f2-c272b5c12213"] = ""; idsforuids["0f35e3a4-c9a4-4a97-98f2-c272b5c12213"] = "114645216"; triggers["dff66e36-10dd-456f-b400-2eb8051a8723"] = ""; idsforuids["dff66e36-10dd-456f-b400-2eb8051a8723"] = "114645217"; triggers["aa28f440-63d2-41b7-976c-3f8dc947ba74"] = ""; idsforuids["aa28f440-63d2-41b7-976c-3f8dc947ba74"] = "114645218"; triggers["eb4f6ae0-37b4-4cbd-bb4b-7afad03c2c39"] = ""; idsforuids["eb4f6ae0-37b4-4cbd-bb4b-7afad03c2c39"] = "114645219"; triggers["d350f065-7644-4b0c-af3d-e7720bbd1666"] = ""; idsforuids["d350f065-7644-4b0c-af3d-e7720bbd1666"] = "114645220"; triggers["b86e7716-8229-46a2-9ffa-b393705bf1f4"] = ""; idsforuids["b86e7716-8229-46a2-9ffa-b393705bf1f4"] = "114645221"; triggers["378a7497-3241-4a83-815f-c9f93bdfa8d8"] = ""; idsforuids["378a7497-3241-4a83-815f-c9f93bdfa8d8"] = "114645222"; triggers["deff4956-1069-4619-9408-1dc2527bb309"] = ""; idsforuids["deff4956-1069-4619-9408-1dc2527bb309"] = "114645223"; triggers["2ac30772-4df8-488d-bc7a-c52789e594a3"] = ""; idsforuids["2ac30772-4df8-488d-bc7a-c52789e594a3"] = "114645224"; triggers["32fc82d9-10c2-4204-a4f4-e9cce33384c1"] = ""; idsforuids["32fc82d9-10c2-4204-a4f4-e9cce33384c1"] = "114645225"; triggers["c493601d-cfba-4e32-8164-cd88f5fb6a74"] = ""; idsforuids["c493601d-cfba-4e32-8164-cd88f5fb6a74"] = "114645226"; triggers["b1458933-b8d2-4515-a749-dfa6150daae6"] = ""; idsforuids["b1458933-b8d2-4515-a749-dfa6150daae6"] = "114645227"; triggers["e33de704-f630-4a68-b760-857ebb68d0c4"] = ""; idsforuids["e33de704-f630-4a68-b760-857ebb68d0c4"] = "114645228"; triggers["f6b2527c-aa71-4720-b882-33ad5ea424db"] = ""; idsforuids["f6b2527c-aa71-4720-b882-33ad5ea424db"] = "114645229"; triggers["3df7a9d3-3595-411b-ab29-c17e13710212"] = ""; idsforuids["3df7a9d3-3595-411b-ab29-c17e13710212"] = "114645230"; triggers["2a0c0e51-3598-40fd-88ee-fc8d12615a22"] = ""; idsforuids["2a0c0e51-3598-40fd-88ee-fc8d12615a22"] = "114645231"; triggers["dd97e873-23ba-4727-84f2-b96a7bae5d2d"] = ""; idsforuids["dd97e873-23ba-4727-84f2-b96a7bae5d2d"] = "114645232"; triggers["54f9b919-9fdd-4ecd-83ca-0c0ffd934ed1"] = ""; idsforuids["54f9b919-9fdd-4ecd-83ca-0c0ffd934ed1"] = "114645233"; triggers["c65d3394-d39e-4b5c-9862-a3ef4af26ff8"] = ""; idsforuids["c65d3394-d39e-4b5c-9862-a3ef4af26ff8"] = "114645234"; triggers["bb170a8a-8e78-4b22-b5e1-b83867ce02d4"] = ""; idsforuids["bb170a8a-8e78-4b22-b5e1-b83867ce02d4"] = "114645235"; triggers["7d60fc27-5279-412f-b91b-4cc51baf16a0"] = ""; idsforuids["7d60fc27-5279-412f-b91b-4cc51baf16a0"] = "114645236"; triggers["7b8ac8f0-fb6c-4fb5-944d-1a58a5db6e6b"] = ""; idsforuids["7b8ac8f0-fb6c-4fb5-944d-1a58a5db6e6b"] = "114645237"; triggers["8f7dfca1-8702-4ec2-92f7-2a512c4718d8"] = ""; idsforuids["8f7dfca1-8702-4ec2-92f7-2a512c4718d8"] = "114645238"; triggers["2d00dafe-7d8b-4254-9b0b-265440d8b15c"] = ""; idsforuids["2d00dafe-7d8b-4254-9b0b-265440d8b15c"] = "114645239"; triggers["894e8249-7b19-4535-957b-604a3bc4ce5f"] = ""; idsforuids["894e8249-7b19-4535-957b-604a3bc4ce5f"] = "114645240"; triggers["b2c3c8b1-fcbf-41af-bd2d-c33133aa022f"] = ""; idsforuids["b2c3c8b1-fcbf-41af-bd2d-c33133aa022f"] = "114645241"; triggers["15aa2144-b0eb-4253-a32b-6c10d94a9639"] = ""; idsforuids["15aa2144-b0eb-4253-a32b-6c10d94a9639"] = "114645242"; triggers["06106934-345f-40d9-a880-d102887d539f"] = ""; idsforuids["06106934-345f-40d9-a880-d102887d539f"] = "114645243"; triggers["a04438f4-0435-48cd-b800-0ff99fa7b0d0"] = ""; idsforuids["a04438f4-0435-48cd-b800-0ff99fa7b0d0"] = "114645244"; triggers["adbe276f-6494-407c-aa97-e5affcda15e4"] = ""; idsforuids["adbe276f-6494-407c-aa97-e5affcda15e4"] = "114645245"; triggers["6221ca92-914f-45f8-8ee1-ec514c3e0455"] = ""; idsforuids["6221ca92-914f-45f8-8ee1-ec514c3e0455"] = "114645246"; triggers["1094901f-63f9-4667-879a-4d52c37e4985"] = ""; idsforuids["1094901f-63f9-4667-879a-4d52c37e4985"] = "114645247"; triggers["d7cb9f2f-33b7-44de-a00f-7a68de0b2485"] = ""; idsforuids["d7cb9f2f-33b7-44de-a00f-7a68de0b2485"] = "114645248"; triggers["3ace2cb0-c9e4-4fe9-8e80-e9823d0c0397"] = ""; idsforuids["3ace2cb0-c9e4-4fe9-8e80-e9823d0c0397"] = "114645249"; triggers["99ceb1a4-deb9-4ac5-9790-255024225f42"] = ""; idsforuids["99ceb1a4-deb9-4ac5-9790-255024225f42"] = "114645250"; triggers["31f336b4-7d91-4f56-8170-4ff8a04a5eb0"] = ""; idsforuids["31f336b4-7d91-4f56-8170-4ff8a04a5eb0"] = "114645251"; triggers["2454f8db-7dd0-4278-a46e-beb76c9b8e9d"] = ""; idsforuids["2454f8db-7dd0-4278-a46e-beb76c9b8e9d"] = "114645252"; triggers["68573caf-a2d4-4a56-9c9c-5f128c0cc643"] = ""; idsforuids["68573caf-a2d4-4a56-9c9c-5f128c0cc643"] = "114645253"; triggers["66f6d9bf-2f7c-4d2e-a4e9-9f1f4485310e"] = ""; idsforuids["66f6d9bf-2f7c-4d2e-a4e9-9f1f4485310e"] = "114645254"; triggers["50253593-d522-444a-a6e7-7c5ac978b854"] = ""; idsforuids["50253593-d522-444a-a6e7-7c5ac978b854"] = "114645255"; triggers["93631678-18e8-4de7-b9ff-06d0620bea13"] = ""; idsforuids["93631678-18e8-4de7-b9ff-06d0620bea13"] = "114645256"; triggers["3cf89edf-d462-4f12-a8d5-37afbe0e71e5"] = ""; idsforuids["3cf89edf-d462-4f12-a8d5-37afbe0e71e5"] = "114645257"; triggers["676040aa-4205-461c-b539-d11a1961a481"] = ""; idsforuids["676040aa-4205-461c-b539-d11a1961a481"] = "114645258"; triggers["e461bcbf-ef48-4dc6-b2bf-b635570f0b78"] = ""; idsforuids["e461bcbf-ef48-4dc6-b2bf-b635570f0b78"] = "114645259"; triggers["37cf9bf5-8f8c-414a-af62-49fe878bf998"] = ""; idsforuids["37cf9bf5-8f8c-414a-af62-49fe878bf998"] = "114645260"; triggers["b159f72c-7cbf-4455-ab0c-37ebdb40b3e6"] = ""; idsforuids["b159f72c-7cbf-4455-ab0c-37ebdb40b3e6"] = "114645261"; triggers["2209e253-19be-4c27-84d9-815baa898b0d"] = ""; idsforuids["2209e253-19be-4c27-84d9-815baa898b0d"] = "114645262"; triggers["0e7aa125-302c-4117-9895-0560515c7e49"] = ""; idsforuids["0e7aa125-302c-4117-9895-0560515c7e49"] = "114645263"; triggers["8e2864ee-b2ec-44ad-aa80-6ed2870e4f26"] = ""; idsforuids["8e2864ee-b2ec-44ad-aa80-6ed2870e4f26"] = "114645264"; triggers["6fc33d56-7a88-4475-90c2-27ef59142787"] = ""; idsforuids["6fc33d56-7a88-4475-90c2-27ef59142787"] = "114645265"; triggers["e9d860df-cc83-4706-9049-b7e00c12b506"] = ""; idsforuids["e9d860df-cc83-4706-9049-b7e00c12b506"] = "114645266"; triggers["95f23cdd-c38c-4df4-b36a-438dd5a34298"] = ""; idsforuids["95f23cdd-c38c-4df4-b36a-438dd5a34298"] = "114645267"; triggers["db3d004a-40b7-4cbe-8101-adf3152c75b3"] = ""; idsforuids["db3d004a-40b7-4cbe-8101-adf3152c75b3"] = "114645268"; triggers["eed2b902-ea7a-4441-8266-3c9a7462bf59"] = ""; idsforuids["eed2b902-ea7a-4441-8266-3c9a7462bf59"] = "114645269"; triggers["4500f79a-1ada-4884-86ee-bb1d9a6bec88"] = ""; idsforuids["4500f79a-1ada-4884-86ee-bb1d9a6bec88"] = "114645270"; triggers["f27d676d-ced9-47c1-b98e-2d7f14279b3d"] = ""; idsforuids["f27d676d-ced9-47c1-b98e-2d7f14279b3d"] = "114645271"; triggers["3046af28-d42f-4197-9980-5bd8d7cfe266"] = ""; idsforuids["3046af28-d42f-4197-9980-5bd8d7cfe266"] = "114645272"; triggers["37bf7bda-ca03-4728-a987-e4c6936a9b00"] = ""; idsforuids["37bf7bda-ca03-4728-a987-e4c6936a9b00"] = "114645273"; triggers["a68871a3-6260-4904-b990-43f24063e5bd"] = ""; idsforuids["a68871a3-6260-4904-b990-43f24063e5bd"] = "114645274"; triggers["5106f57a-b198-4b18-9165-6feaeedb9db7"] = ""; idsforuids["5106f57a-b198-4b18-9165-6feaeedb9db7"] = "114645275"; triggers["92de509a-d271-41f2-aa92-f6fca50ac468"] = ""; idsforuids["92de509a-d271-41f2-aa92-f6fca50ac468"] = "114645276"; triggers["344c0dc7-3750-46f8-8cf7-47117d83a228"] = ""; idsforuids["344c0dc7-3750-46f8-8cf7-47117d83a228"] = "114645277"; triggers["8b69d6bf-ddcd-4f2b-a698-90a7cb5c3902"] = ""; idsforuids["8b69d6bf-ddcd-4f2b-a698-90a7cb5c3902"] = "114645278"; triggers["fd9dc82b-75d9-4bb8-8e00-b663d22b7c4a"] = ""; idsforuids["fd9dc82b-75d9-4bb8-8e00-b663d22b7c4a"] = "114645279"; triggers["930c1e72-e734-4039-bfc6-8115b91344a6"] = ""; idsforuids["930c1e72-e734-4039-bfc6-8115b91344a6"] = "114645280"; triggers["5d9aa254-e76b-406c-a9a9-c3f1f0a842fc"] = ""; idsforuids["5d9aa254-e76b-406c-a9a9-c3f1f0a842fc"] = "114645281"; triggers["281559f0-fa34-4518-92b5-c80eaaed0faa"] = ""; idsforuids["281559f0-fa34-4518-92b5-c80eaaed0faa"] = "114645282"; triggers["bf8f93bc-f422-4c6d-9c6d-0e92a7dacf4b"] = ""; idsforuids["bf8f93bc-f422-4c6d-9c6d-0e92a7dacf4b"] = "114645283"; triggers["bde3182d-ed76-44d9-84c9-e342ada0ab5a"] = ""; idsforuids["bde3182d-ed76-44d9-84c9-e342ada0ab5a"] = "114645284"; triggers["bbe12a2a-44cd-4931-a7c2-768a546204b0"] = ""; idsforuids["bbe12a2a-44cd-4931-a7c2-768a546204b0"] = "114645285"; triggers["4259ff2d-c8dd-4ef9-a38e-e12ffb51c47f"] = ""; idsforuids["4259ff2d-c8dd-4ef9-a38e-e12ffb51c47f"] = "114645286"; triggers["0927664b-44f1-482e-8f14-24a282c3eebf"] = ""; idsforuids["0927664b-44f1-482e-8f14-24a282c3eebf"] = "114645287"; triggers["6bcb4a67-f2bc-44fb-b629-50c41b955d8d"] = ""; idsforuids["6bcb4a67-f2bc-44fb-b629-50c41b955d8d"] = "114645288"; triggers["8faa66c0-d387-7457-8bee-0a5358cf4192"] = ""; idsforuids["8faa66c0-d387-7457-8bee-0a5358cf4192"] = "114645289"; triggers["34116479-f995-41a0-d872-89e604d7fd6c"] = ""; idsforuids["34116479-f995-41a0-d872-89e604d7fd6c"] = "114645290"; triggers["4481280a-b2f2-ff4f-6871-c2a03cce703f"] = ""; idsforuids["4481280a-b2f2-ff4f-6871-c2a03cce703f"] = "114645291"; triggers["f2df47d8-846d-cd28-e819-af22a505629b"] = ""; idsforuids["f2df47d8-846d-cd28-e819-af22a505629b"] = "114645292"; triggers["fae151db-ffe3-84ac-251a-c1d99152ef55"] = ""; idsforuids["fae151db-ffe3-84ac-251a-c1d99152ef55"] = "114645293"; triggers["a7217a84-de20-0443-d039-0dc04210d7fb"] = ""; idsforuids["a7217a84-de20-0443-d039-0dc04210d7fb"] = "114645294"; } function initializeAnswerData() { values = {}; pavalues = {}; pavaluesid = {}; tablevalues = {}; filevalues = {}; validationMessages = {}; if ($("#survey\\.id").length > 0) { initializeBackupHelper(); restoreBackup(); } } function initializeBackupHelper(){ backupHelper = {} backupHelper["114645087"] = { uid : "5c85cab9-1b52-bbdd-10ae-e6da75321d75", type : "Image" } backupHelper["114645088"] = { uid : "d9e1c1c3-8ea5-ea7a-6fa2-c935a2a4a5f3", type : "Text" } backupHelper["114645089"] = { uid : "4d7685f7-57c3-b11e-60cc-fadd264dfa03", type : "Section" } backupHelper["114645090"] = { uid : "67055abd-aa80-f7a6-ee89-8fabaed29cf5", type : "FreeTextQuestion" } backupHelper["114645091"] = { uid : "e1d5fa02-d395-97f2-41e0-1832c7fd99ea", type : "FreeTextQuestion" } backupHelper["114645092"] = { uid : "8d8bc19e-e664-02d2-e488-9c2760583201", type : "EmailQuestion" } backupHelper["114645093"] = { uid : "5368839a-8d76-3196-6ee6-dc1114761f55", type : "FreeTextQuestion" } backupHelper["114645094"] = { uid : "74de566d-2cf5-c77e-3bcb-9661d9afb938", type : "FreeTextQuestion" } backupHelper["114645095"] = { uid : "ad2e2328-fa31-a040-b24d-7cb6a41d8730", type : "SingleChoiceQuestion" } backupHelper["114645096"] = { uid : "225787db-0f1b-4912-93f2-091b19e98763", type : "PossibleAnswer" } backupHelper["114645097"] = { uid : "84bab024-5d61-47b5-90ce-3626af189d35", type : "PossibleAnswer" } backupHelper["114645098"] = { uid : "a351fc2e-04ec-449b-a4cb-10686cc79d45", type : "PossibleAnswer" } backupHelper["114645099"] = { uid : "e9c9dd36-0510-4aa1-b66d-5d5e18ec8b15", type : "PossibleAnswer" } backupHelper["114645100"] = { uid : "486d5919-b5dc-40c6-82c5-7b2a714a8661", type : "PossibleAnswer" } backupHelper["114645101"] = { uid : "d3da93e8-c1d9-4bb6-8887-583566aec35a", type : "PossibleAnswer" } backupHelper["114645102"] = { uid : "475ec821-ef9e-492d-a7d8-1966a505e825", type : "PossibleAnswer" } backupHelper["114645103"] = { uid : "3595904b-3db9-4929-bdce-75bafda08a77", type : "PossibleAnswer" } backupHelper["114645104"] = { uid : "38be821a-a79a-4c7d-9e93-938e2913fc9c", type : "PossibleAnswer" } backupHelper["114645105"] = { uid : "2537939f-47c5-47e6-bfe7-7a32f6706437", type : "PossibleAnswer" } backupHelper["114645106"] = { uid : "5f2dc14a-a06d-479e-ac21-7b75081aca35", type : "PossibleAnswer" } backupHelper["114645107"] = { uid : "9bf4c96e-d8d3-4ffc-bc78-6a3c5d8c8c9f", type : "PossibleAnswer" } backupHelper["114645108"] = { uid : "648a1c58-1347-4321-9af4-53e638f2689a", type : "PossibleAnswer" } backupHelper["114645109"] = { uid : "6e27d645-3247-43d6-8dcc-73cf9ff8a03c", type : "PossibleAnswer" } backupHelper["114645110"] = { uid : "ec25479b-2b1f-4f25-8f47-19d496b4f830", type : "PossibleAnswer" } backupHelper["114645111"] = { uid : "a843b949-1640-44e9-8dae-451119e147bc", type : "PossibleAnswer" } backupHelper["114645112"] = { uid : "b8b64666-da01-4e3b-90c3-55144024bc2f", type : "PossibleAnswer" } backupHelper["114645113"] = { uid : "ba528a3d-a401-446f-b247-6a5b8b4490ce", type : "PossibleAnswer" } backupHelper["114645114"] = { uid : "ab33fbab-d53a-4a69-be39-ce4bf3b2e64b", type : "PossibleAnswer" } backupHelper["114645115"] = { uid : "831d4960-e0f9-40ec-9107-55a6a8d998a8", type : "PossibleAnswer" } backupHelper["114645116"] = { uid : "6a5d39d9-5eee-4594-84fa-d771af29cbe0", type : "PossibleAnswer" } backupHelper["114645117"] = { uid : "cf102895-0cb7-4ef7-9625-02259e1bf12d", type : "PossibleAnswer" } backupHelper["114645118"] = { uid : "12185259-26f0-4ab4-b095-2a633ad3330c", type : "PossibleAnswer" } backupHelper["114645119"] = { uid : "a385cf2e-1029-4531-a816-2f14ed5d0daa", type : "PossibleAnswer" } backupHelper["114645120"] = { uid : "7c87b715-1569-47ab-8085-0c59921820fd", type : "PossibleAnswer" } backupHelper["114645121"] = { uid : "319a8583-35f6-49fa-b184-0c5aa68eafca", type : "PossibleAnswer" } backupHelper["114645122"] = { uid : "15dd5faf-fc4e-4af7-b111-f6a690bbf7b0", type : "PossibleAnswer" } backupHelper["114645123"] = { uid : "edc10b8e-3a8c-4056-b9f9-b1268159da7c", type : "PossibleAnswer" } backupHelper["114645124"] = { uid : "70d9dc30-0236-4195-b055-c90b02568a9f", type : "PossibleAnswer" } backupHelper["114645125"] = { uid : "4d51bbd9-ed50-48ee-9b32-b29ac82bb6e5", type : "PossibleAnswer" } backupHelper["114645126"] = { uid : "3d3e10cc-86ba-47de-a5c1-177c9e39c4c4", type : "PossibleAnswer" } backupHelper["114645127"] = { uid : "8206bf0e-8879-46ad-9e05-ba409aea05ab", type : "PossibleAnswer" } backupHelper["114645128"] = { uid : "3790c5a0-a602-4903-9ad7-6b20de439625", type : "PossibleAnswer" } backupHelper["114645129"] = { uid : "d972d051-83e1-49c4-b363-f02852ddba7f", type : "PossibleAnswer" } backupHelper["114645130"] = { uid : "061fc10d-9bd6-4429-a821-485b02b86367", type : "PossibleAnswer" } backupHelper["114645131"] = { uid : "e9e519f5-dc0e-41a2-90e0-57da275d0bcd", type : "PossibleAnswer" } backupHelper["114645132"] = { uid : "8bbc6132-0ad5-402b-ade0-5bfc83695c1c", type : "PossibleAnswer" } backupHelper["114645133"] = { uid : "9c905a5b-83b4-4555-9963-23746dec6695", type : "PossibleAnswer" } backupHelper["114645134"] = { uid : "13b2b075-d8fa-4b0f-8cd3-3fc6c5bc64e9", type : "PossibleAnswer" } backupHelper["114645135"] = { uid : "fa999b2d-72f6-46e9-912b-9e2fcc497fdf", type : "PossibleAnswer" } backupHelper["114645136"] = { uid : "6711d3a5-b0d1-4dd1-b896-a710cd859a18", type : "PossibleAnswer" } backupHelper["114645137"] = { uid : "78889ef8-9b55-4005-bb31-638231bbc1a7", type : "PossibleAnswer" } backupHelper["114645138"] = { uid : "f46391b2-767b-4aae-b99a-ce60431ef854", type : "PossibleAnswer" } backupHelper["114645139"] = { uid : "5805cbe3-5f49-427d-a35f-7abe634c3aae", type : "PossibleAnswer" } backupHelper["114645140"] = { uid : "415dc0ff-c110-4f51-9145-36407fbf8c1c", type : "PossibleAnswer" } backupHelper["114645141"] = { uid : "d3040294-d280-4f9c-972a-bb3d198f7966", type : "PossibleAnswer" } backupHelper["114645142"] = { uid : "905e1f22-8a80-40bb-98b3-2e74c4a5b865", type : "PossibleAnswer" } backupHelper["114645143"] = { uid : "d107e86e-ebd1-405f-b589-ede1259ab196", type : "PossibleAnswer" } backupHelper["114645144"] = { uid : "7870af35-4964-4c30-abc6-c68ba3ff0c91", type : "PossibleAnswer" } backupHelper["114645145"] = { uid : "695ad675-8dff-4a8b-a25f-d25779f2911a", type : "PossibleAnswer" } backupHelper["114645146"] = { uid : "74105001-1ce6-477d-a7a6-4225c15a6592", type : "PossibleAnswer" } backupHelper["114645147"] = { uid : "dee7987f-65ef-4110-92ec-c14dc9dafdeb", type : "PossibleAnswer" } backupHelper["114645148"] = { uid : "a4fb5fa0-84f2-4e85-8bf4-84b5d0db52e3", type : "PossibleAnswer" } backupHelper["114645149"] = { uid : "cd825cb8-f5e6-4179-99c2-1cebb9be8e29", type : "PossibleAnswer" } backupHelper["114645150"] = { uid : "43efbce5-28a2-4438-8eb5-c20e15250edd", type : "PossibleAnswer" } backupHelper["114645151"] = { uid : "cfd29f09-dd83-43fe-b7a6-f894942a120f", type : "PossibleAnswer" } backupHelper["114645152"] = { uid : "845b616b-82f2-496e-9e5c-2dd0c0ab7b9f", type : "PossibleAnswer" } backupHelper["114645153"] = { uid : "812f2fb4-d75a-4374-90c1-f18aaba649d7", type : "PossibleAnswer" } backupHelper["114645154"] = { uid : "2b20e26d-bdaf-4710-b3fe-a79678bef2f0", type : "PossibleAnswer" } backupHelper["114645155"] = { uid : "6ae2c6a6-f1b9-43e4-aa80-ef82af893536", type : "PossibleAnswer" } backupHelper["114645156"] = { uid : "16c0077b-4659-4806-8e86-8255c8fad123", type : "PossibleAnswer" } backupHelper["114645157"] = { uid : "bb6be1fb-232c-4784-aaeb-f3ddef4b83b9", type : "PossibleAnswer" } backupHelper["114645158"] = { uid : "e13c733f-aea8-44aa-b91d-68ae7295aad2", type : "PossibleAnswer" } backupHelper["114645159"] = { uid : "1797497f-b0d2-4321-840e-a0dc8a0de1b8", type : "PossibleAnswer" } backupHelper["114645160"] = { uid : "acb610f4-e4c5-4c95-8062-87d94ab90908", type : "PossibleAnswer" } backupHelper["114645161"] = { uid : "38e237d3-9e36-4b09-8de2-defe34435b4a", type : "PossibleAnswer" } backupHelper["114645162"] = { uid : "1a95b2c2-1872-40b3-bcd1-32c497428851", type : "PossibleAnswer" } backupHelper["114645163"] = { uid : "dec78799-1440-4397-b0c2-225ac2d8a229", type : "PossibleAnswer" } backupHelper["114645164"] = { uid : "0c3acac3-9973-47f3-95e4-b8d76da22487", type : "PossibleAnswer" } backupHelper["114645165"] = { uid : "7c7adaa6-cbe4-4eda-92eb-de9a27725ee5", type : "PossibleAnswer" } backupHelper["114645166"] = { uid : "73edd4dd-2c6f-49dc-b0ac-e31ad4aa9aee", type : "PossibleAnswer" } backupHelper["114645167"] = { uid : "4f785375-3c2b-4453-9ec6-7a7e6ece7faa", type : "PossibleAnswer" } backupHelper["114645168"] = { uid : "d0725b5d-3fe4-4f94-87d9-be876fdbd7c1", type : "PossibleAnswer" } backupHelper["114645169"] = { uid : "63af5b52-10e4-46c7-95bd-021d6fc2f76f", type : "PossibleAnswer" } backupHelper["114645170"] = { uid : "a20e1115-b6a5-476b-891a-eb7795729d66", type : "PossibleAnswer" } backupHelper["114645171"] = { uid : "0008659e-83ef-47fe-ad80-73078aaab4d8", type : "PossibleAnswer" } backupHelper["114645172"] = { uid : "1d9f0599-c3bd-4a1a-bee8-aa3440aa9954", type : "PossibleAnswer" } backupHelper["114645173"] = { uid : "cb84c0ee-b845-4ab7-acce-2019bd8d4b3c", type : "PossibleAnswer" } backupHelper["114645174"] = { uid : "654554bd-1415-4e64-ac0d-065216b4a695", type : "PossibleAnswer" } backupHelper["114645175"] = { uid : "bbf2a507-e890-44af-94b6-e889e17f91d0", type : "PossibleAnswer" } backupHelper["114645176"] = { uid : "6d0cf2ab-bd36-48d6-b795-762a5729f81c", type : "PossibleAnswer" } backupHelper["114645177"] = { uid : "af4ba30f-9dcd-4d28-9c79-cd29ce048b80", type : "PossibleAnswer" } backupHelper["114645178"] = { uid : "1ed57f05-7150-44bd-b649-e054bd88f32e", type : "PossibleAnswer" } backupHelper["114645179"] = { uid : "bd628164-c514-433c-aa9f-b0729f5da632", type : "PossibleAnswer" } backupHelper["114645180"] = { uid : "3d3c0c77-980f-472a-b15e-5e955780296a", type : "PossibleAnswer" } backupHelper["114645181"] = { uid : "73667658-3c29-4cb8-8b47-c9fc21683261", type : "PossibleAnswer" } backupHelper["114645182"] = { uid : "6e4e5ffb-ab6f-477a-afdf-ca67573a69b3", type : "PossibleAnswer" } backupHelper["114645183"] = { uid : "93f7480f-346c-49df-aa79-4e99aae71511", type : "PossibleAnswer" } backupHelper["114645184"] = { uid : "60fd17f2-f759-4fa9-87bd-4c949dff1eee", type : "PossibleAnswer" } backupHelper["114645185"] = { uid : "c96c3a12-e93e-4ac8-988c-d28a943b1e86", type : "PossibleAnswer" } backupHelper["114645186"] = { uid : "6128bfa1-2278-4158-8802-3e8b57383f8b", type : "PossibleAnswer" } backupHelper["114645187"] = { uid : "1ce91670-e9b5-432d-94ac-12b654db69ab", type : "PossibleAnswer" } backupHelper["114645188"] = { uid : "520f322b-b814-4c60-a59f-5f822c827917", type : "PossibleAnswer" } backupHelper["114645189"] = { uid : "7236e55d-00ff-4bb1-95c2-580f23cbfb5c", type : "PossibleAnswer" } backupHelper["114645190"] = { uid : "6e426e87-36c1-4ecf-93b6-418e6b3841ef", type : "PossibleAnswer" } backupHelper["114645191"] = { uid : "22b49ffb-5e8f-40a2-973f-224c0832b96d", type : "PossibleAnswer" } backupHelper["114645192"] = { uid : "f8205248-9d2a-4f6a-af3e-ffaf663427ff", type : "PossibleAnswer" } backupHelper["114645193"] = { uid : "d7e22c88-e2b4-4dcc-8065-3d928bbfe45c", type : "PossibleAnswer" } backupHelper["114645194"] = { uid : "48bcf3c7-32e2-42cd-8214-9ed0a390c0ac", type : "PossibleAnswer" } backupHelper["114645195"] = { uid : "7579bc92-627a-4ab3-8fb1-7e8622284f78", type : "PossibleAnswer" } backupHelper["114645196"] = { uid : "7ccb9d31-a5d1-40c0-9a34-e15817e230fb", type : "PossibleAnswer" } backupHelper["114645197"] = { uid : "a053804c-bbb7-4f80-8008-fb96c4c4e198", type : "PossibleAnswer" } backupHelper["114645198"] = { uid : "f7f2a0a6-7984-4a5a-96aa-5c32fab6b5f3", type : "PossibleAnswer" } backupHelper["114645199"] = { uid : "a24b8e6e-3456-4642-bc25-5df933269db6", type : "PossibleAnswer" } backupHelper["114645200"] = { uid : "d8962c2a-5e07-40e2-8afe-f807fa302196", type : "PossibleAnswer" } backupHelper["114645201"] = { uid : "2d15f5f1-d329-4f05-af7b-50464f652f19", type : "PossibleAnswer" } backupHelper["114645202"] = { uid : "8128471d-47bd-4ba2-8a1b-f244ef19e499", type : "PossibleAnswer" } backupHelper["114645203"] = { uid : "9d27735c-3969-4ebb-8522-ad7dace5da1e", type : "PossibleAnswer" } backupHelper["114645204"] = { uid : "fb4ed951-9781-43dd-852e-5a9e61bf4092", type : "PossibleAnswer" } backupHelper["114645205"] = { uid : "1f62c59a-8aba-49ad-b018-3935e8d77ff8", type : "PossibleAnswer" } backupHelper["114645206"] = { uid : "82c71c3b-ab42-452f-80d7-d91bd10f56c4", type : "PossibleAnswer" } backupHelper["114645207"] = { uid : "0a538d82-0d38-4e45-b31a-303c53acf3c3", type : "PossibleAnswer" } backupHelper["114645208"] = { uid : "a6f2b198-e13a-45e7-a13b-13e57acec478", type : "PossibleAnswer" } backupHelper["114645209"] = { uid : "94b7642c-8aa8-4af2-b75e-620e70accbe1", type : "PossibleAnswer" } backupHelper["114645210"] = { uid : "b4509832-06e1-4304-9c93-ad8d489d2e05", type : "PossibleAnswer" } backupHelper["114645211"] = { uid : "038aaef3-ae98-4377-9c28-08c3051ed39d", type : "PossibleAnswer" } backupHelper["114645212"] = { uid : "7f382e38-19a5-4892-96bd-4f6cf463f75f", type : "PossibleAnswer" } backupHelper["114645213"] = { uid : "e3fd7e24-b4eb-460e-a883-eb8fad15f510", type : "PossibleAnswer" } backupHelper["114645214"] = { uid : "897df14f-58aa-42ce-834e-f565e422c1e9", type : "PossibleAnswer" } backupHelper["114645215"] = { uid : "78c82119-71d0-47a0-a260-04332218ee4c", type : "PossibleAnswer" } backupHelper["114645216"] = { uid : "0f35e3a4-c9a4-4a97-98f2-c272b5c12213", type : "PossibleAnswer" } backupHelper["114645217"] = { uid : "dff66e36-10dd-456f-b400-2eb8051a8723", type : "PossibleAnswer" } backupHelper["114645218"] = { uid : "aa28f440-63d2-41b7-976c-3f8dc947ba74", type : "PossibleAnswer" } backupHelper["114645219"] = { uid : "eb4f6ae0-37b4-4cbd-bb4b-7afad03c2c39", type : "PossibleAnswer" } backupHelper["114645220"] = { uid : "d350f065-7644-4b0c-af3d-e7720bbd1666", type : "PossibleAnswer" } backupHelper["114645221"] = { uid : "b86e7716-8229-46a2-9ffa-b393705bf1f4", type : "PossibleAnswer" } backupHelper["114645222"] = { uid : "378a7497-3241-4a83-815f-c9f93bdfa8d8", type : "PossibleAnswer" } backupHelper["114645223"] = { uid : "deff4956-1069-4619-9408-1dc2527bb309", type : "PossibleAnswer" } backupHelper["114645224"] = { uid : "2ac30772-4df8-488d-bc7a-c52789e594a3", type : "PossibleAnswer" } backupHelper["114645225"] = { uid : "32fc82d9-10c2-4204-a4f4-e9cce33384c1", type : "PossibleAnswer" } backupHelper["114645226"] = { uid : "c493601d-cfba-4e32-8164-cd88f5fb6a74", type : "PossibleAnswer" } backupHelper["114645227"] = { uid : "b1458933-b8d2-4515-a749-dfa6150daae6", type : "PossibleAnswer" } backupHelper["114645228"] = { uid : "e33de704-f630-4a68-b760-857ebb68d0c4", type : "PossibleAnswer" } backupHelper["114645229"] = { uid : "f6b2527c-aa71-4720-b882-33ad5ea424db", type : "PossibleAnswer" } backupHelper["114645230"] = { uid : "3df7a9d3-3595-411b-ab29-c17e13710212", type : "PossibleAnswer" } backupHelper["114645231"] = { uid : "2a0c0e51-3598-40fd-88ee-fc8d12615a22", type : "PossibleAnswer" } backupHelper["114645232"] = { uid : "dd97e873-23ba-4727-84f2-b96a7bae5d2d", type : "PossibleAnswer" } backupHelper["114645233"] = { uid : "54f9b919-9fdd-4ecd-83ca-0c0ffd934ed1", type : "PossibleAnswer" } backupHelper["114645234"] = { uid : "c65d3394-d39e-4b5c-9862-a3ef4af26ff8", type : "PossibleAnswer" } backupHelper["114645235"] = { uid : "bb170a8a-8e78-4b22-b5e1-b83867ce02d4", type : "PossibleAnswer" } backupHelper["114645236"] = { uid : "7d60fc27-5279-412f-b91b-4cc51baf16a0", type : "PossibleAnswer" } backupHelper["114645237"] = { uid : "7b8ac8f0-fb6c-4fb5-944d-1a58a5db6e6b", type : "PossibleAnswer" } backupHelper["114645238"] = { uid : "8f7dfca1-8702-4ec2-92f7-2a512c4718d8", type : "PossibleAnswer" } backupHelper["114645239"] = { uid : "2d00dafe-7d8b-4254-9b0b-265440d8b15c", type : "PossibleAnswer" } backupHelper["114645240"] = { uid : "894e8249-7b19-4535-957b-604a3bc4ce5f", type : "PossibleAnswer" } backupHelper["114645241"] = { uid : "b2c3c8b1-fcbf-41af-bd2d-c33133aa022f", type : "PossibleAnswer" } backupHelper["114645242"] = { uid : "15aa2144-b0eb-4253-a32b-6c10d94a9639", type : "PossibleAnswer" } backupHelper["114645243"] = { uid : "06106934-345f-40d9-a880-d102887d539f", type : "PossibleAnswer" } backupHelper["114645244"] = { uid : "a04438f4-0435-48cd-b800-0ff99fa7b0d0", type : "PossibleAnswer" } backupHelper["114645245"] = { uid : "adbe276f-6494-407c-aa97-e5affcda15e4", type : "PossibleAnswer" } backupHelper["114645246"] = { uid : "6221ca92-914f-45f8-8ee1-ec514c3e0455", type : "PossibleAnswer" } backupHelper["114645247"] = { uid : "1094901f-63f9-4667-879a-4d52c37e4985", type : "PossibleAnswer" } backupHelper["114645248"] = { uid : "d7cb9f2f-33b7-44de-a00f-7a68de0b2485", type : "PossibleAnswer" } backupHelper["114645249"] = { uid : "3ace2cb0-c9e4-4fe9-8e80-e9823d0c0397", type : "PossibleAnswer" } backupHelper["114645250"] = { uid : "99ceb1a4-deb9-4ac5-9790-255024225f42", type : "PossibleAnswer" } backupHelper["114645251"] = { uid : "31f336b4-7d91-4f56-8170-4ff8a04a5eb0", type : "PossibleAnswer" } backupHelper["114645252"] = { uid : "2454f8db-7dd0-4278-a46e-beb76c9b8e9d", type : "PossibleAnswer" } backupHelper["114645253"] = { uid : "68573caf-a2d4-4a56-9c9c-5f128c0cc643", type : "PossibleAnswer" } backupHelper["114645254"] = { uid : "66f6d9bf-2f7c-4d2e-a4e9-9f1f4485310e", type : "PossibleAnswer" } backupHelper["114645255"] = { uid : "50253593-d522-444a-a6e7-7c5ac978b854", type : "PossibleAnswer" } backupHelper["114645256"] = { uid : "93631678-18e8-4de7-b9ff-06d0620bea13", type : "PossibleAnswer" } backupHelper["114645257"] = { uid : "3cf89edf-d462-4f12-a8d5-37afbe0e71e5", type : "PossibleAnswer" } backupHelper["114645258"] = { uid : "676040aa-4205-461c-b539-d11a1961a481", type : "PossibleAnswer" } backupHelper["114645259"] = { uid : "e461bcbf-ef48-4dc6-b2bf-b635570f0b78", type : "PossibleAnswer" } backupHelper["114645260"] = { uid : "37cf9bf5-8f8c-414a-af62-49fe878bf998", type : "PossibleAnswer" } backupHelper["114645261"] = { uid : "b159f72c-7cbf-4455-ab0c-37ebdb40b3e6", type : "PossibleAnswer" } backupHelper["114645262"] = { uid : "2209e253-19be-4c27-84d9-815baa898b0d", type : "PossibleAnswer" } backupHelper["114645263"] = { uid : "0e7aa125-302c-4117-9895-0560515c7e49", type : "PossibleAnswer" } backupHelper["114645264"] = { uid : "8e2864ee-b2ec-44ad-aa80-6ed2870e4f26", type : "PossibleAnswer" } backupHelper["114645265"] = { uid : "6fc33d56-7a88-4475-90c2-27ef59142787", type : "PossibleAnswer" } backupHelper["114645266"] = { uid : "e9d860df-cc83-4706-9049-b7e00c12b506", type : "PossibleAnswer" } backupHelper["114645267"] = { uid : "95f23cdd-c38c-4df4-b36a-438dd5a34298", type : "PossibleAnswer" } backupHelper["114645268"] = { uid : "db3d004a-40b7-4cbe-8101-adf3152c75b3", type : "PossibleAnswer" } backupHelper["114645269"] = { uid : "eed2b902-ea7a-4441-8266-3c9a7462bf59", type : "PossibleAnswer" } backupHelper["114645270"] = { uid : "4500f79a-1ada-4884-86ee-bb1d9a6bec88", type : "PossibleAnswer" } backupHelper["114645271"] = { uid : "f27d676d-ced9-47c1-b98e-2d7f14279b3d", type : "PossibleAnswer" } backupHelper["114645272"] = { uid : "3046af28-d42f-4197-9980-5bd8d7cfe266", type : "PossibleAnswer" } backupHelper["114645273"] = { uid : "37bf7bda-ca03-4728-a987-e4c6936a9b00", type : "PossibleAnswer" } backupHelper["114645274"] = { uid : "a68871a3-6260-4904-b990-43f24063e5bd", type : "PossibleAnswer" } backupHelper["114645275"] = { uid : "5106f57a-b198-4b18-9165-6feaeedb9db7", type : "PossibleAnswer" } backupHelper["114645276"] = { uid : "92de509a-d271-41f2-aa92-f6fca50ac468", type : "PossibleAnswer" } backupHelper["114645277"] = { uid : "344c0dc7-3750-46f8-8cf7-47117d83a228", type : "PossibleAnswer" } backupHelper["114645278"] = { uid : "8b69d6bf-ddcd-4f2b-a698-90a7cb5c3902", type : "PossibleAnswer" } backupHelper["114645279"] = { uid : "fd9dc82b-75d9-4bb8-8e00-b663d22b7c4a", type : "PossibleAnswer" } backupHelper["114645280"] = { uid : "930c1e72-e734-4039-bfc6-8115b91344a6", type : "PossibleAnswer" } backupHelper["114645281"] = { uid : "5d9aa254-e76b-406c-a9a9-c3f1f0a842fc", type : "PossibleAnswer" } backupHelper["114645282"] = { uid : "281559f0-fa34-4518-92b5-c80eaaed0faa", type : "PossibleAnswer" } backupHelper["114645283"] = { uid : "bf8f93bc-f422-4c6d-9c6d-0e92a7dacf4b", type : "PossibleAnswer" } backupHelper["114645284"] = { uid : "bde3182d-ed76-44d9-84c9-e342ada0ab5a", type : "PossibleAnswer" } backupHelper["114645285"] = { uid : "bbe12a2a-44cd-4931-a7c2-768a546204b0", type : "PossibleAnswer" } backupHelper["114645286"] = { uid : "4259ff2d-c8dd-4ef9-a38e-e12ffb51c47f", type : "PossibleAnswer" } backupHelper["114645287"] = { uid : "0927664b-44f1-482e-8f14-24a282c3eebf", type : "PossibleAnswer" } backupHelper["114645288"] = { uid : "6bcb4a67-f2bc-44fb-b629-50c41b955d8d", type : "PossibleAnswer" } backupHelper["114645289"] = { uid : "8faa66c0-d387-7457-8bee-0a5358cf4192", type : "FreeTextQuestion" } backupHelper["114645290"] = { uid : "34116479-f995-41a0-d872-89e604d7fd6c", type : "FreeTextQuestion" } backupHelper["114645291"] = { uid : "4481280a-b2f2-ff4f-6871-c2a03cce703f", type : "FreeTextQuestion" } backupHelper["114645292"] = { uid : "f2df47d8-846d-cd28-e819-af22a505629b", type : "Section" } backupHelper["114645293"] = { uid : "fae151db-ffe3-84ac-251a-c1d99152ef55", type : "Confirmation" } backupHelper["114645294"] = { uid : "a7217a84-de20-0443-d039-0dc04210d7fb", type : "Download" } } 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, readValueOnce, cellEl) { if (typeof values[uniqueId] != 'undefined' && values[uniqueId] != null) { 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"); } if (readValueOnce) { var ret = values[uniqueId]; values[uniqueId] = null return ret; } return values[uniqueId]; } return ""; } var valuesread = {}; function getValueByQuestionRating(uniqueId, answerUniqueId, cellEl) { if (typeof values[uniqueId] != 'undefined' && typeof valuesread[answerUniqueId] == '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"); valuesread[answerUniqueId] += true } return values[uniqueId]; } return ""; } function getValueByQuestionGallery(uniqueId) { if (typeof values[uniqueId] != 'undefined') { return values[uniqueId]; } return ""; } var pavalues = null; var pavaluesread = {}; 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 pavaluesread = {}; var pavaluesread2 = {}; function getPAByQuestionCheckBox(uniqueId, answerUniqueId, cellEl) { if (typeof pavalues[uniqueId] != 'undefined' && typeof pavaluesread2[answerUniqueId] == 'undefined') { if (cellEl != null && $(cellEl).is(".complex")){ $(cellEl).closest(".innercell").addClass("answered"); } else { $('.survey-element[data-uid="' + uniqueId + '"]').addClass("answered"); } if (typeof pavaluesread[answerUniqueId] != 'undefined') { pavaluesread2[answerUniqueId] += true; } else { pavaluesread[answerUniqueId] += true; } 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 getTargetDatasetByQuestion(uniqueId) { return values[uniqueId]; } function getIdForUniqueId(uniqueId) { return typeof idsforuids[uniqueId] != 'undefined' ? idsforuids[uniqueId] : ""; } var tablevalues = null; function getTableAnswer(uniqueId, row, col, readOnce) { if (typeof tablevalues[uniqueId + "#" + row + "#" + col] != 'undefined' && tablevalues[uniqueId + "#" + row + "#" + col] != null) { $('.survey-element[data-uid="' + uniqueId + '"]').addClass("answered"); if (readOnce) { var res = tablevalues[uniqueId + "#" + row + "#" + col]; tablevalues[uniqueId + "#" + row + "#" + col] = null; return res; } return tablevalues[uniqueId + "#" + row + "#" + col]; } return ""; } var filevalues = null; var filesread = {}; var filesread2 = {}; function getFileAnswer(uniqueId) { const result = filevalues[uniqueId]; if (typeof result != 'undefined' && typeof filesread2[uniqueId] == 'undefined') { $('.survey-element[data-uid="' + uniqueId + '"]').addClass("answered"); if (typeof filesread[uniqueId] != 'undefined') { filesread2[uniqueId] += true; } else { filesread[uniqueId] += true; } return result; } return ""; } 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="8d955158-4736-4c95-9bce-b353e8e3fd50" /> </div></form></div> <div class="modal" id="busydialog" data-backdrop="static"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-body" style="padding-left: 30px; text-align: center"> Please wait<br /><br /> <img alt="wait animation" src="/eusurvey/resources/images/ajax-loader.gif" /> </div> </div> </div> </div> <div class="modal" id="unsaveddelphichangesdialog" role="dialog" data-backdrop="static"> <div class="modal-dialog modal-sm"> <div class="modal-content"> <div class="modal-body"> There are unsaved changed. Do you want to skip these changes and return to the overview page?</div> <div class="modal-footer"> <button type="button" class="btn btn-default" id="unsaveddelphichangesdialoglink">Yes</button> <button type="button" class="btn btn-primary" onclick="hideModalDialog($('#unsaveddelphichangesdialog'))">Cancel</button> </div> </div> </div> </div> </div> </div> <div class="footer2 footer-bottom" style="height: auto"> <div class="row"> <div style="max-width: 1000px; margin-left: auto; margin-right: auto"> <div class="col-md-6"> <a class="logolink" href="/eusurvey/home/welcome"><img src="/eusurvey/resources/images/logo_Eusurvey-small-white.png" alt="EUSurvey"/></a> <br /><br /> <i> <b>Intellectual Property:</b> Built by DG DIGIT and funded under the ISA, <a target="_blank" href="https://ec.europa.eu/isa2/home_en/" aria-label="ISA虏 programme - Opens in new window">ISA虏</a> and <a target="_blank" href="https://digital-strategy.ec.europa.eu/en/activities/digital-programme" aria-label="DIGITAL">Digital Europe Programme</a> (DIGITAL) EUSurvey is fully open source and published under the <a target="_blank" href="https://joinup.ec.europa.eu/collection/eupl">EUPL</a> licence. You can download the source code from GitHub: <a target="_blank" href="https://github.com/EUSurvey">https://github.com/EUSurvey</a></i> </div> <div class="col-md-3" style="padding-top: 40px;"> <a href="/eusurvey/home/privacystatement">EUSurvey Privacy Statement</a><br /> <a href="/eusurvey/home/tos">Terms of Service</a><br /> <a href="https://ec.europa.eu/info/cookies_en">Cookies</a><br /> </div> <div class="col-md-3" style="padding-top: 40px;"> <a href="https://commission.europa.eu/languages-our-websites_en">Languages policy</a><br /> <a href="https://commission.europa.eu/privacy-policy-websites-managed-european-commission_en">Privacy policy</a><br /> <a href="https://commission.europa.eu/legal-notice_en">Legal notice</a><br /> </div> </div> </div> <div class="row" id="footer-content-languages"> <div style="max-width: 970px; margin-left: auto; margin-right: auto"> <a href="?language=bg">袘褗谢谐邪褉褋泻懈</a>  <a href="?language=cs">膶e拧tina</a>  <a href="?language=da">Dansk</a>  <a href="?language=de">Deutsch</a>  <a href="?language=et">Eesti keel</a>  <a href="?language=el">螘位位畏谓喂魏维</a>  <a href="?language=en">English</a>  <a href="?language=es">Espa帽ol</a>  <a href="?language=fr">Fran莽ais</a>  <a href="?language=ga">Gaeilge</a>  <a href="?language=hr">Hrvatski jezik</a>  <a href="?language=it">Italiano</a>  <a href="?language=lv">Latvie拧u valoda</a>  <a href="?language=lt">Lietuvi懦 kalba</a>  <a href="?language=hu">Magyar</a>  <a href="?language=mt">Malti</a>  <a href="?language=nl">Nederlands</a>  <a href="?language=pl">Polski</a>  <a href="?language=pt">Portugu锚s</a>  <a href="?language=ro">Rom芒n膬</a>  <a href="?language=sk">Sloven膷ina</a>  <a href="?language=sl">Sloven拧膷ina</a>  <a href="?language=fi">Suomi</a>  <a href="?language=sv">Svenska</a>  </div> </div> <div class="row" id="footer-content-languages-form" style="display: none"> <div style="max-width: 970px; margin-left: auto; margin-right: auto"> <a href="?surveylanguage=EN">English</a> </div> </div> <div class="row" style="text-align: center"> <div id="footerVersionNumber"> Version  v1.5.3.3 625447edf6ac2f69bd9ee79032f971bb3c1ea311 (20/11/2024 18:10)</div> </div> </div> <div class="modal" id="export-name-dialog" data-backdrop="static"> <div class="modal-dialog modal-sm"> <div class="modal-content"> <div class="modal-header" style="font-weight: bold;"> Start <span id="export-name-dialog-type"></span> Export</div> <div class="modal-body" style="padding-left: 30px;"> <label for="export-name" style="display:inline"><span class="mandatory">*</span>Please give your export a name for identification</label> <input class="form-control" type="text" id="export-name" maxlength="255" name="export-name" style="width:220px; margin-top: 10px" /> <span id="validation-error-required" class="validation-error hideme"><br />This field is required.</span> <span id="validation-error-exportname" class="validation-error hideme">Alias must be composed of lowercase and uppercase letters (a-z and A-Z), numbers (0-9), hyphens and underscores only.</span> </div> <div class="modal-footer"> <img alt="wait animation" class="hideme" style="margin-right:90px;" src="/eusurvey/resources/images/ajax-loader.gif" /> <a id="okStartExportButton" onclick="checkAndStartExport($('#export-name').val());" class="btn btn-primary">OK</a> <a class="btn btn-default" data-dismiss="modal">Cancel</a> </div> </div> </div> </div> <div class="modal" id="generic-wait-dialog" data-backdrop="static"> <div class="modal-dialog modal-sm"> <div class="modal-content"> <div class="modal-body" style="text-align: center;"> <div id="generic-wait-dialog-div" class="dialog-wait-image" style="padding: 30px"> </div> </div> </div> </div> </div> <form id="logoutform" action="/eusurvey/j_spring_security_logout" method="post"><div> <input type="hidden" name="_csrf" value="8d955158-4736-4c95-9bce-b353e8e3fd50" /> </div></form><script type="text/javascript"> $(function() { var spinner = new Spinner().spin(); $("#generic-wait-dialog-div").append(spinner.el); }); </script> <noscript> <div style="position: fixed; top: 0pc; left: 0px; width: 100%; height: 100%; background-color: #fff; z-index: 1002; padding: 30px;"> Javascript is disabled in your browser. In order to use EUSurvey, please enable Javascript and reload the page.<br /><br /> <a href="/eusurvey/">EUSurvey home</a> </div> </noscript> <div class="modal" id="nocookies2" data-backdrop="static"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-body" style="text-align: center"> Cookies are disabled in your browser. In order to use EUSurvey, please enable cookies and reload the page.<br /><br /> <a href="/eusurvey/">EUSurvey home</a> </div> </div> </div> </div> <script type="text/javascript"> $(function() { var date = new Date().getFullYear().toString(); document.cookie = "testcookie=" + date + "; path=/"; var nameEQ = "testcookie="; var ca = document.cookie.split(';'); for (var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') c = c.substring(1, c.length); if (c.indexOf(nameEQ) == 0){ var value = c.substring(nameEQ.length, c.length); if (value == date) { return; } } } $("#nocookies2").modal('show'); }); </script> <script> $('#footer-content-languages').hide(); </script><div id="export-available-box" class="alert message-success-right hideme"> <div style="float: right; margin-left: 10px;"><a onclick="$(this).parent().parent().hide();"><span class="glyphicon glyphicon-remove"></span></a></div> <div style="float: left; margin: 5px; margin-top: 5px; margin-right: 10px""><img src="/eusurvey/resources/images/check.png" alt="system message icon"></div> <div class="generic-box-text"> Export <span id="export-available-box-name" style="font-weight: bold;"></span> available for download<br /> Go to <a class="visiblelink" href="/eusurvey/exports/list">Export Page</a> </div> </div> <div id="messages-box-div" style="display: none"> <div id="messages-box"> <!-- ko foreach: systemMessages --> <!-- ko if: Hidden() == false --> <div class="message" style="display: none"> <!-- ko if: Criticality() == '1' --> <div class="message-success-header"> <div style="float: left; margin-right: 20px;"><span class="glyphicon glyphicon-ok"></span></div> <div style="float: right"><span data-bind="click: removeMessage" class="glyphicon glyphicon-remove"></span></div> <div style="clear: both"></div> </div> <!-- /ko --> <!-- ko if: Criticality() == '2' --> <div class="message-info-header"> <div style="float: left; margin-right: 20px;"><span class="glyphicon glyphicon-info-sign"></span></div> <div style="float: right"><span data-bind="click: removeMessage" class="glyphicon glyphicon-remove"></span></div> <div style="clear: both"></div> </div> <!-- /ko --> <!-- ko if: Criticality() == '3' --> <div class="message-error-header"> <div style="float: left; margin-right: 20px;"><span class="glyphicon glyphicon-exclamation-sign"></span></div> <div style="float: right"><span data-bind="click: removeMessage" class="glyphicon glyphicon-remove"></span></div> <div style="clear: both"></div> </div> <!-- /ko --> <div data-bind="html: Content"></div> </div> <!-- /ko --> <!-- /ko --> <!-- ko foreach: messages --> <!-- ko if: Hidden() == false --> <div class="message" style="display: none"> <!-- ko if: Type() == 'success' --> <div class="message-success-header"> <div style="float: left"><span class="glyphicon glyphicon-ok"></span></div> <div style="float: right"><span data-bind="click: removeMessage" class="glyphicon glyphicon-remove"></span></div> <div style="clear: both"></div> </div> <!-- /ko --> <!-- ko if: Type() == 'info' --> <div class="message-info-header"> <div style="float: left"><span class="glyphicon glyphicon-info-sign"></span></div> <div style="float: right"><span data-bind="click: removeMessage" class="glyphicon glyphicon-remove"></span></div> <div style="clear: both"></div> </div> <!-- /ko --> <!-- ko if: Type() == 'error' --> <div class="message-error-header"> <div style="float: left"><span class="glyphicon glyphicon-exclamation-sign"></span></div> <div style="float: right"><span data-bind="click: removeMessage" class="glyphicon glyphicon-remove"></span></div> <div style="clear: both"></div> </div> <!-- /ko --> <div data-bind="html: Content"></div> </div> <!-- /ko --> <!-- /ko --> </div> </div> <div id="messages-log-div" style="display: none" > <div id="messages-log"> <div id="messages-log-header"> <div style="float: left">Notifications</div> <div style="float: right"><span data-bind="click: allRead" class="glyphicon glyphicon-remove"></span></div> <div style="clear: both"></div> </div> <div style="max-height: 500px; overflow-y: auto"> <div data-bind="foreach: systemMessages"> <div class="log-message"> <div style="float: left; margin-right: 20px;"> <!-- ko if: Criticality() == '1' --> <span style="color: #4caf50" class="glyphicon glyphicon-ok"></span> <!-- /ko --> <!-- ko if: Criticality() == '2' --> <span style="color: #337ab7" class="glyphicon glyphicon-info-sign"></span> <!-- /ko --> <!-- ko if: Criticality() == '3' --> <span style="color: #c11c1c" class="glyphicon glyphicon-exclamation-sign"></span> <!-- /ko --> </div> <div data-bind="html: Content"></div> </div> </div> <table class="table" style="margin-bottom: 0px"> <thead> <tr> <th class="sr-only">Message Type</th> <th class="sr-only">Message Text</th> <th class="sr-only">Close</th> </tr> </thead> <tbody> <!-- ko foreach: messages --> <!-- ko if: Deleted() == false --> <tr class="log-message"> <td style="width: 30px; padding-right: 0px;"> <!-- ko if: Type() == 'success' --> <span style="color: #4caf50" class="glyphicon glyphicon-ok"></span> <!-- /ko --> <!-- ko if: Type() == 'info' --> <span style="color: #337ab7" class="glyphicon glyphicon-info-sign"></span> <!-- /ko --> <!-- ko if: Type() == 'error' --> <span style="color: #c11c1c" class="glyphicon glyphicon-exclamation-sign"></span> <!-- /ko --> </td> <td data-bind="html: Content"></td> <td style="width: 40px;"> <span data-bind="click: deleteMessage" class="glyphicon glyphicon-remove"></span> </td> </tr> <!-- /ko --> <!-- /ko --> </tbody> </table> </div> </div> </div> <div class="modal" id="generic-show-messages-dialog" data-backdrop="static"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-body"> <span id="generic-show-messages-dialog-text"></span> </div> <div class="modal-footer"> <a class="btn btn-primary" data-dismiss="modal">OK</a> </div> </div> </div> </div> <div class="modal" id="generic-show-multiple-messages-dialog" data-backdrop="static"> <div class="modal-dialog modal-sm"> <div class="modal-content"> <div class="modal-header"> <b>Result</b> </div> <div class="modal-body"> </div> <div class="modal-footer"> <a class="btn btn-primary" data-dismiss="modal">OK</a> </div> </div> </div> </div> <div class="modal" id="timeout-dialog" data-backdrop="static"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <b>Session Timeout</b> </div> <div class="modal-body"> <div id="timeout-dialog-info"> Your session will expire in <span style="color:#f00" id="timeoutleft"></span>.<br /> Click "Extend" if you want to stay logged in.</div> <div id="timeout-dialog-error" style="display: none"> Your session has timed out. Please reload the page.</div> </div> <div class="modal-footer"> <a class="btn btn-primary" id="timeout-dialog-extend" onclick="extend()">Extend</a> </div> </div> </div> </div> <script type="text/javascript"> var Message = function() { this.Type = ko.observable(""); this.Content = ko.observable(""); this.Hidden = ko.observable(false); this.Deleted = ko.observable(false); this.Read = ko.observable(false); this.Icon = ko.observable(""); this.Criticality = ko.observable(1); this.removeMessage = function () { this.Hidden(true); if (this.Type() == "system") { deleteUserMessage(); } _messages.saveToLocalStorage(); }; this.deleteMessage = function() { this.Deleted(true); _messages.saveToLocalStorage(); }; } var Messages = function() { var self = this; this.messages = ko.observableArray(); this.systemMessages = ko.observableArray(); this.totalMessages = ko.computed(function(){ var counter = 0; for (var i = 0; i < self.messages().length; i++) { if (!self.messages()[i].Read()) counter++; } for (var i = 0; i < self.systemMessages().length; i++) { if (!self.systemMessages()[i].Read()) counter++; } return counter; }); this.allRead = function() { for (var i = 0; i < self.messages().length; i++) { self.messages()[i].Read(true); } for (var i = 0; i < self.systemMessages().length; i++) { self.systemMessages()[i].Read(true); } $('#messages-log-div').hide(); self.saveToLocalStorage(); } this.showAll = function() { for (var i = 0; i < this.messages().length; i++) { this.messages()[i].Hidden(false); } window.setTimeout("showMessages()", 100); } this.hideSystemMessages = function() { for (var i = 0; i < this.systemMessages().length; i++) { this.systemMessages()[i].Hidden(true); } } this.addMessage = function(message, fromLoad) { this.messages.splice(0, 0, message); window.setTimeout("showMessages()", 100); window.setTimeout(function() { message.removeMessage(); }, 5000) if (!fromLoad) { self.saveToLocalStorage(); } } this.saveToLocalStorage = function() { try { localStorage.setItem("messagelog", ko.toJSON(this.messages())); } catch (e) {}; } this.addSuccessMessage = function (text) { text = self.sanitizeErrorPageText(text); var message = new Message(); message.Type("success"); message.Content(text); self.addMessage(message, false); } this.addInfoMessage = function (text) { text = self.sanitizeErrorPageText(text); var message = new Message(); message.Type("info"); message.Content(text); self.addMessage(message, false); } this.addErrorMessage = function (text) { text = self.sanitizeErrorPageText(text); var message = new Message(); message.Type("error"); message.Content(text); self.addMessage(message, false); } this.addSystemMessage = function (m) { var message = new Message(); message.Type("system"); message.Content(self.sanitizeErrorPageText(m.text)); message.Icon(m.icon) message.Criticality(m.criticality); this.systemMessages.splice(0, 0, message); window.setTimeout("showMessages()", 100); } this.sanitizeErrorPageText = function (text){ //Tomcat error responses always start with <!doctype html> //Like this they can't be added to the notifications if (text.toLowerCase().startsWith("<!doctype html>")){ let sanitizerNode = document.createElement("div") sanitizerNode.innerHTML = text return sanitizerNode.innerText.substr(0, 60) + "..." } return text } try { var messagelog = localStorage.getItem("messagelog"); var parsed = JSON.parse(messagelog); for (var i = 0; i < parsed.length; i++) { var message = new Message(); message.Type(parsed[i].Type); message.Content(parsed[i].Content); message.Deleted(parsed[i].Deleted); message.Read(parsed[i].Read); message.Hidden(parsed[i].Hidden); self.addMessage(message, true); } } catch (e) {}; } var _messages = new Messages(); $(function() { ko.applyBindings(_messages, $("#messages-box")[0]); ko.applyBindings(_messages, $("#messages-log")[0]); if ($("#messages-button").length > 0) { ko.applyBindings(_messages, $("#messages-button")[0]); } checkTimeout(); $('#messages-box-div').show(); }); function showInfo(text) { _messages.addInfoMessage(text); } function showSuccess(text) { _messages.addSuccessMessage(text); } function showError(text) { _messages.addErrorMessage(text); } let lastTimeAjaxError = new Date(0) let stopAjaxErrors = false function showAjaxError(statuscode){ if (!stopAjaxErrors && new Date().getTime() - lastTimeAjaxError.getTime() > 2500) { //Prevent Spam showError("Connection Error " + statuscode); lastTimeAjaxError = new Date() } } //When unloading the page, prevent ajaxErrors, as they might be thrown when the request is interrupted by the browser window.addEventListener("beforeunload", () => {stopAjaxErrors = true}) function showSystemMessage(message) { _messages.addSystemMessage(message); } function showMessages() { $('.message:hidden').show(); } function hideMessages() { for (var i = 0; i < _messages.messages().length; i++) { _messages.messages()[i].Hidden(true); } } function showExportDialogAndFocusEmail(caller) { $('#ask-export-dialog').find(".foremail").hide(); $('#ask-export-dialog').find(".forexport").show(); showModalDialog($('#ask-export-dialog'), caller); setTimeout(function() { $('#email').focus(); }, 1000); } function showAskEmailDialog(caller) { $('#ask-export-dialog').find(".foremail").show(); $('#ask-export-dialog').find(".forexport").hide(); showModalDialog($('#ask-export-dialog'), caller); } var sessiontimeout = 3600; var timeoutTime = new Date(); refreshTimeout(); function refreshTimeout() { timeoutTime = new Date(); timeoutTime.setSeconds(timeoutTime.getSeconds() + sessiontimeout); } function checkTimeout() { if (sessiontimeout == 0) return; var diffTimeMilliseconds = getTimeoutMilliseconds(); if (diffTimeMilliseconds < 5 * 60 * 1000) { $('#timeout-dialog').modal('show'); updateTimeout(); } else { window.setTimeout(function() { checkTimeout(); }, 60000); } } function getTimeoutMilliseconds() { var currentTime = new Date(); return timeoutTime - currentTime; } function showSessionError() { //forcing timeout by setting the timeoutTime to yesterday timeoutTime.setDate(timeoutTime.getDate() - 1); $('#timeout-dialog').modal('show'); updateTimeout(); } function showLocalBackupFilesInfo(){ showInfo("Uploaded files can not be restored from local backup") } function updateTimeout() { var diffTimeMilliseconds = getTimeoutMilliseconds(); if (diffTimeMilliseconds <= 0) { //this means the session has timed out $('#timeout-dialog-info').hide(); $('#timeout-dialog-error').show(); $('#timeout-dialog-extend').hide(); return; } if (diffTimeMilliseconds > 5 * 60 * 1000) { //this means there was a request in the meantime that extended the session $('#timeout-dialog').modal('hide'); checkTimeout(); return; } var diffTimeSeconds = diffTimeMilliseconds / 1000; var minutes = Math.floor(diffTimeSeconds / 60); var seconds = Math.floor(diffTimeSeconds - (minutes * 60)); $('#timeoutleft').html(minutes + ":" + (seconds < 10 ? "0" + seconds : seconds)); window.setTimeout(function() { updateTimeout(); }, 1000); } function extend() { $.ajax({ url: contextpath + "/info/renewsession", cache: false, error: function(e) { //this happens when there is no message }, success: function(message) { //session timeout reset $('#timeout-dialog').modal('hide'); refreshTimeout(); checkTimeout(); } }); } function testTimeoutExpiration(restTime) { lastEditDate.setDate(lastEditDate.getDate()-1); let originalTimeout = sessiontimeout sessiontimeout = 300; if (Number.isInteger(restTime)) { sessiontimeout = restTime; } refreshTimeout(); checkTimeout(); console.log("Function for testing purposes. Set Timeout to", timeoutTime); sessiontimeout = originalTimeout } </script><script type="text/javascript"> $(document).ready(function(){ $("#language-selector option").each(function(){ if($(this).val() == $("#newlang").val()) { $(this).attr("selected", "selected"); } else { $(this).removeAttr("selected"); } }); }); </script> <div class="modal" id="networkproblemsdialog" role="dialog"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> Network Problems</div> <div class="modal-body"> 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.</div> <div class="modal-footer"> <a onclick="$('#networkproblemsdialog').modal('hide')" target="_blank" class="btn btn-primary">OK</a> </div> </div> </div> </div> </body> </html>