var n_miesiace = new Array ('Styczeń','Luty','Marzec','Kwiecień','Maj','Czerwiec','Lipiec','Sierpień','Wrzesień','Październik','Listopad','Grudzień');

var days=new Array(31,28,31,30,31,30,31,31,30,31,30,31);

var pole_dzien="";

var pole_mies="";

var pole_rok="";



var min_dzien=1;

var min_mies=1;

var min_rok=1900;



var max_dzien=1;

var max_mies=1;

var max_rok=2050;



var dzisiaj;

var mniejsza=1;

var wieksza=1;



var minimal_date;

var maximal_date;



var dozwolone_wczesniej = 0;

var dozwolone_pozniej = 365;





function kalendarz(sciezka,pole_dzien,pole_mies,pole_rok,min_dzien,min_mies,min_rok,max_dzien,max_mies,max_rok,mniejsza_niz_dzis,wieksza_niz_dzis)

{


	document.getElementById('pole_dzien').value=pole_dzien;

	document.getElementById('pole_mies').value=pole_mies;

	document.getElementById('pole_rok').value=pole_rok;



	document.getElementById('min_dzien').value=min_dzien;

	document.getElementById('min_mies').value=min_mies;

	document.getElementById('min_rok').value=min_rok;



	document.getElementById('max_dzien').value=max_dzien;

	document.getElementById('max_mies').value=max_mies;

	document.getElementById('max_rok').value=max_rok;



	document.getElementById('mniejsza').value=mniejsza_niz_dzis;

	document.getElementById('wieksza').value=wieksza_niz_dzis;

	

	set_min_max();



	fill_calendar('w');


	fill_calendar('p');

	

	

	//sciezka=sciezka+'kalendarz/FSI2/kalendarz.html';

   //window.open(sciezka,'Kalendarz','width=196,height=178,toolbar=no,directories=no,menubar=no,scrollbars=no,resizable=no,statusbar=no');

}



function set_min_max()

{

	if(document.getElementById('pole_dzien').value!="")	pole_dzien=document.getElementById('pole_dzien').value;

	if(document.getElementById('pole_mies').value!="")	pole_mies=document.getElementById('pole_mies').value;

	if(document.getElementById('pole_rok').value!="")	pole_rok=document.getElementById('pole_rok').value;



	if(document.getElementById('min_dzien').value!="")	min_dzien=document.getElementById('min_dzien').value;

	if(document.getElementById('min_mies').value!="")	min_mies=document.getElementById('min_mies').value;

	if(document.getElementById('min_rok').value!="")	min_rok=document.getElementById('min_rok').value;



	if(document.getElementById('max_dzien').value!="")	max_dzien=document.getElementById('max_dzien').value;

	if(document.getElementById('max_mies').value!="")	max_mies=document.getElementById('max_mies').value;

	if(document.getElementById('max_rok').value!="")	max_rok=document.getElementById('max_rok').value;



	if(document.getElementById('mniejsza').value!="")	mniejsza=document.getElementById('mniejsza').value;

	if(document.getElementById('wieksza').value!="")	wieksza=document.getElementById('wieksza').value;



	dzisiaj=new Date();



//	alert(min_rok);



	if(min_dzien==0 && min_mies==0 && min_rok==0 && mniejsza==0)

		{

		min_dzien=dzisiaj.getDate();

		min_mies=dzisiaj.getMonth()+1;

		min_rok=dzisiaj.getFullYear();

		}



	if(min_dzien==0 && min_mies==0 && min_rok==0 && mniejsza==1)

		{

		min_dzien=1;

		min_mies=1;

		min_rok=1900;

		}



	if(max_dzien==0 && max_mies==0 && max_rok==0 && wieksza==0)

		{

		max_dzien=dzisiaj.getDate();

		max_mies=dzisiaj.getMonth()+1;

		max_rok=dzisiaj.getFullYear();

		}



	if(max_dzien==0 && max_mies==0 && max_rok==0 && wieksza==1)

		{

		max_dzien=1;

		max_mies=1;

		max_rok=2050;

		}





	min_mies=min_mies-1;

	max_mies=max_mies-1;

    

	if (min_dzien < 10)

		min_dzien = '0'+min_dzien;



	if (min_mies < 10)

		min_mies = '0'+min_mies;



 	if (max_dzien < 10)

		max_dzien = '0'+max_dzien;



	if (max_mies < 10)

		max_mies = '0'+max_mies;

		

	minimal_date=min_rok+''+min_mies+''+min_dzien;

	maximal_date=max_rok+''+max_mies+''+max_dzien;

	
}





function fill_calendar(direction)

{

var year;

var month;

var day_selected = 0;

var day_selected_minus = 0;

var day_selected_plus = 0;

var month_selected=0;

var year_selected=0;

var my_day;

var week_day;

var i,j;

var button;

var howmany_days;

var today;



    year = eval(document.getElementById(direction + '_r').value);
	month = eval(document.getElementById(direction + '_m').value)-1;
	
	day_selected=eval(document.getElementById(direction + '_d').value);
	
	month_selected = eval(document.getElementById(direction + '_m').value)-1;
	year_selected = eval(document.getElementById(direction + '_r').value);

	my_day=new Date();
	
	my_day.setFullYear(year,month,1);
	
	week_day=Number(my_day.getDay());

	
	
	today=new Date();

	

	//alert(today);

	

	//alert(month_selected);

	if (month_selected>=0)

		{}

	else

		{

		month_selected = today.getMonth();

		}

		

	if (year_selected>=0)

		{}

	else

		{

		year_selected = today.getFullYear();

		}

	

	j=0;

	for(i=1;i<43;i++)

		{

		button = document.getElementById(direction + "_d" + i);

		button.value=' ';

		button.disabled=true;

		button.className="btn_inactive";

		}



		//if (!document.forms['panel'].elements['ow'].checked || direction != 'p') {

		    howmany_days = days[month];
		   
		    if (month == 1 && rok_przestepny(year))
		        howmany_days = 29;

		    if (week_day == 0)
		        week_day = 7;

		    additional = 0;

		    possible_day = today.getDate();
		    possible_month = today.getMonth();
		    possible_year = today.getFullYear();


		    temporary_month = month;
		    allowed_later = dozwolone_pozniej;

		    while (allowed_later > 355) {
		        possible_year++;
		        allowed_later -= 355;
		    }

		    while (allowed_later > (days[temporary_month] - today.getDate())) {
		        allowed_later -= (days[temporary_month] - today.getDate());
		        temporary_month++;
		        possible_month++;
		    }

		    possible_day += allowed_later;


		    if (month == today.getMonth() && year == today.getFullYear()) {
		        additional = today.getDate() + dozwolone_wczesniej;
		        j += today.getDate() + dozwolone_wczesniej;
		    }

		    if (year < today.getFullYear()) {
		        additional = howmany_days
		    }

		    if (year == today.getFullYear() && month < today.getMonth()) {
		        additional = howmany_days
		    }


		    if (year > possible_year)
		        additional = howmany_days;

		    else if (year == possible_year) {
		        if ((month > today.getMonth()) && (year != today.getFullYear()))
		            additional = howmany_days;
		        if ((month > possible_month) && (year == today.getFullYear()))
		            additional = howmany_days;
		        if ((month == possible_month) && (year == today.getFullYear()) && (month == today.getMonth()))
		            howmany_days -= (days[temporary_month] - possible_day);
		        if (month == possible_month)
		            howmany_days -= (days[temporary_month] - possible_day);
		    }

		    //document.getElementById('miasto_z').value=possible_year + '.' + possible_month + '.' + possible_day + ' ' + additional + howmany_days+today.getFullYear();


		    if ((month > possible_month) && (year < possible_year) && (year != today.getFullYear())) {
		        additional = howmany_days;
		    }

		    var win_time_d = false;
		    var win_time_p = false;


		    if (direction == 'w' && document.getElementById('win_time_d')) {
		        if (document.getElementById('win_time_d').checked) {
		            win_time_d = true;
		            
		            day_selected_minus = day_selected - 1;
		            day_selected_plus = day_selected + 1;
		            
		        }
		    }

		    if (direction == 'p' && document.getElementById('win_time_p')) {
		        if (document.getElementById('win_time_p').checked) {
		            win_time_p = true;

		            day_selected_minus = day_selected - 1;
		            day_selected_plus = day_selected + 1;

		        }
		    }
		  
		    
		    for (i = week_day + additional; i < howmany_days + week_day; i++) {
		        j++;
		        button = document.getElementById(direction + "_d" + i)
		        button.value = j;
		        button.disabled = false;
		        button.className = "btn";


		        if (win_time_d && j == day_selected_plus && month == month_selected && year == year_selected) {
		            button.className = "btn_selected_plus_minus";

		        }
		        else if (win_time_d && j == day_selected_minus && month == month_selected && year == year_selected) {
		        button.className = "btn_selected_plus_minus";

		        }
		        else if (win_time_p && j == day_selected_plus && month == month_selected && year == year_selected) {
		            button.className = "btn_selected_plus_minus";

		        }
		        else if (win_time_p && j == day_selected_minus && month == month_selected && year == year_selected) {
		            button.className = "btn_selected_plus_minus";

		        }
		        else if (j == day_selected && month == month_selected && year == year_selected) {
		            button.className = "btn_selected";
		           
		        }
		        else if (j == today.getDate() && month == today.getMonth() && year == today.getFullYear()) {
		        button.className = "btn_today";
		       
		        }
		    }
		    //alert(today);
	//	}



}



function change_year(direction,how_many)

{

var year_temp;

var date_now_temp;



	if ((direction == 'p') && (document.forms['panel'].elements['ow'].checked))

		{

		

		}

	else

		{

		date_now_temp = new Date();

		rok = date_now_temp.getFullYear();

		

		year_temp=eval(document.getElementById(direction + '_r_temp').value);



	

		if (how_many==1)

			{

			if (year_temp <= rok)

				{

				document.getElementById(direction + "_r_temp").value = year_temp + how_many;

				fill_calendar(direction);

				}

			}

		else

			{

			if (year_temp > rok)

				{

				document.getElementById(direction + "_r_temp").value = year_temp + how_many;

				fill_calendar(direction);

				}

			}

		}

}





function rok_przestepny(rok)

{

var i;



	for(i=1900;i<rok+1;i+=4)

		{

		if(i==rok)

			return true;

		}

	

	return false;

}

function select_fill_calendar(direction) {
    var what_day;

    if (direction == 'w') what_day = document.getElementById("w_d").value;
    else if (direction == 'p') what_day = document.getElementById("p_d").value;
    
    if (what_day < 10)
        what_day = what_day.substring(1, 2);


    select_day(direction, what_day);
}

function select_day(direction,what_day)

{

var year_temp;

var month_temp;

var bad_min;

var bad_max;

var bad_selected_w;

var bad_selected_p;

var selected_date;

var difference;


	year_temp=eval(document.getElementById(direction + '_r').value);

	month_temp=eval(document.getElementById(direction + '_m').value);


	if (what_day < 10 )

		what_day = '0'+what_day;

	if (month_temp < 10)

		month_temp = '0'+month_temp;

	

	selected_date = year_temp+''+month_temp+''+what_day;

	difference = eval(selected_date) - eval(minimal_date);

	//document.getElementById('miasto_z').value=minimal_date;

	

	if (mniejsza==0)

	{

	 	if (difference == 0 )

	 		bad_min=true;

	}

 	if (difference < 0)

 		bad_min=true;



	difference = eval(selected_date) - eval(maximal_date);

	if (wieksza==0)

	{

	 	if (difference == 0 )

	 		bad_max=true;

	}

 	if (difference > 0)

 		bad_max=true;


    if (direction == 'w') {

        year_p = eval(document.getElementById('p_r').value);

        month_p = eval(document.getElementById('p_m').value);

        day_p = eval(document.getElementById('p_d').value);


        if (day_p < 10)

            day_p = '0' + day_p;

        if (month_p < 10)

            month_p = '0' + month_p;

        selected_date_p = year_p + '' + month_p + '' + day_p;

        difference = eval(selected_date) - eval(selected_date_p);

        if (difference >= 0) bad_selected_p = true;

        if (bad_selected_p) {


            var date_p = new Date();
            date_p.setFullYear(year_temp, month_temp-1, what_day);
            date_p.setDate(date_p.getDate() + 10);
            
            document.getElementById('p_r').value = date_p.getFullYear();

            document.getElementById('p_m').value = date_p.getMonth()+1;

            document.getElementById('p_d').value = date_p.getDate();


            document.getElementById('p_miesrok_do').value = months[date_p.getMonth()] + ' ' + date_p.getFullYear();

            
            fill_calendar('p');
        }
        
    }
    
 	if (direction == 'p')

	{

		year_w=eval(document.getElementById('w_r').value);

		month_w=eval(document.getElementById('w_m').value);

		day_w=eval(document.getElementById('w_d').value);

		



		if (day_w < 10)

			day_w = '0'+day_w;

		if (month_w < 10)

			month_w = '0'+month_w;

		selected_date_w = year_w+''+month_w+''+day_w;

		difference = eval(selected_date) - eval(selected_date_w);



		if (mniejsza==0)

		{

		 	if (difference == 0 )

		 		bad_selected_w=true;

		}

		if (difference < 0)

 			bad_selected_w=true;

	}



	if (bad_min && bad_max)

	{

		data_min=new Date(min_rok,min_mies,min_dzien);

		data_max=new Date(max_rok,max_mies,max_dzien);

		alert("Wybrana data musi zawierać się w przedziale od  "+data_min.toLocaleDateString()+" do "+data_max.toLocaleDateString());

		return;

	}

	

 	else if (bad_min)

	{

		data_min=new Date(min_rok,min_mies,min_dzien);

		alert("Wybrana data musi być większa od : "+data_min.toLocaleDateString());

		return;

	}



  	else if (bad_max)

 	{

 		data_max=new Date(max_rok,max_mies,max_dzien);

 		alert("Wybrana data musi być mniejsza od : "+data_max.toLocaleDateString());

 		return;

 	}



  	else if (bad_selected_w)

 	{

 		alert("Data powrotu musi być późniejsza, niż data wyloty");

 		return;

 	}

 	

	else 

	{

		document.getElementById(direction + '_d').value=what_day;

		document.getElementById(direction + '_m').value=document.getElementById(direction + '_m').value;

		document.getElementById(direction + '_r').value=document.getElementById(direction + '_r').value;

		

		mies_tmp = document.getElementById(direction + '_m').value;

		if (mies_tmp=='08')

			mies_int = 7;

		else	if (mies_tmp=='09')

			mies_int = 8;

		else

			mies_int = parseInt(mies_tmp)-1;

		

		try

			{

			document.getElementById(direction + '_dA').value=what_day;

			//document.getElementById('data_w1_text').value=month[mies_int] + " '"+document.getElementById(direction + '_r').value.substring(2,4);

			}

		catch (e) {}

	}



	fill_calendar(direction);

}





