function OpenLinkHref(el, descFind, nomeAttrib, openT) {
// --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// script per link interni sviluppato da Ivo Sansovini 
// formato da usare: parte di descrizione del file da aprire
// formato da usare: parte di descrizione del file da aprire
// tutti i parametri: OpenLinkHref(this, 'descFind', 'nomeAttrib', 'openT') 
// descFind: '[nn]' o '[nn]descrizione (o parte) link da trovare (sost. descriz. del link)' opz. nn indica la posizione di inizio ricerca
// ora descFind accetta il formato JS ExpReg (con o senza nn iniziale)  /cerca/i (i=non considera maius/minusc)
// nomeAttrib: '' o nome attributo che contiene desc. link es. 'Title' 
// openT: '' o '_blank' apre in nuova scheda o '_self' apre nella scheda corrente o
// 'height=200,width=200,left=20,top=20' opzione ,resizable=yes default 
// --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 
  // alert(el.innerHTML + " " + descFind);
  var PosinDesc = -1;
  if (el === undefined) {alert("errore manca (this)"); return;}
  if (descFind === undefined) {
      descFind = el.innerHTML;
  } else {
      var risPosinDesc = parseInt(descFind.substring(0, 2), 10)
       // alert("risPosinDesc " + risPosinDesc + "sub desc " + descFind.substring(0,1));
      if (!isNaN(risPosinDesc)) {
         PosinDesc = risPosinDesc;
         descFind = descFind.substring(2);
      }
      if ((descFind + "").length <= 1) {descFind = el.innerHTML}
  }
  if (nomeAttrib != undefined) {
      if (nomeAttrib > "") {descFind = el.getAttribute(nomeAttrib)}
  }
  if (openT === undefined) {
      openT = "_blank";
  } else {
      if ((openT + "").length < 4) {openT =  "_blank";}
  }
  if ((descFind + "").length <= 1) {
    alert("errore nella descrizione di ricerca del link");
    return;
  }
  
  var wTabIndex = el.tabIndex // salvataggio tabIndex per Link chiamante (normalmente sono tutti a zero)
  el.tabIndex = -978 // numero negativo sicuramente non usato
  var LdF = descFind.length;
  var WdescF = descFind;  
  if (descFind.substring(0,1) == "/") {
     if (descFind.substring(LdF - 2, LdF - 1) == "/") {
        descFind = new RegExp(descFind.substring(1, LdF - 2), descFind.substring(LdF - 1, LdF)); 
     } else {
       if (descFind.substring(LdF - 1, LdF) == "/") {
          descFind = new RegExp(descFind.substring(1, LdF - 1));
       }
     }     
  }
  
  var All = document.getElementsByTagName("a");
  for (var i = 0; i < All.length; i++)       {
	var eltxt = All[i].innerHTML;
	var elhref = All[i].href;
	var risSearch;
    if ((eltxt.search(descFind) >= 0)  && (All[i].tabIndex != el.tabIndex)) {
		if (eltxt.search(">") > 0) {
		   eltxt = eltxt.substring(eltxt.search(">")+1);  
		}
		if (PosinDesc == -1) {
		   risSearch = (eltxt.search(descFind) >= 0);
		} else {
		   risSearch = (eltxt.search(descFind) == PosinDesc);
		}
		if (risSearch) { 
           el.tabIndex= wTabIndex // ripristino tabIndex (caso trovato)
		   if (openT.length > 8) {
			 window.open(elhref, "WinPopUp", openT);
		   } else {
			 window.open(elhref, openT);
		   }
		   return false; // impedisce lancio di href del link se inserito return prima della funzione
		 // break;
		} // fine open poichè trovato esatto
    } // fine trovato simile
  } // fine loop
  el.tabIndex = wTabIndex  // ripristino tabIndex (caso NON trovato)
//  alert("NON TROVATO LINK: <" + descFind + ">");
  alert("NON TROVATO LINK: <" + WdescF + "> (L." + LdF + " Pos." + PosinDesc + ")");
}