
	function initFlightResults()
	{
		filterList = new dojox.collections.ArrayList();
		offerArrayList = new dojox.collections.ArrayList();
		airLineList = new dojox.collections.ArrayList();			
	
		initUniqueAirlines();
		displayAirlineMatrix();
		initMultipliedFlightOffers();		
	}

function addFilter(baseList, type, item, filterValue)
{
	//console.debug("addFilter "+type+" "+ item + " "+filterValue);
	var filterExists="false";
	var filterItems = filterList.getIterator();

	while (!filterItems.atEnd()/*&&filterExists=="false"*/)
	{
		var currentItem = filterItems.get();
		//console.debug(currentItem);

		if (currentItem[1]==type && currentItem[2]==item /*&& currentItem[3]==filterValue*/)
		{
			//console.debug("filter exists");
			filterExists="true";
			//removeFilter(type,item);
		}
	}

	if (filterExists=="false")
	{
		//console.debug("new filter");
		filterList.add(new Array(baseList, type, item, filterValue));
	}

}

function setCurrentPage(pageNum)
{
	//console.debug("currentPage "+pageNum);
	currentPage=pageNum;
}

function getActivesCount()
{
	currentActives=0;
	offerArrayList.forEach(
		function(currentItem)
		{
			if (currentItem["active"]=="true")
			{
				currentActives++;
			}
		});
	return currentActives;
}

function removeAllFromList()
{	
	offerArrayList.forEach(
		function(currentItem)
		{
			currentItem['inList']="false";		
		});	
}

function showAllInList()
{	
	offerArrayList.forEach(
		function(currentItem)
		{
			currentItem['inList']="true";		
		});	
}

function displayFlightPaging()
{
	//removeAllFromList();
	var node = dojo.byId("flightPaging");
		
	clearChildren(node);
	
	var currentActives = getActivesCount();	
	//console.debug("displayFlightPaging currentActives "+currentActives);
	
	var numPages = Math.ceil(currentActives/30);	
	
	var pageList = document.createElement('ul');
	
	if (numPages>1)	
	{
		var pagingLabel = document.createElement('li');
		pagingLabel.appendChild(document.createTextNode("Seite"));
		pageList.appendChild(pagingLabel);
		
		for (var i = 0;i<numPages;i++)
		{	
			if (i<8)		
			{
				var min = i*30;
				var max = i*30+30;
    		
				var currentPageNumber = document.createElement('li');
				//dojo.attr(currentPageNumber,"onclick",);
				//var currentPageParam = String("currentPage="+i+";");
				var currentPageButton = document.createElement('a');
				
				var filterLink = String("javascript:clearFilteredItems();removeFilter('pageNum', 'listNumber');addFilter(offerArrayList, 'pageNum', 'listNumber', "+min+");applyFilters();setCurrentPage("+i+");displayOffers();window.scrollTo(0,0);");
				//+currentPageParam
				if (currentPage == i)
					dojo.attr(currentPageButton,"class","Aktiv");
    		
				dojo.attr(currentPageButton,"href",filterLink);
				dojo.attr(currentPageButton,"target","_top");
						
				currentPageButton.appendChild(document.createTextNode(i+1));		
				currentPageNumber.appendChild(currentPageButton);		
				pageList.appendChild(currentPageNumber);
			}
		}
	}
	node.appendChild(pageList);
	
}

function setLoader()
{
	//console.debug("loader");
	var node = document.getElementById('offersArrayList');
	clearChildren(node);
	var loaderElement = document.createElement('div');
	dojo.attr(loaderElement,"class","loader_main");
	dojo.attr(loaderElement,"id","loader");
	node.appendChild(loaderElement);
	
}

function updateAirlineFilter(airLine)
{
	clearFilteredItems();
	removeFilter('airline','airlineShort');
	removeFilter('pageNum', 'listNumber');
	
	addFilter(offerArrayList, 'pageNum', 'listNumber', 0);
	addFilter(offerArrayList,'airline','airlineShort',airLine);
	
	setCurrentPage(0);
	applyFilters();
	//displayOffers();
	applyFilters();
	displayOffers();
}
 	
function displayAirlineMatrix()
{ 	
 	//flugmatrix airlinefilter

 	var matrixLogoTable = document.createElement('table');
 	var matrixLogoTableBody = document.createElement('tbody');
 	//matrixLogoTable.appendChild(matrixLogoTableBody);
 	matrixLogoTable.setAttribute("cellpadding","0");
 	matrixLogoTable.setAttribute("cellspacing","0");
 	matrixLogoTable.setAttribute("border","0");
 		var matrixLogoRow = document.createElement('tr');
 		var matrixLogoHeader = document.createElement('th');
 			matrixLogoHeader.appendChild(document.createTextNode("Airline"));
 		matrixLogoRow.appendChild(matrixLogoHeader);

		var airLineListItems = airLineList.getIterator();
		var airLineListItemCount = 0;

		//while (!airLineListItems.atEnd() && airLineListItemCount<6)
		while (!airLineListItems.atEnd() && airLineListItemCount<6)
		{
			var airLine = airLineListItems.get();
			//console.debug("airlinepic: "+airLine["airlinePic"] + " for "+airLine['airlineShort']);
				var matrixLogoCell = document.createElement('td');
						var matrixLogoLink = document.createElement('a');
						matrixLogoLink.setAttribute("title","Link zu Fl"+String.fromCharCode(252)+"gen von "+airLine['airlineShort']);																
						//matrixLogoLink.setAttribute("href","javascript:clearFilteredItems();removeFilter('airline','airlineShort');removeFilter('pageNum', 'listNumber');addFilter(offerArrayList, 'pageNum', 'listNumber', 0);addFilter(offerArrayList,'airline','airlineShort','"+airLine['airlineShort']+"');setCurrentPage(0);applyFilters();displayOffers();");
						matrixLogoLink.setAttribute("href","javascript:updateAirlineFilter('"+airLine['airlineShort']+"');");
							var matrixLogoImg = document.createElement('img');
							matrixLogoImg.setAttribute("alt","Ansicht Logo "+airLine['airlineShort']);
							matrixLogoImg.setAttribute("src","/oss/img/airlogos/"+airLine['airlinePic']);
						matrixLogoLink.appendChild(matrixLogoImg);
					matrixLogoCell.appendChild(matrixLogoLink);
					matrixLogoRow.appendChild(matrixLogoCell);

			airLineListItemCount++;
		}

		var clearAirlinesCell = document.createElement('td');
			var clearAirlinesLink = document.createElement('a');
			clearAirlinesLink.setAttribute("title","Alle Airlines");
			clearAirlinesLink.setAttribute("href","javascript:clearFilteredItems();removeFilter('pageNum', 'listNumber');addFilter(offerArrayList, 'pageNum', 'listNumber', 0);setCurrentPage(0);removeFilter('airline','airlineShort');applyFilters();displayOffers();");
			var clearLogoImg = document.createElement('img');
			clearLogoImg.setAttribute("alt","Alle Airlines");
			clearLogoImg.setAttribute("src","/oss/img/airlogos/alleAirlines.gif");
			clearAirlinesLink.appendChild(clearLogoImg);
			clearAirlinesCell.appendChild(clearAirlinesLink);
		matrixLogoRow.appendChild(clearAirlinesCell);

		//airLineListItemCount++;
		if(airLineListItemCount<6)
		{
			var missingLineCount = 6-airLineListItemCount;

			for (var i=0;i<missingLineCount;i++)
			{
				var matrixLogoCellEmpty = document.createElement('td');

					var matrixLogoImgEmpty = document.createElement('img');
						matrixLogoImgEmpty.setAttribute("alt","");
						matrixLogoImgEmpty.setAttribute("src","/oss/img/spacer.gif");
						matrixLogoImgEmpty.setAttribute("width","51px");
						matrixLogoImgEmpty.setAttribute("height","33px");
						matrixLogoImgEmpty.setAttribute("border","0px");

					matrixLogoCellEmpty.appendChild(matrixLogoImgEmpty);

				matrixLogoRow.appendChild(matrixLogoCellEmpty);
			}
		}


		matrixLogoTableBody.appendChild(matrixLogoRow);
		//matrixLogoTable.appendChild(matrixLogoTableBody);


		//matrix  direct flight
		var matrixDirectFlightRow = document.createElement('tr');
			var matrixDirectFlightHeader = document.createElement('th');
 				matrixDirectFlightHeader.appendChild(document.createTextNode("Direktflug"));
 			matrixDirectFlightRow.appendChild(matrixDirectFlightHeader);
		for (var i=0;i<6;i++)
		{
			  //var airLine=airLineList.item(i);
				var matrixDirectFlightCell = document.createElement('td');
				//if (parseInt(airLine['stops'],10)=0)
				if (typeof airLineList.item(i)!='undefined')
				{
					//console.log("airline found "+airLineList.item(i)['airlineShort']+" direct "+airLineList.item(i)['lowestPriceDirect']+" stop "+airLineList.item(i)['lowestPriceStop']);
					if (airLineList.item(i)["lowestPriceDirect"]!=0)
					{
						var cheapestFlightLink = document.createElement('a');
						cheapestFlightLink.setAttribute("title","Link zu Fl"+String.fromCharCode(252)+"gen von "+airLineList.item(i)['airlineShort']+"");
						cheapestFlightLink.setAttribute("href","javascript:clearFilteredItems();removeFilter('airline','airlineShort');addFilter(offerArrayList,'airline','airlineShort','"+airLineList.item(i)['airlineShort']+"');applyFilters();displayOffers();");
						cheapestFlightLink.appendChild(document.createTextNode(dojo.number.format(airLineList.item(i)["lowestPriceDirect"],{places:2})));
						matrixDirectFlightCell.appendChild(cheapestFlightLink);
					}
				}
				else
					break;

				matrixDirectFlightRow.appendChild(matrixDirectFlightCell);
		}

		var matrixDirectFlightCell = document.createElement('td');
		var cheapestFlightLink = document.createElement('a');
		cheapestFlightLink.setAttribute("title","Alle Airlines");
		cheapestFlightLink.setAttribute("href","javascript:clearFilteredItems();removeFilter('airline','airlineShort');applyFilters();displayOffers();");
		var priceDirect = findLowestPrice('direct');

		if (priceDirect != "-1")
		{
		cheapestFlightLink.appendChild(
			document.createTextNode(
				dojo.number.format(
					priceDirect,{places:2}
					)
					)
					);
		}
		else
		{
			cheapestFlightLink.appendChild(document.createTextNode(""));
		}

		matrixDirectFlightCell.appendChild(cheapestFlightLink);
		matrixDirectFlightRow.appendChild(matrixDirectFlightCell);

		matrixLogoTableBody.appendChild(matrixDirectFlightRow);

		//matrix stopps
		var matrixStopRow = document.createElement('tr');
			var matrixStopHeader = document.createElement('th');
 				matrixStopHeader.appendChild(document.createTextNode("Stopps"));
 			matrixStopRow.appendChild(matrixStopHeader);
		for (var i=0;i<6;i++)
		{
				//var airLine=airLineList.item(i);
				var matrixStopCell = document.createElement('td');
				if (typeof airLineList.item(i)!='undefined')
				{
					if (airLineList.item(i)["lowestPriceStop"]!=0)
					{
						var cheapestFlightLink = document.createElement('a');
						cheapestFlightLink.setAttribute("title","Link zu Fl"+String.fromCharCode(252)+"gen von "+airLineList.item(i)['airlineShort']);
						cheapestFlightLink.setAttribute("href","javascript:clearFilteredItems();removeFilter('airline','airlineShort');addFilter(offerArrayList,'airline','airlineShort','"+airLineList.item(i)['airlineShort']+"');applyFilters();displayOffers();");
						cheapestFlightLink.appendChild(document.createTextNode(dojo.number.format(airLineList.item(i)['lowestPriceStop'],{places:2})));
						matrixStopCell.appendChild(cheapestFlightLink);
					}
				}
				else
					break;
				matrixStopRow.appendChild(matrixStopCell);
		}

		var matrixStopFlightCell = document.createElement('td');
		var cheapestFlightLink = document.createElement('a');
		cheapestFlightLink.setAttribute("title","Alle Airlines");
		cheapestFlightLink.setAttribute("href","javascript:clearFilteredItems();removeFilter('airline','airlineShort');applyFilters();displayOffers();");
		var priceStop = findLowestPrice('stop');

		if (priceStop != "-1")
		{
		cheapestFlightLink.appendChild(
			document.createTextNode(
				dojo.number.format(
					priceStop,{places:2}
					)
					)
					);
		}
		else
		{
			cheapestFlightLink.appendChild(document.createTextNode(""));
		}

		matrixStopFlightCell.appendChild(cheapestFlightLink);
		matrixStopRow.appendChild(matrixStopFlightCell);

		matrixLogoTableBody.appendChild(matrixStopRow);
		matrixLogoTable.appendChild(matrixLogoTableBody);
		document.getElementById('Suche-FlugAirlineMatrix').appendChild(matrixLogoTable);
	}

function findLowestPrice(type)
{
	var lowestDirect = 0;
	var lowestStop = 0;

	if (type=="direct")
	{
		for (var i =0;i<airLineList.count;i++)
		{
			if (airLineList.item(i)['lowestPriceDirect'] > 0)
			{
				if (airLineList.item(i)['lowestPriceDirect']< lowestDirect ||lowestDirect == 0)
				{
					//console.debug("lowestDirect current: "+airLineList.item(i)['lowestPriceDirect']);
					lowestDirect = airLineList.item(i)['lowestPriceDirect'];
				}
			}
		}

		//console.debug("lowestDirect "+lowestDirect);
		if (lowestDirect == 0)
		{
			return -1;
		}
		else
		{
			return lowestDirect;
		}
	}


	if (type=="stop")
	{
		for (var i =0;i<airLineList.count;i++)
		{
			if (airLineList.item(i)['lowestPriceStop'] > 0)
			{
				if (airLineList.item(i)['lowestPriceStop']< lowestStop ||lowestStop == 0)
				{
					//console.debug("lowestStop current: "+airLineList.item(i)['lowestPriceStop']);
					lowestStop = airLineList.item(i)['lowestPriceStop'];
				}
			}
		}
		//console.debug("lowestStop "+lowestStop);
		if (lowestStop == 0)
		{
			return -1;
		}
		else
		{
			return lowestStop;
		}
	}
}



function clearAllFilters()
{
	filterList.clear();
	clearFilteredItems();
}

function clearFilteredItems()
{
	var items = offerArrayList.getIterator();

	while (!items.atEnd())
	{
		var currentItem = items.get();
		currentItem["active"]="true";
		currentItem["inList"]="true";
	}
}

function filterAllItems()
{
	var items = offerArrayList.getIterator();

	while (!items.atEnd())
	{
		var currentItem = items.get();
		currentItem["active"]="false";		
	}
}


function clearChildren(node)
{
	if (node.hasChildNodes())
	{
		var size = node.childNodes.length;

		for (var i=0;i<size;i++)
		{
			//console.debug("displayOffers removing node:"+i+ " of "+size);
			var child = node.removeChild(node.firstChild);
			//console.debug("displayOffers removed: "+child);
		}
	}
}

function displayOffers()
{
	//var start = parseInt((new Date()).getTime()+0);
	//console.debug("1: "+(new Date().getTime()-start));

	var itemCount = 0;
	var node = document.getElementById('offersArrayList');
	//console.debug("clearChildren");
	clearChildren(node);

	//console.debug("2: "+(new Date().getTime()-start));

	offerArrayList.forEach(function(currentItem){
		//console.debug("appendChild "+currentItem["id"]);
		if (currentItem["inList"]=="true" && currentItem["active"]=="true")
		{
			itemCount++;
			node.appendChild(currentItem["displayElement"]);
		}
	});
	//console.debug("3: "+(new Date().getTime()-start));
	
	

	if (itemCount == 0)
	{
		var noResultForFilterDiv = document.createElement('div');
		//noResultForFilterDiv.setAttribute("class","srf-noresults");
		dojo.attr(noResultForFilterDiv,"class","srf-noresults");
		noResultForFilterDiv.appendChild(document.createTextNode("Zu den ausgew"+String.fromCharCode(228)+"hlten Flugzeiten, gibt es bei der gew"+String.fromCharCode(228)+"hlten Fluglinie keine Verbindungen. Bitte ver"+String.fromCharCode(228)+"ndern Sie die gew"+String.fromCharCode(228)+"hlten Flugzeiten oder w"+String.fromCharCode(228)+"hlen eine andere Fluglinie aus."));

		node.appendChild(noResultForFilterDiv);
	}

	displayFlightPaging();

}

function setAttribute(elem, attributeName, attributeValue)
{
	var attributeNode = document.createAttribute(attributeName);
	attributeNode.nodeValue = attributeValue;
	elem.setAttributeNode(attributeNode);
}


function createOffer(currentItem, itemCount)
{

	//console.debug("DISPLAY OFFERS");
	//var start = parseInt((new Date()).getTime()+0);

	//console.debug("1: "+(new Date().getTime()-start));

	var crossSellLink = "";


	if (dijit.byId("newsearch_form")!=null && flightType != "" && flightType != "openjaw")
	{
	 //crossSellLink = "/de_DE/lmn2/travel/dp/" + dijit.byId("newsearch_form").createLink("HotelFlug",currentItem['airlineValOutward']);
	 //console.debug("crossselllink: "+crossSellLink);
	}



			if (multiproduct == "false")
				var bookingLink = (currentItem['chooseAndProceedToBookingLink'])+"&outward_id="+currentItem['outwardFlightId']+"&return_id="+currentItem['returnFlightId'];
			else
				var bookingLink = (currentItem['chooseLink'])+"&outward_id="+currentItem['outwardFlightId']+"&return_id="+currentItem['returnFlightId'];

			//offer Item
			var newOffer = document.createElement('div');

			if (typeof(currentItem["returnFlightId"]) != "undefined" && currentItem["returnFlightId"]!="--" && currentItem["returnFlightId"]!="")
			{
				setAttribute(newOffer,"class","Angebot-Flug");
			}
			else
			{
				setAttribute(newOffer,"class","Angebot-HinFlug");
			}

			//newOffer.setAttribute("class","Angebot-Flug");

				//price
				var divPrice = document.createElement('div');
				//divPrice.setAttribute("class","Flug-Preise");
				
				setAttribute(divPrice,"class","Flug-Preise");

				//total price
					var divPriceTotal = document.createElement('div');
					//divPriceTotal.setAttribute("class","Flug-Gesamtpreis");
					setAttribute(divPriceTotal,"class","Flug-Gesamtpreis");
						var divPriceTotalText = document.createTextNode("Gesamtpreis "+ dojo.number.format(currentItem["totalPrice"],{places:2}) +" "+ String.fromCharCode(8364));
						divPriceTotal.appendChild(divPriceTotalText);
				divPrice.appendChild(divPriceTotal);

				//price per person
					var divPricePerPerson = document.createElement('div');
					//divPricePerPerson.setAttribute("class","Flug-PreisProPerson");
					if (typeof(currentItem["returnFlightId"]) != "undefined" && currentItem["returnFlightId"]!="--" && currentItem["returnFlightId"]!="")
						setAttribute(divPricePerPerson,"class","Flug-PreisProPerson");
					else
						setAttribute(divPricePerPerson,"class","Flug-PreisProPersonHinflug");

						var divPricePerPersonEm = document.createElement('em');
							var divPricePerPersonText = document.createElement('a');
							//divPricePerPersonText.setAttribute("href","");
							//divPricePerPersonText.setAttribute("title","");
							setAttribute(divPricePerPersonText,"href",bookingLink);
							setAttribute(divPricePerPersonText,"title","");


							divPricePerPersonText.appendChild(document.createTextNode(dojo.number.format(currentItem["adultPrice"],{places:2})+" "+String.fromCharCode(8364)));
							//divPricePerPersonText.appendChild(document.createTextNode(currentItem["adultPrice"]+" "+String.fromCharCode(8364)));
						divPricePerPersonEm.appendChild(divPricePerPersonText);
					divPricePerPerson.appendChild(divPricePerPersonEm);
					divPricePerPerson.appendChild(document.createTextNode("Flugpreis pro Person"));

				divPrice.appendChild(divPricePerPerson);

				//price select button
					var divPriceSelectButton = document.createElement('div');
					//divPriceSelectButton.setAttribute("class","Flug-Schaltflaeche-Auswaehlen");
					if (typeof(currentItem["returnFlightId"]) != "undefined" && currentItem["returnFlightId"]!="--" && currentItem["returnFlightId"]!="")
						setAttribute(divPriceSelectButton,"class","Flug-Schaltflaeche-Auswaehlen");
					else
						setAttribute(divPriceSelectButton,"class","Flug-OneWay-Schaltflaeche-Auswaehlen");

						var divPriceSelectButtonLink = document.createElement('a');
						setAttribute(divPriceSelectButtonLink,"id","Flight_Book_"+itemCount);
						//divPriceSelectButtonLink.setAttribute("href",bookingLink);
						setAttribute(divPriceSelectButtonLink,"href",bookingLink);

						//divPriceSelectButtonLink.setAttribute("title","");
						setAttribute(divPriceSelectButtonLink,"title","");
							var divPriceSelectButtonText = document.createTextNode("Ausw"+String.fromCharCode(228)+"hlen");
						divPriceSelectButtonLink.appendChild(divPriceSelectButtonText);
					divPriceSelectButton.appendChild(divPriceSelectButtonLink);
				divPrice.appendChild(divPriceSelectButton);

				newOffer.appendChild(divPrice);

				//hinflug
				var divFlugHinflug = document.createElement('div');
				//divFlugHinflug.setAttribute("class","Flug-Hinflug");
				setAttribute(divFlugHinflug,"class","Flug-Hinflug");
					var ulElementHinflug = document.createElement('ul');

						//general info
						var generalLiElementHinflug = document.createElement('li');
						//generalLiElementHinflug.setAttribute("class","Flug-Allgemein");
						setAttribute(generalLiElementHinflug,"class","Flug-Allgemein");


							//headline
							var headLineHinflug = document.createElement('h4');
								var headLineHinflugText = document.createTextNode("Hinflug");
								headLineHinflug.appendChild(headLineHinflugText);
							generalLiElementHinflug.appendChild(headLineHinflug);

							//airline logo
							var logoHinHinflug = document.createElement('div');
							//logoHinHinflug.setAttribute("class","Airlinelogo");
							setAttribute(logoHinHinflug,"class","Airlinelogo");

								var logoImageHinHinflug = document.createElement('img');
								//logoImageHinHinflug.setAttribute("alt",currentItem["airlineShort"]);
								setAttribute(logoImageHinHinflug,"alt",currentItem["airlineShort"]);
								//logoImageHinHinflug.setAttribute("src","/oss/img/airlogos/"+currentItem["airlinePicOutward"]);
								setAttribute(logoImageHinHinflug,"src","/oss/img/airlogos/"+currentItem["airlinePicOutward"]);
								logoHinHinflug.appendChild(logoImageHinHinflug);

							generalLiElementHinflug.appendChild(logoHinHinflug);

							//flight number
							var flugNummerHinHinflug = document.createElement('div');
							//flugNummerHinHinflug.setAttribute("class","Flug-Nummer");
							setAttribute(flugNummerHinHinflug,"class","Flug-Nummer");
								var flugNummerHinHinflugText = document.createTextNode(currentItem["airlineValOutward"]+currentItem["flightNumberOutward"]);
								flugNummerHinHinflug.appendChild(flugNummerHinHinflugText);
						generalLiElementHinflug.appendChild(flugNummerHinHinflug);

						ulElementHinflug.appendChild(generalLiElementHinflug);

						//departure
						var departureLiElementHinflug = document.createElement('li');
						//departureLiElementHinflug.setAttribute("class","Abflugszeit");
						setAttribute(departureLiElementHinflug,"class","Abflugszeit");
						var departureTimeElementHinflugAbDiv = document.createElement('div');
						departureTimeElementHinflugAbDiv.appendChild(document.createTextNode("Ab: "));
							var departureTimeElementHinflug = document.createTextNode(currentItem["outwardDeptDay"]+", "+currentItem["outwardDeptDate"]+", ");
							var departureTimeElementHinflug2 = document.createElement('b');
								var departureTimeElementHinflug2Text = document.createTextNode(currentItem["outwardDeptTime"]+" Uhr");
								departureTimeElementHinflug2.appendChild(departureTimeElementHinflug2Text);
							var departureLocationHinflug = document.createElement('div');
							//departureLocationHinflug.setAttribute("class","Flug-Ort");
							setAttribute(departureLocationHinflug,"class","Flug-Ort");
								var departureLocationHinflugText = document.createTextNode(currentItem["outwardDeptName"]+" ("+currentItem["outwardDeptValue"]+")");
								departureLocationHinflug.appendChild(departureLocationHinflugText);
								departureLiElementHinflug.appendChild(departureTimeElementHinflugAbDiv);
							departureLiElementHinflug.appendChild(departureTimeElementHinflug);
							departureLiElementHinflug.appendChild(departureTimeElementHinflug2);
							departureLiElementHinflug.appendChild(departureLocationHinflug);
						ulElementHinflug.appendChild(departureLiElementHinflug);

						//arrival

						var arrivalLiElementHinflug = document.createElement('li');
						arrivalLiElementHinflug.setAttribute("class","Ankunftszeit");
						setAttribute(arrivalLiElementHinflug,"class","Ankunftszeit");
						var departureTimeElementHinflugAnDiv = document.createElement('div');
						departureTimeElementHinflugAnDiv.appendChild(document.createTextNode("An: "));
							var arrivalTimeElementHinflug = document.createTextNode(currentItem["outwardDestDay"]+", "+currentItem["outwardDestDate"]+", ");
							var arrivalTimeElementHinflug2 = document.createElement('b');
								var arrivalTimeElementHinflug2Text = document.createTextNode(currentItem["outwardArrivalTime"]+" Uhr");
								arrivalTimeElementHinflug2.appendChild(arrivalTimeElementHinflug2Text);
							var destinationLocationHinflug = document.createElement('div');
							destinationLocationHinflug.setAttribute("class","Flug-Ort");
							setAttribute(destinationLocationHinflug,"class","Flug-Ort");
								var destinationLocationHinflugText = document.createTextNode(currentItem["outwardDestName"]+" ("+currentItem["outwardDestValue"]+")");
								destinationLocationHinflug.appendChild(destinationLocationHinflugText);

							arrivalLiElementHinflug.appendChild(departureTimeElementHinflugAnDiv);
							arrivalLiElementHinflug.appendChild(arrivalTimeElementHinflug);
							arrivalLiElementHinflug.appendChild(arrivalTimeElementHinflug2);
							arrivalLiElementHinflug.appendChild(destinationLocationHinflug);
						ulElementHinflug.appendChild(arrivalLiElementHinflug);


						//duration
						/*
						var durationLiElementHinflug = document.createElement('li');
						durationLiElementHinflug.setAttribute("class","Flugdauer");
							var durationTimeElementHinflug = document.createTextNode("Dauer: ");
							durationLiElementHinflug.appendChild(durationTimeElementHinflug);
						ulElementHinflug.appendChild(durationLiElementHinflug);
						*/


						//umsteigen
						var stopLiElementHinflug = document.createElement('li');
						//stopLiElementHinflug.setAttribute("class","Flugdauer");
						setAttribute(stopLiElementHinflug,"class","Flugdauer");
						var interimStopsHinflug = document.createElement('div');
							interimStopsHinflug.appendChild(document.createTextNode(currentItem["outwardStops"]+" Stopp"));

						stopLiElementHinflug.appendChild(interimStopsHinflug);


						if (currentItem["outwardStops"]!=0)
						{
							var interimAirportHinflug = document.createElement('div');
							if (currentItem["outwardStopAirport"].length>15)
							{
								interimAirportHinflug.appendChild(document.createTextNode("Umsteigen: "+currentItem["outwardStopAirport"].substr(0,15)+"... "));
								var mehrLinkOutward = document.createElement('a');
								setAttribute(mehrLinkOutward,"href",bookingLink);
								interimAirportHinflug.appendChild(mehrLinkOutward);
								mehrLinkOutward.appendChild(document.createTextNode("mehr"));
							}
							else
								interimAirportHinflug.appendChild(document.createTextNode("Umsteigen: "+currentItem["outwardStopAirport"]));


							stopLiElementHinflug.appendChild(interimAirportHinflug);
						}

						ulElementHinflug.appendChild(stopLiElementHinflug);
					divFlugHinflug.appendChild(ulElementHinflug);
				newOffer.appendChild(divFlugHinflug);


				//rueckflug


				var divFlugRueckflug = document.createElement('div');

				//divFlugRueckflug.setAttribute("class","Flug-Rueckflug");
				setAttribute(divFlugRueckflug,"class","Flug-Rueckflug");
				//console.debug("returnFlightId "+currentItem["returnFlightId"]);

				if (currentItem["returnFlightId"]!="--" && currentItem["returnFlightId"]!="" && typeof(currentItem["returnFlightId"]) != "undefined")
				{

					var ulElementRueckflug = document.createElement('ul');

						//general info
						var generalLiElementRueckflug = document.createElement('li');
						//generalLiElementRueckflug.setAttribute("class","Flug-Allgemein");
						setAttribute(generalLiElementRueckflug,"class","Flug-Allgemein");


							//head line
							var headLineRueckflug = document.createElement('h4');
								var headLineRueckText = document.createTextNode("R"+String.fromCharCode(252)+"ckflug");
								headLineRueckflug.appendChild(headLineRueckText);
							generalLiElementRueckflug.appendChild(headLineRueckflug);


							//airline logo
							var logoRueckRueckflug = document.createElement('div');
							//logoRueckRueckflug.setAttribute("class","Airlinelogo");
							setAttribute(logoRueckRueckflug,"class","Airlinelogo");

								var logoImageRueckRueckflug = document.createElement('img');
								//logoImageRueckRueckflug.setAttribute("alt",currentItem["airlineShort"]);
								setAttribute(logoImageRueckRueckflug,"alt",currentItem["airlineShort"]);
								//logoImageRueckRueckflug.setAttribute("src","/oss/img/airlogos/"+currentItem["airlinePicReturn"]);
								setAttribute(logoImageRueckRueckflug,"src","/oss/img/airlogos/"+currentItem["airlinePicReturn"]);
								logoRueckRueckflug.appendChild(logoImageRueckRueckflug);

							generalLiElementRueckflug.appendChild(logoRueckRueckflug);

							//flight number
							var flugNummerRueckRueckflug = document.createElement('div');
							//flugNummerRueckRueckflug.setAttribute("class","Flug-Nummer");
							setAttribute(flugNummerRueckRueckflug,"class","Flug-Nummer");
								var flugNummerRueckRueckflugText = document.createTextNode(currentItem["airlineValReturn"]+currentItem["flightNumberReturn"]);
								flugNummerRueckRueckflug.appendChild(flugNummerRueckRueckflugText);
						generalLiElementRueckflug.appendChild(flugNummerRueckRueckflug);

					ulElementRueckflug.appendChild(generalLiElementRueckflug);

						//departure
						var departureLiElementRueckflug = document.createElement('li');
						//departureLiElementRueckflug.setAttribute("class","Abflugszeit");
						setAttribute(departureLiElementRueckflug,"class","Abflugszeit");
						var departureTimeElementRueckAbDiv = document.createElement('div');
						departureTimeElementRueckAbDiv.appendChild(document.createTextNode("Ab: "));
								var departureTimeElementRueckflug = document.createTextNode(currentItem["returnDeptDay"]+", "+currentItem["returnDeptDate"]+", ");
								var departureTimeElementRueckflug2 = document.createElement('b');
								var departureTimeElementRueckflug2Text = document.createTextNode(currentItem["returnDeptTime"]+" Uhr");
								departureTimeElementRueckflug2.appendChild(departureTimeElementRueckflug2Text);
							var departureLocationRueckflug = document.createElement('div');
							//departureLocationRueckflug.setAttribute("class","Flug-Ort");
							setAttribute(departureLocationRueckflug,"class","Flug-Ort");
								var departureLocationRueckflugText = document.createTextNode(currentItem["returnDeptName"]+" ("+currentItem["returnDeptValue"]+")");
								departureLocationRueckflug.appendChild(departureLocationRueckflugText);
								departureLiElementRueckflug.appendChild(departureTimeElementRueckAbDiv);
							departureLiElementRueckflug.appendChild(departureTimeElementRueckflug);
							departureLiElementRueckflug.appendChild(departureTimeElementRueckflug2);
							departureLiElementRueckflug.appendChild(departureLocationRueckflug);
						ulElementRueckflug.appendChild(departureLiElementRueckflug);


						//arrival
						var arrivalLiElementRueckflug = document.createElement('li');
						//arrivalLiElementRueckflug.setAttribute("class","Ankunftszeit");
						setAttribute(arrivalLiElementRueckflug,"class","Ankunftszeit");
						var departureTimeElementRueckAnDiv = document.createElement('div');
						departureTimeElementRueckAnDiv.appendChild(document.createTextNode("An: "));
							var arrivalTimeElementRueckflug = document.createTextNode(currentItem["returnDestDay"]+", "+currentItem["returnDestDate"]+", ");
								var arrivalTimeElementRueckflug2 = document.createElement('b');
								var arrivalTimeElementRueckflug2Text = document.createTextNode(currentItem["returnArrivalTime"]+" Uhr");
								arrivalTimeElementRueckflug2.appendChild(arrivalTimeElementRueckflug2Text);
							var destinationLocationRueckflug = document.createElement('div');
							//destinationLocationRueckflug.setAttribute("class","Flug-Ort");
							setAttribute(destinationLocationRueckflug,"class","Flug-Ort");
								var destinationLocationRueckflugText = document.createTextNode(currentItem["returnDestName"]+" ("+currentItem["returnDestValue"]+")");
								destinationLocationRueckflug.appendChild(destinationLocationRueckflugText);

							arrivalLiElementRueckflug.appendChild(departureTimeElementRueckAnDiv);
							arrivalLiElementRueckflug.appendChild(arrivalTimeElementRueckflug);
							arrivalLiElementRueckflug.appendChild(arrivalTimeElementRueckflug2);
							arrivalLiElementRueckflug.appendChild(destinationLocationRueckflug);
						ulElementRueckflug.appendChild(arrivalLiElementRueckflug);

						//duration
						/*
						var durationLiElementRueckflug = document.createElement('li');
						durationLiElementRueckflug.setAttribute("class","Flugdauer");
							var durationTimeElementRueckflug = document.createTextNode("Dauer: ");
							durationLiElementRueckflug.appendChild(durationTimeElementRueckflug);
						ulElementRueckflug.appendChild(durationLiElementRueckflug);
					*/

						//umsteigen
						var stopLiElementRueckflug = document.createElement('li');
						//stopLiElementRueckflug.setAttribute("class","Flugdauer");
						setAttribute(stopLiElementRueckflug,"class","Flugdauer");
						var interimStopsRueckflug = document.createElement('div');
							interimStopsRueckflug.appendChild(document.createTextNode(currentItem["returnStops"]+" Stopp"));
						stopLiElementRueckflug.appendChild(interimStopsRueckflug);

						if (currentItem["returnStops"]!=0)
						{
							var interimAirportRueckflug = document.createElement('div');

							if (currentItem["returnStopAirport"].length > 15)
							{
								interimAirportRueckflug.appendChild(document.createTextNode("Umsteigen: "+currentItem["returnStopAirport"].substr(0,15)+"... "));
								var mehrLinkReturn = document.createElement('a');
								setAttribute(mehrLinkReturn,"href",bookingLink);
								//setAttribute(mehrLinkReturn,"class","");
								mehrLinkReturn.appendChild(document.createTextNode("mehr"));
								interimAirportRueckflug.appendChild(mehrLinkReturn);
							}
							else
								interimAirportRueckflug.appendChild(document.createTextNode("Umsteigen: "+currentItem["returnStopAirport"]));

							stopLiElementRueckflug.appendChild(interimAirportRueckflug);
						}
					ulElementRueckflug.appendChild(stopLiElementRueckflug);
					divFlugRueckflug.appendChild(ulElementRueckflug);
				}
				else
				{

				}
				newOffer.appendChild(divFlugRueckflug);

				//cross sell
				if (multiproduct == "false" && flightType != "openjaw" )
				if (currentItem["crossSellRate"]!="")
				{

				var divCrossSell = document.createElement('div');
					/*
					//divCrossSell.setAttribute("class","CrossSell");
					setAttribute(divCrossSell,"class","CrossSell");
					var divCrossSellButton = document.createElement('div');
					//divCrossSellButton.setAttribute("class","Schaltflaeche-Mehr-Sparen");
					dojo.attr(divCrossSellButton,"class","Schaltflaeche-Mehr-Sparen");
					var divCrossSellButtonLink = document.createElement('a');

					//http://www.lastminute.de/de_DE/lmn2/travel/dp/search.do?agent_id=LAD&railSelected=off&depAirport=muc&=2009-01-28&=28.01.09&adultAmount=2&destName=london&=2009-01-30&=30.01.09&kidAge=-1&kidAge=-1&kidAge=-1&flightSelected=on&flightClass=E&carrierCode=YY&hotelSelected=on&hotelCategory=&hotelName=&roomCount=1&catering=&adultsInRoom=2&adultsInRoom=1&adultsInRoom=1&adultsInRoom=1&adultsInRoom=1&adultsInRoom=1&adultsInRoom=1&adultsInRoom=1&pickupType=A&promotionCodes=&depDate=28.01.2009&retDate=30.01.2009&flightType=return&scat=kombi
						//divCrossSellButtonLink.setAttribute("href",crossSellLink);
						dojo.attr(divCrossSellButtonLink,"href",crossSellLink);
						//divCrossSellButtonLink.setAttribute("title","");
						dojo.attr(divCrossSellButtonLink,"title","");
						divCrossSellButtonLink.appendChild(document.createTextNode("Mehr sparen"));
					divCrossSellButton.appendChild(divCrossSellButtonLink);
					var divCrossSellParagraph = document.createElement('p');
					divCrossSellParagraph.appendChild(document.createTextNode("bis "));
					var divCrossSellPrice = document.createElement('em');
					divCrossSellPrice.appendChild(document.createTextNode(currentItem["crossSellRate"]));
					divCrossSellParagraph.appendChild(divCrossSellPrice);
					divCrossSellParagraph.appendChild(document.createTextNode(" sparen bei diesem Flug + Hotel"));
					divCrossSell.appendChild(divCrossSellButton);
					divCrossSell.appendChild(divCrossSellParagraph);
*/
				newOffer.appendChild(divCrossSell);
			}
		return newOffer;
}


function sortOffers(offerList, sortType)
{
	offerArrayList.sort(function(item1, item2){
	//console.log("sorting "+sortType+" type of item1 "+typeof(item1[sortType])+ " value "+item2[sortType]);

	if (item1[sortType] > item2[sortType])
		return 1;
	else if (item1[sortType] < item2[sortType])
		return -1;
	else
		return 0;
	});


}

function applyFilters()
{
	//console.debug("APPLY FILTERS");


	filterList.forEach(
		function(filterItem)
		{
			//console.debug("Setting up Filter: "+filterItem[1]+" "+filterItem[2]+" "+filterItem[3]);

			filterOffers(filterItem[0], filterItem[1], filterItem[2], filterItem[3]);
		}
	);

}

function removeFilter(filterType, filterElement)
{
	//console.debug("Removing Filter: "+filterType+" "+filterElement);

	for (var i=0;i<filterList.count;i++)
	{
		//console.log("checking: "+filterList.item(i)[1]+" "+filterList.item(i)[2]);
		if (filterType == filterList.item(i)[1] && filterElement == filterList.item(i)[2])
		{
			filterList.removeAt(i);
			break;
		}
	}
}

function filterOffers(offerList, filterType, filterElement, filterValue)
{
	//console.debug("FILTEROFFERS");

	//console.debug("filter value: "+filterValue);

	if (filterType == "airline")
	{
		if (filterValue=='SOOW')
		{
				//console.debug("SOOW FILTER!");
				offerArrayList.forEach(
					function(currentItem)
					{
						//console.debug("filterValue: "+filterValue+" filterElement: "+filterElement);
						//console.debug("current Item filterValue: "+currentItem['airlineShortOutward']);
						//console.debug("current Item filterValue: "+currentItem['airlineShortReturn']);
						if (currentItem['flightFareType']!=filterValue)
						{
							//console.debug("set to inactive");
							currentItem["active"]="false";
						}
					}
				);
		}
		else
		{


			offerArrayList.forEach(
				function(currentItem)
				{
					//console.debug("filterValue: "+filterValue+" filterElement: "+filterElement);
					//console.debug("current Item filterValue: "+currentItem['airlineShortOutward']);
					//console.debug("current Item filterValue: "+currentItem['airlineShortReturn']);
					if (currentItem['airlineShortOutward']!=filterValue && currentItem['airlineShortReturn']!=filterValue)
					{
						//console.debug("set to inactive");
						currentItem["active"]="false";
					}
				});
		}
	}
	else if (filterType == "pageNum")
	{
		//console.debug("filter listNumber");
							
		var counter= 0;
							
		offerArrayList.forEach(
			function(currentItem)
			{
				//console.debug("counter "+counter + " filtervalue "+filterValue);
				//currentItem["active"]=="false" ||
				if (currentItem["active"]=="true")
				{					
					if (counter >= filterValue && counter < filterValue+30)					
					{
						//console.debug("counter "+counter + " filtervalue "+filterValue);
						currentItem["inList"]="true";
					}					
					else
					{
						currentItem["inList"]="false";	
					}
					counter++;
				}
				else
				{
					currentItem["inList"]="false";						
				}
			}
		);
		
		//console.debug("actives nach filter: "+getActivesCount());
		
	}
	
	else if (filterType == "exact")
	{
		offerArrayList.forEach(
			function(currentItem)
			{
				//console.debug("filterValue: "+filterValue+" filterElement: "+filterElement);
				//console.debug("current Item filterValue: "+currentItem[filterElement]);
				if (currentItem[filterElement]!=filterValue)
				{
					//console.debug("set to inactive");
					currentItem["active"]="false";
				}
			});
	}
	else if(filterType == "lt")
	{
		offerArrayList.forEach(
			function(currentItem)
			{
				if (currentItem[filterElement]>filterValue)
					currentItem["active"]="false";

			});
	}
	else if(filterType == "gt")
	{
			offerArrayList.forEach(
			function(currentItem)
			{
				if (currentItem[filterElement]<filterValue)
					currentItem["active"]="false";
			});
	}
}



function getTimeString(value)
{	
	
	var val=value*15/60;

	var valueHour;
	var valueMinute;

	var valIndex = (val+"").indexOf(".");
	if (valIndex!=-1)
	{
		//console.debug("kommazahl");
		valueHour = (val+"").substring(0,valIndex);
		valueMinute = ":"+parseInt((val+"").substring(valIndex+1),10)/100*60;
	}
	else
	{
		valueHour = (val+"");
		valueMinute = ":00";
	}

	if (valueHour.length < 2)
		valueHour="0"+valueHour;
	if (valueMinute.length < 3)
		valueMinute=""+valueMinute+"0";

	var valTime = valueHour+valueMinute;

	return valTime;
}

function setRangeFilter(name, minTime, maxTime)
{
	//console.debug("setrangefilter");
	
	clearFilteredItems();


	if (name=="hrSliderOutwardDeparture")
	{
		removeFilter("gt", "outwardDeptTime");
		removeFilter("lt", "outwardDeptTime");

		addFilter(offerArrayList, "gt", "outwardDeptTime", minTime);
		addFilter(offerArrayList, "lt", "outwardDeptTime", maxTime);
		//filterList.add(new Array(offerArrayList, "gt", "outwardDeptTime", minTime));
		//filterList.add(new Array(offerArrayList, "lt", "outwardDeptTime", maxTime));
	}
	if (name=="hrSliderOutwardArrival")
	{
		removeFilter("gt", "outwardArrivalTime");
		removeFilter("lt", "outwardArrivalTime");

		addFilter(offerArrayList, "gt", "outwardArrivalTime", minTime);
		addFilter(offerArrayList, "lt", "outwardArrivalTime", maxTime);
		//filterList.add(new Array(offerArrayList, "gt", "outwardArrivalTime", minTime));
		//filterList.add(new Array(offerArrayList, "lt", "outwardArrivalTime", maxTime));
	}
	if (name=="hrSliderReturnDeparture")
	{
		removeFilter("gt", "returnDeptTime");
		removeFilter("lt", "returnDeptTime");

		addFilter(offerArrayList, "gt", "returnDeptTime", minTime);
		addFilter(offerArrayList, "lt", "returnDeptTime", maxTime);
		//filterList.add(new Array(offerArrayList, "gt", "returnDeptTime", minTime));
		//filterList.add(new Array(offerArrayList, "lt", "returnDeptTime", maxTime));
	}
	if (name=="hrSliderReturnArrival")
	{
		removeFilter("gt", "returnArrivalTime");
		removeFilter("lt", "returnArrivalTime");

		addFilter(offerArrayList, "gt", "returnArrivalTime", minTime);
		addFilter(offerArrayList, "lt", "returnArrivalTime", maxTime);
		//filterList.add(new Array(offerArrayList, "gt", "returnArrivalTime", minTime));
		//filterList.add(new Array(offerArrayList, "lt", "returnArrivalTime", maxTime));
	}
	
	removeFilter('pageNum', 'listNumber');
	addFilter(offerArrayList, 'pageNum', 'listNumber', 0);
	setCurrentPage(0);
	
	applyFilters();
	displayOffers();
}

function switchSliders(activeTarget)
{
	var outwardElementNew;
	var returnElementNew;
	var outwardElementOld;
	var returnElementOld;

	if (activeTarget=="departure")
	{
		outwardElementNew=document.getElementById('Filter-OutwardDeparture');
		returnElementNew=document.getElementById('Filter-ReturnDeparture');
		outwardElementOld=document.getElementById('Filter-OutwardArrival');
		returnElementOld=document.getElementById('Filter-ReturnArrival');
	}
	if (activeTarget=="arrival")
	{
		outwardElementNew=document.getElementById('Filter-OutwardArrival');
		returnElementNew=document.getElementById('Filter-ReturnArrival');
		outwardElementOld=document.getElementById('Filter-OutwardDeparture');
		returnElementOld=document.getElementById('Filter-ReturnDeparture');
	}

	outwardElementOld.style.visibility = "hidden";
	returnElementOld.style.visibility = "hidden";

	outwardElementNew.style.visibility = "visible";
	returnElementNew.style.visibility = "visible";

}




/*
init
<script type="text/javascript">
function setSlider(num,value)
{
	sliderId = 'slider'+num;




	if (num==1)
	{
		var newWidth= (200*value/100);

		dijit.byId(sliderId).maximum=value;
		document.getElementById(sliderId).style.width=newWidth+"px";
		dijit.byId('slider'+num).discreteValues=11*newWidth/200;

	}
	else
	{
		var newWidth=200-(200*value/100);

		dijit.byId(sliderId).minimum=value;
		var newLeft = 50+200-newWidth;
		document.getElementById(sliderId).style.left=newLeft+"px";
		dijit.byId('slider'+num).discreteValues=200/11*value/100;
	}
	//(dijit.byId(sliderId).maximum - dijit.byId(sliderId).minimum)/11;
	document.getElementById(sliderId).style.width=newWidth+"px";

	//document.getElementById('slider'+num).style.width="160px";

}
</script>
*/