<!-- contextual menu -->
function returnValue(o_item) {
  return false;
};
            
// position and display context menu
function showContextMenu(evt, tree_item) {
    // hide any existing menu just in case
    hideContextMenus();
    evt = (evt) ? evt : ((event) ? event : null);
    if (evt) {
        /*var elem = (evt.target) ? evt.target : evt.srcElement;
         if (elem.nodeType == 3) {
            elem = elem.parentNode;
        }*/
        var oid = tree_item.a_config[2].WRId;
        //if (elem.className == "contextEntry") {
            var menu = document.getElementById(cMenu[oid].menuID);
            // turn on IE mouse capture
            if (menu.setCapture) {
                menu.setCapture();
            }
            // position menu at mouse event location
            var left, top;
            if (evt.pageX) {
                left = evt.pageX;
                top = evt.pageY;
            } else if (evt.clientX) {
                left = evt.clientX;
                top = evt.clientY;
            } else if (evt.offsetX || evt.offsetY) {
                left = evt.offsetX;
                top = evt.offsetY;
            }

            menu.style.left = left + "px";
            menu.style.top = top + "px";
            menu.style.visibility = "visible";
            if (evt.preventDefault) {
                evt.preventDefault();
            }
            evt.returnValue = false;
        //}
    }
}

// retrieve URL from cMenu object related to chosen item
function getHref(tdElem) {
    var div = tdElem.parentNode.parentNode.parentNode.parentNode;
    var index = tdElem.parentNode.rowIndex;
    for (var i in cMenu) {
        if (cMenu[i].menuID == div.id) {
            return cMenu[i].hrefs[index];    
        }
    }
    return "";
}

// navigate to chosen menu item
function execMenu(evt) {
    evt = (evt) ? evt : ((event) ? event : null);
    if (evt) {
        var elem = (evt.target) ? evt.target : evt.srcElement;
        if (elem.nodeType == 3) {
            elem = elem.parentNode;
        }
        if (elem.className == "menuItemOn") {
            location.href = getHref(elem);
        }
        hideContextMenus();
    }
}

// hide all context menus
function hideContextMenus() {
    if (document.releaseCapture) {
        // turn off IE mouse event capture
        document.releaseCapture();
    }
    for (var i in cMenu) {
        var div = document.getElementById(cMenu[i].menuID)
        div.style.visibility = "hidden";
    }
}

// rollover highlights of context menu items
function toggleHighlight(evt) {
    evt = (evt) ? evt : ((event) ? event : null);
    if (evt) {
        var elem = (evt.target) ? evt.target : evt.srcElement;
        if (elem.nodeType == 3) {
            elem = elem.parentNode;
        }
        if (elem.className.indexOf("menuItem") != -1) {
            elem.className = (evt.type == "mouseover") ? "menuItemOn" : "menuItem";
        }
    }
}

// set tooltips for menu-capable and lesser browsers
function setContextTitles() {
    var cMenuReady = (document.body.addEventListener || typeof document.oncontextmenu != "undefined")
    var spans = document.body.getElementsByTagName("span");
    for (var i = 0; i < spans.length; i++) {
        if (spans[i].className == "contextEntry") {
            if (cMenuReady) {
                var menuAction = (navigator.userAgent.indexOf("Mac") != -1) ? "Click and hold " : "Right click ";
                spans[i].title = menuAction + "to view relevant links"
            } else {
                spans[i].title = "Relevant links available with other browsers (IE5+/Windows, Netscape 6+)."
                spans[i].style.cursor = "default";
            }
        }
    }
}

// bind events and initialize tooltips
function initContextMenus() {
    if (document.body.addEventListener) {
        // W3C DOM event model
        document.body.addEventListener("contextmenu", showContextMenu, true);
        document.body.addEventListener("click", hideContextMenus, true);
    } else {
        // IE event model
        document.body.oncontextmenu = showContextMenu;
    }
    // set intelligent tooltips
    setContextTitles();
}
<!-- end contextual menu -->



function confirm_deletion(dluLink){
      	if (confirm('Delete selected item ?')) { return true; };
	return false; 
}

function imageswap(name, imagesrc)  
{
   eval("document." + name + ".src = '" + imagesrc + "'");
}

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_findObj(n, d) { //v3.0
  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); 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 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_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}


function gen(texts,links,t,tl)
{
  //var texts = new Array("","","")
  //var links = new Array("","","")
  //var t
  //var tl
  var InternetExplorer = navigator.appName.indexOf("Microsoft") != -1;
  
  var map = InternetExplorer ? menu : document.embeds("menu");
	for (i=0;i<=t;i++)
	{
  	map.SetVariable('m' + (i+1), texts[i]);
  	map.SetVariable('l' + (i+1), links[i]);
	}
	map.SetVariable('nt', t);
	map.SetVariable('title', tl);
  
  	
}
  
function gens(texts,links,t,tl)
{
  //var texts = new Array("","","")
  //var links = new Array("","","")
  //var t
  //var tl
  var InternetExplorer = navigator.appName.indexOf("Microsoft") != -1;
  
  var map = InternetExplorer ? menu : document.embeds("menu");
	for (i=0;i<=t;i++)
	{
  	map.SetVariable('ms' + (i+1), texts[i]);
  	map.SetVariable('ls' + (i+1), links[i]);
	}
	map.SetVariable('nts', t);
	map.SetVariable('titles', tl);
  
	
}

var slideShowSpeed = 20000;
var crossFadeDuration = 3;
var Pic = new Array();
Pic[0] = 'he/foto01.jpg';
Pic[1] = 'he/foto02.jpg';
Pic[2] = 'he/foto03.jpg';
Pic[3] = 'he/foto04.jpg';
Pic[4] = 'he/foto05.jpg';
Pic[5] = 'he/foto06.jpg';
Pic[6] = 'he/foto07.jpg';
Pic[7] = 'he/foto08.jpg';
Pic[8] = 'he/foto09.jpg';
Pic[9] = 'he/foto10.jpg';
Pic[10] = 'he/foto11.jpg';
Pic[11] = 'he/foto12.jpg';
Pic[12] = 'he/foto13.jpg';
Pic[13] = 'he/foto14.jpg';
Pic[14] = 'he/foto15.jpg';
Pic[15] = 'he/foto16.jpg';
Pic[16] = 'he/foto17.jpg';
Pic[17] = 'he/foto18.jpg';

var t;
var j =  Math.round(18*Math.random());
var i ;
var p = Pic.length;
var firstLoad = true;

var preLoad = new Array();
for (i = 0; i < p; i++){
   preLoad[i] = new Image();
   preLoad[i].src = Pic[i];
}
function runSlideShow(){
	if(!firstLoad){
	   if (document.all){
		  document.images.SlideShow.style.filter="blendTrans(duration=2)"
		  document.images.SlideShow.style.filter="blendTrans(duration=crossFadeDuration)"
		  document.images.SlideShow.filters.blendTrans.Apply()      
	   }
	   document.images.SlideShow.src = preLoad[j].src
	   if (document.all){
		  document.images.SlideShow.filters.blendTrans.Play()
	   }
	   j = j + 1
	   if (j > (p-1)) j=0
	}else{
		document.images.SlideShow.src=preLoad[j].src;
		firstLoad = false;
	}
   t = setTimeout('runSlideShow()', slideShowSpeed);
}



if (window.addEventListener){  
  window.addEventListener("load",aggiungiOnsubmit,false);
}
else if (window.attachEvent){  
  window.attachEvent("onload",aggiungiOnsubmit);
}
else
{
    window.previousLoadFunction = window.onload;
    window.onload = function()
    {
        window.previousLoadFunction();
        aggiungiOnsubmit();
    }
}



/* controllo estensioni file */
var arrExt = new Array("doc","pdf","txt","xls","jpg","jpeg","bmp","tiff","tif","rtf","zip","png","gif","mdi","ppt","pps","flv","swf");

function aggiungiOnsubmit(evt){
  
    if (window.addEventListener){  //ff
      document.forms[0].addEventListener("submit",function (evt)  {return controllaFile(evt);},true);
      
    }
    else if (window.attachEvent){  //ie
      document.forms[0].attachEvent("onsubmit",controllaFile);
    }
    else
    {
        document.forms[0].previousLoadFunction = document.forms[0].onsubmit;
        document.forms[0].onload = function()
        {
            document.forms[0].previousLoadFunction();
            return controllaFile();
        }
    }
  
}


function controllaFile(evt){
 
  var formElements = document.forms[0].elements;
  
  var risultato = true;
  var risultatoNomeFile = true;
  
  for (var i=0;i<formElements.length;i++){  // ciclo su tutti gli elementi del form
    if(formElements[i].type=="file"){       // se il l'elemento ?i tipo "file"
    
      var rex = /^[A-Za-z0-9\s\._\-]*$/;
      
      var val = ""+formElements[i].value;                  // recupero il valore dell'elemento
      
      var token;
      var separator;
      
      if (val.indexOf("/")>-1)
        separator = "/";
      else
        separator = "\\";
      
      token = val.split(separator);
      var nomeFile = token[token.length-1];
      
      val = val.toLowerCase();
      
      if (val.length>0){                                  // se ho inserito un file faccio i controlli
      
        var ext = val.substring(val.lastIndexOf(".")+1);  // recupero l'estensione dell'elemento
        
        for(var j=0;j<arrExt.length;j++){                 // controllo che l'estensione sia presente nell'array delle estensioni
        
          if(arrExt[j]==ext){                             // se trovo l'estensione metto il booleano a true e esco dal ciclo
            risultatoElemento = true;
            break;
          }
          else{
            risultatoElemento = false;                    // se l'estensione attuale non ?uella del file metto a false e passo alla prossima
          }
        }
        
        if (!rex.test(nomeFile)){
          risultatoElementoNomeFile = false;
        }
        else{
          risultatoElementoNomeFile = true;
        }
        
        if(risultatoElemento && risultatoElementoNomeFile)// se tutto ?k per questo elemento tolgo l'eventuale sfondo
          formElements[i].style.backgroundColor = "";
        else{                                             // se invece non ?k
          formElements[i].style.backgroundColor = "red";  // metto lo sfondo rosso
          for (var i=0;i<formElements.length;i++){        // e rimetto visibili tutti i vari submit
            if(formElements[i].type=="submit"){
              formElements[i].style.visibility = "visible";
            }
          }
        }
      }
      else{
        risultatoElemento = true;                         // se la lunghezza ? il controllo lo far?l server
        risultatoElementoNomeFile = true;
      }
        
      risultato = risultato && risultatoElemento;         // Aggiorno il risultato totale
      risultatoNomeFile = risultatoNomeFile && risultatoElementoNomeFile;
    }
  }
  
  if(!risultato)                                          // se qualcosa ?ndato storto avviso
    alert("Attenzione!\nSono stati aggiunti allegati di formato non supportato.");
    
  if(!risultatoNomeFile)
    alert("Attenzione!\nSono stati selezionati file il cui nome contiene caratteri speciali ( lettere accentate, virgole, &, $, % etc... ).\nSono ammessi solo caratteri alfanumerici, spazi ed i caratteri:\n_ - .\nSiete pregati di rinominare il file e riselezionarlo con l'apposito bottone.");
  
  if(document.forms[0].addEventListener && (!risultato || !risultatoNomeFile)){
    evt.preventDefault();
    evt.stopPropagation();
  }
  
  return risultato && risultatoNomeFile;
  
  
}/* END: controllo estensioni file */



/* FORMATTA FLOAT */
function formattaDati(obj){
          
  obj.style.backgroundColor = "";
  var delimitatore = ".";
  
  var val = obj.value.replace(/\./gi,"");
  
  var arr = val.split(',',2);
  var parteDec = '';
  
  if(val.indexOf(",")>=0) {
    parteDec = arr[1];
    if(parteDec.length>2) 
    	parteDec = parteDec.substring(0,2);
  }
  
  var parteInt = parseInt(arr[0]);
  
  if(isNaN(parteInt)) {
    if (val.length!=0)
      obj.style.backgroundColor = "red";
    return;
  }
  
  
  
  var neg = '';
  
  if(parteInt < 0) {
    neg = '-';
  }
  
  parteInt = Math.abs(parteInt);
  
  var str = new String(parteInt);
  var arr = [];
            	
  while(str.length > 3){
  	var substr = str.substr(str.length-3);
  	arr.unshift(substr);
  	str = str.substr(0,str.length-3);
  }
  
  if(str.length > 0) {
    arr.unshift(str);
  }
  
  str = arr.join(delimitatore);
  
  if(val.indexOf(",")>-1)
   str = str + "," + parteDec;
   
  val = neg + str;
  obj.value = val;
}

/* END: FORMATTA FLOAT */


/* TOGLI HEADER ESTERO */
  function togliHeaderEstero(){
    var th = document.body.getElementsByTagName("th");
    
    for(var i=0;i<th.length;i++){
      if(th[i].innerHTML.indexOf("Importo estero")>-1 || th[i].innerHTML.indexOf("Compartecipazione (Estero)")>-1)
        th[i].innerHTML = "";
    }
  }
/* END */

/* COUNT CARATTERI TEXTAREA */

function count(id,max,block){

  var numTa = document.getElementById(id).value.length;
  var numACapo = 0;
  
  for(var i=0;i<numTa;i++){
    if (document.getElementById(id).value.charAt(i) == "\n")
      numACapo++
  }
  
  numTa += numACapo;
  
  var valTxt = max - numTa;
  document.getElementById(id+"_count").value = valTxt;
  
  if (!block){      
    if(valTxt<0)
      document.getElementById(id+"_count").style.backgroundColor = "#FF0000";
    else if(valTxt==0)
      document.getElementById(id+"_count").style.backgroundColor = "#FFFF00";
    else
      document.getElementById(id+"_count").style.backgroundColor = "";
  }
  else{
    if(valTxt<=0){
      document.getElementById(id+"_count").style.backgroundColor = "#FF0000";
      document.getElementById(id).value = document.getElementById(id).value.substring(0,max);

      document.getElementById(id+"_count").value = valTxt;
    }
    else
      document.getElementById(id+"_count").style.backgroundColor = "";
  }
  
}

/* FINE */

/* Show Hide Table Rows */

function showHide(objA,suffix){
  // objA è l'oggetto ancora che ho appena cliccato.
  
  //recupero il nome dell'immagine, e valorizzo la variabile metodo			
  //metodo vale 1 se devo mostrare le righe e 0 se le devo nascondere, lo calcolo a seconda del nome dell'immaginetta
  
  var ie = navigator.appName.indexOf("Microsoft") != -1;
  
  var metodo = 0;
  var img = objA.firstChild.src;
  
  if(img.indexOf("up.gif")>=0){  //se è up sto chiudendo quindi metodo 0
    metodo = 0;
    objA.firstChild.src = "images/down.gif";
    objA.firstChild.title = "Apri";
    objA.firstChild.alt = "Apri";
  }
  else{ //se è down sto espandendo un nodo e quindi metodo 1
    metodo = 1;
    objA.firstChild.src = "images/up.gif";
    objA.firstChild.title = "Chiudi";
    objA.firstChild.alt = "Chiudi";
  }
  
  //recupero il tr dal quale partire			  
  var tr = objA.parentNode.parentNode
  
  //recupero tutti i tr della tabella
  var elencoTr = document.getElementById("inuTable"+suffix).getElementsByTagName("tr");
  
  var i = 0;
  
  for (i=0;i < elencoTr.length;i++){
    if(elencoTr[i] == tr)
      break;
  }
  
  //aggiungo 1 a i in modo da essere sul tr giusto
  i++;
  
  //a sto punto ho il tr dal quale partire
  
  while(elencoTr[i].className != "hideNextRows"){
    if(metodo==1){
      if(ie)
        elencoTr[i].style.display = "block";
      else
        elencoTr[i].style.display = "table-row";
    }
    else{
      elencoTr[i].style.display = "none";
    }
    i++;
  }
  
  
}

function showHideAll(objA,suffix){
  // objA è l'oggetto ancora che ho appena cliccato.
  
  //recupero il nome dell'immagine, e valorizzo la variabile metodo			
  //metodo vale 1 se devo mostrare le righe e 0 se le devo nascondere, lo calcolo a seconda del nome dell'immaginetta
  
  var ie = navigator.appName.indexOf("Microsoft") != -1;
  
  var metodo = 0;
  var img = objA.firstChild.src;
  
  if(img.indexOf("closeAll.gif")>=0){  //se è closeAll sto chiudendo quindi metodo 0
    metodo = 0;
    objA.firstChild.src = "images/openAll.gif";
    objA.firstChild.title = "Apri tutti";
    objA.firstChild.alt = "Apri tutti";
  }
  else{ //se è openAll sto espandendo un nodo e quindi metodo 1
    metodo = 1;
    objA.firstChild.src = "images/closeAll.gif";
    objA.firstChild.title = "Chiudi tutti";
    objA.firstChild.alt = "Chiudi tutti";
  }
  
  var elencoTr = document.getElementById("inuTable"+suffix).getElementsByTagName("tr");
  
  var elencoImg = document.getElementById("inuTable"+suffix).getElementsByTagName("img");
  
  for (var i=0;i<elencoImg.length;i++ ){
    if(elencoImg[i].src.indexOf("up.gif") >= 0 || elencoImg[i].src.indexOf("down.gif") >= 0){
      if(metodo == 1){
        elencoImg[i].src = "images/up.gif";
        elencoImg[i].title = "Apri";
        elencoImg[i].alt = "Apri";
      }
      else{
        elencoImg[i].src = "images/down.gif";
        elencoImg[i].title = "Apri";
        elencoImg[i].alt = "Apri";
      }
        
    }
  }
  
  for (var i=0;i < elencoTr.length;i++){
    if(elencoTr[i].className != "hideNextRows"){
      if(metodo==1){
        if(ie)
          elencoTr[i].style.display = "block";
        else
          elencoTr[i].style.display = "table-row";
      }
      else{
        elencoTr[i].style.display = "none";
      }
    }
  }
}

/* End*/

