// JavaScript Document
<!-- ...

var textHttp = ""   ;
var requestAf = ""  ;
var requestCm = ""  ;
var Buf = ""        ;
var requestTp = 0   ;
// 0 = Init Dati
// 1 = Azzera oggetto info e carica dati calendario + schede
// 5 = carica e inscerisce dati in oggetto
// 10 = carica dati e forma tabella classifica se necessario
// 11 = carica dati e forma tabella classifica sempre
// 15 = carica dati in Arrey mem e inserisce mem[0] in oggetto
// 40 = carica dati in Arrey info NON visualizza altri dati
// 50 = carica dati in Arrey
// 55 = Abilita Scheda
var frame_xy = null ;
var Fr_info = false ;   // Oggetto Info Vuoto
var Fr_cat = false  ;   // Calendario vuoto
var Fr_cla = false  ;   // Classifica vuoto
var FC_ok  = 0      ;   // Compilazione dati x tabella podisti
var Fr_se = 0       ;   // Lettura File Terminata
var mva = 0         ;   // Posizione lettura mem

var opt = new Array()   ;
var nt  =  0            ;
var ns  =  0            ;
var np  =  0            ;
var pd  =  0            ;
var lm  = ""            ;
var Rn  =  0            ;
var wr  =  0            ;
var strTabe = new Array(); // variabili per formazione Tabelle PreDatate
var strTop = new Array();  // variabili per formazione classifica
var anno = ""           ;
var mese = ""           ;
var giorno = ""         ;
var luogo = ""          ;
var corsa = ""          ;
var inout = ""          ;
var nupo = ""           ;
var ct = ""             ;  // classifica LATIGRE
var ck = ""             ;  // classifica x Km
var ca = ""             ;  // classifica alfabeto
var cls = 0             ;  // modo operandi
var podista = new Array() ;
var pod = new Array()     ;
var FC_mese = new Array()       ;  // mese
var FC_giorno = new Array()     ;  // giorno
var FC_luogo = new Array()      ;  // luogo
var FC_corsa = new Array()      ;  // corsa
var FC_nc = new Array()         ;  // Corse NON in calendario
var FC_nupo = new Array()       ;  // numero presenze podisti

var StrTable = ""       ;  // variabili per scheda personale
var StrMese  = ""       ;  // variabili per tabella personale
var Stampa = ""         ;  // variabili per Formattazione Stampa

var info = ""           ;
var cst = ""            ;  // Info classifica
var cat = ""            ;  // Catalogo
var fdi = ""            ;  // Foto Dia Image
var scm = ""            ;  // Menù per schede
var sce = new Array()   ;  // Schede
var mem = new Array()   ;
var dia = new Array()   ;
var stf = new Array()   ;
var foto = new Array()  ;
var cmd = new Array()   ;

var browName = navigator.appName;  // Identificativo Broswer

function startSheet(FileName,Modo)
{
var getfile = true   ;
    if ((Modo > 11) && (Fr_info == false))
          {
          if (Modo < 50)
            {
            document.getElementById("info").innerHTML = info ;
            Fr_info = true   ;
            }
          }
    switch (Modo)
      {
      case  1  :   // Calendario
          document.getElementById("info").innerHTML = "" ;
          Fr_info = false   ;
          if (Fr_cat == true)
            {
            document.getElementById("centro").innerHTML = cat ;
            getfile = false   ;
            }
      break    ;
      case  2  :   // Storico
          document.getElementById("info").innerHTML = "" ;
          Fr_info = false   ;
          Fr_cla  = false   ;
      break    ;

      case  10  :
          if (Fr_cla == true)
            {
            getfile = false   ;
            FormTable(0)      ;
            if (cst.length > 0) document.getElementById("info").innerHTML = cst ;
            }
          ct = ck = ""     ;
          Fr_info = false  ;
          Fr_cla  = true   ;
      break    ;
      case  11  :
          ct = ck = ""     ;
          Fr_info = false  ;
      break    ;
      default  :

      break    ;
      }
    if (getfile == true)
      {
      requestTp = Modo       ;
      requestAf = FileName   ;
      startRequest()         ;
      }
}
function startCmd(FileName,Modo,Cmd)
{
      requestTp = Modo       ;
      requestAf = FileName   ;
      requestCm = Cmd        ;
      startRequest()         ;
}
function createXMLHttpRequest()
{
    if (window.ActiveXObject)
        {
        textHttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
    else if (window.XMLHttpRequest)
        {
        textHttp = new XMLHttpRequest();
        }
}

function startRequest()
{
    createXMLHttpRequest();
    textHttp.onreadystatechange = handleStateChange;
    textHttp.open("GET", requestAf, true);
    textHttp.send(null);
}

function handleStateChange()
{
    se = 0 ;
    if(textHttp.readyState == 4)
        {
        if(textHttp.status == 200)
            {
            se = FormBuf()  ;
            }
        }
}

function FormBuf()
{
 var str = "" ;
 var nst = "" ;
 var Elm = "" ;
 var chx = "" ;
 var Cn = 10  ;
 var Tfk = 0  ;
 var x = 0    ;
 var slen = 0 ;
 var Ext = 0  ;
 
  Fr_cat = false   ;
  wr  =  0  ;
  nt  =  0  ;
  ns  =  0  ;
  np  =  0  ;
  FC_ok  = 0;
  Buf = textHttp.responseText;
  slen = Buf.length ;
  if (slen == 0)
    {
    return (0)  ;
    }

  while (Ext == 0)
    {
    if (x > slen) return(0) ;
    nst = Buf.charAt(x) ;
    switch (nst)
      {
      case  "{"  :
        Cn = 0   ;
        Elm = "" ;
        x += 1   ;
      break   ;
      case  "}"  :
        Cn  =  1  ;
        nt  =  0  ;
        ns  =  0  ;
        np  =  0  ;
      break   ;
      case  "["  :
        Cn = 2   ;
        str = "" ;
        x += 1   ;
      break   ;
      case  "]"  :
        Cn = 3   ;
      break   ;
      }
    chx = Buf.charAt(x) ;
    switch (Cn)
      {
      case  0 :
        Elm = Elm + chx  ;
      break   ;
      case  1 :
          if (Elm.charAt(0) == "*")
              {
              x = ReadData(x) ;
              if (wr ==1 )WriteTable('*') ;
              if (requestTp == 55) WriteScheda(requestCm) ;
              return(9)       ;
              }
          if (Elm == "END")
              {
              if (requestTp == 2)  FormStorico(0) ;
              if (requestTp == 10) FormTable(0) ;
              if (requestTp == 11) FormTable(0) ;
              if (requestTp >= 15)
                {
                if (requestTp < 25)document.getElementById('centro').innerHTML = mem[requestTp-15] ;
                }
              return(5) ;
              }
      break   ;
      case  2 :
        str = str + chx  ;
      break   ;
      case  3 :

          switch (Elm)
              {
              case  "top" :
                strTop[np] = str ;
                np += 1 ;
              break   ;
              case  "mese" :
                mese = str ;
              break   ;
              case  "giorno" :
                giorno = str ;
              break   ;
              case  "luogo" :
                luogo = str ;
              break   ;
              case  "corsa" :
                corsa = str ;
              break   ;
              case  "inout" :
                inout = str ;
              break   ;
              case  "anno"  :
                anno = str ;
              break   ;
              case  "ct"  :
                ct = str  ;
              break   ;
              case  "ck"  :
                ck = str  ;
              break   ;
              case  "ca"  :
                ca = str  ;
              break   ;
              case  "podista" :
                podista[np] = str ;
                pod[np] = str ;
                np += 1       ;
                pd = np       ;
              break   ;
              case  "nupo"  :
                nupo = str ;
              break   ;
              case  "info" :
                info = str     ;
                if ((requestTp == 0 ) || (requestTp == 40 ))
                    {
                    Fr_info = true ;
                    document.getElementById(Elm).innerHTML = str ;
                    }
                else
                    {
                    Fr_info = false;
                    }
              break   ;
              case  "cli" :
                    wr = 1   ;
                    Fr_info = false ;
                    cst = str   ;
                    document.getElementById("info").innerHTML = str ;
              break   ;
              case  "calendario" :
                  cat = str ;
                  Fr_cat = true   ;
                  if (requestTp < 55)document.getElementById('centro').innerHTML = str ;
              break   ;
              case  "scheda" :
                  sce[ns] = str ;
                  ns += 1          ;
              break   ;
              case  "dia" :
                  dia[ns] = str ;
                  ns += 1        ;
              break   ;
              case  "foto" :
                  foto[nt] = str ;
                  nt += 1        ;
              break   ;
              case  "cmd" :
                  cmd[np] = str ;
                  np += 1       ;
              break   ;
              case  "mem" :
                  mem[np] = str ;
                  np += 1       ;
              break   ;
              default   :
                  if (requestTp < 40 )document.getElementById(Elm).innerHTML = str ;
              break   ;
              }
          Cn = 10  ;
      break   ;

      case  10 :

      break   ;
      }
    x += 1   ;
    }
  return(1) ;
}

function FormArray(Stringa)
{
 var str = "" ;
 var chx = "" ;
 var x   = 0  ;
 var slen = 0 ;
	for(x = 0; x < 10; x++) opt[x] = ""  ;
  nt = 0 ;
  slen = Stringa.length ;
  if (slen == 0) return (0) ;
	for(x = 0; x < slen; x++)
    {
    chx = Stringa.charAt(x) ;
    switch (chx)
      {
      case  ";" :
        nt += 1       ;
        opt[nt] = ""  ;
      break   ;
      case  "/" :
        if (Stringa.charAt(x+1) == ";")
          {
          opt[nt] = opt[nt] + ";"  ;
          x += 1 ;
          }
        else opt[nt] = opt[nt] + "/"  ;
      break   ;
      default :
      opt[nt] = opt[nt] + chx  ;
      break   ;
      }
    }
    opt[nt+1] = "" ;
    return(nt)
}

function FormTable(type)
{
  var x = 0  ;
  var ts = 0 ;
  var cp = ""  ;

  if (type == 0) cp = ct ;
  if (type == 1) cp = ck ;
  if (type == 2) cp = ca ;


  if (cp.length == 0)
    {
    type = 0 ;
    }
  else
    {
    ts = FormArray(cp)  ;
  	for(x = 0; x < pd; x++)
	    {
	    pod[x] = podista[eval(opt[x])]  ;
      }
    }
  cls = type ;
  StrTable = '<table align="center"><tr><td>' + strTop[0] + '<table border = "1" cellspacing="0" cellpadding="0"><tr bgcolor="#feba1e" style="text-align:center;"><td width="30">Pos.</td><td width="140">Podista</td><td width="35">Gare</td><td width="40">Km</td><td width="30">GNC</td></tr>' ;
	for(x = 0; x < pd; x++)
	    {
	    FormArray(pod[x])    ;
		  StrTable = StrTable + '<tr><td style="text-align:right;padding-right:8px;">' + (x+1) + '</td>'  +
		  '<td style="text-align:left;padding-left:5px;"><a href="javascript:FormCorse(' + x + ');">' + opt[0] + '</a></td>'  +
		  '<td style="text-align:right;padding-right:8px;">' + opt[1] + '</td>'  +
		  '<td style="text-align:right;padding-right:8px;">' + opt[2] + '</td>'  ;
		  if (eval(opt[3]) > 0 )
		    {
		    if (eval(opt[3]) > 10 ) StrTable = StrTable + '<td bgcolor="#FF8070" style="text-align:right;padding-right:8px;">' + opt[3] + '</td></tr>'  ;
        else StrTable = StrTable + '<td bgcolor="#FFFF99" style="text-align:right;padding-right:8px;">' + opt[3] + '</td></tr>'  ;
        }
      else
		    {
		    StrTable = StrTable + '<td style="text-align:right;padding-right:8px;"> .. </td></tr>'  ;
        }
      }
	StrTable = StrTable + "</table><br></div>" ;
	StrTable = StrTable + '<div class="sotto_pg"></div></td></tr></table>';
	document.getElementById("centro").innerHTML = StrTable ;
}

function FormCorse(scp)
{
  var TP_str  = ""            ; // dati inizio
  var TB_mese = new Array()   ;
  var TB_usc = new Array()    ;
  var TP_usc = new Array()    ;
  var TB_km = new Array()     ;
  var TP_km = new Array()     ;
  var x   = 0 ;
  var Mx  = 0 ;
  var gnd = 0 ;
  var TR_col = "#FFFFFF"  ;

 	for(x = 0; x < 12; x++)
	    {
	    leggiMese(x+1)   ;
	    TB_mese[x] = lm  ;
	    TB_usc[x] = 0 ;
	    TP_usc = 0 ;
	    TB_km[x] = 0 ;
	    TP_km = 0 ;
	    }

  var me = 0 ;
  var tab_ini = "" ;
  var tab_end = "" ;
  var FC_pod = new Array()     ;  // Podista
  var FC = FormArray(pod[scp]) ;

	for(x = 0; x < FC; x++)
	    {
	    FC_pod[x] = opt[x] ;
	    }
  TP_str = '<table align="center"><tr><td><div class="top_pg"><table><tr><td width="150">Scheda Personale</td><td width="240"><a href="javascript:TabMesi(1);">Riepilogo</a></td>' +
  '<td><a href="javascript:FormTable('+ cls +');"><img src="home/0blt1.jpg" align="middle" height="10" width="10" hspace ="5"><font color="#CC0000">Re-Classifica</font></a></td></tr></table></div>' +
  '<div class="mezzo_pg"><div align="right"><img src="home/stampa_s.gif" align="middle" height="12" width="20" hspace = "5"><a href="javascript:printFrame();"><u>Versione per la stampa</u></a></div><hr align="center" size="1" width="100%" color="#FF3300">' ;
  StrTable = '<p class="blu">Scheda Personale Corse di <font color="#FF9900">' + opt[0] + '</font></p><br>' ;

  FC = FormDati() ;


  tab_ini = '<table border = "1" cellspacing="0" cellpadding="0"><tr bgcolor="#feba1e"><td width="30">Pos.</td><td width="30">Giorno</td><td width="150" style="text-align:center;">Luogo</td><td width="220" style="text-align:center;">Corsa</td><td width="30">Km</td></tr>' ;
	for(x = 0; x < FC; x++)
	    {

      if (FC_pod[x+4].length > 0)
        {
        if (me != FC_mese[x])
          {
          StrTable = StrTable + tab_end ;
          me = eval(FC_mese[x]) ;
          if (me > 0)
            {
            Mx = me  ;
            leggiMese(me)   ;
            StrTable = StrTable + lm + "<br>" + tab_ini ;
            tab_end = '</table>' ;
            }
          }  
        TR_col = "#FFFFFF"  ;
        if (eval(FC_nc[x]) == 1 )
          {
          gnd += 1 ;
          if (gnd > 10) TR_col = "#FEC8C5"  ;
          else TR_col = "#FFFF99"  ;
          }
        if (eval(FC_nc[x]) == 2 )TR_col = "#CBFFFF"  ;
        if (eval(FC_nc[x]) == 3 )
          {
          gnd += 1 ;
          if (gnd > 10) TR_col = "#FCE6C8"  ;
          else TR_col = "#FFCC00"  ;
          }
        if (eval(FC_pod[x+4]) == 0 ) TR_col = "#FFFACD"  ;
		    StrTable = StrTable + '<tr bgcolor=' + TR_col + '><td style="text-align:center;">' + (x+1) + '</td>'  ;
		    StrTable = StrTable + '<td style="text-align:center;">' + FC_giorno[x] + '</td>' ;
		    StrTable = StrTable + '<td style="padding-left:5px;">' + FC_luogo[x] + '</td>'  ;
		    StrTable = StrTable + '<td style="padding-left:5px;">' + FC_corsa[x] + '</td>'  ;
		    StrTable = StrTable + '<td style="text-align:center;">' + FC_pod[x+4] + '</td></tr>'  ;
        if (eval(FC_pod[x+4]) > 0 ) TB_usc[me - 1] += 1 ;
        TB_km[me - 1] = TB_km[me - 1] + eval(FC_pod[x+4]) ;
        }
      }
  Stampa = StrTable + '</table>';
	StrTable = StrTable + '</table><frame frameborder="yes" scrolling="auto" noresize="resize" id="stp" name="forPrint"></div>' ;
	StrTable = StrTable + '<div class="sotto_pg"></div></td></tr></table>';
	StrTable = TP_str + StrTable ;
	document.getElementById("centro").innerHTML = StrTable ;
//  Formazione tabella mensile
  for(x = 0; x < 12; x++)
	    {
	    TP_usc = TP_usc + TB_usc[x]  ;
      TP_km  = TP_km + TB_km[x]    ;
	    }
  StrMese = '<div class="top_pg" style = "BACKGROUND-IMAGE:url(home/sopra_tab_c.jpg);"><table><tr><td width="150"><a href="javascript:TabMesi(0);">Scheda Personale</a></td><td width="240">Riepilogo</td>' +
  '<td><a href="javascript:startSheet(' + "'dati/latigre.txt'" + ',10);"><img src="home/0blt1.jpg" align="middle" height="10" width="10" hspace ="5"><font color="#CC0000">Re-Classifica</font></a></td></tr></table></div>' ;
  StrMese = StrMese + '<div class="mezzo_pg">' ;
  StrMese = StrMese + '<p class="blu">Tabella Personale Corse di <font color="#FF9900">' + FC_pod[0] + '</font></p><br>' ;
  StrMese = StrMese + '<div class="box" style="float:right;margin-right:5px;width: 150px;">'   ;
  StrMese = StrMese + '<div style="background-image: url(home/ago_b.gif);padding-left: 35px;padding-top: 3px;height:20px;">Totale Anno</div>' ;
  StrMese = StrMese + '<br>Uscite .................... <font color="#0000FF">' +  TP_usc  + '</font><br>NON a calendario ...<font color="#0000FF">' + FC_pod[3] +'</font><br><br>Percorsi Km .......... <font color="#0000FF">' + TP_km +'</font><br><br>';
  StrMese = StrMese + 'Si rammenta al podista che può partecipare a gare diverse da quelle in calendario per un massimo di 10 corse. Superato questo limite NON vengono più conteggiate ai fini della classifica.<br><br></div>' ;
  StrMese = StrMese + '<table border = "1" cellspacing="0" cellpadding="0" style="text-align:center;"><tr bgcolor="#feba1e"><td width="90">Mese</td><td width="50">Usc.</td><td width="50">Usc. Pr.</td><td width="50">Km</td><td width="50">Km Pr.</td></tr>' ;
  TP_usc = 0 ;
  TP_km  = 0 ;
  for(x = 0; x < 12; x++)
	    {
      TP_usc = TP_usc + TB_usc[x]  ;
		  TP_km = TP_km + TB_km[x]     ;
		  StrMese = StrMese + '<tr><td style="padding-right:10px;text-align:right;">' + TB_mese[x] + '</td>'  ;
		  if (x < Mx)
		    {
		    StrMese = StrMese + '<td style="text-align:center;">' + TB_usc[x] + '</td>'      ;
		    StrMese = StrMese + '<td bgcolor=#FFFFCC style="text-align:center;">' + TP_usc + '</td>'         ;
		    StrMese = StrMese + '<td style="text-align:center;">' + TB_km[x] + '</td>'       ;
		    StrMese = StrMese + '<td bgcolor=#FFFFCC style="text-align:center;">' + TP_km + '</td></tr>'     ;
        }
      else
		    {
		    StrMese = StrMese + '<td style="text-align:center;"> ... </td>'      ;
		    StrMese = StrMese + '<td bgcolor=#FFFFCC style="text-align:center;"> ... </td>'         ;
		    StrMese = StrMese + '<td style="text-align:center;"> ... </td>'       ;
		    StrMese = StrMese + '<td bgcolor=#FFFFCC style="text-align:center;"> ... </td></tr>'     ;
        }
      }

  StrMese = StrMese + '</table></div><div class="sotto_pg"></div>' ;
}
function Presenze(Mode)
{
var StrTable = '<div class="top_pg" style="padding-top:5px;">Presenze</div><div class="mezzo_pg">' +
    '<p class="blu">Tabella presenze effettive Tigrotti (Bozza)</p>' +
    'La cella Presenze contiene la somma dei tigrotti che hanno partecipato alle varie corse, comprese anche quelle NON a CALENDARIO, nel rispetto della regola che il gruppo si è dato.<br><br>' ;
var fine = '</div><div class="sotto_pg"></div>' ;
var tab_ini = '<table border = "1" cellspacing="0" cellpadding="0"><tr bgcolor="#feba1e"><td width="30">Pos.</td><td width="30">Giorno</td><td width="300" style="text-align:center;">Luogo</td><td width="50" style="text-align:center;">Presenze</td><td width="50">...</td></tr>' ;
var tab_end = "" ;
var x = 0  ;
var px = 1 ;
var me = 0 ;
var dy = "" ;
var rdy = 0 ;
var Fd = 0 ;

var Ftr = "" ;
var Flu = "" ;
var Fnu = 0  ;
var Fcn = false ;

  // compilazione tabella presenze
  Fd = FormDati()   ;
	for(x = 0; x < Fd; x++)
	    {
      if (me != eval(FC_mese[x]))
        {
          me = eval(FC_mese[x]) ;
          if (me > 0)
            {
            if (Fcn == true)
              {
		          StrTable = StrTable + '<tr><td style="text-align:center;">' + (px++) + '</td>' +
		          '<td style="text-align:center;">' + dy + '</td>' +
		          '<td style="padding-left:5px;">' + Flu + '</td>'  +
		          '<td style="padding-left:5px;">' + Fnu + '</td>'  +
		          '<td style="text-align:center;">' + '...' + '</td></tr></table>'  ;
              }
            else StrTable = StrTable + tab_end ;
            Fcn = false ;
            rme = me  ;
            leggiMese(me)   ;
            StrTable = StrTable + lm + "<br>" + tab_ini ;
            tab_end = '</table>' ;
            dy = FC_giorno[x] ;

            Ftr = "" ;
            Flu = "" ;
		        Fnu = 0  ;
            }
          }
        if (dy != FC_giorno[x])
          {
		      StrTable = StrTable + '<tr><td style="text-align:center;">' + (px++) + '</td>' +
		      '<td style="text-align:center;">' + dy + '</td>' +
		      '<td style="padding-left:5px;">' + Flu + '</td>'  +
		      '<td style="padding-left:5px;">' + Fnu + '</td>'  +
		      '<td style="text-align:center;">' + '...' + '</td></tr>'  ;
          Ftr = "" ;
          Flu = "" ;
		      Fnu = 0  ;
          dy = FC_giorno[x] ;
          Flu = Flu + Ftr + FC_luogo[x]  ;
          Ftr = " - "   ;
          Fnu = Fnu + eval(FC_nupo[x])   ;
          Fcn = true ;
          }
        else
          {
          Flu = Flu + Ftr + FC_luogo[x]  ;
          Ftr = " - "   ;
          Fnu = Fnu + eval(FC_nupo[x])   ;
          Fcn = true ;
          }
     }
     if (Fcn == true)
        {
		    StrTable = StrTable + '<tr><td style="text-align:center;">' + (px++) + '</td>' +
		    '<td style="text-align:center;">' + dy + '</td>' +
		    '<td style="padding-left:5px;">' + Flu + '</td>'  +
		    '<td style="padding-left:5px;">' + Fnu + '</td>'  +
		    '<td style="text-align:center;">' + '...' + '</td></tr></table>'  ;
        }

     StrTable = StrTable + tab_end + fine  ;
	   document.getElementById("centro").innerHTML = StrTable ;
}
function FormDati()
{
var FC = 0 ;

if (FC_ok > 0) return(FC_ok);

  FC = FormArray(mese) ;
	for(x = 0; x < FC; x++)
	    {
	    FC_mese[x] = opt[x] ;
	    }

  FC = FormArray(giorno) ;
	for(x = 0; x < FC; x++)
	    {
	    FC_giorno[x] = opt[x] ;
	    }

  FC = FormArray(luogo) ;
	for(x = 0; x < FC; x++)
	    {
	    FC_luogo[x] = opt[x] ;
	    }

  FC = FormArray(corsa) ;
	for(x = 0; x < FC; x++)
	    {
	    FC_corsa[x] = opt[x] ;
	    }

  FC = FormArray(nupo) ;
	for(x = 4; x < FC; x++)
	    {
	    FC_nupo[x-4] = opt[x] ;
	    }

  FC = FormArray(inout) ;
	for(x = 0; x < FC; x++)
	    {
	    FC_nc[x] = opt[x] ;
	    }
FC_ok = FC   ;
return(FC)   ;

}
function ReadData(x)
{
var nst = "" ;
var slen = 0 ;
var Ext = 0  ;
var Elm =""  ;

  Fr = -1 ;
  ns = 0 ;
  slen = Buf.length ;

  while (Ext == 0)
    {
    if (x < 0) return(0) ;
    nst = Buf.charAt(x)  ;
    if (nst == "{") Ext = 1 ;
    else x -= 1   ;
    }

  while (Ext == 1)
    {
    if (x > slen) return(0) ;
    nst = Buf.charAt(x)  ;
    switch (nst)
      {
      case  "{" :
        if (Fr > -1)
          {
          strTabe[Fr] = Elm  + "{END}" ;
          Elm = ""    ;
          }
        else  Elm = "{"   ;
        Fr += 1 ;
      break   ;
      case  "}" :
        if (FormArray(Elm) > 0 ) Elm =  "{" + opt[1] +  "}" ;
      break   ;
      default :
        Elm = Elm + nst ;
      break
      }
    x += 1   ;
    if (x > slen) Ext = 0  ;
    }
}
function ReadBuf(Ident)
{
  var nst = "" ;
  var slen = 0 ;
  var Elm =""  ;
  var str =""  ;
  var x = 0    ;
  var y = 0    ;

  if (Ident == "*")
    {
    Buf = strTabe[0]  ;
    return(true)  ;
    }
  else
  {
  for (x = 0 ; x < Fr ; x++)
    {
    str = strTabe[x]   ;
    nst = ""    ;
    y = 0       ;
    Elm = ""    ;
    while (nst != "}")
      {
      nst = str.charAt(y)  ;
      if((nst !="{") && (nst != "}")) Elm = Elm + nst    ;
      y += 1  ;
      }
    if (Elm == Ident)
      {
      Buf = strTabe[x]
      x = Fr ;
      return (true) ;
      }
    }
  }
  return (false) ;
}
function WriteTable(Ident)
{
var StrTable = '<table align="center"><tr><td><div class="top_pg" style="padding-top:5px;">le competitive</div><div class="mezzo_pg" style = "text-align:center;"><br>'   ;
var lw = new Array()  ;
var al = new Array()  ;
var nst = "" ;
var slen = 0 ;
var Elm =""  ;
var str =""  ;
var x = 0    ;
var y = 0    ;
var Fa = 0   ;
var TF = ReadBuf(Ident) ;

  if (TF == true)
  {
  slen = Buf.length ;
  for (x = 0 ; x < slen ; x++)
    {
    nst = Buf.charAt(x)  ;
    switch (nst)
      {
      case  "["  :
        Elm = "" ;
      break   ;
      case  "]"  :
        ns = FormArray(Elm)   ;
        switch (opt[0])
          {
          case  "DATA"  :
            StrTable = StrTable + '<font size="2">' + opt[1]  + '</font> - ';
          break   ;
          case  "LUOGO"  :
            StrTable = StrTable + '<font size="2">' + opt[1]  + '</font><br>';
          break   ;
          case  "CORSA"  :
            StrTable = StrTable + '<p class="spe">' + opt[1] + ' - Km '  ;
          break   ;
          case  "KM"  :
            StrTable = StrTable + opt[1] + '</p>'  ;
          break   ;
          case  "TITOLO"  :
            StrTable = StrTable + '<font size="2">' +opt[1] + '</font><br><br>'  ;
          break   ;
          case  "AL"  :
            for (y = 1; y < ns; y++)
              {
              al[y-1] = "center" ;
              if (opt[y].charAt(0) == "R") al[y-1] = "right"  ;
              if (opt[y].charAt(0) == "L") al[y-1] = "left"   ;
              }
            Fa = ns   ;
          break   ;
          case  "CMP"  :
            for (y = 1; y < ns; y++)
              {
              lw[y-1] = eval(opt[y])  ;
              }
            Fa = ns   ;
          break   ;
          case  "TOP"  :
            StrTable = StrTable + '<table border="1" bordercolor="#C0C0C0" cellspacing="0" cellpadding="1"><tr bgcolor="#FFCC66">' ;
            for (y = 1; y < Fa; y++)
              {
              StrTable = StrTable + '<td width="' + lw[y-1] +'">' + opt[y] + '</td>';
              }
            StrTable = StrTable + '</tr>' ;
          break   ;
          case  "TB"  :
          case  "TL"  :
            StrTable = StrTable + '<tr >' ;
            for (y = 1; y < Fa; y++)
              {
              StrTable = StrTable + '<td style="padding-left:3px;padding-right:3px;text-align:' + al[y-1] + ';">' + opt[y] + '</td>';
              }
            StrTable = StrTable + '</tr>' ;
          break   ;
          case  "TA"  :
            StrTable = StrTable + '</table><br>';
          break   ;
          case  "NT"  :
            StrTable = StrTable + opt[1];
          break   ;
          }
      break   ;
      default :
        Elm = Elm + nst ;
      break
      }
    }
  }
  else StrTable = StrTable + 'TABELLA NON IDENTIFICATA'   ;
  StrTable = StrTable + '<br><br></div><div class="sotto_pg"></div></td></tr></table>'  ;
	document.getElementById("centro").innerHTML = StrTable ;
}
function WriteScheda(Ident)
{
var StrTable = '<table align="center"><tr><td><div class="top_pg" style="padding-top:5px;">Scheda</div><div class="mezzo_pg" style = "text-align:center;"><br>'   ;
var tr = new Array()  ;
var nst = "" ;
var slen = 0 ;
var Elm =""  ;
var str =""  ;
var job = 0  ;
var x = 0    ;
var y = 0    ;
var Fa = 0   ;

  if (scm.length > 0) document.getElementById("info").innerHTML = scm ;
  else scMenu()   ;
var TF = ReadBuf(Ident) ;

  if (TF == true)
  {
  slen = Buf.length ;
  for (job = 0 ; job < slen ; job++)
    {
    nst = Buf.charAt(job)  ;
    switch (nst)
      {
      case  "["  :
        Elm = "" ;
      break   ;
      case  "]"  :
        ns = FormArray(Elm)   ;
        switch (opt[0])
          {
          case  "TXTS"  :
            StrTable = StrTable + '<font color="#0033CC" size="3">Serale</font><br>' ;
          case  "TXTG"  :
            StrTable = StrTable + '<font color="#FF0000" size="3">' ;
            for (x = 1; x < 5; x++) StrTable = StrTable + opt[x] + ' ';
            StrTable = StrTable + '</font><br><font color="#0033CC" size="5">' + opt[5] +
            '</font><br><font color="#FF0000" size="3">Km ' + opt[6] + '</font>' ;
          break   ;
          case  "TAB"  :
            if (opt[1] == "ND")StrTable = StrTable + '<table align="center"><tr><td><img src="volantini/dia/np.jpg" align="bottom" hspace="0" vspace="3"></td><td valign="top">' ;
            else StrTable = StrTable + '<table align="center"><tr><td><a href="javascript:cmFrame(' + "'volantini/" + opt[1] + ".pdf','LaTigre')" + ';">' +
            '<img src="volantini/dia/' + opt[1] + '.jpg" align="bottom" hspace="0" vspace="3" alt="Volantino"><br>' +
            "</a>Clicca sull'immagine<br /> per scarica il volantino formato pdf<br></td><td valign='top'>" ;
          break   ;
          case  "TP1"  :
          case  "TR1"  :
            for (x = 1; x < ns; x++) tr[x] = opt[x] ;
          break   ;
          case  "TP"  :
          case  "TR"  :
            StrTable = StrTable + '<table bordercolor="#EFEFEF" border="1" cellspacing="0" cellpadding="0" width="340" style="font-size:12px;text-align:right;padding-right:5px;">' ;
            for (x = 1; x < ns; x++) StrTable = StrTable + '<tr><td width="120">' + tr[x] + '</td><td style="text-align:left;">' + opt[x] + '</td></tr>'  ;
          break   ;
          case  "TA"  :
            StrTable = StrTable + '</table>'  ;
          break   ;
          case  "TXTR"  :
            StrTable = StrTable + '<p class="spe">' + opt[1] + '</p>' ;
          break   ;
          case  "TXTC"  :
            StrTable = StrTable + '<font color=blue size=2>' + opt[1] + '</font>' ;
          break   ;
          case  "TEND"  :
            StrTable = StrTable + '</td></tr></table><br>' ;
          break   ;
          case  "NT"  :
            StrTable = StrTable + '<p class="trx" style="text-align:left;">' + opt[1] + '</p>' ;
          break   ;
          case  "NG"  :
            StrTable = StrTable + '<p class="nota" style="text-align:left;padding-left:20px;"><b><u>' + opt[1] + '</u></b></p>' ;
          break   ;
          case  "NC"  :
            StrTable = StrTable + '<p class="nota" style="text-align:left;padding-left:20px;">' + opt[1] + '</p>' ;
          break   ;
          }
      break   ;
      default :
        Elm = Elm + nst ;
      break
      }
    }
  }
  else StrTable = StrTable + 'TABELLA NON IDENTIFICATA'   ;
  StrTable = StrTable + '<br><br></div><div class="sotto_pg"></div></td></tr></table>'  ;
  document.getElementById("centro").innerHTML = StrTable ;
}

function scMenu()
{
var nst = "" ;
var slen = 0 ;
var Elm =""  ;
var str =""  ;
var job = 0  ;
var pe = ""  ;
var TF = ReadBuf('scm') ;
scm = '<div style="height: 34px;"></div><div class="box_sopra" style="text-align:left;padding-left:15px;width: 185px;">Le Schede</div><div class="box_mezzo"><br>'   ;
  if (TF == true)
  {
  slen = Buf.length ;
  for (job = 0 ; job < slen ; job++)
    {
    nst = Buf.charAt(job)  ;
    switch (nst)
      {
      case  "["  :
        Elm = "" ;
      break   ;
      case  "]"  :
        ns = FormArray(Elm)   ;
        switch (opt[0])
          {
          case  "M"  :
            scm = scm + pe + '<p class="trx" style="text-align:left;">' + opt[1] + '</p><p class="nota">' ;
            pe = "</p>"  ;
          break   ;
          case  "S"  :
            scm = scm  + '<div class="mnl">' + opt[1] + '</div><a href="javascript:WriteScheda(' + "'" + opt[3] + "');" +
            '"><font color="#CC0000">- ' + opt[2] +'</font></a><br>' ;
          break   ;
          case  "G"  :
            scm = scm  + '<div class="mns">' + opt[1] + '</div><a href="javascript:WriteScheda(' + "'" + opt[3] + "');" +
            '"><font color="#CC0000">- ' + opt[2] +'</font></a><br>' ;
          break   ;
          }
      break   ;
      default :
        Elm = Elm + nst ;
      break
      }
    }
    scm = scm + pe + '<br></div><div class="box_sotto"></div><div class="box_sopra" style="text-align:left;padding-left:15px;width: 185px;">LATIGRE Ringrazia ...</div>' +
    '<div class="box_mezzo"><br>' +
    '<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" WIDTH="180" HEIGHT="250" id="sponsor" ALIGN="">' +
    '<PARAM NAME=movie VALUE="sponsor.swf"> <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#FFFFFF> <EMBED src="sponsor.swf" quality=high bgcolor=#FFFFFF  WIDTH="180" HEIGHT="250" NAME="sponsor" ALIGN=""' +
    'TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></EMBED></OBJECT></div><div class="box_sotto"></div>' ;
  }
  else scm = info ;
  document.getElementById("info").innerHTML = scm ;
}
function linkFrame(Ident,frm)
{
var slen = 0 ;
var Elm =""  ;
var str =""  ;
var x = 0    ;
var y = 0    ;
var StrTable = '<table><tr><td>'   ;
var TF = ReadBuf(Ident) ;

  slen = Buf.length ;
  for (x = 0 ; x < slen ; x++)
    {
    nst = Buf.charAt(x)  ;
    switch (nst)
      {
      case  "["  :
        Elm = "" ;
      break   ;
      case  "]"  :
      break ;
      default :
        Elm = Elm + nst  ;
      break ;
      }
    }
  ns = FormArray(Elm)   ;
  StrTable = StrTable + '<img src="' + opt[0] + '/' + Ident + '.jpg"></td><td><table><tr><td valign="top" style="font-size=11px;font-weight:bold;color:#FF9900;text-align:right;">Runner<br>Anno<br>Categoria<br>Partecipate</td><td align="left">'  ;
  for (x = 1 ; x < ns ; x++) StrTable = StrTable + opt[x] + '<br>' ;
  StrTable = StrTable + '</td></tr></table></td></tr></table>'  ;

  document.getElementById(frm).innerHTML = StrTable ;
}

function TabMesi(ri)
{
  if (ri == 0 ) document.getElementById("centro").innerHTML =  StrTable ;
  if (ri == 1 ) document.getElementById("centro").innerHTML =  StrMese  ;
}

function FormStorico(Fa)
{

  var FC = FormArray(anno) ;
  var x = 0  ;
  var y = 0  ;
  var nu = 0 ;
  var vn = 0 ;
  var pt = 4 ;
  var pk = 1 ;
  var pr = 2 ;
  var km = 0 ;
  var ct = 0 ;
  var Fn = 0 ;
  var C1 = "#000000"      ;
  var Pst = new Array()   ;

  StrTable =  strTop[0] ;

  if (Fa == 0 ) Fa = FC   ;
  Fn = Fa - 1 ;
  Fa = Fa * 3 ;
  StrTable = StrTable + '<div class="mezzo_pg" style = "float:right;BACKGROUND-IMAGE:url(home/mezzo_com.jpg);width: 700px;">'  +
  '<table><tr><td width="430"><p class="blu">Tabella Riepilogo Annuale</p>' +
  '<p class="mar">Riferimento Colonna Ordine Classifica: <b>' + opt[Fn] + '</b></p>Clicca sull&#39;anno di riferimento per modificare l&#39;ordine della classifica<br><br></td>' +
  '<td><div class="box" style="width: 130px;">' +
  '<div style="background-image: url(home/ago_b.gif);padding-left: 35px;padding-top: 3px;height:20px;">Podisti</div>' +
  '<p class="trx" style="text-align:left;">Anno 2006: 23</p>' +
  '<p class="trx" style="text-align:left;">Anno 2007: 43</p>' +
  '<p class="trx" style="text-align:left;">Anno 2008: 70</p>' +
  '<p class="trx" style="text-align:left;">Anno 2009: 98</p><br></div></td></tr></table>' +
  '<table border = "1" cellspacing="0" cellpadding="0" style="text-align:center;"><tr><td width="133">&nbsp;</td>' ;
  for(x = 0; x < FC; x++)
	    {
      if (x > 0)
	    	{
	      StrTable = StrTable + '<td width="2" bgcolor="#FFFFDD">&nbsp;</td>' ;
	      }
      if (Fn == x)
	    	{
	      StrTable = StrTable + '<td width="107" bgcolor="#FFFFCC"><a href="javascript:FormStorico(' + (x+1) +');">' + opt[x] + '</a></td>' ;
	      }
      else
	    	{
	      StrTable = StrTable + '<td width="107"><a href="javascript:FormStorico(' + (x+1) +');">' + opt[x] + '</a></td>' ;
	      }
	    }

  StrTable = StrTable + '</tr></table>' ;
  StrTable = StrTable + '<table border = "1" cellspacing="0" cellpadding="0" style="text-align:center;"><tr bgcolor="#feba1e">' ;
  StrTable = StrTable + '<td width="25">N.</td><td width="108">Podista</td>' ;
  for(x = 0; x < FC; x++)
	    {
	    if(x > 0) StrTable = StrTable + '<td width="2">&nbsp;</td>' ;
	    StrTable = StrTable + '<td width="38">Km</td><td width="38">Gare</td><td width="30">PC</td>' ;
	    }
  StrTable = StrTable + '</tr>' ;
// formatta classifica x anno
	for(x = 0; x < pd; x++)
	  {
	  Pst[x] = ""  ;
	  }
	for(x = 0; x < pd; x++)
	  {
	  FC = FormArray(pod[x])     ;
	  if (opt[Fa] != '-')
     {
      vn = eval(opt[Fa])       ;
      Pst[vn] = pod[x]         ;
      nu += 1                  ;
     }
	  }
	for(x = 0; x < pd; x++)
	  {
	  FC = FormArray(pod[x])     ;
	  if (opt[Fa] == '-')
     {
      Pst[nu] = pod[x]         ;
      nu += 1                  ;
     }
	  }
	for(x = 1; x < pd; x++)
	  {
	  FC = FormArray(Pst[x])       ;
	  StrTable = StrTable + '<tr><td>' + (x) + '</td>'  ;
    StrTable = StrTable + '<td style="text-align:left;padding-left:5px;">' + opt[0] + '</td>'   ;
    pt = 4 ;
    pk = 1 ;
    pr = 2 ;
    km = 0 ;
    ct = 0 ;
    C1 = "#FFFFFF"      ;
    for(y = 1; y < FC; y++)
	    {
	     if(y == Fa    ) C1 = "#FFDEAD"      ;
       if(y == Fa - 2) C1 = "#FFFFCC"      ;
       if(y == Fa + 1) C1 = "#FFFFFF"      ;
       if(y == pt)
         {
         StrTable = StrTable + '<td bgcolor="#FFFFDD">&nbsp;</td>' ;
         pt = pt + 3 ;
         }
       StrTable = StrTable + '<td bgcolor="' + C1 + '">' + opt[y] + '</td>'   ;
	    }
	     StrTable = StrTable + '</tr>'   ;
    }

  StrTable = StrTable + '</tr></table></div><div class="sotto_pg" style = "float:right;BACKGROUND-IMAGE:url(home/sotto_com.jpg);width: 700px;"></td></tr></table>' ;


	document.getElementById("centro").innerHTML = StrTable ;

}

function printMem(xz)
{
    if (xz == null) xz = 12  ;
    Stampa = '<div style="font-size:' + xz + 'px;">' + mem[mva] + '</div>';
    printFrame(0)     ;
}

function printFrame(ri)
{
var frame_doc = stp.document;
var stpTop = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">' +
             '<html xmlns="http://www.w3.org/1999/xhtml">' +
             '<head><link rel="stylesheet" href="tigre.css" type="text/css" />' +
             '<SCRIPT Language="Javascript">function printit(){window.print() ;}</script>' +
             '<title>LaTigre - Stampa</title></head><body>' +
             '<center><img src="img/top_stampa.gif" height="115" width="700"><div style="width:550px;text-align:left;">'  ;
var stpBot = '<br><img src="home/stampa_s.gif" align="middle" hspace = "5"><a href="javascript:printit();"><u>stampa</u></a></div></center></body></html>' ;

  frame_doc.open();
	frame_doc.write(stpTop + Stampa + stpBot);
	frame_doc.close();
}

function printit()
{
    window.parent.forPrint.focus();
    window.print() ;
}
function getFoto(ri)
{
  document.getElementById("imgs").innerHTML = foto[ri] ;
}
function getDia(im,ri)
{
  document.getElementById("centro").innerHTML = dia[im] ;
  document.getElementById("imgs").innerHTML = foto[ri]  ;
}

function formDia(im,ri)
{
var FC = FormArray(dia[im]) ;
var ip = eval(opt[4])  ;
var is = eval(opt[5])  ;
var en = eval(opt[6]) + 1 ;
var ix = 0 ;
var iy = 0 ;
var md = eval(opt[1])  ;
var ms = "storeFoto("  ;

if (md == 0) ms = "getFoto(" ;

fdi = mem[1] + opt[0]   ;
for(ix = is;ix < en;ix++)
  {
  fdi = fdi + '<div class="mdia"><a href="javascript:' + ms + iy + ');">' +
  '<img src="' + opt[2] + ix + '.jpg" alt=""></a></div>' ;
  if (md == 1) stf[iy] = '<div align="center"><br><div id="foto"><img src="' + opt[3] + ip + '.jpg"</div></div>' ;
  ip += 1 ;
  iy += 1 ;
  }
document.getElementById("centro").innerHTML = fdi + mem[2];
if (md == 0) getFoto(ri)  ;
else storeFoto(0)         ;
}

function storeFoto(ri)
{
  document.getElementById("imgs").innerHTML = stf[ri] ;
}
function schedeFrame(ri)
{
  document.getElementById("info").innerHTML = info ;
  document.getElementById("centro").innerHTML = sce[ri] ;
}
function memFrame(fra,ri)
{
  document.getElementById(fra).innerHTML = mem[ri] ;
  mva = ri ;
}
function wriFrame(fra,ri)
{
  document.getElementById(fra).innerHTML = ri ;
}
function cmFrame(fra,ri)
{

frame_xy=window.open(fra,ri,"scrollbars=yes, resizable=yes, width=500, height=400") ;
}

function leggiMese(m)
{

	switch(m)
  {
		case 1 : lm = "Gennaio" ; break
		case 2 : lm = "Febbraio"; break
		case 3 : lm = "Marzo"; break
		case 4 : lm = "Aprile"; break
		case 5 : lm = "Maggio"; break
		case 6 : lm = "Giugno"; break
		case 7 : lm = "Luglio"; break
		case 8 : lm = "Agosto"; break
		case 9 : lm = "Settembre"; break
		case 10 : lm = "Ottobre"; break
		case 11 : lm = "Novembre"; break
		case 12 : lm = "Dicembre"; break
	}
//alert ('Test - ' + eval(m))   ;
}

-->
