Single Page CBC (Choice Based Conjoint)
mobile-phone
Single Page Choice Based Conjoint

For this setup, upload the dat file on the survey "upload file" page and call the below script for calling the design file


<exec when="init">
def getCodeFile(fname, zipHeader):
  try:
      CodesData = File( "%s/%s" % (gv.survey.path, fname), zipHeader)
  except IOError:
      CodesData = ""
  return CodesData
</exec>

<exec when="init">
cbcd = getCodeFile("cbc_design.dat", "code")
</exec>

After this copy the below script while updating the question id o be the first one of the ones shown to the respondent.


<style name="respview.client.js" with="SPCBCD_1"><![CDATA[
<script>
jQuery(document).ready(function(){
jQuery(".survey-section:eq(1)").prepend("<div class='cbcprogress'></div>")
jQuery(".html.comment").addClass("collapsedQ");
jQuery(".question.radio").each(function(){

var targetdiv = jQuery(this).attr("id")

var loopnum = jQuery(this).attr("id").split("_")[2]
var allpage = jQuery(".question.radio").length



if (loopnum == 1){
jQuery("div.cbcprogress").append("<div class='circle active' id='jump_" + loopnum + "'><span class='label' targetQ='" + targetdiv + "'>" + loopnum + "</span></div><span class='bar'></span>")
jQuery(this).addClass("expandedQ");

}

else if (loopnum < allpage){
jQuery("div.cbcprogress").append("<div class='circle' id='jump_" + loopnum + "'><span class='label' targetQ='" + targetdiv + "'>" + loopnum + "</span></div><span class='bar'></span>")
jQuery(this).addClass("collapsedQ");
}
else{
jQuery("div.cbcprogress").append("<div class='circle' id='jump_" + loopnum + "'><span class='label' targetQ='" + targetdiv + "'>" + loopnum + "</span></div>")
jQuery(this).addClass("collapsedQ");
}
    
});

jQuery("#btn_continue, #btn_finish").hide();

jQuery(".td.element.inputrow").each(function(){
	if(jQuery(this).find('input[type="radio"]').first().attr("checked")){
    	jQuery(this).addClass('cellchecked');
    	jQuery("#btn_continue, #btn_finish").show();
    }else{
        jQuery(this).removeClass('cellchecked');
            
    }
});




jQuery("td.element.inputrow.clickableCell").on("click", function(e){
	e.preventDefault();
	e.stopPropagation();
	jQuery(this).parents(".answers").find("td.element").removeClass('cellchecked');
    jQuery(this).addClass('cellchecked');
    var jQueryradio = jQuery(this).find('input[type="radio"]');
    if (!jQueryradio.prop("checked")){
    jQueryradio.prop("checked",true);
    var $curel = jQuery("span[targetQ='" + jQuery(this).parents(".question.radio").attr("id") + "']")
    
    $curel.parents(".cbcprogress .circle").removeClass("active")
    $curel.parent(".circle").addClass("done enablenav")
    $curel.parent(".circle").next().addClass("done")
    jQuery(this).parents(".question.radio").removeClass("expandedQ")
    jQuery(this).parents(".question.radio").addClass("collapsedQ")

var loopnum = jQuery(this).parents(".question.radio").attr("id").split("_")[2]
var allpage = jQuery(".question.radio").length


if (loopnum != allpage){

    var $nextel = $curel.parent(".circle").next().next()
    
    $nextel.addClass("active enablenav")

    jQuery("#" + $nextel.find("span.label").attr("targetQ")).removeClass("collapsedQ")
    jQuery("#" + $nextel.find("span.label").attr("targetQ")).addClass("expandedQ")
   }
else{
jQuery(".html.comment").removeClass("collapsedQ")
jQuery(".html.comment").addClass("expandedQ")
jQuery("#btn_continue, #btn_finish").show();

}
}   
   
});


jQuery(".circle span.label").on("click", function(e){
	e.preventDefault();
	e.stopPropagation();

if (jQuery(this).parents(".circle").hasClass("enablenav")){
jQuery(this).parents(".circle").addClass("active")
jQuery(".question.radio.expandedQ").addClass("collapsedQ")
jQuery(".question.radio.expandedQ").removeClass("expandedQ")

jQuery("#" + jQuery(this).attr("targetQ")).removeClass("collapsedQ")
jQuery("#" + jQuery(this).attr("targetQ")).addClass("expandedQ")

}

});


})
</script>
]]></style>
<style name="respview.client.css" with="SPCBCD_1"><![CDATA[
<style>

.question.radio.expandedQ, .html.comment.expandedQ{
display: block !important;
}
.question.radio.collapsedQ, .html.comment.collapsedQ, .cell-sub-wrapper{

display: none !important;
}


.question.radio{
transition: opacity 2s, display 2s;
}

td.element.inputrow:hover div.jTitle, td.element.inputrow:hover div.jImage, td.element.inputrow:hover div.jPrice, td.element.inputrow.cellchecked div.jTitle, td.element.inputrow.cellchecked div.jImage, td.element.inputrow.cellchecked div.jPrice, td.element.inputrow:hover div.NoneTitle, td.element.inputrow.cellchecked div.NoneTitle{
background: #0fb1b3 !important;
}

table.grid.grid-table-mode{
border-collapse: separate;
border-spacing: 20px 0px;
}
th.col-legend{
border-bottom: none !important;
background-color: #0fb1b3;
border-radius: 15px;
text-transform: uppercase;
color: #fff;
font-weight: bold;
}

div.jTitle, div.jImage, div.jPrice {
border-radius: 15px;
border: solid 1px #0fb1b3;
text-align: center;
width: 100%;
transition: all 0.5s;
font-weight: bold;
}

div.jImage{
height: 450px;
width: 170px;
display: flex;
justify-content: center;
align-items: center;
width: 100%;
}
div.NoneTitle{
height: 450px;
width: 170px;
width: 100%;
display: flex;
justify-content: center;
align-items: center;
border: solid 1px #0fb1b3;
border-radius: 15px;
font-weight: bold;
}


td.element.inputrow.cellchecked div.NoneTitle, td.element.inputrow.cellchecked div.jTitle, td.element.inputrow.cellchecked div.jPrice{
color: #fff;
}

.grid.grid-table-mode{
width: 100% !important;

}

div.jTitle, div.jPrice {
padding: 15px;

}

div.jImage img{
  margin-left: auto;
  margin-right: auto;
}

td.element.lastrow{
border: none !important;
}

.pricebig{
font-size: 40px;
}
.iconcell{
width: 15%;
}

.textcell{
width: 85%;
}

.icontables{
padding: 5px;
width: 100%;
text-align: left;
}

.cbcprogress{
text-align: center;
padding: 5px;
position: absolute;
transform: rotate(90deg);
top: 130px;
left: -75px;
}

.circle{
cursor: pointer;
}

.cbcprogress .circle.done, .cbcprogress .bar.done{
background: #e6e6e6;
}

.cbcprogress .circle, .cbcprogress .bar{
    display: inline-block;
    background: #fff;
    width: 40px;
    height: 40px;
    border-radius: 40px;
    border: 1px solid #0fb1b3;
}

.cbcprogress .circle.active .label{
color: #fff;
background: #0fb1b3;
box-shadow: inset 0 0 2px rgb(0 0 0 / 20%);
}

.cbcprogress .circle.done .label{
color: #fff;
background: #167475;
box-shadow: inset 0 0 2px rgb(0 0 0 / 20%);
}

.cbcprogress .circle .label{
display: inline-block;
    width: 32px;
    height: 32px;
    line-height: 32px;
    border-radius: 32px;
    margin-top: 3px;
    color: #0fb1b3;
    font-size: 17px;
}    
.cbcprogress .bar{
    position: relative;
    width: 10px;
    height: 6px;
    margin: 3px 0 3px 0;
    border-left: none;
    border-right: none;
    border-radius: 0;
}
.circle span.label{
transform: rotate(-90deg);
}
</style>
]]></style>
</exec>

Then copy the below while updating the question rows, question label, question text and piping accordingly.


  <quota label="cbcQu" overquota="noqual" sheet="CBCversion"/>

  <number 
   label="CBC_Version"
   size="3"
   where="execute,survey,report">
    <title>CBC Version</title>
    <exec>
print p.markers
for x in p.markers:
    if "/CBCversion/varCBC_" in x:
        CBC_Version.val = int(x.split("_")[-1])
        break
    </exec>

  </number>

  <suspend/>

  <define label="att1_list">
    <row label="r1">First-person shooter (FPS)</row>
    <row label="r2">Third-person shooter (TPS) / Action</row>
    <row label="r3">Role-playing (RPG)</row>
    <row label="r4">Strategy</row>
    <row label="r5">Simulation</row>
    <row label="r6">Casual / puzzle / card</row>
    <row label="r7">Real-time strategy</row>
    <row label="r8">Sports</row>
    <row label="r9">Music</row>
    <row label="r10">Fighting</row>
    <row label="r11">Massive online battle arena (MOBA)</row></define>
  <define label="att2_list">
    <row label="r1">Not included (Note: show as blank cell in programmed conjoint)</row>
    <row label="r2">Additional story content is available for purchase in a cash shop</row></define>
  <define label="att3_list">
    <row label="r1">Not included (Note: show as blank cell in programmed conjoint)</row>
    <row label="r2">Additional levels of gameplay are available for purchase in a cash shop</row></define>
  <define label="att4_list">
    <row label="r1">Not included (Note: show as blank cell in programmed conjoint)</row>
    <row label="r2">Additional characters are available for purchase in a cash shop</row></define>
  <define label="att5_list">
    <row label="r1">Not included (Note: show as blank cell in programmed conjoint)</row>
    <row label="r2">In-game items like weapons, vehicles and equipment are available for purchase in a cash shop</row></define>
  <define label="att6_list">
    <row label="r1">Not included (Note: show as blank cell in programmed conjoint)</row>
    <row label="r2">Cosmetic items and customizations for you characters are available for purchase in a cash shop</row></define>
  <define label="att7_list">
    <row label="r1">Not included (Note: show as blank cell in programmed conjoint)</row>
    <row label="r2">Boosters and power-ups are available for purchase in a cash shop</row></define>
  <define label="att8_list">
    <row label="r1">The game features in-game currency that can only be earned</row>
    <row label="r2">The game features in-game currency that can be earned or purchased with real money</row>
    <row label="r3">The game features an in-game currency that can only be earned and a separate currency that can only be purchased with real money</row></define>
  <define label="att9_list">
    <row label="r1">Not included (Note: show as blank cell in programmed conjoint)</row>
    <row label="r2">The game features exclusive in-game items that can only be purchased with real money</row>
    <row label="r3">The game features exclusive in-game items that can be either earned or purchased with real money</row></define>
  <define label="att10_list">
    <row label="r1">The game is free of all advertising</row>
    <row label="r2">The game features advertising</row></define>
  <define label="att11_list">
    <row label="r1">There is no subscription required to play</row>
    <row label="r2">The game requires you to pay a subscription each month in order to play</row></define>
  <define label="att12_list">
    <row label="r1">Game is free</row>
    <row label="r2">Game is available for $2.50</row>
    <row label="r3">Game is available for $5</row>
    <row label="r4">Game is available for $10</row>
    <row label="r5">Game is available for $15</row>
    <row label="r6">Game is available for $20</row>
    <row label="r7">Game is available for $25</row>
    <row label="r8">Game is available for $30</row>
    <row label="r9">Game is available for $40</row>
    <row label="r10">Game is available for $50</row></define>
  <loop label="CBCloop" vars="var1">
    <title>Maxdiff loop</title>
    <block label="CBC">
      <exec>
codes = str(CBC_Version.val) + "x[loopvar: label]"


for x in range(1,4):
	codeF = codes + "x" + str(x)
	cbciter = cbcd.get(codeF)
	if cbciter:
		for n in range(1,13):
			punchQ = allQuestions["Attr%sc%s_[loopvar: label]" % (str(n),str(x))]
			if int(cbciter["attr" + str(n)]) gt 0:
				punchQ.val = punchQ.attr("r" +cbciter["attr" + str(n)]).index
      </exec>

      <select 
     label="Attr1c1_[loopvar: label]"
     optional="1"
     where="execute,survey,report">
        <title>Attribute 1 for Concept 1</title>
        <insert as="choices" source="att1_list"/>
      </select>

      <select 
     label="Attr2c1_[loopvar: label]"
     optional="1"
     where="execute,survey,report">
        <title>Attribute 2 for Concept 1</title>
        <insert as="choices" source="att2_list"/>
      </select>

      <select 
     label="Attr3c1_[loopvar: label]"
     optional="1"
     where="execute,survey,report">
        <title>Attribute 3 for Concept 1</title>
        <insert as="choices" source="att3_list"/>
      </select>

      <select 
     label="Attr4c1_[loopvar: label]"
     optional="1"
     where="execute,survey,report">
        <title>Attribute 4 for Concept 1</title>
        <insert as="choices" source="att4_list"/>
      </select>

      <select 
     label="Attr5c1_[loopvar: label]"
     optional="1"
     where="execute,survey,report">
        <title>Attribute 5 for Concept 1</title>
        <insert as="choices" source="att5_list"/>
      </select>

      <select 
     label="Attr6c1_[loopvar: label]"
     optional="1"
     where="execute,survey,report">
        <title>Attribute 6 for Concept 1</title>
        <insert as="choices" source="att6_list"/>
      </select>

      <select 
     label="Attr7c1_[loopvar: label]"
     optional="1"
     where="execute,survey,report">
        <title>Attribute 7 for Concept 1</title>
        <insert as="choices" source="att7_list"/>
      </select>

      <select 
     label="Attr8c1_[loopvar: label]"
     optional="1"
     where="execute,survey,report">
        <title>Attribute 8 for Concept 1</title>
        <insert as="choices" source="att8_list"/>
      </select>

      <select 
     label="Attr9c1_[loopvar: label]"
     optional="1"
     where="execute,survey,report">
        <title>Attribute 9 for Concept 1</title>
        <insert as="choices" source="att9_list"/>
      </select>

      <select 
     label="Attr10c1_[loopvar: label]"
     optional="1"
     where="execute,survey,report">
        <title>Attribute 10 for Concept 1</title>
        <insert as="choices" source="att10_list"/>
      </select>

      <select 
     label="Attr11c1_[loopvar: label]"
     optional="1"
     where="execute,survey,report">
        <title>Attribute 11 for Concept 1</title>
        <insert as="choices" source="att11_list"/>
      </select>

      <select 
     label="Attr12c1_[loopvar: label]"
     optional="1"
     where="execute,survey,report">
        <title>Attribute 12 for Concept 1</title>
        <insert as="choices" source="att12_list"/>
      </select>

      <suspend/>

      <select 
     label="Attr1c2_[loopvar: label]"
     optional="1"
     where="execute,survey,report">
        <title>Attribute 1 for Concept 2</title>
        <insert as="choices" source="att1_list"/>
      </select>

      <select 
     label="Attr2c2_[loopvar: label]"
     optional="1"
     where="execute,survey,report">
        <title>Attribute 2 for Concept 2</title>
        <insert as="choices" source="att2_list"/>
      </select>

      <select 
     label="Attr3c2_[loopvar: label]"
     optional="1"
     where="execute,survey,report">
        <title>Attribute 3 for Concept 2</title>
        <insert as="choices" source="att3_list"/>
      </select>

      <select 
     label="Attr4c2_[loopvar: label]"
     optional="1"
     where="execute,survey,report">
        <title>Attribute 4 for Concept 2</title>
        <insert as="choices" source="att4_list"/>
      </select>

      <select 
     label="Attr5c2_[loopvar: label]"
     optional="1"
     where="execute,survey,report">
        <title>Attribute 5 for Concept 2</title>
        <insert as="choices" source="att5_list"/>
      </select>

      <select 
     label="Attr6c2_[loopvar: label]"
     optional="1"
     where="execute,survey,report">
        <title>Attribute 6 for Concept 2</title>
        <insert as="choices" source="att6_list"/>
      </select>

      <select 
     label="Attr7c2_[loopvar: label]"
     optional="1"
     where="execute,survey,report">
        <title>Attribute 7 for Concept 2</title>
        <insert as="choices" source="att7_list"/>
      </select>

      <select 
     label="Attr8c2_[loopvar: label]"
     optional="1"
     where="execute,survey,report">
        <title>Attribute 8 for Concept 2</title>
        <insert as="choices" source="att8_list"/>
      </select>

      <select 
     label="Attr9c2_[loopvar: label]"
     optional="1"
     where="execute,survey,report">
        <title>Attribute 9 for Concept 2</title>
        <insert as="choices" source="att9_list"/>
      </select>

      <select 
     label="Attr10c2_[loopvar: label]"
     optional="1"
     where="execute,survey,report">
        <title>Attribute 10 for Concept 2</title>
        <insert as="choices" source="att10_list"/>
      </select>

      <select 
     label="Attr11c2_[loopvar: label]"
     optional="1"
     where="execute,survey,report">
        <title>Attribute 11 for Concept 2</title>
        <insert as="choices" source="att11_list"/>
      </select>

      <select 
     label="Attr12c2_[loopvar: label]"
     optional="1"
     where="execute,survey,report">
        <title>Attribute 12 for Concept 2</title>
        <insert as="choices" source="att12_list"/>
      </select>

      <suspend/>

      <select 
     label="Attr1c3_[loopvar: label]"
     optional="1"
     where="execute,survey,report">
        <title>Attribute 1 for Concept 3</title>
        <insert as="choices" source="att1_list"/>
      </select>

      <select 
     label="Attr2c3_[loopvar: label]"
     optional="1"
     where="execute,survey,report">
        <title>Attribute 2 for Concept 3</title>
        <insert as="choices" source="att2_list"/>
      </select>

      <select 
     label="Attr3c3_[loopvar: label]"
     optional="1"
     where="execute,survey,report">
        <title>Attribute 3 for Concept 3</title>
        <insert as="choices" source="att3_list"/>
      </select>

      <select 
     label="Attr4c3_[loopvar: label]"
     optional="1"
     where="execute,survey,report">
        <title>Attribute 4 for Concept 3</title>
        <insert as="choices" source="att4_list"/>
      </select>

      <select 
     label="Attr5c3_[loopvar: label]"
     optional="1"
     where="execute,survey,report">
        <title>Attribute 5 for Concept 3</title>
        <insert as="choices" source="att5_list"/>
      </select>

      <select 
     label="Attr6c3_[loopvar: label]"
     optional="1"
     where="execute,survey,report">
        <title>Attribute 6 for Concept 3</title>
        <insert as="choices" source="att6_list"/>
      </select>

      <select 
     label="Attr7c3_[loopvar: label]"
     optional="1"
     where="execute,survey,report">
        <title>Attribute 7 for Concept 3</title>
        <insert as="choices" source="att7_list"/>
      </select>

      <select 
     label="Attr8c3_[loopvar: label]"
     optional="1"
     where="execute,survey,report">
        <title>Attribute 8 for Concept 3</title>
        <insert as="choices" source="att8_list"/>
      </select>

      <select 
     label="Attr9c3_[loopvar: label]"
     optional="1"
     where="execute,survey,report">
        <title>Attribute 9 for Concept 3</title>
        <insert as="choices" source="att9_list"/>
      </select>

      <select 
     label="Attr10c3_[loopvar: label]"
     optional="1"
     where="execute,survey,report">
        <title>Attribute 10 for Concept 3</title>
        <insert as="choices" source="att10_list"/>
      </select>

      <select 
     label="Attr11c3_[loopvar: label]"
     optional="1"
     where="execute,survey,report">
        <title>Attribute 11 for Concept 3</title>
        <insert as="choices" source="att11_list"/>
      </select>

      <select 
     label="Attr12c3_[loopvar: label]"
     optional="1"
     where="execute,survey,report">
        <title>Attribute 12 for Concept 3</title>
        <insert as="choices" source="att12_list"/>
      </select>

      <suspend/>

      <radio 
     label="CBCD_[loopvar: label]" surveyDisplay="desktop">
        <title>CBC Demo</title>
        <comment>Select one</comment>
        <row label="ra1" optional="1" where="notdp">Genre</row>
        <row label="ra2" cond="Attr2c3_[loopvar: label].any or Attr2c2_[loopvar: label].any or Attr2c1_[loopvar: label].any" optional="1" where="notdp">Additional story content</row>
        <row label="ra3" cond="Attr3c3_[loopvar: label].any or Attr3c2_[loopvar: label].any or Attr3c1_[loopvar: label].any" optional="1" where="notdp">Additional game levels</row>
        <row label="ra4" cond="Attr4c3_[loopvar: label].any or Attr4c2_[loopvar: label].any or Attr4c1_[loopvar: label].any" optional="1" where="notdp">Additional characters</row>
        <row label="ra5" cond="Attr5c3_[loopvar: label].any or Attr5c2_[loopvar: label].any or Attr5c1_[loopvar: label].any" optional="1" where="notdp">Additional in-game items</row>
        <row label="ra6" cond="Attr6c3_[loopvar: label].any or Attr6c2_[loopvar: label].any or Attr6c1_[loopvar: label].any" optional="1" where="notdp">Additional cosmetic items</row>
        <row label="ra7" cond="Attr7c3_[loopvar: label].any or Attr7c2_[loopvar: label].any or Attr7c1_[loopvar: label].any" optional="1" where="notdp">Additional boosters</row>
        <row label="ra8" cond="Attr8c3_[loopvar: label].any or Attr8c2_[loopvar: label].any or Attr8c1_[loopvar: label].any" optional="1" where="notdp">In-game currency</row>
        <row label="ra9" cond="Attr9c3_[loopvar: label].any or Attr9c2_[loopvar: label].any or Attr9c1_[loopvar: label].any" optional="1" where="notdp">Exclusive items</row>
        <row label="ra10" cond="Attr10c3_[loopvar: label].any or Attr10c2_[loopvar: label].any or Attr10c1_[loopvar: label].any" optional="1" where="notdp">Ads</row>
        <row label="ra11" cond="Attr11c3_[loopvar: label].any or Attr11c2_[loopvar: label].any or Attr11c1_[loopvar: label].any" optional="1" where="notdp">Subscription</row>
        <row label="ra12" optional="1" where="notdp">Upfront game client cost</row>
        <row label="r1" ss:rowClassNames="lastrow"/>
        <style name="question.left" rows="ra1,ra2,ra3,ra4,ra5,ra6,ra7,ra8,ra9,ra10,ra11,ra12"><![CDATA[
\@if this.styles.ss.legendColWidth
    <$(tag) scope="row" class="cell nonempty legend row-legend row-legend-left ${"row-legend-both " if ec.haveRightLegend and ec.haveLeftLegend else ""}row-legend-basic ${"mobile-left-row-legend " if force else ""}$(levels) ${"desktop" if this.grouping.cols else "mobile"} ${"row-legend-both-space " if ec.haveRightLegend and ec.haveLeftLegend and (not row.group or not row.index==0) else "border-collapse "} $(row.styles.ss.rowClassNames)" style="width:${this.styles.ss.legendColWidth}; min-width:${this.styles.ss.legendColWidth}">
        <div class="att_title"><span class="level_text">$(text)</span></div>
    </$(tag)>
\@else
    <$(tag) scope="row" class="cell nonempty legend row-legend row-legend-left ${"row-legend-both " if ec.haveRightLegend and ec.haveLeftLegend else ""}row-legend-basic ${"mobile-left-row-legend " if force else ""}$(levels) ${"desktop" if this.grouping.cols else "mobile"} ${"row-legend-both-space " if ec.haveRightLegend and ec.haveLeftLegend and (row.group or not row.index==0) else "border-collapse "} $(row.styles.ss.rowClassNames)">
        <div class="att_title"><span class="level_text">$(text)</span></div>
    </$(tag)>
\@endif
]]></style>
        <style cols="c1" name="question.element" rows="ra1,ra2,ra3,ra4,ra5,ra6,ra7,ra8,ra9,ra10,ra11,ra12"><![CDATA[
\@if ec.simpleList
<div class="element $(rowStyle) $(levels) $(extraClasses) ${col.group.styles.ss.groupClassNames if col.group else (row.group.styles.ss.groupClassNames if row.group else "")} $(col.styles.ss.colClassNames) $(row.styles.ss.rowClassNames) ${"clickableCell" if isClickable else ""}"$(extra)>
${Attr1c1_[loopvar: label].selected.text if ec.row.label=="ra1" else ""}
${Attr2c1_[loopvar: label].selected.text if ec.row.label=="ra2" else ""}
${Attr3c1_[loopvar: label].selected.text if ec.row.label=="ra3" else ""}
${Attr4c1_[loopvar: label].selected.text if ec.row.label=="ra4" else ""}
${Attr5c1_[loopvar: label].selected.text if ec.row.label=="ra5" else ""}
${Attr6c1_[loopvar: label].selected.text if ec.row.label=="ra6" else ""}
${Attr7c1_[loopvar: label].selected.text if ec.row.label=="ra7" else ""}
${Attr8c1_[loopvar: label].selected.text if ec.row.label=="ra8" else ""}
${Attr9c1_[loopvar: label].selected.text if ec.row.label=="ra9" else ""}
${Attr10c1_[loopvar: label].selected.text if ec.row.label=="ra10" else ""}
${Attr11c1_[loopvar: label].selected.text if ec.row.label=="ra11" else ""}
${Attr12c1_[loopvar: label].selected.text if ec.row.label=="ra12" else ""}
</div>
\@else
<$(tag) $(headers) class="cell nonempty element $(levels) ${"desktop" if this.grouping.cols else "mobile"} border-collapse $(extraClasses) ${col.group.styles.ss.groupClassNames if col.group else (row.group.styles.ss.groupClassNames if row.group else "")} $(col.styles.ss.colClassNames) $(row.styles.ss.rowClassNames) ${"clickableCell" if isClickable else ""}"$(extra)>
${Attr1c1_[loopvar: label].selected.text if ec.row.label=="ra1" else ""}
${Attr2c1_[loopvar: label].selected.text if ec.row.label=="ra2" else ""}
${Attr3c1_[loopvar: label].selected.text if ec.row.label=="ra3" else ""}
${Attr4c1_[loopvar: label].selected.text if ec.row.label=="ra4" else ""}
${Attr5c1_[loopvar: label].selected.text if ec.row.label=="ra5" else ""}
${Attr6c1_[loopvar: label].selected.text if ec.row.label=="ra6" else ""}
${Attr7c1_[loopvar: label].selected.text if ec.row.label=="ra7" else ""}
${Attr8c1_[loopvar: label].selected.text if ec.row.label=="ra8" else ""}
${Attr9c1_[loopvar: label].selected.text if ec.row.label=="ra9" else ""}
${Attr10c1_[loopvar: label].selected.text if ec.row.label=="ra10" else ""}
${Attr11c1_[loopvar: label].selected.text if ec.row.label=="ra11" else ""}
${Attr12c1_[loopvar: label].selected.text if ec.row.label=="ra12" else ""}

</$(tag)>
\@endif
]]></style>
        <style cols="c2" name="question.element" rows="ra1,ra2,ra3,ra4,ra5,ra6,ra7,ra8,ra9,ra10,ra11,ra12"><![CDATA[
\@if ec.simpleList
<div class="element $(rowStyle) $(levels) $(extraClasses) ${col.group.styles.ss.groupClassNames if col.group else (row.group.styles.ss.groupClassNames if row.group else "")} $(col.styles.ss.colClassNames) $(row.styles.ss.rowClassNames) ${"clickableCell" if isClickable else ""}"$(extra)>
${Attr1c2_[loopvar: label].selected.text if ec.row.label=="ra1" else ""}
${Attr2c2_[loopvar: label].selected.text if ec.row.label=="ra2" else ""}
${Attr3c2_[loopvar: label].selected.text if ec.row.label=="ra3" else ""}
${Attr4c2_[loopvar: label].selected.text if ec.row.label=="ra4" else ""}
${Attr5c2_[loopvar: label].selected.text if ec.row.label=="ra5" else ""}
${Attr6c2_[loopvar: label].selected.text if ec.row.label=="ra6" else ""}
${Attr7c2_[loopvar: label].selected.text if ec.row.label=="ra7" else ""}
${Attr8c2_[loopvar: label].selected.text if ec.row.label=="ra8" else ""}
${Attr9c2_[loopvar: label].selected.text if ec.row.label=="ra9" else ""}
${Attr10c2_[loopvar: label].selected.text if ec.row.label=="ra10" else ""}
${Attr11c2_[loopvar: label].selected.text if ec.row.label=="ra11" else ""}
${Attr12c2_[loopvar: label].selected.text if ec.row.label=="ra12" else ""}
</div>
\@else
<$(tag) $(headers) class="cell nonempty element $(levels) ${"desktop" if this.grouping.cols else "mobile"} border-collapse $(extraClasses) ${col.group.styles.ss.groupClassNames if col.group else (row.group.styles.ss.groupClassNames if row.group else "")} $(col.styles.ss.colClassNames) $(row.styles.ss.rowClassNames) ${"clickableCell" if isClickable else ""}"$(extra)>
${Attr1c2_[loopvar: label].selected.text if ec.row.label=="ra1" else ""}
${Attr2c2_[loopvar: label].selected.text if ec.row.label=="ra2" else ""}
${Attr3c2_[loopvar: label].selected.text if ec.row.label=="ra3" else ""}
${Attr4c2_[loopvar: label].selected.text if ec.row.label=="ra4" else ""}
${Attr5c2_[loopvar: label].selected.text if ec.row.label=="ra5" else ""}
${Attr6c2_[loopvar: label].selected.text if ec.row.label=="ra6" else ""}
${Attr7c2_[loopvar: label].selected.text if ec.row.label=="ra7" else ""}
${Attr8c2_[loopvar: label].selected.text if ec.row.label=="ra8" else ""}
${Attr9c2_[loopvar: label].selected.text if ec.row.label=="ra9" else ""}
${Attr10c2_[loopvar: label].selected.text if ec.row.label=="ra10" else ""}
${Attr11c2_[loopvar: label].selected.text if ec.row.label=="ra11" else ""}
${Attr12c2_[loopvar: label].selected.text if ec.row.label=="ra12" else ""}

</$(tag)>
\@endif
]]></style>
        <style cols="c3" name="question.element" rows="ra1,ra2,ra3,ra4,ra5,ra6,ra7,ra8,ra9,ra10,ra11,ra12"><![CDATA[
\@if ec.simpleList
<div class="element $(rowStyle) $(levels) $(extraClasses) ${col.group.styles.ss.groupClassNames if col.group else (row.group.styles.ss.groupClassNames if row.group else "")} $(col.styles.ss.colClassNames) $(row.styles.ss.rowClassNames) ${"clickableCell" if isClickable else ""}"$(extra)>
${Attr1c3_[loopvar: label].selected.text if ec.row.label=="ra1" else ""}
${Attr2c3_[loopvar: label].selected.text if ec.row.label=="ra2" else ""}
${Attr3c3_[loopvar: label].selected.text if ec.row.label=="ra3" else ""}
${Attr4c3_[loopvar: label].selected.text if ec.row.label=="ra4" else ""}
${Attr5c3_[loopvar: label].selected.text if ec.row.label=="ra5" else ""}
${Attr6c3_[loopvar: label].selected.text if ec.row.label=="ra6" else ""}
${Attr7c3_[loopvar: label].selected.text if ec.row.label=="ra7" else ""}
${Attr8c3_[loopvar: label].selected.text if ec.row.label=="ra8" else ""}
${Attr9c3_[loopvar: label].selected.text if ec.row.label=="ra9" else ""}
${Attr10c3_[loopvar: label].selected.text if ec.row.label=="ra10" else ""}
${Attr11c3_[loopvar: label].selected.text if ec.row.label=="ra11" else ""}
${Attr12c3_[loopvar: label].selected.text if ec.row.label=="ra12" else ""}
</div>
\@else
<$(tag) $(headers) class="cell nonempty element $(levels) ${"desktop" if this.grouping.cols else "mobile"} border-collapse $(extraClasses) ${col.group.styles.ss.groupClassNames if col.group else (row.group.styles.ss.groupClassNames if row.group else "")} $(col.styles.ss.colClassNames) $(row.styles.ss.rowClassNames) ${"clickableCell" if isClickable else ""}"$(extra)>
${Attr1c3_[loopvar: label].selected.text if ec.row.label=="ra1" else ""}
${Attr2c3_[loopvar: label].selected.text if ec.row.label=="ra2" else ""}
${Attr3c3_[loopvar: label].selected.text if ec.row.label=="ra3" else ""}
${Attr4c3_[loopvar: label].selected.text if ec.row.label=="ra4" else ""}
${Attr5c3_[loopvar: label].selected.text if ec.row.label=="ra5" else ""}
${Attr6c3_[loopvar: label].selected.text if ec.row.label=="ra6" else ""}
${Attr7c3_[loopvar: label].selected.text if ec.row.label=="ra7" else ""}
${Attr8c3_[loopvar: label].selected.text if ec.row.label=="ra8" else ""}
${Attr9c3_[loopvar: label].selected.text if ec.row.label=="ra9" else ""}
${Attr10c3_[loopvar: label].selected.text if ec.row.label=="ra10" else ""}
${Attr11c3_[loopvar: label].selected.text if ec.row.label=="ra11" else ""}
${Attr12c3_[loopvar: label].selected.text if ec.row.label=="ra12" else ""}

</$(tag)>
\@endif
]]></style>
        <style name="question.after"><![CDATA[
<link rel="stylesheet" href="[rel cbc_style.css]">
]]></style>
<style name='el.noanswer'> <![CDATA[
\@if ec.simpleList
<div class="element">
\@endif
<div class="noansdiv"><span class="cell-sub-wrapper cell-legend-right"><span class="cell-input cell-sub-column">
<input type="radio" id="$(row.checkboxLabel)" name="$(row.checkboxLabel)" value="1" class="input no-answer checkbox" $(value|checkbox)/>
</span><span class="cell-text cell-sub-column"><label for="$(row.checkboxLabel)">$(label)</label></span></span></div>
\@if ec.simpleList
</div>
\@endif
]]></style>
        <col label="c1" value="1">Concept 1</col>
        <col label="c2" value="2">Concept 2</col>
        <col label="c3" value="3">Concept 3</col>
        <noanswer label="n99">None of these</noanswer>
      </radio>
    </block>

    <looprow label="1">
      <loopvar name="var1">1</loopvar>
    </looprow>

    <looprow label="2">
      <loopvar name="var1">2</loopvar>
    </looprow>

    <looprow label="3">
      <loopvar name="var1">3</loopvar>
    </looprow>

    <looprow label="4">
      <loopvar name="var1">4</loopvar>
    </looprow>

    <looprow label="5">
      <loopvar name="var1">5</loopvar>
    </looprow>

    <looprow label="6">
      <loopvar name="var1">6</loopvar>
    </looprow>

    <looprow label="7">
      <loopvar name="var1">7</loopvar>
    </looprow>

    <looprow label="8">
      <loopvar name="var1">8</loopvar>
    </looprow>

    <looprow label="9">
      <loopvar name="var1">9</loopvar>
    </looprow>

    <looprow label="10">
      <loopvar name="var1">10</loopvar>
    </looprow>

    <looprow label="11">
      <loopvar name="var1">11</loopvar>
    </looprow>

    <looprow label="12">
      <loopvar name="var1">12</loopvar>
    </looprow>

    <looprow label="13">
      <loopvar name="var1">13</loopvar>
    </looprow>

    <looprow label="14">
      <loopvar name="var1">14</loopvar>
    </looprow>
  </loop>