 function menu_formatEuro_js_hide() {
  document.getElementById('formatEuro_tastodx').style.visibility='hidden';
  return true;
 }

function menu_formatEuro_js(obj) {
if((String(obj.menudx)=="")||(String(obj.menudx).toUpperCase()=="UNDEFINED")) return true;
document.getElementById('formatEuro_tastodx').style.left=document.body.scrollLeft+event.clientX;
document.getElementById('formatEuro_tastodx').style.top=document.body.scrollTop+event.clientY;
document.getElementById('formatEuro_tastodx').innerHTML="<hr><div class='formatEuro_menuitems'>"+String(obj.menudx).replace(/~.*/g,"")+"</div><hr><div class='formatEuro_menuitems'>"+String(obj.menudx).replace(/(.*)~/g,"")+"</div><hr>";
  if(String(window.document.body.onclick).toUpperCase()=="NULL") 
   window.document.body.onclick=menu_formatEuro_js_hide;
  document.getElementById('formatEuro_tastodx').style.visibility='visible';
  return false;
 }
 function formatEuro_switch(obj,what) {
  //what="A" => altra valuta, what="P" => tasto plus
  what=String(what).toUpperCase();
  //impossibile: se ho fatto onClick uno dei due deve essere settato!
  if((obj.no_decimali=="")&&(obj.altra_valuta=="")) {
   alert("#ERR_SYSOP");
   return;
  } 
  var strout="";
  if(obj.altra_valuta!="") {
   //posso switchare tra le valute
   strout+="<a class='tasto_per_euro' onClick='formatEuro_switch(this.parentElement,\"A\")' title='Visualizza altra valuta'>"+((what=="A")?obj.altra_valuta:obj.valuta)+"</a>&nbsp;"
   } //switch tra le valute
  //prezzo
  //ATTENZIONE: non usare € perché se non esiste come carattere fa casini (es. win95)
  if(what=="A") {
if((obj.altra_valuta!="£")&&(obj.no_decimali=="1")&&(String(obj.stato).toUpperCase()=="N")) {strout+=String(obj.altra_cifra).replace(/,.*/g,"");} else {strout+=obj.altra_cifra};
  } else if (what=="P") {
if((obj.valuta!="£")&&(obj.no_decimali=="1")&&(String(obj.stato).toUpperCase()=="I")) {strout+=String(obj.cifra).replace(/,.*/g,"");} else {strout+=obj.cifra};
  } else {
   //IMPOSSIBILE
   obj.innerHTML="#ERR_SYSOP";
   return;
  } 
if((obj.no_decimali!="")&&(((what=="A")&&(obj.altra_valuta!="£"))||((what!="A")&&(obj.valuta!="£")))) {
   strout+="<a class='tasto_per_euro' onClick='formatEuro_switch(this.parentElement,\"P\")' title='Visualizza/nascondi decimali'>";
   if(what=="A") {
strout+=((String(obj.stato).toUpperCase()=="N")?((String(obj.altra_cifra).replace(/(.*),/g,"").length==3)?"&sup3;":"&sup2;"):"&deg;")+"</a>";
   } else {
strout+=((String(obj.stato).toUpperCase()=="N")?"&deg;":((String(obj.cifra).replace(/(.*),/g,"").length==3)?"&sup3;":"&sup2;"))+"</a>";
    obj.stato=(String(obj.stato).toUpperCase()=="N")?"I":"N";
   }
  }
  //inverto le proprietà di obj (stato già modificato sopra)
  if(what=="A") {
   //ho scambiato la valuta
   var appoggio=obj.altra_valuta;
   obj.altra_valuta=obj.valuta;
   obj.valuta=appoggio;
   appoggio=obj.altra_cifra;
   obj.altra_cifra=obj.cifra;
   obj.cifra=appoggio;
  }
  obj.innerHTML=strout;
 }
function converti_valuta(cifra,valuta_cli,valuta_input,decpereuro) {
 function lTrim(str){
  return (new String(str)).replace(/^\s*/, "")
 }
 function rTrim(str){
  return (new String(str)).replace(/\s*$/, "")
 }
 function trim(str){
  return lTrim(rTrim(new String(str)))
 }
 function isnumeric(s,dec,separatore) {
  if (s==null) return true;
  //SQL CEVEDALE USA . COME SEPARATORE
  //lato client uso invece ,
  //dec=0 NON considera decimali, altrimenti li considera
  //separatore: se non lo indico prende il . altrimenti usa quello imdicato come separatore
  //se è negativo rimuovo simbolo
  if (String(s).substr(0,1)=="-") s=String(s).substr(1);
  if ((dec!="0")&&((String("1234567890").indexOf(String(s).substr(0,1))==-1)||(String("1234567890").indexOf(String(s).substr(String(s).length-1,1))==-1))) return false;
  separatore=(String(separatore)=="undefined")?".":separatore;
  var filtronumber="1234567890"+((dec=="0")?"":separatore);
  s=String(s).replace(/,|\./g,separatore);
  var x;
  for (x=0;x<s.length;x++) 
   if (filtronumber.indexOf(s.substr(x,1))==-1) return false;
  if (dec!="0")
   if ((s.indexOf(separatore)!=-1)&&((s.substr(s.indexOf(separatore)+1).indexOf(separatore)!=-1))) return false;
  return true;
 }
 if ((String(cifra)=="")||(String(cifra).toUpperCase()=="UNDEFINED")||(String(cifra).toUpperCase()=="NULL")) return "0";
 cifra=trim(String(cifra).replace(/\./g,","));
 if(!isnumeric(cifra,"1",",")) return "#ERR_NOT_NUM";
 if((valuta_cli=="")||(String(valuta_cli).toUpperCase()=="UNDEFINED")) valuta_cli=valuta_sede_input;
 if((valuta_input=="")||(String(valuta_input).toUpperCase()=="UNDEFINED")) valuta_input=valuta;
 if(String(elenco_valute).toUpperCase().indexOf(","+String(valuta_cli).toUpperCase()+",")==-1) return "#ERR_VALUTA";
 if(String(elenco_valute).toUpperCase().indexOf(","+String(valuta_input).toUpperCase()+",")==-1) return "#ERR_VALUTA";
 if((decpereuro=="")||(String(decpereuro).toUpperCase()=="UNDEFINED")) {decpereuro=dec_prztot} else {
 //posso aver fornito costanti oppure il numero di decimali
 if(!isnumeric(decpereuro,"0",",")) {
  if(isnumeric(decpereuro,"1",",")) {
   //è numerico ma con decimali!
   return "#ERR_DEC";
  } 
  //costanti
  try{eval("decpereuro="+decpereuro)}catch(e){return "#ERR_DEC"} 
 } else {
  //ho fornito numero di decimali: compreso tra 0 e 9
  if((parseInt(decpereuro)<0)||(parseInt(decpereuro)>9)) return "#ERR_DEC";
 } 
 }//decpereuro
 //cambio prezzo
 if(String(valuta_cli).toUpperCase()!=String(valuta_input).toUpperCase()) {
  switch(String(valuta_cli).toUpperCase()) {
   case "EUR": {
    //cifra fornita in Lira
    cifra=parseFloat(String(cifra).replace(/,/g,"."))/(1936.27);
    break;} 
   case "LIRA": {
    //cifra fornita in Eur
    cifra=parseFloat(String(cifra).replace(/,/g,"."))*(1936.27);
    break;}
   }//switch: converto da lira a EUR o viceversa
  } else {
   //riconverto , in .
   cifra=String(cifra).replace(/,/g,".");
  } //serve o meno convertire 
  //se sono in Lira tronco eventuali risultati altrimenti arrotondo a decpereuro
 var numdec=decpereuro;
 for (var x=0;x<=numdec;x++) x==0?decpereuro="1":decpereuro+="0";
 cifra=(String(valuta_cli).toUpperCase()=="LIRA")?parseInt(cifra):Math.round(String(cifra).replace(/,/g,".")*decpereuro)/decpereuro;
 return cifra;
} 