var myOldObj=new Array(4);

function selez(e,campo)
  {
	//elimina eventuali evidenziazioni per errori precedenti
	myDiv=document.getElementById(campo);
	myDiv.style.backgroundColor="#F1FCFB";
	
	//elimina eventuali risultati per test precedenti
	document.getElementById("risultato").innerHTML="";
	
	if(document.all)	//solo per IE
		{
		myObj=e.srcElement?e.srcElement:e.target;
		if(myObj.type=="text")	//se si clicca sulla text "altro" l'opzione corrispondente viene selezionata
		  {
			while(myObj.type!="radio")
				{
				myObj=getPreviousSibling(myObj);
				}
				myObj.checked="true";
			}
		else if(myObj.value=="x")	//se si clicca sull'opz "altro" il focus va alla text successiva
		  {
			myText=getNextSibling(myObj);
			while(myText.type!="text")
				{
				myText=getNextSibling(myText);
				}
			myText.focus();
			}
		}
	
	//gestione estetica delle opzioni
	if(!document.all)	//solo per FF
	{
  myObj=e.srcElement?e.srcElement:e.target;
  if(myObj=="[object HTMLInputElement]")myObj=myObj.parentNode;
  myObj.style.backgroundColor="#99CCCC";
  myOpt=myObj.firstChild;
  myOpt.checked="true";
	if(myOpt.value=="x")	//se l'opzione è altro mette il focus sulla text successiva
	  {
		myText=getNextSibling(myOpt);
		while(myText!="[object HTMLInputElement]")
			{
			myText=getNextSibling(myText);
			}
		myText.focus();
		}

  if(getPreviousSibling(myObj))
    {
	myPreObj=getPreviousSibling(myObj);
	myImg=myPreObj.firstChild;
	myImg.style.borderWidth="1";
	myImg.style.borderColor="#99CCCC"
	}

  if(myOldObj[campo]&&myOldObj[campo]!=myObj)
    {
	myOldObj[campo].style.backgroundColor="#F1FCFB";
	if(getPreviousSibling(myOldObj[campo]))	//se non trova il fratello precedente si blocca con errore
	  {
	  myPreObj=getPreviousSibling(myOldObj[campo]);
	  myImg=myPreObj.firstChild;
	  myImg.style.borderColor="#F1FCFB";
	  }
    }
  myOldObj[campo]=myObj;
	}
  }
	

function getPreviousSibling(node)
  {
    while(node=node.previousSibling) //assegnazione voluta
      {
      if(node.nodeType=='1') return node
      }
  }
  
function getNextSibling(node)
 {
 while(node=node.nextSibling) //assegnazione voluta
   {
   if(node.nodeType=='1') return node
   }
 }
 
function formatta(myStr)
 	{
 	myStr=String(myStr);
 	if(myStr.indexOf(".")==-1)
 		{
 		myStr=myStr+".00";
 		}
 	else if((myStr.length-myStr.indexOf("."))==2)
 		{
 		myStr+="0";
 		}
 	else if((myStr.length-myStr.indexOf("."))>3)
 		{
 		myStr=myStr.substr(0,(myStr.indexOf(".")+3));
 		}
 	return myStr;
 	}



function errorHandler(myEr)
  {
	//gestione di errori di compilazione modulo
	for(i=0;i<myEr.length;i++)
		{
		myDiv=document.getElementById(myEr[i]);
		myDiv.style.backgroundColor="#F89F9F";
		}
	alert("Correggere i campi evidenziati");
  }
	
function calcolaTest()
  {
	//funzione risultato
  
  //array per la raccolta di eventuali errori
  myEr=new Array();
  
  //Prezzo bottiglia 1,5 lt
  var prezzo=null;
  for(i=0;i<15;i++)
    {
		if(document.forms[0].elements[i].checked)
	  	{
	  	prezzo=document.forms[0].elements[i].value;
	  	if(prezzo=="x")
	    	{
				prezzo=document.forms[0].elements[15].value;
				prezzo=prezzo.replace(",",".");
				}
	  	}
		}
	if(prezzo==""||prezzo==null||isNaN(prezzo))myEr[myEr.length]=0;
	prezzo=prezzo*2/3;	//prezzo al litro
	
  //Numero persone
	var persone=null;
  for(i=16;i<22;i++)
		{
		if(document.forms[0].elements[i].checked)
			{
			persone=document.forms[0].elements[i].value;
			if(persone=="x")
	 			{
				persone=document.forms[0].elements[22].value;
				persone=persone.replace(",",".");
				}
			}
		}
	if(persone==""||persone==null||isNaN(persone))myEr[myEr.length]=1;
	
	//media litri invernali
	var ltInv=null;
	for(i=23;i<29;i++)
	 	{
		if(document.forms[0].elements[i].checked)
			{
			ltInv=document.forms[0].elements[i].value;
			if(ltInv=="x")
	 			{
				ltInv=document.forms[0].elements[29].value;
				ltInv=ltInv.replace(",",".");
				}
			}
		}
	if(ltInv==""||ltInv==null||isNaN(ltInv))myEr[myEr.length]=2;
		
	//media litri estivi
	var ltEst=null;
	for(i=30;i<36;i++)
	 	{
		if(document.forms[0].elements[i].checked)
			{
			ltEst=document.forms[0].elements[i].value;
			if(ltEst=="x")
	 			{
				ltEst=document.forms[0].elements[36].value;
				ltEst=ltEst.replace(",",".");
				}
			}
		}
	if(ltEst==""||ltEst==null||isNaN(ltEst))myEr[myEr.length]=3;
		
  if(myEr.length>0)
		{
		errorHandler(myEr);
		return;
		}
		
		prezzoAnno=(ltEst*1+ltInv*1)/2*365*persone*prezzo;
		prezzoAnno=formatta(prezzoAnno);
		
		document.getElementById("risultato").innerHTML="La spesa annua corrisponde a </br>"+prezzoAnno+" Euro";
		
		
		//alert("prezzo = "+prezzo+"\npersone = "+persone+"\nltInv = "+ltInv+"\nltEst = "+ltEst+
		//	"\n\nprezzo annuo = "+prezzoAnno);//<<<<<<<<<<<<<<<
	
	
  }
