// JavaScript Document

function formatNumber(num,leadingzero) {
  num = num + ""; //Cast to integer
  if (leadingzero == true) {
    
    if (num.length == 0) {
      return "00";
    } else if (num.length == 1) {
      return "0" + num;
    } else {
      return num;
    }
  
  } else {
  
    if (num.length == 0) {
      return "0";
    } else {
      return num;
    }
  
  }
}


function calculate()
{
  
  //Get id elements
  var hour = document.getElementsByName('hours[]');
  var min = document.getElementsByName('minutes[]');
  var sec = document.getElementsByName("seconds[]");
  var time = document.getElementsByName('times[]');
  var fac = document.getElementsByName('factors[]');
  var event = document.getElementsByName('events[]');
  
  var bestSeedingTime = 1000000;
  var bestSeedingTimeFormated = "";
  var bestEventID = -1;
  
  var totalsec;
  var newHours;
  var newMinutes;
  var newSeconds;
  
  //Loop through id elements exept last one    
  for (var i=0;i<(min.length);i++)
  {
    totalsec = (Number(hour[i].value)* 3600) + (Number(min[i].value)*60) + Number(sec[i].value);
    totalsec = totalsec * Number(fac[i].value);
    
    totalsec = Math.floor(totalsec);
    newHours = Math.floor(totalsec/3600);
    newMinutes = Math.floor((totalsec%3600)/60);
    newSeconds  = Math.floor(totalsec%60); 
    
    if ((totalsec > 0)) {
      time[i].value = formatNumber(newHours,false) + ":" + formatNumber(newMinutes,true) + ":" + formatNumber(newSeconds,true);
      
      if (totalsec < bestSeedingTime) {
        bestSeedingTime = totalsec;
        bestSeedingTimeFormated = formatNumber(newHours,false) + ":" + formatNumber(newMinutes,true) + ":" + formatNumber(newSeconds,true); 
        bestEventID = i; 
      }  
        
    } else {
      time[i].value = "";
    }
    
    // Reset all class
    document.getElementById('event'+i).className = "event";
    document.getElementById('result'+i).className = "result";
    document.getElementById('time'+i).className = "time";
  }
  
  
  // START Last race - administrativ seeding
    
    
    
  
  if (bestEventID > -1) {
    bestEventName = event[bestEventID].value;
    bestEventResultFormated = formatNumber(hour[bestEventID].value,false) + ":" + formatNumber(min[bestEventID].value,true) + ":" + formatNumber(sec[bestEventID].value,true);
    bestSeedingFactor = fac[bestEventID].value;
    
    document.getElementById('bestSeedingTimeFormated').value = bestSeedingTimeFormated;
    document.getElementById('bestSeedingEvent').value = bestEventName;
    document.getElementById('bestSeedingFactor').value = bestSeedingFactor;
    
    document.getElementById('bestResultView').innerHTML = "Beste resultat/seedinggrunnlag:<br /><br /><b>" + bestEventName+ " (" + bestEventResultFormated + ")</b><br /><br />";
    document.getElementById("bestResultView").innerHTML += "Startpulje: <b>" + checkGroup(bestSeedingTime) + "</b><br /><br />";
    document.getElementById('bestResultView').innerHTML += "Kvalifisert for menn elite: <b>" + (bestSeedingTime > 9360?"Nei":"Ja") + "</b><br />";
    document.getElementById('bestResultView').innerHTML += "Kvalifisert for kvinner elite: <b>" + (bestSeedingTime > 11160?"Nei":"Ja") + "</b>";
    
    document.getElementById('bestResultView').style.visibility = "visible";
    document.getElementById('event'+bestEventID).className = "event bestevent";
    document.getElementById('result'+bestEventID).className = "result bestevent";
    document.getElementById('time'+bestEventID).className = "time bestevent";
  } else {
    document.getElementById('bestResultView').style.visibility = "hidden";
  }


} 

