var elsCur = new Array();

function InitForm(){
//tinyMCE.triggerSave();
 var els=document.getElementById('formtopost').elements;

 for (var i=0;i<els.length;i++){
  if (els[i].type=='radio'||els[i].type=='checkbox'){
   elsCur[i]=els[i].checked;
  }
  else if ((els[i].type!='hidden') && (els[i].type!='select-one')){
	if (els[i].id=='testo') {	
		elsCur[i]=HTMLEncode(els[i].value);
	}else{
		elsCur[i]=els[i].value;
	}	
  }
 }
}

function CkChange(){

	//tinyMCE.triggerSave();

 var els=document.getElementById('formtopost').elements;
 var change=false;
 // alert (els[3].value==elsCur[3])
 // alert (elsCur[3])
 for (var i=0;i<els.length;i++){
  if (els[i].type=='radio'||els[i].type=='checkbox'){
   if (els[i].checked!=elsCur[i]){
    change=true;
   }
  }
  else if ((els[i].type!='hidden') && (els[i].type!='select-one')) {
   if (els[i].value!=elsCur[i]) {
   //alert (els[i].value + '_______________________' + elsCur[i])
	change=true;
	}
 }
}
 return change;
}

function HTMLEncode(str) {
	var div = document.createElement('div');
	var text = document.createTextNode(str);
	div.appendChild(text);
	text=div.innerHTML;
	text=text.replace(/"/g,"&quot;");
	text=text.replace(/“/g,"&ldquo;");
	text=text.replace(/”/g,"&rdquo;");
	text=text.replace(/–/g,"&ndash;");
	
	// Lettere accentate -------------
	text=text.replace(/à/g,"&agrave;");
	text=text.replace(/è/g,"&egrave;");
	text=text.replace(/é/g,"&eacute;");
	text=text.replace(/ì/g,"&igrave;");
	text=text.replace(/ù/g,"&ugrave;");
	text=text.replace(/ò/g,"&ograve;");
	//--------------------------------
	//-------Fix Safari problem-------
	text=text.replace(/</g,"&lt;");
	text=text.replace(/>/g,"&gt;");
	//--------------------------------
	return text;
}



function isDate(obj) {
dateStr=obj.value;
var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
var matchArray = dateStr.match(datePat); // is the format ok?

if (matchArray == null) {
	alert("Inserire la data nel formtato dd-mm-yyyy.");
	obj.value="";
return false;
}

day = matchArray[1]; // p@rse date into variables
month = matchArray[3];
year = matchArray[5];

if (month < 1 || month > 12) { // check month range
alert("Il mese deve essere compreso tra 1 e 12.");
obj.value="";
return false;
}

if (day < 1 || day > 31) {
alert("Il giorno deve essere compreso tra 1 e 31.");
obj.value="";
return false;
}

if ((month==4 || month==6 || month==9 || month==11) && day==31) {
	alert("Il mese "+month+" non ha 31 giorni!");
	obj.value="";
return false;
}

if (month == 2) { // check for february 29th
	var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
	if (day > 29 || (day==29 && !isleap)) {
	alert("Febbraio del " + year + " non ha " + day + " giorni!");
	obj.value="";
	return false;
	}
}
return true; // date is valid
}


function isblank(s)
{
	for (var i=0; i < s.length;i++)
	{
	var c= s.charAt(i);
	if ((c != ' ') && (c != '\n') && (c != '\t')) return false;
	}
return true;
}

function Registra(f)
{

//f=document.pagina1
var msg;
var empty_fields ="";
var errors = "";
var okCheckbox = 0;

		//Controllo date
	if (typeof f.elements['datainizio'] =='object')	{
		DataInizio=f.elements['datainizio'].value;
		DataInizio=new Date(DataInizio.substr(3,2) + '/' + DataInizio.substr(0,2) + '/' + DataInizio.substr(DataInizio.length-4));
		DataFine=f.elements['datafine'].value;
		DataFine=new Date(DataFine.substr(3,2) + '/' + DataFine.substr(0,2) + '/' + DataFine.substr(DataFine.length-4));
		var millisecondi = 24 * 60 * 60 * 1000 * 730;
		if (DataInizio > DataFine){
			errors += '- Data di inizio superiore alla data di fine!';	
		} 
	}

	for (var i =0; i < f.length;i++)
	{
	var e=f.elements[i];
	    //Campi TEXT e TEXTAREA
	
		if ((( e.type=="text") || (e.type=="textarea") || ( e.type=="password") || (e.type=="file")) && !e.optional)
		{ 
		 //controlla se è vuoto
			if ((e.value==null) || (e.value == "") || isblank(e.value))
			{
				empty_fields +="\n   * " + e.id;
			continue;
			}

		//controlla se è numerico
		
			if (e.numeric==true || (e.min != null) || (e.max != null))
			 {
				var v= parseFloat(e.value);
				if (isNaN(v) ||
					((e.min != null) && (v < e.min)) ||
					((e.max != null) && (v > e.max))) 
					{
						 errors += "- Il campo " + e.id + " deve essere un numero";
						if (e.min != null)
						 errors += " maggiore di " + e.min;
						if (e.max != null && e.min != null)
						 errors += " e minore di " + e.max;
						 else if (e.max != null)
						 errors += " è minore di " + e.max;
						 errors += ".\n";
					}
			}
		
		}
		// Campi Radio
		// if ((e.type == "radio"))
			// {
				// if (e.checked==false) 
				// {
					// if ((f.elements[i+1].type=="radio") && (f.elements[i].name==f.elements[i+1].name))
					// {
						// if (f.elements[i+1].checked==false)
						// {
								// errors += "- Il campo di scelta " + e.id + " non è stato selezionato \n";

						// }
					// else
						// if ((f.elements[i-1].type=="radio") && (f.elements[i-1].name==f.elements[i].name))
							// {
								// if (f.elements[i-1].checked==false)
								// {
										// errors += "- Il campo di scelta " + e.id + " non è stato selezionato \n";
								// }
							// }
					// }
				// }
			// }	
			
		// Campi Select
		if ((e.type == "select-one"))
		{
			if ((e.selectedIndex==0) && (e.value==""))
				{
						errors += "- Nessuna selezione per il pop-up *" + e.id + "\n";
						empty_fields +="\n   * " + e.id;
				}
		}
		// Campi Checked
		if ((e.type == "checkbox"))
		{
			if ((e.checked==true)  && !e.optional) 
				{
					okCheckbox=okCheckbox+1;
				}
		}
		
		
	
			
}

		if (document.getElementById('scelta_multipla')){
			if ((okCheckbox==0) && (document.getElementById('abilita_sezioni').value=="si")){
				errors += "- Nessuna opzione selezionata \n";
			}	
		}	
if (!empty_fields && !errors) return true;

msg =  "____________________________________________________\n\n"
msg += "Attenzione! Errori di compilazione.\n";
msg += "____________________________________________________\n\n"

if (empty_fields)
 {
  msg += " - I seguenti campi sono obbligatori:" + empty_fields + "\n";
  if (errors) msg += "\n";
 }
 msg += errors;
 alert(msg);
 return false;

}
