var separator =/\D/
var monthdays
var startday
var AktDate=(gdatprz).split(separator)
var cDate = new Date();
var DSdzisiaj = new Date();
cDate.setYear(AktDate[2]);
cDate.setMonth(AktDate[1]-1);
cDate.setDate(AktDate[0]);


Months = new Array(12);
Months[0] = "Styczeń";
Months[1] = "Luty";
Months[2] = "Marzec";
Months[3] = "Kwiecień";
Months[4] = "Maj";
Months[5] = "Czerwiec";
Months[6] = "Lipiec";
Months[7] = "Sierpień";
Months[8] = "Wrzesień";
Months[9] = "Październik";
Months[10] = "Listopad";
Months[11] = "Grudzień";

function dzisiajSW() {
  if (DSdzisiaj.getDate() < 10) {out = '0' + DSdzisiaj.getDate()} else {out = DSdzisiaj.getDate()}
  if ((DSdzisiaj.getMonth()+1) < 10) {out += '-0' + (DSdzisiaj.getMonth()+1)} else {out += '-' + (DSdzisiaj.getMonth()+1)}
  if (DSdzisiaj.getYear() < 1000) {                          // oszukanie FF
    out += '-' +  (DSdzisiaj.getYear()+1900);
  } else {
    out += '-' +  DSdzisiaj.getYear();
  }
  document.getElementsByTagName('form')[0].getElementsByTagName('input')[0].value = out;
  document.getElementsByTagName('form')[0].submit()
}


// Częć odpowiedzialna za weryfikację daty
function isLeapYear (Year) {
  if (((Year % 4)==0) && ((Year % 100)!=0) || ((Year % 400)==0)) {
    return (true);
  } else { return (false); }
}

function getDaysInMonth(month,year)  {
  var days;
  if (month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12)  days=31;
  else if (month==4 || month==6 || month==9 || month==11) days=30;
  else if (month==2)  {
    if (isLeapYear(year)) { days=29; }
    else { days=28; }
  }
return (days);
}

function checkdate(input) {
  re = /((^|0)[1-9]|[12][0-9]|3[0-1])[\D](0?[1-9]|1[0-2])[\D](200[4-9]|20[1-4][0-9])$/
  if (!re.test(input.value)) {
    alert('Podany ciąg znaków nie jest datą lub data wykracza poza dopuszczalny zakres!');
    return false
  } else {
    DateArray=(input.value).split(separator)
    if (DateArray[0] <= getDaysInMonth(DateArray[1],DateArray[2])) {
      if (DateArray[0].length == 1) DateArray[0] = '0' + DateArray[0]
      if (DateArray[1].length == 1) DateArray[1] = '0' + DateArray[1]
      input.value = DateArray[0] + '-' + DateArray[1] + '-' + DateArray[2]
      return true
    } else { alert('Podany ciąg znaków nie jest datą lub data wykracza poza dopuszczalny zakres!') }
  }
}


// Częć odpowiedzialna za kalendarzyk

function initialize() {
  makesdCalendar();
  document.getElementById('sdcalendar').innerHTML=calendarBody;
}
function changeSdMonth(a) {
  cDate.setMonth(a-1)
  makesdCalendar()
  document.getElementById('sdcalendar').innerHTML=calendarBody;
}
function showCalendar() {
  initialize();
  document.getElementById('sdform').style.display='none'
}
function hideCalendar() {
  document.getElementById('sdcalendar').innerHTML = '<a href="javascript:showCalendar()">Pokaż kalendarz</a>'
  document.getElementById('sdform').style.display='block'
}
function insDay(i) {
  if (i < 3 || i > 33) { return('&nbsp;') }
  else { return(i-2) }
}
function selctedSdDate(d,fm) {
  if (d < 10) {out = '0' + d} else {out = d}
  if ((cDate.getMonth()+1) < 10) {out += '-0' + (cDate.getMonth()+1)} else {out += '-' + (cDate.getMonth()+1)}
  if (cDate.getYear() < 1000) {                          // oszukanie FF
    out += '-' +  (cDate.getYear()+1900);
  } else {
    out += '-' +  cDate.getYear();
  }
  document.forms[0].getElementsByTagName('input')[0].value = out;
  document.forms[0].submit()
  hideCalendar();
}

function changeYear(d) {
  if (cDate.getYear() < 1000) {                          // oszukanie FF
    CYRok =  (cDate.getYear()+1900);
  } else {
    CYRok = cDate.getYear();
  }
  if ((CYRok == 2004 && d<0) || (CYRok == 2049 && d>0)) {
    alert('Data wykracza poza dopuszczalny zakres!');
  } else {
    cDate.setYear(CYRok+d);
    initialize();
    document.getElementById('sdform').style.display='none'
  }
}

function makesdCalendar(month,year) {
monthdays = getDaysInMonth((cDate.getMonth()+1),cDate.getYear())
startdayn = new Date();
if (cDate.getYear() < 1000) {                          // oszukanie FF
  startdayn.setYear(cDate.getYear()+1900);
} else {
  startdayn.setYear(cDate.getYear());
}
startdayn.setMonth(cDate.getMonth());
startdayn.setDate(1);
startday = startdayn.getDay()
if (startday == 0) {startday = 7}


calendarBody='<div>'
calendarBody+='<select name="month" style="font-size:8pt;width:70px;background-color:#efdbdc;margin:5px;" onChange="changeSdMonth(this.options[this.selectedIndex].value)">'
for (var i=0; i<=Months.length-1; i++) {
  calendarBody+='<option value=' + (i+1)
  if (i == (cDate.getMonth())) {calendarBody+=' selected'}
  calendarBody+='>' + Months[i] +'</option>'
}
calendarBody+='</select>'
//calendarBody+='<span style="font-size:8pt;position:relative;left: 0px; top: -4px;">'
calendarBody+='<img src="images/la.gif" border="0" onclick="changeYear(-1)" style="cursor:pointer;">'
//calendarBody+='<span style="padding:0,3,0,3px;position:relative;left: 0px; top: -2px;">'
if (cDate.getYear() < 1000) {                          // oszukanie FF
  calendarBody += (cDate.getYear()+1900);
} else {
  calendarBody += cDate.getYear();
}
//calendarBody+='</span>'
calendarBody+='<img src="images/ra.gif" border="0" onclick="changeYear(+1)" style="cursor:pointer;">'
//calendarBody+='</span>'
calendarBody+='</div>'
//alert(calendarBody);

calendarBody+='<div style="text-align:center;background:#e0e2e4;width:156px;height:147px;margin-left:4px;background-image: url(\'images/date_sw_tlo.gif\');">'
calendarBody+='<div style="height:10px;margin:0;"></div>'
calendarBody+='<table border="0" cellspacing="1" cellpadding="1" align="center">'
calendarBody+='<tr>'
calendarBody+='<td class="calNCell" style="cursor:default;"><b>P</b></td>'
calendarBody+='<td class="calNCell" style="cursor:default;"><b>W</b></td>'
calendarBody+='<td class="calNCell" style="cursor:default;"><b>Ś</b></td>'
calendarBody+='<td class="calNCell" style="cursor:default;"><b>C</b></td>'
calendarBody+='<td class="calNCell" style="cursor:default;"><b>P</b></td>'
calendarBody+='<td class="calNCell" style="cursor:default;"><b>S</b></td>'
calendarBody+='<td class="calSCell" style="cursor:default;"><b>N</b></td>'
calendarBody+='</tr>'
calendarBody+='<tr>'
for (var i=1; i<=42; i++) {
  if (i < startday || i > (monthdays+startday-1)) {
    if (i%7) {calendarBody+='<td class="calNCell" style="cursor:default;">&nbsp;</td>'}
    else {calendarBody+='<td class="calSCell" style="cursor:default;">&nbsp;</td></tr><tr>'}
  } else {
calendarBody+='<td '
    if (i%7) {
      calendarBody+='class="calNCell" style="cursor:pointer;" '
    } else {
      calendarBody+='class="calSCell" style="cursor:pointer;" '
    }
    if (cDate.getYear() < 1000) {                          // oszukanie FF
      thye = cDate.getYear()+1900;
    } else {
      thye = cDate.getYear();
    }
    if (cDate.getDate()+1==(i-startday+2) && cDate.getMonth()==AktDate[1]-1 &&  thye==AktDate[2]) {
      calendarBody+='style="border:solid 1px;border-color:#FF0000;" '
    }
    calendarBody+='onclick="selctedSdDate(' + (i-startday+1) + ', this)">' + (i-startday+1)
    if (i%7) {calendarBody+='</td>'
    } else {
      calendarBody+='</td></tr><tr>'
    }
  }
}
calendarBody+='</table></div></div>'
calendarBody+='<div><a href="javascript:hideCalendar()">ukryj kalendarz</a></div>'
}