
function setValuesAndSubmit() {		
	
	var objForm = document.forms.item(0);
	for(var i=0; i < arguments.length; i = i + 2) {
		var input = document.createElement("input");
		//input.id = arguments[i];
		input.type = "hidden"; 
		input.name = arguments[i];
		input.value = arguments[i + 1];
	    objForm.appendChild(input);
	}	
	document.forms.item(0).submit();
}

function sendForm(objForm) {

    var objValidator = new C_UTIL_CLASS;    
    //var myForm = document.forms.namedItem(form_name);
    
    if (objValidator.CheckForm(objForm, false))
		objForm.submit();
	}

// DEFINISCO UNA CLASSE VUOTA 
function C_UTIL_CLASS() {

	//AGGIUNGO I METODI ALLA CLASSE
	//Stringa vuota 	
	this.isBlank = function(s)  {
		var isBlank_re = /\S/;
		return !(String (s).search (isBlank_re) != -1);
	}

    //Check if string is a whole number (digits only)
	this.onlyNumbers = function(s) {
	   var isWhole_re = /^\s*\d+\s*$/;
       return String(s).search (isWhole_re) != -1;
    }
	
	//Data in formato dd/mm/yyyy oppure dd-mm-yyyy (formato Italiano)
	this.CheckEuroDate = function(szDate)  {
		 var regex = /^(?:(?:0?[1-9]|1\d|2[0-8])(\/|-)(?:0?[1-9]|1[0-2]))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(?:(?:31(\/|-)(?:0?[13578]|1[02]))|(?:(?:29|30)(\/|-)(?:0?[1,3-9]|1[0-2])))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(29(\/|-)0?2)(\/|-)(?:(?:0[48]00|[13579][26]00|[2468][048]00)|(?:\d\d)?(?:0[48]|[2468][048]|[13579][26]))$/  			
		 //alert(regex.test(data_avviso));

		 if (regex.test(szDate))	 
			 return true;
		 else
			 return false;
	}
    
    //Importo in euro (virgola come separatore dei centesimi)
    this.CheckEuroCurrency = function(cImp) {
		 var regex =  /^\s*-?((\d{1,3}(\.(\d){3})*)|\d*)(,\d{1,2})?\s?(\u20AC)?\s*$/; 			
		 //alert(regex.test(cImp));

	     if (regex.test(cImp))	 
		     return true;
	     else
		     return false;
	}
    
    //Controllo email
	this.CheckEmail = function(szEmail)	{	
		var regex = /^([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}$/
		if (regex.test(szEmail))
			return true
		else
			return false
	}
		

	this.isIE = function()	{
		return (navigator.appName.toLowerCase().indexOf("explorer") != -1) ? true : false;
	}

	this.isFF = function()	{
		return (navigator.appName.toLowerCase().indexOf("explorer") != -1) ? false: true;
	}
	
	
	//Funzione di controllo del Form: CheckForm
	this.CheckForm = function CheckForm(ObjForm, blnSummary) {
	    
	    var _szSummary = "";
        var focusField = null;
        
		//ciclo su ogni elemento del form
		for(var i = 0; i < ObjForm.elements.length; i++) {
				var _obj = ObjForm.elements[i];
				//alert("Nome del campo: " + ObjForm.elements[i].name + " and it’s value is: " + ObjForm.elements[i].value);
				
				//controllo se campi obbligatori valorizzati
				if (_obj.getAttribute('mandatory') == 'yes') {
					if (this.isBlank(_obj.value)) {
						alert("Attenzione compilare tutti i campi obbligatori.");
						_obj.focus();
						return false;
					}
					//se una checkbox obbligatoria devo verificare che sia checked
					if (_obj.getAttribute('type') == 'checkbox' && _obj.checked == false) {
						alert("Attenzione e' obbligatorio selezionare la checkbox.");
						return false;					
					}
				}
				
				//controllo input utente
				switch (_obj.getAttribute('inputfield'))
				{
					case 'email':
						if (!this.isBlank(_obj.value) && !this.CheckEmail(_obj.value)) {
							if (blnSummary)  {
							    alert('Campo email non corretto.');
							    _obj.focus();
							    return false;
							}
							else  {
							    _szSummary += 'Campo email non corretto.\n';
							    focusField = _obj;
						    }						    	    							    
						}
						break;
						
					case 'numerico':				
						if (!this.isBlank(_obj.value) && !this.onlyNumbers(_obj.value)) {
							if (blnSummary) {
							    alert('Valore non corretto.');
							     _obj.focus();
							    return false;
							}
							else {
							    _szSummary += 'Valore non corretto.\n';
							    focusField = _obj;							
							}
						}					
						break;
						
					case 'euro':
                        if (!this.CheckEuroCurrency(_obj.value))  {
							if (blnSummary) {
							    alert('Valore non corretto.');
							     _obj.focus();
							    return false;
							}    
							else  {
							    _szSummary += 'Valore non corretto.\n';
							    focusField = _obj;
							}
						}					
                        break;
                        
					case 'testo':						
						//nessun controllo
						break;
						
					case 'data':
						if (!this.isBlank(_obj.value) && !this.CheckEuroDate(_obj.value)) {
							if (blnSummary) {
							    alert('Campo data non corretto.');
							    _obj.focus();
							    return false;
							}    
							else {
							    _szSummary += 'Campo data non corretto.\n';
							    focusField = _obj;
							}							
						}
						break;
					
					case 'textarea':
					    if (_obj.getAttribute('maxlength')) {
						    if (_obj.value.length >= parseInt(_obj.getAttribute('maxlength'))) {
							    if (blnSummary) {
							        alert('Il testo non può superare i ' + _obj.getAttribute('maxlength').toString() + ' caratteri');
							        _obj.focus();
							        return false;
							    }    
							    else  {
							        _szSummary += 'Il testo non può superare i ' + _obj.getAttribute('maxlength').toString() + ' caratteri\n';
							        focusField = _obj;
							    }							    
						    }
						}

					default:
						break;
				}		
			}
		//Tutto OK, submit del form
		
		if (_szSummary == '')  {		
		    return true;
		}
		else  {
		    alert("Attenzione, correggere i seguenti problemi:\n\n" + _szSummary);
		    _szSummary = '';
		    if (focusField != null)
		        focusField.focus();
		    return false;
	    }
	}
}
