//rilevo SO e Browser
SOWIN = (navigator.userAgent.toLowerCase().indexOf("win") > -1) ? 1 : 0;
SOMAC = (navigator.userAgent.toLowerCase().indexOf("mac") > -1) ? 1 : 0;
SOLIN = (navigator.userAgent.toLowerCase().indexOf("linux") > -1) ? 1 : 0;
SOALT = (!SOWIN && !SOMAC && !SOLIN) ? 1 : 0;
OP = ((ind1 = navigator.userAgent.indexOf("Opera")) > -1) ? 1 : 0;
punto = (OP) ? navigator.userAgent.indexOf(".",ind1):0;
OP5 = (OP && parseInt(navigator.userAgent.substr(punto-1)) == 5) ? 1 : 0;
OP6 = (OP && parseInt(navigator.userAgent.substr(punto-1)) == 6) ? 1 : 0;
IE = ((ind2 = navigator.appVersion.indexOf("MSIE")) > -1 && !OP) ? 1 : 0;
IE4 = (IE && parseInt(navigator.appVersion.substr(ind2+5)) == 4) ? 1 : 0;
IE5 = (IE && parseInt(navigator.appVersion.substr(ind2+5)) == 5) ? 1 : 0;
IE6 = (IE && parseInt(navigator.appVersion.substr(ind2+5)) == 6) ? 1 : 0;
NN = (navigator.appName.indexOf("Netscape")>-1) ? 1 : 0;
NN4 = (NN && parseInt(navigator.appVersion)==4) ? 1 : 0;
NN6 = (NN && parseInt(navigator.appVersion)>4) ? 1 : 0;
GE = (navigator.userAgent.toLowerCase().indexOf("gecko")>-1) ? 1 : 0;
//riconosce mozilla, NN6 e tutti i browser basati sul gecko layout engine


var lingua = "ita";


<!--
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->

	function JWM_swapImage() {
	  a = JWM_swapImage.arguments;
	  document.JWM_tmp = new Array;
	  j=0;
	  for (i=0;i<(a.length-1);i+=2) {
	    x = document.getElementById(a[i]);
	    document.JWM_tmp[j++] = x;
      if(!x.oSrc) x.oSrc=x.src;
      x.src = a[i+1];
	  }
	}

	function JWM_swapImgRestore() {
    a = document.JWM_tmp;
    for (i=0;a&&i<a.length&&a[i].oSrc;i++)
      a[i].src = a[i].oSrc;
	}


//aggiunge il parametro specificato alla querystring
function addParameter(nome,valore) {
  for (var l=0; l<document.links.length; l++) {
    var abslink = document.links[l].href.indexOf("http://");
    var intlink = document.links[l].href.indexOf("#");
    var jslink = document.links[l].href.indexOf("javascript:");  //forse va trattato!!!!
    var jwmlink = document.links[l].href.indexOf("http://");   //forse è meglio aggiungere il nome dell'applicazione
    var isjsp = (document.links[l].href.indexOf(".jsp")!=-1)?true:false;
    var separatore = (document.links[l].href.indexOf("?")!=-1)?"&":"?";

    if (intlink==-1 && jslink==-1 && jwmlink!=-1 && isjsp)
      document.links[l].href += separatore+nome+"="+valore;
  }
}

//ritorna undefined se il parametro non è definito
function getParameter(nome) {

   var url = window.location.href;
   var paramsStart = url.indexOf("?");
   if (paramsStart != -1) {
      var paramString = url.substr(paramsStart + 1);
      var tokenStart = paramString.indexOf(nome);

      if (tokenStart != -1) {
         paramToEnd = paramString.substr(tokenStart + nome.length + 1);
         var delimiterPos = paramToEnd.indexOf("&");

         if (delimiterPos == -1) {
            return paramToEnd;
         } else {
            return paramToEnd.substr(0, delimiterPos);
         }
      }
   }
}

function getParameters() {
   var params = new Array();
   var url = window.location.href;
   var paramsStart = url.indexOf("?");
   var hasMoreParams = true;

   if (paramsStart != -1) {
     var paramString = url.substr(paramsStart + 1);
     var params = paramString.split("&");
     for (var i = 0 ; i < params.length ; i++) {
       var pairArray = params[i].split("=");
       if (pairArray.length == 2) {
         params[pairArray[0]] = pairArray[1];
       }
     }
     return params;
   }
}


function getAttributo(el,attr,isselect) {
  retval = document.getElementById(el)

  if (retval) {
    if (isselect)
      return eval("retval.options[retval.selectedIndex]."+attr)
    else
      return eval("retval."+attr)
  }
}

function vai(desturl,repl) {
  if (desturl && desturl!="") {
    if (repl)
      document.location.replace(desturl)
    else
      document.location = desturl
  }
}


function cerca(form,id,error) {
    if (trimString(document.getElementById(id).value) == '' ) {
       alert(error)
    } else {
     document.forms[form].submit();
    }
}

function trimString(sInString) {
  sInString = sInString.replace( /^\s+/g, "" );// strip leading
  return sInString.replace( /\s+$/g, "" );// strip trailing
}
//stampa la data in formato gg/mm/aaaa
//o mm/gg/aaaa se passiamo 'eng'
function printUltimaModifica(lng) {
  var mydate = new Date(document.lastModified);
  var g = mydate.getDate();
  var gg = new String(g);
  gg = gg.length==1?"0"+g:g;
  var m = mydate.getMonth();
  var mm = new String(m);
  mm = mm.length==1?"0"+(m+1):(m+1);
  var aaaa = mydate.getFullYear();
  if (lng=="eng")
    document.write(mm+ "/" + gg + "/" + aaaa)
  else
    document.write(gg+ "/" + mm + "/" + aaaa)

}

//funzione per "nascondere" un layer
function hideLayers() {
  //compatibilità: Netscape 6.x, Explorer 5 e 6, Opera 5 e 6, Mozilla
  a = hideLayers.arguments;
  for (i=0;i<a.length;i++) {
    if (document.getElementById(a[i])) {
      //document.getElementById(a[i]).style.visibility="hidden";
      document.getElementById(a[i]).style.display="none";
    }
  }
}

//rende visibile un layer
function showLayers() {
  //compatibilità: Netscape 6.x, Explorer 5 e 6, Opera 5 e 6, Mozilla
  a = showLayers.arguments;
  for (i=0;i<a.length;i++) {
    if (document.getElementById(a[i])) {
      //document.getElementById(a[i]).style.visibility="visible";
      document.getElementById(a[i]).style.display="block";
    }
  }
}

//nasconde il layer con l'id passato come parametro
function hideLayerFam(iddiv) {
  document.getElementById(iddiv).style.display="none";
}

//visualizza il layer con l'id passato come parametro
function showLayerFam(iddiv) {
  if(document.getElementById(iddiv).style.display=='block')
	document.getElementById(iddiv).style.display="none";
  else
    document.getElementById(iddiv).style.display="block";
}

//simo per gestione apri chiudi form si ricerca
function nobox(nome) {
document.getElementById(nome).style.display='none'
}
function box(nome) {
document.getElementById(nome).style.display='block'
}

//visualizza/nasconde un box
function visbox(idsez) {
        sez = document.getElementById(idsez);
        //imgsez = document.getElementById(idimgsez);

        if (sez.style.display=='block') {
                sez.style.display = 'none';
                //imgsez.src = 'img/chiuso.gif';
        } else {
                sez.style.display = 'block';
               // imgsez.src = 'img/aperto.gif';
        }
}

//ricerca eventi
function cercaEv(fnome) {
  var campot=document.getElementById('ev_tema');
  document.getElementById('n_tema').value=campot.options[campot.selectedIndex].text;
  var campod=document.getElementById('ev_dest');
  document.getElementById('n_dest').value=campod.options[campod.selectedIndex].text;
  var campom=document.getElementById('ev_mese');
  document.getElementById('n_mese').value=campom.options[campom.selectedIndex].text;
  document.forms[fnome].submit();
}

//ritorna true se una variabile o una funzione è definita
function isdefined( variable)
{
    return (typeof(window[variable]) == "undefined")?  false: true;
}

//select senza input vai link automatico sulla selezione della voce
function MM_jumpMenu(targ,selObj,restore){ //v3.0
  if(targ=='blank') window.open(selObj.options[selObj.selectedIndex].value);
  else eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

//apre nuova finestra
function finestra(pagina,w,h,scroll,resize) {
  if (scroll=="") scroll="no"
  if (resize=="") resize="yes"
  window.open(pagina,'','width='+w+',height='+h+',scrollbars='+scroll+',resizable='+resize)
}


/*
* UTIL
*/
String.prototype.trim = function() {
	//return this.replace(/^(\s*)([\W\w]*)(\b\s*$)/g, "");
	return this.replace(/^\s*|\s*$/g, "");
}

function setFieldValue(idcampo,val) {
  var campo = document.getElementById(idcampo);
  if (!campo || campo.type=='radio' || !campo.value)
  {
    eval("campo = document.forms[0]."+idcampo)
  }

  if (campo)
  {
    if (!campo.type && campo.length)
    {
      // radio button!
      for (j=0;j<campo.length;j++)
      {
        if (campo[j].value == val)
        {
          campo[j].checked = true;
	  break;
        }
      }
    }
    else
    {
	    document.getElementById(idcampo).value = val;
	    return true;
    }
  }
  else
  {
	  return false;
  }
}

function getFieldValue(idcampo) {
  var valore = "";

  var campo = document.getElementById(idcampo);
  if (!campo || campo.type=='radio' || !campo.value)
  {
    eval("campo = document.forms[0]."+idcampo)
  }

	if (campo)
  {
    if (!campo.type && campo.length)
    {
      // radio button!
      for (j=0;j<campo.length;j++)
      {
        if (campo[j].checked)
        {
          valore = campo[j].value;
        }
      }
    }
    else
    {
      valore = campo.value;
    }
  }

  if (valore)
  {
    return valore
  }
  else
  {
    return "";
  }
}

function existsField(idcampo) {
  var campo = document.getElementById(idcampo);
  if (!campo || campo.type=='radio' || !campo.value)
  {
    eval("campo = document.forms[0]."+idcampo)
  }

  if (campo)
  {
    return true
  }
  else
  {
    return false
  }
}

/*
*	CHECK CAMPI OBBLIGATORI FORM
*/
function checkForm() {

	try
	{
		var err = false

		//controllo che siano compilati gli eventuali campi obbligatori
		var rf = getFieldValue('requiredfields');

		if (rf.trim().length>0)
		{
			var re = new RegExp(",","gi");
			rf = rf.replace(re,'&&');

			//re = new RegExp("\s","gi");
			var rf2 = rf.split(/[\s&&\(\)||]/gi);

			for (var i=0;i<rf2.length;i++)
			{
				var token = rf2[i].trim();
				if (token.length>0)
				{
					if (existsField(token))
					{
						var valcampo = (getFieldValue(token)!=''?true:false)

						rf = rf.replace(token,valcampo)
					}
					else
					{
						//alert("Impossibile trovare un campo con id: " +token);
						rf = rf.replace(token,true)
					}
				}
			}
			//alert("Espressione da valutare per check campi obbligatori: \n\n" +rf);

			eval("if(!("+rf+")) err=true")
		}

		if (err)
		{
			var errmsg = getFieldValue('requiredfieldsmsg');
			if (errmsg!="")
			{
				alert(errmsg);
			}
			else
			{
				alert("Compilare tutti i campi obbligatori");
			}

			return false;
		}
		else
		{
			return true;
		}
	}
	catch(ex)
	{
		//alert("Errore durante i controlli sui campi obbligatori \n\n[ "+ex.message+" ]")

		return false;
	}
}




