function controlla()
{
 var f=document.getElementById("formmanif"),n,tipi=0,oggi=new Date();
 if(document.getElementById("titolo"))
 {
  f.titolo.value=trim(f.titolo.value);
  if(!f.titolo.value) { err("titolo",obbl); return false; }
  else f.titolo.className="text";
  if(!f.provincia.value) { err("provincia",obbl); return false; }
  if(!f.comune.value) { err("comune",obbl); return false; }
  var mese=oggi.getMonth()+1;
  oggi=oggi.getDate()+"/"+mese+"/"+oggi.getFullYear();
  f.datainizio.value=trim(f.datainizio.value);
  f.datafine.value=trim(f.datafine.value);
  if(!f.datainizio.value) { err("datainizio",obbl); return false; }
  else if(!contrData(f.datainizio.value)) { err("datainizio","Data in formato errato."); return false; }
  else
  {
   f.datainizio.value=contrData(f.datainizio.value);
   var diff=confrDate(f.datainizio.value,oggi);
   if(!modifica && !f.datafine.value && diff<0) { err("datainizio","La data di inizio non puņ essere precedente ad oggi."); return false; }
   else if(diff>365*3) { err("datainizio","La data di inizio non puņ essere successiva a tre anni da oggi."); return false; }
   else f.datainizio.className="text";
  }
  if(f.datafine.value)
  {
   if(!contrData(f.datafine.value)) { err("datafine","Data in formato errato."); return false; }
   else if(f.datafine.value=contrData(f.datafine.value),(!modifica && confrDate(oggi,f.datafine.value)>0)) { err("datafine","La data di termine non puņ essere precedente ad oggi."); return false; }
   else
   {
    var diff=confrDate(f.datafine.value,f.datainizio.value);
    if(diff<0) { err("datafine","La data di termine non puņ essere precedente a quella di inizio."); return false; }
    else if(diff>365) { err("datafine","La manifestazione ha una durata eccessiva."); return false; }
   }
  }
  f.datafine.className="text";
  f.descrizione.value=trim(f.descrizione.value);
  if(!f.descrizione.value) { err("descrizione",obbl); return false; }
  else f.descrizione.className="text";
 }
 if(document.getElementById("tipo1"))
 {
  for(n=1; n<50; n++)
   if(document.getElementById("tipo"+n)) if(document.getElementById("tipo"+n).checked) tipi++;
  if(tipologie && tipi==0) { alert("Č necessario specificare almeno una tipologia."); return false; }
  if(tipi>3) { alert("Č possibile specificare al massimo tre tipologie."); return false; }
 }
 return true;
}

var http_request;

function comuni()
{
 if(window.XMLHttpRequest)
 {
  http_request=new XMLHttpRequest();
  if(http_request.overrideMimeType) http_request.overrideMimeType("text/xml");
 }
 else if(window.ActiveXObject)
 {
  try { http_request=new ActiveXObject("Msxml2.XMLHTTP"); }
  catch(e)
  {
   try { http_request=new ActiveXObject("Microsoft.XMLHTTP"); }
   catch(e) {}
  }
 }
 if(!http_request) { document.form[0].submit(); return false; }
 document.getElementById("vecchiaprov").value=document.getElementById("provincia").value;
 var sel=document.getElementById("comune");
 var td=sel.parentNode;
 td.removeChild(sel);
 var msg=document.getElementById("msgajax");
 if(msg) msg.parentNode.removeChild(msg);
 msg=document.createElement("div");
 msg.setAttribute("id","msgajax");
 sel=document.createElement("select");
 sel.setAttribute("id","comune");
 sel.setAttribute("name","comune");
 msg.appendChild(document.createTextNode("Caricamento in corso..."));
 td.appendChild(msg);
 http_request.onreadystatechange=function()
 {
  if(http_request.readyState==4)
  {
   if(http_request.status==200)
   {
    var xmldoc=http_request.responseXML;
    var root=xmldoc.getElementsByTagName("root").item(0);
    var ris=root.firstChild;
    var voce=document.createElement("option");
    voce.setAttribute("value","");
    var numVoci=0;
    while(ris)
    {
     var opt,val;
     if(ris.nodeType==1 && ris.tagName.toLowerCase()=="c")
     {
      opt=ris.getAttribute("id");
      if(ris.firstChild && ris.firstChild.nodeType==3) val=ris.firstChild.nodeValue;
      else val="";
      if(opt && val)
      {
       voce=document.createElement("option");
       voce.setAttribute("value",opt);
       voce.appendChild(document.createTextNode(val));
       sel.appendChild(voce);
       numVoci++;
      }
     }
     ris=ris.nextSibling;
    }
    if(numVoci>0)
    {
     td.removeChild(msg);
     td.appendChild(sel);
    }
    else
    {
     if(!root.hasChildNodes() || !root.firstChild.nodeValue)
      msg.firstChild.nodeValue="Errore: impossibile caricare i comuni della provincia "+document.getElementById("provincia").value;
     else
      msg.firstChild.nodeValue="Errore: "+root.firstChild.nodeValue;
    }
   }
   else
    msg.firstChild.nodeValue="Errore: "+http_request.status;
  }
  else
   return;
 };
 http_request.open("GET","/comuni.php/"+document.getElementById("provincia").value,true);
 http_request.send(null);
}

function cancella(e)
{
 if(document.getElementById && document.getElementById("confcanc"))
 {
  if(confirm("Cancellare veramente?"))
  { document.getElementById("confcanc").value="c"; return true; }
  else
  {
   if(!e) var e=window.event;
   if(e.preventDefault) e.preventDefault();
   if(e.stopPropagation) e.stopPropagation();
   else if(e.cancelBubble) e.cancelBubble();
   return false;
  }
 }
 return true;
}

function initLocale()
{
 var f=document.getElementById("formcanc");
 if(f.addEventListener) f.addEventListener("submit",cancella,false);
 else f.onsubmit=cancella;
}

