function sprawdzDate(form) {

var v_data = form.value;
var pk = pozycje_kropek(v_data);

if (pk.length != 2) 
{
 if (v_data.length == 8) // jezeli ktos wpisal bez znakow oddzielajacych
 {
  v_data = v_data.substring(0,2)+'.'+v_data.substring(2,4)+'.'+v_data.substring(4,8);
  pk =  pozycje_kropek(v_data);
 }
 else
 {
 wyjdz('Zły format daty!',form);
 return false
 }
}


var v_d = v_data.substring(0,pk[0]);
var v_m = v_data.substring(pk[0]+1,pk[1]);
var v_y = v_data.substring(pk[1]+1,v_data.length);

if (isNaN(v_d) || isNaN(v_m) || isNaN(v_y))
{ 
 wyjdz('Nie podałeś cyfr.. Ty oszuście!!!',form); 
 return false
}

if (v_y.length == 2) {v_y = '20'+v_y};

var rok = new Date();
rok = rok.getYear();
if (v_y > rok + 1 || v_y < rok - 1) 
{
 wyjdz('Niepoprawny rok!',form);
 return false 
}

if (v_m > 12 || v_m < 1) 
{
 wyjdz('Niepoprawny miesiąc!',form);
 return false 
}

var dm = new Array(12); // dni miesiąca
dm[0] = '31';
if (v_y%4) 
{
dm[1] = '28';
}
else
{
dm[1] = '29';
}
dm[2] = '31';
dm[3] = '30';
dm[4] = '31';
dm[5] = '30';
dm[6] = '31';
dm[7] = '31';
dm[8] = '30';
dm[9] = '31';
dm[10] = '30';
dm[11] = '31';

if (v_d < 1 || v_d > dm[v_m-1])
{
 wyjdz('Niepoprawny dzień',form);
 return false 
}

if (v_d.length<2) {v_d = '0'+v_d}; // jezeli dzien jest jedna cyfra
if (v_m.length<2) {v_m = '0'+v_m}; // jezeli miesiac jest jedna cyfra


form.value = v_d+'.'+v_m+'.'+v_y;

}



function pozycje_kropek(v_tekst) {
  var j = 0;
  var tablica = new Array();

for (var i=0; i < v_tekst.length ; i++)
{
var znak = v_tekst.charAt(i);
if (znak == "." || znak =="," || znak == "/" ) 
{
 tablica[j] = i;
 j += 1;
}; 
}
return tablica
}



function wyjdz(v_tresc, form) {
alert(v_tresc+' Prawidłowy format daty to "dd.mm.rrrr"');
form.value = form.defaultValue;
return false
}

