197 lines
5.7 KiB
JavaScript
197 lines
5.7 KiB
JavaScript
document.onmousemove = mysz;
|
||
|
||
var ie, ns4, ns6;
|
||
ie = document.all;
|
||
ns4 = document.layers;
|
||
ns6 = document.getElementById && !document.all;
|
||
|
||
var data = new Date();
|
||
var amies = data.getMonth();
|
||
var arok = data.getFullYear();
|
||
var adzien = data.getDate();
|
||
var adzientyg = data.getDay();
|
||
var frmpole;
|
||
|
||
// ilo?? dni w roku
|
||
var dni = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
|
||
// nazwy miesi?cy
|
||
var miesiac = new Array('Styczeń','Luty','Marzec','Kwiecień', 'Maj','Czerwiec','Lipiec','Sierpień','Wrzesień','Październik','Listopad','Grudzień');
|
||
|
||
// dane kolor<6F>w
|
||
var kol = new Array(5)
|
||
kol[0] = '#F5F5F5'; // kolor t?a kalendarza, kolor tekstu wybranego dnia, nazw dni tyg...
|
||
kol[1] = '#E1E2E4'; // kolor p<>l kalendarza - dni zwyk?e
|
||
kol[2] = '#F0D998'; // kolor p<>l kalendarza - niedziele
|
||
kol[3] = '#6E6E6E'; // kolor pola oznaczaj?cego aktualny dzie?, kolor ramki, przycisku zamykajacego, tekstu
|
||
kol[4] = '#A883B3'; // kolor p<>l okreslajacych dni tygodnia (pn,wt...)
|
||
|
||
// ile lat pokazywane w kalendarzu od aktualnej daty
|
||
var wstecz = 80;
|
||
var wprzod = 4;
|
||
|
||
// ilo?? dni w Lutym - przeliczane po zmianie miesi?ca lub roku
|
||
function dniMies()
|
||
{
|
||
dni[1] = (rok % 4 == 0) ? 29 : 28;
|
||
}
|
||
|
||
// pobieranie pozycji myszy
|
||
function mysz(e)
|
||
{
|
||
if(ns4 || ns6)
|
||
{
|
||
x = e.pageX;
|
||
y = e.pageY;
|
||
}
|
||
if(ie)
|
||
{
|
||
x = document.body.scrollLeft+event.clientX;
|
||
y = document.body.scrollTop+event.clientY;
|
||
}
|
||
}
|
||
|
||
// funkcja pokazujaca kalendarz pod kursorem myszy
|
||
function showKal(fp)
|
||
{
|
||
if(fp.value != "" && fp.value != "0000-00-00")
|
||
{
|
||
str = new String(fp.value);
|
||
dataArray = str.split("-", 3);
|
||
mies = dataArray[1] -1;
|
||
rok = dataArray[0];
|
||
dzien = dataArray[2];
|
||
|
||
data = new Date(rok, mies, 1);
|
||
|
||
//dzientyg = data.getDay();
|
||
}
|
||
else
|
||
{
|
||
data = new Date(arok, amies, 1);
|
||
}
|
||
|
||
mies = data.getMonth();
|
||
rok = data.getFullYear();
|
||
dzien = data.getDate();
|
||
dzientyg = data.getDay();
|
||
dniMies();
|
||
|
||
frmpole = fp;
|
||
pozx = x;
|
||
pozy = y;
|
||
|
||
rysujKal();
|
||
|
||
if(ns6 || ie)
|
||
{
|
||
document.getElementById('kalendarz').style.left = pozx+'px';
|
||
document.getElementById('kalendarz').style.top = (pozy-140)+'px';
|
||
document.getElementById('kalendarz').style.visibility = 'visible';
|
||
}
|
||
}
|
||
|
||
// funkcja ukrywajaca kalendarz i wstawiajaca wybran? dat? do pola formularza
|
||
function hideKal()
|
||
{
|
||
if(ns6 || ie)
|
||
document.getElementById('kalendarz').style.visibility = 'hidden';
|
||
|
||
// tutaj ustawia si? format daty
|
||
// np:
|
||
// format = selectday + ' ' + miesiac[mies] + ' ' + rok;
|
||
|
||
// inny format daty - z zerami poprzedzaj?cymi
|
||
mies++;
|
||
if(mies < 10)
|
||
mies = '0' + mies;
|
||
if(selectday < 10)
|
||
selectday = '0' + selectday;
|
||
|
||
format = rok+'-'+mies+'-'+selectday
|
||
|
||
frmpole.value = format;
|
||
}
|
||
|
||
// ukrywanie kalendarza bez wstawiania daty
|
||
function exitKal()
|
||
{
|
||
if(ns6 || ie)
|
||
document.getElementById('kalendarz').style.visibility = 'hidden';
|
||
}
|
||
|
||
// ustawianie nowej daty po zmianie miesiaca lub roku
|
||
function setData()
|
||
{
|
||
mies = document.forms['sdata'].elements['month'].value;
|
||
rok = document.forms['sdata'].elements['year'].value;
|
||
|
||
data = new Date(rok, mies, 1);
|
||
mies = data.getMonth();
|
||
rok = data.getFullYear();
|
||
dzien = data.getDate();
|
||
dzientyg = data.getDay();
|
||
dniMies();
|
||
rysujKal();
|
||
}
|
||
|
||
// rysowanie kalendarza
|
||
function rysujKal()
|
||
{
|
||
kaltxt = '<form name="sdata" onSubmit="return false;">';
|
||
kaltxt += '<table border=0 cellpadding=0 cellspacing=2 style="border:#CECECE 2px solid;background-color:'+kol[0]+';">';
|
||
kaltxt += '<tr class=dzien><td colspan=6 height=25><select name="month" class="lista" onChange="setData()">';
|
||
for(i=0;i<12;i++)
|
||
{
|
||
if(i==mies)
|
||
kaltxt += '<option value="'+i+'" selected>'+miesiac[i]+'</option>';
|
||
else
|
||
kaltxt += '<option value="'+i+'">'+miesiac[i]+'</option>';
|
||
}
|
||
kaltxt += '</select> <select name="year" class="lista" onChange="setData()">';
|
||
for(i=(rok-wstecz);i<=(rok+wprzod);i++)
|
||
{
|
||
if(i==rok)
|
||
kaltxt += '<option value="'+i+'" selected>'+i+'</option>';
|
||
else
|
||
kaltxt += '<option value="'+i+'">'+i+'</option>';
|
||
}
|
||
kaltxt += '</select>';
|
||
kaltxt += '</td><td><a href="javascript:exitKal()"><span class="aktday"> X </span></a></td></tr>';
|
||
kaltxt += '<tr class=dnityg><td width=30>Nd</td><td width=30>Pn</td><td width=30>Wt</td><td width=30>Śr</td>';
|
||
kaltxt += '<td width=30>Czw</td><td width=30>Pt</td><td width=30>So</td></tr><tr class=dzien>';
|
||
|
||
j = 1;
|
||
|
||
for(i=0;i<dzientyg+dni[mies];i++)
|
||
{
|
||
if(i>=dzientyg)
|
||
{
|
||
if(j==adzien && rok==arok && mies==amies)
|
||
kaltxt += '<td><a style=color:black href="javascript:selectday='+j+';hideKal();" >'+j+'</a></td>';
|
||
else if(i%7==0)
|
||
kaltxt += '<td class=niedz><a class=niedz style=color:black href="javascript:selectday='+j+';hideKal();" >'+j+'</a></td>';
|
||
else
|
||
kaltxt += '<td><a class=dzien style=color:black href="javascript:selectday='+j+';hideKal();" >'+j+'</a></td>';
|
||
j++;
|
||
if(i%7==6)
|
||
kaltxt += '</tr><tr class=dzien>';
|
||
}
|
||
else
|
||
kaltxt += '<td></td>';
|
||
}
|
||
|
||
kaltxt += '</tr></table></form>';
|
||
|
||
document.getElementById("kalendarz").innerHTML = kaltxt;
|
||
}
|
||
|
||
// style kalendarza i warstwa, na kt<6B>rej si? znajduje
|
||
document.write('<div id="kalendarz" style="visibility:hidden;position:absolute;z-index:100;"></div>');
|
||
document.write('<style type="text/css">');
|
||
document.write('.dzien{font-family:Verdana;font-size:11px;color:'+kol[3]+';text-align:center;background-color:'+kol[1]+';text-decoration:none}');
|
||
document.write('.niedz{font-family:Verdana;font-size:11px;color:'+kol[3]+';text-align:center;background-color:'+kol[2]+';text-decoration:none}');
|
||
document.write('.aktday{color:'+kol[0]+';font-weight:bold;text-align:center;background-color:silver;text-decoration:none}');
|
||
document.write('.dnityg{font-family:Verdana;font-size:11px;color:'+kol[0]+';text-align:center;background-color:'+kol[4]+';}');
|
||
document.write('.lista{font-family:Verdana;font-size:11px;color:'+kol[3]+';}</style>');
|
||
|
||
//-->
|