// OTA-CHANGER:
var ota_nr=0;

function ota_change()
{
	e('ota_switcher').innerHTML=ota[ota_nr];
	ota_nr++;
	if(ota.length<=ota_nr)ota_nr=0;
}

function update_tree(url, code)
{
// //alert(url);
	e('dep_airp').value=code;
	ajax("GET", url, function(){/*//alert(html);*/e('desttree').innerHTML=html;},new Array(),'html');
	return false;

}



var flights=new Object();

function flight_obj(xml)
{
	flight=xml.getElementsByTagName('flight')[0];

	var t=document.createElement("table");
	t.style.width="100%";


	var tr = document.createElement ('tr');
	var td = document.createElement ('td');

	td.appendChild (document.createTextNode (''));
	td.style.width="10px";
	td.rowSpan="2";
	tr.appendChild (td);

	var price=flight.getAttribute('price');
	var td = document.createElement ('td');
	td.style.width="70px";
	td.rowSpan="2";
	td.appendChild (document.createTextNode (price));
	tr.appendChild (td);

	var flight_to=xml.getElementsByTagName('flight_to')[0];
	var td = document.createElement ('td');
	td.style.width="180px";
	td.appendChild (document.createTextNode(flight_to.getAttribute('dep') + ' - ' +flight_to.getAttribute('dst')));
	tr.appendChild (td);

	var td = document.createElement ('td');
	td.style.width="70px";
	td.appendChild (document.createTextNode(flight_to.getAttribute('date')));
	tr.appendChild (td);

	var td = document.createElement ('td');
	td.style.width="80px";
	td.appendChild (document.createTextNode(flight_to.getAttribute('deptime') + ' - ' +flight_to.getAttribute('arrtime')));
	tr.appendChild (td);

	var td = document.createElement ('td');
	td.style.width="50px";
	td.appendChild (document.createTextNode(flight_to.getAttribute('duration')));
	tr.appendChild (td);

	var td = document.createElement ('td');
	td.appendChild (document.createTextNode(flight_to.getAttribute('airlines')));
	tr.appendChild (td);

	var td = document.createElement ('td');
	td.style.width="40px";
	td.appendChild (document.createTextNode(flight_to.getAttribute('stops')));
	tr.appendChild (td);

	// Tabellenzeile mit den Überschriften in Tabelle einhängen.
	t.appendChild (tr);


	var tr = document.createElement ('tr');
	var td = document.createElement ('td');

	var flight_back=xml.getElementsByTagName('flight_back')[0];
	var td = document.createElement ('td');
	td.style.width="180px";
	td.appendChild (document.createTextNode(flight_back.getAttribute('dep') + ' - ' +flight_back.getAttribute('dst')));
	tr.appendChild (td);

	var td = document.createElement ('td');
	td.style.width="70px";
	td.appendChild (document.createTextNode(flight_back.getAttribute('date')));
	tr.appendChild (td);

	var td = document.createElement ('td');
	td.style.width="80px";
	td.appendChild (document.createTextNode(flight_back.getAttribute('deptime') + ' - ' +flight_back.getAttribute('arrtime')));
	tr.appendChild (td);

	var td = document.createElement ('td');
	td.style.width="50px";
	td.appendChild (document.createTextNode(flight_back.getAttribute('duration')));
	tr.appendChild (td);

	var td = document.createElement ('td');
	td.appendChild (document.createTextNode(flight_back.getAttribute('airlines')));
	tr.appendChild (td);

	var td = document.createElement ('td');
	td.style.width="40px";
	td.appendChild (document.createTextNode(flight_back.getAttribute('stops')));
	tr.appendChild (td);

	// Tabellenzeile mit den Überschriften in Tabelle einhängen.
	t.appendChild (tr);



	var tr = document.createElement ('tr');
	var td = document.createElement ('td');
	var a = document.createElement ('a');

	var ota=flight.getAttribute('ota');
	var url=flight.getAttribute('url');

	a.appendChild (document.createTextNode (ota+' ('+price+')'));
	a.href=url;
	a.target="_blank";
	td.appendChild (a);
	td.style.width="10px";
	td.colSpan="8";

	this.links=td;

	tr.appendChild (td);


	// Tabellenzeile mit den Überschriften in Tabelle einhängen.
	t.appendChild (tr);



	e('resultlist').appendChild(t);


	return true;
}
var override_rowcount=false;

function search_more()
{
	override_rowcount=true;
	get_flight_details();
	e('search_more').style.display='none';
	e('loader').style.display='';
}

var rowcount=0;
function get_flight_details()
{

// //alert(flight_list.length);
	if(flight_list.length>=1){
	var code=flight_list.shift();
// 		//alert(flight_list.length);


	ajax("GET", main_path_+'flight'+pers_string_url+'/'+code, function()
	{
		e('resultlist_hidden').innerHTML=html;

		if(typeof e('result_ota') == "object")
		{
			var ota=e('result_ota').innerHTML;
			if(ota.length>0)
			{
				var id=e('result_id').innerHTML;
				var flightcode=e('result_flightcode').innerHTML;
				if(typeof e('result_'+flightcode)!="object")
				{
					rowcount++;
					var res_outer=document.createElement('div');
					var res=document.createElement('div');
					res.className="flight_list";
					if(rowcount%2)res.style.backgroundColor='#E2E2E2';
					else res.style.backgroundColor='#FFFFFF';
					res.setAttribute("autocomplete","OFF");
					res.id='result_'+flightcode;
					var code=e('result_html').innerHTML;
					res.innerHTML=e('result_html').innerHTML;
					res_outer.appendChild(res);
					e('resultlist').appendChild(res_outer);
				}
				else
				{
					e('a_'+flightcode).innerHTML+=e('result_link').innerHTML;

				}
			}
		}
		if(rowcount<10 || override_rowcount)
		{
			e('search_more').style.display='none';
			window.setTimeout('get_flight_details();',10);
		}
		else
		{
			e('search_more').style.display='';
			e('loader').style.display='none';
		}
	},new Array(),'html');
	}
	else get_more_flights();
	return true;
}

var flights_quest_count=0;
function get_more_flights()
{
	if(handle_)
	{

		ajax("GET", main_path_+'getflights/'+handle_+'/'+flights_quest_count, function()
		{
// 	alert(html);
			flights_quest_count++;
			var new_flights=0;
			var codes=html.split('|');
			if(codes[0]=="responseOK")
			{
				var count=codes.length;
				for(var i=2;i<count;i++)
				{
					flight_list.push(codes[i]);
					new_flights++;
				}
				if(new_flights>0)get_flight_details();
			}
			if (codes[0]!="responseOK" || new_flights==0)
			{
				get_handle();
// 				e('loader').style.display='none';
// 				return false;
			}

		},new Array(),'html');
	}
	else
	{
		get_handle();
	}
// //alert("foo");

//e('loader').style.display='none';
}
var handle_count=0;
function get_handle()
{
	flights_quest_count=0;
	if(handle_count<4)
	{
		handle_count++;
		window.setTimeout(function(){
			ajax("POST", main_path_+'getflights', function()
			{
				var temp=html.split('|');
				handle_=temp[0];
// 				alert(temp[1]);
				get_flight_details();
			},handlearray,'html');
		},1000);
	}
	else
	{
		e('loader').style.display='none';
	}
}
// Searchform: Choose between Oneway or Oneway + Return
function flight_dir(dir)
{
	e('flight_dir').value=dir;
	if(dir==1)
	{
		e('flight_dir_1').src=e('flight_dir_1').src.replace('map_desel','map_sel');
		e('flight_dir_2').src=e('flight_dir_2').src.replace('map_sel','map_desel');
		e('date_dep').style.display='none';
	}
	if(dir==2)
	{
		e('flight_dir_2').src=e('flight_dir_2').src.replace('map_desel','map_sel');
		e('flight_dir_1').src=e('flight_dir_1').src.replace('map_sel','map_desel');
		e('date_dep').style.display='';
	}

}

// Searchform: Choose between prices for next six month, one selected month or selected day
function datetype(date, dir)
{
	e('datetype_'+dir).value=date;
	if(date==1)
	{
		e('datetype_'+dir+'_1').src=e('datetype_'+dir+'_1').src.replace('map_desel','map_sel');
		e('datetype_'+dir+'_2').src=e('datetype_'+dir+'_2').src.replace('map_sel','map_desel');
		e('datetype_'+dir+'_3').src=e('datetype_'+dir+'_3').src.replace('map_sel','map_desel');
	}
	if(date==2)
	{
		e('datetype_'+dir+'_1').src=e('datetype_'+dir+'_1').src.replace('map_sel','map_desel');
		e('datetype_'+dir+'_2').src=e('datetype_'+dir+'_2').src.replace('map_desel','map_sel');
		e('datetype_'+dir+'_3').src=e('datetype_'+dir+'_3').src.replace('map_sel','map_desel');
	}
	if(date==3)
	{
		var u=e('datetype_'+dir+'_1').src.replace('map_sel','map_desel');
		e('datetype_'+dir+'_1').src=u;
		e('datetype_'+dir+'_2').src=u;
		e('datetype_'+dir+'_3').src=e('datetype_'+dir+'_3').src.replace('map_desel','map_sel');
	}

}


function show_dateselect(arrdep,daymon)
{

	closeselect_=false;
	closeall();
	if(do_select==arrdep+daymon)
	{
		do_select='';
	}
	else
	{
		do_select=arrdep+daymon;
		if(daymon=='cal' || daymon=='cal2')make_calendar(e(daymon+'_'+arrdep+'_select'),e('mon_'+arrdep).value);
		showdiv(daymon+'_'+arrdep+'_select');
		window.setTimeout(function(){closeselect_=true;},10);
	}
}
document.onselectstart = function() { return false; };

var do_select;
var closeselect_=false;
function closeall(){
	if(e('orderby_select'))hidediv('orderby_select');
	hidediv('day_arr_select');
	hidediv('day_dep_select');
	hidediv('mon_arr_select');
	hidediv('mon_dep_select');
	hidediv('mon2_arr_select');
	hidediv('mon2_dep_select');
	hidediv('cal_arr_select');
	hidediv('cal_dep_select');
	hidediv('ex_arr_select');
	hidediv('ex_dep_select');
// 	hidediv('check_in_select');
// 	hidediv('check_out_select');

	if(typeof e('adult_select')=="object")hidediv('adult_select');
	if(typeof e('children_select')=="object")hidediv('children_select');
	if(typeof e('babys_select')=="object")hidediv('babys_select');

}
document.body.onclick=function()
{
	if(closeselect_)
		{
			closeall();
		do_select='';
		}
	closeselect_=false;
}
function make_calendar(par,date_)
{
	par.innerHTML='';
	var d=new Date();
	var now=new Date();
	if(date_)
	{
		var m=date_;
		d.setFullYear(m.substr(0,4));
		d.setMonth(m.substr(5,2)*1-1);
	}
	d.setDate('01');
	var wday=d.getDay();
	if(wday=='0')wday=7;
	var mdays=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	var mdays_this=mdays[d.getMonth()]+wday;
	var n_y=(d.getFullYear()>9)?d.getFullYear():'0'+d.getFullYear();
	var n_m=(d.getMonth()>8)?(d.getMonth()*1+1):'0'+(d.getMonth()*1+1);

	//Last month:
	var last_year=n_y;
	last_month=n_m*1-1;if(last_month<0){last_month=12;last_year--;}
	last_month=(last_month>9)?last_month:'0'+last_month;
	var next_year=n_y;

	var next_month=n_m*1+1;
	if(next_month>12){next_month=1;next_year++;}
	next_month=(next_month>9)?next_month:'0'+next_month;

	var monthbar;

	var next_year_string=next_year+"";
	var last_year_string=last_year+"";
	monthbar="<div class='cal_monthbar_arrow'";
	if(first_month_<=last_year+'-'+last_month)monthbar+="onclick='show_calselect("+'"'+par.id+'","'+last_year_string+'-'+last_month+'"'+");'";
	monthbar+="><a>&laquo</a></div>";
	monthbar+="<div class='cal_monthbar_month'><b>"+cal_lang[d.getMonth()]+"</b></div>";
	monthbar+="<div class='cal_monthbar_arrow' ";
	if(last_month_>next_year+'-'+next_month)monthbar+=" onclick='show_calselect("+'"'+par.id+'","'+next_year_string+'-'+next_month+'"'+");'";
	monthbar+="><a>&raquo</a></div>";
	par.innerHTML=monthbar;

	for(var wd=0;wd<7;wd++)
	{
		var day=document.createElement('div');
		day.innerHTML="<div class='cal_wday_inner'>"+day_lang[wd]+"</div>";
		day.className="cal_wday";
		par.appendChild(day);

	}

	for(var k=0;k<(mdays_this-1);k++)
	{
		var day=document.createElement('div');
		var this_day=k-wday+2;
		if(this_day>0)
		{
// 			n_y=n_y.replace('20','');
			var n_d=((k-wday+2)>7)?(k-wday+2):'0'+(k-wday+2);
			if(d.getMonth()==now.getMonth() && Math.round(n_d)<Math.round(now.getDate()))
			{
			day.innerHTML="<div class='cal_singleday_inner'><strike>"+n_d+"</strike></div>";
			day.className="cal_singleday_de";
			}
			else if(d.getMonth()==now.getMonth() && Math.round(n_d)==Math.round(now.getDate()))
			{
			day.innerHTML="<div style='background-color:#FFFFFF;' class='cal_singleday_inner' onclick='selectdate("+'"'+par.id+'","'+n_y+'-'+n_m+'","'+n_d+'"'+");'>"+n_d+"</div>";
/*			day.onmouseover=function(){this.className="cal_singleday_mo";}
			day.onmouseout=function(){this.className="cal_singleday";}*/
			day.className="cal_singleday_today";
			}
			else
			{
			day.innerHTML="<div class='cal_singleday_inner' onclick='selectdate("+'"'+par.id+'","'+n_y+'-'+n_m+'","'+n_d+'"'+");'>"+n_d+"</div>";
			day.onmouseover=function(){this.className="cal_singleday_mo";}
			day.onmouseout=function(){this.className="cal_singleday";}
			day.className="cal_singleday";
			}
		}
		else day.className="cal_singleday";

		par.appendChild(day);
	}
// 	window.setTimeout(function(){closeselect_=true;},10);
}
function show_calselect(par,yearmonth)
{
// //alert(yearmonth);

	closeselect_=false;
	var par_e=e(par);
	par=par.replace('_select','');
	if(!yearmonth)var yearmonth=e('date_'+par).value;
	make_calendar(par_e,yearmonth);
	showdiv(par+'_select');


}

function show_calinput(par,yearmonth){
// 	alert("blubb");
	closeselect_=false;
	var par_e=e(par);
// 	par=par.replace('_select','');
	var date_parts=e(yearmonth).value.split(/\./);
	closeall();
// 	if(!yearmonth)var yearmonth=e('date_'+par).value;
	if(date_parts.length==3)
		make_calendar(par_e,date_parts[2].match(/\d+/)[0]+'.'+date_parts[1].match(/\d+/)[0]);
	else
		make_calendar(par_e);
	window.setTimeout(function(){closeselect_=true;},500);
	showdiv(par);
// 	closeselect_=true;
}

function selectdate(par,m,d)
{
// //alert('bla');
	if(par=="cal_arr_select")var arrdep="arr";
	if(par=="cal_dep_select")var arrdep="dep";
	if(arrdep){
	set_date(arrdep,'day',d);
	set_date(arrdep,'mon',m,cal_lang[m.substr(5,2)*1-1]);}
	if(par=="check_in_select" || par=="check_in_select2"){
		if(par=="check_in_select2")
			var add="2";
		else
			var add="";
		e("check_in"+add).value=d+"."+m.substr(5,2)+"."+m.substr(0,4);
		var date_parts=e("check_out"+add).value.split(/\./);
		var in_date=new Date(m.substr(0,4),m.substr(5,2)-1,d);
		var out_date=new Date(date_parts[2],date_parts[1]-1,date_parts[0]);
		if(in_date>=out_date)
		{
			tm=new Date(in_date.getTime()+24*3600*1000);
			var m=tm.getMonth()+1;
			if(m<10)m='0'+m;
			var d=tm.getDate();
			if(d<10)d='0'+d;
			e("check_out"+add).value=d+"."+m+"."+tm.getFullYear();
		}
		closeselect_=true;
		closeall();
	}
	if(par=="check_out_select" || par=="check_out_select2"){
// 		alert("blubb");
		if(par=="check_out_select2")
			var add="2";
		else
			var add="";
		e("check_out"+add).value=d+"."+m.substr(5,2)+"."+m.substr(0,4);
		var date_parts=e("check_in"+add).value.split(/\./);
		var out_date=new Date(m.substr(0,4),m.substr(5,2)-1,d);
		var in_date=new Date(date_parts[2],date_parts[1]-1,date_parts[0]);
		if(out_date<=in_date)
		{
			tm=new Date(out_date.getTime()-24*3600*1000);
			var m=tm.getMonth()+1;
			if(m<10)m='0'+m;
			var d=tm.getDate();
			if(d<10)d='0'+d;
			e("check_in"+add).value=d+"."+m+"."+tm.getFullYear();
		}
		closeselect_=true;
		closeall();
	}
	if(par=="cal_arr_select")
	{
		if((!e("day_dep").value && !e("mon_dep").value)||e("mon_dep").value<m||(e("mon_dep").value==m&&e("day_dep").value<d))
		{
			var tm=new Date(new Date(m.substr(0,4),m.substr(5,2)*1-1,d*1).getTime()+24*3600*1000);
			var m=tm.getMonth()+1;
			if(m<10)m='0'+m;
			var d=tm.getDate();
			if(d<10)d='0'+d;
			var year=tm.getFullYear();
			selectdate('cal_dep_select',year.substr(2)+'-'+m,d);
		}
	}
	if(par=="cal_dep_select")
	{
		if((!e("day_arr").value && !e("mon_arr").value)||e("mon_arr").value>m||(e("mon_arr").value==m&&e("day_arr").value>d))
		{
			var tm=new Date(new Date(m.substr(0,4),m.substr(5,2)*1-1,d*1).getTime()-24*3600*1000);
			var m=tm.getMonth()+1;
			if(m<10)m='0'+m;
			var d=tm.getDate();
			if(d<10)d='0'+d;
			var year=tm.getFullYear();
			selectdate('cal_arr_select',year.substr(2)+'-'+m,d);
		}
	}

}
function set_date(arrdep,daymon,val,text)
{
	closeall();
	val=val.replace(' 20',' ');
	if(text)
	{
		text=text.replace(' 20',' ');
		e(daymon+'_'+arrdep+'_text').innerHTML=text;
		if(daymon=="mon2")e('mon_'+arrdep+'_text').innerHTML=text;
		if(daymon=="mon")e('mon2_'+arrdep+'_text').innerHTML=text;
	}
	else e(daymon+'_'+arrdep+'_text').innerHTML=val;
	e(daymon.replace('2','')+'_'+arrdep).value=val;
	if((arrdep=='arr' && (daymon=='mon' || daymon=='mon2') && !e('mon_dep').value))
	{
		if(text)
		{
			e('mon_dep_text').innerHTML=text;
			e('mon2_dep_text').innerHTML=text;
			e('mon_arr_text').innerHTML=text;
			e('mon2_arr_text').innerHTML=text;
		}
		else
		{
			e('mon_dep_text').innerHTML=val;
			e('mon2_dep_text').innerHTML=val;
			e('mon_arr_text').innerHTML=val;
			e('mon2_arr_text').innerHTML=val;
		}
		e('mon_dep').value=val;

	}
	if(arrdep=='dep' && daymon=='mon' && !e('mon_arr').value)
	{
		if(text)
		{
			e('mon_arr_text').innerHTML=text;
			e('mon2_arr_text').innerHTML=text;
			e('mon_dep_text').innerHTML=text;
			e('mon2_dep_text').innerHTML=text;
		}
		else
		{
			e('mon_arr_text').innerHTML=val;
			e('mon2_arr_text').innerHTML=val;
			e('mon_dep_text').innerHTML=val;
			e('mon2_dep_text').innerHTML=val;
		}
		e('mon_arr').value=val;

	}

}


function search_submit()
{
	var url=main_path_;
	url+=e('dep_airp').value+'/'+e('dest_airp').value+'/';

	var dir=e('flight_dir').value;

	if(dir==1)url+=url_lang['oneway'];
	else url+=url_lang['return'];

	if(e('datetype_arr').value==3 && e('mon_arr').value.length==7 && e('day_arr').value.length==2)
	{
		url+="/"+url_lang['flightdate_to']+'-'+e('mon_arr').value+'-'+e('day_arr').value+'-'+Math.round(e('ex_arr').value);
	}
	else if((e('datetype_arr').value==2 || e('datetype_arr').value==3) && e('mon_arr').value.length==7)
	{
		url+="/"+url_lang['flightdate_to']+'-'+e('mon_arr').value;
	}

	if(dir!=1)
	{
		if(e('datetype_dep').value==3 && e('mon_dep').value.length==7 && e('day_dep').value.length==2)
		{
			url+="/"+url_lang['flightdate_back']+'-'+e('mon_dep').value+'-'+e('day_dep').value+'-'+Math.round(e('ex_dep').value);
		}
		else if((e('datetype_dep').value==2 || e('datetype_dep').value==3) && e('mon_dep').value.length==7)
		{
			url+="/"+url_lang['flightdate_back']+'-'+e('mon_dep').value;
		}
	}

// 	//alert(url);
	location.href=url;
}