// ---------- Naptár Reloaded
// --- Átírta : Varga László
// --- 2008.03.13.


var aktdat = new Date(); // aktuális dátum
var ev = aktdat.getFullYear(); // aktuális év 4 karakter hosszban
var honap = aktdat.getMonth(); // aktuális hónap (0 = január, február = 1, ...)
var nap = aktdat.getDate(); // aktuális nap (azaz hányadika van ma)
var hetnapja = aktdat.getDay(); // a mai nap az a hét hányadik napja (vasárnap = 0, hétfõ = 1, ...)

var dat2 = new Date(); // segéd Dátum objektum az üres helyek számításához

// kezdõ üres helyeket tároló tömb létrehozása
var kezdoUresek = new Array(12);

// töltsük fel a tömböt
// A setFullYear() metódussal egy cikluson belül minden lépésben beállítjuk az évet ÉÉÉÉ-HH-NN formában.
// 2 fix adattal dolgozunk: az évet (ev) már a script elején lekértük, a napot pedig mindig 1-nek vesszük.
// Ami változik az a hónap sorszáma (i ciklusváltozó). Ne felejstük el, hogy 0-tól kezdõdik a sorszámozás,
// azaz 0 januárnak felel meg, 1 februárnak és így tovább.

// Hogyan állítjuk be a kezdõ üres helyeket?
// Miután beállítottuk a dátumot, az "i"-nek megfelelõ hónap elsejére, a getDay() metódussal megnézzük, hogy
// az adott hónap elseje az a hét melyik napjára esik. Figyelem: vasárnap = 0, hétfõ = 1, stb.
// Elsõ végiggondolásra azt mondhatjuk, hogy ahhoz, hogy megkapjuk mennyi üres hely kell a kezdõ "1"-es elõtt,
// megnézzük milyen napra esik és ebbõl kivonunk egyet. Ha például elseje szerdára esik, akkor a szerda getDay()
// által visszaadott értéke 3, amibõl ha 1-et kivonunk az kettõ és H és K helyét feltöltjük üres hellyel.
// Azonban van egy eset, aminél, ha kivonunk egyet az értékbõl akkor -1-et kapunk. Ez pedig az az eset, amikor 
// elseje vasárnapra esik, aminek 0 az értéke. Ezt le kell kezelni.

for(i=0;i<12;i++){
	dat2.setFullYear(ev,i,1);
	
	kezdoUresek[i] = (dat2.getDay()==0) ? 6 : dat2.getDay()-1;
	
	
}


// napszamPerHo : az egy hónapban levõ napok száma 
napszamPerHo = new Array(12);
napszamPerHo[0] = 31;
napszamPerHo[1] = 28; // ez változhat szökõév esetén, lejjebb kezeljük
napszamPerHo[2] = 31;
napszamPerHo[3] = 30;
napszamPerHo[4] = 31;
napszamPerHo[5] = 30;
napszamPerHo[6] = 31;
napszamPerHo[7] = 31;
napszamPerHo[8] = 30;
napszamPerHo[9] = 31;
napszamPerHo[10] = 30;
napszamPerHo[11] = 31;

// szökõév vizsgálata
if (((ev % 4 == 0) && !(ev % 100 == 0)) || (ev % 400 == 0)) napszamPerHo[1]++;

honev = new Array(12);
honev[0] = 'Január';
honev[1] = 'Február';
honev[2] = 'Március';
honev[3] = 'Április';
honev[4] = 'Május';
honev[5] = 'Június';
honev[6] = 'Július';
honev[7] = 'Augusztus';
honev[8] = 'Szeptember';
honev[9] = 'Október';
honev[10] = 'November';
honev[11] = 'December';

var n = 1;
document.write('<table class="keret" cellpadding="0" cellspacing="2" > <tr>');
document.write ('<td colspan="7" class="fejlec">');
document.write (ev + '. ' + honev[honap]);
document.write ('</td></tr><tr>');
document.write ('<td class="napnevek">H</td>');
document.write ('<td class="napnevek">K</td>');
document.write ('<td class="napnevek">Sze</td>');
document.write ('<td class="napnevek">CS</td>');
document.write ('<td class="napnevek">P</td>');
document.write ('<td class="hetvege2">Szo</td>');
document.write ('<td class="hetvege2">V</td></tr><tr>');

for(o=0;o<kezdoUresek[honap];o++) { document.write ('<td class="uresek" align="center">&nbsp;</td>') };

for(i=0;i<(7-kezdoUresek[honap]);i++){
				
					 	
				if (n == nap) {
				  document.write ('<td class="aktualis">');
				  document.write (n++);
				  document.write ('</td>');
				 }
				else {
					if ((i==5-kezdoUresek[honap]) || (i==6-kezdoUresek[honap])){
						document.write ('<td class="hetvege">');
				  		document.write (n++);
				  		document.write ('</td>');
					}
					else{
						document.write('<td class="nemaktualis">');
			      		document.write(n++);
		    	  		document.write('</td>');
					}
				  
				 } 
				}
				 
document.write('</tr>');

do {

document.write('<tr>');
for(i=0;i<7;i++){
				if (n <= napszamPerHo[honap]) {
						if (n == nap) {
						  document.write ('<td class="aktualis">');
						  document.write (n++);
						  document.write ('</td>');
						                 }
						else {
						  if ((i==5) || (i==6)){
								document.write ('<td class="hetvege">');
				  				document.write (n++);
				  				document.write ('</td>');
							}
							else{
								document.write('<td class="nemaktualis">');
			      				document.write(n++);
		    	  				document.write('</td>');
							}
						 }
						}
				else { document.write('<td class="uresek">&nbsp;</td>'); }
				}
document.write('</tr>');
} while (n<=napszamPerHo[honap]);


document.write('</table>');



