//  *****************************************************************************
//  * applicazione web : BUSSOLA
//  *           modulo :    
//  * nome file : CREA_INFO.JS
//  * contenuto:
//  * elementi software per la predisposizione delle pagine informative 
//  * 
//  * data ultimo aggiornamento : 01/12/2005 14.02
//  *****************************************************************************
//
    var InfoLinks    = new Array();  // array delle voci del menu delle info che sono a primo livello
    var myinfoConfig = new Array();  // array ottenuto splittando l'array infoConfig
    var info_title = "Informazioni&Information";
    var browserNs = (navigator.appName=='Netscape') ?  true  :  false ; 
//    
//                             ::::::::::::::::::::::::
// 
// costruttore dell'oggetto InfoLink (= voce menu info di livello 1 )
// ogni sua istanza è componente dell'Array InfoLinks  
// 
 function InfoLink(sig,des,linkass,target)
 {
  this.sig = sig;                     // sigla identificativa
  this.des = des;                     // etichetta associata bilingue
  this.linkass = linkass;             // url associato alla voce menu info
  this.target = target;               // target dell'url associato alla voce menu info
  this.InfoLinks2 = new Array();      // lista voci menu di livello 2
  this.show =InfoLink_show;           // metodo per il disegno della voce menu di livello 1
  this.show2 =InfoLinks2_show;        // metodo per il disegno delle voci menu di livello 2
 }
//                             ::::::::::::::::::::::::::
//
// metodo dell'oggetto InfoLink
// disegna il link relativo alla voce di livello 1 del menu Info 
//
 function InfoLink_show (p_ix)
 {
  var wstr = '<img SRC="'+$IMGDIR+'submenu.gif" width="20" height="13" >&nbsp;' ;   
  this.linkass = strReplace(this.linkass,"$LAN",p_lan.toUpperCase());  	   
   
  if (this.InfoLinks2.length == 0)  // vera non ci sono voci di livello 2
     { 
      wstr += '<A HREF="'+this.linkass+'" TARGET="'+this.target+'" CLASS="stymv2">'+this.des +'</A>';
     }
  else
     wstr += '<A HREF="#" onClick="parent.mv2_menu_draw('+p_ix+');return false;" CLASS="stymv2">'+this.des +'</A>';	
  return wstr;
 } // chiusura della function
//                             :::::::::::::::::::::::::        
// 
// costruttore dell'oggetto InfoLink2 (= voce di livello 2 )
// ogni sua istanza è componente dell'Array InfoLinks2 
//
function InfoLink2 (sig,des,linkass,target)
 {
  this.sig = sig;                      // sigla identificativa
  this.des = des;                      // etichetta associata bilingue
  this.linkass = linkass;              // Url associato alla voce del link alle pag. di informazione
  this.target = target;                // target dell'url associato 
  this.show = InfoLink2_show;          // metodo per il disegno dell'oggetto 

 }
//                             ::::::::::::::::::::::::::
//
// metodo dell'oggetto InfoLink2
// disegna una voce di menu di livello 2
//  
 function InfoLink2_show ()
 {
  var wstr = '&nbsp;&nbsp;<img SRC="'+$IMGDIR+'submenu.gif" width="20" height="13" border="0" >&nbsp;&nbsp;' ;   
  this.linkass = strReplace(this.linkass,"$LAN",p_lan.toUpperCase());
//  
  wstr += '<A HREF="'+this.linkass+'" TARGET="'+this.target+'" CLASS="stymv2" >'+ this.des +'</A>';
  return wstr;
  
 } // chiusura function 
//                             :::::::::::::::::::::::::
//
// metodo dell'oggetto InfoLink
// disegna le voci di livello 2 del menu info relative all'oggetto
//  
 function InfoLinks2_show ()
 {
 	wstr ='';
    for(m=0;m<this.InfoLinks2.length;m++) 
     {
       wstr += this.InfoLinks2[m].show()+'<BR>';         
     } //chiusura del for
  return wstr;
  
 } // chiusura function 
//                             :::::::::::::::::::::::::

//  
// in base ai parametri di personalizzazione impostati dall'utente,   
// popola la tabella delle voci del menu info
// 
 function selser_obj(p_ute,p_uni,p_pro,p_lan)
 {
/* 	
  alert("sono in selser_obj del file crea_info.js"
       +"\np_ute="+p_ute 
       +"\np_uni="+p_uni
       +"\np_pro="+p_pro
       +"\np_lan="+p_lan
       );
*/
  var i=0;      
  var j=0;
  var whichUni = '';
  var whichPro = '';
  var whichUte = '';
  var x =0;
  var y =0;
  var z =0;
  var t =0;
  myinfoConfig.length = 0;                    //l'array va inizializzato in quanto variabile globale
  if (p_uni != 'all' )  { p_uni = p_uni.toUpperCase(); }
  if (p_ute != 'all' )  { p_ute = p_ute.toUpperCase(); }
  x = infoConfig[0].lastIndexOf("#")+1;      // individua la posizione d'inizio stringa atenei
  y = infoConfig[0].lastIndexOf("#",x-2)+1;  // individua la posizione d'inizio stringa profili utente
  z = infoConfig[0].lastIndexOf("#",y-2)+1;  // individua la posizione d'inizio stringa progetti
//
//
  for (i=0; i < infoConfig.length; i++) 
  {
//     alert('infoConfig['+i+']='+infoConfig[i]);  
	 
    whichUni = infoConfig[i].substr(x);          //si isola la porzione di stringa degli atenei
    whichUte = infoConfig[i].substr(y,(x-y-1));  //si isola la porzione di stringa dei profili utente 
    whichPro = infoConfig[i].substr(z,(y-z-1));  //si isola la porzione di stringa dei progetti 
/*
    alert('whichUni='+whichUni+' p_uni='+p_uni
          +'\nwhichUte='+whichUte+' p_ute='+p_ute
          +'\nwhichPro='+whichPro+' p_pro='+p_pro);
*/
// la voce di menu in esame in tabella infoConfig viene selezionata, ossia caricata in tabella myinfoConfig,
//  solo se è dichiarata sia per l'università corrente che per il progetto corrente che per l'utente corrente     
    if ( ( whichUni.lastIndexOf(p_uni) != -1 ) &&
         ( whichPro.lastIndexOf(p_pro) != -1 ) &&     
         ( whichUte.lastIndexOf(p_ute) != -1 )  
       )               
    {                       // apertura if
     myinfoConfig[j] = infoConfig[i].split("#");
     
//    alert ("myinfoConfig[j]="+myinfoConfig[j]);    // SI, ogni comp. di myinfoConfig è una riga di infoConfig
                                                    // dove, al posto del #, c'è la virgola.
// 
// viene sistemata la stringa del campo "descrizione oggetto" in base al parametro lingua
//
      myinfoConfig[j][2] = pickLan(myinfoConfig[j][2],p_lan);
// 
// viene sistemata la stringa del campo "url voci menuInfo" in base al parametro ateneo
//     
      myinfoConfig[j][3]= strReplace(myinfoConfig[j][3],"$UNI",p_uni);      
// 
// viene sistemata la stringa del campo "url voci menuInfo" in base al parametro progetto
//     
      myinfoConfig[j][3]= strReplace(myinfoConfig[j][3],"$PRO",p_pro);
// 
// viene sistemata la stringa del campo "url voci menuInfo" in base al parametro virtual path su server
//
      myinfoConfig[j][3]= strReplace(myinfoConfig[j][3],"$VPATH",$VPATH);

//      alert ("myinfoConfig[j][2]="+myinfoConfig[j][2]); //SI: Presentazione, Atenei aderenti, servizi offerti,....

/*
       myinfoConfig[j][3]= strReplace(myinfoConfig[j][3],"$HOST",$HOST);
       if (p_uni != 'all')  
        { 
         myinfoConfig[j][3]= strReplace(myinfoConfig[j][3],"$UNI",p_uni.toLowerCase());           
        } 
        if (p_lan != 'IT' )  
        {
         myinfoConfig[j][3]= strReplace(myinfoConfig[j][3],"$LAN",p_lan.toUpperCase());
         myinfoConfig[j][3]= strReplace(myinfoConfig[j][3],"$PRO",p_pro.toUpperCase());
//         myinfoConfig[j][4]= strReplace(myinfoConfig[j][4],"$LAN","/"+p_lan.toUpperCase()); 
       } 
       else
        {myinfoConfig[j][3]= strReplace(myinfoConfig[j][3],"$LAN","");} 
    
*/
    j++;     
    }// chiusura if più esterno    
  } // chiusura ciclo for 

/*  
   for (i=0; i < myinfoConfig.length; i++) 
  {
   alert ('myinfoConfig['+i+'][1]='+myinfoConfig[i][1]
       +'\nmyinfoConfig['+i+'][2]='+myinfoConfig[i][2]
       +'\nmyinfoConfig['+i+'][3]='+myinfoConfig[i][3] 
       +'\nmyinfoConfig['+i+'][5]='+myinfoConfig[i][5]
       ); 
  }
*/    
 }  // chiusura  function
//  
//                             :::::::::::::::::::::::::
//
// istanzia l'oggetto InfoLink 
// le istanze dell'oggetto InfoLink vengono registrate nell'array InfoLinks 
//
 function load_info()
 {  
//  alert("sono nella load_info");                            
  var i  = 0;  
  var j  = 0;  
  var i1 = 0; //indice che viene incrementato quando creo l'istanza
  var j1 = 0; //indice che viene incrementato quando creo l'istanza

  InfoLinks.length = 0;   //l'Array InfoLinks va inizializzato in quanto variabile globale
//
// creazione istanze che rappresentano le voci del menu di primo livello
// ciclo sulle voci del menu di livello 1
// ad ogni passo dell'iterazione rende corrente una riga di dichiarazione di una voce di livello 1
// e ne istanzia l'oggetto corrispondente
// indice di posizionamento sulla riga di tabella myinfoConfig in cui si dichiara una voce di livello 1: i  
//
      
  while ( i < myinfoConfig.length && myinfoConfig[i][1] == '  ')
  {
/*  	  	     	       
 alert ('myinfoConfig['+i+'][2]='+myinfoConfig[i][2]
       +'\nmyinfoConfig['+i+'][1]='+myinfoConfig[i][1]
       +'\nmyinfoConfig['+i+'][5]='+myinfoConfig[i][5]
       ); 
*/
// istanziazione oggetto InfoLink
   InfoLinks[i1] = new InfoLink(myinfoConfig[i][0],myinfoConfig[i][2],myinfoConfig[i][3],myinfoConfig[i][4]);            
   j = i+1;
   j1 = 0;
//  
// ciclo sulle voci del menu di livello 2
// ad ogni passo dell'iterazione rende corrente una riga di dichiarazione di una voce di 2° livello
// e ne istanzia l'oggetto corrispondente
//
      while ( j < myinfoConfig.length  && myinfoConfig[j][1] != '  ')
      {
/*      	
      alert ('sono nel SECONDO while');                                      
      alert ('myinfoConfig[j][1] di secondo livello='+ myinfoConfig[j][1]);  
*/
      InfoLinks[i1].InfoLinks2[j1] = new InfoLink2(myinfoConfig[j][1],myinfoConfig[j][2],myinfoConfig[j][3],myinfoConfig[j][4]); 

       j1++;
       j++;
     
      } // chiusura while annidato 
/*
alert("i1="+i1
     +"\nInfoLinks[i1].serInfoLinks.length="+InfoLinks[i1].serInfoLinks.length
     );
*/

   i1++;
   i = j;  
       
  }// chiusura while esterno
/*
alert("i1=2" 
     +"\nInfoLinks[2].serInfoLinks.length="+InfoLinks[2].serInfoLinks.length     
     );     
alert("fine ESECUZIONE load_info\nISTANZE CREATE");
*/
 
 } // chiusura function  
//      
//                             :::::::::::::::::::::::::
//
//
//
//N.B. il test su document.getElementById restituisce true se il browser supporta il DOM 
//
 function mv2_menu_draw(mv2_pos)
 {
//   alert('sono in mv2_menu_draw');

  mv2_aff =  
  '<TABLE class="stymenu" CELLPADDING=0 CELLSPACING=0 WIDTH=100%>\n';
  mv2_aff += 
  ' <TR>\n'; 
   mv2_aff += 
  '  <TD>\n'; 
  mv2_aff += 
  '   <Table BORDER=0 CELLPADDING=3 CELLSPACING=1 WIDTH=100%>\n'; 
//  
// ciclo sulle voci di menu
//   
   for (a=0; a<InfoLinks.length; a++) 
  {
   if(mv2_pos == a || !document.getElementById)
      theClass = "stycellvoc2";   // sfondo voci di secondo livello 
   else
      theClass = "stycellvoc1";   // sfondo voci di primo livello
   
   mv2_aff += 
  '    <Tr><Td class="'+theClass+'">'+ InfoLinks[a].show(a)+'</Td>\n'
 +'    </Tr>\n';  

// il test sulla variabile mv2_pos è soddisfatto quando   
   if(mv2_pos == a || !document.getElementById)
      mv2_aff +=
  '    <Tr><Td class="'+theClass+'" >'+InfoLinks[a].show2()+'</Td>\n'+
  '    </Tr>\n';  
  } // fine ciclo for
// 
  mv2_aff += 
  '   </Table>\n';
  mv2_aff += 
   ' </TD>\n';
  mv2_aff +=  
  ' </TR>\n'; 
    mv2_aff +=  
  '</TABLE>\n';    
//
  if(mv2_pos != -1 && document.getElementById)
    { 
// 	alert(mv2_aff);  
    	parent.frm_info.document.getElementById("mv2").innerHTML = mv2_aff;
    }
  else
    {
     parent.frm_info.document.write(mv2_aff);
    } 

 } //chiusura  function
//                             :::::::::::::::::::::::::  
//
// genera la pagina HTML  contenente il menu delle informazioni
// nella versione della lingua corrente
// 
 function crea_info(p_ute,p_uni,p_pro,p_lan)
 {  
/* 
   alert('sono in crea_info :'
        +'\np_ute='+p_ute
        +'\np_uni='+p_uni
        +'\np_pro='+p_pro
        +'\np_lan='+p_lan
         );
*/
  selser_obj(p_ute,p_uni,p_pro,p_lan);
  load_info (p_uni);
 
  with (parent.frm_info.document)
  {
   open();
   apg =  '<HTML>\n';
   apg += '<HEAD>\n';
   apg += $BASESTM+'\n'; 	 
   apg += '<link rel="stylesheet" href="'+$CSSDIR+'styinfomnu.css" type="text/css"\n';   
   apg += '</HEAD>'; 
   apg += '<BODY>\n';       
   write (apg);    

// barretta blu
   apg =  '<TABLE width="100%" cellpadding="0" cellspacing="0" border="0" >\n';
   apg += ' <TR>\n';
   apg += '  <TD class="stycellpath" align="left"  valign="bottom" >&nbsp;</TD>\n';
   apg += ' </TR>\n';
   apg += '</TABLE>\n';
   apg += '<!--------->\n';
   write (apg); 

// titolo del menu INFORMAZIONI 
   apg =  '<TABLE class="stytit">\n';
   apg += ' <TR>\n';
   apg += '  <TD class="stycelltit" WIDTH="7%" >';
   apg += '   <img SRC="'+$IMGDIR+'info.gif" width="19" height="17" border="0" align="right">';
   apg += '  </TD>\n';
   apg += '  <TD  class="stycelltit" width="93%" nowrap>';
   apg += '   &nbsp;'+pickLan('INFORMAZIONI&INFORMATION',parent.p_lan);
   apg += '  </TD>\n';
   apg += ' </TR>\n'; 
   apg += '</TABLE>\n';    
   write (apg);
// predisposizione voci del menu
   writeln(' <DIV ID="mv2">'); 
     
   mv2_menu_draw(-1);
    
   writeln(' </DIV>');
//
// link in evidenza
//
   apg =  '<br><br><br>\n';

// 
   write (apg);

//         
   writeln('</BODY>');   
   writeln('</HTML>'); 	  
   close();
  }  // fine with
 
 }  // chiusura function
//                             ::::::::::::::::::::::::: 
//
// visualizza l'elenco degli Atenei aderenti ai progetti contemplati nel portale
// 
 function crea_infoAtAde (p_pro,p_lan)
 {
  var myAtenei = new Array();      // array sigle degli Atenei aderenti al progetto corrente
  var mysysConfig  = new Array();  //
// 
// ciclo sull'Array sysConfig dei progetti     
//  
  for(var i=0; i< sysConfig.length; i++)
   {
    if (sysConfig[i].substr(0,3) == p_pro)
       {
        mysysConfig = sysConfig[i].split("#");          
        myAtenei = mysysConfig[3].split(";");
        break;
       }
   }
//
   if (p_pro.toLowerCase() == 'all')
       frase = pickLan('I seguenti Atenei partecipano ai progetti contemplati nel portale&The following Universities take part into the portale projects',p_lan);	
   else
       frase = pickLan('I seguenti Atenei partecipano al progetto &The following Universities take part into the project ',p_lan)+ mysysConfig[2]; 	
   frase += ' :';
//
  with(parent.frm_cen.document)
  {
   open();
   var apg = ''; 
   apg =  '<HTML>\n';
   apg += '<HEAD>\n';
   apg += $BASESTM+'\n';
   apg += '<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">\n'; 	 
   apg += '<link rel="stylesheet" href="'+$CSSDIR+'styinfopag.css" type="text/css"\n';   
   apg += '</HEAD>\n'; 
   apg += '<BODY >\n'; 
   apg += '<a name="topPag"></a>\n';         
   write (apg);    
   writeln(prepPath(info_title));
   writeln(visTit(myinfoConfig[1][2]) ); 
   writeln('<P><font class="styfra" >'+frase+'</font></P>');
 //
   writeln(
   '<TABLE width="90%" BORDER="0" cellpadding="3" cellspacing="8"  align="center">');               
//
// ciclo sull'Array delle sigle degli Atenei
//                
   for (var k=0; k<myAtenei.length-1; k++)
     {
       apg =
   ' <TR>\n';    
       apg +=
   '  <TD><A href="'+wwwuniConfig[myAtenei[k]]+'" TARGET="_new" >\n';
       apg +=
   '   <img src="'+$IMGDIR+'u'+ myAtenei[k].toLowerCase() + '.gif" border="0" align="absbottom" height="51" width="51" alt="'+pickLan('vai al sito web dell\'Ateneo&go the University web site',parent.p_lan)+'">'
      + '&nbsp;'+pickLan(unieConfig[myAtenei[k]],p_lan)+'</A>\n';
       apg +=             
   '  </TD>\n';  
       apg +=   
   ' </TR>\n';
       write(apg);	          
     }  // chiusura ciclo sull'array myAtenei

     apg=
   ' <TR>\n';
     apg +=
   '  <TD align="center"><a href="#topPag" title="Torna a inizio pagina"><img src="'+$IMGDIR+'arrUp.jpg" style="text-indent: 0cm" align="baseline" width="17" height="15" border="0" alt="Torna a inizio pagina"></a></TD>\n';
     apg +=
   ' </TR>\n';
     apg +=
   '</TABLE>\n';
     write(apg);	  
 
//     writeln (visRowCilea() );
 
     writeln('</BODY>');   
     writeln('</HTML>'); 
     close();    	
  } // chiusura with

 }  // chiusura function
//                             ::::::::::::::::::::::::: 
//
//
//
 function openWinSpot()
 {  
  var winname = 'winspot';
  var h = 225 ; // altezza della window  
  var w = 428;  // larghezza della window
  var features = 'toolbar=no,status=no,width='+w+',height='+h+',top='+(screen.height-h)/2+',left='+(screen.width-w)/2+',resizable=no,scrollbars=no';
 
  winspot = window.open('',winname,features); //apertura di una nuova finestra;                                               
  winspot.location = $INFDIR+parent.p_lan+'/winspot.html';
 }
//                             ::::::::::::::::::::::::: 
