// all rights reserved, synventis 2008
// Logic for Osteoporoserisiki calculator
//

var getAllRadios = function() {
  var radios = $A(new Array());
  $A($('formCalR').elements).each(function(elem) {
    if((elem.type == 'radio') && (radios.indexOf(elem.name) < 0)) {
      radios[radios.size()] = elem.name;
    }
  });
  return radios;
}

var hideResultSnippets = function() {
  $('rls_calciumRechnerResultBox').hide();
  $$('.resSnippet').each(function(elem) {
    $(elem).hide();
  });
}

var isFemininChecked = function() {
  var selectedGenderElement = getSelectedRadioElementForGroupName('gender');
  return ((selectedGenderElement) && ($F(selectedGenderElement) == 'f'));
}

var checkAnwsersSum;

var allQuestionsAnwsered = function() {
  var allQuestionsAnwsered = true;
  var allNoFemininQuestionsAnwsered = true;
  checkAnwsersSum = 0;
  getAllRadios().each(function(radioName) {
     var questionInput = getSelectedRadioElementForGroupName(radioName);
     if (!questionInput) {
       allQuestionsAnwsered = false;
       if (!getRadiosForGroupName(radioName).first().hasClassName('rls_osteoR_feminin')) {
         allNoFemininQuestionsAnwsered = false;
       }
     } else if (questionInput.name != 'gender') {
       if (isFemininChecked() || !questionInput.hasClassName('rls_osteoR_feminin')) {
         checkAnwsersSum = checkAnwsersSum + $F(questionInput);
       }
     }
  });
  return (allQuestionsAnwsered || (!isFemininChecked() && allNoFemininQuestionsAnwsered));
}

var computeShowResult = function(event) {
  if (isFemininChecked()) {
    showFemininQuestions();
  } else {
    hideFemininQuestions();
  }
  hideResultSnippets();
  if (allQuestionsAnwsered()) {
    if (checkAnwsersSum > 0) {
      $('rsl_OsteoRiskioErhoeht').show();
    } else {
      $('rsl_OsteoKeinRiskio').show();
    }
	  $('rls_calciumRechnerResultBox').show();
  }
}

var getRadiosForGroupName = function(radioFieldIndex) {
 return $A($('formCalR').elements[radioFieldIndex])
}

var getSelectedRadioElementForGroupName = function(radioFieldIndex) {
  var checkedElement = null;
  getRadiosForGroupName(radioFieldIndex).each(function(radioCalR) {
    if (radioCalR.checked) {
      checkedElement = radioCalR;
    }
  });
  return checkedElement;
}

var hideFemininQuestions = function() {
  $$('.formbox_calR div.rls_osteoR_feminin').each(function(radioCalR) {
    $(radioCalR).hide();
  });

  $$('.formbox_calR div.rls_feminin_noline').each(function(radioCalR) {
    $(radioCalR).addClassName('noline');
  });
}

var showFemininQuestions = function() {
  $$('.formbox_calR div.rls_osteoR_feminin').each(function(radioCalR) {
    $(radioCalR).show();
  });

  $$('.formbox_calR div.rls_feminin_noline').each(function(radioCalR) {
    $(radioCalR).removeClassName('noline');
  });
}

// onload hide "Needs JS" Notice, add all Listeners and show form
Event.observe(window, 'load', function() {
  // hide "Needs JS" Notice
  $('needsJSNoticeMessage').hide();
  hideResultSnippets();
  
  $$('.formbox_calR .order_data input').each(function(radioCalR) {
    $(radioCalR).observe('click', computeShowResult);
  });

  hideFemininQuestions();

  // show form
  $('rls_calciumRechnerFormBox').style.display = 'block';
});

