﻿
var XMLHttpRequestObject = false;
if (window.XMLHttpRequest) {
	XMLHttpRequestObject = new XMLHttpRequest();
} 
else if (window.ActiveXObject) {
	XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
}
else {
	alert('error NO XMLHttpRequest');
	}
if(XMLHttpRequestObject) {
	var dataSource = '/ajax/data.xml';
	XMLHttpRequestObject.open('GET',dataSource);
	//XMLHttpRequestObject.setRequestHeader("Content-Type", "text/xml");
		XMLHttpRequestObject.onreadystatechange = function(){
			if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {	
				stuff=XMLHttpRequestObject.responseXML.getElementsByTagName("date");
			}
		}
	}
XMLHttpRequestObject.send(null);



function ajax(clear, divWithCalendar, dateInput, whichDate, startDay) {

//document.getElementById('hiddenInput1').value='';
document.getElementById('hiddenInput2').value='';
calendar=document.getElementById(divWithCalendar);
try{
	if(whichDate==undefined){
		whichDate=document.getElementById(divWithCalendar).getElementsByTagName('select')[0].value;
	};
	if (clear=='yes'){
		while ( document.getElementById(divWithCalendar).childNodes.length >= 1 ){
			document.getElementById(divWithCalendar).removeChild( document.getElementById(divWithCalendar).firstChild );       
		}; 
	};
	makeCalendar(stuff, divWithCalendar, dateInput, whichDate, startDay);
	}
catch (e){
	makeCalendar(stuff, divWithCalendar, dateInput, undefined, undefined);
	};
}
function makeCalendar(stuff, divWithCalendar, dateInput, whichDate, startDay){
//detect div with calendar	
	
	calendar=document.getElementById(divWithCalendar);
	

//sort some stuff
	var
	nodeAttribiute=stuff[0].attributes;

try {
	month=whichDate;
	var b=0;
	while((stuff[b].attributes[1].value+' '+stuff[b].attributes[0].value)!=month){
		++b
	};
		year=stuff[b].attributes[0].value;
		month=stuff[b].attributes[1].value;
		days=stuff[b].attributes[2].value;
		starts=stuff[b].attributes[3].value;
	}
catch(err){
	year=nodeAttribiute[0].value;
	month=nodeAttribiute[1].value;
	days=nodeAttribiute[2].value;
	starts=nodeAttribiute[3].value;
};
var today=0;
if (startDay==undefined){
	d=new Date();
	today=d.getDate();
}
else
{
today=startDay;
};
//create top part


//select
try{
	if (monthSelect){
	monthSelect2=document.createElement('select');
	calendar.appendChild(monthSelect2);
	};
}
catch(err){
monthSelect=document.createElement('select');
calendar.appendChild(monthSelect);
};
//try{
// if (wybierzMiesiacOpt){
// wybierzMiesiacOpt2=document.createElement('option');
// calendar.getElementsByTagName('select')[0].appendChild(wybierzMiesiacOpt2);
// };
// }
// catch(err){
// wybierzMiesiacOpt=document.createElement('option');
// calendar.getElementsByTagName('select')[0].appendChild(wybierzMiesiacOpt);
// };
//try{
//if (wybierzMiesiac){
//wybierzMiesiac2=document.createTextNode(month+' '+year);
//calendar.getElementsByTagName('select')[0].getElementsByTagName('option')[0].appendChild(wybierzMiesiac2);
//};
//}
//catch(err){
//wybierzMiesiac=document.createTextNode(month+' '+year);
//calendar.getElementsByTagName('select')[0].getElementsByTagName('option')[0].appendChild(wybierzMiesiac);
//};

//calendar.getElementsByTagName('select')[0].getElementsByTagName('option')[0].setAttribute('class','firstOption');
monthSelect.setAttribute('id','select_'+divWithCalendar);
var a=0;
	c=0;
	if(divWithCalendar=='data1'){
	howManyMonths=13;
	}
	else if(divWithCalendar=='data2'){
	howManyMonths=13;
	}
	else {
	howManyMonths=stuff.length;
	};
	option=document.createElement('option');
	newOption=[];
	newOptionIn=[];
if(divWithCalendar=='data2' && startDay!=undefined){
for(var i=0; stuff.length>i; ++i){
//if(stuff[i].attributes[1].value+' '+stuff[i].attributes[0].value==document.getElementById('data1').getElementsByTagName('select')[0].value){
startFrom=0;
//cyk=stuff[i].attributes[1].value+' '+stuff[i].attributes[0].value;
//};
};
while(a<howManyMonths){
	newOption[a]=option.cloneNode(false);	
	calendar.getElementsByTagName('select')[0].appendChild(newOption[a]);
	nm=stuff[startFrom].attributes[1].value;
	ye=stuff[startFrom].attributes[0].value;
	if (nm==month && ye==year){
		calendar.getElementsByTagName('select')[0].getElementsByTagName('option')[c].setAttribute('selected','selected');
	};
	calendar.getElementsByTagName('select')[0].getElementsByTagName('option')[c].setAttribute('value',nm+' '+ye);
	newOptionIn[a]=document.createTextNode(nm+' '+ye);;	
	calendar.getElementsByTagName('select')[0].getElementsByTagName('option')[c].appendChild(newOptionIn[a]);
	changeMonth=calendar.getElementsByTagName('select')[0].getElementsByTagName('option')[c].value;
	calendar.getElementsByTagName('select')[0].setAttribute('onchange', "ajax('yes', '"+divWithCalendar+"', '"+dateInput+"')")
	++a;
	++c;
	++startFrom;
};
}
else{
while(a<howManyMonths){
	newOption[a]=option.cloneNode(false);	
	calendar.getElementsByTagName('select')[0].appendChild(newOption[a]);
	nm=stuff[a].attributes[1].value;
	ye=stuff[a].attributes[0].value;
	if (nm==month && ye==year){
		calendar.getElementsByTagName('select')[0].getElementsByTagName('option')[c].setAttribute('selected','selected');
	};
	calendar.getElementsByTagName('select')[0].getElementsByTagName('option')[c].setAttribute('value',nm+' '+ye);
	newOptionIn[a]=document.createTextNode(nm+' '+ye);;	
	calendar.getElementsByTagName('select')[0].getElementsByTagName('option')[c].appendChild(newOptionIn[a]);
	changeMonth=calendar.getElementsByTagName('select')[0].getElementsByTagName('option')[c].value;
	calendar.getElementsByTagName('select')[0].setAttribute('onchange', "ajax('yes', '"+divWithCalendar+"', '"+dateInput+"')")
	++a
	++c
};
}
//naviDiv
naviDiv=document.createElement('div');
calendar.appendChild(naviDiv);
naviDiv=calendar.getElementsByTagName('div')[0];
naviDiv.setAttribute('class',"naviDiv");
//backmonth
spanLeft=document.createElement('span');
naviDiv.appendChild(spanLeft);
spanLeft=naviDiv.getElementsByTagName('span')[0];
spanLeft.setAttribute('class','monthBackInactive');
if(divWithCalendar=='data2' && month+' '+year!=document.getElementById('data1').getElementsByTagName('select')[0].value){
	spanLeft.setAttribute('onclick',"cMonth('back', '"+divWithCalendar+"', '"+dateInput+"')");
	spanLeft.setAttribute('class','monthBackActive');
};
if(divWithCalendar=='data1' && month+' '+year!=stuff[0].attributes[1].value+' '+stuff[0].attributes[0].value){
	spanLeft.setAttribute('onclick',"cMonth('back', '"+divWithCalendar+"', '"+dateInput+"')");
	spanLeft.setAttribute('class','monthBackActive');
} else{};
spanLeftText=document.createTextNode('< Poprzedni');
spanLeft.appendChild(spanLeftText);
//forwardmonth
spanRight=document.createElement('span');
naviDiv.appendChild(spanRight);
spanRight=naviDiv.getElementsByTagName('span')[1];
spanRight.setAttribute('class','monthForwardInactive');
var licz=0;
while(month+' '+year!=stuff[licz].attributes[1].value+' '+stuff[licz].attributes[0].value){
++licz
};
monthNumber=licz+1; 
if(monthNumber!=howManyMonths){
	spanRight.setAttribute('class','monthForwardActive');
	spanRight.setAttribute('onclick',"cMonth('forward', '"+divWithCalendar+"', '"+dateInput+"')");
} else{};

spanRightText=document.createTextNode('Następny >');
spanRight.appendChild(spanRightText);
calendar.innerHTML=calendar.innerHTML+"<br style='clear:both'/><div class='dayNames'>Pn</div><div class='dayNames'>Wt</div><div class='dayNames'>Śr</div><div class='dayNames'>Cz</div><div class='dayNames'>Pt</div><div class='dayNames'>So</div><div class='dayNames'>N</div><br style='clear:both'/>";
//create days table
		div=document.createElement('div');
		brejk=1;
		howManyTimes=1;
		newNode= []; 
	if (starts=='Poniedziałek'){
	brejk=7;
	}
	else if (starts=='Wtorek'){
			newNode[howManyTimes]=div.cloneNode(false);	
			calendar.appendChild(newNode[howManyTimes]);
			newNode[howManyTimes].setAttribute('class','unselectableDay');
			++howManyTimes
	brejk=6;
	}
	else if (starts=='Środa'){
		while(howManyTimes<=2){
			newNode[howManyTimes]=div.cloneNode(false);	
			calendar.appendChild(newNode[howManyTimes]);
			newNode[howManyTimes].setAttribute('class','unselectableDay');
			++howManyTimes
		}
	brejk=5;
	}
	else if (starts=='Czwartek'){
		while(howManyTimes<=3){
			newNode[howManyTimes]=div.cloneNode(false);	
			calendar.appendChild(newNode[howManyTimes]);
			newNode[howManyTimes].setAttribute('class','unselectableDay');
			++howManyTimes
		}
	brejk=4;
	}
	else if (starts=='Piątek'){
		while(howManyTimes<=4){
			newNode[howManyTimes]=div.cloneNode(false);	
			calendar.appendChild(newNode[howManyTimes]);
			newNode[howManyTimes].setAttribute('class','unselectableDay');
			++howManyTimes
		}
	brejk=3;
	
	}
	else if (starts=='Sobota'){
		while(howManyTimes<=5){
			newNode[howManyTimes]=div.cloneNode(false);	
			calendar.appendChild(newNode[howManyTimes]);
			newNode[howManyTimes].setAttribute('class','unselectableDay');
			++howManyTimes
		}
	brejk=2;
	}
	else if (starts=='Niedziela'){
		while(howManyTimes<=6){
			newNode[howManyTimes]=div.cloneNode(false);	
			calendar.appendChild(newNode[howManyTimes]);
			newNode[howManyTimes].setAttribute('class','unselectableDay');
			++howManyTimes
		}
	brejk=1;
	}
	var counter=1;
		cloneNumber=0;
		dayNode=[];
		dayNumberText=[];
	firstMonth=nodeAttribiute[1].value+' '+nodeAttribiute[0].value;

	while(counter<=days){
		dayNode[counter]=div.cloneNode(false);
		calendar.appendChild(dayNode[counter]);
		dayNumberText[counter]=document.createTextNode(counter);
		dayNode[counter].appendChild(dayNumberText[counter]);
		//ff fix
		if (divWithCalendar=='data2' && document.getElementById('hiddenInput1').value==''){
		today=startDay;
		};
		if(whichDate==firstMonth && today>=counter || whichDate==undefined && today>=counter || (divWithCalendar=='data2' && today>=counter && document.getElementById('data1').getElementsByTagName('select')[0].value==calendar.getElementsByTagName('select')[0].value) ){
			dayNode[counter].setAttribute('class','unselectableDay');
			if (counter==brejk){
				calendar.innerHTML=calendar.innerHTML+"<br style='clear:both'/>";
				brejk=brejk+7;
			};
		}
		else{
			dayNode[counter].setAttribute('class','day');
			dayNode[counter].setAttribute('onclick',"selectDate('"+counter+"','"+month+"','"+year+"', '"+dateInput+"', '"+divWithCalendar+"')");
			if (counter==(brejk-1)){
				dayNode[counter].setAttribute('class','weekendDay');
			};
			if (counter==brejk){
				dayNode[counter].setAttribute('class','weekendDay');
				calendar.innerHTML=calendar.innerHTML+"<br style='clear:both'/>";
				brejk=brejk+7;
			};
		};
		++counter;
	};
	calendar.innerHTML=calendar.innerHTML+"<br style='clear:both'/><span class='selectedDateInfo'>Zaznaczona data to <span>?."+month+"."+year+"</span></span>";	
	//last month
isItLast=isThisLastMonth(divWithCalendar);
if(isItLast[0]=='yes'){
	d=new Date();
	numberOfDay=d.getDate();
	numberOfDayData1=numberOfDay-6;
	numberOfDayData2=numberOfDay-5;
if(divWithCalendar=='data1'){
	for (var i=0; document.getElementById('data1').getElementsByTagName('div').length!=i; ++i){
		if(document.getElementById('data1').getElementsByTagName('div')[i].className=='day' || document.getElementById('data1').getElementsByTagName('div')[i].className=='weekendDay'){
			if(document.getElementById('data1').getElementsByTagName('div')[i].childNodes[0].nodeValue>numberOfDayData1){
			document.getElementById('data1').getElementsByTagName('div')[i].className='unselectableDay';
			document.getElementById('data1').getElementsByTagName('div')[i].onclick='';
			};
		};
	};
};
	for (var i=0; document.getElementById('data2').getElementsByTagName('div').length!=i; ++i){
		if(document.getElementById('data2').getElementsByTagName('div')[i].className=='day' || document.getElementById('data2').getElementsByTagName('div')[i].className=='weekendDay'){
			if(document.getElementById('data2').getElementsByTagName('div')[i].childNodes[0].nodeValue>numberOfDayData2){
			document.getElementById('data2').getElementsByTagName('div')[i].className='unselectableDay';
			document.getElementById('data2').getElementsByTagName('div')[i].onclick='';
			};
		};
	};
};
//hide if no data
	if(divWithCalendar=='data2' && document.getElementById('data1').getElementsByTagName('span')[3].childNodes[0].nodeValue.indexOf('?')==0){
		positionOfData2=findPos(document.getElementById('data2'));
		positionOfcontent=findPos(document.getElementById('content'));
		hidinDiv=document.createElement('div');
		hidinDivText=document.createTextNode('Najpierw zaznacz datę wylotu.');
		document.getElementById('data2').appendChild(hidinDiv);
		hidinDiv.appendChild(hidinDivText);
		hidinDiv.className='hidinDiv';
		hidinDiv.style.top=(positionOfData2[1]-positionOfcontent[1]-3)+"px";
		hidinDiv.style.left=(positionOfData2[0]-positionOfcontent[0]-3)+"px";
	};	
if(divWithCalendar=='date1'){
trigeredRangeCalendar()
};
Eventy();
MakeSomeOptionsUnselectable();
var canIselectSomthing=0;
for (i=0; document.getElementsByTagName('div').length!=i; ++i){
	if (document.getElementsByTagName('div')[i].className=='weekendDay'||document.getElementsByTagName('div')[i].className=='day'){
		if (document.getElementsByTagName('div')[i].parentNode.id=="data1"){
		++canIselectSomthing
		};
	};
};
if (canIselectSomthing==0){
cMonth('forward', 'data1', 'hiddenInput1')
};
//FF fix
	if (document.addEventListener && divWithCalendar=='data1' && document.getElementById('data2').getElementsByTagName('select')[0]){
	document.getElementById('data2').getElementsByTagName('select')[0].onchange();
	document.getElementById('data2').getElementsByTagName('select')[0].getElementsByTagName('option')[0].setAttribute('selected','selected');
	document.getElementById('data2').getElementsByTagName('select')[0].onchange();
	};
//opera fix (im sorry)
if (window.opera){
setTimeout("fixOpera()",10);
};
}
function selectDate(day, month, year, dateInput, divWithCalendar){
calendar=document.getElementById(divWithCalendar);
document.getElementById(dateInput).value=day+'.'+month+'.'+year;
calendar.getElementsByTagName('span')[3].childNodes[0].nodeValue=day+'.'+month+'.'+year;

//remove selection
var i=0;
while(i<calendar.getElementsByTagName('div').length){
	if(calendar.getElementsByTagName('div')[i].className=='weekendDayselected' || calendar.getElementsByTagName('div')[i].className=='dayselected'){
		temp=calendar.getElementsByTagName('div')[i].className;
		b=temp.indexOf('selected');
		temp=temp.slice(0,b);
		calendar.getElementsByTagName('div')[i].className=temp;
	};
	i++
};
//create new selection
i=0;
while(i<calendar.getElementsByTagName('div').length){
	if(calendar.getElementsByTagName('div')[i].className=='weekendDay' || calendar.getElementsByTagName('div')[i].className=='day'){
		if(calendar.getElementsByTagName('div')[i].childNodes[0].nodeValue==day){
			calendar.getElementsByTagName('div')[i].className=calendar.getElementsByTagName('div')[i].className+'selected';
		};
	};
++i;
};
}
function cMonth(whichWay, divWithCalendar, dateInput){
calendar=document.getElementById(divWithCalendar);
 thisIsDateStupidIE=calendar.getElementsByTagName('span')[3].childNodes[0].nodeValue;
 dot='.';
 start=thisIsDateStupidIE.indexOf(dot);
 start=parseInt(start);
 start=start+1;
 end=thisIsDateStupidIE.indexOf(dot,start)+1;
 month=thisIsDateStupidIE.slice(start,end-1);
 year=thisIsDateStupidIE.slice(end,end+4);
 b=0
	while(month+' '+year!=stuff[b].attributes[1].value+' '+stuff[b].attributes[0].value){
		++b;
	}; 
	if(month+' '+year==stuff[b].attributes[1].value+' '+stuff[b].attributes[0].value){
		if (whichWay=='forward'){
			ajax('yes', divWithCalendar, dateInput, stuff[b+1].attributes[1].value+' '+stuff[b+1].attributes[0].value);
		}
		else if(whichWay=='back'){
			ajax('yes',  divWithCalendar, dateInput, stuff[b-1].attributes[1].value+' '+stuff[b-1].attributes[0].value);
		};
		};
}



function trigeredRangeCalendar(){
firstCalendarValue=document.getElementById('data1').getElementsByTagName('span')[3].childNodes[0].nodeValue;
//document.getElementById("hiddenInput1").value;
posFirstDot=firstCalendarValue.indexOf('.')+1;
posSecDot=firstCalendarValue.indexOf('.',posFirstDot);

day=firstCalendarValue.slice(0,posFirstDot-1);
month=firstCalendarValue.slice(posFirstDot,posSecDot);
year=firstCalendarValue.slice(posSecDot+1,firstCalendarValue.length);
miesiace=[];

ajax('yes', 'data2', 'hiddenInput2', month+' '+year, day)
}
function isThisLastMonth(divWithCalendar){
lastMonthNumber=document.getElementById(divWithCalendar).getElementsByTagName('select')[0].getElementsByTagName('option').length-1;
lastMonthName=document.getElementById(divWithCalendar).getElementsByTagName('select')[0].getElementsByTagName('option')[lastMonthNumber].innerHTML;
if (document.getElementById(divWithCalendar).getElementsByTagName('select')[0].getElementsByTagName('option')[lastMonthNumber].getAttribute('selected')=='selected' || document.getElementById(divWithCalendar).getElementsByTagName('select')[0].getElementsByTagName('option')[lastMonthNumber].getAttribute('selected')==true){
score='yes';
}
else{
score='no';
};
return [score,lastMonthName,lastMonthNumber];
}
function MakeSomeOptionsUnselectable(){
select_data1=document.getElementById('data1').getElementsByTagName('select')[0];
select_data2=document.getElementById('data2').getElementsByTagName('select')[0];
var i=0;
//detect selected option in data1 
while(i!=12){
	if(select_data1.getElementsByTagName('option')[i].getAttribute('selected')=='selected' || select_data1.getElementsByTagName('option')[i].getAttribute('selected')==true){
	selectedOptionNumber=i;
	};
	++i;
};
toRemove=[];
R=0;
if(select_data2){
	for (var i=0; select_data2.getElementsByTagName('option').length!=i; ++i){
		if(i<selectedOptionNumber){
		toRemove[R]=select_data2.getElementsByTagName('option')[i];
		++R
		};
	};
	for (var i=0; toRemove.length!=i; ++i){
	toRemove[i].parentNode.removeChild(toRemove[i]);
	};

};
}
function fixOpera(){
if (document.getElementById('wyszukiwarka_lotow').getElementsByTagName('h2')[0].innerHTML=='Wyszukiwarka lotów'){
document.getElementById('wyszukiwarka_lotow').getElementsByTagName('img')[0].src="/images/lupab.jpg";
document.getElementById('wyszukiwarka_lotow').getElementsByTagName('img')[1].src="/images/lupab.jpg";
document.getElementById('wyszukiwarka_lotow').getElementsByTagName('img')[2].src="images/help.gif";
document.getElementById('wyszukiwarka_lotow').getElementsByTagName('img')[3].src="images/help.gif";
document.getElementById('wyszukiwarka_lotow').getElementsByTagName('img')[4].src="images/help.gif";
document.getElementById('szukaj_air').src="images/szukaj.gif";
};
/* opera is stupid */
}