var FavoritesTemplate = '<a href=\"javascript:deleteBWCookie(\'@propid@\');\" class=\"favorites\"><img src="/img_elements/ico_remove.gif" width="16" height="16" style="margin-right:4px;" border="0" /></a><a href=\"/@language@/hotel_@location@_@propid@.aspx\" class=\"favorites\">@hotelname@ (@location@)</a><br />';
var hotelnumber = 0;
/// <summary>
/// moreinfo(itemIndex)
/// Funzione che switcha la visibilità del div contenente le info aggiuntive hotel
/// </summary>
/// <param name="itemIndex">id del div da visualizzare/nascondere</param>
function moreinfo(itemIndex) {
    if(document.getElementById('btncollapse_'+itemIndex).style.visibility=='hidden')
    {
        // expands hotel box
        setVisibility('btnmore_'+itemIndex,false);
        setVisibility('btncollapse_'+itemIndex,true);
        Effect.Fade('shortDesc_'+itemIndex, { duration: 0.5 });
        Effect.Appear('hotel_'+itemIndex+'_more', { duration: 0.5 });
        //setVisibility('shortDesc_'+itemIndex,false);
        //setVisibility('hotel_'+itemIndex+'_more',true);
        loadMap(itemIndex);
    } else {
        setVisibility('btnmore_'+itemIndex,true);
        setVisibility('btncollapse_'+itemIndex,false);
        Effect.Appear('shortDesc_'+itemIndex, { duration: 0.5 });
        Effect.BlindUp('hotel_'+itemIndex+'_more', { duration: 0.5 });
        //setVisibility('hotel_'+itemIndex+'_more',false);
        //setVisibility('shortDesc_'+itemIndex,true);        
        unloadMap(itemIndex);
    }
}
/// <summary>
/// UpdateFavorites(HotelList)
/// Funzione che aggiorna l'html del box Favorites
/// </summary>
/// <param name="HotelList">lista degli hotel favoriti, formato: "98nnn|HotelName1|Location1$98nnm|HotelName2|Location2"</param>
function UpdateFavorites(HotelList) {
    var tempHtml = '';
    var hotelCookieLine = [];
    if(HotelList!='') {
        hotelCookieLine = HotelList.split('$');
        
        var hotelCookie = [];
        for(var i=0;i<hotelCookieLine.length;i++) {
            hotelCookie[i] = hotelCookieLine[i].split('|');
        }

        for(var i=0;i<hotelCookie.length;i++) {
            tempHtml += FavoritesTemplate.replace(/@propid@/g,hotelCookie[i][1]).replace(/@location@/g,hotelCookie[i][2]).replace(/@hotelname@/g,hotelCookie[i][0]).replace('@language@',LanguageCode);
        }
    }
    document.getElementById('Favorites').innerHTML = tempHtml;
    if(tempHtml.length > 0) {
        setVisibility('h3Favorites',true,false);
        setVisibility('divFavorites',true,false);
        setVisibility('DeleteFavorites',true);
    } else {
        setVisibility('h3Favorites',false);
        setVisibility('divFavorites',false);
        setVisibility('DeleteFavorites',false);
    }
}
function AmenitiesFilterCheck(iServizioId)
{
    var chk_amenity = "chk_amenity_" + iServizioId;
    var chk_amenity_span = "chk_amenity_span_" + iServizioId;
    if ((eval(document.getElementById(chk_amenity))).checked == true)
    {
        (eval(document.getElementById(chk_amenity))).checked = false;
        (eval(document.getElementById(chk_amenity_span))).style.fontWeight = "normal";
    }
    else
    {
        (eval(document.getElementById(chk_amenity))).checked = true;
        (eval(document.getElementById(chk_amenity_span))).style.fontWeight = "bold";
    }
    AmenitiesFilter();
}
/*
MMI --> simulazione elemento visibilita' ricerca amenities
*/
function amenitiesVis()
{
    document.getElementById("amenitiesFilter").style.visibility = "visible";
    document.getElementById("amenitiesFilter").style.display = "block";
    setTimeout('amenitiesInVis()', 500);
}
function amenitiesInVis()
{
    document.getElementById("amenitiesFilter").style.visibility = "hidden";
    document.getElementById("amenitiesFilter").style.display = "none";
}
/*
END MMI --> simulazione elemento visibilita' ricerca amenities
*/

/// <summary>
/// AmenitiesFilter()
/// Funzione che filtra gli hotel in base alle amenities selezionate
/// cambia la visibilità degli oggetti hotel_n in funzione delle chk_amenity_m checked
/// </summary>
function AmenitiesFilter() {
    amenitiesVis();
    var allhidden = true;
    if(document.getElementById('headerhotellist1')) {
        setVisibility('headerhotellist1',true,false);
    }
    if(document.getElementById('headerhotellist2')) {
        setVisibility('headerhotellist2',true,false);
    }
    if(document.getElementById('allhotelshidden')) {
        setVisibility('allhotelshidden',false);
    }

    // reset visibility for all hotels and count hotel in page
    for(var j=0;j<200;j++) {
        if(document.getElementById('amenities_'+j) != null) {
            setVisibility('hotel_'+j,true);
        } else {
            hotelnumber = j;
            j=200;
        }
    }
    // parse amenities
    for(var i=1;i<20;i++) {
        if(document.getElementById('chk_amenity_'+i) != null) {
            if(document.getElementById('chk_amenity_'+i).checked) {
                (eval(document.getElementById("chk_amenity_span_"+i))).style.fontWeight = "bold";
                for(var j=0;j<hotelnumber;j++) {
                    if(document.getElementById('amenities_'+j).innerHTML.indexOf('$'+document.getElementById('chk_amenity_'+i).value+'|')==-1) {
                        setVisibility('hotel_'+j,false);
                    }
                }
            }
            else
            {
                (eval(document.getElementById("chk_amenity_span_"+i))).style.fontWeight = "normal";            
            }
        } else {
            i=20;
        }
    }
    // check visible hotels
    for(var j=0;j<hotelnumber;j++) {
        if(document.getElementById('hotel_'+j).style.visibility == 'visible') {
            allhidden = false;
        }
    }
    if(allhidden) {
        // make visible the label "no hotels with features selected"
        if(document.getElementById('headerhotellist1')) {
            setVisibility('headerhotellist1',false);
        }
        if(document.getElementById('headerhotellist2')) {
            setVisibility('headerhotellist2',false);
        }
        if(document.getElementById('allhotelshidden')) {
            setVisibility('allhotelshidden',true,false);
        }
    }
    // check repeater 1 and 2 for visibility; if hidden, hide box titles
    if(document.getElementById('rep1') && document.getElementById('rep2')) {
        if(document.getElementById('rep1').innerHTML == 0 && document.getElementById('rep2').innerHTML == 0) {
            setVisibility('headerhotellist1',false);
        }
    }
}
/// <summary>
/// initPage()
/// Funzione che fa il setup della pagina:
/// 1. recupera le traduzioni dei messaggi di errore    'getMessages()'
/// 2. setta le date di default                         'setDates()'
/// 3. setta la visibilità dell'interstial e del form   'setupVisibility()'
/// 4. nasconde le checkbox delle amenities non presenti in nessun hotel
/// 5. filtra in base alle amenities selezionate da form precedente // NON USATO
/// 6. visualizza gli hotel Favorites leggendo i cookies
/// 7. carica i valori passati da querystring e popola le input del form
/// </summary>
function initPage() {
    getMessages();
    setDates();
    setupVisibility();
    // check searched amenities
    var querystring = '';
    try
    {
        if(location.search.indexOf('chk_amenities=') != -1)
        {
            querystring = location.search;
            querystring = querystring.substring(querystring.indexOf('chk_amenities=')+14);
            if(querystring.indexOf('&') != -1)
            {
                querystring = querystring.substring(0,querystring.indexOf('&')-1);
            }
        }
    }
    catch(e)
    {
        querystring = '';
    }
    if(document.getElementById('amenities_0'))
    {
        var allamenities = '';
        for(var j=0;j<200;j++) {
            if(document.getElementById('amenities_'+j)) {
                allamenities += document.getElementById('amenities_'+j).innerHTML;
            } else {
                j=200;
            }
        }
        // parse searched amenities
        for(var i=1;i<20 && querystring!='';i++) {
            if(document.getElementById('chk_amenity_'+i)) {
                setVisibility('chk_amenity_span_'+i,true);
                if(querystring.indexOf(document.getElementById('chk_amenity_'+i).value+'|')>=0) {
                    // searched amenity found
                    document.getElementById('chk_amenity_'+i).checked = true;
                }
                if(allamenities.indexOf('$'+document.getElementById('chk_amenity_'+i).value+'|')==-1) {
                    // amenity not found in hotels all amenities list
                    setVisibility('chk_amenity_span_'+i,false);
                    document.getElementById('chk_amenity_'+i).checked = false;
                }
                
            } else {
                i=20;
            }
        }
        /*MMI*/
        if (location.href.indexOf('selectrooms.aspx') <= 0)
        {
            AmenitiesFilter();
        }
    }
    // initialize only if modifysearch exists
    if(document.getElementById(UserControlContainer + 'ddlAdult')) {
        // object visibility
        var toactivate = 'holidays';
        if(document.getElementById(UserControlContainer + 'txtLocationName')) {
            if(document.getElementById(UserControlContainer + 'txtLocationName').value!='') {
                toactivate='cities';
            }
        }
        setLocationOrHoliday(toactivate);
        // check occupancy
        //document.getElementById('ddlAdult').value = document.getElementById(UserControlContainer + 'adults_1').value;
        for(var i = 1; i<=parseInt(document.getElementById(UserControlContainer + 'ddlRoom').value);i++) {
            if(document.getElementById(UserControlContainer + 'children03_1').value != '0' || document.getElementById(UserControlContainer + 'children412_1').value != '0') {
                document.getElementById('ddlChild').value = '1';
                i=4;
            }
        }
        
        occupancy();
        checksamerooms();
        occupancy();
        // check iata / id
        makevisiblediv('boxoverlayer_iata');
        iata_id();
        // check gcci id
        makevisiblediv('boxoverlayer_gcc');
        gcci_id();
        // check promocode
        makevisiblediv('boxoverlayer_promocode');
        setpromocode();
    }
    // initialize ucHotelModifyStay usercontrol if exists
    // ...
    if(document.getElementById('UcHotelModifyStay1_rooms')) {
        changenumberofrooms(document.getElementById('UcHotelModifyStay1_rooms').value,'UcHotelModifyStay1_');
    }
    // retrieve favorites
    if(retrieveCookie('BWFavorites')) {
        UpdateFavorites(retrieveCookie('BWFavorites'));
    } else {
        UpdateFavorites('');
    }
    if(document.getElementById('ddlPoi')) {
        if(document.getElementById('ddlPoi').value!='0')
        {
            togglemap();
        }
    }
}
function viewratesbyroomdetail(id) {
    if(!isNaN(id)) {
        var occupancyDIV = document.getElementById('RatesByRoomDetail_'+id);
        if(occupancyDIV.style.visibility=='visible') {
            makevisiblediv('RatesByRoomDetail_'+id);
        } else {
	        occupancyDIV.className = 'boxoverlayer';
            occupancyDIV.style.width = 'auto';
            makevisiblediv(occupancyDIV.id,-120,130,'hotel_'+id);
        }
    }
}
function getMouseXY(e) {
    if(document.getElementById('mousecoords'))
    {
        var tempX = 0;
        var tempY = 0;

        if (e.pageX) tempX = e.pageX;
        else if (e.clientX)
        tempX = e.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
        else tempX = 0;
        
        if (e.pageY) tempY = e.pageY;
        else if (e.clientY)
        tempY = e.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
        else tempY = 0;
        
        document.getElementById('mousecoords').innerHTML = tempX + '|' + tempY;
    }
    return;
}
function liSort(sListString){
    var sOrder = sListString.split(',');
    var theList = document.getElementById('tosort');
    var lItem = theList.getElementsByTagName('li');
    for(var i=sOrder.length-1;i>=0;i--){
        theList.insertBefore(document.getElementById('hotel_'+sOrder[i]),lItem[0]);
    }
    document.getElementById('ddlPoi').value = 0;
    return false;
}