var kontrola = new Array();// kontrola souvisejících kalendářů

  function vymazData(div) {
  
  var vystup = document.getElementById(div);
	// v jednoduchem cyklu smazeme vsechny elementy v prvku vystup
	while(vystup.hasChildNodes()) vystup.removeChild(vystup.childNodes[0]);
	
  }
  
  /*
  
  month_year, month_year2... název inputu v "inputMonth", kde je měsíc i rok.... např. 8/2007 
  
  
  */
  
  function checkCalendars(idKontroly, divName){
    
    /* datum od */
    inputDay = kontrola[idKontroly]["od"]["inputDay"];
    inputMonth = kontrola[idKontroly]["od"]["inputMonth"];
    inputYear = kontrola[idKontroly]["od"]["inputYear"];
    
    day_od = parseInt(document.getElementById(inputDay).value, 10);      
    month_od = parseInt(document.getElementById(inputMonth).value, 10);
    year_od = parseInt(document.getElementById(inputYear).value, 10);
    
    datum_od = new Date(year_od, month_od, day_od);
    
    /* datum do */
    inputDay = kontrola[idKontroly]["do"]["inputDay"];
    inputMonth = kontrola[idKontroly]["do"]["inputMonth"];
    inputYear = kontrola[idKontroly]["do"]["inputYear"];
    
    day_do = parseInt(document.getElementById(inputDay).value, 10);      
    month_do = parseInt(document.getElementById(inputMonth).value, 10);
    year_do = parseInt(document.getElementById(inputYear).value, 10);
    
    datum_do = new Date(year_do, month_do, day_do);
    
    
    if (datum_od > datum_do){
      
      /* nastavení selectu s měsícem */
      option = document.getElementById(kontrola[0]["do"]["inputMonth"]).getElementsByTagName('option');
      
      for(i=1;i<option.length;i++){
        if (option[i].value==month_od){
          option[i].selected = "true";
        }
      }
      
      /* nastavení selectu s rokem */
      option = document.getElementById(kontrola[0]["do"]["inputYear"]).getElementsByTagName('option');
      
      for(i=1;i<option.length;i++){
        if (option[i].value==year_od){
          option[i].selected = "true";
        }
      }    
      
      /* nastavení inputu se dnem */
      document.getElementById(kontrola[idKontroly]["do"]["inputDay"]).value = day_od;
      
      
      /* aktualizuje kalendář */
      createCalendar(kontrola[idKontroly]["do"]["div"], day_od, month_od-1, year_od, kontrola[idKontroly]["do"]["inputDay"], kontrola[idKontroly]["do"]["inputMonth"], kontrola[idKontroly]["do"]["inputYear"]);
      
      if (divName == kontrola[idKontroly]["do"]["div"]){
        return false;
      }
        
      else
        return true;
    }
    
    else
      return true;
    
    
    
  }
function changeDate(divName, day, month, year, inputDay, inputMonth, inputYear){
    
    
    var today = new Date();// dnešní datum
    
    var input;// pro hodnoty vstupů
    
    if (!day)
    {
       if (inputDay)
        day = parseInt(document.getElementById(inputDay).value, 10);
      
      else
        day = today.getDate();
    }
    
    if (!month)
    {
      
       if (inputMonth)
          month = parseInt(document.getElementById(inputMonth).value, 10);
       
       else
        month = today.getMonth()+1;
    }
    
    
    if (!year)
    {
       if (inputYear)
        year = parseInt(document.getElementById(inputYear).value, 10);
        
       else
        year = today.getFullYear();
    }
    
    /* kontrola dne v měsíci */
      if (day < 1 || isNaN(day))// pokud je záporný nebo není číslo
       day = today.getDate();
      
      var num_days = new Array ("31", "28", "31", "30", "31", "30", "31", "31", "30", "31", "30", "31");
    
      if ((year%4) == 0)// přestupný rok
        num_days[1] = 29;
    
      if (day > num_days[month-1])// pokud je den vetsi nez max v mesici
          day = num_days[month-1];
    
    
    if (inputDay)
      document.getElementById(inputDay).value = day;// nastaví den
    
    
    if (inputMonth){
        /* nastavení selectu */
        option = document.getElementById(inputMonth).getElementsByTagName('option');
      
        for(i=1;i<option.length;i++){
          if (option[i].value==month){
            option[i].selected = "true";
          }
        }  
    }
    
    if (inputYear){
        /* nastavení selectu */
        option = document.getElementById(inputYear).getElementsByTagName('option');
      
        for(i=1;i<option.length;i++){
          if (option[i].value==year){
            option[i].selected = "true";
          }
        }  
    }
      
    
    if (kontrola){// pokud je definována kontrola kalendářů
      
      $kontrolovat = null;// jestli je v poli kontrolovaných kalendářů
      for (i=0;i<kontrola.length;i++){
        if (kontrola[i]['od']['div'] == divName || kontrola[i]['do']['div'] == divName){
          idKontroly = i;
          $kontrolovat = true;
          break;
        }
      }
      
      if ($kontrolovat){// kontrola kalendářů od do
        
        if (checkCalendars(idKontroly, divName)){
          createCalendar(divName, day, month-1, year, inputDay, inputMonth, inputYear);
        }
      }
      else
        createCalendar(divName, day, month-1, year, inputDay, inputMonth, inputYear);
    }
    
    else
      createCalendar(divName, day, month-1, year, inputDay, inputMonth, inputYear);
    
     
  }
  
  //month se pocita od 0
  
  function createCalendar(divName, day, month, year, inputDay, inputMonth, inputYear){// zobrazí kalendář
    
    //alert("mesic"+month);
    vymazData(divName);//vymaže div s kalendářem
    
    
    var today = new Date();
    
    if (!day)
      day = today.getDate();
      
    if (isNaN(month))
      month = today.getMonth();
    //alert("mesic"+month);  
    if (!year)
      year = today.getFullYear();   
    
    // dny v měsíci
    var num_days = new Array ("31", "28", "31", "30", "31", "30", "31", "31", "30", "31", "30", "31");
    
    if ((year%4) == 0)// přestupný rok
      num_days[1] = 29;
    
    if (day > num_days[month])// pokud je den vetsi nez max v mesici
      day = num_days[month];
    
    var date = new Date (year, month, 1);// první den v měsíci
    
    var day_of_week = date.getDay();// den v týdnu prvního dne v měsíci, 0-6
    var day_of_month = day;// den v měsíci
    
    out = "<table class='calendar'>";
    
    out += "<tr><th>Po</th><th>Út</th><th>St</th><th>Čt</th><th>Pá</th><th>So</th><th>Ne</th></tr>";
    
    out += "<tr>";
    
    if (day_of_week == 0)// 0 je pro nedeli
      day_of_week = 7;
      
    // vyplnění prázdných dnů
    for (var i=1; i<day_of_week; i++)
      out += "<td></td>";
    
    var day_last_month = num_days[month];// počet dní v měsíci
    
    for (var i=1; i<=day_last_month; i++){
      
      if (day == i)// aktuální den    
        out += "<td class='active'>"+i+"</td>";
        
      else//ostatní dny
        out += "<td><a href=\"javascript:changeDate('"+divName+"', "+i+", "+(month+1)+", "+year+", '"+inputDay+"', '"+inputMonth+"');\">"+i+"</a></td>";
      
      if (day_of_week < 7)
        day_of_week++;
        
      else{
        day_of_week = 1;
        out += "</tr><tr>";// konec řádku kalendáře
      }
      
      
    }
    
    out += "</table>";
        
    var div = document.getElementById(divName);
     
    if(div) {
        div.innerHTML = out;// zobrazení nového kalendáře
    }
  
  }
