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";
    document.getElementById("cacheframebody3").style.zIndex = "0";

    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	
    var url;
    url = APPSWebServerURL + 'Web2/Search/Minimoteur/Flight/Content.asp?' + params + "&WHATID=" + iWhatID + "&XSLTEMPLATEREF=" + XSLTemplateRef + "&ISALLTOLEVEL=" + ShowAllToLevel + "&OLTOFUNCTION=" + OLToFunction + "&XSLTEMPLATENAME=" + TFWTemplateName;
    url = url.replace('&&', '&');
    PassAjaxResponseToFunction(url, '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	
    var url;
    url = APPSWebServerURL + 'Web2/Search/Minimoteur/Package/Content.asp?' + params + "&WHATID=" + iWhatID + "&XSLTEMPLATEREF=" + XSLTemplateRef + "&ISALLTOLEVEL=" + ShowAllToLevel + "&OLTOFUNCTION=" + OLToFunction + "&XSLTEMPLATENAME=" + TFWTemplateName;
    url = url.replace('&&', '&');
    PassAjaxResponseToFunction(url, '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 = "none";
        }


        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 = "none";
        }

        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") && ListOfElem[9] != '') {
            CallFTWHotelName(defaultParams + "&HOTELEXITID=" + 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])); }
            if (ListOfElem[8])
                { globalTolist = PrepareMultiBoxArray(trim(ListOfElem[8])); }

            InitFromBox('', 'Package');
            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')

    //document.getElementById("DEBUG").innerHTML = APPSWebServerURL + 'Web2/DetailOffer/HotelDetail.asp?' + defaultParams + "&HOTELEXITID=" + HotID + statsParams
    PassAjaxResponseToFunction(APPSWebServerURL + 'Web2/DetailOffer/HotelDetail.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('-*-')
    //alert(ListOfElem[14]);
    if (document.getElementById("HOTELNAMEFROMLIST")) {
        document.getElementById("HOTELNAMEFROMLIST").innerHTML = '<div class="miniHotelNameOnlyTextDiv">' + ListOfElem[14] + '</div>'
    }

}

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 = "none";
        IfrRef.style.visibility = "hidden";
        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;
        }
    }
}
