function gotoValAttuali(tipo) {
	menuSection(3, 1,'valori_attuali.cfm&fondo_name='+escape(tipo))	
}

function getSelectedValue(formname, selectname) {
  return document.forms[formname].elements[selectname].options[document.forms[formname].elements[selectname].selectedIndex].value;
}

function protectURL(str)
{

return (str.replace(/\.\./gi,""));
		
}

//Cambia sezione
function menuSection(arg_list) {
offset=0;
url="";
if (arguments.length==(3+offset)) {
        id=arguments[offset+0];
		subid=arguments[offset+1];
        url=url+arguments[offset+2];
}
//alert(url+"&section="+id+"&subsection="+subid);
gotoSection(url+"&section="+id+"&subsection="+subid);
}

function setAnchor(pagina)
{
 if (pagina.search(/#/gi) != -1)
        {
          pagina=pagina.replace(/#(\w*)(&|$)/gi,"$2");
          pagina=pagina+"#"+RegExp.$1;
        }


return pagina;
}

//Per caricare qualsiasi sezione del sito
function gotoSection(pagina)
{
offset=0;
page="/internal.cfm?page="+protectURL(arguments[0]);


//Controlla se è stato richiesto un form particolare
if (arguments.length >=(3+offset)){
	sFormName=(arguments[2+offset]!="" ? arguments[2+offset] : 0);
        document.forms[sFormName].method=arguments[1+offset];
        document.forms[sFormName].action=setAnchor(page);
        //document.forms[sFormName].target="main";
	document.forms[sFormName].submit();
	return;
}

// Nessun nome di form specificato
if (arguments.length==(1+offset) || arguments[1+offset]=="GET")
        document.location.href=setAnchor(page);
else{
	document.forms[0].method="POST";
        document.forms[0].action=setAnchor(page);
        //document.forms[0].target="main";
	document.forms[0].submit();
	}
}

function gotoSectionAdmin(pagina)
{
offset=0;
page="/ADMIN/default.cfm?page="+protectURL(arguments[0]);


//Controlla se è stato richiesto un form particolare
if (arguments.length >=(3+offset)){
	sFormName=(arguments[2+offset]!="" ? arguments[2+offset] : 0);
        document.forms[sFormName].method=arguments[1+offset];
        document.forms[sFormName].action=setAnchor(page);
        //document.forms[sFormName].target="main";
	document.forms[sFormName].submit();
	return;
}

// Nessun nome di form specificato
if (arguments.length==(1+offset) || arguments[1+offset]=="GET")
        document.location.href=setAnchor(page);
else{
	document.forms[0].method="POST";
        document.forms[0].action=setAnchor(page);
        //document.forms[0].target="main";
	document.forms[0].submit();
	}
}


function isInteger(n)
{
nn=""+n;
return ((nn.search(/[^0-9]/gi)<0) && nn.length>0);	
}

function isalpha(n) {
  var nn=""+n;
  // Elimino segni di interpunzione o negativi, che sono ammessi
  nn = nn.replace(/\./gi, "");
  nn = nn.replace(/\,/gi, "");
  nn = nn.replace(/\-/gi, "");
  return ((nn.search(/[^0-9]/gi)!=-1) && nn.length>0);
}//endfunction

function isAlphanumeric(n)
{
	return (n.search(/[^0-9A-Za-z]/gi)<0) && (n.length>0);		
}

function undot(vv) {
  var vx=""+vv;
  if (typeof vv=='string')
    return (vx.replace(/\./gi, "").replace(/\,/gi, "."));
  else {
    if (isNaN(vv)) vv=0;
    return vv;
  }//end else
}//end function

function dot(name) {
  negative = "";
  decimal = "";
  var v=""+undot(name);
  // elimino l'eventuale segno negativo
  if (v.charAt(0) == "-") {
    v = v.substring(1, v.length);
    negative="-";
  }//end if
  // considero solo la parte intera
  decpos = v.search(/\./gi);
  if (decpos != -1) {
    decimal = ","+v.substring(decpos+1, v.length);
    v = v.substring(0, decpos);
    //alert("Posizione virgola: " + decpos + "\nParte intera: " + v + "\nParte decimale: "+decimal);
  }//end if
  var l=v.length-1;
  var vd=""
  var vd2=""

  for (i=0,d=1;i<=l;i++,d++) {
    if (d>3) {vd=vd+".";d=1;}
    vd=vd+v.substr(l-i,1);
  }//end for

  for (i=vd.length;i>=0;i--)
    vd2=vd2+vd.substr(i,1);
  return negative+vd2+decimal;
}//end function

function validateNum(numstr) {
    retstr = "";
    negative="";
    if (numstr.length == 0) {
      retstr = "0";
    }//end if
    else {
      // controllo se il numero dovrà essere negativo
      negative = numstr.charAt(0) == "-" ? "-" : "";
      // sostituisco le virgole con i punti
      retstr = numstr.replace(/,/gi, ".");
      // elimino caratteri estranei
      retstr = retstr.replace(/[^0-9.]/gi, "")
      // cerco il primo punto
      dotpos = retstr.search(/\./gi);
      switch (dotpos) {
        case -1:
          // non ci sono punti -> non faccio nulla
          // mi serve specificare questo caso
          // altrimenti finirebbe nel default
          break;
        case 0:
          // il punto è all'inizio -> aggiungo lo 0 davanti ed elimino gli altri punti
          retstr = "0."+retstr.replace(/\./gi,"");
          break;
        default:
          // il punto è in mezzo -> elimino gli altri punti
          substr1 = retstr.substr(0, dotpos+1);
          substr2 = (retstr.substring(dotpos+1, retstr.length)).replace(/\./gi,"");
          retstr = substr1+substr2;
      }//end switch
    }//end else
    retval = parseFloat(negative+retstr,10);
    if(!isNaN(retval)) return retval;
    else return 0;
  }//end function






//--------------------------------------
// checkField()
//--------------------------------------
// Controlla che il campo non sia vuoto
function checkField(oField,sMessage,bSetFocus){
	var regexp = /^ *$/

	if(regexp.test(oField.value)){
		if (!regexp.test(sMessage)){
			alert(sMessage);
			if(bSetFocus){
				oField.focus();
			}
		}
		return 0;
	}

	return 1;
}

//--------------------------------------
// checkMail()
//--------------------------------------
// Controlla la correttezza sintattica
// della mail
function checkMail(oField){
	var nome,dominio2,dominio1;
	var sValue=oField.value;

	rxSplitMail = /^(.+)@(.+)\.(.+)$/;

	//Controlla la struttura del campo email
	if(!rxSplitMail.test(sValue)){
		return false
	}
	nome			= sValue.replace(rxSplitMail,"$1");
	dominio2	= sValue.replace(rxSplitMail,"$2");
	dominio1	= sValue.replace(rxSplitMail,"$3");

	rxChNonPermessi=/[àèéìòù\s@]+/;

	//---------------------------
	//Dominio di primo livello
	//---------------------------
	if(dominio1.length<2 || rxChNonPermessi.test(dominio1)){
		return false;
	}

	//---------------------------
	//Dominio di secondo livello
	//---------------------------
	if(dominio2.length<2 || rxChNonPermessi.test(dominio2)){
		return false;
	}

	//---------------------------
	//Nome
	//---------------------------
	if(nome.length<2 || rxChNonPermessi.test(nome)){
		return false;
	}

	// Non esistono errori
	return true;
}// end function




function trim(myString)
{
myString=myString.replace( /^\s*(\.*)/ , '$1') ;
myString=myString.replace( /(\.*)\s*$/ , '$1') ;
return (myString)
}





/* -----------------------------------------------------------------------------
 * Torna un valore numerico valido (eventualmente decimale e negativo) data una
 * stringa di testo. Se la stringa non rappresenta un numero valido il valore di
 * ritorno sarà 0.
 *
 * @param numstr: stringa che rappresenta un numero;
 * @return:       valore numerico eventualmente decimale e negativo;
 * ----------------------------------------------------------------------------- */
function validateReal(numstr) {
  var retstr = "";
  var negative="";
  if (numstr.length == 0) {
    retstr = "0";
  }//end if
  else {
    // controllo se il numero dovrà essere negativo
    negative = numstr.charAt(0) == "-" ? "-" : "";
    // sostituisco i punti con il nulla
    retstr = numstr.replace(/\./gi, "");
    // elimino caratteri estranei
    retstr = retstr.replace(/[^0-9.,^,.]/gi, "");
    // cerco la prima virgola
    var dotpos = retstr.search(/,/gi);
    switch (dotpos) {
      case -1:
        // non ci sono virgole -> non faccio nulla
        // mi serve specificare questo caso
        // altrimenti finirebbe nel default
        break;
      case 0:
        // la virgola è all'inizio -> aggiungo lo 0 davanti ed elimino altre virgole
        retstr = "0."+retstr.replace(/,/gi,"");
        break;
      default:
        // la virgola è in mezzo -> elimino le altre virgole
        var substr1 = retstr.substr(0, dotpos);
        var substr2 = (retstr.substring(dotpos+1, retstr.length)).replace(/,/gi,"");
        retstr = substr1+'.'+substr2;

    }//end switch
  }//end else
  var retval = parseFloat(negative+retstr,10);
  if(!isNaN(retval)) return retval;
  else return 0;
}//end function




function back()
{
history.go(-1);
}

function prePadNum(str, n) {
    returnstr = str;
    stringlen = str.length;
    if (stringlen < n) {
      topad = n - stringlen;
      for (var i = 0; i < topad; i ++) {
        returnstr = "0" + returnstr;
      }//end for
    }//end if
    return returnstr;
  }//end function

  
  
function chkSingleRadio(formObj,nameElement) {
	d=formObj;
	numElements=d.elements[nameElement].length;
	for (indexElements=0;indexElements<numElements;indexElements++)
	if (d.elements[nameElement][indexElements].checked) return true;
	alert("Attenzione! Per proseguire devi scegliere almeno una risposta.");
	d.elements[nameElement][0].focus();
	return false
}
