// Expresions reguliers qui lirent les horaries de l'agenda au JSON "eventos"
var re_data = /([0-3]?[0-9])\/([0-1]?[0-9])/; // $1 - jour | $2 - mois
var re_hour = /([0-2]?[0-9])h([0-5][0-9])/; // $1 - heure | $2 - minute
var re_final = /Final/gi;

// Variable pour configurer les dates sur sisteme
var container = "calendario-insercao";
var day_start = 13;
var day_end = 29; 

// GetMethodParserJS ////
L=location.href;
d=L.substring(L.indexOf("?")+1);
c=v=new Array(); c=d.split("&"); cl=c.length;
for(i=0;i<cl&&cl>0;i++) {
v=c[i].split("="); if(v.length>1)
eval(v[0]+"=unescape('"+v[1].replace(/\+/g," ")+"')");}
/////////////////////////

function getWeekDay(dia)
{
  var result;
  var date = new Date();
  date.setFullYear(2007);
  date.setMonth(6);
  date.setDate(dia);
  date.setHours(0);
  date.setMinutes(0);
  
  switch(date.getDay())
  {
    case 0 : result = "Domingo"; break
    case 1 : result = "Segunda"; break
    case 2 : result = "Terça"; break
    case 3 : result = "Quarta"; break
    case 4 : result = "Quinta"; break
    case 5 : result = "Sexta"; break
    case 6 : result = "Sábado"; break
  }
  return result;
}

function parseHour( str )
{
  var result = new Date();
  result.setFullYear(2007);
  result.setMonth(0);
  result.setDate(1);
  result.setHours(str.replace(re_hour,"$1"));
  result.setMinutes(str.replace(re_hour,"$2"));
  result.setSeconds(0);
  result.setMilliseconds(0);
  
  return result;
}

// Preenche combos de navegação
function setModalidadesCombo()
{
  var select = document.getElementById("outros").getElementsByTagName("select")[0];
  var option;
  var text;
  
  select.onchange = function()
  {
    if(select.value == "")
    {
      location.href = ".";
    }
    else 
    {
      location.href = "?modalidade=" + select.value;
    }
  }
  
  for(i in modalidade_lista)
  {
    option = document.createElement("option");
    text = document.createTextNode( modalidade_lista[i].nome );
    option.value = modalidade_lista[i].nome;
    option.appendChild( text );
    select.appendChild( option );
  }
}

function setDiasCombo()
{
  var select = document.getElementById("outros").getElementsByTagName("select")[0];
  var option;
  var text;
  
  select.onchange = function()
  {
    if(select.value == "")
    {
      location.href = ".";
    }
    else 
    {
      location.href = "?dia=" + select.value;
    }
  }
  
  for(i in datas)
  {
    option = document.createElement("option");
    text = document.createTextNode( datas[i] + "/07" );
    option.value = datas [i];
    option.appendChild( text );
    select.appendChild( option );
  }
}

function getModalidadeChave( modalidade_nome )
{
  var modalidade_chave = "";
  for( i in modalidade_lista )
  {
    if(modalidade_lista[i].nome == modalidade_nome)
    {
      modalidade_chave = modalidade_lista[i].chave;
    }
  }
  return modalidade_chave;
}

function getModalidadeLink( modalidade_nome )
{
  var modalidade_link = "";
  
  for( var i in modalidade_lista )
  {
    if(modalidade_lista[i].nome == modalidade_nome)
    {
      modalidade_link = modalidade_lista[i].link;
    }
  }
  return modalidade_link;
}

// Functiones pour ecrire le HTML de las tables de calendrier

// Function pour ecrire le medail dans le table
function getMedalha()
{
  var img = document.createElement("img");
  img.alt = "Medalha";
  img.title = "Medalha";
  img.className = "medalha";
  img.src = "http://e.i.uol.com.br/pan/2007/calendario/medalha1.gif";
  return img;
} 

// Celendrier general
function writeCalendarioGeral()
{
  container = document.getElementById( container );
  var table = document.createElement("table");
  var thead = document.createElement("thead");
  var tbody = document.createElement("tbody");
  var tfoot = document.createElement("tfoot");
  var tr;
  var th;
  var td;
  var a;
  var text;
  var isFinal;
  
  table.cellSpacing = 0;
  table.className = "geral";
  
  //THEAD
  tr = document.createElement("tr");
  th = document.createElement("th");
  text = document.createTextNode("Modalidades");
  th.appendChild(text);
  tr.appendChild(th);
  
  for(i in datas)
  {
    td = document.createElement("td");
    a = document.createElement("a");
    text = document.createTextNode(datas[i]);
    //a.appendChild(text);
    //a.href = "http://pan.uol.com.br/pan/2007/calendario/dia.jhtm?dia=" + datas[i];
    td.appendChild(text);
    tr.appendChild(td);    
  } 
  
  thead.appendChild(tr);
  table.appendChild(thead);
  
  //TBODY
  for(i in modalidades)
  {
    tr = document.createElement("tr");
    th = document.createElement("th");
    a = document.createElement("a");
    text = document.createTextNode(modalidades[i].modalidade);
    //a.appendChild(text);
    //a.href = "http://pan.uol.com.br/pan/2007/modalidades/" + getModalidadeLink( modalidades[i].modalidade ) + "/calendario.jhtm"; 
    th.appendChild(text);
    tr.appendChild(th);
    
    if(i % 2 != 0)
    {
      tr.className = "odd";
    }
    
    for(j in datas)
    {    
      td = document.createElement("td");
      
      text = " ";
      for(k in modalidades[i].dias)
      {
        if(modalidades[i].dias[k].dia == datas[j])
        {
           text = (modalidades[i].dias[k].medalhas=="1")?"F":"C";
        }
      }
      td.className = (text=="F")?"final":"";
      text = document.createTextNode(text);
      td.appendChild(text);
      tr.appendChild(td);
    }
    
    tbody.appendChild(tr);
  }
  table.appendChild(tbody);
  
  //TFOOT
  tr = document.createElement("tr");
  th = document.createElement("th");
  text = document.createTextNode("Modalidades");
  th.appendChild(text);
  tr.appendChild(th);
  
  for(i in datas)
  {
    td = document.createElement("td");
    text = document.createTextNode(datas[i]);
    td.appendChild(text);
    tr.appendChild(td);    
  } 
  
  tfoot.appendChild(tr);
  table.appendChild(tfoot);
  
  //creer la table sur "container"
  container.innerHTML = "";
  container.appendChild(table);  
}

// Calendrier ordene pour jour
function writeCalendarioData()
{
    container = document.getElementById( container );
    var h2 = document.createElement("h2");
    var table = document.createElement("table");
    var thead = document.createElement("thead");
    var tbody = document.createElement("tbody");
    var tfoot = document.createElement("tfoot");
    var tr;
    var th;
    var td;
    var a;
    var text;
    var isFinal;
    var date_dia = new Date();
    var time_events = new Array();
    
    table.className = "data";
    table.cellSpacing = 0;
   
    //H2
    text = dia + " de JULHO de 2007 - " + getWeekDay(dia);
    text = document.createTextNode(text);
    h2.appendChild(text);
    
    //TABLE
    
    //THEAD
    tr = document.createElement("tr");
    th = document.createElement("th");
    text = document.createTextNode("Hora");
    th.appendChild(text);
    tr.appendChild(th);
    
    td = document.createElement("td");
    text = document.createTextNode("Modalidade");
    td.appendChild(text);
    tr.appendChild(td); 

    td = document.createElement("td");
    text = document.createTextNode("Fase");
    td.appendChild(text);
    tr.appendChild(td); 
    
    td = document.createElement("td");
    text = document.createTextNode("Disputa");
    td.appendChild(text);
    tr.appendChild(td);
    
    td = document.createElement("td");
    text = document.createTextNode("Local");
    td.appendChild(text);
    tr.appendChild(td);
    
    thead.appendChild(tr);
    table.appendChild(thead);
    
    //TBODY
    for(i in eventos)            
    {
      tr = document.createElement("tr");
      if(i % 2 !=0)
      {
        tr.className = "odd";
      }
            
      th = document.createElement("th");
      text = document.createTextNode(eventos[i].horario);
      th.appendChild(text);
      tr.appendChild(th);
      
      td = document.createElement("td");
      a = document.createElement("a");
      text = document.createTextNode(eventos[i].modalidade);
      a.appendChild(text);
      a.href = "/pan/2007/modalidades/" + getModalidadeLink(eventos[i].modalidade) + "/calendario.jhtm";
      td.appendChild(a);
      td.className = "modalidade";
      tr.appendChild(td);

      td = document.createElement("td");
      if(eventos[i].medalha == "1")
      {
       td.appendChild(getMedalha());
       td.appendChild(document.createTextNode(" "));
      }
      text = document.createTextNode(eventos[i].fase);
      td.appendChild(text);
      td.className = "fase";
      tr.appendChild(td);
      
      td = document.createElement("td");
      td.className = "disputa";
      text = document.createTextNode(eventos[i].disputa);
      if( eventos[i].link != "" )
      {
        a = document.createElement("a");
        a.href = eventos[i].link;
        a.appendChild( text ); 
        text = a;
      }
      td.appendChild(text);
      tr.appendChild( td );
      
      td = document.createElement("td");
      a = document.createElement("a");
      text = document.createTextNode(eventos[i].local);
      a.appendChild(text);
      a.href = eventos[i].localLink; 
      td.appendChild(a);
      td.className = "local";
      tr.appendChild(td);  
      
      tbody.appendChild(tr);      

    }
    table.appendChild(tbody);
    
    //TFOOT
    tr = document.createElement("tr");
    th = document.createElement("th");
    text = document.createTextNode("Hora");
    th.appendChild(text);
    tr.appendChild(th);
    
    td = document.createElement("td");
    text = document.createTextNode("Modalidade");
    td.appendChild(text);
    tr.appendChild(td); 

    td = document.createElement("td");
    text = document.createTextNode("Fase");
    td.appendChild(text);
    tr.appendChild(td); 
    
    td = document.createElement("td");
    text = document.createTextNode("Disputa");
    td.appendChild(text);
    tr.appendChild(td);
    
    td = document.createElement("td");
    text = document.createTextNode("Local");
    td.appendChild(text);
    tr.appendChild(td);
    
    tfoot.appendChild(tr);
    table.appendChild(tfoot);
    
    container.innerHTML = "";
    container.appendChild(h2);
    container.appendChild(table);        
}

// Calendrier ordene pour modalite sportif
function writeCalendarioModalidade()
{
    container = document.getElementById( container );
    var h2 = document.createElement("h2");
    var table = document.createElement("table");
    var thead = document.createElement("thead");
    var tbody = document.createElement("tbody");
    var tfoot = document.createElement("tfoot");
    var tr;
    var th;
    var td;
    var a;
    var text;
    var isFinal;
    
    table.className = "modalidade";
    table.cellSpacing = 0;
    
    //H2
    text = "Visualizar Calendário por";
    text = document.createTextNode(text);
    h2.appendChild(text);
    
    //TABLE
    
    //THEAD
    tr = document.createElement("tr");
    th = document.createElement("th");
    text = document.createTextNode("Data");
    th.appendChild(text);
    tr.appendChild(th);

    td = document.createElement("td");
    text = document.createTextNode("Hora");
    td.appendChild(text);
    tr.appendChild(td);
    
    td = document.createElement("td");
    text = document.createTextNode("Fase");
    td.appendChild(text);
    tr.appendChild(td); 
    
    td = document.createElement("td");
    text = document.createTextNode("Disputa");
    td.appendChild(text);
    tr.appendChild(td);
    
    td = document.createElement("td");
    text = document.createTextNode("Local");
    td.appendChild(text);
    tr.appendChild(td);
    
    thead.appendChild(tr);
    table.appendChild(thead);
    
    //TBODY
    for(i in dias)
    {
       for(j in dias[i].eventos)
       {
       tr = document.createElement("tr");
       
       if(tbody.getElementsByTagName("tr").length % 2 !=0)
       {
         tr.className = "odd";
       }
       
       if( j==0 )
       {
         th = document.createElement("th");
         th.rowSpan = dias[i].eventos.length;
         th.className = (i%2!=0)?"odd":"";
         a = document.createElement("a");
         text = document.createTextNode(dias[i].data);
         a.appendChild(text);
         a.href = "/pan/2007/calendario/dia.jhtm?dia=" + dias[i].data.replace(re_data, "$1");
         th.appendChild(a);
         tr.appendChild(th);
       }
       
       td = document.createElement("td");
       text = document.createTextNode(dias[i].eventos[j].horario);
       td.appendChild(text);
       td.className = "hora";
       tr.appendChild(td);
  
       td = document.createElement("td");
       if(dias[i].eventos[j].medalha == "1")
       {
        td.appendChild(getMedalha());
        td.appendChild(document.createTextNode(" "));
       }
       text = document.createTextNode(dias[i].eventos[j].fase);
       td.appendChild(text);
       td.className = "fase";
       tr.appendChild(td);
       
       td = document.createElement("td");
       text = document.createTextNode(dias[i].eventos[j].disputa);
       if( dias[i].eventos[j].link != "" )
       {
         a = document.createElement("a");
         a.href = dias[i].eventos[j].link;
         a.appendChild( text ); 
         text = a;
       }       
       td.appendChild(text);
       td.className = "disputa";
       tr.appendChild(td);
       
       td = document.createElement("td");
       a = document.createElement("a");
       text = document.createTextNode(dias[i].eventos[j].local);
       a.appendChild(text);
       a.href = dias[i].eventos[j].localLink;
       td.appendChild(a);
       td.className = "local";
       tr.appendChild(td);  
       
       tbody.appendChild(tr);      
      }
   }
    table.appendChild(tbody);
    
    //TFOOT
    tr = document.createElement("tr");
    th = document.createElement("th");
    text = document.createTextNode("Data");
    th.appendChild(text);
    tr.appendChild(th);

    td = document.createElement("td");
    text = document.createTextNode("Hora");
    td.appendChild(text);
    tr.appendChild(td);
    
    td = document.createElement("td");
    text = document.createTextNode("Fase");
    td.appendChild(text);
    tr.appendChild(td); 
    
    td = document.createElement("td");
    text = document.createTextNode("Disputa");
    td.appendChild(text);
    tr.appendChild(td);
    
    td = document.createElement("td");
    text = document.createTextNode("Local");
    td.appendChild(text);
    tr.appendChild(td);
    
    tfoot.appendChild(tr);
    table.appendChild(tfoot);
    
    container.innerHTML = "";
    container.appendChild(h2);
    container.appendChild(table);        
}

function pageLoad()
{
  //sortEventos();
  
  if(typeof(tipo)=="undefined")
  {
    tipo = "geral";
  }
  
  switch(tipo)
  {
    case "geral" : writeCalendarioGeral(); break
    
    case "modalidade" : writeCalendarioModalidade(); break
    
    case "data" : writeCalendarioData(); break
  } 
}
