var teraz   = new Date();
var dzien   = teraz.getDate();
var miesiac = teraz.getMonth();
var rok     = teraz.getYear();

var tlo_przeszlych = 'url("grafika/strona/bialy_50.png") repeat';
var tlo_dzisiaj = '#fff';
var kol_normalnych = 'rgb(15, 15, 15)'; // #0f0f0f
var kol_innych = 'rgb(102, 102, 102)'; // #666

function kalendarz_wstecz(id)
{
 if (miesiac > 0) miesiac--;
 else if (rok > 1000)
 {
  miesiac = 11;
  rok--;
 }
 rysuj_kalendarz(miesiac, rok, id);
}

function kalendarz_naprzod(id)
{
 if (miesiac < 11) miesiac++;
 else
 {
  miesiac = 0;
  rok++;
 }
 rysuj_kalendarz(miesiac, rok, id);
}

function kalendarz_dzisiaj(id)
{
 miesiac = teraz.getMonth();
 rok     = teraz.getYear();
 if (rok < 2000) rok = rok + 1900;
 rysuj_kalendarz(miesiac, rok, id);
}

function rysuj_kalendarz(miesiac, rok, id)
{
 var i = 0;
 var dni_mies = ile_dni_mies(miesiac,rok);
 var pierwszy_dzien = new Date (rok, miesiac, 1);
 var start = pierwszy_dzien.getDay();
 if (start == 0) start = 7;
 dni_mies += start;
 
 var miesiace = new Array ('Styczeń', 'Luty', 'Marzec', 'Kwiecień', 'Maj', 'Czerwiec', 'Lipiec', 'Sierpień', 'Wrzesień', 'Październik', 'Listopad', 'Grudzień');
 document.getElementById(id+'_top').innerHTML = miesiace[miesiac] + ' ' + rok;

 var data = new Date(rok, miesiac, 1, 0, 0, 0);
 
 var wcz_mies, wcz_rok, wczesniejszy_miesiac, wczesniejszy_miesiac_dni;
 if (miesiac == 0) { wcz_mies = 11; wcz_rok = rok-1; }
 else { wcz_mies = miesiac-1; wcz_rok = rok; }
 wczesniejszy_miesiac_dni = ile_dni_mies(wcz_mies, wcz_rok);
 wczesniejszy_miesiac = new Date(wcz_rok, wcz_mies, wczesniejszy_miesiac_dni, 0, 0, 0);
 
 var nast_mies, nast_rok, nastepny_miesiac, nastepny_miesiac_dni;
 if (miesiac == 11) { nast_mies = 0; nast_rok = rok+1; }
 else { nast_mies = miesiac+1; nast_rok = rok; }
 nastepny_miesiac = new Date(nast_rok, nast_mies, 1, 0, 0, 0);
 
 for (i = 1; i < start; i++)
 {
  document.getElementById(id+'_'+i).innerHTML = wczesniejszy_miesiac_dni-start+i+1;
  document.getElementById(id+'_'+i).style.color = kol_innych;
  if (wczesniejszy_miesiac < teraz) document.getElementById(id+'_'+i).style.background = tlo_przeszlych;
  else document.getElementById(id+'_'+i).style.background = 'transparent';
 }
 for (i = start; i < dni_mies; i++)
 {
  document.getElementById(id+'_'+i).innerHTML = i-start+1;
  document.getElementById(id+'_'+i).style.color = kol_normalnych;
  if (data < teraz) document.getElementById(id+'_'+i).style.background = tlo_przeszlych;
  else document.getElementById(id+'_'+i).style.background = 'transparent';
  if (i-start+1 == teraz.getDate() && miesiac == teraz.getMonth() && (rok == teraz.getYear()+1900 || rok == teraz.getYear())) document.getElementById(id+'_'+i).style.background = tlo_dzisiaj;
  data.setDate(data.getDate()+1);
 }
 for (i=dni_mies; i<=42; i++)
 {
  document.getElementById(id+'_'+i).innerHTML = i-dni_mies+1;
  document.getElementById(id+'_'+i).style.color = kol_innych;
  if (nastepny_miesiac < teraz) document.getElementById(id+'_'+i).style.background = tlo_przeszlych;
  else document.getElementById(id+'_'+i).style.background = 'transparent';
 }
}

function ile_dni_mies(miesiac, rok)
{
 miesiac++;
 var dni_mies;
 if (miesiac==1 || miesiac==3 || miesiac==5 || miesiac==7 || miesiac==8 || miesiac==10 || miesiac==12) { dni_mies=31; }
 else if (miesiac==4 || miesiac==6 || miesiac==9 || miesiac==11) { dni_mies=30; }
 else if (miesiac==2)
 {
  if (((rok % 4)==0) && ((rok % 100)!=0) || ((rok % 400)==0)) { dni_mies=29; }
  else { dni_mies=28; }
 }
 return (dni_mies);
}

var bg, td_liczba;

function kalendarz_focus(td)
{
 bg = td.style.background;
 td_liczba = td.innerHTML;
 td.style.background = tlo_dzisiaj;
}

function kalendarz_blur(td)
{
 if (td_liczba == td.innerHTML) td.style.background = bg;
}

function kalendarz_click(td, id, gdzie)
{
 if (td.style.color == kol_innych)
 {
  if (td.innerHTML > 14) kalendarz_wstecz(id);
  else kalendarz_naprzod(id);
 }
 else if (gdzie != '')
 {
  var wpisz_dzien = td.innerHTML;
  var wpisz_miesiac = miesiac+1;
  if (wpisz_dzien < 10) wpisz_dzien = '0' + wpisz_dzien;
  if (wpisz_miesiac < 10) wpisz_miesiac = '0' + wpisz_miesiac;
  document.getElementById(gdzie).value = wpisz_dzien + '-' + wpisz_miesiac + '-' + rok;
  document.getElementById(gdzie).style.fontStyle = 'normal';
  document.getElementById(gdzie).style.color = '#222';
  document.getElementById(id).style.visibility = 'hidden';
 }
}

