// Common Answer Controls Methods



function getQuestionAnswerControlId(qnumber,anumber)
{
  var id="idQ"+qnumber+"A"+anumber;
  return id;
}


function getQuestionAnswerControl(qnumber,anumber,disabled)
{
  var html="";
  var code=getTestQuestionTypeCode(qnumber);
  switch (code) {
    case "single":
      var name="r"+qnumber;
      var value=anumber;
      var answer=getProtocolQuestionSingleAnswer(qnumber);
      var checked=(answer==anumber);
      html=htmlSingleAnswerControl(qnumber,anumber,checked,disabled);
      break;
    case "multiple":
      var aindex=anumber-1;
      var answers=getProtocolQuestionMultipleAnswers(qnumber);
      var checked=(answers[aindex]==2);
      html=htmlMultipleAnswerControl(qnumber,anumber,checked,disabled);
      break;
    case "multiple-slider":
      var aindex=anumber-1;
      var answers=getProtocolQuestionMultipleAnswers(qnumber);
      var avalue=answers[aindex];
      html=htmlMultipleSliderAnswerControl(qnumber,anumber,avalue,disabled);
      break;
    case "multiple-radios":
      var aindex = anumber-1;
      var answers = getProtocolQuestionMultipleAnswers(qnumber);
      var avalue = answers[aindex];
      html = htmlMultipleRadiosAnswerControl(qnumber,anumber,avalue,disabled);
      break;
  }
  return html;
}


function setQuestionAnswerControlEnabled(qnumber,anumber,enabled)
{
  var result=false;
  var code=getTestQuestionTypeCode(qnumber);
  switch (code) {
    case "single":
      result=setSingleAnswerControlEnabled(qnumber,anumber,enabled);
      break;
    case "multiple":
      result=setMultipleAnswerControlEnabled(qnumber,anumber,enabled);
      break;
    case "multiple-slider":
      result=setMultipleSliderAnswerControlEnabled(qnumber,anumber,enabled);
      break;
    case "multiple-radios":
      result=setMultipleRadiosAnswerControlEnabled(qnumber,anumber,enabled);
      break;
  }
  return result;
}




// Answer Control Generate Methods


function htmlSingleAnswerControl(qnumber,anumber,checked,disabled)
{
  var id = getQuestionAnswerControlId(qnumber,anumber);
  var name = "r"+qnumber;
  var value = anumber;
  var html = '<input type="radio" id="'+id+'" name="'+name+'" value="'+value+'"'+(checked?" checked":"")+(disabled?" disabled":"")+'>';
  return html;
}


function htmlMultipleAnswerControl(qnumber,anumber,checked,disabled)
{
  var id=getQuestionAnswerControlId(qnumber,anumber);
  var name="r"+qnumber+"a"+anumber;
  var value=1;
  var html='<input type="checkbox" id="'+id+'" name="'+name+'" value="'+value+'"'+(checked?" checked":"")+(disabled?" disabled":"")+' onclick="onClickCheckboxIgnore(this);">';
  return html;
}


function htmlMultipleSliderAnswerControl(qnumber,anumber,avalue,disabled)
{
  var name = getQuestionAnswerControlId(qnumber,anumber);
  var positions = getTestQuestionSlidersPositions(qnumber);
  var poles = getTestQuestionSlidersPoles(qnumber);
  var position = avalue;
  if (!position) position = getQuestionSliderNeutralPosition(qnumber);
  var fraction = position-Math.floor(position);
  if (fraction>0) position=1;
  var pwidth=30;
  switch (positions) {
    case 3:
      pwidth=60;
      break;
    case 5:
      pwidth=40;
      break;
  }
  var html = htmlSliderCode(name,positions,position,pwidth);
  return html;
}


function htmlMultipleRadiosAnswerHeader(poles,acount)
{
  var html = '<table cellpadding="2" cellspacing="0" border="'+TablesBordersWidth+'" width="100%" style="color:#bbbbbb;">'+"\n"+'<tr>'+"\n";
  html+='<tr>'+"\n";
  var tdwidth=Math.round(100/acount);
  for (var a=1; a<=acount; a++) {
    var label="";
    if (poles==1) {
      label = a;
    } else {
      var middle = (acount+1)/2;
      label = Math.abs(a-middle);
      label = Math.ceil(label);
      if (a<middle) label=label+""; else if (a>middle) label=""+label; else label="&nbsp;"+label; 
    }
    html += '<td align="center" width="'+tdwidth+'">'+label+'</td>'+"\n";
    if (a<acount) html+='<td width="'+tdwidth+'">&nbsp;</td>'+"\n";
  }
  html += '</tr>'+"\n";
  html += '</tr>'+"\n"+'</table>';
  return html;
}


function htmlMultipleRadiosAnswerControl(qnumber,anumber,avalue,disabled)
{
  var id = getQuestionAnswerControlId(qnumber,anumber);
  var name = "r"+qnumber+"a"+anumber;
  var poles = getTestQuestionSlidersPoles(qnumber);
  var neutral = getQuestionSliderNeutralPosition(qnumber);
  var acount = getTestQuestionSlidersPositions(qnumber);
  var html = '<table cellpadding="2" cellspacing="0" border="'+TablesBordersWidth+'">'+"\n"+'<tr>'+"\n";
  var tdwidth = Math.round(100/acount);
  for (var a=1; a<=acount; a++) {
    var checked = (a==avalue);
    var radio = '<input type="radio" id="'+id+a+'" name="'+name+'" value="'+a+'"'+(checked? " checked":"")+(disabled? " disabled":"")+'>';
    var alabel = "&nbsp;";
    if (a>=acount) alabel="";
    html += '<td align="center" width="'+tdwidth+'" nowrap>'+radio+'</td>'+"\n";
    if (alabel!="") html+='<td align="center" width="'+tdwidth+'" nowrap>'+alabel+'</td>'+"\n";
  }
  html += '</tr>'+"\n"+'</table>';
  return html;
}


function getQuestionSliderNeutralPosition(qnumber)
{
  var positions=getTestQuestionSlidersPositions(qnumber);
  var poles=getTestQuestionSlidersPoles(qnumber);
  switch (poles) {
    case 1:
      position=1;
      break;
    case 2:
      position=(positions+1)/2;
      break;
  }
  return position;
}



// Answer Control Enable Methods


function setSingleAnswerControlEnabled(qnumber,anumber,enabled)
{
  var id=getQuestionAnswerControlId(qnumber,anumber);
  var object=document.getElementById(id);
  object.disabled=!enabled;
}


function setMultipleAnswerControlEnabled(qnumber,anumber,enabled)
{
  var id=getQuestionAnswerControlId(qnumber,anumber);
  var object=document.getElementById(id);
  object.disabled=!enabled;
}


function setMultipleRadiosAnswerControlEnabled(qnumber,anumber,enabled)
{
  var acount = getTestQuestionSlidersPositions(qnumber);
  var id = getQuestionAnswerControlId(qnumber,anumber);
  for (var a=1;a<=acount;a++) {
    var object=document.getElementById(id+a);
    object.disabled=!enabled;
  }
}


function setMultipleSliderAnswerControlEnabled(qnumber,anumber,enabled)
{
  return false;
}


function setSelectTextEnabled()
{
  
}
