//Funzione per l'elemento getElementById con diversi casi
//@parametro tipo stringa     - tipo di getElementById 
//@parametro id   stringa     - nome id elemento
//@parametro colore  stringa  - colore background campo form dopo alert
//@parametro valore  stringa  - valore che si può impostare per l'elemento
//@return stringa  

function Get_Element(tipo,id,colore,valore)
{
    switch(tipo)
    {
      
	  //caso propietà value
	  case 'v':
       {
       
		 return eval("document.getElementById('"+id+"').value");
         // return document.getElementById(id).value;
          break;
       }
      //caso metodo focus
	  case 'f':
       {
         return eval("document.getElementById('"+id+"').focus()");
         
         break;
       }
	   //caso stile background
	    case 'sb':
       {
         return eval("document.getElementById('"+id+"').style.backgroundColor='"+colore+"'");
      
         break;
       }
	   //caso setta valore
	   case 'val':
	   {
         return eval("document.getElementById('"+id+"').value='"+valore+"'");
      
         break;
       }
      //caso selected
	    case 'sel':
       {
         return eval("document.getElementById('"+id+"').checked");

         break;
       }
      
    }
    
 } 


//Funzione controllo campi form
//@parametro array stringhe - Formato parametri:  nome id:controllo1controllo2    
//casi possibili controllo : 
//  v :controllo che non sia vuoto
//  m :controllo l'email sia corretta
//  n :controllo che sia un numero
//  d :controllo che il formato data sia corretto
//  k :controllo per l'editor FCKeditor
//@return booleano


function Form()
{

for (i=0;i<arguments.length;i++)
{
   var modo=arguments[i].split(':');

    var c=0;
  

    for(x=0;x<modo[1].length;x++)
	 {
             //modo[1].charAt(x) ritorna il carattere numero x di modo[1] in firefox va anche con modo[1][x] cio� tratta le sringhe come array IN explorer no
	    switch(modo[1].charAt(x))
		 {
		   //caso controllo numero
		   case 'n':
		   {
		   if(isNaN(Get_Element('v',modo[0])))
		      {
			    alert(modo[0]+" field must be a number"); 
				Get_Element('sb',modo[0],'#ffc0c0');
				Get_Element('val',modo[0],'','');
				Get_Element('f',modo[0]);
			    return false;
	          }	
			   else 
			   Get_Element('sb',modo[0],'white');	  
			   
			break;
			}
		    //caso controllo formato corretto email
		   case 'm':
		   {
		   //espressione regolare controllo email
		   var exp_mail=/^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;
		
		   if(!exp_mail.test(Get_Element('v',modo[0])))
		     {
			   alert("Please enter a correct e-mail address");
			   Get_Element('sb',modo[0],'#ffc0c0');
			   Get_Element('val',modo[0],'','');
			   Get_Element('f',modo[0]);
			   return false;
			  } 
			 else 
			   Get_Element('sb',modo[0],'white');
			   
		   break;
		   }
		    //caso controllo campo non vuoto
		   case 'v':
		   {
		   
		   
		   

		   if( Get_Element('v',modo[0])=="")
		   {
		     alert("The field "+modo[0]+" is compulsory");
			 Get_Element('sb',modo[0],'#ffc0c0');
			 Get_Element('f',modo[0]);
		     return false;
		   }
		     else 
			   Get_Element('sb',modo[0],'white');
		   
		   break;
		   }
		   //caso controllo formato data
		   case 'd':
		   {
		    if((Get_Element('v',modo[0])[2] != '/') ||  (Get_Element('v',modo[0])[5] != '/'))
			  {
			     alert("Prego inserire un formato corretto per il campo "+modo[0]+"\n Formato: gg/mm/aaaa");
				 Get_Element('sb',modo[0],'#ffc0c0');
				 Get_Element('val',modo[0],'','');
				 Get_Element('f',modo[0]);
				 return false;
			
			  }
			   else 
			   Get_Element('sb',modo[0],'white');
		   break;
		  
		 }
		  //caso controllo radio box
		   case 'b':
		   {
			
			// alert(modo[0]);
             //alert(Get_Element('sel','tipo Prodotto'));
		   if( Get_Element('sel',modo[0]) == false &&  Get_Element('sel','tipo Prodotto') == false)
		   {
		     alert("Attenzione la selezione "+modo[0]+" e' necessaria");
			 Get_Element('sb',modo[0],'#ffc0c0');
			 Get_Element('f',modo[0]);
		     return false;
		   }
		     else 
			   Get_Element('sb',modo[0],'white');

		   break;
	       }
	       
	       
	       //Aggiungo caso FCKeditor
	       
	         case 'k':
	       {
	       
	         //alert("ddd");
	        var stringa_frame="___Frame";
	        
	        //costruisco l'id completo del frame di fck
	        var frame_nome= "_CAMPI"+modo[0]+stringa_frame;
	         
	       
	       
	       //alert(frame_nome);
	       
	       
	       //alert ("document.getElementById("+ frame_nome+").contentWindow.document");
	       
	      var frame1=eval ("document.getElementById(\'"+ frame_nome+"\').contentWindow.document");
	      
	      
	      //alert(frame1);
	      
	      var frame2=frame1.getElementById("eEditorArea").contentWindow.document;
	       
	       
	       
	       if(frame2.body.innerHTML=="" || frame2.body.innerHTML=="<br>") {
	       
	       
	         alert("Attenzione il  campo "+modo[0]+" � necessario");
	         
	        
	         
	         return false;
	       
	        break;
	       
	       }

        }
	       
	       
	       
	       
	       
	       
	       
	       
	       
		
              }
	}
  }

return true;
}
