var RateVisibilityLimit = 4;
var RatesCount = 0;
/// <summary>
/// funzione che cambia la visibilità del div di dettaglio tariffe e cambia la classe css del div della tariffa corrente
/// </summary>
function makeratevisible(id) {
    for(var i=0;i<parseInt(document.getElementById('UCHotelRates1_lblRatesNumber').innerHTML);i++) {
        setVisibility('RateDetail_'+i,false);
        document.getElementById('Rate_'+i).className='divrateselement';
        //.style.border='solid 1px #000';
    }
    Effect.Appear('RateDetail_'+id, { duration: 0.5 });
    setVisibility('RateDetail_'+id,true,false);
    document.getElementById('Rate_'+id).className='divrateselement_on';
    //document.getElementById('Rate_'+id).style.border='solid 3px #00cc00';
}
function viewratedetail(id) {
    if(id == null) {
        // hides all
        for(var i=0;i<parseInt(document.getElementById('UCHotelRates1_lblRatesNumber').innerHTML);i++) {
            setVisibility('RateDetailDescr_'+i,false);
        }
    } else {
        var TopShift = (UserControlContainer == '' ? 190 : 167 )
        var LeftShift = (UserControlContainer == '' ? 271 : 257 )
        if(navigator.appName=='Microsoft Internet Explorer') {
	        TopShift += -5;
	        LeftShift += 40;
        }
        // show rate details for rate id
        document.getElementById('RateDetailDescr_'+id).className = 'boxoverlayer';
        if(document.getElementById('mousecoords')) {
	        document.getElementById('RateDetailDescr_'+id).style.top = (parseInt(document.getElementById('mousecoords').innerHTML.split('|')[1])-180) + 'px';
	        document.getElementById('RateDetailDescr_'+id).style.left = (parseInt(document.getElementById('mousecoords').innerHTML.split('|')[0])-360) + 'px';
        } else {
	        document.getElementById('RateDetailDescr_'+id).style.top = (SmartLogic_FindPosY(document.getElementById('Rate_'+id))-TopShift) + 'px';
	        document.getElementById('RateDetailDescr_'+id).style.left = (SmartLogic_FindPosX(document.getElementById('Rate_'+id))-LeftShift) + 'px';
        }
        document.getElementById('RateDetailDescr_'+id).style.width = '200px';
        setVisibility('RateDetailDescr_'+id,true,false);
    }
}
function morerates() {
    setVisibility('DropDownRates',true,false);
    setVisibility('Rates',false);
}
function selectrate() {
    var id = parseInt(document.getElementById('UCHotelRates1_ddlRates').selectedIndex);
    setVisibility('DropDownRates',false);
    setVisibility('Rates',true);
    for(var i=0;i<RatesCount;i++) {
        setVisibility('Rate_'+i,true,false);
    }        
    var objSelectRates = document.getElementById('UCHotelRates1_ddlRates');
    var objSelectRatesToShow = document.getElementById('UCHotelRates1_ddlRatesToShow');
    var ratesToHide = new Array();       
    for(var i=RatesCount-1;i>=0;i--) {
        if((i!=id)&&(objSelectRates.options[i].value!='RAC')) {
            if(objSelectRatesToShow.options[i].text=='False') {
                var check = true;
                for(var j=0;j<ratesToHide.length && check;j++) {
                    if(i==ratesToHide[j]) {
                        check = false;
                    }
                }
                if(check == true) {
                    ratesToHide[ratesToHide.length]=i;
                }
            }
        }
    }
    for(var i=RatesCount-1;i>=0;i--) {
      if(RatesCount-ratesToHide.length-RateVisibilityLimit>0) {
        var check = true;
        for(var j=0;j<ratesToHide.length && check;j++) {
            if(i==ratesToHide[j]) {
                check = false;
            }
        }
        if(check == true) {
          ratesToHide[ratesToHide.length]=i;
        }
      } else {
        i=-1
      }
    }
    if(ratesToHide.length > 0) {
        setVisibility('MoreRates',true,false);
        for(var i=0;i<ratesToHide.length;i++) {
            setVisibility('Rate_'+ratesToHide[i],false);
        }
    }
    if(id>=0) {
        makeratevisible(id);
    }
}
function initPageSelectRooms()
{
    RatesCount = parseInt(document.getElementById('UCHotelRates1_lblRatesNumber').innerHTML);
    initPage();
    if(location.search.indexOf('fromSpecialOffers=true')!=-1) {
        setVisibility('UcModifySearch1_lblCity',false);
        setVisibility('UcModifySearch1_txtLocationName',false);
    }
    if(RatesCount>RateVisibilityLimit)
    {
        for(var i=RateVisibilityLimit;i<RatesCount;i++)
        {
            setVisibility('Rate_'+i,false);
        }
        setVisibility('MoreRates',true,false);
    }
    /*
    identifica id tariffa RAC da UCHotelRates1_ddlRates
    cambia il valore della tariffa in UCHotelRates1_ddlRates
    chiama selectrate()
    */
    var objSelectRates = document.getElementById('UCHotelRates1_ddlRates');
    var id = -1;
    var Rate = '';
    var RateToSearch = '';
    try {
        if(location.search.toLowerCase().indexOf('dcbookingcode')>0)
        {
            RateToSearch = location.search.toLowerCase().substring(location.search.toLowerCase().indexOf('dcbookingcode')+14,location.search.toLowerCase().indexOf('dcbookingcode')+17).toUpperCase();
        }
    } catch (e)
    {
        RateToSearch = '';
    }
    
    if(objSelectRates != null) {
        if(RateToSearch != '') {
            for(var i=0;i<objSelectRates.length;i++) {
                if(objSelectRates.options[i].value==RateToSearch) {
                    id = i;
                    i = objSelectRates.length;
                }
            }
        }
        if(id==-1) {
            for(var i=0;i<objSelectRates.length;i++) {
                if(objSelectRates.options[i].value=='RAC') {
                    id = i;
                    i = objSelectRates.length;
                }
            }
        }
        if(id==-1) {
            id = 0;
        }
        objSelectRates.selectedIndex = id;
        selectrate();
    }
    if(RatesCount=='0')
    {
        setVisibility('modifystaydiv',false);
        setVisibility('UcHotelModifyStay1_lblNotAvail',true,false);
        hotelmodifystay();
    }
    else
    {
        setVisibility('UcHotelModifyStay1_lblNotAvail',false);
    }
    // calcola il totale se sono state selezionate camere
    if(document.getElementById('UCReservationSummary1_lblRates1'))
    {
        //var total = 0;
        //var temp = '';
        for(i=1;i<=3;i++)
        {
            try
            {
                document.getElementById('infobookedroom'+i).style.visibility = 'hidden';
                if(document.getElementById('UCReservationSummary1_lblRates'+i))
                {
                    if(document.getElementById('UCReservationSummary1_lblRates'+i).innerHTML != '')
                    {
                        document.getElementById('infobookedroom'+i).style.visibility = 'visible';
                    }
                }
            }
            catch (e) { }
        }
    }
}
function hotelmodifystay() {
    if(document.getElementById('modifystaydiv').style.visibility != 'hidden') {
        setVisibility('modifystaydiv',false);
        setVisibility('ratesheader',true,false);
        setVisibility('divDetailRates',true,false);
    } else {
        setVisibility('modifystaydiv',true,false);
        setVisibility('ratesheader',false);
        setVisibility('divDetailRates',false);
        if(createDate(startDate) < createDate(document.getElementById('UcHotelModifyStay1_FirstDay').innerHTML)) {
            GetCalData(document.getElementById('UcHotelModifyStay1_FirstDay').innerHTML);
        } else {
            GetCalData(startDate);
        }            
    }
}
function formatCurrency(num) {
    //num = num.toString().replace(/\$|\,/g,'');
    if(isNaN(num))
    {
        return "";
    } else {
        sign = (num == (num = Math.abs(num)));
        num = Math.floor(num*100+0.50000000001);
        cents = num%100;
        num = Math.floor(num/100).toString();
        if(cents<10)
        {
            cents = "0" + cents;
        }
        for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
        {
            num = num.substring(0,num.length-(4*i+3))+(LanguageCode == 'EN' ? ',' : '.')+num.substring(num.length-(4*i+3));
        }
        return (((sign)?'':'-') + '&euro; ' + num + (LanguageCode == 'EN' ? '.' : ',') + cents);
    }
}
function openrateinfo(PropId, BookingCode, arrivalDate, departureDate, Adults, Children03, Children412, ID_Code, caller) {
    //alert(PropId + BookingCode + arrivalDate + departureDate + Adults + Children03 + Children412);
    // rende visibile il div "info"
    // chiama il webservice
    if(PropId != null && BookingCode != null && arrivalDate != null && departureDate != null && Adults != null && Children03 != null && Children412 != null && caller != null) {
        if (window.XMLHttpRequest) {
            req = new XMLHttpRequest();
        } else if (window.ActiveXObject) {
            req = new ActiveXObject('Microsoft.XMLHTTP');
        }
        var querystring = '';
        querystring += 'PropId='+PropId;
        querystring += '&BookingCode='+BookingCode;
        querystring += '&arrivalDate='+arrivalDate;
        querystring += '&departureDate='+departureDate;
        querystring += '&Adults='+Adults;
        querystring += '&Children03='+Children03;
        querystring += '&Children412='+Children412;
        querystring += '&ID_Code='+ID_Code;
        querystring += '&caller='+caller;
        req.open('GET', 'http://'+baseurl+'/AjaxServices/RateDetailSmartSearch.aspx?'+querystring);
        //document.write('http://'+baseurl+'/AjaxServices/RateDetailSmartSearch.aspx?'+querystring);
        // many server-side scripts require the Content-Type to be set:
        req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
        req.onreadystatechange = callbackratedetail;
        req.send(querystring);
        DayRateDiv(caller,'show');
    }
}
function callbackratedetail() {
    if (req.readyState == 4) {
        if (req.status == 200 || req.status == 304) {
            // update the HTML DOM based on whether or not message is valid
//            alert(req.responseText);
            ViewDayRateDetail(req.responseText);
        }
    }
}
function DayRateDiv(caller, action) {
    var TopShift = (UserControlContainer == '' ? 190 : 167 )
    var LeftShift = (UserControlContainer == '' ? 371 : 357 )
    var ratedetailDIV = document.createElement('div');
    if(navigator.appName=='Microsoft Internet Explorer') {
	    TopShift += -5;
	    LeftShift += 40;
    }
	if(action=='show')
	{
	    ratedetailDIV.id = 'div_'+caller;
	    ratedetailDIV.className = 'boxoverlayer';
	    ratedetailDIV.style.visibility = 'visible';
	    ratedetailDIV.style.display = 'block';
	    ratedetailDIV.style.position = 'absolute';
	    ratedetailDIV.style.top = (parseInt(document.getElementById('mousecoords').innerHTML.split('|')[1])-210) + 'px';
	    ratedetailDIV.style.left = (parseInt(document.getElementById('mousecoords').innerHTML.split('|')[0])-410) + 'px';
	    ratedetailDIV.style.width = '130px';
	    ratedetailDIV.style.align = 'center';

	    ratedetailDIV.innerHTML='<img src="/img_elements/HotelGalleries/loading.gif" width="16" height="16" border="0">';
	    document.getElementById('info'+caller).appendChild(ratedetailDIV);
    } else {
        try {
            document.getElementById('div_'+caller).style.visibility = 'hidden';
    	    document.getElementById('div_'+caller).style.display = 'none';
            //document.getElementById('info'+caller).removeChild(ratedetailDIV);
            //ratedetailDIV = null;
        } catch (e) {
        }
    }
}
function ViewDayRateDetail(resp) {
    var caller = resp.split('$')[0].split('|')[1];
    if(caller==undefined) {
        caller = resp;
    }
    ratedetailstring = '';
    var values = resp.split('$');
    for(i=1;i<values.length;i++)
    {
        day = values[i].split('|');
        ratedetailstring += formatDate(createDate(day[0]),'dd/MM/yyyy') + ': <b>' + formatCurrency(day[1].replace(',','.')) + '</b><br>';
    }
    if(document.getElementById('div_'+caller))
    {
        document.getElementById('div_'+caller).innerHTML = ratedetailstring;
    }
}