// Copyright by Wojciech Gostanski !
// All Right Reserved !
// This software isn't a freeware !
// This Lite Version - only with DOM support  
// If You don't see anything probably Your browser don't support DOM.

/* STYLE
calendar1 -> styl dni tygodnia - powszednich
calendar2 -> styl dni tygodnia - weekend
calendar3 -> styl nazwy dni tygodnia
calendar4 -> styl zaznaczonego dnia tygodnia
calendar5 -> styl dope3nienia dni tygodnia - powszednie 
calendar6 -> styl dopelnienia kalendarza dniami tygodnia - weekend
calendarscr -> styl rozwijanych menu kalendarza
*/
var DayName = new Array("Pn","Wt","|r","Cz","Pt","So","Nd");	//Skróty dni
var MonthName = new Array("Styczen","Luty","Marzec","Kwiecien","Maj","Czerwiec","Lipiec","Sierpien","Wrzesien","Pa?dziernik","Listopad","Grudzien");	//Nazwy miesiecy
var DaysOfMonths = new Array(31,28,31,30,31,30,31,31,30,31,30,31); //Liczba dni poszczególnych miesiecy
var DayOfWeekHlp = new Array(5,6,0,1,2,3,4);
var Day;	//Dzien danego miesica
var Month;	//Numer danego miesica (0-11)
var Year;	//Rok
var DayOfWeek;	//Dzien tygodnia np. 22 luty 2003 sobota -> 6 dzien tygodnia
var browser;	//Rodzaj przegladarki: ie -> Internet Explorer, nn4 -> Netscape Navigator >= 4, nn -> kolejne wy?sze "modele" Netscape'a
var CalendarHTML; // Kod kalendarza w3czany do warstwy
var LayerName='PWSZCalendar';	//Nazwa warstwy
var LayerId=''; //Pomocniczy numer warstwy
//Zmienne styli
var calendar1='class="calendar1"';
var calendar2='class="calendar2"';
var calendar3='class="calendar3"';
var calendar4='class="calendar4"';
var calendar5='class="calendar5"';
var calendar6='class="calendar6"';
var calendarsrc='class="calendarscr"';
//Koniec styli
var YearsScroll = new Array();
var YCount=10;
var now = new Date();
Year = now.getFullYear();
//alert(Year);
YearStart = 2000;



Month = now.getMonth();
Day = now.getDate();
DayOfWeek = now.getDay();

//for (i=0;i<YCount;i++) {YearsScroll[i]=Year+i;} 
for (i=0;i<YCount;i++) {YearsScroll[i]=YearStart+i;} 

var YearPointer=0;
browser='dom';

function GenerateCalendar(layerid)
{
//	alert("jhjhj");
LayerId=layerid;
LayerName='PWSZCalendar'+layerid;

 layerid>1?document.getElementById('PWSZCalendar1').style.visibility='hidden':document.getElementById('PWSZCalendar2').style.visibility='hidden'; //only dom support
					var str=document.getElementById('date'+LayerId).value.split('-');  // only dom support
					
if ((str.length==3) && !isNaN(str[0]) && !isNaN(str[1]) && !isNaN(str[2]) && (str[0]<32) && (str[1]<13))
	{
		Day=str[0]*1;
		Month=(str[1]-1)*1;
			for (i=0;i<YCount;i++) 
				{
					if (YearsScroll[i]==str[2])
						{
							YearPointer=i;
							Year=YearsScroll[i];
							break;
						}
				}
			now.setYear(Year);
			now.setMonth(Month);
	}
	CheckLeapYear(Year) ? DaysOfMonths[1]=29 : DaysOfMonths[1]=28; 
	GenerateCalendarHTML();
	AddCalendarHTML();
}

function GenerateCalendarHTML()
{
var DaysOfPrevMonth;	//Ile dni w poprzednim miesicu ?
var DayOfWeekFirst; 	//Np 1stycznia, 1luty itp. Ktory to dzien tygodnia !! Niedziela to pierwszy dzien tygodnia -> 0
var StartDayOfPrevMonth;	//Od tego dnia zliczamy
var DayCounter = 1; //Licznik dni
var DayCounterNext = 1;	//
// <form name="calendar'+LayerId+'" id="calendar'+LayerId+'">
CalendarHTML='<table border="0" cellspacing="1" width="150" height="150"><tr><td colspan="7">';
CalendarHTML+='<table border="0" cellpadding="0" cellspacing="0"><tr>';
CalendarHTML+='<td class="calendarscr"><select name="Months'+LayerId+'" id="Months'+LayerId+'" onChange="UserMove(\''+Day+'\')" class="calendarscr">';
GenerateMonthsScroll();
CalendarHTML+='</select></td><td class="calendarscr"><select name="Years'+LayerId+'" id="Years'+LayerId+'" onChange="UserMove(\''+Day+'\')" class="calendarscr">';
GenerateYearsScroll();
CalendarHTML+='</select></td></tr></table></td></tr>';
CalendarHTML+='<tr>';
//Nag3ówek nazw dni
for (i=0;i<7;i++)
	{
		CalendarHTML+='<td width="20" '+calendar3+'>'+DayName[i]+'</td>';
	}
//Koniec nag3ówka nazw dni

//tutaj zaczynamy generowac date
CalendarHTML+='</tr>';
Month==0 ? DaysOfPrevMonth=DaysOfMonths[11] : DaysOfPrevMonth=DaysOfMonths[Month-1];
now.setDate(1);
DayOfWeekFirst=now.getDay();
now.setDate(Day);
StartDayOfPrevMonth=DaysOfPrevMonth-DayOfWeekHlp[DayOfWeekFirst];
for (var x=0;x<6;x++)
	{
		CalendarHTML+='<tr>';
			for (var i=1;i<8;i++)
				{
					if ((StartDayOfPrevMonth<=DaysOfPrevMonth)&&(DayOfWeekHlp[DayOfWeekFirst]!=6))
						{
							i>5 ? CalendarHTML+='<td width="20" '+calendar6+'>'+StartDayOfPrevMonth+'</td>' : CalendarHTML+='<td width="20" '+calendar5+'>'+StartDayOfPrevMonth+'</td>';
							StartDayOfPrevMonth++;
						}
					else if (DayCounter>DaysOfMonths[Month]) 
						{
							i>5 ? CalendarHTML+='<td width="20" '+calendar6+'>'+DayCounterNext+'</td>' : CalendarHTML+='<td width="20" '+calendar5+'>'+DayCounterNext+'</td>';
							DayCounterNext++;
						}
					else if (DayCounter==Day)
						{
							CalendarHTML+='<td width="20" '+calendar4+'><a '+calendar4+' href="javascript:UserClick(\''+DayCounter+'\')">'+DayCounter+'</a></td>'
							DayCounter++;
						}
					else
						{		
							i>5 ? CalendarHTML+='<td width="20" '+calendar2+'><a '+calendar2+' href="javascript:UserClick(\''+DayCounter+'\')">'+DayCounter+'</a></td>' : CalendarHTML+='<td width="20" '+calendar1+'><a '+calendar1+' href="javascript:UserClick(\''+DayCounter+'\')">'+DayCounter+'</a></td>';
							DayCounter++;
						}
				}
		CalendarHTML+='</tr>';
		if (DayCounter>DaysOfMonths[Month]) x++;
	}
	CalendarHTML+='<tr><td colspan="7" align="center"><a '+calendar1+' href="javascript:CloseLay()">-= close =-</a></td></tr></table>';

}

function AddCalendarHTML()
{
 document.getElementById(LayerName).innerHTML=CalendarHTML;
					document.getElementById(LayerName).style.visibility='visible';
					
	SetReservationForm();//new
} 

function GenerateMonthsScroll()
	{
		for (i=0; i<12; i++)
			{
				var selectedM=(i==Month?selectedM='selected':selectedM='');
				CalendarHTML+='<option '+selectedM+'>'+MonthName[i]+'</option>';
			}
	}
	
function GenerateYearsScroll()
	{
		for (i=0; i<YearsScroll.length; i++)  // i=5 -> Pokazuje 5 lat
			{
				YearPointer=Year-YearStart;
				var selectedY=(i==YearPointer?selectedY='selected':selectedY='');
				CalendarHTML+='<option '+selectedY+'>'+(YearsScroll[i])+'</option>';
			}
	}

function CheckLeapYear(year)
	{
		if (((year % 4)==0) && ((year % 100)!=0) || ((year % 400)==0)) 
			{
				return (true);
			}
		else
			{
				return (false);
			}
	}

function UserClick(number)
	{

		document.getElementById(LayerName).style.visibility='hidden';
					Month=document.getElementById('Months'+LayerId).selectedIndex;
					YearPointer=document.getElementById('Years'+LayerId).selectedIndex;
					SetNewDY(number);
	}

function UserMove(number)
	{
			Month=document.getElementById('Months'+LayerId).selectedIndex;
			YearPointer=document.getElementById('Years'+LayerId).selectedIndex;
			SetNewDY(number);
			GenerateCalendar(LayerId);
	}

function SetNewDY(number)
	{
			Year=YearsScroll[YearPointer];
			Day=number;
			now.setYear(Year);
			now.setMonth(Month);
			SetReservationForm(); ///new
	}
function SetReservationForm()
	{
			var D0,M0;
			var DMY=Day+'.'+(Month+1)+'.'+Year;
			var YMD=Year+'.'+(Month+1)+'.'+Day;
			Day<10?D0='0':D0='';
			Month<9?M0='0':M0='';
			var DMY=D0+Day+'.'+M0+(Month+1)+'.'+Year;
			var YMD=Year+'.'+M0+(Month+1)+'.'+D0+Day;
			document.forms['reservation'].elements['date'+LayerId].value=YMD;
			//document.forms['reservation'].elements['dquery'+LayerId].value=YMD;		
			
			
	}	

function CloseLay()
{	
	
		document.getElementById('PWSZCalendar1').style.visibility='hidden';
		document.getElementById('PWSZCalendar2').style.visibility='hidden';
					
}


