﻿// Funzione per leggere il contenuto presente all'interno di un nodo XML,
// ad esempio su <guida>ajax</guida> restituisce solo ajax
	function leggiContenuto(item, nomeNodo) {
		var lvStrOut = item.getElementsByTagName(nomeNodo).item(0).firstChild.nodeValue;

		// Test se l'elemento è un a capo prendo l'elemento successivo
		if (lvStrOut.substring(0, 1) == '\n')
		{
		    lvStrOut = item.getElementsByTagName(nomeNodo).item(0).Child[1].nodeValue;
		}
		return lvStrOut;
	}

// ---------------------------------------------------------------------
// ----------------- XML TOP MENU --------------------------------------
// ---------------------------------------------------------------------
  function FnParsaXmlTopMenu(xml,pIdTab) {
  
   var lvStrOut = "";
   var lvStrOutEnd = "";
   
   // Elemento tabella
   var lvNodoTable = xml.getElementsByTagName("xml_table")[0];
   lvStrOut = '<table id=' + leggiContenuto(lvNodoTable,"xml_id") +
              ' class=' + leggiContenuto(lvNodoTable,"xml_class") +
              '><tr height=' + leggiContenuto(lvNodoTable,"xml_tr1_height") +
              '><td rowspan="2"><IMG alt="Zaro Macchine" src=' + leggiContenuto(lvNodoTable,"xml_image") +
              ' align=left></td><td colspan="7" id=td_1_2></td></tr><tr>';
   
   // Classi selezione
   var lvClassSel2 = leggiContenuto(xml,"xml_td_2_class_selected");
   var lvClassSel3 = leggiContenuto(xml,"xml_td_3_class_selected");
   
   // Otteniamo la lista delle colonne nel menu (<xml_column_2>, <xml_column_3>, ...)
   var lvNodoCol = xml.getElementsByTagName("xml_columns")[0];
   for (var i=0; i < lvNodoCol.childNodes.length;  i++)
   {
      var lvCol = xml.getElementsByTagName(lvNodoCol.childNodes[i].nodeName)[0];
      
      if ((lvCol) && (lvCol.nodeType == 1)) // Qs if serve per Firefox
      {
          // Fissata la colonna recupero i valori dai nodi figli
          lvId = leggiContenuto(lvCol,"xml_id");
          lvDesc = leggiContenuto(lvCol,"xml_desc");
          lvFormat = leggiContenuto(lvCol,"xml_format");
          lvIdLink = leggiContenuto(lvCol,"xml_id_link");
          lvLink = leggiContenuto(lvCol,"xml_link");
          
          if (lvId.substring(5) == pIdTab)
          {
            lvStrOut = lvStrOut +
                     '<td id='+lvId+' '+lvFormat+' class='+lvClassSel2+'>'+lvDesc+'</td>';
            lvStrOutEnd = lvStrOutEnd +
                     '<td id=td_3_'+pIdTab+' class='+lvClassSel3+'>&nbsp;</td>';
          }
          else
          {
            lvStrOut = lvStrOut +
                     '<td id='+lvId+' '+lvFormat+'><A id='+lvIdLink+' '+lvLink+'>'+lvDesc+'</A></td>';
            lvStrOutEnd = lvStrOutEnd +
                     '<td id=td_3_'+lvId.substring(5)+'></td>';
          }
      }
   }
   lvStrOut = lvStrOut + '</tr><tr><td id=td_3_1></td>' +lvStrOutEnd+ '</tr></table>';
   return lvStrOut;
  }

// ---------------------------------------------------------------------
// ----------------- XML LINDA -----------------------------------------
// ----------------- XML COMPLET2 --------------------------------------
// ----------------- XML FUTURA ----------------------------------------
// ----------------- XML SHARP -----------------------------------------
// -- pDiv: left -------------------------------------------------------
// ---------------------------------------------------------------------
  function FnParsaXml_1(xml,pIdDiv) {
   var lvStrOut = "";
   // Tab Selezionato
   var lvIdTabSelected = document.getElementById("HidIdTabSelected").value;
   
   // Elemento Retrofitting
   var lvNodoRetro = xml.getElementsByTagName("xml_body")[0];

   // Elemento Pagina
   var lvNodoPagina = lvNodoRetro.getElementsByTagName(lvIdTabSelected)[0];
      
   // Recupero il valore per il div
   lvStrOut = leggiContenuto(lvNodoPagina,pIdDiv);
          
   return lvStrOut;
  }
  
// ---------------------------------------------------------------------
// ----------------- XML RETROFITTING ----------------------------------
// -- pDiv: left,right -------------------------------------------------
// ---------------------------------------------------------------------
  function FnParsaXmlRetrofitting(xml,pIdDiv) {
   var lvStrOut = "";
   // Tab Selezionato
   var lvIdTabSelected = document.getElementById("HidIdTabSelected").value;
   
   // Elemento Retrofitting
   var lvNodoRetro = xml.getElementsByTagName("xml_retrofitting")[0];

   // Elemento Pagina
   var lvNodoPagina = lvNodoRetro.getElementsByTagName(lvIdTabSelected)[0];
      
   // Recupero il valore per il div
   lvStrOut = leggiContenuto(lvNodoPagina,"xml_"+pIdDiv);
          
   return lvStrOut;
  }
  
// ---------------------------------------------------------------------
// --- Funzione per la scelta del correto parsing ----------------------
// ---------------------------------------------------------------------
  function FnParsaXml(xml,pIdPagina,pIdWork) {
    var lvStrOut = "";
    
    switch(pIdPagina) { 
    // Top Menu
    case '0': 
      // visualizzazione risultato parsing
      lvStrOut = FnParsaXmlTopMenu(xml,pIdWork);
    break;
    // Linda
    case '4_1': 
      lvStrOut = FnParsaXml_1(xml,pIdWork);
    break; 
    // Complet2
    case '4_2': 
      lvStrOut = FnParsaXml_1(xml,pIdWork);
    break; 
    // Futura
    case '4_3': 
      lvStrOut = FnParsaXml_1(xml,pIdWork);
    break;
    // Sharp
    case '4_4': 
      lvStrOut = FnParsaXml_1(xml,pIdWork);
    break;
    // Retrofitting
    case '5': 
      lvStrOut = FnParsaXmlRetrofitting(xml,pIdWork);
    break; //si ferma qui 
    default: 
      //Nessuna istruzione
    }
    return lvStrOut;
  }