var StartDate
var EndDate
var SafeEvent
var iWhatID = 1
var ShowAllToLevel = 0
var OLToFunction = false
var DivStayingOpen = ""
var DivStayingOpenHeight = ""
var DivStayingOpenWidth = ""
var DivStayingOpenLeft = ""
var DivStayingOpenTop = ""
var TFWTemplateName = ""
var TFWShowHotelList = true
var HotelListElem
var HotelListLayerContent
var ActOnBroken = false
var IsInIframe = false
var OJLastCallParams
var AllowToClickInTFW = true

var HotelListFormat = "CLOSEDNOSTARS"
var nbrCharHotelList = 26

 
function MainTFWEngine(params, type)
{
		
	if (type == "Flight")
	{
		if (document.getElementById("FLTMINI")){
			document.getElementById("FLTMINI").style.display = '';
			document.getElementById("FLTMINI").innerHTML = '<table width="100%" height="296px"><tr><td align="center"><img src="' + SaticContentURL + 'web2/offerlist/loading.gif" alt="" border="0"></td></tr></table>'
		}
				
		if (document.getElementById("PCKMINI")){
			document.getElementById("PCKMINI").innerHTML = '';
			document.getElementById("PCKMINI").style.display = "none";
		}
		
		if (document.getElementById("OJMINI")){
			document.getElementById("OJMINI").innerHTML = '';
			document.getElementById("OJMINI").style.display = "none";
		}
		
		FLTCallTFW(defaultParams + '&' + params + '&FROMCOOKIE=1');
		
	}else
	{
		if (type == "Package")
		{
			if (document.getElementById("PCKMINI")){
				document.getElementById("PCKMINI").style.display = '';
				document.getElementById("PCKMINI").innerHTML = '<table width="100%" height="296px"><tr><td align="center"><img src="' + SaticContentURL + 'web2/offerlist/loading.gif" alt="" border="0"></td></tr></table>'
			}
					
			if (document.getElementById("FLTMINI")){
				document.getElementById("FLTMINI").innerHTML = '';
				document.getElementById("FLTMINI").style.display = "none";
			}
			
			if (document.getElementById("OJMINI")){
				document.getElementById("OJMINI").innerHTML = '';
				document.getElementById("OJMINI").style.display = "none";
			}
		
			PCKCallTFW(defaultParams + '&' + params + '&FROMCOOKIE=1');
		}
	}
}

function ShitEngine(moteur, nbrOfDivDynValue)
{
	
	document.getElementById("cacheframebody3").style.display = "none";
	document.getElementById("cacheframebody3").style.visibility = "hidden";
	
	HideAllLayers()
	if (moteur == 1)
	{
		//nbrOfDivDyn = 0
		EngineType = 'Package'
		iWhatID = 1
		MainTFWEngine('', 'Package')
	}
	if (moteur == 2)
	{
		//nbrOfDivDyn = 2
		EngineType = 'Flight'
		iWhatID = 2
		MainTFWEngine('', 'Flight')
	}
	nbrOfDivDyn = nbrOfDivDynValue
	DivStayingOpen = "";
}

function ResetTFW(type)
{
	//CallTFW(defaultParams + '&FROMLEVEL=-1&TOLEVEL=-1&WHENLEVEL=-1&RETURNLEVEL=-1')
	window.location.href = APPSWebServerURL + 'web2/offerlist/' + type + '/default.asp?' + defaultParams + '&FROMLEVEL=-1&TOLEVEL=-1&WHENLEVEL=-1&RETURNLEVEL=-1&WHATID=1'
}

function ResetTFWInPage(type)
{
	if (type == "Flight")
	{
		FLTCallTFW(defaultParams + '&FROMLEVEL=-1&TOLEVEL=-1&WHENLEVEL=-1&RETURNLEVEL=-1');
		
	}else
	{
		if (type == "Package"){
		PCKCallTFW(defaultParams + '&FROMLEVEL=-1&TOLEVEL=-1&WHENLEVEL=-1&RETURNLEVEL=-1');}
	}
}

function FLTCallTFW(params)
{
	StartDate = new Date();
	//document.getElementById("DEBUG").innerHTML = APPSWebServerURL + 'Web2/Search/Minimoteur/' + EngineType + '/Content.asp?' + params + "&WHATID=" + iWhatID + "&XSLTEMPLATEREF=" + XSLTemplateRef + "&ISALLTOLEVEL=" + ShowAllToLevel + "&OLTOFUNCTION=" + OLToFunction + "&XSLTEMPLATENAME=" + TFWTemplateName	
	PassAjaxResponseToFunction(APPSWebServerURL + 'Web2/Search/Minimoteur/Flight/Content.asp?' + params + "&WHATID=" + iWhatID + "&XSLTEMPLATEREF=" + XSLTemplateRef + "&ISALLTOLEVEL=" + ShowAllToLevel + "&OLTOFUNCTION=" + OLToFunction + "&XSLTEMPLATENAME=" + TFWTemplateName, 'FLTShowFTW')
	
	DisableField()
	
}

function PCKCallTFW(params)
{
	StartDate = new Date();
	//document.getElementById("DEBUG").innerHTML = APPSWebServerURL + 'Web2/Search/Minimoteur/' + EngineType + '/Content.asp?' + params + "&WHATID=" + iWhatID + "&XSLTEMPLATEREF=" + XSLTemplateRef + "&ISALLTOLEVEL=" + ShowAllToLevel + "&OLTOFUNCTION=" + OLToFunction + "&XSLTEMPLATENAME=" + TFWTemplateName	
	PassAjaxResponseToFunction(APPSWebServerURL + 'Web2/Search/Minimoteur/Package/Content.asp?' + params + "&WHATID=" + iWhatID + "&XSLTEMPLATEREF=" + XSLTemplateRef + "&ISALLTOLEVEL=" + ShowAllToLevel + "&OLTOFUNCTION=" + OLToFunction + "&XSLTEMPLATENAME=" + TFWTemplateName, 'PCKShowFTW')
	
	DisableField()
	
}

function OJCallTFW(params)
{
	StartDate = new Date();
	
	//document.getElementById("DEBUG").innerHTML = APPSWebServerURL + 'Web2/Search/Minimoteur/OpenJaw/Content.asp?' + params + "&WHATID=" + iWhatID + "&XSLTEMPLATEREF=" + XSLTemplateRef + "&ISALLTOLEVEL=" + ShowAllToLevel + "&OLTOFUNCTION=" + OLToFunction + "&XSLTEMPLATENAME=" + TFWTemplateName	
	
	//alert(APPSWebServerURL + 'Web2/Search/Minimoteur/OpenJaw/Content.asp?' + params + "&WHATID=" + iWhatID + "&XSLTEMPLATEREF=" + XSLTemplateRef + "&ISALLTOLEVEL=" + ShowAllToLevel + "&OLTOFUNCTION=" + OLToFunction + "&XSLTEMPLATENAME=" + TFWTemplateName)
	
	PassAjaxResponseToFunction(APPSWebServerURL + 'Web2/Search/Minimoteur/OpenJaw/Content.asp?' + params + "&WHATID=" + iWhatID + "&XSLTEMPLATEREF=" + XSLTemplateRef + "&ISALLTOLEVEL=" + ShowAllToLevel + "&OLTOFUNCTION=" + OLToFunction + "&XSLTEMPLATENAME=" + TFWTemplateName, 'OJShowFTW')
	DisableField()
	
}

function DisableField()
{
	AllowToClickInTFW = false
	
	if (document.getElementById("radiobutton"))
		document.getElementById("radiobutton").disabled=true
	if (document.getElementById("radiobutton2"))
		document.getElementById("radiobutton2").disabled=true
	if (document.getElementById("radiobutton3"))
		document.getElementById("radiobutton3").disabled=true
	if (document.getElementById("leavingfrom"))
		document.getElementById("leavingfrom").disabled=true
	if (document.getElementById("goingto1"))
		document.getElementById("goingto1").disabled=true
	if (document.getElementById("goingto2"))
		document.getElementById("goingto2").disabled=true
	if (document.getElementById("goingto3"))
		document.getElementById("goingto3").disabled=true
	if (document.getElementById("FromTxtFld"))
		document.getElementById("FromTxtFld").disabled=true
	if (document.getElementById("ToTxtFld"))
		document.getElementById("ToTxtFld").disabled=true
	if (document.getElementById("FromTxtFldOB"))
		document.getElementById("FromTxtFldOB").disabled=true
	if (document.getElementById("ToTxtFldOB"))
		document.getElementById("ToTxtFldOB").disabled=true
	if (document.getElementById("FromTxtFldIB"))
		document.getElementById("FromTxtFldIB").disabled=true
	if (document.getElementById("ToTxtFldIB"))
		document.getElementById("ToTxtFldIB").disabled=true			
	
		
	if (document.getElementById("leavingmonth"))
		document.getElementById("leavingmonth").disabled=true
	if (document.getElementById("leavingday"))
		document.getElementById("leavingday").disabled=true
	if (document.getElementById("returningmonth"))
		document.getElementById("returningmonth").disabled=true
	if (document.getElementById("Returningday"))
		document.getElementById("Returningday").disabled=true
	
	if (document.getElementById("OJDepMonthOB"))
		document.getElementById("OJDepMonthOB").disabled=true	
	if (document.getElementById("OJDepDayOB"))
		document.getElementById("OJDepDayOB").disabled=true	
	if (document.getElementById("OJDepMonthIB"))
		document.getElementById("OJDepMonthIB").disabled=true	
	if (document.getElementById("OJDepDayIB"))
		document.getElementById("OJDepDayIB").disabled=true	
		
		
	if (document.getElementById("class"))
		document.getElementById("class").disabled=true
	if (document.getElementById("ButtonSearch") && document.getElementById("SearchButtonOff"))
		document.getElementById("ButtonSearch").innerHTML = document.getElementById("SearchButtonOff").innerHTML
	
}


function FLTShowFTW(response)
{
	//let's kill the iframe just in case
	if(document.getElementById("cacheframebody2")) 
		document.getElementById("cacheframebody2").style.display = "none";

	if(document.getElementById("FLTMINI"))
		document.getElementById("FLTMINI").style.display = "";
	if(document.getElementById("OJMINI"))
		document.getElementById("OJMINI").style.display = "none";

	CleanResponse = FilterContent(response)
	ListOfElem = CleanResponse.split('-*-')
	
	//this allow to call a function if the engine is broken
	if (ListOfElem[2] == '-1')
	{
		if (ActOnBroken)
			miniBrokeExeptionFct()	
	}
	else
	{	
		if(document.getElementById("FLTOLTFWCONTENT"))
			document.getElementById("FLTOLTFWCONTENT").style.display = '';
		if(document.getElementById("UlysseMiniMoteurDiv"))
			document.getElementById("UlysseMiniMoteurDiv").style.display = "block";
		if(document.getElementById("OJMINI"))
			document.getElementById("OJMINI").innerHTML = "";
		if(document.getElementById("FLTMINI"))
			document.getElementById("FLTMINI").innerHTML = ListOfElem[0]
			
		
		HotelListParams = ListOfElem[1]
		
		if (DivStayingOpen || ""){
			var DivToShow = document.getElementById(DivStayingOpen);
			DivToShow.style.visibility = 'visible';
			/*DivToShow.style.height = DivStayingOpenHeight;*/
			DivToShow.style.width = DivStayingOpenWidth;
			DivToShow.style.top = DivStayingOpenTop;
			DivToShow.style.left = DivStayingOpenLeft;
			
			IfrRef = document.getElementById("cacheframebody3")
			IfrRef.style.width = DivStayingOpenWidth;
			IfrRef.style.height = DivToShow.offsetHeight;
			IfrRef.style.top = DivStayingOpenTop;
			IfrRef.style.left = DivStayingOpenLeft;
			IfrRef.style.zIndex = DivRef.style.zIndex - 1;
			IfrRef.style.display = "block";
		}
	
		
		if (TFWShowHotelList && HotelListParams!='')
		{
			if(ListOfElem[3])
			{
				HotelListFormat = ListOfElem[3];
			}
			
			if(ListOfElem[4])
			{
				nbrCharHotelList = ListOfElem[4];
			}
			
			CallFTWHotelList(defaultParams + '&' + FilterQuestion(HotelListParams) + '&SHOWHOTELLISTSTARS=' + HotelListFormat + '&NBRCHARHOTELLIST=' + nbrCharHotelList)
		}
	
		else if(HotelListLayerContent != "")
		{
			if(document.getElementById(HotelListLayerContent) && EngineType != "Flight"){
				ShowGammeHotelList()
			}
			
		}
		
		if (EngineType == "Flight")
		{
			SetScrollPosition()
		}
		
		if(ListOfElem[5])
		{
			if(ListOfElem[5] != "")
			{
				refCallTFWUrl = ListOfElem[5];
				refCallTFWUrl = refCallTFWUrl.replace(/&amp;/g, "&")
				ChangeTFW('Flight', refCallTFWUrl)
			}
		}
		
		if(ListOfElem[6])
		{
			if(ListOfElem[6] != "")
			{
				refCallTFWUrl = ListOfElem[6];
				refCallTFWUrl = refCallTFWUrl.replace(/&amp;/g, "&")
				ChangeTFW('Flight', refCallTFWUrl)
			}
		}	
		if (document.getElementById("MINIAUTOSUGGEST"))
		{
			if (ListOfElem[7])
			{
				globalFromlist = PrepareMultiBoxArray(trim(ListOfElem[7]))
				InitFromBox('', 'Flight')
			}
			if (ListOfElem[8])
			{
				globalTolist = PrepareMultiBoxArray(trim(ListOfElem[8]))
				InitToBox('', 'Flight')
			}
		}
		
		
	}	
	AllowToClickInTFW = true
	
	//placed here so that it load after everything else
	InitHotelSearch()
}

function PCKShowFTW(response)
{
	//let's kill the iframe just in case
	if(document.getElementById("cacheframebody2")) 
		document.getElementById("cacheframebody2").style.display = "none";
	
	CleanResponse = FilterContent(response)
	ListOfElem = CleanResponse.split('-*-')
	
	//this allow to call a function if the engine is broken
	if (ListOfElem[2] == '-1')
	{
		if (ActOnBroken)
			miniBrokeExeptionFct()	
	}
	else
	{	
		if(document.getElementById("PCKOLTFWCONTENT"))
			document.getElementById("PCKOLTFWCONTENT").style.display = '';
		if(document.getElementById("UlysseMiniMoteurDiv"))
			document.getElementById("UlysseMiniMoteurDiv").style.display = "block";
		if(document.getElementById("PCKMINI"))
			document.getElementById("PCKMINI").innerHTML = ListOfElem[0]
			
		
		HotelListParams = ListOfElem[1]
		if (DivStayingOpen || ""){
			var DivToShow = document.getElementById(DivStayingOpen);
			DivToShow.style.visibility = 'visible';
			/*DivToShow.style.height = DivStayingOpenHeight;*/
			DivToShow.style.width = DivStayingOpenWidth;
			DivToShow.style.top = DivStayingOpenTop;
			DivToShow.style.left = DivStayingOpenLeft;
			
			IfrRef = document.getElementById("cacheframebody3")
			IfrRef.style.width = DivStayingOpenWidth;
			IfrRef.style.height = DivToShow.offsetHeight;
			IfrRef.style.top = DivStayingOpenTop;
			IfrRef.style.left = DivStayingOpenLeft;
			IfrRef.style.zIndex = DivRef.style.zIndex - 1;
			IfrRef.style.display = "block";
		}
	
		if (TFWShowHotelList && HotelListParams!='')
		{
			if(ListOfElem[3])
			{
				HotelListFormat = ListOfElem[3];
			}
			
			if(ListOfElem[4])
			{
				nbrCharHotelList = ListOfElem[4];
			}
			
			CallFTWHotelList(defaultParams + '&' + FilterQuestion(HotelListParams) + '&SHOWHOTELLISTSTARS=' + HotelListFormat + '&NBRCHARHOTELLIST=' + nbrCharHotelList)
		}
	
		else if(HotelListLayerContent != "")
		{
			if(document.getElementById(HotelListLayerContent) && EngineType != "Flight"){
				ShowGammeHotelList()
			}
			
		}
		
		if (EngineType == "Flight")
		{
			SetScrollPosition()
		}
		
		if(document.getElementById("HOTELNAMEFROMLIST")){
			CallFTWHotelName(defaultParams + "&ENFORCEHOTELID=" + ListOfElem[9] + "&HOTELNAMEONLY=True")
		}
		
		if(ListOfElem[5])
		{
			if(ListOfElem[5] != "")
			{
				refCallTFWUrl = ListOfElem[5];
				refCallTFWUrl = refCallTFWUrl.replace(/&amp;/g, "&")
				ChangeTFW('Package', refCallTFWUrl)
			}
		}
		
		if(ListOfElem[6])
		{
			if(ListOfElem[6] != "")
			{
				refCallTFWUrl = ListOfElem[6];
				refCallTFWUrl = refCallTFWUrl.replace(/&amp;/g, "&")
				ChangeTFW('Package', refCallTFWUrl)
			}
		}	
		if (document.getElementById("MINIAUTOSUGGEST"))
		{
			if (ListOfElem[7])
			{
				globalFromlist = PrepareMultiBoxArray(trim(ListOfElem[7]))
				InitFromBox('', 'Package')
			}
			if (ListOfElem[8])
			{
				globalTolist = PrepareMultiBoxArray(trim(ListOfElem[8]))
				InitToBox('', 'Package')
			}
		}
		
		
	}	
	AllowToClickInTFW = true
	
	//placed here so that it load after everything else
	InitHotelSearch()
}

function OJShowFTW(response)
{
	//let's kill the iframe just in case
	if(document.getElementById("cacheframebody2")) 
		document.getElementById("cacheframebody2").style.display = "none";
		
	if(document.getElementById("OJMINI"))
		document.getElementById("OJMINI").style.display = "";
	if(document.getElementById("FLTMINI"))
		document.getElementById("FLTMINI").style.display = "none";

	CleanResponse = FilterContent(response)
	ListOfElem = CleanResponse.split('-*-')
	
	//this allow to call a function if the engine is broken
	if (ListOfElem[2] == '-1')
	{
		if (ActOnBroken)
			miniBrokeExeptionFct()	
	}
	else
	{	
	
		if(document.getElementById("OJOLTFWCONTENT"))
			document.getElementById("OJOLTFWCONTENT").style.display = '';
		if(document.getElementById("UlysseMiniMoteurDiv"))
			document.getElementById("UlysseMiniMoteurDiv").style.display = "block";
		if(document.getElementById("FLTMINI"))
			document.getElementById("FLTMINI").innerHTML = "";	
		if(document.getElementById("OJMINI"))
			document.getElementById("OJMINI").innerHTML = ListOfElem[0];
		
		HotelListParams = ListOfElem[1]
		if (DivStayingOpen || ""){
			var DivToShow = document.getElementById(DivStayingOpen);
			DivToShow.style.visibility = 'visible';
			/*DivToShow.style.height = DivStayingOpenHeight;*/
			DivToShow.style.width = DivStayingOpenWidth;
			DivToShow.style.top = DivStayingOpenTop;
			DivToShow.style.left = DivStayingOpenLeft;
			
			IfrRef = document.getElementById("cacheframebody3")
			IfrRef.style.width = DivStayingOpenWidth;
			IfrRef.style.height = DivToShow.offsetHeight;
			IfrRef.style.top = DivStayingOpenTop;
			IfrRef.style.left = DivStayingOpenLeft;
			IfrRef.style.zIndex = DivRef.style.zIndex - 1;
			IfrRef.style.display = "block";
		}
	
		
		if (TFWShowHotelList && HotelListParams!='')
		{
			if(ListOfElem[3])
			{
				HotelListFormat = ListOfElem[3];
			}
			
			if(ListOfElem[4])
			{
				nbrCharHotelList = ListOfElem[4];
			}
			
			CallFTWHotelList(defaultParams + '&' + FilterQuestion(HotelListParams) + '&SHOWHOTELLISTSTARS=' + HotelListFormat + '&NBRCHARHOTELLIST=' + nbrCharHotelList)
		}
	
		else if(HotelListLayerContent != "")
		{
			if(document.getElementById(HotelListLayerContent) && EngineType != "Flight"){
				ShowGammeHotelList()
			}
			
		}
		
		if (EngineType == "Flight")
		{
			SetScrollPosition()
		}
		
		if(ListOfElem[5])
		{
			if(ListOfElem[5] != "")
			{
				refCallTFWUrl = ListOfElem[5];
				refCallTFWUrl = refCallTFWUrl.replace(/&amp;/g, "&")
				ChangeTFW('Flight', refCallTFWUrl)
			}
		}
		
		if(ListOfElem[6])
		{
			if(ListOfElem[6] != "")
			{
				refCallTFWUrl = ListOfElem[6];
				refCallTFWUrl = refCallTFWUrl.replace(/&amp;/g, "&")
				ChangeTFW('Flight', refCallTFWUrl)
			}
		}	
		if (document.getElementById("MINIAUTOSUGGEST"))
		{
		
			if (ListOfElem[7])
			{
				globalFromlistOB = PrepareMultiBoxArray(trim(ListOfElem[7]))
				InitOBFromBox('', 'OpenJaw')
			}
			if (ListOfElem[8])
			{
				globalTolistOB = PrepareMultiBoxArray(trim(ListOfElem[8]))
				InitOBToBox('', 'OpenJaw')
			}
			if (ListOfElem[10])
			{
				globalFromlistIB = PrepareMultiBoxArray(trim(ListOfElem[10]))
				InitIBFromBox('', 'OpenJaw')
			}
			if (ListOfElem[11])
			{
				globalTolistIB = PrepareMultiBoxArray(trim(ListOfElem[11]))
				InitIBToBox('', 'OpenJaw')
			}
		}
		
		/*if(ListOfElem[12].length == 3) //we select the IB return base on the OB departure
		{
			OJLastCallParams = OJLastCallParams.replace('TOLEVELIB=0', 'TOLEVELIB=3')
			OJLastCallParams = OJLastCallParams.replace('TOSELECTEDIB=', 'TOSELECTEDIB=' + ListOfElem[12])
			OJCallTFW(OJLastCallParams)
		}*/
	}	
	AllowToClickInTFW = true
	
	//placed here so that it load after everything else
	InitHotelSearch()
}

function ShowAutoCompKeyDown(oEvent, typedTxt)
{
	selectbox = document.getElementById('goingto')
	var i;
	
	for(i=selectbox.options.length-1;i>=0;i--)
	{
		txtInOpt = selectbox.options[i].text
		TxtfieldIndexOf = txtInOpt.toUpperCase().indexOf(typedTxt.toUpperCase())
		if (TxtfieldIndexOf == -1)
			selectbox.remove(i);
	}

	//alert(oEvent.keyCode)
}

function ShowGammeHotelList()
{
	str1 = document.getElementById(HotelListLayerContent).innerHTML
	str1 = str1.replace('DD', '2DD')
	if (document.getElementById("TFWHOTELLIST"))
		document.getElementById("TFWHOTELLIST").innerHTML = str1
	if (document.getElementById('2DDALL')){	
		document.getElementById('2DDALL').selectedIndex = document.getElementById('DDALL').selectedIndex;
	}
}

function CallFTWHotelList(params)
{
	//document.getElementById("DEBUG").innerHTML = APPSWebServerURL + 'Web2/Search/Minimoteur/package/hotelList.asp?' + params
	PassAjaxResponseToFunction(APPSWebServerURL + 'Web2/Search/Minimoteur/package/hotelList.asp?' + params, 'ShowFTWHotelList')
	
}

function ShowFTWHotelList(response)
{
	//let's kill the iframe just in case
	if(document.getElementById("cacheframebody2")) 
		document.getElementById("cacheframebody2").style.display = "none";

	CleanResponse = FilterContent(response)
	ListOfElem = CleanResponse.split('-*-')
	if (document.getElementById("TFWHOTELLIST"))
	{
		document.getElementById("TFWHOTELLIST").innerHTML = ListOfElem[1]
	}
	
}

function CallFTWHotelName(params)
{
	//document.getElementById("DEBUG").innerHTML = APPSWebServerURL + 'Web2/Search/Minimoteur/package/hotelList.asp?' + params
	PassAjaxResponseToFunction(APPSWebServerURL + 'Web2/Search/Minimoteur/package/hotelList.asp?' + params, 'ShowFTWHotelName')
	
}

function ShowFTWHotelName(response)
{
	//let's kill the iframe just in case
	if(document.getElementById("cacheframebody2")) 
		document.getElementById("cacheframebody2").style.display = "none";

	CleanResponse = FilterContent(response)
	ListOfElem = CleanResponse.split('-*-')
	if (document.getElementById("HOTELNAMEFROMLIST"))
	{
		document.getElementById("HOTELNAMEFROMLIST").innerHTML = ListOfElem[1]
	}
	
}

var DivOpenIsLock = false

function ChangeTFW(type, params, e)
{

	var OLType = type;
	
	if (OLType == "Flight")
	{
		FLTCallTFW(defaultParams + '&' + params)
	}
	if (OLType == "Package")
	{
		PCKCallTFW(defaultParams + '&' + params)
	}
	if (OLType == "OpenJaw")
	{
		OJLastCallParams = defaultParams + '&' + params
		OJCallTFW(defaultParams + '&' + params)
	}
	
	DivStayingOpen = '';
	HideAllLayers(e)
	
}

function ChangeTFWStayOpen(type, id, params, e)
{
	var OLType = type;
	
	if (OLType == "Flight")
	{
		FLTCallTFW(defaultParams + '&' + params)
	}
	if (OLType == "Package")
	{
		PCKCallTFW(defaultParams + '&' + params)
	}
	if (OLType == "OpenJaw")
	{
		OJCallTFW(defaultParams + '&' + params)
	}
	
	DivStayingOpen = id;
	HideAllLayers(e)
}


function ShowHideLayer(name, act) 
{ 
	
	if(act == 1)
	{
		IfrRef = document.getElementById("cacheframebody3")
		DivRef = document.getElementById(name)
		IfrRef.style.width = DivRef.style.width;
		IfrRef.style.height = DivRef.style.height;
		IfrRef.style.top = parseInt(DivRef.style.top);
		IfrRef.style.left = DivRef.style.left;
		IfrRef.style.zIndex = DivRef.style.zIndex - 1;
		
		IfrRef.style.display = "block";
		IfrRef.style.visibility = "visible";
		document.getElementById(name).style.visibility = "visible";
	}
	else
	{
		document.getElementById(name).style.visibility = "hidden";
		document.getElementById("cacheframebody").style.display = "none";
		document.getElementById("cacheframebody").style.visibility = "hidden";
		document.getElementById("cacheframebody2").style.display = "none";
		document.getElementById("cacheframebody2").style.visibility = "hidden";
		document.getElementById("cacheframebody3").style.display = "none";
		document.getElementById("cacheframebody3").style.visibility = "hidden";
		document.getElementById("cacheframebody4").style.display = "none";
		document.getElementById("cacheframebody4").style.visibility = "hidden";
	}
}

function HideAllLayers(e)
{

	if (!e)
		e = SafeEvent
	nbr = 0
	
	if (DivStayingOpen != '')
	{
		var idPosition = DivStayingOpen.length - 6
		var DivToKeepOpen = DivStayingOpen.substr(6,idPosition)
	}else
	{
		DivStayingOpen = '';
		DivToKeepOpen = '';
		idPosition = '';
	}
	
	//check if other layer is open
	
	for(c=1;c<=nbrOfDivDyn;c++)
	{
		if(document.getElementById('DivDyn' + c) && c != DivToKeepOpen)
			if(document.getElementById('DivDyn' + c).style.visibility == 'visible')
			{
				DivOpenIsLock=false
				//nbr = ShowDivFrm(c, e)
				var DivToHide = "DivDyn" + c;
				//alert(DivToHide)
				ShowHideLayer(DivToHide, 2)	
			}
	}
	return (nbr)
	
	DivStayingOpen = '';
	DivToKeepOpen = '';
	idPosition = '';
}

//in style
function ShowDivFrm(id, e)
{

	HideAllLayers(e)

	SafeEvent = e
	if (!DivOpenIsLock)
	{
		DivOpenIsLock = true
		var openXinterval, moveXinterval, moveYinterval
	
		
		var NbrOfRevolution = parseInt(document.getElementById('DivDyn' + id + 'Tbl').offsetHeight/10) + 1
		if (document.getElementById('DivDyn' + id).style.visibility == 'hidden')
		{
			FromX = document.body.scrollLeft + e.clientX 
			FromY = document.body.scrollTop + e.clientY
			ElemWidth = document.getElementById('DivDyn' + id).offsetWidth
			
			Leftlimit =  GetOffsetLeft(document.getElementById('MINIMOTEUR')) + 6
			if (ElemWidth<FromX-Leftlimit)
				Leftlimit = FromX-ElemWidth
			rightlimit = Leftlimit + ElemWidth
			moveXinterval = (ElemWidth - (rightlimit - FromX)) / NbrOfRevolution
			openXinterval = ElemWidth / NbrOfRevolution
			
			
			
			//alert(FromX + ',' + FromY + ',' + Leftlimit + ',' + rightlimit + ',' + moveXinterval)
			var ypos = document.body.scrollTop + e.clientY-5 
			
			if((ypos-NbrOfRevolution*10) < document.getElementById('MiniMoteurWeb2').offsetTop+5)
				ypos = (document.getElementById('MiniMoteurWeb2').offsetTop + 5) + NbrOfRevolution*10
	
			Delay = HideAllLayers(e)*10
			
			for(c=1;c<=NbrOfRevolution;c++)
			{
				iTop = ypos-(10*c)
				iHeight = 10*c
				iLeft =  FromX - (moveXinterval*c)
				iWidth =  openXinterval*c
				setTimeout("ProcessAnimation('" + 'DivDyn' + id + "', " + iTop + "," + iLeft + " ," + iWidth + ", " + iHeight + ")",(10*c) + Delay);
			}
			//clear the lock
			setTimeout("DivOpenIsLock=false",((10*NbrOfRevolution)+Delay+1));
		}
		else
		{
			FromX = document.body.scrollLeft + e.clientX 
			FromY = document.body.scrollTop + e.clientY
			ElemWidth = document.getElementById('DivDyn' + id).offsetWidth
			ElemHeight = document.getElementById('DivDyn' + id).offsetHeight
			Leftlimit =  document.getElementById('DivDyn' + id).offsetLeft
			rightlimit = Leftlimit + ElemWidth
			
			ypos = document.getElementById('DivDyn' + id).offsetTop
			
			if (ElemWidth - (rightlimit - FromX)<=15)
				moveXinterval=0
			else
				moveXinterval = (ElemWidth - (rightlimit - FromX)) / NbrOfRevolution
			
			if (FromY < ypos+15)
				moveYinterval=0
			else
				moveYinterval = (FromY - ypos) / NbrOfRevolution
				
			openXinterval = ElemWidth / NbrOfRevolution
			
			//alert(FromX + ',' + FromY + ',' + Leftlimit + ',' + rightlimit + ',' + moveXinterval)
	
			
			
			iTop = ypos
			for(c=1;c<=NbrOfRevolution-1;c++)
			{
	
				iTop = ypos+(moveYinterval*c)
					
				iHeight = NbrOfRevolution*10 - 10*c
				iLeft =  Leftlimit + (moveXinterval*c)
				iWidth =  ElemWidth - openXinterval*c
				setTimeout("ProcessAnimation('" + 'DivDyn' + id + "', " + iTop + "," + iLeft + " , " + iWidth + ", " + iHeight + ")",10*c);
			}
			setTimeout("ShowHideLayer('" + 'DivDyn' + id + "', 2)",(NbrOfRevolution*10 + 1));
			
			//restore width while hidden
			setTimeout("DivRef.style.width = ElemWidth",(NbrOfRevolution*10 + 2));
			
			//clear the lock
			setTimeout("DivOpenIsLock=false",((10*NbrOfRevolution)+Delay+3));

		}
		return(NbrOfRevolution)
	}
}

//in style
function ShowDivFrmV2(id, e, elemWidth, iconId)
{

	//alert(document.getElementById("cacheframebody"))
	HideAllLayers(e)
	DivStayingOpen = "DivDyn" + id;
	
	var callerButtonId = document.getElementById(iconId);
	var closeButtonId = document.getElementById("closeIcon" + id);
	
	SafeEvent = e
	if (!DivOpenIsLock)
	{
		DivOpenIsLock = true
		var openXinterval, moveXinterval, moveYinterval
	
		var NbrOfRevolution = parseInt(document.getElementById('DivDyn' + id + 'Tbl').offsetHeight/10) + 1
		
		if (document.getElementById('DivDyn' + id).style.visibility == 'hidden')
		{
			
			FromX = document.body.scrollLeft + e.clientX 
			FromY = document.body.scrollTop + e.clientY
			ElemWidth = elemWidth
			
			Leftlimit =  GetOffsetLeft(document.getElementById('MINIMOTEUR')) + 6
				
			if (ElemWidth<FromX-Leftlimit)
				Leftlimit = FromX-ElemWidth
			rightlimit = Leftlimit + ElemWidth
			moveXinterval = (ElemWidth - (rightlimit - FromX)) / NbrOfRevolution
			openXinterval = ElemWidth / NbrOfRevolution
			
			//alert(FromX + ',' + FromY + ',' + Leftlimit + ',' + rightlimit + ',' + moveXinterval)
			//var ypos = document.body.scrollTop + e.clientY-5 
			var ypos = findPosY(callerButtonId) + 5;
			if((ypos-NbrOfRevolution*10) < document.getElementById('MiniMoteurWeb2').offsetTop+5)
				ypos = (document.getElementById('MiniMoteurWeb2').offsetTop + 5) + NbrOfRevolution*10
	
			Delay = HideAllLayers(e)*10
			
			for(c=1;c<=NbrOfRevolution;c++)
			{
				iTop = ypos-(10*c)
				iHeight = 10*c
				iLeft =  FromX - (moveXinterval*c)
				iWidth =  openXinterval*c
				setTimeout("ProcessAnimation('" + 'DivDyn' + id + "', " + iTop + "," + iLeft + " ," + iWidth + ", " + iHeight + ")",(10*c) + Delay);
			}
			//clear the lock
			setTimeout("DivOpenIsLock=false",((10*NbrOfRevolution)+Delay+1));
			DivStayingOpenHeight = iHeight;
			DivStayingOpenWidth = iWidth;
			DivStayingOpenLeft = iLeft;
			DivStayingOpenTop = iTop;
		}
		else
		{
			//FromX = document.body.scrollLeft + e.clientX 
			//FromY = document.body.scrollTop + e.clientY
			//ElemHeight = document.getElementById('DivDyn' + id).offsetHeight
		
			FromX = findPosX(callerButtonId)
			FromY = findPosY(callerButtonId)
			
			ElemWidth = elemWidth
			var ElemHeightValue = document.getElementById('DivDyn' + id).style.height;
			var ElemHeightFormatted = ElemHeightValue.substring(0,3);
			ElemHeight = ElemHeightFormatted;
			
			Leftlimit =  document.getElementById('DivDyn' + id).offsetLeft
			rightlimit = Leftlimit + ElemWidth
			
			//ypos = document.getElementById('DivDyn' + id).offsetTop
			
			ypos = findPosY(closeButtonId)
			
			if (BrowserDetect.browser == "Safari")
			{
				ypos = ypos - 20;    
			}			
				
			if (ElemWidth - (rightlimit - FromX)<=15)
				moveXinterval=0
			else
				moveXinterval = (ElemWidth - (rightlimit - FromX)) / NbrOfRevolution
			
			if (FromY < ypos+15)
				moveYinterval=0
			else
				moveYinterval = (FromY - ypos) / NbrOfRevolution
				
			openXinterval = ElemWidth / NbrOfRevolution
			
			/*alert(FromX + ',' + FromY + ',' + Leftlimit + ',' + rightlimit + ',' + moveXinterval)*/
	
			
			
			iTop = ypos
			for(c=1;c<=NbrOfRevolution-1;c++)
			{
	
				//iTop = ypos+(moveYinterval*c)
				iTop = ypos+	(moveYinterval*c)
					
				iHeight = NbrOfRevolution*10 - 10*c
				iLeft =  Leftlimit + (moveXinterval*c)
				iWidth =  ElemWidth - openXinterval*c
				setTimeout("ProcessAnimation('" + 'DivDyn' + id + "', " + iTop + "," + iLeft + " , " + iWidth + ", " + iHeight + ")",10*c);
			}
			setTimeout("ShowHideLayer('" + 'DivDyn' + id + "', 2)",(NbrOfRevolution*10 + 1));
			
			//restore width while hidden
			setTimeout("DivRef.style.width = ElemWidth",(NbrOfRevolution*10 + 2));
			setTimeout("DivRef.style.left = Leftlimit",(NbrOfRevolution*10 + 2));
			
			//clear the lock
			setTimeout("DivOpenIsLock=false",((10*NbrOfRevolution)+Delay+3));

		}
		return(NbrOfRevolution)
	}
}


function ProcessAnimation(name, iTop, iLeft, iWidth, iHeight)
{
	
	DivRef = document.getElementById(name)
	DivRef.style.width = iWidth
	DivRef.style.height = iHeight
	DivRef.style.top = iTop
	DivRef.style.left = iLeft
	ShowHideLayer(name, 1)
	
}

var ScrollTimer = ""

function SetScrollPosition()
{
	if (document.getElementById("fromSelectedCellPosition"))
	{
		var FromSelectedCellContent = document.getElementById("fromSelectedCellPosition")
		var FromSelectedCell = FromSelectedCellContent.className
		DisplayScrollPosition(FromSelectedCell, "ScrollFromContent", 5)
	}
	
	if (document.getElementById("ToLevel1CellPosition"))
	{
		var ToLevel1SelectedCellContent = document.getElementById("ToLevel1CellPosition")
		var ToLevel1SelectedCell = ToLevel1SelectedCellContent.className
		DisplayScrollPosition(ToLevel1SelectedCell, "ScrollL1Content", 5)
	}
	
	if (document.getElementById("ToLevel2CellPosition"))
	{
		var ToLevel2SelectedCellContent = document.getElementById("ToLevel2CellPosition")
		var ToLevel2SelectedCell = ToLevel2SelectedCellContent.className
		DisplayScrollPosition(ToLevel2SelectedCell, "ScrollL2Content", 3)
	}
	
	if (document.getElementById("ToLevel3CellPosition"))
	{
		var ToLevel3SelectedCellContent = document.getElementById("ToLevel3CellPosition")
		var ToLevel3SelectedCell = ToLevel3SelectedCellContent.className
		DisplayScrollPosition(ToLevel3SelectedCell, "ScrollL3Content", 3)
	}
	
	
}

function DisplayScrollPosition(pos, divId, nbElem)
{
	if (pos > nbElem)
	{
		if(document.getElementById(divId)){
			var ScrollableContent = document.getElementById(divId);
			var elemPos = pos - nbElem;
			var scrollPos = elemPos * 23;
			var scrollPosValue = ScrollableContent.scrollTop + scrollPos;
			scrollPosValue = scrollPosValue - 0;
		
			ScrollableContent.scrollTop = scrollPosValue;
		}
	}
}


function ScrollDivUp(divId)
{
	ScrollingDiv = document.getElementById(divId);
	ScrollingDiv.scrollTop = ScrollingDiv.scrollTop - 23;
	AutoScrollDivUp(divId)
}

function AutoScrollDivUp(divId)
{
	ScrollTimer = window.setTimeout("ScrollDivUp('" + divId + "')",200);
}

function StopAutoScrollDivUp()
{
	if (ScrollTimer != "")
	{
		clearTimeout(ScrollTimer);
	}
}


function ScrollDivDown(divId)
{
	ScrollingDiv = document.getElementById(divId);
	ScrollingDiv.scrollTop = ScrollingDiv.scrollTop + 23;
	AutoScrollDivDown(divId)
}

function AutoScrollDivDown(divId)
{
	ScrollTimer = window.setTimeout("ScrollDivDown('" + divId + "')",200);
}

function StopAutoScrollDivDown()
{
	if (ScrollTimer != "")
	{
		clearTimeout(ScrollTimer);
	}
}


function GoToOL(url)
{
	hotelParams = ''
	if (HotelListElem)
	{
		if (HotelListElem.value) //dropdown case
		{
			if (HotelListElem.value != '')
				hotelParams = "&HOTELEXITID=" + HotelListElem.value
		}
		else					//list case
		{
			if (HotelListElem != '')
				hotelParams = "&HOTELEXITID=" + HotelListElem
		}
	}
	
	if (document.getElementById('2DDALL'))
	{
		
		codeElem = document.getElementById('2DDALL').value.split('--')
		hotelParams = "&HOTELEXITID=" + codeElem[3]
	}
	else if (window.HotelID)
	{
		//enlevé car conflicte dans l'OL
		//if(HotelID != '')
			//hotelParams = "&HOTELEXITID=" + HotelID
	}
	
	//Hack to solve cache problem in firefox
	var ran_unrounded = Math.random()*5;
	var ran_number = Math.floor(ran_unrounded);
	
	top.location.href = url + hotelParams + "&RANDOMNUMBER=" + ran_number
}

var HighlightedHotelElemTR
var HighlightedHotelElemCheckBox

function UnHighlightHotelElem()
{
	if (document.getElementById("AllHotelElemTR") && document.getElementById("AllHotelElemCheckBox"))
	{
		var AllHotelElemTRRef = document.getElementById("AllHotelElemTR");
		var AllHotelElemCheckBoxRef = document.getElementById("AllHotelElemCheckBox");
		
		AllHotelElemTRRef.className = "selectedCell";
		AllHotelElemCheckBoxRef.checked = "true";
		
		if (document.getElementById(HighlightedHotelElemTR) && document.getElementById(HighlightedHotelElemCheckBox))
		{
			HighlightedHotelElemTRef = document.getElementById(HighlightedHotelElemTR);
			HighlightedHotelElemCheckBoxRef = document.getElementById(HighlightedHotelElemCheckBox);
			
			HighlightedHotelElemTRef.className = "normalCell";
			HighlightedHotelElemCheckBoxRef.checked = "";
						
		}
		
	}
}


function HighlightHotelElem(elemTR, elemCheckBox)
{
	if (document.getElementById("AllHotelElemTR") && document.getElementById("AllHotelElemCheckBox"))
	{
		var AllHotelElemTRRef = document.getElementById("AllHotelElemTR");
		var AllHotelElemCheckBoxRef = document.getElementById("AllHotelElemCheckBox");
		
		AllHotelElemTRRef.className = "normalCell";
		AllHotelElemCheckBoxRef.checked = "";
		
		if (document.getElementById(elemTR) && document.getElementById(elemCheckBox))
		{
			HighlightedHotelElemTRef = document.getElementById(elemTR);
			HighlightedHotelElemCheckBoxRef = document.getElementById(elemCheckBox);
			
			HighlightedHotelElemTRef.className = "selectedCell";
			HighlightedHotelElemCheckBoxRef.checked = "true";
			
			if (HighlightedHotelElemTR != elemTR && HighlightedHotelElemCheckBox != elemCheckBox)
			{
				if (document.getElementById(HighlightedHotelElemTR) && document.getElementById(HighlightedHotelElemCheckBox))
				{
					HighlightedHotelElemTRef = document.getElementById(HighlightedHotelElemTR);
					HighlightedHotelElemCheckBoxRef = document.getElementById(HighlightedHotelElemCheckBox);
					
					HighlightedHotelElemTRef.className = "normalCell";
					HighlightedHotelElemCheckBoxRef.checked = "";
								
				}
			}
			
			HighlightedHotelElemTR = elemTR;
			HighlightedHotelElemCheckBox = elemCheckBox;	
		}
	}
}