/********** VARIABLES **********/

var szMsg = "";

/********** VALIDATION FUNCTIONS **********/

function verNumber(szValue,szQuestName,nMin,nMax,bOptional) {
	var bIsNum = false;
	if (szValue.length == 0 && !bOptional) {
		szMsg += '  ' + szQuestName + ' necesita o valoare numerica fara litere sau spatii.\n';
	}
	for (var i=0; i< szValue.length; i++) {
		if ((szValue.substring(i,i+1) != "0") &&
				(szValue.substring(i,i+1) != "1") &&
				(szValue.substring(i,i+1) != "2") &&
				(szValue.substring(i,i+1) != "3") &&
				(szValue.substring(i,i+1) != "4") &&
				(szValue.substring(i,i+1) != "5") &&
				(szValue.substring(i,i+1) != "6") &&
				(szValue.substring(i,i+1) != "7") &&
				(szValue.substring(i,i+1) != "8") &&
				(szValue.substring(i,i+1) != "9") &&
				(szValue.substring(i,i+1) != ".")) {
			bIsNum = false;
			szMsg += '  ' + szQuestName + ' necesita o valoare numerica fara litere sau spatii.\n';
			break;
		}
		else {
			bIsNum = true;
		}
	}
	if (bIsNum) {
		if ((szValue > nMax) || (szValue < nMin)) {
			szMsg += '  ' + szQuestName + ' completati un numar cuprins intre' + nMin + ' si ' + nMax + '.\n';
		}
	}
}

function verRadio(objRadio,szQuestName) {
	var bChecked = false;
	for (var i = 0; i < objRadio.length; i++) {
		if (objRadio[i].checked) {
			bChecked = true;
		}
	}
	if (!bChecked) {
		szMsg += '  ' + szQuestName + ' nu are raspuns si este o intrebare obligatorie.\n';
	}
}

/********** OTHER FUNCTIONS **********/

function sendBack() {
	if (window.top.frames.length > 0) {
		history.back();
	}
}

function checkIt() {
	if (szMsg != "") {
		alert('________________________________________________________\n\n' +
			'Nu ati raspuns corespunzator la urmatoarele intrebari :\n\n' + szMsg +
			'\n________________________________________________________\n\n' +
			'Corectati si apasati din nou pe butonul de analiza a formularului.');
		return false;
	}
	else {
		return true;
	}
}

function getRadioValue(objRadElement) {
	var varValue;
	for (var i=0; i<objRadElement.length; i++) {
		if (objRadElement[i].checked) {
			varValue = objRadElement[i].value;
		}
	}
	return varValue;
}

function getSelectValue(objSelect) {
	var szValue = "";
	for (i=0; i < objSelect.options.length; i++) {
		if (objSelect.options[i].selected) {
			szValue = objSelect.options[i].value;
		}
	}
	return szValue;
}


/********** MAIN **********/

function calculate(form1,form2) {
  var nScore = 0;
  var fBMI;

  for (var i = 0; i < form2.elements.length; i++) {
    form2.elements[i].checked = false;
  }

  szMsg = "";
  verRadio(form1.radMicdejun,"1. Micdejun");
  verRadio(form1.radGrasime,"2. Alimente foarte grase");
  verRadio(form1.radSare,"3. Sare");
  verRadio(form1.radColesterol,"4. Alimente bogate in colesterol");
  verRadio(form1.radCerealeIntegrale,"5. Cereale integrale");
  verRadio(form1.radAlcool,"6. Alcool");
	if (form1.radHtUnits[0].checked) {
		verNumber(form1.txtHeight.value,"  Inaltimea (inci)",48,96,false);
	}
	else {
		verNumber(form1.txtHeight.value,"  Inaltimea (cm)",122,244,false);
	}
	if (form1.radWtUnits[0].checked) {
		verNumber(form1.txtWeight.value,"  Greutatea (livre)",50,700,false);
	}
	else {
		verNumber(form1.txtWeight.value,"  Greutatea (kg)",23,318,false);
	}
  verRadio(form1.radGender,"  Gender");
  if (checkIt()) {
    if (getSelectValue(form1.sltBreadGrain) > 5) {
      nScore++;
      form2.chkBreadGood.checked = true;
    }
    else {
      form2.chkBreadBad.checked = true;
    }
    if (getSelectValue(form1.sltVeg) > 2) {
      nScore++;
      form2.chkVegGood.checked = true;
    }
    else {
      form2.chkVegBad.checked = true;
    }
    if (getSelectValue(form1.sltFruit) > 1) {
      nScore++;
      form2.chkFruitGood.checked = true;
    }
    else {
      form2.chkFruitBad.checked = true;
    }
    if (getSelectValue(form1.sltMilk) > 1) {
      nScore++;
      form2.chkMilkGood.checked = true;
    }
    else {
      form2.chkMilkBad.checked = true;
    }
    if (getSelectValue(form1.sltProtein) > 1) {
      nScore++;
      form2.chkProteinGood.checked = true;
    }
    else {
      form2.chkProteinBad.checked = true;
    }
    if (getSelectValue(form1.sltSweets) <= 2) {
      nScore++;
      form2.chkFatGood.checked = true;
    }
    else {
      form2.chkFatBad.checked = true;
    }
    if (getSelectValue(form1.sltFat) <= 2) {
      nScore++;
      if (!form2.chkFatBad.checked) {
        form2.chkFatGood.checked=true;
      }
    }
    else {
      form2.chkFatBad.checked = true;
    }
    if (getRadioValue(form1.radMicdejun) == "good") {
      nScore++;
      form2.chkMicdejunGood.checked = true;
    }
    else {
      form2.chkMicdejunBad.checked = true;
    }
    if (getRadioValue(form1.radGrasime) == "good") {
      nScore++;
      form2.chkTotalFatGood.checked = true;
    }
    else {
      form2.chkTotalFatBad.checked = true;
    }
    if (getRadioValue(form1.radSare) == "good") {
      nScore++;
      form2.chkSareGood.checked = true;
    }
    else {
      form2.chkSareBad.checked = true;
    }
    if (getRadioValue(form1.radColesterol) == "good") {
      nScore++;
      form2.chkCholGood.checked = true;
    }
    else {
      form2.chkCholBad.checked = true;
    }
    if (getRadioValue(form1.radCerealeIntegrale) == "good") {
      nScore++;
      form2.chkCerealeIntegraleGood.checked = true;
    }
    else {
      form2.chkCerealeIntegraleBad.checked = true;
    }
    bAlcFlag = false;
    if (form1.radGender[0].checked) {
      if (getRadioValue(form1.radAlcool) < 3) {
        bAlcFlag = true;
      }
    }
    else {
      if (getRadioValue(form1.radAlcool) < 2) {
        bAlcFlag = true;
      }
    }
    if (bAlcFlag) {
      nScore++;
      form2.chkAlcoolGood.checked = true;
    }
    else {
      form2.chkAlcoolBad.checked = true;
    }
		  var fHt = form1.txtHeight.value;
		  var fWt = form1.txtWeight.value;
		  if (form1.radHtUnits[0].checked) {
			  fHt = fHt * 0.0254;
		  }
		  else {
			  fHt = fHt/100;
		  }
		  if (form1.radWtUnits[0].checked) {
			  fWt = fWt * 0.4536;
		  }
		  fBMI = Math.round((fWt/(fHt*fHt)*10))/10;
    if (fBMI < 25) {
      nScore++;
      form2.chkWeightGood.checked = true;
    }
    else {
      form2.chkWeightBad.checked = true;
    }
    form1.txtResult.value = nScore;
    alert("Scorul si rezultatul evaluarii alimentatiei dvs. sunt trecute in casuta din dreapta si in spatiul de dedesubt");
  }
}