//	********************************************************************************************************
//		CFlightListOfferHandler.js
//	********************************************************************************************************
//
//		CREATED FROM:	Robert Stiehler (idaSys)
//		CREATED AT:	17.11.2008
//		
//		UPDATES:
//
//	--------------------------------------------------------------------------------------------------------


//class CFlightListOfferHandler
//{
//public:
	function CFlightListOfferHandler()
	{
	//public:
		this.initializeOfferBox = declared_initializeOfferBox;
		this.setOffers = declared_setOffers;
		this.setProcessBar = declared_setProcessBar;
		this.setFlightPrices = declared_setFlightPrices;
		this.setPax = declared_setPax;
	
	//private:
		this.replaceWaitAniWithError = declared_replaceWaitAniWithError;
		
		this.flightPrice = new Array(0, 0);
		this.numAdults = 0;
		this.numChildren = 0;
		this.numInfants = 0;
		
		this.log = xajax_logStringToFile;
	}
	
//public:
	function declared_initializeOfferBox()
	{
		try
		{
			for(var x = 0; x < document.getElementById("flightListOfferBoxFlightData_r2").childNodes.length; x++)
				document.getElementById("flightListOfferBoxFlightData_r2").removeChild(document.getElementById("flightListOfferBoxFlightData_r2").childNodes[x]);
			for(var x = 0; x < document.getElementById("flightListOfferBoxFlightData_r2").childNodes.length; x++)
				document.getElementById("flightListOfferBoxFlightData_r2").removeChild(document.getElementById("flightListOfferBoxFlightData_r2").childNodes[x]);
			for(var x = 0; x < document.getElementById("flightListOfferBoxFlightData_r2").childNodes.length; x++)
				document.getElementById("flightListOfferBoxFlightData_r2").removeChild(document.getElementById("flightListOfferBoxFlightData_r2").childNodes[x]);
		}
		catch(e) {this.log("CFlightListOfferHandler::initializeOfferBox\n" + e.message, "logging/JSExceptionLog.txt");}
	}
	
//public:
	function declared_setProcessBar(statInPX)
	{
		try
		{
			document.getElementById("ProgressBar").style.width = statInPX;
		}
		catch(e) {this.log("CFlightListOfferHandler::setProcessBar\n" + e.message, "logging/JSExceptionLog.txt");}
	}
	
//public:
	function declared_setFlightPrices(outPrice, retPrice)
	{
		try
		{
			this.flightPrice[0] = outPrice;
			this.flightPrice[1] = retPrice;
		}
		catch(e) {this.log("CFlightListOfferHandler::setFlightPrices\n" + e.message, "logging/JSExceptionLog.txt");}
	}
	
//public:
	function declared_setPax(Adults, Children, Infants)
	{
		try
		{
			this.numAdults = Adults;
			this.numChildren= Children;
			this.numInfants = Infants;
		}
		catch(e) {this.log("CFlightListOfferHandler::setPax\n" + e.message, "logging/JSExceptionLog.txt");}
	}
	
//public:
	function declared_setOffers(OfferArray, Duration)
	{
		try
		{
			if(OfferArray.length == 0)
				throw "noboobablecars";
			
			for(var i = 2; i <= 5; i++)
			{
				for(var x = 0; x < document.getElementById("flightListOfferBox" + i + "Stars_r2").childNodes.length; x++)
					document.getElementById("flightListOfferBox" + i + "Stars_r2").removeChild(document.getElementById("flightListOfferBox" + i + "Stars_r2").childNodes[x]);
				for(var x = 0; x < document.getElementById("flightListOfferBox" + i + "Stars_r2").childNodes.length; x++)
					document.getElementById("flightListOfferBox" + i + "Stars_r2").removeChild(document.getElementById("flightListOfferBox" + i + "Stars_r2").childNodes[x]);
				for(var x = 0; x < document.getElementById("flightListOfferBox" + i + "Stars_r2").childNodes.length; x++)
					document.getElementById("flightListOfferBox" + i + "Stars_r2").removeChild(document.getElementById("flightListOfferBox" + i + "Stars_r2").childNodes[x]);
			}
			
			/*var tmpArr = new Array();
			for(var i = OfferArray.length-1; i >= 0; i--)
				tmpArr.push(OfferArray[i]);
			OfferArray = tmpArr;*/
			
			var cheapestOffer = 9999999;
			var i;
			for(i = 0; i < OfferArray.length; i++)
			{
				if(OfferArray[i][2] != "")
				{
					var OfferLink = document.createElement("a");
					OfferLink.href = "javascript:if(objFlightListHandler.formNextSubmit != null){ document.formNext.SixtCar.value = \"" + OfferArray[i][0] + "\"; objFlightListHandler.formNextSubmit()}";
					OfferLink.className = "r2_LinkPreis";
					OfferLink.id = "flightListOfferBox" + (i+2) + "StarsPrice_r2";
					
					//calculate adult price with car price (car price is spilted over all adults)
					var FullPrice = (Math.ceil(((this.numAdults + this.numChildren) * (parseInt(this.flightPrice[0], 10) + parseInt(this.flightPrice[1], 10))) * 1.14) + parseInt(OfferArray[i][2], 10));
					var divisor = (this.numAdults * 2) + this.numChildren;
					var FullPriceDiff = FullPrice / divisor;
					var priceAdult = Math.ceil(FullPriceDiff * 2);
					
					if(cheapestOffer > priceAdult)
						cheapestOffer = priceAdult;
					
					OfferLink.innerHTML = "Ab " + priceAdult + "&euro";
										
					document.getElementById("flightListOfferBox" + (i+2) + "Stars_r2").style.fontWeight = "bold";
					document.getElementById("flightListOfferBox" + (i+2) + "Stars_r2").innerHTML = OfferArray[i][1] + "<br>";
					document.getElementById("flightListOfferBox" + (i+2) + "Stars_r2").appendChild(OfferLink);
					document.getElementById("flightListOfferBox" + (i+2) + "Stars_r2").style.display = "block";
				}
			}
			
			document.getElementById("hotelTeaserContentWait").style.display = "none";
			
			document.getElementById("hotelTeaserContent").style.display = "block";
			document.getElementById("hotelTeaserContent").style.visibility = "visible";
			document.getElementById("BorderDIV").style.width = "";
			
			document.getElementById("flightListOfferBoxFlightData_r2").innerHTML = Duration + " Nächte, Flug* + Mietwagen ab " + cheapestOffer + "&euro";
			
			document.getElementById("WaitAniErrorText").style.display = "none";
			document.getElementById("nextPageLink").style.display = "block";
			document.getElementById("ProgressBarContainer").style.display = "";
			
			//document.getElementById("nextPageLinkStd").style.display = "";
		}
		catch(e) {
			if(e == "noboobablecars")
				this.replaceWaitAniWithError("Derzeit sind keine Mietwagen für diese Strecke verfügbar. Bitte wenden Sie sich mit Ihrem Buchungswunsch an service@binoli.de");
			else
			{
				this.replaceWaitAniWithError("Derzeit sind keine Mietwagen für diese Strecke verfügbar. Bitte wenden Sie sich mit Ihrem Buchungswunsch an service@binoli.de");
				this.log("CFlightListOfferHandler::setOffers\n" + e.message, "logging/JSExceptionLog.txt");
			}
		}
	}
	
//private:
	function declared_replaceWaitAniWithError(ErrorText)
	{
		try
		{
			document.getElementById("nextPageLink").style.display = "none";
			document.getElementById("ProgressBarContainer").style.display = "none";
			document.getElementById("WaitAniErrorText").style.position = "relative";
			document.getElementById("WaitAniErrorText").style.top = "-15px";
			document.getElementById("WaitAniErrorText").style.display = "block";
			document.getElementById("WaitAniErrorText").style.fontWeight = "bold";
			document.getElementById("WaitAniErrorText").innerHTML = ErrorText;
		}
		catch(e) {this.log("CFlightListOfferHandler::replaceWaitAniWithError\n" + e.message, "logging/JSExceptionLog.txt");}
	}
//}
