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 PadSpaces(TheString)
{
	var Spaces = "             ";
	len = Math.round((9 - TheString.length)/2);

	return Spaces.substring(0,len) + TheString;
}

function NumLeapYears(StartYear, EndYear)
{
 	var LeapYears, i;

 	if (EndYear >= StartYear){
 		for(LeapYears = 0; StartYear <= EndYear; StartYear++)
 		if (IsLeapYear(StartYear)) LeapYears++;
	}else{
	for(LeapYears = 0; EndYear <= StartYear; EndYear++)
 		if (IsLeapYear(EndYear)) LeapYears++;
	}
 	return LeapYears;
}

function IsLeapYear(Year)
{
	if(Math.round(Year/4) == Year/4){
		if(Math.round(Year/100) == Year/100){
			if(Math.round(Year/400) == Year/400)
				return true;
			else return false;
		}else return true;
	}
	return false;
}

function Trim(TheString)
{
	var len;

	len = TheString.length;
 	while(TheString.substring(0,1) == " "){ //trim left
 		TheString = TheString.substring(1, len);
  		len = TheString.length;
	}

 	while(TheString.substring(len-1, len) == " "){ //trim right
 		TheString = TheString.substring(0, len-1);
  		len = TheString.length;
 	}
 	return TheString;
}

function DetermineMonthIdx()
{
	var i, month, month_s, len;

	eval("month = Trim("+document_adres+".elements[4].value);");
	len = month.length;

	for( i = 0; i <12; i++){
    		month_s = Months[i].substring(0,len);
		if (month_s.toUpperCase() == month.toUpperCase())
        		return (i);
  	}
  	return -1;
}

function FindNewYearStartingDay(Year)
{
 	var LeapYears, Years, Day;

 	LeapYears = NumLeapYears(1995, Year);

 	if  (Year >=1995)
 		Years = (Year -1995)+LeapYears;
 	else	Years = (Year -1995)-LeapYears;

 	if  (Year >=1995)
		Day = Math.round(((Years/7 - Math.floor(Years/7))*7)+.1);
 	else	Day = Math.round(((Years/7 -  Math.ceil(Years/7))*7)-.1);

	if (Year >=1995){
 		if(IsLeapYear(Year)) Day--;
 	}else Day += 7;

 	if(Day < 0) Day = 6;
 	if(Day > 6) Day = 0;
 	return Day;
}

function FindNumDaysInMonth(Year, Month)
{
 	if(Month == 1){
   		if(IsLeapYear(Year)) return 29;
   		else return 28;
 	}else{
   		if(Month >6) Month++;
   		if(Month/2 == Math.round(Month/2))  return 31;
 	}
 return 30;
}

function FindMonthStartDay(NewYearDay, Year, Month)
{
  	var MonthStartDay;

  	AddArray = new Array(12);

  	AddArray[0]=0;AddArray[1]=3;AddArray[2]=3;AddArray[3]=6;
	AddArray[4]=1;AddArray[5]=4;AddArray[6]=6;AddArray[7]=2;
	AddArray[8]=5;AddArray[9]=0;AddArray[10]=3;AddArray[11]=5;

  	MonthStartDay = NewYearDay + AddArray[Month];
  	if(IsLeapYear(Year) && (Month ) > 1) MonthStartDay ++;

  	if (MonthStartDay > 6) MonthStartDay -= 7;

  	return MonthStartDay;
}

function  FillCalendar()
{
  	var Year, Month, Midx, NewYearDay, MonthStartDay;
	var NumDaysInMonth, i, t;

  	eval("Year = parseFloat("+document_adres+".elements[1].value);");
  	eval("Month = "+document_adres+".elements[4].value;");

  	Midx  =  DetermineMonthIdx();
  	if (Midx == -1){
   		alert ("Can\'t recognize that month");
   		return;
  	}

  	NewYearDay = FindNewYearStartingDay(Year);
  	MonthStartDay = FindMonthStartDay(NewYearDay, Year,  Midx);
  	NumDaysInMonth = FindNumDaysInMonth(Year, Midx);

  	if(MonthStartDay == 0) { MonthStartDay = 7; }
  	if(NumDaysInMonth == 0) { NumDaysInMonth = 7; }

  	for(i = 6;  i < 43;  i++){
		t = i-4-MonthStartDay;
		if ( t >= 1  &&  t <= NumDaysInMonth) {
			eval(document_adres+".elements[i].value =t;");
		} else {
			eval(document_adres+".elements[i].value = \"\";");
		}
  	}
}

function IncDecYear(val)
{
	var valNum = parseInt(val);
	eval("var valNum2 = parseInt("+document_adres+".elements[1].value);");
	eval(document_adres+".elements[1].value = valNum2 + valNum;");

	FillCalendar()
}

function IncDecMonth(val)
{
	var valNum = parseInt(val);
  	var Midx  =  DetermineMonthIdx();

	Midx += valNum;
	if(Midx > 11) Midx = 0;
	if(Midx < 0)  Midx = 11;


	eval(document_adres+".elements[4].value = Months[Midx];");

	FillCalendar()
}
